discoryEmojis在Discord4j 3.1.0中如何工作

问题描述

我目前正在使用discord4j开发一个机器人,我想在其中添加反应(表情符号)到消息中。 但是我不知道如何使用addReaction()方法,我发现的每个示例都在使用旧版本。 在dicord4j的早期版本中,您可以提供表情符号的unicode表示形式的字符串作为参数,但是现在它只接受了类型为ReactionEmoji的对象。我看了看它的方法,除了ReactionEmoji.unicode(String raw)之外,没有其他任何意义,但是我得到了错误消息“未知表情符号”。作为字符串的输入,我尝试使用unicode,实际的表情符号本身,然后进入调试模式,对消息添加了响应,然后在调试模式下获取了响应,然后复制了响应的原始值,并将其粘贴为unicode()mehtod的输入参数,但仍然无法将其识别为表情符号。 有没有我找不到的文件? 我的代码

Message msg = channel.createMessage("Test").block();
msg.addReaction("U+2B06").block();

解决方法

您必须改用unicode escape

channel.createMessage("Test")
       .flatMap(msg -> msg.addReaction(ReactionEmoji.unicode("\u2B06")))
       .subscribe();

有关文档,请参见addReactionReactionEmoji

,

对于多重反应

 channel.createMessage("Test").flatMap(msg -> 
 msg.addReaction(ReactionEmoji.unicode("?"))
                    .then(msg.addReaction(ReactionEmoji.unicode("?"))))
.subscribe();