Search code examples
javadiscorddiscord-jda

Java Discord Bot (JDA) Check if pinned


I wrote a purge (clear) command with the Discord Java API (JDA).

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();
    }

}

With the help of Slash commands and I want to check if a message is pinned and when it's pinned the message should be skipped. I am new to writing things in Java so I don't know anything


Solution

  • You might give this a try:

    event.getChannel().getHistory().retrievePast(amount).queue(messageHistory -> {
            
            for (Message message : messageHistory) {
                if (!message.isPinned()) message.delete().queue();
            }
    
        });