Skip to content

Commit bad4293

Browse files
committed
fix(compat): null-guard SmartFactory recipe reduction; bump core to gh-v5.2.4.6
1 parent 7a426a0 commit bad4293

2 files changed

Lines changed: 20 additions & 5 deletions

File tree

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ dependencies {
4444
githubImplementation("Slimefun5:SlimefunMetrics:v1.0.0")
4545
compileOnly("org.spigotmc:spigot-api:1.16.5-R0.1-SNAPSHOT")
4646
compileOnly("com.google.code.findbugs:jsr305:3.0.2")
47-
githubCompileOnly("Slimefun5:Slimefun5:gh-v5.2.4.5")
47+
githubCompileOnly("Slimefun5:Slimefun5:gh-v5.2.4.6")
4848
compileOnly("com.gmail.nossr50.mcMMO:mcMMO:2.1.149") {
4949
exclude(group = "org.jetbrains", module = "annotations")
5050
exclude(group = "com.sk89q.worldguard")

src/main/java/io/ncbpfluffybear/fluffymachines/machines/SmartFactory.java

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)