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.
[](https://www.codacy.com/gh/BigBotNetwork/Hadder?utm_source=github.com&utm_medium=referral&utm_content=BigBotNetwork/Hadder&utm_campaign=Badge_Grade)
[](https://www.codefactor.io/repository/github/bigbotnetwork/hadder)
[](https://bbn.crowdin.com/hadder)
+[](https://github.com/BigBotNetwork/Hadder/issues)
+[](https://github.com/BigBotNetwork/Hadder/blob/master/LICENSE)
[](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 88c3108..450bede 100644
--- a/pom.xml
+++ b/pom.xml
@@ -16,12 +16,6 @@
-
- junit
- junit
- 4.12
- test
-
net.dv8tion
JDA
@@ -137,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 bf30069..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,7 +87,8 @@ public class Hadder {
new RegionChangeCommand(),
new AboutCommand(),
new LanguageCommand(),
- new SetStarBoardCommand()), config, helpCommand);
+ new ClydeCommand(),
+ new StarBoardCommand()), config, helpCommand);
builder.addEventListeners(
new MentionListener(rethink),
diff --git a/src/main/java/com/bbn/hadder/Rethink.java b/src/main/java/com/bbn/hadder/Rethink.java
index 9d3ce64..f501971 100644
--- a/src/main/java/com/bbn/hadder/Rethink.java
+++ b/src/main/java/com/bbn/hadder/Rethink.java
@@ -81,6 +81,10 @@ public class Rethink {
return out;
}
+ public void remove(String table, String where, String wherevalue) {
+ r.table(table).filter(row -> row.g(where.toLowerCase()).eq(wherevalue)).delete().run(conn);
+ }
+
public void setup() {
try {
r.dbCreate("Hadder").run(conn);
@@ -156,15 +160,19 @@ public class Rethink {
}
public void insertStarboardMessage(String messageid, String guildid, String starboardmessageid) {
- this.insert("stars", r.hashMap("msg", messageid).with("guild", guildid).with("starboardmsg", starboardmessageid));
+ this.insert("stars", r.hashMap("id", messageid).with("guild", guildid).with("starboardmsg", starboardmessageid));
}
public String getStarboardMessage(String messageid) {
- return (String) this.get("stars", "msg", messageid, "starboardmsg");
+ return (String) this.get("stars", "id", messageid, "starboardmsg");
+ }
+
+ public void removeStarboardMessage(String messageid) {
+ this.remove("stars", "id", messageid);
}
public boolean hasStarboardMessage(String messageid) {
- return this.get("stars", "msg", messageid, "guild") != null;
+ return this.get("stars", "id", messageid, "guild") != null;
}
public void updateRules(String guild_id, String message_id, String role_id, String accept_emote, String decline_emote) {
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/SetStarBoardCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/StarBoardCommand.java
similarity index 92%
rename from src/main/java/com/bbn/hadder/commands/moderation/SetStarBoardCommand.java
rename to src/main/java/com/bbn/hadder/commands/moderation/StarBoardCommand.java
index bfd32c6..50d6987 100644
--- a/src/main/java/com/bbn/hadder/commands/moderation/SetStarBoardCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/moderation/StarBoardCommand.java
@@ -3,10 +3,10 @@ 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.EmbedBuilder;
import net.dv8tion.jda.api.entities.TextChannel;
-public class SetStarBoardCommand implements Command {
+public class StarBoardCommand implements Command {
+
@Override
public void executed(String[] args, CommandEvent event) {
if (event.getMessage().getMentionedChannels().size()==1) {
@@ -35,7 +35,7 @@ public class SetStarBoardCommand implements Command {
@Override
public String[] labels() {
- return new String[]{"setstarboard"};
+ return new String[]{"starboard"};
}
@Override
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 06b73eb..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,6 +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.core.Perm;
+import com.bbn.hadder.core.Perms;
import com.bbn.hadder.utils.MessageEditor;
import javax.script.ScriptEngine;
@@ -16,84 +18,79 @@ import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
+@Perms(Perm.BOT_OWNER)
public class EvalCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
- if (event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) {
- if (args.length > 0) {
- ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
+ if (args.length > 0) {
+ ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
+
+ try {
+ engine.eval("var imports = new JavaImporter(java.io, java.lang, java.util);");
+ } catch (ScriptException ex) {
+ ex.printStackTrace();
+ }
+
+ engine.put("msg", event.getMessage());
+ engine.put("shardmanager", Hadder.shardManager);
+ engine.put("rethink", event.getRethink());
+ engine.put("event", event);
+ engine.put("jda", event.getJDA());
+ engine.put("message", event.getMessage());
+ engine.put("guild", event.getGuild());
+ engine.put("channel", event.getChannel());
+ engine.put("author", event.getAuthor());
+ engine.put("member", event.getMember());
+ engine.put("self", event.getGuild().getSelfMember());
+
+ ScheduledExecutorService service = Executors.newScheduledThreadPool(1);
+
+ service.schedule(() -> {
+
+ long startExec = System.currentTimeMillis();
+ Object out;
try {
- engine.eval("var imports = new JavaImporter(java.io, java.lang, java.util);");
- } catch (ScriptException ex) {
- ex.printStackTrace();
+ String script = "";
+ for (int i = 0; i < args.length; i++) {
+ args[i] = args[i].replace("```java", "").replace("```", "");
+ script += i == args.length - 1 ? args[i] : args[i] + " ";
+ }
+ out = engine.eval(script);
+
+ event.getTextChannel().sendMessage(event.getMessageEditor()
+ .getMessage(MessageEditor.MessageType.INFO, "commands.owner.eval.success.title", "")
+ .addField(event.getMessageEditor().getTerm("commands.owner.eval.success.input"),
+ "```java\n\n" + script + "```", false)
+ .addField(event.getMessageEditor().getTerm("commands.owner.eval.success.output"),
+ "```java\n\n" + out.toString() + "```", false)
+ .addField(event.getMessageEditor().getTerm("commands.owner.eval.success.timing"),
+ System.currentTimeMillis() - startExec + " milliseconds", false)
+ .build()).queue();
+ } catch (Exception ex) {
+ event.getTextChannel().sendMessage(event.getMessageEditor()
+ .getMessage(MessageEditor.MessageType.INFO, "commands.owner.eval.success.title", "")
+ .addField(event.getMessageEditor().getTerm("error"),
+ "```java\n\n" + ex.getMessage() + "```", false)
+ .addField(event.getMessageEditor().getTerm("commands.owner.eval.success.timing"),
+ System.currentTimeMillis() - startExec + " milliseconds", false)
+ .build()).queue();
+
}
- engine.put("msg", event.getMessage());
- engine.put("shardmanager", Hadder.shardManager);
- engine.put("rethink", event.getRethink());
- engine.put("event", event);
- engine.put("jda", event.getJDA());
- engine.put("message", event.getMessage());
- engine.put("guild", event.getGuild());
- engine.put("channel", event.getChannel());
- engine.put("author", event.getAuthor());
- engine.put("member", event.getMember());
- engine.put("self", event.getGuild().getSelfMember());
+ service.shutdownNow();
- ScheduledExecutorService service = Executors.newScheduledThreadPool(1);
+ }, 0, TimeUnit.MILLISECONDS);
- service.schedule(() -> {
-
- long startExec = System.currentTimeMillis();
- Object out;
-
- try {
- String script = "";
- for (int i = 0; i < args.length; i++) {
- args[i] = args[i].replace("```java", "").replace("```", "");
- script += i == args.length - 1 ? args[i] : args[i] + " ";
- }
- out = engine.eval(script);
-
- event.getTextChannel().sendMessage(event.getMessageEditor()
- .getMessage(MessageEditor.MessageType.INFO, "commands.owner.eval.success.title", "")
- .addField(event.getMessageEditor().getTerm("commands.owner.eval.success.input"),
- "```java\n\n" + script + "```", false)
- .addField(event.getMessageEditor().getTerm("commands.owner.eval.success.output"),
- "```java\n\n" + out.toString() + "```", false)
- .addField(event.getMessageEditor().getTerm("commands.owner.eval.success.timing"),
- System.currentTimeMillis() - startExec + " milliseconds", false)
- .build()).queue();
- } catch (Exception ex) {
- event.getTextChannel().sendMessage(event.getMessageEditor()
- .getMessage(MessageEditor.MessageType.INFO, "commands.owner.eval.success.title", "")
- .addField(event.getMessageEditor().getTerm("error"),
- "```java\n\n" + ex.getMessage() + "```", false)
- .addField(event.getMessageEditor().getTerm("commands.owner.eval.success.timing"),
- System.currentTimeMillis() - startExec + " milliseconds", false)
- .build()).queue();
-
- }
-
- service.shutdownNow();
-
- }, 0, TimeUnit.MILLISECONDS);
-
- } else {
- event.getHelpCommand().sendHelp(this, event);
- }
} else {
- event.getTextChannel()
- .sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build())
- .queue();
+ event.getHelpCommand().sendHelp(this, event);
}
}
@Override
public String[] labels() {
- return new String[] { "eval" };
+ return new String[]{"eval"};
}
@Override
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 8b2a21e..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,16 +6,19 @@ package com.bbn.hadder.commands.owner;
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.entities.Guild;
+@Perms(Perm.BOT_OWNER)
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]);
+ if (args.length > 0) {
+ Guild guild = event.getJDA().getGuildById(args[0]);
+ try {
guild.leave().queue();
event.getTextChannel()
.sendMessage(event.getMessageEditor()
@@ -23,19 +26,17 @@ public class GuildLeaveCommand implements Command {
"", "commands.owner.guildleave.success.description", guild.getName())
.build())
.queue();
- } else {
- event.getHelpCommand().sendHelp(this, event);
+ } 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.NO_PERMISSION).build())
- .queue();
+ event.getHelpCommand().sendHelp(this, event);
}
}
@Override
public String[] labels() {
- return new String[] { "guildleave" };
+ return new String[]{"guildleave"};
}
@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 4ce2138..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,18 +6,15 @@ package com.bbn.hadder.commands.owner;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
-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 {
@Override
public void executed(String[] args, CommandEvent event) {
- if (event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) {
- Runtime.getRuntime().exit(69);
- } else {
- event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()).queue();
- }
+ Runtime.getRuntime().exit(69);
}
@Override
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 4f9307a..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,20 +6,19 @@ package com.bbn.hadder.commands.owner;
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;
+@Perms(Perm.BOT_OWNER)
public class ShutdownCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
- if (event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) {
- event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO).setTitle("Shutdown").build()).queue();
- event.getJDA().getShardManager().shutdown();
- System.out.println("Bot shut down via Command...");
- Runtime.getRuntime().exit(69);
- } else {
- event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()).queue();
- }
+ event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO).setTitle("Shutdown").build()).queue();
+ event.getJDA().getShardManager().shutdown();
+ System.out.println("Bot shut down via Command...");
+ Runtime.getRuntime().exit(69);
}
@Override
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 0e8133b..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,7 +2,8 @@ package com.bbn.hadder.commands.owner;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
-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;
/*
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 fef5f60..a51e674 100644
--- a/src/main/java/com/bbn/hadder/core/CommandHandler.java
+++ b/src/main/java/com/bbn/hadder/core/CommandHandler.java
@@ -7,6 +7,7 @@ import com.bbn.hadder.commands.general.HelpCommand;
import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
+import java.util.Arrays;
import java.util.List;
public class CommandHandler {
@@ -30,11 +31,24 @@ public class CommandHandler {
.replaceFirst(prefix, "").replaceFirst(invoke, "");
if (argString.startsWith(" ")) argString = argString.replaceFirst(" ", "");
String[] args = argString.split(" ");
- if (args.length>0&&args[0].equals("")) args = new String[0];
- cmd.executed(args,
- new CommandEvent(event.getJDA(), event.getResponseNumber(), event.getMessage(), rethink,
- config, this, helpCommand, new MessageEditor(rethink, event.getAuthor()))
- );
+ if (args.length > 0 && args[0].equals("")) args = new String[0];
+
+ 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)) {
+ for (Perm perm : cmd.getClass().getAnnotation(Perms.class).value()) {
+ if (!perm.check(commandEvent)) {
+ commandEvent.getTextChannel()
+ .sendMessage(commandEvent.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build())
+ .queue();
+ return;
+ }
+ }
+ }
+ }
+
+ cmd.executed(args, commandEvent);
return;
}
}
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/core/Perms.java b/src/main/java/com/bbn/hadder/core/Perms.java
new file mode 100644
index 0000000..7fc8426
--- /dev/null
+++ b/src/main/java/com/bbn/hadder/core/Perms.java
@@ -0,0 +1,14 @@
+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 f5438a7..8bdf694 100644
--- a/src/main/java/com/bbn/hadder/listener/StarboardListener.java
+++ b/src/main/java/com/bbn/hadder/listener/StarboardListener.java
@@ -3,13 +3,13 @@ package com.bbn.hadder.listener;
import com.bbn.hadder.Rethink;
import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.MessageBuilder;
+import net.dv8tion.jda.api.entities.MessageReaction;
import net.dv8tion.jda.api.events.message.react.GenericMessageReactionEvent;
import net.dv8tion.jda.api.events.message.react.MessageReactionAddEvent;
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 {
@@ -33,34 +33,68 @@ public class StarboardListener extends ListenerAdapter {
if (event.getReaction().getReactionEmote().getName().equals("⭐")) {
if (!rethink.hasStarboardMessage(event.getMessageId())) {
if (rethink.hasStarboardChannel(event.getGuild().getId())) {
- event.getChannel().retrieveMessageById(event.getMessageId()).queue(msg -> {
- event.getGuild().getTextChannelById(rethink.getStarboardChannel(event.getGuild().getId()))
- .sendMessage(new MessageBuilder()
- .setContent("⭐1" + " " + event.getTextChannel().getAsMention())
- .setEmbed(
- new EmbedBuilder()
- .setAuthor(event.getUser().getAsTag())
- .setDescription(msg.getContentRaw())
- .setTimestamp(msg.getTimeCreated()).build()).build()).queue(
- starboardmsg -> {
- rethink.insertStarboardMessage(msg.getId(), event.getGuild().getId(), starboardmsg.getId());
+
+ event.getTextChannel().retrieveMessageById(event.getMessageId()).queue(
+ msg -> {
+ Integer stars = 0;
+ for (MessageReaction reaction : msg.getReactions()) {
+ if (reaction.getReactionEmote().getName().equals("⭐")) {
+ stars = reaction.getCount();
+ }
}
- );
- });
+
+ if (Integer.parseInt(rethink.getNeededstars(event.getGuild().getId())) <= stars) {
+ event.getGuild().getTextChannelById(rethink.getStarboardChannel(event.getGuild().getId()))
+ .sendMessage(new MessageBuilder()
+ .setContent("⭐ 1" + " " + event.getTextChannel().getAsMention())
+ .setEmbed(
+ new EmbedBuilder()
+ .setAuthor(msg.getAuthor().getAsTag())
+ .setDescription(msg.getContentRaw())
+ .setTimestamp(msg.getTimeCreated()).build()).build()).queue(
+ starboardmsg -> {
+ rethink.insertStarboardMessage(msg.getId(), event.getGuild().getId(), starboardmsg.getId());
+ }
+ );
+ }
+ }
+ );
+
}
} else {
- event.getGuild().getTextChannelById(rethink.getStarboardChannel(event.getGuild().getId()))
- .retrieveMessageById(rethink.getStarboardMessage(event.getMessageId())).queue(
+
+ event.getTextChannel().retrieveMessageById(event.getMessageId()).queue(
msg -> {
- msg.editMessage(new MessageBuilder()
- .setContent("⭐" + event.getReaction().getCount() + " " + event.getTextChannel().getAsMention())
- .setEmbed(
- new EmbedBuilder()
- .setAuthor(event.getUser().getAsTag())
- .setDescription(msg.getContentRaw())
- .setTimestamp(msg.getTimeCreated()).build()).build()).queue();
+ Integer stars = 0;
+ for (MessageReaction reaction : msg.getReactions()) {
+ if (reaction.getReactionEmote().getName().equals("⭐")) {
+ stars = reaction.getCount();
+ }
+ }
+
+ Integer finalStars = stars;
+ event.getGuild().getTextChannelById(rethink.getStarboardChannel(event.getGuild().getId()))
+ .retrieveMessageById(rethink.getStarboardMessage(event.getMessageId())).queue(
+ msg2 -> {
+
+ if (Integer.parseInt(rethink.getNeededstars(event.getGuild().getId())) <= finalStars) {
+ msg2.editMessage(new MessageBuilder()
+ .setContent("⭐ " + finalStars + " " + event.getTextChannel().getAsMention())
+ .setEmbed(
+ new EmbedBuilder()
+ .setAuthor(msg.getAuthor().getAsTag())
+ .setDescription(msg.getContentRaw())
+ .setTimestamp(msg.getTimeCreated()).build()).build()).queue();
+ } else {
+ msg2.delete().queue();
+ rethink.removeStarboardMessage(msg.getId());
+ }
+ }
+ );
+
}
);
+
}
}
}
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 8c367dd..69d45cf 100644
--- a/src/main/resources/Translations/Translations_en.properties
+++ b/src/main/resources/Translations/Translations_en.properties
@@ -2,21 +2,19 @@
# @author Skidder / GregTCLTK
#
-#
-# @author Skidder / GregTCLTK
-#
-
Hadder = Hadder
+user = <@User>
searchterm =
username =
number = /all
-guildprefix =
prefix =
+userprefix =
vc-name/id =
user+nickname = <@user>
region =
guildid =
+content =
error = Error
none = None
@@ -29,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.
@@ -98,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
@@ -206,6 +205,8 @@ commands.owner.eval.help.description = Execute the given code
commands.owner.eval.help.usage =
commands.owner.guildleave.success.title = Successfully left
commands.owner.guildleave.success.description = I successfully left %extra%.
+commands.owner.guildleave.error.title = Can not leave
+commands.owner.guildleave.error.description = I can not leave from this guild. Maybe this isn't a ID?
commands.owner.guildleave.help.description = Quit from a guild
commands.owner.reboot.help.description = Restart the bot
commands.owner.shutdown.success.title = Shutdown
@@ -214,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