Discord机器人开发:startsWith函数无法正常工作求助
Discord机器人
startsWith('!')无响应的排查方案 以下是几个常见问题点和对应解决办法:
检查机器人权限
确保你的机器人在目标服务器中拥有「读取消息/查看频道」和「发送消息」的权限。可前往服务器设置的「角色」面板,找到机器人对应的角色,确认这两项权限已开启。排查消息内容的实际值
有时候输入的消息可能包含空格、不可见字符(比如全角感叹号),导致startsWith('!')判断失败。可以先打印消息的实际内容来验证:client.on("messageCreate", msg => { // 打印消息内容,方便排查 console.log(`收到消息: "${msg.content}"`); if (msg.content.startsWith('!')) { msg.channel.send('test') } })运行后查看控制台输出的内容,确认是否和你输入的一致。
排除机器人自身消息
如果机器人触发了自己的消息循环,可能导致逻辑异常。建议先忽略机器人发送的消息:client.on("messageCreate", msg => { // 跳过机器人自己的消息 if (msg.author.bot) return; if (msg.content.startsWith('!')) { msg.channel.send('test') } })确认事件绑定与登录顺序
确保messageCreate事件的监听代码写在client.login(TOKEN)之前,否则事件可能无法正确绑定。
内容的提问来源于stack exchange,提问作者Berc Plays
相关产品推荐
相关产品推荐

