【问题标题】: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);

要获得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 对象。

【讨论】:

    猜你喜欢
    • 2018-12-09
    • 2021-01-01
    • 2021-08-09
    • 2020-07-02
    • 2021-08-21
    • 2020-04-04
    • 2020-06-25
    相关资源
    最近更新 更多