如何让我的机器人对自定义表情做出反应?

How do I get my bot to react with custom emotes?

我目前正在使用类似的东西:

String emote = event.getJDA().getEmoteById("emoteAlias:guildId").getAsMention();
            event.getMessage().addReaction(emote).queue();

我尝试过很多不同的方法,使用不同的语法,还使用表情符号 ID 而不是别名和公会 ID(我在其他地方被指示这样做)。

当尝试 运行 这个时,它说它需要一个有效的 long 值。我试过只给出表情 ID 的长值。没用。

谁能告诉我这段代码的语法应该是什么样子的?

此外,我已经尝试阅读文档。它真的不是很清楚,也没有显示示例。

getEmoteById 接受原始 ID 本身。 emoteAlias:guildId 不是引用表情的一种方式,因为您可以在同一个公会中拥有多个同名的表情。您可以通过使用 \:name: 将其发布在不和谐频道中来获得表情 ID,这将导致格式类似于 <:name:id>.

您不需要 Emote 实例来添加反应。您可以直接将反应代码传递给方法 addReaction("name:id"):

  1. Post 在聊天中表达。请注意,这不是 "guild id" 而是表情名称和 ID。表情和消息一样有自己的 ID。

  1. 使表情成为代码中的常量
public class Emotes {
    public static final String VIM = "vim:414776062380343296";
}
  1. 在你的addReaction通话中使用表情
channel.addReaction(Emotes.VIM).queue();