小编典典

如何对嵌入消息JDA做出反应

java

我执行命令〜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();


        }
    }


}

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


阅读 209

收藏
2020-11-30

共1个答案

小编典典

您可以在的回调中访问已发送的消息,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它,因为它不会在您的代码中再次使用。生成器通常不是需要关闭/清除的资源,除非您再次使用它们并且不希望以前的设置。

2020-11-30