diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java index 4dc5db3..efc253e 100644 --- a/src/main/java/com/bbn/hadder/Hadder.java +++ b/src/main/java/com/bbn/hadder/Hadder.java @@ -2,6 +2,8 @@ package com.bbn.hadder; import com.bbn.hadder.commands.TestCommand; import com.bbn.hadder.commands.moderation.BanCommand; +import com.bbn.hadder.commands.moderation.KickCommand; +import com.bbn.hadder.commands.owner.ShutdownCommand; import com.bbn.hadder.commands.settings.PrefixCommand; import com.bbn.hadder.core.CommandHandler; import com.bbn.hadder.listener.*; @@ -45,6 +47,9 @@ public class Hadder { CommandHandler.cmdlist.put("test", new TestCommand()); CommandHandler.cmdlist.put("ban", new BanCommand()); CommandHandler.cmdlist.put("prefix", new PrefixCommand()); + CommandHandler.cmdlist.put("stop", new ShutdownCommand()); + CommandHandler.cmdlist.put("shutdown", new ShutdownCommand()); + CommandHandler.cmdlist.put("kick", new KickCommand()); builder.addEventListeners( new MentionListener(), @@ -52,6 +57,7 @@ public class Hadder { new CommandListener(), new GuildJoinListener(), new GuildLeaveListener(), + new BotListListener(), new ReadyListener()); try { diff --git a/src/main/java/com/bbn/hadder/commands/moderation/BanCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/BanCommand.java index ac52215..6d1e8f6 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/BanCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/BanCommand.java @@ -18,13 +18,18 @@ public class BanCommand implements Command { if (event.getMessage().getMentionedMembers().size() == 1) { Member victim = event.getMessage().getMentionedMembers().get(0); if (!event.getAuthor().getId().equals(victim.getId())) { - if (event.getGuild().getSelfMember().canInteract(victim)) { - event.getGuild().ban(victim, 0, "Banned by " + event.getAuthor().getAsTag()).queue(); - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.INFO, builder).setTitle("✅ Successfully banned ✅").setDescription("I successfully baned " + victim.getUser().getName() + ".").build()).queue(); + if (event.getJDA().getSelfUser().getId().equals(victim.getId())) { + if (event.getGuild().getSelfMember().canInteract(victim)) { + event.getGuild().ban(victim, 0, "Banned by " + event.getAuthor().getAsTag()).queue(); + EmbedBuilder builder = new EmbedBuilder(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.INFO, builder).setTitle("✅ Successfully banned ✅").setDescription("I successfully baned " + victim.getUser().getName() + ".").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_SELF_PERMISSION, builder).build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.WARNING, builder).setDescription("I can not ban myself").build()).queue(); } } else { EmbedBuilder builder = new EmbedBuilder(); diff --git a/src/main/java/com/bbn/hadder/commands/moderation/KickCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/KickCommand.java new file mode 100644 index 0000000..886549d --- /dev/null +++ b/src/main/java/com/bbn/hadder/commands/moderation/KickCommand.java @@ -0,0 +1,47 @@ +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.Member; +import net.dv8tion.jda.api.events.message.MessageReceivedEvent; + +public class KickCommand implements Command { + @Override + public void executed(String[] args, MessageReceivedEvent event) { + if (event.getGuild().getMemberById(event.getAuthor().getId()).hasPermission(Permission.KICK_MEMBERS) || event.getGuild().getOwnerId().equals(event.getAuthor().getId())) { + if (event.getMessage().getMentionedMembers().size() == 1) { + Member victim = event.getMessage().getMentionedMembers().get(0); + if (!event.getAuthor().getId().equals(victim.getId())) { + if (event.getJDA().getSelfUser().getId().equals(victim.getId())) { + if (event.getGuild().getSelfMember().canInteract(victim)) { + event.getGuild().kick(victim, "Kicked by " + event.getAuthor().getAsTag()).queue(); + EmbedBuilder builder = new EmbedBuilder(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.INFO, builder).setTitle("✅ Successfully kicked ✅").setDescription("I successfully kicked " + victim.getUser().getName() + ".").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.WARNING, builder).setDescription("I can not kick myself").build()).queue(); + } + } else { + EmbedBuilder builder = new EmbedBuilder(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.WARNING, builder).setDescription("You can't kick yourself.").build()).queue(); + } + } else if (event.getMessage().getMentionedMembers().size() == 0) { + EmbedBuilder builder = new EmbedBuilder(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.WARNING, builder).setDescription("You have to mention a user!").build()).queue(); + } else { + EmbedBuilder builder = new EmbedBuilder(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.WARNING, builder).setDescription("We will be adding multiple kicking within a command in the future.").build()).queue(); + } + } + } +}