diff --git a/src/main/java/land/chipmunk/chipmunkmod/mixin/ChatScreenMixin.java b/src/main/java/land/chipmunk/chipmunkmod/mixin/ChatScreenMixin.java index 2c428be..e2592e4 100644 --- a/src/main/java/land/chipmunk/chipmunkmod/mixin/ChatScreenMixin.java +++ b/src/main/java/land/chipmunk/chipmunkmod/mixin/ChatScreenMixin.java @@ -73,18 +73,21 @@ public abstract class ChatScreenMixin { ChipmunkMod.LOGGER.error("Error while trying to request TestBot webhook", e); } }); - } else if (ChipmunkMod.CONFIG.bots.chomens.autoValidate && chatText.startsWith(ChipmunkMod.CONFIG.bots.chomens.prefix)) { + } else if (chatText.startsWith(ChipmunkMod.CONFIG.bots.chomens.prefix)) { final List commands = ChomeNSBotCommandSuggestions.INSTANCE.commands; - final List moreOrTrustedCommands = commands.stream() - .filter(command -> command.trustLevel() != ChomeNSBotCommand.TrustLevel.PUBLIC) - .map(command -> command.name().toLowerCase()) - .toList(); - + final List moreOrTrustedCommands = new ArrayList<>(); + final List ownerCommands = new ArrayList<>(); final List aliases = new ArrayList<>(); + for (final ChomeNSBotCommand command : commands) { if (command.trustLevel() == ChomeNSBotCommand.TrustLevel.PUBLIC) continue; + final String stringCommand = command.name().toLowerCase(); + + moreOrTrustedCommands.add(stringCommand); + if (command.trustLevel() == ChomeNSBotCommand.TrustLevel.OWNER) ownerCommands.add(stringCommand); + aliases.addAll(command.aliases()); } @@ -93,8 +96,13 @@ public abstract class ChatScreenMixin { final int prefixLength = ChipmunkMod.CONFIG.bots.chomens.prefix.length(); if ( - moreOrTrustedCommands.contains(chatCommand) || - aliases.contains(chatCommand.substring(prefixLength)) + ownerCommands.contains(chatCommand) || + (ChipmunkMod.CONFIG.bots.chomens.autoValidate && + ( + moreOrTrustedCommands.contains(chatCommand) + || aliases.contains(chatCommand.substring(prefixLength)) + ) + ) ) { try { BotValidationUtilities.chomens(chatText.substring(prefixLength));