From 83aa84ca3bd9bb04550683452a87fbd480569472 Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Sat, 6 Feb 2021 00:58:29 +0100 Subject: [PATCH] Some bug fixes --- .../machines/auto_crafters/EnhancedRecipe.java | 14 ++++++++++++-- .../machines/auto_crafters/VanillaAutoCrafter.java | 10 +++++++--- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/machines/auto_crafters/EnhancedRecipe.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/machines/auto_crafters/EnhancedRecipe.java index 1f22042d4..b02a03296 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/machines/auto_crafters/EnhancedRecipe.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/machines/auto_crafters/EnhancedRecipe.java @@ -1,6 +1,9 @@ package io.github.thebusybiscuit.slimefun4.implementation.items.electric.machines.auto_crafters; import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.function.Predicate; import javax.annotation.Nonnull; @@ -29,13 +32,20 @@ class EnhancedRecipe extends AbstractRecipe { private final SlimefunItem item; EnhancedRecipe(@Nonnull SlimefunItem item) { - super(new ArrayList<>(), item.getRecipeOutput()); + super(getInputs(item), item.getRecipeOutput()); this.item = item; + } + + @Nonnull + private static Collection> getInputs(@Nonnull SlimefunItem item) { + List> predicates = new ArrayList<>(); for (int i = 0; i < 9; i++) { ItemStack ingredient = item.getRecipe()[i]; - getInputs().add(stack -> SlimefunUtils.isItemSimilar(stack, ingredient, true)); + predicates.add(stack -> SlimefunUtils.isItemSimilar(stack, ingredient, true)); } + + return predicates; } @Override diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/machines/auto_crafters/VanillaAutoCrafter.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/machines/auto_crafters/VanillaAutoCrafter.java index ed7ebe0c2..8bfc2faea 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/machines/auto_crafters/VanillaAutoCrafter.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/machines/auto_crafters/VanillaAutoCrafter.java @@ -35,7 +35,6 @@ import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; -import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu; public class VanillaAutoCrafter extends AbstractAutoCrafter { @@ -102,13 +101,18 @@ public class VanillaAutoCrafter extends AbstractAutoCrafter { ChestMenuUtils.drawBackground(menu, background); ChestMenuUtils.drawBackground(menu, 45, 47, 48, 50, 51, 53); - // 46 // 52 + AsyncRecipeChoiceTask task = new AsyncRecipeChoiceTask(); + offerRecipe(p, b, recipes, 0, menu, task); + + menu.open(p); + task.start(menu.toInventory()); + p.playSound(p.getLocation(), Sound.UI_BUTTON_CLICK, 1, 1); } } @ParametersAreNonnullByDefault - private void offerRecipe(Player p, Block b, List recipes, int index, BlockMenu menu, AsyncRecipeChoiceTask task) { + private void offerRecipe(Player p, Block b, List recipes, int index, ChestMenu menu, AsyncRecipeChoiceTask task) { Validate.isTrue(index >= 0 && index < recipes.size(), "page must be between 0 and " + (recipes.size() - 1)); menu.addItem(46, ChestMenuUtils.getPreviousButton(p, index + 1, recipes.size()));