Skip to content
This repository was archived by the owner on Nov 28, 2025. It is now read-only.

Commit 7940cee

Browse files
committed
small badge rendering tweaks
- fix race condition on API login
1 parent b33da17 commit 7940cee

File tree

13 files changed

+26
-19
lines changed

13 files changed

+26
-19
lines changed

1.16_combat-6/src/main/java/io/github/axolotlclient/mixin/EntityRendererMixin.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,18 +82,20 @@ public abstract class EntityRendererMixin<T extends Entity> {
8282
if (AxolotlClient.CONFIG.customBadge.get()) {
8383
Text badgeText = Util.formatFromCodes(AxolotlClient.CONFIG.badgeText.get());
8484
if (AxolotlClient.CONFIG.useShadows.get()) {
85-
MinecraftClient.getInstance().textRenderer.drawWithShadow(matrices, badgeText, x, 0, -1);
85+
MinecraftClient.getInstance().textRenderer.drawWithShadow(matrices, badgeText, x+6, 0, -1);
8686
} else {
87-
MinecraftClient.getInstance().textRenderer.draw(matrices, badgeText, x, 0, -1);
87+
MinecraftClient.getInstance().textRenderer.draw(matrices, badgeText, x+6, 0, -1);
8888
}
89-
} else
89+
} else {
9090
DrawableHelper.drawTexture(matrices, x, 0, 0, 0, 8, 8, 8, 8);
91+
}
92+
RenderSystem.disableDepthTest();
9193
}
9294
}
9395
}
9496
}
9597

