1
mirror of https://github.com/StarWishsama/Slimefun4.git synced 2024-09-19 19:25:48 +00:00

Merge pull request #3795 from JustAHuman-xD/fix/multiblock-shifting-recipes

This commit is contained in:
Sfiguz7 2023-06-30 21:17:00 +02:00 committed by GitHub
commit 1beeb8fd8e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -9,7 +9,10 @@ import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import com.google.common.base.Preconditions;
import org.apache.commons.lang.Validate;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.block.Block;
@ -105,11 +108,21 @@ public abstract class MultiBlockMachine extends SlimefunItem implements NotPlace
public void load() {
super.load();
for (ItemStack recipeItem : displayRecipes) {
SlimefunItem item = SlimefunItem.getByItem(recipeItem);
Preconditions.checkArgument(displayRecipes.size() % 2 == 0, "This MultiBlockMachine's display recipes were illegally modified!");
if (item == null || !item.isDisabled()) {
recipes.add(new ItemStack[] { recipeItem });
for (int i = 0; i < displayRecipes.size(); i += 2) {
ItemStack inputStack = displayRecipes.get(i);
ItemStack outputStack = null;
if (displayRecipes.size() >= i + 2) {
outputStack = displayRecipes.get(i + 1);
}
SlimefunItem inputItem = SlimefunItem.getByItem(inputStack);
SlimefunItem outputItem = SlimefunItem.getByItem(outputStack);
// If the input/output is not a Slimefun item or it's not disabled then it's valid.
if ((inputItem == null || !inputItem.isDisabled()) && (outputItem == null || !outputItem.isDisabled())) {
recipes.add(new ItemStack[] { inputStack });
recipes.add(new ItemStack[] { outputStack });
}
}
}