001    package org.bukkit.event.inventory;
002    
003    import org.bukkit.event.inventory.InventoryType.SlotType;
004    import org.bukkit.inventory.CraftingInventory;
005    import org.bukkit.inventory.InventoryView;
006    import org.bukkit.inventory.Recipe;
007    
008    /**
009     * Called when the recipe of an Item is completed inside a crafting matrix.
010     */
011    public class CraftItemEvent extends InventoryClickEvent {
012        private Recipe recipe;
013    
014        @Deprecated
015        public CraftItemEvent(Recipe recipe, InventoryView what, SlotType type, int slot, boolean right, boolean shift) {
016            this(recipe, what, type, slot, right ? (shift ? ClickType.SHIFT_RIGHT : ClickType.RIGHT) : (shift ? ClickType.SHIFT_LEFT : ClickType.LEFT), InventoryAction.PICKUP_ALL);
017        }
018    
019        public CraftItemEvent(Recipe recipe, InventoryView what, SlotType type, int slot, ClickType click, InventoryAction action) {
020            super(what, type, slot, click, action);
021            this.recipe = recipe;
022        }
023    
024        public CraftItemEvent(Recipe recipe, InventoryView what, SlotType type, int slot, ClickType click, InventoryAction action, int key) {
025            super(what, type, slot, click, action, key);
026            this.recipe = recipe;
027        }
028    
029        /**
030         * @return A copy of the current recipe on the crafting matrix.
031         */
032        public Recipe getRecipe() {
033            return recipe;
034        }
035    
036        @Override
037        public CraftingInventory getInventory() {
038            return (CraftingInventory) super.getInventory();
039        }
040    }