From cdd6ae8ec998315c871191066de0c6fc15f384dc Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Wed, 8 Apr 2026 20:40:47 +0200 Subject: [PATCH] 1.21.9 nametags --- .../mixin/PlayerEntityRendererMixin.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/versions/1.21.9/src/main/java/org/saturnclient/saturnclient/mixin/PlayerEntityRendererMixin.java b/versions/1.21.9/src/main/java/org/saturnclient/saturnclient/mixin/PlayerEntityRendererMixin.java index 0363dad..9bf40dd 100644 --- a/versions/1.21.9/src/main/java/org/saturnclient/saturnclient/mixin/PlayerEntityRendererMixin.java +++ b/versions/1.21.9/src/main/java/org/saturnclient/saturnclient/mixin/PlayerEntityRendererMixin.java @@ -1,19 +1,29 @@ package org.saturnclient.saturnclient.mixin; +import net.minecraft.client.network.ClientPlayerLikeEntity; import net.minecraft.client.render.entity.EntityRendererFactory; import net.minecraft.client.render.entity.LivingEntityRenderer; import net.minecraft.client.render.entity.PlayerEntityRenderer; import net.minecraft.client.render.entity.model.PlayerEntityModel; import net.minecraft.client.render.entity.state.PlayerEntityRenderState; +import net.minecraft.entity.PlayerLikeEntity; import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.text.MutableText; +import net.minecraft.text.Text; +import net.minecraft.util.Formatting; +import org.saturnclient.client.player.Roles; +import org.saturnclient.client.player.SaturnPlayer; import org.saturnclient.impl.cosmetics.CloakFeatureRenderer; import org.saturnclient.impl.cosmetics.HatFeatureRenderer; +import org.saturnclient.saturnclient.SaturnRenderState; 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 com.kitfox.svg.A; + @Mixin(PlayerEntityRenderer.class) public abstract class PlayerEntityRendererMixin extends LivingEntityRenderer { @@ -27,4 +37,27 @@ public abstract class PlayerEntityRendererMixin this.addFeature(new HatFeatureRenderer(this)); this.addFeature(new CloakFeatureRenderer(this, ctx.getEquipmentModelLoader())); } + + @Inject(method = "updateRenderState", at = @At("TAIL")) + public void updateRenderState( + A entity, PlayerEntityRenderState state, + float f, CallbackInfo ci) { + if (entity == null) { + return; + } + + SaturnPlayer player = SaturnPlayer.get(entity.getUuid()); + + state.setData(SaturnRenderState.saturnDataKey, player); + + if (player != null) { + MutableText iconText = Text.literal(Roles.getSaturnIndicator()) + .styled(style -> style.withColor(Roles.getIconColor(player.uuid))); + + state.displayName = Text.empty() + .append(iconText.copy()) + .append(Text.empty().formatted(Formatting.RESET)) + .append(state.displayName.copy()); + } + } } \ No newline at end of file