Очистить команду, удаляя одним сообщением меньше (Java Discord JDA)

Я пытаюсь сделать так, чтобы всякий раз, когда кто-то делает! Clear [Amount], он удаляет количество сообщений в [Amount]. Проблема, с которой я столкнулся, заключается в том, что! Clear [Amount] удаляет на 1 сообщение меньше. Например, если кто-то сделает! Clear 3, он удалит сообщения! Clear 3 и 2 над ним. Я хочу сделать так, чтобы всякий раз, когда кто-то делает! Clear 3, он удаляет! Clear 3 и удаляет 3 сообщения над ним. Может кто-нибудь помочь мне отредактировать мой код, пожалуйста?

Вот мой код:

package Events;

import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.entities.Message;
import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;

import java.util.List;
import java.util.concurrent.TimeUnit;

public class Clear  extends ListenerAdapter {
    public void onGuildMessageReceived(GuildMessageReceivedEvent e) {
        String[] args = e.getMessage().getContentRaw().split("\\s+");

        if (args[0].equalsIgnoreCase("!clear")) {
            if (args.length < 2) {
                EmbedBuilder usage = new EmbedBuilder();
                usage.setColor(0xff3923);
                usage.setTitle("Specify amount to delete");
                usage.setDescription("Usage: !clear [# of messages]");
                e.getChannel().sendMessage(usage.build()).queue();
            } else {
                List<Message> messages = e.getChannel().getHistory().retrievePast(Integer.parseInt(args[1])).complete();
                e.getChannel().deleteMessages(messages).queue();
                e.getChannel().sendMessage("Messages has been deleted!").queue(m -> m.delete().queueAfter(5, TimeUnit.SECONDS));
            }
        }
    }
}

person Jason6688    schedule 03.03.2021    source источник
comment
Просто используйте .retrievePast(Integer.parseInt(args[1])+1), чтобы получить на одно сообщение больше?   -  person dan1st    schedule 04.03.2021


Ответы (1)


Редактировать с:

.retrievePast(Integer.parseInt(args[1]))

to:

.retrievePast(Integer.parseInt(args[1])+1)

Все заслуги передаются dan1st (tysm ‹3)

person Jason6688    schedule 03.03.2021