发送不是函数discord.js

时间:2018-12-11 23:46:40

标签: discord

我正在尝试向通道发送消息,但我不断收到错误消息:send不是一个函数。我在此问题上停留了一个多小时。

我尝试过的方法: 使用sendMessage 尝试阅读discord.js文档,但似乎根本不起作用。

这是我的代码:

//Grab the Discord Library
const Discord = require("discord.js");

//What will connect to the server.
const bot = new Discord.Client();

//
bot.on('ready', () => {
  console.log("Connected as " + bot.user.tag)

  //Shows and set the activity of the user.
  bot.user.setActivity("El Professor build me", {type: "Watching"})
  //Inform you of the servers this bot is connected to.
  bot.guilds.forEach((guild) => {
    console.log(guild.name)
    guild.channels.forEach((channel) => {
      console.log(` - ${channel.name} ${channel.type} ${channel.id}`)
    })
    //Voice Channel ID = 
  })
  var generalChannel = bot.channels.get("123456789").send("Hello World")
})

错误消息:

C:\Users\F4_ALFA\documents\FirstDiscordBot\index.js:21
  var generalChannel = bot.channels.get("123456789").send("Hello World")
                                                              ^

TypeError: bot.channels.get(...).send is not a function
    at Client.bot.on (C:\Users\F4_ALFA\documents\FirstDiscordBot\index.js:21:63)
    at Client.emit (events.js:194:15)
    at WebSocketConnection.triggerReady (C:\Users\F4_ALFA\documents\FirstDiscordBot\node_modules\discord.js\src\client\websocket\WebSocketConn
ection.js:125:17)
    at WebSocketConnection.checkIfReady (C:\Users\F4_ALFA\documents\FirstDiscordBot\node_modules\discord.js\src\client\websocket\WebSocketConn
ection.js:141:61)
    at GuildCreateHandler.handle (C:\Users\F4_ALFA\documents\FirstDiscordBot\node_modules\discord.js\src\client\websocket\packets\handlers\Gui
ldCreate.js:13:31)
    at WebSocketPacketManager.handle (C:\Users\F4_ALFA\documents\FirstDiscordBot\node_modules\discord.js\src\client\websocket\packets\WebSocke
tPacketManager.js:103:65)
    at WebSocketConnection.onPacket (C:\Users\F4_ALFA\documents\FirstDiscordBot\node_modules\discord.js\src\client\websocket\WebSocketConnecti
on.js:333:35)
    at WebSocketConnection.onMessage (C:\Users\F4_ALFA\documents\FirstDiscordBot\node_modules\discord.js\src\client\websocket\WebSocketConnect
ion.js:296:17)
    at WebSocket.onMessage (C:\Users\F4_ALFA\documents\FirstDiscordBot\node_modules\ws\lib\event-target.js:120:16)
    at WebSocket.emit (events.js:189:13)

3 个答案:

答案 0 :(得分:0)

channels属性返回带有一对IDChannel object的{​​{3}}。

  

Collection类可以代表不一致的任何频道。您无法通过它发送任何消息,因为它没有send()方法。

答案 1 :(得分:0)

client.guilds.find(x => x.name === "ChatLogs").channels.find(y => y.name === "server-testing1").send(botEmbed)尝试

之前,我已经使用过此功能

答案 2 :(得分:0)

Discord.js 使用缓存并且您的代码没有“.cache”,您应该尝试

bot.channels.cache.get('id').send('Hello world!')