From 678894b60296e1db2e0336328feb25bf97662214 Mon Sep 17 00:00:00 2001 From: ChomeNS <95471003+ChomeNS@users.noreply.github.com> Date: Thu, 20 Apr 2023 13:32:05 +0700 Subject: [PATCH] improve and fix cmd handler (first commit on arch) yup this is my first commit on arch linux,.,.,..,.,., yes i use arch btw :sunglasses: --- .../chipmunk/chayapak/chomens_bot/Bot.java | 2 +- .../chayapak/chomens_bot/Configuration.java | 2 ++ .../plugins/CommandHandlerPlugin.java | 22 +++++++++++++------ src/main/resources/default-config.yml | 2 ++ 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/main/java/land/chipmunk/chayapak/chomens_bot/Bot.java b/src/main/java/land/chipmunk/chayapak/chomens_bot/Bot.java index 3c57cf50..cf0eb9f5 100644 --- a/src/main/java/land/chipmunk/chayapak/chomens_bot/Bot.java +++ b/src/main/java/land/chipmunk/chayapak/chomens_bot/Bot.java @@ -89,7 +89,7 @@ public class Bot { this.core = new CorePlugin(this); this.players = new PlayersPlugin(this); this.tabComplete = new TabCompletePlugin(this); - this.commandHandler = new CommandHandlerPlugin(); + this.commandHandler = new CommandHandlerPlugin(this); this.chatCommandHandler = new ChatCommandHandlerPlugin(this); this.hashing = new HashingPlugin(this); this.bossbar = new BossbarManagerPlugin(this); diff --git a/src/main/java/land/chipmunk/chayapak/chomens_bot/Configuration.java b/src/main/java/land/chipmunk/chayapak/chomens_bot/Configuration.java index 7d9b5e8f..7fb13614 100644 --- a/src/main/java/land/chipmunk/chayapak/chomens_bot/Configuration.java +++ b/src/main/java/land/chipmunk/chayapak/chomens_bot/Configuration.java @@ -39,6 +39,8 @@ public class Configuration { @Getter public String token; @Getter public Map servers = new HashMap<>(); @Getter public EmbedColors embedColors = new EmbedColors(); + @Getter public String trustedRoleName = "Trusted"; + @Getter public String adminRoleName = "Admin"; } public static class EmbedColors { diff --git a/src/main/java/land/chipmunk/chayapak/chomens_bot/plugins/CommandHandlerPlugin.java b/src/main/java/land/chipmunk/chayapak/chomens_bot/plugins/CommandHandlerPlugin.java index 9c11a113..40b8617e 100644 --- a/src/main/java/land/chipmunk/chayapak/chomens_bot/plugins/CommandHandlerPlugin.java +++ b/src/main/java/land/chipmunk/chayapak/chomens_bot/plugins/CommandHandlerPlugin.java @@ -1,5 +1,6 @@ package land.chipmunk.chayapak.chomens_bot.plugins; +import land.chipmunk.chayapak.chomens_bot.Bot; import land.chipmunk.chayapak.chomens_bot.command.Command; import land.chipmunk.chayapak.chomens_bot.command.CommandContext; import land.chipmunk.chayapak.chomens_bot.commands.*; @@ -17,9 +18,13 @@ import java.util.Arrays; import java.util.List; public class CommandHandlerPlugin { + private final Bot bot; + @Getter private final List commands = new ArrayList<>(); - public CommandHandlerPlugin () { + public CommandHandlerPlugin (Bot bot) { + this.bot = bot; + registerCommand(new CommandBlockCommand()); registerCommand(new CowsayCommand()); registerCommand(new EchoCommand()); @@ -79,10 +84,10 @@ public class CommandHandlerPlugin { if (fullArgs.length < minimumArgs) return Component.text("Excepted minimum of " + minimumArgs + " argument(s), got " + fullArgs.length).color(NamedTextColor.RED); if (fullArgs.length > maximumArgs && !usage.contains("{")) return Component.text("Too much arguments, expected " + maximumArgs + " max").color(NamedTextColor.RED); - if (trustLevel > 0 && splitInput.length < 2 && !console) return Component.text("Please provide a hash").color(NamedTextColor.RED); + if (trustLevel > 0 && splitInput.length < 2 && inGame) return Component.text("Please provide a hash").color(NamedTextColor.RED); String userHash = ""; - if (trustLevel > 0 && !console) userHash = splitInput[1]; + if (trustLevel > 0 && inGame) userHash = splitInput[1]; final String[] args = Arrays.copyOfRange(splitInput, (trustLevel > 0 && inGame) ? 2 : 1, splitInput.length); @@ -90,16 +95,19 @@ public class CommandHandlerPlugin { if (discord) { final List roles = event.getMember().getRoles(); + final String trustedRoleName = bot.config().discord().trustedRoleName(); + final String adminRoleName = bot.config().discord().adminRoleName(); + if ( command.trustLevel() == 1 && - roles.stream().noneMatch(role -> role.getName().equalsIgnoreCase("Trusted")) && - roles.stream().noneMatch(role -> role.getName().equalsIgnoreCase("Host")) + roles.stream().noneMatch(role -> role.getName().equalsIgnoreCase(trustedRoleName)) && + roles.stream().noneMatch(role -> role.getName().equalsIgnoreCase(adminRoleName)) ) return Component.text("You're not in the trusted role!").color(NamedTextColor.RED); if ( command.trustLevel() == 2 && - roles.stream().noneMatch(role -> role.getName().equalsIgnoreCase("Host")) - ) return Component.text("You're not in the host role!").color(NamedTextColor.RED); + roles.stream().noneMatch(role -> role.getName().equalsIgnoreCase(adminRoleName)) + ) return Component.text("You're not in the admin role!").color(NamedTextColor.RED); } else { if ( command.trustLevel() == 1 && diff --git a/src/main/resources/default-config.yml b/src/main/resources/default-config.yml index 27eef9ca..90179903 100644 --- a/src/main/resources/default-config.yml +++ b/src/main/resources/default-config.yml @@ -14,6 +14,8 @@ reconnectDelay: 7000 discord: prefix: 'default!' token: 'token here' + trustedRoleName: 'Trusted' + adminRoleName: 'Admin' # NOTE: admin will be able to access servereval.. servers: localhost:25565: 'channel id'