diff --git a/README.md b/README.md index f5b657b..6befea3 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,7 @@ - Coord Logger (World events from [JexClient](https://github.com/DustinRepo/JexClient-main/blob/main/src/main/java/me/dustin/jex/feature/mod/impl/misc/CoordFinder.java)) - Custom Packets - Ghost Mode (Taken from an [unmerged PR](https://github.com/MeteorDevelopment/meteor-client/pull/1932)) +- Glide (Ported from [Wurst](https://github.com/Wurst-Imperium/Wurst7/tree)) - InteractionMenu (Ported from [BleachHack](https://github.com/BleachDrinker420/BleachHack/pull/211)) - Lavacast - NewChunks (Ported from [BleackHack](https://github.com/BleachDrinker420/BleachHack/blob/master/BleachHack-Fabric-1.17/src/main/java/bleach/hack/module/mods/NewChunks.java)) diff --git a/src/main/java/anticope/rejects/MeteorRejectsAddon.java b/src/main/java/anticope/rejects/MeteorRejectsAddon.java index ed3dc13..26d471f 100644 --- a/src/main/java/anticope/rejects/MeteorRejectsAddon.java +++ b/src/main/java/anticope/rejects/MeteorRejectsAddon.java @@ -53,6 +53,7 @@ public class MeteorRejectsAddon extends MeteorAddon { modules.add(new CoordLogger()); modules.add(new CustomPackets()); modules.add(new GhostMode()); + modules.add(new Glide()); modules.add(new InteractionMenu()); modules.add(new Lavacast()); modules.add(new NewChunks()); diff --git a/src/main/java/anticope/rejects/modules/Glide.java b/src/main/java/anticope/rejects/modules/Glide.java new file mode 100644 index 0000000..3f66f8d --- /dev/null +++ b/src/main/java/anticope/rejects/modules/Glide.java @@ -0,0 +1,64 @@ +package anticope.rejects.modules; + +import anticope.rejects.MeteorRejectsAddon; +import meteordevelopment.meteorclient.events.world.TickEvent; +import meteordevelopment.meteorclient.settings.*; +import meteordevelopment.meteorclient.systems.modules.Module; +import meteordevelopment.orbit.EventHandler; +import net.minecraft.client.network.ClientPlayerEntity; +import net.minecraft.util.math.Box; +import net.minecraft.util.math.Vec3d; + + +public class Glide extends Module { + private final SettingGroup sgGeneral = settings.getDefaultGroup(); + + public final Setting fallSpeed = sgGeneral.add(new DoubleSetting.Builder() + .name("fall-speed") + .description("Fall speed.") + .defaultValue(0.125) + .min(0.005) + .sliderRange(0.005, 0.25) + .build() + ); + + public final Setting moveSpeed = sgGeneral.add(new DoubleSetting.Builder() + .name("move-speed") + .description("Horizontal movement factor.") + .defaultValue(1.2) + .min(1) + .sliderRange(1, 5) + .build() + ); + + public final Setting minHeight = sgGeneral.add(new DoubleSetting.Builder() + .name("min-height") + .description("Won't glide when you are too close to the ground.") + .defaultValue(0) + .min(0) + .sliderRange(0, 2) + .build() + ); + + public Glide() { + super(MeteorRejectsAddon.CATEGORY, "glide", "Yeehaw!"); + } + + @EventHandler + private void onTick(TickEvent.Post event) { + ClientPlayerEntity player = mc.player; + Vec3d v = player.getVelocity(); + + if(player.isOnGround() || player.isTouchingWater() || player.isInLava() || player.isClimbing() || v.y >= 0) return; + + if(minHeight.get() > 0) + { + Box box = player.getBoundingBox(); + box = box.union(box.offset(0, -minHeight.get(), 0)); + if(!mc.world.isSpaceEmpty(box)) return; + } + + player.setVelocity(v.x, Math.max(v.y, -fallSpeed.get()), v.z); + player.airStrafingSpeed *= moveSpeed.get(); + } +} \ No newline at end of file