当前正在创建一个不和谐的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;
它应该能够向服务器上的每个通道发送一条消息,但是它总是引发错误。
答案 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);
});