尝试向多个 Discord 频道发送消息

Posted

技术标签:

【中文标题】尝试向多个 Discord 频道发送消息【英文标题】:Trying to send a message to Multiple Discord channels 【发布时间】:2020-01-05 17:08:10 【问题描述】:

我用 Discord.js 和 MongoDB 为我的 discord 服务器制作了一个 Discord 机器人。

所以在我的 MongoDB 中,我有一个频道 ID 的变量,这是我的 3 个不和谐中的每个频道中的不同频道。使用下面的代码,当我运行命令时,消息只会发送到数据库中的第一个不和谐通道。关于我做错了什么有什么想法吗?

const Discord = require("discord.js");

module.exports.run = async (bot, message, args, settings, guild, channels) => 
   if (message.channel.id === '123456789') 
    bot.guilds.forEach(guild => 
   const sayMessage = args.join(" ");

let sicon = message.guild.iconURL;
let serverembed = new Discord.RichEmbed()
.setTitle("**Announcement**")
.setFooter("from SpikyZA", sicon)
.setTimestamp()
.setColor("#5500FF")
.addField("Message", `$sayMessage`);

//let testchannel = guild.channels.find(c => c.id === `$settings.notify`);
bot.channels.get(`$settings.notify`).send(serverembed);
   );

;

module.exports.help = 
  name:"test",
  aliases: ["test"]
;```

【问题讨论】:

每个服务器的频道id不一样,你可以获取3个公会的默认频道并在那里发送消息,也可以制作一个频道数组并将它们与公会对应并为每个公会发送. 嗯,好的。我想我可以使用从数据库中提取的单个频道 ID。谢谢 【参考方案1】:

如果您正在寻找一种简单的方法,请尝试遍历数据库中的项目数量,如下所示:

for(n = 0; n <= channelDB.length; n++)
  let ch = bot.channels.get(channelDB.channels[n].id);
  ch.send(embed);

或任何与MongoDB ?‍♂️ 一起使用的类似代码

【讨论】:

以上是关于尝试向多个 Discord 频道发送消息的主要内容,如果未能解决你的问题,请参考以下文章

Discord py 向频道发送消息

Discord.js 机器人无法向特定频道发送消息

Discord.js 向存储在数据库中的每个频道 ID 发送消息

Python:通过 cog 和后台任务向 Discord 中的特定频道发送消息

如何在 discord.js 中同时向不同频道发送消息?

通过 POST 请求向 Discord 频道发送消息会导致代码 401