From 049c92785d4ba28e299fb2ebfa9fcbfc95524cec Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Sun, 22 Feb 2026 01:25:22 +0100 Subject: [PATCH] Fixed bugs and restructured roles --- .../saturnclient/client/player/Roles.java | 59 +++++++++++++++++++ .../client/player/SaturnPlayer.java | 4 ++ .../config/SaturnClientConfig.java | 53 ----------------- .../cosmetics/CloakFeatureRenderer.java | 8 ++- .../saturnclient/mixin/NameTagMixin.java | 10 ++-- .../saturnclient/mixin/TabListMixin.java | 6 +- 6 files changed, 77 insertions(+), 63 deletions(-) create mode 100644 src/main/java/org/saturnclient/saturnclient/client/player/Roles.java diff --git a/src/main/java/org/saturnclient/saturnclient/client/player/Roles.java b/src/main/java/org/saturnclient/saturnclient/client/player/Roles.java new file mode 100644 index 0000000..8771960 --- /dev/null +++ b/src/main/java/org/saturnclient/saturnclient/client/player/Roles.java @@ -0,0 +1,59 @@ +package org.saturnclient.saturnclient.client.player; + +import java.util.Map; +import java.util.UUID; + +import org.saturnclient.saturnclient.config.SaturnClientConfig; + +import net.minecraft.util.Formatting; + +public class Roles { + static enum Role { + OWNER, + ADMIN, + PARTNER, + CONTRIBUTOR + } + + private static final Map ROLES = Map.of( + UUID.fromString("d362a042-28bd-49e1-a807-ae74dbe8aba9"), + Role.OWNER); + + /* + * Gets the icon color of a specific individual, here are the different colors + * + * - Owner: Dark Red + * - Admin: Red + * - Partners: Gold + * - Contributor: Aqua + * - Other/player: White + */ + public static Formatting getIconColor(UUID uuid) { + Role role = ROLES.get(uuid); + + if (role == null) { + 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 String getSaturnIndicator() { + return SaturnClientConfig.realisticLogo.value ? "" : ""; + } +} diff --git a/src/main/java/org/saturnclient/saturnclient/client/player/SaturnPlayer.java b/src/main/java/org/saturnclient/saturnclient/client/player/SaturnPlayer.java index 5f18c51..a6caf95 100644 --- a/src/main/java/org/saturnclient/saturnclient/client/player/SaturnPlayer.java +++ b/src/main/java/org/saturnclient/saturnclient/client/player/SaturnPlayer.java @@ -4,6 +4,7 @@ import java.util.HashMap; import java.util.Map; import java.util.UUID; +import org.jetbrains.annotations.Nullable; import org.saturnclient.saturnclient.client.ServiceClient; public class SaturnPlayer { @@ -22,14 +23,17 @@ public class SaturnPlayer { this.name = name; } + @Nullable public static SaturnPlayer get() { return PLAYERS.get(ServiceClient.uuid); } + @Nullable public static SaturnPlayer get(UUID uuid) { return PLAYERS.get(uuid); } + @Nullable public static SaturnPlayer get(String name) { UUID uuid = PLAYER_NAMES.get(name); if (uuid == null) diff --git a/src/main/java/org/saturnclient/saturnclient/config/SaturnClientConfig.java b/src/main/java/org/saturnclient/saturnclient/config/SaturnClientConfig.java index cd09f65..5f35a38 100644 --- a/src/main/java/org/saturnclient/saturnclient/config/SaturnClientConfig.java +++ b/src/main/java/org/saturnclient/saturnclient/config/SaturnClientConfig.java @@ -1,12 +1,8 @@ package org.saturnclient.saturnclient.config; -import java.util.Map; -import java.util.UUID; - import org.lwjgl.glfw.GLFW; import org.saturnclient.ui2.resources.Textures; -import net.minecraft.util.Formatting; import net.minecraft.util.Identifier; public class SaturnClientConfig { @@ -17,59 +13,10 @@ 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( - UUID.fromString("d362a042-28bd-49e1-a807-ae74dbe8aba9"), - Role.OWNER); - public static Identifier getLogo() { return realisticLogo.value ? Textures.REALISTIC_LOGO : Textures.LOGO; } - public static String getSaturnIndicator() { - return realisticLogo.value ? "" : ""; - } - - /* - * Gets the icon color of a specific individual, here are the different colors - * - * - Owner: Dark Red - * - Admin: Red - * - Partners: Gold - * - Contributor: Aqua - * - Other/player: White - */ - public static Formatting getIconColor(UUID uuid) { - Role role = ROLES.get(uuid); - - if (role == null) { - 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() { config = new ConfigManager("Saturn Client"); config.property("Realistic logo", realisticLogo); diff --git a/src/main/java/org/saturnclient/saturnclient/cosmetics/CloakFeatureRenderer.java b/src/main/java/org/saturnclient/saturnclient/cosmetics/CloakFeatureRenderer.java index 9f4344f..bafc998 100644 --- a/src/main/java/org/saturnclient/saturnclient/cosmetics/CloakFeatureRenderer.java +++ b/src/main/java/org/saturnclient/saturnclient/cosmetics/CloakFeatureRenderer.java @@ -283,14 +283,16 @@ public class CloakFeatureRenderer extends FeatureRenderer { UUID uuid = isSaturn(state); if (uuid != null) { - MutableText iconText = Text.literal(SaturnClientConfig.getSaturnIndicator()) - .styled(style -> style.withColor(SaturnClientConfig.getIconColor(uuid))); + MutableText iconText = Text.literal(Roles.getSaturnIndicator()) + .styled(style -> style.withColor(Roles.getIconColor(uuid))); Text nameText = text.copy().styled(style -> style.withColor(Formatting.WHITE)); @@ -59,7 +59,9 @@ public abstract class NameTagMixin { if (state instanceof PlayerEntityRenderState) { String name = ((PlayerEntityRenderState) state).name; SaturnPlayer player = SaturnPlayer.get(name); - return player.uuid; + if (player != null) { + return player.uuid; + } } return null; diff --git a/src/main/java/org/saturnclient/saturnclient/mixin/TabListMixin.java b/src/main/java/org/saturnclient/saturnclient/mixin/TabListMixin.java index 93513cc..e830a3e 100644 --- a/src/main/java/org/saturnclient/saturnclient/mixin/TabListMixin.java +++ b/src/main/java/org/saturnclient/saturnclient/mixin/TabListMixin.java @@ -7,8 +7,8 @@ import net.minecraft.util.Formatting; import java.util.UUID; import org.jetbrains.annotations.Nullable; +import org.saturnclient.saturnclient.client.player.Roles; import org.saturnclient.saturnclient.client.player.SaturnPlayer; -import org.saturnclient.saturnclient.config.SaturnClientConfig; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Overwrite; import org.spongepowered.asm.mixin.Shadow; @@ -34,8 +34,8 @@ public abstract class TabListMixin { UUID uuid = profile.getId(); if (SaturnPlayer.get(uuid) != null) { - return Text.literal(SaturnClientConfig.getSaturnIndicator()) - .styled(style -> style.withColor(SaturnClientConfig.getIconColor(uuid))) + return Text.literal(Roles.getSaturnIndicator()) + .styled(style -> style.withColor(Roles.getIconColor(uuid))) .append(Text.literal(name).styled(style -> style.withColor(Formatting.WHITE))); } return Text.literal(name);