【问题标题】:Get emojis from message discord.js v12从消息 discord.js v12 中获取表情符号
【发布时间】:2021-01-11 04:07:44
【问题描述】:

我想从 discord.js 上的消息中获取第一个表情符号

示例:<message>.content.emojis.first()

我该怎么做?

【问题讨论】:

    标签: javascript node.js discord discord.js


    【解决方案1】:

    实际上我最近也遇到了这个问题!我能够整理出的解决方案如下:

    TL;DR 您想使用.includes 来简单地查找消息中是否存在表情符号 这是一个小例子:

        const message = await message.channel.messages.fetch()
        let findEmoji = message.includes("<:")
        let firstEmoji = findEmoji.first()
    

    TL 结束;DR。

    这是一个非常冗长的版本,它可以抓取一个表情符号并使用 RegEx 吐出嵌入的图像:

      const hasEmoteRegex = /<a?:.+:\d+>/gm
      const emoteRegex = /<:.+:(\d+)>/gm
      const animatedEmoteRegex = /<a:.+:(\d+)>/gm
    
      const messages = await message.channel.messages.fetch()
      const message = messages.find(m => m.content.match(hasEmoteRegex))
    
      if (emoji = emoteRegex.exec(message)) {
      const url = "https://cdn.discordapp.com/emojis/" + emoji[1] + ".png?v=1"
      msg.channel.send(url)
      }
      else if (emoji = animatedEmoteRegex.exec(message)) {
      const url = "https://cdn.discordapp.com/emojis/" + emoji[1] + ".gif?v=1"
      msg.channel.send(url)
      }
      else {
      message.channel.send("Couldn't find an emoji to paste!")
      }
    

    这使用 RegEx 将表情符号的不同部分过滤为字符串。 标准表情符号如下所示:&lt;:emojiname:emojiID&gt; 例如。 &lt;:BBwave:562730391362994178&gt; 动画表情符号如下所示:&lt;a:emojiname:emojiID&gt;

    RegEx 将这些部分中的每一个都分解为

    <
    :BBwave:
    562730391362994178
    >
    

    a
    <
    :BBwave:
    562730391362994178
    >
    

    我提供的代码基本上只是获取 ID 并删除了所有其他信息。然后,它将此 ID 添加到 Discord 的标准表情符号链接中:https://cdn.discordapp.com/emojis/562730391362994178.png?v=1 或添加到末尾有 .gif 的 URL 中以获取动画表情符号。

    我希望这不会太过分!我知道那肯定是我第一次开始使用 discord.js 的时候。

    【讨论】:

      猜你喜欢
      • 2021-01-21
      • 2021-01-28
      • 2020-11-05
      • 2021-07-24
      • 2020-02-09
      • 2021-07-16
      • 2021-08-04
      • 2021-11-13
      • 1970-01-01
      相关资源
      最近更新 更多