diff --git a/README.md b/README.md index 025df75..aeba086 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,8 @@ Hadder Discord is a multi-purpose Discord bot with 100% uptime. [![Codacy Badge](https://api.codacy.com/project/badge/Grade/ddb8cb7ec85f467caa691c175e1f01b5)](https://www.codacy.com/gh/BigBotNetwork/Hadder?utm_source=github.com&utm_medium=referral&utm_content=BigBotNetwork/Hadder&utm_campaign=Badge_Grade) [![CodeFactor](https://www.codefactor.io/repository/github/bigbotnetwork/hadder/badge)](https://www.codefactor.io/repository/github/bigbotnetwork/hadder) [![Crowdin](https://badges.crowdin.net/e/bc0babde730eb3eada34778502a31b03/localized.svg)](https://bbn.crowdin.com/hadder) +[![GitHub issues](https://img.shields.io/github/issues/BigBotNetwork/Hadder)](https://github.com/BigBotNetwork/Hadder/issues) +[![GitHub license](https://img.shields.io/github/license/BigBotNetwork/Hadder)](https://github.com/BigBotNetwork/Hadder/blob/master/LICENSE) [![Discord Bots](https://top.gg/api/widget/637002314162372639.svg)](https://top.gg/bot/637002314162372639) diff --git a/example-config.json b/example-config.json index f201256..437ec97 100644 --- a/example-config.json +++ b/example-config.json @@ -20,5 +20,6 @@ "DiscordBotReviews": "", "DiscordBots": "", "BotListSpace": "" - } + }, + "Clyde": "" } diff --git a/pom.xml b/pom.xml index d8f019e..450bede 100644 --- a/pom.xml +++ b/pom.xml @@ -83,6 +83,10 @@ maven-resources-plugin 3.1.0 + + maven-compiler-plugin + 3.8.1 + maven-surefire-plugin 2.22.2 @@ -127,20 +131,20 @@ - maven-assembly-plugin - - Hadder-Build - - - com.bbn.hadder.Hadder - - - - jar-with-dependencies - - false - - + maven-assembly-plugin + + Hadder-Build + + + com.bbn.hadder.Hadder + + + + jar-with-dependencies + + false + + diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java index 62cf872..f96792f 100644 --- a/src/main/java/com/bbn/hadder/Hadder.java +++ b/src/main/java/com/bbn/hadder/Hadder.java @@ -47,7 +47,7 @@ public class Hadder { helpCommand, new TestCommand(), new BanCommand(), - new PrefixCommand(), + new UserPrefixCommand(), new ShutdownCommand(), new KickCommand(), new PingCommand(), @@ -58,7 +58,7 @@ public class Hadder { new EqualsCommand(), new InviteCommand(), new NickCommand(), - new GuildPrefixCommand(), + new PrefixCommand(), new BlowjobCommand(), new PornCommand(), new AnalCommand(), @@ -87,6 +87,7 @@ public class Hadder { new RegionChangeCommand(), new AboutCommand(), new LanguageCommand(), + new ClydeCommand(), new StarBoardCommand()), config, helpCommand); builder.addEventListeners( diff --git a/src/main/java/com/bbn/hadder/commands/Perm.java b/src/main/java/com/bbn/hadder/commands/Perm.java deleted file mode 100644 index ede807c..0000000 --- a/src/main/java/com/bbn/hadder/commands/Perm.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * @author Hax / Hax6775 / Schlauer_Hax - */ - -package com.bbn.hadder.commands; - -import net.dv8tion.jda.api.Permission; - -public enum Perm { - - BOT_OWNER() { - @Override - public boolean check(CommandEvent commandEvent) { - return commandEvent.getConfig().getOwners().contains(commandEvent.getAuthor().getIdLong()); - } - }, - MANAGE_MESSAGES { - @Override - public boolean check(CommandEvent commandEvent) { - return commandEvent.getMember().hasPermission(Permission.MESSAGE_MANAGE); - } - }, - EMBED_MESSAGES { - @Override - public boolean check(CommandEvent commandEvent) { - return commandEvent.getMember().hasPermission(Permission.MESSAGE_EMBED_LINKS); - } - }, - BAN_MEMBERS { - @Override - public boolean check(CommandEvent commandEvent) { - return commandEvent.getMember().hasPermission(Permission.BAN_MEMBERS); - } - }, - KICK_MEMBERS { - @Override - public boolean check(CommandEvent commandEvent) { - return commandEvent.getMember().hasPermission(Permission.KICK_MEMBERS); - } - }, - MANAGE_SERVER { - @Override - public boolean check(CommandEvent commandEvent) { - return commandEvent.getMember().hasPermission(Permission.MANAGE_SERVER); - } - }, - MANAGE_ROLES { - @Override - public boolean check(CommandEvent commandEvent) { - return commandEvent.getMember().hasPermission(Permission.MANAGE_ROLES); - } - }, - CHANGE_NICKNAME { - @Override - public boolean check(CommandEvent commandEvent) { - return commandEvent.getMember().hasPermission(Permission.NICKNAME_CHANGE); - } - }, - ADMIN_PERMISSIONS { - @Override - public boolean check(CommandEvent commandEvent) { - return commandEvent.getMember().hasPermission(Permission.ADMINISTRATOR); - } - }; - - public abstract boolean check(CommandEvent commandEvent); -} diff --git a/src/main/java/com/bbn/hadder/commands/fun/AvatarCommand.java b/src/main/java/com/bbn/hadder/commands/fun/AvatarCommand.java index 8f3f420..e3c852d 100644 --- a/src/main/java/com/bbn/hadder/commands/fun/AvatarCommand.java +++ b/src/main/java/com/bbn/hadder/commands/fun/AvatarCommand.java @@ -19,7 +19,9 @@ public class AvatarCommand implements Command { event.getMessageEditor().getMessage( MessageEditor.MessageType.INFO, "commands.fun.avatar.success.title", - member.getUser().getAsTag()) + member.getUser().getAsTag(), + "", + "") .setImage(member.getUser().getAvatarUrl()) .setFooter(member.getUser().getAsTag()) .build()).queue(); diff --git a/src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java b/src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java new file mode 100644 index 0000000..135ff57 --- /dev/null +++ b/src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java @@ -0,0 +1,77 @@ +package com.bbn.hadder.commands.fun; + +/* + * @author Skidder / GregTCLTK + */ + +import club.minnced.discord.webhook.WebhookClient; +import club.minnced.discord.webhook.WebhookClientBuilder; +import com.bbn.hadder.commands.Command; +import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.core.Perm; +import com.bbn.hadder.core.Perms; +import com.bbn.hadder.utils.MessageEditor; +import net.dv8tion.jda.api.Permission; +import net.dv8tion.jda.api.entities.Icon; +import net.dv8tion.jda.api.entities.TextChannel; +import net.dv8tion.jda.api.entities.Webhook; + +import java.io.InputStream; +import java.net.URL; +import java.util.concurrent.TimeUnit; + +@Perms(Perm.MANAGE_WEBHOOKS) +public class ClydeCommand implements Command { + + @Override + public void executed(String[] args, CommandEvent event) { + if (args.length > 0) { + if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_WEBHOOKS)) { + TextChannel channel = event.getMessage().getTextChannel(); + String content = event.getMessage().getContentRaw().replace(event.getRethink().getGuildPrefix(event.getGuild().getId()), "").replace(event.getRethink().getUserPrefix(event.getAuthor().getId()), "").replace("clyde", ""); + + Webhook webhook = channel.createWebhook(event.getConfig().getClydeName()).complete(); + try { + InputStream s = new URL("https://discordapp.com/assets/f78426a064bc9dd24847519259bc42af.png").openStream(); + webhook.getManager().setAvatar(Icon.from(s)).queue(); + + WebhookClientBuilder builder = new WebhookClientBuilder(webhook.getUrl()); + + WebhookClient client = builder.build(); + try { + TimeUnit.SECONDS.sleep(1); + } catch (InterruptedException e) { + e.printStackTrace(); + } + client.send(content); + } catch (Exception e) { + e.printStackTrace(); + } + try { + TimeUnit.SECONDS.sleep(2); + } catch (InterruptedException e) { + e.printStackTrace(); + } + webhook.delete().queue(); + } else { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); + } + } else event.getHelpCommand().sendHelp(this, event); + + } + + @Override + public String[] labels() { + return new String[]{"clyde"}; + } + + @Override + public String description() { + return "commands.fun.clyde.help.description"; + } + + @Override + public String usage() { + return "content"; + } +} 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 01c76c2..406d699 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/BanCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/BanCommand.java @@ -6,79 +6,77 @@ package com.bbn.hadder.commands.moderation; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.core.Perm; +import com.bbn.hadder.core.Perms; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.Member; +@Perms(Perm.BAN_MEMBERS) public class BanCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { - if (event.getGuild().getMemberById(event.getAuthor().getId()).hasPermission(Permission.BAN_MEMBERS) || event.getConfig().getOwners().toString().contains(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().ban(victim, 0, "Banned by " + event.getAuthor().getAsTag()).queue(); - event.getTextChannel().sendMessage( - event.getMessageEditor().getMessage( - MessageEditor.MessageType.INFO, - "commands.moderation.ban.success.title", - "✅", - "commands.moderation.ban.success.description", - victim.getUser().getName() + ".").build()).queue(); - } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); - } - } else { - event.getTextChannel().sendMessage( - event.getMessageEditor().getMessage( - MessageEditor.MessageType.WARNING, - "commands.moderation.ban.error.title", - "commands.moderation.ban.myself.error.description").build()).queue(); - } + 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().ban(victim, 0, "Banned by " + event.getAuthor().getAsTag()).queue(); + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( + MessageEditor.MessageType.INFO, + "commands.moderation.ban.success.title", + "✅", + "commands.moderation.ban.success.description", + victim.getUser().getName() + ".").build()).queue(); } else { - event.getTextChannel().sendMessage - (event.getMessageEditor().getMessage( - MessageEditor.MessageType.WARNING, - "commands.moderation.ban.error.title", - "commands.moderation.ban.yourself.error.description").build()).queue(); + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } - } else if (event.getMessage().getMentionedMembers().size() == 0) { - event.getHelpCommand().sendHelp(this, event); - } else if (event.getMessage().getMentionedMembers().size() > 1) { - for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) { - Member member = event.getMessage().getMentionedMembers().get(i); - if (!event.getAuthor().getId().equals(member.getId())) { - if (!event.getJDA().getSelfUser().getId().equals(member.getId())) { - if (event.getGuild().getSelfMember().canInteract(member)) { - event.getGuild().ban(member, 0).reason("Mass Ban by " + event.getAuthor().getAsTag()).queue(); - } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); - } - } else { - event.getTextChannel().sendMessage( - event.getMessageEditor().getMessage( - MessageEditor.MessageType.WARNING, - "commands.moderation.ban.error.title", - "commands.moderation.ban.myself.error.description").build()).queue(); - } - } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( + } else { + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( MessageEditor.MessageType.WARNING, "commands.moderation.ban.error.title", - "commands.moderation.ban.yourself.error.description").build()).queue(); - } - } - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, - "commands.moderation.ban.success.title", - "✅", - "commands.moderation.ban.massban.success.description", - String.valueOf(event.getMessage().getMentionedMembers().size())).build()).queue(); + "commands.moderation.ban.myself.error.description").build()).queue(); } - } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); + } else { + event.getTextChannel().sendMessage + (event.getMessageEditor().getMessage( + MessageEditor.MessageType.WARNING, + "commands.moderation.ban.error.title", + "commands.moderation.ban.yourself.error.description").build()).queue(); + } + } else if (event.getMessage().getMentionedMembers().size() == 0) { + event.getHelpCommand().sendHelp(this, event); + } else if (event.getMessage().getMentionedMembers().size() > 1) { + for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) { + Member member = event.getMessage().getMentionedMembers().get(i); + if (!event.getAuthor().getId().equals(member.getId())) { + if (!event.getJDA().getSelfUser().getId().equals(member.getId())) { + if (event.getGuild().getSelfMember().canInteract(member)) { + event.getGuild().ban(member, 0).reason("Mass Ban by " + event.getAuthor().getAsTag()).queue(); + } else { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); + } + } else { + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( + MessageEditor.MessageType.WARNING, + "commands.moderation.ban.error.title", + "commands.moderation.ban.myself.error.description").build()).queue(); + } + } else { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( + MessageEditor.MessageType.WARNING, + "commands.moderation.ban.error.title", + "commands.moderation.ban.yourself.error.description").build()).queue(); + } + } + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, + "commands.moderation.ban.success.title", + "✅", + "commands.moderation.ban.massban.success.description", + String.valueOf(event.getMessage().getMentionedMembers().size())).build()).queue(); } } @@ -94,6 +92,6 @@ public class BanCommand implements Command { @Override public String usage() { - return "<@User>"; + return "user"; } } 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 05a6bbd..6e3d248 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/ClearCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/ClearCommand.java @@ -6,6 +6,8 @@ package com.bbn.hadder.commands.moderation; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.core.Perm; +import com.bbn.hadder.core.Perms; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.Message; @@ -14,61 +16,57 @@ import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; - +@Perms(Perm.MANAGE_MESSAGES) public class ClearCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { 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)) { - if (args[0].equals("all")) { - List msg = event.getTextChannel().getIterableHistory().complete(); - for (Message message : msg) { - message.delete().queue(); - } - Message message = event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( + if (event.getGuild().getSelfMember().hasPermission(Permission.MESSAGE_MANAGE)) { + if (args[0].equals("all")) { + List msg = event.getTextChannel().getIterableHistory().complete(); + for (Message message : msg) { + message.delete().queue(); + } + Message message = event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( MessageEditor.MessageType.INFO, "commands.moderation.lear.all.success.title", "", "commands.moderation.lear.all.success.description", String.valueOf(msg.size())) - .build()).complete(); - try { - TimeUnit.SECONDS.sleep(3); - } catch (InterruptedException e) { - e.printStackTrace(); - } - message.delete().queue(); - } else { - try { - int nbToDelete = Integer.parseInt(args[0]); - if (nbToDelete < 1 || nbToDelete > 99) { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "", "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(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, "", "", "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(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "commands.moderation.clear.message.error.title", "commands.moderation.clear.message.error.description") - .build()).queue(); - } + .build()).complete(); + try { + TimeUnit.SECONDS.sleep(3); + } catch (InterruptedException e) { + e.printStackTrace(); } + message.delete().queue(); } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); + try { + int nbToDelete = Integer.parseInt(args[0]); + if (nbToDelete < 1 || nbToDelete > 99) { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "", "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(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, "", "", "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(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "commands.moderation.clear.message.error.title", "commands.moderation.clear.message.error.description") + .build()).queue(); + } } } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } } else { event.getHelpCommand().sendHelp(this, event); diff --git a/src/main/java/com/bbn/hadder/commands/moderation/GuildPrefixCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/GuildPrefixCommand.java deleted file mode 100644 index 35bfb2b..0000000 --- a/src/main/java/com/bbn/hadder/commands/moderation/GuildPrefixCommand.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.bbn.hadder.commands.moderation; - -import com.bbn.hadder.commands.Command; -import com.bbn.hadder.commands.CommandEvent; -import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.Permission; - -public class GuildPrefixCommand implements Command { - - @Override - public void executed(String[] args, CommandEvent event) { - if (event.getGuild().getMemberById(event.getAuthor().getId()).hasPermission(Permission.MANAGE_SERVER) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { - if (args.length == 1) { - if (!args[0].contains("\"")) { - - event.getRethink().setGuildPrefix(args[0], event.getGuild().getId()); - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( - MessageEditor.MessageType.INFO, - "commands.moderation.prefix.success.title", - "✅", - "commands.moderation.prefix.success.description", - args[0]).build() - ).queue(); - } else { - event.getTextChannel().sendMessage( - event.getMessageEditor().getMessage( - MessageEditor.MessageType.WARNING, - "", - "commands.moderation.prefix.error.description").build()).queue(); - } - } else { - event.getHelpCommand().sendHelp(this, event); - } - } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); - } - } - - @Override - public String[] labels() { - return new String[]{"guildprefix"}; - } - - @Override - public String description() { - return "commands.moderation.prefix.help.description"; - } - - @Override - public String usage() { - return "guildprefix"; - } -} diff --git a/src/main/java/com/bbn/hadder/commands/moderation/InviteDetectCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/InviteDetectCommand.java index 5bc0981..37f9b0d 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/InviteDetectCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/InviteDetectCommand.java @@ -6,54 +6,53 @@ package com.bbn.hadder.commands.moderation; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.core.Perm; +import com.bbn.hadder.core.Perms; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.Permission; +@Perms(Perm.MANAGE_SERVER) public class InviteDetectCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { if (args.length == 1) { - if (event.getMember().hasPermission(Permission.MANAGE_SERVER) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { - String opinion = args[0].toLowerCase(); - switch (opinion) { - case "on": - if (!event.getRethink().getInviteDetection(event.getGuild().getId())) { - event.getRethink().setInviteDetection(event.getGuild().getId(), true); - event.getTextChannel().sendMessage( - event.getMessageEditor().getMessage( - MessageEditor.MessageType.INFO, - "commands.moderation.invitedetect.activate.success.title", - "commands.moderation.invitedetect.activate.success.description") - .build()).queue(); - } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( - MessageEditor.MessageType.WARNING, - "commands.moderation.invitedetect.activate.error.title", - "commands.moderation.invitedetect.activate.error.description") - .build()).queue(); - } - break; - - case "off": - if (event.getRethink().getInviteDetection(event.getGuild().getId())) { - event.getRethink().setInviteDetection(event.getGuild().getId(), false); - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( + String opinion = args[0].toLowerCase(); + switch (opinion) { + case "on": + if (!event.getRethink().getInviteDetection(event.getGuild().getId())) { + event.getRethink().setInviteDetection(event.getGuild().getId(), true); + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( MessageEditor.MessageType.INFO, - "commands.moderation.invitedetect.deactivate.success.title", - "commands.moderation.invitedetect.deactivate.success.description") + "commands.moderation.invitedetect.activate.success.title", + "commands.moderation.invitedetect.activate.success.description") .build()).queue(); - } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( - MessageEditor.MessageType.WARNING, - "commands.moderation.invitedetect.deactivate.error.title", - "commands.moderation.invitedetect.deactivate.error.description") - .build()).queue(); - } - break; + } else { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( + MessageEditor.MessageType.WARNING, + "commands.moderation.invitedetect.activate.error.title", + "commands.moderation.invitedetect.activate.error.description") + .build()).queue(); } - } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); + break; + + case "off": + if (event.getRethink().getInviteDetection(event.getGuild().getId())) { + event.getRethink().setInviteDetection(event.getGuild().getId(), false); + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( + MessageEditor.MessageType.INFO, + "commands.moderation.invitedetect.deactivate.success.title", + "commands.moderation.invitedetect.deactivate.success.description") + .build()).queue(); + } else { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( + MessageEditor.MessageType.WARNING, + "commands.moderation.invitedetect.deactivate.error.title", + "commands.moderation.invitedetect.deactivate.error.description") + .build()).queue(); + } + break; } } else { event.getHelpCommand().sendHelp(this, event); diff --git a/src/main/java/com/bbn/hadder/commands/moderation/KickCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/KickCommand.java index a894608..911bb52 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/KickCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/KickCommand.java @@ -6,63 +6,62 @@ package com.bbn.hadder.commands.moderation; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.core.Perm; +import com.bbn.hadder.core.Perms; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.Member; - +@Perms(Perm.KICK_MEMBERS) public class KickCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { - if (event.getGuild().getMemberById(event.getAuthor().getId()).hasPermission(Permission.KICK_MEMBERS) || event.getConfig().getOwners().toString().contains(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(); - event.getTextChannel().sendMessage( - event.getMessageEditor().getMessage( - MessageEditor.MessageType.INFO, - "commands.moderation.kick.success.title", - "✅", - "commands.moderation.kick.success.description", - victim.getUser().getName()).build()).queue(); + 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(); + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( + MessageEditor.MessageType.INFO, + "commands.moderation.kick.success.title", + "✅", + "commands.moderation.kick.success.description", + victim.getUser().getName()).build()).queue(); + } else { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); + } + } else { + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( + MessageEditor.MessageType.WARNING, + "commands.moderation.kick.error.title", + "commands.moderation.kick.myself.error.description").build()).queue(); + } + } else { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "commands.moderation.kick.error.title", "commands.moderation.kick.yourself.error.description").build()).queue(); + } + } else if (event.getMessage().getMentionedMembers().size() == 0) { + event.getHelpCommand().sendHelp(this, event); + } else if (event.getMessage().getMentionedMembers().size() > 1) { + for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) { + Member member = event.getMessage().getMentionedMembers().get(i); + if (!event.getAuthor().getId().equals(member.getId())) { + if (!event.getJDA().getSelfUser().getId().equals(member.getId())) { + if (event.getGuild().getSelfMember().canInteract(member)) { + event.getGuild().kick(member).reason("Mass Kicked by " + event.getAuthor().getAsTag()).queue(); } else { event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } } else { - event.getTextChannel().sendMessage( - event.getMessageEditor().getMessage( - MessageEditor.MessageType.WARNING, - "commands.moderation.kick.error.title", - "commands.moderation.kick.myself.error.description").build()).queue(); + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "commands.moderation.kick.error.title", "commands.moderation.kick.myself.error.description").build()).queue(); } } else { event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "commands.moderation.kick.error.title", "commands.moderation.kick.yourself.error.description").build()).queue(); } - } else if (event.getMessage().getMentionedMembers().size() == 0) { - event.getHelpCommand().sendHelp(this, event); - } else if (event.getMessage().getMentionedMembers().size() > 1) { - for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) { - Member member = event.getMessage().getMentionedMembers().get(i); - if (!event.getAuthor().getId().equals(member.getId())) { - if (!event.getJDA().getSelfUser().getId().equals(member.getId())) { - if (event.getGuild().getSelfMember().canInteract(member)) { - event.getGuild().kick(member).reason("Mass Kicked by " + event.getAuthor().getAsTag()).queue(); - } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); - } - } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "commands.moderation.kick.error.title","commands.moderation.kick.myself.error.description").build()).queue(); - } - } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "commands.moderation.kick.error.title", "commands.moderation.kick.yourself.error.description").build()).queue(); - } - } - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO,"commands.moderation.kick.success.title", "✅","commands.moderation.kick.masskick.success.description", String.valueOf(event.getMessage().getMentionedMembers().size())).build()).queue(); } + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, "commands.moderation.kick.success.title", "✅", "commands.moderation.kick.masskick.success.description", String.valueOf(event.getMessage().getMentionedMembers().size())).build()).queue(); } } @@ -78,6 +77,6 @@ public class KickCommand implements Command { @Override public String usage() { - return "<@User>"; + return "user"; } } diff --git a/src/main/java/com/bbn/hadder/commands/moderation/NickCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/NickCommand.java index 3b04bcf..df21d5a 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/NickCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/NickCommand.java @@ -6,91 +6,90 @@ package com.bbn.hadder.commands.moderation; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.core.Perm; +import com.bbn.hadder.core.Perms; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.Member; +@Perms(Perm.CHANGE_NICKNAME) public class NickCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { - if (event.getMember().hasPermission(Permission.NICKNAME_MANAGE) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { - if (event.getGuild().getSelfMember().hasPermission(Permission.NICKNAME_MANAGE)) { - if (event.getMessage().getMentionedMembers().size() == 1) { - if (!event.getMessage().getMentionedMembers().get(0).getId().equals(event.getGuild().getSelfMember().getId())) { - if (event.getGuild().getSelfMember().canInteract(event.getMessage().getMentionedMembers().get(0))) { - if (args.length > 1) { - if (event.getMessage().getContentRaw().startsWith(event.getRethink().getUserPrefix(event.getMember().getId()))) { - event.getGuild().modifyNickname(event.getMessage().getMentionedMembers().get(0), event.getMessage().getContentRaw().replaceFirst(event.getRethink().getUserPrefix(event.getMember().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue(); - event.getTextChannel().sendMessage( - event.getMessageEditor().getMessage( - MessageEditor.MessageType.INFO, - "commands.moderation.nick.success.title", - "✅", - "commands.moderation.nick.success.description", - event.getMessage().getMentionedMembers().get(0).getUser().getAsTag() - ).build()).queue(); - } else if (event.getMessage().getContentRaw().startsWith(event.getRethink().getGuildPrefix(event.getGuild().getId()))) { - event.getGuild().modifyNickname(event.getMessage().getMentionedMembers().get(0), event.getMessage().getContentRaw().replaceFirst(event.getRethink().getGuildPrefix(event.getGuild().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue(); - event.getTextChannel().sendMessage( - event.getMessageEditor().getMessage( - MessageEditor.MessageType.INFO, - "commands.moderation.nick.success.title", - "✅", - "commands.moderation.nick.success.description", event.getMessage().getMentionedMembers().get(0).getUser().getAsTag() - ).build()).queue(); - } - } else { - event.getHelpCommand().sendHelp(this, event); + if (event.getGuild().getSelfMember().hasPermission(Permission.NICKNAME_MANAGE)) { + if (event.getMessage().getMentionedMembers().size() == 1) { + if (!event.getMessage().getMentionedMembers().get(0).getId().equals(event.getGuild().getSelfMember().getId())) { + if (event.getGuild().getSelfMember().canInteract(event.getMessage().getMentionedMembers().get(0))) { + if (args.length > 1) { + if (event.getMessage().getContentRaw().startsWith(event.getRethink().getUserPrefix(event.getMember().getId()))) { + event.getGuild().modifyNickname(event.getMessage().getMentionedMembers().get(0), event.getMessage().getContentRaw().replaceFirst(event.getRethink().getUserPrefix(event.getMember().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue(); + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( + MessageEditor.MessageType.INFO, + "commands.moderation.nick.success.title", + "✅", + "commands.moderation.nick.success.description", + event.getMessage().getMentionedMembers().get(0).getUser().getAsTag() + ).build()).queue(); + } else if (event.getMessage().getContentRaw().startsWith(event.getRethink().getGuildPrefix(event.getGuild().getId()))) { + event.getGuild().modifyNickname(event.getMessage().getMentionedMembers().get(0), event.getMessage().getContentRaw().replaceFirst(event.getRethink().getGuildPrefix(event.getGuild().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue(); + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( + MessageEditor.MessageType.INFO, + "commands.moderation.nick.success.title", + "✅", + "commands.moderation.nick.success.description", event.getMessage().getMentionedMembers().get(0).getUser().getAsTag() + ).build()).queue(); } } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); + event.getHelpCommand().sendHelp(this, event); } } else { - if (event.getMessage().getContentRaw().startsWith(event.getRethink().getUserPrefix(event.getMember().getId()))) { - event.getGuild().getSelfMember().modifyNickname(event.getMessage().getContentRaw().replaceFirst(event.getRethink().getUserPrefix(event.getMember().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue(); - event.getTextChannel().sendMessage( - event.getMessageEditor().getMessage( - MessageEditor.MessageType.INFO, - "commands.moderation.nick.success.title", - "✅", - "commands.moderation.nick.myself.success.description", - "").build()).queue(); - } else if (event.getMessage().getContentRaw().startsWith(event.getRethink().getGuildPrefix(event.getGuild().getId()))) { - event.getGuild().getSelfMember().modifyNickname(event.getMessage().getContentRaw().replaceFirst(event.getRethink().getGuildPrefix(event.getGuild().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue(); - event.getTextChannel().sendMessage( - event.getMessageEditor().getMessage( - MessageEditor.MessageType.INFO, - "commands.moderation.nick.success.title", - "✅", - "commands.moderation.nick.myself.success.description", "" - ).build()).queue(); - } + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } - } else if (event.getMessage().getMentionedMembers().size() == 0) { - event.getHelpCommand().sendHelp(this, event); } else { - for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) { - Member member = event.getMessage().getMentionedMembers().get(i); - if (!event.getJDA().getSelfUser().getId().equals(member.getId())) { - event.getGuild().modifyNickname(member, args[args.length - 1]).reason("Mass Nicked by " + event.getAuthor().getAsTag()).queue(); - } else { - event.getGuild().getSelfMember().modifyNickname(args[args.length - 1]).reason("Mass Nicked by " + event.getAuthor().getAsTag()).queue(); - } + if (event.getMessage().getContentRaw().startsWith(event.getRethink().getUserPrefix(event.getMember().getId()))) { + event.getGuild().getSelfMember().modifyNickname(event.getMessage().getContentRaw().replaceFirst(event.getRethink().getUserPrefix(event.getMember().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue(); + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( + MessageEditor.MessageType.INFO, + "commands.moderation.nick.success.title", + "✅", + "commands.moderation.nick.myself.success.description", + "").build()).queue(); + } else if (event.getMessage().getContentRaw().startsWith(event.getRethink().getGuildPrefix(event.getGuild().getId()))) { + event.getGuild().getSelfMember().modifyNickname(event.getMessage().getContentRaw().replaceFirst(event.getRethink().getGuildPrefix(event.getGuild().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue(); + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( + MessageEditor.MessageType.INFO, + "commands.moderation.nick.success.title", + "✅", + "commands.moderation.nick.myself.success.description", "" + ).build()).queue(); } - event.getTextChannel().sendMessage( - event.getMessageEditor().getMessage( - MessageEditor.MessageType.INFO, - "commands.moderation.nick.success.title", - "✅", - "commands.moderation.nick.myself.success.description", String.valueOf(event.getMessage().getMentionedMembers().size()) - ).build()).queue(); } + } else if (event.getMessage().getMentionedMembers().size() == 0) { + event.getHelpCommand().sendHelp(this, event); } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); + for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) { + Member member = event.getMessage().getMentionedMembers().get(i); + if (!event.getJDA().getSelfUser().getId().equals(member.getId())) { + event.getGuild().modifyNickname(member, args[args.length - 1]).reason("Mass Nicked by " + event.getAuthor().getAsTag()).queue(); + } else { + event.getGuild().getSelfMember().modifyNickname(args[args.length - 1]).reason("Mass Nicked by " + event.getAuthor().getAsTag()).queue(); + } + } + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( + MessageEditor.MessageType.INFO, + "commands.moderation.nick.success.title", + "✅", + "commands.moderation.nick.myself.success.description", String.valueOf(event.getMessage().getMentionedMembers().size()) + ).build()).queue(); } } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } } diff --git a/src/main/java/com/bbn/hadder/commands/moderation/PrefixCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/PrefixCommand.java new file mode 100644 index 0000000..43742d9 --- /dev/null +++ b/src/main/java/com/bbn/hadder/commands/moderation/PrefixCommand.java @@ -0,0 +1,52 @@ +package com.bbn.hadder.commands.moderation; + +import com.bbn.hadder.commands.Command; +import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.core.Perm; +import com.bbn.hadder.core.Perms; +import com.bbn.hadder.utils.MessageEditor; +import net.dv8tion.jda.api.Permission; + +@Perms(Perm.MANAGE_SERVER) +public class PrefixCommand implements Command { + + @Override + public void executed(String[] args, CommandEvent event) { + if (args.length == 1) { + if (!args[0].contains("\"")) { + + event.getRethink().setGuildPrefix(args[0], event.getGuild().getId()); + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( + MessageEditor.MessageType.INFO, + "commands.moderation.prefix.success.title", + "✅", + "commands.moderation.prefix.success.description", + args[0]).build() + ).queue(); + } else { + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( + MessageEditor.MessageType.WARNING, + "", + "commands.moderation.prefix.error.description").build()).queue(); + } + } else { + event.getHelpCommand().sendHelp(this, event); + } + } + + @Override + public String[] labels() { + return new String[]{"prefix"}; + } + + @Override + public String description() { + return "commands.moderation.prefix.help.description"; + } + + @Override + public String usage() { + return "prefix"; + } +} diff --git a/src/main/java/com/bbn/hadder/commands/moderation/RegionChangeCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/RegionChangeCommand.java index ee6af87..416a26b 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/RegionChangeCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/RegionChangeCommand.java @@ -6,91 +6,93 @@ package com.bbn.hadder.commands.moderation; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.core.Perm; +import com.bbn.hadder.core.Perms; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.Region; +@Perms(Perm.MANAGE_SERVER) public class RegionChangeCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { if (args.length == 1) { - if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_SERVER)) { - if (event.getMember().hasPermission(Permission.MANAGE_SERVER) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { - switch (args[0].toLowerCase()) { - case "amsterdam": - setRegion(Region.AMSTERDAM, "Amsterdam", event); - break; - case "frankfurt": - setRegion(Region.FRANKFURT, "Frankfurt", event); - break; - case "eu-west": - setRegion(Region.EU_WEST, "EU West", event); - break; - case "eu-central": - setRegion(Region.EU_CENTRAL, "EU Central", event); - break; - case "europe": - setRegion(Region.EUROPE, "EUROPE", event); - break; - case "brazil": - setRegion(Region.BRAZIL, "Brazil", event); - break; - case "hongkong": - setRegion(Region.HONG_KONG, "Hong Kong", event); - break; - case "india": - setRegion(Region.INDIA, "India", event); - break; - case "japan": - setRegion(Region.JAPAN, "Japan", event); - break; - case "london": - setRegion(Region.LONDON, "London", event); - break; - case "russia": - setRegion(Region.RUSSIA, "Russia", event); - break; - case "singapore": - setRegion(Region.SINGAPORE, "Singapore", event); - break; - case "south-africa": - setRegion(Region.SOUTH_AFRICA, "South Africa", event); - break; - case "sydney": - setRegion(Region.SYDNEY, "Sydney", event); - break; - case "us-central": - setRegion(Region.US_CENTRAL, "US Central", event); - break; - case "us-east": - setRegion(Region.US_EAST, "US East", event); - break; - case "us-west": - setRegion(Region.US_WEST, "US West", event); - break; - case "us-south": - setRegion(Region.US_SOUTH, "US South", event); - break; - case "list": - event.getTextChannel().sendMessage( - event.getMessageEditor().getMessage( - MessageEditor.MessageType.INFO, - "commands.moderation.regionchange.regions.title", - "") - .setDescription("**LOCKED:**\n`amsterdam` `frankfurt` `eu-west` `eu-central` `london`\n\n**UNLOCKED:**\n`europe` `brazil` `hongkong` `india` `japan` `singapore` `south-africa` `sydney` `us-central` `us-east` `us-west` `us-south`") - .build()).queue(); - break; - } - } else event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); - } else event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); + if (event.getMember().hasPermission(Permission.MANAGE_SERVER) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { + switch (args[0].toLowerCase()) { + case "amsterdam": + setRegion(Region.AMSTERDAM, "Amsterdam", event); + break; + case "frankfurt": + setRegion(Region.FRANKFURT, "Frankfurt", event); + break; + case "eu-west": + setRegion(Region.EU_WEST, "EU West", event); + break; + case "eu-central": + setRegion(Region.EU_CENTRAL, "EU Central", event); + break; + case "europe": + setRegion(Region.EUROPE, "EUROPE", event); + break; + case "brazil": + setRegion(Region.BRAZIL, "Brazil", event); + break; + case "hongkong": + setRegion(Region.HONG_KONG, "Hong Kong", event); + break; + case "india": + setRegion(Region.INDIA, "India", event); + break; + case "japan": + setRegion(Region.JAPAN, "Japan", event); + break; + case "london": + setRegion(Region.LONDON, "London", event); + break; + case "russia": + setRegion(Region.RUSSIA, "Russia", event); + break; + case "singapore": + setRegion(Region.SINGAPORE, "Singapore", event); + break; + case "south-africa": + setRegion(Region.SOUTH_AFRICA, "South Africa", event); + break; + case "sydney": + setRegion(Region.SYDNEY, "Sydney", event); + break; + case "us-central": + setRegion(Region.US_CENTRAL, "US Central", event); + break; + case "us-east": + setRegion(Region.US_EAST, "US East", event); + break; + case "us-west": + setRegion(Region.US_WEST, "US West", event); + break; + case "us-south": + setRegion(Region.US_SOUTH, "US South", event); + break; + case "list": + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( + MessageEditor.MessageType.INFO, + "commands.moderation.regionchange.regions.title", + "") + .setDescription("**LOCKED:**\n`amsterdam` `frankfurt` `eu-west` `eu-central` `london`\n\n**UNLOCKED:**\n`europe` `brazil` `hongkong` `india` `japan` `singapore` `south-africa` `sydney` `us-central` `us-east` `us-west` `us-south`") + .build()).queue(); + break; + } + } else + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } else event.getTextChannel().sendMessage( event.getMessageEditor().getMessage( MessageEditor.MessageType.INFO, "commands.moderation.regionchange.regions.title", "") .setDescription("**LOCKED:**\n`amsterdam` `frankfurt` `eu-west` `eu-central` `london`\n\n**UNLOCKED:**\n`europe` `brazil` `hongkong` `india` `japan` `singapore` `south-africa` `sydney` `us-central` `us-east` `us-west` `us-south`") - .build()).queue(); + .build()).queue(); } public void setRegion (Region region, String region_name, CommandEvent event) { diff --git a/src/main/java/com/bbn/hadder/commands/moderation/RoleCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/RoleCommand.java index f8fac2a..9c914bb 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/RoleCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/RoleCommand.java @@ -2,81 +2,81 @@ package com.bbn.hadder.commands.moderation; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.core.Perm; +import com.bbn.hadder.core.Perms; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Role; +@Perms(Perm.MANAGE_ROLES) public class RoleCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { if (args.length > 0) { if (event.getMember().hasPermission(Permission.MANAGE_ROLES)) { - if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_ROLES) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { - String action = args[0].toLowerCase(); - switch (action) { - case "add": - if (event.getMessage().getMentionedMembers().size() > 0 && event.getMessage().getMentionedRoles().size() > 0) { - for (Member member : event.getMessage().getMentionedMembers()) { - for (Role role : event.getMessage().getMentionedRoles()) { - if (event.getGuild().getSelfMember().canInteract(member)) { - if (event.getGuild().getSelfMember().canInteract(role)) { - event.getGuild().addRoleToMember(member, role).reason("Role added by " + event.getAuthor().getAsTag()).queue(); - } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); - } - } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); - } - } - } - event.getChannel().sendMessage( - event.getMessageEditor().getMessage( - MessageEditor.MessageType.INFO, - "commands.moderation.role.add.success.title", - "✅", - "", - "commands.moderation.role.add.success.description", - String.valueOf(event.getMessage().getMentionedRoles().size()), - String.valueOf(event.getMessage().getMentionedMembers().size())) - .build()).queue(); - } - break; - case "remove": - if (event.getMessage().getMentionedMembers().size() > 0 && event.getMessage().getMentionedRoles().size() > 0) { - for (Member member : event.getMessage().getMentionedMembers()) { - for (Role role : event.getMessage().getMentionedRoles()) { - if (event.getGuild().getSelfMember().canInteract(member)) { - if (event.getGuild().getSelfMember().canInteract(role)) { - event.getGuild().removeRoleFromMember(member, role).reason("Role removed by " + event.getAuthor().getAsTag()).queue(); - } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); - } + String action = args[0].toLowerCase(); + switch (action) { + case "add": + if (event.getMessage().getMentionedMembers().size() > 0 && event.getMessage().getMentionedRoles().size() > 0) { + for (Member member : event.getMessage().getMentionedMembers()) { + for (Role role : event.getMessage().getMentionedRoles()) { + if (event.getGuild().getSelfMember().canInteract(member)) { + if (event.getGuild().getSelfMember().canInteract(role)) { + event.getGuild().addRoleToMember(member, role).reason("Role added by " + event.getAuthor().getAsTag()).queue(); } else { event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } + } else { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } } - event.getChannel().sendMessage( - event.getMessageEditor().getMessage( - MessageEditor.MessageType.INFO, - "commands.moderation.role.remove.success.title", - "✅", - "", - "commands.moderation.role.remove.success.description", - String.valueOf(event.getMessage().getMentionedRoles().size()), - String.valueOf(event.getMessage().getMentionedMembers().size())) - .build()).queue(); } - break; - } - } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); + event.getChannel().sendMessage( + event.getMessageEditor().getMessage( + MessageEditor.MessageType.INFO, + "commands.moderation.role.add.success.title", + "✅", + "", + "commands.moderation.role.add.success.description", + String.valueOf(event.getMessage().getMentionedRoles().size()), + String.valueOf(event.getMessage().getMentionedMembers().size())) + .build()).queue(); + } + break; + + case "remove": + if (event.getMessage().getMentionedMembers().size() > 0 && event.getMessage().getMentionedRoles().size() > 0) { + for (Member member : event.getMessage().getMentionedMembers()) { + for (Role role : event.getMessage().getMentionedRoles()) { + if (event.getGuild().getSelfMember().canInteract(member)) { + if (event.getGuild().getSelfMember().canInteract(role)) { + event.getGuild().removeRoleFromMember(member, role).reason("Role removed by " + event.getAuthor().getAsTag()).queue(); + } else { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); + } + } else { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); + } + } + } + event.getChannel().sendMessage( + event.getMessageEditor().getMessage( + MessageEditor.MessageType.INFO, + "commands.moderation.role.remove.success.title", + "✅", + "", + "commands.moderation.role.remove.success.description", + String.valueOf(event.getMessage().getMentionedRoles().size()), + String.valueOf(event.getMessage().getMentionedMembers().size())) + .build()).queue(); + } + break; } } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } } else { event.getHelpCommand().sendHelp(this, event); 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 f39dd5c..23fb16e 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java @@ -6,6 +6,8 @@ package com.bbn.hadder.commands.moderation; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.core.Perm; +import com.bbn.hadder.core.Perms; import com.bbn.hadder.utils.EventWaiter; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.Permission; @@ -15,48 +17,45 @@ import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.entities.TextChannel; import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent; +@Perms(Perm.MANAGE_SERVER) public class RulesCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { - if (event.getMember().hasPermission(Permission.MANAGE_SERVER) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { - if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_ROLES)) { - event.getTextChannel().sendMessage( - event.getMessageEditor().getMessage( - MessageEditor.MessageType.INFO, - "commands.moderation.rules.setup.title", - "commands.moderation.rules.setup.description") - .build()).queue(); - new EventWaiter().newOnMessageEventWaiter(event1 -> { - if (event1.getMessage().getMentionedChannels().size() == 1) { - try { - TextChannel channel = event1.getMessage().getMentionedChannels().get(0); - createRules(event, event1, channel); - } catch (Exception e) { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, - "commands.moderation.rules.channel.error.title", - "commands.moderation.rules.channel.error.description") - .build()).queue(); - } - } else { - try { - TextChannel channel = event1.getGuild().getTextChannelsByName(event1.getMessage().getContentRaw(), true).get(0); - createRules(event, event1, channel); - } catch (Exception e) { - event.getTextChannel().sendMessage( - event.getMessageEditor().getMessage( - MessageEditor.MessageType.ERROR, - "commands.moderation.rules.channel.error.title", - "commands.moderation.rules.channel.error.description") - .build()).queue(); - } + if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_ROLES)) { + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( + MessageEditor.MessageType.INFO, + "commands.moderation.rules.setup.title", + "commands.moderation.rules.setup.description") + .build()).queue(); + new EventWaiter().newOnMessageEventWaiter(event1 -> { + if (event1.getMessage().getMentionedChannels().size() == 1) { + try { + TextChannel channel = event1.getMessage().getMentionedChannels().get(0); + createRules(event, event1, channel); + } catch (Exception e) { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, + "commands.moderation.rules.channel.error.title", + "commands.moderation.rules.channel.error.description") + .build()).queue(); } - }, event.getJDA(), event.getAuthor()); - } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); - } + } else { + try { + TextChannel channel = event1.getGuild().getTextChannelsByName(event1.getMessage().getContentRaw(), true).get(0); + createRules(event, event1, channel); + } catch (Exception e) { + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( + MessageEditor.MessageType.ERROR, + "commands.moderation.rules.channel.error.title", + "commands.moderation.rules.channel.error.description") + .build()).queue(); + } + } + }, event.getJDA(), event.getAuthor()); } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } } diff --git a/src/main/java/com/bbn/hadder/commands/moderation/StarBoardCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/StarBoardCommand.java index fbabb35..50d6987 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/StarBoardCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/StarBoardCommand.java @@ -6,6 +6,7 @@ import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.entities.TextChannel; public class StarBoardCommand implements Command { + @Override public void executed(String[] args, CommandEvent event) { if (event.getMessage().getMentionedChannels().size()==1) { 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 c44cbf2..ca5fac2 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/EvalCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/EvalCommand.java @@ -7,8 +7,8 @@ package com.bbn.hadder.commands.owner; import com.bbn.hadder.Hadder; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; -import com.bbn.hadder.commands.Perm; -import com.bbn.hadder.commands.Perms; +import com.bbn.hadder.core.Perm; +import com.bbn.hadder.core.Perms; import com.bbn.hadder.utils.MessageEditor; import javax.script.ScriptEngine; diff --git a/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java b/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java index 32c392a..b35d07d 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java @@ -6,8 +6,8 @@ package com.bbn.hadder.commands.owner; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; -import com.bbn.hadder.commands.Perm; -import com.bbn.hadder.commands.Perms; +import com.bbn.hadder.core.Perm; +import com.bbn.hadder.core.Perms; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.entities.Guild; @@ -16,34 +16,22 @@ public class GuildLeaveCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { - if (event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { - if (args.length > 0) { - Guild guild = event.getJDA().getGuildById(args[0]); - try { - guild.leave().queue(); - event.getTextChannel() - .sendMessage(event.getMessageEditor() - .getMessage(MessageEditor.MessageType.INFO, "commands.owner.guildleave.success.title", - "", "commands.owner.guildleave.success.description", guild.getName()) - .build()) - .queue(); - } catch (Exception e) { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "commands.owner.guildleave.error.title", "", "commands.owner.guildleave.help.description", guild.getName()).build()).queue(); - } - } else { - event.getHelpCommand().sendHelp(this, event); + if (args.length > 0) { + Guild guild = event.getJDA().getGuildById(args[0]); + try { + guild.leave().queue(); + event.getTextChannel() + .sendMessage(event.getMessageEditor() + .getMessage(MessageEditor.MessageType.INFO, "commands.owner.guildleave.success.title", + "", "commands.owner.guildleave.success.description", guild.getName()) + .build()) + .queue(); + } catch (Exception e) { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "commands.owner.guildleave.error.title", "", "commands.owner.guildleave.help.description", guild.getName()).build()).queue(); } - } else { - event.getTextChannel() - .sendMessage(event.getMessageEditor() - .getMessage(MessageEditor.MessageType.INFO, "commands.owner.guildleave.success.title", - "", "commands.owner.guildleave.success.description", guild.getName()) - .build()) - .queue(); } else { event.getHelpCommand().sendHelp(this, event); } - } @Override diff --git a/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java b/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java index 5059e4f..35a2377 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java @@ -6,9 +6,8 @@ package com.bbn.hadder.commands.owner; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; -import com.bbn.hadder.commands.Perm; -import com.bbn.hadder.commands.Perms; -import com.bbn.hadder.utils.MessageEditor; +import com.bbn.hadder.core.Perm; +import com.bbn.hadder.core.Perms; @Perms(Perm.BOT_OWNER) public class RebootCommand implements Command { diff --git a/src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java b/src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java index 56bac44..a002481 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java @@ -6,8 +6,8 @@ package com.bbn.hadder.commands.owner; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; -import com.bbn.hadder.commands.Perm; -import com.bbn.hadder.commands.Perms; +import com.bbn.hadder.core.Perm; +import com.bbn.hadder.core.Perms; import com.bbn.hadder.utils.MessageEditor; @Perms(Perm.BOT_OWNER) diff --git a/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java b/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java index 35a1427..ae25810 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java @@ -2,18 +2,14 @@ package com.bbn.hadder.commands.owner; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; -import com.bbn.hadder.commands.Perm; -import com.bbn.hadder.commands.Perms; -import com.bbn.hadder.utils.MessageEditor; +import com.bbn.hadder.core.Perm; +import com.bbn.hadder.core.Perms; import com.bbn.hadder.utils.MessageEditor.MessageType; -import static com.bbn.hadder.commands.Perm.BOT_OWNER; - /* * @author Skidder / GregTCLTK */ -@Perms(Perm.BOT_OWNER) public class TestCommand implements Command { @Override diff --git a/src/main/java/com/bbn/hadder/commands/settings/PrefixCommand.java b/src/main/java/com/bbn/hadder/commands/settings/UserPrefixCommand.java similarity index 89% rename from src/main/java/com/bbn/hadder/commands/settings/PrefixCommand.java rename to src/main/java/com/bbn/hadder/commands/settings/UserPrefixCommand.java index 4bb58af..bf360fe 100644 --- a/src/main/java/com/bbn/hadder/commands/settings/PrefixCommand.java +++ b/src/main/java/com/bbn/hadder/commands/settings/UserPrefixCommand.java @@ -8,7 +8,7 @@ import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.utils.MessageEditor; -public class PrefixCommand implements Command { +public class UserPrefixCommand implements Command { public void executed(String[] args, CommandEvent event) { if (args.length == 1) { @@ -26,7 +26,7 @@ public class PrefixCommand implements Command { @Override public String[] labels() { - return new String[] { "prefix" }; + return new String[] { "userprefix" }; } @Override @@ -36,6 +36,6 @@ public class PrefixCommand implements Command { @Override public String usage() { - return "prefix"; + return "userprefix"; } } diff --git a/src/main/java/com/bbn/hadder/core/CommandHandler.java b/src/main/java/com/bbn/hadder/core/CommandHandler.java index 1f1be07..a51e674 100644 --- a/src/main/java/com/bbn/hadder/core/CommandHandler.java +++ b/src/main/java/com/bbn/hadder/core/CommandHandler.java @@ -3,8 +3,6 @@ package com.bbn.hadder.core; import com.bbn.hadder.Rethink; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; -import com.bbn.hadder.commands.Perm; -import com.bbn.hadder.commands.Perms; import com.bbn.hadder.commands.general.HelpCommand; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; @@ -38,7 +36,7 @@ public class CommandHandler { CommandEvent commandEvent = new CommandEvent(event.getJDA(), event.getResponseNumber(), event.getMessage(), rethink, config, this, helpCommand, new MessageEditor(rethink, event.getAuthor())); if (cmd.getClass().getAnnotations().length>0) { - if (Arrays.asList(cmd.getClass().getAnnotations()).contains(Perms.class)) { + if (!Arrays.asList(cmd.getClass().getAnnotations()).contains(Perms.class)) { for (Perm perm : cmd.getClass().getAnnotation(Perms.class).value()) { if (!perm.check(commandEvent)) { commandEvent.getTextChannel() diff --git a/src/main/java/com/bbn/hadder/core/Config.java b/src/main/java/com/bbn/hadder/core/Config.java index 7abbf78..fce590e 100644 --- a/src/main/java/com/bbn/hadder/core/Config.java +++ b/src/main/java/com/bbn/hadder/core/Config.java @@ -63,6 +63,7 @@ public class Config { .value("DiscordExtremeList").value(null) .value("DiscordBotReviews").value(null) .value("DiscordBots").value(null) + .value("BotListSpace").value(null) .endObject().endObject().toString(); } @@ -141,4 +142,8 @@ public class Config { public String getBotListSpaceToken() { return config.getJSONObject("Tokens").getString("BotListSpace"); } + + public String getClydeName() { + return config.getString("Clyde"); + } } diff --git a/src/main/java/com/bbn/hadder/core/Perm.java b/src/main/java/com/bbn/hadder/core/Perm.java new file mode 100644 index 0000000..4cd1b7a --- /dev/null +++ b/src/main/java/com/bbn/hadder/core/Perm.java @@ -0,0 +1,75 @@ +package com.bbn.hadder.core; + +import com.bbn.hadder.commands.CommandEvent; +import net.dv8tion.jda.api.Permission; + +/** + * @author Skidder / GregTCLTK + * @author Hax / Hax6775 / Schlauer_Hax + */ + +public enum Perm { + + BOT_OWNER() { + @Override + public boolean check(CommandEvent event) { + return event.getConfig().getOwners().contains(event.getAuthor().getIdLong()); + } + }, + MANAGE_MESSAGES { + @Override + public boolean check(CommandEvent event) { + return event.getMember().hasPermission(Permission.MESSAGE_MANAGE) || event.getConfig().getOwners().contains(event.getAuthor().getIdLong()); + } + }, + EMBED_MESSAGES { + @Override + public boolean check(CommandEvent event) { + return event.getMember().hasPermission(Permission.MESSAGE_EMBED_LINKS) || event.getConfig().getOwners().contains(event.getAuthor().getIdLong()); + } + }, + BAN_MEMBERS { + @Override + public boolean check(CommandEvent event) { + return event.getMember().hasPermission(Permission.BAN_MEMBERS) || event.getConfig().getOwners().contains(event.getAuthor().getIdLong()); + } + }, + KICK_MEMBERS { + @Override + public boolean check(CommandEvent event) { + return event.getMember().hasPermission(Permission.KICK_MEMBERS) || event.getConfig().getOwners().contains(event.getAuthor().getIdLong()); + } + }, + MANAGE_SERVER { + @Override + public boolean check(CommandEvent event) { + return event.getMember().hasPermission(Permission.MANAGE_SERVER) || event.getConfig().getOwners().contains(event.getAuthor().getIdLong()); + } + }, + MANAGE_ROLES { + @Override + public boolean check(CommandEvent event) { + return event.getMember().hasPermission(Permission.MANAGE_ROLES) || event.getConfig().getOwners().contains(event.getAuthor().getIdLong()); + } + }, + CHANGE_NICKNAME { + @Override + public boolean check(CommandEvent event) { + return event.getMember().hasPermission(Permission.NICKNAME_CHANGE) || event.getConfig().getOwners().contains(event.getAuthor().getIdLong()); + } + }, + ADMINISTRATOR { + @Override + public boolean check(CommandEvent event) { + return event.getMember().hasPermission(Permission.ADMINISTRATOR) || event.getConfig().getOwners().contains(event.getAuthor().getIdLong()); + } + }, + MANAGE_WEBHOOKS { + @Override + public boolean check(CommandEvent event) { + return event.getMember().hasPermission(Permission.MANAGE_WEBHOOKS) || event.getConfig().getOwners().contains(event.getAuthor().getIdLong()); + } + }; + + public abstract boolean check(CommandEvent event); +} diff --git a/src/main/java/com/bbn/hadder/commands/Perms.java b/src/main/java/com/bbn/hadder/core/Perms.java similarity index 77% rename from src/main/java/com/bbn/hadder/commands/Perms.java rename to src/main/java/com/bbn/hadder/core/Perms.java index c834df4..7fc8426 100644 --- a/src/main/java/com/bbn/hadder/commands/Perms.java +++ b/src/main/java/com/bbn/hadder/core/Perms.java @@ -1,12 +1,13 @@ -/* - * @author Hax / Hax6775 / Schlauer_Hax - */ - -package com.bbn.hadder.commands; +package com.bbn.hadder.core; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +/** + * @author Skidder / GregTCLTK + * @author Hax / Hax6775 / Schlauer_Hax + */ + @Retention(RetentionPolicy.RUNTIME) public @interface Perms { Perm[] value() default {}; diff --git a/src/main/java/com/bbn/hadder/listener/StarboardListener.java b/src/main/java/com/bbn/hadder/listener/StarboardListener.java index 0a45dde..8bdf694 100644 --- a/src/main/java/com/bbn/hadder/listener/StarboardListener.java +++ b/src/main/java/com/bbn/hadder/listener/StarboardListener.java @@ -10,7 +10,6 @@ import net.dv8tion.jda.api.events.message.react.MessageReactionRemoveEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; import javax.annotation.Nonnull; -import java.time.format.DateTimeFormatter; public class StarboardListener extends ListenerAdapter { diff --git a/src/main/java/com/bbn/hadder/utils/MessageEditor.java b/src/main/java/com/bbn/hadder/utils/MessageEditor.java index ec9c8fa..2f22d85 100644 --- a/src/main/java/com/bbn/hadder/utils/MessageEditor.java +++ b/src/main/java/com/bbn/hadder/utils/MessageEditor.java @@ -35,7 +35,7 @@ public class MessageEditor { public EmbedBuilder getMessage(MessageType type, String title_language_string, String title_extra, String title_extra_two, String description_language_string, String description_extra, String description_extra_two) { - String language = rethink.getLanguage(this.user.getId()); + String language = (this.user!=null) ? rethink.getLanguage(this.user.getId()) : null; EmbedBuilder eb = this.getDefaultSettings(type); if (!title_language_string.equals("")) eb.setTitle(this.handle(language, title_language_string, title_extra, title_extra_two)); if (!description_language_string.equals("")) eb.setDescription(this.handle(language, description_language_string, description_extra, description_extra_two)); @@ -47,7 +47,7 @@ public class MessageEditor { WARNING, INFO, NO_PERMISSION, - NO_SELF_PERMISSION, + NO_SELF_PERMISSION, NO_NSFW } diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index dfb232c..c72b94c 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -4,15 +4,17 @@ Hadder = Hadder +user = <@User> searchterm = username = number = /all -guildprefix = prefix = +userprefix = vc-name/id = user+nickname = <@user> region = guildid = +content = error = Error none = None @@ -25,6 +27,7 @@ commands.fun.gif.help.description = Look for a GIF on Giphy commands.fun.meme.success.title = Your random meme commands.fun.meme.api.error = The request to the meme API could not be processed. Please try it again later. commands.fun.meme.help.description = Sends you a random meme. +commands.fun.clyde.help.description = Send a message as a webhook named Clyde. commands.general.about.success.title = Hadder - About commands.general.about.success.description = Hadder is an open source Discord bot. @@ -94,7 +97,7 @@ 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% +commands.moderation.prefix.success.description = I successfully set the new prefix for the guild to `%extra%`. commands.moderation.prefix.error.description = The prefix must not contain **"** commands.moderation.prefix.help.description = Sets the Guild-Prefix. commands.moderation.invitedetect.activate.success.title = Successfully activated @@ -212,9 +215,9 @@ commands.owner.test.success = TEST my friends commands.owner.test.help.description = Just a little Test Command commands.settings.language.success.title = Language set -commands.settings.language.success.description = %extra% is your new language now. +commands.settings.language.success.description = `%extra%` is your new language now. commands.settings.language.help.description = Sets the new primary language for a user. commands.settings.language.help.usage = commands.settings.prefix.success.title = %extra% Successfully set %extra% -commands.settings.prefix.success.description = I successfully set the new prefix for you to %extra%. +commands.settings.prefix.success.description = I successfully set the new prefix for you to `%extra%`. commands.settings.prefix.help.description = Sets a new Prefix