java discord bot(jda)检查是否ping

h7wcgrx3  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(406)

我用discordjavaapi(jda)编写了一个purge(clear)命令。

public class Purge {

    public static void onPurgeCommand(SlashCommandEvent event) {

        event.deferReply().queue();
        JDA bot = Bot.bot;
        int amount = Integer.parseInt(event.getOption("amount").getAsString());

        List<Message> messages = event.getChannel().getHistory().retrievePast(amount).complete();
        for (Message message: messages) {
            message.delete().queue();
        }
        event.getHook().sendMessage("**Es wurden "+amount+" Nachrichten gelöscht.**").queue();
    }

}

在斜杠命令的帮助下,我想检查消息是否被固定,以及当消息被固定时,应该跳过消息。我不熟悉用java写东西,所以我什么都不懂

k3bvogb1

k3bvogb11#

您可以尝试一下:

event.getChannel().getHistory().retrievePast(amount).queue(messageHistory -> {

        for (Message message : messageHistory) {

            channel.retrievePinnedMessages().queue(pins -> {

                boolean hasEntry = false;
                for (Message pinnedMsg : pins) {
                    if (pinnedMsg == message) {
                        hasEntry = true;
                        break;
                    }
                }

                if (!hasEntry) message.delete().queue();
            });

        }
    });

相关问题