@@ -83,13 +83,24 @@ public SmartFactory(ItemGroup itemGroup, SlimefunItemStack item, RecipeType reci
8383 super (itemGroup , item , recipeType , recipe );
8484
8585 for (SlimefunItemStack sfItem : ACCEPTED_ITEMS ) {
86+ SlimefunItem resolved = sfItem .getItem ();
87+ if (resolved == null ) {
88+ // Not registered on this build (e.g. removed/renamed item); skip instead of crashing
89+ continue ;
90+ }
91+
8692 List <ItemStack []> variationList = new ArrayList <>();
87- variationList .add (collectRawRecipe (sfItem . getItem () ));
88- ITEM_RECIPES .put (sfItem . getItem () , variationList );
93+ variationList .add (collectRawRecipe (resolved ));
94+ ITEM_RECIPES .put (resolved , variationList );
8995 }
9096
9197 for (SlimefunItemStack alternative : MAGMA_ALTERNATIVES ) {
92- ItemStack [] original = ITEM_RECIPES .get (alternative .getItem ()).get (0 );
98+ SlimefunItem resolvedAlternative = alternative .getItem ();
99+ if (resolvedAlternative == null || !ITEM_RECIPES .containsKey (resolvedAlternative )) {
100+ continue ;
101+ }
102+
103+ ItemStack [] original = ITEM_RECIPES .get (resolvedAlternative ).get (0 );
93104 ItemStack [] variation = new ItemStack [original .length ];
94105 for (int i = 0 ; i < original .length ; i ++) {
95106 if (original [i ].getType () == MaterialCompat .safe (XMaterial .NETHERRACK ) && original [i ].getAmount () % 16 == 0 ) {
@@ -99,7 +110,7 @@ public SmartFactory(ItemGroup itemGroup, SlimefunItemStack item, RecipeType reci
99110 }
100111 }
101112
102- List <ItemStack []> variations = ITEM_RECIPES .get (alternative . getItem () );
113+ List <ItemStack []> variations = ITEM_RECIPES .get (resolvedAlternative );
103114 variations .add (variation );
104115 }
105116
@@ -341,6 +352,10 @@ private Pair<HashMap<Material, Integer>, HashMap<SlimefunItem, Integer>> reduceR
341352 HashMap <Material , Integer > rawVanilla = new HashMap <>();
342353 HashMap <SlimefunItem , Integer > rawSlimefun = new HashMap <>();
343354
355+ if (key == null ) {
356+ return new Pair <>(rawVanilla , rawSlimefun );
357+ }
358+
344359 ItemStack [] recipe = key .getRecipe ();
345360 if (key == SlimefunItems .COPPER_WIRE .getItem ()) {
346361 recipe = new ItemStack [] {SlimefunItems .COPPER_DUST .item ()};
0 commit comments