![](/img/trans.png)
[英]How to only get UserID from message.guild.members.fetch() in 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.