From d9ccfd855cc8ba554d3a5f6326fa51dd6c7768dc Mon Sep 17 00:00:00 2001 From: zv Date: Fri, 13 Nov 2026 16:54:03 +0100 Subject: [PATCH] Fix title screen credits before Meteor initialization Minecraft 26.3 renders a frame before its constructor returns, while Meteor initializes systems at constructor TAIL. Defer credits rendering and clicks until Config is registered so normal initialization can complete. Validated in Prism: main menu, non-null Config, Right Shift GUI, and successful Meteor+ and Baritone initialization. --- .../meteorclient/mixin/TitleScreenMixin.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/TitleScreenMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/TitleScreenMixin.java index cd9c564b464..37148edd843 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/TitleScreenMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/TitleScreenMixin.java @@ -27,12 +27,17 @@ public TitleScreenMixin(Component title) { @Inject(method = "extractRenderState", at = @At("TAIL")) private void onExtractRenderState(GuiGraphicsExtractor graphics, int mouseX, int mouseY, float a, CallbackInfo ci) { - if (Config.get().titleScreenCredits.get()) TitleScreenCredits.render(graphics); + // Minecraft 26.3 renders startup frames before Minecraft. returns. + // Meteor initializes its systems at constructor TAIL; credits become + // available on the first frame after that normal initialization completes. + Config config = Config.get(); + if (config != null && config.titleScreenCredits.get()) TitleScreenCredits.render(graphics); } @Inject(method = "mouseClicked", at = @At("HEAD"), cancellable = true) private void onMouseClicked(MouseButtonEvent event, boolean doubleClick, CallbackInfoReturnable cir) { - if (Config.get().titleScreenCredits.get() && event.button() == InputConstants.MOUSE_BUTTON_LEFT) { + Config config = Config.get(); + if (config != null && config.titleScreenCredits.get() && event.button() == InputConstants.MOUSE_BUTTON_LEFT) { if (TitleScreenCredits.onClicked(event.x(), event.y())) cir.setReturnValue(true); } }