🐛 尝试修复进群验证e.repmy未定义#I9LCDN

This commit is contained in:
yeyang
2024-05-03 17:36:26 +08:00
parent bf3d705764
commit db4a549bc8

View File

@@ -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][进群验证]未获取到发送消息函数")
}