From db4a549bc8c08654fe0d0eff7f1045463dd2bcb5 Mon Sep 17 00:00:00 2001 From: yeyang <746659424@qq.com> Date: Fri, 3 May 2024 17:36:26 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20=E5=B0=9D=E8=AF=95=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E8=BF=9B=E7=BE=A4=E9=AA=8C=E8=AF=81e.repmy=E6=9C=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89#I9LCDN?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/groupAdmin/groupVerify.js | 36 +++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/apps/groupAdmin/groupVerify.js b/apps/groupAdmin/groupVerify.js index 4762df3..c7b0f3a 100644 --- a/apps/groupAdmin/groupVerify.js +++ b/apps/groupAdmin/groupVerify.js @@ -166,7 +166,7 @@ Bot.on?.("message.group", async(e) => { delete temp[e.user_id + e.group_id] clearTimeout(kickTimer) clearTimeout(remindTimer) - return await e.reply(SuccessMsgs[e.group_id] || SuccessMsgs[0] || "✅ 验证成功,欢迎入群") + return await sendMsg(e, SuccessMsgs[e.group_id] || SuccessMsgs[0] || "✅ 验证成功,欢迎入群") } else { temp[e.user_id + e.group_id].remainTimes -= 1 @@ -176,11 +176,11 @@ Bot.on?.("message.group", async(e) => { await e.recall() const msg = `\n❎ 验证失败\n你还有「${remainTimes}」次机会\n请发送「${nums[0]} ${operator} ${nums[1]}」的运算结果` - return await e.reply([ segment.at(e.user_id), msg ]) + return await sendMsg(e, [ segment.at(e.user_id), msg ]) } clearTimeout(kickTimer) clearTimeout(remindTimer) - await e.reply([ segment.at(e.user_id), "\n验证失败,请重新申请" ]) + await sendMsg(e, [ segment.at(e.user_id), "\n验证失败,请重新申请" ]) delete temp[e.user_id + e.group_id] return await e.group.kickMember(e.user_id) } @@ -198,7 +198,7 @@ Bot.on?.("notice.group.decrease", async(e) => { delete temp[e.user_id + e.group_id] - e.group.sendMsg(`「${e.user_id}」主动退群,验证流程结束`) + sendMsg(e, `「${e.user_id}」主动退群,验证流程结束`) }) // 发送验证信息 @@ -227,7 +227,7 @@ async function verify(userId, groupId, e) { const verifyCode = String(operator === "-" ? m - n : m + n) logger.mark(`[Yenai-Plugin][进群验证]答案:${verifyCode}`) const kickTimer = setTimeout(async() => { - e.reply([ segment.at(userId), "\n验证超时,移出群聊,请重新申请" ]) + sendMsg(e, [ segment.at(userId), "\n验证超时,移出群聊,请重新申请" ]) delete temp[userId + groupId] @@ -242,7 +242,7 @@ async function verify(userId, groupId, e) { if (shouldRemind && temp[userId + groupId].remindTimer) { const msg = ` \n验证仅剩最后一分钟\n请发送「${m} ${operator} ${n}」的运算结果\n否则将会被移出群聊` - await e.reply([ segment.at(userId), msg ]) + await sendMsg(e, [ segment.at(userId), msg ]) } clearTimeout(remindTimer) }, Math.abs(time * 1000 - 60000)) @@ -250,7 +250,7 @@ async function verify(userId, groupId, e) { const msg = ` 欢迎!\n请在「${time}」秒内发送\n「${m} ${operator} ${n}」的运算结果\n否则将会被移出群聊` // 消息发送成功才写入 - if (await e.reply([ segment.at(userId), msg ])) { + if (await sendMsg(e, [ segment.at(userId), msg ])) { temp[userId + groupId] = { remainTimes: times, nums: [ m, n ], @@ -265,3 +265,25 @@ async function verify(userId, groupId, e) { clearTimeout(kickTimer) } } +async function sendMsg(e, msg) { + const sendMsgFunctions = { + reply: async() => e.reply(msg), + group: async() => e.group.sendMsg(msg), + bot: async() => e.bot.pinkGroup(e.group_id).sendMsg(msg), + self_id: async() => Bot[e.self_id].pinkGroup(e.group_id).sendMsg(msg) + } + + for (const key in sendMsgFunctions) { + if (e[key]) { + try { + const sendFunction = sendMsgFunctions[key] + let res = await sendFunction() + return res + } catch (error) { + logger.debug(`[Yenai-Plugin][进群验证]发送消息失败: ${error.message}`) + } + } + } + + throw Error("[Yenai-Plugin][进群验证]未获取到发送消息函数") +}