Discord. js: MessageAttachment не определен - PullRequest
0 голосов
/ 24 апреля 2020

У меня проблемы с созданием сообщений бот-фильтра и ответом локальным файлом с моего компьютера. Вот код:

      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)

Я идиот и пропускаю простые скобки, или я должен искать другую форму этого строка кода?

1 Ответ

0 голосов
/ 24 апреля 2020

Вам необходимо импортировать MessageAttachment.

Если вы используете require для импорта разногласий. 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'
  }]
})
...