Я пытаюсь сделать так, чтобы всякий раз, когда кто-то делает! 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));
}
}
}
}
.retrievePast(Integer.parseInt(args[1])+1)
, чтобы получить на одно сообщение больше? - person dan1st   schedule 04.03.2021