diff --git a/.github/workflows/dev_build.yml b/.github/workflows/dev_build.yml index 90f22bf..66792a8 100644 --- a/.github/workflows/dev_build.yml +++ b/.github/workflows/dev_build.yml @@ -16,8 +16,8 @@ jobs: uses: marvinpinto/action-automatic-releases@latest with: repo_token: '${{ secrets.GITHUB_TOKEN }}' - automatic_release_tag: "1.20.4_1.0.8.2" + automatic_release_tag: "1.20.4_1.0.8.3" prerelease: true - title: "1.20.4 | 1.0.8.2" + title: "1.20.4 | 1.0.8.3" files: | ./build/libs/*.jar diff --git a/gradle.properties b/gradle.properties index 60a6da0..245ea75 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,7 +6,7 @@ yarn_mappings=1.20.4+build.2 loader_version=0.15.1 # Mod Properties -mod_version=1.0.8.2 +mod_version=1.0.8.3 maven_group=nekiplay.meteorplus archives_base_name=meteor-plus diff --git a/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/VelocityModes.java b/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/VelocityModes.java index 6caac35..46b7fba 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/VelocityModes.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/VelocityModes.java @@ -1,5 +1,11 @@ package nekiplay.meteorplus.features.modules.combat.velocity; public enum VelocityModes { - Grim, + Grim_Cancel, + Grim_Cancel_v2; + + @Override + public String toString() { + return super.toString().replace('_', ' '); + } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/VelocityPlus.java b/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/VelocityPlus.java index 2a69359..0b812bd 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/VelocityPlus.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/VelocityPlus.java @@ -6,7 +6,8 @@ import meteordevelopment.meteorclient.systems.modules.Categories; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.orbit.EventHandler; -import nekiplay.meteorplus.features.modules.combat.velocity.modes.Grim; +import nekiplay.meteorplus.features.modules.combat.velocity.modes.GrimCancel; +import nekiplay.meteorplus.features.modules.combat.velocity.modes.GrimCancel_v2; public class VelocityPlus extends Module { public VelocityPlus() { @@ -19,7 +20,7 @@ public VelocityPlus() { private final Setting mode = sgGeneral.add(new EnumSetting.Builder() .name("mode") .description("Velocity mode.") - .defaultValue(VelocityModes.Grim) + .defaultValue(VelocityModes.Grim_Cancel) .onModuleActivated(timerModesSetting -> onTimerModeChanged(timerModesSetting.get())) .onChanged(this::onTimerModeChanged) .build() @@ -30,9 +31,8 @@ public VelocityPlus() { private void onTimerModeChanged(VelocityModes mode) { switch (mode) { - case Grim -> { - currentMode = new Grim(); - } + case Grim_Cancel -> currentMode = new GrimCancel(); + case Grim_Cancel_v2 -> currentMode = new GrimCancel_v2(); } } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/modes/Grim.java b/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/modes/GrimCancel.java similarity index 82% rename from src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/modes/Grim.java rename to src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/modes/GrimCancel.java index b5b3499..b92c1a9 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/modes/Grim.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/modes/GrimCancel.java @@ -1,23 +1,19 @@ package nekiplay.meteorplus.features.modules.combat.velocity.modes; -import it.unimi.dsi.fastutil.objects.ObjectIterator; import meteordevelopment.meteorclient.events.packets.PacketEvent; -import meteordevelopment.meteorclient.events.world.TickEvent; -import meteordevelopment.meteorclient.systems.modules.render.blockesp.ESPBlock; import meteordevelopment.meteorclient.utils.network.MeteorExecutor; import nekiplay.meteorplus.features.modules.combat.velocity.VelocityMode; import nekiplay.meteorplus.features.modules.combat.velocity.VelocityModes; import net.minecraft.network.packet.Packet; import net.minecraft.network.packet.c2s.play.PlayerActionC2SPacket; import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; -import net.minecraft.network.packet.s2c.common.KeepAliveS2CPacket; import net.minecraft.network.packet.s2c.play.EntityDamageS2CPacket; import net.minecraft.network.packet.s2c.play.EntityVelocityUpdateS2CPacket; import net.minecraft.network.packet.s2c.play.ExplosionS2CPacket; -public class Grim extends VelocityMode { - public Grim() { - super(VelocityModes.Grim); +public class GrimCancel extends VelocityMode { + public GrimCancel() { + super(VelocityModes.Grim_Cancel); } private boolean canCancel = false; @@ -34,7 +30,7 @@ public void onDeactivate() { @Override public void onReceivePacket(PacketEvent.Receive event) { - Packet packet = event.packet; + Packet packet = event.packet; if (packet instanceof EntityDamageS2CPacket && ((EntityDamageS2CPacket) packet).entityId() == mc.player.getId()) { canCancel = true; diff --git a/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/modes/GrimCancel_v2.java b/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/modes/GrimCancel_v2.java new file mode 100644 index 0000000..7354ff0 --- /dev/null +++ b/src/main/java/nekiplay/meteorplus/features/modules/combat/velocity/modes/GrimCancel_v2.java @@ -0,0 +1,64 @@ +package nekiplay.meteorplus.features.modules.combat.velocity.modes; + +import meteordevelopment.meteorclient.events.packets.PacketEvent; +import nekiplay.meteorplus.features.modules.combat.velocity.VelocityMode; +import nekiplay.meteorplus.features.modules.combat.velocity.VelocityModes; +import net.minecraft.network.packet.Packet; +import net.minecraft.network.packet.c2s.play.PlayerActionC2SPacket; +import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; +import net.minecraft.network.packet.s2c.play.EntityVelocityUpdateS2CPacket; +import net.minecraft.network.packet.s2c.play.ExplosionS2CPacket; +import net.minecraft.network.packet.s2c.play.PlayerPositionLookS2CPacket; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; + +public class GrimCancel_v2 extends VelocityMode { + public GrimCancel_v2() { + super(VelocityModes.Grim_Cancel_v2); + } + + private int skip = 0; + + private boolean canCancel = false; + + @Override + public void onActivate() { + canCancel = false; + skip = 0; + } + + @Override + public void onDeactivate() { + canCancel = false; + skip = 0; + } + + @Override + public void onReceivePacket(PacketEvent.Receive event) { + Packet packet = event.packet; + + if (((packet instanceof EntityVelocityUpdateS2CPacket && ((EntityVelocityUpdateS2CPacket) packet).getId() == mc.player.getId()) || packet instanceof ExplosionS2CPacket) && canCancel) { + event.cancel(); + canCancel = true; + } + else if (packet instanceof PlayerPositionLookS2CPacket) { + skip = 3; + } + } + + @Override + public void onSendPacket(PacketEvent.Send event) { + Packet packet = event.packet; + + if (packet instanceof PlayerMoveC2SPacket) { + skip--; + if (canCancel) { + if (skip <= 0) { + BlockPos blockPos = mc.player.getBlockPos(); + mc.getNetworkHandler().sendPacket(new PlayerMoveC2SPacket.Full(mc.player.getX(), mc.player.getY(), mc.player.getZ(), mc.player.getYaw(), mc.player.getPitch(), mc.player.isOnGround())); + mc.getNetworkHandler().sendPacket(new PlayerActionC2SPacket(PlayerActionC2SPacket.Action.STOP_DESTROY_BLOCK, mc.player.getBlockPos(), Direction.UP)); + } + } + } + } +} diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index c9e1ad3..aefe2fc 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -2,7 +2,7 @@ "schemaVersion": 1, "id": "meteorplus", "version": "${version}", - "name": "Meteor Plus", + "name": "Meteor+", "description": "An addon for Meteor client and Boze Client that adds many blatant features.", "authors": [ "Neki_play"