diff --git a/CHANGELOG.md b/CHANGELOG.md index 048753352..d0385f496 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -68,6 +68,7 @@ * Fixed #1428 * Fixed #1435 * Fixed #1438 +* Fixed Multi Tool functioning as unlimited Shears ## Release Candidate 4 (06 Jan 2020) https://thebusybiscuit.github.io/builds/TheBusyBiscuit/Slimefun4/stable/#4 diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/core/SlimefunRegistry.java b/src/main/java/io/github/thebusybiscuit/slimefun4/core/SlimefunRegistry.java index 5dd48a083..3b3ac3865 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/core/SlimefunRegistry.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/core/SlimefunRegistry.java @@ -47,7 +47,7 @@ public class SlimefunRegistry { private final List multiblocks = new LinkedList<>(); private final Set tickers = new HashSet<>(); - private final Set radioactive = new HashSet<>(); + private final Set radioactive = new HashSet<>(); private final Set activeChunks = new HashSet<>(); private final Set researchingPlayers = new HashSet<>(); @@ -123,8 +123,8 @@ public class SlimefunRegistry { public Set getMobDrops(EntityType entity) { return drops.get(entity); } - - public Set getRadioactiveItems() { + + public Set getRadioactiveItems() { return radioactive; } diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/core/guide/ChestSlimefunGuide.java b/src/main/java/io/github/thebusybiscuit/slimefun4/core/guide/ChestSlimefunGuide.java index bcd0575f2..97fb9a760 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/core/guide/ChestSlimefunGuide.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/core/guide/ChestSlimefunGuide.java @@ -181,7 +181,7 @@ public class ChestSlimefunGuide implements ISlimefunGuide { ChestMenu menu = create(p); fillInv(p, profile, menu, survival); - menu.addItem(1, new CustomItem(ChestMenuUtils.getBackButton(p, "", SlimefunPlugin.getLocal().getMessage(p, "guide.back.guide")))); + menu.addItem(1, new CustomItem(ChestMenuUtils.getBackButton(p, "", ChatColor.GRAY + SlimefunPlugin.getLocal().getMessage(p, "guide.back.guide")))); menu.addMenuClickHandler(1, (pl, s, is, action) -> { openMainMenu(profile, survival, 1); return false; diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/setup/MiscSetup.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/setup/MiscSetup.java index bf50439f0..ace8a52f2 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/setup/MiscSetup.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/setup/MiscSetup.java @@ -39,14 +39,6 @@ public final class MiscSetup { if (talisman != null && (boolean) Slimefun.getItemValue(talisman.getID(), "recipe-requires-nether-stars")) { talisman.setRecipe(new ItemStack[] {SlimefunItems.MAGIC_LUMP_2, SlimefunItems.GOLD_8K, SlimefunItems.MAGIC_LUMP_2, null, new ItemStack(Material.NETHER_STAR), null, SlimefunItems.MAGIC_LUMP_2, SlimefunItems.GOLD_8K, SlimefunItems.MAGIC_LUMP_2}); } - - SlimefunItem.setRadioactive(SlimefunItems.URANIUM); - SlimefunItem.setRadioactive(SlimefunItems.SMALL_URANIUM); - SlimefunItem.setRadioactive(SlimefunItems.BLISTERING_INGOT); - SlimefunItem.setRadioactive(SlimefunItems.BLISTERING_INGOT_2); - SlimefunItem.setRadioactive(SlimefunItems.BLISTERING_INGOT_3); - SlimefunItem.setRadioactive(SlimefunItems.NETHER_ICE); - SlimefunItem.setRadioactive(SlimefunItems.ENRICHED_NETHER_ICE); } public static void loadItems(ConfigCache settings) { diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/setup/SlimefunSetup.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/setup/SlimefunSetup.java index 6b3d36b07..9d760cd40 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/setup/SlimefunSetup.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/setup/SlimefunSetup.java @@ -30,6 +30,7 @@ import io.github.thebusybiscuit.cscorelib2.item.CustomItem; import io.github.thebusybiscuit.cscorelib2.materials.MaterialCollections; import io.github.thebusybiscuit.cscorelib2.skull.SkullItem; import io.github.thebusybiscuit.slimefun4.api.events.PlayerRightClickEvent; +import io.github.thebusybiscuit.slimefun4.core.attributes.Radioactivity; import io.github.thebusybiscuit.slimefun4.implementation.tasks.RainbowTicker; import io.github.thebusybiscuit.slimefun4.utils.FireworkUtils; import me.mrCookieSlime.CSCoreLibPlugin.CSCoreLib; @@ -38,12 +39,12 @@ import me.mrCookieSlime.Slimefun.Lists.Categories; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; import me.mrCookieSlime.Slimefun.Objects.MultiBlock; -import me.mrCookieSlime.Slimefun.Objects.SlimefunBlockHandler; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.Alloy; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.HandledBlock; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.JetBoots; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.Jetpack; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.Juice; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.RadioactiveItem; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.ReplacingAlloy; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.ReplacingItem; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunArmorPiece; @@ -52,9 +53,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunMachine; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SoulboundBackpack; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SoulboundItem; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SoulboundTool; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.Talisman; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.UnregisterReason; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.VanillaItem; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.cargo.AdvancedCargoOutputNode; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.cargo.CargoConnector; @@ -152,6 +151,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.geo.OilP import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.gps.ElevatorPlate; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.gps.GPSControlPanel; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.gps.GPSTransmitter; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.gps.PersonalActivationPlate; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.gps.Teleporter; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.reactors.NetherStarReactor; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.reactors.NuclearReactor; @@ -870,11 +870,11 @@ public final class SlimefunSetup { new ItemStack[] {SlimefunItems.PURE_ORE_CLUSTER, null, null, null, null, null, null, null, null}) .register(true); - new SlimefunItem(Categories.MISC, (SlimefunItemStack) SlimefunItems.SMALL_URANIUM, RecipeType.ENHANCED_CRAFTING_TABLE, + new RadioactiveItem(Categories.MISC, Radioactivity.MODERATE, (SlimefunItemStack) SlimefunItems.SMALL_URANIUM, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.TINY_URANIUM, SlimefunItems.TINY_URANIUM, SlimefunItems.TINY_URANIUM, SlimefunItems.TINY_URANIUM, SlimefunItems.TINY_URANIUM, SlimefunItems.TINY_URANIUM, SlimefunItems.TINY_URANIUM, SlimefunItems.TINY_URANIUM, SlimefunItems.TINY_URANIUM}) .register(true); - new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.URANIUM, RecipeType.ENHANCED_CRAFTING_TABLE, + new RadioactiveItem(Categories.RESOURCES, Radioactivity.HIGH, (SlimefunItemStack) SlimefunItems.URANIUM, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.SMALL_URANIUM, SlimefunItems.SMALL_URANIUM, null, SlimefunItems.SMALL_URANIUM, SlimefunItems.SMALL_URANIUM, null, null, null, null}) .register(true); @@ -1234,15 +1234,15 @@ public final class SlimefunSetup { new ItemStack[] {null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null, null, new ItemStack(Material.DIAMOND_PICKAXE), null, null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null}) .register(true); - new SoulboundTool(Categories.TOOLS, (SlimefunItemStack) SlimefunItems.SOULBOUND_AXE, + new SoulboundItem(Categories.TOOLS, (SlimefunItemStack) SlimefunItems.SOULBOUND_AXE, new ItemStack[] {null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null, null, new ItemStack(Material.DIAMOND_AXE), null, null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null}) .register(true); - new SoulboundTool(Categories.TOOLS, (SlimefunItemStack) SlimefunItems.SOULBOUND_SHOVEL, + new SoulboundItem(Categories.TOOLS, (SlimefunItemStack) SlimefunItems.SOULBOUND_SHOVEL, new ItemStack[] {null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null, null, new ItemStack(Material.DIAMOND_SHOVEL), null, null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null}) .register(true); - new SoulboundTool(Categories.TOOLS, (SlimefunItemStack) SlimefunItems.SOULBOUND_HOE, + new SoulboundItem(Categories.TOOLS, (SlimefunItemStack) SlimefunItems.SOULBOUND_HOE, new ItemStack[] {null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null, null, new ItemStack(Material.DIAMOND_HOE), null, null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null}) .register(true); @@ -2244,11 +2244,11 @@ public final class SlimefunSetup { } .register(true); - new SlimefunItem(Categories.ELECTRICITY, SlimefunItems.ANDROID_INTERFACE_ITEMS, "ANDROID_INTERFACE_ITEMS", RecipeType.ENHANCED_CRAFTING_TABLE, + new SlimefunItem(Categories.ELECTRICITY, (SlimefunItemStack) SlimefunItems.ANDROID_INTERFACE_ITEMS, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.PLASTIC_SHEET, SlimefunItems.PLASTIC_SHEET, SlimefunItems.PLASTIC_SHEET, SlimefunItems.PLASTIC_SHEET, SlimefunItems.BASIC_CIRCUIT_BOARD, new ItemStack(Material.BLUE_STAINED_GLASS), SlimefunItems.PLASTIC_SHEET, SlimefunItems.PLASTIC_SHEET, SlimefunItems.PLASTIC_SHEET}) .register(true); - new SlimefunItem(Categories.ELECTRICITY, SlimefunItems.ANDROID_INTERFACE_FUEL, "ANDROID_INTERFACE_FUEL", RecipeType.ENHANCED_CRAFTING_TABLE, + new SlimefunItem(Categories.ELECTRICITY, (SlimefunItemStack) SlimefunItems.ANDROID_INTERFACE_FUEL, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.PLASTIC_SHEET, SlimefunItems.PLASTIC_SHEET, SlimefunItems.PLASTIC_SHEET, new ItemStack(Material.RED_STAINED_GLASS), SlimefunItems.BASIC_CIRCUIT_BOARD, SlimefunItems.PLASTIC_SHEET, SlimefunItems.PLASTIC_SHEET, SlimefunItems.PLASTIC_SHEET, SlimefunItems.PLASTIC_SHEET}) .register(true); @@ -2468,71 +2468,92 @@ public final class SlimefunSetup { new ItemStack[] {SlimefunItems.ESSENCE_OF_AFTERLIFE, new ItemStack(Material.EMERALD_BLOCK), SlimefunItems.ESSENCE_OF_AFTERLIFE, SlimefunItems.MAGIC_LUMP_3, SlimefunItems.TALISMAN, SlimefunItems.MAGIC_LUMP_3, SlimefunItems.ESSENCE_OF_AFTERLIFE, new ItemStack(Material.EMERALD_BLOCK), SlimefunItems.ESSENCE_OF_AFTERLIFE}) .register(true); - RainbowTicker rainbow = new RainbowTicker(); - new SlimefunItem(Categories.MAGIC, (SlimefunItemStack) SlimefunItems.RAINBOW_WOOL, RecipeType.ANCIENT_ALTAR, new ItemStack[] {new ItemStack(Material.WHITE_WOOL), new ItemStack(Material.WHITE_WOOL), new ItemStack(Material.WHITE_WOOL), new ItemStack(Material.WHITE_WOOL), SlimefunItems.RUNE_RAINBOW, new ItemStack(Material.WHITE_WOOL), new ItemStack(Material.WHITE_WOOL), new ItemStack(Material.WHITE_WOOL), new ItemStack(Material.WHITE_WOOL)}, new CustomItem(SlimefunItems.RAINBOW_WOOL, 8)) - .register(true, rainbow); + .register(true, new RainbowTicker(MaterialCollections.getAllWoolColors())); new SlimefunItem(Categories.MAGIC, (SlimefunItemStack) SlimefunItems.RAINBOW_GLASS, RecipeType.ANCIENT_ALTAR, new ItemStack[] {new ItemStack(Material.WHITE_STAINED_GLASS), new ItemStack(Material.WHITE_STAINED_GLASS), new ItemStack(Material.WHITE_STAINED_GLASS), new ItemStack(Material.WHITE_STAINED_GLASS), SlimefunItems.RUNE_RAINBOW, new ItemStack(Material.WHITE_STAINED_GLASS), new ItemStack(Material.WHITE_STAINED_GLASS), new ItemStack(Material.WHITE_STAINED_GLASS), new ItemStack(Material.WHITE_STAINED_GLASS)}, new CustomItem(SlimefunItems.RAINBOW_GLASS, 8)) - .register(true, rainbow); + .register(true, new RainbowTicker(MaterialCollections.getAllStainedGlassColors())); new SlimefunItem(Categories.MAGIC, (SlimefunItemStack) SlimefunItems.RAINBOW_GLASS_PANE, RecipeType.ANCIENT_ALTAR, new ItemStack[] {new ItemStack(Material.WHITE_STAINED_GLASS_PANE), new ItemStack(Material.WHITE_STAINED_GLASS_PANE), new ItemStack(Material.WHITE_STAINED_GLASS_PANE), new ItemStack(Material.WHITE_STAINED_GLASS_PANE), SlimefunItems.RUNE_RAINBOW, new ItemStack(Material.WHITE_STAINED_GLASS_PANE), new ItemStack(Material.WHITE_STAINED_GLASS_PANE), new ItemStack(Material.WHITE_STAINED_GLASS_PANE), new ItemStack(Material.WHITE_STAINED_GLASS_PANE)}, new CustomItem(SlimefunItems.RAINBOW_GLASS_PANE, 8)) - .register(true, rainbow); + .register(true, new RainbowTicker(MaterialCollections.getAllStainedGlassPaneColors())); new SlimefunItem(Categories.MAGIC, (SlimefunItemStack) SlimefunItems.RAINBOW_CLAY, RecipeType.ANCIENT_ALTAR, new ItemStack[] {new ItemStack(Material.WHITE_TERRACOTTA), new ItemStack(Material.WHITE_TERRACOTTA), new ItemStack(Material.WHITE_TERRACOTTA), new ItemStack(Material.WHITE_TERRACOTTA), SlimefunItems.RUNE_RAINBOW, new ItemStack(Material.WHITE_TERRACOTTA), new ItemStack(Material.WHITE_TERRACOTTA), new ItemStack(Material.WHITE_TERRACOTTA), new ItemStack(Material.WHITE_TERRACOTTA)}, new CustomItem(SlimefunItems.RAINBOW_CLAY, 8)) - .register(true, rainbow); - - RainbowTicker xmas = new RainbowTicker(13, 14); + .register(true, new RainbowTicker(MaterialCollections.getAllTerracottaColors())); + // Christmas + new SlimefunItem(Categories.CHRISTMAS, (SlimefunItemStack) SlimefunItems.RAINBOW_WOOL_XMAS, RecipeType.ANCIENT_ALTAR, new ItemStack[] {new ItemStack(Material.RED_DYE), SlimefunItems.CHRISTMAS_COOKIE, new ItemStack(Material.GREEN_DYE), new ItemStack(Material.WHITE_WOOL), SlimefunItems.RUNE_RAINBOW, new ItemStack(Material.WHITE_WOOL), new ItemStack(Material.GREEN_DYE), SlimefunItems.CHRISTMAS_COOKIE, new ItemStack(Material.RED_DYE)}, new CustomItem(SlimefunItems.RAINBOW_WOOL_XMAS, 2)) - .register(true, xmas); + .register(true, new RainbowTicker(Material.RED_WOOL, Material.GREEN_WOOL)); new SlimefunItem(Categories.CHRISTMAS, (SlimefunItemStack) SlimefunItems.RAINBOW_GLASS_XMAS, RecipeType.ANCIENT_ALTAR, new ItemStack[] {new ItemStack(Material.RED_DYE), SlimefunItems.CHRISTMAS_COOKIE, new ItemStack(Material.GREEN_DYE), new ItemStack(Material.WHITE_STAINED_GLASS), SlimefunItems.RUNE_RAINBOW, new ItemStack(Material.WHITE_STAINED_GLASS), new ItemStack(Material.GREEN_DYE), SlimefunItems.CHRISTMAS_COOKIE, new ItemStack(Material.RED_DYE)}, new CustomItem(SlimefunItems.RAINBOW_GLASS_XMAS, 2)) - .register(true, xmas); - + .register(true, new RainbowTicker(Material.RED_STAINED_GLASS, Material.GREEN_STAINED_GLASS)); + new SlimefunItem(Categories.CHRISTMAS, (SlimefunItemStack) SlimefunItems.RAINBOW_GLASS_PANE_XMAS, RecipeType.ANCIENT_ALTAR, new ItemStack[] {new ItemStack(Material.RED_DYE), SlimefunItems.CHRISTMAS_COOKIE, new ItemStack(Material.GREEN_DYE), new ItemStack(Material.WHITE_STAINED_GLASS_PANE), SlimefunItems.RUNE_RAINBOW, new ItemStack(Material.WHITE_STAINED_GLASS_PANE), new ItemStack(Material.GREEN_DYE), SlimefunItems.CHRISTMAS_COOKIE, new ItemStack(Material.RED_DYE)}, new CustomItem(SlimefunItems.RAINBOW_GLASS_PANE_XMAS, 2)) - .register(true, xmas); + .register(true, new RainbowTicker(Material.RED_STAINED_GLASS_PANE, Material.GREEN_STAINED_GLASS_PANE)); new SlimefunItem(Categories.CHRISTMAS, (SlimefunItemStack) SlimefunItems.RAINBOW_CLAY_XMAS, RecipeType.ANCIENT_ALTAR, new ItemStack[] {new ItemStack(Material.RED_DYE), SlimefunItems.CHRISTMAS_COOKIE, new ItemStack(Material.GREEN_DYE), new ItemStack(Material.WHITE_TERRACOTTA), SlimefunItems.RUNE_RAINBOW, new ItemStack(Material.WHITE_TERRACOTTA), new ItemStack(Material.GREEN_DYE), SlimefunItems.CHRISTMAS_COOKIE, new ItemStack(Material.RED_DYE)}, new CustomItem(SlimefunItems.RAINBOW_CLAY_XMAS, 2)) - .register(true, xmas); - - RainbowTicker valentine = new RainbowTicker(2, 6, 10); + .register(true, new RainbowTicker(Material.RED_TERRACOTTA, Material.GREEN_TERRACOTTA)); + // Valentines Day + new SlimefunItem(Categories.VALENTINES_DAY, (SlimefunItemStack) SlimefunItems.RAINBOW_WOOL_VALENTINE, RecipeType.ANCIENT_ALTAR, - new ItemStack[] {new ItemStack(Material.RED_DYE), new ItemStack(Material.POPPY), new ItemStack(Material.PINK_DYE), new ItemStack(Material.WHITE_WOOL), SlimefunItems.RUNE_RAINBOW, new ItemStack(Material.WHITE_WOOL), new ItemStack(Material.PINK_DYE), new ItemStack(Material.POPPY), new ItemStack(Material.RED_DYE)}, new CustomItem(SlimefunItems.RAINBOW_WOOL_VALENTINE, 2)) - .register(true, valentine); + new ItemStack[] {new ItemStack(Material.RED_DYE), new ItemStack(Material.POPPY), new ItemStack(Material.PINK_DYE), new ItemStack(Material.WHITE_WOOL), SlimefunItems.RUNE_RAINBOW, new ItemStack(Material.WHITE_WOOL), new ItemStack(Material.PINK_DYE), new ItemStack(Material.POPPY), new ItemStack(Material.RED_DYE)}, + new CustomItem(SlimefunItems.RAINBOW_WOOL_VALENTINE, 2)) + .register(true, new RainbowTicker(Material.MAGENTA_WOOL, Material.PINK_WOOL)); new SlimefunItem(Categories.VALENTINES_DAY, (SlimefunItemStack) SlimefunItems.RAINBOW_GLASS_VALENTINE, RecipeType.ANCIENT_ALTAR, new ItemStack[] {new ItemStack(Material.RED_DYE), new ItemStack(Material.POPPY), new ItemStack(Material.PINK_DYE), new ItemStack(Material.WHITE_STAINED_GLASS), SlimefunItems.RUNE_RAINBOW, new ItemStack(Material.WHITE_STAINED_GLASS), new ItemStack(Material.PINK_DYE), new ItemStack(Material.POPPY), new ItemStack(Material.RED_DYE)}, new CustomItem(SlimefunItems.RAINBOW_GLASS_VALENTINE, 2)) - .register(true, valentine); + .register(true, new RainbowTicker(Material.MAGENTA_STAINED_GLASS, Material.PINK_STAINED_GLASS)); new SlimefunItem(Categories.VALENTINES_DAY, (SlimefunItemStack) SlimefunItems.RAINBOW_GLASS_PANE_VALENTINE, RecipeType.ANCIENT_ALTAR, new ItemStack[] {new ItemStack(Material.RED_DYE), new ItemStack(Material.POPPY), new ItemStack(Material.PINK_DYE), new ItemStack(Material.WHITE_STAINED_GLASS_PANE), SlimefunItems.RUNE_RAINBOW, new ItemStack(Material.WHITE_STAINED_GLASS_PANE), new ItemStack(Material.PINK_DYE), new ItemStack(Material.POPPY), new ItemStack(Material.RED_DYE)}, new CustomItem(SlimefunItems.RAINBOW_GLASS_PANE_VALENTINE, 2)) - .register(true, valentine); + .register(true, new RainbowTicker(Material.MAGENTA_STAINED_GLASS_PANE, Material.PINK_STAINED_GLASS_PANE)); new SlimefunItem(Categories.VALENTINES_DAY, (SlimefunItemStack) SlimefunItems.RAINBOW_CLAY_VALENTINE, RecipeType.ANCIENT_ALTAR, new ItemStack[] {new ItemStack(Material.RED_DYE), new ItemStack(Material.POPPY), new ItemStack(Material.PINK_DYE), new ItemStack(Material.WHITE_TERRACOTTA), SlimefunItems.RUNE_RAINBOW, new ItemStack(Material.WHITE_TERRACOTTA), new ItemStack(Material.PINK_DYE), new ItemStack(Material.POPPY), new ItemStack(Material.RED_DYE)}, new CustomItem(SlimefunItems.RAINBOW_CLAY_VALENTINE, 2)) - .register(true, valentine); + .register(true, new RainbowTicker(Material.MAGENTA_TERRACOTTA, Material.PINK_TERRACOTTA)); + // Halloween + + new SlimefunItem(Categories.HALLOWEEN, (SlimefunItemStack) SlimefunItems.RAINBOW_WOOL_HALLOWEEN, RecipeType.ANCIENT_ALTAR, + new ItemStack[] {new ItemStack(Material.ORANGE_DYE), new ItemStack(Material.PUMPKIN), new ItemStack(Material.BLACK_DYE), new ItemStack(Material.WHITE_WOOL), SlimefunItems.RUNE_RAINBOW, new ItemStack(Material.WHITE_WOOL), new ItemStack(Material.BLACK_DYE), new ItemStack(Material.PUMPKIN), new ItemStack(Material.ORANGE_DYE)}, + new CustomItem(SlimefunItems.RAINBOW_WOOL_HALLOWEEN, 2)) + .register(true, new RainbowTicker(Material.ORANGE_WOOL, Material.BLACK_WOOL)); + + new SlimefunItem(Categories.HALLOWEEN, (SlimefunItemStack) SlimefunItems.RAINBOW_GLASS_HALLOWEEN, RecipeType.ANCIENT_ALTAR, + new ItemStack[] {new ItemStack(Material.ORANGE_DYE), new ItemStack(Material.PUMPKIN), new ItemStack(Material.BLACK_DYE), new ItemStack(Material.WHITE_STAINED_GLASS), SlimefunItems.RUNE_RAINBOW, new ItemStack(Material.WHITE_STAINED_GLASS), new ItemStack(Material.BLACK_DYE), new ItemStack(Material.PUMPKIN), new ItemStack(Material.ORANGE_DYE)}, + new CustomItem(SlimefunItems.RAINBOW_GLASS_HALLOWEEN, 2)) + .register(true, new RainbowTicker(Material.ORANGE_STAINED_GLASS, Material.BLACK_STAINED_GLASS)); + + new SlimefunItem(Categories.HALLOWEEN, (SlimefunItemStack) SlimefunItems.RAINBOW_GLASS_PANE_HALLOWEEN, RecipeType.ANCIENT_ALTAR, + new ItemStack[] {new ItemStack(Material.ORANGE_DYE), new ItemStack(Material.PUMPKIN), new ItemStack(Material.BLACK_DYE), new ItemStack(Material.WHITE_STAINED_GLASS_PANE), SlimefunItems.RUNE_RAINBOW, new ItemStack(Material.WHITE_STAINED_GLASS_PANE), new ItemStack(Material.BLACK_DYE), new ItemStack(Material.PUMPKIN), new ItemStack(Material.ORANGE_DYE)}, + new CustomItem(SlimefunItems.RAINBOW_GLASS_PANE_HALLOWEEN, 2)) + .register(true, new RainbowTicker(Material.ORANGE_STAINED_GLASS_PANE, Material.BLACK_STAINED_GLASS_PANE)); + + new SlimefunItem(Categories.HALLOWEEN, (SlimefunItemStack) SlimefunItems.RAINBOW_CLAY_HALLOWEEN, RecipeType.ANCIENT_ALTAR, + new ItemStack[] {new ItemStack(Material.ORANGE_DYE), new ItemStack(Material.PUMPKIN), new ItemStack(Material.BLACK_DYE), new ItemStack(Material.WHITE_TERRACOTTA), SlimefunItems.RUNE_RAINBOW, new ItemStack(Material.WHITE_TERRACOTTA), new ItemStack(Material.BLACK_DYE), new ItemStack(Material.PUMPKIN), new ItemStack(Material.ORANGE_DYE)}, + new CustomItem(SlimefunItems.RAINBOW_CLAY_HALLOWEEN, 2)) + .register(true, new RainbowTicker(Material.ORANGE_TERRACOTTA, Material.BLACK_TERRACOTTA)); + new SlimefunItem(Categories.TECH_MISC, (SlimefunItemStack) SlimefunItems.WITHER_PROOF_GLASS, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.LEAD_INGOT, SlimefunItems.WITHER_PROOF_OBSIDIAN, SlimefunItems.LEAD_INGOT, SlimefunItems.WITHER_PROOF_OBSIDIAN, SlimefunItems.HARDENED_GLASS, SlimefunItems.WITHER_PROOF_OBSIDIAN, SlimefunItems.LEAD_INGOT, SlimefunItems.WITHER_PROOF_OBSIDIAN, SlimefunItems.LEAD_INGOT}, new CustomItem(SlimefunItems.WITHER_PROOF_GLASS, 4)) @@ -2584,7 +2605,7 @@ public final class SlimefunSetup { new ItemStack[] {null, null, null, null, SlimefunItems.BUCKET_OF_OIL, null, null, null, null}) .register(true); - new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.NETHER_ICE, new RecipeType(SlimefunItems.GEO_MINER), + new RadioactiveItem(Categories.RESOURCES, Radioactivity.MODERATE, (SlimefunItemStack) SlimefunItems.NETHER_ICE, new RecipeType(SlimefunItems.GEO_MINER), new ItemStack[] {null, null, null, null, null, null, null, null, null}) .register(true); @@ -2636,7 +2657,7 @@ public final class SlimefunSetup { new SlimefunItem(Categories.GPS, (SlimefunItemStack) SlimefunItems.GPS_TELEPORTER_PYLON, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.ZINC_INGOT, new ItemStack(Material.GLASS), SlimefunItems.ZINC_INGOT, new ItemStack(Material.GLASS), SlimefunItems.HEATING_COIL, new ItemStack(Material.GLASS), SlimefunItems.ZINC_INGOT, new ItemStack(Material.GLASS), SlimefunItems.ZINC_INGOT}, new CustomItem(SlimefunItems.GPS_TELEPORTER_PYLON, 8)) - .register(true, new RainbowTicker(9, 10)); + .register(true, new RainbowTicker(Material.CYAN_STAINED_GLASS, Material.PURPLE_STAINED_GLASS)); new Teleporter(Categories.GPS, (SlimefunItemStack) SlimefunItems.GPS_TELEPORTATION_MATRIX, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.GPS_TELEPORTER_PYLON, SlimefunItems.REINFORCED_ALLOY_INGOT, SlimefunItems.GPS_TELEPORTER_PYLON, SlimefunItems.ELECTRO_MAGNET, SlimefunItems.GPS_CONTROL_PANEL, SlimefunItems.ELECTRO_MAGNET, SlimefunItems.GPS_TELEPORTER_PYLON, SlimefunItems.REINFORCED_ALLOY_INGOT, SlimefunItems.GPS_TELEPORTER_PYLON}) @@ -2646,40 +2667,27 @@ public final class SlimefunSetup { new ItemStack[] {null, new ItemStack(Material.STONE_PRESSURE_PLATE), null, new ItemStack(Material.REDSTONE), SlimefunItems.GPS_TRANSMITTER, new ItemStack(Material.REDSTONE), SlimefunItems.BILLON_INGOT, SlimefunItems.BILLON_INGOT, SlimefunItems.BILLON_INGOT}) .register(true); - new SlimefunItem(Categories.GPS, (SlimefunItemStack) SlimefunItems.GPS_ACTIVATION_DEVICE_PERSONAL, RecipeType.ENHANCED_CRAFTING_TABLE, + new PersonalActivationPlate(Categories.GPS, (SlimefunItemStack) SlimefunItems.GPS_ACTIVATION_DEVICE_PERSONAL, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, SlimefunItems.LEAD_INGOT, null, SlimefunItems.COBALT_INGOT, SlimefunItems.GPS_ACTIVATION_DEVICE_SHARED, SlimefunItems.COBALT_INGOT, null, SlimefunItems.LEAD_INGOT, null}) .register(true); - SlimefunItem.registerBlockHandler("GPS_ACTIVATION_DEVICE_PERSONAL", new SlimefunBlockHandler() { - - @Override - public void onPlace(Player p, Block b, SlimefunItem item) { - BlockStorage.addBlockInfo(b, "owner", p.getUniqueId().toString()); - } - - @Override - public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) { - return true; - } - }); - new InfusedHopper(Categories.MAGIC, (SlimefunItemStack) SlimefunItems.INFUSED_HOPPER, RecipeType.ANCIENT_ALTAR, new ItemStack[] {new ItemStack(Material.OBSIDIAN), SlimefunItems.RUNE_EARTH, new ItemStack(Material.HOPPER), SlimefunItems.RUNE_ENDER, SlimefunItems.INFUSED_MAGNET, SlimefunItems.RUNE_ENDER, new ItemStack(Material.HOPPER), SlimefunItems.RUNE_EARTH, new ItemStack(Material.OBSIDIAN)}) .register(true); - new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.BLISTERING_INGOT, RecipeType.HEATED_PRESSURE_CHAMBER, + new RadioactiveItem(Categories.RESOURCES, Radioactivity.HIGH, (SlimefunItemStack) SlimefunItems.BLISTERING_INGOT, RecipeType.HEATED_PRESSURE_CHAMBER, new ItemStack[] {SlimefunItems.GOLD_24K, SlimefunItems.URANIUM, null, null, null, null, null, null, null}) .register(true); - new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.BLISTERING_INGOT_2, RecipeType.HEATED_PRESSURE_CHAMBER, + new RadioactiveItem(Categories.RESOURCES, Radioactivity.VERY_HIGH, (SlimefunItemStack) SlimefunItems.BLISTERING_INGOT_2, RecipeType.HEATED_PRESSURE_CHAMBER, new ItemStack[] {SlimefunItems.BLISTERING_INGOT, SlimefunItems.CARBONADO, null, null, null, null, null, null, null}) .register(true); - new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.BLISTERING_INGOT_3, RecipeType.HEATED_PRESSURE_CHAMBER, + new RadioactiveItem(Categories.RESOURCES, Radioactivity.VERY_HIGH, (SlimefunItemStack) SlimefunItems.BLISTERING_INGOT_3, RecipeType.HEATED_PRESSURE_CHAMBER, new ItemStack[] {SlimefunItems.BLISTERING_INGOT_2, new ItemStack(Material.NETHER_STAR), null, null, null, null, null, null, null}) .register(true); - new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.ENRICHED_NETHER_ICE, RecipeType.HEATED_PRESSURE_CHAMBER, + new RadioactiveItem(Categories.RESOURCES, Radioactivity.VERY_HIGH, (SlimefunItemStack) SlimefunItems.ENRICHED_NETHER_ICE, RecipeType.HEATED_PRESSURE_CHAMBER, new ItemStack[] {SlimefunItems.NETHER_ICE, SlimefunItems.PLUTONIUM, null, null, null, null, null, null, null}) .register(true); @@ -2910,24 +2918,18 @@ public final class SlimefunSetup { new ItemStack[] {SlimefunItems.ENRICHED_NETHER_ICE, null, null, null, null, null, null, null, null}) .register(true); - new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.NEPTUNIUM, new RecipeType(SlimefunItems.NUCLEAR_REACTOR), + new RadioactiveItem(Categories.RESOURCES, Radioactivity.HIGH, (SlimefunItemStack) SlimefunItems.NEPTUNIUM, new RecipeType(SlimefunItems.NUCLEAR_REACTOR), new ItemStack[] {SlimefunItems.URANIUM, null, null, null, null, null, null, null, null}) .register(true); - SlimefunItem.setRadioactive(SlimefunItems.NEPTUNIUM); - - new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.PLUTONIUM, new RecipeType(SlimefunItems.NUCLEAR_REACTOR), + new RadioactiveItem(Categories.RESOURCES, Radioactivity.VERY_HIGH, (SlimefunItemStack) SlimefunItems.PLUTONIUM, new RecipeType(SlimefunItems.NUCLEAR_REACTOR), new ItemStack[] {SlimefunItems.NEPTUNIUM, null, null, null, null, null, null, null, null}) .register(true); - SlimefunItem.setRadioactive(SlimefunItems.PLUTONIUM); - - new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.BOOSTED_URANIUM, RecipeType.HEATED_PRESSURE_CHAMBER, + new RadioactiveItem(Categories.RESOURCES, Radioactivity.VERY_HIGH, (SlimefunItemStack) SlimefunItems.BOOSTED_URANIUM, RecipeType.HEATED_PRESSURE_CHAMBER, new ItemStack[] {SlimefunItems.PLUTONIUM, SlimefunItems.URANIUM, null, null, null, null, null, null, null}) .register(true); - SlimefunItem.setRadioactive(SlimefunItems.BOOSTED_URANIUM); - new NuclearReactor(Categories.ELECTRICITY, (SlimefunItemStack) SlimefunItems.NUCLEAR_REACTOR, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.BLISTERING_INGOT_3, SlimefunItems.CARBONADO_EDGED_CAPACITOR, SlimefunItems.BLISTERING_INGOT_3, SlimefunItems.REINFORCED_PLATE, SlimefunItems.COOLING_UNIT, SlimefunItems.REINFORCED_PLATE, SlimefunItems.LEAD_INGOT, SlimefunItems.REINFORCED_PLATE, SlimefunItems.LEAD_INGOT}){ @@ -2962,22 +2964,22 @@ public final class SlimefunSetup { new CustomItem(SlimefunItems.CARGO_NODE, 4)) .register(true); - new CargoInputNode(Categories.CARGO, SlimefunItems.CARGO_INPUT, "CARGO_NODE_INPUT", RecipeType.ENHANCED_CRAFTING_TABLE, + new CargoInputNode(Categories.CARGO, (SlimefunItemStack) SlimefunItems.CARGO_INPUT, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, new ItemStack(Material.HOPPER), null, SlimefunItems.BILLON_INGOT, SlimefunItems.CARGO_NODE, SlimefunItems.BILLON_INGOT, null, new ItemStack(Material.HOPPER), null}, new CustomItem(SlimefunItems.CARGO_INPUT, 2)) .register(true); - new CargoOutputNode(Categories.CARGO, SlimefunItems.CARGO_OUTPUT, "CARGO_NODE_OUTPUT", RecipeType.ENHANCED_CRAFTING_TABLE, + new CargoOutputNode(Categories.CARGO, (SlimefunItemStack) SlimefunItems.CARGO_OUTPUT, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, new ItemStack(Material.HOPPER), null, SlimefunItems.BRASS_INGOT, SlimefunItems.CARGO_NODE, SlimefunItems.BRASS_INGOT, null, new ItemStack(Material.HOPPER), null}, new CustomItem(SlimefunItems.CARGO_OUTPUT, 2)) .register(true); - new AdvancedCargoOutputNode(Categories.CARGO, SlimefunItems.CARGO_OUTPUT_ADVANCED, "CARGO_NODE_OUTPUT_ADVANCED", RecipeType.ENHANCED_CRAFTING_TABLE, + new AdvancedCargoOutputNode(Categories.CARGO, (SlimefunItemStack) SlimefunItems.CARGO_OUTPUT_ADVANCED, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, SlimefunItems.CARGO_MOTOR, null, SlimefunItems.COBALT_INGOT, SlimefunItems.CARGO_OUTPUT, SlimefunItems.COBALT_INGOT, null, SlimefunItems.CARGO_MOTOR, null}, new CustomItem(SlimefunItems.CARGO_OUTPUT_ADVANCED)) .register(true); - new AutomatedCraftingChamber(Categories.ELECTRICITY, SlimefunItems.AUTOMATED_CRAFTING_CHAMBER, "AUTOMATED_CRAFTING_CHAMBER", RecipeType.ENHANCED_CRAFTING_TABLE, + new AutomatedCraftingChamber(Categories.ELECTRICITY, (SlimefunItemStack) SlimefunItems.AUTOMATED_CRAFTING_CHAMBER, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, new ItemStack(Material.CRAFTING_TABLE), null, SlimefunItems.CARGO_MOTOR, SlimefunItems.BLISTERING_INGOT_3, SlimefunItems.CARGO_MOTOR, null, SlimefunItems.ELECTRIC_MOTOR, null}) { @Override @@ -2987,7 +2989,7 @@ public final class SlimefunSetup { }.registerChargeableBlock(true, 256); - new ReactorAccessPort(Categories.CARGO, SlimefunItems.REACTOR_ACCESS_PORT, "REACTOR_ACCESS_PORT", RecipeType.ENHANCED_CRAFTING_TABLE, + new ReactorAccessPort(Categories.CARGO, (SlimefunItemStack) SlimefunItems.REACTOR_ACCESS_PORT, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, SlimefunItems.BLISTERING_INGOT_3, null, SlimefunItems.LEAD_INGOT, SlimefunItems.CARGO_MOTOR, SlimefunItems.LEAD_INGOT, null, SlimefunItems.ELECTRIC_MOTOR, null}) .register(true); diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/tasks/ArmorTask.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/tasks/ArmorTask.java index e58585795..6ffe1661a 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/tasks/ArmorTask.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/tasks/ArmorTask.java @@ -104,8 +104,8 @@ public class ArmorTask implements Runnable { } private boolean isRadioactive(Player p, ItemStack item) { - for (ItemStack radioactiveItem : SlimefunPlugin.getRegistry().getRadioactiveItems()) { - if (SlimefunManager.isItemSimilar(item, radioactiveItem, true) && Slimefun.isEnabled(p, radioactiveItem, false)) { + for (SlimefunItem radioactiveItem : SlimefunPlugin.getRegistry().getRadioactiveItems()) { + if (radioactiveItem.isItem(item) && Slimefun.isEnabled(p, radioactiveItem, true)) { // If the item is enabled in the world, then make radioactivity do its job SlimefunPlugin.getLocal().sendMessage(p, "messages.radiation"); diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/tasks/RainbowTicker.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/tasks/RainbowTicker.java index 680b8811c..0d146898f 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/tasks/RainbowTicker.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/tasks/RainbowTicker.java @@ -1,57 +1,49 @@ package io.github.thebusybiscuit.slimefun4.implementation.tasks; +import java.util.Arrays; + +import org.bukkit.Material; import org.bukkit.block.Block; +import org.bukkit.block.data.BlockData; import org.bukkit.block.data.Waterlogged; -import io.github.thebusybiscuit.cscorelib2.materials.MaterialCollections; +import io.github.thebusybiscuit.cscorelib2.collections.LoopIterator; +import io.github.thebusybiscuit.cscorelib2.materials.MaterialCollection; import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.Objects.handlers.BlockTicker; public class RainbowTicker extends BlockTicker { - private final int[] sequence; - - private int meta; - private int index; + private final LoopIterator iterator; + private Material material; - public RainbowTicker() { - this(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); + public RainbowTicker(Material... materials) { + iterator = new LoopIterator<>(Arrays.asList(materials)); + material = iterator.next(); } - public RainbowTicker(int... data) { - this.sequence = data; - meta = data[0]; - index = 0; + public RainbowTicker(MaterialCollection collection) { + this(collection.getAsArray()); } @Override public void tick(Block b, SlimefunItem item, Config data) { - if (MaterialCollections.getAllWoolColors().contains(b.getType())) { - b.setType(MaterialCollections.getAllWoolColors().get(meta), false); - } - else if (MaterialCollections.getAllStainedGlassColors().contains(b.getType())) { - b.setType(MaterialCollections.getAllStainedGlassColors().get(meta), false); - } - else if (MaterialCollections.getAllStainedGlassPaneColors().contains(b.getType())){ - boolean waterlogged = ((Waterlogged) b.getBlockData()).isWaterlogged(); - b.setType(MaterialCollections.getAllStainedGlassPaneColors().get(meta), true); - - if (waterlogged) { - Waterlogged block = (Waterlogged) b.getBlockData(); - block.setWaterlogged(true); - b.setBlockData(block); - } - } - else if (MaterialCollections.getAllTerracottaColors().contains(b.getType())){ - b.setType(MaterialCollections.getAllTerracottaColors().get(meta), false); + BlockData blockData = b.getBlockData(); + boolean waterlogged = blockData instanceof Waterlogged && ((Waterlogged) blockData).isWaterlogged(); + + b.setType(material, true); + + if (waterlogged) { + Waterlogged block = (Waterlogged) b.getBlockData(); + block.setWaterlogged(true); + b.setBlockData(block); } } @Override public void uniqueTick() { - index = ((index >= sequence.length - 1) ? 0: index + 1); - meta = sequence[index]; + material = iterator.next(); } @Override diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Lists/Categories.java b/src/main/java/me/mrCookieSlime/Slimefun/Lists/Categories.java index acf4be625..2144bd77a 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Lists/Categories.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Lists/Categories.java @@ -43,5 +43,6 @@ public final class Categories { public static final SeasonalCategory VALENTINES_DAY = new SeasonalCategory(2, 2, new CustomItem(Material.POPPY, "&dValentine's Day" + " &7(14th February)")); public static final SeasonalCategory EASTER = new SeasonalCategory(4, 2, new CustomItem(Material.EGG, "&6Easter" + " &7(April)")); public static final SeasonalCategory BIRTHDAY = new SeasonalCategory(10, 1, new CustomItem(Material.FIREWORK_ROCKET, "&a&lTheBusyBiscuit's Birthday &7(26th October)")); + public static final SeasonalCategory HALLOWEEN = new SeasonalCategory(10, 1, new CustomItem(Material.JACK_O_LANTERN, "&6&lHalloween &7(31st October)")); } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java b/src/main/java/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java index c7e972ee6..8563ea506 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java @@ -375,6 +375,11 @@ public final class SlimefunItems { public static final ItemStack RAINBOW_GLASS_VALENTINE = new SlimefunItemStack("RAINBOW_GLASS_VALENTINE", Material.PINK_STAINED_GLASS, "&5Rainbow Glass &7(Valentine's Day)", "", "&d< Valentine's Day Edition >"); public static final ItemStack RAINBOW_CLAY_VALENTINE = new SlimefunItemStack("RAINBOW_CLAY_VALENTINE", Material.PINK_TERRACOTTA, "&5Rainbow Clay &7(Valentine's Day)", "", "&d< Valentine's Day Edition >"); public static final ItemStack RAINBOW_GLASS_PANE_VALENTINE = new SlimefunItemStack("RAINBOW_GLASS_PANE_VALENTINE", Material.PINK_STAINED_GLASS_PANE, "&5Rainbow Glass Pane &7(Valentine's Day)", "", "&d< Valentine's Day Edition >"); + + public static final ItemStack RAINBOW_WOOL_HALLOWEEN = new SlimefunItemStack("RAINBOW_WOOL_HALLOWEEN", Material.ORANGE_WOOL, "&5Rainbow Wool &7(Halloween)", "", "&6< Halloween Edition >"); + public static final ItemStack RAINBOW_GLASS_HALLOWEEN = new SlimefunItemStack("RAINBOW_GLASS_HALLOWEEN", Material.ORANGE_STAINED_GLASS, "&5Rainbow Glass &7(Halloween)", "", "&6< Halloween Edition >"); + public static final ItemStack RAINBOW_CLAY_HALLOWEEN = new SlimefunItemStack("RAINBOW_CLAY_HALLOWEEN", Material.ORANGE_TERRACOTTA, "&5Rainbow Clay &7(Halloween)", "", "&6< Halloween Edition >"); + public static final ItemStack RAINBOW_GLASS_PANE_HALLOWEEN = new SlimefunItemStack("RAINBOW_GLASS_PANE_HALLOWEEN", Material.ORANGE_STAINED_GLASS_PANE, "&5Rainbow Glass Pane &7(Halloween)", "", "&6< Halloween Edition >"); /* Ingots */ public static final ItemStack COPPER_INGOT = new SlimefunItemStack("COPPER_INGOT", Material.BRICK, "&bCopper Ingot"); diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/Alloy.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/Alloy.java index 763dc1112..76add1c97 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/Alloy.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/Alloy.java @@ -24,6 +24,7 @@ public class Alloy extends SlimefunItem { * @param id the id of this Alloy * @param recipe the recipe to obtain this Alloy in the Smeltery */ + @Deprecated public Alloy(ItemStack item, String id, ItemStack[] recipe) { super(Categories.RESOURCES, item, id, RecipeType.SMELTERY, recipe); } @@ -57,6 +58,7 @@ public class Alloy extends SlimefunItem { * @param id the id of this Alloy * @param recipe the recipe to obtain this Alloy in the Smeltery */ + @Deprecated public Alloy(Category category, ItemStack item, String id, ItemStack[] recipe) { super(category, item, id, RecipeType.SMELTERY, recipe); } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/ChargedItem.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/ChargedItem.java deleted file mode 100644 index 3ddd3a129..000000000 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/ChargedItem.java +++ /dev/null @@ -1,26 +0,0 @@ -package me.mrCookieSlime.Slimefun.Objects.SlimefunItem; - -import org.bukkit.inventory.ItemStack; - -import me.mrCookieSlime.Slimefun.Lists.RecipeType; -import me.mrCookieSlime.Slimefun.Objects.Category; - -public class ChargedItem extends SlimefunItem { - - private String chargeType; - - public ChargedItem(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe, String chargeType) { - super(category, item, id, recipeType, recipe); - this.chargeType = chargeType; - } - - public ChargedItem(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 String getChargeType() { - return chargeType; - } - -} diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/DamagableChargableItem.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/DamagableChargableItem.java index 03cca9ae4..814eaa0ce 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/DamagableChargableItem.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/DamagableChargableItem.java @@ -10,6 +10,7 @@ public class DamagableChargableItem extends SlimefunItem { private final String chargeType; + @Deprecated public DamagableChargableItem(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe, String chargeType) { super(category, item, id, recipeType, recipe); this.chargeType = chargeType; @@ -19,7 +20,8 @@ public class DamagableChargableItem extends SlimefunItem { super(category, item, recipeType, recipe); this.chargeType = chargeType; } - + + @Deprecated 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; diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/HandledBlock.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/HandledBlock.java index d74d17650..8328093a6 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/HandledBlock.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/HandledBlock.java @@ -8,6 +8,7 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class HandledBlock extends SlimefunItem { + @Deprecated public HandledBlock(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe) { super(category, item, id, recipeType, recipe); } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/Juice.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/Juice.java index 476edf1cd..790669197 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/Juice.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/Juice.java @@ -8,6 +8,7 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class Juice extends SlimefunItem { + @Deprecated public Juice(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe) { super(category, item, id, recipeType, recipe); } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/RadioactiveItem.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/RadioactiveItem.java new file mode 100644 index 000000000..2e8acd01d --- /dev/null +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/RadioactiveItem.java @@ -0,0 +1,34 @@ +package me.mrCookieSlime.Slimefun.Objects.SlimefunItem; + +import org.bukkit.inventory.ItemStack; + +import io.github.thebusybiscuit.slimefun4.core.attributes.Radioactive; +import io.github.thebusybiscuit.slimefun4.core.attributes.Radioactivity; +import me.mrCookieSlime.Slimefun.SlimefunPlugin; +import me.mrCookieSlime.Slimefun.Lists.RecipeType; +import me.mrCookieSlime.Slimefun.Objects.Category; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; + +public class RadioactiveItem extends SlimefunItem implements Radioactive { + + private final Radioactivity radioactivity; + + public RadioactiveItem(Category category, Radioactivity radioactivity, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) { + super(category, item, recipeType, recipe); + + this.radioactivity = radioactivity; + } + + @Override + public void postRegister() { + super.postRegister(); + + SlimefunPlugin.getRegistry().getRadioactiveItems().add(this); + } + + @Override + public Radioactivity getRadioactivity() { + return radioactivity; + } + +} diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SimpleSlimefunItem.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SimpleSlimefunItem.java index f7c6a17a4..77e7e2637 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SimpleSlimefunItem.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SimpleSlimefunItem.java @@ -9,6 +9,7 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public abstract class SimpleSlimefunItem extends SlimefunItem { + @Deprecated public SimpleSlimefunItem(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe) { super(category, item, id, recipeType, recipe); } @@ -16,7 +17,8 @@ public abstract class SimpleSlimefunItem extends Slimefun public SimpleSlimefunItem(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) { super(category, item, recipeType, recipe); } - + + @Deprecated public SimpleSlimefunItem(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe, ItemStack recipeOutput) { super(category, item, id, recipeType, recipe, recipeOutput); } @@ -24,7 +26,8 @@ public abstract class SimpleSlimefunItem extends Slimefun public SimpleSlimefunItem(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe, ItemStack recipeOutput) { super(category, item, recipeType, recipe, recipeOutput); } - + + @Deprecated public SimpleSlimefunItem(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe, String[] keys, Object[] values) { super(category, item, id, recipeType, recipe, keys, values); } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunArmorPiece.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunArmorPiece.java index afd7dcde7..532e9059d 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunArmorPiece.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunArmorPiece.java @@ -11,6 +11,7 @@ public class SlimefunArmorPiece extends SlimefunItem { private final PotionEffect[] effects; + @Deprecated public SlimefunArmorPiece(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe, PotionEffect[] effects) { super(category, item, id, recipeType, recipe); this.effects = effects; @@ -20,7 +21,8 @@ public class SlimefunArmorPiece extends SlimefunItem { super(category, item, recipeType, recipe); this.effects = effects; } - + + @Deprecated 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; diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.java index d4b1d1960..a70e57961 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.java @@ -66,6 +66,7 @@ public class SlimefunItem implements Placeable { private Object[] values; private String wiki = null; + @Deprecated public SlimefunItem(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe) { this(category, item, id, recipeType, recipe, null); } @@ -74,6 +75,7 @@ public class SlimefunItem implements Placeable { this(category, item, recipeType, recipe, null); } + @Deprecated public SlimefunItem(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe, ItemStack recipeOutput) { this(category, item, id, recipeType, recipe, recipeOutput, null, null); } @@ -86,20 +88,30 @@ public class SlimefunItem implements Placeable { this(category, item, recipeType, recipe, null, keys, values); } + @Deprecated public SlimefunItem(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe, String[] keys, Object[] values) { this(category, item, id, recipeType, recipe, null, keys, values); } + @Deprecated public SlimefunItem(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe, boolean hidden) { this(category, item, id, recipeType, recipe); this.hidden = hidden; } - // Root constructors + // Root constructor public SlimefunItem(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe, ItemStack recipeOutput, String[] keys, Object[] values) { - this(category, item, item.getItemID(), recipeType, recipe, recipeOutput, keys, values); + this.category = category; + this.item = item; + this.id = item.getItemID(); + this.recipeType = recipeType; + this.recipe = recipe; + this.recipeOutput = recipeOutput; + this.keys = keys; + this.values = values; } + @Deprecated public SlimefunItem(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe, ItemStack recipeOutput, String[] keys, Object[] values) { this.category = category; this.item = item; @@ -335,7 +347,6 @@ public class SlimefunItem implements Placeable { if (this instanceof ChargableItem && SlimefunManager.isItemSimilar(item, this.item, false)) return true; else if (this instanceof DamagableChargableItem && SlimefunManager.isItemSimilar(item, this.item, false)) return true; - else if (this instanceof ChargedItem && SlimefunManager.isItemSimilar(item, this.item, false)) return true; else if (this instanceof SlimefunBackpack && SlimefunManager.isItemSimilar(item, this.item, false)) return true; else return SlimefunManager.isItemSimilar(item, this.item, true); } @@ -348,6 +359,7 @@ public class SlimefunItem implements Placeable { if (recipeType.toItem().isSimilar(RecipeType.MOB_DROP.toItem())) { String mob = ChatColor.stripColor(recipe[4].getItemMeta().getDisplayName()).toUpperCase().replace(' ', '_'); + try { EntityType entity = EntityType.valueOf(mob); Set dropping = SlimefunPlugin.getRegistry().getMobDrops().getOrDefault(entity, new HashSet<>()); @@ -454,7 +466,11 @@ public class SlimefunItem implements Placeable { */ @Deprecated public static void setRadioactive(ItemStack item) { - SlimefunPlugin.getRegistry().getRadioactiveItems().add(item); + SlimefunItem sfItem = getByItem(item); + + if (sfItem != null) { + SlimefunPlugin.getRegistry().getRadioactiveItems().add(sfItem); + } } public static ItemStack getItem(String id) { diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunMachine.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunMachine.java index fbefcfc2c..6d81f7cdd 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunMachine.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunMachine.java @@ -21,6 +21,7 @@ public class SlimefunMachine extends SlimefunItem implements RecipeDisplayItem { protected final List shownRecipes; protected final MultiBlock multiblock; + @Deprecated public SlimefunMachine(Category category, ItemStack item, String id, ItemStack[] recipe, ItemStack[] machineRecipes, BlockFace trigger) { super(category, item, id, RecipeType.MULTIBLOCK, recipe); this.recipes = new ArrayList<>(); @@ -37,14 +38,15 @@ public class SlimefunMachine extends SlimefunItem implements RecipeDisplayItem { this.multiblock = new MultiBlock(this, convertItemStacksToMaterial(recipe), trigger); } - public SlimefunMachine(Category category, ItemStack item, String id, ItemStack[] recipe, ItemStack[] machineRecipes, BlockFace trigger, boolean ghost) { - super(category, item, id, RecipeType.MULTIBLOCK, recipe, ghost); + public SlimefunMachine(Category category, SlimefunItemStack item, ItemStack[] recipe, ItemStack[] machineRecipes, BlockFace trigger, String[] keys, Object[] values) { + super(category, item, RecipeType.MULTIBLOCK, recipe, keys, values); this.recipes = new ArrayList<>(); this.shownRecipes = new ArrayList<>(); this.shownRecipes.addAll(Arrays.asList(machineRecipes)); this.multiblock = new MultiBlock(this, convertItemStacksToMaterial(recipe), trigger); } + @Deprecated public SlimefunMachine(Category category, ItemStack item, String id, ItemStack[] recipe, ItemStack[] machineRecipes, BlockFace trigger, String[] keys, Object[] values) { super(category, item, id, RecipeType.MULTIBLOCK, recipe, keys, values); this.recipes = new ArrayList<>(); diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SoulboundItem.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SoulboundItem.java index 4d5381656..837003cd0 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SoulboundItem.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SoulboundItem.java @@ -4,6 +4,7 @@ import org.bukkit.inventory.ItemStack; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Objects.Category; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.NotPlaceable; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.Soulbound; import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; @@ -13,7 +14,7 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; * @author TheBusyBiscuit * */ -public class SoulboundItem extends SlimefunItem implements Soulbound { +public class SoulboundItem extends SlimefunItem implements Soulbound, NotPlaceable { public SoulboundItem(Category category, SlimefunItemStack item, ItemStack[] recipe) { this(category, item, RecipeType.MAGIC_WORKBENCH, recipe); @@ -22,9 +23,5 @@ public class SoulboundItem extends SlimefunItem implements Soulbound { public SoulboundItem(Category category, SlimefunItemStack item, RecipeType type, ItemStack[] recipe) { super(category, item, type, recipe); } - - public SoulboundItem(Category category, ItemStack item, String id, RecipeType type, ItemStack[] recipe) { - super(category, item, id, type, recipe); - } } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SoulboundTool.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SoulboundTool.java deleted file mode 100644 index 9c0815846..000000000 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SoulboundTool.java +++ /dev/null @@ -1,20 +0,0 @@ -package me.mrCookieSlime.Slimefun.Objects.SlimefunItem; - -import org.bukkit.inventory.ItemStack; - -import me.mrCookieSlime.Slimefun.Lists.RecipeType; -import me.mrCookieSlime.Slimefun.Objects.Category; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.NotPlaceable; -import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; - -public class SoulboundTool extends SoulboundItem implements NotPlaceable { - - public SoulboundTool(Category category, ItemStack item, String id, RecipeType type, ItemStack[] recipe) { - super(category, item, id, type, recipe); - } - - public SoulboundTool(Category category, SlimefunItemStack item, ItemStack[] recipe) { - super(category, item, recipe); - } - -} diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/cargo/AdvancedCargoOutputNode.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/cargo/AdvancedCargoOutputNode.java index a1736112b..a172267ca 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/cargo/AdvancedCargoOutputNode.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/cargo/AdvancedCargoOutputNode.java @@ -20,6 +20,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunBlockHandler; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.UnregisterReason; import me.mrCookieSlime.Slimefun.api.BlockStorage; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu; import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset; import me.mrCookieSlime.Slimefun.api.item_transport.CargoNet; @@ -29,10 +30,10 @@ public class AdvancedCargoOutputNode extends SlimefunItem { private static final int[] border = {0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18, 22, 23, 24, 26, 27, 31, 32, 33, 34, 35, 36, 40, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53}; - public AdvancedCargoOutputNode(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe, ItemStack recipeOutput) { - super(category, item, name, recipeType, recipe, recipeOutput); + public AdvancedCargoOutputNode(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe, ItemStack recipeOutput) { + super(category, item, recipeType, recipe, recipeOutput); - new BlockMenuPreset(name, "&cOutput Node") { + new BlockMenuPreset(getID(), "&cOutput Node") { @Override public void init() { @@ -147,7 +148,7 @@ public class AdvancedCargoOutputNode extends SlimefunItem { } }; - registerBlockHandler(name, new SlimefunBlockHandler() { + registerBlockHandler(getID(), new SlimefunBlockHandler() { @Override public void onPlace(Player p, Block b, SlimefunItem item) { diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/cargo/CargoInputNode.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/cargo/CargoInputNode.java index 2f9577e72..73d19426a 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/cargo/CargoInputNode.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/cargo/CargoInputNode.java @@ -20,6 +20,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunBlockHandler; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.UnregisterReason; import me.mrCookieSlime.Slimefun.api.BlockStorage; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu; import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset; import me.mrCookieSlime.Slimefun.api.item_transport.CargoNet; @@ -29,10 +30,10 @@ public class CargoInputNode extends SlimefunItem { private static final int[] border = {0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18, 22, 23, 26, 27, 31, 32, 33, 34, 35, 36, 40, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53}; - public CargoInputNode(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe, ItemStack recipeOutput) { - super(category, item, name, recipeType, recipe, recipeOutput); + public CargoInputNode(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe, ItemStack recipeOutput) { + super(category, item, recipeType, recipe, recipeOutput); - new BlockMenuPreset(name, "&3Input Node") { + new BlockMenuPreset(getID(), "&3Input Node") { @Override public void init() { @@ -165,7 +166,7 @@ public class CargoInputNode extends SlimefunItem { } }; - registerBlockHandler(name, new SlimefunBlockHandler() { + registerBlockHandler(getID(), new SlimefunBlockHandler() { @Override public void onPlace(Player p, Block b, SlimefunItem item) { diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/cargo/CargoOutputNode.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/cargo/CargoOutputNode.java index 44aa74053..42bf4a3a5 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/cargo/CargoOutputNode.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/cargo/CargoOutputNode.java @@ -18,6 +18,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunBlockHandler; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.UnregisterReason; import me.mrCookieSlime.Slimefun.api.BlockStorage; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu; import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset; import me.mrCookieSlime.Slimefun.api.item_transport.CargoNet; @@ -28,10 +29,10 @@ public class CargoOutputNode extends SlimefunItem { private static final int[] border = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26}; - public CargoOutputNode(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe, ItemStack recipeOutput) { - super(category, item, name, recipeType, recipe, recipeOutput); + public CargoOutputNode(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe, ItemStack recipeOutput) { + super(category, item, recipeType, recipe, recipeOutput); - new BlockMenuPreset(name, "&6Output Node") { + new BlockMenuPreset(getID(), "&6Output Node") { @Override public void init() { @@ -91,7 +92,7 @@ public class CargoOutputNode extends SlimefunItem { } }; - registerBlockHandler(name, new SlimefunBlockHandler() { + registerBlockHandler(getID(), new SlimefunBlockHandler() { @Override public void onPlace(Player p, Block b, SlimefunItem item) { diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/MultiTool.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/MultiTool.java index 424d0df57..dca877462 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/MultiTool.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/MultiTool.java @@ -15,6 +15,7 @@ import me.mrCookieSlime.Slimefun.Lists.Categories; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.ChargableItem; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; +import me.mrCookieSlime.Slimefun.Objects.handlers.BlockBreakHandler; import me.mrCookieSlime.Slimefun.Objects.handlers.ItemUseHandler; import me.mrCookieSlime.Slimefun.api.Slimefun; import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; @@ -88,10 +89,23 @@ public class MultiTool extends ChargableItem { }; } + private BlockBreakHandler getBlockBreakHandler() { + return (e, item, fortune, drops) -> { + if (isItem(item)) { + e.setCancelled(true); + return true; + } + + return false; + }; + } + @Override public void preRegister() { super.preRegister(); + addItemHandler(getItemUseHandler()); + addItemHandler(getBlockBreakHandler()); } @Override diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/ReactorAccessPort.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/ReactorAccessPort.java index 2c53c5bac..524fb4abb 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/ReactorAccessPort.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/ReactorAccessPort.java @@ -17,6 +17,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AReactor; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; import me.mrCookieSlime.Slimefun.api.BlockStorage; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu; import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset; import me.mrCookieSlime.Slimefun.api.inventory.DirtyChestMenu; @@ -31,10 +32,10 @@ public class ReactorAccessPort extends SlimefunItem { private static final int INFO_SLOT = 49; - public ReactorAccessPort(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe) { - super(category, item, name, recipeType, recipe); + public ReactorAccessPort(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) { + super(category, item, recipeType, recipe); - new BlockMenuPreset(name, "&2Reactor Access Port") { + new BlockMenuPreset(getID(), "&2Reactor Access Port") { @Override public void init() { @@ -88,7 +89,7 @@ public class ReactorAccessPort extends SlimefunItem { } }; - registerBlockHandler(name, (p, b, tool, reason) -> { + registerBlockHandler(getID(), (p, b, tool, reason) -> { BlockMenu inv = BlockStorage.getInventory(b); if (inv != null) { diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AutomatedCraftingChamber.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AutomatedCraftingChamber.java index 05f64f8be..a152566df 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AutomatedCraftingChamber.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AutomatedCraftingChamber.java @@ -27,6 +27,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.UnregisterReason; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.InventoryBlock; import me.mrCookieSlime.Slimefun.Objects.handlers.BlockTicker; import me.mrCookieSlime.Slimefun.api.BlockStorage; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock; import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu; import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset; @@ -39,10 +40,10 @@ public abstract class AutomatedCraftingChamber extends SlimefunItem implements I private static final int[] border_in = {9, 10, 11, 12, 13, 18, 22, 27, 31, 36, 40, 45, 46, 47, 48, 49}; private static final int[] border_out = {23, 24, 25, 26, 32, 35, 41, 42, 43, 44}; - public AutomatedCraftingChamber(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe) { - super(category, item, name, recipeType, recipe); + public AutomatedCraftingChamber(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) { + super(category, item, recipeType, recipe); - new BlockMenuPreset(name, "&6Automated Crafting Chamber") { + new BlockMenuPreset(getID(), "&6Automated Crafting Chamber") { @Override public void init() { @@ -106,7 +107,7 @@ public abstract class AutomatedCraftingChamber extends SlimefunItem implements I } }; - registerBlockHandler(name, new SlimefunBlockHandler() { + registerBlockHandler(getID(), new SlimefunBlockHandler() { @Override public void onPlace(Player p, Block b, SlimefunItem item) { diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/gps/PersonalActivationPlate.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/gps/PersonalActivationPlate.java new file mode 100644 index 000000000..fe136bf1d --- /dev/null +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/gps/PersonalActivationPlate.java @@ -0,0 +1,33 @@ +package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.gps; + +import org.bukkit.block.Block; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + +import me.mrCookieSlime.Slimefun.Lists.RecipeType; +import me.mrCookieSlime.Slimefun.Objects.Category; +import me.mrCookieSlime.Slimefun.Objects.SlimefunBlockHandler; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.UnregisterReason; +import me.mrCookieSlime.Slimefun.api.BlockStorage; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; + +public class PersonalActivationPlate extends SlimefunItem { + + public PersonalActivationPlate(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) { + super(category, item, recipeType, recipe); + + SlimefunItem.registerBlockHandler(getID(), new SlimefunBlockHandler() { + + @Override + public void onPlace(Player p, Block b, SlimefunItem item) { + BlockStorage.addBlockInfo(b, "owner", p.getUniqueId().toString()); + } + + @Override + public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) { + return true; + } + }); + } +} diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/ArmorForge.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/ArmorForge.java index 19e621072..58c4499de 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/ArmorForge.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/ArmorForge.java @@ -20,14 +20,14 @@ import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; import me.mrCookieSlime.Slimefun.api.Slimefun; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class ArmorForge extends MultiBlockMachine { public ArmorForge() { super( Categories.MACHINES_1, - SlimefunItems.ARMOR_FORGE, - "ARMOR_FORGE", + (SlimefunItemStack) SlimefunItems.ARMOR_FORGE, new ItemStack[] {null, null, null, null, new ItemStack(Material.ANVIL), null, null, new CustomItem(Material.DISPENSER, "Dispenser (Facing up)"), null}, new ItemStack[0], BlockFace.SELF diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/AutomatedPanningMachine.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/AutomatedPanningMachine.java index 36a564e17..ef6b81e3e 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/AutomatedPanningMachine.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/AutomatedPanningMachine.java @@ -18,6 +18,7 @@ import me.mrCookieSlime.Slimefun.Lists.Categories; import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; import me.mrCookieSlime.Slimefun.api.Slimefun; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class AutomatedPanningMachine extends MultiBlockMachine { @@ -30,8 +31,7 @@ public class AutomatedPanningMachine extends MultiBlockMachine { public AutomatedPanningMachine() { super( Categories.MACHINES_1, - SlimefunItems.AUTOMATED_PANNING_MACHINE, - "AUTOMATED_PANNING_MACHINE", + (SlimefunItemStack) SlimefunItems.AUTOMATED_PANNING_MACHINE, new ItemStack[] {null, null, null, null, new ItemStack(Material.OAK_TRAPDOOR), null, null, new ItemStack(Material.CAULDRON), null}, new ItemStack[] { new ItemStack(Material.GRAVEL), new ItemStack(Material.FLINT), diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/Compressor.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/Compressor.java index ac34b6cdc..f625f5092 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/Compressor.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/Compressor.java @@ -19,14 +19,14 @@ import me.mrCookieSlime.Slimefun.Lists.Categories; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class Compressor extends MultiBlockMachine { public Compressor() { super( Categories.MACHINES_1, - SlimefunItems.COMPRESSOR, - "COMPRESSOR", + (SlimefunItemStack) SlimefunItems.COMPRESSOR, new ItemStack[] {null, null, null, null, new ItemStack(Material.NETHER_BRICK_FENCE), null, new ItemStack(Material.PISTON), new CustomItem(Material.DISPENSER, "Dispenser (Facing up)"), new ItemStack(Material.PISTON)}, new ItemStack[] { new CustomItem(SlimefunItems.STONE_CHUNK, 4), new ItemStack(Material.COBBLESTONE), diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/EnhancedCraftingTable.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/EnhancedCraftingTable.java index 5d09b8c5b..55f30954a 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/EnhancedCraftingTable.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/EnhancedCraftingTable.java @@ -27,14 +27,14 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; import me.mrCookieSlime.Slimefun.api.PlayerProfile; import me.mrCookieSlime.Slimefun.api.Slimefun; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class EnhancedCraftingTable extends MultiBlockMachine { public EnhancedCraftingTable() { super( Categories.MACHINES_1, - SlimefunItems.ENHANCED_CRAFTING_TABLE, - "ENHANCED_CRAFTING_TABLE", + (SlimefunItemStack) SlimefunItems.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, null, null, null, new ItemStack(Material.CRAFTING_TABLE), null, null, new ItemStack(Material.DISPENSER), null}, new ItemStack[0], BlockFace.SELF diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/GrindStone.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/GrindStone.java index 69c5fe2df..b0342c630 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/GrindStone.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/GrindStone.java @@ -18,14 +18,14 @@ import me.mrCookieSlime.Slimefun.Lists.Categories; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class GrindStone extends MultiBlockMachine { public GrindStone() { super( Categories.MACHINES_1, - SlimefunItems.GRIND_STONE, - "GRIND_STONE", + (SlimefunItemStack) SlimefunItems.GRIND_STONE, new ItemStack[] {null, null, null, null, new ItemStack(Material.OAK_FENCE), null, null, new CustomItem(Material.DISPENSER, "Dispenser (Facing up)"), null}, new ItemStack[] { new ItemStack(Material.BLAZE_ROD), new ItemStack(Material.BLAZE_POWDER, 4), diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/Juicer.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/Juicer.java index 3b3638e0b..ab3edbdba 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/Juicer.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/Juicer.java @@ -19,14 +19,14 @@ import me.mrCookieSlime.Slimefun.Lists.Categories; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class Juicer extends MultiBlockMachine { public Juicer() { super( Categories.MACHINES_1, - SlimefunItems.JUICER, - "JUICER", + (SlimefunItemStack) SlimefunItems.JUICER, new ItemStack[] {null, new ItemStack(Material.GLASS), null, null, new ItemStack(Material.NETHER_BRICK_FENCE), null, null, new CustomItem(Material.DISPENSER, "Dispenser (Facing up)"), null}, new ItemStack[0], BlockFace.SELF diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/MagicWorkbench.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/MagicWorkbench.java index da937b8cf..e2f4754aa 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/MagicWorkbench.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/MagicWorkbench.java @@ -27,14 +27,14 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; import me.mrCookieSlime.Slimefun.api.PlayerProfile; import me.mrCookieSlime.Slimefun.api.Slimefun; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class MagicWorkbench extends MultiBlockMachine { public MagicWorkbench() { super( Categories.MACHINES_1, - SlimefunItems.MAGIC_WORKBENCH, - "MAGIC_WORKBENCH", + (SlimefunItemStack) SlimefunItems.MAGIC_WORKBENCH, new ItemStack[] {null, null, null, null, null, null, new ItemStack(Material.BOOKSHELF), new ItemStack(Material.CRAFTING_TABLE), new ItemStack(Material.DISPENSER)}, new ItemStack[0], BlockFace.UP diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/MultiBlockMachine.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/MultiBlockMachine.java index ae0fdf07f..ebdc25f1f 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/MultiBlockMachine.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/MultiBlockMachine.java @@ -16,6 +16,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunMachine; import me.mrCookieSlime.Slimefun.Objects.handlers.MultiBlockInteractionHandler; import me.mrCookieSlime.Slimefun.api.BlockStorage; import me.mrCookieSlime.Slimefun.api.Slimefun; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public abstract class MultiBlockMachine extends SlimefunMachine { @@ -27,14 +28,24 @@ public abstract class MultiBlockMachine extends SlimefunMachine { BlockFace.WEST }; + @Deprecated public MultiBlockMachine(Category category, ItemStack item, String id, ItemStack[] recipe, ItemStack[] machineRecipes, BlockFace trigger) { super(category, item, id, recipe, machineRecipes, trigger); } + + public MultiBlockMachine(Category category, SlimefunItemStack item, ItemStack[] recipe, ItemStack[] machineRecipes, BlockFace trigger) { + super(category, item, recipe, machineRecipes, trigger); + } + @Deprecated public MultiBlockMachine(Category category, ItemStack item, String id, ItemStack[] recipe, ItemStack[] machineRecipes, BlockFace trigger, String[] keys, Object[] values) { super(category, item, id, recipe, machineRecipes, trigger, keys, values); } + public MultiBlockMachine(Category category, SlimefunItemStack item, ItemStack[] recipe, ItemStack[] machineRecipes, BlockFace trigger, String[] keys, Object[] values) { + super(category, item, recipe, machineRecipes, trigger, keys, values); + } + @Override public void register() { register(true, getInteractionHandler()); diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/OreCrusher.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/OreCrusher.java index 00b05b33a..c0c6cf1a0 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/OreCrusher.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/OreCrusher.java @@ -19,14 +19,14 @@ import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; import me.mrCookieSlime.Slimefun.api.Slimefun; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class OreCrusher extends MultiBlockMachine { public OreCrusher() { super( Categories.MACHINES_1, - SlimefunItems.ORE_CRUSHER, - "ORE_CRUSHER", + (SlimefunItemStack) SlimefunItems.ORE_CRUSHER, new ItemStack[] {null, null, null, null, new ItemStack(Material.NETHER_BRICK_FENCE), null, new ItemStack(Material.IRON_BARS), new CustomItem(Material.DISPENSER, "Dispenser (Facing up)"), new ItemStack(Material.IRON_BARS)}, new ItemStack[] { new ItemStack(Material.COBBLESTONE, 8), new ItemStack(Material.SAND, 1), diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/OreWasher.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/OreWasher.java index c1c7610bb..236894841 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/OreWasher.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/OreWasher.java @@ -19,14 +19,14 @@ import me.mrCookieSlime.Slimefun.SlimefunPlugin; import me.mrCookieSlime.Slimefun.Lists.Categories; import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class OreWasher extends MultiBlockMachine { public OreWasher() { super( Categories.MACHINES_1, - SlimefunItems.ORE_WASHER, - "ORE_WASHER", + (SlimefunItemStack) SlimefunItems.ORE_WASHER, new ItemStack[] {null, new ItemStack(Material.DISPENSER), null, null, new ItemStack(Material.OAK_FENCE), null, null, new ItemStack(Material.CAULDRON), null}, new ItemStack[] { SlimefunItems.SIFTED_ORE, SlimefunItems.IRON_DUST, diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/PressureChamber.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/PressureChamber.java index c7c5c2909..8dd0e00a1 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/PressureChamber.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/PressureChamber.java @@ -20,14 +20,14 @@ import me.mrCookieSlime.Slimefun.Lists.Categories; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class PressureChamber extends MultiBlockMachine { public PressureChamber() { super( Categories.MACHINES_1, - SlimefunItems.PRESSURE_CHAMBER, - "PRESSURE_CHAMBER", + (SlimefunItemStack) SlimefunItems.PRESSURE_CHAMBER, new ItemStack[] {new ItemStack(Material.SMOOTH_STONE_SLAB), new CustomItem(Material.DISPENSER, "Dispenser (Facing down)"), new ItemStack(Material.SMOOTH_STONE_SLAB), new ItemStack(Material.PISTON), new ItemStack(Material.GLASS), new ItemStack(Material.PISTON), new ItemStack(Material.PISTON), new ItemStack(Material.CAULDRON), new ItemStack(Material.PISTON)}, new ItemStack[] { SlimefunItems.CARBON_CHUNK, SlimefunItems.SYNTHETIC_DIAMOND, diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/Smeltery.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/Smeltery.java index 580e1842a..9155c536d 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/Smeltery.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/Smeltery.java @@ -28,6 +28,7 @@ import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; import me.mrCookieSlime.Slimefun.api.BlockStorage; import me.mrCookieSlime.Slimefun.api.Slimefun; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class Smeltery extends MultiBlockMachine { @@ -36,8 +37,7 @@ public class Smeltery extends MultiBlockMachine { public Smeltery() { super( Categories.MACHINES_1, - SlimefunItems.SMELTERY, - "SMELTERY", + (SlimefunItemStack) SlimefunItems.SMELTERY, new ItemStack[] {null, new ItemStack(Material.NETHER_BRICK_FENCE), null, new ItemStack(Material.NETHER_BRICKS), new CustomItem(Material.DISPENSER, "Dispenser (Facing up)"), new ItemStack(Material.NETHER_BRICKS), null, new ItemStack(Material.FLINT_AND_STEEL), null}, new ItemStack[] { SlimefunItems.IRON_DUST, new ItemStack(Material.IRON_INGOT) diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/TableSaw.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/TableSaw.java index a9b401e86..ebf164ae8 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/TableSaw.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/TableSaw.java @@ -18,6 +18,7 @@ import io.github.thebusybiscuit.cscorelib2.inventory.ItemUtils; import io.github.thebusybiscuit.cscorelib2.materials.MaterialConverter; import me.mrCookieSlime.Slimefun.Lists.Categories; import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class TableSaw extends MultiBlockMachine { @@ -26,8 +27,7 @@ public class TableSaw extends MultiBlockMachine { public TableSaw() { super( Categories.MACHINES_1, - SlimefunItems.TABLE_SAW, - "TABLE_SAW", + (SlimefunItemStack) SlimefunItems.TABLE_SAW, new ItemStack[] {null, null, null, new ItemStack(Material.SMOOTH_STONE_SLAB), new ItemStack(Material.STONECUTTER), new ItemStack(Material.SMOOTH_STONE_SLAB), null, new ItemStack(Material.IRON_BLOCK), null}, new ItemStack[0], BlockFace.SELF