diff --git a/build-number.txt b/build-number.txt index 90c77a33..33c15029 100644 --- a/build-number.txt +++ b/build-number.txt @@ -1 +1 @@ -2669 \ No newline at end of file +2671 \ No newline at end of file diff --git a/src/main/java/me/chayapak1/chomens_bot/command/contexts/RemoteCommandContext.java b/src/main/java/me/chayapak1/chomens_bot/command/contexts/RemoteCommandContext.java index 7e4003a7..064038e5 100644 --- a/src/main/java/me/chayapak1/chomens_bot/command/contexts/RemoteCommandContext.java +++ b/src/main/java/me/chayapak1/chomens_bot/command/contexts/RemoteCommandContext.java @@ -10,7 +10,7 @@ public class RemoteCommandContext extends CommandContext { public final CommandContext source; public RemoteCommandContext (final Bot targetBot, final CommandContext source) { - super(targetBot, source.prefix, source.sender, source.inGame); + super(targetBot, source.prefix, source.sender, false); this.targetBot = targetBot; this.source = source; diff --git a/src/main/java/me/chayapak1/chomens_bot/plugins/CommandHandlerPlugin.java b/src/main/java/me/chayapak1/chomens_bot/plugins/CommandHandlerPlugin.java index 75fe52ab..7c43e14e 100644 --- a/src/main/java/me/chayapak1/chomens_bot/plugins/CommandHandlerPlugin.java +++ b/src/main/java/me/chayapak1/chomens_bot/plugins/CommandHandlerPlugin.java @@ -5,10 +5,7 @@ import me.chayapak1.chomens_bot.command.Command; import me.chayapak1.chomens_bot.command.CommandContext; import me.chayapak1.chomens_bot.command.CommandException; import me.chayapak1.chomens_bot.command.TrustLevel; -import me.chayapak1.chomens_bot.command.contexts.ChomeNSModCommandContext; -import me.chayapak1.chomens_bot.command.contexts.ConsoleCommandContext; -import me.chayapak1.chomens_bot.command.contexts.DiscordCommandContext; -import me.chayapak1.chomens_bot.command.contexts.PlayerCommandContext; +import me.chayapak1.chomens_bot.command.contexts.*; import me.chayapak1.chomens_bot.commands.*; import me.chayapak1.chomens_bot.util.ExceptionUtilities; import net.dv8tion.jda.api.entities.Member; @@ -167,8 +164,20 @@ public class CommandHandlerPlugin implements TickPlugin.Listener { final String[] args = Arrays.copyOfRange(splitInput, (trustLevel != TrustLevel.PUBLIC && inGame) ? 2 : 1, splitInput.length); + // LoL ohio spaghetti code if (command.trustLevel != TrustLevel.PUBLIC && !bypass) { - if (discord) { + if (context instanceof final RemoteCommandContext remote) { + if (remote.source.trustLevel.level < trustLevel.level) { + context.sendOutput( + Component + .text("Your don't have enough permission to execute this command!") + .color(NamedTextColor.RED) + ); + return; + } + + context.trustLevel = remote.source.trustLevel; + } else if (discord) { final Member member = event.getMember(); if (member == null) return; @@ -207,6 +216,9 @@ public class CommandHandlerPlugin implements TickPlugin.Listener { context.trustLevel = userTrustLevel; } + } else if (bypass) { + final TrustLevel[] values = TrustLevel.values(); + context.trustLevel = values[values.length - 1]; // highest level } // should i give access to all bypass contexts instead of only console?