Bot接收消息后未正常回复问题求助(附代码)
问题排查与解决方案
针对你的Discord Bot能接收消息但不响应ping命令的问题,按以下步骤排查修复:
检查Bot频道权限
确认Bot在目标频道拥有「发送消息」「读取消息历史」「管理消息」权限。进入服务器设置→角色→找到Bot对应的角色,勾选上述权限。修正消息匹配逻辑
原代码的严格全等匹配===会因大小写、额外空格导致匹配失败,改成忽略大小写的匹配:if (msg.content.toLowerCase() === 'ping')或用正则实现更灵活的匹配:
if (/^ping$/i.test(msg.content))调整异步操作顺序
msg.reply和msg.delete都是异步操作,未等待执行完成可能引发异常,改成异步函数确保执行顺序:client.on('message', async msg => { console.log("Message recieved."); // 排除Bot自身消息,避免触发循环 if (msg.author.bot) return; if (msg.content.toLowerCase() === 'ping') { await msg.reply("pong"); await msg.delete(); } });适配Discord.js版本
若使用Discord.js v13及以上版本,message事件已被废弃,需替换为messageCreate事件:client.on('messageCreate', async msg => { // 后续逻辑同上 });
内容的提问来源于stack exchange,提问作者ReverseAlpha
相关产品推荐
相关产品推荐

