From 7f004c9932183484374ecd93f011f9f1d4a767b7 Mon Sep 17 00:00:00 2001 From: Patrick <147879351+WinniePatGG@users.noreply.github.com> Date: Sun, 12 Jul 2026 20:23:47 +0200 Subject: [PATCH] Rank in TabList --- .../citrusDev/mixin/PlayerNametagMixin.java | 2 -- .../citrusDev/mixin/TablistMixin.java | 34 +++++++++++++++++++ src/main/resources/citrus-dev.mixins.json | 3 +- 3 files changed, 36 insertions(+), 3 deletions(-) create mode 100644 src/main/java/de/fullrisk/citrusDev/mixin/TablistMixin.java diff --git a/src/main/java/de/fullrisk/citrusDev/mixin/PlayerNametagMixin.java b/src/main/java/de/fullrisk/citrusDev/mixin/PlayerNametagMixin.java index dccd68a..6726db9 100644 --- a/src/main/java/de/fullrisk/citrusDev/mixin/PlayerNametagMixin.java +++ b/src/main/java/de/fullrisk/citrusDev/mixin/PlayerNametagMixin.java @@ -23,8 +23,6 @@ public abstract class PlayerNametagMixin { if (entity instanceof Player player) { UUID uuid = player.getUUID(); - // TODO Check if player is online with client - String iconChar = RankHelper.getRankIcon(uuid); if (!iconChar.trim().isEmpty()) { MutableComponent icon = Component.literal(iconChar).setStyle(Style.EMPTY.withFont( diff --git a/src/main/java/de/fullrisk/citrusDev/mixin/TablistMixin.java b/src/main/java/de/fullrisk/citrusDev/mixin/TablistMixin.java new file mode 100644 index 0000000..26ece18 --- /dev/null +++ b/src/main/java/de/fullrisk/citrusDev/mixin/TablistMixin.java @@ -0,0 +1,34 @@ +package de.fullrisk.citrusDev.mixin; + +import com.llamalad7.mixinextras.injector.ModifyReturnValue; +import de.fullrisk.citrusDev.helper.RankHelper; +import net.minecraft.client.gui.components.PlayerTabOverlay; +import net.minecraft.client.multiplayer.PlayerInfo; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.FontDescription; +import net.minecraft.network.chat.MutableComponent; +import net.minecraft.network.chat.Style; +import net.minecraft.resources.Identifier; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; + +@Mixin(PlayerTabOverlay.class) +public abstract class TablistMixin { + + @ModifyReturnValue(method = "getNameForDisplay", at = @At("RETURN")) + private Component citrusDev$addRankIcon(Component original, PlayerInfo info) { + String iconChar = RankHelper.getRankIcon(info.getProfile().id()); + if (!iconChar.trim().isEmpty()) { + MutableComponent icon = Component.literal(iconChar).setStyle(Style.EMPTY.withFont( + new FontDescription.Resource(Identifier.fromNamespaceAndPath("citrus-dev", "icon_font")) + )); + + MutableComponent nameWithSpace = Component.literal("") + .append(original) + .setStyle(Style.EMPTY.withFont(new FontDescription.Resource(Identifier.fromNamespaceAndPath("minecraft", "default")))); + + return icon.append(nameWithSpace); + } + return original; + } +} diff --git a/src/main/resources/citrus-dev.mixins.json b/src/main/resources/citrus-dev.mixins.json index bb084b5..e594076 100644 --- a/src/main/resources/citrus-dev.mixins.json +++ b/src/main/resources/citrus-dev.mixins.json @@ -10,7 +10,8 @@ "MouseHandlerMixin", "LightmapRenderStateExtractorMixin", "PlayerNametagMixin", - "OwnNametagMixin" + "OwnNametagMixin", + "TablistMixin" ], "injectors": { "defaultRequire": 1