【问题标题】: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}>`);
谢谢!
【问题讨论】:
标签:
javascript
discord.js
【解决方案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 对象。