Discord节点js“ TypeError:channel.send不是函数”

时间:2019-07-27 14:59:41

标签: node.js discord

当前正在创建一个不和谐的bot并遇到一些错误,声称“ channel.send”不是一个函数。

这是一条命令,该命令允许漫游器向公会中的每个频道发送消息。

case "msgall":
    if (!args[1]) return message.reply("enter a msg")
    if (message.author.bot) return undefined;
    announce = args.slice(1).join(" ")
    message.delete();
    message.guild.channels.forEach(channel=>{
        channel.send(announce)
        channel.send(announce)
        channel.send(announce)
    }).catch(console.log);
    break;

它应该能够向服务器上的每个通道发送一条消息,但是它总是引发错误。

1 个答案:

答案 0 :(得分:0)

原因是由于message.guild.channels不是Channel对象的数组。根据{{​​3}},您首先需要找到频道(按名称或频道ID):

  

// Get a Channel by Name message.guild.channels.find(channel => channel.name === "channel-name"); // returns <Channel>

我建议您创建一个通道名称(或ID)数组,并在该数组上进行迭代。例如:

const channels = ['channel-1', 'channel-2'];
channels.forEach(c => {
  const ch = message.guild.channels.find(channel => channel.name === c);
  ch.send(announce);
});