我正在尝试创建一个命令,该命令发送一个 def reverse_search_from_dictionary(dictionary, keyword):
for key, values in dictionary.items():
if keyword in values:
return key
,在特定的 message
中提及一个 user
。命令格式如下:
channel
这是我的代码:
:send @user #channel
谢谢!
答案 0 :(得分:0)
您要做的第一件事是获取 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);
<块引用>
为了获得 ID
的 channel
,您必须在 Discord 中激活 developer mode
,然后您可以右键单击 target channel
并点击 {{1} }
或者,您应该能够通过其名称获得 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()
。如果您查看 docs,您会注意到 GuildMember
自动返回用户的 .toString()
而不是 mention
对象。