You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord v12机器人启动无报错却不响应snap管理员命令问题求助

问题根因

  • 首要问题是命令执行方法的参数不匹配:你在主逻辑里调用adm.execute(client, message, args)传入了3个参数,但snap命令的execute方法定义只接收2个参数,第一个形参message实际拿到的是client对象,后续所有调用message的逻辑全部失效,自然没有响应也不会触发预期报错。
  • 次要问题是args参数处理错误:args是命令内容分割后生成的数组(你输入!snap 5时args = ['5']),直接对数组做isNaN()判断、数值比较逻辑都会异常,导致提前返回但无输出。

修复方案

  1. 修正snap命令的execute方法参数,和调用逻辑对齐:
// 把原来的 execute(message, args) 改成如下
execute(client, message, args) {
  1. 修正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")
  1. 可选优化:给异步操作加错误捕获,方便后续排错:
// bulkDelete 部分修改为
message.channel.bulkDelete(parseInt(deleteCount)+2)
.catch(err => console.log('删除消息出错:', err))
  1. 额外检查项:
  • 确保机器人被授予管理消息权限
  • 确保snap.gif文件存放在项目根目录,路径正确

内容的提问来源于stack exchange,提问作者Dawn of Justize

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 14:27:03