From 7d26ee4c9ed156b69112c4e98150ed6c77fe252c Mon Sep 17 00:00:00 2001 From: ChomeNS <95471003+ChomeNS@users.noreply.github.com> Date: Sun, 14 May 2023 19:15:53 +0700 Subject: [PATCH] add auto completion to csvr ig --- .../chomens_bot/plugins/ConsolePlugin.java | 29 +++++++++++++++++-- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/src/main/java/land/chipmunk/chayapak/chomens_bot/plugins/ConsolePlugin.java b/src/main/java/land/chipmunk/chayapak/chomens_bot/plugins/ConsolePlugin.java index 33e9bfaa..be3f1826 100644 --- a/src/main/java/land/chipmunk/chayapak/chomens_bot/plugins/ConsolePlugin.java +++ b/src/main/java/land/chipmunk/chayapak/chomens_bot/plugins/ConsolePlugin.java @@ -68,17 +68,38 @@ public class ConsolePlugin { if (line.startsWith(consoleServerPrefix)) { final String substringLine = line.substring(consoleServerPrefix.length()); final String[] splitInput = substringLine.split("\\s+"); + final String commandName = splitInput[0]; final String[] args = Arrays.copyOfRange(splitInput, 1, splitInput.length); if (commandName.equals("csvr") || commandName.equals("consoleserver")) { + final List servers = new ArrayList<>(); + + for (Bot bot : allBots) { + servers.add(bot.host() + ":" + bot.port()); + } + for (Bot bot : allBots) { if (args.length == 0) { bot.logger().info("No server specified"); return; } - consoleServer = args[0]; - bot.logger().info("Set the console server to " + consoleServer); + + if (String.join(" ", args).equalsIgnoreCase("all")) { + consoleServer = "all"; + bot.logger().info("Set the console server to all servers"); + return; + } + try { + // servers.find(server => server.toLowerCase().includes(args.join(' '))) in js i guess + consoleServer = servers.stream() + .filter(server -> server.toLowerCase().contains(String.join(" ", args))) + .toArray(String[]::new)[0]; + + bot.logger().info("Set the console server to " + String.join(", ", consoleServer)); + } catch (ArrayIndexOutOfBoundsException e) { + bot.logger().info("Invalid server: " + String.join(" ", args)); + } } } @@ -86,7 +107,9 @@ public class ConsolePlugin { } for (Bot bot : allBots) { - if (!bot.host().equals(consoleServer) && !consoleServer.equals("all")) continue; + final String hostAndPort = bot.host() + ":" + bot.port(); + + if (!hostAndPort.equals(consoleServer) && !consoleServer.equals("all")) continue; if (line.startsWith(prefix)) { final ConsoleCommandContext context = new ConsoleCommandContext(bot, prefix);