diff options
| author | Tyler Murphy <tylerm@tylerm.dev> | 2023-04-17 12:12:01 -0400 |
|---|---|---|
| committer | Tyler Murphy <tylerm@tylerm.dev> | 2023-04-17 12:12:01 -0400 |
| commit | 180aad05decc7eefa87e4e45d6747c48f40e5361 (patch) | |
| tree | 51545197f7c94b4022acab880772c9f4fc65db0e /src/main/java/net/tylermurphy/Minecraft/Command | |
| download | minecraftjava-180aad05decc7eefa87e4e45d6747c48f40e5361.tar.gz minecraftjava-180aad05decc7eefa87e4e45d6747c48f40e5361.tar.bz2 minecraftjava-180aad05decc7eefa87e4e45d6747c48f40e5361.zip | |
save
Diffstat (limited to 'src/main/java/net/tylermurphy/Minecraft/Command')
3 files changed, 78 insertions, 0 deletions
diff --git a/src/main/java/net/tylermurphy/Minecraft/Command/CommandHandler.java b/src/main/java/net/tylermurphy/Minecraft/Command/CommandHandler.java new file mode 100755 index 0000000..c289604 --- /dev/null +++ b/src/main/java/net/tylermurphy/Minecraft/Command/CommandHandler.java @@ -0,0 +1,37 @@ +package net.tylermurphy.Minecraft.Command;
+
+import net.tylermurphy.Minecraft.Command.Commands.Teleport;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.regex.Pattern;
+
+
+public class CommandHandler {
+
+ public final static Map<String, ICommand> REGISTER = new HashMap<>();
+
+ public static void registerCommands() {
+ register(new Teleport());
+ }
+
+ private static void register(ICommand command) {
+ if (!REGISTER.containsKey(command.getInvoke())) {
+ REGISTER.put(command.getInvoke().toLowerCase(), command);
+ }
+ }
+
+ public static void handleCommand(String text) {
+ final String[] split = text.replaceFirst(
+ "(?i)" + Pattern.quote("/"), "").split("\\s+");
+ final String invoke = split[0].toLowerCase();
+ if(REGISTER.containsKey(invoke)) {
+ ICommand command = REGISTER.get(invoke);
+ final List<String> args = Arrays.asList(split).subList(1, split.length);
+ command.invoke(args);
+ }
+ }
+
+}
diff --git a/src/main/java/net/tylermurphy/Minecraft/Command/Commands/Teleport.java b/src/main/java/net/tylermurphy/Minecraft/Command/Commands/Teleport.java new file mode 100755 index 0000000..a48955c --- /dev/null +++ b/src/main/java/net/tylermurphy/Minecraft/Command/Commands/Teleport.java @@ -0,0 +1,30 @@ +package net.tylermurphy.Minecraft.Command.Commands;
+
+import java.util.List;
+
+import org.joml.Vector3f;
+
+import net.tylermurphy.Minecraft.Command.ICommand;
+import net.tylermurphy.Minecraft.Scene.World;
+
+public class Teleport implements ICommand {
+
+ public void invoke(List<String> args) {
+ if(args.size() < 3) return;
+ float x,y,z;
+ try {
+ x = Float.parseFloat(args.get(0));
+ y = Float.parseFloat(args.get(1));
+ z = Float.parseFloat(args.get(2));
+ } catch (Exception e) {
+ return;
+ }
+
+ World.player.getTransform().setGlobalPosition(new Vector3f(x,y,z));
+ }
+
+ public String getInvoke() {
+ return "tp";
+ }
+
+}
diff --git a/src/main/java/net/tylermurphy/Minecraft/Command/ICommand.java b/src/main/java/net/tylermurphy/Minecraft/Command/ICommand.java new file mode 100755 index 0000000..c3b85d3 --- /dev/null +++ b/src/main/java/net/tylermurphy/Minecraft/Command/ICommand.java @@ -0,0 +1,11 @@ +package net.tylermurphy.Minecraft.Command;
+
+import java.util.List;
+
+public interface ICommand {
+
+ public void invoke(List<String> args);
+
+ public String getInvoke();
+
+}
|