From 03eb3c84f61f255a63490b6c1a0db68fddc7f7c0 Mon Sep 17 00:00:00 2001 From: ChomeNS <95471003+chomens@users.noreply.github.com> Date: Mon, 29 Sep 2025 15:20:23 +0700 Subject: [PATCH] refactor: make owner chomens bot commands auto validate --- .../chipmunkmod/mixin/ChatScreenMixin.java | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) 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));