diff --git a/pom.xml b/pom.xml index 7371623..b6536b8 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ Hadder Hadder - 0.2-ALPHA + 0.3-ALPHA Hadder diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java index 7065fe3..6f315ed 100644 --- a/src/main/java/com/bbn/hadder/Hadder.java +++ b/src/main/java/com/bbn/hadder/Hadder.java @@ -3,8 +3,7 @@ package com.bbn.hadder; import com.bbn.hadder.commands.TestCommand; import com.bbn.hadder.commands.fun.GifCommand; import com.bbn.hadder.commands.general.PingCommand; -import com.bbn.hadder.commands.moderation.BanCommand; -import com.bbn.hadder.commands.moderation.KickCommand; +import com.bbn.hadder.commands.moderation.*; import com.bbn.hadder.commands.owner.ShutdownCommand; import com.bbn.hadder.commands.settings.PrefixCommand; import com.bbn.hadder.core.CommandHandler; @@ -47,14 +46,12 @@ public class Hadder { builder.setToken(config.getString("Token")); - CommandHandler.cmdlist.addAll(List.of(new TestCommand(), new BanCommand(), new PrefixCommand(), new ShutdownCommand(), new KickCommand(), new PingCommand(), new GifCommand())); + CommandHandler.cmdlist.addAll(List.of(new TestCommand(), new BanCommand(), new PrefixCommand(), new ShutdownCommand(), new KickCommand(), new PingCommand(), new GifCommand(), new ClearCommand())); builder.addEventListeners( new MentionListener(), new PrivateMessageListener(), new CommandListener(), - new GuildJoinListener(), - new GuildLeaveListener(), new GuildListener(), new ReadyListener()); diff --git a/src/main/java/com/bbn/hadder/commands/fun/GifCommand.java b/src/main/java/com/bbn/hadder/commands/fun/GifCommand.java index caf1b42..cbcd8fe 100644 --- a/src/main/java/com/bbn/hadder/commands/fun/GifCommand.java +++ b/src/main/java/com/bbn/hadder/commands/fun/GifCommand.java @@ -25,8 +25,6 @@ public class GifCommand implements Command { @Override public void executed(String[] args, MessageReceivedEvent event) { if (args.length > 0) { - String url; - JSONArray array; StringBuilder query = new StringBuilder(); for (String arg : args) { query.append(arg.toLowerCase()).append("+"); @@ -47,9 +45,9 @@ public class GifCommand implements Command { Random rand = new Random(); Response response = caller.newCall(request).execute(); JSONObject json = new JSONObject(response.body().string()); - array = json.getJSONArray("data"); + JSONArray array = json.getJSONArray("data"); int gifIndex = rand.nextInt(array.length()); - url = (String) array.getJSONObject(gifIndex).get("url"); + String url = array.getJSONObject(gifIndex).get("url").toString(); event.getTextChannel().sendMessage(url).queue(); } catch (Exception e) { EmbedBuilder builder = new EmbedBuilder(); diff --git a/src/main/java/com/bbn/hadder/commands/moderation/ClearCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/ClearCommand.java new file mode 100644 index 0000000..58059e7 --- /dev/null +++ b/src/main/java/com/bbn/hadder/commands/moderation/ClearCommand.java @@ -0,0 +1,62 @@ +package com.bbn.hadder.commands.moderation; + +/* + * @author Skidder / GregTCLTK + */ + +import com.bbn.hadder.commands.Command; +import com.bbn.hadder.utils.MessageEditor; +import net.dv8tion.jda.api.EmbedBuilder; +import net.dv8tion.jda.api.Permission; +import net.dv8tion.jda.api.entities.Message; +import net.dv8tion.jda.api.events.message.MessageReceivedEvent; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + +import static java.time.temporal.ChronoUnit.DAYS; + +public class ClearCommand implements Command { + + @Override + public void executed(String[] args, MessageReceivedEvent event) { + if (args.length > 0) { + if (event.getGuild().getMemberById(event.getAuthor().getId()).hasPermission(Permission.MESSAGE_MANAGE) || event.getGuild().getOwnerId().equals(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 > 200) { + EmbedBuilder builder = new EmbedBuilder(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.WARNING, builder).setDescription("You have to choose a number between 1 and 200!").build()).queue(); + return; + } + List history = event.getTextChannel().getHistory().retrievePast(nbToDelete +1).complete(); + List msgToDelete = new ArrayList<>(); + msgToDelete.addAll(history); + event.getTextChannel().deleteMessages(msgToDelete).queue(); + EmbedBuilder builder = new EmbedBuilder(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.INFO, builder).setDescription("Successfully deleted " + nbToDelete + " messages.").build()).queue(); + } catch (NumberFormatException e) { + EmbedBuilder builder = new EmbedBuilder(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.WARNING, builder).setDescription("You have to specify a number!").build()).queue(); + } + } else { + EmbedBuilder builder = new EmbedBuilder(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.NO_SELF_PERMISSION, builder).build()).queue(); + } + } else { + EmbedBuilder builder = new EmbedBuilder(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.NO_PERMISSION, builder).build()).queue(); + } + } else { + EmbedBuilder builder = new EmbedBuilder(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.WARNING, builder).setDescription("You have to specify a number!").build()).queue(); + } + } + + @Override + public String[] labels() { + return new String[]{"clear"}; + } +}