From 1b1366671e6f45557170a89dc98c068573f6803a Mon Sep 17 00:00:00 2001 From: thedarkcolour <30441001+thedarkcolour@users.noreply.github.com> Date: Mon, 13 Apr 2026 13:34:46 -0700 Subject: [PATCH] Fix recipe reload listener running before recipes are loaded Capture RecipeManager reference instead of the map at registration time, and declare a dependency on VanillaServerListeners.RECIPES so the listener is guaranteed to run after RecipeManager.apply() populates the map. Co-Authored-By: Claude Sonnet 4.6 --- .../java/thedarkcolour/exdeorum/event/EventHandler.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/thedarkcolour/exdeorum/event/EventHandler.java b/src/main/java/thedarkcolour/exdeorum/event/EventHandler.java index 6b667dfa..c5885643 100644 --- a/src/main/java/thedarkcolour/exdeorum/event/EventHandler.java +++ b/src/main/java/thedarkcolour/exdeorum/event/EventHandler.java @@ -58,6 +58,7 @@ import net.neoforged.neoforge.event.tick.ServerTickEvent; import net.neoforged.neoforge.fluids.FluidInteractionRegistry; import net.neoforged.neoforge.network.event.RegisterPayloadHandlersEvent; import net.minecraft.server.packs.resources.ResourceManagerReloadListener; +import net.neoforged.neoforge.resource.VanillaServerListeners; import thedarkcolour.exdeorum.ExDeorum; import thedarkcolour.exdeorum.blockentity.AbstractCrucibleBlockEntity; import thedarkcolour.exdeorum.blockentity.AbstractMachineBlockEntity; @@ -233,8 +234,10 @@ public final class EventHandler { } private static void addReloadListeners(AddServerReloadListenersEvent event) { - var recipeMap = event.getServerResources().getRecipeManager().recipeMap(); - event.addListener(ExDeorum.loc("recipes"), (ResourceManagerReloadListener) resourceManager -> RecipeUtil.reload(recipeMap)); + var recipeManager = event.getServerResources().getRecipeManager(); + var listenerId = ExDeorum.loc("recipes"); + event.addListener(listenerId, (ResourceManagerReloadListener) resourceManager -> RecipeUtil.reload(recipeManager.recipeMap())); + event.addDependency(listenerId, VanillaServerListeners.RECIPES); } private static void serverTick(ServerTickEvent.Post event) {