如何向特定提及的频道发送消息?
Posted
技术标签:
【中文标题】如何向特定提及的频道发送消息?【英文标题】:How to send a message to a specific mentioned channel? 【发布时间】:2021-07-14 09:13:11 【问题描述】:我正在尝试创建一个发送message
的命令,该命令在特定的channel
中提及user
。命令格式如下:
:send @user #channel
这是我的代码:
let user = message.mentions.users.first().id;
let channell = message.mentions.channels.first()
channel.cache.get(`$channell`).send(`<@$user>`);
谢谢!
【问题讨论】:
这能回答你的问题吗? Discord.js sending a message to a specific channel 嘿,在您下次询问之前,请阅读How to Ask :) 【参考方案1】:您要做的第一件事是获取command args
中提到的channel
和提到的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);
要获得
channel
的ID
,您必须在Discord 中激活developer mode
,然后您可以右键单击target channel
并点击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()
返回一个GuildMember
。如果您查看docs,您会注意到.toString()
自动返回用户的mention
,而不是GuildMember
对象。
【讨论】:
以上是关于如何向特定提及的频道发送消息?的主要内容,如果未能解决你的问题,请参考以下文章