如何添加对嵌入消息 JDA 的反应

How to add reaction to an embed message JDA

当我执行命令 ~verify 时,我正在尝试发送和嵌入消息,然后它发送嵌入消息,但我找不到如何添加反应。

我已经嵌入消息并发送了它,但可以添加反应


import Main.Bot;
import net.dv8tion.jda.core.EmbedBuilder;
import net.dv8tion.jda.core.MessageBuilder;
import net.dv8tion.jda.core.entities.Message;
import net.dv8tion.jda.core.events.message.guild.GuildMessageReceivedEvent;
import net.dv8tion.jda.core.hooks.ListenerAdapter;

import java.awt.*;

public class Verify extends ListenerAdapter {



    @Override
    public void onGuildMessageReceived(GuildMessageReceivedEvent e){
        if(e.getAuthor().isBot()) return;

        if(e.getMessage().getContentRaw().equalsIgnoreCase(Bot.prefix+"verify")){
            EmbedBuilder embedBuilder = new EmbedBuilder();
            embedBuilder.setColor(Color.red);
            embedBuilder.setTitle("Verify yourself!");
            embedBuilder.addField("How?","Press the ✔ reaction to verify",false);
            embedBuilder.setFooter("Created by SlayZBro#3501",e.getGuild().getIconUrl());

            e.getChannel().sendTyping().queue();
            e.getChannel().sendMessage(embedBuilder.build()).queue();
            embedBuilder.clear();


        }
    }


}

我需要在嵌入消息中添加反应

我知道怎么做了。只需要添加这一行

 e.getChannel().sendMessage(embedBuilder.build()).complete().addReaction("✔").queue();

您可以在 queue() 的回调中访问已发送的消息并在那里添加反应:

channel.sendMessage(embed).queue(message -> message.addReaction(reaction).queue());

要添加多个问题,您可以使用多行 lambda:

channel.sendMessage(embed).queue(message -> {
  message.addReaction(reaction1).queue();
  message.addReaction(reaction2).queue();
  message.addReaction(reaction3).queue();
});

也没有理由清除 EmbedBuilder 因为它不会在您的代码中再次使用。构建器通常不是需要closed/cleared的资源,除非你再次使用它们并且不想要以前的设置。