From a71402637edf6ca599da1db9e323e87fb8e245e8 Mon Sep 17 00:00:00 2001 From: alemi Date: Sat, 4 Mar 2023 01:31:12 +0100 Subject: [PATCH] feat: added basic tp command --- .../java/ftbsc/bscv/commands/Teleport.java | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 src/main/java/ftbsc/bscv/commands/Teleport.java diff --git a/src/main/java/ftbsc/bscv/commands/Teleport.java b/src/main/java/ftbsc/bscv/commands/Teleport.java new file mode 100644 index 0000000..698d94c --- /dev/null +++ b/src/main/java/ftbsc/bscv/commands/Teleport.java @@ -0,0 +1,60 @@ +package ftbsc.bscv.commands; + +import com.google.auto.service.AutoService; +import com.mojang.brigadier.arguments.DoubleArgumentType; +import com.mojang.brigadier.builder.LiteralArgumentBuilder; + +import ftbsc.bscv.api.ILoadable; +import net.minecraft.command.CommandSource; +import net.minecraft.command.Commands; + +import static ftbsc.bscv.Boscovicino.log; + +@AutoService(ILoadable.class) +public class Teleport extends AbstractCommand { + + @Override + public String getName() { return "tp"; } + + public LiteralArgumentBuilder register(LiteralArgumentBuilder builder) { + return builder + .then( + Commands.literal("up") + .then( + Commands.argument("distance", DoubleArgumentType.doubleArg()) + .executes( ctx -> { + double distance = ctx.getArgument("distance", Double.class); + MC.player.setPos( + MC.player.position().x, + MC.player.position().y + distance, + MC.player.position().z + ); + log(String.format("blinked up %.1f blocks", distance)); + return 1; + }) + ) + ) + .then( + Commands.argument("x", DoubleArgumentType.doubleArg()) + .then( + Commands.argument("y", DoubleArgumentType.doubleArg()) + .then( + Commands.argument("z", DoubleArgumentType.doubleArg()) + .executes( ctx -> { + double x = ctx.getArgument("x", Double.class); + double y = ctx.getArgument("y", Double.class); + double z = ctx.getArgument("z", Double.class); + MC.player.setPos(x, y, z); + log(String.format("blinked to X%.0f | Z%.0f", x, z)); + return 1; + }) + ) + ) + ) + .executes(ctx -> { + log("no args specified"); + return 0; + }); + } + +}