【问题标题】:discord bot command handler issue不和谐机器人命令处理程序问题
【发布时间】:2021-01-06 02:17:03
【问题描述】:

我有一个写入和读取 json 文件的不和谐机器人,我想添加命令处理程序,但是当我添加命令处理程序时,如果我添加超过 2 个命令,我只能添加 2 个命令并尝试运行命令我收到此错误留言:

C:\Users\alier\Desktop\sb\index.js:428
bot.commands.get('try').execute(bot, message, args, trymessage, tryrole); 
TypeError: Cannot read property 'execute' of undefined
    at Client.<anonymous> (C:\Users\alier\Desktop\sb\index.js:428:49)
    at Client.emit (events.js:321:20)
    at MessageCreateAction.handle (C:\Users\alier\Desktop\sb\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14)
    at Object.module.exports [as MESSAGE_CREATE] (C:\Users\alier\Desktop\sb\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)    
    at WebSocketManager.handlePacket (C:\Users\alier\Desktop\sb\node_modules\discord.js\src\client\websocket\WebSocketManager.js:384:31)
    at WebSocketShard.onPacket (C:\Users\alier\Desktop\sb\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)
    at WebSocketShard.onMessage (C:\Users\alier\Desktop\sb\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10)
    at WebSocket.onMessage (C:\Users\alier\Desktop\sb\node_modules\ws\lib\event-target.js:125:16)
    at WebSocket.emit (events.js:321:20)
    at Receiver.receiverOnMessage (C:\Users\alier\Desktop\sb\node_modules\ws\lib\websocket.js:797:20)

我的命令处理程序代码:

const fs = require('fs')
module.exports = {
    name: 'trying',
    description: "tryingcommandhandler",
    execute(bot, message, args, trymessage, tryrole){
     code...
   
  
}
} 

【问题讨论】:

  • 那是因为您为命令使用了不同的名称。命令文件中的name 属性必须与get() 函数中的名称匹配。

标签: javascript node.js discord.js


【解决方案1】:

这是我的 discordjs ping 命令中的一些代码

const { MessageEmbed, MessageAttachment } = require("discord.js");

module.exports = {
  name: "ping",
  description: "Ping!",
  execute(message, args, client) {
    let color = "CENSORED";
    const embed = new MessageEmbed()
      .setTitle("Ping!")
      .setDescription(`:clock11: My Latency is ${Math.round(client.ws.ping)}ms`)
      .setColor(color);
    message.channel.send(embed);
  }
};

所以使用你的代码就可以了

const fs = require('fs');
module.exports = {
  name: 'trying',
  description: "tryingcommandhandler",
  execute(bot, message, args, trymessage, tryrole) {
  CODE...
  }
};

如果这不起作用,请发表评论,我可以提供更多帮助

【讨论】:

    猜你喜欢
    • 2021-10-21
    • 2019-09-04
    • 2018-07-21
    • 2022-11-10
    • 2018-11-10
    • 2017-05-31
    • 2022-01-15
    • 2021-06-17
    • 2021-07-23
    相关资源
    最近更新 更多