当你给它一个表情符号的名字时,你如何让一个 Discord 机器人发送一个表情符号?

How do you make a Discord bot send an emoji when you give it the name of the emoji?

我试图让我的 Discord 机器人在我告诉它名字时发送表情符号。例如,假设我发送 !emoji hello,我希望机器人发回名为 hello 的表情符号。

如果我发送表情符号,机器人会发回它,但我不确定如何从发送给机器人的名称中获取表情符号。

我使用discord.jsv12作为参考。

你可以试试这样的

bot.on("messageCreate", (message) => {
    const exampleEmoji = message.guild.emojis.cache.find(emoji => emoji.name === message.content);
    channel.message.send(`Is this the emoji you want? ${exampleEmoji}`);
});

然后您可以将它嵌套在您的 if 语句中,只要您喜欢使用您正在使用的任何命令。这也应该 v12/v13 兼容,我相信与旧版本的唯一区别是您是否向查找功能添加缓存。

您还可以使用相同的函数查找表情符号作为布尔值以确定表情符号是否存在,如果不存在则发送不同的消息以供反馈。

我还发现了这个非常有趣的功能,它在破译我拥有的表情符号以及不在我展示的范围内时帮助了我。

if (message.content === "listemojis") {
   const emojiList = message.guild.emojis.cache.map((e, x) => `${x} = ${e} | ${e.name}`).join("\n");
   message.channel.send(emojiList);
}

这将为您搜索范围内的每个表情符号输出此内容。

450661466287112204 = :image: | name

我找到了 here。 希望这有帮助