From: Robin Cheney Date: Wed, 19 Nov 2025 15:31:25 +0000 (+0100) Subject: test X-Git-Url: https://git.eternal.ddnss.de/?a=commitdiff_plain;h=c162eebf0ef4fc4dfa09b7807ba22dda8337bf44;p=utils.git test --- diff --git a/src/main/java/de/ddnss/eternal/utils/Test.java b/src/main/java/de/ddnss/eternal/utils/Test.java new file mode 100644 index 0000000..0ea89ca --- /dev/null +++ b/src/main/java/de/ddnss/eternal/utils/Test.java @@ -0,0 +1,46 @@ +package de.ddnss.eternal.utils; + +import de.ddnss.eternal.utils.io.input.user.CMDCommands; + +public class Test { + public static void main(String[] cmdargs) { + + System.out.println("Enter command:"); + + while (true) { + // System.out.print("> "); + // String line = scanner.nextLine().trim(); + + // // Skip empty input + // if (line.isEmpty()) + // continue; + + // // Split into tokens (command + args) + // String[] parts = line.split("\\s+"); + CMDCommands.scan(); + } + } + + // private static void handleSay(String[] args) { + // if (args.length == 0) { + // System.out.println("Usage: say "); + // return; + // } + // System.out.println(String.join(" ", args)); + // } + + // private static void handleAdd(String[] args) { + // if (args.length != 2) { + // System.out.println("Usage: add "); + // return; + // } + + // try { + // int a = Integer.parseInt(args[0]); + // int b = Integer.parseInt(args[1]); + // System.out.println("Result: " + (a + b)); + // } catch (NumberFormatException e) { + // System.out.println("Arguments must be numbers."); + // } + // } +} diff --git a/src/main/java/de/ddnss/eternal/utils/io/input/AvailableCommands.java b/src/main/java/de/ddnss/eternal/utils/io/input/AvailableCommands.java index f3510b7..9d02d76 100644 --- a/src/main/java/de/ddnss/eternal/utils/io/input/AvailableCommands.java +++ b/src/main/java/de/ddnss/eternal/utils/io/input/AvailableCommands.java @@ -6,7 +6,6 @@ public enum AvailableCommands { SAY((CommandOption args) -> { System.out.println(args.get("SAY")); return null; - }, new CommandOption() { }); public final CommandInterface command; diff --git a/src/main/java/de/ddnss/eternal/utils/io/input/Command.java b/src/main/java/de/ddnss/eternal/utils/io/input/Command.java index 400d05e..429298e 100644 --- a/src/main/java/de/ddnss/eternal/utils/io/input/Command.java +++ b/src/main/java/de/ddnss/eternal/utils/io/input/Command.java @@ -10,5 +10,10 @@ public final class Command implements CommandInterface { @Override public void exec() { this.command.run(); + } + + @Override + public void exec(CommandOption args) { + this.command.run(); }; } \ No newline at end of file diff --git a/src/main/java/de/ddnss/eternal/utils/io/input/CommandInterface.java b/src/main/java/de/ddnss/eternal/utils/io/input/CommandInterface.java index ed3c62f..c43491c 100644 --- a/src/main/java/de/ddnss/eternal/utils/io/input/CommandInterface.java +++ b/src/main/java/de/ddnss/eternal/utils/io/input/CommandInterface.java @@ -2,4 +2,6 @@ package de.ddnss.eternal.utils.io.input; public interface CommandInterface { public void exec(); + + public void exec(CommandOption args); } diff --git a/src/main/java/de/ddnss/eternal/utils/io/input/CommandOption.java b/src/main/java/de/ddnss/eternal/utils/io/input/CommandOption.java index 61df52f..d1d1efe 100644 --- a/src/main/java/de/ddnss/eternal/utils/io/input/CommandOption.java +++ b/src/main/java/de/ddnss/eternal/utils/io/input/CommandOption.java @@ -3,4 +3,12 @@ package de.ddnss.eternal.utils.io.input; import java.util.HashMap; public class CommandOption extends HashMap { + public CommandOption(String string, E e) { + super(); + this.put(string, e); + } + + public CommandOption() { + super(); + } } \ No newline at end of file diff --git a/src/main/java/de/ddnss/eternal/utils/io/input/ParameterizedCommand.java b/src/main/java/de/ddnss/eternal/utils/io/input/ParameterizedCommand.java index 93fb531..8cc0f72 100644 --- a/src/main/java/de/ddnss/eternal/utils/io/input/ParameterizedCommand.java +++ b/src/main/java/de/ddnss/eternal/utils/io/input/ParameterizedCommand.java @@ -2,7 +2,7 @@ package de.ddnss.eternal.utils.io.input; import java.util.function.Function; -public final class ParameterizedCommand implements CommandInterface { +public final class ParameterizedCommand implements CommandInterface { final Function, Void> command; CommandOption arguments; @@ -20,7 +20,13 @@ public final class ParameterizedCommand implements CommandInterface { this.command.apply(arguments); }; - public void exec(CommandOption arguments) { + @Override + public void exec(CommandOption arguments) { this.command.apply(arguments); - }; + } + + // @Override + // public void exec(Object args) { + // this.command.apply(args); + // }; } \ No newline at end of file diff --git a/src/main/java/de/ddnss/eternal/utils/io/input/user/CMDCommands.java b/src/main/java/de/ddnss/eternal/utils/io/input/user/CMDCommands.java index 56a8e80..c94b392 100644 --- a/src/main/java/de/ddnss/eternal/utils/io/input/user/CMDCommands.java +++ b/src/main/java/de/ddnss/eternal/utils/io/input/user/CMDCommands.java @@ -3,9 +3,12 @@ package de.ddnss.eternal.utils.io.input.user; import java.util.Scanner; import de.ddnss.eternal.utils.io.input.AvailableCommands; +import de.ddnss.eternal.utils.io.input.CommandOption; public class CMDCommands { - public static void split() { + public static void scan() { + AvailableCommands command; + Scanner scanner = UserInput.scanner(); System.out.println("Enter command:"); @@ -20,8 +23,13 @@ public class CMDCommands { // Split into tokens (command + args) String[] parts = line.split("\\s+"); - AvailableCommands command = AvailableCommands.valueOf(parts[0].toUpperCase()); // first word - command.command.exec(); + try { + command = AvailableCommands.valueOf(parts[0].toUpperCase()); // first word + } catch (IllegalArgumentException e) { + System.out.println("Unknown command: " + parts[0]); + break; + } + command.command.exec(new CommandOption("SAY", parts[0])); } } }