From 029b16d5aece041c94efa9067fe22301c6c66b47 Mon Sep 17 00:00:00 2001 From: Alex 'mcmonkey' Goodwin Date: Sat, 30 May 2020 09:28:29 -0700 Subject: [PATCH] add tag inventory.craftable_quantity --- .../denizen/objects/InventoryTag.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/plugin/src/main/java/com/denizenscript/denizen/objects/InventoryTag.java b/plugin/src/main/java/com/denizenscript/denizen/objects/InventoryTag.java index 2f6fcbdb0d..80d97a0c36 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/objects/InventoryTag.java +++ b/plugin/src/main/java/com/denizenscript/denizen/objects/InventoryTag.java @@ -2332,6 +2332,26 @@ else if (slot > object.getInventory().getSize() - 1) { return new ElementTag(((Keyed) recipe).getKey().toString()); }); + // <--[tag] + // @attribute + // @returns ElementTag(Number) + // @description + // Returns the quantity of items that would be received if this crafting inventory were fully crafted (eg via a shift click). + // --> + registerTag("craftable_quantity", (attribute, object) -> { + Recipe recipe; + if ((object.inventory instanceof CraftingInventory)) { + recipe = ((CraftingInventory) object.inventory).getRecipe(); + } + else { + return null; + } + if (recipe == null) { + return null; + } + return new ElementTag(RecipeHelper.getMaximumOutputQuantity(recipe, (CraftingInventory) object.inventory) * recipe.getResult().getAmount()); + }); + // <--[tag] // @attribute // @returns ItemTag