From: Robin Cheney Date: Wed, 19 Nov 2025 14:56:04 +0000 (+0100) Subject: Stuff X-Git-Url: https://git.eternal.ddnss.de/?a=commitdiff_plain;h=7bbdb4ebe61aea5b94b94f1c24629b544e5920ae;p=utils.git Stuff --- diff --git a/.gitignore b/.gitignore index e420ee4..7bb4c2f 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ target/* +de/ddnss/eternal/utils/Test.java \ No newline at end of file diff --git a/src/main/java/de/ddnss/eternal/utils/ArrayUtils.java b/src/main/java/de/ddnss/eternal/utils/ArrayUtils.java index aad38f3..930d97f 100644 --- a/src/main/java/de/ddnss/eternal/utils/ArrayUtils.java +++ b/src/main/java/de/ddnss/eternal/utils/ArrayUtils.java @@ -2,7 +2,7 @@ package de.ddnss.eternal.utils; import java.util.ArrayList; -public class ArrayUtils { +public abstract class ArrayUtils { public static Object[] reverse(Object[] array) { ArrayList outArray = new ArrayList(); diff --git a/src/main/java/de/ddnss/eternal/utils/StringUtils.java b/src/main/java/de/ddnss/eternal/utils/StringUtils.java index 9eddcf2..eefae33 100644 --- a/src/main/java/de/ddnss/eternal/utils/StringUtils.java +++ b/src/main/java/de/ddnss/eternal/utils/StringUtils.java @@ -1,6 +1,6 @@ package de.ddnss.eternal.utils; -public class StringUtils { +public abstract class StringUtils { public static String reverse(String string) { String outString = ""; 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 new file mode 100644 index 0000000..f3510b7 --- /dev/null +++ b/src/main/java/de/ddnss/eternal/utils/io/input/AvailableCommands.java @@ -0,0 +1,21 @@ +package de.ddnss.eternal.utils.io.input; + +import java.util.function.Function; + +public enum AvailableCommands { + SAY((CommandOption args) -> { + System.out.println(args.get("SAY")); + return null; + }, new CommandOption() { + }); + + public final CommandInterface command; + + private AvailableCommands(Function, Void> command, CommandOption arguments) { + this.command = new ParameterizedCommand(command, arguments); + } + + private AvailableCommands(Function, Void> command) { + this.command = new ParameterizedCommand(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 new file mode 100644 index 0000000..400d05e --- /dev/null +++ b/src/main/java/de/ddnss/eternal/utils/io/input/Command.java @@ -0,0 +1,14 @@ +package de.ddnss.eternal.utils.io.input; + +public final class Command implements CommandInterface { + final Runnable command; + + public Command(Runnable command) { + this.command = command; + } + + @Override + public void exec() { + 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 new file mode 100644 index 0000000..ed3c62f --- /dev/null +++ b/src/main/java/de/ddnss/eternal/utils/io/input/CommandInterface.java @@ -0,0 +1,5 @@ +package de.ddnss.eternal.utils.io.input; + +public interface CommandInterface { + public void exec(); +} 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 new file mode 100644 index 0000000..61df52f --- /dev/null +++ b/src/main/java/de/ddnss/eternal/utils/io/input/CommandOption.java @@ -0,0 +1,6 @@ +package de.ddnss.eternal.utils.io.input; + +import java.util.HashMap; + +public class CommandOption extends HashMap { +} \ 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 new file mode 100644 index 0000000..93fb531 --- /dev/null +++ b/src/main/java/de/ddnss/eternal/utils/io/input/ParameterizedCommand.java @@ -0,0 +1,26 @@ +package de.ddnss.eternal.utils.io.input; + +import java.util.function.Function; + +public final class ParameterizedCommand implements CommandInterface { + final Function, Void> command; + CommandOption arguments; + + public ParameterizedCommand(Function, Void> command, CommandOption arguments) { + this.command = command; + this.arguments = arguments; + } + + public ParameterizedCommand(Function, Void> command) { + this.command = command; + } + + @Override + public void exec() { + this.command.apply(arguments); + }; + + public void exec(CommandOption arguments) { + this.command.apply(arguments); + }; +} \ 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 new file mode 100644 index 0000000..56a8e80 --- /dev/null +++ b/src/main/java/de/ddnss/eternal/utils/io/input/user/CMDCommands.java @@ -0,0 +1,27 @@ +package de.ddnss.eternal.utils.io.input.user; + +import java.util.Scanner; + +import de.ddnss.eternal.utils.io.input.AvailableCommands; + +public class CMDCommands { + public static void split() { + Scanner scanner = UserInput.scanner(); + + 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+"); + AvailableCommands command = AvailableCommands.valueOf(parts[0].toUpperCase()); // first word + command.command.exec(); + } + } +} diff --git a/src/main/java/de/ddnss/eternal/utils/io/input/user/UserInput.java b/src/main/java/de/ddnss/eternal/utils/io/input/user/UserInput.java new file mode 100644 index 0000000..401bdaf --- /dev/null +++ b/src/main/java/de/ddnss/eternal/utils/io/input/user/UserInput.java @@ -0,0 +1,29 @@ +package de.ddnss.eternal.utils.io.input.user; + +import java.util.Scanner; + +public class UserInput { + public static String prompt(String prompt) { + System.out.println(prompt); + Scanner input = scanner(); + String result = input.next(); + input.close(); + return result; + } + + public static String prompt(String prompt, boolean readWholeLine) { + String result; + System.out.println(prompt); + Scanner input = scanner(); + if (readWholeLine) + result = input.next(); + else + result = input.nextLine(); + input.close(); + return result; + } + + public static Scanner scanner() { + return new Scanner(System.in); + } +}