diff options
author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2024-05-14 17:12:37 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-14 17:12:37 -0400 |
commit | df8cd71d04ae9d64240472912ff929724047302f (patch) | |
tree | 8340683e6db8a033b6c54a9202e7764c2eaac551 /src/main/java/de/hysky/skyblocker/mixins/ClientPlayNetworkHandlerMixin.java | |
parent | 1960a21da6bf472c774c51c99b3ed8ca30912758 (diff) | |
parent | 3d1215ebe767d54f47b29d24ff18437fd1243f67 (diff) | |
download | Skyblocker-df8cd71d04ae9d64240472912ff929724047302f.tar.gz Skyblocker-df8cd71d04ae9d64240472912ff929724047302f.tar.bz2 Skyblocker-df8cd71d04ae9d64240472912ff929724047302f.zip |
Merge pull request #696 from Emirlol/compact-damage
Add compact damage
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/mixins/ClientPlayNetworkHandlerMixin.java')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/mixins/ClientPlayNetworkHandlerMixin.java | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/src/main/java/de/hysky/skyblocker/mixins/ClientPlayNetworkHandlerMixin.java b/src/main/java/de/hysky/skyblocker/mixins/ClientPlayNetworkHandlerMixin.java index 0a5ebc64..2c2c1376 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/ClientPlayNetworkHandlerMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixins/ClientPlayNetworkHandlerMixin.java @@ -3,6 +3,8 @@ package de.hysky.skyblocker.mixins; import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import com.llamalad7.mixinextras.injector.v2.WrapWithCondition; import com.llamalad7.mixinextras.sugar.Local; +import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.skyblock.CompactDamage; import de.hysky.skyblocker.skyblock.FishingHelper; import de.hysky.skyblocker.skyblock.dungeon.DungeonScore; import de.hysky.skyblocker.skyblock.dungeon.secrets.DungeonManager; @@ -18,12 +20,11 @@ import net.minecraft.client.world.ClientWorld; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityStatuses; import net.minecraft.entity.ItemEntity; -import net.minecraft.network.packet.s2c.play.BlockUpdateS2CPacket; -import net.minecraft.network.packet.s2c.play.EntityStatusS2CPacket; -import net.minecraft.network.packet.s2c.play.ParticleS2CPacket; -import net.minecraft.network.packet.s2c.play.PlaySoundS2CPacket; +import net.minecraft.entity.decoration.ArmorStandEntity; +import net.minecraft.network.packet.s2c.play.*; import net.minecraft.util.Identifier; import org.slf4j.Logger; +import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; @@ -36,6 +37,10 @@ public abstract class ClientPlayNetworkHandlerMixin { @Shadow private ClientWorld world; + @Shadow + @Final + private static Logger LOGGER; + @Inject(method = "onBlockUpdate", at = @At("RETURN")) private void skyblocker$onBlockUpdate(BlockUpdateS2CPacket packet, CallbackInfo ci) { if (Utils.isInTheEnd() && SlayerUtils.isInSlayer()) { @@ -103,4 +108,14 @@ public abstract class ClientPlayNetworkHandlerMixin { } return entity; } + + @Inject(method = "onEntityTrackerUpdate", at = @At("TAIL")) + private void skyblocker$onEntityTrackerUpdate(EntityTrackerUpdateS2CPacket packet, CallbackInfo ci, @Local Entity entity) { + if (!SkyblockerConfigManager.get().uiAndVisuals.compactDamage.enabled || !(entity instanceof ArmorStandEntity armorStandEntity)) return; + try { //Prevent packet handling fails if something goes wrong so that entity trackers still update, just without compact damage numbers + CompactDamage.compactDamage(armorStandEntity); + } catch (Exception e) { + LOGGER.error("[Skyblocker Compact Damage] Failed to compact damage number", e); + } + } } |