diff --git a/apps/groupAdmin/voteBan.js b/apps/groupAdmin/voteBan.js index 05925a2..89c10ca 100644 --- a/apps/groupAdmin/voteBan.js +++ b/apps/groupAdmin/voteBan.js @@ -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) {} \ No newline at end of file +} catch (err) {}