From 8f567c83c6bfccd633b13c0bfe1a3e2f6f89c8f8 Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Wed, 8 Apr 2026 09:52:14 +0200 Subject: [PATCH] 1.21.11: Moved mixin to direct --- .../saturnclient/mixin/NameTagMixin.java | 67 ------------------- .../mixin/PlayerEntityRendererMixin.java | 43 ++++++++++++ .../main/resources/saturnclient.mixins.json | 1 - 3 files changed, 43 insertions(+), 68 deletions(-) delete mode 100644 versions/1.21.11/src/main/java/org/saturnclient/saturnclient/mixin/NameTagMixin.java diff --git a/versions/1.21.11/src/main/java/org/saturnclient/saturnclient/mixin/NameTagMixin.java b/versions/1.21.11/src/main/java/org/saturnclient/saturnclient/mixin/NameTagMixin.java deleted file mode 100644 index 453eae1..0000000 --- a/versions/1.21.11/src/main/java/org/saturnclient/saturnclient/mixin/NameTagMixin.java +++ /dev/null @@ -1,67 +0,0 @@ -package org.saturnclient.saturnclient.mixin; - -import net.minecraft.client.render.command.OrderedRenderCommandQueue; -import net.minecraft.client.render.entity.EntityRenderManager; -import net.minecraft.client.render.entity.EntityRenderer; -import net.minecraft.client.render.entity.state.EntityRenderState; -import net.minecraft.client.render.entity.state.PlayerEntityRenderState; -import net.minecraft.client.render.state.CameraRenderState; -import net.minecraft.client.util.math.MatrixStack; -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 java.util.UUID; - -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import org.spongepowered.asm.mixin.Shadow; - -@Mixin(value = EntityRenderer.class, priority = 1800) -public abstract class NameTagMixin { - @Shadow - public EntityRenderManager dispatcher; - - /** - * @author HexLeo - * @reason Adds the Saturn Client icon to the player's name if they are online - * with Saturn Client - */ - @Inject(method = "renderLabelIfPresent", at = @At("HEAD"), cancellable = true) - protected void renderLabelIfPresent(S state, MatrixStack matrices, OrderedRenderCommandQueue queue, - CameraRenderState cameraRenderState, CallbackInfo ci) { - if (state.displayName == null) - return; - - UUID uuid = isSaturn(state); - - if (uuid != null) { - MutableText iconText = Text.literal(Roles.getSaturnIndicator()) - .styled(style -> style.withColor(Roles.getIconColor(uuid))); - - Text nameText = state.displayName.copy().styled(style -> style.withColor(Formatting.WHITE)); - - queue.submitLabel(matrices, state.nameLabelPos, 0, iconText.append(nameText), !state.sneaking, state.light, - state.squaredDistanceToCamera, cameraRenderState); - - ci.cancel(); - } - } - - private UUID isSaturn(S state) { - if (state instanceof PlayerEntityRenderState) { - String name = ((PlayerEntityRenderState) state).displayName.getString(); - SaturnPlayer player = SaturnPlayer.get(name); - if (player != null) { - return player.uuid; - } - } - - return null; - } -} diff --git a/versions/1.21.11/src/main/java/org/saturnclient/saturnclient/mixin/PlayerEntityRendererMixin.java b/versions/1.21.11/src/main/java/org/saturnclient/saturnclient/mixin/PlayerEntityRendererMixin.java index 0363dad..39ed555 100644 --- a/versions/1.21.11/src/main/java/org/saturnclient/saturnclient/mixin/PlayerEntityRendererMixin.java +++ b/versions/1.21.11/src/main/java/org/saturnclient/saturnclient/mixin/PlayerEntityRendererMixin.java @@ -1,12 +1,22 @@ package org.saturnclient.saturnclient.mixin; +import net.minecraft.client.render.command.OrderedRenderCommandQueue; 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.client.render.state.CameraRenderState; +import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.text.MutableText; +import net.minecraft.text.Text; +import net.minecraft.util.Formatting; +import java.util.UUID; + +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.spongepowered.asm.mixin.Mixin; @@ -27,4 +37,37 @@ public abstract class PlayerEntityRendererMixin this.addFeature(new HatFeatureRenderer(this)); this.addFeature(new CloakFeatureRenderer(this, ctx.getEquipmentModelLoader())); } + + @Inject(method = "renderLabelIfPresent", at = @At("HEAD"), cancellable = true) + protected void renderLabelIfPresent(PlayerEntityRenderState state, MatrixStack matrices, + OrderedRenderCommandQueue queue, CameraRenderState cameraRenderState, CallbackInfo ci) { + if (state.displayName == null) + return; + + UUID uuid = isSaturn(state); + + if (uuid != null) { + MutableText iconText = Text.literal(Roles.getSaturnIndicator()) + .styled(style -> style.withColor(Roles.getIconColor(uuid))); + + Text nameText = state.displayName.copy().styled(style -> style.withColor(Formatting.WHITE)); + + queue.submitLabel(matrices, state.nameLabelPos, 0, iconText.append(nameText), !state.sneaking, state.light, + state.squaredDistanceToCamera, cameraRenderState); + + ci.cancel(); + } + } + + private UUID isSaturn(PlayerEntityRenderState state) { + if (state instanceof PlayerEntityRenderState) { + String name = ((PlayerEntityRenderState) state).displayName.getString(); + SaturnPlayer player = SaturnPlayer.get(name); + if (player != null) { + return player.uuid; + } + } + + return null; + } } \ No newline at end of file diff --git a/versions/1.21.11/src/main/resources/saturnclient.mixins.json b/versions/1.21.11/src/main/resources/saturnclient.mixins.json index 3bc9ccc..d831845 100644 --- a/versions/1.21.11/src/main/resources/saturnclient.mixins.json +++ b/versions/1.21.11/src/main/resources/saturnclient.mixins.json @@ -5,7 +5,6 @@ "compatibilityLevel": "JAVA_21", "client": [ "TabListMixin", - "NameTagMixin", "PlayerEntityRendererMixin", "WhoAmI", "DrawContextAccessor",