Miao-Yunzai/plugins/system/master.js

55 lines
1.5 KiB
JavaScript

import fs from "fs"
import { randomUUID } from "crypto"
let code = {}
let file = "config/config/other.yaml"
export class master extends plugin {
constructor () {
super({
name: "设置主人",
dsc: "设置主人",
event: "message",
rule: [
{
reg: "^#设置主人$",
fnc: "master"
}
]
})
}
edit (file, key, value) {
let data = fs.readFileSync(file, "utf8")
if (data.match(RegExp(`- "?${value}"?`)))
return
value = `${key}:\n - "${value}"`
if (data.match(RegExp(`${key}:`)))
data = data.replace(RegExp(`${key}:`), value)
else
data = `${data}\n${value}`
fs.writeFileSync(file, data, "utf8")
}
async master () {
if (this.e.isMaster) {
await this.reply(`账号:${this.e.user_id} 已经为主人`, true)
return false
}
code[this.e.user_id] = randomUUID()
logger.mark(`${logger.cyan(`[${this.e.user_id}]`)} 设置主人验证码:${logger.green(code[this.e.user_id])}`)
this.setContext("verify")
await this.reply(`账号:${this.e.user_id} 请输入验证码`, true)
}
async verify () {
this.finish("verify")
if (this.e.msg.trim() == code[this.e.user_id]) {
this.edit(file, "masterQQ", this.e.user_id)
this.edit(file, "master", `${this.e.self_id}:${this.e.user_id}`)
await this.reply(`账号:${this.e.user_id} 设置主人成功`, true)
} else {
await this.reply("验证码错误", true)
return false
}
}
}