web-dev-qa-db-fra.com

Comment envoyer un message à un canal spécifique

J'essaie d'envoyer un message à un canal spécifique avec mon bot Discord, qui se trouve sur plusieurs serveurs. Je veux que le bot récupère un message d'un serveur et envoie un message à mon serveur personnel, dans un canal spécifique, mais je n'arrive pas à le faire "trouver" le canal. L'API a-t-elle changé ou quelque chose? J'ai essayé npm install discord.js à mettre à jour également.

Code:

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

J'ai essayé quelques choses mais aucune n'a fonctionné.

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
aandamitchell

En supposant que vous ayez client (qui serait une instance de Discord.Client()), essayez de trouver le canal souhaité en utilisant Client.find :

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

Si vous n'avez pas directement client mais avez une instance message , vous pouvez toujours y accéder à partir de Message.client propriété.

5
GMaiolo

Eh bien, si vous avez l'instance "client" de Discord.Client(), alors utilisez ceci:

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

C'est vraiment simple mais précis.

4