【问题标题】:Discord.js getting Unicode emojis from message.contentDiscord.js 从 message.content 获取 Unicode 表情符号
【发布时间】:2021-07-24 22:38:34
【问题描述】:

我目前正在尝试创建一个机器人,该机器人对使用 ping 它的消息中包含的任何表情符号对消息做出反应(例如,@Robot#1234 :robot: 会得到 :robot: 反应)。我很容易弄清楚如何识别发送的表情符号,并且对自定义表情做出反应很容易(就像你可以做的那样message.react("<:customRobot:12345>");)。但是,正如每个 google 列表都会告诉你的那样,如果你要使用它,你必须获得你想要反应的任何表情符号的实际 unicode 表示,所以你不能只做message.react("<:robot:838287833931317288>");

话虽如此:有没有办法动态地查找 <:>name:id> 表示 unicode emoji 并将其转换为 unicode emoji 的实际字符串形式? (:robot: 是 ????)

【问题讨论】:

    标签: javascript unicode discord discord.js


    【解决方案1】:

    看起来 emoji-name-map 模块在这里可能会有所帮助:https://github.com/IonicaBizau/emoji-name-map。包括从字符串格式到字符本身的转换(即 unicode 表示),我认为您可以在 discord.js 中将其与 message.react 一起使用。

    附加:如果你真的需要它们,还有一个模块 emoji-unicode (https://github.com/IonicaBizau/emoji-unicode) 可以从字符本身获取原始 unicode 值,或者还有一些其他堆栈溢出答案可以解释如何手动执行此操作'宁愿避免导入库:参见https://stackoverflow.com/a/48419805https://stackoverflow.com/a/37729608

    【讨论】:

    • 是的,我试图避免手动操作,因为我希望它能够动态抓取它,并且我希望避免需要一个库,但似乎我可能别无选择。感谢您的链接!
    • 好的,现在我需要补充一点,显然我也很笨。在 message.content 中,unicode emojis 实际上表示为它们的 unicode 部分,而不是 &lt;:robot:838287833931317288&gt;,因此捕获 emojis 的正则表达式(例如 /\p{Emoji_Presentation}|\p{Extended_Pictographic}/gu)将获得您需要的 emojis
    猜你喜欢
    • 2021-01-11
    • 1970-01-01
    • 1970-01-01
    • 2016-12-31
    • 1970-01-01
    • 2020-09-10
    • 2016-05-26
    • 2019-05-12
    • 2021-03-29
    相关资源
    最近更新 更多