【问题标题】:Get the Emoji url from a message in discord.js从 discord.js 中的消息中获取 Emoji url
【发布时间】: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 是问题的一部分,但没关系。冷静...

标签: javascript node.js emoji discord discord.js


【解决方案1】:

机器人只能访问它们所在服务器上的表情符号。
因此,如果您尝试从机器人不在的服务器中获取表情符号,您将得到未定义。

emoji.animated 为我返回 truefalse(取决于它是否动画)。在检查.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 以确定使用哪一个。
猜你喜欢
  • 2021-06-26
  • 1970-01-01
  • 2021-06-21
  • 1970-01-01
  • 2021-12-13
  • 2021-01-11
  • 2020-11-05
  • 2020-10-02
  • 2021-11-07
相关资源
最近更新 更多