Skip to content

Commit

Permalink
Merge pull request #79 from Logging4J/master
Browse files Browse the repository at this point in the history
AntiKnockback improvements
  • Loading branch information
coltonk9043 authored Jan 19, 2025
2 parents b25ce54 + 902c302 commit a2354e7
Show file tree
Hide file tree
Showing 4 changed files with 62 additions and 6 deletions.
10 changes: 10 additions & 0 deletions src/main/java/net/aoba/mixin/ClientPlayerEntityMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

package net.aoba.mixin;

import net.aoba.module.modules.combat.AntiKnockback;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
Expand Down Expand Up @@ -156,4 +157,13 @@ private void onTickHasVehicleAfterSendPackets(CallbackInfo info) {

Aoba.getInstance().eventManager.Fire(sendMovementPacketPostEvent);
}

@Inject(method = "pushOutOfBlocks", at = @At("HEAD"), cancellable = true)
private void onPushOutOfBlocks(double x, double z, CallbackInfo ci) {
AntiKnockback antiKnockback = (AntiKnockback) Aoba.getInstance().moduleManager.antiknockback;

if (antiKnockback.state.getValue() && antiKnockback.getNoPushBlocks()) {
ci.cancel();
}
}
}
4 changes: 2 additions & 2 deletions src/main/java/net/aoba/mixin/LivingEntityMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,9 @@ private void spawnItemParticles(ItemStack stack, int count, CallbackInfo info) {
}

@Inject(method = "pushAwayFrom", at = @At("HEAD"), cancellable = true)
private void hookNoPush(CallbackInfo info) {
private void onPushAwayFrom(CallbackInfo info) {
AntiKnockback antiKnockback = Aoba.getInstance().moduleManager.antiknockback;
if (antiKnockback.state.getValue() && antiKnockback.getNoPush())
if (antiKnockback.state.getValue() && antiKnockback.getNoPushEntities())
info.cancel();
}
}
11 changes: 11 additions & 0 deletions src/main/java/net/aoba/mixin/PlayerEntityMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@

package net.aoba.mixin;

import net.aoba.module.modules.combat.AntiKnockback;
import net.minecraft.client.MinecraftClient;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
Expand Down Expand Up @@ -83,4 +85,13 @@ private void onEntityInteractionRange(CallbackInfoReturnable<Double> cir) {
cir.setReturnValue((double) reach.getReach());
}
}

@Inject(method = "isPushedByFluids", at = @At("HEAD"), cancellable = true)
private void onIsPushedByFluids(CallbackInfoReturnable<Boolean> cir) {
AntiKnockback antiKnockback = (AntiKnockback) Aoba.getInstance().moduleManager.antiknockback;

if (antiKnockback.state.getValue() && antiKnockback.getNoPushLiquids()) {
cir.setReturnValue(false);
}
}
}
43 changes: 39 additions & 4 deletions src/main/java/net/aoba/module/modules/combat/AntiKnockback.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,11 @@
import net.aoba.settings.types.BooleanSetting;
import net.aoba.settings.types.FloatSetting;
import net.minecraft.client.MinecraftClient;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityStatuses;
import net.minecraft.entity.projectile.FishingBobberEntity;
import net.minecraft.network.packet.Packet;
import net.minecraft.network.packet.s2c.play.EntityStatusS2CPacket;
import net.minecraft.network.packet.s2c.play.EntityVelocityUpdateS2CPacket;
import net.minecraft.network.packet.s2c.play.ExplosionS2CPacket;
import net.minecraft.util.math.Vec3d;
Expand All @@ -46,9 +50,18 @@ public class AntiKnockback extends Module implements ReceivePacketListener {
private FloatSetting vertical = FloatSetting.builder().id("antiknockback_vertical").displayName("Vertical")
.description("Vertical Velocity").defaultValue(0f).minValue(0f).maxValue(1f).step(0.01f).build();

private BooleanSetting noPush = BooleanSetting.builder().id("antiknockback_vertical").displayName("No Push")
private BooleanSetting noPushEntites = BooleanSetting.builder().id("antiknockback_no_push_entities").displayName("No Push Entities")
.description("Prevents being pushed by entites.").defaultValue(true).build();

private BooleanSetting noPushBlocks = BooleanSetting.builder().id("antiknockback_no_push_blocks").displayName("No Push Blocks")
.description("Prevents being pushed by blocks.").defaultValue(true).build();

private BooleanSetting noPushLiquids = BooleanSetting.builder().id("antiknockback_no_push_liquids").displayName("No Push Liquids")
.description("Prevents being pushed by liquids.").defaultValue(true).build();

private BooleanSetting noPushFishhook = BooleanSetting.builder().id("antiknockback_no_push_fishhook").displayName("No Push Fishhook")
.description("Prevents being pulled by the fishhook.").defaultValue(true).build();

public AntiKnockback() {
super("AntiKnockback");

Expand All @@ -57,11 +70,22 @@ public AntiKnockback() {

this.addSetting(horizontal);
this.addSetting(vertical);
this.addSetting(noPush);
this.addSetting(noPushEntites);
this.addSetting(noPushBlocks);
this.addSetting(noPushLiquids);
this.addSetting(noPushFishhook);
}

public boolean getNoPush() {
return this.noPush.getValue();
public boolean getNoPushEntities() {
return this.noPushEntites.getValue();
}

public boolean getNoPushBlocks() {
return this.noPushBlocks.getValue();
}

public boolean getNoPushLiquids() {
return this.noPushLiquids.getValue();
}

@Override
Expand Down Expand Up @@ -104,5 +128,16 @@ public void onReceivePacket(ReceivePacketEvent readPacketEvent) {
.setPlayerKnockback(Optional.of(knockback.multiply(horizontal.getValue())));
}
}

//Cancel being launched with a fishing rod.
if (packet instanceof EntityStatusS2CPacket entityStatusS2CPacket) {
if (entityStatusS2CPacket.getStatus() == EntityStatuses.PULL_HOOKED_ENTITY && noPushFishhook.getValue()) {
Entity entity = entityStatusS2CPacket.getEntity(mc.world);

if (entity instanceof FishingBobberEntity fishingBobberEntity && fishingBobberEntity.getHookedEntity() == mc.player) {
readPacketEvent.cancel();
}
}
}
}
}

0 comments on commit a2354e7

Please sign in to comment.