【问题标题】:Unable to read standard emoji name from reaction [discord.js]无法从反应中读取标准表情符号名称 [discord.js]
【发布时间】:2021-08-14 19:25:59
【问题描述】:

嘿,我正在做一个机器人,我需要从反应中获取表情符号的名称。我现在用console.log () 做到了,但我很惊讶,因为我得到了某种奇怪的徽章而不是表情符号名称。

我有表情符号??? :tada: 的新闻,我期待以这个表情符号的名义出现这样的事情。与此同时,我收到了这样的东西。这是我的问题还是我做错了什么?请帮忙。

//------------------------------
???? index.js
//------------------------------
client.on('messageReactionAdd', async (reaction) => {
  console.log(reaction.emoji.reaction)
})



//------------------------------

     Below console output

//------------------------------
_emoji: ReactionEmoji {
    animated: undefined,
    name: '�',
    id: null,
    deleted: false,
    reaction: [Circular]
},

【问题讨论】:

标签: javascript node.js json discord.js


【解决方案1】:

不幸的是,没有直接的方法来获取内置不和谐表情符号的名称。
Discord 使用 Twemoji 并且仅通过 ID 引用它们。因此,您必须以某种方式将 Emoji 的 Unicode 映射到实际的 emoji 名称。

emoji-dictionary 等库可以提供帮助:

let emojiDic = require("emoji-dictionary");

// ...

client.on("messageReactionAdd", async(reaction) => {
    console.log(emojiDic.getName(reaction.emoji.toString()));
    // -> "tada"
});

注意:您将无法在不和谐中重复使用该名称。例如,此代码将工作:

message.channel.send(":" + emojiDic.getName(reaction.emoji.toString()) + ":");

您必须通过 Unicode 直接发送,或者通过 Emoji's ID 发送。

【讨论】:

    猜你喜欢
    • 2021-08-04
    • 2021-07-07
    • 2019-02-04
    • 2021-07-24
    • 2018-09-25
    • 2020-11-14
    • 2021-08-11
    • 1970-01-01
    • 2021-01-11
    相关资源
    最近更新 更多