Skip to content

Commit a6967d7

Browse files
committed
fix: 新增设置主人
1 parent 500fb7e commit a6967d7

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed

src/apps/master.ts

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
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

Comments
 (0)