From c0d33d060b3d5317bf4af9f642db923fba92cc36 Mon Sep 17 00:00:00 2001 From: umutcagand <237324081+c8dhjp4tyv-bit@users.noreply.github.com> Date: Sun, 13 Sep 2026 07:50:10 +0300 Subject: [PATCH] Fixed nametag text rendering off-screen with the custom font disabled NametagUtils.begin(Vector3d) only pushes onto the RenderSystem model-view stack, which is what CustomTextRenderer draws through. VanillaTextRenderer draws through graphics.pose() instead, so every call site using the graphics-less overload left that stack untransformed and the text was drawn at its raw local offsets near the screen origin instead of at the entity. Switch the remaining call sites to the begin(Vector3d, GuiGraphicsExtractor) and end(GuiGraphicsExtractor) overloads, the same way the player nametag and WaypointsModule already do. Every one of them already had the graphics instance in scope. --- .../systems/modules/combat/CrystalAura.java | 4 ++-- .../systems/modules/misc/Notebot.java | 4 ++-- .../systems/modules/render/EntityOwner.java | 4 ++-- .../systems/modules/render/LogoutSpots.java | 4 ++-- .../systems/modules/render/Nametags.java | 16 ++++++++-------- .../systems/modules/world/HighwayBuilder.java | 4 ++-- 6 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/CrystalAura.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/CrystalAura.java index b4070ed90ad..c7a486bc269 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/CrystalAura.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/CrystalAura.java @@ -1326,7 +1326,7 @@ private void onRender2D(Render2DEvent event) { } else vec3.set(placeRenderPos.getX() + 0.5, placeRenderPos.getY() + 0.5, placeRenderPos.getZ() + 0.5); if (NametagUtils.to2D(vec3, damageTextScale.get())) { - NametagUtils.begin(vec3); + NametagUtils.begin(vec3, event.graphics); TextRenderer.get().begin(event.graphics, 1, false, true); String text = String.format("%.1f", renderDamage); @@ -1334,7 +1334,7 @@ private void onRender2D(Render2DEvent event) { TextRenderer.get().render(text, -w, 0, damageColor.get(), true); TextRenderer.get().end(); - NametagUtils.end(); + NametagUtils.end(event.graphics); } } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/Notebot.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/Notebot.java index 77111133509..d26a52c0d4a 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/Notebot.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/Notebot.java @@ -388,7 +388,7 @@ private void onRender2D(Render2DEvent event) { TextRenderer text = TextRenderer.get(); - NametagUtils.begin(pos); + NametagUtils.begin(pos, event.graphics); text.beginBig(event.graphics); double xScreen = text.getWidth(levelText) / 2.0; @@ -402,7 +402,7 @@ private void onRender2D(Render2DEvent event) { } text.end(); - NametagUtils.end(); + NametagUtils.end(event.graphics); } } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/EntityOwner.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/EntityOwner.java index dcb696e21b3..08131e75f02 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/EntityOwner.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/EntityOwner.java @@ -86,7 +86,7 @@ private void onRender2D(Render2DEvent event) { private void renderNametag(GuiGraphicsExtractor graphics, String name) { TextRenderer text = TextRenderer.get(); - NametagUtils.begin(pos); + NametagUtils.begin(pos, graphics); text.beginBig(graphics); double w = text.getWidth(name); @@ -101,7 +101,7 @@ private void renderNametag(GuiGraphicsExtractor graphics, String name) { text.render(name, x, y, TEXT); text.end(); - NametagUtils.end(); + NametagUtils.end(graphics); } private String getOwnerName(EntityReference owner) { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/LogoutSpots.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/LogoutSpots.java index 96bf968d568..82726c99bc1 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/LogoutSpots.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/LogoutSpots.java @@ -242,7 +242,7 @@ public void render2D(GuiGraphicsExtractor graphics) { if (!NametagUtils.to2D(pos, scale)) return; - NametagUtils.begin(pos); + NametagUtils.begin(pos, graphics); // Compute health things double healthPercentage = (double) health / maxHealth; @@ -265,7 +265,7 @@ public void render2D(GuiGraphicsExtractor graphics) { text.render(healthText, hX, 0, healthColor); text.end(); - NametagUtils.end(); + NametagUtils.end(graphics); } } } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Nametags.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Nametags.java index 25bfb2bae57..2c9efe93fc1 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Nametags.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Nametags.java @@ -598,7 +598,7 @@ private void renderNametagItem(GuiGraphicsExtractor graphics, ItemStack stack, b if (stack.isEmpty()) return; TextRenderer text = TextRenderer.get(); - NametagUtils.begin(pos); + NametagUtils.begin(pos, graphics); String name = Names.get(stack); String count = " x" + stack.getCount(); @@ -621,12 +621,12 @@ private void renderNametagItem(GuiGraphicsExtractor graphics, ItemStack stack, b if (itemCount.get()) text.render(count, hX, hY, GOLD, shadow); text.end(); - NametagUtils.end(); + NametagUtils.end(graphics); } private void renderGenericLivingNametag(GuiGraphicsExtractor graphics, LivingEntity entity, boolean shadow) { TextRenderer text = TextRenderer.get(); - NametagUtils.begin(pos); + NametagUtils.begin(pos, graphics); //Name String nameText = entity.getType().getDescription().getString(); @@ -661,12 +661,12 @@ private void renderGenericLivingNametag(GuiGraphicsExtractor graphics, LivingEnt text.render(healthText, hX, hY, healthColor, shadow); text.end(); - NametagUtils.end(); + NametagUtils.end(graphics); } private void renderGenericNametag(GuiGraphicsExtractor graphics, Entity entity, boolean shadow) { TextRenderer text = TextRenderer.get(); - NametagUtils.begin(pos); + NametagUtils.begin(pos, graphics); //Name String nameText = entity.getType().getDescription().getString(); @@ -684,12 +684,12 @@ private void renderGenericNametag(GuiGraphicsExtractor graphics, Entity entity, text.render(nameText, hX, hY, nameColor.get(), shadow); text.end(); - NametagUtils.end(); + NametagUtils.end(graphics); } private void renderTntNametag(GuiGraphicsExtractor graphics, String fuseText, boolean shadow) { TextRenderer text = TextRenderer.get(); - NametagUtils.begin(pos); + NametagUtils.begin(pos, graphics); double width = text.getWidth(fuseText, shadow); double heightDown = text.getHeight(shadow); @@ -705,7 +705,7 @@ private void renderTntNametag(GuiGraphicsExtractor graphics, String fuseText, bo text.render(fuseText, hX, hY, nameColor.get(), shadow); text.end(); - NametagUtils.end(); + NametagUtils.end(graphics); } private ItemStack getItem(Player entity, int index) { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/HighwayBuilder.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/HighwayBuilder.java index 5207e34d1df..5f09fe4ff07 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/HighwayBuilder.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/HighwayBuilder.java @@ -2871,7 +2871,7 @@ public void renderLetter(GuiGraphicsExtractor graphics) { vec3.set(blockPos.getX() + 0.5, blockPos.getY() + 0.5, blockPos.getZ() + 0.5); if (!NametagUtils.to2D(vec3, 2)) return; - NametagUtils.begin(vec3); + NametagUtils.begin(vec3, graphics); TextRenderer.get().begin(graphics, 1.0, false, true); String letter = packet ? "P" : "N"; @@ -2879,7 +2879,7 @@ public void renderLetter(GuiGraphicsExtractor graphics) { TextRenderer.get().render(letter, -w, 0.0, Color.WHITE, true); TextRenderer.get().end(); - NametagUtils.end(); + NametagUtils.end(graphics); } }