1
mirror of https://github.com/StarWishsama/Slimefun4.git synced 2024-09-20 03:35:51 +00:00

Some bug fixes

This commit is contained in:
TheBusyBiscuit 2021-02-06 00:58:29 +01:00
parent 057fad1f08
commit 83aa84ca3b
2 changed files with 19 additions and 5 deletions

View File

@ -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<Predicate<ItemStack>> getInputs(@Nonnull SlimefunItem item) {
List<Predicate<ItemStack>> 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

View File

@ -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<Recipe> recipes, int index, BlockMenu menu, AsyncRecipeChoiceTask task) {
private void offerRecipe(Player p, Block b, List<Recipe> 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()));