Как отправить сообщение на определенный канал - PullRequest
0 голосов
/ 01 июля 2018

Я пытаюсь отправить сообщение на определенный канал с моим ботом Discord, который находится на нескольких серверах. Я хочу, чтобы бот взял сообщение с одного сервера и отправил сообщение на мой персональный сервер по определенному каналу, но не могу его найти, чтобы «найти» канал. Изменился ли API или что-то еще? Я пытался npm install discord.js обновить тоже.

Код:

if (message.author.id == 'XXXXX' && !mess.includes("Dank") && message.channel.id != 'XXXXX') {
  bot.channels.get('XXXXX').send('memes');
}

Я попробовал несколько вещей, но ничего не получилось.

TypeError: Cannot read property 'send' of undefined
    at decideIfMention (C:\Users\XXXX\Desktop\Coding Crud\Discord Bot 2\bot.js:80:45)
    at Client.bot.on (C:\Users\XXXX\Desktop\Coding Crud\Discord Bot 2\bot.js:68:3)
    at emitOne (events.js:116:13)
    at Client.emit (events.js:211:7)
    at MessageCreateHandler.handle (C:\Users\XXXX\Desktop\Coding Crud\Discord Bot 2\node_modules\discord.js\src\client\websocket\packets\handlers\MessageCreate.js:9:34)
    at WebSocketPacketManager.handle (C:\Users\XXXX\Desktop\Coding Crud\Discord Bot 2\node_modules\discord.js\src\client\websocket\packets\WebSocketPacketManager.js:103:65)
    at WebSocketConnection.onPacket (C:\Users\XXXX\Desktop\Coding Crud\Discord Bot 2\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:333:35)
    at WebSocketConnection.onMessage (C:\Users\XXXX\Desktop\Coding Crud\Discord Bot 2\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:296:17)
    at WebSocket.onMessage (C:\Users\XXXX\Desktop\Coding Crud\Discord Bot 2\node_modules\ws\lib\event-target.js:120:16)
    at emitOne (events.js:116:13)

Ответы [ 2 ]

0 голосов
/ 01 мая 2019

Ну, если у вас есть экземпляр "client" Discord.Client(), используйте это:

client.channels.get(`channelID`).send(`Text`)

Это действительно просто, но точно.

0 голосов
/ 01 июля 2018

Если у вас есть client (который будет экземпляром Discord.Client()), попробуйте найти нужный канал с помощью Client.find :

const channel = client.channels.find('name', channelName)
channel.send(message)

Если у вас нет client напрямую, но есть экземпляр message, вы всегда можете получить к нему доступ из свойства Message.client .

...