Fix shift-click crafting recipe with result greater than 1, fixes #1235

This commit is contained in:
PikaMug 2020-06-16 03:41:49 -04:00
parent f13e07f89b
commit 6e761857bc
2 changed files with 6 additions and 11 deletions

View File

@ -62,21 +62,16 @@ public class ItemListener implements Listener {
@SuppressWarnings("deprecation")
private ItemStack getCraftedItem(CraftItemEvent evt) {
if (evt.isShiftClick()) {
ItemStack result = evt.getRecipe().getResult();
int numberOfItems = result.getAmount();
int itemsChecked = 0;
ItemStack recipeResult = evt.getRecipe().getResult();
int resultAmt = recipeResult.getAmount(); // Bread = 1, Cookie = 8, etc.
int leastIngredient = 1;
for (ItemStack item : evt.getInventory().getMatrix()) {
if (item != null && !item.getType().equals(Material.AIR)) {
if (itemsChecked == 0) {
numberOfItems = item.getAmount();
} else {
numberOfItems = Math.min(numberOfItems, item.getAmount());
itemsChecked++;
leastIngredient = Math.min(leastIngredient * resultAmt, item.getAmount() * resultAmt);
}
}
}
return new ItemStack(result.getType(), numberOfItems, result.getDurability());
return new ItemStack(recipeResult.getType(), leastIngredient, recipeResult.getDurability());
}
return evt.getCurrentItem();
}