import { ueuse } from "../../../types/types"; import { Reply } from "../main.js"; import config from "../../../config.js"; import { readFileSync, writeFileSync, existsSync } from "fs"; // 初期化 const initialFile = {}; if (!existsSync("data/miqPermissions.json")) { writeFileSync( "data/miqPermissions.json", JSON.stringify(initialFile), "utf-8" ); } export type Permission = "consent" | "everyone" | "me"; const PermissionsNames: { [name: string]: string } = { "consent": "許可制", "everyone": "全体公開", "me": "自身のみ", } export default async function MiQPermission(data: ueuse) { if (!config.miq) { await Reply(` BOT管理者によってMake it a quoteが無効化されています。 そのため\`/miq\`はご利用いただけません。 `, data.uniqid); return; } const permissions: { [user: string]: string } = JSON.parse(readFileSync("data/miqPermissions.json", "utf-8")); // 初期化 if (permissions[data.account.userid] === undefined) { permissions[data.account.userid] = "consent"; writeFileSync( "data/miqPermissions.json", JSON.stringify(permissions), "utf-8" ); } if ( data.abi === "" || data.abi === "none" ) { await Reply(` あなたに対してのMake it a Quoteを生成するための権限は「${PermissionsNames[permissions[data.account.userid]]}」です。 `, data.uniqid); return; } const requestPermission = data.abi.trimEnd(); if (PermissionsNames[requestPermission] === undefined) { await Reply(` 変更希望の権限「${requestPermission}」はご指定できません。 \`consent\`、\`everyone\`、\`me\`のいずれかからご選択ください。 `, data.uniqid); return; } permissions[data.account.userid] = requestPermission; writeFileSync( "data/miqPermissions.json", JSON.stringify(permissions), "utf-8" ); await Reply(` あなたに対してのMake it a Quoteを生成するための権限を「${PermissionsNames[requestPermission]}」に変更しました。 `, data.uniqid); }