diff --git a/src/main/java/cloudburst/rejects/mixin/meteor/modules/FlightMixin.java b/src/main/java/cloudburst/rejects/mixin/meteor/modules/FlightMixin.java new file mode 100644 index 0000000..efdf189 --- /dev/null +++ b/src/main/java/cloudburst/rejects/mixin/meteor/modules/FlightMixin.java @@ -0,0 +1,42 @@ +package cloudburst.rejects.mixin.meteor.modules; + +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import net.minecraft.util.math.Vec3d; + +import meteordevelopment.meteorclient.settings.BoolSetting; +import meteordevelopment.meteorclient.settings.Setting; +import meteordevelopment.meteorclient.settings.SettingGroup; +import meteordevelopment.meteorclient.systems.modules.movement.Flight; + +import static meteordevelopment.meteorclient.utils.Utils.mc; + +@Mixin(Flight.class) +public class FlightMixin { + @Shadow + @Final + private SettingGroup sgGeneral; + + private Setting stopMomentum = null; + + @Inject(method = "", at=@At("TAIL"), remap = false) + private void onInit(CallbackInfo ci) { + stopMomentum = sgGeneral.add(new BoolSetting.Builder() + .name("stop-momentum") + .description("Stops momentum on flight disable") + .defaultValue(false) + .build() + ); + } + + @Inject(method = "onDeactivate", at=@At("TAIL"), remap = false) + private void onDeactivate(CallbackInfo ci) { + if (stopMomentum == null || !stopMomentum.get()) return; + mc.player.setVelocity(Vec3d.ZERO); + } +} diff --git a/src/main/resources/meteor-rejects-meteor.mixins.json b/src/main/resources/meteor-rejects-meteor.mixins.json index 02e26ed..2e370ec 100644 --- a/src/main/resources/meteor-rejects-meteor.mixins.json +++ b/src/main/resources/meteor-rejects-meteor.mixins.json @@ -4,6 +4,7 @@ "compatibilityLevel": "JAVA_16", "client": [ "modules.NoRenderAccessor", + "modules.FlightMixin", "CommandsMixin", "ConfigTabMixin", "GuiRendererAccessor",