diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/Alloy.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/Alloy.java index b845edde4..d5f6bb15d 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/Alloy.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/Alloy.java @@ -3,6 +3,7 @@ package me.mrCookieSlime.Slimefun.Objects.SlimefunItem; import me.mrCookieSlime.Slimefun.Lists.Categories; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Objects.Category; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; import org.bukkit.inventory.ItemStack; @@ -33,7 +34,7 @@ public class Alloy extends SlimefunItem { * @param item the item corresponding to this Alloy * @param recipe the recipe to obtain this Alloy in the Smeltery */ - public Alloy(ItemStack item, ItemStack[] recipe) { + public Alloy(SlimefunItemStack item, ItemStack[] recipe) { super(Categories.RESOURCES, item, RecipeType.SMELTERY, recipe); } diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/DamagableChargableItem.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/DamagableChargableItem.java index 5281f4db8..03cca9ae4 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/DamagableChargableItem.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/DamagableChargableItem.java @@ -1,23 +1,34 @@ package me.mrCookieSlime.Slimefun.Objects.SlimefunItem; -import me.mrCookieSlime.Slimefun.Lists.RecipeType; -import me.mrCookieSlime.Slimefun.Objects.Category; - import org.bukkit.inventory.ItemStack; +import me.mrCookieSlime.Slimefun.Lists.RecipeType; +import me.mrCookieSlime.Slimefun.Objects.Category; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; + public class DamagableChargableItem extends SlimefunItem { - private String chargeType; + private final String chargeType; public DamagableChargableItem(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe, String chargeType) { super(category, item, id, recipeType, recipe); this.chargeType = chargeType; } + + public DamagableChargableItem(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe, String chargeType) { + super(category, item, recipeType, recipe); + this.chargeType = chargeType; + } public DamagableChargableItem(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe, String chargeType, String[] keys, Object[] values) { super(category, item, id, recipeType, recipe, keys, values); this.chargeType = chargeType; } + + public DamagableChargableItem(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe, String chargeType, String[] keys, Object[] values) { + super(category, item, recipeType, recipe, keys, values); + this.chargeType = chargeType; + } public String getChargeType() { return this.chargeType; diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/Jetpack.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/Jetpack.java index a0c2b1cfc..85681badb 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/Jetpack.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/Jetpack.java @@ -2,15 +2,16 @@ package me.mrCookieSlime.Slimefun.Objects.SlimefunItem; import me.mrCookieSlime.Slimefun.Lists.Categories; import me.mrCookieSlime.Slimefun.Lists.RecipeType; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; import org.bukkit.inventory.ItemStack; public class Jetpack extends DamagableChargableItem { - private double thrust; + private final double thrust; - public Jetpack(ItemStack item, String id, ItemStack[] recipe, double thrust) { - super(Categories.TECH, item, id, RecipeType.ENHANCED_CRAFTING_TABLE, recipe, "Jetpack"); + public Jetpack(SlimefunItemStack item, ItemStack[] recipe, double thrust) { + super(Categories.TECH, item, RecipeType.ENHANCED_CRAFTING_TABLE, recipe, "Jetpack"); this.thrust = thrust; } diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SimpleSlimefunItem.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SimpleSlimefunItem.java index ae17e4cae..81fa753a0 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SimpleSlimefunItem.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SimpleSlimefunItem.java @@ -5,6 +5,7 @@ import org.bukkit.inventory.ItemStack; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.handlers.ItemHandler; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public abstract class SimpleSlimefunItem extends SlimefunItem { @@ -12,15 +13,15 @@ public abstract class SimpleSlimefunItem extends Slimefun super(category, item, id, recipeType, recipe); } + public SimpleSlimefunItem(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) { + super(category, item, recipeType, recipe); + } + public SimpleSlimefunItem(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe, ItemStack recipeOutput) { super(category, item, id, recipeType, recipe, recipeOutput); } - public SimpleSlimefunItem(Category category, ItemStack item, RecipeType recipeType, ItemStack[] recipe) { - super(category, item, recipeType, recipe); - } - - public SimpleSlimefunItem(Category category, ItemStack item, RecipeType recipeType, ItemStack[] recipe, ItemStack recipeOutput) { + public SimpleSlimefunItem(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe, ItemStack recipeOutput) { super(category, item, recipeType, recipe, recipeOutput); } @@ -28,6 +29,10 @@ public abstract class SimpleSlimefunItem extends Slimefun super(category, item, id, recipeType, recipe, keys, values); } + public SimpleSlimefunItem(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe, String[] keys, Object[] values) { + super(category, item, recipeType, recipe, keys, values); + } + @Override public void preRegister() { addItemHandler(getItemHandler()); diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunArmorPiece.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunArmorPiece.java index 92924744f..397993821 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunArmorPiece.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunArmorPiece.java @@ -1,11 +1,12 @@ package me.mrCookieSlime.Slimefun.Objects.SlimefunItem; -import me.mrCookieSlime.Slimefun.Lists.RecipeType; -import me.mrCookieSlime.Slimefun.Objects.Category; - import org.bukkit.inventory.ItemStack; import org.bukkit.potion.PotionEffect; +import me.mrCookieSlime.Slimefun.Lists.RecipeType; +import me.mrCookieSlime.Slimefun.Objects.Category; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; + public class SlimefunArmorPiece extends SlimefunItem { private PotionEffect[] effects; @@ -14,12 +15,22 @@ public class SlimefunArmorPiece extends SlimefunItem { super(category, item, id, recipeType, recipe); this.effects = effects; } + + public SlimefunArmorPiece(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe, PotionEffect[] effects) { + super(category, item, recipeType, recipe); + this.effects = effects; + } public SlimefunArmorPiece(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe, PotionEffect[] effects, String[] keys, Object[] values) { super(category, item, id, recipeType, recipe, keys, values); this.effects = effects; } + public SlimefunArmorPiece(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe, PotionEffect[] effects, String[] keys, Object[] values) { + super(category, item, recipeType, recipe, keys, values); + this.effects = effects; + } + public PotionEffect[] getEffects() { return this.effects; } diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunGadget.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunGadget.java index 26da5ca11..c13705d70 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunGadget.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunGadget.java @@ -9,6 +9,7 @@ import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.RecipeDisplayItem; +@Deprecated public class SlimefunGadget extends SlimefunItem implements RecipeDisplayItem { private List recipes; diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.java index 29cc57522..eafd952df 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.java @@ -69,12 +69,10 @@ public class SlimefunItem { this.recipe = recipe; } - public SlimefunItem(Category category, ItemStack item, RecipeType recipeType, ItemStack[] recipe) { - if (!(item instanceof SlimefunItemStack)) throw new IllegalArgumentException("item must be of Type SlimefunItemStack!"); - + public SlimefunItem(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) { this.item = item; this.category = category; - this.id = ((SlimefunItemStack) item).getItemID(); + this.id = item.getItemID(); this.recipeType = recipeType; this.recipe = recipe; } @@ -88,12 +86,10 @@ public class SlimefunItem { this.recipeOutput = recipeOutput; } - public SlimefunItem(Category category, ItemStack item, RecipeType recipeType, ItemStack[] recipe, ItemStack recipeOutput) { - if (!(item instanceof SlimefunItemStack)) throw new IllegalArgumentException("item must be of Type SlimefunItemStack!"); - + public SlimefunItem(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe, ItemStack recipeOutput) { this.item = item; this.category = category; - this.id = ((SlimefunItemStack) item).getItemID(); + this.id = item.getItemID(); this.recipeType = recipeType; this.recipe = recipe; this.recipeOutput = recipeOutput; @@ -110,12 +106,10 @@ public class SlimefunItem { this.values = values; } - public SlimefunItem(Category category, ItemStack item, RecipeType recipeType, ItemStack[] recipe, String[] keys, Object[] values) { - if (!(item instanceof SlimefunItemStack)) throw new IllegalArgumentException("item must be of Type SlimefunItemStack!"); - + public SlimefunItem(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe, String[] keys, Object[] values) { this.item = item; this.category = category; - this.id = ((SlimefunItemStack) item).getItemID(); + this.id = item.getItemID(); this.recipeType = recipeType; this.recipe = recipe; this.keys = keys; diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/DietCookie.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/DietCookie.java index 506876115..85aa381dc 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/DietCookie.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/DietCookie.java @@ -10,10 +10,11 @@ import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem; import me.mrCookieSlime.Slimefun.Objects.handlers.ItemConsumptionHandler; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class DietCookie extends SimpleSlimefunItem { - public DietCookie(Category category, ItemStack item, RecipeType recipeType, ItemStack[] recipe) { + public DietCookie(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) { super(category, item, recipeType, recipe); } diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/EnderBackpack.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/EnderBackpack.java index 25668d0eb..2f33a489b 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/EnderBackpack.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/EnderBackpack.java @@ -9,10 +9,11 @@ import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem; import me.mrCookieSlime.Slimefun.Objects.handlers.ItemInteractionHandler; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class EnderBackpack extends SimpleSlimefunItem { - public EnderBackpack(Category category, ItemStack item, RecipeType recipeType, ItemStack[] recipe) { + public EnderBackpack(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) { super(category, item, recipeType, recipe); } diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/GoldPan.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/GoldPan.java index c341f2f71..c050d2fb9 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/GoldPan.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/GoldPan.java @@ -1,35 +1,43 @@ package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Random; import org.bukkit.Effect; import org.bukkit.Material; -import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction; -import me.mrCookieSlime.CSCoreLibPlugin.events.ItemUseEvent; import me.mrCookieSlime.Slimefun.SlimefunPlugin; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; import me.mrCookieSlime.Slimefun.Objects.Category; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunGadget; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.RecipeDisplayItem; import me.mrCookieSlime.Slimefun.Objects.handlers.ItemInteractionHandler; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; import me.mrCookieSlime.Slimefun.api.Slimefun; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; -public class GoldPan extends SlimefunGadget { +public class GoldPan extends SimpleSlimefunItem implements RecipeDisplayItem { - private Random random = new Random(); + private final Random random = new Random(); + private final List recipes; private int chanceSiftedOre; private int chanceFlint; private int chanceClay; - public GoldPan(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe, ItemStack[] machineRecipes, String[] keys, Object[] values) { - super(category, item, id, recipeType, recipe, machineRecipes, keys, values); + public GoldPan(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe, String[] keys, Object[] values) { + super(category, item, recipeType, recipe, keys, values); + + recipes = Arrays.asList( + new ItemStack(Material.GRAVEL), new ItemStack(Material.FLINT), + new ItemStack(Material.GRAVEL), new ItemStack(Material.CLAY_BALL), + new ItemStack(Material.GRAVEL), SlimefunItems.SIFTED_ORE + ); } @Override @@ -40,34 +48,33 @@ public class GoldPan extends SlimefunGadget { } @Override - public void register(boolean slimefun) { - addItemHandler(new ItemInteractionHandler() { + public ItemInteractionHandler getItemHandler() { + return (e, p, item) -> { + if (SlimefunManager.isItemSimiliar(item, SlimefunItems.GOLD_PAN, true)) { + if (e.getClickedBlock() != null && e.getClickedBlock().getType() == Material.GRAVEL && SlimefunPlugin.getProtectionManager().hasPermission(p, e.getClickedBlock().getLocation(), ProtectableAction.BREAK_BLOCK)) { + List drops = new ArrayList<>(); - @Override - public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) { - if (SlimefunManager.isItemSimiliar(item, SlimefunItems.GOLD_PAN, true)) { - if (e.getClickedBlock() != null && e.getClickedBlock().getType() == Material.GRAVEL && SlimefunPlugin.getProtectionManager().hasPermission(p, e.getClickedBlock().getLocation(), ProtectableAction.BREAK_BLOCK)) { - List drops = new ArrayList<>(); + if (random.nextInt(100) < chanceSiftedOre) drops.add(SlimefunItems.SIFTED_ORE); + else if (random.nextInt(100) < chanceClay) drops.add(new ItemStack(Material.CLAY_BALL)); + else if (random.nextInt(100) < chanceFlint) drops.add(new ItemStack(Material.FLINT)); - if (random.nextInt(100) < chanceSiftedOre) drops.add(SlimefunItems.SIFTED_ORE); - else if (random.nextInt(100) < chanceClay) drops.add(new ItemStack(Material.CLAY_BALL)); - else if (random.nextInt(100) < chanceFlint) drops.add(new ItemStack(Material.FLINT)); + e.getClickedBlock().getWorld().playEffect(e.getClickedBlock().getLocation(), Effect.STEP_SOUND, e.getClickedBlock().getType()); + e.getClickedBlock().setType(Material.AIR); - e.getClickedBlock().getWorld().playEffect(e.getClickedBlock().getLocation(), Effect.STEP_SOUND, e.getClickedBlock().getType()); - e.getClickedBlock().setType(Material.AIR); - - for (ItemStack drop: drops) { - e.getClickedBlock().getWorld().dropItemNaturally(e.getClickedBlock().getLocation(), drop); - } + for (ItemStack drop: drops) { + e.getClickedBlock().getWorld().dropItemNaturally(e.getClickedBlock().getLocation(), drop); } - e.setCancelled(true); - return true; } - else return false; + e.setCancelled(true); + return true; } - }); - - super.register(slimefun); + else return false; + }; + } + + @Override + public List getDisplayRecipes() { + return recipes; } } diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/GrapplingHook.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/GrapplingHook.java index 4db0d5357..58157de85 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/GrapplingHook.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/GrapplingHook.java @@ -20,14 +20,15 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem; import me.mrCookieSlime.Slimefun.Objects.handlers.ItemInteractionHandler; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; import me.mrCookieSlime.Slimefun.api.Slimefun; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; import me.mrCookieSlime.Slimefun.utils.Utilities; public class GrapplingHook extends SimpleSlimefunItem { private long despawnTicks; - public GrapplingHook(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe, String[] keys, Object[] values) { - super(category, item, id, recipeType, recipe, keys, values); + public GrapplingHook(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe, String[] keys, Object[] values) { + super(category, item, recipeType, recipe, keys, values); } @Override @@ -90,6 +91,6 @@ public class GrapplingHook extends SimpleSlimefunItem { @Override public void postRegister() { - despawnTicks = (int) Slimefun.getItemValue("GRAPPLING_HOOK", "despawn-seconds") * 20L; + despawnTicks = (int) Slimefun.getItemValue(getID(), "despawn-seconds") * 20L; } } diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/MagicSugar.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/MagicSugar.java index 416b8773a..584df8a4a 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/MagicSugar.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/MagicSugar.java @@ -14,11 +14,12 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem; import me.mrCookieSlime.Slimefun.Objects.handlers.ItemInteractionHandler; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; import me.mrCookieSlime.Slimefun.api.Slimefun; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class MagicSugar extends SimpleSlimefunItem { - public MagicSugar(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe, String[] keys, Object[] values) { - super(category, item, id, recipeType, recipe, keys, values); + public MagicSugar(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe, String[] keys, Object[] values) { + super(category, item, recipeType, recipe, keys, values); } @Override diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/MonsterJerky.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/MonsterJerky.java index f47f47739..bc74ac0c6 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/MonsterJerky.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/MonsterJerky.java @@ -10,11 +10,12 @@ import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem; import me.mrCookieSlime.Slimefun.Objects.handlers.ItemConsumptionHandler; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class MonsterJerky extends SimpleSlimefunItem { - public MonsterJerky(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe) { - super(category, item, id, recipeType, recipe); + public MonsterJerky(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) { + super(category, item, recipeType, recipe); } @Override diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/PortableCrafter.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/PortableCrafter.java index 09f329072..3e4a6dc6a 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/PortableCrafter.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/PortableCrafter.java @@ -9,10 +9,11 @@ import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem; import me.mrCookieSlime.Slimefun.Objects.handlers.ItemInteractionHandler; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class PortableCrafter extends SimpleSlimefunItem { - public PortableCrafter(Category category, ItemStack item, RecipeType recipeType, ItemStack[] recipe) { + public PortableCrafter(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) { super(category, item, recipeType, recipe); } diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/PortableDustbin.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/PortableDustbin.java index a6544b3c6..94cb6efa6 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/PortableDustbin.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/PortableDustbin.java @@ -11,10 +11,11 @@ import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem; import me.mrCookieSlime.Slimefun.Objects.handlers.ItemInteractionHandler; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class PortableDustbin extends SimpleSlimefunItem { - public PortableDustbin(Category category, ItemStack item, RecipeType recipeType, ItemStack[] recipe) { + public PortableDustbin(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) { super(category, item, recipeType, recipe); } diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/SwordOfBeheading.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/SwordOfBeheading.java index dc0d00cf7..14a7f8edc 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/SwordOfBeheading.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/SwordOfBeheading.java @@ -18,6 +18,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem; import me.mrCookieSlime.Slimefun.Objects.handlers.EntityKillHandler; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; import me.mrCookieSlime.Slimefun.api.Slimefun; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class SwordOfBeheading extends SimpleSlimefunItem { @@ -29,8 +30,8 @@ public class SwordOfBeheading extends SimpleSlimefunItem { private int chanceWitherSkeleton; private int chancePlayer; - public SwordOfBeheading(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe, String[] keys, Object[] values) { - super(category, item, id, recipeType, recipe, keys, values); + public SwordOfBeheading(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe, String[] keys, Object[] values) { + super(category, item, recipeType, recipe, keys, values); } @Override @@ -71,11 +72,11 @@ public class SwordOfBeheading extends SimpleSlimefunItem { @Override public void postRegister() { - chanceZombie = (int) Slimefun.getItemValue("SWORD_OF_BEHEADING", "chance.ZOMBIE"); - chanceSkeleton = (int) Slimefun.getItemValue("SWORD_OF_BEHEADING", "chance.SKELETON"); - chanceCreeper = (int) Slimefun.getItemValue("SWORD_OF_BEHEADING", "chance.CREEPER"); - chanceWitherSkeleton = (int) Slimefun.getItemValue("SWORD_OF_BEHEADING", "chance.WITHER_SKELETON"); - chancePlayer = (int) Slimefun.getItemValue("SWORD_OF_BEHEADING", "chance.PLAYER"); + chanceZombie = (int) Slimefun.getItemValue(getID(), "chance.ZOMBIE"); + chanceSkeleton = (int) Slimefun.getItemValue(getID(), "chance.SKELETON"); + chanceCreeper = (int) Slimefun.getItemValue(getID(), "chance.CREEPER"); + chanceWitherSkeleton = (int) Slimefun.getItemValue(getID(), "chance.WITHER_SKELETON"); + chancePlayer = (int) Slimefun.getItemValue(getID(), "chance.PLAYER"); } } diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/WindStaff.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/WindStaff.java new file mode 100644 index 000000000..6e7df86c6 --- /dev/null +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/WindStaff.java @@ -0,0 +1,49 @@ +package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items; + +import org.bukkit.Bukkit; +import org.bukkit.Effect; +import org.bukkit.GameMode; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.event.entity.FoodLevelChangeEvent; +import org.bukkit.inventory.ItemStack; + +import me.mrCookieSlime.Slimefun.SlimefunPlugin; +import me.mrCookieSlime.Slimefun.Lists.RecipeType; +import me.mrCookieSlime.Slimefun.Objects.Category; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem; +import me.mrCookieSlime.Slimefun.Objects.handlers.ItemInteractionHandler; +import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; + +public class WindStaff extends SimpleSlimefunItem { + + public WindStaff(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) { + super(category, item, recipeType, recipe); + } + + @Override + public ItemInteractionHandler getItemHandler() { + return (e, p, item) -> { + if (SlimefunManager.isItemSimiliar(item, getItem(), true)) { + if (p.getFoodLevel() >= 2) { + if (p.getInventory().getItemInMainHand().getType() != Material.SHEARS && p.getGameMode() != GameMode.CREATIVE) { + FoodLevelChangeEvent event = new FoodLevelChangeEvent(p, p.getFoodLevel() - 2); + Bukkit.getPluginManager().callEvent(event); + p.setFoodLevel(event.getFoodLevel()); + } + p.setVelocity(p.getEyeLocation().getDirection().multiply(4)); + p.getWorld().playSound(p.getLocation(), Sound.ENTITY_TNT_PRIMED, 1, 1); + p.getWorld().playEffect(p.getLocation(), Effect.SMOKE, 1); + p.setFallDistance(0F); + } + else { + SlimefunPlugin.getLocal().sendMessage(p, "messages.hungry", true); + } + return true; + } + else return false; + }; + } + +} diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/HologramProjector.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/HologramProjector.java index 5b7f2aaa4..00f22516e 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/HologramProjector.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/HologramProjector.java @@ -12,12 +12,13 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.UnregisterReason; import me.mrCookieSlime.Slimefun.Objects.handlers.ItemInteractionHandler; import me.mrCookieSlime.Slimefun.api.BlockStorage; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; import me.mrCookieSlime.Slimefun.holograms.HologramProjectorHologram; public class HologramProjector extends SimpleSlimefunItem { - public HologramProjector(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe, ItemStack recipeOutput) { - super(category, item, id, recipeType, recipe, recipeOutput); + public HologramProjector(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe, ItemStack recipeOutput) { + super(category, item, recipeType, recipe, recipeOutput); SlimefunItem.registerBlockHandler(getID(), new SlimefunBlockHandler() { diff --git a/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java b/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java index 5693ea4f8..e54596b21 100644 --- a/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java +++ b/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java @@ -25,7 +25,6 @@ import org.bukkit.entity.EntityType; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.event.entity.EntityDamageByEntityEvent; -import org.bukkit.event.entity.FoodLevelChangeEvent; import org.bukkit.event.player.PlayerItemConsumeEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; @@ -103,6 +102,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.SoulboundRune; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.StormStaff; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.SwordOfBeheading; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.TelepositionScroll; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.WindStaff; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.AncientPedestal; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.BlockPlacer; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.Composter; @@ -170,6 +170,7 @@ import me.mrCookieSlime.Slimefun.androids.AndroidType; import me.mrCookieSlime.Slimefun.androids.ProgrammableAndroid; import me.mrCookieSlime.Slimefun.api.BlockStorage; import me.mrCookieSlime.Slimefun.api.Slimefun; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock; import me.mrCookieSlime.Slimefun.api.energy.EnergyTicker; import me.mrCookieSlime.Slimefun.api.item_transport.CargoNet; @@ -182,37 +183,37 @@ public final class SlimefunSetup { public static void setupItems() { Random random = new Random(); - new SlimefunItem(Categories.WEAPONS, SlimefunItems.GRANDMAS_WALKING_STICK, RecipeType.ENHANCED_CRAFTING_TABLE, + new SlimefunItem(Categories.WEAPONS, (SlimefunItemStack) SlimefunItems.GRANDMAS_WALKING_STICK, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, new ItemStack(Material.OAK_LOG), null, null, new ItemStack(Material.OAK_LOG), null, null, new ItemStack(Material.OAK_LOG), null}) .register(true); - new SlimefunItem(Categories.WEAPONS, SlimefunItems.GRANDPAS_WALKING_STICK, RecipeType.ENHANCED_CRAFTING_TABLE, + new SlimefunItem(Categories.WEAPONS, (SlimefunItemStack) SlimefunItems.GRANDPAS_WALKING_STICK, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {new ItemStack(Material.LEATHER), new ItemStack(Material.OAK_LOG), new ItemStack(Material.LEATHER), null, new ItemStack(Material.OAK_LOG), null, null, new ItemStack(Material.OAK_LOG), null}) .register(true); - new PortableCrafter(Categories.PORTABLE, SlimefunItems.PORTABLE_CRAFTER, RecipeType.ENHANCED_CRAFTING_TABLE, + new PortableCrafter(Categories.PORTABLE, (SlimefunItemStack) SlimefunItems.PORTABLE_CRAFTER, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {new ItemStack(Material.BOOK), new ItemStack(Material.CRAFTING_TABLE), null, null, null, null, null, null, null}) .register(true); - new SlimefunItem(Categories.FOOD, SlimefunItems.FORTUNE_COOKIE, RecipeType.ENHANCED_CRAFTING_TABLE, + new SlimefunItem(Categories.FOOD, (SlimefunItemStack) SlimefunItems.FORTUNE_COOKIE, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {new ItemStack(Material.COOKIE), new ItemStack(Material.PAPER), null, null, null, null, null, null, null}) .register(true); - new DietCookie(Categories.FOOD, SlimefunItems.DIET_COOKIE, RecipeType.MAGIC_WORKBENCH, + new DietCookie(Categories.FOOD, (SlimefunItemStack) SlimefunItems.DIET_COOKIE, RecipeType.MAGIC_WORKBENCH, new ItemStack[] {new ItemStack(Material.COOKIE), SlimefunItems.ELYTRA_SCALE, null, null, null, null, null, null, null}) .register(true); - new SlimefunItem(Categories.MACHINES_1, SlimefunItems.OUTPUT_CHEST, RecipeType.ENHANCED_CRAFTING_TABLE, + new SlimefunItem(Categories.MACHINES_1, (SlimefunItemStack) SlimefunItems.OUTPUT_CHEST, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.LEAD_INGOT, new ItemStack(Material.HOPPER), SlimefunItems.LEAD_INGOT, SlimefunItems.LEAD_INGOT, new ItemStack(Material.CHEST), SlimefunItems.LEAD_INGOT, null, SlimefunItems.LEAD_INGOT, null}) .register(true); new EnhancedCraftingTable().register(); - new PortableDustbin(Categories.PORTABLE, SlimefunItems.PORTABLE_DUSTBIN, RecipeType.ENHANCED_CRAFTING_TABLE, + new PortableDustbin(Categories.PORTABLE, (SlimefunItemStack) SlimefunItems.PORTABLE_DUSTBIN, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {new ItemStack(Material.IRON_INGOT), new ItemStack(Material.IRON_INGOT), new ItemStack(Material.IRON_INGOT), new ItemStack(Material.IRON_INGOT), null, new ItemStack(Material.IRON_INGOT), new ItemStack(Material.IRON_INGOT), new ItemStack(Material.IRON_INGOT), new ItemStack(Material.IRON_INGOT)}) .register(true); - new SlimefunItem(Categories.FOOD, SlimefunItems.BEEF_JERKY, RecipeType.ENHANCED_CRAFTING_TABLE, + new SlimefunItem(Categories.FOOD, (SlimefunItemStack) SlimefunItems.BEEF_JERKY, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.SALT, new ItemStack(Material.COOKED_BEEF), null, null, null, null, null, null, null}, new String[] {"Saturation"}, new Integer[] {20}) .register(true); @@ -221,51 +222,51 @@ public final class SlimefunSetup { new OreCrusher().register(); new Compressor().register(); - new SlimefunItem(Categories.LUMPS_AND_MAGIC, SlimefunItems.MAGIC_LUMP_1, RecipeType.GRIND_STONE, + new SlimefunItem(Categories.LUMPS_AND_MAGIC, (SlimefunItemStack) SlimefunItems.MAGIC_LUMP_1, RecipeType.GRIND_STONE, new ItemStack[] {new ItemStack(Material.NETHER_WART), null, null, null, null, null, null, null, null}, new CustomItem(SlimefunItems.MAGIC_LUMP_1, 2)) .register(true); - new SlimefunItem(Categories.LUMPS_AND_MAGIC, SlimefunItems.MAGIC_LUMP_2, RecipeType.ENHANCED_CRAFTING_TABLE, + new SlimefunItem(Categories.LUMPS_AND_MAGIC, (SlimefunItemStack) SlimefunItems.MAGIC_LUMP_2, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.MAGIC_LUMP_1, SlimefunItems.MAGIC_LUMP_1, null, SlimefunItems.MAGIC_LUMP_1, SlimefunItems.MAGIC_LUMP_1, null, null, null, null}) .register(true); - new SlimefunItem(Categories.LUMPS_AND_MAGIC, SlimefunItems.MAGIC_LUMP_3, RecipeType.ENHANCED_CRAFTING_TABLE, + new SlimefunItem(Categories.LUMPS_AND_MAGIC, (SlimefunItemStack) SlimefunItems.MAGIC_LUMP_3, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.MAGIC_LUMP_2, SlimefunItems.MAGIC_LUMP_2, null, SlimefunItems.MAGIC_LUMP_2, SlimefunItems.MAGIC_LUMP_2, null, null, null, null}) .register(true); - new SlimefunItem(Categories.LUMPS_AND_MAGIC, SlimefunItems.ENDER_LUMP_1, RecipeType.ENHANCED_CRAFTING_TABLE, + new SlimefunItem(Categories.LUMPS_AND_MAGIC, (SlimefunItemStack) SlimefunItems.ENDER_LUMP_1, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, null, null, null, new ItemStack(Material.ENDER_EYE), null, null, null, null}, new CustomItem(SlimefunItems.ENDER_LUMP_1, 2)) .register(true); - new SlimefunItem(Categories.LUMPS_AND_MAGIC, SlimefunItems.ENDER_LUMP_2, RecipeType.ENHANCED_CRAFTING_TABLE, + new SlimefunItem(Categories.LUMPS_AND_MAGIC, (SlimefunItemStack) SlimefunItems.ENDER_LUMP_2, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.ENDER_LUMP_1, SlimefunItems.ENDER_LUMP_1, null, SlimefunItems.ENDER_LUMP_1, SlimefunItems.ENDER_LUMP_1, null, null, null, null}) .register(true); - new SlimefunItem(Categories.LUMPS_AND_MAGIC, SlimefunItems.ENDER_LUMP_3, RecipeType.ENHANCED_CRAFTING_TABLE, + new SlimefunItem(Categories.LUMPS_AND_MAGIC, (SlimefunItemStack) SlimefunItems.ENDER_LUMP_3, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.ENDER_LUMP_2, SlimefunItems.ENDER_LUMP_2, null, SlimefunItems.ENDER_LUMP_2, SlimefunItems.ENDER_LUMP_2, null, null, null, null}) .register(true); - new EnderBackpack(Categories.MAGIC, SlimefunItems.ENDER_BACKPACK, RecipeType.MAGIC_WORKBENCH, + new EnderBackpack(Categories.MAGIC, (SlimefunItemStack) SlimefunItems.ENDER_BACKPACK, RecipeType.MAGIC_WORKBENCH, new ItemStack[] {SlimefunItems.ENDER_LUMP_2, new ItemStack(Material.LEATHER), SlimefunItems.ENDER_LUMP_2, new ItemStack(Material.LEATHER), new ItemStack(Material.CHEST), new ItemStack(Material.LEATHER), SlimefunItems.ENDER_LUMP_2, new ItemStack(Material.LEATHER), SlimefunItems.ENDER_LUMP_2}) .register(true); - new SlimefunItem(Categories.MAGIC_ARMOR, SlimefunItems.ENDER_HELMET, "ENDER_HELMET", RecipeType.ARMOR_FORGE, + new SlimefunItem(Categories.MAGIC_ARMOR, (SlimefunItemStack) SlimefunItems.ENDER_HELMET, RecipeType.ARMOR_FORGE, new ItemStack[] {SlimefunItems.ENDER_LUMP_1, new ItemStack(Material.ENDER_EYE), SlimefunItems.ENDER_LUMP_1, new ItemStack(Material.OBSIDIAN), null, new ItemStack(Material.OBSIDIAN), null, null, null}) .register(true); - new SlimefunItem(Categories.MAGIC_ARMOR, SlimefunItems.ENDER_CHESTPLATE, "ENDER_CHESTPLATE", RecipeType.ARMOR_FORGE, + new SlimefunItem(Categories.MAGIC_ARMOR, (SlimefunItemStack) SlimefunItems.ENDER_CHESTPLATE, RecipeType.ARMOR_FORGE, new ItemStack[] {SlimefunItems.ENDER_LUMP_1, null, SlimefunItems.ENDER_LUMP_1, new ItemStack(Material.OBSIDIAN), new ItemStack(Material.ENDER_EYE), new ItemStack(Material.OBSIDIAN), new ItemStack(Material.OBSIDIAN), new ItemStack(Material.OBSIDIAN), new ItemStack(Material.OBSIDIAN)}) .register(true); - new SlimefunItem(Categories.MAGIC_ARMOR, SlimefunItems.ENDER_LEGGINGS, "ENDER_LEGGINGS", RecipeType.ARMOR_FORGE, + new SlimefunItem(Categories.MAGIC_ARMOR, (SlimefunItemStack) SlimefunItems.ENDER_LEGGINGS, RecipeType.ARMOR_FORGE, new ItemStack[] {SlimefunItems.ENDER_LUMP_1, new ItemStack(Material.ENDER_EYE), SlimefunItems.ENDER_LUMP_1, new ItemStack(Material.OBSIDIAN), null, new ItemStack(Material.OBSIDIAN), new ItemStack(Material.OBSIDIAN), null, new ItemStack(Material.OBSIDIAN)}) .register(true); - new SlimefunItem(Categories.MAGIC_ARMOR, SlimefunItems.ENDER_BOOTS, "ENDER_BOOTS", RecipeType.ARMOR_FORGE, + new SlimefunItem(Categories.MAGIC_ARMOR, (SlimefunItemStack) SlimefunItems.ENDER_BOOTS, RecipeType.ARMOR_FORGE, new ItemStack[] {null, null, null, SlimefunItems.ENDER_LUMP_1, null, SlimefunItems.ENDER_LUMP_1, new ItemStack(Material.OBSIDIAN), null, new ItemStack(Material.OBSIDIAN)}) .register(true); - new SlimefunItem(Categories.MAGIC, SlimefunItems.MAGIC_EYE_OF_ENDER, "MAGIC_EYE_OF_ENDER", RecipeType.MAGIC_WORKBENCH, + new SlimefunItem(Categories.MAGIC, (SlimefunItemStack) SlimefunItems.MAGIC_EYE_OF_ENDER, RecipeType.MAGIC_WORKBENCH, new ItemStack[] {SlimefunItems.ENDER_LUMP_2, new ItemStack(Material.ENDER_PEARL), SlimefunItems.ENDER_LUMP_2, new ItemStack(Material.ENDER_PEARL), new ItemStack(Material.ENDER_EYE), new ItemStack(Material.ENDER_PEARL), SlimefunItems.ENDER_LUMP_2, new ItemStack(Material.ENDER_PEARL), SlimefunItems.ENDER_LUMP_2}) .register(true, new ItemInteractionHandler() { @@ -284,67 +285,66 @@ public final class SlimefunSetup { } }); - new MagicSugar(Categories.FOOD, SlimefunItems.MAGIC_SUGAR, "MAGIC_SUGAR", RecipeType.ENHANCED_CRAFTING_TABLE, + new MagicSugar(Categories.FOOD, (SlimefunItemStack) SlimefunItems.MAGIC_SUGAR, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {new ItemStack(Material.SUGAR), new ItemStack(Material.REDSTONE), new ItemStack(Material.GLOWSTONE_DUST), null, null, null, null, null, null}, new String[] {"effects.SPEED"}, new Integer[] {4}) .register(true); - new MonsterJerky(Categories.FOOD, SlimefunItems.MONSTER_JERKY, "MONSTER_JERKY", RecipeType.ENHANCED_CRAFTING_TABLE, + new MonsterJerky(Categories.FOOD, (SlimefunItemStack) SlimefunItems.MONSTER_JERKY, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.SALT, new ItemStack(Material.ROTTEN_FLESH), null, null, null, null, null, null, null}) .register(true); - new SlimefunItem(Categories.MAGIC_ARMOR, SlimefunItems.SLIME_HELMET, "SLIME_HELMET", RecipeType.ARMOR_FORGE, + new SlimefunItem(Categories.MAGIC_ARMOR, (SlimefunItemStack) SlimefunItems.SLIME_HELMET, RecipeType.ARMOR_FORGE, new ItemStack[] {new ItemStack(Material.SLIME_BALL), new ItemStack(Material.IRON_INGOT), new ItemStack(Material.SLIME_BALL), new ItemStack(Material.IRON_INGOT), null, new ItemStack(Material.IRON_INGOT), null, null, null}) .register(true); - new SlimefunItem(Categories.MAGIC_ARMOR, SlimefunItems.SLIME_CHESTPLATE, "SLIME_CHESTPLATE", RecipeType.ARMOR_FORGE, + new SlimefunItem(Categories.MAGIC_ARMOR, (SlimefunItemStack) SlimefunItems.SLIME_CHESTPLATE, RecipeType.ARMOR_FORGE, new ItemStack[] {new ItemStack(Material.SLIME_BALL), null, new ItemStack(Material.SLIME_BALL), new ItemStack(Material.IRON_INGOT), new ItemStack(Material.SLIME_BALL), new ItemStack(Material.IRON_INGOT), new ItemStack(Material.IRON_INGOT), new ItemStack(Material.SLIME_BALL), new ItemStack(Material.IRON_INGOT)}) .register(true); - new SlimefunArmorPiece(Categories.MAGIC_ARMOR, SlimefunItems.SLIME_LEGGINGS, "SLIME_LEGGINGS", RecipeType.ARMOR_FORGE, + new SlimefunArmorPiece(Categories.MAGIC_ARMOR, (SlimefunItemStack) SlimefunItems.SLIME_LEGGINGS, RecipeType.ARMOR_FORGE, new ItemStack[] {new ItemStack(Material.SLIME_BALL), new ItemStack(Material.IRON_INGOT), new ItemStack(Material.SLIME_BALL), new ItemStack(Material.IRON_INGOT), null, new ItemStack(Material.IRON_INGOT), new ItemStack(Material.IRON_INGOT), null, new ItemStack(Material.IRON_INGOT)}, new PotionEffect[] {new PotionEffect(PotionEffectType.SPEED, 300, 2)}) .register(true); - new SlimefunArmorPiece(Categories.MAGIC_ARMOR, SlimefunItems.SLIME_BOOTS, "SLIME_BOOTS", RecipeType.ARMOR_FORGE, + new SlimefunArmorPiece(Categories.MAGIC_ARMOR, (SlimefunItemStack) SlimefunItems.SLIME_BOOTS, RecipeType.ARMOR_FORGE, new ItemStack[] {null, null, null, new ItemStack(Material.SLIME_BALL), null, new ItemStack(Material.SLIME_BALL), new ItemStack(Material.IRON_INGOT), null, new ItemStack(Material.IRON_INGOT)}, new PotionEffect[] {new PotionEffect(PotionEffectType.JUMP, 300, 5)}) .register(true); - new SwordOfBeheading(Categories.WEAPONS, SlimefunItems.SWORD_OF_BEHEADING, "SWORD_OF_BEHEADING", RecipeType.ENHANCED_CRAFTING_TABLE, + new SwordOfBeheading(Categories.WEAPONS, (SlimefunItemStack) SlimefunItems.SWORD_OF_BEHEADING, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, new ItemStack(Material.EMERALD), null, SlimefunItems.MAGIC_LUMP_2, new ItemStack(Material.EMERALD), SlimefunItems.MAGIC_LUMP_2, null, new ItemStack(Material.BLAZE_ROD), null}, new String[] {"chance.PLAYER", "chance.SKELETON", "chance.WITHER_SKELETON", "chance.ZOMBIE", "chance.CREEPER"}, new Integer[] {70, 40, 25, 40, 40}) .register(true); - new SlimefunItem(Categories.LUMPS_AND_MAGIC, SlimefunItems.MAGICAL_BOOK_COVER, "MAGICAL_BOOK_COVER", RecipeType.ENHANCED_CRAFTING_TABLE, + new SlimefunItem(Categories.LUMPS_AND_MAGIC, (SlimefunItemStack) SlimefunItems.MAGICAL_BOOK_COVER, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, SlimefunItems.MAGIC_LUMP_2, null, SlimefunItems.MAGIC_LUMP_2, new ItemStack(Material.BOOK), SlimefunItems.MAGIC_LUMP_2, null, SlimefunItems.MAGIC_LUMP_2, null}) .register(true); - new SlimefunItem(Categories.TECH_MISC, SlimefunItems.BASIC_CIRCUIT_BOARD, "BASIC_CIRCUIT_BOARD", RecipeType.MOB_DROP, + new SlimefunItem(Categories.TECH_MISC, (SlimefunItemStack) SlimefunItems.BASIC_CIRCUIT_BOARD, RecipeType.MOB_DROP, new ItemStack[] {null, null, null, null, new CustomItem(new ItemStack(Material.POPPY), "&a&oIron Golem"), null, null, null, null}) .register(true); - new SlimefunItem(Categories.TECH_MISC, SlimefunItems.ADVANCED_CIRCUIT_BOARD, "ADVANCED_CIRCUIT_BOARD", RecipeType.ENHANCED_CRAFTING_TABLE, + new SlimefunItem(Categories.TECH_MISC, (SlimefunItemStack) SlimefunItems.ADVANCED_CIRCUIT_BOARD, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {new ItemStack(Material.LAPIS_BLOCK), new ItemStack(Material.LAPIS_BLOCK), new ItemStack(Material.LAPIS_BLOCK), new ItemStack(Material.REDSTONE_BLOCK), SlimefunItems.BASIC_CIRCUIT_BOARD, new ItemStack(Material.REDSTONE_BLOCK), new ItemStack(Material.LAPIS_BLOCK), new ItemStack(Material.LAPIS_BLOCK), new ItemStack(Material.LAPIS_BLOCK)}) .register(true); - new GoldPan(Categories.TOOLS, SlimefunItems.GOLD_PAN, "GOLD_PAN", RecipeType.ENHANCED_CRAFTING_TABLE, + new GoldPan(Categories.TOOLS, (SlimefunItemStack) SlimefunItems.GOLD_PAN, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, null, null, new ItemStack(Material.STONE), new ItemStack(Material.BOWL), new ItemStack(Material.STONE), new ItemStack(Material.STONE), new ItemStack(Material.STONE), new ItemStack(Material.STONE)}, - new ItemStack[] {new ItemStack(Material.GRAVEL), new ItemStack(Material.FLINT), new ItemStack(Material.GRAVEL), new ItemStack(Material.CLAY_BALL), new ItemStack(Material.GRAVEL), SlimefunItems.SIFTED_ORE}, new String[] {"chance.FLINT", "chance.CLAY", "chance.SIFTED_ORE"}, new Integer[] {40, 25, 35}) .register(true); - new SlimefunItem(Categories.MISC, SlimefunItems.SIFTED_ORE, "SIFTED_ORE", RecipeType.GOLD_PAN, + new SlimefunItem(Categories.MISC, (SlimefunItemStack) SlimefunItems.SIFTED_ORE, RecipeType.GOLD_PAN, new ItemStack[] {new ItemStack(Material.GRAVEL), null, null, null, null, null, null, null, null}) .register(true); new Smeltery().register(); - new SlimefunItem(Categories.MACHINES_1, SlimefunItems.IGNITION_CHAMBER, "IGNITION_CHAMBER", RecipeType.ENHANCED_CRAFTING_TABLE, + new SlimefunItem(Categories.MACHINES_1, (SlimefunItemStack) SlimefunItems.IGNITION_CHAMBER, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.STEEL_PLATE, SlimefunItems.BASIC_CIRCUIT_BOARD, new ItemStack(Material.FLINT_AND_STEEL), SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.STEEL_PLATE, SlimefunItems.ELECTRIC_MOTOR, null, new ItemStack(Material.HOPPER), null}) .register(true); new PressureChamber().register(); - new SlimefunItem(Categories.TECH_MISC, SlimefunItems.BATTERY, "BATTERY", RecipeType.ENHANCED_CRAFTING_TABLE, + new SlimefunItem(Categories.TECH_MISC, (SlimefunItemStack) SlimefunItems.BATTERY, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, new ItemStack(Material.REDSTONE), null, SlimefunItems.ZINC_INGOT, SlimefunItems.SULFATE, SlimefunItems.COPPER_INGOT, SlimefunItems.ZINC_INGOT, SlimefunItems.SULFATE, SlimefunItems.COPPER_INGOT }) .register(true); @@ -357,51 +357,51 @@ public final class SlimefunSetup { SlimefunManager.registerArmorSet(new ItemStack(Material.CACTUS), new ItemStack[] {SlimefunItems.CACTUS_HELMET, SlimefunItems.CACTUS_CHESTPLATE, SlimefunItems.CACTUS_LEGGINGS, SlimefunItems.CACTUS_BOOTS}, "CACTUS", true, false); - new Alloy(SlimefunItems.REINFORCED_ALLOY_INGOT, + new Alloy((SlimefunItemStack) SlimefunItems.REINFORCED_ALLOY_INGOT, new ItemStack[] {SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.HARDENED_METAL_INGOT, SlimefunItems.CORINTHIAN_BRONZE_INGOT, SlimefunItems.SOLDER_INGOT, SlimefunItems.BILLON_INGOT, SlimefunItems.GOLD_24K, null, null, null}) .register(true); - new Alloy(SlimefunItems.HARDENED_METAL_INGOT, + new Alloy((SlimefunItemStack) SlimefunItems.HARDENED_METAL_INGOT, new ItemStack[] {SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.DURALUMIN_INGOT, SlimefunItems.COMPRESSED_CARBON, SlimefunItems.ALUMINUM_BRONZE_INGOT, null, null, null, null, null}) .register(true); - new Alloy(SlimefunItems.DAMASCUS_STEEL_INGOT, + new Alloy((SlimefunItemStack) SlimefunItems.DAMASCUS_STEEL_INGOT, new ItemStack[] {SlimefunItems.STEEL_INGOT, SlimefunItems.IRON_DUST, SlimefunItems.CARBON, new ItemStack(Material.IRON_INGOT), null, null, null, null, null}) .register(true); - new Alloy(SlimefunItems.STEEL_INGOT, + new Alloy((SlimefunItemStack) SlimefunItems.STEEL_INGOT, new ItemStack[] {SlimefunItems.IRON_DUST, SlimefunItems.CARBON, new ItemStack(Material.IRON_INGOT), null, null, null, null, null, null}) .register(true); - new Alloy(SlimefunItems.BRONZE_INGOT, + new Alloy((SlimefunItemStack) SlimefunItems.BRONZE_INGOT, new ItemStack[] {SlimefunItems.COPPER_DUST, SlimefunItems.TIN_DUST, SlimefunItems.COPPER_INGOT, null, null, null, null, null, null}) .register(true); - new Alloy(SlimefunItems.DURALUMIN_INGOT, + new Alloy((SlimefunItemStack) SlimefunItems.DURALUMIN_INGOT, new ItemStack[] {SlimefunItems.ALUMINUM_DUST, SlimefunItems.COPPER_DUST, SlimefunItems.ALUMINUM_INGOT, null, null, null, null, null, null}) .register(true); - new Alloy(SlimefunItems.BILLON_INGOT, + new Alloy((SlimefunItemStack) SlimefunItems.BILLON_INGOT, new ItemStack[] {SlimefunItems.SILVER_DUST, SlimefunItems.COPPER_DUST, SlimefunItems.SILVER_INGOT, null, null, null, null, null, null}) .register(true); - new Alloy(SlimefunItems.BRASS_INGOT, + new Alloy((SlimefunItemStack) SlimefunItems.BRASS_INGOT, new ItemStack[] {SlimefunItems.COPPER_DUST, SlimefunItems.ZINC_DUST, SlimefunItems.COPPER_INGOT, null, null, null, null, null, null}) .register(true); - new Alloy(SlimefunItems.ALUMINUM_BRASS_INGOT, + new Alloy((SlimefunItemStack) SlimefunItems.ALUMINUM_BRASS_INGOT, new ItemStack[] {SlimefunItems.ALUMINUM_DUST, SlimefunItems.BRASS_INGOT, SlimefunItems.ALUMINUM_INGOT, null, null, null, null, null, null}) .register(true); - new Alloy(SlimefunItems.ALUMINUM_BRONZE_INGOT, + new Alloy((SlimefunItemStack) SlimefunItems.ALUMINUM_BRONZE_INGOT, new ItemStack[] {SlimefunItems.ALUMINUM_DUST, SlimefunItems.BRONZE_INGOT, SlimefunItems.ALUMINUM_INGOT, null, null, null, null, null, null}) .register(true); - new Alloy(SlimefunItems.CORINTHIAN_BRONZE_INGOT, + new Alloy((SlimefunItemStack) SlimefunItems.CORINTHIAN_BRONZE_INGOT, new ItemStack[] {SlimefunItems.SILVER_DUST, SlimefunItems.GOLD_DUST, SlimefunItems.COPPER_DUST, SlimefunItems.BRONZE_INGOT, null, null, null, null, null}) .register(true); - new Alloy(SlimefunItems.SOLDER_INGOT, + new Alloy((SlimefunItemStack) SlimefunItems.SOLDER_INGOT, new ItemStack[] {SlimefunItems.LEAD_DUST, SlimefunItems.TIN_DUST, SlimefunItems.LEAD_INGOT, null, null, null, null, null, null}) .register(true); @@ -413,212 +413,189 @@ public final class SlimefunSetup { new ItemStack[] {SlimefunItems.CARBON_CHUNK, null, null, null, null, null, null, null, null}) .register(true); - new Alloy(SlimefunItems.RAW_CARBONADO, + new Alloy((SlimefunItemStack) SlimefunItems.RAW_CARBONADO, new ItemStack[] {SlimefunItems.SYNTHETIC_DIAMOND, SlimefunItems.CARBON_CHUNK, new ItemStack(Material.GLASS_PANE), null, null, null, null, null, null}) .register(true); - new Alloy(SlimefunItems.NICKEL_INGOT, + new Alloy((SlimefunItemStack) SlimefunItems.NICKEL_INGOT, new ItemStack[] {SlimefunItems.IRON_DUST, new ItemStack(Material.IRON_INGOT), SlimefunItems.COPPER_DUST, null, null, null, null, null, null}) .register(true); - new Alloy(SlimefunItems.COBALT_INGOT, + new Alloy((SlimefunItemStack) SlimefunItems.COBALT_INGOT, new ItemStack[] {SlimefunItems.IRON_DUST, SlimefunItems.COPPER_DUST, SlimefunItems.NICKEL_INGOT, null, null, null, null, null, null}) .register(true); - new SlimefunItem(Categories.RESOURCES, SlimefunItems.CARBONADO, RecipeType.PRESSURE_CHAMBER, + new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.CARBONADO, RecipeType.PRESSURE_CHAMBER, new ItemStack[] {SlimefunItems.RAW_CARBONADO, null, null, null, null, null, null, null, null}) .register(true); - new Alloy(SlimefunItems.FERROSILICON, + new Alloy((SlimefunItemStack) SlimefunItems.FERROSILICON, new ItemStack[] {new ItemStack(Material.IRON_INGOT), SlimefunItems.IRON_DUST, SlimefunItems.SILICON, null, null, null, null, null, null}) .register(true); - new SlimefunItem(Categories.RESOURCES, SlimefunItems.IRON_DUST, RecipeType.ORE_CRUSHER, + new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.IRON_DUST, RecipeType.ORE_CRUSHER, new ItemStack[] {new ItemStack(Material.IRON_ORE), null, null, null, null, null, null, null, null}, new CustomItem(SlimefunItems.IRON_DUST, (boolean) Slimefun.getItemValue("ORE_CRUSHER", "double-ores") ? 2: 1)) .register(true); - new SlimefunItem(Categories.RESOURCES, SlimefunItems.GOLD_DUST, RecipeType.ORE_CRUSHER, + new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.GOLD_DUST, RecipeType.ORE_CRUSHER, new ItemStack[] {new ItemStack(Material.GOLD_ORE), null, null, null, null, null, null, null, null}, new CustomItem(SlimefunItems.GOLD_DUST, (boolean) Slimefun.getItemValue("ORE_CRUSHER", "double-ores") ? 2: 1)) .register(true); - new SlimefunItem(Categories.RESOURCES, SlimefunItems.COPPER_DUST, RecipeType.ORE_WASHER, + new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.COPPER_DUST, RecipeType.ORE_WASHER, new ItemStack[] {SlimefunItems.SIFTED_ORE, null, null, null, null, null, null, null, null}) .register(true); - new SlimefunItem(Categories.RESOURCES, SlimefunItems.TIN_DUST, RecipeType.ORE_WASHER, + new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.TIN_DUST, RecipeType.ORE_WASHER, new ItemStack[] {SlimefunItems.SIFTED_ORE, null, null, null, null, null, null, null, null}) .register(true); - new SlimefunItem(Categories.RESOURCES, SlimefunItems.LEAD_DUST, RecipeType.ORE_WASHER, + new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.LEAD_DUST, RecipeType.ORE_WASHER, new ItemStack[] {SlimefunItems.SIFTED_ORE, null, null, null, null, null, null, null, null}) .register(true); - new SlimefunItem(Categories.RESOURCES, SlimefunItems.SILVER_DUST, RecipeType.ORE_WASHER, + new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.SILVER_DUST, RecipeType.ORE_WASHER, new ItemStack[] {SlimefunItems.SIFTED_ORE, null, null, null, null, null, null, null, null}) .register(true); - new SlimefunItem(Categories.RESOURCES, SlimefunItems.ALUMINUM_DUST, RecipeType.ORE_WASHER, + new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.ALUMINUM_DUST, RecipeType.ORE_WASHER, new ItemStack[] {SlimefunItems.SIFTED_ORE, null, null, null, null, null, null, null, null}) .register(true); - new SlimefunItem(Categories.RESOURCES, SlimefunItems.ZINC_DUST, RecipeType.ORE_WASHER, + new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.ZINC_DUST, RecipeType.ORE_WASHER, new ItemStack[] {SlimefunItems.SIFTED_ORE, null, null, null, null, null, null, null, null}) .register(true); - new SlimefunItem(Categories.RESOURCES, SlimefunItems.MAGNESIUM_DUST, RecipeType.ORE_WASHER, + new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.MAGNESIUM_DUST, RecipeType.ORE_WASHER, new ItemStack[] {SlimefunItems.SIFTED_ORE, null, null, null, null, null, null, null, null}) .register(true); - new SlimefunItem(Categories.RESOURCES, SlimefunItems.COPPER_INGOT, RecipeType.SMELTERY, + new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.COPPER_INGOT, RecipeType.SMELTERY, new ItemStack[] {SlimefunItems.COPPER_DUST, null, null, null, null, null, null, null, null}) .register(true); - new SlimefunItem(Categories.RESOURCES, SlimefunItems.TIN_INGOT, RecipeType.SMELTERY, + new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.TIN_INGOT, RecipeType.SMELTERY, new ItemStack[] {SlimefunItems.TIN_DUST, null, null, null, null, null, null, null, null}) .register(true); - new SlimefunItem(Categories.RESOURCES, SlimefunItems.SILVER_INGOT, RecipeType.SMELTERY, + new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.SILVER_INGOT, RecipeType.SMELTERY, new ItemStack[] {SlimefunItems.SILVER_DUST, null, null, null, null, null, null, null, null}) .register(true); - new SlimefunItem(Categories.RESOURCES, SlimefunItems.LEAD_INGOT, RecipeType.SMELTERY, + new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.LEAD_INGOT, RecipeType.SMELTERY, new ItemStack[] {SlimefunItems.LEAD_DUST, null, null, null, null, null, null, null, null}) .register(true); - new SlimefunItem(Categories.RESOURCES, SlimefunItems.ALUMINUM_INGOT, RecipeType.SMELTERY, + new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.ALUMINUM_INGOT, RecipeType.SMELTERY, new ItemStack[] {SlimefunItems.ALUMINUM_DUST, null, null, null, null, null, null, null, null}) .register(true); - new SlimefunItem(Categories.RESOURCES, SlimefunItems.ZINC_INGOT, RecipeType.SMELTERY, + new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.ZINC_INGOT, RecipeType.SMELTERY, new ItemStack[] {SlimefunItems.ZINC_DUST, null, null, null, null, null, null, null, null}) .register(true); - new SlimefunItem(Categories.RESOURCES, SlimefunItems.MAGNESIUM_INGOT, RecipeType.SMELTERY, + new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.MAGNESIUM_INGOT, RecipeType.SMELTERY, new ItemStack[] {SlimefunItems.MAGNESIUM_DUST, null, null, null, null, null, null, null, null}) .register(true); - new SlimefunItem(Categories.RESOURCES, SlimefunItems.SULFATE, RecipeType.ORE_CRUSHER, + new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.SULFATE, RecipeType.ORE_CRUSHER, new ItemStack[] {new ItemStack(Material.NETHERRACK, 16), null, null, null, null, null, null, null, null}) .register(true); - new SlimefunItem(Categories.RESOURCES, SlimefunItems.CARBON, RecipeType.COMPRESSOR, + new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.CARBON, RecipeType.COMPRESSOR, new ItemStack[] {new ItemStack(Material.COAL, 8), null, null, null, null, null, null, null, null}) .register(true); - new SlimefunItem(Categories.MISC, SlimefunItems.WHEAT_FLOUR, RecipeType.GRIND_STONE, + new SlimefunItem(Categories.MISC, (SlimefunItemStack) SlimefunItems.WHEAT_FLOUR, RecipeType.GRIND_STONE, new ItemStack[] {new ItemStack(Material.WHEAT), null, null, null, null, null, null, null, null}) .register(true); - new SlimefunItem(Categories.MISC, SlimefunItems.STEEL_PLATE, RecipeType.COMPRESSOR, + new SlimefunItem(Categories.MISC, (SlimefunItemStack) SlimefunItems.STEEL_PLATE, RecipeType.COMPRESSOR, new ItemStack[] {new CustomItem(SlimefunItems.STEEL_INGOT, 8), null, null, null, null, null, null, null, null}) .register(true); - new SlimefunItem(Categories.RESOURCES, SlimefunItems.COMPRESSED_CARBON, RecipeType.COMPRESSOR, + new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.COMPRESSED_CARBON, RecipeType.COMPRESSOR, new ItemStack[] {new CustomItem(SlimefunItems.CARBON, 4), null, null, null, null, null, null, null, null}) .register(true); - new SlimefunItem(Categories.RESOURCES, SlimefunItems.CARBON_CHUNK, RecipeType.ENHANCED_CRAFTING_TABLE, + new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.CARBON_CHUNK, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.COMPRESSED_CARBON, SlimefunItems.COMPRESSED_CARBON, SlimefunItems.COMPRESSED_CARBON, SlimefunItems.COMPRESSED_CARBON, new ItemStack(Material.FLINT), SlimefunItems.COMPRESSED_CARBON, SlimefunItems.COMPRESSED_CARBON, SlimefunItems.COMPRESSED_CARBON, SlimefunItems.COMPRESSED_CARBON}) .register(true); - new SlimefunItem(Categories.TECH_MISC, SlimefunItems.STEEL_THRUSTER, RecipeType.ENHANCED_CRAFTING_TABLE, + new SlimefunItem(Categories.TECH_MISC, (SlimefunItemStack) SlimefunItems.STEEL_THRUSTER, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, new ItemStack(Material.REDSTONE), null, SlimefunItems.ALUMINUM_BRONZE_INGOT, SlimefunItems.ALUMINUM_BRONZE_INGOT, SlimefunItems.ALUMINUM_BRONZE_INGOT, SlimefunItems.STEEL_PLATE, new ItemStack(Material.FIRE_CHARGE), SlimefunItems.STEEL_PLATE}) .register(true); - new SlimefunItem(Categories.TECH_MISC, SlimefunItems.POWER_CRYSTAL, RecipeType.ENHANCED_CRAFTING_TABLE, + new SlimefunItem(Categories.TECH_MISC, (SlimefunItemStack) SlimefunItems.POWER_CRYSTAL, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {new ItemStack(Material.REDSTONE), SlimefunItems.SYNTHETIC_SAPPHIRE, new ItemStack(Material.REDSTONE), SlimefunItems.SYNTHETIC_SAPPHIRE, SlimefunItems.SYNTHETIC_DIAMOND, SlimefunItems.SYNTHETIC_SAPPHIRE, new ItemStack(Material.REDSTONE), SlimefunItems.SYNTHETIC_SAPPHIRE, new ItemStack(Material.REDSTONE)}) .register(true); - new Jetpack(SlimefunItems.DURALUMIN_JETPACK, "DURALUMIN_JETPACK", + new Jetpack((SlimefunItemStack) SlimefunItems.DURALUMIN_JETPACK, new ItemStack[] {SlimefunItems.DURALUMIN_INGOT, null, SlimefunItems.DURALUMIN_INGOT, SlimefunItems.DURALUMIN_INGOT, SlimefunItems.POWER_CRYSTAL, SlimefunItems.DURALUMIN_INGOT, SlimefunItems.STEEL_THRUSTER, SlimefunItems.SMALL_CAPACITOR, SlimefunItems.STEEL_THRUSTER}, 0.35) .register(true); - new Jetpack(SlimefunItems.SOLDER_JETPACK, "SOLDER_JETPACK", + new Jetpack((SlimefunItemStack) SlimefunItems.SOLDER_JETPACK, new ItemStack[] {SlimefunItems.SOLDER_INGOT, null, SlimefunItems.SOLDER_INGOT, SlimefunItems.SOLDER_INGOT, SlimefunItems.POWER_CRYSTAL, SlimefunItems.SOLDER_INGOT, SlimefunItems.STEEL_THRUSTER, SlimefunItems.SMALL_CAPACITOR, SlimefunItems.STEEL_THRUSTER}, 0.4) .register(true); - new Jetpack(SlimefunItems.BILLON_JETPACK, "BILLON_JETPACK", + new Jetpack((SlimefunItemStack) SlimefunItems.BILLON_JETPACK, new ItemStack[] {SlimefunItems.BILLON_INGOT, null, SlimefunItems.BILLON_INGOT, SlimefunItems.BILLON_INGOT, SlimefunItems.POWER_CRYSTAL, SlimefunItems.BILLON_INGOT, SlimefunItems.STEEL_THRUSTER, SlimefunItems.SMALL_CAPACITOR, SlimefunItems.STEEL_THRUSTER}, 0.45) .register(true); - new Jetpack(SlimefunItems.STEEL_JETPACK, "STEEL_JETPACK", + new Jetpack((SlimefunItemStack) SlimefunItems.STEEL_JETPACK, new ItemStack[] {SlimefunItems.STEEL_INGOT, null, SlimefunItems.STEEL_INGOT, SlimefunItems.STEEL_INGOT, SlimefunItems.POWER_CRYSTAL, SlimefunItems.STEEL_INGOT, SlimefunItems.STEEL_THRUSTER, SlimefunItems.SMALL_CAPACITOR, SlimefunItems.STEEL_THRUSTER}, 0.5) .register(true); - new Jetpack(SlimefunItems.DAMASCUS_STEEL_JETPACK, "DAMASCUS_STEEL_JETPACK", + new Jetpack((SlimefunItemStack) SlimefunItems.DAMASCUS_STEEL_JETPACK, new ItemStack[] {SlimefunItems.DAMASCUS_STEEL_INGOT, null, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.POWER_CRYSTAL, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.STEEL_THRUSTER, SlimefunItems.SMALL_CAPACITOR, SlimefunItems.STEEL_THRUSTER}, 0.55) .register(true); - new Jetpack(SlimefunItems.REINFORCED_ALLOY_JETPACK, "REINFORCED_ALLOY_JETPACK", + new Jetpack((SlimefunItemStack) SlimefunItems.REINFORCED_ALLOY_JETPACK, new ItemStack[] {SlimefunItems.REINFORCED_ALLOY_INGOT, null, SlimefunItems.REINFORCED_ALLOY_INGOT, SlimefunItems.REINFORCED_ALLOY_INGOT, SlimefunItems.POWER_CRYSTAL, SlimefunItems.REINFORCED_ALLOY_INGOT, SlimefunItems.STEEL_THRUSTER, SlimefunItems.MEDIUM_CAPACITOR, SlimefunItems.STEEL_THRUSTER}, 0.6) .register(true); - new Jetpack(SlimefunItems.CARBONADO_JETPACK, "CARBONADO_JETPACK", + new Jetpack((SlimefunItemStack) SlimefunItems.CARBONADO_JETPACK, new ItemStack[] {SlimefunItems.CARBON_CHUNK, null, SlimefunItems.CARBON_CHUNK, SlimefunItems.CARBONADO, SlimefunItems.POWER_CRYSTAL, SlimefunItems.CARBONADO, SlimefunItems.STEEL_THRUSTER, SlimefunItems.LARGE_CAPACITOR, SlimefunItems.STEEL_THRUSTER}, 0.7) .register(true); - new SlimefunItem(Categories.TECH, SlimefunItems.PARACHUTE, "PARACHUTE", RecipeType.ENHANCED_CRAFTING_TABLE, + new SlimefunItem(Categories.TECH, (SlimefunItemStack) SlimefunItems.PARACHUTE, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.CLOTH, SlimefunItems.CLOTH, SlimefunItems.CLOTH, SlimefunItems.CHAIN, null, SlimefunItems.CHAIN, null, null, null}) .register(true); - new HologramProjector(Categories.TECH, SlimefunItems.HOLOGRAM_PROJECTOR, "HOLOGRAM_PROJECTOR", RecipeType.ENHANCED_CRAFTING_TABLE, + new HologramProjector(Categories.TECH, (SlimefunItemStack) SlimefunItems.HOLOGRAM_PROJECTOR, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, SlimefunItems.POWER_CRYSTAL, null, SlimefunItems.ALUMINUM_BRASS_INGOT, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.ALUMINUM_BRASS_INGOT, null, SlimefunItems.ALUMINUM_BRASS_INGOT, null}, new CustomItem(SlimefunItems.HOLOGRAM_PROJECTOR, 3)) .register(true); - new SlimefunItem(Categories.MISC, SlimefunItems.CHAIN, "CHAIN", RecipeType.ENHANCED_CRAFTING_TABLE, + new SlimefunItem(Categories.MISC, (SlimefunItemStack) SlimefunItems.CHAIN, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, null, SlimefunItems.STEEL_INGOT, null, SlimefunItems.STEEL_INGOT, null, SlimefunItems.STEEL_INGOT, null, null}, new CustomItem(SlimefunItems.CHAIN, 8)) .register(true); - new SlimefunItem(Categories.MISC, SlimefunItems.HOOK, "HOOK", RecipeType.ENHANCED_CRAFTING_TABLE, + new SlimefunItem(Categories.MISC, (SlimefunItemStack) SlimefunItems.HOOK, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, SlimefunItems.STEEL_INGOT, null, SlimefunItems.STEEL_INGOT, null, SlimefunItems.STEEL_INGOT, null, null, null}) .register(true); - new GrapplingHook(Categories.TOOLS, SlimefunItems.GRAPPLING_HOOK, "GRAPPLING_HOOK", RecipeType.ENHANCED_CRAFTING_TABLE, + new GrapplingHook(Categories.TOOLS, (SlimefunItemStack) SlimefunItems.GRAPPLING_HOOK, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, SlimefunItems.HOOK, SlimefunItems.HOOK, null, SlimefunItems.CHAIN, SlimefunItems.HOOK, SlimefunItems.CHAIN, null, null}, new String[] {"despawn-seconds"}, new Object[] {60}) .register(true); new MagicWorkbench().register(); - new SlimefunItem(Categories.MAGIC, SlimefunItems.STAFF_ELEMENTAL, "STAFF_ELEMENTAL", RecipeType.MAGIC_WORKBENCH, + new SlimefunItem(Categories.MAGIC, (SlimefunItemStack) SlimefunItems.STAFF_ELEMENTAL, RecipeType.MAGIC_WORKBENCH, new ItemStack[] {null, SlimefunItems.MAGICAL_BOOK_COVER, SlimefunItems.MAGIC_LUMP_3, null, new ItemStack(Material.STICK), SlimefunItems.MAGICAL_BOOK_COVER, SlimefunItems.MAGIC_LUMP_3, null, null}) .register(true); - new SlimefunItem(Categories.MAGIC, SlimefunItems.STAFF_WIND, "STAFF_ELEMENTAL_WIND", RecipeType.MAGIC_WORKBENCH, + new WindStaff(Categories.MAGIC, (SlimefunItemStack) SlimefunItems.STAFF_WIND, RecipeType.MAGIC_WORKBENCH, new ItemStack[] {null, new ItemStack(Material.FEATHER), SlimefunItems.ENDER_LUMP_3, null, SlimefunItems.STAFF_ELEMENTAL, new ItemStack(Material.FEATHER), SlimefunItems.STAFF_ELEMENTAL, null, null}) - .register(true, new ItemInteractionHandler() { + .register(true); - @Override - public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) { - if (SlimefunManager.isItemSimiliar(item, SlimefunItems.STAFF_WIND, true)) { - if (p.getFoodLevel() >= 2) { - if (p.getInventory().getItemInMainHand().getType() != Material.SHEARS && p.getGameMode() != GameMode.CREATIVE) { - FoodLevelChangeEvent event = new FoodLevelChangeEvent(p, p.getFoodLevel() - 2); - Bukkit.getPluginManager().callEvent(event); - p.setFoodLevel(event.getFoodLevel()); - } - p.setVelocity(p.getEyeLocation().getDirection().multiply(4)); - p.getWorld().playSound(p.getLocation(), Sound.ENTITY_TNT_PRIMED, 1, 1); - p.getWorld().playEffect(p.getLocation(), Effect.SMOKE, 1); - p.setFallDistance(0F); - } - else { - SlimefunPlugin.getLocal().sendMessage(p, "messages.hungry", true); - } - return true; - } - else return false; - } - }); - - new SlimefunItem(Categories.MAGIC, SlimefunItems.STAFF_WATER, "STAFF_ELEMENTAL_WATER", RecipeType.MAGIC_WORKBENCH, + new SlimefunItem(Categories.MAGIC, (SlimefunItemStack) SlimefunItems.STAFF_WATER, RecipeType.MAGIC_WORKBENCH, new ItemStack[] {null, new ItemStack(Material.LILY_PAD), SlimefunItems.MAGIC_LUMP_2, null, SlimefunItems.STAFF_ELEMENTAL, new ItemStack(Material.LILY_PAD), SlimefunItems.STAFF_ELEMENTAL, null, null}) .register(true, new ItemInteractionHandler() {