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

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);

要获得channelID,您必须在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 对象。

【讨论】:

以上是关于如何向特定提及的频道发送消息?的主要内容,如果未能解决你的问题,请参考以下文章

根据参数向特定频道发送消息

如何让机器人在不使用命令的情况下向特定频道中的特定公会发送消息

向特定频道发送消息,不起作用

JDA - 向特定频道发送消息

如何使用不和谐机器人将消息发送到特定频道?

在 Discord 中使用 cron 在特定时间向特定频道发送消息