From c3428add0354d97091b3f3677cf905718b90de0b Mon Sep 17 00:00:00 2001 From: Dek Date: Sun, 30 Aug 2026 11:50:38 -0400 Subject: [PATCH] Fixed a failed font load leaving the text renderer destroyed --- .../meteorclient/renderer/Fonts.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/java/meteordevelopment/meteorclient/renderer/Fonts.java b/src/main/java/meteordevelopment/meteorclient/renderer/Fonts.java index f86ed326cf4..85e6d0d5ba8 100644 --- a/src/main/java/meteordevelopment/meteorclient/renderer/Fonts.java +++ b/src/main/java/meteordevelopment/meteorclient/renderer/Fonts.java @@ -59,14 +59,12 @@ public static void refresh() { } public static void load(FontFace fontFace) { - if (RENDERER != null) { - if (RENDERER.fontFace.equals(fontFace)) return; - else RENDERER.destroy(); - } + if (RENDERER != null && RENDERER.fontFace.equals(fontFace)) return; + + CustomTextRenderer renderer; try { - RENDERER = new CustomTextRenderer(fontFace); - MeteorClient.EVENT_BUS.post(CustomFontChangedEvent.get()); + renderer = new CustomTextRenderer(fontFace); } catch (Exception e) { if (fontFace.equals(DEFAULT_FONT)) { throw new RuntimeException("Failed to load default font: " + fontFace, e); @@ -74,8 +72,14 @@ public static void load(FontFace fontFace) { MeteorClient.LOG.error("Failed to load font: {}", fontFace, e); load(Fonts.DEFAULT_FONT); + return; } + if (RENDERER != null) RENDERER.destroy(); + RENDERER = renderer; + + MeteorClient.EVENT_BUS.post(CustomFontChangedEvent.get()); + if (mc.gui.screen() instanceof WidgetScreen widgetScreen && Config.get().customFont.get()) { widgetScreen.invalidate(); }