首页 > 解决方案 > 如何向特定提及的频道发送消息?

问题描述

我正在尝试创建一个messageuser特定channel. 该命令的格式如下:

:send @user #channel

这是我的代码:

let user = message.mentions.users.first().id;
        let channell = message.mentions.channels.first()
        channel.cache.get(`${channell}`).send(`<@${user}>`);

谢谢!

标签: javascriptdiscord.js

解决方案


您想要做的第一件事是得到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);

为了获得您必须在 Discord 中激活ID的 a ,然后您可以右键单击并点击channeldeveloper modetarget channelCopy channel ID

或者,您应该能够channel通过它的名称获得 a:

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

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

targetChannel.send(`Hello ${mentionedUser.toString()}`);

我使用的原因.toString()是因为message.mentions.members.first()返回一个GuildMember. 如果您查看文档,您会注意到它会.toString()自动返回用户mention而不是GuildMember对象。


推荐阅读