From 21a442cb0d38fbd7ad617710eec5e101f6c46244 Mon Sep 17 00:00:00 2001 From: Russell Harland Date: Fri, 3 Apr 2026 11:53:48 +1100 Subject: [PATCH] Fix NullPointerException in JEI plugin when connected to remote server ServerLifecycleHooks.getCurrentServer() returns null on the client when connected to a dedicated server. The JEI plugin's registerRecipes() method called registryAccess() on the null server reference, causing a NullPointerException during recipe registration. Added a null check to skip template holder registration when no integrated server is available. The base machine and shrinking device info entries still register correctly. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../machines/compat/jei/CompactMachinesJeiPlugin.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/neoforge-main/src/main/java/dev/compactmods/machines/compat/jei/CompactMachinesJeiPlugin.java b/neoforge-main/src/main/java/dev/compactmods/machines/compat/jei/CompactMachinesJeiPlugin.java index 3ad1d2f7..f604ccbc 100644 --- a/neoforge-main/src/main/java/dev/compactmods/machines/compat/jei/CompactMachinesJeiPlugin.java +++ b/neoforge-main/src/main/java/dev/compactmods/machines/compat/jei/CompactMachinesJeiPlugin.java @@ -43,10 +43,13 @@ public void registerRecipes(IRecipeRegistration registration) { Component.translatable("jei.compactmachines.machines")); // Add all known template JEI infos - RoomTemplateHelper.getTemplateHolders(ServerLifecycleHooks.getCurrentServer().registryAccess()) - .map(Machines.Items::forNewRoom) - .forEach(t -> registration.addIngredientInfo(t, VanillaTypes.ITEM_STACK, - Component.translatable("jei.compactmachines.machines"))); + var server = ServerLifecycleHooks.getCurrentServer(); + if (server != null) { + RoomTemplateHelper.getTemplateHolders(server.registryAccess()) + .map(Machines.Items::forNewRoom) + .forEach(t -> registration.addIngredientInfo(t, VanillaTypes.ITEM_STACK, + Component.translatable("jei.compactmachines.machines"))); + } registration.addIngredientInfo( new ItemStack(Shrinking.PERSONAL_SHRINKING_DEVICE.get()),