原贴魔改版代码原贴,使用发现问题如下:/search <用户UID>
这个命令好像没起作用。输入后没有任何反应。
其它人使用/
相关指令,会传递到admin号上。
原代码我在此代码的基础上使用ChatGPT修改了543-589行代码,代码如下:
async function handleGuestMessage(message) { const chatId = message.chat.id.toString(); const text = message.text?.trim(); // === 插入:过滤管理员专用命令,普通用户不能使用 === const adminCommands = [ '/help','/search', '/block', '/unblock', '/checkblock', '/fraud', '/unfraud', '/list', '/blocklist' ]; if (text && adminCommands.some(cmd => text.startsWith(cmd))) { return sendMessage({ chat_id: chatId, text: '此命令仅限管理员使用。' }); } // === 过滤结束 === const isblocked = await nfd.get('isblocked-' + chatId, { type: "json" }); if (isblocked) { return sendMessage({ chat_id: chatId, text: '您已被屏蔽,无法发送消息!' }); } // 正常转发到管理员 const forwardReq = await forwardMessage({ chat_id: ADMIN_UID, from_chat_id: message.chat.id, message_id: message.message_id }); if (forwardReq.ok) { await nfd.put('msg-map-' + forwardReq.result.message_id, chatId); // 如果当前聊天目标不是这个用户,就提示切换目标 if (currentChatTarget !== chatId) { chatTargetUpdated = false; // 重置标志,因为有新的聊天目标 if (!chatTargetUpdated) { const userInfo = await getUserInfo(chatId); let nickname = userInfo ? `${userInfo.first_name} ${userInfo.last_name || ''}`.trim() : `UID:${chatId}`; nickname = escapeMarkdown(nickname); const chatLink = `tg://user?id=${chatId}`; let messageText = `新的聊天目标:\n*${nickname}*\nUID: ${chatId}\n[点击不用bot直接私聊](${chatLink})`; if (await isFraud(chatId)) { messageText += `\n\n*请注意,对方是骗子!*`; } await sendMessage({ chat_id: ADMIN_UID, parse_mode: 'MarkdownV2', text: messageText, ...generateKeyboard([{ text: `选择${nickname}`, callback_data: `select_${chatId}` }]) }); chatTargetUpdated = true; } } else { chatTargetUpdated = true; } await saveRecentChatTargets(chatId); } return handleNotify(message);}现出现以下问题如图所示
使用/block /unblock /checkblock
命令时不会提示'此命令仅限管理员使用。',使用其他命令皆会提示'此命令仅限管理员使用。',使用/blocklist
命令时该条命令会发送到admin号码。
想问下各位大佬该怎么修改上面代码,谢谢。
评论 (0)