-
Notifications
You must be signed in to change notification settings - Fork 1
/
giveTitle.js
96 lines (94 loc) · 3.44 KB
/
giveTitle.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
//改写自旧版小雪插件https://gitee.com/XueWerY/xiaoxue-plugin
//2023年4月18日11:28:32
//头衔设置回复模板 可自行增添删改,注意格式。
let TitleTemplete = [["你好呀!", "!"], ["很高兴认识你!", "!"], ["原来是", ",失敬失敬!"], ["头衔设置", "成功啦!"], ["你就是大名鼎鼎的", "?"],]
//头衔匹配正则 不喜欢可自行增添删改。
let reg = "^#?(我要|(给|赐|赠|赏|送)(我|咱|朕|俺|愚|私|吾|鄙|敝|卑|爹|娘|爸|妈|爷|奶|哥|姐|弟|妹))?头衔"
let regex = new RegExp(reg)
let random = 0
export class Givetitle extends plugin {
constructor() {
super({
name: '给头衔',
dsc: '给群成员一个头衔',
event: 'message',
priority: 233,
rule: [
{
reg: `${reg}.{1,30}$`,
fnc: 'giveTitle'
},
{
reg: '^#?(我不要|取消|撤销|删除)头衔了?$',
fnc: 'delTitle'
}
]
})
}
/**
* 获取头衔关键词
*/
async getTitleKeyMain(e) {
/** 判断消息内容是否非法 */
let message = e.message
for (let i in message) {
/** 判断消息中是否有除了文字以外的东西 */
/** 如果有就返回假 */
if (message[i].type !== 'text') {
await this.reply('请不要发除文字以外的东西啦~', true)
return false
}
}
/** 没有再截取头衔关键词 */
return true
}
/**
* 给头衔
*/
async giveTitleMain(e, title) {
if (title == "") returntou
if (e.group.is_owner) {
let len = 0, p = 0
if (title.length >= 6) {
while (p < title.length) {
if (title[p].search(/[\u4e00-\u9fa5]/i) + 1)
len += 3
else
len++
if (len > 18) {
title = title.slice(0, p) + "…"
break
}
p++
}
}
e.group.setTitle(e.sender.user_id, title)
random = (random + Math.floor(Math.random() * (TitleTemplete.length - 1)) + 1) % TitleTemplete.length
title = TitleTemplete[random][0] + title + TitleTemplete[random][1]
if (len > 18) title += "\n你要的头衔太长了~专属头衔最多六个汉字或者18个字母哦"
await this.reply(`${title}`, true, { at: false })
return true
}
else {
await this.reply(`抱歉啦~群主才可以设置专属头衔哦~`, false, { at: false })
return true
}
}
async giveTitle(e) {
if (this.getTitleKeyMain(e)) {
let title = e.msg.replace(regex, "")
return this.giveTitleMain(e, title)
}
}
/**
* 撤销头衔
*/
async delTitle(e) {
if (e.group.is_owner) {
await e.group.setTitle(e.sender.user_id, '')
await this.reply('头衔撤销成功啦~', true, { at: true })
} else {
await this.reply(`抱歉啦~群主才可以撤销专属头衔哦~`, false, { at: false })
}
}
}