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