簡體   English   中英

從消息 discord.js v12 獲取表情符號

[英]Get emojis from message discord.js v12

我想從 discord.js 上的消息中獲取第一個表情符號

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

我該怎么做?

其實我最近也有這個問題! 我能夠整合的解決方案是:

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 將表情符號的不同部分作為字符串過濾掉。 一個標准的表情符號看起來像: <:emojiname:emojiID>例如。 <:BBwave:562730391362994178>動畫表情符號如下所示: <a:emojiname:emojiID>

RegEx 獲取這些部分中的每一個並將它們拆分為

<
:BBwave:
562730391362994178
>

或者

a
<
:BBwave:
562730391362994178
>

我提供的代碼基本上需要 ID 並去掉所有其他信息。 然后將此 ID 添加到 Discord 的標准表情符號鏈接中: https ://cdn.discordapp.com/emojis/562730391362994178.png? v=1或添加到末尾帶有.gif動畫表情符號的 URL 中。

我希望這不是壓倒性的! 我知道那肯定是我第一次開始使用 discord.js 的時候。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM