From f5776450f06098141b6815470ff35397ce0a2d75 Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Fri, 20 Feb 2026 03:24:09 +0100 Subject: [PATCH] Name tag service --- .../saturnclient/SaturnClientConfig.java | 38 ++++++++++++++++--- .../saturnclient/mixin/NameTagMixin.java | 19 +++++----- 2 files changed, 43 insertions(+), 14 deletions(-) diff --git a/src/main/java/org/saturnclient/saturnclient/SaturnClientConfig.java b/src/main/java/org/saturnclient/saturnclient/SaturnClientConfig.java index db45255..201ef98 100644 --- a/src/main/java/org/saturnclient/saturnclient/SaturnClientConfig.java +++ b/src/main/java/org/saturnclient/saturnclient/SaturnClientConfig.java @@ -1,6 +1,10 @@ package org.saturnclient.saturnclient; import org.saturnclient.saturnclient.config.Property; + +import java.util.Map; +import java.util.UUID; + import org.lwjgl.glfw.GLFW; import org.saturnclient.saturnclient.config.ConfigManager; import org.saturnclient.ui2.resources.Textures; @@ -16,6 +20,17 @@ public class SaturnClientConfig { public static Property bendyCloaks = Property.bool(true); public static Property openEmoteWheel = Property.keybinding(GLFW.GLFW_KEY_B); + static enum Role { + OWNER, + ADMIN, + PARTNER, + CONTRIBUTOR + } + + private static final Map ROLES = Map.of( + + ); + public static Identifier getLogo() { return realisticLogo.value ? Textures.REALISTIC_LOGO : Textures.LOGO; } @@ -33,12 +48,25 @@ public class SaturnClientConfig { * - Contributor: Aqua * - Other/player: White */ - public static Formatting getIconColor(String uuid) { - if (uuid.equals("d362a04228bd49e1a807ae74dbe8aba9")) { - return Formatting.DARK_RED; // Owner - } + public static Formatting getIconColor(UUID uuid) { + Role role = ROLES.get(uuid); - return Formatting.WHITE; + switch (role) { + case OWNER: + return Formatting.DARK_RED; + + case ADMIN: + return Formatting.RED; + + case PARTNER: + return Formatting.GOLD; + + case CONTRIBUTOR: + return Formatting.AQUA; + + default: + return Formatting.WHITE; + } } public static void init() { diff --git a/src/main/java/org/saturnclient/saturnclient/mixin/NameTagMixin.java b/src/main/java/org/saturnclient/saturnclient/mixin/NameTagMixin.java index defa7f5..b0e9d34 100644 --- a/src/main/java/org/saturnclient/saturnclient/mixin/NameTagMixin.java +++ b/src/main/java/org/saturnclient/saturnclient/mixin/NameTagMixin.java @@ -15,7 +15,10 @@ import net.minecraft.util.Formatting; import net.minecraft.util.math.Vec3d; import org.saturnclient.saturnclient.SaturnClientConfig; -import org.saturnclient.saturnclient.auth.Auth; +import org.saturnclient.saturnclient.client.player.SaturnPlayer; + +import java.util.UUID; + import org.joml.Matrix4f; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.Inject; @@ -37,12 +40,12 @@ public abstract class NameTagMixin { private void onRenderLabelIfPresent(S state, Text text, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, CallbackInfo ci) { - String uuid = isSaturn(state); + UUID uuid = isSaturn(state); if (uuid != null) { MutableText iconText = Text.literal(SaturnClientConfig.getSaturnIndicator()) - .styled(style -> style.withColor(SaturnClientConfig.getIconColor(uuid))); - + .styled(style -> style.withColor(SaturnClientConfig.getIconColor(uuid))); + Text nameText = text.copy().styled(style -> style.withColor(Formatting.WHITE)); renderLabel(state, iconText.append(nameText), matrices, @@ -52,13 +55,11 @@ public abstract class NameTagMixin { } } - private String isSaturn(S state) { + private UUID isSaturn(S state) { if (state instanceof PlayerEntityRenderState) { String name = ((PlayerEntityRenderState) state).name; - String uuid = Auth.playerNames.get(name); - if (Auth.players.containsKey(uuid)) { - return uuid; - } + SaturnPlayer player = SaturnPlayer.get(name); + return player.uuid; } return null;