【问题标题】:Discord.js: MessageAttachment is not definedDiscord.js:未定义 MessageAttachment
【发布时间】:2020-08-07 10:36:24
【问题描述】:

我无法让我的 bot 过滤消息并使用我计算机上的本地文件进行响应。代码如下:

      client.on("message", msg => {
      console.log(msg.content);
      let wordArray = msg.content.split(" ")
      console.log(wordArray)

      let filterWords = ['test']

      for(var i = 0; i < filterWords.length; i++) {
        if(wordArray.includes(filterWords[i])) {
          msg.delete()
          // Create the attachment using MessageAttachment
          const attachment = new MessageAttachment('cbcfilter.png');
          msg.channel.send(attachment)  
        }
      }
    });

它给了我这个错误信息:

    ReferenceError: MessageAttachment is not defined
        at Client.<anonymous> (/Users/DShirriff/cbcbot/bot.js:108:26)
        at Client.emit (events.js:323:22)
        at MessageCreateAction.handle (/Users/DShirriff/cbcbot/node_modules/discord.js/src/client/actions/MessageCreate.js:31:14)
        at Object.module.exports [as MESSAGE_CREATE] (/Users/DShirriff/cbcbot/node_modules/discord.js/src/client/websocket/handlers/MESSAGE_CREATE.js:4:32)
        at WebSocketManager.handlePacket (/Users/DShirriff/cbcbot/node_modules/discord.js/src/client/websocket/WebSocketManager.js:386:31)
        at WebSocketShard.onPacket (/Users/DShirriff/cbcbot/node_modules/discord.js/src/client/websocket/WebSocketShard.js:435:22)
        at WebSocketShard.onMessage (/Users/DShirriff/cbcbot/node_modules/discord.js/src/client/websocket/WebSocketShard.js:293:10)
        at WebSocket.onMessage (/Users/DShirriff/cbcbot/node_modules/ws/lib/event-target.js:120:16)
        at WebSocket.emit (events.js:311:20)
        at Receiver.receiverOnMessage (/Users/DShirriff/cbcbot/node_modules/ws/lib/websocket.js:801:20)

我是一个白痴并且缺少一个简单的括号,还是我应该寻找这行代码的不同形式?

【问题讨论】:

    标签: discord.js


    【解决方案1】:

    您需要导入MessageAttachment

    如果您使用 require 导入 discord.js,那么您可以这样做:

    const Discord = require('discord.js')
    const attachment = new Discord.MessageAttachment('cbcfilter.png');
    

    如果您使用的是import,那么您可以这样做:

    import { MessageAttachment } from 'discord.js'
    const attachment = new MessageAttachment('cbcfilter.png');
    

    旁注:你不必构造MessageAttachment,你可以这样做

    msg.channel.send({files: ['cbcfilter.png']})
    

    msg.channel.send({
    files: [{
        attachment: 'entire/path/to/cbcfilter.png',
        name: 'cbcfilter.png'
      }]
    })
    

    【讨论】:

    • 谢谢!它奏效了,而且看起来比以前容易得多。
    猜你喜欢
    • 2021-06-20
    • 2021-06-28
    • 2020-12-14
    • 2022-08-21
    • 2021-05-06
    • 2021-07-10
    • 2021-04-06
    • 2020-06-27
    • 2020-12-24
    相关资源
    最近更新 更多