From 847100cb50dea171d494e541bc3a19bf8438ba3d Mon Sep 17 00:00:00 2001 From: Roman / Linnea Gräf Date: Sat, 24 Jun 2023 19:03:52 +0200 Subject: Merge pull request #256 * Remove old update data after each update * VoltHighlighter * VoltHighlighter --- .../mixins/transformers/MixinNetHandlerPlayClient.java | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/main/java/at/hannibal2/skyhanni/mixins') diff --git a/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinNetHandlerPlayClient.java b/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinNetHandlerPlayClient.java index bd4107369..8d2f6c5d3 100644 --- a/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinNetHandlerPlayClient.java +++ b/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinNetHandlerPlayClient.java @@ -1,15 +1,19 @@ package at.hannibal2.skyhanni.mixins.transformers; +import at.hannibal2.skyhanni.events.EntityEquipmentChangeEvent; import at.hannibal2.skyhanni.mixins.hooks.NetHandlerPlayClientHookKt; import net.minecraft.client.multiplayer.WorldClient; import net.minecraft.client.network.NetHandlerPlayClient; +import net.minecraft.entity.Entity; import net.minecraft.network.Packet; import net.minecraft.network.play.INetHandlerPlayClient; +import net.minecraft.network.play.server.S04PacketEntityEquipment; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; 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.LocalCapture; @Mixin(value = NetHandlerPlayClient.class, priority = 1001) public abstract class MixinNetHandlerPlayClient implements INetHandlerPlayClient { @@ -21,4 +25,10 @@ public abstract class MixinNetHandlerPlayClient implements INetHandlerPlayClient private void onSendPacket(Packet packet, CallbackInfo ci) { NetHandlerPlayClientHookKt.onSendPacket(packet, ci); } + + @Inject(method = "handleEntityEquipment", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/Entity;setCurrentItemOrArmor(ILnet/minecraft/item/ItemStack;)V", shift = At.Shift.AFTER), locals = LocalCapture.CAPTURE_FAILHARD) + public void onEntityEquipment(S04PacketEntityEquipment packetIn, CallbackInfo ci, Entity entity) { + new EntityEquipmentChangeEvent(entity, packetIn.getEquipmentSlot(), packetIn.getItemStack()).postAndCatch(); + } + } -- cgit