diff options
| author | shedaniel <daniel@shedaniel.me> | 2020-08-21 05:12:39 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2020-08-21 05:12:39 +0800 |
| commit | deb29135ec13b735f18695deb6ffccc49a74c9db (patch) | |
| tree | 9a20d82d39dfe530f17f7e1a5b795c4c462235a0 /src/main/java | |
| parent | 20b6866ada6cc4f798011e1ee6b962f00e663968 (diff) | |
| download | RoughlyEnoughItems-deb29135ec13b735f18695deb6ffccc49a74c9db.tar.gz RoughlyEnoughItems-deb29135ec13b735f18695deb6ffccc49a74c9db.tar.bz2 RoughlyEnoughItems-deb29135ec13b735f18695deb6ffccc49a74c9db.zip | |
Fix not being able to move items to grid in survival.
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/me/shedaniel/rei/server/InputSlotCrafter.java | 39 |
1 files changed, 19 insertions, 20 deletions
diff --git a/src/main/java/me/shedaniel/rei/server/InputSlotCrafter.java b/src/main/java/me/shedaniel/rei/server/InputSlotCrafter.java index 8d8eeb4cb..4447256e2 100644 --- a/src/main/java/me/shedaniel/rei/server/InputSlotCrafter.java +++ b/src/main/java/me/shedaniel/rei/server/InputSlotCrafter.java @@ -59,30 +59,29 @@ public class InputSlotCrafter<C extends Inventory> implements RecipeGridAligner< this.player = player; this.inventoryStacks = this.containerInfo.getInventoryStacks(this); this.gridStacks = this.containerInfo.getGridStacks(this); - if (player.isCreative()) { - player.skipPacketSlotUpdates = true; - // Return the already placed items on the grid + + player.skipPacketSlotUpdates = true; + // Return the already placed items on the grid + this.returnInputs(); + + RecipeFinder recipeFinder = new RecipeFinder(); + this.containerInfo.getRecipeFinderPopulator().populate(this).accept(recipeFinder); + DefaultedList<Ingredient> ingredients = DefaultedList.of(); + map.entrySet().stream().sorted(Comparator.comparingInt(Map.Entry::getKey)).forEach(entry -> { + ingredients.add(Ingredient.ofItems(entry.getValue().stream().map(ItemStack::getItem).toArray(Item[]::new))); + }); + + if (recipeFinder.findRecipe(ingredients, null)) { + this.fillInputSlots(recipeFinder, ingredients, hasShift); + } else { this.returnInputs(); - - RecipeFinder recipeFinder = new RecipeFinder(); - this.containerInfo.getRecipeFinderPopulator().populate(this).accept(recipeFinder); - DefaultedList<Ingredient> ingredients = DefaultedList.of(); - map.entrySet().stream().sorted(Comparator.comparingInt(Map.Entry::getKey)).forEach(entry -> { - ingredients.add(Ingredient.ofItems(entry.getValue().stream().map(ItemStack::getItem).toArray(Item[]::new))); - }); - - if (recipeFinder.findRecipe(ingredients, null)) { - this.fillInputSlots(recipeFinder, ingredients, hasShift); - } else { - this.returnInputs(); - player.skipPacketSlotUpdates = false; - this.containerInfo.markDirty(this); - throw new NotEnoughMaterialsException(); - } - player.skipPacketSlotUpdates = false; this.containerInfo.markDirty(this); + throw new NotEnoughMaterialsException(); } + + player.skipPacketSlotUpdates = false; + this.containerInfo.markDirty(this); } @Override |
