代码拉取完成,页面将自动刷新
import fs from 'fs'
import crypto from 'crypto'
let user = ""
let sign = {}
const file = process.cwd() + "/config/config/other.yaml"
export class master extends plugin {
constructor() {
super({
name: '设置主人',
dsc: '快捷设置主人',
event: 'message',
priority: 1,
rule: [
{
reg: /^#设置主人$/,
fnc: 'master'
},
{
reg: /^#(删除|取消)主人$/,
fnc: "del_master",
permission: "master"
}
]
})
}
async master(e) {
/** 对用户id进行默认赋值 */
user = e.user_id
let cfg = fs.readFileSync(file, "utf8")
if (e.at) {
/** 存在at检测触发用户是否为主人 */
if (!e.isMaster) return e.reply(`只有主人才能命令我哦~\n(*/ω\*)`)
/** 检测被at的用户是否已经是主人 */
if (cfg.match(RegExp(`- "?${e.at}"?`)))
return e.reply([segment.at(e.at), "已经是主人了哦(〃'▽'〃)"])
user = e.at
e.reply(add(e))
} else {
/** 检测用户是否已经是主人 */
if (e.isMaster) return e.reply([segment.at(e.user_id), "已经是主人了哦(〃'▽'〃)"])
/** 生成验证码 */
sign[e.user_id] = crypto.randomUUID()
logger.mark(`设置主人验证码:${logger.green(sign[e.user_id])}`)
/** 开始上下文 */
this.setContext('SetAdmin')
e.reply([segment.at(e.user_id), `请输入控制台的验证码`])
}
}
async del_master(e) {
if (!e.at) return e.reply("你都没有告诉我是谁!快@他吧!^_^")
let cfg = fs.readFileSync(file, "utf8")
if (!cfg.match(RegExp(`- "?${e.at}"?`)))
return e.reply("这个人不是主人啦(〃'▽'〃)", false, { at: true })
cfg = cfg.replace(RegExp(`\\n - "?${e.at}"?`), "")
fs.writeFileSync(file, cfg, "utf8")
e.reply([segment.at(e.at), "拜拜~"])
}
SetAdmin() {
/** 结束上下文 */
this.finish('SetAdmin')
/** 判断验证码是否正确 */
if (this.e.msg.trim() === sign[this.e.user_id]) {
this.e.reply(add(this.e))
} else {
return this.reply([segment.at(this.e.user_id), "验证码错误"])
}
}
}
function add(e) {
let cfg = fs.readFileSync(file, "utf8")
/** 使用正则表达式确认是TRSS还是Miao */
if (cfg.match(RegExp("master:"))) {
/** 保留注释 */
const document = Yaml.parseDocument(cfg)
const masterQQ = document.get("masterQQ")
masterQQ.add(user)
document.set("masterQQ", masterQQ)
const master = document.get("master")
master.add(`${e.self_id}:${user}`)
document.set("master", master)
cfg = document.toString()
} else {
/** 保留注释 */
const document = Yaml.parseDocument(cfg)
const masterQQ = document.get("masterQQ")
masterQQ.add(user)
document.set("masterQQ", masterQQ)
cfg = document.toString()
}
fs.writeFileSync(file, cfg, "utf8")
return [segment.at(user), "新主人好~(*/ω\*)"]
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。