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..98e0599 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,46 @@ 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; + if (args[0].equals("all")) { + List msg = event.getTextChannel().getIterableHistory().complete(); + for (Message message : msg) { + message.delete().queue(); } - 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(); + Message message = event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.lear.all.success.title")) + .setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.lear.all.success.description", String.valueOf(msg.size()))) + .build()).complete(); try { TimeUnit.SECONDS.sleep(2); } catch (InterruptedException e) { e.printStackTrace(); } - msg.delete().queue(); - } catch (NumberFormatException e) { - event.getHelpCommand().sendHelp(this, event); + message.delete().queue(); + } else { + 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(); + } 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(); + } } } else { event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); diff --git a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java index 5f08a8d..3054102 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java @@ -61,7 +61,7 @@ public class RulesCommand implements Command { if (event.getGuild().getSelfMember().hasPermission(channel, Permission.MESSAGE_WRITE)) { event1.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) .setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.rules.rules.title")) - .setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.rules.rules.title", channel.getName())) + .setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.rules.rules.description", channel.getName())) .build()).queue(); new EventWaiter().newOnMessageEventWaiter(event2 -> { String message = event2.getMessage().getContentRaw(); 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..16ae60d 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -10,7 +10,7 @@ Hadder = Hadder searchterm = username = -number = +number = /all guildprefix = prefix = vc-name/id = @@ -90,8 +90,12 @@ commands.moderation.ban.myself.error.description = I can not ban myself! commands.moderation.ban.yourself.error.description = You can not ban yourself! commands.moderation.ban.massban.success.description = I successfully baned %extra% Members! commands.moderation.ban.help.description = Bans one ore more user from the server +commands.moderation.lear.all.success.title = Successfully deleted +commands.moderation.lear.all.success.description = I successfully deleted %extra% messages. 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%