Fork of Poseidon providing Bukkit #1060 to older Beta versions (b1.0-b1.7.3)
at develop 41 lines 1.5 kB view raw
1package org.bukkit.craftbukkit.inventory; 2 3import net.minecraft.server.CraftingManager; 4import org.bukkit.inventory.ItemStack; 5import org.bukkit.inventory.ShapelessRecipe; 6import org.bukkit.material.MaterialData; 7 8import java.util.ArrayList; 9 10public class CraftShapelessRecipe extends ShapelessRecipe implements CraftRecipe { 11 public CraftShapelessRecipe(ItemStack result) { 12 super(result); 13 } 14 15 public static CraftShapelessRecipe fromBukkitRecipe(ShapelessRecipe recipe) { 16 if (recipe instanceof CraftShapelessRecipe) { 17 return (CraftShapelessRecipe) recipe; 18 } 19 CraftShapelessRecipe ret = new CraftShapelessRecipe(recipe.getResult()); 20 for (MaterialData ingred : recipe.getIngredientList()) { 21 ret.addIngredient(ingred); 22 } 23 return ret; 24 } 25 26 public void addToCraftingManager() { 27 ArrayList<MaterialData> ingred = this.getIngredientList(); 28 Object[] data = new Object[ingred.size()]; 29 int i = 0; 30 for (MaterialData mdata : ingred) { 31 int id = mdata.getItemTypeId(); 32 byte dmg = mdata.getData(); 33 data[i] = new net.minecraft.server.ItemStack(id, 1, dmg); 34 i++; 35 } 36 int id = this.getResult().getTypeId(); 37 int amount = this.getResult().getAmount(); 38 short durability = this.getResult().getDurability(); 39 CraftingManager.getInstance().registerShapelessRecipe(new net.minecraft.server.ItemStack(id, amount, durability), data); 40 } 41}