使用 discord.js 从不同服务器向多个频道 ID 发送消息

Posted

技术标签:

【中文标题】使用 discord.js 从不同服务器向多个频道 ID 发送消息【英文标题】:Sending a message to multiple channel ID's from different servers with discord.js 【发布时间】:2020-12-24 00:50:07 【问题描述】:

我正在尝试让我的机器人在它所在的多个服务器中发送欢迎消息。我无法让它工作,任何帮助将不胜感激!

client.on('guildMemberAdd', member => 
/// Send the message to a designated channel on a server
const channel = member.guild.channels.cache.find(ch => ch.id === '677397408422035456');
/// Do nothing if the channel wasn't found on this server
if (!channel) return;
/// Send the message, mentioning the member
channel.send(`Welcome to the server, $member!`);

现在我正在使用频道 ID,但我认为使用服务器 ID 会更好,然后只向该服务器上的默认频道发送消息。我想这会是这样的:

when member joins server
get server ID
get default channel
send welcome message to default channel of server tagging the user

我对 javascript 不是很流利,所以我不太确定如何将此 sudo 代码转换为机器人的实际代码。我的机器人所做的所有其他事情都可以正常工作,但现在我正在尝试接收欢迎消息。

【问题讨论】:

【参考方案1】:

您可以使用该成员的属性:https://discord.js.org/#/docs/main/stable/class/GuildMember?scrollTo=guild。

要为欢迎频道创建数组,请使用 var welcomeChannels = [] 定义数组。然后,在就绪事件中,在通道上执行forEach() 循环,并在数组中执行.push() id。当有人加入时,用另一个for循环使其在服务器中寻找频道,并在找到服务器中的频道时返回并中断循环。

【讨论】:

现在我只在包括我自己在内的 3 台服务器中使用机器人,有没有办法将 (ch => ch.id === '677397408422035456') 设置为每个通道 id 的数组在数组中? 您是否希望将每个欢迎频道都放入数组中? 现在我不介意将每个通道放入一个数组中。就像我说的,我只在 3 台服务器中使用该机器人,并不打算将机器人变成对任何人来说都是一件大事。

以上是关于使用 discord.js 从不同服务器向多个频道 ID 发送消息的主要内容,如果未能解决你的问题,请参考以下文章

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

使用 Discord.js 从频道获取频道类别

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

Discord.js 向另一个频道发送消息

如何使用 discord.js 向频道发送消息,但只有某些用户可以看到?

从服务器中删除所有频道(语音和文本) - discord.js