From 4c788e3cb01c76ecdd4e242957c58999cc0a1778 Mon Sep 17 00:00:00 2001 From: Cloudburst Date: Sat, 31 Jul 2021 19:19:17 +0200 Subject: [PATCH] Added two new phase modes i guess --- .../rejects/modules/ColorSigns.java | 1 - .../cloudburst/rejects/modules/Phase.java | 131 ++++++++++++++++++ 2 files changed, 131 insertions(+), 1 deletion(-) diff --git a/src/main/java/cloudburst/rejects/modules/ColorSigns.java b/src/main/java/cloudburst/rejects/modules/ColorSigns.java index d380012..b2d7b15 100644 --- a/src/main/java/cloudburst/rejects/modules/ColorSigns.java +++ b/src/main/java/cloudburst/rejects/modules/ColorSigns.java @@ -1,6 +1,5 @@ package cloudburst.rejects.modules; -import meteordevelopment.meteorclient.events.game.GameJoinedEvent; import net.minecraft.network.packet.c2s.play.UpdateSignC2SPacket; import cloudburst.rejects.MeteorRejectsAddon; diff --git a/src/main/java/cloudburst/rejects/modules/Phase.java b/src/main/java/cloudburst/rejects/modules/Phase.java index 2498b1b..fc83d7a 100644 --- a/src/main/java/cloudburst/rejects/modules/Phase.java +++ b/src/main/java/cloudburst/rejects/modules/Phase.java @@ -1,21 +1,66 @@ package cloudburst.rejects.modules; +import net.minecraft.util.math.MathHelper; +import net.minecraft.util.math.Vec3d; import net.minecraft.util.shape.VoxelShapes; import cloudburst.rejects.MeteorRejectsAddon; import meteordevelopment.meteorclient.events.world.CollisionShapeEvent; +import meteordevelopment.meteorclient.events.world.TickEvent; +import meteordevelopment.meteorclient.settings.DoubleSetting; +import meteordevelopment.meteorclient.settings.EnumSetting; +import meteordevelopment.meteorclient.settings.Setting; +import meteordevelopment.meteorclient.settings.SettingGroup; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.orbit.EventHandler; public class Phase extends Module { + private final SettingGroup sgGeneral = settings.getDefaultGroup(); + + private final Setting mode = sgGeneral.add(new EnumSetting.Builder() + .name("mode") + .description("The phase mode used.") + .defaultValue(Mode.NRNB) + .onChanged(v -> { setPos(); }) + .build() + ); + + private final Setting distance = sgGeneral.add(new DoubleSetting.Builder() + .name("speed") + .description("The X and Z distance per clip.") + .defaultValue(0.1) + .min(0.0) + .sliderMin(0.0) + .sliderMax(10.0) + .visible(() -> (mode.get() != Mode.CollisionShape)) + .build() + ); + + + private double prevX = Double.NaN; + private double prevZ = Double.NaN; + public Phase() { super(MeteorRejectsAddon.CATEGORY, "phase", "Lets you clip through ground sometimes."); } + @Override + public void onActivate() { + if (mc.player == null) return; + setPos(); + } + + @Override + public void onDeactivate() { + prevX = Double.NaN; + prevZ = Double.NaN; + } + @EventHandler private void onCollisionShape(CollisionShapeEvent event) { if (mc.world == null || mc.player == null) return; + if (mode.get() != Mode.CollisionShape) return; if (event.type != CollisionShapeEvent.CollisionType.BLOCK) return; if (event.pos.getY() < mc.player.getY()) { if (mc.player.isSneaking()) { @@ -25,4 +70,90 @@ public class Phase extends Module { event.shape = VoxelShapes.empty(); } } + + @EventHandler + private void onTick(TickEvent.Post post) { + if (mode.get() == Mode.CollisionShape) return; + if (mc.player == null) return; + + if (Double.isNaN(prevX) || Double.isNaN(prevZ)) setPos(); + + Vec3d yawForward = Vec3d.fromPolar((float)0.0f, (float)mc.player.getYaw()); + Vec3d yawBack = Vec3d.fromPolar((float)0.0f, (float)mc.player.getYaw() - 180f); + Vec3d yawLeft = Vec3d.fromPolar((float)0.0f, (float)mc.player.getYaw() - 90f); + Vec3d yawRight = Vec3d.fromPolar((float)0.0f, (float)mc.player.getYaw() - 270f); + + if (mode.get() == Mode.Normal) { + + if (mc.options.keyForward.isPressed()) { + mc.player.setPos( + mc.player.getX() + yawForward.x * distance.get(), + mc.player.getY(), + mc.player.getZ() + yawForward.z * distance.get() + ); + } + + if (mc.options.keyBack.isPressed()) { + mc.player.setPos( + mc.player.getX() + yawBack.x * distance.get(), + mc.player.getY(), + mc.player.getZ() + yawBack.z * distance.get() + ); + } + + if (mc.options.keyLeft.isPressed()) { + mc.player.setPos( + mc.player.getX() + yawLeft.x * distance.get(), + mc.player.getY(), + mc.player.getZ() + yawLeft.z * distance.get() + ); + } + + if (mc.options.keyRight.isPressed()) { + mc.player.setPos( + mc.player.getX() + yawRight.x * distance.get(), + mc.player.getY(), + mc.player.getZ() + yawRight.z * distance.get() + ); + } + } + + else if (mode.get() == Mode.NRNB) { + if (mc.options.keyForward.isPressed()) { + prevX += yawForward.x * distance.get(); + prevZ += yawForward.z * distance.get(); + mc.player.setPos(prevX, mc.player.getY(), prevZ); + } + + if (mc.options.keyBack.isPressed()) { + prevX += yawBack.x * distance.get(); + prevZ += yawBack.z * distance.get(); + mc.player.setPos(prevX, mc.player.getY(), prevZ); + } + + if (mc.options.keyLeft.isPressed()) { + prevX += yawLeft.x * distance.get(); + prevZ += yawLeft.z * distance.get(); + mc.player.setPos(prevX, mc.player.getY(), prevZ); + } + + if (mc.options.keyRight.isPressed()) { + prevX += yawRight.x * distance.get(); + prevZ += yawRight.z * distance.get(); + mc.player.setPos(prevX, mc.player.getY(), prevZ); + } + } + } + + private void setPos() { + if (mc.player == null) return; + prevX = mc.player.getX(); + prevZ = mc.player.getZ(); + } + + public static enum Mode { + NRNB, + Normal, + CollisionShape + } }