diff --git a/src/main/java/meteordevelopment/meteorclient/events/entity/DamageEvent.java b/src/main/java/meteordevelopment/meteorclient/events/entity/DamageEvent.java deleted file mode 100644 index 9ac7d75595..0000000000 --- a/src/main/java/meteordevelopment/meteorclient/events/entity/DamageEvent.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * This file is part of the Meteor Client distribution (https://github.com/MeteorDevelopment/meteor-client). - * Copyright (c) Meteor Development. - */ - -package meteordevelopment.meteorclient.events.entity; - -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.damage.DamageSource; - -public class DamageEvent { - private static final DamageEvent INSTANCE = new DamageEvent(); - - public LivingEntity entity; - public DamageSource source; - - public static DamageEvent get(LivingEntity entity, DamageSource source) { - INSTANCE.entity = entity; - INSTANCE.source = source; - return INSTANCE; - } -} diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/LivingEntityMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/LivingEntityMixin.java index 830a4bb30d..cb7ee395ea 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/LivingEntityMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/LivingEntityMixin.java @@ -8,7 +8,6 @@ import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import com.llamalad7.mixinextras.injector.ModifyReturnValue; import meteordevelopment.meteorclient.MeteorClient; -import meteordevelopment.meteorclient.events.entity.DamageEvent; import meteordevelopment.meteorclient.events.entity.player.CanWalkOnFluidEvent; import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.movement.Sprint; @@ -19,18 +18,15 @@ import meteordevelopment.meteorclient.systems.modules.player.PotionSpoof; import meteordevelopment.meteorclient.systems.modules.render.HandView; import meteordevelopment.meteorclient.systems.modules.render.NoRender; -import meteordevelopment.meteorclient.utils.Utils; import net.minecraft.component.DataComponentTypes; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityType; import net.minecraft.entity.EquipmentSlot; import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.damage.DamageSource; import net.minecraft.entity.effect.StatusEffect; import net.minecraft.fluid.FluidState; import net.minecraft.item.ItemStack; import net.minecraft.registry.entry.RegistryEntry; -import net.minecraft.server.world.ServerWorld; import net.minecraft.util.Hand; import net.minecraft.world.World; import org.spongepowered.asm.mixin.Mixin; @@ -47,12 +43,6 @@ public LivingEntityMixin(EntityType type, World world) { super(type, world); } - @Inject(method = "damage", at = @At("HEAD")) - private void onDamageHead(ServerWorld world, DamageSource source, float amount, CallbackInfoReturnable cir) { - if (Utils.canUpdate() && getWorld().isClient) - MeteorClient.EVENT_BUS.post(DamageEvent.get((LivingEntity) (Object) this, source)); - } - @ModifyReturnValue(method = "canWalkOnFluid", at = @At("RETURN")) private boolean onCanWalkOnFluid(boolean original, FluidState fluidState) { if ((Object) this != mc.player) return original; diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/ServerPlayerEntityMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/ServerPlayerEntityMixin.java index aca212a707..4e89c0564c 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/ServerPlayerEntityMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/ServerPlayerEntityMixin.java @@ -5,23 +5,17 @@ package meteordevelopment.meteorclient.mixin; -import meteordevelopment.meteorclient.MeteorClient; -import meteordevelopment.meteorclient.events.entity.DamageEvent; import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.movement.Anchor; import meteordevelopment.meteorclient.systems.modules.movement.Scaffold; -import meteordevelopment.meteorclient.utils.Utils; import net.minecraft.entity.EntityType; import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.damage.DamageSource; import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.server.world.ServerWorld; import net.minecraft.world.World; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(ServerPlayerEntity.class) public abstract class ServerPlayerEntityMixin extends LivingEntity { @@ -37,9 +31,4 @@ public void dontJump(CallbackInfo ci) { if (module.isActive() && module.cancelJump) ci.cancel(); else if (Modules.get().get(Scaffold.class).towering()) ci.cancel(); } - - @Inject(method = "damage", at = @At("HEAD")) - private void onDamage(ServerWorld world, DamageSource source, float amount, CallbackInfoReturnable cir) { - if (Utils.canUpdate() && getWorld().isClient && canTakeDamage()) MeteorClient.EVENT_BUS.post(DamageEvent.get(this, source)); - } } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Freecam.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Freecam.java index d224d919e5..267f5a716e 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Freecam.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Freecam.java @@ -5,7 +5,8 @@ package meteordevelopment.meteorclient.systems.modules.render; -import meteordevelopment.meteorclient.events.entity.DamageEvent; + +import com.mojang.blaze3d.systems.RenderSystem; import meteordevelopment.meteorclient.events.game.GameLeftEvent; import meteordevelopment.meteorclient.events.game.OpenScreenEvent; import meteordevelopment.meteorclient.events.meteor.KeyEvent; @@ -31,6 +32,7 @@ import net.minecraft.client.option.Perspective; import net.minecraft.entity.Entity; import net.minecraft.network.packet.s2c.play.DeathMessageS2CPacket; +import net.minecraft.network.packet.s2c.play.HealthUpdateS2CPacket; import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.hit.EntityHitResult; import net.minecraft.util.math.BlockPos; @@ -165,7 +167,10 @@ public void onActivate() { @Override public void onDeactivate() { - if (reloadChunks.get()) mc.worldRenderer.reload(); + if (reloadChunks.get()) { + if (!RenderSystem.isOnRenderThread()) RenderSystem.recordRenderCall(mc.worldRenderer::reload); + else mc.worldRenderer.reload(); + } mc.options.setPerspective(perspective); if (staticView.get()) { mc.options.getFovEffectScale().setValue(fovScale); @@ -353,17 +358,6 @@ private void onChunkOcclusion(ChunkOcclusionEvent event) { event.cancel(); } - @EventHandler - private void onDamage(DamageEvent event) { - if (event.entity.getUuid() == null) return; - if (!event.entity.getUuid().equals(mc.player.getUuid())) return; - - if (toggleOnDamage.get()) { - toggle(); - info("Toggled off because you took damage."); - } - } - @EventHandler private void onGameLeft(GameLeftEvent event) { if (!toggleOnLog.get()) return; @@ -380,6 +374,12 @@ private void onPacketReceive(PacketEvent.Receive event) { info("Toggled off because you died."); } } + else if (event.packet instanceof HealthUpdateS2CPacket packet) { + if (mc.player.getHealth() - packet.getHealth() > 0 && toggleOnDamage.get()) { + toggle(); + info("Toggled off because you took damage."); + } + } } private boolean checkGuiMove() { @@ -393,8 +393,8 @@ public void changeLookDirection(double deltaX, double deltaY) { prevYaw = yaw; prevPitch = pitch; - yaw += deltaX; - pitch += deltaY; + yaw += (float) deltaX; + pitch += (float) deltaY; pitch = MathHelper.clamp(pitch, -90, 90); }