【问题标题】:Why does this make the bot crash?为什么这会使机器人崩溃?
【发布时间】:2020-07-03 03:13:18
【问题描述】:
bot.on('guildMemberAdd', member => {
    const welcomeembed = new Discord.RichEmbed()
            .setColor(0xfcdb03)
            .setTitle("Welcome")
            .addField("Welcome " + member + "** to our Discord Server!**", "Please verify yourself in " + message.guild.channels.get('723965000062074990'))
    member.guild.channels.get('723240170329079870').sendEmbed(welcomeembed); 
});

当我使用常规消息时,机器人不会崩溃。也许我只是使用错误的嵌入消息。

    Object.defineProperty(this, 'client', { value: message.client });
                                                           ^

TypeError: Cannot read property 'client' of undefined
    at new MessageEmbed (C:\Users\456899754\Desktop\node_modules\discord.js\src\structures\MessageEmbed.js:13:60)
    at Client.<anonymous> (C:\Users\456899754\Desktop\botfolder\bot.js:30:24)
    at Client.emit (events.js:310:20)
    at Guild._addMember (C:\Users\456899754\Desktop\node_modules\discord.js\src\structures\Guild.js:938:19)
    at GuildMemberAddHandler.handle (C:\Users\456899754\Desktop\node_modules\discord.js\src\client\websocket\packets\handlers\GuildMemberAdd.js:12:13)
    at WebSocketPacketManager.handle (C:\Users\456899754\Desktop\node_modules\discord.js\src\client\websocket\packets\WebSocketPacketManager.js:102:65)
    at WebSocketConnection.onPacket (C:\Users\456899754\Desktop\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:325:35)
    at WebSocketConnection.onMessage (C:\Users\456899754\Desktop\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:288:17)
    at WebSocket.onMessage (C:\Users\456899754\Desktop\node_modules\ws\lib\EventTarget.js:103:16)
    at WebSocket.emit (events.js:310:20)```

【问题讨论】:

  • 请发布错误,因为这有助于识别问题。
  • 我什至看不到它刚刚关闭的错误
  • 有没有生成日志文件?
  • 您使用的是什么版本的 discord.js?
  • 我不知道我用的是什么版本

标签: javascript bots discord discord.js


【解决方案1】:

您需要设置您的环境,以便您可以看到错误。否则,你怎么能指望能够解决你遇到的任何问题?如果您使用批处理文件或类似文件启动机器人,请对其进行编辑并在新行中添加 PAUSE 以强制窗口在进程终止后保持打开状态。否则,您可以尝试让节点处理输出到文件 - 查找执行此操作的方法。

问题可能与message.guild.channels.get('723965000062074990') 有关。没有message,您在guildMemberAdd 事件中。请改用member.guild

bot.on('guildMemberAdd', member => {
  const welcomeembed = new Discord.RichEmbed()
    .setColor(0xfcdb03)
    .setTitle("Welcome")
    .addField("Welcome " + member + "** to our Discord Server!**", "Please verify yourself in " + member.guild.channels.get('723965000062074990'))
  member.guild.channels.get('723240170329079870').sendEmbed(welcomeembed); 
});

【讨论】:

  • message.guild.channels.get('723965000062074990') 只是链接一个频道
  • @Memag 是的,但message 指的是特定的不和谐消息,您通过该消息获取发送消息的公会。这是guildMemberAdd事件,没有与之相关的消息,所以你需要通过给你的member来获取公会。
  • @Memag 要清楚,这绝对会导致错误,因为message 未定义。
  • 我完全删除了它,但它仍然崩溃
  • @Memag 来自您在帖子中编辑的错误,看来您毕竟需要使用RichEmbed。试试我编辑的代码。
猜你喜欢
  • 2021-10-12
  • 1970-01-01
  • 2018-09-09
  • 2011-06-11
  • 1970-01-01
  • 1970-01-01
  • 2022-01-13
  • 2018-10-28
  • 2020-10-30
相关资源
最近更新 更多