Java JDA Discord 应用程序 - 无法对收到的消息添加反应
Java JDA Discord app - Can't add reaction to received messages
我正在尝试向包含特定字词的消息添加自定义表情。我已尝试以我能找到的所有方式使用 addReaction(Emote) 和 addReaction(String) 方法。我只是无法让机器人对消息添加反应(它也不能使用 unicode 表情符号)。
我用过下面的方法
event.getMessage().addReaction("name:XXXXXXXXXXXXXXXX");
event.getMessage().addReaction("name");
event.getMessage().addReaction("XXXXXXXXXXXXXXXX");
event.getMessage().addReaction(Emote emote);
这似乎无论如何都行不通。有人能给我指出正确的方向吗?
该机器人还有很多其他功能,一切正常。我确实拥有 Java 的 CS 学位,所以我很清楚如何编写和构建代码。
JDA 使用 RestActions
,它们基本上允许将所有操作排队到 Discord 中,如果没有它们,您的命令将不会发送到 Discord。您的代码不起作用,因为您忘记包含 RestAction。
至于您尝试添加反应,请阅读 relevant JDA Docs 以了解您应该在参数中键入什么。
简而言之,您可以使用 Emote
instance or an emote Unicode. There are a few ways to retrieve an emote's Unicode, for instance, Emoji Unicode Table。
您也可以通过发送下一条消息来使用位于官方 JDA Discord Server 的机器人:
%emote EMOJI
(将 EMOJI
替换为实际的表情符号)将使用表情的 unicode 回复。
注意bot提供了两种不同的UTF(UTF32
和UTF16
)而table只提供了UTF32
,更推荐使用UTF16
。例子:
:smile: 表情 - \u1F604 UTF32 [\uD83D\uDE04] UTF16
.
然后,只需将 Unicode 作为字符串粘贴为 addReaction
的参数。确保只有一个 \
而不是两个,因为 IDE 在某些情况下可以自动添加转义字符。更正和不正确用法的示例:
正确 - addReaction("\uD83D\uDE04").queue(); // reacts with :smile:
不正确 - addReaction("\uD83D\uDE04").queue(); // reacts with :smile:
正确 - addReaction("U+1F604").queue(); //reacts with :smile:
正确 - addReaction("\u1F604").queue(); // reacts with :smile:
要使用Emote
,请在表情所在的公会上使用guild.getEmotesByName("name")
方法。
请注意,此 returns 列表,您必须使用 .get
方法从列表中获取特定的表情实例。然后就可以使用addReaction(Emote emote)
方法了。
我正在尝试向包含特定字词的消息添加自定义表情。我已尝试以我能找到的所有方式使用 addReaction(Emote) 和 addReaction(String) 方法。我只是无法让机器人对消息添加反应(它也不能使用 unicode 表情符号)。
我用过下面的方法
event.getMessage().addReaction("name:XXXXXXXXXXXXXXXX");
event.getMessage().addReaction("name");
event.getMessage().addReaction("XXXXXXXXXXXXXXXX");
event.getMessage().addReaction(Emote emote);
这似乎无论如何都行不通。有人能给我指出正确的方向吗?
该机器人还有很多其他功能,一切正常。我确实拥有 Java 的 CS 学位,所以我很清楚如何编写和构建代码。
JDA 使用 RestActions
,它们基本上允许将所有操作排队到 Discord 中,如果没有它们,您的命令将不会发送到 Discord。您的代码不起作用,因为您忘记包含 RestAction。
至于您尝试添加反应,请阅读 relevant JDA Docs 以了解您应该在参数中键入什么。
简而言之,您可以使用 Emote
instance or an emote Unicode. There are a few ways to retrieve an emote's Unicode, for instance, Emoji Unicode Table。
您也可以通过发送下一条消息来使用位于官方 JDA Discord Server 的机器人:
%emote EMOJI
(将 EMOJI
替换为实际的表情符号)将使用表情的 unicode 回复。
注意bot提供了两种不同的UTF(UTF32
和UTF16
)而table只提供了UTF32
,更推荐使用UTF16
。例子:
:smile: 表情 - \u1F604 UTF32 [\uD83D\uDE04] UTF16
.
然后,只需将 Unicode 作为字符串粘贴为 addReaction
的参数。确保只有一个 \
而不是两个,因为 IDE 在某些情况下可以自动添加转义字符。更正和不正确用法的示例:
正确 - addReaction("\uD83D\uDE04").queue(); // reacts with :smile:
不正确 - addReaction("\uD83D\uDE04").queue(); // reacts with :smile:
正确 - addReaction("U+1F604").queue(); //reacts with :smile:
正确 - addReaction("\u1F604").queue(); // reacts with :smile:
要使用Emote
,请在表情所在的公会上使用guild.getEmotesByName("name")
方法。
请注意,此 returns 列表,您必须使用 .get
方法从列表中获取特定的表情实例。然后就可以使用addReaction(Emote emote)
方法了。