如何向特定提到的频道发送消息?

时间:2021-04-20 07:35:12

标签: javascript discord.js

我正在尝试创建一个命令,该命令发送一个 def reverse_search_from_dictionary(dictionary, keyword): for key, values in dictionary.items(): if keyword in values: return key ,在特定的 message 中提及一个 user。命令格式如下:

<块引用>

channel

这是我的代码:

:send @user #channel

谢谢!

1 个答案:

答案 0 :(得分:0)

您要做的第一件事是获取 channel 中提到的 command args 和提到的 user

const channelID = args[1];
const mentionedUser = message.mentions.members.first();

if(!channelID) return message.reply('You need to provide a channelID!');
if(!mentionedUser) return message.reply(`Please use a proper member mention!`);

const targetChannel = await message.client.channels.fetch(channelID);
<块引用>

为了获得 IDchannel,您必须在 Discord 中激活 developer mode,然后您可以右键单击 target channel 并点击 {{1} }

或者,您应该能够通过其名称获得 Copy channel ID

channel

完成后,您现在可以发送您的消息到目标频道:

const targetChannel = guild.channels.cache.find(channel => channel.name === "Name of the channel");

我使用 targetChannel.send(`Hello ${mentionedUser.toString()}`); 的原因是因为 .toString() 返回 message.mentions.members.first()。如果您查看 docs,您会注意到 GuildMember 自动返回用户的 .toString() 而不是 mention 对象。