Skip to content

Commit

Permalink
Made the respawn handler more accurate
Browse files Browse the repository at this point in the history
  • Loading branch information
XIAYM-gh committed Jul 13, 2024
1 parent 3e4c175 commit 61e30e6
Showing 1 changed file with 17 additions and 1 deletion.
18 changes: 17 additions & 1 deletion src/main/java/cn/xiaym/skin/mixin/RespawnHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@

import cn.xiaym.skin.Main;
import net.minecraft.client.network.ClientPlayNetworkHandler;
import net.minecraft.network.packet.s2c.play.DeathMessageS2CPacket;
import net.minecraft.network.packet.s2c.play.PlayerRespawnS2CPacket;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
Expand All @@ -12,13 +14,27 @@

@Mixin(ClientPlayNetworkHandler.class)
public class RespawnHandler {
@Unique
private boolean dead = false;

@Inject(method = "onPlayerRespawn(Lnet/minecraft/network/packet/s2c/play/PlayerRespawnS2CPacket;)V", at = @At("RETURN"))
public void onPlayerRespawn(PlayerRespawnS2CPacket packet, CallbackInfo info) {
if (MC.player == null) {
if (MC.player == null || !dead) {
return;
}

Main.refreshSkinParts();
Main.LOGGER.info("[SkinParts] Respawning detected - Refreshing the player's skin layers.");

dead = false;
}

@Inject(method = "onDeathMessage(Lnet/minecraft/network/packet/s2c/play/DeathMessageS2CPacket;)V", at = @At("RETURN"))
public void onPlayerDeath(DeathMessageS2CPacket packet, CallbackInfo info) {
if (MC.player == null) {
return;
}

dead = true;
}
}

0 comments on commit 61e30e6

Please sign in to comment.