From 6798611f010f436e62d8c6ac72ea89737d5dcff4 Mon Sep 17 00:00:00 2001 From: Cloudburst Date: Thu, 3 Jun 2021 11:45:54 +0200 Subject: [PATCH] added setblock --- .../rejects/MeteorRejectsAddon.java | 1 + .../arguments/ClientPosArgumentType.java | 2 +- .../rejects/commands/SetBlockCommand.java | 30 +++++++++++++++++++ .../rejects/commands/TeleportCommand.java | 4 +-- 4 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 src/main/java/cloudburst/rejects/commands/SetBlockCommand.java diff --git a/src/main/java/cloudburst/rejects/MeteorRejectsAddon.java b/src/main/java/cloudburst/rejects/MeteorRejectsAddon.java index 0cd47fa..839a666 100644 --- a/src/main/java/cloudburst/rejects/MeteorRejectsAddon.java +++ b/src/main/java/cloudburst/rejects/MeteorRejectsAddon.java @@ -46,6 +46,7 @@ public class MeteorRejectsAddon extends MeteorAddon { commands.add(new BookDupeCommand()); commands.add(new GiveCommand()); commands.add(new SaveSkinCommand()); + commands.add(new SetBlockCommand()); commands.add(new TeleportCommand()); commands.add(new TerrainExport()); } diff --git a/src/main/java/cloudburst/rejects/arguments/ClientPosArgumentType.java b/src/main/java/cloudburst/rejects/arguments/ClientPosArgumentType.java index 52b0d0c..37b808a 100644 --- a/src/main/java/cloudburst/rejects/arguments/ClientPosArgumentType.java +++ b/src/main/java/cloudburst/rejects/arguments/ClientPosArgumentType.java @@ -22,7 +22,7 @@ public class ClientPosArgumentType implements ArgumentType { public ClientPosArgumentType() { } - public static ClientPosArgumentType blockPos() { + public static ClientPosArgumentType pos() { return new ClientPosArgumentType(); } diff --git a/src/main/java/cloudburst/rejects/commands/SetBlockCommand.java b/src/main/java/cloudburst/rejects/commands/SetBlockCommand.java new file mode 100644 index 0000000..12b32a2 --- /dev/null +++ b/src/main/java/cloudburst/rejects/commands/SetBlockCommand.java @@ -0,0 +1,30 @@ +package cloudburst.rejects.commands; + +import cloudburst.rejects.arguments.ClientPosArgumentType; +import com.mojang.brigadier.builder.LiteralArgumentBuilder; +import minegame159.meteorclient.systems.commands.Command; +import net.minecraft.block.BlockState; +import net.minecraft.command.CommandSource; +import net.minecraft.command.argument.BlockStateArgument; +import net.minecraft.command.argument.BlockStateArgumentType; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Vec3d; + +import static com.mojang.brigadier.Command.SINGLE_SUCCESS; + +public class SetBlockCommand extends Command { + public SetBlockCommand() { + super("setblock", "Sets client side blocks", "sblk"); + } + + @Override + public void build(LiteralArgumentBuilder builder) { + builder.then(argument("pos", ClientPosArgumentType.pos()).then(argument("block", BlockStateArgumentType.blockState()).executes(ctx -> { + Vec3d pos = ClientPosArgumentType.getPos(ctx, "pos"); + BlockState blockState = ctx.getArgument("block", BlockStateArgument.class).getBlockState(); + mc.world.setBlockState(new BlockPos((int)pos.getX(), (int)pos.getY(), (int)pos.getZ()), blockState); + + return SINGLE_SUCCESS; + }))); + } +} diff --git a/src/main/java/cloudburst/rejects/commands/TeleportCommand.java b/src/main/java/cloudburst/rejects/commands/TeleportCommand.java index 1d0247f..2bf43a9 100644 --- a/src/main/java/cloudburst/rejects/commands/TeleportCommand.java +++ b/src/main/java/cloudburst/rejects/commands/TeleportCommand.java @@ -18,13 +18,13 @@ public class TeleportCommand extends Command { @Override public void build(LiteralArgumentBuilder builder) { - builder.then(argument("pos", ClientPosArgumentType.blockPos()).executes(ctx -> { + builder.then(argument("pos", ClientPosArgumentType.pos()).executes(ctx -> { Vec3d pos = ClientPosArgumentType.getPos(ctx, "pos"); mc.player.updatePosition(pos.getX(), pos.getY(), pos.getZ()); return SINGLE_SUCCESS; })); - builder.then(argument("pos", ClientPosArgumentType.blockPos()).then(argument("yaw", FloatArgumentType.floatArg()).then(argument("pitch",FloatArgumentType.floatArg()).executes(ctx -> { + builder.then(argument("pos", ClientPosArgumentType.pos()).then(argument("yaw", FloatArgumentType.floatArg()).then(argument("pitch",FloatArgumentType.floatArg()).executes(ctx -> { Vec3d pos = ClientPosArgumentType.getPos(ctx, "pos"); float yaw = FloatArgumentType.getFloat(ctx, "yaw"); float pitch = FloatArgumentType.getFloat(ctx, "pitch");