|
| 1 | +import crypto from 'crypto' |
| 2 | +import { karin, logger, config } from 'node-karin' |
| 3 | + |
| 4 | +export const Master = karin.command(/^#设置主人/, async (e) => { |
| 5 | + if (e.isMaster) { |
| 6 | + await e.reply(`\n[${e.userId}] 已经是主人`, { at: true }) |
| 7 | + return true |
| 8 | + } |
| 9 | + const sign = crypto.randomUUID() |
| 10 | + logger.mark(`设置主人验证码:${logger.green(sign)}`) |
| 11 | + await e.reply('\n请输入控制台验证码', { at: true }) |
| 12 | + const event = await karin.ctx(e) |
| 13 | + |
| 14 | + if (sign !== event.msg.trim()) { |
| 15 | + await e.reply('验证码错误', { at: true }) |
| 16 | + return true |
| 17 | + } |
| 18 | + |
| 19 | + const name = 'config' as const |
| 20 | + const data = config.getYaml(name, 'user') |
| 21 | + data.master.push(e.userId) |
| 22 | + config.setYaml(name, data) |
| 23 | + |
| 24 | + await e.reply('\n设置主人成功', { at: true }) |
| 25 | + return true |
| 26 | +}, { name: '设置主人', priority: -1 }) |
| 27 | + |
| 28 | +export const addMaster = karin.command(/^#新增主人/, async (e) => { |
| 29 | + const userId = e.at[0] || e.msg.replace(/^#新增主人/, '').trim() |
| 30 | + if (!userId) { |
| 31 | + await e.reply('请输入需要新增主人的账号或者艾特ta', { at: true }) |
| 32 | + return true |
| 33 | + } |
| 34 | + const Master = config.master() |
| 35 | + if (Master.includes(userId)) { |
| 36 | + await e.reply(`[${userId}] 已经是主人`, { at: true }) |
| 37 | + return true |
| 38 | + } |
| 39 | + |
| 40 | + const name = 'config' as const |
| 41 | + const data = config.getYaml(name, 'user') |
| 42 | + data.master.push(userId) |
| 43 | + config.setYaml(name, data) |
| 44 | + |
| 45 | + await e.reply(`\n新增主人: ${userId}`, { at: true }) |
| 46 | + return true |
| 47 | +}, { name: '新增主人', priority: -1, permission: 'master' }) |
| 48 | + |
| 49 | +export const delMaster = karin.command(/^#删除主人/, async (e) => { |
| 50 | + const userId = e.at[0] || e.msg.replace(/^#删除主人/, '').trim() || e.userId |
| 51 | + if (userId === e.userId) { |
| 52 | + if (e.isMaster) { |
| 53 | + await e.reply(`\n[${e.userId}] 不可以删除自己`, { at: true }) |
| 54 | + return true |
| 55 | + } |
| 56 | + } else if (!config.master().includes(userId)) { |
| 57 | + await e.reply(`\n[${userId}] 不是主人`, { at: true }) |
| 58 | + return true |
| 59 | + } |
| 60 | + |
| 61 | + const name = 'config' as const |
| 62 | + const data = config.getYaml(name, 'user') |
| 63 | + data.master = data.master.filter((v: string) => v !== userId) |
| 64 | + config.setYaml(name, data) |
| 65 | + |
| 66 | + await e.reply(`\n删除主人: ${userId}`, { at: true }) |
| 67 | + return true |
| 68 | +}, { name: '删除主人', priority: -1, permission: 'master' }) |
0 commit comments