Discord v12机器人启动无报错却不响应snap管理员命令问题求助
问题根因
- 首要问题是命令执行方法的参数不匹配:你在主逻辑里调用
adm.execute(client, message, args)传入了3个参数,但snap命令的execute方法定义只接收2个参数,第一个形参message实际拿到的是client对象,后续所有调用message的逻辑全部失效,自然没有响应也不会触发预期报错。 - 次要问题是
args参数处理错误:args是命令内容分割后生成的数组(你输入!snap 5时args = ['5']),直接对数组做isNaN()判断、数值比较逻辑都会异常,导致提前返回但无输出。
修复方案
- 修正
snap命令的execute方法参数,和调用逻辑对齐:
// 把原来的 execute(message, args) 改成如下 execute(client, message, args) {
- 修正
args的取值逻辑,取数组第一个元素作为删除数量:
// 替换原来的两个参数判断逻辑 const deleteCount = args[0] if(isNaN(deleteCount)) return message.reply("Bruh,Specify how much message should I delete") if(parseInt(deleteCount) > 99) return message.reply("You ain't making me do that much work boi")
- 可选优化:给异步操作加错误捕获,方便后续排错:
// bulkDelete 部分修改为 message.channel.bulkDelete(parseInt(deleteCount)+2) .catch(err => console.log('删除消息出错:', err))
- 额外检查项:
- 确保机器人被授予
管理消息权限 - 确保
snap.gif文件存放在项目根目录,路径正确
内容的提问来源于stack exchange,提问作者Dawn of Justize
相关产品推荐
相关产品推荐

