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

时间:2020-04-22 20:39:59

标签: java discord-jda

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

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

我已经尝试了许多不同的方法,使用了不同的语法,还使用了表情符号ID来代替别名和行会ID(正如我在其他地方所指示的那样)。

尝试运行此命令时,它表示期望有效的long值。我已经尝试过给出表情符号ID的长值。没用。

有人可以告诉我该代码段的语法如何吗?

此外,我尝试阅读文档。确实不是很清楚,也没有显示示例。

1 个答案:

答案 0 :(得分:2)

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

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

  1. 在聊天中发布表情。请注意,这不是“行会ID”,而是表情名称和ID。表情和消息一样都有自己的ID。

enter image description here

enter image description here

  1. 在代码中使表情保持不变
public class Emotes {
    public static final String VIM = "vim:414776062380343296";
}
  1. 在您的addReaction通话中使用表情符号
channel.addReaction(Emotes.VIM).queue();