从 discord.js 中的消息中获取 Emoji url
Posted
技术标签:
【中文标题】从 discord.js 中的消息中获取 Emoji url【英文标题】:Get the Emoji url from a message in discord.js 【发布时间】:2018-09-16 08:48:27 【问题描述】:我试图让我的不和谐机器人显示表情符号的图像文件。 因此,您发布一个表情符号,机器人会回复并附上该表情符号的图片。
它适用于机器人在线的服务器的表情符号。 但是如何从其他服务器获取 emojis 的 url?
我使用 bot.emojis.get 搜索表情符号 但是我如何在客户端“bot”的“外部”搜索?或者以其他方式获取网址?
我加入服务器的表情符号代码:
const emoji = bot.emojis.get(emojiID);
await message.channel.send(files: [
attachment: emoji.url,
name: emoji.name + '.png'
]);
另一个问题是emoji.animated
一直在返回undefined
。为什么?
https://discord.js.org/#/docs/main/stable/class/Emoji?scrollTo=animated
【问题讨论】:
这个问题有答案。不要编辑它以包含新问题。 @AndréPaulo 是问题的一部分,但没关系。冷静... 【参考方案1】:机器人只能访问它们所在服务器上的表情符号。 因此,如果您尝试从机器人不在的服务器中获取表情符号,您将得到未定义。
emoji.animated
为我返回 true
或 false
(取决于它是否动画)。在检查.animated
之前确保emoji
有效。
刚刚测试,您可以从其他服务器获取表情的 URL。
从message.reactions
你可以得到所有反应的表情符号。并获取他们的网址
【讨论】:
也许可以,但我需要从消息中获取 url【参考方案2】:由于所有表情符号 URL 都采用以下形式:
https://cdn.discordapp.com/emojis/$emoji.id./* extension of the emoji e.g: .png */
你可以简单地使用它,因为你已经有了表情符号的 ID。请记住,这仅适用于机器人可以访问的表情符号。如果您想获取客户端无权访问的表情符号 URL,则需要使用一些正则表达式从消息中获取表情符号 ID。
【讨论】:
这工作正常!我只是从消息内容中获取 id。但我无法检查文件类型,所以现在所有的表情符号都是 png。 Discord 在上传时会将表情符号转换为 .png,当然 .gif 除外,因此它应该只是两者之一。可以检查emoji.animated
以确定使用哪一个。以上是关于从 discord.js 中的消息中获取 Emoji url的主要内容,如果未能解决你的问题,请参考以下文章
discord.js 如何从 fetchMessage 事件中获取“反应用户”列表?
如何查找机器人在特定频道中发送的消息? [discord.js]