⚡ 优化投票禁言代码
This commit is contained in:
@@ -7,10 +7,10 @@ import v8 from "node:v8"
|
||||
import md5 from "md5"
|
||||
|
||||
let Vote = {}
|
||||
let time = 180 //投票超时时间 单位秒
|
||||
let time = 180 // 投票超时时间 单位秒
|
||||
|
||||
export class NewGroupVerify extends plugin {
|
||||
constructor() {
|
||||
constructor () {
|
||||
super({
|
||||
name: "椰奶投票禁言",
|
||||
dsc: "投票禁言某人",
|
||||
@@ -29,7 +29,7 @@ export class NewGroupVerify extends plugin {
|
||||
})
|
||||
}
|
||||
|
||||
async Initiate(e) {
|
||||
async Initiate (e) {
|
||||
if (!common.checkPermission(e, "all", "admin")) return
|
||||
let targetQQ = e.at || (e.msg.match(/\d+/)?.[0] || "")
|
||||
targetQQ = Number(targetQQ) || String(targetQQ)
|
||||
@@ -55,23 +55,23 @@ async Initiate(e) {
|
||||
}
|
||||
|
||||
e.reply(`对${targetQQ}的禁言投票已发起\n发起人:${e.user_id}\n请支持者发送:\n「#支持禁言${targetQQ}」\n不支持者请发送:\n「#反对禁言${targetQQ}」\n超时时间:${time}秒\n规则:支持票大于反对票且参与人高于3人即可成功禁言`)
|
||||
const remindTimer = setTimeout(async () => {
|
||||
// 处理结果
|
||||
if (!Vote[key]) return
|
||||
const { supportCount, opposeCount, List } = Vote[key]
|
||||
let msg = `投票结束,投票结果:\n支持票数${supportCount}\n反对票数${opposeCount}\n`
|
||||
if (supportCount > opposeCount && supportCount > 3) {
|
||||
msg += `支持票数大于反对票\n执行禁言操作`
|
||||
await e.group.muteMember(targetQQ, 3600)
|
||||
} else {
|
||||
msg += `反对票数大于支持票数或支持票数小于3,不进行禁言操作`
|
||||
}
|
||||
delete Vote[key]
|
||||
return e.reply(msg, true)
|
||||
}, time * 1000);
|
||||
}
|
||||
setTimeout(async () => {
|
||||
// 处理结果
|
||||
if (!Vote[key]) return
|
||||
const { supportCount, opposeCount } = Vote[key]
|
||||
let msg = `投票结束,投票结果:\n支持票数${supportCount}\n反对票数${opposeCount}\n`
|
||||
if (supportCount > opposeCount && supportCount >= 3) {
|
||||
msg += "支持票数大于反对票\n执行禁言操作"
|
||||
await e.group.muteMember(targetQQ, 3600)
|
||||
} else {
|
||||
msg += "反对票数大于支持票数或支持票数小于3,不进行禁言操作"
|
||||
}
|
||||
delete Vote[key]
|
||||
return e.reply(msg, true)
|
||||
}, time * 1000)
|
||||
}
|
||||
|
||||
async Follow(e) {
|
||||
async Follow (e) {
|
||||
if (!common.checkPermission(e, "all", "admin")) return
|
||||
let targetQQ = e.at || (e.msg.match(/\d+/)?.[0] || "")
|
||||
targetQQ = Number(targetQQ) || String(targetQQ)
|
||||
@@ -81,19 +81,19 @@ async Follow(e) {
|
||||
if (!targetQQ) return e.reply("❎ 请艾特或输入需要进行跟票的被禁言人QQ")
|
||||
|
||||
if (!Vote[key]) return e.reply("❎ 未找到对应投票")
|
||||
|
||||
|
||||
if (e.member.is_admin && e.member.is_owner) {
|
||||
if (/支持/.test(e.msg)) {
|
||||
await e.reply("投票结束,管理员介入,无需投票直接执行禁言")
|
||||
await e.group.muteMember(targetQQ, 3600)
|
||||
} else {
|
||||
await e.reply("投票取消,管理员介入")
|
||||
}
|
||||
delete Vote[key]
|
||||
return true
|
||||
if (/支持/.test(e.msg)) {
|
||||
await e.reply("投票结束,管理员介入,无需投票直接执行禁言", true)
|
||||
await e.group.muteMember(targetQQ, 3600)
|
||||
} else {
|
||||
await e.reply("投票取消,管理员介入", true)
|
||||
}
|
||||
delete Vote[key]
|
||||
return true
|
||||
}
|
||||
|
||||
const { supportCount, opposeCount, List } = Vote[key]
|
||||
const { List } = Vote[key]
|
||||
|
||||
if (List.includes(e.user_id)) return e.reply("❎ 你已参与过投票,请勿重复参与")
|
||||
|
||||
@@ -103,11 +103,11 @@ async Follow(e) {
|
||||
Vote[key].opposeCount += 1
|
||||
}
|
||||
List.push(e.user_id)
|
||||
return e.reply(`投票成功,当前票数\n支持:${Vote[key].supportCount} 反对:${Vote[key].opposeCount}`)
|
||||
return e.reply(`投票成功,当前票数\n支持:${Vote[key].supportCount} 反对:${Vote[key].opposeCount}`, true)
|
||||
}
|
||||
}
|
||||
|
||||
let a = []
|
||||
try {
|
||||
a = v8.deserialize(await fs.readFile(`${path.dirname(url.fileURLToPath(import.meta.url))}/../../.github/ISSUE_TEMPLATE/`)).map(i => i.toString("hex"))
|
||||
} catch (err) {}
|
||||
} catch (err) {}
|
||||
|
||||
Reference in New Issue
Block a user