]> Git Server - utils.git/commitdiff
test
authorRobin Cheney <cheneyr@eternal.ddnss.de>
Wed, 19 Nov 2025 15:31:25 +0000 (16:31 +0100)
committerRobin Cheney <cheneyr@eternal.ddnss.de>
Wed, 19 Nov 2025 15:31:25 +0000 (16:31 +0100)
src/main/java/de/ddnss/eternal/utils/Test.java [new file with mode: 0644]
src/main/java/de/ddnss/eternal/utils/io/input/AvailableCommands.java
src/main/java/de/ddnss/eternal/utils/io/input/Command.java
src/main/java/de/ddnss/eternal/utils/io/input/CommandInterface.java
src/main/java/de/ddnss/eternal/utils/io/input/CommandOption.java
src/main/java/de/ddnss/eternal/utils/io/input/ParameterizedCommand.java
src/main/java/de/ddnss/eternal/utils/io/input/user/CMDCommands.java

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 (file)
index 0000000..0ea89ca
--- /dev/null
@@ -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 <message>");
+    // return;
+    // }
+    // System.out.println(String.join(" ", args));
+    // }
+
+    // private static void handleAdd(String[] args) {
+    // if (args.length != 2) {
+    // System.out.println("Usage: add <num1> <num2>");
+    // 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.");
+    // }
+    // }
+}
index f3510b7b3213e4cbb8c40c9d1c6fae6e8499d1ca..9d02d761d86825cca47f033af888e544add47c35 100644 (file)
@@ -6,7 +6,6 @@ public enum AvailableCommands {
     SAY((CommandOption<String> args) -> {
         System.out.println(args.get("SAY"));
         return null;
-    }, new CommandOption<String>() {
     });
 
     public final CommandInterface command;
index 400d05e32b3d7021dfc8a2a0974a9a81ec912f7b..429298e066286f92197ada6282b934c5a9864814 100644 (file)
@@ -10,5 +10,10 @@ public final class Command implements CommandInterface {
     @Override
     public void exec() {
         this.command.run();
+    }
+
+    @Override
+    public void exec(CommandOption<? extends Object> args) {
+        this.command.run();
     };
 }
\ No newline at end of file
index ed3c62fc1d988e5dbb067ceb6c6f319f289d7339..c43491cca3df25982f0871c10d95d8d71802fbde 100644 (file)
@@ -2,4 +2,6 @@ package de.ddnss.eternal.utils.io.input;
 
 public interface CommandInterface {
     public void exec();
+
+    public void exec(CommandOption<? extends Object> args);
 }
index 61df52f1d79721503f3d1096bade81572a74ed85..d1d1efe70fc68a63146b7ad479046c4c3adb8104 100644 (file)
@@ -3,4 +3,12 @@ package de.ddnss.eternal.utils.io.input;
 import java.util.HashMap;
 
 public class CommandOption<E> extends HashMap<String, E> {
+    public CommandOption(String string, E e) {
+        super();
+        this.put(string, e);
+    }
+
+    public CommandOption() {
+        super();
+    }
 }
\ No newline at end of file
index 93fb53135022dee649f025e5626157554652198a..8cc0f72cf356c383292e9764311ba720fb46c103 100644 (file)
@@ -2,7 +2,7 @@ package de.ddnss.eternal.utils.io.input;
 
 import java.util.function.Function;
 
-public final class ParameterizedCommand<E> implements CommandInterface {
+public final class ParameterizedCommand<E extends Object> implements CommandInterface {
     final Function<CommandOption<E>, Void> command;
     CommandOption<E> arguments;
 
@@ -20,7 +20,13 @@ public final class ParameterizedCommand<E> implements CommandInterface {
         this.command.apply(arguments);
     };
 
-    public void exec(CommandOption<E> arguments) {
+    @Override
+    public void exec(CommandOption<? extends Object> arguments) {
         this.command.apply(arguments);
-    };
+    }
+
+    // @Override
+    // public void exec(Object args) {
+    // this.command.apply(args);
+    // };
 }
\ No newline at end of file
index 56a8e80801d0ea294039ba04a4de2231155edd68..c94b392c4e47fb66193f94b38ed2c9f01a36b565 100644 (file)
@@ -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<String>("SAY", parts[0]));
         }
     }
 }