96-
@ModifyArg(method = "renderLabelIfPresent", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/font/TextRenderer;draw(Lnet/minecraft/text/Text;FFIZLnet/minecraft/util/math/Matrix4f;Lnet/minecraft/client/render/VertexConsumerProvider;ZII)I"), index = 8)
98+
@ModifyArg(method = "renderLabelIfPresent", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/font/TextRenderer;draw(Lnet/minecraft/text/Text;FFIZLnet/minecraft/util/math/Matrix4f;Lnet/minecraft/client/render/VertexConsumerProvider;ZII)I", ordinal = 0), index = 8)
9799
public int axolotlclient$bgColor(int color) {
98100
if (AxolotlClient.CONFIG.nametagBackground.get()) {
99101
return color;

1.16_combat-6/src/main/java/io/github/axolotlclient/mixin/TitleScreenMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ protected TitleScreenMixin() {
8686
buttons.add(addButton(new ButtonWidget(10, shortcutButtonY+25, 50, 20, new TranslatableText("api.chats"),
8787
w -> client.openScreen(new ChatListScreen(this)))));
8888
});
89-
if (API.getInstance().isAuthenticated()) {
89+
if (API.getInstance().isSocketConnected()) {
9090
addApiButtons.run();
9191
} else {
9292
API.addStartupListener(addApiButtons, API.ListenerType.ONCE);

1.20/src/main/java/io/github/axolotlclient/mixin/EntityRendererMixin.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,11 +85,11 @@ public abstract class EntityRendererMixin<T extends Entity> {
8585
if (AxolotlClient.CONFIG.useShadows.get()) {
8686
matrices.push();
8787
matrices.translate(0, 0, 0.1f);
88-
MinecraftClient.getInstance().textRenderer.draw(badgeText, x, 0, -1, true,
88+
MinecraftClient.getInstance().textRenderer.draw(badgeText, x+6, 0, -1, true,
8989
matrices.peek().getModel(), vertexConsumers, TextRenderer.TextLayerType.NORMAL, 0, light);
9090
matrices.pop();
9191
}
92-
MinecraftClient.getInstance().textRenderer.draw(badgeText, x, 0, -1, false,
92+
MinecraftClient.getInstance().textRenderer.draw(badgeText, x+6, 0, -1, false,
9393
matrices.peek().getModel(), vertexConsumers, TextRenderer.TextLayerType.NORMAL, 0, light);
9494
} else {
9595
RenderSystem.setShader(GameRenderer::getPositionTexShader);
@@ -104,6 +104,7 @@ public abstract class EntityRendererMixin<T extends Entity> {
104104
builder.vertex(matrix4f, x + 8, 0, 0).uv(1, 0).next();
105105
BufferRenderer.drawWithShader(builder.end());
106106
}
107+
RenderSystem.disableDepthTest();
107108
}
108109
}
109110
}

1.20/src/main/java/io/github/axolotlclient/mixin/TitleScreenMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ protected TitleScreenMixin() {
9595
buttons.add(addDrawableChild(ButtonWidget.builder(Text.translatable("api.chats"),
9696
w -> client.setScreen(new ChatListScreen(this))).positionAndSize(10, shortcutButtonY+25, 50, 20).build()));
9797
});
98-
if (API.getInstance().isAuthenticated()) {
98+
if (API.getInstance().isSocketConnected()) {
9999
addApiButtons.run();
100100
} else {
101101
API.addStartupListener(addApiButtons, API.ListenerType.ONCE);

1.21.4/src/main/java/io/github/axolotlclient/mixin/EntityRendererMixin.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,17 +58,17 @@ public abstract class EntityRendererMixin<T extends Entity, S extends EntityRend
5858
@Inject(method = "renderNameTag", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/Font;drawInBatch(Lnet/minecraft/network/chat/Component;FFIZLorg/joml/Matrix4f;Lnet/minecraft/client/renderer/MultiBufferSource;Lnet/minecraft/client/gui/Font$DisplayMode;II)I", ordinal = 0))
5959
public void axolotlclient$addBadges(S entityRenderState, Component text, PoseStack matrices, MultiBufferSource vertexConsumers, int light, CallbackInfo ci) {
6060
if (entityRenderState instanceof PlayerRenderState state && text.equals(entityRenderState.nameTag)) {
61-
if (!state.isCrouching) {
61+
if (!state.isDiscrete) {
6262
if (AxolotlClient.CONFIG.showBadges.get()) {
63+
RenderSystem.enableDepthTest();
6364
Player entity = (Player) Minecraft.getInstance().level.getEntity(state.id);
6465
if (entity != null && UserRequest.getOnline(entity.getStringUUID())) {
65-
RenderSystem.enableDepthTest();
6666
assert Minecraft.getInstance().player != null;
6767
int x = -(Minecraft.getInstance().font.width(entity == Minecraft.getInstance().player ? (NickHider.getInstance().hideOwnName.get() ? NickHider.getInstance().hiddenNameSelf.get() : PlayerTeam.formatNameForTeam(entity.getTeam(), entity.getName()).getString()) : (NickHider.getInstance().hideOtherNames.get() ? NickHider.getInstance().hiddenNameOthers.get() : PlayerTeam.formatNameForTeam(entity.getTeam(), entity.getName()).getString())) / 2 + (AxolotlClient.CONFIG.customBadge.get() ? Minecraft.getInstance().font.width(" " + ChatFormatting.stripFormatting(AxolotlClient.CONFIG.badgeText.get())) : 10));
6868

6969
if (AxolotlClient.CONFIG.customBadge.get()) {
7070
Component badgeText = Util.formatFromCodes(AxolotlClient.CONFIG.badgeText.get());
71-
Minecraft.getInstance().font.drawInBatch(badgeText, x, 0, -1, AxolotlClient.CONFIG.useShadows.get(), matrices.last().pose(), vertexConsumers, Font.DisplayMode.NORMAL, 0, 15728880);
71+
Minecraft.getInstance().font.drawInBatch(badgeText, x+6, 0, -1, AxolotlClient.CONFIG.useShadows.get(), matrices.last().pose(), vertexConsumers, Font.DisplayMode.NORMAL, 0, 15728880);
7272
} else {
7373
var type = RenderType.guiTextured(AxolotlClient.badgeIcon);
7474
var builder = Minecraft.getInstance().renderBuffers().bufferSource().getBuffer(type);
@@ -80,6 +80,7 @@ public abstract class EntityRendererMixin<T extends Entity, S extends EntityRend
8080
Minecraft.getInstance().renderBuffers().bufferSource().endBatch();
8181
}
8282
}
83+
RenderSystem.disableDepthTest();
8384
}
8485
}
8586
}

1.21.4/src/main/java/io/github/axolotlclient/mixin/TitleScreenMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ protected TitleScreenMixin() {
9898
buttons.add(addRenderableWidget(Button.builder(Component.translatable("api.chats"),
9999
w -> minecraft.setScreen(new ChatListScreen(this))).bounds(10, shortcutButtonY+25, 50, 20).build()));
100100
});
101-
if (API.getInstance().isAuthenticated()) {
101+
if (API.getInstance().isSocketConnected()) {
102102
addApiButtons.run();
103103
} else {
104104
API.addStartupListener(addApiButtons, API.ListenerType.ONCE);

1.21/src/main/java/io/github/axolotlclient/mixin/EntityRendererMixin.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ public abstract class EntityRendererMixin<T extends Entity> {
8080

8181
if (AxolotlClient.CONFIG.customBadge.get()) {
8282
Text badgeText = Util.formatFromCodes(AxolotlClient.CONFIG.badgeText.get());
83-
MinecraftClient.getInstance().textRenderer.draw(badgeText, x, 0, -1,
83+
MinecraftClient.getInstance().textRenderer.draw(badgeText, x+6, 0, -1,
8484
AxolotlClient.CONFIG.useShadows.get(),
8585
matrices.peek().getModel(), vertexConsumers,
8686
TextRenderer.TextLayerType.NORMAL, 0, 15728880
@@ -100,6 +100,7 @@ public abstract class EntityRendererMixin<T extends Entity> {
100100
BufferRenderer.drawWithShader(builder.endOrThrow());
101101
matrices.pop();
102102
}
103+
RenderSystem.disableDepthTest();
103104
}
104105
}
105106
}

1.21/src/main/java/io/github/axolotlclient/mixin/TitleScreenMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ protected TitleScreenMixin() {
9595
buttons.add(addDrawableSelectableElement(ButtonWidget.builder(Text.translatable("api.chats"),
9696
w -> client.setScreen(new ChatListScreen(this))).positionAndSize(10, shortcutButtonY+25, 50, 20).build()));
9797
});
98-
if (API.getInstance().isAuthenticated()) {
98+
if (API.getInstance().isSocketConnected()) {
9999
addApiButtons.run();
100100
} else {
101101
API.addStartupListener(addApiButtons, API.ListenerType.ONCE);

1.8.9/src/main/java/io/github/axolotlclient/mixin/EntityRendererMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public abstract class EntityRendererMixin<T extends Entity> {
6363
}
6464
}
6565

66-
@Inject(method = "renderNameTag(Lnet/minecraft/entity/Entity;Ljava/lang/String;DDDI)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/TextRenderer;draw(Ljava/lang/String;III)I"))
66+
@Inject(method = "renderNameTag(Lnet/minecraft/entity/Entity;Ljava/lang/String;DDDI)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/TextRenderer;draw(Ljava/lang/String;III)I", ordinal = 0))
6767
public void axolotlclient$addBadges(T entity, String string, double d, double e, double f, int i, CallbackInfo ci) {
6868
if (entity instanceof ClientPlayerEntity && string.equals(entity.getDisplayName().getFormattedString()))
6969
BadgeRenderer.renderNametagBadge(entity);

1.8.9/src/main/java/io/github/axolotlclient/mixin/TitleScreenMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ public abstract class TitleScreenMixin extends Screen {
8181
buttons.add(new ButtonWidget(142, 10, y, 50, 20, I18n.translate("api.friends")));
8282
buttons.add(new ButtonWidget(42, 10, y + 25, 50, 20, I18n.translate("api.chats")));
8383
});
84-
if (API.getInstance().isAuthenticated()) {
84+
if (API.getInstance().isSocketConnected()) {
8585
addApiButtons.run();
8686
} else {
8787
API.addStartupListener(addApiButtons, API.ListenerType.ONCE);

0 commit comments

Comments
 (0)