From 5009937fe287329ce4c8184b6b9d68c69bd7b445 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sat, 14 Dec 2019 11:55:14 +0100 Subject: [PATCH] Clear Command improvements --- .../commands/moderation/ClearCommand.java | 42 +++++++++++-------- .../hadder/commands/owner/EvalCommand.java | 1 - .../Translations/Translations_en.properties | 2 + 3 files changed, 27 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/bbn/hadder/commands/moderation/ClearCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/ClearCommand.java index d19ea55..a1f643e 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/ClearCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/ClearCommand.java @@ -22,25 +22,33 @@ public class ClearCommand implements Command { if (args.length > 0) { if (event.getGuild().getMemberById(event.getAuthor().getId()).hasPermission(Permission.MESSAGE_MANAGE) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { if (event.getGuild().getMemberById(event.getJDA().getSelfUser().getId()).hasPermission(Permission.MESSAGE_MANAGE)) { - try { - int nbToDelete = Integer.parseInt(args[0]); - if(nbToDelete < 1 || nbToDelete > 99) { - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.clear.number.error.description")).build()).queue(); - return; - } - List history = event.getTextChannel().getHistory().retrievePast(nbToDelete +1).complete(); - List msgToDelete = new ArrayList<>(); - msgToDelete.addAll(history); - event.getTextChannel().deleteMessages(msgToDelete).queue(); - Message msg = event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.clear.success.description", String.valueOf(nbToDelete))).build()).complete(); + if (args[0].equals("all")) { + event.getMessage().delete().queue(); + } else { try { - TimeUnit.SECONDS.sleep(2); - } catch (InterruptedException e) { - e.printStackTrace(); + int nbToDelete = Integer.parseInt(args[0]); + if (nbToDelete < 1 || nbToDelete > 99) { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.clear.number.error.description")).build()).queue(); + } else { + List history = event.getTextChannel().getHistory().retrievePast(nbToDelete + 1).complete(); + List msgToDelete = new ArrayList<>(history); + event.getTextChannel().deleteMessages(msgToDelete).queue(); + Message msg = event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.clear.success.description", String.valueOf(nbToDelete))).build()).complete(); + try { + TimeUnit.SECONDS.sleep(2); + } catch (InterruptedException e) { + e.printStackTrace(); + } + msg.delete().queue(); + } + } catch (NumberFormatException e) { + event.getHelpCommand().sendHelp(this, event); + } catch (IllegalArgumentException e) { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING) + .setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.clear.message.error.title")) + .setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.clear.message.error.description")) + .build()).queue(); } - msg.delete().queue(); - } catch (NumberFormatException e) { - event.getHelpCommand().sendHelp(this, event); } } else { event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); diff --git a/src/main/java/com/bbn/hadder/commands/owner/EvalCommand.java b/src/main/java/com/bbn/hadder/commands/owner/EvalCommand.java index 4824cca..1d79ac8 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/EvalCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/EvalCommand.java @@ -41,7 +41,6 @@ public class EvalCommand implements Command { engine.put("author", event.getAuthor()); engine.put("member", event.getMember()); engine.put("self", event.getGuild().getSelfMember()); - engine.put("System.out", System.out); ScheduledExecutorService service = Executors.newScheduledThreadPool(1); diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index dec548c..edb8cae 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -92,6 +92,8 @@ commands.moderation.ban.massban.success.description = I successfully baned %extr commands.moderation.ban.help.description = Bans one ore more user from the server commands.moderation.clear.number.error.description = You have to choose a number between 1 and 99! commands.moderation.clear.success.description = Successfully deleted %extra% messages. +commands.moderation.clear.message.error.title = No messages! +commands.moderation.clear.message.error.description = There are no messages in this channel. commands.moderation.clear.help.description = Deletes the specified number of messages. commands.moderation.prefix.success.title = %extra% Successfully set %extra% commands.moderation.prefix.success.description = I successfully set the new prefix for the guild to %extra%