如何使机器人发送个性化的表情符号?

时间:2020-09-02 12:05:58

标签: javascript node.js discord discord.js

好吧,我当前正在使用表情符号:x:,但是在我的服务器上,我有一个名为:superbotxemoji 的表情符号:我只是不知道我该如何让我的机器人使用它

我的代码:

const Discord = require('discord.js');

module.exports = {
 name: 'say',
 description: 'say',
 execute(message, args) {
  const { prefix, token } = require('../config.json');

  if (!message.member.hasPermission('ADMINISTRATOR'))
   return message.channel.send({
    embed: {
     color: 16777201,
     description: `:x: | ${message.author}, You are not allowed to use this command.`,
     footer: {
      text: `   | Required permission: ADMINISTRATOR`,
     },
    },
   });

  if (!args.length)
   return message.channel.send({
    embed: {
     color: 16777201,
     description: `:x: | ${message.author}, You need to put a message.`,
     footer: {
      text: `   | Example: !say hello`,
     },
    },
   });

  const sayMessage = args.join(' ');
  message.delete({ timeout: 1 });
  message.channel.send(sayMessage);
 },
};

2 个答案:

答案 0 :(得分:2)

discord.js官方指南中实际上有一个非常详细的解释,您可以找到enter image description here,尽管我将尝试对其进行解释。

要发送自定义表情符号,您必须获取该表情符号的唯一ID。要找到该表情,您必须将表情符与前面的反斜杠不一致地发送;本质上是逃避表情符号。

Escape

这将产生以下格式的唯一表情符号ID<:emoji-name:emoji-id>

Format

如果将此特殊字符串粘贴到消息中,则机器人将发送表情符号。但是,表情符号必须来自该机器人所属的公会。

Emoji

另一方面,还有另一种非常简单的方法,可以使用here集合和client.emojis.cache方法来获取表情符号。

client.emojis.cache.find(emoji => emoji.name === '<name of emoji>')

.find()

此方法还可以发送自定义表情符号,但是,这次您可以按名称查找它们。请注意,如果给定名称中的表情符号不止一个,它将无法正常工作。

一种绕过此问题的方法是查看guild.emojis.cache集合。这样,可以缩小可能重复的表情符号的数量。

答案 1 :(得分:-1)

您需要让bot通过:superbotxemoji:加入服务器,然后它才能在任何服务器中使用表情符号