From 6f61176d0c9cb944976e95813160a8df0759effc Mon Sep 17 00:00:00 2001 From: mrCookieSlime Date: Sat, 17 Sep 2016 10:12:44 +0200 Subject: [PATCH 01/37] Immense Auto-Saving Optimizations --- .../Slimefun/URID/AutoSavingTask.java | 28 ++++++-- .../Slimefun/api/BlockStorage.java | 64 +++++++++++++++---- .../Slimefun/api/inventory/BlockMenu.java | 7 ++ .../api/inventory/UniversalBlockMenu.java | 8 +++ src/plugin.yml | 2 +- 5 files changed, 91 insertions(+), 18 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/URID/AutoSavingTask.java b/src/me/mrCookieSlime/Slimefun/URID/AutoSavingTask.java index fd05a2f8c..48babb7ff 100644 --- a/src/me/mrCookieSlime/Slimefun/URID/AutoSavingTask.java +++ b/src/me/mrCookieSlime/Slimefun/URID/AutoSavingTask.java @@ -1,19 +1,39 @@ package me.mrCookieSlime.Slimefun.URID; -import me.mrCookieSlime.Slimefun.SlimefunStartup; -import me.mrCookieSlime.Slimefun.api.BlockStorage; +import java.util.HashSet; +import java.util.Set; import org.bukkit.Bukkit; import org.bukkit.World; +import me.mrCookieSlime.Slimefun.SlimefunStartup; +import me.mrCookieSlime.Slimefun.api.BlockStorage; + public class AutoSavingTask implements Runnable { @Override public void run() { - System.out.println("[Slimefun] Auto-Saving Data... (Next Auto-Save: " + SlimefunStartup.getCfg().getInt("options.auto-save-delay-in-minutes") + "m)"); + Set worlds = new HashSet(); + for (World world: Bukkit.getWorlds()) { - if (BlockStorage.isWorldRegistered(world.getName())) BlockStorage.getStorage(world).save(false); + if (BlockStorage.isWorldRegistered(world.getName())) { + BlockStorage storage = BlockStorage.getStorage(world); + storage.computeChanges(); + + if (storage.getChanges() > 0) { + worlds.add(storage); + } + } } + + if (!worlds.isEmpty()) { + System.out.println("[Slimefun] Auto-Saving Data... (Next Auto-Save: " + SlimefunStartup.getCfg().getInt("options.auto-save-delay-in-minutes") + "m)"); + + for (BlockStorage storage: worlds) { + storage.save(false); + } + } + } } diff --git a/src/me/mrCookieSlime/Slimefun/api/BlockStorage.java b/src/me/mrCookieSlime/Slimefun/api/BlockStorage.java index 7a2e837f5..9d0c911ce 100644 --- a/src/me/mrCookieSlime/Slimefun/api/BlockStorage.java +++ b/src/me/mrCookieSlime/Slimefun/api/BlockStorage.java @@ -162,9 +162,38 @@ public class BlockStorage { } } } + + private static int chunk_changes = 0; + private int changes = 0; + + public void computeChanges() { + changes = cache_blocks.size() + chunk_changes; + + Map inventories2 = new HashMap(inventories); + for (Map.Entry entry: inventories2.entrySet()) { + changes += entry.getValue().changes; + } + + Map universal_inventories2 = new HashMap(universal_inventories); + for (Map.Entry entry: universal_inventories2.entrySet()) { + changes += entry.getValue().changes; + } + } + + public int getChanges() { + return changes; + } public void save(boolean remove) { - System.out.println("[Slimefun] Saving Blocks for World \"" + world.getName() + "\""); + this.save(true, remove); + } + + public void save(boolean computeChanges, boolean remove) { + if (computeChanges) computeChanges(); + + if (changes == 0) return; + + System.out.println("[Slimefun] Saving Blocks for World \"" + world.getName() + "\" (" + changes + " Changes queued)"); Map cache = new HashMap(cache_blocks); @@ -173,7 +202,7 @@ public class BlockStorage { Config cfg = entry.getValue(); if (cfg.getKeys().isEmpty()) cfg.getFile().delete(); else cfg.save(); - } + } Map inventories2 = new HashMap(inventories); @@ -181,22 +210,29 @@ public class BlockStorage { entry.getValue().save(entry.getKey()); } - for (Map.Entry entry: universal_inventories.entrySet()) { + Map universal_inventories2 = new HashMap(universal_inventories); + + for (Map.Entry entry: universal_inventories2.entrySet()) { entry.getValue().save(); } - File chunks = new File(path_chunks + "chunks.sfc"); - Config cfg = new Config("data-storage/Slimefun/temp.yml"); - - for (Map.Entry entry: map_chunks.entrySet()) { - cfg.setValue(entry.getKey(), entry.getValue()); + if (chunk_changes > 0) { + File chunks = new File(path_chunks + "chunks.sfc"); + Config cfg = new Config("data-storage/Slimefun/temp.yml"); + + for (Map.Entry entry: map_chunks.entrySet()) { + cfg.setValue(entry.getKey(), entry.getValue()); + } + + cfg.save(chunks); + + if (remove) { + worlds.remove(world.getName()); + } } - cfg.save(chunks); - - if (remove) { - worlds.remove(world.getName()); - } + changes = 0; + chunk_changes = 0; } public static void store(Block block, ItemStack item) { @@ -591,6 +627,8 @@ public class BlockStorage { } map_chunks.put(serializeChunk(chunk), json.toJSONString()); + + chunk_changes++; } public static String getChunkInfo(Chunk chunk, String key) { diff --git a/src/me/mrCookieSlime/Slimefun/api/inventory/BlockMenu.java b/src/me/mrCookieSlime/Slimefun/api/inventory/BlockMenu.java index ea6da893a..a1a9ea29f 100644 --- a/src/me/mrCookieSlime/Slimefun/api/inventory/BlockMenu.java +++ b/src/me/mrCookieSlime/Slimefun/api/inventory/BlockMenu.java @@ -16,6 +16,8 @@ public class BlockMenu extends ChestMenu { BlockMenuPreset preset; Location l; + public int changes = 0; + private ItemManipulationEvent event; private static String serializeLocation(Location l) { @@ -26,6 +28,7 @@ public class BlockMenu extends ChestMenu { super(preset.getTitle()); this.preset = preset; this.l = l; + changes = 1; preset.clone(this); @@ -55,6 +58,7 @@ public class BlockMenu extends ChestMenu { } public void save(Location l) { + if (changes == 0) return; // To force CS-CoreLib to build the Inventory this.getContents(); @@ -65,6 +69,8 @@ public class BlockMenu extends ChestMenu { cfg.setValue(String.valueOf(slot), getItemInSlot(slot)); } cfg.save(); + + changes = 0; } public void move(Block b) { @@ -104,6 +110,7 @@ public class BlockMenu extends ChestMenu { super.replaceExistingItem(slot, item); if (event && this.event != null) this.event.onEvent(slot, previous, item); + changes++; } public void close() { diff --git a/src/me/mrCookieSlime/Slimefun/api/inventory/UniversalBlockMenu.java b/src/me/mrCookieSlime/Slimefun/api/inventory/UniversalBlockMenu.java index 9322878c2..37b71df94 100644 --- a/src/me/mrCookieSlime/Slimefun/api/inventory/UniversalBlockMenu.java +++ b/src/me/mrCookieSlime/Slimefun/api/inventory/UniversalBlockMenu.java @@ -15,9 +15,12 @@ public class UniversalBlockMenu extends ChestMenu { BlockMenuPreset preset; ItemManipulationEvent event; + public int changes = 0; + public UniversalBlockMenu(BlockMenuPreset preset) { super(preset.getTitle()); this.preset = preset; + changes = 1; preset.clone(this); @@ -46,6 +49,7 @@ public class UniversalBlockMenu extends ChestMenu { } public void save() { + if (changes == 0) return; // To force CS-CoreLib to build the Inventory this.getContents(); @@ -56,6 +60,8 @@ public class UniversalBlockMenu extends ChestMenu { cfg.setValue(String.valueOf(slot), getItemInSlot(slot)); } cfg.save(); + + changes = 0; } public BlockMenuPreset getPreset() { @@ -76,6 +82,8 @@ public class UniversalBlockMenu extends ChestMenu { super.replaceExistingItem(slot, item); if (event && this.event != null) this.event.onEvent(slot, previous, item); + + changes++; } public void close() { diff --git a/src/plugin.yml b/src/plugin.yml index c910b67c7..541285816 100644 --- a/src/plugin.yml +++ b/src/plugin.yml @@ -1,5 +1,5 @@ name: Slimefun -version: 4.0.13 +version: 4.0.14 authors: [mrCookieSlime, John000708, st392, DeathlyPanda, BlackBeltPanda] description: Slimefun basically turns your entire Server into a FTB modpack without installing a single mod website: http://TheBusyBiscuit.github.io/ From c06470d45042281be05c98d5680d9be6b99d233b Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 16 Oct 2016 13:44:17 +0200 Subject: [PATCH 02/37] Made Elytras enchantable in normal anvils. --- .../Slimefun/listeners/ItemListener.java | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java b/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java index 98efda24f..2c7118dd0 100644 --- a/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java +++ b/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java @@ -86,41 +86,41 @@ public class ItemListener implements Listener { } else if (BlockStorage.hasBlockInfo(e.getClickedBlock())) { p.sendMessage(" "); - p.sendMessage("§d" + e.getClickedBlock().getType() + ":" + e.getClickedBlock().getData() + " §e@ X: " + e.getClickedBlock().getX() + " Y: " + e.getClickedBlock().getY() + " Z: " + e.getClickedBlock().getZ()); - p.sendMessage("§dID: " + "§e" + BlockStorage.checkID(e.getClickedBlock())); + p.sendMessage("�d" + e.getClickedBlock().getType() + ":" + e.getClickedBlock().getData() + " �e@ X: " + e.getClickedBlock().getX() + " Y: " + e.getClickedBlock().getY() + " Z: " + e.getClickedBlock().getZ()); + p.sendMessage("�dID: " + "�e" + BlockStorage.checkID(e.getClickedBlock())); if (e.getClickedBlock().getState() instanceof Skull) { - p.sendMessage("§dSkull: " + "§2\u2714"); - p.sendMessage(" §dRotation: §e" + ((Skull) e.getClickedBlock().getState()).getRotation().toString()); + p.sendMessage("�dSkull: " + "�2\u2714"); + p.sendMessage(" �dRotation: �e" + ((Skull) e.getClickedBlock().getState()).getRotation().toString()); } if (BlockStorage.getStorage(e.getClickedBlock().getWorld()).hasInventory(e.getClickedBlock().getLocation())) { - p.sendMessage("§dInventory: " + "§2\u2714"); + p.sendMessage("�dInventory: " + "�2\u2714"); } else { - p.sendMessage("§dInventory: " + "§4\u2718"); + p.sendMessage("�dInventory: " + "�4\u2718"); } if (BlockStorage.check(e.getClickedBlock()).isTicking()) { - p.sendMessage("§dTicking: " + "§2\u2714"); - p.sendMessage(" §dAsync: §e" + (BlockStorage.check(e.getClickedBlock()).getTicker().isSynchronized() ? "§4\u2718": "§2\u2714")); - p.sendMessage(" §dTimings: §e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock()) + "ms"); - p.sendMessage(" §dTotal Timings: §e" + SlimefunStartup.ticker.getTimings(BlockStorage.checkID(e.getClickedBlock())) + "ms"); - p.sendMessage(" §dChunk Timings: §e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock().getChunk()) + "ms"); + p.sendMessage("�dTicking: " + "�2\u2714"); + p.sendMessage(" �dAsync: �e" + (BlockStorage.check(e.getClickedBlock()).getTicker().isSynchronized() ? "�4\u2718": "�2\u2714")); + p.sendMessage(" �dTimings: �e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock()) + "ms"); + p.sendMessage(" �dTotal Timings: �e" + SlimefunStartup.ticker.getTimings(BlockStorage.checkID(e.getClickedBlock())) + "ms"); + p.sendMessage(" �dChunk Timings: �e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock().getChunk()) + "ms"); } else if (BlockStorage.check(e.getClickedBlock()).getEnergyTicker() != null) { - p.sendMessage("§dTicking: " + "§b~ §3(Indirect)"); - p.sendMessage(" §dTimings: §e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock()) + "ms"); - p.sendMessage(" §dChunk Timings: §e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock().getChunk()) + "ms"); + p.sendMessage("�dTicking: " + "�b~ �3(Indirect)"); + p.sendMessage(" �dTimings: �e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock()) + "ms"); + p.sendMessage(" �dChunk Timings: �e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock().getChunk()) + "ms"); } else { - p.sendMessage("§dTicking: " + "§4\u2718"); + p.sendMessage("�dTicking: " + "�4\u2718"); } if (ChargableBlock.isChargable(e.getClickedBlock())) { - p.sendMessage("§dChargable: " + "§2\u2714"); - p.sendMessage(" §dEnergy: §e" + ChargableBlock.getCharge(e.getClickedBlock()) + " / " + ChargableBlock.getMaxCharge(e.getClickedBlock())); + p.sendMessage("�dChargable: " + "�2\u2714"); + p.sendMessage(" �dEnergy: �e" + ChargableBlock.getCharge(e.getClickedBlock()) + " / " + ChargableBlock.getMaxCharge(e.getClickedBlock())); } else { - p.sendMessage("§dChargable: " + "§4\u2718"); + p.sendMessage("�dChargable: " + "�4\u2718"); } - p.sendMessage("§6" + BlockStorage.getBlockInfoAsJson(e.getClickedBlock())); + p.sendMessage("�6" + BlockStorage.getBlockInfoAsJson(e.getClickedBlock())); p.sendMessage(" "); } break; @@ -290,7 +290,7 @@ public class ItemListener implements Listener { @EventHandler public void onAnvil(InventoryClickEvent e) { if (e.getRawSlot() == 2 && e.getWhoClicked() instanceof Player && e.getInventory().getType() == InventoryType.ANVIL) { - if (SlimefunItem.getByItem(e.getInventory().getContents()[0]) != null && !SlimefunItem.isDisabled(e.getInventory().getContents()[0])) { + if (SlimefunItem.getByItem(e.getInventory().getContents()[0]) != null && !SlimefunItem.isDisabled(e.getInventory().getContents()[0]) && e.getInventory().getContents()[0].getType() != Material.ELYTRA) { e.setCancelled(true); Messages.local.sendTranslation((Player) e.getWhoClicked(), "anvil.not-working", true); } From bfe85cdeeba6aff391a4f21d036ac3de4af2717a Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 16 Oct 2016 13:58:23 +0200 Subject: [PATCH 03/37] Fix bad encoding.. --- .../Slimefun/listeners/ItemListener.java | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java b/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java index 2c7118dd0..96f69e3b8 100644 --- a/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java +++ b/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java @@ -86,41 +86,41 @@ public class ItemListener implements Listener { } else if (BlockStorage.hasBlockInfo(e.getClickedBlock())) { p.sendMessage(" "); - p.sendMessage("�d" + e.getClickedBlock().getType() + ":" + e.getClickedBlock().getData() + " �e@ X: " + e.getClickedBlock().getX() + " Y: " + e.getClickedBlock().getY() + " Z: " + e.getClickedBlock().getZ()); - p.sendMessage("�dID: " + "�e" + BlockStorage.checkID(e.getClickedBlock())); + p.sendMessage("§d" + e.getClickedBlock().getType() + ":" + e.getClickedBlock().getData() + " §e@ X: " + e.getClickedBlock().getX() + " Y: " + e.getClickedBlock().getY() + " Z: " + e.getClickedBlock().getZ()); + p.sendMessage("§dID: " + "§e" + BlockStorage.checkID(e.getClickedBlock())); if (e.getClickedBlock().getState() instanceof Skull) { - p.sendMessage("�dSkull: " + "�2\u2714"); - p.sendMessage(" �dRotation: �e" + ((Skull) e.getClickedBlock().getState()).getRotation().toString()); + p.sendMessage("§dSkull: " + "§2\u2714"); + p.sendMessage(" §dRotation: §e" + ((Skull) e.getClickedBlock().getState()).getRotation().toString()); } if (BlockStorage.getStorage(e.getClickedBlock().getWorld()).hasInventory(e.getClickedBlock().getLocation())) { - p.sendMessage("�dInventory: " + "�2\u2714"); + p.sendMessage("§dInventory: " + "§2\u2714"); } else { - p.sendMessage("�dInventory: " + "�4\u2718"); + p.sendMessage("§dInventory: " + "§4\u2718"); } if (BlockStorage.check(e.getClickedBlock()).isTicking()) { - p.sendMessage("�dTicking: " + "�2\u2714"); - p.sendMessage(" �dAsync: �e" + (BlockStorage.check(e.getClickedBlock()).getTicker().isSynchronized() ? "�4\u2718": "�2\u2714")); - p.sendMessage(" �dTimings: �e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock()) + "ms"); - p.sendMessage(" �dTotal Timings: �e" + SlimefunStartup.ticker.getTimings(BlockStorage.checkID(e.getClickedBlock())) + "ms"); - p.sendMessage(" �dChunk Timings: �e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock().getChunk()) + "ms"); + p.sendMessage("§dTicking: " + "§2\u2714"); + p.sendMessage(" §dAsync: §e" + (BlockStorage.check(e.getClickedBlock()).getTicker().isSynchronized() ? "§4\u2718": "§2\u2714")); + p.sendMessage(" §dTimings: §e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock()) + "ms"); + p.sendMessage(" §dTotal Timings: §e" + SlimefunStartup.ticker.getTimings(BlockStorage.checkID(e.getClickedBlock())) + "ms"); + p.sendMessage(" §dChunk Timings: §e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock().getChunk()) + "ms"); } else if (BlockStorage.check(e.getClickedBlock()).getEnergyTicker() != null) { - p.sendMessage("�dTicking: " + "�b~ �3(Indirect)"); - p.sendMessage(" �dTimings: �e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock()) + "ms"); - p.sendMessage(" �dChunk Timings: �e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock().getChunk()) + "ms"); + p.sendMessage("§dTicking: " + "§b~ §3(Indirect)"); + p.sendMessage(" §dTimings: §e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock()) + "ms"); + p.sendMessage(" §dChunk Timings: §e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock().getChunk()) + "ms"); } else { - p.sendMessage("�dTicking: " + "�4\u2718"); + p.sendMessage("§dTicking: " + "§4\u2718"); } if (ChargableBlock.isChargable(e.getClickedBlock())) { - p.sendMessage("�dChargable: " + "�2\u2714"); - p.sendMessage(" �dEnergy: �e" + ChargableBlock.getCharge(e.getClickedBlock()) + " / " + ChargableBlock.getMaxCharge(e.getClickedBlock())); + p.sendMessage("§dChargable: " + "§2\u2714"); + p.sendMessage(" §dEnergy: §e" + ChargableBlock.getCharge(e.getClickedBlock()) + " / " + ChargableBlock.getMaxCharge(e.getClickedBlock())); } else { - p.sendMessage("�dChargable: " + "�4\u2718"); + p.sendMessage("§dChargable: " + "§4\u2718"); } - p.sendMessage("�6" + BlockStorage.getBlockInfoAsJson(e.getClickedBlock())); + p.sendMessage("§6" + BlockStorage.getBlockInfoAsJson(e.getClickedBlock())); p.sendMessage(" "); } break; From 4daffec161bf7dbcb5cfb5b63d9c61a2de154a92 Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Sun, 16 Oct 2016 22:03:41 +0200 Subject: [PATCH 04/37] Failsafe for Elytras in Anvils --- src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java b/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java index 96f69e3b8..2cebc21b7 100644 --- a/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java +++ b/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java @@ -290,7 +290,8 @@ public class ItemListener implements Listener { @EventHandler public void onAnvil(InventoryClickEvent e) { if (e.getRawSlot() == 2 && e.getWhoClicked() instanceof Player && e.getInventory().getType() == InventoryType.ANVIL) { - if (SlimefunItem.getByItem(e.getInventory().getContents()[0]) != null && !SlimefunItem.isDisabled(e.getInventory().getContents()[0]) && e.getInventory().getContents()[0].getType() != Material.ELYTRA) { + if (SlimefunItem.getByItem(e.getInventory().getContents()[0]) != null && !SlimefunItem.isDisabled(e.getInventory().getContents()[0])) { + if (SlimefunManager.isItemSimiliar(e.getInventory().getContents()[0], new ItemStack(Material.ELYTRA))) return; e.setCancelled(true); Messages.local.sendTranslation((Player) e.getWhoClicked(), "anvil.not-working", true); } From ab4562334401777276f76447aa70956b4f298346 Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Sun, 16 Oct 2016 22:08:07 +0200 Subject: [PATCH 05/37] Failsafe for Elytras in Anvils (2/2) --- src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java b/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java index 2cebc21b7..200360712 100644 --- a/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java +++ b/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java @@ -290,8 +290,9 @@ public class ItemListener implements Listener { @EventHandler public void onAnvil(InventoryClickEvent e) { if (e.getRawSlot() == 2 && e.getWhoClicked() instanceof Player && e.getInventory().getType() == InventoryType.ANVIL) { + if (SlimefunManager.isItemSimiliar(e.getInventory().getContents()[0], SlimefunItems.ELYTRA)) return; + if (SlimefunItem.getByItem(e.getInventory().getContents()[0]) != null && !SlimefunItem.isDisabled(e.getInventory().getContents()[0])) { - if (SlimefunManager.isItemSimiliar(e.getInventory().getContents()[0], new ItemStack(Material.ELYTRA))) return; e.setCancelled(true); Messages.local.sendTranslation((Player) e.getWhoClicked(), "anvil.not-working", true); } From ba644401f40a43ba344a4352aca3696542cecc94 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Fri, 28 Oct 2016 16:32:23 +0200 Subject: [PATCH 06/37] Fixed Chiseled Quartz being used for infinite silicon in a smeltery. (Also fixed for any other similar items with different data) --- .../Slimefun/Setup/SlimefunSetup.java | 60 +++++++++---------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java b/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java index 28cb8eef5..e8a6b6872 100644 --- a/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java +++ b/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java @@ -647,11 +647,11 @@ public class SlimefunSetup { for (ItemStack converting: inputs.get(i)) { if (converting != null) { for (int j = 0; j < inv.getContents().length; j++) { - if (j == (inv.getContents().length - 1) && !SlimefunManager.isItemSimiliar(converting, inv.getContents()[j], true)) { + if (j == (inv.getContents().length - 1) && !SlimefunManager.isItemSimiliar(converting, inv.getContents()[j], true, SlimefunManager.DataType.ALWAYS)) { craft = false; break; } - else if (SlimefunManager.isItemSimiliar(inv.getContents()[j], converting, true)) break; + else if (SlimefunManager.isItemSimiliar(inv.getContents()[j], converting, true, SlimefunManager.DataType.ALWAYS)) break; } } } @@ -2992,7 +2992,7 @@ public class SlimefunSetup { new ItemStack[] {null, new ItemStack(Material.ENCHANTMENT_TABLE), null, SlimefunItems.MAGIC_LUMP_3, SlimefunItems.GOLD_8K, SlimefunItems.MAGIC_LUMP_3, new ItemStack(Material.OBSIDIAN), SlimefunItems.GOLD_8K, new ItemStack(Material.OBSIDIAN)}) .register(true); - new SlimefunItem(Categories.BIRTHDAY, new CustomItem(new MaterialData(Material.CAKE), "§bBirthday Cake"), "BIRTHDAY_CAKE", RecipeType.ENHANCED_CRAFTING_TABLE, + new SlimefunItem(Categories.BIRTHDAY, new CustomItem(new MaterialData(Material.CAKE), "§bBirthday Cake"), "BIRTHDAY_CAKE", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, new ItemStack(Material.TORCH), null, new ItemStack(Material.SUGAR), new ItemStack(Material.CAKE), new ItemStack(Material.SUGAR), null, null, null}) .register(true); @@ -3152,7 +3152,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§bElectric Furnace"; + return "§bElectric Furnace"; } @Override @@ -3177,7 +3177,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§bElectric Furnace"; + return "§bElectric Furnace"; } @Override @@ -3202,7 +3202,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§bElectric Furnace"; + return "§bElectric Furnace"; } @Override @@ -3311,7 +3311,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cElectric Ingot Factory"; + return "§cElectric Ingot Factory"; } @Override @@ -3336,7 +3336,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cElectric Ingot Factory"; + return "§cElectric Ingot Factory"; } @Override @@ -3361,7 +3361,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cElectric Ingot Factory"; + return "§cElectric Ingot Factory"; } @Override @@ -3390,7 +3390,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§bElectric Ore Grinder"; + return "§bElectric Ore Grinder"; } @Override @@ -3424,7 +3424,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§bElectric Ore Grinder"; + return "§bElectric Ore Grinder"; } @Override @@ -3518,7 +3518,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cCoal Generator"; + return "§cCoal Generator"; } @Override @@ -3580,7 +3580,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§2Bio Reactor"; + return "§2Bio Reactor"; } @Override @@ -3638,8 +3638,8 @@ public class SlimefunSetup { if (e.getClickedBlock() != null && ChargableBlock.isChargable(e.getClickedBlock())) { e.setCancelled(true); p.sendMessage(""); - p.sendMessage("§bStored Energy: §3" + DoubleHandler.getFancyDouble(ChargableBlock.getCharge(e.getClickedBlock())) + " J"); - p.sendMessage("§bCapacity: §3" + DoubleHandler.getFancyDouble(ChargableBlock.getMaxCharge(e.getClickedBlock())) + " J"); + p.sendMessage("§bStored Energy: §3" + DoubleHandler.getFancyDouble(ChargableBlock.getCharge(e.getClickedBlock())) + " J"); + p.sendMessage("§bCapacity: §3" + DoubleHandler.getFancyDouble(ChargableBlock.getMaxCharge(e.getClickedBlock())) + " J"); p.sendMessage(""); } return true; @@ -4299,7 +4299,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§4Lava Generator"; + return "§4Lava Generator"; } @Override @@ -4325,7 +4325,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cCombustion Reactor"; + return "§cCombustion Reactor"; } @Override @@ -4507,7 +4507,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cFood Fabricator"; + return "§cFood Fabricator"; } @Override @@ -4532,7 +4532,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cFood Fabricator"; + return "§cFood Fabricator"; } @Override @@ -4597,7 +4597,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cFood Composter"; + return "§cFood Composter"; } @Override @@ -4622,7 +4622,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cFood Composter"; + return "§cFood Composter"; } @Override @@ -4717,7 +4717,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§bFreezer"; + return "§bFreezer"; } @Override @@ -4742,7 +4742,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§bFreezer"; + return "§bFreezer"; } @Override @@ -4815,11 +4815,11 @@ public class SlimefunSetup { if (BlockStorage.getBlockInfo(e.getClickedBlock(), "visualizer") == null) { BlockStorage.addBlockInfo(e.getClickedBlock(), "visualizer", "disabled"); - p.sendMessage("§cCargo Net Visualizer: " + "§4\u2718"); + p.sendMessage("§cCargo Net Visualizer: " + "§4\u2718"); } else { BlockStorage.addBlockInfo(e.getClickedBlock(), "visualizer", null); - p.sendMessage("§cCargo Net Visualizer: " + "§2\u2714"); + p.sendMessage("§cCargo Net Visualizer: " + "§2\u2714"); } return true; } @@ -4850,10 +4850,10 @@ public class SlimefunSetup { if (!item.getName().equals("CARGO_NODE")) return false; if (CargoNet.isConnected(e.getClickedBlock())) { - p.sendMessage("§7Connected: " + "§2\u2714"); + p.sendMessage("§7Connected: " + "§2\u2714"); } else { - p.sendMessage("§7Connected: " + "§4\u2718"); + p.sendMessage("§7Connected: " + "§4\u2718"); } return true; } @@ -4902,7 +4902,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cCarbon Press"; + return "§cCarbon Press"; } @Override @@ -4927,7 +4927,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cCarbon Press"; + return "§cCarbon Press"; } @Override @@ -4952,7 +4952,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cCarbon Press"; + return "§cCarbon Press"; } @Override From 01bf454794e6f6d537256d7762d3cf4812b80a1d Mon Sep 17 00:00:00 2001 From: BuildTools Date: Fri, 28 Oct 2016 19:38:09 +0200 Subject: [PATCH 07/37] Added an option to disable the disenchanting of Slimefun Items. --- src/config.yml | 1 + .../machines/AutoDisenchanter.java | 21 ++++++++++++------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/config.yml b/src/config.yml index b6ce9c380..e63cd1ace 100644 --- a/src/config.yml +++ b/src/config.yml @@ -1,6 +1,7 @@ options: auto-update: true armor-update-interval: 10 + allow-vanilla-disenchanting-only: false give-guide-on-first-join: true print-out-loading: false enable-armor-effects: true diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AutoDisenchanter.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AutoDisenchanter.java index d0a40147b..7d48dfc55 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AutoDisenchanter.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AutoDisenchanter.java @@ -13,9 +13,11 @@ import me.mrCookieSlime.EmeraldEnchants.EmeraldEnchants; import me.mrCookieSlime.EmeraldEnchants.ItemEnchantment; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Objects.Category; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AContainer; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.MachineHelper; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.MachineRecipe; +import me.mrCookieSlime.Slimefun.SlimefunStartup; import me.mrCookieSlime.Slimefun.api.BlockStorage; import me.mrCookieSlime.Slimefun.api.Slimefun; import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock; @@ -29,14 +31,16 @@ import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.material.MaterialData; public class AutoDisenchanter extends AContainer { + private boolean allowSlimefunItems; public AutoDisenchanter(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe) { super(category, item, name, recipeType, recipe); + allowSlimefunItems = !SlimefunStartup.getCfg().getBoolean("options.allow-vanilla-disenchanting-only"); } @Override public String getInventoryTitle() { - return "§5Auto-Disenchanter"; + return "§5Auto-Disenchanter"; } @Override @@ -51,7 +55,7 @@ public class AutoDisenchanter extends AContainer { public int getEnergyConsumption() { return 9; } - + @SuppressWarnings("deprecation") @Override protected void tick(Block b) { @@ -68,9 +72,9 @@ public class AutoDisenchanter extends AContainer { lore.add(MachineHelper.getTimeLeft(timeleft / 2)); im.setLore(lore); item.setItemMeta(im); - + BlockStorage.getInventory(b).replaceExistingItem(22, item); - + if (ChargableBlock.isChargable(b)) { if (ChargableBlock.getCharge(b) < getEnergyConsumption()) return; ChargableBlock.addCharge(b, -getEnergyConsumption()); @@ -81,7 +85,7 @@ public class AutoDisenchanter extends AContainer { else { BlockStorage.getInventory(b).replaceExistingItem(22, new CustomItem(new MaterialData(Material.STAINED_GLASS_PANE, (byte) 15), " ")); pushItems(b, processing.get(b).getOutput()); - + progress.remove(b); processing.remove(b); } @@ -94,9 +98,10 @@ public class AutoDisenchanter extends AContainer { for (int slot: getInputSlots()) { ItemStack target = BlockStorage.getInventory(b).getItemInSlot(slot == getInputSlots()[0] ? getInputSlots()[1]: getInputSlots()[0]); ItemStack item = BlockStorage.getInventory(b).getItemInSlot(slot); + if(!allowSlimefunItems && SlimefunItem.getByItem(item) != null) return; if (item != null && target != null && target.getType() == Material.BOOK) { int amount = 0; - + for (Map.Entry e: item.getEnchantments().entrySet()) { enchantments.put(e.getKey(), e.getValue()); amount++; @@ -118,7 +123,7 @@ public class AutoDisenchanter extends AContainer { meta.addStoredEnchant(e.getKey(), e.getValue(), true); } book.setItemMeta(meta); - + for (ItemEnchantment e: enchantments2) { EmeraldEnchants.getInstance().getRegistry().applyEnchantment(book, e.getEnchantment(), e.getLevel()); EmeraldEnchants.getInstance().getRegistry().applyEnchantment(newItem, e.getEnchantment(), 0); @@ -128,7 +133,7 @@ public class AutoDisenchanter extends AContainer { } } } - + if (r != null) { if (!fits(b, r.getOutput())) return; for (int slot: getInputSlots()) { From 435d236ef1f8db4582791a86997dbe910ddec68f Mon Sep 17 00:00:00 2001 From: BuildTools Date: Fri, 28 Oct 2016 22:08:40 +0200 Subject: [PATCH 08/37] Make the disenchanting feature individual for each item. --- src/config.yml | 1 - .../Objects/SlimefunItem/SlimefunItem.java | 14 +++++++++++++- .../SlimefunItem/machines/AutoDisenchanter.java | 4 +--- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/config.yml b/src/config.yml index e63cd1ace..b6ce9c380 100644 --- a/src/config.yml +++ b/src/config.yml @@ -1,7 +1,6 @@ options: auto-update: true armor-update-interval: 10 - allow-vanilla-disenchanting-only: false give-guide-on-first-join: true print-out-loading: false enable-armor-effects: true diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.java index 23e72887a..bf2b692f5 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.java @@ -55,7 +55,7 @@ public class SlimefunItem { String[] keys; Object[] values; Research research; - boolean ghost, replacing; + boolean ghost, replacing, disenchantable; Set itemhandlers; URID urid; boolean ticking = false; @@ -93,6 +93,8 @@ public class SlimefunItem { this.values = null; this.ghost = false; this.replacing = false; + this.disenchantable = true; + itemhandlers = new HashSet(); urid = URID.nextURID(this, false); @@ -109,6 +111,7 @@ public class SlimefunItem { this.values = null; this.ghost = false; this.replacing = false; + this.disenchantable = true; itemhandlers = new HashSet(); urid = URID.nextURID(this, false); @@ -125,6 +128,7 @@ public class SlimefunItem { this.values = values; this.ghost = false; this.replacing = false; + this.disenchantable = true; itemhandlers = new HashSet(); urid = URID.nextURID(this, false); @@ -141,6 +145,7 @@ public class SlimefunItem { this.values = values; this.ghost = false; this.replacing = false; + this.disenchantable = true; itemhandlers = new HashSet(); urid = URID.nextURID(this, false); @@ -157,6 +162,7 @@ public class SlimefunItem { this.values = null; this.ghost = ghost; this.replacing = false; + this.disenchantable = true; itemhandlers = new HashSet(); urid = URID.nextURID(this, false); @@ -173,6 +179,7 @@ public class SlimefunItem { SlimefunStartup.getItemCfg().setDefaultValue(this.name + ".enabled", true); SlimefunStartup.getItemCfg().setDefaultValue(this.name + ".can-be-used-in-workbenches", this.replacing); + SlimefunStartup.getItemCfg().setDefaultValue(this.name + ".allow-disenchanting", this.disenchantable); SlimefunStartup.getItemCfg().setDefaultValue(this.name + ".required-permission", ""); if (this.keys != null && this.values != null) { for (int i = 0; i < this.keys.length; i++) { @@ -191,6 +198,7 @@ public class SlimefunItem { else if (SlimefunStartup.getItemCfg().getBoolean(this.name + ".enabled")) { if (!Category.list().contains(category)) category.register(); this.replacing = SlimefunStartup.getItemCfg().getBoolean(this.name + ".can-be-used-in-workbenches"); + this.disenchantable = SlimefunStartup.getItemCfg().getBoolean(this.name + ".allow-disenchanting"); items.add(this); if (slimefun) vanilla++; map_name.put(this.getName(), this.getURID()); @@ -313,6 +321,10 @@ public class SlimefunItem { public boolean isReplacing() { return replacing; } + + public boolean isDisenchantable() { + return disenchantable; + } public void setReplacing(boolean replacing) { this.replacing = replacing; diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AutoDisenchanter.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AutoDisenchanter.java index 7d48dfc55..4c063005e 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AutoDisenchanter.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AutoDisenchanter.java @@ -31,11 +31,9 @@ import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.material.MaterialData; public class AutoDisenchanter extends AContainer { - private boolean allowSlimefunItems; public AutoDisenchanter(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe) { super(category, item, name, recipeType, recipe); - allowSlimefunItems = !SlimefunStartup.getCfg().getBoolean("options.allow-vanilla-disenchanting-only"); } @Override @@ -98,7 +96,7 @@ public class AutoDisenchanter extends AContainer { for (int slot: getInputSlots()) { ItemStack target = BlockStorage.getInventory(b).getItemInSlot(slot == getInputSlots()[0] ? getInputSlots()[1]: getInputSlots()[0]); ItemStack item = BlockStorage.getInventory(b).getItemInSlot(slot); - if(!allowSlimefunItems && SlimefunItem.getByItem(item) != null) return; + if(SlimefunItem.getByItem(item) != null && !SlimefunItem.getByItem(item).isDisenchantable()) return; if (item != null && target != null && target.getType() == Material.BOOK) { int amount = 0; From f3d9346619d2e30adbf660cde62f1285f8d4a89a Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Sun, 30 Oct 2016 11:01:01 +0100 Subject: [PATCH 09/37] Cargo Nodes can now be opened by anyone permitted to access Inventories in that Area --- .../SlimefunItem/machines/CargoCraftingNode.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoCraftingNode.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoCraftingNode.java index 0778e108c..119947189 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoCraftingNode.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoCraftingNode.java @@ -28,7 +28,7 @@ public class CargoCraftingNode extends SlimefunItem { public CargoCraftingNode(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe) { super(category, item, name, recipeType, recipe); - new BlockMenuPreset(name, "§3Input Node") { + new BlockMenuPreset(name, "§3Input Node") { @Override public void init() { @@ -39,7 +39,7 @@ public class CargoCraftingNode extends SlimefunItem { @Override public void newInstance(final BlockMenu menu, final Block b) { try { - menu.replaceExistingItem(41, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjI1OTliZDk4NjY1OWI4Y2UyYzQ5ODg1MjVjOTRlMTlkZGQzOWZhZDA4YTM4Mjg0YTE5N2YxYjcwNjc1YWNjIn19fQ=="), "§bChannel", "", "§e> Click to decrease the Channel ID by 1")); + menu.replaceExistingItem(41, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjI1OTliZDk4NjY1OWI4Y2UyYzQ5ODg1MjVjOTRlMTlkZGQzOWZhZDA4YTM4Mjg0YTE5N2YxYjcwNjc1YWNjIn19fQ=="), "§bChannel", "", "§e> Click to decrease the Channel ID by 1")); menu.addMenuClickHandler(41, new MenuClickHandler() { @Override @@ -52,7 +52,7 @@ public class CargoCraftingNode extends SlimefunItem { } }); - menu.replaceExistingItem(42, new CustomItem(new MaterialData(Material.WOOL, (byte) ((!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "frequency") == null) ? 0: (Integer.parseInt(BlockStorage.getBlockInfo(b, "frequency"))))), "§bChannel ID: §3" + (((!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "frequency") == null) ? 0: (Integer.parseInt(BlockStorage.getBlockInfo(b, "frequency")))) + 1))); + menu.replaceExistingItem(42, new CustomItem(new MaterialData(Material.WOOL, (byte) ((!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "frequency") == null) ? 0: (Integer.parseInt(BlockStorage.getBlockInfo(b, "frequency"))))), "§bChannel ID: §3" + (((!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "frequency") == null) ? 0: (Integer.parseInt(BlockStorage.getBlockInfo(b, "frequency")))) + 1))); menu.addMenuClickHandler(42, new MenuClickHandler() { @Override @@ -61,7 +61,7 @@ public class CargoCraftingNode extends SlimefunItem { } }); - menu.replaceExistingItem(43, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzJmOTEwYzQ3ZGEwNDJlNGFhMjhhZjZjYzgxY2Y0OGFjNmNhZjM3ZGFiMzVmODhkYjk5M2FjY2I5ZGZlNTE2In19fQ=="), "§bChannel", "", "§e> Click to increase the Channel ID by 1")); + menu.replaceExistingItem(43, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzJmOTEwYzQ3ZGEwNDJlNGFhMjhhZjZjYzgxY2Y0OGFjNmNhZjM3ZGFiMzVmODhkYjk5M2FjY2I5ZGZlNTE2In19fQ=="), "§bChannel", "", "§e> Click to increase the Channel ID by 1")); menu.addMenuClickHandler(43, new MenuClickHandler() { @Override @@ -81,7 +81,7 @@ public class CargoCraftingNode extends SlimefunItem { @Override public boolean canOpen(Block b, Player p) { - boolean open = BlockStorage.getBlockInfo(b, "owner").equals(p.getUniqueId().toString()) || p.hasPermission("slimefun.cargo.bypass"); + boolean open = CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b) || p.hasPermission("slimefun.cargo.bypass"); if (!open) { Messages.local.sendTranslation(p, "inventory.no-access", true); } @@ -126,7 +126,7 @@ public class CargoCraftingNode extends SlimefunItem { }); } - preset.addItem(2, new CustomItem(new MaterialData(Material.WORKBENCH), "§eRecipe", "", "§bPut in the Recipe you want to craft"), + preset.addItem(2, new CustomItem(new MaterialData(Material.WORKBENCH), "§eRecipe", "", "§bPut in the Recipe you want to craft"), new MenuClickHandler() { @Override From 4ec9cfda225a5b56fdd38ca9f99753e0e1b7c9bc Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Sun, 30 Oct 2016 11:01:47 +0100 Subject: [PATCH 10/37] Permission Update for Cargo Input Nodes --- .../SlimefunItem/machines/CargoInputNode.java | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoInputNode.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoInputNode.java index 7098b5b0c..704afdd90 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoInputNode.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoInputNode.java @@ -30,7 +30,7 @@ public class CargoInputNode extends SlimefunItem { public CargoInputNode(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe, ItemStack recipeOutput) { super(category, item, name, recipeType, recipe, recipeOutput); - new BlockMenuPreset(name, "§3Input Node") { + new BlockMenuPreset(name, "§3Input Node") { @Override public void init() { @@ -42,7 +42,7 @@ public class CargoInputNode extends SlimefunItem { public void newInstance(final BlockMenu menu, final Block b) { try { if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "filter-type") == null || BlockStorage.getBlockInfo(b, "filter-type").equals("whitelist")) { - menu.replaceExistingItem(15, new CustomItem(new MaterialData(Material.WOOL), "§7Type: §rWhitelist", "", "§e> Click to change it to Blacklist")); + menu.replaceExistingItem(15, new CustomItem(new MaterialData(Material.WOOL), "§7Type: §rWhitelist", "", "§e> Click to change it to Blacklist")); menu.addMenuClickHandler(15, new MenuClickHandler() { @Override @@ -54,7 +54,7 @@ public class CargoInputNode extends SlimefunItem { }); } else { - menu.replaceExistingItem(15, new CustomItem(new MaterialData(Material.WOOL, (byte) 15), "§7Type: §8Blacklist", "", "§e> Click to change it to Whitelist")); + menu.replaceExistingItem(15, new CustomItem(new MaterialData(Material.WOOL, (byte) 15), "§7Type: §8Blacklist", "", "§e> Click to change it to Whitelist")); menu.addMenuClickHandler(15, new MenuClickHandler() { @Override @@ -67,7 +67,7 @@ public class CargoInputNode extends SlimefunItem { } if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "filter-durability") == null || BlockStorage.getBlockInfo(b, "filter-durability").equals("false")) { - menu.replaceExistingItem(16, new CustomItem(new MaterialData(Material.STONE_SWORD, (byte) 20), "§7Include Sub-IDs/Durability: §4\u2718", "", "§e> Click to toggle whether the Durability has to match")); + menu.replaceExistingItem(16, new CustomItem(new MaterialData(Material.STONE_SWORD, (byte) 20), "§7Include Sub-IDs/Durability: §4\u2718", "", "§e> Click to toggle whether the Durability has to match")); menu.addMenuClickHandler(16, new MenuClickHandler() { @Override @@ -79,7 +79,7 @@ public class CargoInputNode extends SlimefunItem { }); } else { - menu.replaceExistingItem(16, new CustomItem(new MaterialData(Material.GOLD_SWORD, (byte) 20), "§7Include Sub-IDs/Durability: §2\u2714", "", "§e> Click to toggle whether the Durability has to match")); + menu.replaceExistingItem(16, new CustomItem(new MaterialData(Material.GOLD_SWORD, (byte) 20), "§7Include Sub-IDs/Durability: §2\u2714", "", "§e> Click to toggle whether the Durability has to match")); menu.addMenuClickHandler(16, new MenuClickHandler() { @Override @@ -92,7 +92,7 @@ public class CargoInputNode extends SlimefunItem { } if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "round-robin") == null || BlockStorage.getBlockInfo(b, "round-robin").equals("false")) { - menu.replaceExistingItem(24, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDc4ZjJiN2U1ZTc1NjM5ZWE3ZmI3OTZjMzVkMzY0YzRkZjI4YjQyNDNlNjZiNzYyNzdhYWRjZDYyNjEzMzcifX19"), "§7Round-Robin Mode: §4\u2718", "", "§e> Click to enable Round Robin Mode", "§e(Items will be equally distributed on the Channel)")); + menu.replaceExistingItem(24, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDc4ZjJiN2U1ZTc1NjM5ZWE3ZmI3OTZjMzVkMzY0YzRkZjI4YjQyNDNlNjZiNzYyNzdhYWRjZDYyNjEzMzcifX19"), "§7Round-Robin Mode: §4\u2718", "", "§e> Click to enable Round Robin Mode", "§e(Items will be equally distributed on the Channel)")); menu.addMenuClickHandler(24, new MenuClickHandler() { @Override @@ -104,7 +104,7 @@ public class CargoInputNode extends SlimefunItem { }); } else { - menu.replaceExistingItem(24, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDc4ZjJiN2U1ZTc1NjM5ZWE3ZmI3OTZjMzVkMzY0YzRkZjI4YjQyNDNlNjZiNzYyNzdhYWRjZDYyNjEzMzcifX19"), "§7Round-Robin Mode: §2\u2714", "", "§e> Click to disable Round Robin Mode", "§e(Items will be equally distributed on the Channel)")); + menu.replaceExistingItem(24, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDc4ZjJiN2U1ZTc1NjM5ZWE3ZmI3OTZjMzVkMzY0YzRkZjI4YjQyNDNlNjZiNzYyNzdhYWRjZDYyNjEzMzcifX19"), "§7Round-Robin Mode: §2\u2714", "", "§e> Click to disable Round Robin Mode", "§e(Items will be equally distributed on the Channel)")); menu.addMenuClickHandler(24, new MenuClickHandler() { @Override @@ -117,7 +117,7 @@ public class CargoInputNode extends SlimefunItem { } if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "filter-lore") == null || BlockStorage.getBlockInfo(b, "filter-lore").equals("true")) { - menu.replaceExistingItem(25, new CustomItem(new MaterialData(Material.EMPTY_MAP), "§7Include Lore: §2\u2714", "", "§e> Click to toggle whether the Lore has to match")); + menu.replaceExistingItem(25, new CustomItem(new MaterialData(Material.EMPTY_MAP), "§7Include Lore: §2\u2714", "", "§e> Click to toggle whether the Lore has to match")); menu.addMenuClickHandler(25, new MenuClickHandler() { @Override @@ -129,7 +129,7 @@ public class CargoInputNode extends SlimefunItem { }); } else { - menu.replaceExistingItem(25, new CustomItem(new MaterialData(Material.EMPTY_MAP), "§7Include Lore: §4\u2718", "", "§e> Click to toggle whether the Lore has to match")); + menu.replaceExistingItem(25, new CustomItem(new MaterialData(Material.EMPTY_MAP), "§7Include Lore: §4\u2718", "", "§e> Click to toggle whether the Lore has to match")); menu.addMenuClickHandler(25, new MenuClickHandler() { @Override @@ -141,7 +141,7 @@ public class CargoInputNode extends SlimefunItem { }); } - menu.replaceExistingItem(41, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjI1OTliZDk4NjY1OWI4Y2UyYzQ5ODg1MjVjOTRlMTlkZGQzOWZhZDA4YTM4Mjg0YTE5N2YxYjcwNjc1YWNjIn19fQ=="), "§bChannel", "", "§e> Click to decrease the Channel ID by 1")); + menu.replaceExistingItem(41, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjI1OTliZDk4NjY1OWI4Y2UyYzQ5ODg1MjVjOTRlMTlkZGQzOWZhZDA4YTM4Mjg0YTE5N2YxYjcwNjc1YWNjIn19fQ=="), "§bChannel", "", "§e> Click to decrease the Channel ID by 1")); menu.addMenuClickHandler(41, new MenuClickHandler() { @Override @@ -160,7 +160,7 @@ public class CargoInputNode extends SlimefunItem { int channel = ((!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "frequency") == null) ? 0: (Integer.parseInt(BlockStorage.getBlockInfo(b, "frequency")))); if (channel == 16) { - menu.replaceExistingItem(42, new CustomItem(SlimefunItems.CHEST_TERMINAL, "§bChannel ID: §3" + (channel + 1))); + menu.replaceExistingItem(42, new CustomItem(SlimefunItems.CHEST_TERMINAL, "§bChannel ID: §3" + (channel + 1))); menu.addMenuClickHandler(42, new MenuClickHandler() { @Override @@ -170,7 +170,7 @@ public class CargoInputNode extends SlimefunItem { }); } else { - menu.replaceExistingItem(42, new CustomItem(new MaterialData(Material.WOOL, (byte) channel), "§bChannel ID: §3" + (channel + 1))); + menu.replaceExistingItem(42, new CustomItem(new MaterialData(Material.WOOL, (byte) channel), "§bChannel ID: §3" + (channel + 1))); menu.addMenuClickHandler(42, new MenuClickHandler() { @Override @@ -180,7 +180,7 @@ public class CargoInputNode extends SlimefunItem { }); } - menu.replaceExistingItem(43, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzJmOTEwYzQ3ZGEwNDJlNGFhMjhhZjZjYzgxY2Y0OGFjNmNhZjM3ZGFiMzVmODhkYjk5M2FjY2I5ZGZlNTE2In19fQ=="), "§bChannel", "", "§e> Click to increase the Channel ID by 1")); + menu.replaceExistingItem(43, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzJmOTEwYzQ3ZGEwNDJlNGFhMjhhZjZjYzgxY2Y0OGFjNmNhZjM3ZGFiMzVmODhkYjk5M2FjY2I5ZGZlNTE2In19fQ=="), "§bChannel", "", "§e> Click to increase the Channel ID by 1")); menu.addMenuClickHandler(43, new MenuClickHandler() { @Override @@ -207,7 +207,7 @@ public class CargoInputNode extends SlimefunItem { @Override public boolean canOpen(Block b, Player p) { - boolean open = BlockStorage.getBlockInfo(b, "owner").equals(p.getUniqueId().toString()) || p.hasPermission("slimefun.cargo.bypass"); + boolean open = CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b) || p.hasPermission("slimefun.cargo.bypass"); if (!open) { Messages.local.sendTranslation(p, "inventory.no-access", true); } @@ -257,7 +257,7 @@ public class CargoInputNode extends SlimefunItem { }); } - preset.addItem(2, new CustomItem(new MaterialData(Material.PAPER), "§3Items", "", "§bPut in all Items you want to", "§bblacklist/whitelist"), + preset.addItem(2, new CustomItem(new MaterialData(Material.PAPER), "§3Items", "", "§bPut in all Items you want to", "§bblacklist/whitelist"), new MenuClickHandler() { @Override From 55f192d82e921c1f25c93d72e23a8a6419696b26 Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Sun, 30 Oct 2016 11:02:16 +0100 Subject: [PATCH 11/37] Permission Update for Cargo Output Nodes --- .../SlimefunItem/machines/CargoOutputNode.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoOutputNode.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoOutputNode.java index 84d0d46a7..3a6dd1506 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoOutputNode.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoOutputNode.java @@ -30,7 +30,7 @@ public class CargoOutputNode extends SlimefunItem { public CargoOutputNode(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe, ItemStack recipeOutput) { super(category, item, name, recipeType, recipe, recipeOutput); - new BlockMenuPreset(name, "§6Output Node") { + new BlockMenuPreset(name, "§6Output Node") { @Override public void init() { @@ -42,7 +42,7 @@ public class CargoOutputNode extends SlimefunItem { public void newInstance(final BlockMenu menu, final Block b) { try { - menu.replaceExistingItem(12, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjI1OTliZDk4NjY1OWI4Y2UyYzQ5ODg1MjVjOTRlMTlkZGQzOWZhZDA4YTM4Mjg0YTE5N2YxYjcwNjc1YWNjIn19fQ=="), "§bChannel", "", "§e> Click to decrease the Channel ID by 1")); + menu.replaceExistingItem(12, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjI1OTliZDk4NjY1OWI4Y2UyYzQ5ODg1MjVjOTRlMTlkZGQzOWZhZDA4YTM4Mjg0YTE5N2YxYjcwNjc1YWNjIn19fQ=="), "§bChannel", "", "§e> Click to decrease the Channel ID by 1")); menu.addMenuClickHandler(12, new MenuClickHandler() { @Override @@ -61,7 +61,7 @@ public class CargoOutputNode extends SlimefunItem { int channel = ((!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "frequency") == null) ? 0: (Integer.parseInt(BlockStorage.getBlockInfo(b, "frequency")))); if (channel == 16) { - menu.replaceExistingItem(13, new CustomItem(SlimefunItems.CHEST_TERMINAL, "§bChannel ID: §3" + (channel + 1))); + menu.replaceExistingItem(13, new CustomItem(SlimefunItems.CHEST_TERMINAL, "§bChannel ID: §3" + (channel + 1))); menu.addMenuClickHandler(13, new MenuClickHandler() { @Override @@ -71,7 +71,7 @@ public class CargoOutputNode extends SlimefunItem { }); } else { - menu.replaceExistingItem(13, new CustomItem(new MaterialData(Material.WOOL, (byte) channel), "§bChannel ID: §3" + (channel + 1))); + menu.replaceExistingItem(13, new CustomItem(new MaterialData(Material.WOOL, (byte) channel), "§bChannel ID: §3" + (channel + 1))); menu.addMenuClickHandler(13, new MenuClickHandler() { @Override @@ -81,7 +81,7 @@ public class CargoOutputNode extends SlimefunItem { }); } - menu.replaceExistingItem(14, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzJmOTEwYzQ3ZGEwNDJlNGFhMjhhZjZjYzgxY2Y0OGFjNmNhZjM3ZGFiMzVmODhkYjk5M2FjY2I5ZGZlNTE2In19fQ=="), "§bChannel", "", "§e> Click to increase the Channel ID by 1")); + menu.replaceExistingItem(14, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzJmOTEwYzQ3ZGEwNDJlNGFhMjhhZjZjYzgxY2Y0OGFjNmNhZjM3ZGFiMzVmODhkYjk5M2FjY2I5ZGZlNTE2In19fQ=="), "§bChannel", "", "§e> Click to increase the Channel ID by 1")); menu.addMenuClickHandler(14, new MenuClickHandler() { @Override @@ -108,7 +108,7 @@ public class CargoOutputNode extends SlimefunItem { @Override public boolean canOpen(Block b, Player p) { - boolean open = BlockStorage.getBlockInfo(b, "owner").equals(p.getUniqueId().toString()) || p.hasPermission("slimefun.cargo.bypass"); + boolean open = CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b) || p.hasPermission("slimefun.cargo.bypass"); if (!open) { Messages.local.sendTranslation(p, "inventory.no-access", true); } From dea3e7fa0d0c427091c31a6de53b26619fd963f9 Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Sun, 30 Oct 2016 11:02:56 +0100 Subject: [PATCH 12/37] Fixed Opening Permission for Advanced Cargo Output Node --- .../machines/AdvancedCargoOutputNode.java | 30 +++++++++++-------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AdvancedCargoOutputNode.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AdvancedCargoOutputNode.java index 0334f02c7..dace43198 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AdvancedCargoOutputNode.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AdvancedCargoOutputNode.java @@ -29,7 +29,7 @@ public class AdvancedCargoOutputNode extends SlimefunItem { public AdvancedCargoOutputNode(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe, ItemStack recipeOutput) { super(category, item, name, recipeType, recipe, recipeOutput); - new BlockMenuPreset(name, "§cOutput Node") { + new BlockMenuPreset(name, "§cOutput Node") { @Override public void init() { @@ -41,7 +41,7 @@ public class AdvancedCargoOutputNode extends SlimefunItem { public void newInstance(final BlockMenu menu, final Block b) { try { if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "filter-type") == null || BlockStorage.getBlockInfo(b, "filter-type").equals("whitelist")) { - menu.replaceExistingItem(15, new CustomItem(new MaterialData(Material.WOOL), "§7Type: §rWhitelist", "", "§e> Click to change it to Blacklist")); + menu.replaceExistingItem(15, new CustomItem(new MaterialData(Material.WOOL), "§7Type: §rWhitelist", "", "§e> Click to change it to Blacklist")); menu.addMenuClickHandler(15, new MenuClickHandler() { @Override @@ -53,7 +53,7 @@ public class AdvancedCargoOutputNode extends SlimefunItem { }); } else { - menu.replaceExistingItem(15, new CustomItem(new MaterialData(Material.WOOL, (byte) 15), "§7Type: §8Blacklist", "", "§e> Click to change it to Whitelist")); + menu.replaceExistingItem(15, new CustomItem(new MaterialData(Material.WOOL, (byte) 15), "§7Type: §8Blacklist", "", "§e> Click to change it to Whitelist")); menu.addMenuClickHandler(15, new MenuClickHandler() { @Override @@ -66,7 +66,7 @@ public class AdvancedCargoOutputNode extends SlimefunItem { } if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "filter-durability") == null || BlockStorage.getBlockInfo(b, "filter-durability").equals("false")) { - menu.replaceExistingItem(16, new CustomItem(new MaterialData(Material.STONE_SWORD, (byte) 20), "§7Include Sub-IDs/Durability: §4\u2718", "", "§e> Click to toggle whether the Durability has to match")); + menu.replaceExistingItem(16, new CustomItem(new MaterialData(Material.STONE_SWORD, (byte) 20), "§7Include Sub-IDs/Durability: §4\u2718", "", "§e> Click to toggle whether the Durability has to match")); menu.addMenuClickHandler(16, new MenuClickHandler() { @Override @@ -78,7 +78,7 @@ public class AdvancedCargoOutputNode extends SlimefunItem { }); } else { - menu.replaceExistingItem(16, new CustomItem(new MaterialData(Material.GOLD_SWORD, (byte) 20), "§7Include Sub-IDs/Durability: §2\u2714", "", "§e> Click to toggle whether the Durability has to match")); + menu.replaceExistingItem(16, new CustomItem(new MaterialData(Material.GOLD_SWORD, (byte) 20), "§7Include Sub-IDs/Durability: §2\u2714", "", "§e> Click to toggle whether the Durability has to match")); menu.addMenuClickHandler(16, new MenuClickHandler() { @Override @@ -91,7 +91,7 @@ public class AdvancedCargoOutputNode extends SlimefunItem { } if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "filter-lore") == null || BlockStorage.getBlockInfo(b, "filter-lore").equals("true")) { - menu.replaceExistingItem(25, new CustomItem(new MaterialData(Material.EMPTY_MAP), "§7Include Lore: §2\u2714", "", "§e> Click to toggle whether the Lore has to match")); + menu.replaceExistingItem(25, new CustomItem(new MaterialData(Material.EMPTY_MAP), "§7Include Lore: §2\u2714", "", "§e> Click to toggle whether the Lore has to match")); menu.addMenuClickHandler(25, new MenuClickHandler() { @Override @@ -103,7 +103,7 @@ public class AdvancedCargoOutputNode extends SlimefunItem { }); } else { - menu.replaceExistingItem(25, new CustomItem(new MaterialData(Material.EMPTY_MAP), "§7Include Lore: §4\u2718", "", "§e> Click to toggle whether the Lore has to match")); + menu.replaceExistingItem(25, new CustomItem(new MaterialData(Material.EMPTY_MAP), "§7Include Lore: §4\u2718", "", "§e> Click to toggle whether the Lore has to match")); menu.addMenuClickHandler(25, new MenuClickHandler() { @Override @@ -115,7 +115,7 @@ public class AdvancedCargoOutputNode extends SlimefunItem { }); } - menu.replaceExistingItem(41, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjI1OTliZDk4NjY1OWI4Y2UyYzQ5ODg1MjVjOTRlMTlkZGQzOWZhZDA4YTM4Mjg0YTE5N2YxYjcwNjc1YWNjIn19fQ=="), "§bChannel", "", "§e> Click to decrease the Channel ID by 1")); + menu.replaceExistingItem(41, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjI1OTliZDk4NjY1OWI4Y2UyYzQ5ODg1MjVjOTRlMTlkZGQzOWZhZDA4YTM4Mjg0YTE5N2YxYjcwNjc1YWNjIn19fQ=="), "§bChannel", "", "§e> Click to decrease the Channel ID by 1")); menu.addMenuClickHandler(41, new MenuClickHandler() { @Override @@ -134,7 +134,7 @@ public class AdvancedCargoOutputNode extends SlimefunItem { int channel = ((!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "frequency") == null) ? 0: (Integer.parseInt(BlockStorage.getBlockInfo(b, "frequency")))); if (channel == 16) { - menu.replaceExistingItem(42, new CustomItem(SlimefunItems.CHEST_TERMINAL, "§bChannel ID: §3" + (channel + 1))); + menu.replaceExistingItem(42, new CustomItem(SlimefunItems.CHEST_TERMINAL, "§bChannel ID: §3" + (channel + 1))); menu.addMenuClickHandler(42, new MenuClickHandler() { @Override @@ -144,7 +144,7 @@ public class AdvancedCargoOutputNode extends SlimefunItem { }); } else { - menu.replaceExistingItem(42, new CustomItem(new MaterialData(Material.WOOL, (byte) channel), "§bChannel ID: §3" + (channel + 1))); + menu.replaceExistingItem(42, new CustomItem(new MaterialData(Material.WOOL, (byte) channel), "§bChannel ID: §3" + (channel + 1))); menu.addMenuClickHandler(42, new MenuClickHandler() { @Override @@ -154,7 +154,7 @@ public class AdvancedCargoOutputNode extends SlimefunItem { }); } - menu.replaceExistingItem(43, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzJmOTEwYzQ3ZGEwNDJlNGFhMjhhZjZjYzgxY2Y0OGFjNmNhZjM3ZGFiMzVmODhkYjk5M2FjY2I5ZGZlNTE2In19fQ=="), "§bChannel", "", "§e> Click to increase the Channel ID by 1")); + menu.replaceExistingItem(43, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzJmOTEwYzQ3ZGEwNDJlNGFhMjhhZjZjYzgxY2Y0OGFjNmNhZjM3ZGFiMzVmODhkYjk5M2FjY2I5ZGZlNTE2In19fQ=="), "§bChannel", "", "§e> Click to increase the Channel ID by 1")); menu.addMenuClickHandler(43, new MenuClickHandler() { @Override @@ -181,7 +181,11 @@ public class AdvancedCargoOutputNode extends SlimefunItem { @Override public boolean canOpen(Block b, Player p) { - return BlockStorage.getBlockInfo(b, "owner").equals(p.getUniqueId().toString()) || p.hasPermission("slimefun.cargo.bypass"); + boolean open = CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b) || p.hasPermission("slimefun.cargo.bypass"); + if (!open) { + Messages.local.sendTranslation(p, "inventory.no-access", true); + } + return open; } @Override @@ -226,7 +230,7 @@ public class AdvancedCargoOutputNode extends SlimefunItem { }); } - preset.addItem(2, new CustomItem(new MaterialData(Material.PAPER), "§3Items", "", "§bPut in all Items you want to", "§bblacklist/whitelist"), + preset.addItem(2, new CustomItem(new MaterialData(Material.PAPER), "§3Items", "", "§bPut in all Items you want to", "§bblacklist/whitelist"), new MenuClickHandler() { @Override From aba9353ff21158a3bb07aeeb799d76558a1a9ae9 Mon Sep 17 00:00:00 2001 From: mrCookieSlime Date: Sun, 30 Oct 2016 11:13:20 +0100 Subject: [PATCH 13/37] Fixed Imports + Elytra Failsafe (3) --- .../machines/AdvancedCargoOutputNode.java | 14 +++--- .../machines/CargoCraftingNode.java | 13 ++--- .../SlimefunItem/machines/CargoInputNode.java | 13 ++--- .../machines/CargoOutputNode.java | 13 ++--- .../Slimefun/listeners/ItemListener.java | 48 +++++++++---------- 5 files changed, 53 insertions(+), 48 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AdvancedCargoOutputNode.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AdvancedCargoOutputNode.java index dace43198..65c465918 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AdvancedCargoOutputNode.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AdvancedCargoOutputNode.java @@ -1,5 +1,12 @@ package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import org.bukkit.material.MaterialData; + +import me.mrCookieSlime.CSCoreLibPlugin.CSCoreLib; import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu.MenuClickHandler; import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ClickAction; import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem; @@ -10,18 +17,13 @@ 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.Setup.Messages; import me.mrCookieSlime.Slimefun.api.BlockStorage; import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu; import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset; import me.mrCookieSlime.Slimefun.api.item_transport.CargoNet; import me.mrCookieSlime.Slimefun.api.item_transport.ItemTransportFlow; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; -import org.bukkit.material.MaterialData; - 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}; diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoCraftingNode.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoCraftingNode.java index 119947189..2c601f3f4 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoCraftingNode.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoCraftingNode.java @@ -1,5 +1,12 @@ package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import org.bukkit.material.MaterialData; + +import me.mrCookieSlime.CSCoreLibPlugin.CSCoreLib; import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu.MenuClickHandler; import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ClickAction; import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem; @@ -15,12 +22,6 @@ import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu; import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset; import me.mrCookieSlime.Slimefun.api.item_transport.ItemTransportFlow; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; -import org.bukkit.material.MaterialData; - public class CargoCraftingNode extends SlimefunItem { private static final int[] border = {0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 22, 23, 24, 25, 26, 27, 31, 32, 33, 34, 35, 36, 40, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53}; diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoInputNode.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoInputNode.java index 704afdd90..e83737bdb 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoInputNode.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoInputNode.java @@ -1,5 +1,12 @@ package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import org.bukkit.material.MaterialData; + +import me.mrCookieSlime.CSCoreLibPlugin.CSCoreLib; import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu.MenuClickHandler; import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ClickAction; import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem; @@ -17,12 +24,6 @@ import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset; import me.mrCookieSlime.Slimefun.api.item_transport.CargoNet; import me.mrCookieSlime.Slimefun.api.item_transport.ItemTransportFlow; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; -import org.bukkit.material.MaterialData; - 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}; diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoOutputNode.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoOutputNode.java index 3a6dd1506..b45701d68 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoOutputNode.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoOutputNode.java @@ -1,5 +1,12 @@ package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import org.bukkit.material.MaterialData; + +import me.mrCookieSlime.CSCoreLibPlugin.CSCoreLib; import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu.MenuClickHandler; import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ClickAction; import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem; @@ -17,12 +24,6 @@ import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset; import me.mrCookieSlime.Slimefun.api.item_transport.CargoNet; import me.mrCookieSlime.Slimefun.api.item_transport.ItemTransportFlow; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; -import org.bukkit.material.MaterialData; - 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}; diff --git a/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java b/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java index 200360712..fd284dcf4 100644 --- a/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java +++ b/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java @@ -3,6 +3,29 @@ package me.mrCookieSlime.Slimefun.listeners; import java.util.List; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.Skull; +import org.bukkit.entity.FallingBlock; +import org.bukkit.entity.Player; +import org.bukkit.entity.Wither; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.block.Action; +import org.bukkit.event.entity.EntityChangeBlockEvent; +import org.bukkit.event.inventory.CraftItemEvent; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.event.player.PlayerItemConsumeEvent; +import org.bukkit.inventory.EquipmentSlot; +import org.bukkit.inventory.ItemStack; +import org.bukkit.potion.PotionEffect; +import org.bukkit.potion.PotionEffectType; + import me.mrCookieSlime.CSCoreLibPlugin.CSCoreLib; import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Variable; import me.mrCookieSlime.CSCoreLibPlugin.events.ItemUseEvent; @@ -27,29 +50,6 @@ import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu; import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset; import me.mrCookieSlime.Slimefun.api.inventory.UniversalBlockMenu; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.block.Skull; -import org.bukkit.entity.FallingBlock; -import org.bukkit.entity.Player; -import org.bukkit.entity.Wither; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; -import org.bukkit.event.block.Action; -import org.bukkit.event.entity.EntityChangeBlockEvent; -import org.bukkit.event.inventory.CraftItemEvent; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.event.inventory.InventoryType; -import org.bukkit.event.player.PlayerInteractEvent; -import org.bukkit.event.player.PlayerItemConsumeEvent; -import org.bukkit.inventory.EquipmentSlot; -import org.bukkit.inventory.ItemStack; -import org.bukkit.potion.PotionEffect; -import org.bukkit.potion.PotionEffectType; - public class ItemListener implements Listener { public ItemListener(SlimefunStartup plugin) { @@ -290,7 +290,7 @@ public class ItemListener implements Listener { @EventHandler public void onAnvil(InventoryClickEvent e) { if (e.getRawSlot() == 2 && e.getWhoClicked() instanceof Player && e.getInventory().getType() == InventoryType.ANVIL) { - if (SlimefunManager.isItemSimiliar(e.getInventory().getContents()[0], SlimefunItems.ELYTRA)) return; + if (SlimefunManager.isItemSimiliar(e.getInventory().getContents()[0], SlimefunItems.ELYTRA, true)) return; if (SlimefunItem.getByItem(e.getInventory().getContents()[0]) != null && !SlimefunItem.isDisabled(e.getInventory().getContents()[0])) { e.setCancelled(true); From 0c0456003a85babc4fa7f6d7fb5ba56186b62ec1 Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Mon, 31 Oct 2016 10:09:08 +0100 Subject: [PATCH 14/37] Update CSCoreLibLoader.java --- .../CSCoreLibSetup/CSCoreLibLoader.java | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/me/mrCookieSlime/CSCoreLibSetup/CSCoreLibLoader.java b/src/me/mrCookieSlime/CSCoreLibSetup/CSCoreLibLoader.java index ee99114b4..847aea2a8 100644 --- a/src/me/mrCookieSlime/CSCoreLibSetup/CSCoreLibLoader.java +++ b/src/me/mrCookieSlime/CSCoreLibSetup/CSCoreLibLoader.java @@ -67,7 +67,7 @@ public class CSCoreLibLoader { final BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); final JSONArray array = (JSONArray) JSONValue.parse(reader.readLine()); - download = new URL((String) ((JSONObject) array.get(array.size() - 1)).get("downloadUrl")); + download = traceURL(((String) ((JSONObject) array.get(array.size() - 1)).get("downloadUrl")).replace("https:", "http:")); file = new File("plugins/" + (String) ((JSONObject) array.get(array.size() - 1)).get("name") + ".jar"); return true; @@ -83,6 +83,30 @@ public class CSCoreLibLoader { } } + private URL traceURL(String location) throws IOException { + HttpURLConnection connection = null; + + while (true) { + URL url = new URL(location); + connection = (HttpURLConnection) url.openConnection(); + + connection.setInstanceFollowRedirects(false); + connection.setConnectTimeout(5000); + connection.addRequestProperty("User-Agent", "Auto Updater (by mrCookieSlime)"); + + switch (connection.getResponseCode()) { + case HttpURLConnection.HTTP_MOVED_PERM: + case HttpURLConnection.HTTP_MOVED_TEMP: + String loc = connection.getHeaderField("Location"); + location = new URL(new URL(location), loc).toExternalForm(); + continue; + } + break; + } + + return connection.getURL(); + } + private void install() { BufferedInputStream input = null; FileOutputStream output = null; From c99a1fd9a7d1f9fc554fb3c7dc1170c896bf29ba Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sat, 5 Nov 2016 21:34:01 +0100 Subject: [PATCH 15/37] Update Version --- src/plugin.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugin.yml b/src/plugin.yml index 541285816..44165e6e0 100644 --- a/src/plugin.yml +++ b/src/plugin.yml @@ -1,5 +1,5 @@ name: Slimefun -version: 4.0.14 +version: 4.0.15 authors: [mrCookieSlime, John000708, st392, DeathlyPanda, BlackBeltPanda] description: Slimefun basically turns your entire Server into a FTB modpack without installing a single mod website: http://TheBusyBiscuit.github.io/ From 13f208a3b608da114958780e2489e9bd70b12375 Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Sun, 13 Nov 2016 09:39:13 +0100 Subject: [PATCH 16/37] Fixed Ancient Altar Dupe Bug --- .../Slimefun/listeners/AncientAltarListener.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/listeners/AncientAltarListener.java b/src/me/mrCookieSlime/Slimefun/listeners/AncientAltarListener.java index 4f2b63814..92c697719 100644 --- a/src/me/mrCookieSlime/Slimefun/listeners/AncientAltarListener.java +++ b/src/me/mrCookieSlime/Slimefun/listeners/AncientAltarListener.java @@ -77,7 +77,7 @@ public class AncientAltarListener implements Listener { else if (item.getName().equals("ANCIENT_ALTAR")) { e.setCancelled(true); - ItemStack catalyst = e.getPlayer().getInventory().getItemInMainHand(); + ItemStack catalyst = new CustomItem(e.getPlayer().getInventory().getItemInMainHand(), 1); List pedestals = Pedestals.getPedestals(b); if (!altars.contains(e.getClickedBlock())) { @@ -145,7 +145,7 @@ public class AncientAltarListener implements Listener { if (stack != null && !stack.getType().equals(Material.AIR)) { PlayerInventory.consumeItemInHand(p); String nametag = StringUtils.formatItemName(stack, false); - Item entity = b.getWorld().dropItem(b.getLocation().add(0.5, 1.2, 0.5), new CustomItem(new CustomItem(stack, 1), "§5§dALTAR §3Probe - §e" + System.nanoTime())); + Item entity = b.getWorld().dropItem(b.getLocation().add(0.5, 1.2, 0.5), new CustomItem(new CustomItem(stack, 1), "§5§dALTAR §3Probe - §e" + System.nanoTime())); entity.setVelocity(new Vector(0, 0.1, 0)); entity.setMetadata("no_pickup", new FixedMetadataValue(SlimefunStartup.instance, "altar_item")); entity.setCustomNameVisible(true); @@ -157,7 +157,7 @@ public class AncientAltarListener implements Listener { @EventHandler public void onPickup(PlayerPickupItemEvent e) { if (e.getItem().hasMetadata("no_pickup")) e.setCancelled(true); - else if (!e.getItem().hasMetadata("no_pickup") && e.getItem().getItemStack().hasItemMeta() && e.getItem().getItemStack().getItemMeta().hasDisplayName() && e.getItem().getItemStack().getItemMeta().getDisplayName().startsWith("§5§dALTAR §3Probe - §e")) { + else if (!e.getItem().hasMetadata("no_pickup") && e.getItem().getItemStack().hasItemMeta() && e.getItem().getItemStack().getItemMeta().hasDisplayName() && e.getItem().getItemStack().getItemMeta().getDisplayName().startsWith("§5§dALTAR §3Probe - §e")) { e.setCancelled(true); e.getItem().remove(); } From bdb8bc5d2f1a480183fa2ec67c5f4e5427d09bd5 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 13 Nov 2016 17:36:46 +0100 Subject: [PATCH 17/37] Prevent Hopper Minecarts from picking up display items --- .../listeners/AncientAltarListener.java | 28 +++++++++++++------ 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/listeners/AncientAltarListener.java b/src/me/mrCookieSlime/Slimefun/listeners/AncientAltarListener.java index 4f2b63814..f89ea3932 100644 --- a/src/me/mrCookieSlime/Slimefun/listeners/AncientAltarListener.java +++ b/src/me/mrCookieSlime/Slimefun/listeners/AncientAltarListener.java @@ -28,6 +28,7 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; +import org.bukkit.event.inventory.InventoryPickupItemEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerPickupItemEvent; import org.bukkit.inventory.ItemStack; @@ -36,14 +37,14 @@ import org.bukkit.metadata.FixedMetadataValue; import org.bukkit.util.Vector; public class AncientAltarListener implements Listener { - + public AncientAltarListener(SlimefunStartup plugin) { plugin.getServer().getPluginManager().registerEvents(this, plugin); } - + List altars = new ArrayList(); Set removed_items = new HashSet(); - + @EventHandler(priority=EventPriority.HIGH) public void onInteract(PlayerInteractEvent e) { if (e.getAction() != Action.RIGHT_CLICK_BLOCK) return; @@ -59,9 +60,9 @@ public class AncientAltarListener implements Listener { else if (!removed_items.contains(stack.getUniqueId())) { final UUID uuid = stack.getUniqueId(); removed_items.add(uuid); - + SlimefunStartup.instance.getServer().getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() { - + @Override public void run() { removed_items.remove(uuid); @@ -76,10 +77,10 @@ public class AncientAltarListener implements Listener { } else if (item.getName().equals("ANCIENT_ALTAR")) { e.setCancelled(true); - + ItemStack catalyst = e.getPlayer().getInventory().getItemInMainHand(); List pedestals = Pedestals.getPedestals(b); - + if (!altars.contains(e.getClickedBlock())) { altars.add(e.getClickedBlock()); if (pedestals.size() == 8) { @@ -89,7 +90,7 @@ public class AncientAltarListener implements Listener { Item stack = findItem(pedestal); if (stack != null) input.add(fixItemStack(stack.getItemStack(), stack.getCustomName())); } - + ItemStack result = Pedestals.getRecipeOutput(catalyst, input); if (result != null) { List consumed = new ArrayList(); @@ -115,7 +116,7 @@ public class AncientAltarListener implements Listener { } } } - + private ItemStack fixItemStack(ItemStack itemStack, String customName) { ItemStack stack = itemStack.clone(); if (customName.equals(StringUtils.formatItemName(itemStack.getData().toItemStack(1), false))) { @@ -162,4 +163,13 @@ public class AncientAltarListener implements Listener { e.getItem().remove(); } } + + @EventHandler + public void onMinecraftPickup(InventoryPickupItemEvent e) { + if (e.getItem().hasMetadata("no_pickup")) e.setCancelled(true); + else if (!e.getItem().hasMetadata("no_pickup") && e.getItem().getItemStack().hasItemMeta() && e.getItem().getItemStack().getItemMeta().hasDisplayName() && e.getItem().getItemStack().getItemMeta().getDisplayName().startsWith("§5§dALTAR §3Probe - §e")) { + e.setCancelled(true); + e.getItem().remove(); + } + } } From 1b4cf5f9c361aa2df6b7a17c8c20d2f52d003413 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 13 Nov 2016 17:40:26 +0100 Subject: [PATCH 18/37] Added Ingot Pulverizer. --- .../Slimefun/Lists/SlimefunItems.java | 1 + .../Slimefun/Setup/SlimefunSetup.java | 49 +++++++++++++++++-- 2 files changed, 47 insertions(+), 3 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java b/src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java index 54cb0f00c..4c1c10dfc 100644 --- a/src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java +++ b/src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java @@ -492,6 +492,7 @@ public class SlimefunItems { public static ItemStack ELECTRIC_ORE_GRINDER = new CustomItem(new ItemStack(Material.FURNACE), "&cElectric Ore Grinder", "","§rWorks as an Ore Crusher and Grind Stone", "", "§6Advanced Machine", "§8\u21E8 §7Speed: 1x", "§8\u21E8 §e\u26A1 §712 J/s"); public static ItemStack ELECTRIC_ORE_GRINDER_2 = new CustomItem(new ItemStack(Material.FURNACE), "&cElectric Ore Grinder &7(&eII&7)", "","§rWorks as an Ore Crusher and Grind Stone", "", "§4End-Game Machine", "§8\u21E8 §7Speed: 4x", "§8\u21E8 §e\u26A1 §730 J/s"); + public static ItemStack ELECTRIC_INGOT_PULVERIZER = new CustomItem(new ItemStack(Material.FURNACE), "&cElectric Ingot Pulverizer", "", "§rPulverizes Ingots into Dust", "", "§aMedium Machine", "§8\u21E8 §7Speed: 1x", "§8\u21E8 §e\u26A1 §714 J/s"); public static ItemStack AUTO_ENCHANTER = new CustomItem(new ItemStack(Material.ENCHANTMENT_TABLE), "&5Auto Enchanter", "", "§aMedium Machine", "§8\u21E8 §7Speed: 1x", "§8\u21E8 §e\u26A1 §718 J/s"); public static ItemStack AUTO_DISENCHANTER = new CustomItem(new ItemStack(Material.ENCHANTMENT_TABLE), "&5Auto Disenchanter", "", "§aMedium Machine", "§8\u21E8 §7Speed: 1x", "§8\u21E8 §e\u26A1 §718 J/s"); public static ItemStack AUTO_ANVIL = new CustomItem(new ItemStack(Material.IRON_BLOCK), "&7Auto Anvil", "", "§6Advanced Machine", "§8\u21E8 §7Repair Factor: 10%", "§8\u21E8 §e\u26A1 §724 J/s"); diff --git a/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java b/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java index e8a6b6872..1fde5f664 100644 --- a/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java +++ b/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java @@ -3460,7 +3460,7 @@ public class SlimefunSetup { @Override public int getSpeed() { return 1; - }; + } }.registerChargeableBlock(true, 128); @@ -3480,10 +3480,53 @@ public class SlimefunSetup { @Override public int getSpeed() { return 5; - }; + } }.registerChargeableBlock(true, 256); - + + new AContainer(Categories.ELECTRICITY, SlimefunItems.ELECTRIC_INGOT_PULVERIZER, "ELECTRIC_INGOT_PULVERIZER", RecipeType.ENHANCED_CRAFTING_TABLE, + new ItemStack[] {null, SlimefunItems.ELECTRIC_ORE_GRINDER, null, SlimefunItems.LEAD_INGOT, SlimefunItems.MEDIUM_CAPACITOR, SlimefunItems.LEAD_INGOT, SlimefunItems.LEAD_INGOT, SlimefunItems.HEATING_COIL, SlimefunItems.LEAD_INGOT}){ + @Override + public String getInventoryTitle() { + return "&bElectric Ingot Pulverizer"; + } + + @Override + public ItemStack getProgressBar() { + return new ItemStack(Material.IRON_PICKAXE); + } + + @Override + public void registerDefaultRecipes() { + registerRecipe(6, new ItemStack[]{SlimefunItems.ALUMINUM_INGOT}, new ItemStack[]{SlimefunItems.ALUMINUM_DUST}); + registerRecipe(6, new ItemStack[]{SlimefunItems.COPPER_INGOT}, new ItemStack[]{SlimefunItems.COPPER_DUST}); + registerRecipe(6, new ItemStack[]{SlimefunItems.GOLD_4K}, new ItemStack[]{SlimefunItems.GOLD_DUST}); + registerRecipe(6, new ItemStack[]{new ItemStack(Material.IRON_INGOT)}, new ItemStack[]{SlimefunItems.IRON_DUST}); + registerRecipe(6, new ItemStack[]{SlimefunItems.LEAD_INGOT}, new ItemStack[]{SlimefunItems.LEAD_DUST}); + registerRecipe(6, new ItemStack[]{SlimefunItems.MAGNESIUM_INGOT}, new ItemStack[]{SlimefunItems.MAGNESIUM_DUST}); + registerRecipe(6, new ItemStack[]{SlimefunItems.SILVER_INGOT}, new ItemStack[]{SlimefunItems.SILVER_DUST}); + registerRecipe(6, new ItemStack[]{SlimefunItems.TIN_INGOT}, new ItemStack[]{SlimefunItems.TIN_DUST}); + registerRecipe(6, new ItemStack[]{SlimefunItems.ZINC_INGOT}, new ItemStack[]{SlimefunItems.ZINC_DUST}); + + + } + + @Override + public int getEnergyConsumption() { + return 7; + } + + @Override + public int getSpeed() { + return 1; + } + + @Override + public String getMachineIdentifier() { + return "ELECTRIC_INGOT_PULVERIZER"; + } + }.registerChargeableBlock(true, 512); + new AGenerator(Categories.ELECTRICITY, SlimefunItems.COAL_GENERATOR, "COAL_GENERATOR", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.HEATING_COIL, new ItemStack(Material.FURNACE), SlimefunItems.HEATING_COIL, SlimefunItems.NICKEL_INGOT, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.NICKEL_INGOT, null, SlimefunItems.NICKEL_INGOT, null}) { From edbf5234f00299f336fda2f518578249ff4a942b Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 13 Nov 2016 17:45:05 +0100 Subject: [PATCH 19/37] Added the Ingot Pulverizer to the researches --- src/me/mrCookieSlime/Slimefun/Setup/ResearchSetup.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/me/mrCookieSlime/Slimefun/Setup/ResearchSetup.java b/src/me/mrCookieSlime/Slimefun/Setup/ResearchSetup.java index 45bfa1e93..43e133342 100644 --- a/src/me/mrCookieSlime/Slimefun/Setup/ResearchSetup.java +++ b/src/me/mrCookieSlime/Slimefun/Setup/ResearchSetup.java @@ -165,7 +165,7 @@ public class ResearchSetup { Slimefun.registerResearch(new Research(168, "Tier 2 Capacitors", 32), SlimefunItems.LARGE_CAPACITOR, SlimefunItems.CARBONADO_EDGED_CAPACITOR); Slimefun.registerResearch(new Research(169, "Solar Power Plant", 14), SlimefunItems.SOLAR_GENERATOR); Slimefun.registerResearch(new Research(170, "Powered Furnace", 15), SlimefunItems.ELECTRIC_FURNACE); - Slimefun.registerResearch(new Research(171, "Crushing and Grinding", 20), SlimefunItems.ELECTRIC_ORE_GRINDER); + Slimefun.registerResearch(new Research(171, "Crushing and Grinding", 20), SlimefunItems.ELECTRIC_ORE_GRINDER, SlimefunItems.ELECTRIC_INGOT_PULVERIZER); Slimefun.registerResearch(new Research(172, "Heated Pressure Chamber", 22), SlimefunItems.HEATED_PRESSURE_CHAMBER); Slimefun.registerResearch(new Research(173, "Coal Generator", 18), SlimefunItems.COAL_GENERATOR); Slimefun.registerResearch(new Research(173, "Bio-Reactor", 18), SlimefunItems.BIO_REACTOR); From 24774ec8780a30cdf7afb96bfd19c8901c8d30a7 Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Sun, 13 Nov 2016 18:13:44 +0100 Subject: [PATCH 20/37] Fixed Import --- .../CSCoreLibSetup/CSCoreLibLoader.java | 297 +++++++++--------- 1 file changed, 149 insertions(+), 148 deletions(-) diff --git a/src/me/mrCookieSlime/CSCoreLibSetup/CSCoreLibLoader.java b/src/me/mrCookieSlime/CSCoreLibSetup/CSCoreLibLoader.java index 847aea2a8..765db59cf 100644 --- a/src/me/mrCookieSlime/CSCoreLibSetup/CSCoreLibLoader.java +++ b/src/me/mrCookieSlime/CSCoreLibSetup/CSCoreLibLoader.java @@ -1,148 +1,149 @@ -package me.mrCookieSlime.CSCoreLibSetup; - -import java.io.BufferedInputStream; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStreamReader; -import java.net.MalformedURLException; -import java.net.URL; -import java.net.URLConnection; - -import org.bukkit.plugin.Plugin; -import org.json.simple.JSONArray; -import org.json.simple.JSONObject; -import org.json.simple.JSONValue; - -public class CSCoreLibLoader { - - Plugin plugin; - URL url; - URL download; - File file; - - public CSCoreLibLoader(Plugin plugin) { - this.plugin = plugin; - try { - this.url = new URL("https://api.curseforge.com/servermods/files?projectIds=88802"); - } catch (MalformedURLException e) { - } - } - - public boolean load() { - if (plugin.getServer().getPluginManager().isPluginEnabled("CS-CoreLib")) return true; - else { - System.err.println(" "); - System.err.println("#################### - FATAL ERROR - ####################"); - System.err.println(" "); - System.err.println(plugin.getName() + " could not be properly installed!"); - System.err.println("It appears that you have not installed CS-CoreLib"); - System.err.println("And because of that, CS-CoreLib is now going to be"); - System.err.println("downloaded and installed."); - System.err.println("But for the time being " + plugin.getName() + " will remain disabled"); - System.err.println("After the installation process has finished,"); - System.out.println("you will be asked to restart your Server."); - System.err.println("- mrCookieSlime"); - System.err.println(" "); - System.err.println("#################### - FATAL ERROR - ####################"); - System.err.println(" "); - plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() { - - @Override - public void run() { - if (connect()) install(); - } - }, 10L); - return false; - } - } - - private boolean connect() { - try { - final URLConnection connection = this.url.openConnection(); - connection.setConnectTimeout(5000); - connection.addRequestProperty("User-Agent", "CS-CoreLib Loader (by mrCookieSlime)"); - connection.setDoOutput(true); - - final BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); - final JSONArray array = (JSONArray) JSONValue.parse(reader.readLine()); - download = traceURL(((String) ((JSONObject) array.get(array.size() - 1)).get("downloadUrl")).replace("https:", "http:")); - file = new File("plugins/" + (String) ((JSONObject) array.get(array.size() - 1)).get("name") + ".jar"); - - return true; - } catch (IOException e) { - System.err.println(" "); - System.err.println("#################### - FATAL ERROR - ####################"); - System.err.println(" "); - System.err.println("Could not connect to BukkitDev, is it down?"); - System.err.println(" "); - System.err.println("#################### - FATAL ERROR - ####################"); - System.err.println(" "); - return false; - } - } - - private URL traceURL(String location) throws IOException { - HttpURLConnection connection = null; - - while (true) { - URL url = new URL(location); - connection = (HttpURLConnection) url.openConnection(); - - connection.setInstanceFollowRedirects(false); - connection.setConnectTimeout(5000); - connection.addRequestProperty("User-Agent", "Auto Updater (by mrCookieSlime)"); - - switch (connection.getResponseCode()) { - case HttpURLConnection.HTTP_MOVED_PERM: - case HttpURLConnection.HTTP_MOVED_TEMP: - String loc = connection.getHeaderField("Location"); - location = new URL(new URL(location), loc).toExternalForm(); - continue; - } - break; - } - - return connection.getURL(); - } - - private void install() { - BufferedInputStream input = null; - FileOutputStream output = null; - try { - input = new BufferedInputStream(download.openStream()); - output = new FileOutputStream(file); - - final byte[] data = new byte[1024]; - int read; - while ((read = input.read(data, 0, 1024)) != -1) { - output.write(data, 0, read); - } - } catch (Exception ex) { - System.err.println(" "); - System.err.println("#################### - FATAL ERROR - ####################"); - System.err.println(" "); - System.err.println("Could not download CS-CoreLib"); - System.err.println(" "); - System.err.println("#################### - FATAL ERROR - ####################"); - System.err.println(" "); - } finally { - try { - if (input != null) input.close(); - if (output != null) output.close(); - System.err.println(" "); - System.err.println("#################### - WARNING - ####################"); - System.err.println(" "); - System.err.println("Please restart your Server to finish the Installation"); - System.err.println("of " + plugin.getName() + " and CS-CoreLib"); - System.err.println(" "); - System.err.println("#################### - WARNING - ####################"); - System.err.println(" "); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - -} +package me.mrCookieSlime.CSCoreLibSetup; + +import java.io.BufferedInputStream; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.MalformedURLException; +import java.net.URL; +import java.net.URLConnection; + +import org.bukkit.plugin.Plugin; +import org.json.simple.JSONArray; +import org.json.simple.JSONObject; +import org.json.simple.JSONValue; + +public class CSCoreLibLoader { + + Plugin plugin; + URL url; + URL download; + File file; + + public CSCoreLibLoader(Plugin plugin) { + this.plugin = plugin; + try { + this.url = new URL("https://api.curseforge.com/servermods/files?projectIds=88802"); + } catch (MalformedURLException e) { + } + } + + public boolean load() { + if (plugin.getServer().getPluginManager().isPluginEnabled("CS-CoreLib")) return true; + else { + System.err.println(" "); + System.err.println("#################### - FATAL ERROR - ####################"); + System.err.println(" "); + System.err.println(plugin.getName() + " could not be properly installed!"); + System.err.println("It appears that you have not installed CS-CoreLib"); + System.err.println("And because of that, CS-CoreLib is now going to be"); + System.err.println("downloaded and installed."); + System.err.println("But for the time being " + plugin.getName() + " will remain disabled"); + System.err.println("After the installation process has finished,"); + System.out.println("you will be asked to restart your Server."); + System.err.println("- mrCookieSlime"); + System.err.println(" "); + System.err.println("#################### - FATAL ERROR - ####################"); + System.err.println(" "); + plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() { + + @Override + public void run() { + if (connect()) install(); + } + }, 10L); + return false; + } + } + + private boolean connect() { + try { + final URLConnection connection = this.url.openConnection(); + connection.setConnectTimeout(5000); + connection.addRequestProperty("User-Agent", "CS-CoreLib Loader (by mrCookieSlime)"); + connection.setDoOutput(true); + + final BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); + final JSONArray array = (JSONArray) JSONValue.parse(reader.readLine()); + download = traceURL(((String) ((JSONObject) array.get(array.size() - 1)).get("downloadUrl")).replace("https:", "http:")); + file = new File("plugins/" + (String) ((JSONObject) array.get(array.size() - 1)).get("name") + ".jar"); + + return true; + } catch (IOException e) { + System.err.println(" "); + System.err.println("#################### - FATAL ERROR - ####################"); + System.err.println(" "); + System.err.println("Could not connect to BukkitDev, is it down?"); + System.err.println(" "); + System.err.println("#################### - FATAL ERROR - ####################"); + System.err.println(" "); + return false; + } + } + + private URL traceURL(String location) throws IOException { + HttpURLConnection connection = null; + + while (true) { + URL url = new URL(location); + connection = (HttpURLConnection) url.openConnection(); + + connection.setInstanceFollowRedirects(false); + connection.setConnectTimeout(5000); + connection.addRequestProperty("User-Agent", "Auto Updater (by mrCookieSlime)"); + + switch (connection.getResponseCode()) { + case HttpURLConnection.HTTP_MOVED_PERM: + case HttpURLConnection.HTTP_MOVED_TEMP: + String loc = connection.getHeaderField("Location"); + location = new URL(new URL(location), loc).toExternalForm(); + continue; + } + break; + } + + return connection.getURL(); + } + + private void install() { + BufferedInputStream input = null; + FileOutputStream output = null; + try { + input = new BufferedInputStream(download.openStream()); + output = new FileOutputStream(file); + + final byte[] data = new byte[1024]; + int read; + while ((read = input.read(data, 0, 1024)) != -1) { + output.write(data, 0, read); + } + } catch (Exception ex) { + System.err.println(" "); + System.err.println("#################### - FATAL ERROR - ####################"); + System.err.println(" "); + System.err.println("Could not download CS-CoreLib"); + System.err.println(" "); + System.err.println("#################### - FATAL ERROR - ####################"); + System.err.println(" "); + } finally { + try { + if (input != null) input.close(); + if (output != null) output.close(); + System.err.println(" "); + System.err.println("#################### - WARNING - ####################"); + System.err.println(" "); + System.err.println("Please restart your Server to finish the Installation"); + System.err.println("of " + plugin.getName() + " and CS-CoreLib"); + System.err.println(" "); + System.err.println("#################### - WARNING - ####################"); + System.err.println(" "); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + +} From b1b8dd5107f772955d5f3ce4c9acd89c4b4ee437 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 13 Nov 2016 18:16:02 +0100 Subject: [PATCH 21/37] Fixed NMS --- src/me/mrCookieSlime/Slimefun/holograms/ArmorStandFactory.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/me/mrCookieSlime/Slimefun/holograms/ArmorStandFactory.java b/src/me/mrCookieSlime/Slimefun/holograms/ArmorStandFactory.java index a63cd24cd..c2502beb9 100644 --- a/src/me/mrCookieSlime/Slimefun/holograms/ArmorStandFactory.java +++ b/src/me/mrCookieSlime/Slimefun/holograms/ArmorStandFactory.java @@ -32,7 +32,7 @@ public class ArmorStandFactory { try { ReflectionUtils.setFieldValue(nmsEntity, "bB", 2039583); } catch(IllegalArgumentException x) { - ReflectionUtils.setFieldValue(nmsEntity, "bA", 2039583); + ReflectionUtils.setFieldValue(nmsEntity, "bA", true); } } else { From 62aa6e034af8bb311c743387325f726aaaeebfd0 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 13 Nov 2016 18:36:22 +0100 Subject: [PATCH 22/37] Prevent minecart from picking up display item --- .../Slimefun/listeners/AncientAltarListener.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/me/mrCookieSlime/Slimefun/listeners/AncientAltarListener.java b/src/me/mrCookieSlime/Slimefun/listeners/AncientAltarListener.java index 92c697719..5aa8cb9ef 100644 --- a/src/me/mrCookieSlime/Slimefun/listeners/AncientAltarListener.java +++ b/src/me/mrCookieSlime/Slimefun/listeners/AncientAltarListener.java @@ -28,6 +28,7 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; +import org.bukkit.event.inventory.InventoryPickupItemEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerPickupItemEvent; import org.bukkit.inventory.ItemStack; @@ -162,4 +163,12 @@ public class AncientAltarListener implements Listener { e.getItem().remove(); } } + + @EventHandler + public void onMinecartPickup(InventoryPickupItemEvent e) { + if (e.getItem().hasMetadata("no_pickup")) e.setCancelled(true); + else if (!e.getItem().hasMetadata("no_pickup") && e.getItem().getItemStack().hasItemMeta() && e.getItem().getItemStack().getItemMeta().hasDisplayName() && e.getItem().getItemStack().getItemMeta().getDisplayName().startsWith("§5§dALTAR §3Probe - §e")) { + e.setCancelled(true); + e.getItem().remove(); + } } From 7e1238fe839b161cafef8af900e4b86a3f8ddad7 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 13 Nov 2016 19:29:04 +0100 Subject: [PATCH 23/37] Bracket was missing (No idea how the IDE did not pick this up...) --- .../listeners/AncientAltarListener.java | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/listeners/AncientAltarListener.java b/src/me/mrCookieSlime/Slimefun/listeners/AncientAltarListener.java index 5aa8cb9ef..8d48af21e 100644 --- a/src/me/mrCookieSlime/Slimefun/listeners/AncientAltarListener.java +++ b/src/me/mrCookieSlime/Slimefun/listeners/AncientAltarListener.java @@ -37,14 +37,14 @@ import org.bukkit.metadata.FixedMetadataValue; import org.bukkit.util.Vector; public class AncientAltarListener implements Listener { - + public AncientAltarListener(SlimefunStartup plugin) { plugin.getServer().getPluginManager().registerEvents(this, plugin); } - + List altars = new ArrayList(); Set removed_items = new HashSet(); - + @EventHandler(priority=EventPriority.HIGH) public void onInteract(PlayerInteractEvent e) { if (e.getAction() != Action.RIGHT_CLICK_BLOCK) return; @@ -60,9 +60,9 @@ public class AncientAltarListener implements Listener { else if (!removed_items.contains(stack.getUniqueId())) { final UUID uuid = stack.getUniqueId(); removed_items.add(uuid); - + SlimefunStartup.instance.getServer().getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() { - + @Override public void run() { removed_items.remove(uuid); @@ -77,10 +77,10 @@ public class AncientAltarListener implements Listener { } else if (item.getName().equals("ANCIENT_ALTAR")) { e.setCancelled(true); - + ItemStack catalyst = new CustomItem(e.getPlayer().getInventory().getItemInMainHand(), 1); List pedestals = Pedestals.getPedestals(b); - + if (!altars.contains(e.getClickedBlock())) { altars.add(e.getClickedBlock()); if (pedestals.size() == 8) { @@ -90,7 +90,7 @@ public class AncientAltarListener implements Listener { Item stack = findItem(pedestal); if (stack != null) input.add(fixItemStack(stack.getItemStack(), stack.getCustomName())); } - + ItemStack result = Pedestals.getRecipeOutput(catalyst, input); if (result != null) { List consumed = new ArrayList(); @@ -116,7 +116,7 @@ public class AncientAltarListener implements Listener { } } } - + private ItemStack fixItemStack(ItemStack itemStack, String customName) { ItemStack stack = itemStack.clone(); if (customName.equals(StringUtils.formatItemName(itemStack.getData().toItemStack(1), false))) { @@ -170,5 +170,7 @@ public class AncientAltarListener implements Listener { else if (!e.getItem().hasMetadata("no_pickup") && e.getItem().getItemStack().hasItemMeta() && e.getItem().getItemStack().getItemMeta().hasDisplayName() && e.getItem().getItemStack().getItemMeta().getDisplayName().startsWith("§5§dALTAR §3Probe - §e")) { e.setCancelled(true); e.getItem().remove(); + } } } + From 6b08a18f1f1b2e9f3328af42e899cc1ba2230764 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 20 Nov 2016 00:23:37 +0100 Subject: [PATCH 24/37] Added Advanced Farmer Android - Allows the harvest of Exotic Garden plants. --- .../Slimefun/Android/AndroidType.java | 1 + .../Slimefun/Android/ProgrammableAndroid.java | 526 +++++++++--------- .../Slimefun/Android/ScriptPart.java | 6 +- .../Slimefun/Lists/SlimefunItems.java | 2 + .../Slimefun/Setup/SlimefunSetup.java | 21 + .../Slimefun/SlimefunStartup.java | 181 +++--- 6 files changed, 391 insertions(+), 346 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/Android/AndroidType.java b/src/me/mrCookieSlime/Slimefun/Android/AndroidType.java index 12ca17c95..083a7614a 100644 --- a/src/me/mrCookieSlime/Slimefun/Android/AndroidType.java +++ b/src/me/mrCookieSlime/Slimefun/Android/AndroidType.java @@ -5,6 +5,7 @@ public enum AndroidType { NONE, MINER, FARMER, + ADVANCED_FARMER, WOODCUTTER, FIGHTER, FISHERMAN, diff --git a/src/me/mrCookieSlime/Slimefun/Android/ProgrammableAndroid.java b/src/me/mrCookieSlime/Slimefun/Android/ProgrammableAndroid.java index 8e440e308..c88be9b8e 100644 --- a/src/me/mrCookieSlime/Slimefun/Android/ProgrammableAndroid.java +++ b/src/me/mrCookieSlime/Slimefun/Android/ProgrammableAndroid.java @@ -1,16 +1,5 @@ package me.mrCookieSlime.Slimefun.Android; -import java.io.File; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.UUID; - import me.mrCookieSlime.CSCoreLibPlugin.CSCoreLib; import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config; import me.mrCookieSlime.CSCoreLibPlugin.general.Block.TreeCalculator; @@ -20,11 +9,11 @@ import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu.MenuClickHan import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu.MenuOpeningHandler; import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ClickAction; import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.InvUtils; +import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem; import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.MenuHelper; import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.MenuHelper.ChatHandler; -import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem; import me.mrCookieSlime.CSCoreLibPlugin.general.World.CustomSkull; -import me.mrCookieSlime.Slimefun.SlimefunStartup; +import me.mrCookieSlime.ExoticGarden.ExoticGarden; import me.mrCookieSlime.Slimefun.Android.ScriptComparators.ScriptReputationSorter; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; @@ -36,63 +25,54 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.MachineFuel; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.handlers.BlockTicker; import me.mrCookieSlime.Slimefun.Setup.Messages; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; +import me.mrCookieSlime.Slimefun.SlimefunStartup; import me.mrCookieSlime.Slimefun.api.BlockStorage; import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu; import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset; import me.mrCookieSlime.Slimefun.api.item_transport.ItemTransportFlow; import me.mrCookieSlime.Slimefun.holograms.AndroidStatusHologram; - -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.Effect; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.OfflinePlayer; -import org.bukkit.Sound; +import org.bukkit.*; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.block.Dispenser; import org.bukkit.block.Skull; -import org.bukkit.entity.Ageable; -import org.bukkit.entity.Animals; -import org.bukkit.entity.ArmorStand; -import org.bukkit.entity.Entity; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Monster; -import org.bukkit.entity.Player; +import org.bukkit.entity.*; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.material.MaterialData; import org.bukkit.metadata.FixedMetadataValue; +import java.io.File; +import java.util.*; + public abstract class ProgrammableAndroid extends SlimefunItem { - + private static final int[] border = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 24, 25, 26, 27, 33, 35, 36, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53}; private static final int[] border_out = {10, 11, 12, 13, 14, 19, 23, 28, 32, 37, 38, 39, 40, 41}; @SuppressWarnings("deprecation") private static final ItemStack[] fish = new ItemStack[] {new MaterialData(Material.RAW_FISH, (byte) 0).toItemStack(1), new MaterialData(Material.RAW_FISH, (byte) 1).toItemStack(1), new MaterialData(Material.RAW_FISH, (byte) 2).toItemStack(1), new MaterialData(Material.RAW_FISH, (byte) 3).toItemStack(1), new ItemStack(Material.STRING), new ItemStack(Material.BONE), new ItemStack(Material.STICK)}; - + private static final List directions = Arrays.asList(BlockFace.NORTH, BlockFace.EAST, BlockFace.SOUTH, BlockFace.WEST); private static final List blockblacklist = new ArrayList(); - + static { blockblacklist.add(Material.BEDROCK); blockblacklist.add(Material.BARRIER); blockblacklist.add(Material.ENDER_PORTAL_FRAME); } - + private Set recipes = new HashSet(); - + public String getInventoryTitle() { return "Programmable Android"; } - + public int[] getOutputSlots() { return new int[] {20, 21, 22, 29, 30, 31}; } - + public abstract AndroidType getAndroidType(); public abstract float getFuelEfficiency(); public abstract int getTier(); @@ -100,13 +80,14 @@ public abstract class ProgrammableAndroid extends SlimefunItem { @SuppressWarnings("deprecation") public ProgrammableAndroid(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe) { super(category, item, name, recipeType, recipe); - + + if (getTier() == 1) { registerFuel(new MachineFuel(80, new MaterialData(Material.COAL, (byte) 0).toItemStack(1))); registerFuel(new MachineFuel(80, new MaterialData(Material.COAL, (byte) 1).toItemStack(1))); registerFuel(new MachineFuel(800, new ItemStack(Material.COAL_BLOCK))); registerFuel(new MachineFuel(45, new ItemStack(Material.BLAZE_ROD))); - + // Logs registerFuel(new MachineFuel(4, new MaterialData(Material.LOG, (byte) 0).toItemStack(1))); registerFuel(new MachineFuel(4, new MaterialData(Material.LOG, (byte) 1).toItemStack(1))); @@ -114,7 +95,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { registerFuel(new MachineFuel(4, new MaterialData(Material.LOG, (byte) 3).toItemStack(1))); registerFuel(new MachineFuel(4, new MaterialData(Material.LOG_2, (byte) 0).toItemStack(1))); registerFuel(new MachineFuel(4, new MaterialData(Material.LOG_2, (byte) 1).toItemStack(1))); - + // Wooden Planks registerFuel(new MachineFuel(1, new MaterialData(Material.WOOD, (byte) 0).toItemStack(1))); registerFuel(new MachineFuel(1, new MaterialData(Material.WOOD, (byte) 1).toItemStack(1))); @@ -133,9 +114,9 @@ public abstract class ProgrammableAndroid extends SlimefunItem { registerFuel(new MachineFuel(1200, SlimefunItems.NEPTUNIUM)); registerFuel(new MachineFuel(3000, SlimefunItems.BOOSTED_URANIUM)); } - + new BlockMenuPreset(name, getInventoryTitle()) { - + @Override public void init() { try { @@ -166,9 +147,9 @@ public abstract class ProgrammableAndroid extends SlimefunItem { BlockStorage.addBlockInfo(b, "paused", "false"); p.closeInventory(); return false; - } + } }); - + menu.replaceExistingItem(17, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTYxMzlmZDFjNTY1NGU1NmU5ZTRlMmM4YmU3ZWIyYmQ1YjQ5OWQ2MzM2MTY2NjNmZWVlOTliNzQzNTJhZDY0In19fQ=="), "§4Pause")); menu.addMenuClickHandler(17, new MenuClickHandler() { @@ -177,9 +158,9 @@ public abstract class ProgrammableAndroid extends SlimefunItem { BlockStorage.addBlockInfo(b, "paused", "true"); Messages.local.sendTranslation(p, "robot.stopped", true); return false; - } + } }); - + menu.replaceExistingItem(16, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDc4ZjJiN2U1ZTc1NjM5ZWE3ZmI3OTZjMzVkMzY0YzRkZjI4YjQyNDNlNjZiNzYyNzdhYWRjZDYyNjEzMzcifX19"), "§bMemory Core", "", "§8\u21E8 §7Click to open the Script Editor")); menu.addMenuClickHandler(16, new MenuClickHandler() { @@ -193,7 +174,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { e.printStackTrace(); } return false; - } + } }); } catch (Exception e) { e.printStackTrace(); @@ -205,9 +186,9 @@ public abstract class ProgrammableAndroid extends SlimefunItem { return new int[0]; } }; - + registerBlockHandler(name, new SlimefunBlockHandler() { - + @Override public void onPlace(Player p, Block b, SlimefunItem item) { BlockStorage.addBlockInfo(b, "owner", p.getUniqueId().toString()); @@ -221,11 +202,11 @@ public abstract class ProgrammableAndroid extends SlimefunItem { skull.setRotation(BlockFace.NORTH); skull.update(); } - + @Override public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) { boolean allow = reason.equals(UnregisterReason.PLAYER_BREAK) && (BlockStorage.getBlockInfo(b, "owner").equals(p.getUniqueId().toString()) || p.hasPermission("slimefun.android.bypass")); - + if (allow) { if (BlockStorage.getInventory(b).getItemInSlot(43) != null) b.getWorld().dropItemNaturally(b.getLocation(), BlockStorage.getInventory(b).getItemInSlot(43)); for (int slot: getOutputSlots()) { @@ -233,12 +214,12 @@ public abstract class ProgrammableAndroid extends SlimefunItem { } AndroidStatusHologram.remove(b); } - + return allow; } }); } - + @SuppressWarnings("deprecation") protected void tick(Block b) { try { @@ -248,7 +229,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { } catch(NullPointerException x) { return; } - + if (BlockStorage.getBlockInfo(b, "paused").equals("false")) { float fuel = Float.parseFloat(BlockStorage.getBlockInfo(b, "fuel")); if (fuel == 0) { @@ -273,7 +254,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { boolean refresh = true; BlockStorage.addBlockInfo(b, "fuel", String.valueOf(fuel - 1)); ScriptPart part = ScriptPart.valueOf(script[index]); - + if (getAndroidType().isType(part.getRequiredType())) { switch(part) { case GO_DOWN: { @@ -353,7 +334,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { ItemStack drop = fish[CSCoreLib.randomizer().nextInt(fish.length)]; if (fits(b, drop)) pushItems(b, drop); } - + } break; } @@ -434,6 +415,17 @@ public abstract class ProgrammableAndroid extends SlimefunItem { farm(b, block); break; } + case FARM_EXOTIC_FORWARD: { + BlockFace face = BlockFace.valueOf(BlockStorage.getBlockInfo(b, "rotation")); + Block block = b.getRelative(face); + exoticFarm(b, block); + break; + } + case FARM_EXOTIC_DOWN: { + Block block = b.getRelative(BlockFace.DOWN); + exoticFarm(b, block); + break; + } case CHOP_TREE: { BlockFace face = BlockFace.valueOf(BlockStorage.getBlockInfo(b, "rotation")); Block block = b.getRelative(face); @@ -459,7 +451,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { } else log.setType(Material.AIR); } - + } } } @@ -467,7 +459,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { } case ATTACK_MOBS_ANIMALS: { double damage = getTier() < 2 ? 20D: 4D * getTier(); - + entities: for (Entity n: AndroidStatusHologram.getNearbyEntities(b, 4D + getTier())) { switch (BlockFace.valueOf(BlockStorage.getBlockInfo(b, "rotation"))) { @@ -475,7 +467,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { if (n instanceof LivingEntity && !(n instanceof ArmorStand) && !(n instanceof Player) && n.getLocation().getZ() < b.getZ()) { if (n.hasMetadata("android_killer")) n.removeMetadata("android_killer", SlimefunStartup.instance); n.setMetadata("android_killer", new FixedMetadataValue(SlimefunStartup.instance, new AndroidObject(this, b))); - + ((LivingEntity) n).damage(damage); break entities; } @@ -485,7 +477,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { if (n instanceof LivingEntity && !(n instanceof ArmorStand) && !(n instanceof Player) && n.getLocation().getX() > b.getX()) { if (n.hasMetadata("android_killer")) n.removeMetadata("android_killer", SlimefunStartup.instance); n.setMetadata("android_killer", new FixedMetadataValue(SlimefunStartup.instance, new AndroidObject(this, b))); - + ((LivingEntity) n).damage(damage); break entities; } @@ -495,7 +487,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { if (n instanceof LivingEntity && !(n instanceof ArmorStand) && !(n instanceof Player) && n.getLocation().getZ() > b.getZ()) { if (n.hasMetadata("android_killer")) n.removeMetadata("android_killer", SlimefunStartup.instance); n.setMetadata("android_killer", new FixedMetadataValue(SlimefunStartup.instance, new AndroidObject(this, b))); - + ((LivingEntity) n).damage(damage); break entities; } @@ -505,7 +497,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { if (n instanceof LivingEntity && !(n instanceof ArmorStand) && !(n instanceof Player) && n.getLocation().getX() < b.getX()) { if (n.hasMetadata("android_killer")) n.removeMetadata("android_killer", SlimefunStartup.instance); n.setMetadata("android_killer", new FixedMetadataValue(SlimefunStartup.instance, new AndroidObject(this, b))); - + ((LivingEntity) n).damage(damage); break entities; } @@ -519,7 +511,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { } case ATTACK_MOBS: { double damage = getTier() < 2 ? 20D: 4D * getTier(); - + entities: for (Entity n: AndroidStatusHologram.getNearbyEntities(b, 4D + getTier())) { if (n instanceof Animals) continue; @@ -528,7 +520,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { if (n instanceof LivingEntity && !(n instanceof ArmorStand) && !(n instanceof Player) && n.getLocation().getZ() < b.getZ()) { if (n.hasMetadata("android_killer")) n.removeMetadata("android_killer", SlimefunStartup.instance); n.setMetadata("android_killer", new FixedMetadataValue(SlimefunStartup.instance, new AndroidObject(this, b))); - + ((LivingEntity) n).damage(damage); break entities; } @@ -538,7 +530,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { if (n instanceof LivingEntity && !(n instanceof ArmorStand) && !(n instanceof Player) && n.getLocation().getX() > b.getX()) { if (n.hasMetadata("android_killer")) n.removeMetadata("android_killer", SlimefunStartup.instance); n.setMetadata("android_killer", new FixedMetadataValue(SlimefunStartup.instance, new AndroidObject(this, b))); - + ((LivingEntity) n).damage(damage); break entities; } @@ -548,7 +540,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { if (n instanceof LivingEntity && !(n instanceof ArmorStand) && !(n instanceof Player) && n.getLocation().getZ() > b.getZ()) { if (n.hasMetadata("android_killer")) n.removeMetadata("android_killer", SlimefunStartup.instance); n.setMetadata("android_killer", new FixedMetadataValue(SlimefunStartup.instance, new AndroidObject(this, b))); - + ((LivingEntity) n).damage(damage); break entities; } @@ -558,7 +550,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { if (n instanceof LivingEntity && !(n instanceof ArmorStand) && !(n instanceof Player) && n.getLocation().getX() < b.getX()) { if (n.hasMetadata("android_killer")) n.removeMetadata("android_killer", SlimefunStartup.instance); n.setMetadata("android_killer", new FixedMetadataValue(SlimefunStartup.instance, new AndroidObject(this, b))); - + ((LivingEntity) n).damage(damage); break entities; } @@ -573,7 +565,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { case ATTACK_ANIMALS: { double damage = getTier() < 2 ? 20D: 4D * getTier(); - + entities: for (Entity n: AndroidStatusHologram.getNearbyEntities(b, 4D + getTier())) { if (n instanceof Monster) continue; @@ -582,7 +574,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { if (n instanceof LivingEntity && !(n instanceof ArmorStand) && !(n instanceof Player) && n.getLocation().getZ() < b.getZ()) { if (n.hasMetadata("android_killer")) n.removeMetadata("android_killer", SlimefunStartup.instance); n.setMetadata("android_killer", new FixedMetadataValue(SlimefunStartup.instance, new AndroidObject(this, b))); - + ((LivingEntity) n).damage(damage); break entities; } @@ -592,7 +584,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { if (n instanceof LivingEntity && !(n instanceof ArmorStand) && !(n instanceof Player) && n.getLocation().getX() > b.getX()) { if (n.hasMetadata("android_killer")) n.removeMetadata("android_killer", SlimefunStartup.instance); n.setMetadata("android_killer", new FixedMetadataValue(SlimefunStartup.instance, new AndroidObject(this, b))); - + ((LivingEntity) n).damage(damage); break entities; } @@ -602,7 +594,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { if (n instanceof LivingEntity && !(n instanceof ArmorStand) && !(n instanceof Player) && n.getLocation().getZ() > b.getZ()) { if (n.hasMetadata("android_killer")) n.removeMetadata("android_killer", SlimefunStartup.instance); n.setMetadata("android_killer", new FixedMetadataValue(SlimefunStartup.instance, new AndroidObject(this, b))); - + ((LivingEntity) n).damage(damage); break entities; } @@ -612,7 +604,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { if (n instanceof LivingEntity && !(n instanceof ArmorStand) && !(n instanceof Player) && n.getLocation().getX() < b.getX()) { if (n.hasMetadata("android_killer")) n.removeMetadata("android_killer", SlimefunStartup.instance); n.setMetadata("android_killer", new FixedMetadataValue(SlimefunStartup.instance, new AndroidObject(this, b))); - + ((LivingEntity) n).damage(damage); break entities; } @@ -627,7 +619,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { case ATTACK_ANIMALS_ADULT: { double damage = getTier() < 2 ? 20D: 4D * getTier(); - + entities: for (Entity n: AndroidStatusHologram.getNearbyEntities(b, 4D + getTier())) { if (n instanceof Monster) continue; @@ -637,7 +629,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { if (n instanceof LivingEntity && !(n instanceof ArmorStand) && !(n instanceof Player) && n.getLocation().getZ() < b.getZ()) { if (n.hasMetadata("android_killer")) n.removeMetadata("android_killer", SlimefunStartup.instance); n.setMetadata("android_killer", new FixedMetadataValue(SlimefunStartup.instance, new AndroidObject(this, b))); - + ((LivingEntity) n).damage(damage); break entities; } @@ -647,7 +639,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { if (n instanceof LivingEntity && !(n instanceof ArmorStand) && !(n instanceof Player) && n.getLocation().getX() > b.getX()) { if (n.hasMetadata("android_killer")) n.removeMetadata("android_killer", SlimefunStartup.instance); n.setMetadata("android_killer", new FixedMetadataValue(SlimefunStartup.instance, new AndroidObject(this, b))); - + ((LivingEntity) n).damage(damage); break entities; } @@ -657,7 +649,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { if (n instanceof LivingEntity && !(n instanceof ArmorStand) && !(n instanceof Player) && n.getLocation().getZ() > b.getZ()) { if (n.hasMetadata("android_killer")) n.removeMetadata("android_killer", SlimefunStartup.instance); n.setMetadata("android_killer", new FixedMetadataValue(SlimefunStartup.instance, new AndroidObject(this, b))); - + ((LivingEntity) n).damage(damage); break entities; } @@ -667,7 +659,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { if (n instanceof LivingEntity && !(n instanceof ArmorStand) && !(n instanceof Player) && n.getLocation().getX() < b.getX()) { if (n.hasMetadata("android_killer")) n.removeMetadata("android_killer", SlimefunStartup.instance); n.setMetadata("android_killer", new FixedMetadataValue(SlimefunStartup.instance, new AndroidObject(this, b))); - + ((LivingEntity) n).damage(damage); break entities; } @@ -687,15 +679,15 @@ public abstract class ProgrammableAndroid extends SlimefunItem { } } } - + @SuppressWarnings("deprecation") private void move(Block b, BlockFace face, Block block) throws Exception { if (block.getY() < 0 || block.getY() > block.getWorld().getMaxHeight()) return; - + if (block.getType() == Material.AIR) { block.setType(Material.SKULL); block.setData((byte) 1); - + Skull skull = (Skull) block.getState(); skull.setRotation(face); skull.update(); @@ -704,7 +696,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { BlockStorage.moveBlockInfo(b, block); } } - + private void mine(Block b, Block block) { Collection drops = block.getDrops(); if (!blockblacklist.contains(block.getType()) && !drops.isEmpty() && CSCoreLib.getLib().getProtectionManager().canBuild(UUID.fromString(BlockStorage.getBlockInfo(b, "owner")), block)) { @@ -716,7 +708,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { } } } - + @SuppressWarnings("deprecation") private void movedig(Block b, BlockFace face, Block block) { Collection drops = block.getDrops(); @@ -728,7 +720,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType()); block.setType(Material.SKULL); block.setData((byte) 1); - + Skull skull = (Skull) block.getState(); skull.setRotation(face); skull.update(); @@ -739,7 +731,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { } catch(Exception x) { x.printStackTrace(); } - } + } else { try { move(b, face, block); @@ -748,92 +740,104 @@ public abstract class ProgrammableAndroid extends SlimefunItem { } } } - - @SuppressWarnings("deprecation") - private void farm(Block b, Block block) { - switch (block.getType()) { - case CROPS: { - if (block.getData() >= 7) { - ItemStack drop = new ItemStack(Material.WHEAT, CSCoreLib.randomizer().nextInt(3) + 1); - if (fits(b, drop)) { - pushItems(b, drop); - block.setData((byte) 0); - block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType()); - } - } - break; - } - case POTATO: { - if (block.getData() >= 7) { - ItemStack drop = new ItemStack(Material.POTATO_ITEM, CSCoreLib.randomizer().nextInt(3) + 1); - if (fits(b, drop)) { - pushItems(b, drop); - block.setData((byte) 0); - block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType()); - } - } - break; - } - case CARROT: { - if (block.getData() >= 7) { - ItemStack drop = new ItemStack(Material.CARROT_ITEM, CSCoreLib.randomizer().nextInt(3) + 1); - if (fits(b, drop)) { - pushItems(b, drop); - block.setData((byte) 0); - block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType()); - } - } - break; - } - case BEETROOT_BLOCK: { - if (block.getData() >= 3) { - ItemStack drop = new ItemStack(Material.BEETROOT, CSCoreLib.randomizer().nextInt(3) + 1); - if (fits(b, drop)) { - pushItems(b, drop); - block.setData((byte) 0); - block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType()); - } - } - break; - } - case COCOA: { - if (block.getData() >= 8) { - ItemStack drop = new MaterialData(Material.INK_SACK, (byte) 3).toItemStack(CSCoreLib.randomizer().nextInt(3) + 1); - if (fits(b, drop)) { - pushItems(b, drop); - block.setData((byte) (block.getData() - 8)); - block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType()); - } - } - break; - } - case NETHER_WARTS: { - if (block.getData() >= 3) { - ItemStack drop = new ItemStack(Material.NETHER_STALK, CSCoreLib.randomizer().nextInt(3) + 1); - if (fits(b, drop)) { - pushItems(b, drop); - block.setData((byte) 0); - block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType()); - } - } - break; - } - default: - break; - } - } + + @SuppressWarnings("deprecation") + private void farm(Block b, Block block) { + switch (block.getType()) { + case CROPS: { + if (block.getData() >= 7) { + ItemStack drop = new ItemStack(Material.WHEAT, CSCoreLib.randomizer().nextInt(3) + 1); + if (fits(b, drop)) { + pushItems(b, drop); + block.setData((byte) 0); + block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType()); + } + } + break; + } + case POTATO: { + if (block.getData() >= 7) { + ItemStack drop = new ItemStack(Material.POTATO_ITEM, CSCoreLib.randomizer().nextInt(3) + 1); + if (fits(b, drop)) { + pushItems(b, drop); + block.setData((byte) 0); + block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType()); + } + } + break; + } + case CARROT: { + if (block.getData() >= 7) { + ItemStack drop = new ItemStack(Material.CARROT_ITEM, CSCoreLib.randomizer().nextInt(3) + 1); + if (fits(b, drop)) { + pushItems(b, drop); + block.setData((byte) 0); + block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType()); + } + } + break; + } + case BEETROOT_BLOCK: { + if (block.getData() >= 3) { + ItemStack drop = new ItemStack(Material.BEETROOT, CSCoreLib.randomizer().nextInt(3) + 1); + if (fits(b, drop)) { + pushItems(b, drop); + block.setData((byte) 0); + block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType()); + } + } + break; + } + case COCOA: { + if (block.getData() >= 8) { + ItemStack drop = new MaterialData(Material.INK_SACK, (byte) 3).toItemStack(CSCoreLib.randomizer().nextInt(3) + 1); + if (fits(b, drop)) { + pushItems(b, drop); + block.setData((byte) (block.getData() - 8)); + block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType()); + } + } + break; + } + case NETHER_WARTS: { + if (block.getData() >= 3) { + ItemStack drop = new ItemStack(Material.NETHER_STALK, CSCoreLib.randomizer().nextInt(3) + 1); + if (fits(b, drop)) { + pushItems(b, drop); + block.setData((byte) 0); + block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType()); + } + } + break; + } + default: + break; + } + } + + private void exoticFarm(Block b, Block block) { + farm(b, block); + if (SlimefunStartup.instance.isExoticGardenInstalled()) { + ItemStack drop = ExoticGarden.harvestPlant(block); + if (drop != null && fits(b, drop)) { + pushItems(b, drop); + block.setData((byte) 0); + block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType()); + } + } + } @SuppressWarnings("deprecation") private void constructMenu(BlockMenuPreset preset) throws Exception { for (int i: border) { preset.addItem(i, new CustomItem(new MaterialData(Material.STAINED_GLASS_PANE, (byte) 7), " "), new MenuClickHandler() { - + @Override public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) { return false; } - + }); } for (int i: border_out) { @@ -844,13 +848,13 @@ public abstract class ProgrammableAndroid extends SlimefunItem { public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) { return false; } - + }); } - + for (int i: getOutputSlots()) { preset.addMenuClickHandler(i, new AdvancedMenuClickHandler() { - + @Override public boolean onClick(Player p, int slot, ItemStack cursor, ClickAction action) { return false; @@ -862,11 +866,11 @@ public abstract class ProgrammableAndroid extends SlimefunItem { } }); } - + if (getTier() == 1) { preset.addItem(34, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "§8\u21E9 §cFuel Input §8\u21E9", "", "§rThis Android runs on solid Fuel", "§re.g. Coal, Wood, etc..."), new MenuClickHandler() { - + @Override public boolean onClick(Player p, int slot, ItemStack stack, ClickAction action) { return false; @@ -876,7 +880,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { else if (getTier() == 2){ preset.addItem(34, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "§8\u21E9 §cFuel Input §8\u21E9", "", "§rThis Android runs on liquid Fuel", "§re.g. Lava, Oil, Fuel, etc..."), new MenuClickHandler() { - + @Override public boolean onClick(Player p, int slot, ItemStack stack, ClickAction action) { return false; @@ -886,7 +890,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { else { preset.addItem(34, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "§8\u21E9 §cFuel Input §8\u21E9", "", "§rThis Android runs on radioactive Fuel", "§re.g. Uranium, Neptunium or Boosted Uranium"), new MenuClickHandler() { - + @Override public boolean onClick(Player p, int slot, ItemStack stack, ClickAction action) { return false; @@ -894,13 +898,13 @@ public abstract class ProgrammableAndroid extends SlimefunItem { }); } } - + public void openScriptEditor(Player p, final Block b) throws Exception { ChestMenu menu = new ChestMenu("§eScript Editor"); - + menu.addItem(2, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDliZjZkYjRhZWRhOWQ4ODIyYjlmNzM2NTM4ZThjMThiOWE0ODQ0Zjg0ZWI0NTUwNGFkZmJmZWU4N2ViIn19fQ=="), "§2> Edit Script", "", "§aEdits your current Script"), new MenuClickHandler() { - + @Override public boolean onClick(Player p, int slot, ItemStack stack, ClickAction action) { try { @@ -911,10 +915,10 @@ public abstract class ProgrammableAndroid extends SlimefunItem { return false; } }); - + menu.addItem(4, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTcxZDg5NzljMTg3OGEwNTk4N2E3ZmFmMjFiNTZkMWI3NDRmOWQwNjhjNzRjZmZjZGUxZWExZWRhZDU4NTIifX19"), "§4> Create new Script", "", "§cDeletes your current Script", "§cand creates a blank one"), new MenuClickHandler() { - + @Override public boolean onClick(Player p, int slot, ItemStack stack, ClickAction action) { try { @@ -925,10 +929,10 @@ public abstract class ProgrammableAndroid extends SlimefunItem { return false; } }); - + menu.addItem(6, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzAxNTg2ZTM5ZjZmZmE2M2I0ZmIzMDFiNjVjYTdkYThhOTJmNzM1M2FhYWI4OWQzODg2NTc5MTI1ZGZiYWY5In19fQ=="), "§6> Download a Script", "", "§eDownload a Script from the Server", "§eYou can edit or simply use it"), new MenuClickHandler() { - + @Override public boolean onClick(Player p, int slot, ItemStack stack, ClickAction action) { try { @@ -939,32 +943,32 @@ public abstract class ProgrammableAndroid extends SlimefunItem { return false; } }); - + menu.open(p); } public void openScript(final Player p, final Block b, final String script) throws Exception { ChestMenu menu = new ChestMenu("§eScript Editor"); final String[] commands = script.split("-"); - + menu.addItem(0, ScriptPart.START.toItemStack()); menu.addMenuClickHandler(0, new MenuClickHandler() { - + @Override public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) { return false; } }); - + for (int i = 1; i < commands.length; i++) { final int index = i; if (i == commands.length - 1) { int additional = commands.length == 54 ? 0: 1; - + if (additional == 1) { menu.addItem(i, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTcxZDg5NzljMTg3OGEwNTk4N2E3ZmFmMjFiNTZkMWI3NDRmOWQwNjhjNzRjZmZjZGUxZWExZWRhZDU4NTIifX19"), "§7> Add new Command")); menu.addMenuClickHandler(i, new MenuClickHandler() { - + @Override public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) { try { @@ -976,10 +980,10 @@ public abstract class ProgrammableAndroid extends SlimefunItem { } }); } - + menu.addItem(i + additional, ScriptPart.REPEAT.toItemStack()); menu.addMenuClickHandler(i + additional, new MenuClickHandler() { - + @Override public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) { return false; @@ -990,12 +994,12 @@ public abstract class ProgrammableAndroid extends SlimefunItem { ItemStack stack = ScriptPart.valueOf(commands[i]).toItemStack(); menu.addItem(i, new CustomItem(stack, stack.getItemMeta().getDisplayName(), "", "§7\u21E8 §eLeft Click §7to edit", "§7\u21E8 §eRight Click §7to delete", "§7\u21E8 §eShift + Right Click §7to duplicate")); menu.addMenuClickHandler(i, new MenuClickHandler() { - + @Override public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction action) { if (action.isRightClicked() && action.isShiftClicked()) { if (commands.length == 54) return false; - + int i = 0; StringBuilder builder = new StringBuilder("START-"); for (String command: commands) { @@ -1010,7 +1014,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { } builder.append("REPEAT"); BlockStorage.addBlockInfo(b, "script", builder.toString()); - + try { openScript(p, b, builder.toString()); } catch (Exception e) { @@ -1044,41 +1048,41 @@ public abstract class ProgrammableAndroid extends SlimefunItem { }); } } - + menu.open(p); } - + @SuppressWarnings("deprecation") private void openScriptDownloader(final Player p, final Block b, final int page) throws Exception { final ChestMenu menu = new ChestMenu("Slimefun Guide"); - + menu.addMenuOpeningHandler(new MenuOpeningHandler() { - + @Override public void onOpen(Player p) { p.playSound(p.getLocation(), Sound.BLOCK_NOTE_HAT, 0.7F, 0.7F); } }); - + List scripts = getUploadedScripts(); - + int index = 0; final int pages = (scripts.size() / 45) + 1; - + for (int i = 45; i < 54; i++) { menu.addItem(i, new CustomItem(new MaterialData(Material.STAINED_GLASS_PANE, (byte) 7), " ")); menu.addMenuClickHandler(i, new MenuClickHandler() { - + @Override public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) { return false; } }); } - + menu.addItem(46, new CustomItem(new MaterialData(Material.STAINED_GLASS_PANE, (byte) 5), "&r\u21E6 Previous Page", "", "&7(" + page + " / " + pages + ")")); menu.addMenuClickHandler(46, new MenuClickHandler() { - + @Override public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) { int next = page - 1; @@ -1093,15 +1097,15 @@ public abstract class ProgrammableAndroid extends SlimefunItem { return false; } }); - + menu.addItem(49, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTA1YTJjYWI4YjY4ZWE1N2UzYWY5OTJhMzZlNDdjOGZmOWFhODdjYzg3NzYyODE5NjZmOGMzY2YzMWEzOCJ9fX0="), "&eUpload a Script", "", "§6Click §7to upload your Android's Script", "§7to the Database")); menu.addMenuClickHandler(49, new MenuClickHandler() { - + @Override public boolean onClick(Player p, int arg1, ItemStack arg2, ClickAction arg3) { final String code = BlockStorage.getBlockInfo(b, "script"); int num = 1; - + for (Config script: getUploadedScripts()) { if (script.getString("author").equals(p.getUniqueId().toString())) num++; if (script.getString("code").equals(code)) { @@ -1109,18 +1113,18 @@ public abstract class ProgrammableAndroid extends SlimefunItem { return false; } } - + final int id = num; - + p.closeInventory(); Messages.local.sendTranslation(p, "android.scripts.enter-name", true); - + MenuHelper.awaitChatInput(p, new ChatHandler() { - + @Override public boolean onChat(Player p, String message) { Config script = new Config("plugins/Slimefun/scripts/" + getAndroidType().toString() + "/" + p.getName() + " " + id + ".sfs"); - + script.setValue("author", p.getUniqueId().toString()); script.setValue("author_name", p.getName()); script.setValue("name", ChatColor.stripColor(ChatColor.translateAlternateColorCodes('&', message))); @@ -1130,24 +1134,24 @@ public abstract class ProgrammableAndroid extends SlimefunItem { script.setValue("rating.positive", new ArrayList()); script.setValue("rating.negative", new ArrayList()); script.save(); - + try { Messages.local.sendTranslation(p, "android.uploaded", true); openScriptDownloader(p, b, page); } catch (Exception e) { e.printStackTrace(); } - + return false; } }); return false; } }); - + menu.addItem(52, new CustomItem(new MaterialData(Material.STAINED_GLASS_PANE, (byte) 5), "&rNext Page \u21E8", "", "&7(" + page + " / " + pages + ")")); menu.addMenuClickHandler(52, new MenuClickHandler() { - + @Override public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) { int next = page + 1; @@ -1162,30 +1166,30 @@ public abstract class ProgrammableAndroid extends SlimefunItem { return false; } }); - + int category_index = 45 * (page - 1); for (int i = 0; i < 45; i++) { int target = category_index + i; if (target >= scripts.size()) break; else { final Config script = scripts.get(target); - + OfflinePlayer op = Bukkit.getOfflinePlayer(script.getUUID("author")); String author = (op != null && op.getName() != null) ? op.getName(): script.getString("author_name"); - + if (script.getString("author").equals(p.getUniqueId().toString())) { menu.addItem(index, new CustomItem(this.getItem(), "§b" + script.getString("name"), "§7by §r" + author, "", "§7Downloads: §r" + script.getInt("downloads"), "§7Rating: " + getScriptRatingPercentage(script), "§a" + getScriptRating(script, true) + " \u263A §7- §4\u2639 " + getScriptRating(script, false), "", "§eLeft Click &rto download this Script", "§4(This will override your current Script)")); } else { menu.addItem(index, new CustomItem(this.getItem(), "§b" + script.getString("name"), "§7by §r" + author, "", "§7Downloads: §r" + script.getInt("downloads"), "§7Rating: " + getScriptRatingPercentage(script), "§a" + getScriptRating(script, true) + " \u263A §7- §4\u2639 " + getScriptRating(script, false), "", "§eLeft Click &rto download this Script", "§4(This will override your current Script)", "§eShift + Left Click §rto leave a positive Rating", "§eShift + Right Click §rto leave a negative Rating")); } - + menu.addMenuClickHandler(index, new MenuClickHandler() { - + @Override public boolean onClick(Player p, int slot, ItemStack stack, ClickAction action) { Config script2 = new Config(script.getFile()); - + if (action.isShiftClicked()) { if (script2.getString("author").equals(p.getUniqueId().toString())) { Messages.local.sendTranslation(p, "android.scripts.rating.own", true); @@ -1194,10 +1198,10 @@ public abstract class ProgrammableAndroid extends SlimefunItem { if (!script2.getStringList("rating.negative").contains(p.getUniqueId().toString()) && !script2.getStringList("rating.positive").contains(p.getUniqueId().toString())) { List list = script2.getStringList("rating.negative"); list.add(p.getUniqueId().toString()); - + script2.setValue("rating.negative", list); script2.save(); - + try { openScriptDownloader(p, b, page); } catch (Exception e) { @@ -1212,10 +1216,10 @@ public abstract class ProgrammableAndroid extends SlimefunItem { if (!script2.getStringList("rating.negative").contains(p.getUniqueId().toString()) && !script2.getStringList("rating.positive").contains(p.getUniqueId().toString())) { List list = script2.getStringList("rating.positive"); list.add(p.getUniqueId().toString()); - + script2.setValue("rating.positive", list); script2.save(); - + try { openScriptDownloader(p, b, page); } catch (Exception e) { @@ -1231,7 +1235,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { try { script2.setValue("downloads", script2.getInt("downloads") + 1); script2.save(); - + BlockStorage.addBlockInfo(b, "script", script2.getString("code")); openScriptEditor(p, b); } catch (Exception e) { @@ -1241,11 +1245,11 @@ public abstract class ProgrammableAndroid extends SlimefunItem { return false; } }); - + index++; } } - + menu.open(p); } @@ -1266,16 +1270,16 @@ public abstract class ProgrammableAndroid extends SlimefunItem { else if (Float.parseFloat(progress) < 64.0F) progress = "&e" + progress + "&r% "; else if (Float.parseFloat(progress) < 80.0F) progress = "&2" + progress + "&r% "; else progress = "&a" + progress + "&r% "; - + return progress; } @SuppressWarnings("deprecation") protected void openScriptComponentEditor(Player p, final Block b, final String script, final int index) throws Exception { ChestMenu menu = new ChestMenu("§eScript Editor"); - + final String[] commands = script.split("-"); - + menu.addItem(0, new CustomItem(new MaterialData(Material.STAINED_GLASS_PANE, (byte) 7), " "), new MenuClickHandler() { @@ -1283,9 +1287,9 @@ public abstract class ProgrammableAndroid extends SlimefunItem { public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) { return false; } - + }); - + menu.addItem(1, new CustomItem(new MaterialData(Material.STAINED_GLASS_PANE, (byte) 7), " "), new MenuClickHandler() { @@ -1293,9 +1297,9 @@ public abstract class ProgrammableAndroid extends SlimefunItem { public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) { return false; } - + }); - + menu.addItem(2, new CustomItem(new MaterialData(Material.STAINED_GLASS_PANE, (byte) 7), " "), new MenuClickHandler() { @@ -1303,9 +1307,9 @@ public abstract class ProgrammableAndroid extends SlimefunItem { public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) { return false; } - + }); - + menu.addItem(3, new CustomItem(new MaterialData(Material.STAINED_GLASS_PANE, (byte) 7), " "), new MenuClickHandler() { @@ -1313,9 +1317,9 @@ public abstract class ProgrammableAndroid extends SlimefunItem { public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) { return false; } - + }); - + menu.addItem(4, new CustomItem(new MaterialData(Material.STAINED_GLASS_PANE, (byte) 7), " "), new MenuClickHandler() { @@ -1323,9 +1327,9 @@ public abstract class ProgrammableAndroid extends SlimefunItem { public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) { return false; } - + }); - + menu.addItem(5, new CustomItem(new MaterialData(Material.STAINED_GLASS_PANE, (byte) 7), " "), new MenuClickHandler() { @@ -1333,9 +1337,9 @@ public abstract class ProgrammableAndroid extends SlimefunItem { public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) { return false; } - + }); - + menu.addItem(6, new CustomItem(new MaterialData(Material.STAINED_GLASS_PANE, (byte) 7), " "), new MenuClickHandler() { @@ -1343,9 +1347,9 @@ public abstract class ProgrammableAndroid extends SlimefunItem { public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) { return false; } - + }); - + menu.addItem(7, new CustomItem(new MaterialData(Material.STAINED_GLASS_PANE, (byte) 7), " "), new MenuClickHandler() { @@ -1353,9 +1357,9 @@ public abstract class ProgrammableAndroid extends SlimefunItem { public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) { return false; } - + }); - + menu.addItem(8, new CustomItem(new MaterialData(Material.STAINED_GLASS_PANE, (byte) 7), " "), new MenuClickHandler() { @@ -1363,12 +1367,12 @@ public abstract class ProgrammableAndroid extends SlimefunItem { public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) { return false; } - + }); - + menu.addItem(9, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTYxMzlmZDFjNTY1NGU1NmU5ZTRlMmM4YmU3ZWIyYmQ1YjQ5OWQ2MzM2MTY2NjNmZWVlOTliNzQzNTJhZDY0In19fQ=="), "§rDo nothing"), new MenuClickHandler() { - + @Override public boolean onClick(Player p, int arg1, ItemStack arg2, ClickAction arg3) { int i = 0; @@ -1387,12 +1391,12 @@ public abstract class ProgrammableAndroid extends SlimefunItem { return false; } }); - + int i = 10; for (final ScriptPart part: getAccessibleScriptParts()) { menu.addItem(i, part.toItemStack(), new MenuClickHandler() { - + @Override public boolean onClick(Player p, int arg1, ItemStack arg2, ClickAction arg3) { int i = 0; @@ -1406,7 +1410,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { } builder.append("REPEAT"); BlockStorage.addBlockInfo(b, "script", builder.toString()); - + try { openScript(p, b, builder.toString()); } catch (Exception e) { @@ -1417,7 +1421,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { }); i++; } - + menu.open(p); } @@ -1432,28 +1436,28 @@ public abstract class ProgrammableAndroid extends SlimefunItem { } return inv; } - + protected boolean fits(Block b, ItemStack... items) { return inject(b).addItem(items).isEmpty(); } - + protected void pushItems(Block b, ItemStack... items) { Inventory inv = inject(b); inv.addItem(items); - + for (int slot: getOutputSlots()) { BlockStorage.getInventory(b).replaceExistingItem(slot, inv.getItem(slot)); } } - + public void addItems(Block b, ItemStack... items) { this.pushItems(b, items); } - + @Override public void register(boolean slimefun) { addItemHandler(new BlockTicker() { - + @Override public void tick(Block b, SlimefunItem sf, Config data) { if (b != null) ProgrammableAndroid.this.tick(b); @@ -1471,44 +1475,44 @@ public abstract class ProgrammableAndroid extends SlimefunItem { super.register(slimefun); } - + public void registerFuel(MachineFuel fuel) { this.recipes.add(fuel); } - + public List getUploadedScripts() { List scripts = new ArrayList(); - + File directory = new File("plugins/Slimefun/scripts/" + this.getAndroidType().toString()); if (!directory.exists()) directory.mkdirs(); - + for (File script: directory.listFiles()) { if (script.getName().endsWith("sfs")) scripts.add(new Config(script)); } - + if (!this.getAndroidType().equals(AndroidType.NONE)) { File directory2 = new File("plugins/Slimefun/scripts/NONE"); if (!directory2.exists()) directory2.mkdirs(); - + for (File script: directory2.listFiles()) { if (script.getName().endsWith("sfs")) scripts.add(new Config(script)); } } - + Collections.sort(scripts, new ScriptReputationSorter(this)); - + return scripts; } - + public List getAccessibleScriptParts() { List list = new ArrayList(); - + for (final ScriptPart part: ScriptPart.values()) { if (!part.equals(ScriptPart.START) && !part.equals(ScriptPart.REPEAT) && getAndroidType().isType(part.getRequiredType())) { list.add(part); } } - + return list; } } diff --git a/src/me/mrCookieSlime/Slimefun/Android/ScriptPart.java b/src/me/mrCookieSlime/Slimefun/Android/ScriptPart.java index 70573fb9f..0915f34e6 100644 --- a/src/me/mrCookieSlime/Slimefun/Android/ScriptPart.java +++ b/src/me/mrCookieSlime/Slimefun/Android/ScriptPart.java @@ -45,7 +45,11 @@ public enum ScriptPart { // Action - Hoe FARM_FORWARD(AndroidType.FARMER, "§bHarvest and Replant", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGRlOWE1MjJjM2Q5ZTdkODVmM2Q4MmMzNzVkYzM3ZmVjYzg1NmRiZDgwMWViM2JjZWRjMTE2NTE5OGJmIn19fQ=="), FARM_DOWN(AndroidType.FARMER, "§bHarvest and Replant §7(Block underneath)", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMmQ0Mjk2YjMzM2QyNTMxOWFmM2YzMzA1MTc5N2Y5ZTZkODIxY2QxOWEwMTRmYjcxMzdiZWI4NmE0ZTllOTYifX19"), - + + // Action - ExoticGarden + FARM_EXOTIC_FORWARD(AndroidType.ADVANCED_FARMER, "§bAdvanced Harvest and Replant", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGRlOWE1MjJjM2Q5ZTdkODVmM2Q4MmMzNzVkYzM3ZmVjYzg1NmRiZDgwMWViM2JjZWRjMTE2NTE5OGJmIn19fQ=="), + FARM_EXOTIC_DOWN(AndroidType.ADVANCED_FARMER, "§bAdvanced Harvest and Replant §7(Block underneath)", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMmQ0Mjk2YjMzM2QyNTMxOWFmM2YzMzA1MTc5N2Y5ZTZkODIxY2QxOWEwMTRmYjcxMzdiZWI4NmE0ZTllOTYifX19"), + // Action - Interface INTERFACE_ITEMS(AndroidType.NONE, "§9Push Inventory Contents to the faced Interface", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTBhNGRiZjY2MjVjNDJiZTU3YThiYTJjMzMwOTU0YTc2YmRmMjI3ODU1NDBlODdhNWM5NjcyNjg1MjM4ZWMifX19"), INTERFACE_FUEL(AndroidType.NONE, "§cPull Fuel from the faced Interface", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjQzMmY1MjgyYTUwNzQ1YjkxMmJlMTRkZWRhNTgxYmQ0YTA5Yjk3N2EzYzMyZDdlOTU3ODQ5MWZlZThmYTcifX19"); diff --git a/src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java b/src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java index 4c1c10dfc..dfd5cf18d 100644 --- a/src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java +++ b/src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java @@ -512,6 +512,7 @@ public class SlimefunItems { public static ItemStack PROGRAMMABLE_ANDROID_2 = null; public static ItemStack PROGRAMMABLE_ANDROID_2_FISHERMAN = null; + public static ItemStack PROGRAMMABLE_ANDROID_2_FARMER = null; public static ItemStack PROGRAMMABLE_ANDROID_2_BUTCHER = null; public static ItemStack PROGRAMMABLE_ANDROID_3 = null; @@ -703,6 +704,7 @@ public class SlimefunItems { PROGRAMMABLE_ANDROID_2 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzUwM2NiN2VkODQ1ZTdhNTA3ZjU2OWFmYzY0N2M0N2FjNDgzNzcxNDY1YzlhNjc5YTU0NTk0Yzc2YWZiYSJ9fX0="), "§cAdvanced Programmable Android &7(Normal)", "", "§8\u21E8 §7Function: None", "§8\u21E8 §7Fuel Efficiency: 1.5x"); PROGRAMMABLE_ANDROID_2_FISHERMAN = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzQ1ZTg3MzNhNzMxMTQzMzNiOThiMzYwMTc1MTI0MTcyMmY0NzEzZTFhMWE1ZDM2ZmJiMTMyNDkzZjFjNyJ9fX0="), "§cAdvanced Programmable Android &7(Fisherman)", "", "§8\u21E8 §7Function: Fishing", "§8\u21E8 §7Success Rate: 20%", "§8\u21E8 §7Fuel Efficiency: 1.5x"); + PROGRAMMABLE_ANDROID_2_FARMER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjlkMzMzNTdlODQxODgyM2JmNzgzZGU5MmRlODAyOTFiNGViZDM5MmFlYzg3MDY2OThlMDY4OTZkNDk4ZjYifX19"), "§cAdvanced Programmable Android &7(Farmer)", "", "§8\u21E8 §7Function: Farming", "§8\u21E8 §7Fuel Efficiency: 1.5x", "§8\u21E8 §7Can harvest Exotic Garden plants"); PROGRAMMABLE_ANDROID_2_BUTCHER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvM2I0NzJkZjBhZDlhM2JlODhmMmU1ZDVkNDIyZDAyYjExNmQ2NGQ4ZGYxNDc1ZWQzMmU1NDZhZmM4NGIzMSJ9fX0="), "§cAdvanced Programmable Android &7(Butcher)", "", "§8\u21E8 §7Function: Slaughtering", "§8\u21E8 §7Damage: 8", "§8\u21E8 §7Fuel Efficiency: 1.5x"); PROGRAMMABLE_ANDROID_3 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzUwM2NiN2VkODQ1ZTdhNTA3ZjU2OWFmYzY0N2M0N2FjNDgzNzcxNDY1YzlhNjc5YTU0NTk0Yzc2YWZiYSJ9fX0="), "§eEmpowered Programmable Android &7(Normal)", "", "§8\u21E8 §7Function: None", "§8\u21E8 §7Fuel Efficiency: 3.0x"); diff --git a/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java b/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java index 1fde5f664..64620c464 100644 --- a/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java +++ b/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java @@ -4081,6 +4081,27 @@ public class SlimefunSetup { } .register(true); + + new ProgrammableAndroid(Categories.ELECTRICITY, SlimefunItems.PROGRAMMABLE_ANDROID_2_FARMER, "PROGRAMMABLE_ANDROID_2_FARMER", RecipeType.ENHANCED_CRAFTING_TABLE, + new ItemStack[] {null, SlimefunItems.GPS_TRANSMITTER, null, new ItemStack(Material.DIAMOND_HOE), SlimefunItems.PROGRAMMABLE_ANDROID_2, new ItemStack(Material.DIAMOND_HOE), null, SlimefunItems.ELECTRIC_MOTOR, null}) { + + @Override + public AndroidType getAndroidType() { + return AndroidType.ADVANCED_FARMER; + } + + @Override + public float getFuelEfficiency() { + return 1.5F; + } + + @Override + public int getTier() { + return 2; + } + + } + .register(true); new ProgrammableAndroid(Categories.ELECTRICITY, SlimefunItems.PROGRAMMABLE_ANDROID_3, "PROGRAMMABLE_ANDROID_3", RecipeType.ENHANCED_CRAFTING_TABLE, diff --git a/src/me/mrCookieSlime/Slimefun/SlimefunStartup.java b/src/me/mrCookieSlime/Slimefun/SlimefunStartup.java index ced605c07..b4a1a731d 100644 --- a/src/me/mrCookieSlime/Slimefun/SlimefunStartup.java +++ b/src/me/mrCookieSlime/Slimefun/SlimefunStartup.java @@ -82,39 +82,42 @@ import me.mrCookieSlime.Slimefun.listeners.ItemListener; import me.mrCookieSlime.Slimefun.listeners.TalismanListener; import me.mrCookieSlime.Slimefun.listeners.TeleporterListener; import me.mrCookieSlime.Slimefun.listeners.ToolListener; +import org.bukkit.scheduler.BukkitRunnable; +import org.bukkit.scheduler.BukkitTask; public class SlimefunStartup extends JavaPlugin { - + public static SlimefunStartup instance; - + static PluginUtils utils; static Config researches; static Config items; static Config whitelist; static Config config; - + public static TickerTask ticker; - + private boolean clearlag = false; + private boolean exoticGarden = false; // Supported Versions of Minecraft final String[] supported = {"v1_9_", "v1_10_", "PluginBukkitBridge"}; - + @SuppressWarnings("deprecation") @Override public void onEnable() { CSCoreLibLoader loader = new CSCoreLibLoader(this); if (loader.load()) { - + boolean compatibleVersion = false; - + for (String version: supported) { if (ReflectionUtils.getVersion().startsWith(version)) { compatibleVersion = true; break; } } - + // Looks like you are using an unsupported Minecraft Version if (!compatibleVersion) { System.err.println("### Slimefun failed to load!"); @@ -130,21 +133,21 @@ public class SlimefunStartup extends JavaPlugin { getServer().getPluginManager().disablePlugin(this); return; } - + instance = this; System.out.println("[Slimefun] Loading Files..."); Files.cleanup(); - + System.out.println("[Slimefun] Loading Config..."); - + utils = new PluginUtils(this); utils.setupConfig(); - + // Loading all extra configs researches = new Config(Files.RESEARCHES); items = new Config(Files.ITEMS); whitelist = new Config(Files.WHITELIST); - + // Init Config, Updater, Metrics and messages.yml utils.setupUpdater(53485, getFile()); utils.setupMetrics(); @@ -164,9 +167,9 @@ public class SlimefunStartup extends JavaPlugin { if (!new File("plugins/Slimefun/scripts").exists()) new File("plugins/Slimefun/scripts").mkdirs(); if (!new File("plugins/Slimefun/generators").exists()) new File("plugins/Slimefun/generators").mkdirs(); if (!new File("plugins/Slimefun/error-reports").exists()) new File("plugins/Slimefun/error-reports").mkdirs(); - + SlimefunManager.plugin = this; - + System.out.println("[Slimefun] Loading Items..."); MiscSetup.setupItemSettings(); try { @@ -175,17 +178,17 @@ public class SlimefunStartup extends JavaPlugin { e1.printStackTrace(); } MiscSetup.loadDescriptions(); - + System.out.println("[Slimefun] Loading Researches..."); Research.enabled = getResearchCfg().getBoolean("enable-researching"); ResearchSetup.setupResearches(); - + MiscSetup.setupMisc(); - + BlockStorage.info_delay = config.getInt("URID.info-delay"); System.out.println("[Slimefun] Loading World Generators..."); - + // Generating Oil as an OreGenResource (its a cool API) OreGenSystem.registerResource(new OreGenResource() { @@ -197,20 +200,20 @@ public class SlimefunStartup extends JavaPlugin { case BEACHES: { return CSCoreLib.randomizer().nextInt(6) + 2; } - + case DESERT: case DESERT_HILLS: case MUTATED_DESERT: { return CSCoreLib.randomizer().nextInt(40) + 19; } - + case EXTREME_HILLS: case MUTATED_EXTREME_HILLS: case SMALLER_EXTREME_HILLS: case RIVER: { return CSCoreLib.randomizer().nextInt(14) + 13; } - + case ICE_MOUNTAINS: case ICE_FLATS: case MUTATED_ICE_FLATS: @@ -218,13 +221,13 @@ public class SlimefunStartup extends JavaPlugin { case FROZEN_RIVER: { return CSCoreLib.randomizer().nextInt(11) + 3; } - + case SKY: case HELL: { return 0; } - - + + case MESA: case MESA_CLEAR_ROCK: case MESA_ROCK: @@ -240,12 +243,12 @@ public class SlimefunStartup extends JavaPlugin { case OCEAN: { return CSCoreLib.randomizer().nextInt(62) + 24; } - + case SWAMPLAND: case MUTATED_SWAMPLAND: { return CSCoreLib.randomizer().nextInt(20) + 4; } - + default: { return CSCoreLib.randomizer().nextInt(10) + 6; } @@ -267,7 +270,7 @@ public class SlimefunStartup extends JavaPlugin { return "Buckets"; } }); - + // All Slimefun Listeners new ArmorListener(this); new ItemListener(this); @@ -280,7 +283,7 @@ public class SlimefunStartup extends JavaPlugin { new FurnaceListener(this); new TeleporterListener(this); new AndroidKillingListener(this); - + // Toggleable Listeners for performance if (config.getBoolean("items.talismans")) new TalismanListener(this); if (config.getBoolean("items.backpacks")) new BackpackListener(this); @@ -290,7 +293,7 @@ public class SlimefunStartup extends JavaPlugin { // TODO: Move it to its own class, was too lazy if (config.getBoolean("options.give-guide-on-first-join")) { getServer().getPluginManager().registerEvents(new Listener() { - + @EventHandler public void onJoin(PlayerJoinEvent e) { if (!e.getPlayer().hasPlayedBefore()) { @@ -300,43 +303,43 @@ public class SlimefunStartup extends JavaPlugin { p.getInventory().addItem(SlimefunGuide.getItem(config.getBoolean("guide.default-view-book"))); } } - + }, this); } // Load/Unload Worlds in Slimefun // TODO: Move it to its own class, was too lazy getServer().getPluginManager().registerEvents(new Listener() { - + @EventHandler public void onWorldLoad(WorldLoadEvent e) { BlockStorage.getForcedStorage(e.getWorld()); - + SlimefunStartup.getWhitelist().setDefaultValue(e.getWorld().getName() + ".enabled", true); SlimefunStartup.getWhitelist().setDefaultValue(e.getWorld().getName() + ".enabled-items.SLIMEFUN_GUIDE", true); SlimefunStartup.getWhitelist().save(); } - + @EventHandler public void onWorldUnload(WorldUnloadEvent e) { BlockStorage storage = BlockStorage.getStorage(e.getWorld()); if (storage != null) storage.save(true); else System.err.println("[Slimefun] Could not save Slimefun Blocks for World \"" + e.getWorld().getName() + "\""); } - + }, this); - + // Clear the Slimefun Guide History upon Player Leaving // TODO: Move it to its own class, was too lazy getServer().getPluginManager().registerEvents(new Listener() { - + @EventHandler public void onDisconnect(PlayerQuitEvent e) { if (SlimefunGuide.history.containsKey(e.getPlayer().getUniqueId())) SlimefunGuide.history.remove(e.getPlayer().getUniqueId()); } - + }, this); - + // Initiating various Stuff and all Items with a slightly delay (0ms after the Server finished loading) getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() { @Override @@ -344,15 +347,15 @@ public class SlimefunStartup extends JavaPlugin { Slimefun.emeraldenchants = getServer().getPluginManager().isPluginEnabled("EmeraldEnchants"); SlimefunGuide.all_recipes = config.getBoolean("options.show-vanilla-recipes-in-guide"); MiscSetup.loadItems(); - + for (World world: Bukkit.getWorlds()) { new BlockStorage(world); } - + if (SlimefunItem.getByName("ANCIENT_ALTAR") != null) new AncientAltarListener((SlimefunStartup) instance); } }, 0); - + // WorldEdit Hook to clear Slimefun Data upon //set 0 //cut or any other equivalent if (getServer().getPluginManager().isPluginEnabled("WorldEdit")) { try { @@ -364,14 +367,14 @@ public class SlimefunStartup extends JavaPlugin { System.err.println("[Slimefun] Maybe consider updating WorldEdit or Slimefun?"); } } - + getCommand("slimefun").setExecutor(new SlimefunCommand(this)); getCommand("slimefun").setTabCompleter(new SlimefunTabCompleter()); - + // Armor Update Task if (config.getBoolean("options.enable-armor-effects")) { getServer().getScheduler().runTaskTimer(this, new Runnable() { - + @Override public void run() { for (Player p: Bukkit.getOnlinePlayers()) { @@ -394,7 +397,7 @@ public class SlimefunStartup extends JavaPlugin { } } } - + for (ItemStack radioactive: SlimefunItem.radioactive) { if (p.getInventory().containsAtLeast(radioactive, 1)) { boolean hasFullHazmat = false; @@ -407,7 +410,7 @@ public class SlimefunStartup extends JavaPlugin { } } } - + if (!hasFullHazmat){ p.addPotionEffect(new PotionEffect(PotionEffectType.WITHER, 400, 3)); p.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, 400, 3)); @@ -424,41 +427,48 @@ public class SlimefunStartup extends JavaPlugin { } }, 0L, config.getInt("options.armor-update-interval") * 20L); } - + ticker = new TickerTask(); - + // Starting all ASYNC Tasks getServer().getScheduler().scheduleAsyncRepeatingTask(this, new AutoSavingTask(), 1200L, config.getInt("options.auto-save-delay-in-minutes") * 60L * 20L); getServer().getScheduler().scheduleAsyncRepeatingTask(this, ticker, 100L, config.getInt("URID.custom-ticker-delay")); - + // Hooray! System.out.println("[Slimefun] Finished!"); - + clearlag = getServer().getPluginManager().isPluginEnabled("ClearLag"); - + + Bukkit.getScheduler().scheduleSyncDelayedTask(this, new BukkitRunnable() { + @Override + public void run() { + exoticGarden = getServer().getPluginManager().isPluginEnabled("ExoticGarden"); //Had to do it this way, otherwise it seems disabled. + } + }, 0); + if (clearlag) new ClearLaggIntegration(this); - + // Do not show /sf elevator command in our Log, it could get quite spammy CSCoreLib.getLib().filterLog("([A-Za-z0-9_]{3,16}) issued server command: /sf elevator (.{0,})"); } } - + @Override public void onDisable() { Bukkit.getScheduler().cancelTasks(this); - + try { for (Map.Entry entry: ticker.move.entrySet()) { BlockStorage._integrated_moveBlockInfo(entry.getKey(), entry.getValue()); } ticker.move.clear(); - + for (World world: Bukkit.getWorlds()) { BlockStorage storage = BlockStorage.getStorage(world); if (storage != null) storage.save(true); else System.err.println("[Slimefun] Could not save Slimefun Blocks for World \"" + world.getName() + "\""); } - + File folder = new File("data-storage/Slimefun/block-backups"); List backups = Arrays.asList(folder.listFiles()); if (backups.size() > 20) { @@ -473,78 +483,78 @@ public class SlimefunStartup extends JavaPlugin { } } }); - + for (int i = backups.size() - 20; i > 0; i--) { backups.get(i).delete(); } } - + File file = new File("data-storage/Slimefun/block-backups/" + Clock.format(new Date()) + ".zip"); byte[] buffer = new byte[1024]; - + if (file.exists()) file.delete(); - + try { file.createNewFile(); - + ZipOutputStream output = new ZipOutputStream(new FileOutputStream(file)); - + for (File f1: new File("data-storage/Slimefun/stored-blocks/").listFiles()) { for (File f: f1.listFiles()) { ZipEntry entry = new ZipEntry("stored-blocks/" + f1.getName() + "/" + f.getName()); output.putNextEntry(entry); FileInputStream input = new FileInputStream(f); - + int length; while ((length = input.read(buffer)) > 0) { output.write(buffer, 0, length); } - + input.close(); output.closeEntry(); } } - + for (File f: new File("data-storage/Slimefun/universal-inventories/").listFiles()) { ZipEntry entry = new ZipEntry("universal-inventories/" + f.getName()); output.putNextEntry(entry); FileInputStream input = new FileInputStream(f); - + int length; while ((length = input.read(buffer)) > 0) { output.write(buffer, 0, length); } - + input.close(); output.closeEntry(); } - + for (File f: new File("data-storage/Slimefun/stored-inventories/").listFiles()) { ZipEntry entry = new ZipEntry("stored-inventories/" + f.getName()); output.putNextEntry(entry); FileInputStream input = new FileInputStream(f); - + int length; while ((length = input.read(buffer)) > 0) { output.write(buffer, 0, length); } - + input.close(); output.closeEntry(); } - + ZipEntry entry = new ZipEntry("stored-chunks/chunks.sfc"); output.putNextEntry(entry); FileInputStream input = new FileInputStream(new File("data-storage/Slimefun/stored-chunks/chunks.sfc")); - + int length; while ((length = input.read(buffer)) > 0) { output.write(buffer, 0, length); } - + input.close(); output.closeEntry(); - + output.close(); System.out.println("[Slimfun] Backed up Blocks to " + file.getName()); } catch(IOException e) { @@ -552,7 +562,7 @@ public class SlimefunStartup extends JavaPlugin { } } catch(Exception x) { } - + config = null; researches = null; items = null; @@ -607,38 +617,41 @@ public class SlimefunStartup extends JavaPlugin { BlockStorage.universal_inventories = null; TickerTask.block_timings = null; OreGenSystem.map = null; - + for (Player p: Bukkit.getOnlinePlayers()) { p.closeInventory(); } } - + public static Config getCfg() { return config; } - + public static Config getResearchCfg() { return researches; } - + public static Config getItemCfg() { return items; } - + public static Config getWhitelist() { return whitelist; } - + public static int randomize(int max) { return CSCoreLib.randomizer().nextInt(max); } - + public static boolean chance(int max, int percentage) { return CSCoreLib.randomizer().nextInt(max) <= percentage; } - + public boolean isClearLagInstalled() { return clearlag; } + public boolean isExoticGardenInstalled () { + return exoticGarden; + } } From bce1a3dfa3fa689157c37bf4ff835b51dcf1a797 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 20 Nov 2016 14:47:46 +0100 Subject: [PATCH 25/37] 1.11 Support --- .../Slimefun/SlimefunStartup.java | 2 +- .../Slimefun/holograms/ArmorStandFactory.java | 29 ++++++++++++------- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/SlimefunStartup.java b/src/me/mrCookieSlime/Slimefun/SlimefunStartup.java index b4a1a731d..6bf85d286 100644 --- a/src/me/mrCookieSlime/Slimefun/SlimefunStartup.java +++ b/src/me/mrCookieSlime/Slimefun/SlimefunStartup.java @@ -101,7 +101,7 @@ public class SlimefunStartup extends JavaPlugin { private boolean exoticGarden = false; // Supported Versions of Minecraft - final String[] supported = {"v1_9_", "v1_10_", "PluginBukkitBridge"}; + final String[] supported = {"v1_9_", "v1_10_", "v1_11_", "PluginBukkitBridge"}; @SuppressWarnings("deprecation") @Override diff --git a/src/me/mrCookieSlime/Slimefun/holograms/ArmorStandFactory.java b/src/me/mrCookieSlime/Slimefun/holograms/ArmorStandFactory.java index c2502beb9..26a074289 100644 --- a/src/me/mrCookieSlime/Slimefun/holograms/ArmorStandFactory.java +++ b/src/me/mrCookieSlime/Slimefun/holograms/ArmorStandFactory.java @@ -11,7 +11,7 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.util.EulerAngle; public class ArmorStandFactory { - + public static ArmorStand createHidden(Location l) { ArmorStand armorstand = (ArmorStand) l.getWorld().spawnEntity(l, EntityType.ARMOR_STAND); armorstand.setVisible(false); @@ -24,17 +24,24 @@ public class ArmorStandFactory { if (ReflectionUtils.getVersion().startsWith("v1_9_")) { try { ReflectionUtils.setFieldValue(nmsEntity, "bz", 2039583); - } catch(IllegalArgumentException x) { + } catch (IllegalArgumentException x) { ReflectionUtils.setFieldValue(nmsEntity, "bA", 2039583); } } else if (ReflectionUtils.getVersion().startsWith("v1_10_")) { try { ReflectionUtils.setFieldValue(nmsEntity, "bB", 2039583); - } catch(IllegalArgumentException x) { + } catch (IllegalArgumentException x) { ReflectionUtils.setFieldValue(nmsEntity, "bA", true); } } + else if (ReflectionUtils.getVersion().startsWith("v1_11_")) { + try { + ReflectionUtils.setFieldValue(nmsEntity, "bA", 2039583); + } catch (IllegalArgumentException x) { + ReflectionUtils.setFieldValue(nmsEntity, "bB", true); + } + } else { Method method = nmsEntity.getClass().getMethod("getNBTTag"); Object tag = method.invoke(nmsEntity); @@ -43,10 +50,10 @@ public class ArmorStandFactory { } method = nmsEntity.getClass().getMethod("c", ReflectionUtils.getClass("NBTTagCompound")); method.invoke(nmsEntity, tag); - + tag.getClass().getMethod("setBoolean", String.class, boolean.class).invoke(tag, "Invulnerable", true); nmsEntity.getClass().getMethod("f", ReflectionUtils.getClass("NBTTagCompound")).invoke(nmsEntity, tag); - + tag.getClass().getMethod("setInt", String.class, int.class).invoke(tag, "DisabledSlots", 2039583); nmsEntity.getClass().getMethod("a", ReflectionUtils.getClass("NBTTagCompound")).invoke(nmsEntity, tag); } @@ -55,7 +62,7 @@ public class ArmorStandFactory { } return armorstand; } - + public static ArmorStand createSmall(Location l, ItemStack item, EulerAngle arm, float yaw) { l.setYaw(yaw); ArmorStand armorstand = (ArmorStand) l.getWorld().spawnEntity(l, EntityType.ARMOR_STAND); @@ -84,10 +91,10 @@ public class ArmorStandFactory { } method = nmsEntity.getClass().getMethod("c", ReflectionUtils.getClass("NBTTagCompound")); method.invoke(nmsEntity, tag); - + tag.getClass().getMethod("setBoolean", String.class, boolean.class).invoke(tag, "Invulnerable", true); nmsEntity.getClass().getMethod("f", ReflectionUtils.getClass("NBTTagCompound")).invoke(nmsEntity, tag); - + tag.getClass().getMethod("setInt", String.class, int.class).invoke(tag, "DisabledSlots", 2039583); nmsEntity.getClass().getMethod("a", ReflectionUtils.getClass("NBTTagCompound")).invoke(nmsEntity, tag); } @@ -96,7 +103,7 @@ public class ArmorStandFactory { } return armorstand; } - + public static ArmorStand createSmall(Location l, ItemStack head, float yaw) { l.setYaw(yaw); ArmorStand armorstand = (ArmorStand) l.getWorld().spawnEntity(l, EntityType.ARMOR_STAND); @@ -123,10 +130,10 @@ public class ArmorStandFactory { } method = nmsEntity.getClass().getMethod("c", ReflectionUtils.getClass("NBTTagCompound")); method.invoke(nmsEntity, tag); - + tag.getClass().getMethod("setBoolean", String.class, boolean.class).invoke(tag, "Invulnerable", true); nmsEntity.getClass().getMethod("f", ReflectionUtils.getClass("NBTTagCompound")).invoke(nmsEntity, tag); - + tag.getClass().getMethod("setInt", String.class, int.class).invoke(tag, "DisabledSlots", 2039583); nmsEntity.getClass().getMethod("a", ReflectionUtils.getClass("NBTTagCompound")).invoke(nmsEntity, tag); } From b7c760649efbf7f148a11850f59db41a654ed1d2 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 20 Nov 2016 17:50:20 +0100 Subject: [PATCH 26/37] Made the Nuclear Reactor abstract, which will allow developers to make their own reactors. --- .../AReactor.java} | 52 ++++++++----------- .../Slimefun/Setup/SlimefunSetup.java | 43 +++++++++++++-- .../mrCookieSlime/Slimefun/SlimefunGuide.java | 10 ++-- 3 files changed, 68 insertions(+), 37 deletions(-) rename src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/{machines/NuclearReactor.java => abstractItems/AReactor.java} (91%) diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/NuclearReactor.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java similarity index 91% rename from src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/NuclearReactor.java rename to src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java index 86c099e42..9e43ec773 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/NuclearReactor.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java @@ -1,4 +1,4 @@ -package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines; +package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems; import java.util.ArrayList; import java.util.HashMap; @@ -14,6 +14,7 @@ import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ClickAction; import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.InvUtils; import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem; import me.mrCookieSlime.CSCoreLibPlugin.general.World.CustomSkull; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.ReactorAccessPort; import me.mrCookieSlime.Slimefun.SlimefunStartup; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; @@ -42,7 +43,7 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.material.MaterialData; -public class NuclearReactor extends SlimefunItem { +public abstract class AReactor extends SlimefunItem { public static Map processing = new HashMap(); public static Map progress = new HashMap(); @@ -66,7 +67,7 @@ public class NuclearReactor extends SlimefunItem { private static final int[] border_2 = {15, 16, 17, 24, 26, 33, 35, 42, 44, 51, 52, 53}; private static final int[] border_3 = {30, 31, 32, 39, 41, 48, 49, 50}; - public NuclearReactor(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe) { + public AReactor(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe) { super(category, item, name, recipeType, recipe); new BlockMenuPreset(name, getInventoryTitle()) { @@ -220,31 +221,29 @@ public class NuclearReactor extends SlimefunItem { } }); - - preset.addItem(7, new CustomItem(SlimefunItems.REACTOR_COOLANT_CELL, "§bCoolant Slot", "", "§rThis Slot accepts Coolant Cells", "§4Without any Coolant Cells, your Reactor", "§4will explode"), - new MenuClickHandler() { + if (needsCooling()) { + preset.addItem(7, new CustomItem(SlimefunItems.REACTOR_COOLANT_CELL, "§bCoolant Slot", "", "§rThis Slot accepts Coolant Cells", "§4Without any Coolant Cells, your Reactor", "§4will explode")); + } else { + preset.addItem(7, new CustomItem(SlimefunItems.REACTOR_COOLANT_CELL, "§bCoolant Slot", "", "§rThis Slot accepts Coolant Cells")); + } + preset.addMenuClickHandler(7, new MenuClickHandler() { @Override - public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) { + public boolean onClick(Player player, int i, ItemStack itemStack, ClickAction clickAction) { return false; } - }); } - public String getInventoryTitle() { - return "§2Nuclear Reactor"; - } + public abstract String getInventoryTitle(); - public void registerDefaultRecipes() { - registerFuel(new MachineFuel(1200, SlimefunItems.URANIUM, SlimefunItems.NEPTUNIUM)); - registerFuel(new MachineFuel(600, SlimefunItems.NEPTUNIUM, SlimefunItems.PLUTONIUM)); - registerFuel(new MachineFuel(1500, SlimefunItems.BOOSTED_URANIUM, null)); - } + public abstract void registerDefaultRecipes(); - public int getEnergyProduction() { - return 250; - } + public abstract int getEnergyProduction(); + + public abstract void extraTick(Location l); + + public abstract boolean needsCooling(); //NOTE: Still needs to be surrounded by water! public int[] getInputSlots() { return new int[] {19, 28, 37, 25, 34, 43}; @@ -287,6 +286,7 @@ public class NuclearReactor extends SlimefunItem { if (isProcessing(l)) { int timeleft = progress.get(l); + extraTick(l); if (timeleft > 0) { if (ChargableBlock.getMaxCharge(l) - ChargableBlock.getCharge(l) >= getEnergyProduction()) { ChargableBlock.addCharge(l, getEnergyProduction()); @@ -294,7 +294,7 @@ public class NuclearReactor extends SlimefunItem { if (ChargableBlock.getMaxCharge(l) - ChargableBlock.getCharge(l) >= getEnergyProduction() || !BlockStorage.getBlockInfo(l, "reactor-mode").equals("generator")) { progress.put(l, timeleft - 1); - boolean coolant = (processing.get(l).getTicks() - timeleft) % 25 == 0; + boolean coolant = needsCooling() && (processing.get(l).getTicks() - timeleft) % 25 == 0; ItemStack item = getProgressBar().clone(); ItemMeta im = item.getItemMeta(); @@ -340,7 +340,7 @@ public class NuclearReactor extends SlimefunItem { return 0; } } - + return ChargableBlock.getCharge(l); } return 0; @@ -351,7 +351,7 @@ public class NuclearReactor extends SlimefunItem { if (port != null) { for (int slot: getOutputSlots()) { - BlockStorage.getInventory(l).replaceExistingItem(slot, ReactorAccessPort.pushItems(port.getLocation(), BlockStorage.getInventory(l).getItemInSlot(slot)));; + BlockStorage.getInventory(l).replaceExistingItem(slot, ReactorAccessPort.pushItems(port.getLocation(), BlockStorage.getInventory(l).getItemInSlot(slot))); } } @@ -465,13 +465,7 @@ public class NuclearReactor extends SlimefunItem { return null; } - public ItemStack getProgressBar() { - try { - return CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTNhZDhlZTg0OWVkZjA0ZWQ5YTI2Y2EzMzQxZjYwMzNiZDc2ZGNjNDIzMWVkMWVhNjNiNzU2NTc1MWIyN2FjIn19fQ=="); - } catch (Exception e) { - return new ItemStack(Material.BLAZE_POWDER); - } - } + public abstract ItemStack getProgressBar(); public Set getFuelTypes() { return this.recipes; diff --git a/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java b/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java index 64620c464..bb2ca2a0a 100644 --- a/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java +++ b/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java @@ -6,6 +6,7 @@ import java.util.HashSet; import java.util.List; import java.util.UUID; +import me.mrCookieSlime.CSCoreLibPlugin.general.World.CustomSkull; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Effect; @@ -122,7 +123,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.FoodComposter; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.FoodFabricator; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.Freezer; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.HeatedPressureChamber; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.NuclearReactor; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AReactor; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.OilPump; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.ReactorAccessPort; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.Refinery; @@ -4843,8 +4844,44 @@ public class SlimefunSetup { SlimefunItem.setRadioactive(SlimefunItems.BOOSTED_URANIUM); - new NuclearReactor(Categories.ELECTRICITY, SlimefunItems.NUCLEAR_REACTOR, "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}) + new AReactor(Categories.ELECTRICITY, SlimefunItems.NUCLEAR_REACTOR, "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}){ + @Override + public String getInventoryTitle() { + return "§2Nuclear Reactor"; + } + + @Override + public void registerDefaultRecipes() { + registerFuel(new MachineFuel(1200, SlimefunItems.URANIUM, SlimefunItems.NEPTUNIUM)); + registerFuel(new MachineFuel(600, SlimefunItems.NEPTUNIUM, SlimefunItems.PLUTONIUM)); + registerFuel(new MachineFuel(1500, SlimefunItems.BOOSTED_URANIUM, null)); + } + + @Override + public int getEnergyProduction() { + return 250; + } + + @Override + public void extraTick(Location l) { + + } + + @Override + public ItemStack getProgressBar() { + try { + return CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTNhZDhlZTg0OWVkZjA0ZWQ5YTI2Y2EzMzQxZjYwMzNiZDc2ZGNjNDIzMWVkMWVhNjNiNzU2NTc1MWIyN2FjIn19fQ=="); + } catch (Exception e) { + return new ItemStack(Material.BLAZE_POWDER); + } + } + + @Override + public boolean needsCooling() { + return true; + } + } .registerChargeableBlock(true, 16384); new SlimefunItem(Categories.CARGO, SlimefunItems.CARGO_MOTOR, "CARGO_MOTOR", RecipeType.ENHANCED_CRAFTING_TABLE, diff --git a/src/me/mrCookieSlime/Slimefun/SlimefunGuide.java b/src/me/mrCookieSlime/Slimefun/SlimefunGuide.java index 9840800aa..29f65388a 100644 --- a/src/me/mrCookieSlime/Slimefun/SlimefunGuide.java +++ b/src/me/mrCookieSlime/Slimefun/SlimefunGuide.java @@ -29,7 +29,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunMachine; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AGenerator; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.MachineFuel; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.NuclearReactor; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AReactor; import me.mrCookieSlime.Slimefun.Setup.Messages; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; import me.mrCookieSlime.Slimefun.URID.URID; @@ -1064,16 +1064,16 @@ public class SlimefunGuide { slot++; } } - else if (sfItem instanceof NuclearReactor) { + else if (sfItem instanceof AReactor) { int slot = 27; - for (MachineFuel fuel: ((NuclearReactor) sfItem).getFuelTypes()) { + for (MachineFuel fuel: ((AReactor) sfItem).getFuelTypes()) { if (slot > 54) break; ItemStack fItem = fuel.getInput().clone(); ItemMeta im = fItem.getItemMeta(); List lore = new ArrayList(); lore.add("§8\u21E8 §7Lasts " + getTimeLeft(fuel.getTicks() / 2)); - lore.add("§8\u21E8 §e\u26A1 §7" + (((NuclearReactor) sfItem).getEnergyProduction() * 2) + " J/s"); - lore.add("§8\u21E8 §e\u26A1 §7" + DoubleHandler.getFancyDouble(fuel.getTicks() * ((NuclearReactor) sfItem).getEnergyProduction()) + " J in total"); + lore.add("§8\u21E8 §e\u26A1 §7" + (((AReactor) sfItem).getEnergyProduction() * 2) + " J/s"); + lore.add("§8\u21E8 §e\u26A1 §7" + DoubleHandler.getFancyDouble(fuel.getTicks() * ((AReactor) sfItem).getEnergyProduction()) + " J in total"); im.setLore(lore); fItem.setItemMeta(im); menu.addItem(slot, fItem); From 269e10d2ffb17d9099c2afc1129ae832914cbf80 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 20 Nov 2016 21:06:13 +0100 Subject: [PATCH 27/37] Added Nether Start Reactor. --- .../Slimefun/Lists/SlimefunItems.java | 4 +- .../SlimefunItem/abstractItems/AReactor.java | 17 +- .../Slimefun/Setup/SlimefunSetup.java | 1593 +++++++++-------- 3 files changed, 830 insertions(+), 784 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java b/src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java index dfd5cf18d..a8a56c151 100644 --- a/src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java +++ b/src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java @@ -607,6 +607,7 @@ public class SlimefunItems { public static ItemStack REACTOR_COOLANT_CELL = null; public static ItemStack NUCLEAR_REACTOR = null; + public static ItemStack NETHERSTAR_REACTOR = null; public static ItemStack REACTOR_ACCESS_PORT = new CustomItem(new MaterialData(Material.STAINED_CLAY, (byte) 9), "§2Reactor Access Port", "", "§rAllows you to interact with a Reactor", "§rvia Cargo Nodes, can also be used", "§ras a Buffer", "", "§8\u21E8 §eMust be placed &a3 Blocks &eabove the Reactor"); public static ItemStack FREEZER = null; @@ -677,7 +678,8 @@ public class SlimefunItems { COMBUSTION_REACTOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "&cCombustion Reactor", "", "§6Advanced Generator", "§8\u21E8 §e\u26A1 §7256 J Buffer", "§8\u21E8 §e\u26A1 §724 J/s"); NUCLEAR_REACTOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "&2Nuclear Reactor", "", "§rRequires Cooling!", "§8\u21E8 §bMust be surrounded by Water", "§8\u21E8 §bMust be supplied with Reactor Coolant Cells", "", "§4End-Game Generator", "§8\u21E8 §e\u26A1 §716384 J Buffer", "§8\u21E8 §e\u26A1 §7500 J/s"); - + + NETHERSTAR_REACTOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "&fNether Star Reactor", "", "§fUses the power of Nether Stars", "§fto generate large amounts of energy", "§8\u21E8 §bMust be surrounded by Water", "", "§4End-Game Generator", "§8\u21E8 §732768 J Buffer", "§8\u21E8 §e\u26A1 §7720 J/s", "§8\u21E8 §7Wither Effect around the Reactor"); SMALL_CAPACITOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTEzNjFlNTc2YjQ5M2NiZmRmYWUzMjg2NjFjZWRkMWFkZDU1ZmFiNGU1ZWI0MThiOTJjZWJmNjI3NWY4YmI0In19fQ=="), "&aSmall Energy Capacitor", "", "§eBasic Capacitor", "§8\u21E8 §e\u26A1 §7128 J Capacity"); MEDIUM_CAPACITOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTEzNjFlNTc2YjQ5M2NiZmRmYWUzMjg2NjFjZWRkMWFkZDU1ZmFiNGU1ZWI0MThiOTJjZWJmNjI3NWY4YmI0In19fQ=="), "&aMedium Energy Capacitor", "", "§6Average Capacitor", "§8\u21E8 §e\u26A1 §7512 J Capacity"); BIG_CAPACITOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTEzNjFlNTc2YjQ5M2NiZmRmYWUzMjg2NjFjZWRkMWFkZDU1ZmFiNGU1ZWI0MThiOTJjZWJmNjI3NWY4YmI0In19fQ=="), "&aBig Energy Capacitor", "", "§aMedium Capacitor", "§8\u21E8 §e\u26A1 §71024 J Capacity"); diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java index 9e43ec773..ed315ee6c 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java @@ -22,8 +22,6 @@ 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.Objects.SlimefunItem.abstractItems.MachineFuel; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.MachineHelper; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; import me.mrCookieSlime.Slimefun.api.BlockStorage; import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock; @@ -32,6 +30,7 @@ import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu; import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset; import me.mrCookieSlime.Slimefun.api.item_transport.ItemTransportFlow; +import me.mrCookieSlime.Slimefun.holograms.ReactorHologram; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; @@ -42,6 +41,7 @@ import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.material.MaterialData; +import org.bukkit.scheduler.BukkitRunnable; public abstract class AReactor extends SlimefunItem { @@ -192,7 +192,7 @@ public abstract class AReactor extends SlimefunItem { for (int i: border_3) { preset.addItem(i, new CustomItem(new MaterialData(Material.STAINED_GLASS_PANE, (byte) 13), " "), - new MenuClickHandler() { + new MenuClickHandler() { @Override public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) { @@ -285,8 +285,8 @@ public abstract class AReactor extends SlimefunItem { BlockMenu port = getAccessPort(l); if (isProcessing(l)) { - int timeleft = progress.get(l); extraTick(l); + int timeleft = progress.get(l); if (timeleft > 0) { if (ChargableBlock.getMaxCharge(l) - ChargableBlock.getCharge(l) >= getEnergyProduction()) { ChargableBlock.addCharge(l, getEnergyProduction()); @@ -401,11 +401,16 @@ public abstract class AReactor extends SlimefunItem { } @Override - public boolean explode(Location l) { + public boolean explode(final Location l) { final boolean explosion = explode.contains(l); if (explosion) { BlockStorage.getInventory(l).close(); - + Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { + @Override + public void run() { + ReactorHologram.remove(l); + } + }, 0); explode.remove(l); processing.remove(l); progress.remove(l); diff --git a/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java b/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java index bb2ca2a0a..77a1991c1 100644 --- a/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java +++ b/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java @@ -7,6 +7,7 @@ import java.util.List; import java.util.UUID; import me.mrCookieSlime.CSCoreLibPlugin.general.World.CustomSkull; +import me.mrCookieSlime.Slimefun.holograms.*; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Effect; @@ -137,28 +138,24 @@ import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock; import me.mrCookieSlime.Slimefun.api.energy.EnergyNet; import me.mrCookieSlime.Slimefun.api.energy.EnergyTicker; import me.mrCookieSlime.Slimefun.api.item_transport.CargoNet; -import me.mrCookieSlime.Slimefun.holograms.CargoHologram; -import me.mrCookieSlime.Slimefun.holograms.EnergyHologram; -import me.mrCookieSlime.Slimefun.holograms.InfusedHopper; -import me.mrCookieSlime.Slimefun.holograms.Projector; import me.mrCookieSlime.Slimefun.listeners.AncientAltarListener; @SuppressWarnings("deprecation") public class SlimefunSetup { - + public static void setupItems() throws Exception { - new SlimefunItem(Categories.WEAPONS, SlimefunItems.GRANDMAS_WALKING_STICK, "GRANDMAS_WALKING_STICK", RecipeType.ENHANCED_CRAFTING_TABLE, + new SlimefunItem(Categories.WEAPONS, SlimefunItems.GRANDMAS_WALKING_STICK, "GRANDMAS_WALKING_STICK", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, new ItemStack(Material.LOG), null, null, new ItemStack(Material.LOG), null, null, new ItemStack(Material.LOG), null}) .register(true); - - new SlimefunItem(Categories.WEAPONS, SlimefunItems.GRANDPAS_WALKING_STICK, "GRANDPAS_WALKING_STICK", RecipeType.ENHANCED_CRAFTING_TABLE, + + new SlimefunItem(Categories.WEAPONS, SlimefunItems.GRANDPAS_WALKING_STICK, "GRANDPAS_WALKING_STICK", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {new ItemStack(Material.LEATHER), new ItemStack(Material.LOG), new ItemStack(Material.LEATHER), null, new ItemStack(Material.LOG), null, null, new ItemStack(Material.LOG), null}) .register(true); - + new SlimefunItem(Categories.PORTABLE, SlimefunItems.PORTABLE_CRAFTER, "PORTABLE_CRAFTER", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {new ItemStack(Material.BOOK), new ItemStack(Material.WORKBENCH), null, null, null, null, null, null, null}) .register(true, new ItemInteractionHandler() { - + @Override public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) { if (SlimefunManager.isItemSimiliar(item, SlimefunItems.PORTABLE_CRAFTER, true)) { @@ -169,28 +166,28 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunItem(Categories.FOOD, SlimefunItems.FORTUNE_COOKIE, "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 SlimefunMachine(Categories.MACHINES_1, SlimefunItems.ENHANCED_CRAFTING_TABLE, "ENHANCED_CRAFTING_TABLE", new ItemStack[] {null, null, null, null, new ItemStack(Material.WORKBENCH), null, null, new ItemStack(Material.DISPENSER), null}, new ItemStack[0], Material.WORKBENCH) .register(true, new MultiBlockInteractionHandler() { - + @Override public boolean onInteract(Player p, MultiBlock mb, Block b) { - + SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByName("ENHANCED_CRAFTING_TABLE"); - + if (mb.isMultiBlock(machine)) { if (Slimefun.hasUnlocked(p, machine.getItem(), true)) { Dispenser disp = (Dispenser) b.getRelative(BlockFace.DOWN).getState(); - + final Inventory inv = disp.getInventory(); List inputs = RecipeType.getRecipeInputList(machine); - + for (int i = 0; i < inputs.size(); i++) { boolean craft = true; for (int j = 0; j < inv.getContents().length; j++) { @@ -231,11 +228,11 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunItem(Categories.PORTABLE, SlimefunItems.PORTABLE_DUSTBIN, "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 ItemInteractionHandler() { - + @Override public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) { if (SlimefunManager.isItemSimiliar(item, SlimefunItems.PORTABLE_DUSTBIN, true)) { @@ -247,22 +244,22 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunItem(Categories.FOOD, SlimefunItems.BEEF_JERKY, "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); - + new SlimefunMachine(Categories.MACHINES_1, SlimefunItems.GRIND_STONE, "GRIND_STONE", new ItemStack[] {null, null, null, null, new ItemStack(Material.FENCE), null, null, new CustomItem(Material.DISPENSER, "Dispenser (Facing up)", 0), null}, new ItemStack[] {new ItemStack(Material.BLAZE_ROD), new ItemStack(Material.BLAZE_POWDER, 4), new ItemStack(Material.BONE), new CustomItem(Material.INK_SACK, 15, 4), new ItemStack(Material.GRAVEL), new ItemStack(Material.FLINT), new ItemStack(Material.NETHER_STALK), new CustomItem(SlimefunItems.MAGIC_LUMP_1, 2), new ItemStack(Material.EYE_OF_ENDER), new CustomItem(SlimefunItems.ENDER_LUMP_1, 2), new ItemStack(Material.COBBLESTONE), new ItemStack(Material.GRAVEL), new ItemStack(Material.WHEAT), SlimefunItems.WHEAT_FLOUR, new ItemStack(Material.DIRT), SlimefunItems.STONE_CHUNK}, Material.FENCE) .register(true, new MultiBlockInteractionHandler() { - + @Override public boolean onInteract(Player p, MultiBlock mb, Block b) { - + SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByName("GRIND_STONE"); - + if (mb.isMultiBlock(machine)) { if (Slimefun.hasUnlocked(p, machine.getItem(), true)) { Dispenser disp = (Dispenser) b.getRelative(BlockFace.DOWN).getState(); @@ -290,24 +287,24 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunMachine(Categories.MACHINES_1, SlimefunItems.ARMOR_FORGE, "ARMOR_FORGE", new ItemStack[] {null, null, null, null, new ItemStack(Material.ANVIL), null, null, new CustomItem(Material.DISPENSER, "Dispenser (Facing up)", 0), null}, new ItemStack[] {}, Material.ANVIL) .register(true, new MultiBlockInteractionHandler() { - + @Override public boolean onInteract(final Player p, MultiBlock mb, Block b) { SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByName("ARMOR_FORGE"); - + if (mb.isMultiBlock(machine)) { if (Slimefun.hasUnlocked(p, machine.getItem(), true)) { Dispenser disp = (Dispenser) b.getRelative(BlockFace.DOWN).getState(); final Inventory inv = disp.getInventory(); List inputs = RecipeType.getRecipeInputList(machine); - + for (int i = 0; i < inputs.size(); i++) { boolean craft = true; for (int j = 0; j < inv.getContents().length; j++) { @@ -316,7 +313,7 @@ public class SlimefunSetup { break; } } - + if (craft) { final ItemStack adding = RecipeType.getRecipeOutputList(machine, inputs.get(i)); if (Slimefun.hasUnlocked(p, adding, true)) { @@ -326,17 +323,17 @@ public class SlimefunSetup { } p.getWorld().playSound(p.getLocation(), Sound.BLOCK_ANVIL_USE, 1, 1); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { p.getWorld().playSound(p.getLocation(), Sound.BLOCK_ANVIL_USE, 1F, 2F); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { p.getWorld().playSound(p.getLocation(), Sound.BLOCK_ANVIL_USE, 1F, 2F); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { p.getWorld().playSound(p.getLocation(), Sound.ENTITY_ARROW_HIT_PLAYER, 1F, 1F); @@ -360,18 +357,18 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunMachine(Categories.MACHINES_1, SlimefunItems.ORE_CRUSHER, "ORE_CRUSHER", new ItemStack[] {null, null, null, null, new ItemStack(Material.NETHER_FENCE), null, new ItemStack(Material.IRON_FENCE), new CustomItem(Material.DISPENSER, "Dispenser (Facing up)", 0), new ItemStack(Material.IRON_FENCE)}, new ItemStack[] {new ItemStack(Material.IRON_ORE), new CustomItem(SlimefunItems.IRON_DUST, (Boolean) Slimefun.getItemValue("ORE_CRUSHER", "double-ores") ? 2: 1), new ItemStack(Material.GOLD_ORE), new CustomItem(SlimefunItems.GOLD_DUST, (Boolean) Slimefun.getItemValue("ORE_CRUSHER", "double-ores") ? 2: 1), new ItemStack(Material.NETHERRACK, 16), SlimefunItems.SULFATE, SlimefunItems.SIFTED_ORE, SlimefunItems.CRUSHED_ORE, SlimefunItems.CRUSHED_ORE, SlimefunItems.PULVERIZED_ORE, SlimefunItems.PURE_ORE_CLUSTER, SlimefunItems.TINY_URANIUM, new ItemStack(Material.COBBLESTONE, 8), new ItemStack(Material.SAND, 1), new ItemStack(Material.GOLD_INGOT), SlimefunItems.GOLD_DUST, SlimefunItems.GOLD_4K, SlimefunItems.GOLD_DUST}, Material.NETHER_FENCE) .register(true, new MultiBlockInteractionHandler() { - + @Override public boolean onInteract(Player p, MultiBlock mb, Block b) { SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByName("ORE_CRUSHER"); - + if (mb.isMultiBlock(machine)) { if (Slimefun.hasUnlocked(p, machine.getItem(), true)) { Dispenser disp = (Dispenser) b.getRelative(BlockFace.DOWN).getState(); @@ -399,18 +396,18 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunMachine(Categories.MACHINES_1, SlimefunItems.COMPRESSOR, "COMPRESSOR", new ItemStack[] {null, null, null, null, new ItemStack(Material.NETHER_FENCE), null, new ItemStack(Material.PISTON_BASE), new CustomItem(Material.DISPENSER, "Dispenser (Facing up)", 0), new ItemStack(Material.PISTON_BASE)}, new ItemStack[] {new ItemStack(Material.COAL, 8), SlimefunItems.CARBON, new CustomItem(SlimefunItems.STEEL_INGOT, 8), SlimefunItems.STEEL_PLATE, new CustomItem(SlimefunItems.CARBON, 4), SlimefunItems.COMPRESSED_CARBON, new CustomItem(SlimefunItems.STONE_CHUNK, 4), new ItemStack(Material.COBBLESTONE), new CustomItem(SlimefunItems.REINFORCED_ALLOY_INGOT, 8), SlimefunItems.REINFORCED_PLATE}, Material.NETHER_FENCE) .register(true, new MultiBlockInteractionHandler() { - + @Override public boolean onInteract(final Player p, MultiBlock mb, Block b) { SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByName("COMPRESSOR"); - + if (mb.isMultiBlock(machine)) { if (Slimefun.hasUnlocked(p, machine.getItem(), true)) { Dispenser disp = (Dispenser) b.getRelative(BlockFace.DOWN).getState(); @@ -425,17 +422,17 @@ public class SlimefunSetup { inv.removeItem(removing); p.getWorld().playSound(p.getLocation(), Sound.BLOCK_PISTON_EXTEND, 1, 1); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { p.getWorld().playSound(p.getLocation(), Sound.BLOCK_PISTON_CONTRACT, 1F, 2F); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { p.getWorld().playSound(p.getLocation(), Sound.BLOCK_PISTON_EXTEND, 1F, 2F); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { p.getWorld().playSound(p.getLocation(), Sound.ENTITY_ARROW_HIT_PLAYER, 1F, 1F); @@ -459,35 +456,35 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunItem(Categories.LUMPS_AND_MAGIC, SlimefunItems.MAGIC_LUMP_1, "MAGIC_LUMP_1", RecipeType.GRIND_STONE, new ItemStack[] {null, null, null, null, new ItemStack(Material.NETHER_STALK), null, null, null, null}, new CustomItem(SlimefunItems.MAGIC_LUMP_1, 2)) .register(true); - + new SlimefunItem(Categories.LUMPS_AND_MAGIC, SlimefunItems.MAGIC_LUMP_2, "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, "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, "ENDER_LUMP_1", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, null, null, null, new ItemStack(Material.EYE_OF_ENDER), null, null, null, null}, new CustomItem(SlimefunItems.ENDER_LUMP_1, 2)) .register(true); - + new SlimefunItem(Categories.LUMPS_AND_MAGIC, SlimefunItems.ENDER_LUMP_2, "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, "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 SlimefunItem(Categories.PORTABLE, SlimefunItems.ENDER_BACKPACK, "ENDER_BACKPACK", RecipeType.ENHANCED_CRAFTING_TABLE, 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 ItemInteractionHandler() { - + @Override public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) { if (SlimefunManager.isItemSimiliar(item, SlimefunItems.ENDER_BACKPACK, true)) { @@ -499,27 +496,27 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunItem(Categories.MAGIC_ARMOR, SlimefunItems.ENDER_HELMET, "ENDER_HELMET", RecipeType.ARMOR_FORGE, new ItemStack[] {SlimefunItems.ENDER_LUMP_1, new ItemStack(Material.EYE_OF_ENDER), 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 ItemStack[] {SlimefunItems.ENDER_LUMP_1, null, SlimefunItems.ENDER_LUMP_1, new ItemStack(Material.OBSIDIAN), new ItemStack(Material.EYE_OF_ENDER), 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 ItemStack[] {SlimefunItems.ENDER_LUMP_1, new ItemStack(Material.EYE_OF_ENDER), 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 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 ItemStack[] {SlimefunItems.ENDER_LUMP_2, new ItemStack(Material.ENDER_PEARL), SlimefunItems.ENDER_LUMP_2, new ItemStack(Material.ENDER_PEARL), new ItemStack(Material.EYE_OF_ENDER), new ItemStack(Material.ENDER_PEARL), SlimefunItems.ENDER_LUMP_2, new ItemStack(Material.ENDER_PEARL), SlimefunItems.ENDER_LUMP_2}) .register(true, new ItemInteractionHandler() { - + @Override public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) { if (SlimefunManager.isItemSimiliar(item, SlimefunItems.MAGIC_EYE_OF_ENDER, true)) { @@ -536,11 +533,11 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunItem(Categories.FOOD, SlimefunItems.MAGIC_SUGAR, "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 ItemInteractionHandler() { - + @Override public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) { if (SlimefunManager.isItemSimiliar(item, SlimefunItems.MAGIC_SUGAR, true)) { @@ -552,51 +549,51 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunItem(Categories.FOOD, SlimefunItems.MONSTER_JERKY, "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 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 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 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 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 SlimefunItem(Categories.WEAPONS, SlimefunItems.SWORD_OF_BEHEADING, "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 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 ItemStack[] {null, null, null, null, new CustomItem(Material.MONSTER_EGG, "&a&oIron Golem", 99), null, null, null, null}) .register(true); - + new SlimefunItem(Categories.TECH_MISC, SlimefunItems.ADVANCED_CIRCUIT_BOARD, "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 SlimefunGadget(Categories.TOOLS, SlimefunItems.GOLD_PAN, "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[] {47, 28, 15}) .register(true, new ItemInteractionHandler() { - + @Override public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) { if (SlimefunManager.isItemSimiliar(item, SlimefunItems.GOLD_PAN, true)) { @@ -605,8 +602,8 @@ public class SlimefunSetup { if (SlimefunStartup.chance(100, (Integer) Slimefun.getItemValue("GOLD_PAN", "chance.SIFTED_ORE"))) drops.add(SlimefunItems.SIFTED_ORE); else if (SlimefunStartup.chance(100, (Integer) Slimefun.getItemValue("GOLD_PAN", "chance.CLAY"))) drops.add(new ItemStack(Material.CLAY_BALL)); else if (SlimefunStartup.chance(100, (Integer) Slimefun.getItemValue("GOLD_PAN", "chance.FLINT"))) drops.add(new ItemStack(Material.FLINT)); - - + + if (CSCoreLib.getLib().getProtectionManager().canBuild(p.getUniqueId(), e.getClickedBlock(), true)) { e.getClickedBlock().getWorld().playEffect(e.getClickedBlock().getLocation(), Effect.STEP_SOUND, e.getClickedBlock().getType()); e.getClickedBlock().setType(Material.AIR); @@ -621,28 +618,28 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunItem(Categories.MISC, SlimefunItems.SIFTED_ORE, "SIFTED_ORE", RecipeType.GOLD_PAN, new ItemStack[] {new ItemStack(Material.GRAVEL), null, null, null, null, null, null, null, null}) .register(true); - + new SlimefunMachine(Categories.MACHINES_1, SlimefunItems.SMELTERY, "SMELTERY", new ItemStack[] {null, new ItemStack(Material.NETHER_FENCE), null, new ItemStack(Material.NETHER_BRICK), new CustomItem(Material.DISPENSER, "Dispenser (Facing up)", 0), new ItemStack(Material.NETHER_BRICK), null, new ItemStack(Material.FLINT_AND_STEEL), null}, new ItemStack[] {SlimefunItems.IRON_DUST, new ItemStack(Material.IRON_INGOT)}, Material.NETHER_FENCE, new String[] {"chance.fireBreak"}, new Integer[] {34}) .register(true, new MultiBlockInteractionHandler() { - + @Override public boolean onInteract(Player p, MultiBlock mb, Block b) { - + SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByName("SMELTERY"); - + if (mb.isMultiBlock(machine)) { if (Slimefun.hasUnlocked(p, machine.getItem(), true)) { Dispenser disp = (Dispenser) b.getRelative(BlockFace.DOWN).getState(); Inventory inv = disp.getInventory(); List inputs = RecipeType.getRecipeInputList(machine); - + for (int i = 0; i < inputs.size(); i++) { boolean craft = true; for (ItemStack converting: inputs.get(i)) { @@ -656,7 +653,7 @@ public class SlimefunSetup { } } } - + if (craft) { ItemStack adding = RecipeType.getRecipeOutputList(machine, inputs.get(i)); if (Slimefun.hasUnlocked(p, adding, true)) { @@ -683,18 +680,18 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunMachine(Categories.MACHINES_1, SlimefunItems.PRESSURE_CHAMBER, "PRESSURE_CHAMBER", new ItemStack[] {new ItemStack(Material.STEP), new CustomItem(Material.DISPENSER, "Dispenser (Facing down)", 0), new ItemStack(Material.STEP), new ItemStack(Material.PISTON_BASE), new ItemStack(Material.GLASS), new ItemStack(Material.PISTON_BASE), new ItemStack(Material.PISTON_BASE), new ItemStack(Material.CAULDRON_ITEM), new ItemStack(Material.PISTON_BASE)}, new ItemStack[] {SlimefunItems.CARBON_CHUNK, SlimefunItems.SYNTHETIC_DIAMOND, SlimefunItems.RAW_CARBONADO, SlimefunItems.CARBONADO}, Material.CAULDRON) .register(true, new MultiBlockInteractionHandler() { - + @Override public boolean onInteract(final Player p, MultiBlock mb, final Block b) { - + SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByName("PRESSURE_CHAMBER"); - + if (mb.isMultiBlock(machine)) { if (Slimefun.hasUnlocked(p, machine.getItem(), true)) { Dispenser disp = (Dispenser) b.getRelative(BlockFace.UP).getRelative(BlockFace.UP).getState(); @@ -712,7 +709,7 @@ public class SlimefunSetup { p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(), Effect.SMOKE, 4); p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(), Effect.SMOKE, 4); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { p.getWorld().playSound(b.getLocation(), Sound.ENTITY_TNT_PRIMED, 1, 1); @@ -720,7 +717,7 @@ public class SlimefunSetup { p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(), Effect.SMOKE, 4); p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(), Effect.SMOKE, 4); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { p.getWorld().playSound(b.getLocation(), Sound.ENTITY_TNT_PRIMED, 1, 1); @@ -728,7 +725,7 @@ public class SlimefunSetup { p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(), Effect.SMOKE, 4); p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(), Effect.SMOKE, 4); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(), Effect.SMOKE, 4); @@ -755,243 +752,243 @@ public class SlimefunSetup { else return false; } }); - - new SlimefunItem(Categories.TECH_MISC, SlimefunItems.BATTERY, "BATTERY", RecipeType.ENHANCED_CRAFTING_TABLE, + + new SlimefunItem(Categories.TECH_MISC, SlimefunItems.BATTERY, "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); - - SlimefunManager.registerArmorSet(new ItemStack(Material.GLOWSTONE), new ItemStack[] {SlimefunItems.GLOWSTONE_HELMET, SlimefunItems.GLOWSTONE_CHESTPLATE, SlimefunItems.GLOWSTONE_LEGGINGS, SlimefunItems.GLOWSTONE_BOOTS}, "GLOWSTONE", + + SlimefunManager.registerArmorSet(new ItemStack(Material.GLOWSTONE), new ItemStack[] {SlimefunItems.GLOWSTONE_HELMET, SlimefunItems.GLOWSTONE_CHESTPLATE, SlimefunItems.GLOWSTONE_LEGGINGS, SlimefunItems.GLOWSTONE_BOOTS}, "GLOWSTONE", new PotionEffect[][] {new PotionEffect[] {new PotionEffect(PotionEffectType.NIGHT_VISION, 600, 0)}, new PotionEffect[] {new PotionEffect(PotionEffectType.NIGHT_VISION, 600, 0)}, new PotionEffect[] {new PotionEffect(PotionEffectType.NIGHT_VISION, 600, 0)}, new PotionEffect[] {new PotionEffect(PotionEffectType.NIGHT_VISION, 600, 0)}}, true, true); - + SlimefunManager.registerArmorSet(SlimefunItems.DAMASCUS_STEEL_INGOT, new ItemStack[] {SlimefunItems.DAMASCUS_STEEL_HELMET, SlimefunItems.DAMASCUS_STEEL_CHESTPLATE, SlimefunItems.DAMASCUS_STEEL_LEGGINGS, SlimefunItems.DAMASCUS_STEEL_BOOTS}, "DAMASCUS_STEEL", true); - + SlimefunManager.registerArmorSet(SlimefunItems.REINFORCED_ALLOY_INGOT, new ItemStack[] {SlimefunItems.REINFORCED_ALLOY_HELMET, SlimefunItems.REINFORCED_ALLOY_CHESTPLATE, SlimefunItems.REINFORCED_ALLOY_LEGGINGS, SlimefunItems.REINFORCED_ALLOY_BOOTS}, "REINFORCED_ALLOY", true); - + SlimefunManager.registerArmorSet(new ItemStack(Material.CACTUS), new ItemStack[] {SlimefunItems.CACTUS_HELMET, SlimefunItems.CACTUS_CHESTPLATE, SlimefunItems.CACTUS_LEGGINGS, SlimefunItems.CACTUS_BOOTS}, "CACTUS", true); - + new Alloy(SlimefunItems.REINFORCED_ALLOY_INGOT, "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, "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, "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, "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, "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, "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, "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, "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, "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, "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, "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, "SOLDER_INGOT", new ItemStack[] {SlimefunItems.LEAD_DUST, SlimefunItems.TIN_DUST, SlimefunItems.LEAD_INGOT, null, null, null, null, null, null}) .register(true); - + new ReplacingAlloy(SlimefunItems.SYNTHETIC_SAPPHIRE, "SYNTHETIC_SAPPHIRE", new ItemStack[] {SlimefunItems.ALUMINUM_DUST, new ItemStack(Material.GLASS), new ItemStack(Material.THIN_GLASS), SlimefunItems.ALUMINUM_INGOT, new MaterialData(Material.INK_SACK, (byte) 4).toItemStack(1), null, null, null, null}) .register(true); - + new ReplacingItem(Categories.RESOURCES, SlimefunItems.SYNTHETIC_DIAMOND, "SYNTHETIC_DIAMOND", RecipeType.PRESSURE_CHAMBER, new ItemStack[] {SlimefunItems.CARBON_CHUNK, null, null, null, null, null, null, null, null}) .register(true); - + new Alloy(SlimefunItems.RAW_CARBONADO, "RAW_CARBONADO", new ItemStack[] {SlimefunItems.SYNTHETIC_DIAMOND, SlimefunItems.CARBON_CHUNK, new ItemStack(Material.THIN_GLASS), null, null, null, null, null, null}) .register(true); - + new Alloy(SlimefunItems.NICKEL_INGOT, "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, "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, "CARBONADO", RecipeType.PRESSURE_CHAMBER, new ItemStack[] {SlimefunItems.RAW_CARBONADO, null, null, null, null, null, null, null, null}) .register(true); - + new Alloy(SlimefunItems.FERROSILICON, "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, "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, "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, "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, "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, "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, "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, "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, "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, "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, "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, "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, "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, "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, "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, "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, "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, "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, "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, "WHEAT_FLOUR", RecipeType.GRIND_STONE, new ItemStack[] {null, null, null, null, new ItemStack(Material.WHEAT), null, null, null, null}) .register(true); - + new SlimefunItem(Categories.MISC, SlimefunItems.STEEL_PLATE, "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, "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, "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, "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.FIREBALL), SlimefunItems.STEEL_PLATE}) .register(true); - + new SlimefunItem(Categories.TECH_MISC, SlimefunItems.POWER_CRYSTAL, "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 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 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 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 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 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 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 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 ItemStack[] {SlimefunItems.CLOTH, SlimefunItems.CLOTH, SlimefunItems.CLOTH, SlimefunItems.CHAIN, null, SlimefunItems.CHAIN, null, null, null}) .register(true); - + new SlimefunItem(Categories.MISC, SlimefunItems.CHAIN, "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 ItemStack[] {null, SlimefunItems.STEEL_INGOT, null, SlimefunItems.STEEL_INGOT, null, SlimefunItems.STEEL_INGOT, null, null, null}) .register(true); - + new SlimefunItem(Categories.TOOLS, SlimefunItems.GRAPPLING_HOOK, "GRAPPLING_HOOK", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, SlimefunItems.HOOK, SlimefunItems.HOOK, null, SlimefunItems.CHAIN, SlimefunItems.HOOK, SlimefunItems.CHAIN, null, null}) .register(true, new ItemInteractionHandler() { - + @Override public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) { if (SlimefunManager.isItemSimiliar(item, SlimefunItems.GRAPPLING_HOOK, true)) { @@ -999,7 +996,7 @@ public class SlimefunSetup { Variables.jump.put(p.getUniqueId(), p.getItemInHand().getType() != Material.SHEARS); e.setCancelled(true); if (p.getItemInHand().getType() == Material.LEASH) PlayerInventory.consumeItemInHand(p); - + Vector direction = p.getEyeLocation().getDirection().multiply(2.0); Projectile projectile = p.getWorld().spawn(p.getEyeLocation().add(direction.getX(), direction.getY(), direction.getZ()), Arrow.class); projectile.setShooter(p); @@ -1009,7 +1006,7 @@ public class SlimefunSetup { b.setCanPickupItems(false); b.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, 100000, 100000)); b.setLeashHolder(arrow); - + Variables.damage.put(p.getUniqueId(), true); Variables.remove.put(p.getUniqueId(), new Entity[] {b, arrow}); } @@ -1018,29 +1015,29 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunMachine(Categories.MACHINES_1, SlimefunItems.MAGIC_WORKBENCH, "MAGIC_WORKBENCH", new ItemStack[] {null, null, null, null, null, null, new ItemStack(Material.BOOKSHELF), new ItemStack(Material.WORKBENCH), new ItemStack(Material.DISPENSER)}, new ItemStack[0], Material.WORKBENCH) .register(true, new MultiBlockInteractionHandler() { - + @Override public boolean onInteract(final Player p, MultiBlock mb, final Block b) { - + SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByName("MAGIC_WORKBENCH"); - + if (mb.isMultiBlock(machine)) { if (Slimefun.hasUnlocked(p, machine.getItem(), true)) { Dispenser disp = null; - + if (b.getRelative(1, 0, 0).getType() == Material.DISPENSER) disp = (Dispenser) b.getRelative(1, 0, 0).getState(); else if (b.getRelative(0, 0, 1).getType() == Material.DISPENSER) disp = (Dispenser) b.getRelative(0, 0, 1).getState(); else if (b.getRelative(-1, 0, 0).getType() == Material.DISPENSER) disp = (Dispenser) b.getRelative(-1, 0, 0).getState(); else if (b.getRelative(0, 0, -1).getType() == Material.DISPENSER) disp = (Dispenser) b.getRelative(0, 0, -1).getState(); - + final Inventory inv = disp.getInventory(); List inputs = RecipeType.getRecipeInputList(machine); - + for (int i = 0; i < inputs.size(); i++) { boolean craft = true; for (int j = 0; j < inv.getContents().length; j++) { @@ -1049,7 +1046,7 @@ public class SlimefunSetup { break; } } - + if (craft) { final ItemStack adding = RecipeType.getRecipeOutputList(machine, inputs.get(i)); if (Slimefun.hasUnlocked(p, adding, true)) { @@ -1070,21 +1067,21 @@ public class SlimefunSetup { p.getWorld().playEffect(b.getLocation(), Effect.MOBSPAWNER_FLAMES, 1); p.getWorld().playEffect(b.getLocation(), Effect.ENDER_SIGNAL, 1); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { p.getWorld().playSound(b.getLocation(), Sound.BLOCK_WOOD_BUTTON_CLICK_ON, 1, 1); p.getWorld().playEffect(b.getLocation(), Effect.MOBSPAWNER_FLAMES, 1); p.getWorld().playEffect(b.getLocation(), Effect.ENDER_SIGNAL, 1); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { p.getWorld().playSound(b.getLocation(), Sound.BLOCK_WOOD_BUTTON_CLICK_ON, 1, 1); p.getWorld().playEffect(b.getLocation(), Effect.MOBSPAWNER_FLAMES, 1); p.getWorld().playEffect(b.getLocation(), Effect.ENDER_SIGNAL, 1); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { p.getWorld().playEffect(b.getLocation(), Effect.MOBSPAWNER_FLAMES, 1); @@ -1110,15 +1107,15 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunItem(Categories.MAGIC, SlimefunItems.STAFF_ELEMENTAL, "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 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() { - + @Override public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) { if (SlimefunManager.isItemSimiliar(item, SlimefunItems.STAFF_WIND, true)) { @@ -1141,11 +1138,11 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunItem(Categories.MAGIC, SlimefunItems.STAFF_WATER, "STAFF_ELEMENTAL_WATER", RecipeType.MAGIC_WORKBENCH, new ItemStack[] {null, new ItemStack(Material.WATER_LILY), SlimefunItems.MAGIC_LUMP_2, null, SlimefunItems.STAFF_ELEMENTAL, new ItemStack(Material.WATER_LILY), SlimefunItems.STAFF_ELEMENTAL, null, null}) .register(true, new ItemInteractionHandler() { - + @Override public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) { if (SlimefunManager.isItemSimiliar(item, SlimefunItems.STAFF_WATER, true)) { @@ -1156,53 +1153,53 @@ public class SlimefunSetup { else return false; } }); - + new MultiTool(SlimefunItems.DURALUMIN_MULTI_TOOL, "DURALUMIN_MULTI_TOOL", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.DURALUMIN_INGOT, null, SlimefunItems.DURALUMIN_INGOT, SlimefunItems.DURALUMIN_INGOT, SlimefunItems.SMALL_CAPACITOR, SlimefunItems.DURALUMIN_INGOT, null, SlimefunItems.DURALUMIN_INGOT, null}, new String[] {"mode.0.enabled", "mode.0.name", "mode.0.item", "mode.1.enabled", "mode.1.name", "mode.1.item", "mode.2.enabled", "mode.2.name", "mode.2.item", "mode.3.enabled", "mode.3.name", "mode.3.item"}, new Object[] {true, "Portable Crafter", "PORTABLE_CRAFTER", true, "Magic Eye of Ender", "MAGIC_EYE_OF_ENDER", true, "Wind Staff", "STAFF_ELEMENTAL_WIND", true, "Grappling Hook", "GRAPPLING_HOOK"}) .register(true); - + new MultiTool(SlimefunItems.SOLDER_MULTI_TOOL, "SOLDER_MULTI_TOOL", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.SOLDER_INGOT, null, SlimefunItems.SOLDER_INGOT, SlimefunItems.SOLDER_INGOT, SlimefunItems.SMALL_CAPACITOR, SlimefunItems.SOLDER_INGOT, null, SlimefunItems.SOLDER_INGOT, null}, new String[] {"mode.0.enabled", "mode.0.name", "mode.0.item", "mode.1.enabled", "mode.1.name", "mode.1.item", "mode.2.enabled", "mode.2.name", "mode.2.item", "mode.3.enabled", "mode.3.name", "mode.3.item"}, new Object[] {true, "Portable Crafter", "PORTABLE_CRAFTER", true, "Magic Eye of Ender", "MAGIC_EYE_OF_ENDER", true, "Wind Staff", "STAFF_ELEMENTAL_WIND", true, "Grappling Hook", "GRAPPLING_HOOK"}) .register(true); - + new MultiTool(SlimefunItems.BILLON_MULTI_TOOL, "BILLON_MULTI_TOOL", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.BILLON_INGOT, null, SlimefunItems.BILLON_INGOT, SlimefunItems.BILLON_INGOT, SlimefunItems.SMALL_CAPACITOR, SlimefunItems.BILLON_INGOT, null, SlimefunItems.BILLON_INGOT, null}, new String[] {"mode.0.enabled", "mode.0.name", "mode.0.item", "mode.1.enabled", "mode.1.name", "mode.1.item", "mode.2.enabled", "mode.2.name", "mode.2.item", "mode.3.enabled", "mode.3.name", "mode.3.item"}, new Object[] {true, "Portable Crafter", "PORTABLE_CRAFTER", true, "Magic Eye of Ender", "MAGIC_EYE_OF_ENDER", true, "Wind Staff", "STAFF_ELEMENTAL_WIND", true, "Grappling Hook", "GRAPPLING_HOOK"}) .register(true); - + new MultiTool(SlimefunItems.STEEL_MULTI_TOOL, "STEEL_MULTI_TOOL", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.STEEL_INGOT, null, SlimefunItems.STEEL_INGOT, SlimefunItems.STEEL_INGOT, SlimefunItems.SMALL_CAPACITOR, SlimefunItems.STEEL_INGOT, null, SlimefunItems.STEEL_INGOT, null}, new String[] {"mode.0.enabled", "mode.0.name", "mode.0.item", "mode.1.enabled", "mode.1.name", "mode.1.item", "mode.2.enabled", "mode.2.name", "mode.2.item", "mode.3.enabled", "mode.3.name", "mode.3.item"}, new Object[] {true, "Portable Crafter", "PORTABLE_CRAFTER", true, "Magic Eye of Ender", "MAGIC_EYE_OF_ENDER", true, "Wind Staff", "STAFF_ELEMENTAL_WIND", true, "Grappling Hook", "GRAPPLING_HOOK"}) .register(true); - + new MultiTool(SlimefunItems.DAMASCUS_STEEL_MULTI_TOOL, "DAMASCUS_STEEL_MULTI_TOOL", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.DAMASCUS_STEEL_INGOT, null, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.SMALL_CAPACITOR, SlimefunItems.DAMASCUS_STEEL_INGOT, null, SlimefunItems.DAMASCUS_STEEL_INGOT, null}, new String[] {"mode.0.enabled", "mode.0.name", "mode.0.item", "mode.1.enabled", "mode.1.name", "mode.1.item", "mode.2.enabled", "mode.2.name", "mode.2.item", "mode.3.enabled", "mode.3.name", "mode.3.item"}, new Object[] {true, "Portable Crafter", "PORTABLE_CRAFTER", true, "Magic Eye of Ender", "MAGIC_EYE_OF_ENDER", true, "Wind Staff", "STAFF_ELEMENTAL_WIND", true, "Grappling Hook", "GRAPPLING_HOOK"}) .register(true); - + new MultiTool(SlimefunItems.REINFORCED_ALLOY_MULTI_TOOL, "REINFORCED_ALLOY_MULTI_TOOL", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.REINFORCED_ALLOY_INGOT, null, SlimefunItems.REINFORCED_ALLOY_INGOT, SlimefunItems.REINFORCED_ALLOY_INGOT, SlimefunItems.MEDIUM_CAPACITOR, SlimefunItems.REINFORCED_ALLOY_INGOT, null, SlimefunItems.REINFORCED_ALLOY_INGOT, null}, new String[] {"mode.0.enabled", "mode.0.name", "mode.0.item", "mode.1.enabled", "mode.1.name", "mode.1.item", "mode.2.enabled", "mode.2.name", "mode.2.item", "mode.3.enabled", "mode.3.name", "mode.3.item"}, new Object[] {true, "Portable Crafter", "PORTABLE_CRAFTER", true, "Magic Eye of Ender", "MAGIC_EYE_OF_ENDER", true, "Wind Staff", "STAFF_ELEMENTAL_WIND", true, "Grappling Hook", "GRAPPLING_HOOK"}) .register(true); - + new MultiTool(SlimefunItems.CARBONADO_MULTI_TOOL, "CARBONADO_MULTI_TOOL", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.CARBONADO, null, SlimefunItems.CARBONADO, SlimefunItems.CARBONADO, SlimefunItems.LARGE_CAPACITOR, SlimefunItems.CARBONADO, null, SlimefunItems.CARBONADO, null}, new String[] {"mode.0.enabled", "mode.0.name", "mode.0.item", "mode.1.enabled", "mode.1.name", "mode.1.item", "mode.2.enabled", "mode.2.name", "mode.2.item", "mode.3.enabled", "mode.3.name", "mode.3.item", "mode.4.enabled", "mode.4.name", "mode.4.item"}, new Object[] {true, "Portable Crafter", "PORTABLE_CRAFTER", true, "Magic Eye of Ender", "MAGIC_EYE_OF_ENDER", true, "Wind Staff", "STAFF_ELEMENTAL_WIND", true, "Grappling Hook", "GRAPPLING_HOOK", true, "Gold Pan", "GOLD_PAN"}) .register(true); - - new SlimefunMachine(Categories.MACHINES_1, SlimefunItems.ORE_WASHER, "ORE_WASHER", + + new SlimefunMachine(Categories.MACHINES_1, SlimefunItems.ORE_WASHER, "ORE_WASHER", new ItemStack[] {null, new ItemStack(Material.DISPENSER), null, null, new ItemStack(Material.FENCE), null, null, new ItemStack(Material.CAULDRON_ITEM), null}, new ItemStack[] {SlimefunItems.SIFTED_ORE, SlimefunItems.IRON_DUST, SlimefunItems.SIFTED_ORE, SlimefunItems.GOLD_DUST, SlimefunItems.SIFTED_ORE, SlimefunItems.COPPER_DUST, SlimefunItems.SIFTED_ORE, SlimefunItems.TIN_DUST, SlimefunItems.SIFTED_ORE, SlimefunItems.ZINC_DUST, SlimefunItems.SIFTED_ORE, SlimefunItems.ALUMINUM_DUST, SlimefunItems.SIFTED_ORE, SlimefunItems.MAGNESIUM_DUST, SlimefunItems.SIFTED_ORE, SlimefunItems.LEAD_DUST, SlimefunItems.SIFTED_ORE, SlimefunItems.SILVER_DUST}, Material.FENCE) .register(true, new MultiBlockInteractionHandler() { - + @Override public boolean onInteract(Player p, MultiBlock mb, Block b) { - + SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByName("ORE_WASHER"); - + if (mb.isMultiBlock(machine)) { if (Slimefun.hasUnlocked(p, machine.getItem(), true)) { Dispenser disp = (Dispenser) b.getRelative(BlockFace.UP).getState(); @@ -1219,7 +1216,7 @@ public class SlimefunSetup { else if (SlimefunStartup.chance(100, 25)) adding = SlimefunItems.MAGNESIUM_DUST; else if (SlimefunStartup.chance(100, 25)) adding = SlimefunItems.LEAD_DUST; else if (SlimefunStartup.chance(100, 25)) adding = SlimefunItems.SILVER_DUST; - + if (InvUtils.fits(inv, adding)) { ItemStack removing = current.clone(); removing.setAmount(1); @@ -1267,86 +1264,86 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunItem(Categories.RESOURCES, SlimefunItems.GOLD_24K, "GOLD_24K", RecipeType.SMELTERY, new ItemStack[] {SlimefunItems.GOLD_DUST, SlimefunItems.GOLD_22K, null, null, null, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.RESOURCES, SlimefunItems.GOLD_22K, "GOLD_22K", RecipeType.SMELTERY, new ItemStack[] {SlimefunItems.GOLD_DUST, SlimefunItems.GOLD_20K, null, null, null, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.RESOURCES, SlimefunItems.GOLD_20K, "GOLD_20K", RecipeType.SMELTERY, new ItemStack[] {SlimefunItems.GOLD_DUST, SlimefunItems.GOLD_18K, null, null, null, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.RESOURCES, SlimefunItems.GOLD_18K, "GOLD_18K", RecipeType.SMELTERY, new ItemStack[] {SlimefunItems.GOLD_DUST, SlimefunItems.GOLD_16K, null, null, null, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.RESOURCES, SlimefunItems.GOLD_16K, "GOLD_16K", RecipeType.SMELTERY, new ItemStack[] {SlimefunItems.GOLD_DUST, SlimefunItems.GOLD_14K, null, null, null, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.RESOURCES, SlimefunItems.GOLD_14K, "GOLD_14K", RecipeType.SMELTERY, new ItemStack[] {SlimefunItems.GOLD_DUST, SlimefunItems.GOLD_12K, null, null, null, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.RESOURCES, SlimefunItems.GOLD_12K, "GOLD_12K", RecipeType.SMELTERY, new ItemStack[] {SlimefunItems.GOLD_DUST, SlimefunItems.GOLD_10K, null, null, null, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.RESOURCES, SlimefunItems.GOLD_10K, "GOLD_10K", RecipeType.SMELTERY, new ItemStack[] {SlimefunItems.GOLD_DUST, SlimefunItems.GOLD_8K, null, null, null, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.RESOURCES, SlimefunItems.GOLD_8K, "GOLD_8K", RecipeType.SMELTERY, new ItemStack[] {SlimefunItems.GOLD_DUST, SlimefunItems.GOLD_6K, null, null, null, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.RESOURCES, SlimefunItems.GOLD_6K, "GOLD_6K", RecipeType.SMELTERY, new ItemStack[] {SlimefunItems.GOLD_DUST, SlimefunItems.GOLD_4K, null, null, null, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.RESOURCES, SlimefunItems.GOLD_4K, "GOLD_4K", RecipeType.SMELTERY, new ItemStack[] {SlimefunItems.GOLD_DUST, null, null, null, null, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.MISC, SlimefunItems.STONE_CHUNK, "STONE_CHUNK", RecipeType.ORE_WASHER, new ItemStack[] {SlimefunItems.SIFTED_ORE, null, null, null, null, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.RESOURCES, SlimefunItems.SILICON, "SILICON", RecipeType.SMELTERY, new ItemStack[] {new ItemStack(Material.QUARTZ_BLOCK), null, null, null, null, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.TECH_MISC, SlimefunItems.SOLAR_PANEL, "SOLAR_PANEL", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {new ItemStack(Material.GLASS), new ItemStack(Material.GLASS), new ItemStack(Material.GLASS), SlimefunItems.SILICON, SlimefunItems.SILICON, SlimefunItems.SILICON, SlimefunItems.FERROSILICON, SlimefunItems.FERROSILICON, SlimefunItems.FERROSILICON}) .register(true); - + new SolarHelmet(Categories.TECH, SlimefunItems.SOLAR_HELMET, "SOLAR_HELMET", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.REINFORCED_ALLOY_INGOT, SlimefunItems.SOLAR_PANEL, SlimefunItems.REINFORCED_ALLOY_INGOT, SlimefunItems.REINFORCED_ALLOY_INGOT, null, SlimefunItems.REINFORCED_ALLOY_INGOT, SlimefunItems.MEDIUM_CAPACITOR, null, SlimefunItems.MEDIUM_CAPACITOR}, new String[] {"charge-amount"}, new Double[] {0.1}) .register(true); - + new SlimefunItem(Categories.LUMPS_AND_MAGIC, SlimefunItems.LAVA_CRYSTAL, "LAVA_CRYSTAL", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.MAGIC_LUMP_1, new ItemStack(Material.BLAZE_POWDER), SlimefunItems.MAGIC_LUMP_1, new ItemStack(Material.BLAZE_POWDER), SlimefunItems.RUNE_FIRE, new ItemStack(Material.BLAZE_POWDER), SlimefunItems.MAGIC_LUMP_1, new ItemStack(Material.BLAZE_POWDER), SlimefunItems.MAGIC_LUMP_1}) .register(true); - + new SlimefunItem(Categories.MAGIC, SlimefunItems.STAFF_FIRE, "STAFF_ELEMENTAL_FIRE", RecipeType.MAGIC_WORKBENCH, new ItemStack[] {null, null, SlimefunItems.LAVA_CRYSTAL, null, SlimefunItems.STAFF_ELEMENTAL, null, SlimefunItems.STAFF_ELEMENTAL, null, null}) .register(true); - + new SlimefunItem(Categories.TOOLS, SlimefunItems.AUTO_SMELT_PICKAXE, "SMELTERS_PICKAXE", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.LAVA_CRYSTAL, SlimefunItems.LAVA_CRYSTAL, SlimefunItems.LAVA_CRYSTAL, null, SlimefunItems.FERROSILICON, null, null, SlimefunItems.FERROSILICON, null}) .register(true, new BlockBreakHandler() { - + @Override public boolean onBlockBreak(BlockBreakEvent e, ItemStack item, int fortune, List drops) { if (SlimefunManager.isItemSimiliar(item, SlimefunItems.AUTO_SMELT_PICKAXE, true)) { if (e.getBlock().getType().equals(Material.SKULL)) return true; - + int j = -1; for (int i = 0; i < e.getBlock().getDrops().size(); i++) { if (((List) e.getBlock().getDrops()).get(i) != null) { @@ -1358,110 +1355,110 @@ public class SlimefunSetup { } } } - + return true; } else return false; } }); - + new SlimefunItem(Categories.LUMPS_AND_MAGIC, SlimefunItems.TALISMAN, "COMMON_TALISMAN", RecipeType.MAGIC_WORKBENCH, new ItemStack[] {SlimefunItems.MAGIC_LUMP_2, SlimefunItems.GOLD_8K, SlimefunItems.MAGIC_LUMP_2, null, new ItemStack(Material.EMERALD), null, SlimefunItems.MAGIC_LUMP_2, SlimefunItems.GOLD_8K, SlimefunItems.MAGIC_LUMP_2}, new String[] {"recipe-requires-nether-stars"}, new Boolean[] {false}) .register(true); - + new Talisman(SlimefunItems.TALISMAN_ANVIL, "ANVIL_TALISMAN", new ItemStack[] {SlimefunItems.MAGIC_LUMP_3, null, SlimefunItems.MAGIC_LUMP_3, new ItemStack(Material.ANVIL), SlimefunItems.TALISMAN, new ItemStack(Material.ANVIL), SlimefunItems.MAGIC_LUMP_3, null, SlimefunItems.MAGIC_LUMP_3}, true, false, "anvil", new PotionEffect[0]) .register(true); - + new Talisman(SlimefunItems.TALISMAN_MINER, "MINER_TALISMAN", new ItemStack[] {SlimefunItems.MAGIC_LUMP_3, null, SlimefunItems.MAGIC_LUMP_3, SlimefunItems.SYNTHETIC_SAPPHIRE, SlimefunItems.TALISMAN, SlimefunItems.SIFTED_ORE, SlimefunItems.MAGIC_LUMP_3, null, SlimefunItems.MAGIC_LUMP_3}, false, false, "miner", 20, new PotionEffect[0]) .register(true); - + new Talisman(SlimefunItems.TALISMAN_HUNTER, "HUNTER_TALISMAN", new ItemStack[] {SlimefunItems.MAGIC_LUMP_3, null, SlimefunItems.MAGIC_LUMP_3, SlimefunItems.SYNTHETIC_SAPPHIRE, SlimefunItems.TALISMAN, SlimefunItems.MONSTER_JERKY, SlimefunItems.MAGIC_LUMP_3, null, SlimefunItems.MAGIC_LUMP_3}, false, false, "hunter", 20, new PotionEffect[0]) .register(true); - + new Talisman(SlimefunItems.TALISMAN_LAVA, "LAVA_TALISMAN", new ItemStack[] {SlimefunItems.MAGIC_LUMP_3, null, SlimefunItems.MAGIC_LUMP_3, SlimefunItems.LAVA_CRYSTAL, SlimefunItems.TALISMAN, new ItemStack(Material.LAVA_BUCKET), SlimefunItems.MAGIC_LUMP_3, null, SlimefunItems.MAGIC_LUMP_3}, true, true, "lava", new PotionEffect(PotionEffectType.FIRE_RESISTANCE, 3600, 4)) .register(true); - - new Talisman(SlimefunItems.TALISMAN_WATER, "WATER_TALISMAN", + + new Talisman(SlimefunItems.TALISMAN_WATER, "WATER_TALISMAN", new ItemStack[] {SlimefunItems.MAGIC_LUMP_3, null, SlimefunItems.MAGIC_LUMP_3, new ItemStack(Material.WATER_BUCKET), SlimefunItems.TALISMAN, new ItemStack(Material.FISHING_ROD), SlimefunItems.MAGIC_LUMP_3, null, SlimefunItems.MAGIC_LUMP_3}, true, true, "water", new PotionEffect(PotionEffectType.WATER_BREATHING, 3600, 4)) .register(true); - - new Talisman(SlimefunItems.TALISMAN_ANGEL, "ANGEL_TALISMAN", + + new Talisman(SlimefunItems.TALISMAN_ANGEL, "ANGEL_TALISMAN", new ItemStack[] {SlimefunItems.MAGIC_LUMP_3, null, SlimefunItems.MAGIC_LUMP_3, new ItemStack(Material.FEATHER), SlimefunItems.TALISMAN, new ItemStack(Material.FEATHER), SlimefunItems.MAGIC_LUMP_3, null, SlimefunItems.MAGIC_LUMP_3}, false, true, "angel", 75, new PotionEffect[0]) .register(true); - + new Talisman(SlimefunItems.TALISMAN_FIRE, "FIRE_TALISMAN", new ItemStack[] {SlimefunItems.MAGIC_LUMP_3, null, SlimefunItems.MAGIC_LUMP_3, SlimefunItems.LAVA_CRYSTAL, SlimefunItems.TALISMAN, SlimefunItems.LAVA_CRYSTAL, SlimefunItems.MAGIC_LUMP_3, null, SlimefunItems.MAGIC_LUMP_3}, true, true, "fire", new PotionEffect(PotionEffectType.FIRE_RESISTANCE, 3600, 4)) .register(true); - + new Talisman(SlimefunItems.TALISMAN_MAGICIAN, "MAGICIAN_TALISMAN", new ItemStack[] {SlimefunItems.ENDER_LUMP_3, null, SlimefunItems.ENDER_LUMP_3, new ItemStack(Material.ENCHANTMENT_TABLE), SlimefunItems.TALISMAN, new ItemStack(Material.ENCHANTMENT_TABLE), SlimefunItems.ENDER_LUMP_3, null, SlimefunItems.ENDER_LUMP_3}, false, false, "magician", 80, new PotionEffect[0]) .register(true); - + for (Enchantment e: Enchantment.values()) { for (int i = 1; i <= e.getMaxLevel(); i++) { Slimefun.setItemVariable("MAGICIAN_TALISMAN", "allow-enchantments." + e.getName() + ".level." + i, true); } } - - new Talisman(SlimefunItems.TALISMAN_TRAVELLER, "TRAVELLER_TALISMAN", + + new Talisman(SlimefunItems.TALISMAN_TRAVELLER, "TRAVELLER_TALISMAN", new ItemStack[] {SlimefunItems.MAGIC_LUMP_3, null, SlimefunItems.MAGIC_LUMP_3, SlimefunItems.STAFF_WIND, SlimefunItems.TALISMAN_ANGEL, SlimefunItems.STAFF_WIND, SlimefunItems.MAGIC_LUMP_3, null, SlimefunItems.MAGIC_LUMP_3}, false, false, "traveller", 60, new PotionEffect(PotionEffectType.SPEED, 3600, 2)) .register(true); - - new Talisman(SlimefunItems.TALISMAN_WARRIOR, "WARRIOR_TALISMAN", + + new Talisman(SlimefunItems.TALISMAN_WARRIOR, "WARRIOR_TALISMAN", new ItemStack[] {SlimefunItems.MAGIC_LUMP_3, null, SlimefunItems.MAGIC_LUMP_3, SlimefunItems.REINFORCED_ALLOY_INGOT, SlimefunItems.TALISMAN, SlimefunItems.REINFORCED_ALLOY_INGOT, SlimefunItems.MAGIC_LUMP_3, null, SlimefunItems.MAGIC_LUMP_3}, true, true, "warrior", new PotionEffect(PotionEffectType.INCREASE_DAMAGE, 3600, 2)) .register(true); - - new Talisman(SlimefunItems.TALISMAN_KNIGHT, "KNIGHT_TALISMAN", + + new Talisman(SlimefunItems.TALISMAN_KNIGHT, "KNIGHT_TALISMAN", new ItemStack[] {SlimefunItems.MAGIC_LUMP_3, null, SlimefunItems.MAGIC_LUMP_3, SlimefunItems.GILDED_IRON, SlimefunItems.TALISMAN_WARRIOR, SlimefunItems.GILDED_IRON, SlimefunItems.MAGIC_LUMP_3, null, SlimefunItems.MAGIC_LUMP_3}, "knight", 30, new PotionEffect(PotionEffectType.REGENERATION, 100, 3)) .register(true); - + new Alloy(SlimefunItems.GILDED_IRON, "GILDED_IRON", new ItemStack[] {SlimefunItems.GOLD_24K, SlimefunItems.IRON_DUST, null, null, null, null, null, null, null}) .register(true); - + new ReplacingAlloy(SlimefunItems.SYNTHETIC_EMERALD, "SYNTHETIC_EMERALD", new ItemStack[] {SlimefunItems.SYNTHETIC_SAPPHIRE, SlimefunItems.ALUMINUM_DUST, SlimefunItems.ALUMINUM_INGOT, new ItemStack(Material.THIN_GLASS), null, null, null, null, null}) .register(true); - + SlimefunManager.registerArmorSet(SlimefunItems.CHAIN, new ItemStack[] {new ItemStack(Material.CHAINMAIL_HELMET), new ItemStack(Material.CHAINMAIL_CHESTPLATE), new ItemStack(Material.CHAINMAIL_LEGGINGS), new ItemStack(Material.CHAINMAIL_BOOTS)}, "CHAIN", true); - + new Talisman(SlimefunItems.TALISMAN_WHIRLWIND, "WHIRLWIND_TALISMAN", new ItemStack[] {SlimefunItems.MAGIC_LUMP_3, null, SlimefunItems.MAGIC_LUMP_3, SlimefunItems.STAFF_WIND, SlimefunItems.TALISMAN_TRAVELLER, SlimefunItems.STAFF_WIND, SlimefunItems.MAGIC_LUMP_3, null, SlimefunItems.MAGIC_LUMP_3} , false, true, "whirlwind", 60, new PotionEffect[0]) .register(true); - + new Talisman(SlimefunItems.TALISMAN_WIZARD, "WIZARD_TALISMAN", new ItemStack[] {SlimefunItems.ENDER_LUMP_3, null, SlimefunItems.ENDER_LUMP_3, SlimefunItems.MAGIC_EYE_OF_ENDER, SlimefunItems.TALISMAN_MAGICIAN, SlimefunItems.MAGIC_EYE_OF_ENDER, SlimefunItems.ENDER_LUMP_3, null, SlimefunItems.ENDER_LUMP_3}, false, false, "wizard", 60, new PotionEffect[0]) .register(true); - + new SlimefunItem(Categories.TOOLS, SlimefunItems.LUMBER_AXE, "LUMBER_AXE", RecipeType.MAGIC_WORKBENCH, new ItemStack[] {SlimefunItems.SYNTHETIC_DIAMOND, SlimefunItems.SYNTHETIC_DIAMOND, null, SlimefunItems.SYNTHETIC_EMERALD, SlimefunItems.GILDED_IRON, null, null, SlimefunItems.GILDED_IRON, null}) .register(true, new BlockBreakHandler() { - + @Override public boolean onBlockBreak(BlockBreakEvent e, ItemStack item, int fortune, List drops) { if (SlimefunManager.isItemSimiliar(e.getPlayer().getItemInHand(), SlimefunItems.LUMBER_AXE, true)) { if (e.getBlock().getType() == Material.LOG || e.getBlock().getType() == Material.LOG_2) { List logs = new ArrayList(); TreeCalculator.getTree(e.getBlock().getLocation(), e.getBlock().getLocation(), logs); - + if (logs.contains(e.getBlock())) logs.remove(e.getBlock()); for (Location b: logs) { if (CSCoreLib.getLib().getProtectionManager().canBuild(e.getPlayer().getUniqueId(), b.getBlock())) { @@ -1478,81 +1475,81 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunItem(Categories.MISC, SlimefunItems.SALT, "SALT", RecipeType.ORE_WASHER, new ItemStack[] {null, null, null, null, new ItemStack(Material.SAND, 4), null, null, null, null}) .register(true); - + new SlimefunItem(Categories.MISC, SlimefunItems.HEAVY_CREAM, "HEAVY_CREAM", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {new ItemStack(Material.MILK_BUCKET), null, null, null, null, null, null, null, null}, new CustomItem(SlimefunItems.HEAVY_CREAM, 2)) .register(true); - + new SlimefunItem(Categories.MISC, SlimefunItems.CHEESE, "CHEESE", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {new ItemStack(Material.MILK_BUCKET), SlimefunItems.SALT, null, null, null, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.MISC, SlimefunItems.BUTTER, "BUTTER", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.HEAVY_CREAM, SlimefunItems.SALT, null, null, null, null, null, null, null}) .register(true); - + SlimefunManager.registerArmorSet(SlimefunItems.GILDED_IRON, new ItemStack[] {SlimefunItems.GILDED_IRON_HELMET, SlimefunItems.GILDED_IRON_CHESTPLATE, SlimefunItems.GILDED_IRON_LEGGINGS, SlimefunItems.GILDED_IRON_BOOTS}, "GILDED_IRON", true); - + new SlimefunArmorPiece(Categories.ARMOR, SlimefunItems.SCUBA_HELMET, "SCUBA_HELMET", RecipeType.ARMOR_FORGE, new ItemStack[] {new MaterialData(Material.WOOL, (byte) 1).toItemStack(1), new MaterialData(Material.WOOL, (byte) 1).toItemStack(1), new MaterialData(Material.WOOL, (byte) 1).toItemStack(1), new MaterialData(Material.WOOL, (byte) 15).toItemStack(1), new ItemStack(Material.THIN_GLASS), new MaterialData(Material.WOOL, (byte) 15).toItemStack(1), null, null, null}, new PotionEffect[] {new PotionEffect(PotionEffectType.WATER_BREATHING, 300, 1)}) .register(true); - + new SlimefunArmorPiece(Categories.ARMOR, SlimefunItems.HAZMATSUIT_CHESTPLATE, "HAZMAT_CHESTPLATE", RecipeType.ARMOR_FORGE, new ItemStack[] {new MaterialData(Material.WOOL, (byte) 1).toItemStack(1), null, new MaterialData(Material.WOOL, (byte) 1).toItemStack(1), new MaterialData(Material.WOOL, (byte) 1).toItemStack(1), new MaterialData(Material.WOOL, (byte) 1).toItemStack(1), new MaterialData(Material.WOOL, (byte) 1).toItemStack(1), new MaterialData(Material.WOOL, (byte) 15).toItemStack(1), new MaterialData(Material.WOOL, (byte) 15).toItemStack(1), new MaterialData(Material.WOOL, (byte) 15).toItemStack(1)}, new PotionEffect[] {new PotionEffect(PotionEffectType.FIRE_RESISTANCE, 300, 1)}) .register(true); - + new SlimefunItem(Categories.ARMOR, SlimefunItems.HAZMATSUIT_LEGGINGS, "HAZMAT_LEGGINGS", RecipeType.ARMOR_FORGE, new ItemStack [] {new MaterialData(Material.WOOL, (byte) 15).toItemStack(1), new MaterialData(Material.WOOL, (byte) 15).toItemStack(1), new MaterialData(Material.WOOL, (byte) 15).toItemStack(1), new MaterialData(Material.WOOL, (byte) 1).toItemStack(1), null, new MaterialData(Material.WOOL, (byte) 1).toItemStack(1), new MaterialData(Material.WOOL, (byte) 1).toItemStack(1), null, new MaterialData(Material.WOOL, (byte) 1).toItemStack(1)}) .register(true); - + new SlimefunItem(Categories.ARMOR, SlimefunItems.RUBBER_BOOTS, "RUBBER_BOOTS", RecipeType.ARMOR_FORGE, new ItemStack [] {null, null, null, new MaterialData(Material.WOOL, (byte) 15).toItemStack(1), null, new MaterialData(Material.WOOL, (byte) 15).toItemStack(1), new MaterialData(Material.WOOL, (byte) 15).toItemStack(1), null, new MaterialData(Material.WOOL, (byte) 15).toItemStack(1)}) .register(true); - + new SlimefunItem(Categories.MISC, SlimefunItems.CRUSHED_ORE, "CRUSHED_ORE", RecipeType.ORE_CRUSHER, new ItemStack[] {SlimefunItems.SIFTED_ORE, null, null, null, null, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.MISC, SlimefunItems.PULVERIZED_ORE, "PULVERIZED_ORE", RecipeType.ORE_CRUSHER, new ItemStack[] {SlimefunItems.CRUSHED_ORE, null, null, null, null, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.MISC, SlimefunItems.PURE_ORE_CLUSTER, "PURE_ORE_CLUSTER", RecipeType.ORE_WASHER, new ItemStack[] {SlimefunItems.PULVERIZED_ORE, null, null, null, null, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.MISC, SlimefunItems.TINY_URANIUM, "TINY_URANIUM", RecipeType.ORE_CRUSHER, new ItemStack[] {SlimefunItems.PURE_ORE_CLUSTER, null, null, null, null, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.MISC, SlimefunItems.SMALL_URANIUM, "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, SlimefunItems.URANIUM, "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); - + new Alloy(SlimefunItems.REDSTONE_ALLOY, "REDSTONE_ALLOY", new ItemStack[] {new ItemStack(Material.REDSTONE), new ItemStack(Material.REDSTONE_BLOCK), SlimefunItems.FERROSILICON, SlimefunItems.HARDENED_METAL_INGOT, null, null, null, null, null}) .register(true); - + SlimefunManager.registerArmorSet(SlimefunItems.GOLD_12K, new ItemStack[] {SlimefunItems.GOLD_HELMET, SlimefunItems.GOLD_CHESTPLATE, SlimefunItems.GOLD_LEGGINGS, SlimefunItems.GOLD_BOOTS}, "GOLD_12K", true); - + new SlimefunItem(Categories.MISC, SlimefunItems.CLOTH, "CLOTH", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {new ItemStack(Material.WOOL), null, null, null, null, null, null, null, null}, new CustomItem(SlimefunItems.CLOTH, 8)) .register(true); - + new SlimefunItem(Categories.PORTABLE, SlimefunItems.RAG, "RAG", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.CLOTH, SlimefunItems.CLOTH, SlimefunItems.CLOTH, new ItemStack(Material.STRING), null, new ItemStack(Material.STRING), SlimefunItems.CLOTH, SlimefunItems.CLOTH, SlimefunItems.CLOTH}) .register(true, new ItemInteractionHandler() { - + @Override public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) { if (SlimefunManager.isItemSimiliar(item, SlimefunItems.RAG, true)) { @@ -1565,12 +1562,12 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunItem(Categories.PORTABLE, SlimefunItems.BANDAGE, "BANDAGE", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.RAG, new ItemStack(Material.STRING), SlimefunItems.RAG, null, null, null, null, null, null}, new CustomItem(SlimefunItems.BANDAGE, 4), new String[] {"enable-bleeding"}, new Boolean[] {true}) .register(true, new ItemInteractionHandler() { - + @Override public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) { if (SlimefunManager.isItemSimiliar(item, SlimefunItems.BANDAGE, true)) { @@ -1583,12 +1580,12 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunItem(Categories.PORTABLE, SlimefunItems.SPLINT, "SPLINT", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, new ItemStack(Material.IRON_INGOT), null, new ItemStack(Material.STICK), new ItemStack(Material.STICK), new ItemStack(Material.STICK), null, new ItemStack(Material.IRON_INGOT), null}, new CustomItem(SlimefunItems.SPLINT, 4), new String[] {"enable-broken-legs"}, new Boolean[] {true}) .register(true, new ItemInteractionHandler() { - + @Override public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) { if (SlimefunManager.isItemSimiliar(item, SlimefunItems.SPLINT, true)) { @@ -1600,15 +1597,15 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunItem(Categories.MISC, SlimefunItems.CAN, "TIN_CAN", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.TIN_INGOT, SlimefunItems.TIN_INGOT, SlimefunItems.TIN_INGOT, SlimefunItems.TIN_INGOT, null, SlimefunItems.TIN_INGOT, SlimefunItems.TIN_INGOT, SlimefunItems.TIN_INGOT, SlimefunItems.TIN_INGOT}, new CustomItem(SlimefunItems.CAN, 4)) .register(true); - + new SlimefunItem(Categories.PORTABLE, SlimefunItems.VITAMINS, "VITAMINS", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.CAN, new ItemStack(Material.APPLE), new ItemStack(Material.RED_MUSHROOM), new ItemStack(Material.SUGAR), null, null, null, null, null}) .register(true, new ItemInteractionHandler() { - + @Override public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) { if (SlimefunManager.isItemSimiliar(item, SlimefunItems.VITAMINS, true)) { @@ -1629,20 +1626,20 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunItem(Categories.PORTABLE, SlimefunItems.MEDICINE, "MEDICINE", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.VITAMINS, new ItemStack(Material.GLASS_BOTTLE), SlimefunItems.HEAVY_CREAM, null, null, null, null, null, null}) .register(true); - + new SlimefunArmorPiece(Categories.TECH, SlimefunItems.NIGHT_VISION_GOGGLES, "NIGHT_VISION_GOGGLES", RecipeType.ARMOR_FORGE, new ItemStack[] {new ItemStack(Material.COAL_BLOCK), new ItemStack(Material.COAL_BLOCK), new ItemStack(Material.COAL_BLOCK), new MaterialData(Material.STAINED_GLASS_PANE, (byte) 5).toItemStack(1), new ItemStack(Material.COAL_BLOCK), new MaterialData(Material.STAINED_GLASS_PANE, (byte) 5).toItemStack(1), new ItemStack(Material.COAL_BLOCK), null, new ItemStack(Material.COAL_BLOCK)}, new PotionEffect[] {new PotionEffect(PotionEffectType.NIGHT_VISION, 600, 20)}) .register(true); - + new SlimefunItem(Categories.TOOLS, SlimefunItems.PICKAXE_OF_CONTAINMENT, "PICKAXE_OF_CONTAINMENT", RecipeType.MAGIC_WORKBENCH, new ItemStack[] {SlimefunItems.FERROSILICON, SlimefunItems.FERROSILICON, SlimefunItems.FERROSILICON, null, SlimefunItems.GILDED_IRON, null, null, SlimefunItems.GILDED_IRON, null}) .register(true, new BlockBreakHandler() { - + @Override public boolean onBlockBreak(BlockBreakEvent e, ItemStack item, int fortune, List drops) { if (SlimefunManager.isItemSimiliar(e.getPlayer().getItemInHand(), SlimefunItems.PICKAXE_OF_CONTAINMENT, true)) { @@ -1662,11 +1659,11 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunItem(Categories.TOOLS, SlimefunItems.HERCULES_PICKAXE, "HERCULES_PICKAXE", RecipeType.MAGIC_WORKBENCH, new ItemStack[] {SlimefunItems.HARDENED_METAL_INGOT, SlimefunItems.HARDENED_METAL_INGOT, SlimefunItems.HARDENED_METAL_INGOT, null, SlimefunItems.FERROSILICON, null, null, SlimefunItems.FERROSILICON, null}) .register(true, new BlockBreakHandler() { - + @Override public boolean onBlockBreak(BlockBreakEvent e, ItemStack item, int fortune, List drops) { if (SlimefunManager.isItemSimiliar(e.getPlayer().getItemInHand(), SlimefunItems.HERCULES_PICKAXE, true) && e.getBlock().getType().toString().endsWith("_ORE")) { @@ -1682,12 +1679,12 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunMachine(Categories.MACHINES_1, SlimefunItems.SAW_MILL, "SAW_MILL", new ItemStack[] {null, null, null, new ItemStack(Material.IRON_FENCE), new ItemStack(Material.LOG), new ItemStack(Material.IRON_FENCE), new ItemStack(Material.LOG), new ItemStack(Material.WORKBENCH), new ItemStack(Material.LOG)}, new ItemStack[] {}, Material.WORKBENCH) .register(true, new MultiBlockInteractionHandler() { - + @Override public boolean onInteract(Player p, MultiBlock mb, Block b) { if (mb.isMultiBlock(SlimefunItem.getByName("SAW_MILL"))) { @@ -1700,39 +1697,39 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunMachine(Categories.MACHINES_1, new CustomItem(Material.FIRE, "&4Phantom Item", 0), "SAW_MILL2", new ItemStack[] {null, null, null, new ItemStack(Material.IRON_FENCE), new ItemStack(Material.LOG_2), new ItemStack(Material.IRON_FENCE), new ItemStack(Material.LOG), new ItemStack(Material.WORKBENCH), new ItemStack(Material.LOG)}, new ItemStack[] {}, Material.WORKBENCH, true) .register(true); - + new SlimefunItem(Categories.MAGIC_ARMOR, SlimefunItems.SLIME_HELMET_STEEL, "SLIME_STEEL_HELMET", RecipeType.ARMOR_FORGE, new ItemStack[] {new ItemStack(Material.SLIME_BALL), SlimefunItems.STEEL_PLATE, new ItemStack(Material.SLIME_BALL), new ItemStack(Material.SLIME_BALL), null, new ItemStack(Material.SLIME_BALL), null, null, null}) .register(true); - + new SlimefunItem(Categories.MAGIC_ARMOR, SlimefunItems.SLIME_CHESTPLATE_STEEL, "SLIME_STEEL_CHESTPLATE", RecipeType.ARMOR_FORGE, new ItemStack[] {new ItemStack(Material.SLIME_BALL), null, new ItemStack(Material.SLIME_BALL), new ItemStack(Material.SLIME_BALL), SlimefunItems.STEEL_PLATE, new ItemStack(Material.SLIME_BALL), new ItemStack(Material.SLIME_BALL), new ItemStack(Material.SLIME_BALL), new ItemStack(Material.SLIME_BALL)}) .register(true); - + new SlimefunArmorPiece(Categories.MAGIC_ARMOR, SlimefunItems.SLIME_LEGGINGS_STEEL, "SLIME_STEEL_LEGGINGS", RecipeType.ARMOR_FORGE, new ItemStack[] {new ItemStack(Material.SLIME_BALL), SlimefunItems.STEEL_PLATE, new ItemStack(Material.SLIME_BALL), new ItemStack(Material.SLIME_BALL), null, new ItemStack(Material.SLIME_BALL), new ItemStack(Material.SLIME_BALL), null, new ItemStack(Material.SLIME_BALL)}, new PotionEffect[] {new PotionEffect(PotionEffectType.SPEED, 300, 2)}) .register(true); - + new SlimefunArmorPiece(Categories.MAGIC_ARMOR, SlimefunItems.SLIME_BOOTS_STEEL, "SLIME_STEEL_BOOTS", RecipeType.ARMOR_FORGE, new ItemStack[] {null, null, null, new ItemStack(Material.SLIME_BALL), null, new ItemStack(Material.SLIME_BALL), new ItemStack(Material.SLIME_BALL), SlimefunItems.STEEL_PLATE, new ItemStack(Material.SLIME_BALL)}, new PotionEffect[] {new PotionEffect(PotionEffectType.JUMP, 300, 5)}) .register(true); - + new SlimefunItem(Categories.WEAPONS, SlimefunItems.BLADE_OF_VAMPIRES, "BLADE_OF_VAMPIRES", RecipeType.MAGIC_WORKBENCH, new ItemStack[] {null, new MaterialData(Material.SKULL_ITEM, (byte) 1).toItemStack(1), null, null, new MaterialData(Material.SKULL_ITEM, (byte) 1).toItemStack(1), null, null, new ItemStack(Material.BLAZE_ROD), null}) .register(true); - + new SlimefunMachine(Categories.MACHINES_1, SlimefunItems.DIGITAL_MINER, "DIGITAL_MINER", new ItemStack[] {SlimefunItems.SOLAR_PANEL, new ItemStack(Material.CHEST), SlimefunItems.SOLAR_PANEL, new ItemStack(Material.IRON_BLOCK), new ItemStack(Material.DISPENSER), new ItemStack(Material.IRON_BLOCK), new ItemStack(Material.IRON_BLOCK), new ItemStack(Material.HOPPER), new ItemStack(Material.IRON_BLOCK)}, new ItemStack[0], Material.DISPENSER) .register(true, new MultiBlockInteractionHandler() { - + @Override public boolean onInteract(final Player p, MultiBlock mb, final Block b) { if (mb.isMultiBlock(SlimefunItem.getByName("DIGITAL_MINER"))) { @@ -1757,27 +1754,27 @@ public class SlimefunSetup { if (InvUtils.fits(inv, adding)) { b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, ore); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, ore); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, ore); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, ore); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, ore); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, ore); @@ -1803,12 +1800,12 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunMachine(Categories.MACHINES_1, SlimefunItems.ADVANCED_DIGITAL_MINER, "ADVANCED_DIGITAL_MINER", new ItemStack[] {SlimefunItems.SOLAR_PANEL, new ItemStack(Material.CHEST), SlimefunItems.SOLAR_PANEL, SlimefunItems.GOLD_24K_BLOCK, new ItemStack(Material.DISPENSER), SlimefunItems.GOLD_24K_BLOCK, SlimefunItems.GOLD_24K_BLOCK, new ItemStack(Material.HOPPER), SlimefunItems.GOLD_24K_BLOCK}, new ItemStack[0], Material.DISPENSER) .register(true, new MultiBlockInteractionHandler() { - + @Override public boolean onInteract(final Player p, MultiBlock mb, final Block b) { if (mb.isMultiBlock(SlimefunItem.getByName("ADVANCED_DIGITAL_MINER"))) { @@ -1844,22 +1841,22 @@ public class SlimefunSetup { if (InvUtils.fits(inv, adding)) { b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, ore); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, ore); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, ore); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, ore); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, ore); @@ -1883,16 +1880,16 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunItem(Categories.MISC, SlimefunItems.GOLD_24K_BLOCK, "GOLD_24K_BLOCK", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.GOLD_24K, SlimefunItems.GOLD_24K, SlimefunItems.GOLD_24K, SlimefunItems.GOLD_24K, SlimefunItems.GOLD_24K, SlimefunItems.GOLD_24K, SlimefunItems.GOLD_24K, SlimefunItems.GOLD_24K, SlimefunItems.GOLD_24K}) .register(true); - + new SlimefunGadget(Categories.MACHINES_1, SlimefunItems.COMPOSTER, "COMPOSTER", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {new ItemStack(Material.WOOD_STEP), null, new ItemStack(Material.WOOD_STEP), new ItemStack(Material.WOOD_STEP), null, new ItemStack(Material.WOOD_STEP), new ItemStack(Material.WOOD_STEP), new ItemStack(Material.CAULDRON_ITEM), new ItemStack(Material.WOOD_STEP)}, new ItemStack[] {new CustomItem(Material.LEAVES, 0, 8), new ItemStack(Material.DIRT), new CustomItem(Material.LEAVES_2, 0, 8), new ItemStack(Material.DIRT), new CustomItem(Material.SAPLING, 0, 8), new ItemStack(Material.DIRT), new ItemStack(Material.STONE, 4), new ItemStack(Material.NETHERRACK), new ItemStack(Material.SAND, 2), new ItemStack(Material.SOUL_SAND), new ItemStack(Material.WHEAT, 4), new ItemStack(Material.NETHER_STALK)}) .register(true, new ItemInteractionHandler() { - + @Override public boolean onRightClick(ItemUseEvent e, final Player p, ItemStack item) { if (e.getClickedBlock() != null) { @@ -1906,69 +1903,69 @@ public class SlimefunSetup { removing.setAmount(convert.getAmount()); p.getInventory().removeItem(removing); final ItemStack adding = RecipeType.getRecipeOutput(machine, convert); - + Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { if (input.getType().isBlock()) b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, input.getType()); else b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, Material.HAY_BLOCK); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { if (input.getType().isBlock()) b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, input.getType()); else b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, Material.HAY_BLOCK); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { if (input.getType().isBlock()) b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, input.getType()); else b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, Material.HAY_BLOCK); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { if (input.getType().isBlock()) b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, input.getType()); else b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, Material.HAY_BLOCK); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { if (input.getType().isBlock()) b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, input.getType()); else b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, Material.HAY_BLOCK); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { if (input.getType().isBlock()) b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, input.getType()); else b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, Material.HAY_BLOCK); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { if (input.getType().isBlock()) b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, input.getType()); else b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, Material.HAY_BLOCK); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { if (input.getType().isBlock()) b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, input.getType()); else b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, Material.HAY_BLOCK); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { if (input.getType().isBlock()) b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, input.getType()); else b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, Material.HAY_BLOCK); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { if (input.getType().isBlock()) b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, input.getType()); else b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, Material.HAY_BLOCK); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { if (input.getType().isBlock()) b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, input.getType()); @@ -2007,19 +2004,19 @@ public class SlimefunSetup { return false; } }); - + new SlimefunItem(Categories.MAGIC_ARMOR, SlimefunItems.FARMER_SHOES, "FARMER_SHOES", RecipeType.ARMOR_FORGE, new ItemStack[] {null, null, null, new ItemStack(Material.HAY_BLOCK), null, new ItemStack(Material.HAY_BLOCK), new ItemStack(Material.HAY_BLOCK), null, new ItemStack(Material.HAY_BLOCK)}) .register(true); - + @SuppressWarnings("unchecked") final String[] explosiveblacklist = Slimefun.getItemValue("EXPLOSIVE_PICKAXE", "unbreakable-blocks") != null ? ((List) Slimefun.getItemValue("EXPLOSIVE_PICKAXE", "unbreakable-blocks")).toArray(new String[((List) Slimefun.getItemValue("EXPLOSIVE_PICKAXE", "unbreakable-blocks")).size()]): new String[] {"BEDROCK"}; - + new SlimefunItem(Categories.TOOLS, SlimefunItems.EXPLOSIVE_PICKAXE, "EXPLOSIVE_PICKAXE", RecipeType.MAGIC_WORKBENCH, new ItemStack[] {new ItemStack(Material.TNT), SlimefunItems.SYNTHETIC_DIAMOND, new ItemStack(Material.TNT), null, SlimefunItems.FERROSILICON, null, null, SlimefunItems.FERROSILICON, null}, new String[] {"unbreakable-blocks"}, new Object[] {Arrays.asList("BEDROCK")}) .register(true, new BlockBreakHandler() { - + @Override public boolean onBlockBreak(BlockBreakEvent e, ItemStack item, int fortune, List drops) { if (SlimefunManager.isItemSimiliar(item, SlimefunItems.EXPLOSIVE_PICKAXE, true)) { @@ -2061,12 +2058,12 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunMachine(Categories.MACHINES_1, SlimefunItems.AUTOMATED_PANNING_MACHINE, "AUTOMATED_PANNING_MACHINE", new ItemStack[] {null, null, null, null, new ItemStack(Material.TRAP_DOOR), null, null, new ItemStack(Material.CAULDRON_ITEM), null}, 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}, Material.TRAP_DOOR) .register(true, new MultiBlockInteractionHandler() { - + @Override public boolean onInteract(final Player p, MultiBlock mb, final Block b) { if (mb.isMultiBlock(SlimefunItem.getByName("AUTOMATED_PANNING_MACHINE"))) { @@ -2080,32 +2077,32 @@ public class SlimefunSetup { if (input.getType() == Material.GRAVEL) { PlayerInventory.consumeItemInHand(p); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { b.getWorld().playEffect(b.getRelative(BlockFace.DOWN).getLocation(), Effect.STEP_SOUND, Material.GRAVEL); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { b.getWorld().playEffect(b.getRelative(BlockFace.DOWN).getLocation(), Effect.STEP_SOUND, Material.GRAVEL); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { b.getWorld().playEffect(b.getRelative(BlockFace.DOWN).getLocation(), Effect.STEP_SOUND, Material.GRAVEL); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { b.getWorld().playEffect(b.getRelative(BlockFace.DOWN).getLocation(), Effect.STEP_SOUND, Material.GRAVEL); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { b.getWorld().playEffect(b.getRelative(BlockFace.DOWN).getLocation(), Effect.STEP_SOUND, Material.GRAVEL); Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { b.getWorld().playEffect(b.getRelative(BlockFace.DOWN).getLocation(), Effect.STEP_SOUND, Material.GRAVEL); @@ -2132,20 +2129,20 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunItem(Categories.MAGIC_ARMOR, SlimefunItems.BOOTS_OF_THE_STOMPER, "BOOTS_OF_THE_STOMPER", RecipeType.ARMOR_FORGE, new ItemStack[] {null, null, null, new ItemStack(Material.WOOL), null, new ItemStack(Material.WOOL), new ItemStack(Material.PISTON_BASE), null, new ItemStack(Material.PISTON_BASE)}) .register(true); - + new SlimefunItem(Categories.TOOLS, SlimefunItems.PICKAXE_OF_THE_SEEKER, "PICKAXE_OF_THE_SEEKER", RecipeType.MAGIC_WORKBENCH, new ItemStack[] {new ItemStack(Material.COMPASS), SlimefunItems.SYNTHETIC_DIAMOND, new ItemStack(Material.COMPASS), null, SlimefunItems.FERROSILICON, null, null, SlimefunItems.FERROSILICON, null}) .register(true, new ItemInteractionHandler() { - + @Override public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) { if (SlimefunManager.isItemSimiliar(item, SlimefunItems.PICKAXE_OF_THE_SEEKER, true)) { Block closest = null; - + for (int x = -4; x <= 4; x++) { for (int y = -4; y <= 4; y++) { for (int z = -4; z <= 4; z++) { @@ -2156,7 +2153,7 @@ public class SlimefunSetup { } } } - + if (closest == null) Messages.local.sendTranslation(p, "miner.no-ores", true); else { double l = closest.getX() + 0.5 - p.getLocation().getX(); @@ -2168,22 +2165,22 @@ public class SlimefunSetup { if (alpha2 > 90) yaw = (float) (180 - alpha1); else yaw = (float) alpha1; pitch = (float) ((-Math.atan((closest.getY() - 0.5 - p.getLocation().getY()) / Math.sqrt(l * l + w * w))) * 180F / Math.PI); - + p.teleport(new Location(p.getWorld(), p.getLocation().getX(), p.getLocation().getY(), p.getLocation().getZ(), yaw, pitch)); } - + if (e.getPlayer().getItemInHand().getEnchantments().containsKey(Enchantment.DURABILITY)) { if (SlimefunStartup.randomize(100) <= (60 + 40 / (e.getPlayer().getItemInHand().getEnchantmentLevel(Enchantment.DURABILITY) + 1))) PlayerInventory.damageItemInHand(e.getPlayer()); } else PlayerInventory.damageItemInHand(e.getPlayer()); - + PlayerInventory.update(e.getPlayer()); return true; } else return false; } }); - + new SlimefunItem(Categories.PORTABLE, SlimefunItems.BACKPACK_SMALL, "SMALL_BACKPACK", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {new ItemStack(Material.LEATHER), null, new ItemStack(Material.LEATHER), SlimefunItems.GOLD_6K, new ItemStack(Material.CHEST), SlimefunItems.GOLD_6K, new ItemStack(Material.LEATHER), new ItemStack(Material.LEATHER), new ItemStack(Material.LEATHER)}) .register(true); @@ -2191,20 +2188,20 @@ public class SlimefunSetup { new SlimefunItem(Categories.PORTABLE, SlimefunItems.BACKPACK_MEDIUM, "MEDIUM_BACKPACK", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {new ItemStack(Material.LEATHER), null, new ItemStack(Material.LEATHER), SlimefunItems.GOLD_10K, SlimefunItems.BACKPACK_SMALL, SlimefunItems.GOLD_10K, new ItemStack(Material.LEATHER), new ItemStack(Material.LEATHER), new ItemStack(Material.LEATHER)}) .register(true); - + new SlimefunItem(Categories.PORTABLE, SlimefunItems.BACKPACK_LARGE, "LARGE_BACKPACK", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {new ItemStack(Material.LEATHER), null, new ItemStack(Material.LEATHER), SlimefunItems.GOLD_14K, SlimefunItems.BACKPACK_MEDIUM, SlimefunItems.GOLD_14K, new ItemStack(Material.LEATHER), new ItemStack(Material.LEATHER), new ItemStack(Material.LEATHER)}) .register(true); - + new SlimefunItem(Categories.PORTABLE, SlimefunItems.WOVEN_BACKPACK, "WOVEN_BACKPACK", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.CLOTH, null, SlimefunItems.CLOTH, SlimefunItems.GOLD_16K, SlimefunItems.BACKPACK_LARGE, SlimefunItems.GOLD_16K, SlimefunItems.CLOTH, SlimefunItems.CLOTH, SlimefunItems.CLOTH}) .register(true); - + new SlimefunGadget(Categories.MACHINES_1, SlimefunItems.CRUCIBLE, "CRUCIBLE", RecipeType.ENHANCED_CRAFTING_TABLE, - new ItemStack [] {new ItemStack(Material.HARD_CLAY), null, new ItemStack(Material.HARD_CLAY), new ItemStack(Material.HARD_CLAY), null, new ItemStack(Material.HARD_CLAY), new ItemStack(Material.HARD_CLAY), new ItemStack(Material.FLINT_AND_STEEL), new ItemStack(Material.HARD_CLAY)}, + new ItemStack [] {new ItemStack(Material.HARD_CLAY), null, new ItemStack(Material.HARD_CLAY), new ItemStack(Material.HARD_CLAY), null, new ItemStack(Material.HARD_CLAY), new ItemStack(Material.HARD_CLAY), new ItemStack(Material.FLINT_AND_STEEL), new ItemStack(Material.HARD_CLAY)}, new ItemStack [] {new ItemStack(Material.COBBLESTONE, 16), new ItemStack(Material.LAVA_BUCKET), new ItemStack(Material.LEAVES, 16), new ItemStack(Material.WATER_BUCKET)}) .register(true, new ItemInteractionHandler() { - + @Override public boolean onRightClick(ItemUseEvent e, final Player p, ItemStack item) { if (e.getClickedBlock() != null) { @@ -2218,9 +2215,9 @@ public class SlimefunSetup { ItemStack removing = input.clone(); removing.setAmount(convert.getAmount()); p.getInventory().removeItem(removing); - + Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { if (input.getType() == Material.COBBLESTONE) { @@ -2234,7 +2231,7 @@ public class SlimefunSetup { block.getWorld().playSound(block.getLocation(), Sound.ENTITY_PLAYER_SPLASH, 1F, 1F); } Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { if (input.getType() == Material.COBBLESTONE) { @@ -2248,7 +2245,7 @@ public class SlimefunSetup { block.getWorld().playSound(block.getLocation(), Sound.ENTITY_PLAYER_SPLASH, 1F, 1F); } Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { if (input.getType() == Material.COBBLESTONE) { @@ -2262,7 +2259,7 @@ public class SlimefunSetup { block.getWorld().playSound(block.getLocation(), Sound.ENTITY_PLAYER_SPLASH, 1F, 1F); } Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { if (input.getType() == Material.COBBLESTONE) { @@ -2276,7 +2273,7 @@ public class SlimefunSetup { block.getWorld().playSound(block.getLocation(), Sound.ENTITY_PLAYER_SPLASH, 1F, 1F); } Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { if (input.getType() == Material.COBBLESTONE) { @@ -2290,7 +2287,7 @@ public class SlimefunSetup { block.getWorld().playSound(block.getLocation(), Sound.ENTITY_PLAYER_SPLASH, 1F, 1F); } Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { if (input.getType() == Material.COBBLESTONE) { @@ -2304,7 +2301,7 @@ public class SlimefunSetup { block.getWorld().playSound(block.getLocation(), Sound.ENTITY_PLAYER_SPLASH, 1F, 1F); } Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { if (input.getType() == Material.COBBLESTONE) { @@ -2318,7 +2315,7 @@ public class SlimefunSetup { block.getWorld().playSound(block.getLocation(), Sound.ENTITY_PLAYER_SPLASH, 1F, 1F); } Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { - + @Override public void run() { if (input.getType() == Material.COBBLESTONE) { @@ -2358,79 +2355,79 @@ public class SlimefunSetup { return false; } }); - + new SlimefunItem(Categories.PORTABLE, SlimefunItems.GILDED_BACKPACK, "GILDED_BACKPACK", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.GOLD_22K, null, SlimefunItems.GOLD_22K, new ItemStack(Material.LEATHER), SlimefunItems.WOVEN_BACKPACK, new ItemStack(Material.LEATHER), SlimefunItems.GOLD_22K, null, SlimefunItems.GOLD_22K}) .register(true); - + new Alloy(Categories.TECH_MISC, SlimefunItems.MAGNET, "MAGNET", new ItemStack[] {SlimefunItems.NICKEL_INGOT, SlimefunItems.ALUMINUM_DUST, SlimefunItems.IRON_DUST, SlimefunItems.COBALT_INGOT, null, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.MAGIC, SlimefunItems.INFUSED_MAGNET, "INFUSED_MAGNET", RecipeType.MAGIC_WORKBENCH, new ItemStack[] {SlimefunItems.MAGIC_LUMP_3, null, SlimefunItems.MAGIC_LUMP_3, SlimefunItems.ENDER_LUMP_2, SlimefunItems.MAGNET, SlimefunItems.ENDER_LUMP_2, SlimefunItems.MAGIC_LUMP_3, null, SlimefunItems.MAGIC_LUMP_3}) .register(true); - + new SlimefunItem(Categories.TOOLS, SlimefunItems.COBALT_PICKAXE, "COBALT_PICKAXE", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.COBALT_INGOT, SlimefunItems.COBALT_INGOT, SlimefunItems.COBALT_INGOT, null, SlimefunItems.NICKEL_INGOT, null, null, SlimefunItems.NICKEL_INGOT, null}) .register(true); - + new SlimefunItem(Categories.LUMPS_AND_MAGIC, SlimefunItems.NECROTIC_SKULL, "NECROTIC_SKULL", RecipeType.MAGIC_WORKBENCH, new ItemStack[] {SlimefunItems.MAGIC_LUMP_3, null, SlimefunItems.MAGIC_LUMP_3, null, new MaterialData(Material.SKULL_ITEM, (byte) 1).toItemStack(1), null, SlimefunItems.MAGIC_LUMP_3, null, SlimefunItems.MAGIC_LUMP_3}) .register(true); - + new SlimefunItem(Categories.LUMPS_AND_MAGIC, SlimefunItems.ESSENCE_OF_AFTERLIFE, "ESSENCE_OF_AFTERLIFE", RecipeType.ANCIENT_ALTAR, new ItemStack[] {SlimefunItems.ENDER_LUMP_3, SlimefunItems.RUNE_AIR, SlimefunItems.ENDER_LUMP_3, SlimefunItems.RUNE_EARTH, SlimefunItems.NECROTIC_SKULL, SlimefunItems.RUNE_FIRE, SlimefunItems.ENDER_LUMP_3, SlimefunItems.RUNE_WATER, SlimefunItems.ENDER_LUMP_3}) .register(true); - + new SoulboundItem(Categories.PORTABLE, SlimefunItems.BOUND_BACKPACK, "BOUND_BACKPACK", new ItemStack[] {SlimefunItems.ENDER_LUMP_2, null, SlimefunItems.ENDER_LUMP_2, SlimefunItems.ESSENCE_OF_AFTERLIFE, SlimefunItems.GILDED_BACKPACK, SlimefunItems.ESSENCE_OF_AFTERLIFE, SlimefunItems.ENDER_LUMP_2, null, SlimefunItems.ENDER_LUMP_2}) .register(true); - + new JetBoots(SlimefunItems.DURALUMIN_JETBOOTS, "DURALUMIN_JETBOOTS", new ItemStack[] {null, null, null, SlimefunItems.DURALUMIN_INGOT, SlimefunItems.POWER_CRYSTAL, SlimefunItems.DURALUMIN_INGOT, SlimefunItems.STEEL_THRUSTER, SlimefunItems.SMALL_CAPACITOR, SlimefunItems.STEEL_THRUSTER}, 0.35) .register(true); - + new JetBoots(SlimefunItems.SOLDER_JETBOOTS, "SOLDER_JETBOOTS", new ItemStack[] {null, null, null, SlimefunItems.SOLDER_INGOT, SlimefunItems.POWER_CRYSTAL, SlimefunItems.SOLDER_INGOT, SlimefunItems.STEEL_THRUSTER, SlimefunItems.SMALL_CAPACITOR, SlimefunItems.STEEL_THRUSTER}, 0.4) .register(true); - + new JetBoots(SlimefunItems.BILLON_JETBOOTS, "BILLON_JETBOOTS", new ItemStack[] {null, null, SlimefunItems.BILLON_INGOT, null, SlimefunItems.POWER_CRYSTAL, SlimefunItems.BILLON_INGOT, SlimefunItems.STEEL_THRUSTER, SlimefunItems.SMALL_CAPACITOR, SlimefunItems.STEEL_THRUSTER}, 0.45) .register(true); - + new JetBoots(SlimefunItems.STEEL_JETBOOTS, "STEEL_JETBOOTS", new ItemStack[] {null, null, SlimefunItems.STEEL_INGOT, null, SlimefunItems.POWER_CRYSTAL, SlimefunItems.STEEL_INGOT, SlimefunItems.STEEL_THRUSTER, SlimefunItems.SMALL_CAPACITOR, SlimefunItems.STEEL_THRUSTER}, 0.5) .register(true); - + new JetBoots(SlimefunItems.DAMASCUS_STEEL_JETBOOTS, "DAMASCUS_STEEL_JETBOOTS", new ItemStack[] {null, null, null, 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 JetBoots(SlimefunItems.REINFORCED_ALLOY_JETBOOTS, "REINFORCED_ALLOY_JETBOOTS", new ItemStack[] {null, null, null, 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 JetBoots(SlimefunItems.CARBONADO_JETBOOTS, "CARBONADO_JETBOOTS", new ItemStack[] {null, null, null, SlimefunItems.CARBONADO, SlimefunItems.POWER_CRYSTAL, SlimefunItems.CARBONADO, SlimefunItems.STEEL_THRUSTER, SlimefunItems.LARGE_CAPACITOR, SlimefunItems.STEEL_THRUSTER}, 0.7) .register(true); - + new JetBoots(SlimefunItems.ARMORED_JETBOOTS, "ARMORED_JETBOOTS", new ItemStack[] {null, null, null, SlimefunItems.STEEL_PLATE, SlimefunItems.POWER_CRYSTAL, SlimefunItems.STEEL_PLATE, SlimefunItems.STEEL_THRUSTER, SlimefunItems.MEDIUM_CAPACITOR, SlimefunItems.STEEL_THRUSTER}, 0.45) .register(true); - + new SlimefunItem(Categories.WEAPONS, SlimefunItems.SEISMIC_AXE, "SEISMIC_AXE", RecipeType.MAGIC_WORKBENCH, new ItemStack[] {SlimefunItems.HARDENED_METAL_INGOT, SlimefunItems.HARDENED_METAL_INGOT, null, SlimefunItems.HARDENED_METAL_INGOT, SlimefunItems.STAFF_ELEMENTAL, null, null, SlimefunItems.STAFF_ELEMENTAL, null}) .register(true, new ItemInteractionHandler() { - + @Override public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) { if (SlimefunManager.isItemSimiliar(item, SlimefunItems.SEISMIC_AXE, true)) { @@ -2472,7 +2469,7 @@ public class SlimefunSetup { } } } - + for (int i = 0; i < 4; i++) { if (e.getPlayer().getItemInHand() != null) { if (e.getPlayer().getItemInHand().getEnchantments().containsKey(Enchantment.DURABILITY)) { @@ -2486,11 +2483,11 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunItem(Categories.TOOLS, SlimefunItems.PICKAXE_OF_VEIN_MINING, "PICKAXE_OF_VEIN_MINING", RecipeType.MAGIC_WORKBENCH, new ItemStack[] {new ItemStack(Material.EMERALD_ORE), SlimefunItems.SYNTHETIC_DIAMOND, new ItemStack(Material.EMERALD_ORE), null, SlimefunItems.GILDED_IRON, null, null, SlimefunItems.GILDED_IRON, null}) .register(true, new BlockBreakHandler() { - + @Override public boolean onBlockBreak(BlockBreakEvent e, ItemStack item, int fortune, List drops) { if (SlimefunManager.isItemSimiliar(e.getPlayer().getItemInHand(), SlimefunItems.PICKAXE_OF_VEIN_MINING, true) && e.getBlock().getType().toString().endsWith("_ORE")) { @@ -2509,62 +2506,62 @@ public class SlimefunSetup { else return false; } }); - - new SoulboundItem(Categories.WEAPONS, SlimefunItems.SOULBOUND_SWORD, "SOULBOUND_SWORD", + + new SoulboundItem(Categories.WEAPONS, SlimefunItems.SOULBOUND_SWORD, "SOULBOUND_SWORD", new ItemStack[] {null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null, null, new ItemStack(Material.DIAMOND_SWORD), null, null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null}) .register(true); - - new SoulboundItem(Categories.WEAPONS, SlimefunItems.SOULBOUND_BOW, "SOULBOUND_BOW", + + new SoulboundItem(Categories.WEAPONS, SlimefunItems.SOULBOUND_BOW, "SOULBOUND_BOW", new ItemStack[] {null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null, null, new ItemStack(Material.BOW), null, null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null}) .register(true); - - new SoulboundItem(Categories.TOOLS, SlimefunItems.SOULBOUND_PICKAXE, "SOULBOUND_PICKAXE", + + new SoulboundItem(Categories.TOOLS, SlimefunItems.SOULBOUND_PICKAXE, "SOULBOUND_PICKAXE", new ItemStack[] {null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null, null, new ItemStack(Material.DIAMOND_PICKAXE), null, null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null}) .register(true); - - new SoulboundItem(Categories.TOOLS, SlimefunItems.SOULBOUND_AXE, "SOULBOUND_AXE", + + new SoulboundItem(Categories.TOOLS, SlimefunItems.SOULBOUND_AXE, "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 SoulboundItem(Categories.TOOLS, SlimefunItems.SOULBOUND_SHOVEL, "SOULBOUND_SHOVEL", + + new SoulboundItem(Categories.TOOLS, SlimefunItems.SOULBOUND_SHOVEL, "SOULBOUND_SHOVEL", new ItemStack[] {null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null, null, new ItemStack(Material.DIAMOND_SPADE), null, null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null}) .register(true); - - new SoulboundItem(Categories.TOOLS, SlimefunItems.SOULBOUND_HOE, "SOULBOUND_HOE", + + new SoulboundItem(Categories.TOOLS, SlimefunItems.SOULBOUND_HOE, "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); - - new SoulboundItem(Categories.MAGIC_ARMOR, SlimefunItems.SOULBOUND_HELMET, "SOULBOUND_HELMET", + + new SoulboundItem(Categories.MAGIC_ARMOR, SlimefunItems.SOULBOUND_HELMET, "SOULBOUND_HELMET", new ItemStack[] {null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null, null, new ItemStack(Material.DIAMOND_HELMET), null, null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null}) .register(true); - - new SoulboundItem(Categories.MAGIC_ARMOR, SlimefunItems.SOULBOUND_CHESTPLATE, "SOULBOUND_CHESTPLATE", + + new SoulboundItem(Categories.MAGIC_ARMOR, SlimefunItems.SOULBOUND_CHESTPLATE, "SOULBOUND_CHESTPLATE", new ItemStack[] {null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null, null, new ItemStack(Material.DIAMOND_CHESTPLATE), null, null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null}) .register(true); - - new SoulboundItem(Categories.MAGIC_ARMOR, SlimefunItems.SOULBOUND_LEGGINGS, "SOULBOUND_LEGGINGS", + + new SoulboundItem(Categories.MAGIC_ARMOR, SlimefunItems.SOULBOUND_LEGGINGS, "SOULBOUND_LEGGINGS", new ItemStack[] {null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null, null, new ItemStack(Material.DIAMOND_LEGGINGS), null, null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null}) .register(true); - - new SoulboundItem(Categories.MAGIC_ARMOR, SlimefunItems.SOULBOUND_BOOTS, "SOULBOUND_BOOTS", + + new SoulboundItem(Categories.MAGIC_ARMOR, SlimefunItems.SOULBOUND_BOOTS, "SOULBOUND_BOOTS", new ItemStack[] {null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null, null, new ItemStack(Material.DIAMOND_BOOTS), null, null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null}) .register(true); - - new SlimefunMachine(Categories.MACHINES_1, SlimefunItems.JUICER, "JUICER", - new ItemStack[] {null, new ItemStack(Material.GLASS), null, null, new ItemStack(Material.NETHER_FENCE), null, null, new CustomItem(Material.DISPENSER, "Dispenser (Facing up)", 0), null}, + + new SlimefunMachine(Categories.MACHINES_1, SlimefunItems.JUICER, "JUICER", + new ItemStack[] {null, new ItemStack(Material.GLASS), null, null, new ItemStack(Material.NETHER_FENCE), null, null, new CustomItem(Material.DISPENSER, "Dispenser (Facing up)", 0), null}, new ItemStack[] { - new ItemStack(Material.APPLE), SlimefunItems.APPLE_JUICE, - new ItemStack(Material.MELON), SlimefunItems.MELON_JUICE, + new ItemStack(Material.APPLE), SlimefunItems.APPLE_JUICE, + new ItemStack(Material.MELON), SlimefunItems.MELON_JUICE, new ItemStack(Material.CARROT_ITEM), SlimefunItems.CARROT_JUICE, new ItemStack(Material.PUMPKIN), SlimefunItems.PUMPKIN_JUICE}, Material.NETHER_FENCE) .register(true, new MultiBlockInteractionHandler() { - + @Override public boolean onInteract(Player p, MultiBlock mb, Block b) { - + SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByName("JUICER"); - + if (mb.isMultiBlock(machine)) { if (Slimefun.hasUnlocked(p, SlimefunItems.JUICER, true)) { Dispenser disp = (Dispenser) b.getRelative(BlockFace.DOWN).getState(); @@ -2593,35 +2590,35 @@ public class SlimefunSetup { else return false; } }); - + new Juice(Categories.FOOD, SlimefunItems.APPLE_JUICE, "APPLE_JUICE", RecipeType.JUICER, new ItemStack[] {null, null, null, null, new ItemStack(Material.APPLE), null, null, null, null}) .register(true); - + new Juice(Categories.FOOD, SlimefunItems.CARROT_JUICE, "CARROT_JUICE", RecipeType.JUICER, new ItemStack[] {null, null, null, null, new ItemStack(Material.CARROT_ITEM), null, null, null, null}) .register(true); - + new Juice(Categories.FOOD, SlimefunItems.MELON_JUICE, "MELON_JUICE", RecipeType.JUICER, new ItemStack[] {null, null, null, null, new ItemStack(Material.MELON), null, null, null, null}) .register(true); - + new Juice(Categories.FOOD, SlimefunItems.PUMPKIN_JUICE, "PUMPKIN_JUICE", RecipeType.JUICER, new ItemStack[] {null, null, null, null, new ItemStack(Material.PUMPKIN), null, null, null, null}) .register(true); - + new Juice(Categories.FOOD, SlimefunItems.GOLDE_APPLE_JUICE, "GOLDE_APPLE_JUICE", RecipeType.JUICER, new ItemStack[] {new ItemStack(Material.GOLDEN_APPLE), null, null, null, null, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.LUMPS_AND_MAGIC, SlimefunItems.BROKEN_SPAWNER, "BROKEN_SPAWNER", new RecipeType(SlimefunItems.PICKAXE_OF_CONTAINMENT), new ItemStack[] {null, null, null, null, new ItemStack(Material.MOB_SPAWNER), null, null, null, null}) .register(true); - + new SlimefunItem(Categories.MAGIC, SlimefunItems.REPAIRED_SPAWNER, "REINFORCED_SPAWNER", RecipeType.ANCIENT_ALTAR, new ItemStack[] {SlimefunItems.RUNE_ENDER, new CustomItem(Material.EXP_BOTTLE, "&aFlask of Knowledge", 0), SlimefunItems.ESSENCE_OF_AFTERLIFE, new CustomItem(Material.EXP_BOTTLE, "&aFlask of Knowledge", 0), SlimefunItems.BROKEN_SPAWNER, new CustomItem(Material.EXP_BOTTLE, "&aFlask of Knowledge", 0), SlimefunItems.ESSENCE_OF_AFTERLIFE, new CustomItem(Material.EXP_BOTTLE, "&aFlask of Knowledge", 0), SlimefunItems.RUNE_ENDER}) .register(true, new BlockPlaceHandler() { - + @Override public boolean onBlockPlace(BlockPlaceEvent e, ItemStack item) { if (SlimefunManager.isItemSimiliar(item, SlimefunItems.REPAIRED_SPAWNER, false)) { @@ -2637,103 +2634,103 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunItem(Categories.CHRISTMAS, SlimefunItems.MILK, "MILK", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {new ItemStack(Material.MILK_BUCKET), new ItemStack(Material.GLASS_BOTTLE), null, null, null, null, null, null, null}, new CustomItem(SlimefunItems.MILK, 4)) .register(true); - + new SlimefunItem(Categories.CHRISTMAS, SlimefunItems.CHOCOLATE_MILK, "CHOCOLATE_MILK", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.MILK, new CustomItem(Material.INK_SACK, 3), null, null, null, null, null, null, null}, new CustomItem(SlimefunItems.CHOCOLATE_MILK, 2)) .register(true); - + new SlimefunItem(Categories.CHRISTMAS, SlimefunItems.EGG_NOG, "EGG_NOG", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.MILK, new ItemStack(Material.EGG), null, null, null, null, null, null, null}, new CustomItem(SlimefunItems.EGG_NOG, 2)) .register(true); - + new SlimefunItem(Categories.CHRISTMAS, SlimefunItems.APPLE_CIDER, "APPLE_CIDER", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.APPLE_JUICE, new ItemStack(Material.SUGAR), null, null, null, null, null, null, null}, new CustomItem(SlimefunItems.APPLE_CIDER, 2)) .register(true); - + new SlimefunItem(Categories.CHRISTMAS, SlimefunItems.CHRISTMAS_COOKIE, "CHRISTMAS_COOKIE", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {new ItemStack(Material.COOKIE), new ItemStack(Material.SUGAR), new CustomItem(Material.INK_SACK, 10), null, null, null, null, null, null}, new CustomItem(SlimefunItems.CHRISTMAS_COOKIE, 16)) .register(true); - + new SlimefunItem(Categories.CHRISTMAS, SlimefunItems.FRUIT_CAKE, "FRUIT_CAKE", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {new ItemStack(Material.EGG), new ItemStack(Material.APPLE), new ItemStack(Material.MELON), new ItemStack(Material.SUGAR), null, null, null, null, null}, new CustomItem(SlimefunItems.FRUIT_CAKE, 4)) .register(true); - + new SlimefunItem(Categories.CHRISTMAS, SlimefunItems.APPLE_PIE, "APPLE_PIE", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {new ItemStack(Material.SUGAR), new ItemStack(Material.APPLE), new ItemStack(Material.EGG), null, null, null, null, null, null}, new CustomItem(SlimefunItems.APPLE_PIE, 2)) .register(true); - + new EnhancedFurnace(1, 1, 1, SlimefunItems.ENHANCED_FURNACE, "ENHANCED_FURNACE", new ItemStack[] {null, SlimefunItems.BASIC_CIRCUIT_BOARD, null, SlimefunItems.HEATING_COIL, new ItemStack(Material.FURNACE), SlimefunItems.HEATING_COIL, null, SlimefunItems.ELECTRIC_MOTOR, null}) .register(true); - + new EnhancedFurnace(2, 1, 1, SlimefunItems.ENHANCED_FURNACE_2, "ENHANCED_FURNACE_2", new ItemStack[] {null, SlimefunItems.BASIC_CIRCUIT_BOARD, null, SlimefunItems.HEATING_COIL, SlimefunItems.ENHANCED_FURNACE, SlimefunItems.HEATING_COIL, null, SlimefunItems.ELECTRIC_MOTOR, null}) .register(true); - + new EnhancedFurnace(2, 2, 1, SlimefunItems.ENHANCED_FURNACE_3, "ENHANCED_FURNACE_3", new ItemStack[] {null, SlimefunItems.BASIC_CIRCUIT_BOARD, null, SlimefunItems.HEATING_COIL, SlimefunItems.ENHANCED_FURNACE_2, SlimefunItems.HEATING_COIL, null, SlimefunItems.ELECTRIC_MOTOR, null}) .register(true); - + new EnhancedFurnace(3, 2, 1, SlimefunItems.ENHANCED_FURNACE_4, "ENHANCED_FURNACE_4", new ItemStack[] {null, SlimefunItems.BASIC_CIRCUIT_BOARD, null, SlimefunItems.HEATING_COIL, SlimefunItems.ENHANCED_FURNACE_3, SlimefunItems.HEATING_COIL, null, SlimefunItems.ELECTRIC_MOTOR, null}) .register(true); - + new EnhancedFurnace(3, 2, 2, SlimefunItems.ENHANCED_FURNACE_5, "ENHANCED_FURNACE_5", new ItemStack[] {null, SlimefunItems.BASIC_CIRCUIT_BOARD, null, SlimefunItems.HEATING_COIL, SlimefunItems.ENHANCED_FURNACE_4, SlimefunItems.HEATING_COIL, null, SlimefunItems.ELECTRIC_MOTOR, null}) .register(true); - + new EnhancedFurnace(3, 3, 2, SlimefunItems.ENHANCED_FURNACE_6, "ENHANCED_FURNACE_6", new ItemStack[] {null, SlimefunItems.BASIC_CIRCUIT_BOARD, null, SlimefunItems.HEATING_COIL, SlimefunItems.ENHANCED_FURNACE_5, SlimefunItems.HEATING_COIL, null, SlimefunItems.ELECTRIC_MOTOR, null}) .register(true); - + new EnhancedFurnace(4, 3, 2, SlimefunItems.ENHANCED_FURNACE_7, "ENHANCED_FURNACE_7", new ItemStack[] {null, SlimefunItems.BASIC_CIRCUIT_BOARD, null, SlimefunItems.HEATING_COIL, SlimefunItems.ENHANCED_FURNACE_6, SlimefunItems.HEATING_COIL, null, SlimefunItems.ELECTRIC_MOTOR, null}) .register(true); - + new EnhancedFurnace(4, 4, 2, SlimefunItems.ENHANCED_FURNACE_8, "ENHANCED_FURNACE_8", new ItemStack[] {null, SlimefunItems.BASIC_CIRCUIT_BOARD, null, SlimefunItems.HEATING_COIL, SlimefunItems.ENHANCED_FURNACE_7, SlimefunItems.HEATING_COIL, null, SlimefunItems.ELECTRIC_MOTOR, null}) .register(true); - + new EnhancedFurnace(5, 4, 2, SlimefunItems.ENHANCED_FURNACE_9, "ENHANCED_FURNACE_9", new ItemStack[] {null, SlimefunItems.BASIC_CIRCUIT_BOARD, null, SlimefunItems.HEATING_COIL, SlimefunItems.ENHANCED_FURNACE_8, SlimefunItems.HEATING_COIL, null, SlimefunItems.ELECTRIC_MOTOR, null}) .register(true); - + new EnhancedFurnace(5, 5, 2, SlimefunItems.ENHANCED_FURNACE_10, "ENHANCED_FURNACE_10", new ItemStack[] {null, SlimefunItems.BASIC_CIRCUIT_BOARD, null, SlimefunItems.HEATING_COIL, SlimefunItems.ENHANCED_FURNACE_9, SlimefunItems.HEATING_COIL, null, SlimefunItems.ELECTRIC_MOTOR, null}) .register(true); - + new EnhancedFurnace(5, 5, 3, SlimefunItems.ENHANCED_FURNACE_11, "ENHANCED_FURNACE_11", new ItemStack[] {null, SlimefunItems.BASIC_CIRCUIT_BOARD, null, SlimefunItems.HEATING_COIL, SlimefunItems.ENHANCED_FURNACE_10, SlimefunItems.HEATING_COIL, null, SlimefunItems.ELECTRIC_MOTOR, null}) .register(true); - + new EnhancedFurnace(10, 10, 3, SlimefunItems.REINFORCED_FURNACE, "REINFORCED_FURNACE", new ItemStack[] {SlimefunItems.REINFORCED_ALLOY_INGOT, SlimefunItems.BASIC_CIRCUIT_BOARD, SlimefunItems.REINFORCED_ALLOY_INGOT, SlimefunItems.HEATING_COIL, SlimefunItems.ENHANCED_FURNACE_11, SlimefunItems.HEATING_COIL, SlimefunItems.REINFORCED_ALLOY_INGOT, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.REINFORCED_ALLOY_INGOT}) .register(true); - + new EnhancedFurnace(20, 10, 3, SlimefunItems.CARBONADO_EDGED_FURNACE, "CARBONADO_EDGED_FURNACE", new ItemStack[] {SlimefunItems.CARBONADO, SlimefunItems.BASIC_CIRCUIT_BOARD, SlimefunItems.CARBONADO, SlimefunItems.HEATING_COIL, SlimefunItems.REINFORCED_FURNACE, SlimefunItems.HEATING_COIL, SlimefunItems.CARBONADO, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.CARBONADO}) .register(true); - - new SlimefunItem(Categories.TECH_MISC, SlimefunItems.ELECTRO_MAGNET, "ELECTRO_MAGNET", RecipeType.ENHANCED_CRAFTING_TABLE, + + new SlimefunItem(Categories.TECH_MISC, SlimefunItems.ELECTRO_MAGNET, "ELECTRO_MAGNET", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.NICKEL_INGOT, SlimefunItems.MAGNET, SlimefunItems.COBALT_INGOT, null, SlimefunItems.BATTERY, null, null, null, null}) .register(true); - - new SlimefunItem(Categories.TECH_MISC, SlimefunItems.ELECTRIC_MOTOR, "ELECTRIC_MOTOR", RecipeType.ENHANCED_CRAFTING_TABLE, + + new SlimefunItem(Categories.TECH_MISC, SlimefunItems.ELECTRIC_MOTOR, "ELECTRIC_MOTOR", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.COPPER_INGOT, SlimefunItems.COPPER_INGOT, SlimefunItems.COPPER_INGOT, null, SlimefunItems.ELECTRO_MAGNET, null, SlimefunItems.COPPER_INGOT, SlimefunItems.COPPER_INGOT, SlimefunItems.COPPER_INGOT}) .register(true); - - new SlimefunItem(Categories.TECH_MISC, SlimefunItems.HEATING_COIL, "HEATING_COIL", RecipeType.ENHANCED_CRAFTING_TABLE, + + new SlimefunItem(Categories.TECH_MISC, SlimefunItems.HEATING_COIL, "HEATING_COIL", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.COPPER_INGOT, SlimefunItems.COPPER_INGOT, SlimefunItems.COPPER_INGOT, SlimefunItems.COPPER_INGOT, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.COPPER_INGOT, SlimefunItems.COPPER_INGOT, SlimefunItems.COPPER_INGOT, SlimefunItems.COPPER_INGOT}) .register(true); - - new SlimefunItem(Categories.MACHINES_1, SlimefunItems.BLOCK_PLACER, "BLOCK_PLACER", RecipeType.ENHANCED_CRAFTING_TABLE, + + new SlimefunItem(Categories.MACHINES_1, SlimefunItems.BLOCK_PLACER, "BLOCK_PLACER", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.GOLD_4K, new ItemStack(Material.PISTON_BASE), SlimefunItems.GOLD_4K, new ItemStack(Material.IRON_INGOT), SlimefunItems.ELECTRIC_MOTOR, new ItemStack(Material.IRON_INGOT), SlimefunItems.GOLD_4K, new ItemStack(Material.PISTON_BASE), SlimefunItems.GOLD_4K}) .register(true, new AutonomousMachineHandler() { - + @Override public boolean onBlockDispense(final BlockDispenseEvent e, Block dispenser, final Dispenser d, Block block, Block chest, SlimefunItem machine) { if (machine.getName().equalsIgnoreCase("BLOCK_PLACER")) { @@ -2777,19 +2774,19 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunItem(Categories.CHRISTMAS, SlimefunItems.HOT_CHOCOLATE, "HOT_CHOCOLATE", RecipeType.SMELTERY, new ItemStack[] {SlimefunItems.CHOCOLATE_MILK, null, null, null, null, null, null, null, null}, SlimefunItems.HOT_CHOCOLATE) .register(true); - + new SlimefunItem(Categories.CHRISTMAS, SlimefunItems.CHRISTMAS_CAKE, "CHRISTMAS_CAKE", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {new ItemStack(Material.EGG), new ItemStack(Material.SUGAR), SlimefunItems.WHEAT_FLOUR, new ItemStack(Material.MILK_BUCKET), null, null, null, null, null}, new CustomItem(SlimefunItems.FRUIT_CAKE, 4)) .register(true); - + new SlimefunItem(Categories.MAGIC, SlimefunItems.SCROLL_OF_DIMENSIONAL_TELEPOSITION, "SCROLL_OF_DIMENSIONAL_TELEPOSITION", RecipeType.MAGIC_WORKBENCH, new ItemStack[] {null, SlimefunItems.ENDER_LUMP_3, SlimefunItems.MAGIC_EYE_OF_ENDER, SlimefunItems.ENDER_LUMP_3, SlimefunItems.MAGICAL_BOOK_COVER, SlimefunItems.ENDER_LUMP_3, SlimefunItems.MAGIC_EYE_OF_ENDER, SlimefunItems.ENDER_LUMP_3, null}) .register(true, new ItemInteractionHandler() { - + @Override public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) { if (SlimefunManager.isItemSimiliar(item, SlimefunItems.SCROLL_OF_DIMENSIONAL_TELEPOSITION, true)) { @@ -2805,27 +2802,27 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunItem(Categories.CHRISTMAS, SlimefunItems.CARAMEL, "CARAMEL", RecipeType.SMELTERY, new ItemStack[] {new ItemStack(Material.SUGAR), new ItemStack(Material.SUGAR), null, null, null, null, null, null, null}, new CustomItem(SlimefunItems.CARAMEL, 4)) .register(true); - + new SlimefunItem(Categories.CHRISTMAS, SlimefunItems.CARAMEL_APPLE, "CARAMEL_APPLE", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, new ItemStack(Material.SUGAR), null, null, new ItemStack(Material.APPLE), null, null, new ItemStack(Material.STICK), null}, new CustomItem(SlimefunItems.CARAMEL_APPLE, 2)) .register(true); - + new SlimefunItem(Categories.CHRISTMAS, SlimefunItems.CHOCOLATE_APPLE, "CHOCOLATE_APPLE", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, new CustomItem(Material.INK_SACK, 3), null, null, new ItemStack(Material.APPLE), null, null, new ItemStack(Material.STICK), null}, new CustomItem(SlimefunItems.CARAMEL_APPLE, 2)) .register(true); - + new SlimefunItem(Categories.CHRISTMAS, SlimefunItems.PRESENT, "PRESENT", RecipeType.MAGIC_WORKBENCH, new ItemStack[] {null, new ItemStack(Material.NAME_TAG), null, new CustomItem(Material.WOOL, 14), new CustomItem(Material.WOOL, 13), new CustomItem(Material.WOOL, 14), new CustomItem(Material.WOOL, 14), new CustomItem(Material.WOOL, 13), new CustomItem(Material.WOOL, 14)}) .register(true); - + new SlimefunBow(SlimefunItems.EXPLOSIVE_BOW, "EXPLOSIVE_BOW", new ItemStack[] {null, new ItemStack(Material.STICK), new ItemStack(Material.SULPHUR), SlimefunItems.STAFF_FIRE, null, SlimefunItems.SULFATE, null, new ItemStack(Material.STICK), new ItemStack(Material.SULPHUR)}) .register(true, new BowShootHandler() { - + @Override public boolean onHit(EntityDamageByEntityEvent e, LivingEntity n) { if (SlimefunManager.isItemSimiliar(Variables.arrows.get(e.getDamager().getUniqueId()), SlimefunItems.EXPLOSIVE_BOW, true)) { @@ -2839,11 +2836,11 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunBow(SlimefunItems.ICY_BOW, "ICY_BOW", new ItemStack[] {null, new ItemStack(Material.STICK), new ItemStack(Material.ICE), SlimefunItems.STAFF_WATER, null, new ItemStack(Material.PACKED_ICE), null, new ItemStack(Material.STICK), new ItemStack(Material.ICE)}) .register(true, new BowShootHandler() { - + @Override public boolean onHit(EntityDamageByEntityEvent e, LivingEntity n) { if (SlimefunManager.isItemSimiliar(Variables.arrows.get(e.getDamager().getUniqueId()), SlimefunItems.ICY_BOW, true)) { @@ -2856,11 +2853,11 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunItem(Categories.MAGIC, SlimefunItems.TOME_OF_KNOWLEDGE_SHARING, "TOME_OF_KNOWLEDGE_SHARING", RecipeType.MAGIC_WORKBENCH, new ItemStack[] {null, new ItemStack(Material.FEATHER), null, new ItemStack(Material.INK_SACK), SlimefunItems.MAGICAL_BOOK_COVER, new ItemStack(Material.GLASS_BOTTLE), null, new ItemStack(Material.BOOK_AND_QUILL), null}) .register(true, new ItemInteractionHandler() { - + @Override public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) { if (SlimefunManager.isItemSimiliar(item, SlimefunItems.TOME_OF_KNOWLEDGE_SHARING, true)) { @@ -2885,11 +2882,11 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunItem(Categories.MAGIC, SlimefunItems.FLASK_OF_KNOWLEDGE, "FLASK_OF_KNOWLEDGE", RecipeType.MAGIC_WORKBENCH, new ItemStack[] {null, null, null, SlimefunItems.MAGIC_LUMP_2, new ItemStack(Material.THIN_GLASS), SlimefunItems.MAGIC_LUMP_2, null, SlimefunItems.MAGIC_LUMP_2, null}, new CustomItem(SlimefunItems.FLASK_OF_KNOWLEDGE, 8)) .register(true, new ItemInteractionHandler() { - + @Override public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) { if (SlimefunManager.isItemSimiliar(item, SlimefunItems.FLASK_OF_KNOWLEDGE, true) && p.getLevel() >= 1) { @@ -2902,46 +2899,46 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunItem(Categories.MISC, SlimefunItems.REINFORCED_PLATE, "REINFORCED_PLATE", RecipeType.COMPRESSOR, new ItemStack[] {new CustomItem(SlimefunItems.REINFORCED_ALLOY_INGOT, 8), null, null, null, null, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.TECH_MISC, SlimefunItems.HARDENED_GLASS, "HARDENED_GLASS", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {new ItemStack(Material.GLASS), new ItemStack(Material.GLASS), new ItemStack(Material.GLASS), new ItemStack(Material.GLASS), SlimefunItems.REINFORCED_PLATE, new ItemStack(Material.GLASS), new ItemStack(Material.GLASS), new ItemStack(Material.GLASS), new ItemStack(Material.GLASS)}, new CustomItem(SlimefunItems.HARDENED_GLASS, 16)) .register(true); - + new SlimefunItem(Categories.TECH_MISC, SlimefunItems.SOLAR_ARRAY, "SOLAR_ARRAY", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.HARDENED_GLASS, SlimefunItems.HARDENED_GLASS, SlimefunItems.HARDENED_GLASS, SlimefunItems.SOLAR_PANEL, SlimefunItems.SOLAR_PANEL, SlimefunItems.SOLAR_PANEL, SlimefunItems.HARDENED_GLASS, SlimefunItems.HARDENED_GLASS, SlimefunItems.HARDENED_GLASS}) .register(true); - + new SlimefunItem(Categories.EASTER, SlimefunItems.CARROT_PIE, "CARROT_PIE", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {new ItemStack(Material.SUGAR), new ItemStack(Material.CARROT_ITEM), new ItemStack(Material.EGG), null, null, null, null, null, null}, new CustomItem(SlimefunItems.CARROT_PIE, 2)) .register(true); - + new SlimefunItem(Categories.EASTER, SlimefunItems.APPLE_PIE, "APPLE_PIE", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {new ItemStack(Material.SUGAR), new ItemStack(Material.APPLE), new ItemStack(Material.EGG), null, null, null, null, null, null}, new CustomItem(SlimefunItems.APPLE_PIE, 2)) .register(true); - + new SlimefunItem(Categories.EASTER, SlimefunItems.EASTER_EGG, "EASTER_EGG", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, null, null, new MaterialData(Material.INK_SACK, (byte) 10).toItemStack(1), new ItemStack(Material.EGG), new MaterialData(Material.INK_SACK, (byte) 13).toItemStack(1), null, null, null}, new CustomItem(SlimefunItems.EASTER_EGG, 2)) .register(true, new ItemInteractionHandler() { - + @Override public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) { if (SlimefunManager.isItemSimiliar(item, SlimefunItems.EASTER_EGG, true)) { e.setCancelled(true); PlayerInventory.consumeItemInHand(e.getPlayer()); FireworkShow.launchRandom(e.getPlayer(), 2); - + List gifts = new ArrayList(); for (int i = 0; i < 2; i++) { gifts.add(new CustomItem(SlimefunItems.CARROT_PIE, 4)); gifts.add(new CustomItem(SlimefunItems.APPLE_PIE, 4)); gifts.add(new CustomItem(SlimefunItems.CARROT_JUICE, 1)); } - + gifts.add(new SkullItem("mrCookieSlime")); gifts.add(new SkullItem("timtower")); gifts.add(new SkullItem("bwfcwalshy")); @@ -2950,37 +2947,37 @@ public class SlimefunSetup { gifts.add(new SkullItem("eyamaz")); gifts.add(new SkullItem("Kaelten")); gifts.add(new SkullItem("Myrathi")); - + p.getWorld().dropItemNaturally(p.getLocation(), gifts.get(SlimefunStartup.randomize(gifts.size()))); return true; } else return false; } }); - + new SlimefunItem(Categories.TECH_MISC, SlimefunItems.COOLING_UNIT, "COOLING_UNIT", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {new ItemStack(Material.ICE), new ItemStack(Material.ICE), new ItemStack(Material.ICE), SlimefunItems.ALUMINUM_INGOT, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.ALUMINUM_INGOT, new ItemStack(Material.ICE), new ItemStack(Material.ICE), new ItemStack(Material.ICE)}) .register(true); - + new SlimefunItem(Categories.PORTABLE, SlimefunItems.COOLER, "COOLER", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.CLOTH, SlimefunItems.CLOTH, SlimefunItems.CLOTH, SlimefunItems.ALUMINUM_INGOT, SlimefunItems.COOLING_UNIT, SlimefunItems.ALUMINUM_INGOT, SlimefunItems.ALUMINUM_INGOT, SlimefunItems.ALUMINUM_INGOT, SlimefunItems.ALUMINUM_INGOT}) .register(true); - + new SlimefunItem(Categories.TECH_MISC, SlimefunItems.WITHER_PROOF_OBSIDIAN, "WITHER_PROOF_OBSIDIAN", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.LEAD_INGOT, new ItemStack(Material.OBSIDIAN), SlimefunItems.LEAD_INGOT, new ItemStack(Material.OBSIDIAN), SlimefunItems.HARDENED_GLASS, new ItemStack(Material.OBSIDIAN), SlimefunItems.LEAD_INGOT, new ItemStack(Material.OBSIDIAN), SlimefunItems.LEAD_INGOT}, new CustomItem(SlimefunItems.WITHER_PROOF_OBSIDIAN, 4)) .register(true); - + new SlimefunItem(Categories.LUMPS_AND_MAGIC, SlimefunItems.ANCIENT_PEDESTAL, "ANCIENT_PEDESTAL", RecipeType.MAGIC_WORKBENCH, new ItemStack[] {new ItemStack(Material.OBSIDIAN), SlimefunItems.GOLD_8K, new ItemStack(Material.OBSIDIAN), null, new ItemStack(Material.STONE), null, new ItemStack(Material.OBSIDIAN), SlimefunItems.GOLD_8K, new ItemStack(Material.OBSIDIAN)}, new CustomItem(SlimefunItems.ANCIENT_PEDESTAL, 4)) .register(true); - + SlimefunItem.registerBlockHandler("ANCIENT_PEDESTAL", new SlimefunBlockHandler() { - + @Override public void onPlace(Player p, Block b, SlimefunItem item) { } - + @Override public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) { Item stack = AncientAltarListener.findItem(b); @@ -2988,15 +2985,15 @@ public class SlimefunSetup { return true; } }); - + new SlimefunItem(Categories.MAGIC, SlimefunItems.ANCIENT_ALTAR, "ANCIENT_ALTAR", RecipeType.MAGIC_WORKBENCH, new ItemStack[] {null, new ItemStack(Material.ENCHANTMENT_TABLE), null, SlimefunItems.MAGIC_LUMP_3, SlimefunItems.GOLD_8K, SlimefunItems.MAGIC_LUMP_3, new ItemStack(Material.OBSIDIAN), SlimefunItems.GOLD_8K, new ItemStack(Material.OBSIDIAN)}) .register(true); - + new SlimefunItem(Categories.BIRTHDAY, new CustomItem(new MaterialData(Material.CAKE), "§bBirthday Cake"), "BIRTHDAY_CAKE", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, new ItemStack(Material.TORCH), null, new ItemStack(Material.SUGAR), new ItemStack(Material.CAKE), new ItemStack(Material.SUGAR), null, null, null}) .register(true); - + // Slimefun 4 new SlimefunItem(Categories.ELECTRICITY, SlimefunItems.ENERGY_REGULATOR, "ENERGY_REGULATOR", RecipeType.ENHANCED_CRAFTING_TABLE, @@ -3017,44 +3014,44 @@ public class SlimefunSetup { EnergyNet.tick(b); } }); - + SlimefunItem.registerBlockHandler("ENERGY_REGULATOR", new SlimefunBlockHandler() { - + @Override public void onPlace(Player p, Block b, SlimefunItem item) { } - + @Override public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) { EnergyHologram.remove(b); return true; } }); - + new SlimefunItem(Categories.MISC, SlimefunItems.DUCT_TAPE, "DUCT_TAPE", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.ALUMINUM_DUST, SlimefunItems.ALUMINUM_DUST, SlimefunItems.ALUMINUM_DUST, new ItemStack(Material.SLIME_BALL), new ItemStack(Material.WOOL), new ItemStack(Material.SLIME_BALL), new ItemStack(Material.PAPER), new ItemStack(Material.PAPER), new ItemStack(Material.PAPER)}, new CustomItem(SlimefunItems.DUCT_TAPE, 2)) .register(true); - + new SlimefunItem(Categories.ELECTRICITY, SlimefunItems.SMALL_CAPACITOR, "SMALL_CAPACITOR", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.DURALUMIN_INGOT, SlimefunItems.REDSTONE_ALLOY, SlimefunItems.DURALUMIN_INGOT, new ItemStack(Material.REDSTONE), SlimefunItems.SULFATE, new ItemStack(Material.REDSTONE), SlimefunItems.DURALUMIN_INGOT, SlimefunItems.REDSTONE_ALLOY, SlimefunItems.DURALUMIN_INGOT}) .registerDistibutingCapacitor(true, 128); - + new SlimefunItem(Categories.ELECTRICITY, SlimefunItems.MEDIUM_CAPACITOR, "MEDIUM_CAPACITOR", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.BILLON_INGOT, SlimefunItems.REDSTONE_ALLOY, SlimefunItems.BILLON_INGOT, new ItemStack(Material.REDSTONE), SlimefunItems.SMALL_CAPACITOR, new ItemStack(Material.REDSTONE), SlimefunItems.BILLON_INGOT, SlimefunItems.REDSTONE_ALLOY, SlimefunItems.BILLON_INGOT}) .registerDistibutingCapacitor(true, 512); - + new SlimefunItem(Categories.ELECTRICITY, SlimefunItems.BIG_CAPACITOR, "BIG_CAPACITOR", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.STEEL_INGOT, SlimefunItems.REDSTONE_ALLOY, SlimefunItems.STEEL_INGOT, new ItemStack(Material.REDSTONE), SlimefunItems.MEDIUM_CAPACITOR, new ItemStack(Material.REDSTONE), SlimefunItems.STEEL_INGOT, SlimefunItems.REDSTONE_ALLOY, SlimefunItems.STEEL_INGOT}) .registerDistibutingCapacitor(true, 1024); - + new SlimefunItem(Categories.ELECTRICITY, SlimefunItems.LARGE_CAPACITOR, "LARGE_CAPACITOR", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.REINFORCED_ALLOY_INGOT, SlimefunItems.REDSTONE_ALLOY, SlimefunItems.REINFORCED_ALLOY_INGOT, new ItemStack(Material.REDSTONE), SlimefunItems.BIG_CAPACITOR, new ItemStack(Material.REDSTONE), SlimefunItems.REINFORCED_ALLOY_INGOT, SlimefunItems.REDSTONE_ALLOY, SlimefunItems.REINFORCED_ALLOY_INGOT}) .registerDistibutingCapacitor(true, 8192); - + new SlimefunItem(Categories.ELECTRICITY, SlimefunItems.CARBONADO_EDGED_CAPACITOR, "CARBONADO_EDGED_CAPACITOR", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.CARBONADO, SlimefunItems.REDSTONE_ALLOY, SlimefunItems.CARBONADO, new ItemStack(Material.REDSTONE), SlimefunItems.LARGE_CAPACITOR, new ItemStack(Material.REDSTONE), SlimefunItems.CARBONADO, SlimefunItems.REDSTONE_ALLOY, SlimefunItems.CARBONADO}) .registerDistibutingCapacitor(true, 65536); - + new SlimefunItem(Categories.ELECTRICITY, SlimefunItems.SOLAR_GENERATOR, "SOLAR_GENERATOR", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.SOLAR_PANEL, SlimefunItems.SOLAR_PANEL, SlimefunItems.SOLAR_PANEL, SlimefunItems.ALUMINUM_INGOT, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.ALUMINUM_INGOT, null, SlimefunItems.ALUMINUM_INGOT, null}) .register(true, new EnergyTicker() { @@ -3075,7 +3072,7 @@ public class SlimefunSetup { return false; } }); - + new SlimefunItem(Categories.ELECTRICITY, SlimefunItems.SOLAR_GENERATOR_2, "SOLAR_GENERATOR_2", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.SOLAR_GENERATOR, SlimefunItems.ALUMINUM_INGOT, SlimefunItems.SOLAR_GENERATOR, SlimefunItems.ALUMINUM_INGOT, new ItemStack(Material.REDSTONE), SlimefunItems.ALUMINUM_INGOT, SlimefunItems.SOLAR_GENERATOR, SlimefunItems.ALUMINUM_INGOT, SlimefunItems.SOLAR_GENERATOR}) .register(true, new EnergyTicker() { @@ -3096,7 +3093,7 @@ public class SlimefunSetup { return false; } }); - + new SlimefunItem(Categories.ELECTRICITY, SlimefunItems.SOLAR_GENERATOR_3, "SOLAR_GENERATOR_3", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.SOLAR_GENERATOR_2, SlimefunItems.ALUMINUM_INGOT, SlimefunItems.SOLAR_GENERATOR_2, SlimefunItems.ALUMINUM_INGOT, SlimefunItems.CARBONADO, SlimefunItems.ALUMINUM_INGOT, SlimefunItems.SOLAR_GENERATOR_2, SlimefunItems.ALUMINUM_INGOT, SlimefunItems.SOLAR_GENERATOR_2}) .register(true, new EnergyTicker() { @@ -3117,7 +3114,7 @@ public class SlimefunSetup { return false; } }); - + new SlimefunItem(Categories.ELECTRICITY, SlimefunItems.SOLAR_GENERATOR_4, "SOLAR_GENERATOR_4", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.SOLAR_GENERATOR_3, SlimefunItems.BLISTERING_INGOT_3, SlimefunItems.SOLAR_GENERATOR_3, SlimefunItems.BLISTERING_INGOT_3, SlimefunItems.ELECTRO_MAGNET, SlimefunItems.BLISTERING_INGOT_3, SlimefunItems.SOLAR_GENERATOR_3, SlimefunItems.BLISTERING_INGOT_3, SlimefunItems.SOLAR_GENERATOR_3}) .register(true, new EnergyTicker() { @@ -3138,19 +3135,19 @@ public class SlimefunSetup { return false; } }); - + new ChargingBench(Categories.ELECTRICITY, SlimefunItems.CHARGING_BENCH, "CHARGING_BENCH", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, SlimefunItems.ELECTRO_MAGNET, null, SlimefunItems.BATTERY, new ItemStack(Material.WORKBENCH), SlimefunItems.BATTERY, null, SlimefunItems.SMALL_CAPACITOR, null}) .registerChargeableBlock(true, 128); - + new ElectricFurnace(Categories.ELECTRICITY, SlimefunItems.ELECTRIC_FURNACE, "ELECTRIC_FURNACE", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, new ItemStack(Material.FURNACE), null, SlimefunItems.GILDED_IRON, SlimefunItems.HEATING_COIL, SlimefunItems.GILDED_IRON, SlimefunItems.GILDED_IRON, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.GILDED_IRON}) { - + @Override public ItemStack getProgressBar() { return new ItemStack(Material.FLINT_AND_STEEL); } - + @Override public String getInventoryTitle() { return "§bElectric Furnace"; @@ -3165,17 +3162,17 @@ public class SlimefunSetup { public int getSpeed() { return 1; } - + }.registerChargeableBlock(true, 64); - + new ElectricFurnace(Categories.ELECTRICITY, SlimefunItems.ELECTRIC_FURNACE_2, "ELECTRIC_FURNACE_2", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, SlimefunItems.ELECTRIC_MOTOR, null, SlimefunItems.GILDED_IRON, SlimefunItems.ELECTRIC_FURNACE, SlimefunItems.GILDED_IRON, SlimefunItems.GILDED_IRON, SlimefunItems.HEATING_COIL, SlimefunItems.GILDED_IRON}) { - + @Override public ItemStack getProgressBar() { return new ItemStack(Material.FLINT_AND_STEEL); } - + @Override public String getInventoryTitle() { return "§bElectric Furnace"; @@ -3185,22 +3182,22 @@ public class SlimefunSetup { public int getEnergyConsumption() { return 3; } - + @Override public int getSpeed() { return 2; } - + }.registerChargeableBlock(true, 128); - + new ElectricFurnace(Categories.ELECTRICITY, SlimefunItems.ELECTRIC_FURNACE_3, "ELECTRIC_FURNACE_3", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, SlimefunItems.ELECTRIC_MOTOR, null, SlimefunItems.STEEL_INGOT, SlimefunItems.ELECTRIC_FURNACE_2, SlimefunItems.STEEL_INGOT, SlimefunItems.GILDED_IRON, SlimefunItems.HEATING_COIL, SlimefunItems.GILDED_IRON}) { - + @Override public ItemStack getProgressBar() { return new ItemStack(Material.FLINT_AND_STEEL); } - + @Override public String getInventoryTitle() { return "§bElectric Furnace"; @@ -3215,101 +3212,101 @@ public class SlimefunSetup { public int getSpeed() { return 4; } - + }.registerChargeableBlock(true, 128); - + new ElectricGoldPan(Categories.ELECTRICITY, SlimefunItems.ELECTRIC_GOLD_PAN, "ELECTRIC_GOLD_PAN", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, SlimefunItems.GOLD_PAN, null, new ItemStack(Material.FLINT), SlimefunItems.ELECTRIC_MOTOR, new ItemStack(Material.FLINT), SlimefunItems.ALUMINUM_INGOT, SlimefunItems.ALUMINUM_INGOT, SlimefunItems.ALUMINUM_INGOT}) { - + @Override public int getEnergyConsumption() { return 1; } - + @Override public int getSpeed() { return 1; } }.registerChargeableBlock(true, 128); - + new ElectricGoldPan(Categories.ELECTRICITY, SlimefunItems.ELECTRIC_GOLD_PAN_2, "ELECTRIC_GOLD_PAN_2", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, SlimefunItems.GOLD_PAN, null, new ItemStack(Material.IRON_INGOT), SlimefunItems.ELECTRIC_GOLD_PAN, new ItemStack(Material.IRON_INGOT), SlimefunItems.DURALUMIN_INGOT, SlimefunItems.DURALUMIN_INGOT, SlimefunItems.DURALUMIN_INGOT}) { - + @Override public int getEnergyConsumption() { return 2; } - + @Override public int getSpeed() { return 3; } }.registerChargeableBlock(true, 128); - + new ElectricGoldPan(Categories.ELECTRICITY, SlimefunItems.ELECTRIC_GOLD_PAN_3, "ELECTRIC_GOLD_PAN_3", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, SlimefunItems.GOLD_PAN, null, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.ELECTRIC_GOLD_PAN_2, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.COBALT_INGOT, SlimefunItems.BLISTERING_INGOT_3, SlimefunItems.COBALT_INGOT}) { - + @Override public int getEnergyConsumption() { return 7; } - + @Override public int getSpeed() { return 10; } }.registerChargeableBlock(true, 512); - + new ElectricDustWasher(Categories.ELECTRICITY, SlimefunItems.ELECTRIC_DUST_WASHER, "ELECTRIC_DUST_WASHER", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, new ItemStack(Material.WATER_BUCKET), null, SlimefunItems.ELECTRO_MAGNET, SlimefunItems.ELECTRIC_GOLD_PAN, SlimefunItems.ELECTRO_MAGNET, SlimefunItems.COPPER_INGOT, SlimefunItems.COPPER_INGOT, SlimefunItems.COPPER_INGOT}) { - + @Override public int getEnergyConsumption() { return 3; } - + @Override public int getSpeed() { return 1; } }.registerChargeableBlock(true, 128); - + new ElectricDustWasher(Categories.ELECTRICITY, SlimefunItems.ELECTRIC_DUST_WASHER_2, "ELECTRIC_DUST_WASHER_2", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, new ItemStack(Material.WATER_BUCKET), null, SlimefunItems.ELECTRO_MAGNET, SlimefunItems.ELECTRIC_DUST_WASHER, SlimefunItems.ELECTRO_MAGNET, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.DAMASCUS_STEEL_INGOT}) { - + @Override public int getEnergyConsumption() { return 5; } - + @Override public int getSpeed() { return 2; } }.registerChargeableBlock(true, 128); - + new ElectricDustWasher(Categories.ELECTRICITY, SlimefunItems.ELECTRIC_DUST_WASHER_3, "ELECTRIC_DUST_WASHER_3", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, new ItemStack(Material.WATER_BUCKET), null, SlimefunItems.ELECTRO_MAGNET, SlimefunItems.ELECTRIC_DUST_WASHER_2, SlimefunItems.ELECTRO_MAGNET, SlimefunItems.CORINTHIAN_BRONZE_INGOT, SlimefunItems.BLISTERING_INGOT_3, SlimefunItems.CORINTHIAN_BRONZE_INGOT}) { - + @Override public int getEnergyConsumption() { return 15; } - + @Override public int getSpeed() { return 10; } }.registerChargeableBlock(true, 512); - + new ElectricIngotFactory(Categories.ELECTRICITY, SlimefunItems.ELECTRIC_INGOT_FACTORY, "ELECTRIC_INGOT_FACTORY", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, new ItemStack(Material.FLINT_AND_STEEL), null, SlimefunItems.HEATING_COIL, SlimefunItems.ELECTRIC_DUST_WASHER, SlimefunItems.HEATING_COIL, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.DAMASCUS_STEEL_INGOT}) { - + @Override public ItemStack getProgressBar() { return new ItemStack(Material.FLINT_AND_STEEL); } - + @Override public String getInventoryTitle() { return "§cElectric Ingot Factory"; @@ -3319,22 +3316,22 @@ public class SlimefunSetup { public int getEnergyConsumption() { return 4; } - + @Override public int getSpeed() { return 1; } - + }.registerChargeableBlock(true, 256); - + new ElectricIngotFactory(Categories.ELECTRICITY, SlimefunItems.ELECTRIC_INGOT_FACTORY_2, "ELECTRIC_INGOT_FACTORY_2", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.GILDED_IRON, new ItemStack(Material.FLINT_AND_STEEL), SlimefunItems.GILDED_IRON, SlimefunItems.HEATING_COIL, SlimefunItems.ELECTRIC_INGOT_FACTORY, SlimefunItems.HEATING_COIL, SlimefunItems.BRASS_INGOT, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.BRASS_INGOT}) { - + @Override public ItemStack getProgressBar() { return new ItemStack(Material.FLINT_AND_STEEL); } - + @Override public String getInventoryTitle() { return "§cElectric Ingot Factory"; @@ -3344,22 +3341,22 @@ public class SlimefunSetup { public int getEnergyConsumption() { return 7; } - + @Override public int getSpeed() { return 2; } - + }.registerChargeableBlock(true, 256); - + new ElectricIngotFactory(Categories.ELECTRICITY, SlimefunItems.ELECTRIC_INGOT_FACTORY_3, "ELECTRIC_INGOT_FACTORY_3", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.GILDED_IRON, new ItemStack(Material.FLINT_AND_STEEL), SlimefunItems.GILDED_IRON, SlimefunItems.HEATING_COIL, SlimefunItems.ELECTRIC_INGOT_FACTORY_2, SlimefunItems.HEATING_COIL, SlimefunItems.BRASS_INGOT, SlimefunItems.BLISTERING_INGOT_3, SlimefunItems.BRASS_INGOT}) { - + @Override public ItemStack getProgressBar() { return new ItemStack(Material.FLINT_AND_STEEL); } - + @Override public String getInventoryTitle() { return "§cElectric Ingot Factory"; @@ -3369,26 +3366,26 @@ public class SlimefunSetup { public int getEnergyConsumption() { return 20; } - + @Override public int getSpeed() { return 8; } - + }.registerChargeableBlock(true, 512); - + new AContainer(Categories.ELECTRICITY, SlimefunItems.ELECTRIC_ORE_GRINDER, "ELECTRIC_ORE_GRINDER", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, new ItemStack(Material.DIAMOND_PICKAXE), null, SlimefunItems.GILDED_IRON, SlimefunItems.HEATING_COIL, SlimefunItems.GILDED_IRON, SlimefunItems.GILDED_IRON, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.GILDED_IRON}) { - + @Override public void registerDefaultRecipes() { } - + @Override public ItemStack getProgressBar() { return new ItemStack(Material.STONE_PICKAXE); } - + @Override public String getInventoryTitle() { return "§bElectric Ore Grinder"; @@ -3398,31 +3395,31 @@ public class SlimefunSetup { public int getEnergyConsumption() { return 6; } - + @Override public int getSpeed() { return 1; } - + @Override public String getMachineIdentifier() { return "ELECTRIC_ORE_GRINDER"; } - + }.registerChargeableBlock(true, 128); - + new AContainer(Categories.ELECTRICITY, SlimefunItems.ELECTRIC_ORE_GRINDER_2, "ELECTRIC_ORE_GRINDER_2", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, new ItemStack(Material.DIAMOND_PICKAXE), null, SlimefunItems.HEATING_COIL, SlimefunItems.ELECTRIC_ORE_GRINDER, SlimefunItems.HEATING_COIL, SlimefunItems.GILDED_IRON, SlimefunItems.BLISTERING_INGOT_3, SlimefunItems.GILDED_IRON}) { - + @Override public void registerDefaultRecipes() { } - + @Override public ItemStack getProgressBar() { return new ItemStack(Material.DIAMOND_PICKAXE); } - + @Override public String getInventoryTitle() { return "§bElectric Ore Grinder"; @@ -3432,22 +3429,22 @@ public class SlimefunSetup { public int getEnergyConsumption() { return 15; } - + @Override public int getSpeed() { return 1; } - + @Override public String getMachineIdentifier() { return "ELECTRIC_ORE_GRINDER"; } - + }.registerChargeableBlock(true, 512); - + new HeatedPressureChamber(Categories.ELECTRICITY, SlimefunItems.HEATED_PRESSURE_CHAMBER, "HEATED_PRESSURE_CHAMBER", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.LEAD_INGOT, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.LEAD_INGOT, SlimefunItems.LEAD_INGOT, new ItemStack(Material.GLASS), SlimefunItems.LEAD_INGOT, SlimefunItems.LEAD_INGOT, SlimefunItems.HEATING_COIL, SlimefunItems.LEAD_INGOT}) { - + @Override public ItemStack getProgressBar() { return new ItemStack(Material.FLINT_AND_STEEL); @@ -3457,17 +3454,17 @@ public class SlimefunSetup { public int getEnergyConsumption() { return 5; } - + @Override public int getSpeed() { return 1; } - + }.registerChargeableBlock(true, 128); - + new HeatedPressureChamber(Categories.ELECTRICITY, SlimefunItems.HEATED_PRESSURE_CHAMBER_2, "HEATED_PRESSURE_CHAMBER_2", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.LEAD_INGOT, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.LEAD_INGOT, SlimefunItems.LEAD_INGOT, SlimefunItems.HEATED_PRESSURE_CHAMBER, SlimefunItems.LEAD_INGOT, SlimefunItems.REINFORCED_ALLOY_INGOT, SlimefunItems.HEATING_COIL, SlimefunItems.REINFORCED_ALLOY_INGOT}) { - + @Override public ItemStack getProgressBar() { return new ItemStack(Material.FLINT_AND_STEEL); @@ -3477,12 +3474,12 @@ public class SlimefunSetup { public int getEnergyConsumption() { return 22; } - + @Override public int getSpeed() { return 5; } - + }.registerChargeableBlock(true, 256); new AContainer(Categories.ELECTRICITY, SlimefunItems.ELECTRIC_INGOT_PULVERIZER, "ELECTRIC_INGOT_PULVERIZER", RecipeType.ENHANCED_CRAFTING_TABLE, @@ -3530,14 +3527,14 @@ public class SlimefunSetup { new AGenerator(Categories.ELECTRICITY, SlimefunItems.COAL_GENERATOR, "COAL_GENERATOR", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.HEATING_COIL, new ItemStack(Material.FURNACE), SlimefunItems.HEATING_COIL, SlimefunItems.NICKEL_INGOT, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.NICKEL_INGOT, null, SlimefunItems.NICKEL_INGOT, null}) { - + @Override public void registerDefaultRecipes() { registerFuel(new MachineFuel(8, new MaterialData(Material.COAL, (byte) 0).toItemStack(1))); registerFuel(new MachineFuel(8, new MaterialData(Material.COAL, (byte) 1).toItemStack(1))); registerFuel(new MachineFuel(80, new ItemStack(Material.COAL_BLOCK))); registerFuel(new MachineFuel(12, new ItemStack(Material.BLAZE_ROD))); - + // Logs registerFuel(new MachineFuel(1, new MaterialData(Material.LOG, (byte) 0).toItemStack(1))); registerFuel(new MachineFuel(1, new MaterialData(Material.LOG, (byte) 1).toItemStack(1))); @@ -3545,7 +3542,7 @@ public class SlimefunSetup { registerFuel(new MachineFuel(1, new MaterialData(Material.LOG, (byte) 3).toItemStack(1))); registerFuel(new MachineFuel(1, new MaterialData(Material.LOG_2, (byte) 0).toItemStack(1))); registerFuel(new MachineFuel(1, new MaterialData(Material.LOG_2, (byte) 1).toItemStack(1))); - + // Wooden Planks registerFuel(new MachineFuel(1, new MaterialData(Material.WOOD, (byte) 0).toItemStack(1))); registerFuel(new MachineFuel(1, new MaterialData(Material.WOOD, (byte) 1).toItemStack(1))); @@ -3559,22 +3556,22 @@ public class SlimefunSetup { public ItemStack getProgressBar() { return new ItemStack(Material.FLINT_AND_STEEL); } - + @Override public String getInventoryTitle() { return "§cCoal Generator"; } - + @Override public int getEnergyProduction() { return 8; } - + }.registerUnrechargeableBlock(true, 64); - + new AGenerator(Categories.ELECTRICITY, SlimefunItems.BIO_REACTOR, "BIO_REACTOR", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.HEATING_COIL, SlimefunItems.COMPOSTER, SlimefunItems.HEATING_COIL, SlimefunItems.ALUMINUM_BRASS_INGOT, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.ALUMINUM_BRASS_INGOT, null, SlimefunItems.ALUMINUM_BRASS_INGOT, null}) { - + @Override public void registerDefaultRecipes() { registerFuel(new MachineFuel(2, new ItemStack(Material.ROTTEN_FLESH))); @@ -3599,7 +3596,7 @@ public class SlimefunSetup { registerFuel(new MachineFuel(2, new ItemStack(Material.VINE))); registerFuel(new MachineFuel(2, new ItemStack(Material.CACTUS))); registerFuel(new MachineFuel(2, new ItemStack(Material.WATER_LILY))); - + // Leaves registerFuel(new MachineFuel(1, new MaterialData(Material.LEAVES, (byte) 0).toItemStack(1))); registerFuel(new MachineFuel(1, new MaterialData(Material.LEAVES, (byte) 1).toItemStack(1))); @@ -3607,7 +3604,7 @@ public class SlimefunSetup { registerFuel(new MachineFuel(1, new MaterialData(Material.LEAVES, (byte) 3).toItemStack(1))); registerFuel(new MachineFuel(1, new MaterialData(Material.LEAVES_2, (byte) 0).toItemStack(1))); registerFuel(new MachineFuel(1, new MaterialData(Material.LEAVES_2, (byte) 1).toItemStack(1))); - + // Saplings registerFuel(new MachineFuel(1, new MaterialData(Material.SAPLING, (byte) 0).toItemStack(1))); registerFuel(new MachineFuel(1, new MaterialData(Material.SAPLING, (byte) 1).toItemStack(1))); @@ -3621,27 +3618,27 @@ public class SlimefunSetup { public ItemStack getProgressBar() { return new ItemStack(Material.GOLD_HOE); } - + @Override public String getInventoryTitle() { return "§2Bio Reactor"; } - + @Override public int getEnergyProduction() { return 4; } - + }.registerUnrechargeableBlock(true, 128); - + new AutoEnchanter(Categories.ELECTRICITY, SlimefunItems.AUTO_ENCHANTER, "AUTO_ENCHANTER", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, new ItemStack(Material.ENCHANTMENT_TABLE), null, SlimefunItems.CARBONADO, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.CARBONADO, SlimefunItems.WITHER_PROOF_OBSIDIAN, SlimefunItems.WITHER_PROOF_OBSIDIAN, SlimefunItems.WITHER_PROOF_OBSIDIAN}) .registerChargeableBlock(true, 128); - + new AutoDisenchanter(Categories.ELECTRICITY, SlimefunItems.AUTO_DISENCHANTER, "AUTO_DISENCHANTER", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {new ItemStack(Material.REDSTONE), new ItemStack(Material.ANVIL), new ItemStack(Material.REDSTONE), SlimefunItems.CARBONADO, SlimefunItems.AUTO_ENCHANTER, SlimefunItems.CARBONADO, SlimefunItems.WITHER_PROOF_OBSIDIAN, SlimefunItems.WITHER_PROOF_OBSIDIAN, SlimefunItems.WITHER_PROOF_OBSIDIAN}) .registerChargeableBlock(true, 128); - + new AutoAnvil(Categories.ELECTRICITY, SlimefunItems.AUTO_ANVIL, "AUTO_ANVIL", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, new ItemStack(Material.ANVIL), null, SlimefunItems.REINFORCED_ALLOY_INGOT, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.REINFORCED_ALLOY_INGOT, new ItemStack(Material.IRON_BLOCK), new ItemStack(Material.IRON_BLOCK), new ItemStack(Material.IRON_BLOCK)}) { @@ -3654,9 +3651,9 @@ public class SlimefunSetup { public int getEnergyConsumption() { return 12; } - + }.registerChargeableBlock(true, 128); - + new AutoAnvil(Categories.ELECTRICITY, SlimefunItems.AUTO_ANVIL_2, "AUTO_ANVIL_2", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, SlimefunItems.AUTO_ANVIL, null, SlimefunItems.STEEL_PLATE, SlimefunItems.HEATING_COIL, SlimefunItems.STEEL_PLATE, new ItemStack(Material.IRON_BLOCK), new ItemStack(Material.IRON_BLOCK), new ItemStack(Material.IRON_BLOCK)}) { @@ -3669,13 +3666,13 @@ public class SlimefunSetup { public int getEnergyConsumption() { return 16; } - + }.registerChargeableBlock(true, 256); - + new SlimefunItem(Categories.ELECTRICITY, SlimefunItems.MULTIMETER, "MULTIMETER", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.COPPER_INGOT, null, SlimefunItems.COPPER_INGOT, null, SlimefunItems.REDSTONE_ALLOY, null, null, SlimefunItems.GOLD_6K, null}) .register(true, new ItemInteractionHandler() { - + @Override public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) { if (SlimefunManager.isItemSimiliar(e.getItem(), SlimefunItems.MULTIMETER, true)) { @@ -3691,19 +3688,19 @@ public class SlimefunSetup { return false; } }); - + new SlimefunItem(Categories.MISC, SlimefunItems.PLASTIC_SHEET, "PLASTIC_SHEET", RecipeType.HEATED_PRESSURE_CHAMBER, new ItemStack[] {null, null, null, null, SlimefunItems.BUCKET_OF_OIL, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.MISC, SlimefunItems.ANDROID_MEMORY_CORE, "ANDROID_MEMORY_CORE", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.BRASS_INGOT, new MaterialData(Material.STAINED_GLASS, (byte) 1).toItemStack(1), SlimefunItems.BRASS_INGOT, SlimefunItems.POWER_CRYSTAL, SlimefunItems.TIN_DUST, SlimefunItems.POWER_CRYSTAL, SlimefunItems.BRASS_INGOT, new MaterialData(Material.STAINED_GLASS, (byte) 1).toItemStack(1), SlimefunItems.BRASS_INGOT}) .register(true); - + new SlimefunItem(Categories.GPS, SlimefunItems.GPS_TRANSMITTER, "GPS_TRANSMITTER", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, null, SlimefunItems.ELECTRO_MAGNET, SlimefunItems.STEEL_INGOT, SlimefunItems.ADVANCED_CIRCUIT_BOARD, SlimefunItems.STEEL_INGOT, SlimefunItems.STEEL_INGOT, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.STEEL_INGOT}) .registerChargeableBlock(true, 16, new BlockTicker() { - + @Override public void tick(Block b, SlimefunItem item, Config data) { int charge = ChargableBlock.getCharge(b); @@ -3723,25 +3720,25 @@ public class SlimefunSetup { return false; } }); - + SlimefunItem.registerBlockHandler("GPS_TRANSMITTER", 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) { Slimefun.getGPSNetwork().updateTransmitter(b, UUID.fromString(BlockStorage.getBlockInfo(b, "owner")), NetworkStatus.OFFLINE); return true; } }); - + new SlimefunItem(Categories.GPS, SlimefunItems.GPS_TRANSMITTER_2, "GPS_TRANSMITTER_2", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.GPS_TRANSMITTER, SlimefunItems.BRONZE_INGOT, SlimefunItems.GPS_TRANSMITTER, SlimefunItems.BRONZE_INGOT, SlimefunItems.CARBON, SlimefunItems.BRONZE_INGOT, SlimefunItems.GPS_TRANSMITTER, SlimefunItems.BRONZE_INGOT, SlimefunItems.GPS_TRANSMITTER}) .registerChargeableBlock(true, 64, new BlockTicker() { - + @Override public void tick(Block b, SlimefunItem item, Config data) { int charge = ChargableBlock.getCharge(b); @@ -3763,25 +3760,25 @@ public class SlimefunSetup { return false; } }); - + SlimefunItem.registerBlockHandler("GPS_TRANSMITTER_2", 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) { Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(), b.getX(), b.getY() * 4 + 100, b.getZ()).getBlock(), UUID.fromString(BlockStorage.getBlockInfo(b, "owner")), NetworkStatus.OFFLINE); return true; } }); - + new SlimefunItem(Categories.GPS, SlimefunItems.GPS_TRANSMITTER_3, "GPS_TRANSMITTER_3", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.GPS_TRANSMITTER_2, SlimefunItems.CORINTHIAN_BRONZE_INGOT, SlimefunItems.GPS_TRANSMITTER_2, SlimefunItems.CORINTHIAN_BRONZE_INGOT, SlimefunItems.CARBONADO, SlimefunItems.CORINTHIAN_BRONZE_INGOT, SlimefunItems.GPS_TRANSMITTER_2, SlimefunItems.CORINTHIAN_BRONZE_INGOT, SlimefunItems.GPS_TRANSMITTER_2}) .registerChargeableBlock(true, 256, new BlockTicker() { - + @Override public void tick(Block b, SlimefunItem item, Config data) { int charge = ChargableBlock.getCharge(b); @@ -3803,25 +3800,25 @@ public class SlimefunSetup { return false; } }); - + SlimefunItem.registerBlockHandler("GPS_TRANSMITTER_3", 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) { Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(), b.getX(), b.getY() * 16 + 500, b.getZ()).getBlock(), UUID.fromString(BlockStorage.getBlockInfo(b, "owner")), NetworkStatus.OFFLINE); return true; } }); - + new SlimefunItem(Categories.GPS, SlimefunItems.GPS_TRANSMITTER_4, "GPS_TRANSMITTER_4", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.GPS_TRANSMITTER_3, SlimefunItems.BLISTERING_INGOT_3, SlimefunItems.GPS_TRANSMITTER_3, SlimefunItems.NICKEL_INGOT, SlimefunItems.CARBONADO, SlimefunItems.NICKEL_INGOT, SlimefunItems.GPS_TRANSMITTER_3, SlimefunItems.BLISTERING_INGOT_3, SlimefunItems.GPS_TRANSMITTER_3}) .registerChargeableBlock(true, 1024, new BlockTicker() { - + @Override public void tick(Block b, SlimefunItem item, Config data) { int charge = ChargableBlock.getCharge(b); @@ -3843,25 +3840,25 @@ public class SlimefunSetup { return false; } }); - + SlimefunItem.registerBlockHandler("GPS_TRANSMITTER_4", 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) { Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(), b.getX(), b.getY() * 64 + 800, b.getZ()).getBlock(), UUID.fromString(BlockStorage.getBlockInfo(b, "owner")), NetworkStatus.OFFLINE); return true; } }); - + new SlimefunItem(Categories.GPS, SlimefunItems.GPS_CONTROL_PANEL, "GPS_CONTROL_PANEL", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, null, SlimefunItems.ELECTRO_MAGNET, SlimefunItems.COBALT_INGOT, SlimefunItems.ADVANCED_CIRCUIT_BOARD, SlimefunItems.COBALT_INGOT, SlimefunItems.ALUMINUM_BRASS_INGOT, SlimefunItems.ALUMINUM_BRASS_INGOT, SlimefunItems.ALUMINUM_BRASS_INGOT}) .register(true, new ItemInteractionHandler() { - + @Override public boolean onRightClick(ItemUseEvent e, Player p, ItemStack stack) { if (e.getClickedBlock() == null) return false; @@ -3876,15 +3873,15 @@ public class SlimefunSetup { return true; } }); - + new SlimefunItem(Categories.GPS, SlimefunItems.GPS_MARKER_TOOL, "GPS_MARKER_TOOL", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, null, SlimefunItems.ELECTRO_MAGNET, new MaterialData(Material.INK_SACK, (byte) 4).toItemStack(1), SlimefunItems.BASIC_CIRCUIT_BOARD, new MaterialData(Material.INK_SACK, (byte) 4).toItemStack(1), new ItemStack(Material.REDSTONE), SlimefunItems.REDSTONE_ALLOY, new ItemStack(Material.REDSTONE)}) .register(true); - + new SlimefunItem(Categories.GPS, SlimefunItems.GPS_EMERGENCY_TRANSMITTER, "GPS_EMERGENCY_TRANSMITTER", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, SlimefunItems.ELECTRO_MAGNET, null, null, SlimefunItems.GPS_TRANSMITTER, null, null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null}) .register(true); - + new ProgrammableAndroid(Categories.ELECTRICITY, SlimefunItems.PROGRAMMABLE_ANDROID, "PROGRAMMABLE_ANDROID", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.PLASTIC_SHEET, SlimefunItems.ANDROID_MEMORY_CORE, SlimefunItems.PLASTIC_SHEET, SlimefunItems.COAL_GENERATOR, SlimefunItems.ELECTRIC_MOTOR, new ItemStack(Material.CHEST), SlimefunItems.PLASTIC_SHEET, SlimefunItems.PLASTIC_SHEET, SlimefunItems.PLASTIC_SHEET}) { @@ -3902,10 +3899,10 @@ public class SlimefunSetup { public int getTier() { return 1; } - + } .register(true); - + new ProgrammableAndroid(Categories.ELECTRICITY, SlimefunItems.PROGRAMMABLE_ANDROID_MINER, "PROGRAMMABLE_ANDROID_MINER", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, null, null, new ItemStack(Material.DIAMOND_PICKAXE), SlimefunItems.PROGRAMMABLE_ANDROID, new ItemStack(Material.DIAMOND_PICKAXE), null, SlimefunItems.ELECTRIC_MOTOR, null}) { @@ -3923,10 +3920,10 @@ public class SlimefunSetup { public int getTier() { return 1; } - + } .register(true); - + new ProgrammableAndroid(Categories.ELECTRICITY, SlimefunItems.PROGRAMMABLE_ANDROID_FARMER, "PROGRAMMABLE_ANDROID_FARMER", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, null, null, new ItemStack(Material.DIAMOND_HOE), SlimefunItems.PROGRAMMABLE_ANDROID, new ItemStack(Material.DIAMOND_HOE), null, SlimefunItems.ELECTRIC_MOTOR, null}) { @@ -3944,10 +3941,10 @@ public class SlimefunSetup { public int getTier() { return 1; } - + } .register(true); - + new ProgrammableAndroid(Categories.ELECTRICITY, SlimefunItems.PROGRAMMABLE_ANDROID_WOODCUTTER, "PROGRAMMABLE_ANDROID_WOODCUTTER", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, null, null, new ItemStack(Material.DIAMOND_AXE), SlimefunItems.PROGRAMMABLE_ANDROID, new ItemStack(Material.DIAMOND_AXE), null, SlimefunItems.ELECTRIC_MOTOR, null}) { @@ -3965,10 +3962,10 @@ public class SlimefunSetup { public int getTier() { return 1; } - + } .register(true); - + new ProgrammableAndroid(Categories.ELECTRICITY, SlimefunItems.PROGRAMMABLE_ANDROID_FISHERMAN, "PROGRAMMABLE_ANDROID_FISHERMAN", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, null, null, new ItemStack(Material.FISHING_ROD), SlimefunItems.PROGRAMMABLE_ANDROID, new ItemStack(Material.FISHING_ROD), null, SlimefunItems.ELECTRIC_MOTOR, null}) { @@ -3986,10 +3983,10 @@ public class SlimefunSetup { public int getTier() { return 1; } - + } .register(true); - + new ProgrammableAndroid(Categories.ELECTRICITY, SlimefunItems.PROGRAMMABLE_ANDROID_BUTCHER, "PROGRAMMABLE_ANDROID_BUTCHER", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, SlimefunItems.GPS_TRANSMITTER, null, new ItemStack(Material.DIAMOND_SWORD), SlimefunItems.PROGRAMMABLE_ANDROID, new ItemStack(Material.DIAMOND_SWORD), null, SlimefunItems.ELECTRIC_MOTOR, null}) { @@ -4007,18 +4004,18 @@ public class SlimefunSetup { public int getTier() { return 1; } - + } .register(true); - + new SlimefunItem(Categories.ELECTRICITY, SlimefunItems.ANDROID_INTERFACE_ITEMS, "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 MaterialData(Material.STAINED_GLASS, (byte) 11).toItemStack(1), 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 ItemStack[] {SlimefunItems.PLASTIC_SHEET, SlimefunItems.PLASTIC_SHEET, SlimefunItems.PLASTIC_SHEET, new MaterialData(Material.STAINED_GLASS, (byte) 14).toItemStack(1), SlimefunItems.BASIC_CIRCUIT_BOARD, SlimefunItems.PLASTIC_SHEET, SlimefunItems.PLASTIC_SHEET, SlimefunItems.PLASTIC_SHEET, SlimefunItems.PLASTIC_SHEET}) .register(true); - + new ProgrammableAndroid(Categories.ELECTRICITY, SlimefunItems.PROGRAMMABLE_ANDROID_2, "PROGRAMMABLE_ANDROID_2", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.PLASTIC_SHEET, SlimefunItems.ANDROID_MEMORY_CORE, SlimefunItems.PLASTIC_SHEET, SlimefunItems.COMBUSTION_REACTOR, SlimefunItems.PROGRAMMABLE_ANDROID, new ItemStack(Material.CHEST), SlimefunItems.PLASTIC_SHEET, SlimefunItems.POWER_CRYSTAL, SlimefunItems.PLASTIC_SHEET}) { @@ -4037,7 +4034,7 @@ public class SlimefunSetup { public int getTier() { return 2; } - + } .register(true); @@ -4058,10 +4055,10 @@ public class SlimefunSetup { public int getTier() { return 2; } - + } .register(true); - + new ProgrammableAndroid(Categories.ELECTRICITY, SlimefunItems.PROGRAMMABLE_ANDROID_2_BUTCHER, "PROGRAMMABLE_ANDROID_2_BUTCHER", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, SlimefunItems.GPS_TRANSMITTER, null, new ItemStack(Material.DIAMOND_SWORD), SlimefunItems.PROGRAMMABLE_ANDROID_2, new ItemStack(Material.DIAMOND_SWORD), null, SlimefunItems.ELECTRIC_MOTOR, null}) { @@ -4079,7 +4076,7 @@ public class SlimefunSetup { public int getTier() { return 2; } - + } .register(true); @@ -4103,7 +4100,7 @@ public class SlimefunSetup { } .register(true); - + new ProgrammableAndroid(Categories.ELECTRICITY, SlimefunItems.PROGRAMMABLE_ANDROID_3, "PROGRAMMABLE_ANDROID_3", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.PLASTIC_SHEET, SlimefunItems.ANDROID_MEMORY_CORE, SlimefunItems.PLASTIC_SHEET, SlimefunItems.NUCLEAR_REACTOR, SlimefunItems.PROGRAMMABLE_ANDROID_2, new ItemStack(Material.CHEST), SlimefunItems.BLISTERING_INGOT_3, SlimefunItems.POWER_CRYSTAL, SlimefunItems.BLISTERING_INGOT_3}) { @@ -4122,7 +4119,7 @@ public class SlimefunSetup { public int getTier() { return 3; } - + } .register(true); @@ -4143,10 +4140,10 @@ public class SlimefunSetup { public int getTier() { return 3; } - + } .register(true); - + new ProgrammableAndroid(Categories.ELECTRICITY, SlimefunItems.PROGRAMMABLE_ANDROID_3_BUTCHER, "PROGRAMMABLE_ANDROID_3_BUTCHER", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, SlimefunItems.GPS_TRANSMITTER_3, null, new ItemStack(Material.DIAMOND_SWORD), SlimefunItems.PROGRAMMABLE_ANDROID_3, new ItemStack(Material.DIAMOND_SWORD), null, SlimefunItems.ELECTRIC_MOTOR, null}) { @@ -4164,10 +4161,10 @@ public class SlimefunSetup { public int getTier() { return 3; } - + } .register(true); - + new SlimefunItem(Categories.LUMPS_AND_MAGIC, SlimefunItems.BLANK_RUNE, "BLANK_RUNE", RecipeType.ANCIENT_ALTAR, new ItemStack[] {new ItemStack(Material.STONE), SlimefunItems.MAGIC_LUMP_1, new ItemStack(Material.STONE), SlimefunItems.MAGIC_LUMP_1, new ItemStack(Material.OBSIDIAN), SlimefunItems.MAGIC_LUMP_1,new ItemStack(Material.STONE), SlimefunItems.MAGIC_LUMP_1, new ItemStack(Material.STONE)}) .register(true); @@ -4175,31 +4172,31 @@ public class SlimefunSetup { new SlimefunItem(Categories.LUMPS_AND_MAGIC, SlimefunItems.RUNE_AIR, "ANCIENT_RUNE_AIR", RecipeType.ANCIENT_ALTAR, new ItemStack[] {new ItemStack(Material.FEATHER), SlimefunItems.MAGIC_LUMP_1, new ItemStack(Material.FEATHER), new ItemStack(Material.GHAST_TEAR), SlimefunItems.BLANK_RUNE, new ItemStack(Material.GHAST_TEAR) ,new ItemStack(Material.FEATHER), SlimefunItems.MAGIC_LUMP_1, new ItemStack(Material.FEATHER)}, new CustomItem(SlimefunItems.RUNE_AIR, 4)) .register(true); - + new SlimefunItem(Categories.LUMPS_AND_MAGIC, SlimefunItems.RUNE_EARTH, "ANCIENT_RUNE_EARTH", RecipeType.ANCIENT_ALTAR, new ItemStack[] {new ItemStack(Material.DIRT), SlimefunItems.MAGIC_LUMP_1, new ItemStack(Material.STONE), new ItemStack(Material.OBSIDIAN), SlimefunItems.BLANK_RUNE, new ItemStack(Material.OBSIDIAN) ,new ItemStack(Material.STONE), SlimefunItems.MAGIC_LUMP_1, new ItemStack(Material.DIRT)}, new CustomItem(SlimefunItems.RUNE_EARTH, 4)) .register(true); - + new SlimefunItem(Categories.LUMPS_AND_MAGIC, SlimefunItems.RUNE_FIRE, "ANCIENT_RUNE_FIRE", RecipeType.ANCIENT_ALTAR, new ItemStack[] {new ItemStack(Material.FIREBALL), SlimefunItems.MAGIC_LUMP_2, new ItemStack(Material.FIREBALL), new ItemStack(Material.BLAZE_POWDER), SlimefunItems.RUNE_EARTH, new ItemStack(Material.FLINT_AND_STEEL) ,new ItemStack(Material.FIREBALL), SlimefunItems.MAGIC_LUMP_2, new ItemStack(Material.FIREBALL)}, new CustomItem(SlimefunItems.RUNE_FIRE, 4)) .register(true); - + new SlimefunItem(Categories.LUMPS_AND_MAGIC, SlimefunItems.RUNE_WATER, "ANCIENT_RUNE_WATER", RecipeType.ANCIENT_ALTAR, new ItemStack[] {new ItemStack(Material.RAW_FISH), SlimefunItems.MAGIC_LUMP_2, new ItemStack(Material.WATER_BUCKET), new ItemStack(Material.SAND), SlimefunItems.BLANK_RUNE, new ItemStack(Material.SAND) ,new ItemStack(Material.WATER_BUCKET), SlimefunItems.MAGIC_LUMP_2, new ItemStack(Material.RAW_FISH)}, new CustomItem(SlimefunItems.RUNE_WATER, 2)) .register(true); - + new SlimefunItem(Categories.LUMPS_AND_MAGIC, SlimefunItems.RUNE_ENDER, "ANCIENT_RUNE_ENDER", RecipeType.ANCIENT_ALTAR, new ItemStack[] {new ItemStack(Material.ENDER_PEARL), SlimefunItems.ENDER_LUMP_3, new ItemStack(Material.ENDER_PEARL), new ItemStack(Material.EYE_OF_ENDER), SlimefunItems.BLANK_RUNE, new ItemStack(Material.EYE_OF_ENDER) ,new ItemStack(Material.ENDER_PEARL), SlimefunItems.ENDER_LUMP_3, new ItemStack(Material.ENDER_PEARL)}, new CustomItem(SlimefunItems.RUNE_ENDER, 6)) .register(true); - + new SlimefunItem(Categories.LUMPS_AND_MAGIC, SlimefunItems.RUNE_RAINBOW, "ANCIENT_RUNE_RAINBOW", RecipeType.ANCIENT_ALTAR, new ItemStack[] {new MaterialData(Material.INK_SACK, (byte) 1).toItemStack(1), SlimefunItems.MAGIC_LUMP_3, new MaterialData(Material.INK_SACK, (byte) 9).toItemStack(1), new ItemStack(Material.WOOL), SlimefunItems.RUNE_ENDER, new ItemStack(Material.WOOL) , new MaterialData(Material.INK_SACK, (byte) 11).toItemStack(1), SlimefunItems.ENDER_LUMP_3, new MaterialData(Material.INK_SACK, (byte) 10).toItemStack(1)}) .register(true); - + new SlimefunItem(Categories.MAGIC, SlimefunItems.INFERNAL_BONEMEAL, "INFERNAL_BONEMEAL", RecipeType.ANCIENT_ALTAR, new ItemStack[] {new ItemStack(Material.NETHER_STALK), SlimefunItems.RUNE_EARTH, new ItemStack(Material.NETHER_STALK), SlimefunItems.MAGIC_LUMP_2, new MaterialData(Material.INK_SACK, (byte) 15).toItemStack(1), SlimefunItems.MAGIC_LUMP_2, new ItemStack(Material.NETHER_STALK), new ItemStack(Material.BLAZE_POWDER), new ItemStack(Material.NETHER_STALK)}, new CustomItem(SlimefunItems.INFERNAL_BONEMEAL, 8)) .register(true, new ItemInteractionHandler() { - + @Override public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) { if (SlimefunManager.isItemSimiliar(e.getItem(), SlimefunItems.INFERNAL_BONEMEAL, true)) { @@ -4228,74 +4225,74 @@ public class SlimefunSetup { new ItemStack[] {SlimefunItems.FLASK_OF_KNOWLEDGE, SlimefunItems.ELYTRA_SCALE, SlimefunItems.FLASK_OF_KNOWLEDGE, SlimefunItems.FLASK_OF_KNOWLEDGE, SlimefunItems.ELYTRA, SlimefunItems.FLASK_OF_KNOWLEDGE, SlimefunItems.FLASK_OF_KNOWLEDGE, SlimefunItems.ELYTRA_SCALE, SlimefunItems.FLASK_OF_KNOWLEDGE}) .register(true); - new SoulboundItem(Categories.MAGIC, SlimefunItems.SOULBOUND_ELYTRA, "SOULBOUND_ELYTRA", RecipeType.ANCIENT_ALTAR, + new SoulboundItem(Categories.MAGIC, SlimefunItems.SOULBOUND_ELYTRA, "SOULBOUND_ELYTRA", RecipeType.ANCIENT_ALTAR, new ItemStack[] {SlimefunItems.FLASK_OF_KNOWLEDGE, SlimefunItems.ESSENCE_OF_AFTERLIFE, SlimefunItems.FLASK_OF_KNOWLEDGE, SlimefunItems.ELYTRA_SCALE, SlimefunItems.ELYTRA, SlimefunItems.ELYTRA_SCALE, SlimefunItems.FLASK_OF_KNOWLEDGE, SlimefunItems.ESSENCE_OF_AFTERLIFE, SlimefunItems.FLASK_OF_KNOWLEDGE}) .register(true); - + RainbowTicker rainbow = new RainbowTicker(); - + new SlimefunItem(Categories.MAGIC, SlimefunItems.RAINBOW_WOOL, "RAINBOW_WOOL", RecipeType.ANCIENT_ALTAR, new ItemStack[] {new ItemStack(Material.WOOL), new ItemStack(Material.WOOL), new ItemStack(Material.WOOL), new ItemStack(Material.WOOL), SlimefunItems.RUNE_RAINBOW, new ItemStack(Material.WOOL), new ItemStack(Material.WOOL), new ItemStack(Material.WOOL), new ItemStack(Material.WOOL)}, new CustomItem(SlimefunItems.RAINBOW_WOOL, 8)) .register(true, rainbow); - + new SlimefunItem(Categories.MAGIC, SlimefunItems.RAINBOW_GLASS, "RAINBOW_GLASS", RecipeType.ANCIENT_ALTAR, new ItemStack[] {new ItemStack(Material.STAINED_GLASS), new ItemStack(Material.STAINED_GLASS), new ItemStack(Material.STAINED_GLASS), new ItemStack(Material.STAINED_GLASS), SlimefunItems.RUNE_RAINBOW, new ItemStack(Material.STAINED_GLASS), new ItemStack(Material.STAINED_GLASS), new ItemStack(Material.STAINED_GLASS), new ItemStack(Material.STAINED_GLASS)}, new CustomItem(SlimefunItems.RAINBOW_GLASS, 8)) .register(true, rainbow); - + new SlimefunItem(Categories.MAGIC, SlimefunItems.RAINBOW_GLASS_PANE, "RAINBOW_GLASS_PANE", RecipeType.ANCIENT_ALTAR, new ItemStack[] {new ItemStack(Material.STAINED_GLASS_PANE), new ItemStack(Material.STAINED_GLASS_PANE), new ItemStack(Material.STAINED_GLASS_PANE), new ItemStack(Material.STAINED_GLASS_PANE), SlimefunItems.RUNE_RAINBOW, new ItemStack(Material.STAINED_GLASS_PANE), new ItemStack(Material.STAINED_GLASS_PANE), new ItemStack(Material.STAINED_GLASS_PANE), new ItemStack(Material.STAINED_GLASS_PANE)}, new CustomItem(SlimefunItems.RAINBOW_GLASS_PANE, 8)) .register(true, rainbow); - + new SlimefunItem(Categories.MAGIC, SlimefunItems.RAINBOW_CLAY, "RAINBOW_CLAY", RecipeType.ANCIENT_ALTAR, new ItemStack[] {new ItemStack(Material.STAINED_CLAY), new ItemStack(Material.STAINED_CLAY), new ItemStack(Material.STAINED_CLAY), new ItemStack(Material.STAINED_CLAY), SlimefunItems.RUNE_RAINBOW, new ItemStack(Material.STAINED_CLAY), new ItemStack(Material.STAINED_CLAY), new ItemStack(Material.STAINED_CLAY), new ItemStack(Material.STAINED_CLAY)}, new CustomItem(SlimefunItems.RAINBOW_CLAY, 8)) .register(true, rainbow); - + RainbowTicker xmas = new RainbowTicker(13, 14); - + new SlimefunItem(Categories.CHRISTMAS, SlimefunItems.RAINBOW_WOOL_XMAS, "RAINBOW_WOOL_XMAS", RecipeType.ANCIENT_ALTAR, new ItemStack[] {new MaterialData(Material.INK_SACK, (byte) 1).toItemStack(1), SlimefunItems.CHRISTMAS_COOKIE, new MaterialData(Material.INK_SACK, (byte) 2).toItemStack(1), new ItemStack(Material.WOOL), SlimefunItems.RUNE_RAINBOW, new ItemStack(Material.WOOL), new MaterialData(Material.INK_SACK, (byte) 2).toItemStack(1), SlimefunItems.CHRISTMAS_COOKIE, new MaterialData(Material.INK_SACK, (byte) 1).toItemStack(1)}, new CustomItem(SlimefunItems.RAINBOW_WOOL_XMAS, 2)) .register(true, xmas); - + new SlimefunItem(Categories.CHRISTMAS, SlimefunItems.RAINBOW_GLASS_XMAS, "RAINBOW_GLASS_XMAS", RecipeType.ANCIENT_ALTAR, new ItemStack[] {new MaterialData(Material.INK_SACK, (byte) 1).toItemStack(1), SlimefunItems.CHRISTMAS_COOKIE, new MaterialData(Material.INK_SACK, (byte) 2).toItemStack(1), new ItemStack(Material.STAINED_GLASS), SlimefunItems.RUNE_RAINBOW, new ItemStack(Material.STAINED_GLASS), new MaterialData(Material.INK_SACK, (byte) 2).toItemStack(1), SlimefunItems.CHRISTMAS_COOKIE, new MaterialData(Material.INK_SACK, (byte) 1).toItemStack(1)}, new CustomItem(SlimefunItems.RAINBOW_GLASS_XMAS, 2)) .register(true, xmas); - + new SlimefunItem(Categories.CHRISTMAS, SlimefunItems.RAINBOW_GLASS_PANE_XMAS, "RAINBOW_GLASS_PANE_XMAS", RecipeType.ANCIENT_ALTAR, new ItemStack[] {new MaterialData(Material.INK_SACK, (byte) 1).toItemStack(1), SlimefunItems.CHRISTMAS_COOKIE, new MaterialData(Material.INK_SACK, (byte) 2).toItemStack(1), new ItemStack(Material.STAINED_GLASS_PANE), SlimefunItems.RUNE_RAINBOW, new ItemStack(Material.STAINED_GLASS_PANE), new MaterialData(Material.INK_SACK, (byte) 2).toItemStack(1), SlimefunItems.CHRISTMAS_COOKIE, new MaterialData(Material.INK_SACK, (byte) 1).toItemStack(1)}, new CustomItem(SlimefunItems.RAINBOW_GLASS_PANE_XMAS, 2)) .register(true, xmas); - + new SlimefunItem(Categories.CHRISTMAS, SlimefunItems.RAINBOW_CLAY_XMAS, "RAINBOW_CLAY_XMAS", RecipeType.ANCIENT_ALTAR, new ItemStack[] {new MaterialData(Material.INK_SACK, (byte) 1).toItemStack(1), SlimefunItems.CHRISTMAS_COOKIE, new MaterialData(Material.INK_SACK, (byte) 2).toItemStack(1), new ItemStack(Material.STAINED_CLAY), SlimefunItems.RUNE_RAINBOW, new ItemStack(Material.STAINED_CLAY), new MaterialData(Material.INK_SACK, (byte) 2).toItemStack(1), SlimefunItems.CHRISTMAS_COOKIE, new MaterialData(Material.INK_SACK, (byte) 1).toItemStack(1)}, new CustomItem(SlimefunItems.RAINBOW_CLAY_XMAS, 2)) .register(true, xmas); - + RainbowTicker valentine = new RainbowTicker(2, 6, 10); - + new SlimefunItem(Categories.VALENTINES_DAY, SlimefunItems.RAINBOW_WOOL_VALENTINE, "RAINBOW_WOOL_VALENTINE", RecipeType.ANCIENT_ALTAR, new ItemStack[] {new MaterialData(Material.INK_SACK, (byte) 1).toItemStack(1), new ItemStack(Material.RED_ROSE), new MaterialData(Material.INK_SACK, (byte) 2).toItemStack(1), new ItemStack(Material.WOOL), SlimefunItems.RUNE_RAINBOW, new ItemStack(Material.WOOL), new MaterialData(Material.INK_SACK, (byte) 2).toItemStack(1), new ItemStack(Material.RED_ROSE), new MaterialData(Material.INK_SACK, (byte) 1).toItemStack(1)}, new CustomItem(SlimefunItems.RAINBOW_WOOL_VALENTINE, 2)) .register(true, valentine); - + new SlimefunItem(Categories.VALENTINES_DAY, SlimefunItems.RAINBOW_GLASS_VALENTINE, "RAINBOW_GLASS_VALENTINE", RecipeType.ANCIENT_ALTAR, new ItemStack[] {new MaterialData(Material.INK_SACK, (byte) 1).toItemStack(1), new ItemStack(Material.RED_ROSE), new MaterialData(Material.INK_SACK, (byte) 2).toItemStack(1), new ItemStack(Material.STAINED_GLASS), SlimefunItems.RUNE_RAINBOW, new ItemStack(Material.STAINED_GLASS), new MaterialData(Material.INK_SACK, (byte) 2).toItemStack(1), new ItemStack(Material.RED_ROSE), new MaterialData(Material.INK_SACK, (byte) 1).toItemStack(1)}, new CustomItem(SlimefunItems.RAINBOW_GLASS_VALENTINE, 2)) .register(true, valentine); - + new SlimefunItem(Categories.VALENTINES_DAY, SlimefunItems.RAINBOW_GLASS_PANE_VALENTINE, "RAINBOW_GLASS_PANE_VALENTINE", RecipeType.ANCIENT_ALTAR, new ItemStack[] {new MaterialData(Material.INK_SACK, (byte) 1).toItemStack(1), new ItemStack(Material.RED_ROSE), new MaterialData(Material.INK_SACK, (byte) 2).toItemStack(1), new ItemStack(Material.STAINED_GLASS_PANE), SlimefunItems.RUNE_RAINBOW, new ItemStack(Material.STAINED_GLASS_PANE), new MaterialData(Material.INK_SACK, (byte) 2).toItemStack(1), new ItemStack(Material.RED_ROSE), new MaterialData(Material.INK_SACK, (byte) 1).toItemStack(1)}, new CustomItem(SlimefunItems.RAINBOW_GLASS_PANE_VALENTINE, 2)) .register(true, valentine); - + new SlimefunItem(Categories.VALENTINES_DAY, SlimefunItems.RAINBOW_CLAY_VALENTINE, "RAINBOW_CLAY_VALENTINE", RecipeType.ANCIENT_ALTAR, new ItemStack[] {new MaterialData(Material.INK_SACK, (byte) 1).toItemStack(1), new ItemStack(Material.RED_ROSE), new MaterialData(Material.INK_SACK, (byte) 2).toItemStack(1), new ItemStack(Material.STAINED_CLAY), SlimefunItems.RUNE_RAINBOW, new ItemStack(Material.STAINED_CLAY), new MaterialData(Material.INK_SACK, (byte) 2).toItemStack(1), new ItemStack(Material.RED_ROSE), new MaterialData(Material.INK_SACK, (byte) 1).toItemStack(1)}, new CustomItem(SlimefunItems.RAINBOW_CLAY_VALENTINE, 2)) .register(true, valentine); - + new SlimefunItem(Categories.TECH_MISC, SlimefunItems.WITHER_PROOF_GLASS, "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)) .register(true); - + new SlimefunItem(Categories.GPS, SlimefunItems.GPS_GEO_SCANNER, "GPS_GEO_SCANNER", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, null, SlimefunItems.ELECTRO_MAGNET, null, SlimefunItems.STEEL_INGOT, SlimefunItems.STEEL_INGOT, SlimefunItems.ELECTRO_MAGNET, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.ELECTRO_MAGNET}) .register(true, new ItemInteractionHandler() { - + @Override public boolean onRightClick(ItemUseEvent e, Player p, ItemStack stack) { if (e.getClickedBlock() == null) return false; @@ -4310,48 +4307,48 @@ public class SlimefunSetup { return true; } }); - + new OilPump(Categories.GPS, SlimefunItems.OIL_PUMP, "OIL_PUMP", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.STEEL_INGOT, SlimefunItems.MEDIUM_CAPACITOR, SlimefunItems.STEEL_INGOT, SlimefunItems.STEEL_INGOT, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.STEEL_INGOT, null, new ItemStack(Material.BUCKET), null}) { - + @Override public int getEnergyConsumption() { return 14; } - + @Override public int getSpeed() { return 1; }; - + }.registerChargeableBlock(true, 200); - + new SlimefunItem(Categories.RESOURCES, SlimefunItems.BUCKET_OF_OIL, "BUCKET_OF_OIL", new RecipeType(SlimefunItems.OIL_PUMP), new ItemStack[] {null, null, null, null, new ItemStack(Material.BUCKET), null, null, null, null}) .register(true); - + new SlimefunItem(Categories.RESOURCES, SlimefunItems.BUCKET_OF_FUEL, "BUCKET_OF_FUEL", new RecipeType(SlimefunItems.REFINERY), new ItemStack[] {null, null, null, null, SlimefunItems.BUCKET_OF_OIL, null, null, null, null}) .register(true); - + new Refinery(Categories.ELECTRICITY, SlimefunItems.REFINERY, "REFINERY", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.HARDENED_GLASS, SlimefunItems.REDSTONE_ALLOY, SlimefunItems.HARDENED_GLASS, SlimefunItems.HARDENED_GLASS, SlimefunItems.REDSTONE_ALLOY, SlimefunItems.HARDENED_GLASS, new ItemStack(Material.PISTON_BASE), SlimefunItems.ELECTRIC_MOTOR, new ItemStack(Material.PISTON_BASE)}) { - + @Override public int getEnergyConsumption() { return 16; } - + @Override public int getSpeed() { return 1; }; - + }.registerChargeableBlock(true, 256); - + new AGenerator(Categories.ELECTRICITY, SlimefunItems.LAVA_GENERATOR, "LAVA_GENERATOR", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, SlimefunItems.GOLD_16K, null, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.HEATING_COIL, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.HEATING_COIL}) { - + @Override public void registerDefaultRecipes() { registerFuel(new MachineFuel(40, new ItemStack(Material.LAVA_BUCKET))); @@ -4361,22 +4358,22 @@ public class SlimefunSetup { public ItemStack getProgressBar() { return new ItemStack(Material.FLINT_AND_STEEL); } - + @Override public String getInventoryTitle() { return "§4Lava Generator"; } - + @Override public int getEnergyProduction() { return 10; } - + }.registerUnrechargeableBlock(true, 512); - + new AGenerator(Categories.ELECTRICITY, SlimefunItems.COMBUSTION_REACTOR, "COMBUSTION_REACTOR", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, SlimefunItems.STEEL_INGOT, null, SlimefunItems.STEEL_INGOT, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.STEEL_INGOT, SlimefunItems.HEATING_COIL, SlimefunItems.STEEL_INGOT, SlimefunItems.HEATING_COIL}) { - + @Override public void registerDefaultRecipes() { registerFuel(new MachineFuel(30, SlimefunItems.BUCKET_OF_OIL)); @@ -4387,86 +4384,86 @@ public class SlimefunSetup { public ItemStack getProgressBar() { return new ItemStack(Material.FLINT_AND_STEEL); } - + @Override public String getInventoryTitle() { return "§cCombustion Reactor"; } - + @Override public int getEnergyProduction() { return 12; } - + }.registerUnrechargeableBlock(true, 256); - + new SlimefunItem(Categories.GPS, SlimefunItems.GPS_TELEPORTER_PYLON, "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)); - + new Teleporter(Categories.GPS, SlimefunItems.GPS_TELEPORTATION_MATRIX, "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}) { - + @Override public void onInteract(final Player p, final Block b) throws Exception { GPSNetwork.openTeleporterGUI(p, UUID.fromString(BlockStorage.getBlockInfo(b, "owner")), b, Slimefun.getGPSNetwork().getNetworkComplexity(UUID.fromString(BlockStorage.getBlockInfo(b, "owner")))); } - + } .register(true); - + new SlimefunItem(Categories.GPS, SlimefunItems.GPS_ACTIVATION_DEVICE_SHARED, "GPS_ACTIVATION_DEVICE_SHARED", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, new ItemStack(Material.STONE_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, SlimefunItems.GPS_ACTIVATION_DEVICE_PERSONAL, "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 BlockStorage.getBlockInfo(b, "owner").equals(p.getUniqueId().toString()); } }); - + new SlimefunItem(Categories.TECH, SlimefunItems.HOLOGRAM_PROJECTOR, "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 ItemInteractionHandler() { - + @Override public boolean onRightClick(ItemUseEvent e, Player p, ItemStack stack) { if (e.getClickedBlock() == null) return false; SlimefunItem item = BlockStorage.check(e.getClickedBlock()); if (item == null || !item.getName().equals("HOLOGRAM_PROJECTOR")) return false; e.setCancelled(true); - + if (BlockStorage.getBlockInfo(e.getClickedBlock(), "owner").equals(p.getUniqueId().toString())) { Projector.openEditor(p, e.getClickedBlock()); } - + return true; } }); - + SlimefunItem.registerBlockHandler("HOLOGRAM_PROJECTOR", new SlimefunBlockHandler() { - + @Override public void onPlace(Player p, Block b, SlimefunItem item) { BlockStorage.addBlockInfo(b, "text", "&bHi, I am a Hologram, &3configure me using the Projector"); BlockStorage.addBlockInfo(b, "offset", "-0.5"); BlockStorage.addBlockInfo(b, "owner", p.getUniqueId().toString()); - + Projector.getArmorStand(b); } - + @Override public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) { if (BlockStorage.getBlockInfo(b, "owner").equals(p.getUniqueId().toString())) { @@ -4476,15 +4473,15 @@ public class SlimefunSetup { else return false; } }); - + new SlimefunItem(Categories.MAGIC, SlimefunItems.INFUSED_HOPPER, "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 BlockTicker() { - + @Override public void uniqueTick() { } - + @Override public void tick(Block b, SlimefunItem item, Config data) { ArmorStand hologram = InfusedHopper.getArmorStand(b); @@ -4498,78 +4495,78 @@ public class SlimefunSetup { } if (sound) b.getWorld().playSound(b.getLocation(), Sound.ENTITY_ENDERMEN_TELEPORT, 5F, 2F); } - + @Override public boolean isSynchronized() { return true; } }); - + SlimefunItem.registerBlockHandler("INFUSED_HOPPER", new SlimefunBlockHandler() { - + @Override public void onPlace(Player p, Block b, SlimefunItem item) { InfusedHopper.getArmorStand(b); } - + @Override public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) { InfusedHopper.getArmorStand(b).remove(); return true; } }); - + new SlimefunItem(Categories.RESOURCES, SlimefunItems.BLISTERING_INGOT, "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, SlimefunItems.BLISTERING_INGOT_2, "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, SlimefunItems.BLISTERING_INGOT_3, "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.GPS, SlimefunItems.ELEVATOR, "ELEVATOR_PLATE", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, new ItemStack(Material.STONE_PLATE), null, new ItemStack(Material.PISTON_BASE), SlimefunItems.ELECTRIC_MOTOR, new ItemStack(Material.PISTON_BASE), SlimefunItems.ALUMINUM_BRONZE_INGOT, SlimefunItems.ALUMINUM_BRONZE_INGOT, SlimefunItems.ALUMINUM_BRONZE_INGOT}, new CustomItem(SlimefunItems.ELEVATOR, 2)) .register(true, new ItemInteractionHandler() { - + @Override public boolean onRightClick(final ItemUseEvent e, Player p, ItemStack stack) { if (e.getClickedBlock() == null) return false; SlimefunItem item = BlockStorage.check(e.getClickedBlock()); if (item == null) return false; if (!item.getName().equals("ELEVATOR_PLATE")) return false; - + if (BlockStorage.getBlockInfo(e.getClickedBlock(), "owner").equals(p.getUniqueId().toString())) Elevator.openEditor(p, e.getClickedBlock()); return true; } }); - + SlimefunItem.registerBlockHandler("ELEVATOR_PLATE", new SlimefunBlockHandler() { - + @Override public void onPlace(Player p, Block b, SlimefunItem item) { BlockStorage.addBlockInfo(b, "floor", "&rFloor #0"); BlockStorage.addBlockInfo(b, "owner", p.getUniqueId().toString()); } - + @Override public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) { return true; } }); - + new FoodFabricator(Categories.ELECTRICITY, SlimefunItems.FOOD_FABRICATOR, "FOOD_FABRICATOR", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.BILLON_INGOT, SlimefunItems.SILVER_INGOT, SlimefunItems.BILLON_INGOT, SlimefunItems.CAN, SlimefunItems.SMALL_CAPACITOR, SlimefunItems.CAN, null, SlimefunItems.ELECTRIC_MOTOR, null}) { - + @Override public ItemStack getProgressBar() { return new ItemStack(Material.GOLD_HOE); } - + @Override public String getInventoryTitle() { return "§cFood Fabricator"; @@ -4579,22 +4576,22 @@ public class SlimefunSetup { public int getEnergyConsumption() { return 7; } - + @Override public int getSpeed() { return 1; }; - + }.registerChargeableBlock(true, 256); - + new FoodFabricator(Categories.ELECTRICITY, SlimefunItems.FOOD_FABRICATOR_2, "FOOD_FABRICATOR_2", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.HARDENED_METAL_INGOT, SlimefunItems.REINFORCED_ALLOY_INGOT, SlimefunItems.HARDENED_METAL_INGOT, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.FOOD_FABRICATOR, SlimefunItems.ELECTRIC_MOTOR, null, SlimefunItems.ELECTRO_MAGNET, null}) { - + @Override public ItemStack getProgressBar() { return new ItemStack(Material.DIAMOND_HOE); } - + @Override public String getInventoryTitle() { return "§cFood Fabricator"; @@ -4604,62 +4601,62 @@ public class SlimefunSetup { public int getEnergyConsumption() { return 24; } - + @Override public int getSpeed() { return 6; }; - + }.registerChargeableBlock(true, 512); - + new SlimefunItem(Categories.MISC, SlimefunItems.ORGANIC_FOOD2, "ORGANIC_FOOD_WHEAT", new RecipeType(SlimefunItems.FOOD_FABRICATOR), new ItemStack[] {SlimefunItems.CAN, new ItemStack(Material.WHEAT), null, null, null, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.MISC, SlimefunItems.ORGANIC_FOOD3, "ORGANIC_FOOD_CARROT", new RecipeType(SlimefunItems.FOOD_FABRICATOR), new ItemStack[] {SlimefunItems.CAN, new ItemStack(Material.CARROT_ITEM), null, null, null, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.MISC, SlimefunItems.ORGANIC_FOOD4, "ORGANIC_FOOD_POTATO", new RecipeType(SlimefunItems.FOOD_FABRICATOR), new ItemStack[] {SlimefunItems.CAN, new ItemStack(Material.POTATO_ITEM), null, null, null, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.MISC, SlimefunItems.ORGANIC_FOOD5, "ORGANIC_FOOD_SEEDS", new RecipeType(SlimefunItems.FOOD_FABRICATOR), new ItemStack[] {SlimefunItems.CAN, new ItemStack(Material.SEEDS), null, null, null, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.MISC, SlimefunItems.ORGANIC_FOOD6, "ORGANIC_FOOD_BEETROOT", new RecipeType(SlimefunItems.FOOD_FABRICATOR), new ItemStack[] {SlimefunItems.CAN, new ItemStack(Material.BEETROOT), null, null, null, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.MISC, SlimefunItems.ORGANIC_FOOD7, "ORGANIC_FOOD_MELON", new RecipeType(SlimefunItems.FOOD_FABRICATOR), new ItemStack[] {SlimefunItems.CAN, new ItemStack(Material.MELON), null, null, null, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.MISC, SlimefunItems.ORGANIC_FOOD8, "ORGANIC_FOOD_APPLE", new RecipeType(SlimefunItems.FOOD_FABRICATOR), new ItemStack[] {SlimefunItems.CAN, new ItemStack(Material.APPLE), null, null, null, null, null, null, null}) .register(true); - + new AutoBreeder(Categories.ELECTRICITY, SlimefunItems.AUTO_BREEDER, "AUTO_BREEDER", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.GOLD_18K, SlimefunItems.CAN, SlimefunItems.GOLD_18K, SlimefunItems.ELECTRIC_MOTOR, new ItemStack(Material.HAY_BLOCK), SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.LEAD_INGOT, SlimefunItems.FOOD_FABRICATOR, SlimefunItems.LEAD_INGOT}) .registerChargeableBlock(true, 1024); - + new AnimalGrowthAccelerator(Categories.ELECTRICITY, SlimefunItems.ANIMAL_GROWTH_ACCELERATOR, "ANIMAL_GROWTH_ACCELERATOR", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, SlimefunItems.BLISTERING_INGOT_3, null, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.ORGANIC_FOOD2, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.REINFORCED_ALLOY_INGOT, SlimefunItems.AUTO_BREEDER, SlimefunItems.REINFORCED_ALLOY_INGOT}) .registerChargeableBlock(true, 1024); - + new XPCollector(Categories.ELECTRICITY, SlimefunItems.XP_COLLECTOR, "XP_COLLECTOR", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, SlimefunItems.BLISTERING_INGOT_3, null, SlimefunItems.WITHER_PROOF_OBSIDIAN, SlimefunItems.AUTO_ENCHANTER, SlimefunItems.WITHER_PROOF_OBSIDIAN, SlimefunItems.ALUMINUM_BRONZE_INGOT, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.ALUMINUM_BRONZE_INGOT}) .registerChargeableBlock(true, 1024); - + new FoodComposter(Categories.ELECTRICITY, SlimefunItems.FOOD_COMPOSTER, "FOOD_COMPOSTER", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.FOOD_FABRICATOR, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.CAN, SlimefunItems.MEDIUM_CAPACITOR, SlimefunItems.CAN, null, SlimefunItems.ELECTRIC_MOTOR, null}) { - + @Override public ItemStack getProgressBar() { return new ItemStack(Material.GOLD_HOE); } - + @Override public String getInventoryTitle() { return "§cFood Composter"; @@ -4674,17 +4671,17 @@ public class SlimefunSetup { public int getSpeed() { return 1; } - + }.registerChargeableBlock(true, 256); - + new FoodComposter(Categories.ELECTRICITY, SlimefunItems.FOOD_COMPOSTER_2, "FOOD_COMPOSTER_2", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.HARDENED_METAL_INGOT, SlimefunItems.REINFORCED_ALLOY_INGOT, SlimefunItems.HARDENED_METAL_INGOT, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.FOOD_COMPOSTER, SlimefunItems.ELECTRIC_MOTOR, null, SlimefunItems.ELECTRO_MAGNET, null}) { - + @Override public ItemStack getProgressBar() { return new ItemStack(Material.DIAMOND_HOE); } - + @Override public String getInventoryTitle() { return "§cFood Composter"; @@ -4699,37 +4696,37 @@ public class SlimefunSetup { public int getSpeed() { return 10; } - + }.registerChargeableBlock(true, 256); - + new SlimefunItem(Categories.MISC, SlimefunItems.FERTILIZER2, "FERTILIZER_WHEAT", new RecipeType(SlimefunItems.FOOD_COMPOSTER), new ItemStack[] {SlimefunItems.ORGANIC_FOOD2, null, null, null, null, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.MISC, SlimefunItems.FERTILIZER3, "FERTILIZER_CARROT", new RecipeType(SlimefunItems.FOOD_COMPOSTER), new ItemStack[] {SlimefunItems.ORGANIC_FOOD3, null, null, null, null, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.MISC, SlimefunItems.FERTILIZER4, "FERTILIZER_POTATO", new RecipeType(SlimefunItems.FOOD_COMPOSTER), new ItemStack[] {SlimefunItems.ORGANIC_FOOD4, null, null, null, null, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.MISC, SlimefunItems.FERTILIZER5, "FERTILIZER_SEEDS", new RecipeType(SlimefunItems.FOOD_COMPOSTER), new ItemStack[] {SlimefunItems.ORGANIC_FOOD5, null, null, null, null, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.MISC, SlimefunItems.FERTILIZER6, "FERTILIZER_BEETROOT", new RecipeType(SlimefunItems.FOOD_COMPOSTER), new ItemStack[] {SlimefunItems.ORGANIC_FOOD6, null, null, null, null, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.MISC, SlimefunItems.FERTILIZER7, "FERTILIZER_MELON", new RecipeType(SlimefunItems.FOOD_COMPOSTER), new ItemStack[] {SlimefunItems.ORGANIC_FOOD7, null, null, null, null, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.MISC, SlimefunItems.FERTILIZER8, "FERTILIZER_APPLE", new RecipeType(SlimefunItems.FOOD_COMPOSTER), new ItemStack[] {SlimefunItems.ORGANIC_FOOD8, null, null, null, null, null, null, null, null}) .register(true); - + new CropGrowthAccelerator(Categories.ELECTRICITY, SlimefunItems.CROP_GROWTH_ACCELERATOR, "CROP_GROWTH_ACCELERATOR", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, SlimefunItems.BLISTERING_INGOT_3, null, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.PROGRAMMABLE_ANDROID_FARMER, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.ELECTRO_MAGNET, SlimefunItems.ANIMAL_GROWTH_ACCELERATOR, SlimefunItems.ELECTRO_MAGNET}) { @@ -4748,9 +4745,9 @@ public class SlimefunSetup { public int getSpeed() { return 3; } - + }.registerChargeableBlock(true, 1024); - + new CropGrowthAccelerator(Categories.ELECTRICITY, SlimefunItems.CROP_GROWTH_ACCELERATOR_2, "CROP_GROWTH_ACCELERATOR_2", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, SlimefunItems.BLISTERING_INGOT_3, null, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.CROP_GROWTH_ACCELERATOR, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.ELECTRO_MAGNET, SlimefunItems.ADVANCED_CIRCUIT_BOARD, SlimefunItems.ELECTRO_MAGNET}) { @@ -4769,17 +4766,17 @@ public class SlimefunSetup { public int getSpeed() { return 4; } - + }.registerChargeableBlock(true, 1024); - + new Freezer(Categories.ELECTRICITY, SlimefunItems.FREEZER, "FREEZER", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, SlimefunItems.SILVER_INGOT, null, SlimefunItems.ELECTRIC_MOTOR, new ItemStack(Material.PACKED_ICE), SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.COOLING_UNIT, SlimefunItems.MEDIUM_CAPACITOR, SlimefunItems.COOLING_UNIT}) { - + @Override public ItemStack getProgressBar() { return new ItemStack(Material.GOLD_PICKAXE); } - + @Override public String getInventoryTitle() { return "§bFreezer"; @@ -4789,22 +4786,22 @@ public class SlimefunSetup { public int getEnergyConsumption() { return 9; } - + @Override public int getSpeed() { return 1; } - + }.registerChargeableBlock(true, 256); - + new Freezer(Categories.ELECTRICITY, SlimefunItems.FREEZER_2, "FREEZER_2", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, SlimefunItems.SILVER_INGOT, null, SlimefunItems.ELECTRO_MAGNET, SlimefunItems.FREEZER, SlimefunItems.ELECTRO_MAGNET, SlimefunItems.COOLING_UNIT, SlimefunItems.ALUMINUM_BRASS_INGOT, SlimefunItems.COOLING_UNIT}) { - + @Override public ItemStack getProgressBar() { return new ItemStack(Material.DIAMOND_PICKAXE); } - + @Override public String getInventoryTitle() { return "§bFreezer"; @@ -4814,34 +4811,34 @@ public class SlimefunSetup { public int getEnergyConsumption() { return 15; } - + @Override public int getSpeed() { return 2; } - + }.registerChargeableBlock(true, 256); - + new SlimefunItem(Categories.TECH_MISC, SlimefunItems.REACTOR_COOLANT_CELL, "REACTOR_COOLANT_CELL", new RecipeType(SlimefunItems.FREEZER), new ItemStack[] {new ItemStack(Material.PACKED_ICE), null, null, null, null, null, null, null, null}) .register(true); - + new SlimefunItem(Categories.RESOURCES, SlimefunItems.NEPTUNIUM, "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, SlimefunItems.PLUTONIUM, "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, SlimefunItems.BOOSTED_URANIUM, "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 AReactor(Categories.ELECTRICITY, SlimefunItems.NUCLEAR_REACTOR, "NUCLEAR_REACTOR", RecipeType.ENHANCED_CRAFTING_TABLE, @@ -4883,37 +4880,79 @@ public class SlimefunSetup { } } .registerChargeableBlock(true, 16384); - + + new AReactor(Categories.ELECTRICITY, SlimefunItems.NETHERSTAR_REACTOR, "NETHERSTAR_REACTOR", RecipeType.ENHANCED_CRAFTING_TABLE, + new ItemStack[]{SlimefunItems.BOOSTED_URANIUM, SlimefunItems.CARBONADO_EDGED_CAPACITOR, SlimefunItems.BOOSTED_URANIUM, SlimefunItems.REINFORCED_PLATE, new ItemStack(Material.NETHER_STAR), SlimefunItems.REINFORCED_PLATE, SlimefunItems.CORINTHIAN_BRONZE_INGOT, SlimefunItems.REINFORCED_PLATE, SlimefunItems.CORINTHIAN_BRONZE_INGOT}){ + @Override + public String getInventoryTitle() { + return "§fNether Star Reactor"; + } + + @Override + public void registerDefaultRecipes() { + registerFuel(new MachineFuel(1200, new ItemStack(Material.NETHER_STAR))); + } + + @Override + public int getEnergyProduction() { + return 360; + } + + @Override + public void extraTick(final Location l) { + Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { + @Override + public void run() { + for (Entity entity : ReactorHologram.getArmorStand(l).getNearbyEntities(5, 5, 5)) { + if (entity instanceof Player) { + ((Player) entity).addPotionEffect(new PotionEffect(PotionEffectType.WITHER, 60, 3)); + } + } + } + }, 0); + } + + @Override + public boolean needsCooling() { + return true; + } + + @Override + public ItemStack getProgressBar() { + return new ItemStack(Material.NETHER_STAR); + } + }.registerChargeableBlock(true, 32768); + new SlimefunItem(Categories.CARGO, SlimefunItems.CARGO_MOTOR, "CARGO_MOTOR", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.HARDENED_GLASS, SlimefunItems.ELECTRO_MAGNET, SlimefunItems.HARDENED_GLASS, SlimefunItems.SILVER_INGOT, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.SILVER_INGOT, SlimefunItems.HARDENED_GLASS, SlimefunItems.ELECTRO_MAGNET, SlimefunItems.HARDENED_GLASS}, new CustomItem(SlimefunItems.CARGO_MOTOR, 4)) .register(true); - + new SlimefunItem(Categories.CARGO, SlimefunItems.CARGO_MANAGER, "CARGO_MANAGER", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, SlimefunItems.HOLOGRAM_PROJECTOR, null, SlimefunItems.REINFORCED_PLATE, SlimefunItems.CARGO_MOTOR, SlimefunItems.REINFORCED_PLATE, SlimefunItems.ALUMINUM_BRONZE_INGOT, SlimefunItems.ANDROID_MEMORY_CORE, SlimefunItems.ALUMINUM_BRONZE_INGOT}) .register(true, new BlockTicker() { - + @Override public void uniqueTick() { } - + @Override public void tick(Block b, SlimefunItem item, Config data) { CargoNet.tick(b); } - + @Override public boolean isSynchronized() { return false; } }, new ItemInteractionHandler() { - + @Override public boolean onRightClick(ItemUseEvent e, Player p, ItemStack stack) { if (e.getClickedBlock() == null) return false; SlimefunItem item = BlockStorage.check(e.getClickedBlock()); if (item == null || !item.getName().equals("CARGO_MANAGER")) return false; e.setCancelled(true); - + if (BlockStorage.getBlockInfo(e.getClickedBlock(), "visualizer") == null) { BlockStorage.addBlockInfo(e.getClickedBlock(), "visualizer", "disabled"); p.sendMessage("§cCargo Net Visualizer: " + "§4\u2718"); @@ -4925,31 +4964,31 @@ public class SlimefunSetup { return true; } }); - + SlimefunItem.registerBlockHandler("CARGO_MANAGER", new SlimefunBlockHandler() { - + @Override public void onPlace(Player p, Block b, SlimefunItem item) { } - + @Override public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) { CargoHologram.remove(b); return true; } }); - + new SlimefunItem(Categories.CARGO, SlimefunItems.CARGO_NODE, "CARGO_NODE", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.BRONZE_INGOT, SlimefunItems.SILVER_INGOT, SlimefunItems.BRONZE_INGOT, SlimefunItems.SILVER_INGOT, SlimefunItems.CARGO_MOTOR, SlimefunItems.SILVER_INGOT, SlimefunItems.BRONZE_INGOT, SlimefunItems.SILVER_INGOT, SlimefunItems.BRONZE_INGOT}, new CustomItem(SlimefunItems.CARGO_NODE, 4)) .register(true, new ItemInteractionHandler() { - + @Override public boolean onRightClick(final ItemUseEvent e, Player p, ItemStack stack) { if (e.getClickedBlock() == null) return false; SlimefunItem item = BlockStorage.check(e.getClickedBlock()); if (item == null) return false; if (!item.getName().equals("CARGO_NODE")) return false; - + if (CargoNet.isConnected(e.getClickedBlock())) { p.sendMessage("§7Connected: " + "§2\u2714"); } @@ -4959,28 +4998,28 @@ public class SlimefunSetup { return true; } }); - + new CargoInputNode(Categories.CARGO, SlimefunItems.CARGO_INPUT, "CARGO_NODE_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 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 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 ItemStack[] {null, new ItemStack(Material.WORKBENCH), null, SlimefunItems.CARGO_MOTOR, SlimefunItems.BLISTERING_INGOT_3, SlimefunItems.CARGO_MOTOR, null, SlimefunItems.ELECTRIC_MOTOR, null}) { - + @Override public int getEnergyConsumption() { return 10; } }.registerChargeableBlock(true, 256); - + new ReactorAccessPort(Categories.ELECTRICITY, SlimefunItems.REACTOR_ACCESS_PORT, "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); @@ -4992,15 +5031,15 @@ public class SlimefunSetup { new TrashCan(Categories.CARGO, SlimefunItems.TRASH_CAN, "TRASH_CAN_BLOCK", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, SlimefunItems.PORTABLE_DUSTBIN, null, SlimefunItems.LEAD_INGOT, SlimefunItems.CARGO_MOTOR, SlimefunItems.LEAD_INGOT, SlimefunItems.ALUMINUM_INGOT, SlimefunItems.LEAD_INGOT, SlimefunItems.ALUMINUM_INGOT}) .register(true); - + new CarbonPress(Categories.ELECTRICITY, SlimefunItems.CARBON_PRESS, "CARBON_PRESS", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.CARBON, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.CARBON, SlimefunItems.CARBON, SlimefunItems.HEATED_PRESSURE_CHAMBER, SlimefunItems.CARBON, SlimefunItems.HEATING_COIL, SlimefunItems.CARBONADO, SlimefunItems.HEATING_COIL}) { - + @Override public ItemStack getProgressBar() { return new ItemStack(Material.DIAMOND_PICKAXE); } - + @Override public String getInventoryTitle() { return "§cCarbon Press"; @@ -5010,22 +5049,22 @@ public class SlimefunSetup { public int getEnergyConsumption() { return 10; } - + @Override public int getSpeed() { return 1; } - + }.registerChargeableBlock(true, 256); - + new CarbonPress(Categories.ELECTRICITY, SlimefunItems.CARBON_PRESS_2, "CARBON_PRESS_2", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.CARBONADO, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.CARBONADO, SlimefunItems.CARBON, SlimefunItems.CARBON_PRESS, SlimefunItems.CARBON, SlimefunItems.HEATING_COIL, SlimefunItems.ELECTRO_MAGNET, SlimefunItems.HEATING_COIL}) { - + @Override public ItemStack getProgressBar() { return new ItemStack(Material.DIAMOND_PICKAXE); } - + @Override public String getInventoryTitle() { return "§cCarbon Press"; @@ -5040,17 +5079,17 @@ public class SlimefunSetup { public int getSpeed() { return 3; } - + }.registerChargeableBlock(true, 512); - + new CarbonPress(Categories.ELECTRICITY, SlimefunItems.CARBON_PRESS_3, "CARBON_PRESS_3", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.CARBONADO, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.CARBONADO, SlimefunItems.REINFORCED_ALLOY_INGOT, SlimefunItems.CARBON_PRESS_2, SlimefunItems.REINFORCED_ALLOY_INGOT, SlimefunItems.HEATING_COIL, SlimefunItems.ELECTRO_MAGNET, SlimefunItems.HEATING_COIL}) { - + @Override public ItemStack getProgressBar() { return new ItemStack(Material.DIAMOND_PICKAXE); } - + @Override public String getInventoryTitle() { return "§cCarbon Press"; @@ -5060,32 +5099,32 @@ public class SlimefunSetup { public int getEnergyConsumption() { return 90; } - + @Override public int getSpeed() { return 15; } - + }.registerChargeableBlock(true, 512); - + new ElectricSmeltery(Categories.ELECTRICITY, SlimefunItems.ELECTRIC_SMELTERY, "ELECTRIC_SMELTERY", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {new ItemStack(Material.NETHER_BRICK_ITEM), SlimefunItems.ELECTRIC_MOTOR, new ItemStack(Material.NETHER_BRICK_ITEM), SlimefunItems.HEATING_COIL, SlimefunItems.ELECTRIC_INGOT_FACTORY, SlimefunItems.HEATING_COIL, SlimefunItems.GILDED_IRON, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.GILDED_IRON}) { - + @Override public void registerDefaultRecipes() { } - + @Override public int getEnergyConsumption() { return 10; } - + }.registerChargeableBlock(true, 512); - + new WitherAssembler(Categories.ELECTRICITY, SlimefunItems.WITHER_ASSEMBLER, "WITHER_ASSEMBLER", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.BLISTERING_INGOT_3, new ItemStack(Material.NETHER_STAR), SlimefunItems.BLISTERING_INGOT_3, SlimefunItems.WITHER_PROOF_OBSIDIAN, SlimefunItems.ANDROID_MEMORY_CORE, SlimefunItems.WITHER_PROOF_OBSIDIAN, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.REINFORCED_ALLOY_INGOT, SlimefunItems.CARBONADO_EDGED_CAPACITOR}) .registerChargeableBlock(true, 4096); - + } } From 4e46d46b752ca7635b7b0d5aa0b390e0995cc943 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 20 Nov 2016 21:18:04 +0100 Subject: [PATCH 28/37] Forgot to add this... --- .../Slimefun/holograms/ReactorHologram.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/me/mrCookieSlime/Slimefun/holograms/ReactorHologram.java diff --git a/src/me/mrCookieSlime/Slimefun/holograms/ReactorHologram.java b/src/me/mrCookieSlime/Slimefun/holograms/ReactorHologram.java new file mode 100644 index 000000000..571e5a100 --- /dev/null +++ b/src/me/mrCookieSlime/Slimefun/holograms/ReactorHologram.java @@ -0,0 +1,31 @@ +package me.mrCookieSlime.Slimefun.holograms; + +import org.bukkit.Location; +import org.bukkit.entity.ArmorStand; +import org.bukkit.entity.Entity; + +/** + * Created by John on 20.11.2016. + */ +public class ReactorHologram { + + public static ArmorStand getArmorStand(Location reactor) { + Location l = new Location(reactor.getWorld(), reactor.getX() + 0.5, reactor.getY(), reactor.getZ() + 0.5); + + for (Entity n : l.getChunk().getEntities()) { + if (n instanceof ArmorStand) { + if (n.getCustomName() == null && l.distanceSquared(n.getLocation()) < 0.4D) return (ArmorStand) n; + } + } + + ArmorStand hologram = ArmorStandFactory.createHidden(l); + hologram.setCustomNameVisible(false); + hologram.setCustomName(null); + return hologram; + } + + public static void remove(Location l) { + ArmorStand hologram = getArmorStand(l); + hologram.remove(); + } +} From 60635d6475f76e279347c1f148e27c6334d9e494 Mon Sep 17 00:00:00 2001 From: mrCookieSlime Date: Sun, 20 Nov 2016 21:35:24 +0100 Subject: [PATCH 29/37] Added Coolant Hologram --- .../Slimefun/Android/ProgrammableAndroid.java | 1 - .../SlimefunItem/abstractItems/AReactor.java | 135 +++++++++--------- .../abstractItems/MachineHelper.java | 5 + .../machines/AutoDisenchanter.java | 17 ++- .../Slimefun/Setup/SlimefunSetup.java | 62 ++++---- .../Slimefun/SlimefunStartup.java | 3 +- .../Slimefun/holograms/ReactorHologram.java | 18 ++- 7 files changed, 130 insertions(+), 111 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/Android/ProgrammableAndroid.java b/src/me/mrCookieSlime/Slimefun/Android/ProgrammableAndroid.java index c88be9b8e..64e08c339 100644 --- a/src/me/mrCookieSlime/Slimefun/Android/ProgrammableAndroid.java +++ b/src/me/mrCookieSlime/Slimefun/Android/ProgrammableAndroid.java @@ -821,7 +821,6 @@ public abstract class ProgrammableAndroid extends SlimefunItem { ItemStack drop = ExoticGarden.harvestPlant(block); if (drop != null && fits(b, drop)) { pushItems(b, drop); - block.setData((byte) 0); block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType()); } } diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java index ed315ee6c..2de5f2a88 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java @@ -7,30 +7,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import me.mrCookieSlime.CSCoreLibPlugin.CSCoreLib; -import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config; -import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu.MenuClickHandler; -import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ClickAction; -import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.InvUtils; -import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem; -import me.mrCookieSlime.CSCoreLibPlugin.general.World.CustomSkull; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.ReactorAccessPort; -import me.mrCookieSlime.Slimefun.SlimefunStartup; -import me.mrCookieSlime.Slimefun.Lists.RecipeType; -import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; -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.Setup.SlimefunManager; -import me.mrCookieSlime.Slimefun.api.BlockStorage; -import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock; -import me.mrCookieSlime.Slimefun.api.energy.EnergyTicker; -import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu; -import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset; -import me.mrCookieSlime.Slimefun.api.item_transport.ItemTransportFlow; - -import me.mrCookieSlime.Slimefun.holograms.ReactorHologram; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; @@ -41,7 +17,30 @@ import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.material.MaterialData; -import org.bukkit.scheduler.BukkitRunnable; + +import me.mrCookieSlime.CSCoreLibPlugin.CSCoreLib; +import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config; +import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu.MenuClickHandler; +import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ClickAction; +import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.InvUtils; +import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem; +import me.mrCookieSlime.CSCoreLibPlugin.general.World.CustomSkull; +import me.mrCookieSlime.Slimefun.SlimefunStartup; +import me.mrCookieSlime.Slimefun.Lists.RecipeType; +import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; +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.Objects.SlimefunItem.machines.ReactorAccessPort; +import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; +import me.mrCookieSlime.Slimefun.api.BlockStorage; +import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock; +import me.mrCookieSlime.Slimefun.api.energy.EnergyTicker; +import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu; +import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset; +import me.mrCookieSlime.Slimefun.api.item_transport.ItemTransportFlow; +import me.mrCookieSlime.Slimefun.holograms.ReactorHologram; public abstract class AReactor extends SlimefunItem { @@ -84,7 +83,7 @@ public abstract class AReactor extends SlimefunItem { BlockStorage.addBlockInfo(b, "reactor-mode", "generator"); } if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "reactor-mode").equals("generator")) { - menu.replaceExistingItem(4, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "§7Focus: §eElectricity", "", "§6Your Reactor will focus on Power Generation", "§6If your Energy Network doesn't need Power", "§6it will not produce any either", "", "§7> Click to change the Focus to §eProduction")); + menu.replaceExistingItem(4, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "§7Focus: §eElectricity", "", "§6Your Reactor will focus on Power Generation", "§6If your Energy Network doesn't need Power", "§6it will not produce any either", "", "§7> Click to change the Focus to §eProduction")); menu.addMenuClickHandler(4, new MenuClickHandler() { @Override @@ -96,7 +95,7 @@ public abstract class AReactor extends SlimefunItem { }); } else { - menu.replaceExistingItem(4, new CustomItem(SlimefunItems.PLUTONIUM, "§7Focus: §eProduction", "", "§6Your Reactor will focus on producing goods", "§6If your Energy Network doesn't need Power", "§6it will continue to run and simply will", "§6not generate any Power in the mean time", "", "§7> Click to change the Focus to §ePower Generation")); + menu.replaceExistingItem(4, new CustomItem(SlimefunItems.PLUTONIUM, "§7Focus: §eProduction", "", "§6Your Reactor will focus on producing goods", "§6If your Energy Network doesn't need Power", "§6it will continue to run and simply will", "§6not generate any Power in the mean time", "", "§7> Click to change the Focus to §ePower Generation")); menu.addMenuClickHandler(4, new MenuClickHandler() { @Override @@ -212,7 +211,7 @@ public abstract class AReactor extends SlimefunItem { }); - preset.addItem(1, new CustomItem(SlimefunItems.URANIUM, "§7Fuel Slot", "", "§rThis Slot accepts radioactive Fuel such as:", "§2Uranium §ror §aNeptunium"), + preset.addItem(1, new CustomItem(SlimefunItems.URANIUM, "§7Fuel Slot", "", "§rThis Slot accepts radioactive Fuel such as:", "§2Uranium §ror §aNeptunium"), new MenuClickHandler() { @Override @@ -223,9 +222,9 @@ public abstract class AReactor extends SlimefunItem { }); if (needsCooling()) { - preset.addItem(7, new CustomItem(SlimefunItems.REACTOR_COOLANT_CELL, "§bCoolant Slot", "", "§rThis Slot accepts Coolant Cells", "§4Without any Coolant Cells, your Reactor", "§4will explode")); + preset.addItem(7, new CustomItem(SlimefunItems.REACTOR_COOLANT_CELL, "§bCoolant Slot", "", "§rThis Slot accepts Coolant Cells", "§4Without any Coolant Cells, your Reactor", "§4will explode")); } else { - preset.addItem(7, new CustomItem(SlimefunItems.REACTOR_COOLANT_CELL, "§bCoolant Slot", "", "§rThis Slot accepts Coolant Cells")); + preset.addItem(7, new CustomItem(SlimefunItems.REACTOR_COOLANT_CELL, "§bCoolant Slot", "", "§rThis Slot accepts Coolant Cells")); } preset.addMenuClickHandler(7, new MenuClickHandler() { @Override @@ -294,19 +293,6 @@ public abstract class AReactor extends SlimefunItem { if (ChargableBlock.getMaxCharge(l) - ChargableBlock.getCharge(l) >= getEnergyProduction() || !BlockStorage.getBlockInfo(l, "reactor-mode").equals("generator")) { progress.put(l, timeleft - 1); - boolean coolant = needsCooling() && (processing.get(l).getTicks() - timeleft) % 25 == 0; - - ItemStack item = getProgressBar().clone(); - ItemMeta im = item.getItemMeta(); - im.setDisplayName(" "); - List lore = new ArrayList(); - lore.add(MachineHelper.getProgress(timeleft, processing.get(l).getTicks())); - lore.add(MachineHelper.getCoolant(timeleft, processing.get(l).getTicks())); - lore.add(""); - lore.add(MachineHelper.getTimeLeft(timeleft / 2)); - im.setLore(lore); - item.setItemMeta(im); - Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() { @Override @@ -314,30 +300,49 @@ public abstract class AReactor extends SlimefunItem { if (!l.getBlock().getRelative(cooling[CSCoreLib.randomizer().nextInt(cooling.length)]).isLiquid()) explode.add(l); } }); - - BlockStorage.getInventory(l).replaceExistingItem(22, item); - if (coolant) { - if (port != null) { - for (int slot: getCoolantSlots()) { - if (SlimefunManager.isItemSimiliar(port.getItemInSlot(slot), SlimefunItems.REACTOR_COOLANT_CELL, true)) { - port.replaceExistingItem(slot, pushItems(l, port.getItemInSlot(slot), getCoolantSlots())); + if (needsCooling()) { + boolean coolant = (processing.get(l).getTicks() - timeleft) % 25 == 0; + + ItemStack item = getProgressBar().clone(); + ItemMeta im = item.getItemMeta(); + im.setDisplayName(" "); + List lore = new ArrayList(); + lore.add(MachineHelper.getProgress(timeleft, processing.get(l).getTicks())); + lore.add(MachineHelper.getCoolant(timeleft, processing.get(l).getTicks())); + lore.add(""); + lore.add(MachineHelper.getTimeLeft(timeleft / 2)); + im.setLore(lore); + item.setItemMeta(im); + + BlockStorage.getInventory(l).replaceExistingItem(22, item); + + if (coolant) { + if (port != null) { + for (int slot: getCoolantSlots()) { + if (SlimefunManager.isItemSimiliar(port.getItemInSlot(slot), SlimefunItems.REACTOR_COOLANT_CELL, true)) { + port.replaceExistingItem(slot, pushItems(l, port.getItemInSlot(slot), getCoolantSlots())); + } } } - } - - boolean explosion = true; - for (int slot: getCoolantSlots()) { - if (SlimefunManager.isItemSimiliar(BlockStorage.getInventory(l).getItemInSlot(slot), SlimefunItems.REACTOR_COOLANT_CELL, true)) { - BlockStorage.getInventory(l).replaceExistingItem(slot, InvUtils.decreaseItem(BlockStorage.getInventory(l).getItemInSlot(slot), 1)); - explosion = false; - break; + + boolean explosion = true; + for (int slot: getCoolantSlots()) { + if (SlimefunManager.isItemSimiliar(BlockStorage.getInventory(l).getItemInSlot(slot), SlimefunItems.REACTOR_COOLANT_CELL, true)) { + BlockStorage.getInventory(l).replaceExistingItem(slot, InvUtils.decreaseItem(BlockStorage.getInventory(l).getItemInSlot(slot), 1)); + ReactorHologram.update(l, "§b\u2744 §7100%"); + explosion = false; + break; + } + } + + if (explosion) { + explode.add(l); + return 0; } } - - if (explosion) { - explode.add(l); - return 0; + else { + ReactorHologram.update(l, "§b\u2744 §7" + MachineHelper.getPercentage(timeleft, processing.get(l).getTicks()) + "%"); } } @@ -405,7 +410,7 @@ public abstract class AReactor extends SlimefunItem { final boolean explosion = explode.contains(l); if (explosion) { BlockStorage.getInventory(l).close(); - Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new BukkitRunnable() { + Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() { @Override public void run() { ReactorHologram.remove(l); @@ -426,7 +431,7 @@ public abstract class AReactor extends SlimefunItem { int size = BlockStorage.getInventory(l).toInventory().getSize(); Inventory inv = Bukkit.createInventory(null, size); for (int i = 0; i < size; i++) { - inv.setItem(i, new CustomItem(Material.COMMAND, " §4ALL YOUR PLACEHOLDERS ARE BELONG TO US", 0)); + inv.setItem(i, new CustomItem(Material.COMMAND, " §4ALL YOUR PLACEHOLDERS ARE BELONG TO US", 0)); } for (int slot: getOutputSlots()) { inv.setItem(slot, BlockStorage.getInventory(l).getItemInSlot(slot)); @@ -438,7 +443,7 @@ public abstract class AReactor extends SlimefunItem { int size = BlockStorage.getInventory(l).toInventory().getSize(); Inventory inv = Bukkit.createInventory(null, size); for (int i = 0; i < size; i++) { - inv.setItem(i, new CustomItem(Material.COMMAND, " §4ALL YOUR PLACEHOLDERS ARE BELONG TO US", 0)); + inv.setItem(i, new CustomItem(Material.COMMAND, " §4ALL YOUR PLACEHOLDERS ARE BELONG TO US", 0)); } for (int slot: slots) { inv.setItem(slot, BlockStorage.getInventory(l).getItemInSlot(slot)); diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineHelper.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineHelper.java index 6d2f71d0e..19d0f1b2e 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineHelper.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineHelper.java @@ -69,6 +69,11 @@ public class MachineHelper { return ChatColor.translateAlternateColorCodes('&', progress.toString()); } + public static float getPercentage(int time, int total) { + int passed = ((total - time) % 25); + return Math.round(((((25 - passed) * 100.0f) / 25) * 100.0f) / 100.0f); + } + public static short getDurability(ItemStack item, int timeleft, int max) { return (short) ((item.getType().getMaxDurability() / max) * timeleft); } diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AutoDisenchanter.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AutoDisenchanter.java index 4c063005e..5a90b78fa 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AutoDisenchanter.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AutoDisenchanter.java @@ -7,6 +7,14 @@ import java.util.List; import java.util.Map; import java.util.Set; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.EnchantmentStorageMeta; +import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.material.MaterialData; + import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.InvUtils; import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem; import me.mrCookieSlime.EmeraldEnchants.EmeraldEnchants; @@ -17,19 +25,10 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AContainer; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.MachineHelper; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.MachineRecipe; -import me.mrCookieSlime.Slimefun.SlimefunStartup; import me.mrCookieSlime.Slimefun.api.BlockStorage; import me.mrCookieSlime.Slimefun.api.Slimefun; import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.enchantments.Enchantment; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.EnchantmentStorageMeta; -import org.bukkit.inventory.meta.ItemMeta; -import org.bukkit.material.MaterialData; - public class AutoDisenchanter extends AContainer { public AutoDisenchanter(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe) { diff --git a/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java b/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java index 77a1991c1..07da73fbe 100644 --- a/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java +++ b/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java @@ -2990,7 +2990,7 @@ public class SlimefunSetup { new ItemStack[] {null, new ItemStack(Material.ENCHANTMENT_TABLE), null, SlimefunItems.MAGIC_LUMP_3, SlimefunItems.GOLD_8K, SlimefunItems.MAGIC_LUMP_3, new ItemStack(Material.OBSIDIAN), SlimefunItems.GOLD_8K, new ItemStack(Material.OBSIDIAN)}) .register(true); - new SlimefunItem(Categories.BIRTHDAY, new CustomItem(new MaterialData(Material.CAKE), "§bBirthday Cake"), "BIRTHDAY_CAKE", RecipeType.ENHANCED_CRAFTING_TABLE, + new SlimefunItem(Categories.BIRTHDAY, new CustomItem(new MaterialData(Material.CAKE), "§bBirthday Cake"), "BIRTHDAY_CAKE", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, new ItemStack(Material.TORCH), null, new ItemStack(Material.SUGAR), new ItemStack(Material.CAKE), new ItemStack(Material.SUGAR), null, null, null}) .register(true); @@ -3150,7 +3150,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§bElectric Furnace"; + return "§bElectric Furnace"; } @Override @@ -3175,7 +3175,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§bElectric Furnace"; + return "§bElectric Furnace"; } @Override @@ -3200,7 +3200,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§bElectric Furnace"; + return "§bElectric Furnace"; } @Override @@ -3309,7 +3309,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cElectric Ingot Factory"; + return "§cElectric Ingot Factory"; } @Override @@ -3334,7 +3334,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cElectric Ingot Factory"; + return "§cElectric Ingot Factory"; } @Override @@ -3359,7 +3359,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cElectric Ingot Factory"; + return "§cElectric Ingot Factory"; } @Override @@ -3388,7 +3388,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§bElectric Ore Grinder"; + return "§bElectric Ore Grinder"; } @Override @@ -3422,7 +3422,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§bElectric Ore Grinder"; + return "§bElectric Ore Grinder"; } @Override @@ -3559,7 +3559,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cCoal Generator"; + return "§cCoal Generator"; } @Override @@ -3621,7 +3621,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§2Bio Reactor"; + return "§2Bio Reactor"; } @Override @@ -3679,8 +3679,8 @@ public class SlimefunSetup { if (e.getClickedBlock() != null && ChargableBlock.isChargable(e.getClickedBlock())) { e.setCancelled(true); p.sendMessage(""); - p.sendMessage("§bStored Energy: §3" + DoubleHandler.getFancyDouble(ChargableBlock.getCharge(e.getClickedBlock())) + " J"); - p.sendMessage("§bCapacity: §3" + DoubleHandler.getFancyDouble(ChargableBlock.getMaxCharge(e.getClickedBlock())) + " J"); + p.sendMessage("§bStored Energy: §3" + DoubleHandler.getFancyDouble(ChargableBlock.getCharge(e.getClickedBlock())) + " J"); + p.sendMessage("§bCapacity: §3" + DoubleHandler.getFancyDouble(ChargableBlock.getMaxCharge(e.getClickedBlock())) + " J"); p.sendMessage(""); } return true; @@ -4361,7 +4361,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§4Lava Generator"; + return "§4Lava Generator"; } @Override @@ -4387,7 +4387,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cCombustion Reactor"; + return "§cCombustion Reactor"; } @Override @@ -4569,7 +4569,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cFood Fabricator"; + return "§cFood Fabricator"; } @Override @@ -4594,7 +4594,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cFood Fabricator"; + return "§cFood Fabricator"; } @Override @@ -4659,7 +4659,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cFood Composter"; + return "§cFood Composter"; } @Override @@ -4684,7 +4684,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cFood Composter"; + return "§cFood Composter"; } @Override @@ -4779,7 +4779,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§bFreezer"; + return "§bFreezer"; } @Override @@ -4804,7 +4804,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§bFreezer"; + return "§bFreezer"; } @Override @@ -4845,7 +4845,7 @@ public class SlimefunSetup { 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}){ @Override public String getInventoryTitle() { - return "§2Nuclear Reactor"; + return "§2Nuclear Reactor"; } @Override @@ -4862,7 +4862,7 @@ public class SlimefunSetup { @Override public void extraTick(Location l) { - + } @Override @@ -4885,7 +4885,7 @@ public class SlimefunSetup { new ItemStack[]{SlimefunItems.BOOSTED_URANIUM, SlimefunItems.CARBONADO_EDGED_CAPACITOR, SlimefunItems.BOOSTED_URANIUM, SlimefunItems.REINFORCED_PLATE, new ItemStack(Material.NETHER_STAR), SlimefunItems.REINFORCED_PLATE, SlimefunItems.CORINTHIAN_BRONZE_INGOT, SlimefunItems.REINFORCED_PLATE, SlimefunItems.CORINTHIAN_BRONZE_INGOT}){ @Override public String getInventoryTitle() { - return "§fNether Star Reactor"; + return "§fNether Star Reactor"; } @Override @@ -4955,11 +4955,11 @@ public class SlimefunSetup { if (BlockStorage.getBlockInfo(e.getClickedBlock(), "visualizer") == null) { BlockStorage.addBlockInfo(e.getClickedBlock(), "visualizer", "disabled"); - p.sendMessage("§cCargo Net Visualizer: " + "§4\u2718"); + p.sendMessage("§cCargo Net Visualizer: " + "§4\u2718"); } else { BlockStorage.addBlockInfo(e.getClickedBlock(), "visualizer", null); - p.sendMessage("§cCargo Net Visualizer: " + "§2\u2714"); + p.sendMessage("§cCargo Net Visualizer: " + "§2\u2714"); } return true; } @@ -4990,10 +4990,10 @@ public class SlimefunSetup { if (!item.getName().equals("CARGO_NODE")) return false; if (CargoNet.isConnected(e.getClickedBlock())) { - p.sendMessage("§7Connected: " + "§2\u2714"); + p.sendMessage("§7Connected: " + "§2\u2714"); } else { - p.sendMessage("§7Connected: " + "§4\u2718"); + p.sendMessage("§7Connected: " + "§4\u2718"); } return true; } @@ -5042,7 +5042,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cCarbon Press"; + return "§cCarbon Press"; } @Override @@ -5067,7 +5067,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cCarbon Press"; + return "§cCarbon Press"; } @Override @@ -5092,7 +5092,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cCarbon Press"; + return "§cCarbon Press"; } @Override diff --git a/src/me/mrCookieSlime/Slimefun/SlimefunStartup.java b/src/me/mrCookieSlime/Slimefun/SlimefunStartup.java index 6bf85d286..9ee366e32 100644 --- a/src/me/mrCookieSlime/Slimefun/SlimefunStartup.java +++ b/src/me/mrCookieSlime/Slimefun/SlimefunStartup.java @@ -30,6 +30,7 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; +import org.bukkit.scheduler.BukkitRunnable; import me.mrCookieSlime.CSCoreLibPlugin.CSCoreLib; import me.mrCookieSlime.CSCoreLibPlugin.PluginUtils; @@ -82,8 +83,6 @@ import me.mrCookieSlime.Slimefun.listeners.ItemListener; import me.mrCookieSlime.Slimefun.listeners.TalismanListener; import me.mrCookieSlime.Slimefun.listeners.TeleporterListener; import me.mrCookieSlime.Slimefun.listeners.ToolListener; -import org.bukkit.scheduler.BukkitRunnable; -import org.bukkit.scheduler.BukkitTask; public class SlimefunStartup extends JavaPlugin { diff --git a/src/me/mrCookieSlime/Slimefun/holograms/ReactorHologram.java b/src/me/mrCookieSlime/Slimefun/holograms/ReactorHologram.java index 571e5a100..8734a8dc0 100644 --- a/src/me/mrCookieSlime/Slimefun/holograms/ReactorHologram.java +++ b/src/me/mrCookieSlime/Slimefun/holograms/ReactorHologram.java @@ -1,12 +1,13 @@ package me.mrCookieSlime.Slimefun.holograms; +import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Entity; -/** - * Created by John on 20.11.2016. - */ +import me.mrCookieSlime.Slimefun.SlimefunStartup; + + public class ReactorHologram { public static ArmorStand getArmorStand(Location reactor) { @@ -23,6 +24,17 @@ public class ReactorHologram { hologram.setCustomName(null); return hologram; } + + public static void update(final Location l, final String name) { + Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() { + + @Override + public void run() { + ArmorStand hologram = getArmorStand(l); + hologram.setCustomName(name); + } + }); + } public static void remove(Location l) { ArmorStand hologram = getArmorStand(l); From 1b674aed05606d36b44d0d46be48b9f660edafd7 Mon Sep 17 00:00:00 2001 From: mrCookieSlime Date: Sun, 20 Nov 2016 21:40:05 +0100 Subject: [PATCH 30/37] Minor Changes to the Nether Star Reactor --- src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java | 4 ++-- src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java b/src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java index a8a56c151..ffe96ce80 100644 --- a/src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java +++ b/src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java @@ -679,7 +679,7 @@ public class SlimefunItems { NUCLEAR_REACTOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "&2Nuclear Reactor", "", "§rRequires Cooling!", "§8\u21E8 §bMust be surrounded by Water", "§8\u21E8 §bMust be supplied with Reactor Coolant Cells", "", "§4End-Game Generator", "§8\u21E8 §e\u26A1 §716384 J Buffer", "§8\u21E8 §e\u26A1 §7500 J/s"); - NETHERSTAR_REACTOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "&fNether Star Reactor", "", "§fUses the power of Nether Stars", "§fto generate large amounts of energy", "§8\u21E8 §bMust be surrounded by Water", "", "§4End-Game Generator", "§8\u21E8 §732768 J Buffer", "§8\u21E8 §e\u26A1 §7720 J/s", "§8\u21E8 §7Wither Effect around the Reactor"); + NETHERSTAR_REACTOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "&fNether Star Reactor", "", "§fRuns on Nether Stars", "§8\u21E8 §bMust be surrounded by Water", "", "§4End-Game Generator", "§8\u21E8 §732768 J Buffer", "§8\u21E8 §e\u26A1 §7720 J/s", "§8\u21E8 §4Causes nearby Entities to get the Wither Effect"); SMALL_CAPACITOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTEzNjFlNTc2YjQ5M2NiZmRmYWUzMjg2NjFjZWRkMWFkZDU1ZmFiNGU1ZWI0MThiOTJjZWJmNjI3NWY4YmI0In19fQ=="), "&aSmall Energy Capacitor", "", "§eBasic Capacitor", "§8\u21E8 §e\u26A1 §7128 J Capacity"); MEDIUM_CAPACITOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTEzNjFlNTc2YjQ5M2NiZmRmYWUzMjg2NjFjZWRkMWFkZDU1ZmFiNGU1ZWI0MThiOTJjZWJmNjI3NWY4YmI0In19fQ=="), "&aMedium Energy Capacitor", "", "§6Average Capacitor", "§8\u21E8 §e\u26A1 §7512 J Capacity"); BIG_CAPACITOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTEzNjFlNTc2YjQ5M2NiZmRmYWUzMjg2NjFjZWRkMWFkZDU1ZmFiNGU1ZWI0MThiOTJjZWJmNjI3NWY4YmI0In19fQ=="), "&aBig Energy Capacitor", "", "§aMedium Capacitor", "§8\u21E8 §e\u26A1 §71024 J Capacity"); @@ -706,7 +706,7 @@ public class SlimefunItems { PROGRAMMABLE_ANDROID_2 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzUwM2NiN2VkODQ1ZTdhNTA3ZjU2OWFmYzY0N2M0N2FjNDgzNzcxNDY1YzlhNjc5YTU0NTk0Yzc2YWZiYSJ9fX0="), "§cAdvanced Programmable Android &7(Normal)", "", "§8\u21E8 §7Function: None", "§8\u21E8 §7Fuel Efficiency: 1.5x"); PROGRAMMABLE_ANDROID_2_FISHERMAN = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzQ1ZTg3MzNhNzMxMTQzMzNiOThiMzYwMTc1MTI0MTcyMmY0NzEzZTFhMWE1ZDM2ZmJiMTMyNDkzZjFjNyJ9fX0="), "§cAdvanced Programmable Android &7(Fisherman)", "", "§8\u21E8 §7Function: Fishing", "§8\u21E8 §7Success Rate: 20%", "§8\u21E8 §7Fuel Efficiency: 1.5x"); - PROGRAMMABLE_ANDROID_2_FARMER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjlkMzMzNTdlODQxODgyM2JmNzgzZGU5MmRlODAyOTFiNGViZDM5MmFlYzg3MDY2OThlMDY4OTZkNDk4ZjYifX19"), "§cAdvanced Programmable Android &7(Farmer)", "", "§8\u21E8 §7Function: Farming", "§8\u21E8 §7Fuel Efficiency: 1.5x", "§8\u21E8 §7Can harvest Exotic Garden plants"); + PROGRAMMABLE_ANDROID_2_FARMER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjlkMzMzNTdlODQxODgyM2JmNzgzZGU5MmRlODAyOTFiNGViZDM5MmFlYzg3MDY2OThlMDY4OTZkNDk4ZjYifX19"), "§cAdvanced Programmable Android &7(Farmer)", "", "§8\u21E8 §7Function: Farming", "§8\u21E8 §7Fuel Efficiency: 1.5x", "§8\u21E8 §7Can also harvest Plants from ExoticGarden"); PROGRAMMABLE_ANDROID_2_BUTCHER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvM2I0NzJkZjBhZDlhM2JlODhmMmU1ZDVkNDIyZDAyYjExNmQ2NGQ4ZGYxNDc1ZWQzMmU1NDZhZmM4NGIzMSJ9fX0="), "§cAdvanced Programmable Android &7(Butcher)", "", "§8\u21E8 §7Function: Slaughtering", "§8\u21E8 §7Damage: 8", "§8\u21E8 §7Fuel Efficiency: 1.5x"); PROGRAMMABLE_ANDROID_3 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzUwM2NiN2VkODQ1ZTdhNTA3ZjU2OWFmYzY0N2M0N2FjNDgzNzcxNDY1YzlhNjc5YTU0NTk0Yzc2YWZiYSJ9fX0="), "§eEmpowered Programmable Android &7(Normal)", "", "§8\u21E8 §7Function: None", "§8\u21E8 §7Fuel Efficiency: 3.0x"); diff --git a/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java b/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java index 07da73fbe..3a5b93dad 100644 --- a/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java +++ b/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java @@ -4904,8 +4904,8 @@ public class SlimefunSetup { @Override public void run() { for (Entity entity : ReactorHologram.getArmorStand(l).getNearbyEntities(5, 5, 5)) { - if (entity instanceof Player) { - ((Player) entity).addPotionEffect(new PotionEffect(PotionEffectType.WITHER, 60, 3)); + if (entity instanceof LivingEntity) { + ((LivingEntity) entity).addPotionEffect(new PotionEffect(PotionEffectType.WITHER, 60, 1)); } } } From 87bddc1fd849cdddd5743d83d9f97f48766a4813 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 20 Nov 2016 22:27:52 +0100 Subject: [PATCH 31/37] Fixed ReactorHologram --- .../Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java | 1 + src/me/mrCookieSlime/Slimefun/holograms/ReactorHologram.java | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java index 2de5f2a88..bfe7a7ead 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java @@ -144,6 +144,7 @@ public abstract class AReactor extends SlimefunItem { } progress.remove(b.getLocation()); processing.remove(b.getLocation()); + ReactorHologram.remove(b.getLocation()); return true; } }); diff --git a/src/me/mrCookieSlime/Slimefun/holograms/ReactorHologram.java b/src/me/mrCookieSlime/Slimefun/holograms/ReactorHologram.java index 8734a8dc0..1467ffe50 100644 --- a/src/me/mrCookieSlime/Slimefun/holograms/ReactorHologram.java +++ b/src/me/mrCookieSlime/Slimefun/holograms/ReactorHologram.java @@ -15,12 +15,12 @@ public class ReactorHologram { for (Entity n : l.getChunk().getEntities()) { if (n instanceof ArmorStand) { - if (n.getCustomName() == null && l.distanceSquared(n.getLocation()) < 0.4D) return (ArmorStand) n; + if (l.distanceSquared(n.getLocation()) < 0.4D) return (ArmorStand) n; } } ArmorStand hologram = ArmorStandFactory.createHidden(l); - hologram.setCustomNameVisible(false); + hologram.setCustomNameVisible(true); hologram.setCustomName(null); return hologram; } From f0e81533aa03d3ab6983923ce543dabce31e4b45 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Mon, 21 Nov 2016 19:01:34 +0100 Subject: [PATCH 32/37] Refined reactor when no cooling is required --- .../SlimefunItem/abstractItems/AReactor.java | 159 +++++++++--------- 1 file changed, 83 insertions(+), 76 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java index bfe7a7ead..5acea5cf4 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java @@ -46,8 +46,8 @@ public abstract class AReactor extends SlimefunItem { public static Map processing = new HashMap(); public static Map progress = new HashMap(); - - private static final BlockFace[] cooling = + + private static final BlockFace[] cooling = { BlockFace.NORTH, BlockFace.NORTH_EAST, @@ -58,19 +58,20 @@ public abstract class AReactor extends SlimefunItem { BlockFace.WEST, BlockFace.NORTH_WEST }; - + private Set recipes = new HashSet(); - + private static final int[] border = {0, 1, 2, 3, 5, 6, 7, 8, 12, 13, 14, 21, 23}; private static final int[] border_1 = {9, 10, 11, 18, 20, 27, 29, 36, 38, 45, 46, 47}; private static final int[] border_2 = {15, 16, 17, 24, 26, 33, 35, 42, 44, 51, 52, 53}; private static final int[] border_3 = {30, 31, 32, 39, 41, 48, 49, 50}; + private static final int[] border_4 = {25, 34, 43}; //No coolant border public AReactor(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe) { super(category, item, name, recipeType, recipe); - + new BlockMenuPreset(name, getInventoryTitle()) { - + @Override public void init() { constructMenu(this); @@ -120,14 +121,14 @@ public abstract class AReactor extends SlimefunItem { return new int[0]; } }; - + registerBlockHandler(name, new SlimefunBlockHandler() { - + @Override public void onPlace(Player p, Block b, SlimefunItem item) { - + } - + @Override public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) { BlockMenu inv = BlockStorage.getInventory(b); @@ -148,10 +149,10 @@ public abstract class AReactor extends SlimefunItem { return true; } }); - + this.registerDefaultRecipes(); } - + @SuppressWarnings("deprecation") private void constructMenu(BlockMenuPreset preset) { for (int i: border) { @@ -162,10 +163,10 @@ public abstract class AReactor extends SlimefunItem { public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) { return false; } - + }); } - + for (int i: border_1) { preset.addItem(i, new CustomItem(new MaterialData(Material.STAINED_GLASS_PANE, (byte) 5), " "), new MenuClickHandler() { @@ -174,22 +175,10 @@ public abstract class AReactor extends SlimefunItem { public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) { return false; } - - }); - } - - for (int i: border_2) { - preset.addItem(i, new CustomItem(new MaterialData(Material.STAINED_GLASS_PANE, (byte) 9), " "), - new MenuClickHandler() { - @Override - public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) { - return false; - } - }); } - + for (int i: border_3) { preset.addItem(i, new CustomItem(new MaterialData(Material.STAINED_GLASS_PANE, (byte) 13), " "), new MenuClickHandler() { @@ -198,10 +187,10 @@ public abstract class AReactor extends SlimefunItem { public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) { return false; } - + }); } - + preset.addItem(22, new CustomItem(new MaterialData(Material.STAINED_GLASS_PANE, (byte) 15), " "), new MenuClickHandler() { @@ -209,9 +198,9 @@ public abstract class AReactor extends SlimefunItem { public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) { return false; } - + }); - + preset.addItem(1, new CustomItem(SlimefunItems.URANIUM, "§7Fuel Slot", "", "§rThis Slot accepts radioactive Fuel such as:", "§2Uranium §ror §aNeptunium"), new MenuClickHandler() { @@ -219,26 +208,44 @@ public abstract class AReactor extends SlimefunItem { public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) { return false; } - + }); + for (int i : border_2) { + preset.addItem(i, new CustomItem(new MaterialData(Material.STAINED_GLASS_PANE, (byte) 9), " "), + new MenuClickHandler() { + + @Override + public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) { + return false; + } + + }); + } + if (needsCooling()) { preset.addItem(7, new CustomItem(SlimefunItems.REACTOR_COOLANT_CELL, "§bCoolant Slot", "", "§rThis Slot accepts Coolant Cells", "§4Without any Coolant Cells, your Reactor", "§4will explode")); - } else { - preset.addItem(7, new CustomItem(SlimefunItems.REACTOR_COOLANT_CELL, "§bCoolant Slot", "", "§rThis Slot accepts Coolant Cells")); } - preset.addMenuClickHandler(7, new MenuClickHandler() { - @Override - public boolean onClick(Player player, int i, ItemStack itemStack, ClickAction clickAction) { - return false; - } - }); + else { + preset.addItem(7, new CustomItem(SlimefunItems.REACTOR_COOLANT_CELL, "§bCoolant Slot", "", "§rThis Slot accepts Coolant Cells")); + + for (int i : border_4) { + preset.addItem(i, new CustomItem(new ItemStack(Material.BARRIER), "§cNo Coolant Required"), + new MenuClickHandler() { + + @Override + public boolean onClick(Player player, int i, ItemStack itemStack, ClickAction clickAction) { + return false; + } + }); + } + } } - + public abstract String getInventoryTitle(); - + public abstract void registerDefaultRecipes(); - + public abstract int getEnergyProduction(); public abstract void extraTick(Location l); @@ -248,42 +255,42 @@ public abstract class AReactor extends SlimefunItem { public int[] getInputSlots() { return new int[] {19, 28, 37, 25, 34, 43}; } - + public int[] getFuelSlots() { return new int[] {19, 28, 37}; } - + public int[] getCoolantSlots() { - return new int[] {25, 34, 43}; + return needsCooling() ? new int[] {25, 34, 43} : new int[]{}; } - + public int[] getOutputSlots() { return new int[] {40}; } - + public MachineFuel getProcessing(Location l) { return processing.get(l); } - + public boolean isProcessing(Location l) { return progress.containsKey(l); } - + public void registerFuel(MachineFuel fuel) { this.recipes.add(fuel); } - + @Override public void register(boolean slimefun) { addItemHandler(new EnergyTicker() { - + Set explode = new HashSet(); - + @SuppressWarnings("deprecation") @Override public double generateEnergy(final Location l, SlimefunItem sf, Config data) { BlockMenu port = getAccessPort(l); - + if (isProcessing(l)) { extraTick(l); int timeleft = progress.get(l); @@ -293,18 +300,18 @@ public abstract class AReactor extends SlimefunItem { } if (ChargableBlock.getMaxCharge(l) - ChargableBlock.getCharge(l) >= getEnergyProduction() || !BlockStorage.getBlockInfo(l, "reactor-mode").equals("generator")) { progress.put(l, timeleft - 1); - + Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() { - + @Override public void run() { if (!l.getBlock().getRelative(cooling[CSCoreLib.randomizer().nextInt(cooling.length)]).isLiquid()) explode.add(l); } }); - + if (needsCooling()) { boolean coolant = (processing.get(l).getTicks() - timeleft) % 25 == 0; - + ItemStack item = getProgressBar().clone(); ItemMeta im = item.getItemMeta(); im.setDisplayName(" "); @@ -315,9 +322,9 @@ public abstract class AReactor extends SlimefunItem { lore.add(MachineHelper.getTimeLeft(timeleft / 2)); im.setLore(lore); item.setItemMeta(im); - + BlockStorage.getInventory(l).replaceExistingItem(22, item); - + if (coolant) { if (port != null) { for (int slot: getCoolantSlots()) { @@ -326,7 +333,7 @@ public abstract class AReactor extends SlimefunItem { } } } - + boolean explosion = true; for (int slot: getCoolantSlots()) { if (SlimefunManager.isItemSimiliar(BlockStorage.getInventory(l).getItemInSlot(slot), SlimefunItems.REACTOR_COOLANT_CELL, true)) { @@ -336,7 +343,7 @@ public abstract class AReactor extends SlimefunItem { break; } } - + if (explosion) { explode.add(l); return 0; @@ -354,13 +361,13 @@ public abstract class AReactor extends SlimefunItem { else { BlockStorage.getInventory(l).replaceExistingItem(22, new CustomItem(new MaterialData(Material.STAINED_GLASS_PANE, (byte) 15), " ")); if (processing.get(l).getOutput() != null) pushItems(l, processing.get(l).getOutput()); - + if (port != null) { for (int slot: getOutputSlots()) { BlockStorage.getInventory(l).replaceExistingItem(slot, ReactorAccessPort.pushItems(port.getLocation(), BlockStorage.getInventory(l).getItemInSlot(slot))); } } - + progress.remove(l); processing.remove(l); return 0; @@ -369,7 +376,7 @@ public abstract class AReactor extends SlimefunItem { else { MachineFuel r = null; Map found = new HashMap(); - + if (port != null) { refill: for (int slot: getFuelSlots()) { @@ -383,7 +390,7 @@ public abstract class AReactor extends SlimefunItem { } } } - + outer: for (MachineFuel recipe: recipes) { for (int slot: getFuelSlots()) { @@ -394,7 +401,7 @@ public abstract class AReactor extends SlimefunItem { } } } - + if (r != null) { for (Map.Entry entry: found.entrySet()) { BlockStorage.getInventory(l).replaceExistingItem(entry.getKey(), InvUtils.decreaseItem(BlockStorage.getInventory(l).getItemInSlot(entry.getKey()), entry.getValue())); @@ -427,7 +434,7 @@ public abstract class AReactor extends SlimefunItem { super.register(slimefun); } - + private Inventory inject(Location l) { int size = BlockStorage.getInventory(l).toInventory().getSize(); Inventory inv = Bukkit.createInventory(null, size); @@ -439,7 +446,7 @@ public abstract class AReactor extends SlimefunItem { } return inv; } - + private Inventory inject(Location l, int[] slots) { int size = BlockStorage.getInventory(l).toInventory().getSize(); Inventory inv = Bukkit.createInventory(null, size); @@ -451,28 +458,28 @@ public abstract class AReactor extends SlimefunItem { } return inv; } - + public void pushItems(Location l, ItemStack item) { Inventory inv = inject(l); inv.addItem(item); - + for (int slot: getOutputSlots()) { BlockStorage.getInventory(l).replaceExistingItem(slot, inv.getItem(slot)); } } - + public ItemStack pushItems(Location l, ItemStack item, int[] slots) { Inventory inv = inject(l, slots); Map map = inv.addItem(item); - + for (int slot: slots) { BlockStorage.getInventory(l).replaceExistingItem(slot, inv.getItem(slot)); } - + for (Map.Entry entry: map.entrySet()) { return entry.getValue(); } - + return null; } @@ -481,7 +488,7 @@ public abstract class AReactor extends SlimefunItem { public Set getFuelTypes() { return this.recipes; } - + public BlockMenu getAccessPort(Location l) { Location portL = new Location(l.getWorld(), l.getX(), l.getY() + 3, l.getZ()); if (BlockStorage.check(portL, "REACTOR_ACCESS_PORT")) return BlockStorage.getInventory(portL); From 3e470d87fbfc536eb8b98b578254358c239aa5a0 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 23 Nov 2016 16:51:57 +0100 Subject: [PATCH 33/37] =?UTF-8?q?Replaced=20all=20=C2=A7=20with=20&?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Slimefun/Android/ProgrammableAndroid.java | 38 +- .../Slimefun/Android/ScriptPart.java | 50 +-- .../Slimefun/Commands/SlimefunCommand.java | 4 +- .../mrCookieSlime/Slimefun/GPS/Elevator.java | 22 +- .../Slimefun/GPS/GPSNetwork.java | 30 +- .../Slimefun/GPS/TeleportationSequence.java | 14 +- .../Slimefun/Lists/Categories.java | 12 +- .../Slimefun/Lists/RecipeType.java | 2 +- .../Slimefun/Lists/SlimefunItems.java | 358 +++++++++--------- .../abstractItems/AContainer.java | 2 +- .../SlimefunItem/abstractItems/AFarm.java | 2 +- .../abstractItems/AGenerator.java | 2 +- .../SlimefunItem/abstractItems/AReactor.java | 20 +- .../abstractItems/MachineHelper.java | 2 +- .../machines/AdvancedCargoOutputNode.java | 24 +- .../machines/AnimalGrowthAccelerator.java | 2 +- .../SlimefunItem/machines/AutoBreeder.java | 2 +- .../machines/AutoDisenchanter.java | 2 +- .../SlimefunItem/machines/AutoEnchanter.java | 2 +- .../machines/AutomatedCraftingChamber.java | 10 +- .../machines/CargoCraftingNode.java | 10 +- .../SlimefunItem/machines/CargoInputNode.java | 28 +- .../machines/CargoOutputNode.java | 10 +- .../SlimefunItem/machines/ChargingBench.java | 2 +- .../machines/CropGrowthAccelerator.java | 2 +- .../machines/ElectricDustWasher.java | 2 +- .../machines/ElectricGoldPan.java | 2 +- .../machines/ElectricSmeltery.java | 2 +- .../SlimefunItem/machines/FluidPump.java | 4 +- .../machines/HeatedPressureChamber.java | 2 +- .../SlimefunItem/machines/OilPump.java | 2 +- .../machines/ReactorAccessPort.java | 12 +- .../SlimefunItem/machines/Refinery.java | 2 +- .../SlimefunItem/machines/TrashCan.java | 2 +- .../machines/WitherAssembler.java | 14 +- .../SlimefunItem/machines/XPCollector.java | 4 +- .../Slimefun/Setup/Messages.java | 10 +- .../Slimefun/Setup/SlimefunManager.java | 4 +- .../Slimefun/Setup/SlimefunSetup.java | 62 +-- .../mrCookieSlime/Slimefun/SlimefunGuide.java | 84 ++-- .../mrCookieSlime/Slimefun/api/Backpacks.java | 4 +- .../Slimefun/api/TickerTask.java | 34 +- .../Slimefun/api/energy/EnergyNet.java | 2 +- .../Slimefun/api/energy/ItemEnergy.java | 12 +- .../Slimefun/api/item_transport/CargoNet.java | 12 +- .../Slimefun/holograms/EnergyHologram.java | 2 +- .../Slimefun/holograms/Projector.java | 4 +- .../listeners/AncientAltarListener.java | 6 +- .../Slimefun/listeners/BackpackListener.java | 14 +- .../Slimefun/listeners/ItemListener.java | 38 +- .../Slimefun/listeners/ToolListener.java | 8 +- 51 files changed, 498 insertions(+), 498 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/Android/ProgrammableAndroid.java b/src/me/mrCookieSlime/Slimefun/Android/ProgrammableAndroid.java index 64e08c339..13025e722 100644 --- a/src/me/mrCookieSlime/Slimefun/Android/ProgrammableAndroid.java +++ b/src/me/mrCookieSlime/Slimefun/Android/ProgrammableAndroid.java @@ -138,7 +138,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { @Override public void newInstance(BlockMenu menu, final Block b) { try { - menu.replaceExistingItem(15, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTAxYzdiNTcyNjE3ODk3NGIzYjNhMDFiNDJhNTkwZTU0MzY2MDI2ZmQ0MzgwOGYyYTc4NzY0ODg0M2E3ZjVhIn19fQ=="), "§aStart/Continue")); + menu.replaceExistingItem(15, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTAxYzdiNTcyNjE3ODk3NGIzYjNhMDFiNDJhNTkwZTU0MzY2MDI2ZmQ0MzgwOGYyYTc4NzY0ODg0M2E3ZjVhIn19fQ=="), "&aStart/Continue")); menu.addMenuClickHandler(15, new MenuClickHandler() { @Override @@ -150,7 +150,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { } }); - menu.replaceExistingItem(17, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTYxMzlmZDFjNTY1NGU1NmU5ZTRlMmM4YmU3ZWIyYmQ1YjQ5OWQ2MzM2MTY2NjNmZWVlOTliNzQzNTJhZDY0In19fQ=="), "§4Pause")); + menu.replaceExistingItem(17, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTYxMzlmZDFjNTY1NGU1NmU5ZTRlMmM4YmU3ZWIyYmQ1YjQ5OWQ2MzM2MTY2NjNmZWVlOTliNzQzNTJhZDY0In19fQ=="), "&4Pause")); menu.addMenuClickHandler(17, new MenuClickHandler() { @Override @@ -161,7 +161,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { } }); - menu.replaceExistingItem(16, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDc4ZjJiN2U1ZTc1NjM5ZWE3ZmI3OTZjMzVkMzY0YzRkZjI4YjQyNDNlNjZiNzYyNzdhYWRjZDYyNjEzMzcifX19"), "§bMemory Core", "", "§8\u21E8 §7Click to open the Script Editor")); + menu.replaceExistingItem(16, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDc4ZjJiN2U1ZTc1NjM5ZWE3ZmI3OTZjMzVkMzY0YzRkZjI4YjQyNDNlNjZiNzYyNzdhYWRjZDYyNjEzMzcifX19"), "&bMemory Core", "", "&8\u21E8 &7Click to open the Script Editor")); menu.addMenuClickHandler(16, new MenuClickHandler() { @Override @@ -867,7 +867,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { } if (getTier() == 1) { - preset.addItem(34, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "§8\u21E9 §cFuel Input §8\u21E9", "", "§rThis Android runs on solid Fuel", "§re.g. Coal, Wood, etc..."), + preset.addItem(34, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "&8\u21E9 &cFuel Input &8\u21E9", "", "&rThis Android runs on solid Fuel", "&re.g. Coal, Wood, etc..."), new MenuClickHandler() { @Override @@ -877,7 +877,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { }); } else if (getTier() == 2){ - preset.addItem(34, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "§8\u21E9 §cFuel Input §8\u21E9", "", "§rThis Android runs on liquid Fuel", "§re.g. Lava, Oil, Fuel, etc..."), + preset.addItem(34, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "&8\u21E9 &cFuel Input &8\u21E9", "", "&rThis Android runs on liquid Fuel", "&re.g. Lava, Oil, Fuel, etc..."), new MenuClickHandler() { @Override @@ -887,7 +887,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { }); } else { - preset.addItem(34, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "§8\u21E9 §cFuel Input §8\u21E9", "", "§rThis Android runs on radioactive Fuel", "§re.g. Uranium, Neptunium or Boosted Uranium"), + preset.addItem(34, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "&8\u21E9 &cFuel Input &8\u21E9", "", "&rThis Android runs on radioactive Fuel", "&re.g. Uranium, Neptunium or Boosted Uranium"), new MenuClickHandler() { @Override @@ -899,9 +899,9 @@ public abstract class ProgrammableAndroid extends SlimefunItem { } public void openScriptEditor(Player p, final Block b) throws Exception { - ChestMenu menu = new ChestMenu("§eScript Editor"); + ChestMenu menu = new ChestMenu("&eScript Editor"); - menu.addItem(2, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDliZjZkYjRhZWRhOWQ4ODIyYjlmNzM2NTM4ZThjMThiOWE0ODQ0Zjg0ZWI0NTUwNGFkZmJmZWU4N2ViIn19fQ=="), "§2> Edit Script", "", "§aEdits your current Script"), + menu.addItem(2, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDliZjZkYjRhZWRhOWQ4ODIyYjlmNzM2NTM4ZThjMThiOWE0ODQ0Zjg0ZWI0NTUwNGFkZmJmZWU4N2ViIn19fQ=="), "&2> Edit Script", "", "&aEdits your current Script"), new MenuClickHandler() { @Override @@ -915,7 +915,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { } }); - menu.addItem(4, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTcxZDg5NzljMTg3OGEwNTk4N2E3ZmFmMjFiNTZkMWI3NDRmOWQwNjhjNzRjZmZjZGUxZWExZWRhZDU4NTIifX19"), "§4> Create new Script", "", "§cDeletes your current Script", "§cand creates a blank one"), + menu.addItem(4, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTcxZDg5NzljMTg3OGEwNTk4N2E3ZmFmMjFiNTZkMWI3NDRmOWQwNjhjNzRjZmZjZGUxZWExZWRhZDU4NTIifX19"), "&4> Create new Script", "", "&cDeletes your current Script", "&cand creates a blank one"), new MenuClickHandler() { @Override @@ -929,7 +929,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { } }); - menu.addItem(6, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzAxNTg2ZTM5ZjZmZmE2M2I0ZmIzMDFiNjVjYTdkYThhOTJmNzM1M2FhYWI4OWQzODg2NTc5MTI1ZGZiYWY5In19fQ=="), "§6> Download a Script", "", "§eDownload a Script from the Server", "§eYou can edit or simply use it"), + menu.addItem(6, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzAxNTg2ZTM5ZjZmZmE2M2I0ZmIzMDFiNjVjYTdkYThhOTJmNzM1M2FhYWI4OWQzODg2NTc5MTI1ZGZiYWY5In19fQ=="), "&6> Download a Script", "", "&eDownload a Script from the Server", "&eYou can edit or simply use it"), new MenuClickHandler() { @Override @@ -947,7 +947,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { } public void openScript(final Player p, final Block b, final String script) throws Exception { - ChestMenu menu = new ChestMenu("§eScript Editor"); + ChestMenu menu = new ChestMenu("&eScript Editor"); final String[] commands = script.split("-"); menu.addItem(0, ScriptPart.START.toItemStack()); @@ -965,7 +965,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { int additional = commands.length == 54 ? 0: 1; if (additional == 1) { - menu.addItem(i, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTcxZDg5NzljMTg3OGEwNTk4N2E3ZmFmMjFiNTZkMWI3NDRmOWQwNjhjNzRjZmZjZGUxZWExZWRhZDU4NTIifX19"), "§7> Add new Command")); + menu.addItem(i, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTcxZDg5NzljMTg3OGEwNTk4N2E3ZmFmMjFiNTZkMWI3NDRmOWQwNjhjNzRjZmZjZGUxZWExZWRhZDU4NTIifX19"), "&7> Add new Command")); menu.addMenuClickHandler(i, new MenuClickHandler() { @Override @@ -991,7 +991,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { } else { ItemStack stack = ScriptPart.valueOf(commands[i]).toItemStack(); - menu.addItem(i, new CustomItem(stack, stack.getItemMeta().getDisplayName(), "", "§7\u21E8 §eLeft Click §7to edit", "§7\u21E8 §eRight Click §7to delete", "§7\u21E8 §eShift + Right Click §7to duplicate")); + menu.addItem(i, new CustomItem(stack, stack.getItemMeta().getDisplayName(), "", "&7\u21E8 &eLeft Click &7to edit", "&7\u21E8 &eRight Click &7to delete", "&7\u21E8 &eShift + Right Click &7to duplicate")); menu.addMenuClickHandler(i, new MenuClickHandler() { @Override @@ -1097,7 +1097,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { } }); - menu.addItem(49, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTA1YTJjYWI4YjY4ZWE1N2UzYWY5OTJhMzZlNDdjOGZmOWFhODdjYzg3NzYyODE5NjZmOGMzY2YzMWEzOCJ9fX0="), "&eUpload a Script", "", "§6Click §7to upload your Android's Script", "§7to the Database")); + menu.addItem(49, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTA1YTJjYWI4YjY4ZWE1N2UzYWY5OTJhMzZlNDdjOGZmOWFhODdjYzg3NzYyODE5NjZmOGMzY2YzMWEzOCJ9fX0="), "&eUpload a Script", "", "&6Click &7to upload your Android's Script", "&7to the Database")); menu.addMenuClickHandler(49, new MenuClickHandler() { @Override @@ -1177,10 +1177,10 @@ public abstract class ProgrammableAndroid extends SlimefunItem { String author = (op != null && op.getName() != null) ? op.getName(): script.getString("author_name"); if (script.getString("author").equals(p.getUniqueId().toString())) { - menu.addItem(index, new CustomItem(this.getItem(), "§b" + script.getString("name"), "§7by §r" + author, "", "§7Downloads: §r" + script.getInt("downloads"), "§7Rating: " + getScriptRatingPercentage(script), "§a" + getScriptRating(script, true) + " \u263A §7- §4\u2639 " + getScriptRating(script, false), "", "§eLeft Click &rto download this Script", "§4(This will override your current Script)")); + menu.addItem(index, new CustomItem(this.getItem(), "&b" + script.getString("name"), "&7by &r" + author, "", "&7Downloads: &r" + script.getInt("downloads"), "&7Rating: " + getScriptRatingPercentage(script), "&a" + getScriptRating(script, true) + " \u263A &7- &4\u2639 " + getScriptRating(script, false), "", "&eLeft Click &rto download this Script", "&4(This will override your current Script)")); } else { - menu.addItem(index, new CustomItem(this.getItem(), "§b" + script.getString("name"), "§7by §r" + author, "", "§7Downloads: §r" + script.getInt("downloads"), "§7Rating: " + getScriptRatingPercentage(script), "§a" + getScriptRating(script, true) + " \u263A §7- §4\u2639 " + getScriptRating(script, false), "", "§eLeft Click &rto download this Script", "§4(This will override your current Script)", "§eShift + Left Click §rto leave a positive Rating", "§eShift + Right Click §rto leave a negative Rating")); + menu.addItem(index, new CustomItem(this.getItem(), "&b" + script.getString("name"), "&7by &r" + author, "", "&7Downloads: &r" + script.getInt("downloads"), "&7Rating: " + getScriptRatingPercentage(script), "&a" + getScriptRating(script, true) + " \u263A &7- &4\u2639 " + getScriptRating(script, false), "", "&eLeft Click &rto download this Script", "&4(This will override your current Script)", "&eShift + Left Click &rto leave a positive Rating", "&eShift + Right Click &rto leave a negative Rating")); } menu.addMenuClickHandler(index, new MenuClickHandler() { @@ -1275,7 +1275,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { @SuppressWarnings("deprecation") protected void openScriptComponentEditor(Player p, final Block b, final String script, final int index) throws Exception { - ChestMenu menu = new ChestMenu("§eScript Editor"); + ChestMenu menu = new ChestMenu("&eScript Editor"); final String[] commands = script.split("-"); @@ -1369,7 +1369,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { }); - menu.addItem(9, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTYxMzlmZDFjNTY1NGU1NmU5ZTRlMmM4YmU3ZWIyYmQ1YjQ5OWQ2MzM2MTY2NjNmZWVlOTliNzQzNTJhZDY0In19fQ=="), "§rDo nothing"), + menu.addItem(9, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTYxMzlmZDFjNTY1NGU1NmU5ZTRlMmM4YmU3ZWIyYmQ1YjQ5OWQ2MzM2MTY2NjNmZWVlOTliNzQzNTJhZDY0In19fQ=="), "&rDo nothing"), new MenuClickHandler() { @Override @@ -1428,7 +1428,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { int size = BlockStorage.getInventory(b).toInventory().getSize(); Inventory inv = Bukkit.createInventory(null, size); for (int i = 0; i < size; i++) { - inv.setItem(i, new CustomItem(Material.COMMAND, " §4ALL YOUR PLACEHOLDERS ARE BELONG TO US", 0)); + inv.setItem(i, new CustomItem(Material.COMMAND, " &4ALL YOUR PLACEHOLDERS ARE BELONG TO US", 0)); } for (int slot: getOutputSlots()) { inv.setItem(slot, BlockStorage.getInventory(b).getItemInSlot(slot)); diff --git a/src/me/mrCookieSlime/Slimefun/Android/ScriptPart.java b/src/me/mrCookieSlime/Slimefun/Android/ScriptPart.java index 0915f34e6..3f1eccce5 100644 --- a/src/me/mrCookieSlime/Slimefun/Android/ScriptPart.java +++ b/src/me/mrCookieSlime/Slimefun/Android/ScriptPart.java @@ -9,50 +9,50 @@ public enum ScriptPart { // Start and End Parts START(AndroidType.NONE, "&2Start Script", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGFlMjk0MjJkYjQwNDdlZmRiOWJhYzJjZGFlNWEwNzE5ZWI3NzJmY2NjODhhNjZkOTEyMzIwYjM0M2MzNDEifX19"), - REPEAT(AndroidType.NONE, "§9Repeat Script", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYmM4ZGVmNjdhMTI2MjJlYWQxZGVjZDNkODkzNjQyNTdiNTMxODk2ZDg3ZTQ2OTgxMzEzMWNhMjM1YjVjNyJ9fX0="), - WAIT(AndroidType.NONE, "§eWait 0.5s", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMmVlMTc0ZjQxZTU5NGU2NGVhMzE0MWMwN2RhZjdhY2YxZmEwNDVjMjMwYjJiMGIwZmIzZGExNjNkYjIyZjQ1NSJ9fX0="), + REPEAT(AndroidType.NONE, "&9Repeat Script", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYmM4ZGVmNjdhMTI2MjJlYWQxZGVjZDNkODkzNjQyNTdiNTMxODk2ZDg3ZTQ2OTgxMzEzMWNhMjM1YjVjNyJ9fX0="), + WAIT(AndroidType.NONE, "&eWait 0.5s", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMmVlMTc0ZjQxZTU5NGU2NGVhMzE0MWMwN2RhZjdhY2YxZmEwNDVjMjMwYjJiMGIwZmIzZGExNjNkYjIyZjQ1NSJ9fX0="), // Movement - GO_FORWARD(AndroidType.NON_FIGHTER, "§7Move forward", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDliZjZkYjRhZWRhOWQ4ODIyYjlmNzM2NTM4ZThjMThiOWE0ODQ0Zjg0ZWI0NTUwNGFkZmJmZWU4N2ViIn19fQ=="), - GO_UP(AndroidType.NON_FIGHTER, "§7Move upwards", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTA1YTJjYWI4YjY4ZWE1N2UzYWY5OTJhMzZlNDdjOGZmOWFhODdjYzg3NzYyODE5NjZmOGMzY2YzMWEzOCJ9fX0="), - GO_DOWN(AndroidType.NON_FIGHTER, "§7Move downwards", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzAxNTg2ZTM5ZjZmZmE2M2I0ZmIzMDFiNjVjYTdkYThhOTJmNzM1M2FhYWI4OWQzODg2NTc5MTI1ZGZiYWY5In19fQ=="), + GO_FORWARD(AndroidType.NON_FIGHTER, "&7Move forward", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDliZjZkYjRhZWRhOWQ4ODIyYjlmNzM2NTM4ZThjMThiOWE0ODQ0Zjg0ZWI0NTUwNGFkZmJmZWU4N2ViIn19fQ=="), + GO_UP(AndroidType.NON_FIGHTER, "&7Move upwards", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTA1YTJjYWI4YjY4ZWE1N2UzYWY5OTJhMzZlNDdjOGZmOWFhODdjYzg3NzYyODE5NjZmOGMzY2YzMWEzOCJ9fX0="), + GO_DOWN(AndroidType.NON_FIGHTER, "&7Move downwards", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzAxNTg2ZTM5ZjZmZmE2M2I0ZmIzMDFiNjVjYTdkYThhOTJmNzM1M2FhYWI4OWQzODg2NTc5MTI1ZGZiYWY5In19fQ=="), //Directions - TURN_LEFT(AndroidType.NONE, "§7Turn Left", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTE4NWM5N2RiYjgzNTNkZTY1MjY5OGQyNGI2NDMyN2I3OTNhM2YzMmE5OGJlNjdiNzE5ZmJlZGFiMzVlIn19fQ=="), - TURN_RIGHT(AndroidType.NONE, "§7Turn Right", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzFjMGVkZWRkNzExNWZjMWIyM2Q1MWNlOTY2MzU4YjI3MTk1ZGFmMjZlYmI2ZTQ1YTY2YzM0YzY5YzM0MDkxIn19fQ=="), + TURN_LEFT(AndroidType.NONE, "&7Turn Left", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTE4NWM5N2RiYjgzNTNkZTY1MjY5OGQyNGI2NDMyN2I3OTNhM2YzMmE5OGJlNjdiNzE5ZmJlZGFiMzVlIn19fQ=="), + TURN_RIGHT(AndroidType.NONE, "&7Turn Right", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzFjMGVkZWRkNzExNWZjMWIyM2Q1MWNlOTY2MzU4YjI3MTk1ZGFmMjZlYmI2ZTQ1YTY2YzM0YzY5YzM0MDkxIn19fQ=="), // Action - Pickaxe - DIG_UP(AndroidType.MINER, "§bDig upwards", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMmU2Y2UwMTFhYzlhN2E3NWIyZmNkNDA4YWQyMWEzYWMxNzIyZjZlMmVlZDg3ODFjYWZkMTI1NTIyODJiODgifX19"), - DIG_FORWARD(AndroidType.MINER, "§bDig forward", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjZlYTIxMzU4Mzg0NjE1MzQzNzJmMmRhNmM4NjJkMjFjZDVmM2QyYzcxMTlmMmJiNjc0YmJkNDI3OTEifX19"), - DIG_DOWN(AndroidType.MINER, "§bDig downwards", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOGQ4NjIwMjQxMDhjNzg1YmMwZWY3MTk5ZWM3N2M0MDJkYmJmY2M2MjRlOWY0MWY4M2Q4YWVkOGIzOWZkMTMifX19"), + DIG_UP(AndroidType.MINER, "&bDig upwards", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMmU2Y2UwMTFhYzlhN2E3NWIyZmNkNDA4YWQyMWEzYWMxNzIyZjZlMmVlZDg3ODFjYWZkMTI1NTIyODJiODgifX19"), + DIG_FORWARD(AndroidType.MINER, "&bDig forward", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjZlYTIxMzU4Mzg0NjE1MzQzNzJmMmRhNmM4NjJkMjFjZDVmM2QyYzcxMTlmMmJiNjc0YmJkNDI3OTEifX19"), + DIG_DOWN(AndroidType.MINER, "&bDig downwards", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOGQ4NjIwMjQxMDhjNzg1YmMwZWY3MTk5ZWM3N2M0MDJkYmJmY2M2MjRlOWY0MWY4M2Q4YWVkOGIzOWZkMTMifX19"), - MOVE_AND_DIG_UP(AndroidType.MINER, "§bMove & Dig upwards", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMmU2Y2UwMTFhYzlhN2E3NWIyZmNkNDA4YWQyMWEzYWMxNzIyZjZlMmVlZDg3ODFjYWZkMTI1NTIyODJiODgifX19"), - MOVE_AND_DIG_FORWARD(AndroidType.MINER, "§bMove & Dig forward", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjZlYTIxMzU4Mzg0NjE1MzQzNzJmMmRhNmM4NjJkMjFjZDVmM2QyYzcxMTlmMmJiNjc0YmJkNDI3OTEifX19"), - MOVE_AND_DIG_DOWN(AndroidType.MINER, "§bMove & Dig downwards", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOGQ4NjIwMjQxMDhjNzg1YmMwZWY3MTk5ZWM3N2M0MDJkYmJmY2M2MjRlOWY0MWY4M2Q4YWVkOGIzOWZkMTMifX19"), + MOVE_AND_DIG_UP(AndroidType.MINER, "&bMove & Dig upwards", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMmU2Y2UwMTFhYzlhN2E3NWIyZmNkNDA4YWQyMWEzYWMxNzIyZjZlMmVlZDg3ODFjYWZkMTI1NTIyODJiODgifX19"), + MOVE_AND_DIG_FORWARD(AndroidType.MINER, "&bMove & Dig forward", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjZlYTIxMzU4Mzg0NjE1MzQzNzJmMmRhNmM4NjJkMjFjZDVmM2QyYzcxMTlmMmJiNjc0YmJkNDI3OTEifX19"), + MOVE_AND_DIG_DOWN(AndroidType.MINER, "&bMove & Dig downwards", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOGQ4NjIwMjQxMDhjNzg1YmMwZWY3MTk5ZWM3N2M0MDJkYmJmY2M2MjRlOWY0MWY4M2Q4YWVkOGIzOWZkMTMifX19"), // Action - Sword - ATTACK_MOBS_ANIMALS(AndroidType.FIGHTER, "§4Attack §c(Hostile Mobs & Animals)", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzdlNmM0MGY2OGI3NzVmMmVmY2Q3YmQ5OTE2YjMyNzg2OWRjZjI3ZTI0Yzg1NWQwYTE4ZTA3YWMwNGZlMSJ9fX0="), - ATTACK_MOBS(AndroidType.FIGHTER, "§4Attack §c(Hostile Mobs)", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzdlNmM0MGY2OGI3NzVmMmVmY2Q3YmQ5OTE2YjMyNzg2OWRjZjI3ZTI0Yzg1NWQwYTE4ZTA3YWMwNGZlMSJ9fX0="), - ATTACK_ANIMALS(AndroidType.FIGHTER, "§4Attack §c(Animals)", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzdlNmM0MGY2OGI3NzVmMmVmY2Q3YmQ5OTE2YjMyNzg2OWRjZjI3ZTI0Yzg1NWQwYTE4ZTA3YWMwNGZlMSJ9fX0="), - ATTACK_ANIMALS_ADULT(AndroidType.FIGHTER, "§4Attack §c(Animals §7[Adult]§c)", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzdlNmM0MGY2OGI3NzVmMmVmY2Q3YmQ5OTE2YjMyNzg2OWRjZjI3ZTI0Yzg1NWQwYTE4ZTA3YWMwNGZlMSJ9fX0="), + ATTACK_MOBS_ANIMALS(AndroidType.FIGHTER, "&4Attack &c(Hostile Mobs & Animals)", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzdlNmM0MGY2OGI3NzVmMmVmY2Q3YmQ5OTE2YjMyNzg2OWRjZjI3ZTI0Yzg1NWQwYTE4ZTA3YWMwNGZlMSJ9fX0="), + ATTACK_MOBS(AndroidType.FIGHTER, "&4Attack &c(Hostile Mobs)", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzdlNmM0MGY2OGI3NzVmMmVmY2Q3YmQ5OTE2YjMyNzg2OWRjZjI3ZTI0Yzg1NWQwYTE4ZTA3YWMwNGZlMSJ9fX0="), + ATTACK_ANIMALS(AndroidType.FIGHTER, "&4Attack &c(Animals)", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzdlNmM0MGY2OGI3NzVmMmVmY2Q3YmQ5OTE2YjMyNzg2OWRjZjI3ZTI0Yzg1NWQwYTE4ZTA3YWMwNGZlMSJ9fX0="), + ATTACK_ANIMALS_ADULT(AndroidType.FIGHTER, "&4Attack &c(Animals &7[Adult]&c)", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzdlNmM0MGY2OGI3NzVmMmVmY2Q3YmQ5OTE2YjMyNzg2OWRjZjI3ZTI0Yzg1NWQwYTE4ZTA3YWMwNGZlMSJ9fX0="), // Action - Axe - CHOP_TREE(AndroidType.WOODCUTTER, "§cChop and Replant", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjRiYTQ5Mzg0ZGJhN2I3YWNkYjRmNzBlOTM2MWU2ZDU3Y2JiY2JmNzIwY2Y0ZjE2YzJiYjgzZTQ1NTcifX19"), + CHOP_TREE(AndroidType.WOODCUTTER, "&cChop and Replant", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjRiYTQ5Mzg0ZGJhN2I3YWNkYjRmNzBlOTM2MWU2ZDU3Y2JiY2JmNzIwY2Y0ZjE2YzJiYjgzZTQ1NTcifX19"), // Action - Fishing Rod - CATCH_FISH(AndroidType.FISHERMAN, "§bCatch Fish", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZmQ0ZmRlNTExZjQ0NTQxMDFlNGEyYTcyYmM4NmYxMjk4NWRmY2RhNzZiNjRiYjI0ZGM2M2E5ZmE5ZTNhMyJ9fX0="), + CATCH_FISH(AndroidType.FISHERMAN, "&bCatch Fish", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZmQ0ZmRlNTExZjQ0NTQxMDFlNGEyYTcyYmM4NmYxMjk4NWRmY2RhNzZiNjRiYjI0ZGM2M2E5ZmE5ZTNhMyJ9fX0="), // Action - Hoe - FARM_FORWARD(AndroidType.FARMER, "§bHarvest and Replant", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGRlOWE1MjJjM2Q5ZTdkODVmM2Q4MmMzNzVkYzM3ZmVjYzg1NmRiZDgwMWViM2JjZWRjMTE2NTE5OGJmIn19fQ=="), - FARM_DOWN(AndroidType.FARMER, "§bHarvest and Replant §7(Block underneath)", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMmQ0Mjk2YjMzM2QyNTMxOWFmM2YzMzA1MTc5N2Y5ZTZkODIxY2QxOWEwMTRmYjcxMzdiZWI4NmE0ZTllOTYifX19"), + FARM_FORWARD(AndroidType.FARMER, "&bHarvest and Replant", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGRlOWE1MjJjM2Q5ZTdkODVmM2Q4MmMzNzVkYzM3ZmVjYzg1NmRiZDgwMWViM2JjZWRjMTE2NTE5OGJmIn19fQ=="), + FARM_DOWN(AndroidType.FARMER, "&bHarvest and Replant &7(Block underneath)", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMmQ0Mjk2YjMzM2QyNTMxOWFmM2YzMzA1MTc5N2Y5ZTZkODIxY2QxOWEwMTRmYjcxMzdiZWI4NmE0ZTllOTYifX19"), // Action - ExoticGarden - FARM_EXOTIC_FORWARD(AndroidType.ADVANCED_FARMER, "§bAdvanced Harvest and Replant", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGRlOWE1MjJjM2Q5ZTdkODVmM2Q4MmMzNzVkYzM3ZmVjYzg1NmRiZDgwMWViM2JjZWRjMTE2NTE5OGJmIn19fQ=="), - FARM_EXOTIC_DOWN(AndroidType.ADVANCED_FARMER, "§bAdvanced Harvest and Replant §7(Block underneath)", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMmQ0Mjk2YjMzM2QyNTMxOWFmM2YzMzA1MTc5N2Y5ZTZkODIxY2QxOWEwMTRmYjcxMzdiZWI4NmE0ZTllOTYifX19"), + FARM_EXOTIC_FORWARD(AndroidType.ADVANCED_FARMER, "&bAdvanced Harvest and Replant", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGRlOWE1MjJjM2Q5ZTdkODVmM2Q4MmMzNzVkYzM3ZmVjYzg1NmRiZDgwMWViM2JjZWRjMTE2NTE5OGJmIn19fQ=="), + FARM_EXOTIC_DOWN(AndroidType.ADVANCED_FARMER, "&bAdvanced Harvest and Replant &7(Block underneath)", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMmQ0Mjk2YjMzM2QyNTMxOWFmM2YzMzA1MTc5N2Y5ZTZkODIxY2QxOWEwMTRmYjcxMzdiZWI4NmE0ZTllOTYifX19"), // Action - Interface - INTERFACE_ITEMS(AndroidType.NONE, "§9Push Inventory Contents to the faced Interface", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTBhNGRiZjY2MjVjNDJiZTU3YThiYTJjMzMwOTU0YTc2YmRmMjI3ODU1NDBlODdhNWM5NjcyNjg1MjM4ZWMifX19"), - INTERFACE_FUEL(AndroidType.NONE, "§cPull Fuel from the faced Interface", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjQzMmY1MjgyYTUwNzQ1YjkxMmJlMTRkZWRhNTgxYmQ0YTA5Yjk3N2EzYzMyZDdlOTU3ODQ5MWZlZThmYTcifX19"); + INTERFACE_ITEMS(AndroidType.NONE, "&9Push Inventory Contents to the faced Interface", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTBhNGRiZjY2MjVjNDJiZTU3YThiYTJjMzMwOTU0YTc2YmRmMjI3ODU1NDBlODdhNWM5NjcyNjg1MjM4ZWMifX19"), + INTERFACE_FUEL(AndroidType.NONE, "&cPull Fuel from the faced Interface", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjQzMmY1MjgyYTUwNzQ1YjkxMmJlMTRkZWRhNTgxYmQ0YTA5Yjk3N2EzYzMyZDdlOTU3ODQ5MWZlZThmYTcifX19"); private ItemStack item; diff --git a/src/me/mrCookieSlime/Slimefun/Commands/SlimefunCommand.java b/src/me/mrCookieSlime/Slimefun/Commands/SlimefunCommand.java index 8a8111cce..e0febf18e 100644 --- a/src/me/mrCookieSlime/Slimefun/Commands/SlimefunCommand.java +++ b/src/me/mrCookieSlime/Slimefun/Commands/SlimefunCommand.java @@ -128,7 +128,7 @@ public class SlimefunCommand implements CommandExecutor, Listener { if (yaw > 180) yaw = -180 + (yaw - 180); ((Player) sender).teleport(new Location(((Player) sender).getWorld(), x, y, z, yaw, ((Player) sender).getEyeLocation().getPitch())); try { - TitleBuilder title = (TitleBuilder) new TitleBuilder(20, 60, 20).addText("§r" + ChatColor.translateAlternateColorCodes('&', BlockStorage.getBlockInfo(((Player) sender).getWorld().getBlockAt(Integer.parseInt(args[1]), Integer.parseInt(args[2]), Integer.parseInt(args[3])), "floor"))); + TitleBuilder title = (TitleBuilder) new TitleBuilder(20, 60, 20).addText("&r" + ChatColor.translateAlternateColorCodes('&', BlockStorage.getBlockInfo(((Player) sender).getWorld().getBlockAt(Integer.parseInt(args[1]), Integer.parseInt(args[2]), Integer.parseInt(args[3])), "floor"))); TitleBuilder subtitle = (TitleBuilder) new TitleBuilder(20, 60, 20).addText(" "); title.send(TitleType.TITLE, ((Player) sender)); @@ -175,7 +175,7 @@ public class SlimefunCommand implements CommandExecutor, Listener { e.printStackTrace(); } } - else sender.sendMessage("§4Unknown Player: §c" + args[1]); + else sender.sendMessage("&4Unknown Player: &c" + args[1]); } else Messages.local.sendTranslation(sender, "messages.no-permission", true); } diff --git a/src/me/mrCookieSlime/Slimefun/GPS/Elevator.java b/src/me/mrCookieSlime/Slimefun/GPS/Elevator.java index ef33ad08b..4917bdd04 100644 --- a/src/me/mrCookieSlime/Slimefun/GPS/Elevator.java +++ b/src/me/mrCookieSlime/Slimefun/GPS/Elevator.java @@ -30,26 +30,26 @@ public class Elevator { public static void openEditor(Player p, final Block b) { ChestMenu menu = new ChestMenu("Elevator Settings"); - menu.addItem(4, new CustomItem(new MaterialData(Material.NAME_TAG), "§7Floor Name §e(Click to edit)", "", "§r" + ChatColor.translateAlternateColorCodes('&', BlockStorage.getBlockInfo(b, "floor")))); + menu.addItem(4, new CustomItem(new MaterialData(Material.NAME_TAG), "&7Floor Name &e(Click to edit)", "", "&r" + ChatColor.translateAlternateColorCodes('&', BlockStorage.getBlockInfo(b, "floor")))); menu.addMenuClickHandler(4, new MenuClickHandler() { @Override public boolean onClick(Player p, int arg1, ItemStack arg2, ClickAction arg3) { p.closeInventory(); p.sendMessage(""); - p.sendMessage("§4§l>> §ePlease enter a Name for this Floor in your Chat!"); - p.sendMessage("§4§l>> §e(Chat Colors are supported!"); + p.sendMessage("&4&l>> &ePlease enter a Name for this Floor in your Chat!"); + p.sendMessage("&4&l>> &e(Chat Colors are supported!"); p.sendMessage(""); MenuHelper.awaitChatInput(p, new ChatHandler() { @Override public boolean onChat(Player p, String message) { - BlockStorage.addBlockInfo(b, "floor", message.replaceAll("§", "&")); + BlockStorage.addBlockInfo(b, "floor", message.replaceAll("&", "&")); p.sendMessage(""); - p.sendMessage("§4§l>> §eSuccessfully named this Floor:"); - p.sendMessage("§4§l>> §r" + ChatColor.translateAlternateColorCodes('&', message)); + p.sendMessage("&4&l>> &eSuccessfully named this Floor:"); + p.sendMessage("&4&l>> &r" + ChatColor.translateAlternateColorCodes('&', message)); p.sendMessage(""); openEditor(p, b); @@ -70,19 +70,19 @@ public class Elevator { return; } TellRawMessage tellraw = new TellRawMessage(); - tellraw.addText("§3- Pick a Destination -\n\n"); + tellraw.addText("&3- Pick a Destination -\n\n"); int index = 1; for (int y = b.getWorld().getMaxHeight(); y > 0; y--) { Block block = b.getWorld().getBlockAt(b.getX(), y, b.getZ()); if (BlockStorage.check(block, "ELEVATOR_PLATE")) { String floor = ChatColor.translateAlternateColorCodes('&', BlockStorage.getBlockInfo(block, "floor")); if (block.getY() == b.getY()) { - tellraw.addText("§7> " + index + ". §r" + floor + "\n"); - tellraw.addHoverEvent(HoverAction.SHOW_TEXT, "\n§eThis is the Floor you are currently on:\n§r" + floor + "\n"); + tellraw.addText("&7> " + index + ". &r" + floor + "\n"); + tellraw.addHoverEvent(HoverAction.SHOW_TEXT, "\n&eThis is the Floor you are currently on:\n&r" + floor + "\n"); } else { - tellraw.addText("§7" + index + ". §r" + floor + "\n"); - tellraw.addHoverEvent(HoverAction.SHOW_TEXT, "\n§eClick to teleport to this Floor\n§r" + floor + "\n"); + tellraw.addText("&7" + index + ". &r" + floor + "\n"); + tellraw.addHoverEvent(HoverAction.SHOW_TEXT, "\n&eClick to teleport to this Floor\n&r" + floor + "\n"); tellraw.addClickEvent(me.mrCookieSlime.CSCoreLibPlugin.general.Chat.TellRawMessage.ClickAction.RUN_COMMAND, "/sf elevator " + block.getX() + " " + block.getY() + " " + block.getZ() + " "); } diff --git a/src/me/mrCookieSlime/Slimefun/GPS/GPSNetwork.java b/src/me/mrCookieSlime/Slimefun/GPS/GPSNetwork.java index 3d26c2796..296e02045 100644 --- a/src/me/mrCookieSlime/Slimefun/GPS/GPSNetwork.java +++ b/src/me/mrCookieSlime/Slimefun/GPS/GPSNetwork.java @@ -71,7 +71,7 @@ public class GPSNetwork { @SuppressWarnings("deprecation") public void openTransmitterControlPanel(Player p) throws Exception { - ChestMenu menu = new ChestMenu("§9Control Panel"); + ChestMenu menu = new ChestMenu("&9Control Panel"); for (int slot: border) { menu.addItem(slot, new CustomItem(new MaterialData(Material.STAINED_GLASS_PANE, (byte) 7), " "), @@ -85,7 +85,7 @@ public class GPSNetwork { }); } - menu.addItem(2, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjBjOWMxYTAyMmY0MGI3M2YxNGI0Y2JhMzdjNzE4YzZhNTMzZjNhMjg2NGI2NTM2ZDVmNDU2OTM0Y2MxZiJ9fX0="), "§7Transmitter Overview &e(Selected)")); + menu.addItem(2, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjBjOWMxYTAyMmY0MGI3M2YxNGI0Y2JhMzdjNzE4YzZhNTMzZjNhMjg2NGI2NTM2ZDVmNDU2OTM0Y2MxZiJ9fX0="), "&7Transmitter Overview &e(Selected)")); menu.addMenuClickHandler(2, new MenuClickHandler() { @Override @@ -94,7 +94,7 @@ public class GPSNetwork { } }); - menu.addItem(4, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGRjZmJhNThmYWYxZjY0ODQ3ODg0MTExODIyYjY0YWZhMjFkN2ZjNjJkNDQ4MWYxNGYzZjNiY2I2MzMwIn19fQ=="), "§7Network Info", "", "§8\u21E8 §7Status: " + (getNetworkComplexity(p.getUniqueId()) > 0 ? "§2§lONLINE": "§4§lOFFLINE"), "§8\u21E8 §7Complexity: §r" + getNetworkComplexity(p.getUniqueId()))); + menu.addItem(4, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGRjZmJhNThmYWYxZjY0ODQ3ODg0MTExODIyYjY0YWZhMjFkN2ZjNjJkNDQ4MWYxNGYzZjNiY2I2MzMwIn19fQ=="), "&7Network Info", "", "&8\u21E8 &7Status: " + (getNetworkComplexity(p.getUniqueId()) > 0 ? "&2&lONLINE": "&4&lOFFLINE"), "&8\u21E8 &7Complexity: &r" + getNetworkComplexity(p.getUniqueId()))); menu.addMenuClickHandler(4, new MenuClickHandler() { @Override @@ -103,7 +103,7 @@ public class GPSNetwork { } }); - menu.addItem(6, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzljODg4MWU0MjkxNWE5ZDI5YmI2MWExNmZiMjZkMDU5OTEzMjA0ZDI2NWRmNWI0MzliM2Q3OTJhY2Q1NiJ9fX0="), "§7Waypoint Overview &r(Select)")); + menu.addItem(6, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzljODg4MWU0MjkxNWE5ZDI5YmI2MWExNmZiMjZkMDU5OTEzMjA0ZDI2NWRmNWI0MzliM2Q3OTJhY2Q1NiJ9fX0="), "&7Waypoint Overview &r(Select)")); menu.addMenuClickHandler(6, new MenuClickHandler() { @Override @@ -122,7 +122,7 @@ public class GPSNetwork { if (index >= inventory.length) break; int slot = inventory[index]; - menu.addItem(slot, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjBjOWMxYTAyMmY0MGI3M2YxNGI0Y2JhMzdjNzE4YzZhNTMzZjNhMjg2NGI2NTM2ZDVmNDU2OTM0Y2MxZiJ9fX0="), "§bGPS Transmitter", "§8\u21E8 §7World: §r" + l.getWorld().getName(), "§8\u21E8 §7X: §r" + l.getX(), "§8\u21E8 §7Y: §r" + l.getY(), "§8\u21E8 §7Z: §r" + l.getZ(), "", "§8\u21E8 §7Signal Strength: §r" + l.getBlockY(), "§8\u21E8 §7Ping: §r" + DoubleHandler.fixDouble(1000D / l.getY()) + "ms")); + menu.addItem(slot, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjBjOWMxYTAyMmY0MGI3M2YxNGI0Y2JhMzdjNzE4YzZhNTMzZjNhMjg2NGI2NTM2ZDVmNDU2OTM0Y2MxZiJ9fX0="), "&bGPS Transmitter", "&8\u21E8 &7World: &r" + l.getWorld().getName(), "&8\u21E8 &7X: &r" + l.getX(), "&8\u21E8 &7Y: &r" + l.getY(), "&8\u21E8 &7Z: &r" + l.getZ(), "", "&8\u21E8 &7Signal Strength: &r" + l.getBlockY(), "&8\u21E8 &7Ping: &r" + DoubleHandler.fixDouble(1000D / l.getY()) + "ms")); menu.addMenuClickHandler(slot, new MenuClickHandler() { @Override @@ -155,7 +155,7 @@ public class GPSNetwork { @SuppressWarnings("deprecation") public void openWaypointControlPanel(Player p) throws Exception { - ChestMenu menu = new ChestMenu("§9Control Panel"); + ChestMenu menu = new ChestMenu("&9Control Panel"); for (int slot: border) { menu.addItem(slot, new CustomItem(new MaterialData(Material.STAINED_GLASS_PANE, (byte) 7), " "), @@ -169,7 +169,7 @@ public class GPSNetwork { }); } - menu.addItem(2, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjBjOWMxYTAyMmY0MGI3M2YxNGI0Y2JhMzdjNzE4YzZhNTMzZjNhMjg2NGI2NTM2ZDVmNDU2OTM0Y2MxZiJ9fX0="), "§7Transmitter Overview &r(Select)")); + menu.addItem(2, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjBjOWMxYTAyMmY0MGI3M2YxNGI0Y2JhMzdjNzE4YzZhNTMzZjNhMjg2NGI2NTM2ZDVmNDU2OTM0Y2MxZiJ9fX0="), "&7Transmitter Overview &r(Select)")); menu.addMenuClickHandler(2, new MenuClickHandler() { @Override @@ -183,7 +183,7 @@ public class GPSNetwork { } }); - menu.addItem(4, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGRjZmJhNThmYWYxZjY0ODQ3ODg0MTExODIyYjY0YWZhMjFkN2ZjNjJkNDQ4MWYxNGYzZjNiY2I2MzMwIn19fQ=="), "§7Network Info", "", "§8\u21E8 §7Status: " + (getNetworkComplexity(p.getUniqueId()) > 0 ? "§2§lONLINE": "§4§lOFFLINE"), "§8\u21E8 §7Complexity: §r" + getNetworkComplexity(p.getUniqueId()))); + menu.addItem(4, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGRjZmJhNThmYWYxZjY0ODQ3ODg0MTExODIyYjY0YWZhMjFkN2ZjNjJkNDQ4MWYxNGYzZjNiY2I2MzMwIn19fQ=="), "&7Network Info", "", "&8\u21E8 &7Status: " + (getNetworkComplexity(p.getUniqueId()) > 0 ? "&2&lONLINE": "&4&lOFFLINE"), "&8\u21E8 &7Complexity: &r" + getNetworkComplexity(p.getUniqueId()))); menu.addMenuClickHandler(4, new MenuClickHandler() { @Override @@ -192,7 +192,7 @@ public class GPSNetwork { } }); - menu.addItem(6, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzljODg4MWU0MjkxNWE5ZDI5YmI2MWExNmZiMjZkMDU5OTEzMjA0ZDI2NWRmNWI0MzliM2Q3OTJhY2Q1NiJ9fX0="), "§7Waypoint Overview &e(Selected)")); + menu.addItem(6, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzljODg4MWU0MjkxNWE5ZDI5YmI2MWExNmZiMjZkMDU5OTEzMjA0ZDI2NWRmNWI0MzliM2Q3OTJhY2Q1NiJ9fX0="), "&7Waypoint Overview &e(Selected)")); menu.addMenuClickHandler(6, new MenuClickHandler() { @Override @@ -209,7 +209,7 @@ public class GPSNetwork { Location l = entry.getValue(); ItemStack globe = getPlanet(entry); - menu.addItem(slot, new CustomItem(globe, entry.getKey(), "§8\u21E8 §7World: §r" + l.getWorld().getName(), "§8\u21E8 §7X: §r" + l.getX(), "§8\u21E8 §7Y: §r" + l.getY(), "§8\u21E8 §7Z: §r" + l.getZ(), "", "§8\u21E8 §cClick to delete")); + menu.addItem(slot, new CustomItem(globe, entry.getKey(), "&8\u21E8 &7World: &r" + l.getWorld().getName(), "&8\u21E8 &7X: &r" + l.getX(), "&8\u21E8 &7Y: &r" + l.getY(), "&8\u21E8 &7Z: &r" + l.getZ(), "", "&8\u21E8 &cClick to delete")); menu.addMenuClickHandler(slot, new MenuClickHandler() { @Override @@ -285,14 +285,14 @@ public class GPSNetwork { Messages.local.sendTranslation(p, "gps.insufficient-complexity", true, new Variable("%complexity%", String.valueOf(600))); return; } - ChestMenu menu = new ChestMenu("§4Scan Results"); + ChestMenu menu = new ChestMenu("&4Scan Results"); int index = 0; for (OreGenResource resource: OreGenSystem.listResources()) { int supply = OreGenSystem.getSupplies(resource, chunk, true); - menu.addItem(index, new CustomItem(resource.getIcon(), "§7Resource: §e" + resource.getName(), "", "§7Scanned Chunk:", "§8\u21E8 §7X: " + chunk.getX() + " Z: " + chunk.getZ(), "", "§7Result: §e" + supply + " " + resource.getMeasurementUnit()), + menu.addItem(index, new CustomItem(resource.getIcon(), "&7Resource: &e" + resource.getName(), "", "&7Scanned Chunk:", "&8\u21E8 &7X: " + chunk.getX() + " Z: " + chunk.getZ(), "", "&7Result: &e" + supply + " " + resource.getMeasurementUnit()), new MenuClickHandler() { @Override @@ -316,7 +316,7 @@ public class GPSNetwork { p.playSound(p.getLocation(), Sound.UI_BUTTON_CLICK, 1F, 1F); TeleportationSequence.players.add(p.getUniqueId()); - ChestMenu menu = new ChestMenu("§3Teleporter"); + ChestMenu menu = new ChestMenu("&3Teleporter"); menu.addMenuCloseHandler(new MenuCloseHandler() { @@ -338,7 +338,7 @@ public class GPSNetwork { }); } - menu.addItem(4, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzljODg4MWU0MjkxNWE5ZDI5YmI2MWExNmZiMjZkMDU5OTEzMjA0ZDI2NWRmNWI0MzliM2Q3OTJhY2Q1NiJ9fX0="), "§7Waypoint Overview &e(Select a Destination)")); + menu.addItem(4, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzljODg4MWU0MjkxNWE5ZDI5YmI2MWExNmZiMjZkMDU5OTEzMjA0ZDI2NWRmNWI0MzliM2Q3OTJhY2Q1NiJ9fX0="), "&7Waypoint Overview &e(Select a Destination)")); menu.addMenuClickHandler(4, new MenuClickHandler() { @Override @@ -356,7 +356,7 @@ public class GPSNetwork { final Location l = entry.getValue(); ItemStack globe = getPlanet(entry); - menu.addItem(slot, new CustomItem(globe, entry.getKey(), "§8\u21E8 §7World: §r" + l.getWorld().getName(), "§8\u21E8 §7X: §r" + l.getX(), "§8\u21E8 §7Y: §r" + l.getY(), "§8\u21E8 §7Z: §r" + l.getZ(), "§8\u21E8 §7Estimated Teleportation Time: §r" + (50 / TeleportationSequence.getSpeed(Slimefun.getGPSNetwork().getNetworkComplexity(uuid), source, l)) + "s", "", "§8\u21E8 §cClick to select")); + menu.addItem(slot, new CustomItem(globe, entry.getKey(), "&8\u21E8 &7World: &r" + l.getWorld().getName(), "&8\u21E8 &7X: &r" + l.getX(), "&8\u21E8 &7Y: &r" + l.getY(), "&8\u21E8 &7Z: &r" + l.getZ(), "&8\u21E8 &7Estimated Teleportation Time: &r" + (50 / TeleportationSequence.getSpeed(Slimefun.getGPSNetwork().getNetworkComplexity(uuid), source, l)) + "s", "", "&8\u21E8 &cClick to select")); menu.addMenuClickHandler(slot, new MenuClickHandler() { @Override diff --git a/src/me/mrCookieSlime/Slimefun/GPS/TeleportationSequence.java b/src/me/mrCookieSlime/Slimefun/GPS/TeleportationSequence.java index 2bc320f33..7b076bd17 100644 --- a/src/me/mrCookieSlime/Slimefun/GPS/TeleportationSequence.java +++ b/src/me/mrCookieSlime/Slimefun/GPS/TeleportationSequence.java @@ -52,8 +52,8 @@ public class TeleportationSequence { players.remove(uuid); if (p != null) { try { - TitleBuilder title = (TitleBuilder) new TitleBuilder(20, 60, 20).addText("§4Teleportation cancelled"); - TitleBuilder subtitle = (TitleBuilder) new TitleBuilder(20, 60, 20).addText("§40%"); + TitleBuilder title = (TitleBuilder) new TitleBuilder(20, 60, 20).addText("&4Teleportation cancelled"); + TitleBuilder subtitle = (TitleBuilder) new TitleBuilder(20, 60, 20).addText("&40%"); title.send(TitleType.TITLE, p); subtitle.send(TitleType.SUBTITLE, p); @@ -68,8 +68,8 @@ public class TeleportationSequence { if (isValid(p, source)) { try { if (progress > 99) { - TitleBuilder title = (TitleBuilder) new TitleBuilder(20, 60, 20).addText("§3Teleported!"); - TitleBuilder subtitle = (TitleBuilder) new TitleBuilder(20, 60, 20).addText("§b100%"); + TitleBuilder title = (TitleBuilder) new TitleBuilder(20, 60, 20).addText("&3Teleported!"); + TitleBuilder subtitle = (TitleBuilder) new TitleBuilder(20, 60, 20).addText("&b100%"); title.send(TitleType.TITLE, p); subtitle.send(TitleType.SUBTITLE, p); @@ -78,7 +78,7 @@ public class TeleportationSequence { if (resistance) { p.addPotionEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, 600, 20)); - p.sendMessage("§b§lYou have been given 30 Seconds of Invulnerability!"); + p.sendMessage("&b&lYou have been given 30 Seconds of Invulnerability!"); } ParticleEffect.PORTAL.display(new Location(destination.getWorld(), destination.getX(), destination.getY() + 1, destination.getZ()), 0.2F, 0.8F, 0.2F, 1, progress * 2); @@ -86,8 +86,8 @@ public class TeleportationSequence { players.remove(uuid); } else { - TitleBuilder title = (TitleBuilder) new TitleBuilder(0, 60, 0).addText("§3Teleporting..."); - TitleBuilder subtitle = (TitleBuilder) new TitleBuilder(0, 60, 0).addText("§b" + progress + "%"); + TitleBuilder title = (TitleBuilder) new TitleBuilder(0, 60, 0).addText("&3Teleporting..."); + TitleBuilder subtitle = (TitleBuilder) new TitleBuilder(0, 60, 0).addText("&b" + progress + "%"); title.send(TitleType.TITLE, p); subtitle.send(TitleType.SUBTITLE, p); diff --git a/src/me/mrCookieSlime/Slimefun/Lists/Categories.java b/src/me/mrCookieSlime/Slimefun/Lists/Categories.java index 3510d67e1..92ff9ea62 100644 --- a/src/me/mrCookieSlime/Slimefun/Lists/Categories.java +++ b/src/me/mrCookieSlime/Slimefun/Lists/Categories.java @@ -40,12 +40,12 @@ public class Categories { static { try { MISC = new Category(new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTRkYTk3ZjA4MGUzOTViODQyYzRjYzgyYTg0MDgyM2Q0ZGJkOGNhNjg4YTIwNjg1M2U1NzgzZTRiZmRjMDEyIn19fQ=="), "&7Miscellaneous", "", "&a> Click to open"), 2); - PORTABLE = new Category(new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDBjYjFlNjdiNTEyYWIyZDRiZjNkN2FjZTBlYWFmNjFjMzJjZDQ2ODFkZGMzOTg3Y2ViMzI2NzA2YTMzZmEifX19"), "§7Items", "", "&a> Click to open"), 1); - MACHINES_1 = new Category(new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "§7Basic Machines", "", "&a> Click to open"), 1); - ELECTRICITY = new LockedCategory(new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTU4NDQzMmFmNmYzODIxNjcxMjAyNThkMWVlZThjODdjNmU3NWQ5ZTQ3OWU3YjBkNGM3YjZhZDQ4Y2ZlZWYifX19"), "§bEnergy and Electricity", "", "&a> Click to open"), 4, MACHINES_1); - GPS = new LockedCategory(new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjBjOWMxYTAyMmY0MGI3M2YxNGI0Y2JhMzdjNzE4YzZhNTMzZjNhMjg2NGI2NTM2ZDVmNDU2OTM0Y2MxZiJ9fX0="), "§bGPS-based Machines", "", "&a> Click to open"), 4, MACHINES_1); - RESOURCES = new Category(new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvY2U4ZjVhZGIxNGQ2YzlmNmI4MTBkMDI3NTQzZjFhOGMxZjQxN2UyZmVkOTkzYzk3YmNkODljNzRmNWUyZTgifX19"), "§7Resources", "", "&a> Click to open"), 1); - CARGO = new LockedCategory(new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTUxMGJjODUzNjJhMTMwYTZmZjlkOTFmZjExZDZmYTQ2ZDdkMTkxMmEzNDMxZjc1MTU1OGVmM2M0ZDljMiJ9fX0="), "§cCargo Management", "", "&a> Click to open"), 4, MACHINES_1); + PORTABLE = new Category(new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDBjYjFlNjdiNTEyYWIyZDRiZjNkN2FjZTBlYWFmNjFjMzJjZDQ2ODFkZGMzOTg3Y2ViMzI2NzA2YTMzZmEifX19"), "&7Items", "", "&a> Click to open"), 1); + MACHINES_1 = new Category(new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "&7Basic Machines", "", "&a> Click to open"), 1); + ELECTRICITY = new LockedCategory(new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTU4NDQzMmFmNmYzODIxNjcxMjAyNThkMWVlZThjODdjNmU3NWQ5ZTQ3OWU3YjBkNGM3YjZhZDQ4Y2ZlZWYifX19"), "&bEnergy and Electricity", "", "&a> Click to open"), 4, MACHINES_1); + GPS = new LockedCategory(new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjBjOWMxYTAyMmY0MGI3M2YxNGI0Y2JhMzdjNzE4YzZhNTMzZjNhMjg2NGI2NTM2ZDVmNDU2OTM0Y2MxZiJ9fX0="), "&bGPS-based Machines", "", "&a> Click to open"), 4, MACHINES_1); + RESOURCES = new Category(new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvY2U4ZjVhZGIxNGQ2YzlmNmI4MTBkMDI3NTQzZjFhOGMxZjQxN2UyZmVkOTkzYzk3YmNkODljNzRmNWUyZTgifX19"), "&7Resources", "", "&a> Click to open"), 1); + CARGO = new LockedCategory(new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTUxMGJjODUzNjJhMTMwYTZmZjlkOTFmZjExZDZmYTQ2ZDdkMTkxMmEzNDMxZjc1MTU1OGVmM2M0ZDljMiJ9fX0="), "&cCargo Management", "", "&a> Click to open"), 4, MACHINES_1); } catch (Exception e) { e.printStackTrace(); } diff --git a/src/me/mrCookieSlime/Slimefun/Lists/RecipeType.java b/src/me/mrCookieSlime/Slimefun/Lists/RecipeType.java index 8daf47d03..5376270ab 100644 --- a/src/me/mrCookieSlime/Slimefun/Lists/RecipeType.java +++ b/src/me/mrCookieSlime/Slimefun/Lists/RecipeType.java @@ -28,7 +28,7 @@ public class RecipeType { public static final RecipeType ORE_WASHER = new RecipeType(new CustomItem(Material.CAULDRON_ITEM, "&6Ore Washer", 0, new String[] {"", "&a&oWash it in an Ore Washer"}), "ORE_WASHER"); public static final RecipeType ENHANCED_CRAFTING_TABLE = new RecipeType(new CustomItem(Material.WORKBENCH, "&eEnhanced Crafting Table", 0, new String[] {"", "&a&oA regular Crafting Table cannot", "&a&ohold this massive Amount of Power..."}), "ENHANCED_CRAFTING_TABLE"); public static final RecipeType JUICER = new RecipeType(new CustomItem(Material.GLASS_BOTTLE, "&eJuicer", 0, new String[] {"", "&a&oUsed for Juice Creation"}), "JUICER"); - public static final RecipeType ANCIENT_ALTAR = new RecipeType(new CustomItem(Material.ENCHANTMENT_TABLE, "&4Ancient Altar", 0, new String[] {"", "&dYou will need to craft this Item", "§dby performing an Ancient Altar Ritual"})); + public static final RecipeType ANCIENT_ALTAR = new RecipeType(new CustomItem(Material.ENCHANTMENT_TABLE, "&4Ancient Altar", 0, new String[] {"", "&dYou will need to craft this Item", "&dby performing an Ancient Altar Ritual"})); public static final RecipeType HEATED_PRESSURE_CHAMBER = new RecipeType(new CustomItem(Material.STAINED_GLASS, "&cHeated Pressure Chamber", 8, new String[] {"", "&a&oCraft this Item in a", "&a&oHeated Pressure Chamber"}), "HEATED_PRESSURE_CHAMBER"); public static final RecipeType SHAPED_RECIPE = new RecipeType(new CustomItem(Material.WORKBENCH, "&eShaped Recipe", 0, new String[] {"", "&a&oJust a standard Recipe in the Workbench..."})); diff --git a/src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java b/src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java index ffe96ce80..ef1231150 100644 --- a/src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java +++ b/src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java @@ -24,9 +24,9 @@ public class SlimefunItems { public static ItemStack PORTABLE_DUSTBIN = null; public static ItemStack ENDER_BACKPACK = null; public static ItemStack MAGIC_EYE_OF_ENDER = new CustomItem(Material.EYE_OF_ENDER, "&6&lMagic Eye of Ender", 0, new String[] {"&4&lRequires full Ender Armor", "", "&7&eRight Click&7 to shoot an Ender Pearl"}); - public static ItemStack BROKEN_SPAWNER = new CustomItem(new MaterialData(Material.MOB_SPAWNER), "&cBroken Spawner", "&7Type: &b", "", "§cFractured, must be repaired in an Ancient Altar"); + public static ItemStack BROKEN_SPAWNER = new CustomItem(new MaterialData(Material.MOB_SPAWNER), "&cBroken Spawner", "&7Type: &b", "", "&cFractured, must be repaired in an Ancient Altar"); public static ItemStack REPAIRED_SPAWNER = new CustomItem(Material.MOB_SPAWNER, "&bReinforced Spawner", 0, new String[] {"&7Type: &b"}); - public static ItemStack INFERNAL_BONEMEAL = new CustomItem(new MaterialData(Material.INK_SACK, (byte) 15), "&4Infernal Bonemeal", "", "§cSpeeds up the Growth of", "§cNether Warts as well"); + public static ItemStack INFERNAL_BONEMEAL = new CustomItem(new MaterialData(Material.INK_SACK, (byte) 15), "&4Infernal Bonemeal", "", "&cSpeeds up the Growth of", "&cNether Warts as well"); /* Gadgets */ public static ItemStack GOLD_PAN = new CustomItem(Material.BOWL, "&6Gold Pan", 0, new String[] {"&a&oCan get you all kinds of Goodies...", "", "&7&eRight Click&7 to pan various Stuff out of Gravel"}); @@ -69,33 +69,33 @@ public class SlimefunItems { public static ItemStack DEPRECATED_COOLER = new CustomItem(Material.CHEST, "&bCooler", 0, new String[] {"&rAllows you to store Juices/Smoothies", "&rand automatically consumes them when you are hungry", "&rand you have this in your Inventory", "", "&7Size: &e27", "&7ID: ", "", "&7&eRight Click&7 to open"}); /* Jetpacks */ - public static ItemStack DURALUMIN_JETPACK = new CustomArmor(new CustomItem(new MaterialData(Material.LEATHER_CHESTPLATE), "&9Electric Jetpack &7- &eI", "", "§8\u21E8 &7Material: &bDuralumin", "§c§o§8\u21E8 §e\u26A1 §70 / 20 J", "§8\u21E8 &7Thrust: &c0.35", "", "&7Hold &eShift&7 to use"), Color.SILVER); - public static ItemStack SOLDER_JETPACK = new CustomArmor(new CustomItem(new MaterialData(Material.LEATHER_CHESTPLATE), "&9Electric Jetpack &7- &eII", "", "§8\u21E8 &7Material: &bSolder", "§c§o§8\u21E8 §e\u26A1 §70 / 30 J", "§8\u21E8 &7Thrust: &c0.4", "", "&7Hold &eShift&7 to use"), Color.SILVER); - public static ItemStack BILLON_JETPACK = new CustomArmor(new CustomItem(new MaterialData(Material.LEATHER_CHESTPLATE), "&9Electric Jetpack &7- &eIII", "", "§8\u21E8 &7Material: &bBillon", "§c§o§8\u21E8 §e\u26A1 §70 / 45 J", "§8\u21E8 &7Thrust: &c0.45", "", "&7Hold &eShift&7 to use"), Color.SILVER); - public static ItemStack STEEL_JETPACK = new CustomArmor(new CustomItem(new MaterialData(Material.LEATHER_CHESTPLATE), "&9Electric Jetpack &7- &eIV", "", "§8\u21E8 &7Material: &bSteel", "§c§o§8\u21E8 §e\u26A1 §70 / 60 J", "§8\u21E8 &7Thrust: &c0.5", "", "&7Hold &eShift&7 to use"), Color.SILVER); - public static ItemStack DAMASCUS_STEEL_JETPACK = new CustomArmor(new CustomItem(new MaterialData(Material.LEATHER_CHESTPLATE), "&9Electric Jetpack &7- &eV", "", "§8\u21E8 &7Material: &bDamascus Steel", "§c§o§8\u21E8 §e\u26A1 §70 / 75 J", "§8\u21E8 &7Thrust: &c0.55", "", "&7Hold &eShift&7 to use"), Color.SILVER); - public static ItemStack REINFORCED_ALLOY_JETPACK = new CustomArmor(new CustomItem(new MaterialData(Material.LEATHER_CHESTPLATE), "&9Electric Jetpack &7- &eVI", "", "§8\u21E8 &7Material: &bReinforced Alloy", "§c§o§8\u21E8 §e\u26A1 §70 / 100 J", "§8\u21E8 &7Thrust: &c0.6", "", "&7Hold &eShift&7 to use"), Color.SILVER); - public static ItemStack CARBONADO_JETPACK = new CustomArmor(new CustomItem(new MaterialData(Material.LEATHER_CHESTPLATE), "&9Electric Jetpack &7- &eVII", "", "§8\u21E8 &7Material: &bCarbonado", "§c§o§8\u21E8 §e\u26A1 §70 / 150 J", "§8\u21E8 &7Thrust: &c0.7", "", "&7Hold &eShift&7 to use"), Color.BLACK); - public static ItemStack ARMORED_JETPACK = new CustomItem(new MaterialData(Material.IRON_CHESTPLATE), "&9Armored Jetpack", "§8\u21E8 &7Material: &bSteel", "", "§c§o§8\u21E8 §e\u26A1 §70 / 50 J", "§8\u21E8 &7Thrust: &c0.45", "", "&7Hold &eShift&7 to use"); + public static ItemStack DURALUMIN_JETPACK = new CustomArmor(new CustomItem(new MaterialData(Material.LEATHER_CHESTPLATE), "&9Electric Jetpack &7- &eI", "", "&8\u21E8 &7Material: &bDuralumin", "&c&o&8\u21E8 &e\u26A1 &70 / 20 J", "&8\u21E8 &7Thrust: &c0.35", "", "&7Hold &eShift&7 to use"), Color.SILVER); + public static ItemStack SOLDER_JETPACK = new CustomArmor(new CustomItem(new MaterialData(Material.LEATHER_CHESTPLATE), "&9Electric Jetpack &7- &eII", "", "&8\u21E8 &7Material: &bSolder", "&c&o&8\u21E8 &e\u26A1 &70 / 30 J", "&8\u21E8 &7Thrust: &c0.4", "", "&7Hold &eShift&7 to use"), Color.SILVER); + public static ItemStack BILLON_JETPACK = new CustomArmor(new CustomItem(new MaterialData(Material.LEATHER_CHESTPLATE), "&9Electric Jetpack &7- &eIII", "", "&8\u21E8 &7Material: &bBillon", "&c&o&8\u21E8 &e\u26A1 &70 / 45 J", "&8\u21E8 &7Thrust: &c0.45", "", "&7Hold &eShift&7 to use"), Color.SILVER); + public static ItemStack STEEL_JETPACK = new CustomArmor(new CustomItem(new MaterialData(Material.LEATHER_CHESTPLATE), "&9Electric Jetpack &7- &eIV", "", "&8\u21E8 &7Material: &bSteel", "&c&o&8\u21E8 &e\u26A1 &70 / 60 J", "&8\u21E8 &7Thrust: &c0.5", "", "&7Hold &eShift&7 to use"), Color.SILVER); + public static ItemStack DAMASCUS_STEEL_JETPACK = new CustomArmor(new CustomItem(new MaterialData(Material.LEATHER_CHESTPLATE), "&9Electric Jetpack &7- &eV", "", "&8\u21E8 &7Material: &bDamascus Steel", "&c&o&8\u21E8 &e\u26A1 &70 / 75 J", "&8\u21E8 &7Thrust: &c0.55", "", "&7Hold &eShift&7 to use"), Color.SILVER); + public static ItemStack REINFORCED_ALLOY_JETPACK = new CustomArmor(new CustomItem(new MaterialData(Material.LEATHER_CHESTPLATE), "&9Electric Jetpack &7- &eVI", "", "&8\u21E8 &7Material: &bReinforced Alloy", "&c&o&8\u21E8 &e\u26A1 &70 / 100 J", "&8\u21E8 &7Thrust: &c0.6", "", "&7Hold &eShift&7 to use"), Color.SILVER); + public static ItemStack CARBONADO_JETPACK = new CustomArmor(new CustomItem(new MaterialData(Material.LEATHER_CHESTPLATE), "&9Electric Jetpack &7- &eVII", "", "&8\u21E8 &7Material: &bCarbonado", "&c&o&8\u21E8 &e\u26A1 &70 / 150 J", "&8\u21E8 &7Thrust: &c0.7", "", "&7Hold &eShift&7 to use"), Color.BLACK); + public static ItemStack ARMORED_JETPACK = new CustomItem(new MaterialData(Material.IRON_CHESTPLATE), "&9Armored Jetpack", "&8\u21E8 &7Material: &bSteel", "", "&c&o&8\u21E8 &e\u26A1 &70 / 50 J", "&8\u21E8 &7Thrust: &c0.45", "", "&7Hold &eShift&7 to use"); /* Jetboots */ - public static ItemStack DURALUMIN_JETBOOTS = new CustomArmor(new CustomItem(new MaterialData(Material.LEATHER_BOOTS), "&9Jet Boots &7- &eI", "", "§8\u21E8 &7Material: &bDuralumin", "§c§o§8\u21E8 §e\u26A1 §70 / 20 J", "§8\u21E8 &7Speed: &a0.35", "§8\u21E8 &7Accuracy: &c50%", "", "&7Hold &eShift&7 to use"), Color.SILVER); - public static ItemStack SOLDER_JETBOOTS = new CustomArmor(new CustomItem(new MaterialData(Material.LEATHER_BOOTS), "&9Jet Boots &7- &eII", "", "§8\u21E8 &7Material: &bSolder", "§c§o§8\u21E8 §e\u26A1 §70 / 30 J", "§8\u21E8 &7Speed: &a0.4", "§8\u21E8 &7Accuracy: &660%", "", "&7Hold &eShift&7 to use"), Color.SILVER); - public static ItemStack BILLON_JETBOOTS = new CustomArmor(new CustomItem(new MaterialData(Material.LEATHER_BOOTS), "&9Jet Boots &7- &eIII", "", "§8\u21E8 &7Material: &bBillon", "§c§o§8\u21E8 §e\u26A1 §70 / 40 J", "§8\u21E8 &7Speed: &a0.45", "§8\u21E8 &7Accuracy: &665%", "", "&7Hold &eShift&7 to use"), Color.SILVER); - public static ItemStack STEEL_JETBOOTS = new CustomArmor(new CustomItem(new MaterialData(Material.LEATHER_BOOTS), "&9Jet Boots &7- &eIV", "", "§8\u21E8 &7Material: &bSteel", "§c§o§8\u21E8 §e\u26A1 §70 / 50 J", "§8\u21E8 &7Speed: &a0.5", "§8\u21E8 &7Accuracy: &e70%", "", "&7Hold &eShift&7 to use"), Color.SILVER); - public static ItemStack DAMASCUS_STEEL_JETBOOTS = new CustomArmor(new CustomItem(new MaterialData(Material.LEATHER_BOOTS), "&9Jet Boots &7- &eV", "", "§8\u21E8 &7Material: &bDamascus Steel", "§c§o§8\u21E8 §e\u26A1 §70 / 75 J", "§8\u21E8 &7Speed: &a0.55", "§8\u21E8 &7Accuracy: &a75%", "", "&7Hold &eShift&7 to use"), Color.SILVER); - public static ItemStack REINFORCED_ALLOY_JETBOOTS = new CustomArmor(new CustomItem(new MaterialData(Material.LEATHER_BOOTS), "&9Jet Boots &7- &eVI", "", "§8\u21E8 &7Material: &bReinforced Alloy", "§c§o§8\u21E8 §e\u26A1 §70 / 100 J", "§8\u21E8 &7Speed: &a0.6", "§8\u21E8 &7Accuracy: &c80%", "", "&7Hold &eShift&7 to use"), Color.SILVER); - public static ItemStack CARBONADO_JETBOOTS = new CustomArmor(new CustomItem(new MaterialData(Material.LEATHER_BOOTS), "&9Jet Boots &7- &eVII", "", "§8\u21E8 &7Material: &bCarbonado", "§c§o§8\u21E8 §e\u26A1 §70 / 125 J", "§8\u21E8 &7Speed: &a0.7", "§8\u21E8 &7Accuracy: &c99.9%", "", "&7Hold &eShift&7 to use"), Color.BLACK); - public static ItemStack ARMORED_JETBOOTS = new CustomItem(new MaterialData(Material.IRON_BOOTS), "&9Armored Jet Boots", "", "§8\u21E8 &7Material: &bSteel", "§c§o§8\u21E8 §e\u26A1 §70 / 50 J", "§8\u21E8 &7Speed: &a0.45", "§8\u21E8 &7Accuracy: &e70%", "", "&7Hold &eShift&7 to use"); + public static ItemStack DURALUMIN_JETBOOTS = new CustomArmor(new CustomItem(new MaterialData(Material.LEATHER_BOOTS), "&9Jet Boots &7- &eI", "", "&8\u21E8 &7Material: &bDuralumin", "&c&o&8\u21E8 &e\u26A1 &70 / 20 J", "&8\u21E8 &7Speed: &a0.35", "&8\u21E8 &7Accuracy: &c50%", "", "&7Hold &eShift&7 to use"), Color.SILVER); + public static ItemStack SOLDER_JETBOOTS = new CustomArmor(new CustomItem(new MaterialData(Material.LEATHER_BOOTS), "&9Jet Boots &7- &eII", "", "&8\u21E8 &7Material: &bSolder", "&c&o&8\u21E8 &e\u26A1 &70 / 30 J", "&8\u21E8 &7Speed: &a0.4", "&8\u21E8 &7Accuracy: &660%", "", "&7Hold &eShift&7 to use"), Color.SILVER); + public static ItemStack BILLON_JETBOOTS = new CustomArmor(new CustomItem(new MaterialData(Material.LEATHER_BOOTS), "&9Jet Boots &7- &eIII", "", "&8\u21E8 &7Material: &bBillon", "&c&o&8\u21E8 &e\u26A1 &70 / 40 J", "&8\u21E8 &7Speed: &a0.45", "&8\u21E8 &7Accuracy: &665%", "", "&7Hold &eShift&7 to use"), Color.SILVER); + public static ItemStack STEEL_JETBOOTS = new CustomArmor(new CustomItem(new MaterialData(Material.LEATHER_BOOTS), "&9Jet Boots &7- &eIV", "", "&8\u21E8 &7Material: &bSteel", "&c&o&8\u21E8 &e\u26A1 &70 / 50 J", "&8\u21E8 &7Speed: &a0.5", "&8\u21E8 &7Accuracy: &e70%", "", "&7Hold &eShift&7 to use"), Color.SILVER); + public static ItemStack DAMASCUS_STEEL_JETBOOTS = new CustomArmor(new CustomItem(new MaterialData(Material.LEATHER_BOOTS), "&9Jet Boots &7- &eV", "", "&8\u21E8 &7Material: &bDamascus Steel", "&c&o&8\u21E8 &e\u26A1 &70 / 75 J", "&8\u21E8 &7Speed: &a0.55", "&8\u21E8 &7Accuracy: &a75%", "", "&7Hold &eShift&7 to use"), Color.SILVER); + public static ItemStack REINFORCED_ALLOY_JETBOOTS = new CustomArmor(new CustomItem(new MaterialData(Material.LEATHER_BOOTS), "&9Jet Boots &7- &eVI", "", "&8\u21E8 &7Material: &bReinforced Alloy", "&c&o&8\u21E8 &e\u26A1 &70 / 100 J", "&8\u21E8 &7Speed: &a0.6", "&8\u21E8 &7Accuracy: &c80%", "", "&7Hold &eShift&7 to use"), Color.SILVER); + public static ItemStack CARBONADO_JETBOOTS = new CustomArmor(new CustomItem(new MaterialData(Material.LEATHER_BOOTS), "&9Jet Boots &7- &eVII", "", "&8\u21E8 &7Material: &bCarbonado", "&c&o&8\u21E8 &e\u26A1 &70 / 125 J", "&8\u21E8 &7Speed: &a0.7", "&8\u21E8 &7Accuracy: &c99.9%", "", "&7Hold &eShift&7 to use"), Color.BLACK); + public static ItemStack ARMORED_JETBOOTS = new CustomItem(new MaterialData(Material.IRON_BOOTS), "&9Armored Jet Boots", "", "&8\u21E8 &7Material: &bSteel", "&c&o&8\u21E8 &e\u26A1 &70 / 50 J", "&8\u21E8 &7Speed: &a0.45", "&8\u21E8 &7Accuracy: &e70%", "", "&7Hold &eShift&7 to use"); /* Multi Tools */ - public static ItemStack DURALUMIN_MULTI_TOOL = new CustomItem(new MaterialData(Material.SHEARS), "&9Multi Tool &7- &eI", "", "§8\u21E8 &7Material: &bDuralumin", "§c§o§8\u21E8 §e\u26A1 §70 / 20 J", "", "&7&eRight Click&7 to use", "&7Hold &eShift + Right Click&7 to change the Mode"); - public static ItemStack SOLDER_MULTI_TOOL = new CustomItem(new MaterialData(Material.SHEARS), "&9Multi Tool &7- &eII", "", "§8\u21E8 &7Material: &bSolder", "§c§o§8\u21E8 §e\u26A1 §70 / 30 J", "", "&7&eRight Click&7 to use", "&7Hold &eShift + Right Click&7 to change the Mode"); - public static ItemStack BILLON_MULTI_TOOL = new CustomItem(new MaterialData(Material.SHEARS), "&9Multi Tool &7- &eIII", "", "§8\u21E8 &7Material: &bBillon", "§c§o§8\u21E8 §e\u26A1 §70 / 40 J", "", "&7&eRight Click&7 to use", "&7Hold &eShift + Right Click&7 to change the Mode"); - public static ItemStack STEEL_MULTI_TOOL = new CustomItem(new MaterialData(Material.SHEARS), "&9Multi Tool &7- &eIV", "", "§8\u21E8 &7Material: &bSteel", "§c§o§8\u21E8 §e\u26A1 §70 / 50 J", "", "&7&eRight Click&7 to use", "&7Hold &eShift + Right Click&7 to change the Mode"); - public static ItemStack DAMASCUS_STEEL_MULTI_TOOL = new CustomItem(new MaterialData(Material.SHEARS), "&9Multi Tool &7- &eV", "", "§8\u21E8 &7Material: &bDamascus Steel", "§c§o§8\u21E8 §e\u26A1 §70 / 60 J", "", "&7&eRight Click&7 to use", "&7Hold &eShift + Right Click&7 to change the Mode"); - public static ItemStack REINFORCED_ALLOY_MULTI_TOOL = new CustomItem(new MaterialData(Material.SHEARS), "&9Multi Tool &7- &eVI", "", "§8\u21E8 &7Material: &bReinforced Alloy", "§c§o§8\u21E8 §e\u26A1 §70 / 75 J", "", "&7&eRight Click&7 to use", "&7Hold &eShift + Right Click&7 to change the Mode"); - public static ItemStack CARBONADO_MULTI_TOOL = new CustomItem(new MaterialData(Material.SHEARS), "&9Multi Tool &7- &eVII", "", "§8\u21E8 &7Material: &bCarbonado", "§c§o§8\u21E8 §e\u26A1 §70 / 100 J", "", "&7&eRight Click&7 to use", "&7Hold &eShift + Right Click&7 to change the Mode"); + public static ItemStack DURALUMIN_MULTI_TOOL = new CustomItem(new MaterialData(Material.SHEARS), "&9Multi Tool &7- &eI", "", "&8\u21E8 &7Material: &bDuralumin", "&c&o&8\u21E8 &e\u26A1 &70 / 20 J", "", "&7&eRight Click&7 to use", "&7Hold &eShift + Right Click&7 to change the Mode"); + public static ItemStack SOLDER_MULTI_TOOL = new CustomItem(new MaterialData(Material.SHEARS), "&9Multi Tool &7- &eII", "", "&8\u21E8 &7Material: &bSolder", "&c&o&8\u21E8 &e\u26A1 &70 / 30 J", "", "&7&eRight Click&7 to use", "&7Hold &eShift + Right Click&7 to change the Mode"); + public static ItemStack BILLON_MULTI_TOOL = new CustomItem(new MaterialData(Material.SHEARS), "&9Multi Tool &7- &eIII", "", "&8\u21E8 &7Material: &bBillon", "&c&o&8\u21E8 &e\u26A1 &70 / 40 J", "", "&7&eRight Click&7 to use", "&7Hold &eShift + Right Click&7 to change the Mode"); + public static ItemStack STEEL_MULTI_TOOL = new CustomItem(new MaterialData(Material.SHEARS), "&9Multi Tool &7- &eIV", "", "&8\u21E8 &7Material: &bSteel", "&c&o&8\u21E8 &e\u26A1 &70 / 50 J", "", "&7&eRight Click&7 to use", "&7Hold &eShift + Right Click&7 to change the Mode"); + public static ItemStack DAMASCUS_STEEL_MULTI_TOOL = new CustomItem(new MaterialData(Material.SHEARS), "&9Multi Tool &7- &eV", "", "&8\u21E8 &7Material: &bDamascus Steel", "&c&o&8\u21E8 &e\u26A1 &70 / 60 J", "", "&7&eRight Click&7 to use", "&7Hold &eShift + Right Click&7 to change the Mode"); + public static ItemStack REINFORCED_ALLOY_MULTI_TOOL = new CustomItem(new MaterialData(Material.SHEARS), "&9Multi Tool &7- &eVI", "", "&8\u21E8 &7Material: &bReinforced Alloy", "&c&o&8\u21E8 &e\u26A1 &70 / 75 J", "", "&7&eRight Click&7 to use", "&7Hold &eShift + Right Click&7 to change the Mode"); + public static ItemStack CARBONADO_MULTI_TOOL = new CustomItem(new MaterialData(Material.SHEARS), "&9Multi Tool &7- &eVII", "", "&8\u21E8 &7Material: &bCarbonado", "&c&o&8\u21E8 &e\u26A1 &70 / 100 J", "", "&7&eRight Click&7 to use", "&7Hold &eShift + Right Click&7 to change the Mode"); /* Food */ public static ItemStack FORTUNE_COOKIE = new CustomItem(Material.COOKIE, "&6Fortune Cookie", 0, new String[] {"", "&a&oTells you stuff about your Future :o"}); @@ -244,20 +244,20 @@ public class SlimefunItems { public static ItemStack ANCIENT_ALTAR = new CustomItem(Material.ENCHANTMENT_TABLE, "&dAncient Altar", 0, new String[] {"", "&5Multi-Block Altar for", "&5magical Crafting Processes"}); public static ItemStack DUCT_TAPE = null; - public static ItemStack RAINBOW_WOOL = new CustomItem(new MaterialData(Material.WOOL), "&5Rainbow Wool", "", "§dCycles through all Colors of the Rainbow!"); - public static ItemStack RAINBOW_GLASS = new CustomItem(new MaterialData(Material.STAINED_GLASS), "&5Rainbow Glass", "", "§dCycles through all Colors of the Rainbow!"); - public static ItemStack RAINBOW_CLAY = new CustomItem(new MaterialData(Material.STAINED_CLAY), "&5Rainbow Clay", "", "§dCycles through all Colors of the Rainbow!"); - public static ItemStack RAINBOW_GLASS_PANE = new CustomItem(new MaterialData(Material.STAINED_GLASS_PANE), "&5Rainbow Glass Pane", "", "§dCycles through all Colors of the Rainbow!"); + public static ItemStack RAINBOW_WOOL = new CustomItem(new MaterialData(Material.WOOL), "&5Rainbow Wool", "", "&dCycles through all Colors of the Rainbow!"); + public static ItemStack RAINBOW_GLASS = new CustomItem(new MaterialData(Material.STAINED_GLASS), "&5Rainbow Glass", "", "&dCycles through all Colors of the Rainbow!"); + public static ItemStack RAINBOW_CLAY = new CustomItem(new MaterialData(Material.STAINED_CLAY), "&5Rainbow Clay", "", "&dCycles through all Colors of the Rainbow!"); + public static ItemStack RAINBOW_GLASS_PANE = new CustomItem(new MaterialData(Material.STAINED_GLASS_PANE), "&5Rainbow Glass Pane", "", "&dCycles through all Colors of the Rainbow!"); public static ItemStack RAINBOW_WOOL_XMAS = new CustomItem(new MaterialData(Material.WOOL), "&5Rainbow Wool &7(Christmas)", "", Christmas.color("< Christmas Edition >")); public static ItemStack RAINBOW_GLASS_XMAS = new CustomItem(new MaterialData(Material.STAINED_GLASS), "&5Rainbow Glass &7(Christmas)", "", Christmas.color("< Christmas Edition >")); public static ItemStack RAINBOW_CLAY_XMAS = new CustomItem(new MaterialData(Material.STAINED_CLAY), "&5Rainbow Clay &7(Christmas)", "", Christmas.color("< Christmas Edition >")); public static ItemStack RAINBOW_GLASS_PANE_XMAS = new CustomItem(new MaterialData(Material.STAINED_GLASS_PANE), "&5Rainbow Glass Pane &7(Christmas)", "", Christmas.color("< Christmas Edition >")); - public static ItemStack RAINBOW_WOOL_VALENTINE = new CustomItem(new MaterialData(Material.WOOL), "&5Rainbow Wool &7(Valentine's Day)", "", "§d< Valentine's Day Edition >"); - public static ItemStack RAINBOW_GLASS_VALENTINE = new CustomItem(new MaterialData(Material.STAINED_GLASS), "&5Rainbow Glass &7(Valentine's Day)", "", "§d< Valentine's Day Edition >"); - public static ItemStack RAINBOW_CLAY_VALENTINE = new CustomItem(new MaterialData(Material.STAINED_CLAY), "&5Rainbow Clay &7(Valentine's Day)", "", "§d< Valentine's Day Edition >"); - public static ItemStack RAINBOW_GLASS_PANE_VALENTINE = new CustomItem(new MaterialData(Material.STAINED_GLASS_PANE), "&5Rainbow Glass Pane &7(Valentine's Day)", "", "§d< Valentine's Day Edition >"); + public static ItemStack RAINBOW_WOOL_VALENTINE = new CustomItem(new MaterialData(Material.WOOL), "&5Rainbow Wool &7(Valentine's Day)", "", "&d< Valentine's Day Edition >"); + public static ItemStack RAINBOW_GLASS_VALENTINE = new CustomItem(new MaterialData(Material.STAINED_GLASS), "&5Rainbow Glass &7(Valentine's Day)", "", "&d< Valentine's Day Edition >"); + public static ItemStack RAINBOW_CLAY_VALENTINE = new CustomItem(new MaterialData(Material.STAINED_CLAY), "&5Rainbow Clay &7(Valentine's Day)", "", "&d< Valentine's Day Edition >"); + public static ItemStack RAINBOW_GLASS_PANE_VALENTINE = new CustomItem(new MaterialData(Material.STAINED_GLASS_PANE), "&5Rainbow Glass Pane &7(Valentine's Day)", "", "&d< Valentine's Day Edition >"); /* Ingots */ public static ItemStack COPPER_INGOT = new CustomItem(Material.CLAY_BRICK, "&bCopper Ingot", 0, new String[0]); @@ -385,7 +385,7 @@ public class SlimefunItems { public static ItemStack ADVANCED_DIGITAL_MINER = new CustomItem(Material.DIAMOND_PICKAXE, "&6Advanced Digital Miner", 0, new String[] {"", "&a&oDigs out everything!", "&a&oAutomatically crushes your Ores"}); public static ItemStack AUTOMATED_PANNING_MACHINE = new CustomItem(Material.BOWL, "&aAutomated Panning Machine", 0, new String[] {"", "&a&oA MultiBlock Version of the Gold Pan"}); - public static ItemStack HOLOGRAM_PROJECTOR = new CustomItem(new MaterialData(Material.STEP, (byte) 7), "&bHologram Projector", "", "§rProjects an Editable Hologram"); + public static ItemStack HOLOGRAM_PROJECTOR = new CustomItem(new MaterialData(Material.STEP, (byte) 7), "&bHologram Projector", "", "&rProjects an Editable Hologram"); /* Enhanced Furnaces */ public static ItemStack ENHANCED_FURNACE = new CustomItem(Material.FURNACE, "&7Enhanced Furnace - &eI", 0, new String[] {"", "&7Processing Speed: &e1x", "&7Fuel Efficiency: &e1x", "&7Luck Multiplier: &e1x"}); @@ -430,76 +430,76 @@ public class SlimefunItems { ItemStack itemB = new ItemStack(Material.FIREWORK_CHARGE); FireworkEffectMeta imB = (FireworkEffectMeta) itemB.getItemMeta(); imB.setEffect(FireworkEffect.builder().with(Type.BURST).with(Type.BURST).withColor(Color.BLACK).build()); - imB.setDisplayName("§8Blank Rune"); + imB.setDisplayName("&8Blank Rune"); itemB.setItemMeta(imB); BLANK_RUNE = itemB; ItemStack itemA = new ItemStack(Material.FIREWORK_CHARGE); FireworkEffectMeta imA = (FireworkEffectMeta) itemA.getItemMeta(); imA.setEffect(FireworkEffect.builder().with(Type.BURST).withColor(Color.AQUA).build()); - imA.setDisplayName("§7Ancient Rune §8§l[§b§lAir§8§l]"); + imA.setDisplayName("&7Ancient Rune &8&l[&b&lAir&8&l]"); itemA.setItemMeta(imA); RUNE_AIR = itemA; ItemStack itemW = new ItemStack(Material.FIREWORK_CHARGE); FireworkEffectMeta imW = (FireworkEffectMeta) itemW.getItemMeta(); imW.setEffect(FireworkEffect.builder().with(Type.BURST).withColor(Color.BLUE).build()); - imW.setDisplayName("§7Ancient Rune §8§l[§1§lWater§8§l]"); + imW.setDisplayName("&7Ancient Rune &8&l[&1&lWater&8&l]"); itemW.setItemMeta(imW); RUNE_WATER = itemW; ItemStack itemF = new ItemStack(Material.FIREWORK_CHARGE); FireworkEffectMeta imF = (FireworkEffectMeta) itemF.getItemMeta(); imF.setEffect(FireworkEffect.builder().with(Type.BURST).withColor(Color.RED).build()); - imF.setDisplayName("§7Ancient Rune §8§l[§4§lFire§8§l]"); + imF.setDisplayName("&7Ancient Rune &8&l[&4&lFire&8&l]"); itemF.setItemMeta(imF); RUNE_FIRE = itemF; ItemStack itemE = new ItemStack(Material.FIREWORK_CHARGE); FireworkEffectMeta imE = (FireworkEffectMeta) itemE.getItemMeta(); imE.setEffect(FireworkEffect.builder().with(Type.BURST).withColor(Color.ORANGE).build()); - imE.setDisplayName("§7Ancient Rune §8§l[§c§lEarth§8§l]"); + imE.setDisplayName("&7Ancient Rune &8&l[&c&lEarth&8&l]"); itemE.setItemMeta(imE); RUNE_EARTH = itemE; ItemStack itemN = new ItemStack(Material.FIREWORK_CHARGE); FireworkEffectMeta imN = (FireworkEffectMeta) itemN.getItemMeta(); imN.setEffect(FireworkEffect.builder().with(Type.BURST).withColor(Color.PURPLE).build()); - imN.setDisplayName("§7Ancient Rune §8§l[§5§lEnder§8§l]"); + imN.setDisplayName("&7Ancient Rune &8&l[&5&lEnder&8&l]"); itemN.setItemMeta(imN); RUNE_ENDER = itemN; ItemStack itemR = new ItemStack(Material.FIREWORK_CHARGE); FireworkEffectMeta imR = (FireworkEffectMeta) itemR.getItemMeta(); imR.setEffect(FireworkEffect.builder().with(Type.BURST).withColor(Color.PURPLE).build()); - imR.setDisplayName("§7Ancient Rune §8§l[§d§lRainbow§8§l]"); + imR.setDisplayName("&7Ancient Rune &8&l[&d&lRainbow&8&l]"); itemR.setItemMeta(imR); RUNE_RAINBOW = itemR; } /* Electricity */ - public static ItemStack SOLAR_GENERATOR = new CustomItem(new ItemStack(Material.DAYLIGHT_DETECTOR), "&bSolar Generator", "", "§eBasic Generator", "§8\u21E8 §e\u26A1 §70 J Buffer", "§8\u21E8 §e\u26A1 §74 J/s"); - public static ItemStack SOLAR_GENERATOR_2 = new CustomItem(new ItemStack(Material.DAYLIGHT_DETECTOR), "&cAdvanced Solar Generator", "", "§aMedium Generator", "§8\u21E8 §e\u26A1 §70 J Buffer", "§8\u21E8 §e\u26A1 §716 J/s"); - public static ItemStack SOLAR_GENERATOR_3 = new CustomItem(new ItemStack(Material.DAYLIGHT_DETECTOR), "&4Carbonado Solar Generator", "", "§4End-Game Generator", "§8\u21E8 §e\u26A1 §70 J Buffer", "§8\u21E8 §e\u26A1 §764 J/s"); - public static ItemStack SOLAR_GENERATOR_4 = new CustomItem(new ItemStack(Material.DAYLIGHT_DETECTOR), "&eEnergized Solar Generator", "", "§9Works at Night", "", "§4End-Game Generator", "§8\u21E8 §e\u26A1 §70 J Buffer", "§8\u21E8 §e\u26A1 §7256 J/s (Day)", "§8\u21E8 §e\u26A1 §7128 J/s (Night)"); + public static ItemStack SOLAR_GENERATOR = new CustomItem(new ItemStack(Material.DAYLIGHT_DETECTOR), "&bSolar Generator", "", "&eBasic Generator", "&8\u21E8 &e\u26A1 &70 J Buffer", "&8\u21E8 &e\u26A1 &74 J/s"); + public static ItemStack SOLAR_GENERATOR_2 = new CustomItem(new ItemStack(Material.DAYLIGHT_DETECTOR), "&cAdvanced Solar Generator", "", "&aMedium Generator", "&8\u21E8 &e\u26A1 &70 J Buffer", "&8\u21E8 &e\u26A1 &716 J/s"); + public static ItemStack SOLAR_GENERATOR_3 = new CustomItem(new ItemStack(Material.DAYLIGHT_DETECTOR), "&4Carbonado Solar Generator", "", "&4End-Game Generator", "&8\u21E8 &e\u26A1 &70 J Buffer", "&8\u21E8 &e\u26A1 &764 J/s"); + public static ItemStack SOLAR_GENERATOR_4 = new CustomItem(new ItemStack(Material.DAYLIGHT_DETECTOR), "&eEnergized Solar Generator", "", "&9Works at Night", "", "&4End-Game Generator", "&8\u21E8 &e\u26A1 &70 J Buffer", "&8\u21E8 &e\u26A1 &7256 J/s (Day)", "&8\u21E8 &e\u26A1 &7128 J/s (Night)"); public static ItemStack COAL_GENERATOR = null; public static ItemStack LAVA_GENERATOR = null; - public static ItemStack ELECTRIC_FURNACE = new CustomItem(new ItemStack(Material.FURNACE), "&cElectric Furnace", "", "§eBasic Machine", "§8\u21E8 §7Speed: 1x", "§8\u21E8 §e\u26A1 §74 J/s"); - public static ItemStack ELECTRIC_FURNACE_2 = new CustomItem(new ItemStack(Material.FURNACE), "&cElectric Furnace &7- &eII", "", "§aMedium Machine", "§8\u21E8 §7Speed: 2x", "§8\u21E8 §e\u26A1 §76 J/s"); - public static ItemStack ELECTRIC_FURNACE_3 = new CustomItem(new ItemStack(Material.FURNACE), "&cElectric Furnace &7- &eIII", "", "§aMedium Machine", "§8\u21E8 §7Speed: 4x", "§8\u21E8 §e\u26A1 §710 J/s"); + public static ItemStack ELECTRIC_FURNACE = new CustomItem(new ItemStack(Material.FURNACE), "&cElectric Furnace", "", "&eBasic Machine", "&8\u21E8 &7Speed: 1x", "&8\u21E8 &e\u26A1 &74 J/s"); + public static ItemStack ELECTRIC_FURNACE_2 = new CustomItem(new ItemStack(Material.FURNACE), "&cElectric Furnace &7- &eII", "", "&aMedium Machine", "&8\u21E8 &7Speed: 2x", "&8\u21E8 &e\u26A1 &76 J/s"); + public static ItemStack ELECTRIC_FURNACE_3 = new CustomItem(new ItemStack(Material.FURNACE), "&cElectric Furnace &7- &eIII", "", "&aMedium Machine", "&8\u21E8 &7Speed: 4x", "&8\u21E8 &e\u26A1 &710 J/s"); - public static ItemStack ELECTRIC_ORE_GRINDER = new CustomItem(new ItemStack(Material.FURNACE), "&cElectric Ore Grinder", "","§rWorks as an Ore Crusher and Grind Stone", "", "§6Advanced Machine", "§8\u21E8 §7Speed: 1x", "§8\u21E8 §e\u26A1 §712 J/s"); - public static ItemStack ELECTRIC_ORE_GRINDER_2 = new CustomItem(new ItemStack(Material.FURNACE), "&cElectric Ore Grinder &7(&eII&7)", "","§rWorks as an Ore Crusher and Grind Stone", "", "§4End-Game Machine", "§8\u21E8 §7Speed: 4x", "§8\u21E8 §e\u26A1 §730 J/s"); - public static ItemStack ELECTRIC_INGOT_PULVERIZER = new CustomItem(new ItemStack(Material.FURNACE), "&cElectric Ingot Pulverizer", "", "§rPulverizes Ingots into Dust", "", "§aMedium Machine", "§8\u21E8 §7Speed: 1x", "§8\u21E8 §e\u26A1 §714 J/s"); - public static ItemStack AUTO_ENCHANTER = new CustomItem(new ItemStack(Material.ENCHANTMENT_TABLE), "&5Auto Enchanter", "", "§aMedium Machine", "§8\u21E8 §7Speed: 1x", "§8\u21E8 §e\u26A1 §718 J/s"); - public static ItemStack AUTO_DISENCHANTER = new CustomItem(new ItemStack(Material.ENCHANTMENT_TABLE), "&5Auto Disenchanter", "", "§aMedium Machine", "§8\u21E8 §7Speed: 1x", "§8\u21E8 §e\u26A1 §718 J/s"); - public static ItemStack AUTO_ANVIL = new CustomItem(new ItemStack(Material.IRON_BLOCK), "&7Auto Anvil", "", "§6Advanced Machine", "§8\u21E8 §7Repair Factor: 10%", "§8\u21E8 §e\u26A1 §724 J/s"); - public static ItemStack AUTO_ANVIL_2 = new CustomItem(new ItemStack(Material.IRON_BLOCK), "&7Auto Anvil Mk.II", "", "§4End-Game Machine", "§8\u21E8 §7Repair Factor: 25%", "§8\u21E8 §e\u26A1 §732 J/s"); + public static ItemStack ELECTRIC_ORE_GRINDER = new CustomItem(new ItemStack(Material.FURNACE), "&cElectric Ore Grinder", "","&rWorks as an Ore Crusher and Grind Stone", "", "&6Advanced Machine", "&8\u21E8 &7Speed: 1x", "&8\u21E8 &e\u26A1 &712 J/s"); + public static ItemStack ELECTRIC_ORE_GRINDER_2 = new CustomItem(new ItemStack(Material.FURNACE), "&cElectric Ore Grinder &7(&eII&7)", "","&rWorks as an Ore Crusher and Grind Stone", "", "&4End-Game Machine", "&8\u21E8 &7Speed: 4x", "&8\u21E8 &e\u26A1 &730 J/s"); + public static ItemStack ELECTRIC_INGOT_PULVERIZER = new CustomItem(new ItemStack(Material.FURNACE), "&cElectric Ingot Pulverizer", "", "&rPulverizes Ingots into Dust", "", "&aMedium Machine", "&8\u21E8 &7Speed: 1x", "&8\u21E8 &e\u26A1 &714 J/s"); + public static ItemStack AUTO_ENCHANTER = new CustomItem(new ItemStack(Material.ENCHANTMENT_TABLE), "&5Auto Enchanter", "", "&aMedium Machine", "&8\u21E8 &7Speed: 1x", "&8\u21E8 &e\u26A1 &718 J/s"); + public static ItemStack AUTO_DISENCHANTER = new CustomItem(new ItemStack(Material.ENCHANTMENT_TABLE), "&5Auto Disenchanter", "", "&aMedium Machine", "&8\u21E8 &7Speed: 1x", "&8\u21E8 &e\u26A1 &718 J/s"); + public static ItemStack AUTO_ANVIL = new CustomItem(new ItemStack(Material.IRON_BLOCK), "&7Auto Anvil", "", "&6Advanced Machine", "&8\u21E8 &7Repair Factor: 10%", "&8\u21E8 &e\u26A1 &724 J/s"); + public static ItemStack AUTO_ANVIL_2 = new CustomItem(new ItemStack(Material.IRON_BLOCK), "&7Auto Anvil Mk.II", "", "&4End-Game Machine", "&8\u21E8 &7Repair Factor: 25%", "&8\u21E8 &e\u26A1 &732 J/s"); - public static ItemStack BIO_REACTOR = new CustomItem(new MaterialData(Material.STAINED_CLAY, (byte) 5), "&2Bio Reactor", "", "§6Average Generator", "§8\u21E8 §e\u26A1 §7128 J Buffer", "§8\u21E8 §e\u26A1 §78 J/s"); - public static ItemStack MULTIMETER = new CustomItem(new MaterialData(Material.WATCH), "&eMultimeter", "", "§rMeasures the Amount of stored", "§rEnergy in a Block"); + public static ItemStack BIO_REACTOR = new CustomItem(new MaterialData(Material.STAINED_CLAY, (byte) 5), "&2Bio Reactor", "", "&6Average Generator", "&8\u21E8 &e\u26A1 &7128 J Buffer", "&8\u21E8 &e\u26A1 &78 J/s"); + public static ItemStack MULTIMETER = new CustomItem(new MaterialData(Material.WATCH), "&eMultimeter", "", "&rMeasures the Amount of stored", "&rEnergy in a Block"); public static ItemStack SMALL_CAPACITOR = null, MEDIUM_CAPACITOR = null, BIG_CAPACITOR = null, LARGE_CAPACITOR = null, CARBONADO_EDGED_CAPACITOR = null; /* Robots */ @@ -526,45 +526,45 @@ public class SlimefunItems { public static ItemStack GPS_TRANSMITTER_4 = null; public static ItemStack GPS_CONTROL_PANEL = null; - public static ItemStack GPS_MARKER_TOOL = new CustomItem(new MaterialData(Material.REDSTONE_TORCH_ON), "§bGPS Marker Tool", "", "§rAllows you to set a Waypoint at", "§the Location you place this"); + public static ItemStack GPS_MARKER_TOOL = new CustomItem(new MaterialData(Material.REDSTONE_TORCH_ON), "&bGPS Marker Tool", "", "&rAllows you to set a Waypoint at", "&the Location you place this"); public static ItemStack GPS_EMERGENCY_TRANSMITTER = null; public static ItemStack GPS_GEO_SCANNER = null; - public static ItemStack ANDROID_INTERFACE_FUEL = new CustomItem(new ItemStack(Material.DISPENSER), "&7Android Interface §c(Fuel)", "", "§rItems stored in this Interface", "§rwill be inserted into an Android's Fuel Slot", "§rwhen its Script tells them to do so"); - public static ItemStack ANDROID_INTERFACE_ITEMS = new CustomItem(new ItemStack(Material.DISPENSER), "&7Android Interface §9(Items)", "", "§rItems stored in an Android's Inventory", "§rwill be inserted into this Interface", "§rwhen its Script tells them to do so"); + public static ItemStack ANDROID_INTERFACE_FUEL = new CustomItem(new ItemStack(Material.DISPENSER), "&7Android Interface &c(Fuel)", "", "&rItems stored in this Interface", "&rwill be inserted into an Android's Fuel Slot", "&rwhen its Script tells them to do so"); + public static ItemStack ANDROID_INTERFACE_ITEMS = new CustomItem(new ItemStack(Material.DISPENSER), "&7Android Interface &9(Items)", "", "&rItems stored in an Android's Inventory", "&rwill be inserted into this Interface", "&rwhen its Script tells them to do so"); public static ItemStack BUCKET_OF_OIL = null; public static ItemStack BUCKET_OF_FUEL = null; public static ItemStack OIL_PUMP = null; - public static ItemStack REFINERY = new CustomItem(new ItemStack(Material.PISTON_BASE), "&cRefinery", "", "§rRefines Oil to create Fuel"); + public static ItemStack REFINERY = new CustomItem(new ItemStack(Material.PISTON_BASE), "&cRefinery", "", "&rRefines Oil to create Fuel"); public static ItemStack COMBUSTION_REACTOR = null; public static ItemStack ANDROID_MEMORY_CORE = null; - public static ItemStack GPS_TELEPORTER_PYLON = new CustomItem(new MaterialData(Material.STAINED_GLASS, (byte) 10), "§5GPS Teleporter Pylon", "", "§7Teleporter Component"); - public static ItemStack GPS_TELEPORTATION_MATRIX = new CustomItem(new MaterialData(Material.IRON_BLOCK), "§bGPS Teleporter Matrix", "", "§rThis is your Teleporter's Main Component", "§rThis Matrix allows Players to choose from all", "§rWaypoints made by the Player who has placed", "§rthis Device."); - public static ItemStack GPS_ACTIVATION_DEVICE_SHARED = new CustomItem(new MaterialData(Material.STONE_PLATE), "§rGPS Activation Device §3(Shared)", "", "§rPlace this onto a Teleportation Matrix", "§rand step onto this Plate to activate", "§rthe Teleportation Process"); - public static ItemStack GPS_ACTIVATION_DEVICE_PERSONAL = new CustomItem(new MaterialData(Material.STONE_PLATE), "§rGPS Activation Device §a(Personal)", "", "§rPlace this onto a Teleportation Matrix", "§rand step onto this Plate to activate", "§rthe Teleportation Process", "", "§rThis Version only allows the Person who", "§rplaced this Device to use it"); + public static ItemStack GPS_TELEPORTER_PYLON = new CustomItem(new MaterialData(Material.STAINED_GLASS, (byte) 10), "&5GPS Teleporter Pylon", "", "&7Teleporter Component"); + public static ItemStack GPS_TELEPORTATION_MATRIX = new CustomItem(new MaterialData(Material.IRON_BLOCK), "&bGPS Teleporter Matrix", "", "&rThis is your Teleporter's Main Component", "&rThis Matrix allows Players to choose from all", "&rWaypoints made by the Player who has placed", "&rthis Device."); + public static ItemStack GPS_ACTIVATION_DEVICE_SHARED = new CustomItem(new MaterialData(Material.STONE_PLATE), "&rGPS Activation Device &3(Shared)", "", "&rPlace this onto a Teleportation Matrix", "&rand step onto this Plate to activate", "&rthe Teleportation Process"); + public static ItemStack GPS_ACTIVATION_DEVICE_PERSONAL = new CustomItem(new MaterialData(Material.STONE_PLATE), "&rGPS Activation Device &a(Personal)", "", "&rPlace this onto a Teleportation Matrix", "&rand step onto this Plate to activate", "&rthe Teleportation Process", "", "&rThis Version only allows the Person who", "&rplaced this Device to use it"); - public static ItemStack ELEVATOR = new CustomItem(new MaterialData(Material.STONE_PLATE), "§bElevator Plate", "", "§rPlace an Elevator Plate on every floor", "§rand you will be able to teleport between them.", "", "§eRight Click this Block §7to name it"); + public static ItemStack ELEVATOR = new CustomItem(new MaterialData(Material.STONE_PLATE), "&bElevator Plate", "", "&rPlace an Elevator Plate on every floor", "&rand you will be able to teleport between them.", "", "&eRight Click this Block &7to name it"); - public static ItemStack INFUSED_HOPPER = new CustomItem(new MaterialData(Material.HOPPER), "§5Infused Hopper", "", "§rAutomatically picks up nearby Items in a 7x7x7", "§rRadius when placed."); + public static ItemStack INFUSED_HOPPER = new CustomItem(new MaterialData(Material.HOPPER), "&5Infused Hopper", "", "&rAutomatically picks up nearby Items in a 7x7x7", "&rRadius when placed."); - public static ItemStack PLASTIC_SHEET = new CustomItem(new MaterialData(Material.PAPER), "§rPlastic Sheet"); - public static ItemStack HEATED_PRESSURE_CHAMBER = new CustomItem(new MaterialData(Material.STAINED_GLASS, (byte) 8), "&cHeated Pressure Chamber", "", "§4End-Game Machine", "§8\u21E8 §7Speed: 1x", "§8\u21E8 §e\u26A1 §710 J/s"); - public static ItemStack HEATED_PRESSURE_CHAMBER_2 = new CustomItem(new MaterialData(Material.STAINED_GLASS, (byte) 8), "&cHeated Pressure Chamber &7- &eII", "", "§4End-Game Machine", "§8\u21E8 §7Speed: 5x", "§8\u21E8 §e\u26A1 §744 J/s"); - public static ItemStack ELECTRIC_SMELTERY = new CustomItem(new MaterialData(Material.FURNACE), "&cElectric Smeltery", "", "§4Alloys-Only, doesn't smelt Dust into Ingots", "", "§4End-Game Machine", "§8\u21E8 §7Speed: 1x", "§8\u21E8 §e\u26A1 §720 J/s"); + public static ItemStack PLASTIC_SHEET = new CustomItem(new MaterialData(Material.PAPER), "&rPlastic Sheet"); + public static ItemStack HEATED_PRESSURE_CHAMBER = new CustomItem(new MaterialData(Material.STAINED_GLASS, (byte) 8), "&cHeated Pressure Chamber", "", "&4End-Game Machine", "&8\u21E8 &7Speed: 1x", "&8\u21E8 &e\u26A1 &710 J/s"); + public static ItemStack HEATED_PRESSURE_CHAMBER_2 = new CustomItem(new MaterialData(Material.STAINED_GLASS, (byte) 8), "&cHeated Pressure Chamber &7- &eII", "", "&4End-Game Machine", "&8\u21E8 &7Speed: 5x", "&8\u21E8 &e\u26A1 &744 J/s"); + public static ItemStack ELECTRIC_SMELTERY = new CustomItem(new MaterialData(Material.FURNACE), "&cElectric Smeltery", "", "&4Alloys-Only, doesn't smelt Dust into Ingots", "", "&4End-Game Machine", "&8\u21E8 &7Speed: 1x", "&8\u21E8 &e\u26A1 &720 J/s"); - public static ItemStack CARBON_PRESS = new CustomItem(new MaterialData(Material.STAINED_GLASS, (byte) 15), "&cCarbon Press", "", "§4End-Game Machine", "§8\u21E8 §7Speed: 1x", "§8\u21E8 §e\u26A1 §720 J/s"); - public static ItemStack CARBON_PRESS_2 = new CustomItem(new MaterialData(Material.STAINED_GLASS, (byte) 15), "&cCarbon Press &7- &eII", "", "§4End-Game Machine", "§8\u21E8 §7Speed: 3x", "§8\u21E8 §e\u26A1 §750 J/s"); - public static ItemStack CARBON_PRESS_3 = new CustomItem(new MaterialData(Material.STAINED_GLASS, (byte) 15), "&cCarbon Press &7- &eIII", "", "§4End-Game Machine", "§8\u21E8 §7Speed: 15x", "§8\u21E8 §e\u26A1 §7180 J/s"); + public static ItemStack CARBON_PRESS = new CustomItem(new MaterialData(Material.STAINED_GLASS, (byte) 15), "&cCarbon Press", "", "&4End-Game Machine", "&8\u21E8 &7Speed: 1x", "&8\u21E8 &e\u26A1 &720 J/s"); + public static ItemStack CARBON_PRESS_2 = new CustomItem(new MaterialData(Material.STAINED_GLASS, (byte) 15), "&cCarbon Press &7- &eII", "", "&4End-Game Machine", "&8\u21E8 &7Speed: 3x", "&8\u21E8 &e\u26A1 &750 J/s"); + public static ItemStack CARBON_PRESS_3 = new CustomItem(new MaterialData(Material.STAINED_GLASS, (byte) 15), "&cCarbon Press &7- &eIII", "", "&4End-Game Machine", "&8\u21E8 &7Speed: 15x", "&8\u21E8 &e\u26A1 &7180 J/s"); - public static ItemStack BLISTERING_INGOT = new CustomItem(new MaterialData(Material.GOLD_INGOT), "§6Blistering Ingot &7(33%)", "", "§2Radiation Level: HIGH", "&4&oHazmat Suit required"); - public static ItemStack BLISTERING_INGOT_2 = new CustomItem(new MaterialData(Material.GOLD_INGOT), "§6Blistering Ingot &7(66%)", "", "§2Radiation Level: HIGH", "&4&oHazmat Suit required"); - public static ItemStack BLISTERING_INGOT_3 = new CustomItem(new MaterialData(Material.GOLD_INGOT), "§6Blistering Ingot", "", "§2Radiation Level: HIGH", "&4&oHazmat Suit required"); + public static ItemStack BLISTERING_INGOT = new CustomItem(new MaterialData(Material.GOLD_INGOT), "&6Blistering Ingot &7(33%)", "", "&2Radiation Level: HIGH", "&4&oHazmat Suit required"); + public static ItemStack BLISTERING_INGOT_2 = new CustomItem(new MaterialData(Material.GOLD_INGOT), "&6Blistering Ingot &7(66%)", "", "&2Radiation Level: HIGH", "&4&oHazmat Suit required"); + public static ItemStack BLISTERING_INGOT_3 = new CustomItem(new MaterialData(Material.GOLD_INGOT), "&6Blistering Ingot", "", "&2Radiation Level: HIGH", "&4&oHazmat Suit required"); public static ItemStack ENERGY_REGULATOR = null; - public static ItemStack DEBUG_FISH = new CustomItem(new MaterialData(Material.RAW_FISH), "§3How much is the Fish?", "", "§eRight Click §rany Block to view it's BlockData", "§eLeft Click §rto break a Block", "§eShift + Left Click §rany Block to erase it's BlockData", "§eShift + Right Click §rto place a Placeholder Block"); + public static ItemStack DEBUG_FISH = new CustomItem(new MaterialData(Material.RAW_FISH), "&3How much is the Fish?", "", "&eRight Click &rany Block to view it's BlockData", "&eLeft Click &rto break a Block", "&eShift + Left Click &rany Block to erase it's BlockData", "&eShift + Right Click &rto place a Placeholder Block"); // Cargo public static ItemStack CARGO_MANAGER = null; @@ -597,46 +597,46 @@ public class SlimefunItems { public static ItemStack CROP_GROWTH_ACCELERATOR = null; public static ItemStack CROP_GROWTH_ACCELERATOR_2 = null; - public static ItemStack FOOD_FABRICATOR = new CustomItem(new MaterialData(Material.STAINED_GLASS, (byte) 13), "§cFood Fabricator", "", "§rProduces §aOrganic Food", "", "§6Advanced Machine", "§8\u21E8 §7Speed: 1x", "§8\u21E8 §e\u26A1 §7256 J Buffer", "§8\u21E8 §e\u26A1 §714 J/s"); - public static ItemStack FOOD_FABRICATOR_2 = new CustomItem(new MaterialData(Material.STAINED_GLASS, (byte) 13), "§cFood Fabricator &7(&eII&7)", "", "§rProduces §aOrganic Food", "", "§4End-Game Machine", "§8\u21E8 §7Speed: 6x", "§8\u21E8 §e\u26A1 §7512 J Buffer", "§8\u21E8 §e\u26A1 §748 J/s"); + public static ItemStack FOOD_FABRICATOR = new CustomItem(new MaterialData(Material.STAINED_GLASS, (byte) 13), "&cFood Fabricator", "", "&rProduces &aOrganic Food", "", "&6Advanced Machine", "&8\u21E8 &7Speed: 1x", "&8\u21E8 &e\u26A1 &7256 J Buffer", "&8\u21E8 &e\u26A1 &714 J/s"); + public static ItemStack FOOD_FABRICATOR_2 = new CustomItem(new MaterialData(Material.STAINED_GLASS, (byte) 13), "&cFood Fabricator &7(&eII&7)", "", "&rProduces &aOrganic Food", "", "&4End-Game Machine", "&8\u21E8 &7Speed: 6x", "&8\u21E8 &e\u26A1 &7512 J Buffer", "&8\u21E8 &e\u26A1 &748 J/s"); - public static ItemStack FOOD_COMPOSTER = new CustomItem(new MaterialData(Material.STAINED_CLAY, (byte) 13), "§cFood Composter", "", "§rProduces §aOrganic Fertilizer", "", "§6Advanced Machine", "§8\u21E8 §7Speed: 1x", "§8\u21E8 §e\u26A1 §7256 J Buffer", "§8\u21E8 §e\u26A1 §716 J/s"); - public static ItemStack FOOD_COMPOSTER_2 = new CustomItem(new MaterialData(Material.STAINED_CLAY, (byte) 13), "§cFood Composter &7(&eII&7)", "", "§rProduces §aOrganic Fertilizer", "", "§4End-Game Machine", "§8\u21E8 §7Speed: 10x", "§8\u21E8 §e\u26A1 §7512 J Buffer", "§8\u21E8 §e\u26A1 §752 J/s"); + public static ItemStack FOOD_COMPOSTER = new CustomItem(new MaterialData(Material.STAINED_CLAY, (byte) 13), "&cFood Composter", "", "&rProduces &aOrganic Fertilizer", "", "&6Advanced Machine", "&8\u21E8 &7Speed: 1x", "&8\u21E8 &e\u26A1 &7256 J Buffer", "&8\u21E8 &e\u26A1 &716 J/s"); + public static ItemStack FOOD_COMPOSTER_2 = new CustomItem(new MaterialData(Material.STAINED_CLAY, (byte) 13), "&cFood Composter &7(&eII&7)", "", "&rProduces &aOrganic Fertilizer", "", "&4End-Game Machine", "&8\u21E8 &7Speed: 10x", "&8\u21E8 &e\u26A1 &7512 J Buffer", "&8\u21E8 &e\u26A1 &752 J/s"); public static ItemStack XP_COLLECTOR = null; public static ItemStack REACTOR_COOLANT_CELL = null; public static ItemStack NUCLEAR_REACTOR = null; public static ItemStack NETHERSTAR_REACTOR = null; - public static ItemStack REACTOR_ACCESS_PORT = new CustomItem(new MaterialData(Material.STAINED_CLAY, (byte) 9), "§2Reactor Access Port", "", "§rAllows you to interact with a Reactor", "§rvia Cargo Nodes, can also be used", "§ras a Buffer", "", "§8\u21E8 §eMust be placed &a3 Blocks &eabove the Reactor"); + public static ItemStack REACTOR_ACCESS_PORT = new CustomItem(new MaterialData(Material.STAINED_CLAY, (byte) 9), "&2Reactor Access Port", "", "&rAllows you to interact with a Reactor", "&rvia Cargo Nodes, can also be used", "&ras a Buffer", "", "&8\u21E8 &eMust be placed &a3 Blocks &eabove the Reactor"); public static ItemStack FREEZER = null; public static ItemStack FREEZER_2 = null; - public static ItemStack ELECTRIC_GOLD_PAN = new CustomItem(new MaterialData(Material.STAINED_CLAY, (byte) 12), "&6Electric Gold Pan", "", "§eBasic Machine", "§8\u21E8 §7Speed: 1x", "§8\u21E8 §e\u26A1 §72 J/s"); - public static ItemStack ELECTRIC_GOLD_PAN_2 = new CustomItem(new MaterialData(Material.STAINED_CLAY, (byte) 12), "&6Electric Gold Pan &7(&eII&7)", "", "§eBasic Machine", "§8\u21E8 §7Speed: 3x", "§8\u21E8 §e\u26A1 §74 J/s"); - public static ItemStack ELECTRIC_GOLD_PAN_3 = new CustomItem(new MaterialData(Material.STAINED_CLAY, (byte) 12), "&6Electric Gold Pan &7(&eIII&7)", "", "§4End-Game Machine", "§8\u21E8 §7Speed: 10x", "§8\u21E8 §e\u26A1 §714 J/s"); + public static ItemStack ELECTRIC_GOLD_PAN = new CustomItem(new MaterialData(Material.STAINED_CLAY, (byte) 12), "&6Electric Gold Pan", "", "&eBasic Machine", "&8\u21E8 &7Speed: 1x", "&8\u21E8 &e\u26A1 &72 J/s"); + public static ItemStack ELECTRIC_GOLD_PAN_2 = new CustomItem(new MaterialData(Material.STAINED_CLAY, (byte) 12), "&6Electric Gold Pan &7(&eII&7)", "", "&eBasic Machine", "&8\u21E8 &7Speed: 3x", "&8\u21E8 &e\u26A1 &74 J/s"); + public static ItemStack ELECTRIC_GOLD_PAN_3 = new CustomItem(new MaterialData(Material.STAINED_CLAY, (byte) 12), "&6Electric Gold Pan &7(&eIII&7)", "", "&4End-Game Machine", "&8\u21E8 &7Speed: 10x", "&8\u21E8 &e\u26A1 &714 J/s"); - public static ItemStack ELECTRIC_DUST_WASHER = new CustomItem(new MaterialData(Material.STAINED_GLASS, (byte) 11), "&3Electric Dust Washer", "", "§eBasic Machine", "§8\u21E8 §7Speed: 1x", "§8\u21E8 §e\u26A1 §76 J/s"); - public static ItemStack ELECTRIC_DUST_WASHER_2 = new CustomItem(new MaterialData(Material.STAINED_GLASS, (byte) 11), "&3Electric Dust Washer &7(&eII&7)", "", "§eBasic Machine", "§8\u21E8 §7Speed: 2x", "§8\u21E8 §e\u26A1 §710 J/s"); - public static ItemStack ELECTRIC_DUST_WASHER_3 = new CustomItem(new MaterialData(Material.STAINED_GLASS, (byte) 11), "&3Electric Dust Washer &7(&eIII&7)", "", "§4End-Game Machine", "§8\u21E8 §7Speed: 10x", "§8\u21E8 §e\u26A1 §730 J/s"); + public static ItemStack ELECTRIC_DUST_WASHER = new CustomItem(new MaterialData(Material.STAINED_GLASS, (byte) 11), "&3Electric Dust Washer", "", "&eBasic Machine", "&8\u21E8 &7Speed: 1x", "&8\u21E8 &e\u26A1 &76 J/s"); + public static ItemStack ELECTRIC_DUST_WASHER_2 = new CustomItem(new MaterialData(Material.STAINED_GLASS, (byte) 11), "&3Electric Dust Washer &7(&eII&7)", "", "&eBasic Machine", "&8\u21E8 &7Speed: 2x", "&8\u21E8 &e\u26A1 &710 J/s"); + public static ItemStack ELECTRIC_DUST_WASHER_3 = new CustomItem(new MaterialData(Material.STAINED_GLASS, (byte) 11), "&3Electric Dust Washer &7(&eIII&7)", "", "&4End-Game Machine", "&8\u21E8 &7Speed: 10x", "&8\u21E8 &e\u26A1 &730 J/s"); - public static ItemStack ELECTRIC_INGOT_FACTORY = new CustomItem(new MaterialData(Material.STAINED_CLAY, (byte) 14), "&cElectric Ingot Factory", "", "§eBasic Machine", "§8\u21E8 §7Speed: 1x", "§8\u21E8 §e\u26A1 §78 J/s"); - public static ItemStack ELECTRIC_INGOT_FACTORY_2 = new CustomItem(new MaterialData(Material.STAINED_CLAY, (byte) 14), "&cElectric Ingot Factory &7(&eII&7)", "", "§eBasic Machine", "§8\u21E8 §7Speed: 2x", "§8\u21E8 §e\u26A1 §714 J/s"); - public static ItemStack ELECTRIC_INGOT_FACTORY_3 = new CustomItem(new MaterialData(Material.STAINED_CLAY, (byte) 14), "&cElectric Ingot Factory &7(&eIII&7)", "", "§4End-Game Machine", "§8\u21E8 §7Speed: 8x", "§8\u21E8 §e\u26A1 §740 J/s"); + public static ItemStack ELECTRIC_INGOT_FACTORY = new CustomItem(new MaterialData(Material.STAINED_CLAY, (byte) 14), "&cElectric Ingot Factory", "", "&eBasic Machine", "&8\u21E8 &7Speed: 1x", "&8\u21E8 &e\u26A1 &78 J/s"); + public static ItemStack ELECTRIC_INGOT_FACTORY_2 = new CustomItem(new MaterialData(Material.STAINED_CLAY, (byte) 14), "&cElectric Ingot Factory &7(&eII&7)", "", "&eBasic Machine", "&8\u21E8 &7Speed: 2x", "&8\u21E8 &e\u26A1 &714 J/s"); + public static ItemStack ELECTRIC_INGOT_FACTORY_3 = new CustomItem(new MaterialData(Material.STAINED_CLAY, (byte) 14), "&cElectric Ingot Factory &7(&eIII&7)", "", "&4End-Game Machine", "&8\u21E8 &7Speed: 8x", "&8\u21E8 &e\u26A1 &740 J/s"); - public static ItemStack AUTOMATED_CRAFTING_CHAMBER = new CustomItem(new MaterialData(Material.WORKBENCH), "&6Automated Crafting Chamber", "", "§6Advanced Machine", "§8\u21E8 §e\u26A1 §710 J/Item"); - public static ItemStack FLUID_PUMP = new CustomItem(new MaterialData(Material.STAINED_CLAY, (byte) 11), "&9Fluid Pump", "", "§6Advanced Machine", "§8\u21E8 §e\u26A1 §732 J/Block"); - public static ItemStack CHARGING_BENCH = new CustomItem(new MaterialData(Material.WORKBENCH), "&6Charging Bench", "", "§rCharges Items such as Jetpacks", "", "§eBasic Machine", "§8\u21E8 §e\u26A1 §7128 J Buffer", "§8\u21E8 §e\u26A1 §7Energy Loss: §c50%"); + public static ItemStack AUTOMATED_CRAFTING_CHAMBER = new CustomItem(new MaterialData(Material.WORKBENCH), "&6Automated Crafting Chamber", "", "&6Advanced Machine", "&8\u21E8 &e\u26A1 &710 J/Item"); + public static ItemStack FLUID_PUMP = new CustomItem(new MaterialData(Material.STAINED_CLAY, (byte) 11), "&9Fluid Pump", "", "&6Advanced Machine", "&8\u21E8 &e\u26A1 &732 J/Block"); + public static ItemStack CHARGING_BENCH = new CustomItem(new MaterialData(Material.WORKBENCH), "&6Charging Bench", "", "&rCharges Items such as Jetpacks", "", "&eBasic Machine", "&8\u21E8 &e\u26A1 &7128 J Buffer", "&8\u21E8 &e\u26A1 &7Energy Loss: &c50%"); - public static ItemStack WITHER_ASSEMBLER = new CustomItem(new MaterialData(Material.OBSIDIAN), "&5Wither Assembler", "", "§4End-Game Machine", "§8\u21E8 §7Cooldown: §b30 Seconds", "§8\u21E8 §e\u26A1 §74096 J Buffer", "§8\u21E8 §e\u26A1 §74096 J/Wither"); + public static ItemStack WITHER_ASSEMBLER = new CustomItem(new MaterialData(Material.OBSIDIAN), "&5Wither Assembler", "", "&4End-Game Machine", "&8\u21E8 &7Cooldown: &b30 Seconds", "&8\u21E8 &e\u26A1 &74096 J Buffer", "&8\u21E8 &e\u26A1 &74096 J/Wither"); public static ItemStack TRASH_CAN = null; public static ItemStack ELYTRA = new ItemStack(Material.ELYTRA); - public static ItemStack ELYTRA_SCALE = new CustomItem(new ItemStack(Material.FEATHER), "§bEyltra Scale"); - public static ItemStack INFUSED_ELYTRA = new CustomItem(new CustomItem(ELYTRA, "§5Infused Elytra"), new String[] {"MENDING-1"}); - public static ItemStack SOULBOUND_ELYTRA = new CustomItem(ELYTRA, "§cSoulbound Elytra"); + public static ItemStack ELYTRA_SCALE = new CustomItem(new ItemStack(Material.FEATHER), "&bEyltra Scale"); + public static ItemStack INFUSED_ELYTRA = new CustomItem(new CustomItem(ELYTRA, "&5Infused Elytra"), new String[] {"MENDING-1"}); + public static ItemStack SOULBOUND_ELYTRA = new CustomItem(ELYTRA, "&cSoulbound Elytra"); // ChestTerminal Addon @@ -647,8 +647,8 @@ public class SlimefunItems { static { try { PORTABLE_DUSTBIN = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzJkNDEwNDJjZTk5MTQ3Y2MzOGNhYzllNDY3NDE1NzZlN2VlNzkxMjgzZTZmYWM4ZDMyOTJjYWUyOTM1ZjFmIn19fQ=="), "&6Portable Dustbin", "&rYour portable Item-Destroyer", "", "&eRight Click&7 to open"); - TRASH_CAN = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzJkNDEwNDJjZTk5MTQ3Y2MzOGNhYzllNDY3NDE1NzZlN2VlNzkxMjgzZTZmYWM4ZDMyOTJjYWUyOTM1ZjFmIn19fQ=="), "&3Trash Can", "", "§rWill destroy all Items put into it"); - CAN = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTRkYTk3ZjA4MGUzOTViODQyYzRjYzgyYTg0MDgyM2Q0ZGJkOGNhNjg4YTIwNjg1M2U1NzgzZTRiZmRjMDEyIn19fQ=="), "§rTin Can"); + TRASH_CAN = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzJkNDEwNDJjZTk5MTQ3Y2MzOGNhYzllNDY3NDE1NzZlN2VlNzkxMjgzZTZmYWM4ZDMyOTJjYWUyOTM1ZjFmIn19fQ=="), "&3Trash Can", "", "&rWill destroy all Items put into it"); + CAN = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTRkYTk3ZjA4MGUzOTViODQyYzRjYzgyYTg0MDgyM2Q0ZGJkOGNhNjg4YTIwNjg1M2U1NzgzZTRiZmRjMDEyIn19fQ=="), "&rTin Can"); STONE_CHUNK = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvY2U4ZjVhZGIxNGQ2YzlmNmI4MTBkMDI3NTQzZjFhOGMxZjQxN2UyZmVkOTkzYzk3YmNkODljNzRmNWUyZTgifX19"), "&6Stone Chunk"); @@ -673,109 +673,109 @@ public class SlimefunItems { VOIDBAG_LARGE = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMmEzYjM0ODYyYjlhZmI2M2NmOGQ1Nzc5OTY2ZDNmYmE3MGFmODJiMDRlODNmM2VhZjY0NDlhZWJhIn19fQ=="), "&4Large Void Bag", new String[] {"", "&7Size: &e36", "&7ID: ", "", "&7&eLeft Click&7 to suck up nearby Items", "&7&eRight Click&7 to open"}); BOUND_VOIDBAG = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMmEzYjM0ODYyYjlhZmI2M2NmOGQ1Nzc5OTY2ZDNmYmE3MGFmODJiMDRlODNmM2VhZjY0NDlhZWJhIn19fQ=="), "&4Soulbound Void Bag", new String[] {"", "&7Size: &e36", "&7ID: ", "", "&7&eLeft Click&7 to suck up nearby Items", "&7&eRight Click&7 to open"}); - COAL_GENERATOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "&cCoal Generator", "", "§6Average Generator", "§8\u21E8 §e\u26A1 §764 J Buffer", "§8\u21E8 §e\u26A1 §716 J/s"); - LAVA_GENERATOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "&4Lava Generator", "", "§6Average Generator", "§8\u21E8 §e\u26A1 §7512 J Buffer", "§8\u21E8 §e\u26A1 §720 J/s"); - COMBUSTION_REACTOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "&cCombustion Reactor", "", "§6Advanced Generator", "§8\u21E8 §e\u26A1 §7256 J Buffer", "§8\u21E8 §e\u26A1 §724 J/s"); + COAL_GENERATOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "&cCoal Generator", "", "&6Average Generator", "&8\u21E8 &e\u26A1 &764 J Buffer", "&8\u21E8 &e\u26A1 &716 J/s"); + LAVA_GENERATOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "&4Lava Generator", "", "&6Average Generator", "&8\u21E8 &e\u26A1 &7512 J Buffer", "&8\u21E8 &e\u26A1 &720 J/s"); + COMBUSTION_REACTOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "&cCombustion Reactor", "", "&6Advanced Generator", "&8\u21E8 &e\u26A1 &7256 J Buffer", "&8\u21E8 &e\u26A1 &724 J/s"); - NUCLEAR_REACTOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "&2Nuclear Reactor", "", "§rRequires Cooling!", "§8\u21E8 §bMust be surrounded by Water", "§8\u21E8 §bMust be supplied with Reactor Coolant Cells", "", "§4End-Game Generator", "§8\u21E8 §e\u26A1 §716384 J Buffer", "§8\u21E8 §e\u26A1 §7500 J/s"); + NUCLEAR_REACTOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "&2Nuclear Reactor", "", "&rRequires Cooling!", "&8\u21E8 &bMust be surrounded by Water", "&8\u21E8 &bMust be supplied with Reactor Coolant Cells", "", "&4End-Game Generator", "&8\u21E8 &e\u26A1 &716384 J Buffer", "&8\u21E8 &e\u26A1 &7500 J/s"); - NETHERSTAR_REACTOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "&fNether Star Reactor", "", "§fRuns on Nether Stars", "§8\u21E8 §bMust be surrounded by Water", "", "§4End-Game Generator", "§8\u21E8 §732768 J Buffer", "§8\u21E8 §e\u26A1 §7720 J/s", "§8\u21E8 §4Causes nearby Entities to get the Wither Effect"); - SMALL_CAPACITOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTEzNjFlNTc2YjQ5M2NiZmRmYWUzMjg2NjFjZWRkMWFkZDU1ZmFiNGU1ZWI0MThiOTJjZWJmNjI3NWY4YmI0In19fQ=="), "&aSmall Energy Capacitor", "", "§eBasic Capacitor", "§8\u21E8 §e\u26A1 §7128 J Capacity"); - MEDIUM_CAPACITOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTEzNjFlNTc2YjQ5M2NiZmRmYWUzMjg2NjFjZWRkMWFkZDU1ZmFiNGU1ZWI0MThiOTJjZWJmNjI3NWY4YmI0In19fQ=="), "&aMedium Energy Capacitor", "", "§6Average Capacitor", "§8\u21E8 §e\u26A1 §7512 J Capacity"); - BIG_CAPACITOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTEzNjFlNTc2YjQ5M2NiZmRmYWUzMjg2NjFjZWRkMWFkZDU1ZmFiNGU1ZWI0MThiOTJjZWJmNjI3NWY4YmI0In19fQ=="), "&aBig Energy Capacitor", "", "§aMedium Capacitor", "§8\u21E8 §e\u26A1 §71024 J Capacity"); - LARGE_CAPACITOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTEzNjFlNTc2YjQ5M2NiZmRmYWUzMjg2NjFjZWRkMWFkZDU1ZmFiNGU1ZWI0MThiOTJjZWJmNjI3NWY4YmI0In19fQ=="), "&aLarge Energy Capacitor", "", "§2Good Capacitor", "§8\u21E8 §e\u26A1 §78192 J Capacity"); - CARBONADO_EDGED_CAPACITOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTEzNjFlNTc2YjQ5M2NiZmRmYWUzMjg2NjFjZWRkMWFkZDU1ZmFiNGU1ZWI0MThiOTJjZWJmNjI3NWY4YmI0In19fQ=="), "&aCarbonado Edged Energy Capacitor", "", "§4End-Game Capacitor", "§8\u21E8 §e\u26A1 §765536 J Capacity"); + NETHERSTAR_REACTOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "&fNether Star Reactor", "", "&fRuns on Nether Stars", "&8\u21E8 &bMust be surrounded by Water", "", "&4End-Game Generator", "&8\u21E8 &732768 J Buffer", "&8\u21E8 &e\u26A1 &7720 J/s", "&8\u21E8 &4Causes nearby Entities to get the Wither Effect"); + SMALL_CAPACITOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTEzNjFlNTc2YjQ5M2NiZmRmYWUzMjg2NjFjZWRkMWFkZDU1ZmFiNGU1ZWI0MThiOTJjZWJmNjI3NWY4YmI0In19fQ=="), "&aSmall Energy Capacitor", "", "&eBasic Capacitor", "&8\u21E8 &e\u26A1 &7128 J Capacity"); + MEDIUM_CAPACITOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTEzNjFlNTc2YjQ5M2NiZmRmYWUzMjg2NjFjZWRkMWFkZDU1ZmFiNGU1ZWI0MThiOTJjZWJmNjI3NWY4YmI0In19fQ=="), "&aMedium Energy Capacitor", "", "&6Average Capacitor", "&8\u21E8 &e\u26A1 &7512 J Capacity"); + BIG_CAPACITOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTEzNjFlNTc2YjQ5M2NiZmRmYWUzMjg2NjFjZWRkMWFkZDU1ZmFiNGU1ZWI0MThiOTJjZWJmNjI3NWY4YmI0In19fQ=="), "&aBig Energy Capacitor", "", "&aMedium Capacitor", "&8\u21E8 &e\u26A1 &71024 J Capacity"); + LARGE_CAPACITOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTEzNjFlNTc2YjQ5M2NiZmRmYWUzMjg2NjFjZWRkMWFkZDU1ZmFiNGU1ZWI0MThiOTJjZWJmNjI3NWY4YmI0In19fQ=="), "&aLarge Energy Capacitor", "", "&2Good Capacitor", "&8\u21E8 &e\u26A1 &78192 J Capacity"); + CARBONADO_EDGED_CAPACITOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTEzNjFlNTc2YjQ5M2NiZmRmYWUzMjg2NjFjZWRkMWFkZDU1ZmFiNGU1ZWI0MThiOTJjZWJmNjI3NWY4YmI0In19fQ=="), "&aCarbonado Edged Energy Capacitor", "", "&4End-Game Capacitor", "&8\u21E8 &e\u26A1 &765536 J Capacity"); CHEESE = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzRmZWJiYzE1ZDFkNGNjNjJiZWRjNWQ3YTJiNmYwZjQ2Y2Q1YjA2OTZhODg0ZGU3NWUyODllMzVjYmI1M2EwIn19fQ=="), "&rCheese"); BUTTER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjY2YjE5ZjdkNjM1ZDAzNDczODkxZGYzMzAxN2M1NDkzNjMyMDlhOGY2MzI4YTg1NDJjMjEzZDA4NTI1ZSJ9fX0="), "&rButter"); - DUCT_TAPE = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjJmYWFjZWFiNjM4NGZmZjVlZDI0YmI0NGE0YWYyZjU4NGViMTM4MjcyOWVjZDkzYTUzNjlhY2ZkNjY1NCJ9fX0="), "§8Duct Tape", "", "&rYou can repair Items using this", "§rin an Auto-Anvil"); + DUCT_TAPE = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjJmYWFjZWFiNjM4NGZmZjVlZDI0YmI0NGE0YWYyZjU4NGViMTM4MjcyOWVjZDkzYTUzNjlhY2ZkNjY1NCJ9fX0="), "&8Duct Tape", "", "&rYou can repair Items using this", "&rin an Auto-Anvil"); - URANIUM = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzhiMjlhZmE2ZDZkYzkyM2UyZTEzMjRiZjgxOTI3NTBmN2JkYmRkYzY4OTYzMmEyYjZjMThkOWZlN2E1ZSJ9fX0="), "§4Uranium", "", "§2Radiation Level: HIGH", "&4&oHazmat Suit required"); - SMALL_URANIUM = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzhiMjlhZmE2ZDZkYzkyM2UyZTEzMjRiZjgxOTI3NTBmN2JkYmRkYzY4OTYzMmEyYjZjMThkOWZlN2E1ZSJ9fX0="), "§cSmall Chunk of Uranium", "", "§eRadiation Level: MODERATE", "&4&oHazmat Suit required"); - TINY_URANIUM = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzhiMjlhZmE2ZDZkYzkyM2UyZTEzMjRiZjgxOTI3NTBmN2JkYmRkYzY4OTYzMmEyYjZjMThkOWZlN2E1ZSJ9fX0="), "§cTiny Pile of Uranium", "", "§cRadiation Level: LOW", "&4&oNo Hazmat Suit required"); + URANIUM = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzhiMjlhZmE2ZDZkYzkyM2UyZTEzMjRiZjgxOTI3NTBmN2JkYmRkYzY4OTYzMmEyYjZjMThkOWZlN2E1ZSJ9fX0="), "&4Uranium", "", "&2Radiation Level: HIGH", "&4&oHazmat Suit required"); + SMALL_URANIUM = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzhiMjlhZmE2ZDZkYzkyM2UyZTEzMjRiZjgxOTI3NTBmN2JkYmRkYzY4OTYzMmEyYjZjMThkOWZlN2E1ZSJ9fX0="), "&cSmall Chunk of Uranium", "", "&eRadiation Level: MODERATE", "&4&oHazmat Suit required"); + TINY_URANIUM = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzhiMjlhZmE2ZDZkYzkyM2UyZTEzMjRiZjgxOTI3NTBmN2JkYmRkYzY4OTYzMmEyYjZjMThkOWZlN2E1ZSJ9fX0="), "&cTiny Pile of Uranium", "", "&cRadiation Level: LOW", "&4&oNo Hazmat Suit required"); - NEPTUNIUM = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGVkZWE2YmZkMzdlNDlkZTQzZjE1NGZlNmZjYTYxN2Q0MTI5ZTYxYjk1NzU5YTNkNDlhMTU5MzVhMWMyZGNmMCJ9fX0="), "§aNeptunium", "", "§2Radiation Level: HIGH", "&4&oHazmat Suit required"); - PLUTONIUM = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjVjZjkxYjczODg2NjVhNmQ3YzFiNjAyNmJkYjIzMjJjNmQyNzg5OTdhNDQ0Nzg2NzdjYmNjMTVmNzYxMjRmIn19fQ=="), "§7Plutonium", "", "§2Radiation Level: HIGH", "&4&oHazmat Suit required"); - BOOSTED_URANIUM = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjgzN2NhMTJmMjIyZjQ3ODcxOTZhMTdiOGFiNjU2OTg1Zjg0MDRjNTA3NjdhZGJjYjZlN2YxNDI1NGZlZSJ9fX0="), "§2Boosted Uranium", "", "§2Radiation Level: HIGH", "&4&oHazmat Suit required"); + NEPTUNIUM = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGVkZWE2YmZkMzdlNDlkZTQzZjE1NGZlNmZjYTYxN2Q0MTI5ZTYxYjk1NzU5YTNkNDlhMTU5MzVhMWMyZGNmMCJ9fX0="), "&aNeptunium", "", "&2Radiation Level: HIGH", "&4&oHazmat Suit required"); + PLUTONIUM = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjVjZjkxYjczODg2NjVhNmQ3YzFiNjAyNmJkYjIzMjJjNmQyNzg5OTdhNDQ0Nzg2NzdjYmNjMTVmNzYxMjRmIn19fQ=="), "&7Plutonium", "", "&2Radiation Level: HIGH", "&4&oHazmat Suit required"); + BOOSTED_URANIUM = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjgzN2NhMTJmMjIyZjQ3ODcxOTZhMTdiOGFiNjU2OTg1Zjg0MDRjNTA3NjdhZGJjYjZlN2YxNDI1NGZlZSJ9fX0="), "&2Boosted Uranium", "", "&2Radiation Level: HIGH", "&4&oHazmat Suit required"); - PROGRAMMABLE_ANDROID = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzUwM2NiN2VkODQ1ZTdhNTA3ZjU2OWFmYzY0N2M0N2FjNDgzNzcxNDY1YzlhNjc5YTU0NTk0Yzc2YWZiYSJ9fX0="), "§cProgrammable Android &7(Normal)", "", "§8\u21E8 §7Function: None", "§8\u21E8 §7Fuel Efficiency: 1.0x"); - PROGRAMMABLE_ANDROID_MINER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTYzOGEyODU0MWFiM2FlMGE3MjNkNTU3ODczOGUwODc1ODM4OGVjNGMzMzI0N2JkNGNhMTM0ODJhZWYzMzQifX19"), "§cProgrammable Android &7(Miner)", "", "§8\u21E8 §7Function: Mining", "§8\u21E8 §7Fuel Efficiency: 1.0x"); - PROGRAMMABLE_ANDROID_FARMER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjlkMzMzNTdlODQxODgyM2JmNzgzZGU5MmRlODAyOTFiNGViZDM5MmFlYzg3MDY2OThlMDY4OTZkNDk4ZjYifX19"), "§cProgrammable Android &7(Farmer)", "", "§8\u21E8 §7Function: Farming", "§8\u21E8 §7Fuel Efficiency: 1.0x"); - PROGRAMMABLE_ANDROID_WOODCUTTER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDMyYTgxNDUxMDE0MjIwNTE2OWExYWQzMmYwYTc0NWYxOGU5Y2I2YzY2ZWU2NGVjYTJlNjViYWJkZWY5ZmYifX19"), "§cProgrammable Android &7(Woodcutter)", "", "§8\u21E8 §7Function: Woodcutting", "§8\u21E8 §7Fuel Efficiency: 1.0x"); - PROGRAMMABLE_ANDROID_BUTCHER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvM2I0NzJkZjBhZDlhM2JlODhmMmU1ZDVkNDIyZDAyYjExNmQ2NGQ4ZGYxNDc1ZWQzMmU1NDZhZmM4NGIzMSJ9fX0="), "§cProgrammable Android &7(Butcher)", "", "§8\u21E8 §7Function: Slaughtering", "§8\u21E8 §7Damage: 4", "§8\u21E8 §7Fuel Efficiency: 1.0x"); - PROGRAMMABLE_ANDROID_FISHERMAN = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzQ1ZTg3MzNhNzMxMTQzMzNiOThiMzYwMTc1MTI0MTcyMmY0NzEzZTFhMWE1ZDM2ZmJiMTMyNDkzZjFjNyJ9fX0="), "§cProgrammable Android &7(Fisherman)", "", "§8\u21E8 §7Function: Fishing", "§8\u21E8 §7Success Rate: 10%", "§8\u21E8 §7Fuel Efficiency: 1.0x"); + PROGRAMMABLE_ANDROID = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzUwM2NiN2VkODQ1ZTdhNTA3ZjU2OWFmYzY0N2M0N2FjNDgzNzcxNDY1YzlhNjc5YTU0NTk0Yzc2YWZiYSJ9fX0="), "&cProgrammable Android &7(Normal)", "", "&8\u21E8 &7Function: None", "&8\u21E8 &7Fuel Efficiency: 1.0x"); + PROGRAMMABLE_ANDROID_MINER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTYzOGEyODU0MWFiM2FlMGE3MjNkNTU3ODczOGUwODc1ODM4OGVjNGMzMzI0N2JkNGNhMTM0ODJhZWYzMzQifX19"), "&cProgrammable Android &7(Miner)", "", "&8\u21E8 &7Function: Mining", "&8\u21E8 &7Fuel Efficiency: 1.0x"); + PROGRAMMABLE_ANDROID_FARMER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjlkMzMzNTdlODQxODgyM2JmNzgzZGU5MmRlODAyOTFiNGViZDM5MmFlYzg3MDY2OThlMDY4OTZkNDk4ZjYifX19"), "&cProgrammable Android &7(Farmer)", "", "&8\u21E8 &7Function: Farming", "&8\u21E8 &7Fuel Efficiency: 1.0x"); + PROGRAMMABLE_ANDROID_WOODCUTTER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDMyYTgxNDUxMDE0MjIwNTE2OWExYWQzMmYwYTc0NWYxOGU5Y2I2YzY2ZWU2NGVjYTJlNjViYWJkZWY5ZmYifX19"), "&cProgrammable Android &7(Woodcutter)", "", "&8\u21E8 &7Function: Woodcutting", "&8\u21E8 &7Fuel Efficiency: 1.0x"); + PROGRAMMABLE_ANDROID_BUTCHER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvM2I0NzJkZjBhZDlhM2JlODhmMmU1ZDVkNDIyZDAyYjExNmQ2NGQ4ZGYxNDc1ZWQzMmU1NDZhZmM4NGIzMSJ9fX0="), "&cProgrammable Android &7(Butcher)", "", "&8\u21E8 &7Function: Slaughtering", "&8\u21E8 &7Damage: 4", "&8\u21E8 &7Fuel Efficiency: 1.0x"); + PROGRAMMABLE_ANDROID_FISHERMAN = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzQ1ZTg3MzNhNzMxMTQzMzNiOThiMzYwMTc1MTI0MTcyMmY0NzEzZTFhMWE1ZDM2ZmJiMTMyNDkzZjFjNyJ9fX0="), "&cProgrammable Android &7(Fisherman)", "", "&8\u21E8 &7Function: Fishing", "&8\u21E8 &7Success Rate: 10%", "&8\u21E8 &7Fuel Efficiency: 1.0x"); - PROGRAMMABLE_ANDROID_2 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzUwM2NiN2VkODQ1ZTdhNTA3ZjU2OWFmYzY0N2M0N2FjNDgzNzcxNDY1YzlhNjc5YTU0NTk0Yzc2YWZiYSJ9fX0="), "§cAdvanced Programmable Android &7(Normal)", "", "§8\u21E8 §7Function: None", "§8\u21E8 §7Fuel Efficiency: 1.5x"); - PROGRAMMABLE_ANDROID_2_FISHERMAN = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzQ1ZTg3MzNhNzMxMTQzMzNiOThiMzYwMTc1MTI0MTcyMmY0NzEzZTFhMWE1ZDM2ZmJiMTMyNDkzZjFjNyJ9fX0="), "§cAdvanced Programmable Android &7(Fisherman)", "", "§8\u21E8 §7Function: Fishing", "§8\u21E8 §7Success Rate: 20%", "§8\u21E8 §7Fuel Efficiency: 1.5x"); - PROGRAMMABLE_ANDROID_2_FARMER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjlkMzMzNTdlODQxODgyM2JmNzgzZGU5MmRlODAyOTFiNGViZDM5MmFlYzg3MDY2OThlMDY4OTZkNDk4ZjYifX19"), "§cAdvanced Programmable Android &7(Farmer)", "", "§8\u21E8 §7Function: Farming", "§8\u21E8 §7Fuel Efficiency: 1.5x", "§8\u21E8 §7Can also harvest Plants from ExoticGarden"); - PROGRAMMABLE_ANDROID_2_BUTCHER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvM2I0NzJkZjBhZDlhM2JlODhmMmU1ZDVkNDIyZDAyYjExNmQ2NGQ4ZGYxNDc1ZWQzMmU1NDZhZmM4NGIzMSJ9fX0="), "§cAdvanced Programmable Android &7(Butcher)", "", "§8\u21E8 §7Function: Slaughtering", "§8\u21E8 §7Damage: 8", "§8\u21E8 §7Fuel Efficiency: 1.5x"); + PROGRAMMABLE_ANDROID_2 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzUwM2NiN2VkODQ1ZTdhNTA3ZjU2OWFmYzY0N2M0N2FjNDgzNzcxNDY1YzlhNjc5YTU0NTk0Yzc2YWZiYSJ9fX0="), "&cAdvanced Programmable Android &7(Normal)", "", "&8\u21E8 &7Function: None", "&8\u21E8 &7Fuel Efficiency: 1.5x"); + PROGRAMMABLE_ANDROID_2_FISHERMAN = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzQ1ZTg3MzNhNzMxMTQzMzNiOThiMzYwMTc1MTI0MTcyMmY0NzEzZTFhMWE1ZDM2ZmJiMTMyNDkzZjFjNyJ9fX0="), "&cAdvanced Programmable Android &7(Fisherman)", "", "&8\u21E8 &7Function: Fishing", "&8\u21E8 &7Success Rate: 20%", "&8\u21E8 &7Fuel Efficiency: 1.5x"); + PROGRAMMABLE_ANDROID_2_FARMER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjlkMzMzNTdlODQxODgyM2JmNzgzZGU5MmRlODAyOTFiNGViZDM5MmFlYzg3MDY2OThlMDY4OTZkNDk4ZjYifX19"), "&cAdvanced Programmable Android &7(Farmer)", "", "&8\u21E8 &7Function: Farming", "&8\u21E8 &7Fuel Efficiency: 1.5x", "&8\u21E8 &7Can also harvest Plants from ExoticGarden"); + PROGRAMMABLE_ANDROID_2_BUTCHER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvM2I0NzJkZjBhZDlhM2JlODhmMmU1ZDVkNDIyZDAyYjExNmQ2NGQ4ZGYxNDc1ZWQzMmU1NDZhZmM4NGIzMSJ9fX0="), "&cAdvanced Programmable Android &7(Butcher)", "", "&8\u21E8 &7Function: Slaughtering", "&8\u21E8 &7Damage: 8", "&8\u21E8 &7Fuel Efficiency: 1.5x"); - PROGRAMMABLE_ANDROID_3 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzUwM2NiN2VkODQ1ZTdhNTA3ZjU2OWFmYzY0N2M0N2FjNDgzNzcxNDY1YzlhNjc5YTU0NTk0Yzc2YWZiYSJ9fX0="), "§eEmpowered Programmable Android &7(Normal)", "", "§8\u21E8 §7Function: None", "§8\u21E8 §7Fuel Efficiency: 3.0x"); - PROGRAMMABLE_ANDROID_3_FISHERMAN = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzQ1ZTg3MzNhNzMxMTQzMzNiOThiMzYwMTc1MTI0MTcyMmY0NzEzZTFhMWE1ZDM2ZmJiMTMyNDkzZjFjNyJ9fX0="), "§eEmpowered Programmable Android &7(Fisherman)", "", "§8\u21E8 §7Function: Fishing", "§8\u21E8 §7Success Rate: 30%", "§8\u21E8 §7Fuel Efficiency: 8.0x"); - PROGRAMMABLE_ANDROID_3_BUTCHER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvM2I0NzJkZjBhZDlhM2JlODhmMmU1ZDVkNDIyZDAyYjExNmQ2NGQ4ZGYxNDc1ZWQzMmU1NDZhZmM4NGIzMSJ9fX0="), "§eEmpowered Programmable Android &7(Butcher)", "", "§8\u21E8 §7Function: Slaughtering", "§8\u21E8 §7Damage: 20", "§8\u21E8 §7Fuel Efficiency: 8.0x"); + PROGRAMMABLE_ANDROID_3 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzUwM2NiN2VkODQ1ZTdhNTA3ZjU2OWFmYzY0N2M0N2FjNDgzNzcxNDY1YzlhNjc5YTU0NTk0Yzc2YWZiYSJ9fX0="), "&eEmpowered Programmable Android &7(Normal)", "", "&8\u21E8 &7Function: None", "&8\u21E8 &7Fuel Efficiency: 3.0x"); + PROGRAMMABLE_ANDROID_3_FISHERMAN = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzQ1ZTg3MzNhNzMxMTQzMzNiOThiMzYwMTc1MTI0MTcyMmY0NzEzZTFhMWE1ZDM2ZmJiMTMyNDkzZjFjNyJ9fX0="), "&eEmpowered Programmable Android &7(Fisherman)", "", "&8\u21E8 &7Function: Fishing", "&8\u21E8 &7Success Rate: 30%", "&8\u21E8 &7Fuel Efficiency: 8.0x"); + PROGRAMMABLE_ANDROID_3_BUTCHER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvM2I0NzJkZjBhZDlhM2JlODhmMmU1ZDVkNDIyZDAyYjExNmQ2NGQ4ZGYxNDc1ZWQzMmU1NDZhZmM4NGIzMSJ9fX0="), "&eEmpowered Programmable Android &7(Butcher)", "", "&8\u21E8 &7Function: Slaughtering", "&8\u21E8 &7Damage: 20", "&8\u21E8 &7Fuel Efficiency: 8.0x"); - GPS_TRANSMITTER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjBjOWMxYTAyMmY0MGI3M2YxNGI0Y2JhMzdjNzE4YzZhNTMzZjNhMjg2NGI2NTM2ZDVmNDU2OTM0Y2MxZiJ9fX0="), "§bGPS Transmitter", "", "§8\u21E8 §e\u26A1 §716 J Buffer", "§8\u21E8 §e\u26A1 §72 J/s"); - GPS_TRANSMITTER_2 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjBjOWMxYTAyMmY0MGI3M2YxNGI0Y2JhMzdjNzE4YzZhNTMzZjNhMjg2NGI2NTM2ZDVmNDU2OTM0Y2MxZiJ9fX0="), "§cAdvanced GPS Transmitter", "", "§8\u21E8 §e\u26A1 §764 J Buffer", "§8\u21E8 §e\u26A1 §76 J/s"); - GPS_TRANSMITTER_3 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjBjOWMxYTAyMmY0MGI3M2YxNGI0Y2JhMzdjNzE4YzZhNTMzZjNhMjg2NGI2NTM2ZDVmNDU2OTM0Y2MxZiJ9fX0="), "§4Carbonado GPS Transmitter", "", "§8\u21E8 §e\u26A1 §7256 J Buffer", "§8\u21E8 §e\u26A1 §722 J/s"); - GPS_TRANSMITTER_4 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjBjOWMxYTAyMmY0MGI3M2YxNGI0Y2JhMzdjNzE4YzZhNTMzZjNhMjg2NGI2NTM2ZDVmNDU2OTM0Y2MxZiJ9fX0="), "§eEnergized GPS Transmitter", "", "§8\u21E8 §e\u26A1 §71024 J Buffer", "§8\u21E8 §e\u26A1 §792 J/s"); + GPS_TRANSMITTER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjBjOWMxYTAyMmY0MGI3M2YxNGI0Y2JhMzdjNzE4YzZhNTMzZjNhMjg2NGI2NTM2ZDVmNDU2OTM0Y2MxZiJ9fX0="), "&bGPS Transmitter", "", "&8\u21E8 &e\u26A1 &716 J Buffer", "&8\u21E8 &e\u26A1 &72 J/s"); + GPS_TRANSMITTER_2 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjBjOWMxYTAyMmY0MGI3M2YxNGI0Y2JhMzdjNzE4YzZhNTMzZjNhMjg2NGI2NTM2ZDVmNDU2OTM0Y2MxZiJ9fX0="), "&cAdvanced GPS Transmitter", "", "&8\u21E8 &e\u26A1 &764 J Buffer", "&8\u21E8 &e\u26A1 &76 J/s"); + GPS_TRANSMITTER_3 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjBjOWMxYTAyMmY0MGI3M2YxNGI0Y2JhMzdjNzE4YzZhNTMzZjNhMjg2NGI2NTM2ZDVmNDU2OTM0Y2MxZiJ9fX0="), "&4Carbonado GPS Transmitter", "", "&8\u21E8 &e\u26A1 &7256 J Buffer", "&8\u21E8 &e\u26A1 &722 J/s"); + GPS_TRANSMITTER_4 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjBjOWMxYTAyMmY0MGI3M2YxNGI0Y2JhMzdjNzE4YzZhNTMzZjNhMjg2NGI2NTM2ZDVmNDU2OTM0Y2MxZiJ9fX0="), "&eEnergized GPS Transmitter", "", "&8\u21E8 &e\u26A1 &71024 J Buffer", "&8\u21E8 &e\u26A1 &792 J/s"); - GPS_CONTROL_PANEL = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGRjZmJhNThmYWYxZjY0ODQ3ODg0MTExODIyYjY0YWZhMjFkN2ZjNjJkNDQ4MWYxNGYzZjNiY2I2MzMwIn19fQ=="), "§bGPS Control Panel", "", "§rAllows you to trach your Satellites", "§rand manage your Waypoints"); - GPS_EMERGENCY_TRANSMITTER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjBjOWMxYTAyMmY0MGI3M2YxNGI0Y2JhMzdjNzE4YzZhNTMzZjNhMjg2NGI2NTM2ZDVmNDU2OTM0Y2MxZiJ9fX0="), "§cGPS Emergency Transmitter", "", "§rCarrying this in your Inventory", "§rautomatically sets a Waypoint", "§rat your Location when you die."); + GPS_CONTROL_PANEL = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGRjZmJhNThmYWYxZjY0ODQ3ODg0MTExODIyYjY0YWZhMjFkN2ZjNjJkNDQ4MWYxNGYzZjNiY2I2MzMwIn19fQ=="), "&bGPS Control Panel", "", "&rAllows you to trach your Satellites", "&rand manage your Waypoints"); + GPS_EMERGENCY_TRANSMITTER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjBjOWMxYTAyMmY0MGI3M2YxNGI0Y2JhMzdjNzE4YzZhNTMzZjNhMjg2NGI2NTM2ZDVmNDU2OTM0Y2MxZiJ9fX0="), "&cGPS Emergency Transmitter", "", "&rCarrying this in your Inventory", "&rautomatically sets a Waypoint", "&rat your Location when you die."); - GPS_GEO_SCANNER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMmFkOGNmZWIzODdhNTZlM2U1YmNmODUzNDVkNmE0MTdiMjQyMjkzODg3ZGIzY2UzYmE5MWZhNDA5YjI1NGI4NiJ9fX0="), "§bGPS Geo-Scanner", "", "§rScans a Chunk for natural Resources", "§rsuch as §8Oil"); - OIL_PUMP = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYWZlMWEwNDBhNDI1ZTMxYTQ2ZDRmOWE5Yjk4MDZmYTJmMGM0N2VlODQ3MTFjYzE5MzJmZDhhYjMyYjJkMDM4In19fQ=="), "§rOil Pump", "", "§7Pumps up Oil and fills it into Buckets", "", "§c§l! §cMake sure to Geo-Scan the Chunk first"); - BUCKET_OF_OIL = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNmNlMDRiNDFkMTllYzc5MjdmOTgyYTYzYTk0YTNkNzlmNzhlY2VjMzMzNjMwNTFmZGUwODMxYmZhYmRiZCJ9fX0="), "§rBucket of Oil"); - BUCKET_OF_FUEL = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTg0ZGRjYTc2NjcyNWI4Yjk3NDEzZjI1OWMzZjc2NjgwNzBmNmFlNTU0ODNhOTBjOGU1NTI1Mzk0ZjljMDk5In19fQ=="), "§rBucket of Fuel"); + GPS_GEO_SCANNER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMmFkOGNmZWIzODdhNTZlM2U1YmNmODUzNDVkNmE0MTdiMjQyMjkzODg3ZGIzY2UzYmE5MWZhNDA5YjI1NGI4NiJ9fX0="), "&bGPS Geo-Scanner", "", "&rScans a Chunk for natural Resources", "&rsuch as &8Oil"); + OIL_PUMP = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYWZlMWEwNDBhNDI1ZTMxYTQ2ZDRmOWE5Yjk4MDZmYTJmMGM0N2VlODQ3MTFjYzE5MzJmZDhhYjMyYjJkMDM4In19fQ=="), "&rOil Pump", "", "&7Pumps up Oil and fills it into Buckets", "", "&c&l! &cMake sure to Geo-Scan the Chunk first"); + BUCKET_OF_OIL = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNmNlMDRiNDFkMTllYzc5MjdmOTgyYTYzYTk0YTNkNzlmNzhlY2VjMzMzNjMwNTFmZGUwODMxYmZhYmRiZCJ9fX0="), "&rBucket of Oil"); + BUCKET_OF_FUEL = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTg0ZGRjYTc2NjcyNWI4Yjk3NDEzZjI1OWMzZjc2NjgwNzBmNmFlNTU0ODNhOTBjOGU1NTI1Mzk0ZjljMDk5In19fQ=="), "&rBucket of Fuel"); - LAVA_CRYSTAL = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTNhZDhlZTg0OWVkZjA0ZWQ5YTI2Y2EzMzQxZjYwMzNiZDc2ZGNjNDIzMWVkMWVhNjNiNzU2NTc1MWIyN2FjIn19fQ=="), "§4Lava Crystal"); - ANDROID_MEMORY_CORE = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDc4ZjJiN2U1ZTc1NjM5ZWE3ZmI3OTZjMzVkMzY0YzRkZjI4YjQyNDNlNjZiNzYyNzdhYWRjZDYyNjEzMzcifX19"), "§bAndroid Memory Core"); + LAVA_CRYSTAL = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTNhZDhlZTg0OWVkZjA0ZWQ5YTI2Y2EzMzQxZjYwMzNiZDc2ZGNjNDIzMWVkMWVhNjNiNzU2NTc1MWIyN2FjIn19fQ=="), "&4Lava Crystal"); + ANDROID_MEMORY_CORE = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDc4ZjJiN2U1ZTc1NjM5ZWE3ZmI3OTZjMzVkMzY0YzRkZjI4YjQyNDNlNjZiNzYyNzdhYWRjZDYyNjEzMzcifX19"), "&bAndroid Memory Core"); - CARBON = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOGIzYTA5NWI2YjgxZTZiOTg1M2ExOTMyNGVlZGYwYmI5MzQ5NDE3MjU4ZGQxNzNiOGVmZjg3YTA4N2FhIn19fQ=="), "§eCarbon"); - COMPRESSED_CARBON = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzIxZDQ5NTE2NTc0OGQzMTE2Zjk5ZDZiNWJkNWQ0MmViOGJhNTkyYmNkZmFkMzdmZDk1ZjliNmMwNGEzYiJ9fX0="), "§cCompressed Carbon"); - CARBON_CHUNK = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzIxZDQ5NTE2NTc0OGQzMTE2Zjk5ZDZiNWJkNWQ0MmViOGJhNTkyYmNkZmFkMzdmZDk1ZjliNmMwNGEzYiJ9fX0="), "§4Carbon Chunk"); + CARBON = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOGIzYTA5NWI2YjgxZTZiOTg1M2ExOTMyNGVlZGYwYmI5MzQ5NDE3MjU4ZGQxNzNiOGVmZjg3YTA4N2FhIn19fQ=="), "&eCarbon"); + COMPRESSED_CARBON = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzIxZDQ5NTE2NTc0OGQzMTE2Zjk5ZDZiNWJkNWQ0MmViOGJhNTkyYmNkZmFkMzdmZDk1ZjliNmMwNGEzYiJ9fX0="), "&cCompressed Carbon"); + CARBON_CHUNK = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzIxZDQ5NTE2NTc0OGQzMTE2Zjk5ZDZiNWJkNWQ0MmViOGJhNTkyYmNkZmFkMzdmZDk1ZjliNmMwNGEzYiJ9fX0="), "&4Carbon Chunk"); CARBONADO = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTJmNGIxNTc3ZjUxNjBjNjg5MzE3MjU3MWM0YTcxZDhiMzIxY2RjZWFhMDMyYzZlMGUzYjYwZTBiMzI4ZmEifX19"), "&b&lCarbonado", "", "&7&o\"Black Diamond\""); RAW_CARBONADO = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZWI0OWU2ZWMxMDc3MWU4OTkyMjVhZWE3M2NkOGNmMDM2ODRmNDExZDE0MTVjNzMyM2M5M2NiOTQ3NjIzMCJ9fX0="), "&bRaw Carbonado"); - ENERGY_REGULATOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDc4ZjJiN2U1ZTc1NjM5ZWE3ZmI3OTZjMzVkMzY0YzRkZjI4YjQyNDNlNjZiNzYyNzdhYWRjZDYyNjEzMzcifX19"), "§6Energy Regulator", "", "§rCore Component of an Energy Network"); + ENERGY_REGULATOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDc4ZjJiN2U1ZTc1NjM5ZWE3ZmI3OTZjMzVkMzY0YzRkZjI4YjQyNDNlNjZiNzYyNzdhYWRjZDYyNjEzMzcifX19"), "&6Energy Regulator", "", "&rCore Component of an Energy Network"); - CARGO_MANAGER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTUxMGJjODUzNjJhMTMwYTZmZjlkOTFmZjExZDZmYTQ2ZDdkMTkxMmEzNDMxZjc1MTU1OGVmM2M0ZDljMiJ9fX0="), "§6Cargo Manager", "", "§rCore Component of an Item Transport Network"); - CARGO_NODE = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMDdiN2VmNmZkNzg2NDg2NWMzMWMxZGM4N2JlZDI0YWI1OTczNTc5ZjVjNjYzOGZlY2I4ZGVkZWI0NDNmZjAifX19"), "§7Cargo Node &c(Connector)", "", "§rCargo Connector Pipe"); - CARGO_INPUT = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTZkMWMxYTY5YTNkZTlmZWM5NjJhNzdiZjNiMmUzNzZkZDI1Yzg3M2EzZDhmMTRmMWRkMzQ1ZGFlNGM0In19fQ=="), "§7Cargo Node &c(Input)", "", "§rCargo Input Pipe"); - CARGO_OUTPUT = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTViMjFmZDQ4MGMxYzQzYmYzYjlmODQyYzg2OWJkYzNiYzVhY2MyNTk5YmYyZWI2YjhhMWM5NWRjZTk3OGYifX19"), "§7Cargo Node &c(Output)", "", "§rCargo Output Pipe"); - CARGO_OUTPUT_ADVANCED = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTViMjFmZDQ4MGMxYzQzYmYzYjlmODQyYzg2OWJkYzNiYzVhY2MyNTk5YmYyZWI2YjhhMWM5NWRjZTk3OGYifX19"), "§6Advanced Cargo Node &c(Output)", "", "§rCargo Output Pipe"); + CARGO_MANAGER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTUxMGJjODUzNjJhMTMwYTZmZjlkOTFmZjExZDZmYTQ2ZDdkMTkxMmEzNDMxZjc1MTU1OGVmM2M0ZDljMiJ9fX0="), "&6Cargo Manager", "", "&rCore Component of an Item Transport Network"); + CARGO_NODE = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMDdiN2VmNmZkNzg2NDg2NWMzMWMxZGM4N2JlZDI0YWI1OTczNTc5ZjVjNjYzOGZlY2I4ZGVkZWI0NDNmZjAifX19"), "&7Cargo Node &c(Connector)", "", "&rCargo Connector Pipe"); + CARGO_INPUT = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTZkMWMxYTY5YTNkZTlmZWM5NjJhNzdiZjNiMmUzNzZkZDI1Yzg3M2EzZDhmMTRmMWRkMzQ1ZGFlNGM0In19fQ=="), "&7Cargo Node &c(Input)", "", "&rCargo Input Pipe"); + CARGO_OUTPUT = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTViMjFmZDQ4MGMxYzQzYmYzYjlmODQyYzg2OWJkYzNiYzVhY2MyNTk5YmYyZWI2YjhhMWM5NWRjZTk3OGYifX19"), "&7Cargo Node &c(Output)", "", "&rCargo Output Pipe"); + CARGO_OUTPUT_ADVANCED = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTViMjFmZDQ4MGMxYzQzYmYzYjlmODQyYzg2OWJkYzNiYzVhY2MyNTk5YmYyZWI2YjhhMWM5NWRjZTk3OGYifX19"), "&6Advanced Cargo Node &c(Output)", "", "&rCargo Output Pipe"); - AUTO_BREEDER = new CustomItem(new MaterialData(Material.HAY_BLOCK), "§eAuto-Breeder", "", "§rRuns on §aOrganic Food", "", "§4End-Game Machine", "§8\u21E8 §e\u26A1 §71024 J Buffer", "§8\u21E8 §e\u26A1 §760 J/Animal"); - ANIMAL_GROWTH_ACCELERATOR = new CustomItem(new MaterialData(Material.HAY_BLOCK), "§bAnimal Growth Accelerator", "", "§rRuns on §aOrganic Food", "", "§4End-Game Machine", "§8\u21E8 §e\u26A1 §71024 J Buffer", "§8\u21E8 §e\u26A1 §728 J/s"); - CROP_GROWTH_ACCELERATOR = new CustomItem(new MaterialData(Material.STAINED_CLAY, (byte) 5), "§aCrop Growth Accelerator", "", "§rRuns on §aOrganic Fertilizer", "", "§4End-Game Machine", "§8\u21E8 §7Radius: 7x7", "§8\u21E8 §7Speed: §a3/time", "§8\u21E8 §e\u26A1 §71024 J Buffer", "§8\u21E8 §e\u26A1 §750 J/s"); - CROP_GROWTH_ACCELERATOR_2 = new CustomItem(new MaterialData(Material.STAINED_CLAY, (byte) 5), "§aCrop Growth Accelerator &7(&eII&7)", "", "§rRuns on §aOrganic Fertilizer", "", "§4End-Game Machine", "§8\u21E8 §7Radius: 9x9", "§8\u21E8 §7Speed: §a4/time", "§8\u21E8 §e\u26A1 §71024 J Buffer", "§8\u21E8 §e\u26A1 §760 J/s"); - XP_COLLECTOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTc2MmExNWIwNDY5MmEyZTRiM2ZiMzY2M2JkNGI3ODQzNGRjZTE3MzJiOGViMWM3YTlmN2MwZmJmNmYifX19"), "§aEXP Collector", "", "§rCollects nearby Exp and stores it", "", "§4End-Game Machine", "§8\u21E8 §e\u26A1 §71024 J Buffer", "§8\u21E8 §e\u26A1 §720 J/s"); + AUTO_BREEDER = new CustomItem(new MaterialData(Material.HAY_BLOCK), "&eAuto-Breeder", "", "&rRuns on &aOrganic Food", "", "&4End-Game Machine", "&8\u21E8 &e\u26A1 &71024 J Buffer", "&8\u21E8 &e\u26A1 &760 J/Animal"); + ANIMAL_GROWTH_ACCELERATOR = new CustomItem(new MaterialData(Material.HAY_BLOCK), "&bAnimal Growth Accelerator", "", "&rRuns on &aOrganic Food", "", "&4End-Game Machine", "&8\u21E8 &e\u26A1 &71024 J Buffer", "&8\u21E8 &e\u26A1 &728 J/s"); + CROP_GROWTH_ACCELERATOR = new CustomItem(new MaterialData(Material.STAINED_CLAY, (byte) 5), "&aCrop Growth Accelerator", "", "&rRuns on &aOrganic Fertilizer", "", "&4End-Game Machine", "&8\u21E8 &7Radius: 7x7", "&8\u21E8 &7Speed: &a3/time", "&8\u21E8 &e\u26A1 &71024 J Buffer", "&8\u21E8 &e\u26A1 &750 J/s"); + CROP_GROWTH_ACCELERATOR_2 = new CustomItem(new MaterialData(Material.STAINED_CLAY, (byte) 5), "&aCrop Growth Accelerator &7(&eII&7)", "", "&rRuns on &aOrganic Fertilizer", "", "&4End-Game Machine", "&8\u21E8 &7Radius: 9x9", "&8\u21E8 &7Speed: &a4/time", "&8\u21E8 &e\u26A1 &71024 J Buffer", "&8\u21E8 &e\u26A1 &760 J/s"); + XP_COLLECTOR = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTc2MmExNWIwNDY5MmEyZTRiM2ZiMzY2M2JkNGI3ODQzNGRjZTE3MzJiOGViMWM3YTlmN2MwZmJmNmYifX19"), "&aEXP Collector", "", "&rCollects nearby Exp and stores it", "", "&4End-Game Machine", "&8\u21E8 &e\u26A1 &71024 J Buffer", "&8\u21E8 &e\u26A1 &720 J/s"); - ORGANIC_FOOD = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "§aOrganic Food", "§7Content: §9X"); - ORGANIC_FOOD2 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "§aOrganic Food", "§7Content: §9Wheat"); - ORGANIC_FOOD3 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "§aOrganic Food", "§7Content: §9Carrots"); - ORGANIC_FOOD4 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "§aOrganic Food", "§7Content: §9Potatoes"); - ORGANIC_FOOD5 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "§aOrganic Food", "§7Content: §9Seeds"); - ORGANIC_FOOD6 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "§aOrganic Food", "§7Content: §9Beetroot"); - ORGANIC_FOOD7 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "§aOrganic Food", "§7Content: §9Melon"); - ORGANIC_FOOD8 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "§aOrganic Food", "§7Content: §9Apple"); + ORGANIC_FOOD = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "&aOrganic Food", "&7Content: &9X"); + ORGANIC_FOOD2 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "&aOrganic Food", "&7Content: &9Wheat"); + ORGANIC_FOOD3 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "&aOrganic Food", "&7Content: &9Carrots"); + ORGANIC_FOOD4 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "&aOrganic Food", "&7Content: &9Potatoes"); + ORGANIC_FOOD5 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "&aOrganic Food", "&7Content: &9Seeds"); + ORGANIC_FOOD6 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "&aOrganic Food", "&7Content: &9Beetroot"); + ORGANIC_FOOD7 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "&aOrganic Food", "&7Content: &9Melon"); + ORGANIC_FOOD8 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "&aOrganic Food", "&7Content: &9Apple"); - FERTILIZER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "§aOrganic Fertilizer", "§7Content: §9X"); - FERTILIZER2 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "§aOrganic Fertilizer", "§7Content: §9Wheat"); - FERTILIZER3 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "§aOrganic Fertilizer", "§7Content: §9Carrots"); - FERTILIZER4 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "§aOrganic Fertilizer", "§7Content: §9Potatoes"); - FERTILIZER5 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "§aOrganic Fertilizer", "§7Content: §9Seeds"); - FERTILIZER6 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "§aOrganic Fertilizer", "§7Content: §9Beetroot"); - FERTILIZER7 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "§aOrganic Fertilizer", "§7Content: §9Melon"); - FERTILIZER8 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "§aOrganic Fertilizer", "§7Content: §9Apple"); + FERTILIZER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "&aOrganic Fertilizer", "&7Content: &9X"); + FERTILIZER2 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "&aOrganic Fertilizer", "&7Content: &9Wheat"); + FERTILIZER3 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "&aOrganic Fertilizer", "&7Content: &9Carrots"); + FERTILIZER4 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "&aOrganic Fertilizer", "&7Content: &9Potatoes"); + FERTILIZER5 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "&aOrganic Fertilizer", "&7Content: &9Seeds"); + FERTILIZER6 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "&aOrganic Fertilizer", "&7Content: &9Beetroot"); + FERTILIZER7 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "&aOrganic Fertilizer", "&7Content: &9Melon"); + FERTILIZER8 = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "&aOrganic Fertilizer", "&7Content: &9Apple"); - REACTOR_COOLANT_CELL = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGU0MDczYmU0MGNiM2RlYjMxMGEwYmU5NTliNGNhYzY4ZTgyNTM3MjcyOGZhZmI2YzI5NzNlNGU3YzMzIn19fQ=="), "§bReactor Coolant Cell"); + REACTOR_COOLANT_CELL = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGU0MDczYmU0MGNiM2RlYjMxMGEwYmU5NTliNGNhYzY4ZTgyNTM3MjcyOGZhZmI2YzI5NzNlNGU3YzMzIn19fQ=="), "&bReactor Coolant Cell"); - CHEST_TERMINAL = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvN2E0NGZmM2E1ZjQ5YzY5Y2FiNjc2YmFkOGQ5OGEwNjNmYTc4Y2ZhNjE5MTZmZGVmM2UyNjc1NTdmZWMxODI4MyJ9fX0="), "§3CT Access Terminal", "§7If this Block is connected to a", "§7Cargo Network, it will allow you to remotely", "§7interact with any Items supplied by", "§7Nodes tuned into the ChestTerminal Channel"); - CT_IMPORT_BUS = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTEzZGIyZTdlNzJlYTQ0MzJlZWZiZDZlNThhODVlYWEyNDIzZjgzZTY0MmNhNDFhYmM2YTkzMTc3NTdiODg5In19fQ=="), "§3CT Import Bus", "§7If this Block is connected to a", "§7Cargo Network, it will pull any Items from", "§7the Inventory it is attached to and place it", "§7into the CT Network Channel"); - CT_EXPORT_BUS = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTEzZGIyZTdlNzJlYTQ0MzJlZWZiZDZlNThhODVlYWEyNDIzZjgzZTY0MmNhNDFhYmM2YTkzMTc3NTdiODg5In19fQ=="), "§3CT Export Bus", "§7If this Block is connected to a", "§7Cargo Network, it will pull any Items from", "§7the CT Network Channel and place these", "§7into the Inventory it is attached to"); + CHEST_TERMINAL = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvN2E0NGZmM2E1ZjQ5YzY5Y2FiNjc2YmFkOGQ5OGEwNjNmYTc4Y2ZhNjE5MTZmZGVmM2UyNjc1NTdmZWMxODI4MyJ9fX0="), "&3CT Access Terminal", "&7If this Block is connected to a", "&7Cargo Network, it will allow you to remotely", "&7interact with any Items supplied by", "&7Nodes tuned into the ChestTerminal Channel"); + CT_IMPORT_BUS = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTEzZGIyZTdlNzJlYTQ0MzJlZWZiZDZlNThhODVlYWEyNDIzZjgzZTY0MmNhNDFhYmM2YTkzMTc3NTdiODg5In19fQ=="), "&3CT Import Bus", "&7If this Block is connected to a", "&7Cargo Network, it will pull any Items from", "&7the Inventory it is attached to and place it", "&7into the CT Network Channel"); + CT_EXPORT_BUS = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTEzZGIyZTdlNzJlYTQ0MzJlZWZiZDZlNThhODVlYWEyNDIzZjgzZTY0MmNhNDFhYmM2YTkzMTc3NTdiODg5In19fQ=="), "&3CT Export Bus", "&7If this Block is connected to a", "&7Cargo Network, it will pull any Items from", "&7the CT Network Channel and place these", "&7into the Inventory it is attached to"); - FREEZER = new CustomItem(new MaterialData(Material.STAINED_GLASS, (byte) 3), "§bFreezer", "", "§6Advanced Machine", "§8\u21E8 §7Speed: 1x", "§8\u21E8 §e\u26A1 §7256 J Buffer", "§8\u21E8 §e\u26A1 §718 J/s"); - FREEZER_2 = new CustomItem(new MaterialData(Material.STAINED_GLASS, (byte) 3), "§bFreezer §7(§eII§7)", "", "§4End-Game Machine", "§8\u21E8 §7Speed: 2x", "§8\u21E8 §e\u26A1 §7256 J Buffer", "§8\u21E8 §e\u26A1 §730 J/s"); + FREEZER = new CustomItem(new MaterialData(Material.STAINED_GLASS, (byte) 3), "&bFreezer", "", "&6Advanced Machine", "&8\u21E8 &7Speed: 1x", "&8\u21E8 &e\u26A1 &7256 J Buffer", "&8\u21E8 &e\u26A1 &718 J/s"); + FREEZER_2 = new CustomItem(new MaterialData(Material.STAINED_GLASS, (byte) 3), "&bFreezer &7(&eII&7)", "", "&4End-Game Machine", "&8\u21E8 &7Speed: 2x", "&8\u21E8 &e\u26A1 &7256 J Buffer", "&8\u21E8 &e\u26A1 &730 J/s"); BATTERY = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNmUyZGRhNmVmNjE4NWQ0ZGQ2ZWE4Njg0ZTk3ZDM5YmE4YWIwMzdlMjVmNzVjZGVhNmJkMjlkZjhlYjM0ZWUifX19"), "&6Battery"); diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AContainer.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AContainer.java index cd99eca42..fc5cc8f17 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AContainer.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AContainer.java @@ -247,7 +247,7 @@ public abstract class AContainer extends SlimefunItem { int size = BlockStorage.getInventory(b).toInventory().getSize(); Inventory inv = Bukkit.createInventory(null, size); for (int i = 0; i < size; i++) { - inv.setItem(i, new CustomItem(Material.COMMAND, " §4ALL YOUR PLACEHOLDERS ARE BELONG TO US", 0)); + inv.setItem(i, new CustomItem(Material.COMMAND, " &4ALL YOUR PLACEHOLDERS ARE BELONG TO US", 0)); } for (int slot: getOutputSlots()) { inv.setItem(slot, BlockStorage.getInventory(b).getItemInSlot(slot)); diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AFarm.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AFarm.java index 2bd8710e8..087a8bd61 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AFarm.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AFarm.java @@ -226,7 +226,7 @@ public abstract class AFarm extends SlimefunItem { int size = BlockStorage.getInventory(b).toInventory().getSize(); Inventory inv = Bukkit.createInventory(null, size); for (int i = 0; i < size; i++) { - inv.setItem(i, new CustomItem(Material.COMMAND, " §4ALL YOUR PLACEHOLDERS ARE BELONG TO US", 0)); + inv.setItem(i, new CustomItem(Material.COMMAND, " &4ALL YOUR PLACEHOLDERS ARE BELONG TO US", 0)); } for (int slot: getOutputSlots()) { inv.setItem(slot, BlockStorage.getInventory(b).getItemInSlot(slot)); diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AGenerator.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AGenerator.java index 9a392fc30..150f0548f 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AGenerator.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AGenerator.java @@ -339,7 +339,7 @@ public abstract class AGenerator extends SlimefunItem { int size = BlockStorage.getInventory(l).toInventory().getSize(); Inventory inv = Bukkit.createInventory(null, size); for (int i = 0; i < size; i++) { - inv.setItem(i, new CustomItem(Material.COMMAND, " §4ALL YOUR PLACEHOLDERS ARE BELONG TO US", 0)); + inv.setItem(i, new CustomItem(Material.COMMAND, " &4ALL YOUR PLACEHOLDERS ARE BELONG TO US", 0)); } for (int slot: getOutputSlots()) { inv.setItem(slot, BlockStorage.getInventory(l).getItemInSlot(slot)); diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java index 5acea5cf4..eccb57083 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java @@ -84,7 +84,7 @@ public abstract class AReactor extends SlimefunItem { BlockStorage.addBlockInfo(b, "reactor-mode", "generator"); } if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "reactor-mode").equals("generator")) { - menu.replaceExistingItem(4, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "§7Focus: §eElectricity", "", "§6Your Reactor will focus on Power Generation", "§6If your Energy Network doesn't need Power", "§6it will not produce any either", "", "§7> Click to change the Focus to §eProduction")); + menu.replaceExistingItem(4, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "&7Focus: &eElectricity", "", "&6Your Reactor will focus on Power Generation", "&6If your Energy Network doesn't need Power", "&6it will not produce any either", "", "&7> Click to change the Focus to &eProduction")); menu.addMenuClickHandler(4, new MenuClickHandler() { @Override @@ -96,7 +96,7 @@ public abstract class AReactor extends SlimefunItem { }); } else { - menu.replaceExistingItem(4, new CustomItem(SlimefunItems.PLUTONIUM, "§7Focus: §eProduction", "", "§6Your Reactor will focus on producing goods", "§6If your Energy Network doesn't need Power", "§6it will continue to run and simply will", "§6not generate any Power in the mean time", "", "§7> Click to change the Focus to §ePower Generation")); + menu.replaceExistingItem(4, new CustomItem(SlimefunItems.PLUTONIUM, "&7Focus: &eProduction", "", "&6Your Reactor will focus on producing goods", "&6If your Energy Network doesn't need Power", "&6it will continue to run and simply will", "&6not generate any Power in the mean time", "", "&7> Click to change the Focus to &ePower Generation")); menu.addMenuClickHandler(4, new MenuClickHandler() { @Override @@ -201,7 +201,7 @@ public abstract class AReactor extends SlimefunItem { }); - preset.addItem(1, new CustomItem(SlimefunItems.URANIUM, "§7Fuel Slot", "", "§rThis Slot accepts radioactive Fuel such as:", "§2Uranium §ror §aNeptunium"), + preset.addItem(1, new CustomItem(SlimefunItems.URANIUM, "&7Fuel Slot", "", "&rThis Slot accepts radioactive Fuel such as:", "&2Uranium &ror &aNeptunium"), new MenuClickHandler() { @Override @@ -224,13 +224,13 @@ public abstract class AReactor extends SlimefunItem { } if (needsCooling()) { - preset.addItem(7, new CustomItem(SlimefunItems.REACTOR_COOLANT_CELL, "§bCoolant Slot", "", "§rThis Slot accepts Coolant Cells", "§4Without any Coolant Cells, your Reactor", "§4will explode")); + preset.addItem(7, new CustomItem(SlimefunItems.REACTOR_COOLANT_CELL, "&bCoolant Slot", "", "&rThis Slot accepts Coolant Cells", "&4Without any Coolant Cells, your Reactor", "&4will explode")); } else { - preset.addItem(7, new CustomItem(SlimefunItems.REACTOR_COOLANT_CELL, "§bCoolant Slot", "", "§rThis Slot accepts Coolant Cells")); + preset.addItem(7, new CustomItem(SlimefunItems.REACTOR_COOLANT_CELL, "&bCoolant Slot", "", "&rThis Slot accepts Coolant Cells")); for (int i : border_4) { - preset.addItem(i, new CustomItem(new ItemStack(Material.BARRIER), "§cNo Coolant Required"), + preset.addItem(i, new CustomItem(new ItemStack(Material.BARRIER), "&cNo Coolant Required"), new MenuClickHandler() { @Override @@ -338,7 +338,7 @@ public abstract class AReactor extends SlimefunItem { for (int slot: getCoolantSlots()) { if (SlimefunManager.isItemSimiliar(BlockStorage.getInventory(l).getItemInSlot(slot), SlimefunItems.REACTOR_COOLANT_CELL, true)) { BlockStorage.getInventory(l).replaceExistingItem(slot, InvUtils.decreaseItem(BlockStorage.getInventory(l).getItemInSlot(slot), 1)); - ReactorHologram.update(l, "§b\u2744 §7100%"); + ReactorHologram.update(l, "&b\u2744 &7100%"); explosion = false; break; } @@ -350,7 +350,7 @@ public abstract class AReactor extends SlimefunItem { } } else { - ReactorHologram.update(l, "§b\u2744 §7" + MachineHelper.getPercentage(timeleft, processing.get(l).getTicks()) + "%"); + ReactorHologram.update(l, "&b\u2744 &7" + MachineHelper.getPercentage(timeleft, processing.get(l).getTicks()) + "%"); } } @@ -439,7 +439,7 @@ public abstract class AReactor extends SlimefunItem { int size = BlockStorage.getInventory(l).toInventory().getSize(); Inventory inv = Bukkit.createInventory(null, size); for (int i = 0; i < size; i++) { - inv.setItem(i, new CustomItem(Material.COMMAND, " §4ALL YOUR PLACEHOLDERS ARE BELONG TO US", 0)); + inv.setItem(i, new CustomItem(Material.COMMAND, " &4ALL YOUR PLACEHOLDERS ARE BELONG TO US", 0)); } for (int slot: getOutputSlots()) { inv.setItem(slot, BlockStorage.getInventory(l).getItemInSlot(slot)); @@ -451,7 +451,7 @@ public abstract class AReactor extends SlimefunItem { int size = BlockStorage.getInventory(l).toInventory().getSize(); Inventory inv = Bukkit.createInventory(null, size); for (int i = 0; i < size; i++) { - inv.setItem(i, new CustomItem(Material.COMMAND, " §4ALL YOUR PLACEHOLDERS ARE BELONG TO US", 0)); + inv.setItem(i, new CustomItem(Material.COMMAND, " &4ALL YOUR PLACEHOLDERS ARE BELONG TO US", 0)); } for (int slot: slots) { inv.setItem(slot, BlockStorage.getInventory(l).getItemInSlot(slot)); diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineHelper.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineHelper.java index 19d0f1b2e..4ccc0fcc5 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineHelper.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineHelper.java @@ -14,7 +14,7 @@ public class MachineHelper { l -= minutes * 60; final int seconds = (int)l; timeleft = String.valueOf(timeleft) + seconds + "s"; - return "§7" + timeleft + " left"; + return "&7" + timeleft + " left"; } public static String getProgress(int time, int total) { diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AdvancedCargoOutputNode.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AdvancedCargoOutputNode.java index 65c465918..5b3efc721 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AdvancedCargoOutputNode.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AdvancedCargoOutputNode.java @@ -31,7 +31,7 @@ public class AdvancedCargoOutputNode extends SlimefunItem { public AdvancedCargoOutputNode(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe, ItemStack recipeOutput) { super(category, item, name, recipeType, recipe, recipeOutput); - new BlockMenuPreset(name, "§cOutput Node") { + new BlockMenuPreset(name, "&cOutput Node") { @Override public void init() { @@ -43,7 +43,7 @@ public class AdvancedCargoOutputNode extends SlimefunItem { public void newInstance(final BlockMenu menu, final Block b) { try { if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "filter-type") == null || BlockStorage.getBlockInfo(b, "filter-type").equals("whitelist")) { - menu.replaceExistingItem(15, new CustomItem(new MaterialData(Material.WOOL), "§7Type: §rWhitelist", "", "§e> Click to change it to Blacklist")); + menu.replaceExistingItem(15, new CustomItem(new MaterialData(Material.WOOL), "&7Type: &rWhitelist", "", "&e> Click to change it to Blacklist")); menu.addMenuClickHandler(15, new MenuClickHandler() { @Override @@ -55,7 +55,7 @@ public class AdvancedCargoOutputNode extends SlimefunItem { }); } else { - menu.replaceExistingItem(15, new CustomItem(new MaterialData(Material.WOOL, (byte) 15), "§7Type: §8Blacklist", "", "§e> Click to change it to Whitelist")); + menu.replaceExistingItem(15, new CustomItem(new MaterialData(Material.WOOL, (byte) 15), "&7Type: &8Blacklist", "", "&e> Click to change it to Whitelist")); menu.addMenuClickHandler(15, new MenuClickHandler() { @Override @@ -68,7 +68,7 @@ public class AdvancedCargoOutputNode extends SlimefunItem { } if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "filter-durability") == null || BlockStorage.getBlockInfo(b, "filter-durability").equals("false")) { - menu.replaceExistingItem(16, new CustomItem(new MaterialData(Material.STONE_SWORD, (byte) 20), "§7Include Sub-IDs/Durability: §4\u2718", "", "§e> Click to toggle whether the Durability has to match")); + menu.replaceExistingItem(16, new CustomItem(new MaterialData(Material.STONE_SWORD, (byte) 20), "&7Include Sub-IDs/Durability: &4\u2718", "", "&e> Click to toggle whether the Durability has to match")); menu.addMenuClickHandler(16, new MenuClickHandler() { @Override @@ -80,7 +80,7 @@ public class AdvancedCargoOutputNode extends SlimefunItem { }); } else { - menu.replaceExistingItem(16, new CustomItem(new MaterialData(Material.GOLD_SWORD, (byte) 20), "§7Include Sub-IDs/Durability: §2\u2714", "", "§e> Click to toggle whether the Durability has to match")); + menu.replaceExistingItem(16, new CustomItem(new MaterialData(Material.GOLD_SWORD, (byte) 20), "&7Include Sub-IDs/Durability: &2\u2714", "", "&e> Click to toggle whether the Durability has to match")); menu.addMenuClickHandler(16, new MenuClickHandler() { @Override @@ -93,7 +93,7 @@ public class AdvancedCargoOutputNode extends SlimefunItem { } if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "filter-lore") == null || BlockStorage.getBlockInfo(b, "filter-lore").equals("true")) { - menu.replaceExistingItem(25, new CustomItem(new MaterialData(Material.EMPTY_MAP), "§7Include Lore: §2\u2714", "", "§e> Click to toggle whether the Lore has to match")); + menu.replaceExistingItem(25, new CustomItem(new MaterialData(Material.EMPTY_MAP), "&7Include Lore: &2\u2714", "", "&e> Click to toggle whether the Lore has to match")); menu.addMenuClickHandler(25, new MenuClickHandler() { @Override @@ -105,7 +105,7 @@ public class AdvancedCargoOutputNode extends SlimefunItem { }); } else { - menu.replaceExistingItem(25, new CustomItem(new MaterialData(Material.EMPTY_MAP), "§7Include Lore: §4\u2718", "", "§e> Click to toggle whether the Lore has to match")); + menu.replaceExistingItem(25, new CustomItem(new MaterialData(Material.EMPTY_MAP), "&7Include Lore: &4\u2718", "", "&e> Click to toggle whether the Lore has to match")); menu.addMenuClickHandler(25, new MenuClickHandler() { @Override @@ -117,7 +117,7 @@ public class AdvancedCargoOutputNode extends SlimefunItem { }); } - menu.replaceExistingItem(41, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjI1OTliZDk4NjY1OWI4Y2UyYzQ5ODg1MjVjOTRlMTlkZGQzOWZhZDA4YTM4Mjg0YTE5N2YxYjcwNjc1YWNjIn19fQ=="), "§bChannel", "", "§e> Click to decrease the Channel ID by 1")); + menu.replaceExistingItem(41, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjI1OTliZDk4NjY1OWI4Y2UyYzQ5ODg1MjVjOTRlMTlkZGQzOWZhZDA4YTM4Mjg0YTE5N2YxYjcwNjc1YWNjIn19fQ=="), "&bChannel", "", "&e> Click to decrease the Channel ID by 1")); menu.addMenuClickHandler(41, new MenuClickHandler() { @Override @@ -136,7 +136,7 @@ public class AdvancedCargoOutputNode extends SlimefunItem { int channel = ((!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "frequency") == null) ? 0: (Integer.parseInt(BlockStorage.getBlockInfo(b, "frequency")))); if (channel == 16) { - menu.replaceExistingItem(42, new CustomItem(SlimefunItems.CHEST_TERMINAL, "§bChannel ID: §3" + (channel + 1))); + menu.replaceExistingItem(42, new CustomItem(SlimefunItems.CHEST_TERMINAL, "&bChannel ID: &3" + (channel + 1))); menu.addMenuClickHandler(42, new MenuClickHandler() { @Override @@ -146,7 +146,7 @@ public class AdvancedCargoOutputNode extends SlimefunItem { }); } else { - menu.replaceExistingItem(42, new CustomItem(new MaterialData(Material.WOOL, (byte) channel), "§bChannel ID: §3" + (channel + 1))); + menu.replaceExistingItem(42, new CustomItem(new MaterialData(Material.WOOL, (byte) channel), "&bChannel ID: &3" + (channel + 1))); menu.addMenuClickHandler(42, new MenuClickHandler() { @Override @@ -156,7 +156,7 @@ public class AdvancedCargoOutputNode extends SlimefunItem { }); } - menu.replaceExistingItem(43, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzJmOTEwYzQ3ZGEwNDJlNGFhMjhhZjZjYzgxY2Y0OGFjNmNhZjM3ZGFiMzVmODhkYjk5M2FjY2I5ZGZlNTE2In19fQ=="), "§bChannel", "", "§e> Click to increase the Channel ID by 1")); + menu.replaceExistingItem(43, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzJmOTEwYzQ3ZGEwNDJlNGFhMjhhZjZjYzgxY2Y0OGFjNmNhZjM3ZGFiMzVmODhkYjk5M2FjY2I5ZGZlNTE2In19fQ=="), "&bChannel", "", "&e> Click to increase the Channel ID by 1")); menu.addMenuClickHandler(43, new MenuClickHandler() { @Override @@ -232,7 +232,7 @@ public class AdvancedCargoOutputNode extends SlimefunItem { }); } - preset.addItem(2, new CustomItem(new MaterialData(Material.PAPER), "§3Items", "", "§bPut in all Items you want to", "§bblacklist/whitelist"), + preset.addItem(2, new CustomItem(new MaterialData(Material.PAPER), "&3Items", "", "&bPut in all Items you want to", "&bblacklist/whitelist"), new MenuClickHandler() { @Override diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AnimalGrowthAccelerator.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AnimalGrowthAccelerator.java index dd6f9c566..77c6299d1 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AnimalGrowthAccelerator.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AnimalGrowthAccelerator.java @@ -37,7 +37,7 @@ public class AnimalGrowthAccelerator extends SlimefunItem { public AnimalGrowthAccelerator(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe) { super(category, item, name, recipeType, recipe); - new BlockMenuPreset(name, "§bGrowth Accelerator") { + new BlockMenuPreset(name, "&bGrowth Accelerator") { @Override public void init() { diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AutoBreeder.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AutoBreeder.java index 54d12f77d..38e445550 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AutoBreeder.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AutoBreeder.java @@ -37,7 +37,7 @@ public class AutoBreeder extends SlimefunItem { public AutoBreeder(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe) { super(category, item, name, recipeType, recipe); - new BlockMenuPreset(name, "§6Auto Breeder") { + new BlockMenuPreset(name, "&6Auto Breeder") { @Override public void init() { diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AutoDisenchanter.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AutoDisenchanter.java index 5a90b78fa..d39cfbe53 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AutoDisenchanter.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AutoDisenchanter.java @@ -37,7 +37,7 @@ public class AutoDisenchanter extends AContainer { @Override public String getInventoryTitle() { - return "§5Auto-Disenchanter"; + return "&5Auto-Disenchanter"; } @Override diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AutoEnchanter.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AutoEnchanter.java index 60f869044..ecc27e12b 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AutoEnchanter.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AutoEnchanter.java @@ -36,7 +36,7 @@ public class AutoEnchanter extends AContainer { @Override public String getInventoryTitle() { - return "§5Auto-Enchanter"; + return "&5Auto-Enchanter"; } @Override diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AutomatedCraftingChamber.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AutomatedCraftingChamber.java index 7b91c9eb2..a870abec4 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AutomatedCraftingChamber.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AutomatedCraftingChamber.java @@ -49,7 +49,7 @@ public abstract class AutomatedCraftingChamber extends SlimefunItem { public AutomatedCraftingChamber(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe) { super(category, item, name, recipeType, recipe); - new BlockMenuPreset(name, "§6Automated Crafting Chamber") { + new BlockMenuPreset(name, "&6Automated Crafting Chamber") { @Override public void init() { @@ -59,7 +59,7 @@ public abstract class AutomatedCraftingChamber extends SlimefunItem { @Override public void newInstance(final BlockMenu menu, final Block b) { if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "enabled") == null || BlockStorage.getBlockInfo(b, "enabled").equals("false")) { - menu.replaceExistingItem(6, new CustomItem(new MaterialData(Material.SULPHUR), "§7Enabled: §4\u2718", "", "§e> Click to enable this Machine")); + menu.replaceExistingItem(6, new CustomItem(new MaterialData(Material.SULPHUR), "&7Enabled: &4\u2718", "", "&e> Click to enable this Machine")); menu.addMenuClickHandler(6, new MenuClickHandler() { @Override @@ -71,7 +71,7 @@ public abstract class AutomatedCraftingChamber extends SlimefunItem { }); } else { - menu.replaceExistingItem(6, new CustomItem(new MaterialData(Material.REDSTONE), "§7Enabled: §2\u2714", "", "§e> Click to disable this Machine")); + menu.replaceExistingItem(6, new CustomItem(new MaterialData(Material.REDSTONE), "&7Enabled: &2\u2714", "", "&e> Click to disable this Machine")); menu.addMenuClickHandler(6, new MenuClickHandler() { @Override @@ -181,7 +181,7 @@ public abstract class AutomatedCraftingChamber extends SlimefunItem { }); } - preset.addItem(2, new CustomItem(new MaterialData(Material.WORKBENCH), "§eRecipe", "", "§bPut in the Recipe you want to craft", "§4Enhanced Crafting Table Recipes ONLY"), + preset.addItem(2, new CustomItem(new MaterialData(Material.WORKBENCH), "&eRecipe", "", "&bPut in the Recipe you want to craft", "&4Enhanced Crafting Table Recipes ONLY"), new MenuClickHandler() { @Override @@ -206,7 +206,7 @@ public abstract class AutomatedCraftingChamber extends SlimefunItem { int size = BlockStorage.getInventory(b).toInventory().getSize(); Inventory inv = Bukkit.createInventory(null, size); for (int i = 0; i < size; i++) { - inv.setItem(i, new CustomItem(Material.COMMAND, " §4ALL YOUR PLACEHOLDERS ARE BELONG TO US", 0)); + inv.setItem(i, new CustomItem(Material.COMMAND, " &4ALL YOUR PLACEHOLDERS ARE BELONG TO US", 0)); } for (int slot: getOutputSlots()) { inv.setItem(slot, BlockStorage.getInventory(b).getItemInSlot(slot)); diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoCraftingNode.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoCraftingNode.java index 2c601f3f4..afff95900 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoCraftingNode.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoCraftingNode.java @@ -29,7 +29,7 @@ public class CargoCraftingNode extends SlimefunItem { public CargoCraftingNode(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe) { super(category, item, name, recipeType, recipe); - new BlockMenuPreset(name, "§3Input Node") { + new BlockMenuPreset(name, "&3Input Node") { @Override public void init() { @@ -40,7 +40,7 @@ public class CargoCraftingNode extends SlimefunItem { @Override public void newInstance(final BlockMenu menu, final Block b) { try { - menu.replaceExistingItem(41, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjI1OTliZDk4NjY1OWI4Y2UyYzQ5ODg1MjVjOTRlMTlkZGQzOWZhZDA4YTM4Mjg0YTE5N2YxYjcwNjc1YWNjIn19fQ=="), "§bChannel", "", "§e> Click to decrease the Channel ID by 1")); + menu.replaceExistingItem(41, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjI1OTliZDk4NjY1OWI4Y2UyYzQ5ODg1MjVjOTRlMTlkZGQzOWZhZDA4YTM4Mjg0YTE5N2YxYjcwNjc1YWNjIn19fQ=="), "&bChannel", "", "&e> Click to decrease the Channel ID by 1")); menu.addMenuClickHandler(41, new MenuClickHandler() { @Override @@ -53,7 +53,7 @@ public class CargoCraftingNode extends SlimefunItem { } }); - menu.replaceExistingItem(42, new CustomItem(new MaterialData(Material.WOOL, (byte) ((!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "frequency") == null) ? 0: (Integer.parseInt(BlockStorage.getBlockInfo(b, "frequency"))))), "§bChannel ID: §3" + (((!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "frequency") == null) ? 0: (Integer.parseInt(BlockStorage.getBlockInfo(b, "frequency")))) + 1))); + menu.replaceExistingItem(42, new CustomItem(new MaterialData(Material.WOOL, (byte) ((!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "frequency") == null) ? 0: (Integer.parseInt(BlockStorage.getBlockInfo(b, "frequency"))))), "&bChannel ID: &3" + (((!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "frequency") == null) ? 0: (Integer.parseInt(BlockStorage.getBlockInfo(b, "frequency")))) + 1))); menu.addMenuClickHandler(42, new MenuClickHandler() { @Override @@ -62,7 +62,7 @@ public class CargoCraftingNode extends SlimefunItem { } }); - menu.replaceExistingItem(43, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzJmOTEwYzQ3ZGEwNDJlNGFhMjhhZjZjYzgxY2Y0OGFjNmNhZjM3ZGFiMzVmODhkYjk5M2FjY2I5ZGZlNTE2In19fQ=="), "§bChannel", "", "§e> Click to increase the Channel ID by 1")); + menu.replaceExistingItem(43, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzJmOTEwYzQ3ZGEwNDJlNGFhMjhhZjZjYzgxY2Y0OGFjNmNhZjM3ZGFiMzVmODhkYjk5M2FjY2I5ZGZlNTE2In19fQ=="), "&bChannel", "", "&e> Click to increase the Channel ID by 1")); menu.addMenuClickHandler(43, new MenuClickHandler() { @Override @@ -127,7 +127,7 @@ public class CargoCraftingNode extends SlimefunItem { }); } - preset.addItem(2, new CustomItem(new MaterialData(Material.WORKBENCH), "§eRecipe", "", "§bPut in the Recipe you want to craft"), + preset.addItem(2, new CustomItem(new MaterialData(Material.WORKBENCH), "&eRecipe", "", "&bPut in the Recipe you want to craft"), new MenuClickHandler() { @Override diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoInputNode.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoInputNode.java index e83737bdb..f02d6e031 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoInputNode.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoInputNode.java @@ -31,7 +31,7 @@ public class CargoInputNode extends SlimefunItem { public CargoInputNode(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe, ItemStack recipeOutput) { super(category, item, name, recipeType, recipe, recipeOutput); - new BlockMenuPreset(name, "§3Input Node") { + new BlockMenuPreset(name, "&3Input Node") { @Override public void init() { @@ -43,7 +43,7 @@ public class CargoInputNode extends SlimefunItem { public void newInstance(final BlockMenu menu, final Block b) { try { if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "filter-type") == null || BlockStorage.getBlockInfo(b, "filter-type").equals("whitelist")) { - menu.replaceExistingItem(15, new CustomItem(new MaterialData(Material.WOOL), "§7Type: §rWhitelist", "", "§e> Click to change it to Blacklist")); + menu.replaceExistingItem(15, new CustomItem(new MaterialData(Material.WOOL), "&7Type: &rWhitelist", "", "&e> Click to change it to Blacklist")); menu.addMenuClickHandler(15, new MenuClickHandler() { @Override @@ -55,7 +55,7 @@ public class CargoInputNode extends SlimefunItem { }); } else { - menu.replaceExistingItem(15, new CustomItem(new MaterialData(Material.WOOL, (byte) 15), "§7Type: §8Blacklist", "", "§e> Click to change it to Whitelist")); + menu.replaceExistingItem(15, new CustomItem(new MaterialData(Material.WOOL, (byte) 15), "&7Type: &8Blacklist", "", "&e> Click to change it to Whitelist")); menu.addMenuClickHandler(15, new MenuClickHandler() { @Override @@ -68,7 +68,7 @@ public class CargoInputNode extends SlimefunItem { } if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "filter-durability") == null || BlockStorage.getBlockInfo(b, "filter-durability").equals("false")) { - menu.replaceExistingItem(16, new CustomItem(new MaterialData(Material.STONE_SWORD, (byte) 20), "§7Include Sub-IDs/Durability: §4\u2718", "", "§e> Click to toggle whether the Durability has to match")); + menu.replaceExistingItem(16, new CustomItem(new MaterialData(Material.STONE_SWORD, (byte) 20), "&7Include Sub-IDs/Durability: &4\u2718", "", "&e> Click to toggle whether the Durability has to match")); menu.addMenuClickHandler(16, new MenuClickHandler() { @Override @@ -80,7 +80,7 @@ public class CargoInputNode extends SlimefunItem { }); } else { - menu.replaceExistingItem(16, new CustomItem(new MaterialData(Material.GOLD_SWORD, (byte) 20), "§7Include Sub-IDs/Durability: §2\u2714", "", "§e> Click to toggle whether the Durability has to match")); + menu.replaceExistingItem(16, new CustomItem(new MaterialData(Material.GOLD_SWORD, (byte) 20), "&7Include Sub-IDs/Durability: &2\u2714", "", "&e> Click to toggle whether the Durability has to match")); menu.addMenuClickHandler(16, new MenuClickHandler() { @Override @@ -93,7 +93,7 @@ public class CargoInputNode extends SlimefunItem { } if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "round-robin") == null || BlockStorage.getBlockInfo(b, "round-robin").equals("false")) { - menu.replaceExistingItem(24, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDc4ZjJiN2U1ZTc1NjM5ZWE3ZmI3OTZjMzVkMzY0YzRkZjI4YjQyNDNlNjZiNzYyNzdhYWRjZDYyNjEzMzcifX19"), "§7Round-Robin Mode: §4\u2718", "", "§e> Click to enable Round Robin Mode", "§e(Items will be equally distributed on the Channel)")); + menu.replaceExistingItem(24, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDc4ZjJiN2U1ZTc1NjM5ZWE3ZmI3OTZjMzVkMzY0YzRkZjI4YjQyNDNlNjZiNzYyNzdhYWRjZDYyNjEzMzcifX19"), "&7Round-Robin Mode: &4\u2718", "", "&e> Click to enable Round Robin Mode", "&e(Items will be equally distributed on the Channel)")); menu.addMenuClickHandler(24, new MenuClickHandler() { @Override @@ -105,7 +105,7 @@ public class CargoInputNode extends SlimefunItem { }); } else { - menu.replaceExistingItem(24, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDc4ZjJiN2U1ZTc1NjM5ZWE3ZmI3OTZjMzVkMzY0YzRkZjI4YjQyNDNlNjZiNzYyNzdhYWRjZDYyNjEzMzcifX19"), "§7Round-Robin Mode: §2\u2714", "", "§e> Click to disable Round Robin Mode", "§e(Items will be equally distributed on the Channel)")); + menu.replaceExistingItem(24, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDc4ZjJiN2U1ZTc1NjM5ZWE3ZmI3OTZjMzVkMzY0YzRkZjI4YjQyNDNlNjZiNzYyNzdhYWRjZDYyNjEzMzcifX19"), "&7Round-Robin Mode: &2\u2714", "", "&e> Click to disable Round Robin Mode", "&e(Items will be equally distributed on the Channel)")); menu.addMenuClickHandler(24, new MenuClickHandler() { @Override @@ -118,7 +118,7 @@ public class CargoInputNode extends SlimefunItem { } if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "filter-lore") == null || BlockStorage.getBlockInfo(b, "filter-lore").equals("true")) { - menu.replaceExistingItem(25, new CustomItem(new MaterialData(Material.EMPTY_MAP), "§7Include Lore: §2\u2714", "", "§e> Click to toggle whether the Lore has to match")); + menu.replaceExistingItem(25, new CustomItem(new MaterialData(Material.EMPTY_MAP), "&7Include Lore: &2\u2714", "", "&e> Click to toggle whether the Lore has to match")); menu.addMenuClickHandler(25, new MenuClickHandler() { @Override @@ -130,7 +130,7 @@ public class CargoInputNode extends SlimefunItem { }); } else { - menu.replaceExistingItem(25, new CustomItem(new MaterialData(Material.EMPTY_MAP), "§7Include Lore: §4\u2718", "", "§e> Click to toggle whether the Lore has to match")); + menu.replaceExistingItem(25, new CustomItem(new MaterialData(Material.EMPTY_MAP), "&7Include Lore: &4\u2718", "", "&e> Click to toggle whether the Lore has to match")); menu.addMenuClickHandler(25, new MenuClickHandler() { @Override @@ -142,7 +142,7 @@ public class CargoInputNode extends SlimefunItem { }); } - menu.replaceExistingItem(41, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjI1OTliZDk4NjY1OWI4Y2UyYzQ5ODg1MjVjOTRlMTlkZGQzOWZhZDA4YTM4Mjg0YTE5N2YxYjcwNjc1YWNjIn19fQ=="), "§bChannel", "", "§e> Click to decrease the Channel ID by 1")); + menu.replaceExistingItem(41, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjI1OTliZDk4NjY1OWI4Y2UyYzQ5ODg1MjVjOTRlMTlkZGQzOWZhZDA4YTM4Mjg0YTE5N2YxYjcwNjc1YWNjIn19fQ=="), "&bChannel", "", "&e> Click to decrease the Channel ID by 1")); menu.addMenuClickHandler(41, new MenuClickHandler() { @Override @@ -161,7 +161,7 @@ public class CargoInputNode extends SlimefunItem { int channel = ((!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "frequency") == null) ? 0: (Integer.parseInt(BlockStorage.getBlockInfo(b, "frequency")))); if (channel == 16) { - menu.replaceExistingItem(42, new CustomItem(SlimefunItems.CHEST_TERMINAL, "§bChannel ID: §3" + (channel + 1))); + menu.replaceExistingItem(42, new CustomItem(SlimefunItems.CHEST_TERMINAL, "&bChannel ID: &3" + (channel + 1))); menu.addMenuClickHandler(42, new MenuClickHandler() { @Override @@ -171,7 +171,7 @@ public class CargoInputNode extends SlimefunItem { }); } else { - menu.replaceExistingItem(42, new CustomItem(new MaterialData(Material.WOOL, (byte) channel), "§bChannel ID: §3" + (channel + 1))); + menu.replaceExistingItem(42, new CustomItem(new MaterialData(Material.WOOL, (byte) channel), "&bChannel ID: &3" + (channel + 1))); menu.addMenuClickHandler(42, new MenuClickHandler() { @Override @@ -181,7 +181,7 @@ public class CargoInputNode extends SlimefunItem { }); } - menu.replaceExistingItem(43, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzJmOTEwYzQ3ZGEwNDJlNGFhMjhhZjZjYzgxY2Y0OGFjNmNhZjM3ZGFiMzVmODhkYjk5M2FjY2I5ZGZlNTE2In19fQ=="), "§bChannel", "", "§e> Click to increase the Channel ID by 1")); + menu.replaceExistingItem(43, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzJmOTEwYzQ3ZGEwNDJlNGFhMjhhZjZjYzgxY2Y0OGFjNmNhZjM3ZGFiMzVmODhkYjk5M2FjY2I5ZGZlNTE2In19fQ=="), "&bChannel", "", "&e> Click to increase the Channel ID by 1")); menu.addMenuClickHandler(43, new MenuClickHandler() { @Override @@ -258,7 +258,7 @@ public class CargoInputNode extends SlimefunItem { }); } - preset.addItem(2, new CustomItem(new MaterialData(Material.PAPER), "§3Items", "", "§bPut in all Items you want to", "§bblacklist/whitelist"), + preset.addItem(2, new CustomItem(new MaterialData(Material.PAPER), "&3Items", "", "&bPut in all Items you want to", "&bblacklist/whitelist"), new MenuClickHandler() { @Override diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoOutputNode.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoOutputNode.java index b45701d68..486742457 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoOutputNode.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoOutputNode.java @@ -31,7 +31,7 @@ public class CargoOutputNode extends SlimefunItem { public CargoOutputNode(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe, ItemStack recipeOutput) { super(category, item, name, recipeType, recipe, recipeOutput); - new BlockMenuPreset(name, "§6Output Node") { + new BlockMenuPreset(name, "&6Output Node") { @Override public void init() { @@ -43,7 +43,7 @@ public class CargoOutputNode extends SlimefunItem { public void newInstance(final BlockMenu menu, final Block b) { try { - menu.replaceExistingItem(12, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjI1OTliZDk4NjY1OWI4Y2UyYzQ5ODg1MjVjOTRlMTlkZGQzOWZhZDA4YTM4Mjg0YTE5N2YxYjcwNjc1YWNjIn19fQ=="), "§bChannel", "", "§e> Click to decrease the Channel ID by 1")); + menu.replaceExistingItem(12, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjI1OTliZDk4NjY1OWI4Y2UyYzQ5ODg1MjVjOTRlMTlkZGQzOWZhZDA4YTM4Mjg0YTE5N2YxYjcwNjc1YWNjIn19fQ=="), "&bChannel", "", "&e> Click to decrease the Channel ID by 1")); menu.addMenuClickHandler(12, new MenuClickHandler() { @Override @@ -62,7 +62,7 @@ public class CargoOutputNode extends SlimefunItem { int channel = ((!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "frequency") == null) ? 0: (Integer.parseInt(BlockStorage.getBlockInfo(b, "frequency")))); if (channel == 16) { - menu.replaceExistingItem(13, new CustomItem(SlimefunItems.CHEST_TERMINAL, "§bChannel ID: §3" + (channel + 1))); + menu.replaceExistingItem(13, new CustomItem(SlimefunItems.CHEST_TERMINAL, "&bChannel ID: &3" + (channel + 1))); menu.addMenuClickHandler(13, new MenuClickHandler() { @Override @@ -72,7 +72,7 @@ public class CargoOutputNode extends SlimefunItem { }); } else { - menu.replaceExistingItem(13, new CustomItem(new MaterialData(Material.WOOL, (byte) channel), "§bChannel ID: §3" + (channel + 1))); + menu.replaceExistingItem(13, new CustomItem(new MaterialData(Material.WOOL, (byte) channel), "&bChannel ID: &3" + (channel + 1))); menu.addMenuClickHandler(13, new MenuClickHandler() { @Override @@ -82,7 +82,7 @@ public class CargoOutputNode extends SlimefunItem { }); } - menu.replaceExistingItem(14, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzJmOTEwYzQ3ZGEwNDJlNGFhMjhhZjZjYzgxY2Y0OGFjNmNhZjM3ZGFiMzVmODhkYjk5M2FjY2I5ZGZlNTE2In19fQ=="), "§bChannel", "", "§e> Click to increase the Channel ID by 1")); + menu.replaceExistingItem(14, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzJmOTEwYzQ3ZGEwNDJlNGFhMjhhZjZjYzgxY2Y0OGFjNmNhZjM3ZGFiMzVmODhkYjk5M2FjY2I5ZGZlNTE2In19fQ=="), "&bChannel", "", "&e> Click to increase the Channel ID by 1")); menu.addMenuClickHandler(14, new MenuClickHandler() { @Override diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/ChargingBench.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/ChargingBench.java index cd84f4266..fbaf78a23 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/ChargingBench.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/ChargingBench.java @@ -47,7 +47,7 @@ public class ChargingBench extends AContainer { @Override public String getInventoryTitle() { - return "§3Charging Bench"; + return "&3Charging Bench"; } @Override diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CropGrowthAccelerator.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CropGrowthAccelerator.java index e71c7650d..60d138860 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CropGrowthAccelerator.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CropGrowthAccelerator.java @@ -48,7 +48,7 @@ public abstract class CropGrowthAccelerator extends SlimefunItem { public CropGrowthAccelerator(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe) { super(category, item, name, recipeType, recipe); - new BlockMenuPreset(name, "§bGrowth Accelerator") { + new BlockMenuPreset(name, "&bGrowth Accelerator") { @Override public void init() { diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/ElectricDustWasher.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/ElectricDustWasher.java index 927ced7a5..fdc573884 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/ElectricDustWasher.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/ElectricDustWasher.java @@ -30,7 +30,7 @@ public abstract class ElectricDustWasher extends AContainer { @Override public String getInventoryTitle() { - return "§bElectric Dust Washer"; + return "&bElectric Dust Washer"; } @Override diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/ElectricGoldPan.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/ElectricGoldPan.java index 77d0962af..f7cd5a323 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/ElectricGoldPan.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/ElectricGoldPan.java @@ -30,7 +30,7 @@ public abstract class ElectricGoldPan extends AContainer { @Override public String getInventoryTitle() { - return "§6Electric Gold Pan"; + return "&6Electric Gold Pan"; } @Override diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/ElectricSmeltery.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/ElectricSmeltery.java index c569a8a19..7f254c54c 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/ElectricSmeltery.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/ElectricSmeltery.java @@ -181,7 +181,7 @@ public abstract class ElectricSmeltery extends AContainer { @Override public String getInventoryTitle() { - return "§cElectric Smeltery"; + return "&cElectric Smeltery"; } @Override diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/FluidPump.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/FluidPump.java index d1c4a79b3..2906e40cb 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/FluidPump.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/FluidPump.java @@ -133,7 +133,7 @@ public class FluidPump extends SlimefunItem{ } public String getInventoryTitle() { - return "§9Fluid Pump"; + return "&9Fluid Pump"; } protected void tick(Block b) { @@ -211,7 +211,7 @@ public class FluidPump extends SlimefunItem{ int size = BlockStorage.getInventory(b).toInventory().getSize(); Inventory inv = Bukkit.createInventory(null, size); for (int i = 0; i < size; i++) { - inv.setItem(i, new CustomItem(Material.COMMAND, " §4ALL YOUR PLACEHOLDERS ARE BELONG TO US", 0)); + inv.setItem(i, new CustomItem(Material.COMMAND, " &4ALL YOUR PLACEHOLDERS ARE BELONG TO US", 0)); } for (int slot: getOutputSlots()) { inv.setItem(slot, BlockStorage.getInventory(b).getItemInSlot(slot)); diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/HeatedPressureChamber.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/HeatedPressureChamber.java index 69a8d92fa..df8fd69fe 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/HeatedPressureChamber.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/HeatedPressureChamber.java @@ -95,7 +95,7 @@ public abstract class HeatedPressureChamber extends AContainer { } public String getInventoryTitle() { - return "§cHeated Pressure Chamber"; + return "&cHeated Pressure Chamber"; } public ItemStack getProgressBar() { diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/OilPump.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/OilPump.java index 0a7b4af71..69842ebe3 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/OilPump.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/OilPump.java @@ -72,7 +72,7 @@ public abstract class OilPump extends AContainer { @Override public String getInventoryTitle() { - return "§4Oil Pump"; + return "&4Oil Pump"; } @Override diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/ReactorAccessPort.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/ReactorAccessPort.java index 978b88e3d..3dd061220 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/ReactorAccessPort.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/ReactorAccessPort.java @@ -145,7 +145,7 @@ public class ReactorAccessPort extends SlimefunItem { }); } - preset.addItem(1, new CustomItem(SlimefunItems.URANIUM, "§7Fuel Slot", "", "§rThis Slot accepts radioactive Fuel such as:", "§2Uranium §ror §aNeptunium"), + preset.addItem(1, new CustomItem(SlimefunItems.URANIUM, "&7Fuel Slot", "", "&rThis Slot accepts radioactive Fuel such as:", "&2Uranium &ror &aNeptunium"), new MenuClickHandler() { @Override @@ -155,7 +155,7 @@ public class ReactorAccessPort extends SlimefunItem { }); - preset.addItem(22, new CustomItem(SlimefunItems.PLUTONIUM, "§7Byproduct Slot", "", "§rThis Slot contains the Reactor's Byproduct", "§rsuch as §aNeptunium §ror §7Plutonium"), + preset.addItem(22, new CustomItem(SlimefunItems.PLUTONIUM, "&7Byproduct Slot", "", "&rThis Slot contains the Reactor's Byproduct", "&rsuch as &aNeptunium &ror &7Plutonium"), new MenuClickHandler() { @Override @@ -165,7 +165,7 @@ public class ReactorAccessPort extends SlimefunItem { }); - preset.addItem(7, new CustomItem(SlimefunItems.REACTOR_COOLANT_CELL, "§bCoolant Slot", "", "§rThis Slot accepts Coolant Cells", "§4Without any Coolant Cells, your Reactor", "§4will explode"), + preset.addItem(7, new CustomItem(SlimefunItems.REACTOR_COOLANT_CELL, "&bCoolant Slot", "", "&rThis Slot accepts Coolant Cells", "&4Without any Coolant Cells, your Reactor", "&4will explode"), new MenuClickHandler() { @Override @@ -175,7 +175,7 @@ public class ReactorAccessPort extends SlimefunItem { }); - preset.addItem(7, new CustomItem(SlimefunItems.REACTOR_COOLANT_CELL, "§bCoolant Slot", "", "§rThis Slot accepts Coolant Cells", "§4Without any Coolant Cells, your Reactor", "§4will explode"), + preset.addItem(7, new CustomItem(SlimefunItems.REACTOR_COOLANT_CELL, "&bCoolant Slot", "", "&rThis Slot accepts Coolant Cells", "&4Without any Coolant Cells, your Reactor", "&4will explode"), new MenuClickHandler() { @Override @@ -187,7 +187,7 @@ public class ReactorAccessPort extends SlimefunItem { } public String getInventoryTitle() { - return "§2Reactor Access Port"; + return "&2Reactor Access Port"; } public int[] getInputSlots() { @@ -210,7 +210,7 @@ public class ReactorAccessPort extends SlimefunItem { int size = BlockStorage.getInventory(l).toInventory().getSize(); Inventory inv = Bukkit.createInventory(null, size); for (int i = 0; i < size; i++) { - inv.setItem(i, new CustomItem(Material.COMMAND, " §4ALL YOUR PLACEHOLDERS ARE BELONG TO US", 0)); + inv.setItem(i, new CustomItem(Material.COMMAND, " &4ALL YOUR PLACEHOLDERS ARE BELONG TO US", 0)); } for (int slot: getOutputSlots()) { inv.setItem(slot, BlockStorage.getInventory(l).getItemInSlot(slot)); diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/Refinery.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/Refinery.java index 155a5a3f7..e8827ab99 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/Refinery.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/Refinery.java @@ -29,7 +29,7 @@ public abstract class Refinery extends AContainer { @Override public String getInventoryTitle() { - return "§cRefinery"; + return "&cRefinery"; } @Override diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/TrashCan.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/TrashCan.java index 9b67f0010..9e780df06 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/TrashCan.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/TrashCan.java @@ -66,7 +66,7 @@ public class TrashCan extends SlimefunItem { } public String getInventoryTitle() { - return "§4Trash Can"; + return "&4Trash Can"; } public int[] getInputSlots() { diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/WitherAssembler.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/WitherAssembler.java index 6e0401b41..bebac6219 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/WitherAssembler.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/WitherAssembler.java @@ -53,7 +53,7 @@ public class WitherAssembler extends SlimefunItem { public void newInstance(final BlockMenu menu, final Block b) { try { if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "enabled") == null || BlockStorage.getBlockInfo(b, "enabled").equals("false")) { - menu.replaceExistingItem(22, new CustomItem(new MaterialData(Material.SULPHUR), "§7Enabled: §4\u2718", "", "§e> Click to enable this Machine")); + menu.replaceExistingItem(22, new CustomItem(new MaterialData(Material.SULPHUR), "&7Enabled: &4\u2718", "", "&e> Click to enable this Machine")); menu.addMenuClickHandler(22, new MenuClickHandler() { @Override @@ -65,7 +65,7 @@ public class WitherAssembler extends SlimefunItem { }); } else { - menu.replaceExistingItem(22, new CustomItem(new MaterialData(Material.REDSTONE), "§7Enabled: §2\u2714", "", "§e> Click to disable this Machine")); + menu.replaceExistingItem(22, new CustomItem(new MaterialData(Material.REDSTONE), "&7Enabled: &2\u2714", "", "&e> Click to disable this Machine")); menu.addMenuClickHandler(22, new MenuClickHandler() { @Override @@ -79,7 +79,7 @@ public class WitherAssembler extends SlimefunItem { double offset = (!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b, "offset") == null) ? 3.0F: Double.valueOf(BlockStorage.getBlockInfo(b, "offset")); - menu.replaceExistingItem(31, new CustomItem(new MaterialData(Material.PISTON_BASE), "§7Offset: §3" + offset + " Block(s)", "", "§rLeft Click: §7+0.1", "§rRight Click: §7-0.1")); + menu.replaceExistingItem(31, new CustomItem(new MaterialData(Material.PISTON_BASE), "&7Offset: &3" + offset + " Block(s)", "", "&rLeft Click: &7+0.1", "&rRight Click: &7-0.1")); menu.addMenuClickHandler(31, new MenuClickHandler() { @Override @@ -179,7 +179,7 @@ public class WitherAssembler extends SlimefunItem { }); } - preset.addItem(1, new CustomItem(new MaterialData(Material.SKULL_ITEM, (byte) 1), "§7Wither Skull Slot", "", "§rThis Slot accepts Wither Skeleton Skulls"), + preset.addItem(1, new CustomItem(new MaterialData(Material.SKULL_ITEM, (byte) 1), "&7Wither Skull Slot", "", "&rThis Slot accepts Wither Skeleton Skulls"), new MenuClickHandler() { @Override @@ -189,7 +189,7 @@ public class WitherAssembler extends SlimefunItem { }); - preset.addItem(7, new CustomItem(new MaterialData(Material.SOUL_SAND), "§7Soul Sand Slot", "", "§rThis Slot accepts Soul Sand"), + preset.addItem(7, new CustomItem(new MaterialData(Material.SOUL_SAND), "&7Soul Sand Slot", "", "&rThis Slot accepts Soul Sand"), new MenuClickHandler() { @Override @@ -199,7 +199,7 @@ public class WitherAssembler extends SlimefunItem { }); - preset.addItem(13, new CustomItem(new MaterialData(Material.WATCH), "§7Cooldown: §b30 Seconds", "", "§rThis Machine takes up to half a Minute to operate", "§rso give it some Time!"), + preset.addItem(13, new CustomItem(new MaterialData(Material.WATCH), "&7Cooldown: &b30 Seconds", "", "&rThis Machine takes up to half a Minute to operate", "&rso give it some Time!"), new MenuClickHandler() { @Override @@ -211,7 +211,7 @@ public class WitherAssembler extends SlimefunItem { } public String getInventoryTitle() { - return "§5Wither Assembler"; + return "&5Wither Assembler"; } public int[] getInputSlots() { diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/XPCollector.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/XPCollector.java index 33f64768e..eb62edf08 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/XPCollector.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/XPCollector.java @@ -36,7 +36,7 @@ public class XPCollector extends SlimefunItem { public XPCollector(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe) { super(category, item, name, recipeType, recipe); - new BlockMenuPreset(name, "§aEXP Collector") { + new BlockMenuPreset(name, "&aEXP Collector") { @Override public void init() { @@ -81,7 +81,7 @@ public class XPCollector extends SlimefunItem { int size = BlockStorage.getInventory(b).toInventory().getSize(); Inventory inv = Bukkit.createInventory(null, size); for (int i = 0; i < size; i++) { - inv.setItem(i, new CustomItem(Material.COMMAND, " §4ALL YOUR PLACEHOLDERS ARE BELONG TO US", 0)); + inv.setItem(i, new CustomItem(Material.COMMAND, " &4ALL YOUR PLACEHOLDERS ARE BELONG TO US", 0)); } for (int slot: getOutputSlots()) { inv.setItem(slot, BlockStorage.getInventory(b).getItemInSlot(slot)); diff --git a/src/me/mrCookieSlime/Slimefun/Setup/Messages.java b/src/me/mrCookieSlime/Slimefun/Setup/Messages.java index 9ea46145f..344c146e5 100644 --- a/src/me/mrCookieSlime/Slimefun/Setup/Messages.java +++ b/src/me/mrCookieSlime/Slimefun/Setup/Messages.java @@ -78,17 +78,17 @@ public class Messages { local.setDefault("robot.stopped", "&7Your Robot has paused its Script"); local.setDefault("inventory.no-access", "&4You are not permitted to access this Block"); - local.setDefault("machines.ANCIENT_ALTAR.not-enough-pedestals", "&4The Altar is not surrounded by the needed Amount of Pedestals §c(%pedestals% / 8)"); - local.setDefault("machines.ANCIENT_ALTAR.unknown-catalyst", "&4Unknown Catalyst! §cUse the correct Recipe instead!"); - local.setDefault("machines.ANCIENT_ALTAR.unknown-recipe", "&4Unknown Recipe! §cUse the correct Recipe instead!"); + local.setDefault("machines.ANCIENT_ALTAR.not-enough-pedestals", "&4The Altar is not surrounded by the needed Amount of Pedestals &c(%pedestals% / 8)"); + local.setDefault("machines.ANCIENT_ALTAR.unknown-catalyst", "&4Unknown Catalyst! &cUse the correct Recipe instead!"); + local.setDefault("machines.ANCIENT_ALTAR.unknown-recipe", "&4Unknown Recipe! &cUse the correct Recipe instead!"); local.setDefault("machines.HOLOGRAM_PROJECTOR.enter-text", "&7Please enter your desired Hologram Text in your Chat. &r(Color Codes are supported!)"); local.setDefault("machines.ELEVATOR.no-destinations", "&4No Destinations found"); local.setDefault("android.scripts.already-uploaded", "&4This Script has already been uploaded."); local.setDefault("android.scripts.enter-name", "", "&ePlease type in a Name for your Script", ""); local.setDefault("android.scripts.uploaded", "&bUploading...", "&aSuccessfully uploaded your Script!"); - local.setDefault("android.scripts.rating.own", "§4You cannot rate your own Script!"); - local.setDefault("android.scripts.rating.already", "§4You have already left a Rating for this Script!"); + local.setDefault("android.scripts.rating.own", "&4You cannot rate your own Script!"); + local.setDefault("android.scripts.rating.already", "&4You have already left a Rating for this Script!"); local.save(); } diff --git a/src/me/mrCookieSlime/Slimefun/Setup/SlimefunManager.java b/src/me/mrCookieSlime/Slimefun/Setup/SlimefunManager.java index 9dd7f1503..6a5b408e8 100644 --- a/src/me/mrCookieSlime/Slimefun/Setup/SlimefunManager.java +++ b/src/me/mrCookieSlime/Slimefun/Setup/SlimefunManager.java @@ -114,10 +114,10 @@ public class SlimefunManager { private static boolean equalsLore(List lore, List lore2) { String string1 = "", string2 = ""; for (String string: lore) { - if (!string.startsWith("§e§e§7")) string1 = string1 + "-NEW LINE-" + string; + if (!string.startsWith("&e&e&7")) string1 = string1 + "-NEW LINE-" + string; } for (String string: lore2) { - if (!string.startsWith("§e§e§7")) string2 = string2 + "-NEW LINE-" + string; + if (!string.startsWith("&e&e&7")) string2 = string2 + "-NEW LINE-" + string; } return string1.equals(string2); } diff --git a/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java b/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java index 3a5b93dad..4a044278d 100644 --- a/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java +++ b/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java @@ -2990,7 +2990,7 @@ public class SlimefunSetup { new ItemStack[] {null, new ItemStack(Material.ENCHANTMENT_TABLE), null, SlimefunItems.MAGIC_LUMP_3, SlimefunItems.GOLD_8K, SlimefunItems.MAGIC_LUMP_3, new ItemStack(Material.OBSIDIAN), SlimefunItems.GOLD_8K, new ItemStack(Material.OBSIDIAN)}) .register(true); - new SlimefunItem(Categories.BIRTHDAY, new CustomItem(new MaterialData(Material.CAKE), "§bBirthday Cake"), "BIRTHDAY_CAKE", RecipeType.ENHANCED_CRAFTING_TABLE, + new SlimefunItem(Categories.BIRTHDAY, new CustomItem(new MaterialData(Material.CAKE), "&bBirthday Cake"), "BIRTHDAY_CAKE", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, new ItemStack(Material.TORCH), null, new ItemStack(Material.SUGAR), new ItemStack(Material.CAKE), new ItemStack(Material.SUGAR), null, null, null}) .register(true); @@ -3150,7 +3150,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§bElectric Furnace"; + return "&bElectric Furnace"; } @Override @@ -3175,7 +3175,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§bElectric Furnace"; + return "&bElectric Furnace"; } @Override @@ -3200,7 +3200,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§bElectric Furnace"; + return "&bElectric Furnace"; } @Override @@ -3309,7 +3309,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cElectric Ingot Factory"; + return "&cElectric Ingot Factory"; } @Override @@ -3334,7 +3334,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cElectric Ingot Factory"; + return "&cElectric Ingot Factory"; } @Override @@ -3359,7 +3359,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cElectric Ingot Factory"; + return "&cElectric Ingot Factory"; } @Override @@ -3388,7 +3388,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§bElectric Ore Grinder"; + return "&bElectric Ore Grinder"; } @Override @@ -3422,7 +3422,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§bElectric Ore Grinder"; + return "&bElectric Ore Grinder"; } @Override @@ -3559,7 +3559,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cCoal Generator"; + return "&cCoal Generator"; } @Override @@ -3621,7 +3621,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§2Bio Reactor"; + return "&2Bio Reactor"; } @Override @@ -3679,8 +3679,8 @@ public class SlimefunSetup { if (e.getClickedBlock() != null && ChargableBlock.isChargable(e.getClickedBlock())) { e.setCancelled(true); p.sendMessage(""); - p.sendMessage("§bStored Energy: §3" + DoubleHandler.getFancyDouble(ChargableBlock.getCharge(e.getClickedBlock())) + " J"); - p.sendMessage("§bCapacity: §3" + DoubleHandler.getFancyDouble(ChargableBlock.getMaxCharge(e.getClickedBlock())) + " J"); + p.sendMessage("&bStored Energy: &3" + DoubleHandler.getFancyDouble(ChargableBlock.getCharge(e.getClickedBlock())) + " J"); + p.sendMessage("&bCapacity: &3" + DoubleHandler.getFancyDouble(ChargableBlock.getMaxCharge(e.getClickedBlock())) + " J"); p.sendMessage(""); } return true; @@ -4361,7 +4361,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§4Lava Generator"; + return "&4Lava Generator"; } @Override @@ -4387,7 +4387,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cCombustion Reactor"; + return "&cCombustion Reactor"; } @Override @@ -4569,7 +4569,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cFood Fabricator"; + return "&cFood Fabricator"; } @Override @@ -4594,7 +4594,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cFood Fabricator"; + return "&cFood Fabricator"; } @Override @@ -4659,7 +4659,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cFood Composter"; + return "&cFood Composter"; } @Override @@ -4684,7 +4684,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cFood Composter"; + return "&cFood Composter"; } @Override @@ -4779,7 +4779,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§bFreezer"; + return "&bFreezer"; } @Override @@ -4804,7 +4804,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§bFreezer"; + return "&bFreezer"; } @Override @@ -4845,7 +4845,7 @@ public class SlimefunSetup { 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}){ @Override public String getInventoryTitle() { - return "§2Nuclear Reactor"; + return "&2Nuclear Reactor"; } @Override @@ -4885,7 +4885,7 @@ public class SlimefunSetup { new ItemStack[]{SlimefunItems.BOOSTED_URANIUM, SlimefunItems.CARBONADO_EDGED_CAPACITOR, SlimefunItems.BOOSTED_URANIUM, SlimefunItems.REINFORCED_PLATE, new ItemStack(Material.NETHER_STAR), SlimefunItems.REINFORCED_PLATE, SlimefunItems.CORINTHIAN_BRONZE_INGOT, SlimefunItems.REINFORCED_PLATE, SlimefunItems.CORINTHIAN_BRONZE_INGOT}){ @Override public String getInventoryTitle() { - return "§fNether Star Reactor"; + return "&fNether Star Reactor"; } @Override @@ -4914,7 +4914,7 @@ public class SlimefunSetup { @Override public boolean needsCooling() { - return true; + return false; } @Override @@ -4955,11 +4955,11 @@ public class SlimefunSetup { if (BlockStorage.getBlockInfo(e.getClickedBlock(), "visualizer") == null) { BlockStorage.addBlockInfo(e.getClickedBlock(), "visualizer", "disabled"); - p.sendMessage("§cCargo Net Visualizer: " + "§4\u2718"); + p.sendMessage("&cCargo Net Visualizer: " + "&4\u2718"); } else { BlockStorage.addBlockInfo(e.getClickedBlock(), "visualizer", null); - p.sendMessage("§cCargo Net Visualizer: " + "§2\u2714"); + p.sendMessage("&cCargo Net Visualizer: " + "&2\u2714"); } return true; } @@ -4990,10 +4990,10 @@ public class SlimefunSetup { if (!item.getName().equals("CARGO_NODE")) return false; if (CargoNet.isConnected(e.getClickedBlock())) { - p.sendMessage("§7Connected: " + "§2\u2714"); + p.sendMessage("&7Connected: " + "&2\u2714"); } else { - p.sendMessage("§7Connected: " + "§4\u2718"); + p.sendMessage("&7Connected: " + "&4\u2718"); } return true; } @@ -5042,7 +5042,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cCarbon Press"; + return "&cCarbon Press"; } @Override @@ -5067,7 +5067,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cCarbon Press"; + return "&cCarbon Press"; } @Override @@ -5092,7 +5092,7 @@ public class SlimefunSetup { @Override public String getInventoryTitle() { - return "§cCarbon Press"; + return "&cCarbon Press"; } @Override diff --git a/src/me/mrCookieSlime/Slimefun/SlimefunGuide.java b/src/me/mrCookieSlime/Slimefun/SlimefunGuide.java index 29f65388a..c03fb383e 100644 --- a/src/me/mrCookieSlime/Slimefun/SlimefunGuide.java +++ b/src/me/mrCookieSlime/Slimefun/SlimefunGuide.java @@ -63,15 +63,15 @@ public class SlimefunGuide { } public static ItemStack getItem(boolean book) { - return new CustomItem(new MaterialData(Material.ENCHANTED_BOOK), "&eSlimefun Guide &7(Right Click)", (book ? "": "§2"), "&rThis is your basic Guide for Slimefun", "&rYou can see all Items added by this Plugin", "&ror its Addons including their Recipes", "&ra bit of information and more"); + return new CustomItem(new MaterialData(Material.ENCHANTED_BOOK), "&eSlimefun Guide &7(Right Click)", (book ? "": "&2"), "&rThis is your basic Guide for Slimefun", "&rYou can see all Items added by this Plugin", "&ror its Addons including their Recipes", "&ra bit of information and more"); } public static void openSettings(Player p, ItemStack guide) { TellRawMessage page = new TellRawMessage(); - page.addText("§a§l- Guide Settings -\n\n"); + page.addText("&a&l- Guide Settings -\n\n"); if (SlimefunManager.isItemSimiliar(guide, getItem(true), true)) { - page.addText("§7Design: §3Book\n"); - page.addHoverEvent(HoverAction.SHOW_TEXT, "§e> Click to change your Guide Design to §bInventory"); + page.addText("&7Design: &3Book\n"); + page.addHoverEvent(HoverAction.SHOW_TEXT, "&e> Click to change your Guide Design to &bInventory"); page.addClickEvent(new PlayerRunnable(3) { @Override @@ -82,8 +82,8 @@ public class SlimefunGuide { }); } else if (SlimefunManager.isItemSimiliar(guide, getItem(false), true)) { - page.addText("§7Design: §3Inventory\n"); - page.addHoverEvent(HoverAction.SHOW_TEXT, "§e> Click to change your Guide Design to §bBook"); + page.addText("&7Design: &3Inventory\n"); + page.addHoverEvent(HoverAction.SHOW_TEXT, "&e> Click to change your Guide Design to &bBook"); page.addClickEvent(new PlayerRunnable(3) { @Override @@ -163,25 +163,25 @@ public class SlimefunGuide { actions.add(null); } } - texts.add("§8\u21E8 §6Tier " + tier); + texts.add("&8\u21E8 &6Tier " + tier); tooltips.add(null); actions.add(null); } if (category instanceof LockedCategory && !((LockedCategory) category).hasUnlocked(p)) { - StringBuilder parents = new StringBuilder("§4§lLOCKED\n\n§7In order to unlock this Category,\n§7you need to unlock all Items from\n§7the following Categories first:\n"); + StringBuilder parents = new StringBuilder("&4&lLOCKED\n\n&7In order to unlock this Category,\n&7you need to unlock all Items from\n&7the following Categories first:\n"); for (Category parent: ((LockedCategory) category).getParents()) { - parents.append("\n§c" + StringUtils.formatItemName(parent.getItem(), false)); + parents.append("\n&c" + StringUtils.formatItemName(parent.getItem(), false)); } - texts.add(shorten("§c" , StringUtils.formatItemName(category.getItem(), false))); + texts.add(shorten("&c" , StringUtils.formatItemName(category.getItem(), false))); tooltips.add(parents.toString()); actions.add(null); } else if (category instanceof SeasonCategory) { if (((SeasonCategory) category).isUnlocked()) { - texts.add(shorten("§a", StringUtils.formatItemName(category.getItem(), false))); - tooltips.add("§eClick to open the following Category:\n" + StringUtils.formatItemName(category.getItem(), false)); + texts.add(shorten("&a", StringUtils.formatItemName(category.getItem(), false))); + tooltips.add("&eClick to open the following Category:\n" + StringUtils.formatItemName(category.getItem(), false)); actions.add(new PlayerRunnable(1) { @Override @@ -198,8 +198,8 @@ public class SlimefunGuide { } } else { - texts.add(shorten("§a", StringUtils.formatItemName(category.getItem(), false))); - tooltips.add("§eClick to open the following Category:\n" + StringUtils.formatItemName(category.getItem(), false)); + texts.add(shorten("&a", StringUtils.formatItemName(category.getItem(), false))); + tooltips.add("&eClick to open the following Category:\n" + StringUtils.formatItemName(category.getItem(), false)); actions.add(new PlayerRunnable(1) { @Override @@ -232,7 +232,7 @@ public class SlimefunGuide { for (int i = 0; i < texts.size(); i = i + 10) { TellRawMessage page = new TellRawMessage(); - page.addText("§b§l- Slimefun Guide -\n\n"); + page.addText("&b&l- Slimefun Guide -\n\n"); for (int j = i; j < texts.size() && j < i + 10; j++) { page.addText(texts.get(j) + "\n"); if (tooltips.get(j) != null) page.addHoverEvent(HoverAction.SHOW_TEXT, tooltips.get(j)); @@ -240,15 +240,15 @@ public class SlimefunGuide { } // page.addText("\n"); // if (i > 0) { -// page.addText("§c<- Prev"); -// page.addHoverEvent(HoverAction.SHOW_TEXT, "§eGo to Page " + (i)); +// page.addText("&c<- Prev"); +// page.addHoverEvent(HoverAction.SHOW_TEXT, "&eGo to Page " + (i)); // page.addClickEvent(me.mrCookieSlime.CSCoreLibPlugin.general.Chat.TellRawMessage.ClickAction.CHANGE_PAGE, String.valueOf(i)); // page.addText(" "); // } // if (texts.size() > i * 10) { // page.addText(" "); -// page.addText("§cNext ->"); -// page.addHoverEvent(HoverAction.SHOW_TEXT, "§eGo to Page " + (i + 2)); +// page.addText("&cNext ->"); +// page.addHoverEvent(HoverAction.SHOW_TEXT, "&eGo to Page " + (i + 2)); // page.addClickEvent(me.mrCookieSlime.CSCoreLibPlugin.general.Chat.TellRawMessage.ClickAction.CHANGE_PAGE, String.valueOf(i + 2)); // } pages.add(page); @@ -435,9 +435,9 @@ public class SlimefunGuide { if (Slimefun.hasPermission(p, item, false)) { if (Slimefun.isEnabled(p, item, false)) { if (survival && !Slimefun.hasUnlocked(p, item, false) && item.getResearch() != null) { - texts.add(shorten("§7", StringUtils.formatItemName(item.getItem(), false))); + texts.add(shorten("&7", StringUtils.formatItemName(item.getItem(), false))); final int cost = SlimefunStartup.getResearchCfg().getInt(item.getResearch().getID() + ".cost"); - tooltips.add(StringUtils.formatItemName(item.getItem(), false) + "\n§c§lLOCKED\n\n§7Cost: " + (p.getLevel() >= cost ? "§b": "§4") + cost + " Levels\n\n§a> Click to unlock"); + tooltips.add(StringUtils.formatItemName(item.getItem(), false) + "\n&c&lLOCKED\n\n&7Cost: " + (p.getLevel() >= cost ? "&b": "&4") + cost + " Levels\n\n&a> Click to unlock"); actions.add(new PlayerRunnable(2) { @Override @@ -481,7 +481,7 @@ public class SlimefunGuide { }); } else { - texts.add(shorten("§a", StringUtils.formatItemName(item.getItem(), false))); + texts.add(shorten("&a", StringUtils.formatItemName(item.getItem(), false))); StringBuilder tooltip = new StringBuilder(); @@ -493,7 +493,7 @@ public class SlimefunGuide { } } - tooltip.append("\n\n§e§oClick for more Info"); + tooltip.append("\n\n&e&oClick for more Info"); tooltips.add(tooltip.toString()); actions.add(new PlayerRunnable(2) { @@ -507,23 +507,23 @@ public class SlimefunGuide { } } else { - texts.add(shorten("§4", StringUtils.formatItemName(item.getItem(), false))); - tooltips.add("§cNo Permission!"); + texts.add(shorten("&4", StringUtils.formatItemName(item.getItem(), false))); + tooltips.add("&cNo Permission!"); actions.add(null); } } for (int i = 0; i < texts.size(); i = i + 10) { TellRawMessage page = new TellRawMessage(); - page.addText("§b§l- Slimefun Guide -\n\n"); + page.addText("&b&l- Slimefun Guide -\n\n"); for (int j = i; j < texts.size() && j < i + 10; j++) { page.addText(texts.get(j) + "\n"); if (tooltips.get(j) != null) page.addHoverEvent(HoverAction.SHOW_TEXT, tooltips.get(j)); if (actions.get(j) != null) page.addClickEvent(actions.get(j)); } page.addText("\n"); - page.addText("§6\u21E6 §lBack"); - page.addHoverEvent(HoverAction.SHOW_TEXT, "§eClick to go back to the Category Overview"); + page.addText("&6\u21E6 &lBack"); + page.addHoverEvent(HoverAction.SHOW_TEXT, "&eClick to go back to the Category Overview"); page.addClickEvent(new PlayerRunnable(2) { @Override @@ -766,7 +766,7 @@ public class SlimefunGuide { Recipe r = recipes.get(page); if (recipes.size() > page + 1) { - menu.addItem(1, new CustomItem(new MaterialData(Material.ENCHANTED_BOOK), "&7Next \u21E8", "", "§e§l! §rThere are multiple recipes for this Item")); + menu.addItem(1, new CustomItem(new MaterialData(Material.ENCHANTED_BOOK), "&7Next \u21E8", "", "&e&l! &rThere are multiple recipes for this Item")); menu.addMenuClickHandler(1, new MenuClickHandler() { @Override @@ -826,7 +826,7 @@ public class SlimefunGuide { if (addToHistory) addToHistory(p, sfItem != null ? sfItem.getURID(): URID.nextURID(item, true)); if (history.containsKey(p.getUniqueId()) && history.get(p.getUniqueId()).size() > 1) { - menu.addItem(0, new CustomItem(new MaterialData(Material.ENCHANTED_BOOK), "&7\u21E6 Back", "", "§rLeft Click: §7Go back to previous Page", "§rShift + left Click: §7Go back to Main Menu")); + menu.addItem(0, new CustomItem(new MaterialData(Material.ENCHANTED_BOOK), "&7\u21E6 Back", "", "&rLeft Click: &7Go back to previous Page", "&rShift + left Click: &7Go back to Main Menu")); menu.addMenuClickHandler(0, new MenuClickHandler() { @Override @@ -844,7 +844,7 @@ public class SlimefunGuide { }); } else { - menu.addItem(0, new CustomItem(new MaterialData(Material.ENCHANTED_BOOK), "&7\u21E6 Back", "", "§rLeft Click: §7Go back to Main Menu")); + menu.addItem(0, new CustomItem(new MaterialData(Material.ENCHANTED_BOOK), "&7\u21E6 Back", "", "&rLeft Click: &7Go back to Main Menu")); menu.addMenuClickHandler(0, new MenuClickHandler() { @Override @@ -888,14 +888,14 @@ public class SlimefunGuide { if (sfItem != null) { if (Slimefun.getItemConfig().contains(sfItem.getName() + ".wiki")) { try { - menu.addItem(8, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzY2OTJmOTljYzZkNzgyNDIzMDQxMTA1NTM1ODk0ODQyOThiMmU0YTAyMzNiNzY3NTNmODg4ZTIwN2VmNSJ9fX0="), "§rView this Item in our Wiki §7(Slimefun Wiki)", "", "§7\u21E8 Click to open")); + menu.addItem(8, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzY2OTJmOTljYzZkNzgyNDIzMDQxMTA1NTM1ODk0ODQyOThiMmU0YTAyMzNiNzY3NTNmODg4ZTIwN2VmNSJ9fX0="), "&rView this Item in our Wiki &7(Slimefun Wiki)", "", "&7\u21E8 Click to open")); menu.addMenuClickHandler(8, new MenuClickHandler() { @Override public boolean onClick(Player p, int slot, ItemStack item, ClickAction action) { p.closeInventory(); p.sendMessage(""); - p.sendMessage("§7§o" + Slimefun.getItemConfig().getString(sfItem.getName() + ".wiki")); + p.sendMessage("&7&o" + Slimefun.getItemConfig().getString(sfItem.getName() + ".wiki")); p.sendMessage(""); return false; } @@ -906,14 +906,14 @@ public class SlimefunGuide { } if (Slimefun.getItemConfig().contains(sfItem.getName() + ".youtube")) { try { - menu.addItem(7, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzNTNmZDBmODYzMTQzNTM4NzY1ODYwNzViOWJkZjBjNDg0YWFiMDMzMWI4NzJkZjExYmQ1NjRmY2IwMjllZCJ9fX0="), "§rDemonstration Video §7(Youtube)", "", "§7\u21E8 Click to watch")); + menu.addItem(7, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzNTNmZDBmODYzMTQzNTM4NzY1ODYwNzViOWJkZjBjNDg0YWFiMDMzMWI4NzJkZjExYmQ1NjRmY2IwMjllZCJ9fX0="), "&rDemonstration Video &7(Youtube)", "", "&7\u21E8 Click to watch")); menu.addMenuClickHandler(7, new MenuClickHandler() { @Override public boolean onClick(Player p, int slot, ItemStack item, ClickAction action) { p.closeInventory(); p.sendMessage(""); - p.sendMessage("§7§o" + Slimefun.getItemConfig().getString(sfItem.getName() + ".youtube")); + p.sendMessage("&7&o" + Slimefun.getItemConfig().getString(sfItem.getName() + ".youtube")); p.sendMessage(""); return false; } @@ -1048,9 +1048,9 @@ public class SlimefunGuide { ItemStack fItem = fuel.getInput().clone(); ItemMeta im = fItem.getItemMeta(); List lore = new ArrayList(); - lore.add("§8\u21E8 §7Lasts " + getTimeLeft(fuel.getTicks() / 2)); - lore.add("§8\u21E8 §e\u26A1 §7" + (((AGenerator) sfItem).getEnergyProduction() * 2) + " J/s"); - lore.add("§8\u21E8 §e\u26A1 §7" + DoubleHandler.getFancyDouble(fuel.getTicks() * ((AGenerator) sfItem).getEnergyProduction()) + " J in total"); + lore.add("&8\u21E8 &7Lasts " + getTimeLeft(fuel.getTicks() / 2)); + lore.add("&8\u21E8 &e\u26A1 &7" + (((AGenerator) sfItem).getEnergyProduction() * 2) + " J/s"); + lore.add("&8\u21E8 &e\u26A1 &7" + DoubleHandler.getFancyDouble(fuel.getTicks() * ((AGenerator) sfItem).getEnergyProduction()) + " J in total"); im.setLore(lore); fItem.setItemMeta(im); menu.addItem(slot, fItem); @@ -1071,9 +1071,9 @@ public class SlimefunGuide { ItemStack fItem = fuel.getInput().clone(); ItemMeta im = fItem.getItemMeta(); List lore = new ArrayList(); - lore.add("§8\u21E8 §7Lasts " + getTimeLeft(fuel.getTicks() / 2)); - lore.add("§8\u21E8 §e\u26A1 §7" + (((AReactor) sfItem).getEnergyProduction() * 2) + " J/s"); - lore.add("§8\u21E8 §e\u26A1 §7" + DoubleHandler.getFancyDouble(fuel.getTicks() * ((AReactor) sfItem).getEnergyProduction()) + " J in total"); + lore.add("&8\u21E8 &7Lasts " + getTimeLeft(fuel.getTicks() / 2)); + lore.add("&8\u21E8 &e\u26A1 &7" + (((AReactor) sfItem).getEnergyProduction() * 2) + " J/s"); + lore.add("&8\u21E8 &e\u26A1 &7" + DoubleHandler.getFancyDouble(fuel.getTicks() * ((AReactor) sfItem).getEnergyProduction()) + " J in total"); im.setLore(lore); fItem.setItemMeta(im); menu.addItem(slot, fItem); @@ -1110,7 +1110,7 @@ public class SlimefunGuide { l -= minutes * 60; final int seconds = (int)l; timeleft = String.valueOf(timeleft) + seconds + "s"; - return "§7" + timeleft; + return "&7" + timeleft; } } diff --git a/src/me/mrCookieSlime/Slimefun/api/Backpacks.java b/src/me/mrCookieSlime/Slimefun/api/Backpacks.java index db6a118a7..71e27fc9f 100644 --- a/src/me/mrCookieSlime/Slimefun/api/Backpacks.java +++ b/src/me/mrCookieSlime/Slimefun/api/Backpacks.java @@ -42,7 +42,7 @@ public class Backpacks { if (line.startsWith(ChatColor.translateAlternateColorCodes('&', "&7ID: ")) && line.contains("#")) { try { id = Integer.parseInt(line.split("#")[1]); - uuid = line.split("#")[0].replace("§7ID: ", ""); + uuid = line.split("#")[0].replace("&7ID: ", ""); } catch(NumberFormatException x) { } } @@ -67,7 +67,7 @@ public class Backpacks { if (line.startsWith(ChatColor.translateAlternateColorCodes('&', "&7ID: ")) && line.contains("#")) { try { id = Integer.parseInt(line.split("#")[1]); - uuid = line.split("#")[0].replace("§7ID: ", ""); + uuid = line.split("#")[0].replace("&7ID: ", ""); } catch(NumberFormatException x) { } } diff --git a/src/me/mrCookieSlime/Slimefun/api/TickerTask.java b/src/me/mrCookieSlime/Slimefun/api/TickerTask.java index 25f064bce..b8c35473e 100644 --- a/src/me/mrCookieSlime/Slimefun/api/TickerTask.java +++ b/src/me/mrCookieSlime/Slimefun/api/TickerTask.java @@ -338,23 +338,23 @@ public class TickerTask implements Runnable { } public void info(CommandSender sender) { - sender.sendMessage("§2== §aSlimefun Diagnostic Tool §2=="); - sender.sendMessage("§6Impact: §e" + time + "ms / 50-750ms"); - sender.sendMessage("§6Ticked Chunks: §e" + chunks); - sender.sendMessage("§6Ticked Machines: §e" + machines); - sender.sendMessage("§6Skipped Machines: §e" + skipped); + sender.sendMessage("&2== &aSlimefun Diagnostic Tool &2=="); + sender.sendMessage("&6Impact: &e" + time + "ms / 50-750ms"); + sender.sendMessage("&6Ticked Chunks: &e" + chunks); + sender.sendMessage("&6Ticked Machines: &e" + machines); + sender.sendMessage("&6Skipped Machines: &e" + skipped); sender.sendMessage(""); - sender.sendMessage("§6Ticking Machines:"); + sender.sendMessage("&6Ticking Machines:"); if (sender instanceof Player) { TellRawMessage tellraw = new TellRawMessage(); - tellraw.addText(" §7§oHover for more Info"); + tellraw.addText(" &7&oHover for more Info"); StringBuilder hover = new StringBuilder(); int hidden = 0; for (String item: map_machine.keySet()) { - if (map_machinetime.get(item) > 0) hover.append("\n§c" + item + " - " + map_machine.get(item) + "x §7(" + map_machinetime.get(item) + "ms)"); + if (map_machinetime.get(item) > 0) hover.append("\n&c" + item + " - " + map_machine.get(item) + "x &7(" + map_machinetime.get(item) + "ms)"); else hidden++; } - hover.append("\n\n§c+ §4" + hidden + " Hidden"); + hover.append("\n\n&c+ &4" + hidden + " Hidden"); tellraw.addHoverEvent(HoverAction.SHOW_TEXT, hover.toString()); try { tellraw.send((Player) sender); @@ -365,25 +365,25 @@ public class TickerTask implements Runnable { else { int hidden = 0; for (String item: map_machine.keySet()) { - if (map_machinetime.get(item) > 0) sender.sendMessage(" §e" + item + " - " + map_machine.get(item) + "x §7(" + map_machinetime.get(item) + "ms)"); + if (map_machinetime.get(item) > 0) sender.sendMessage(" &e" + item + " - " + map_machine.get(item) + "x &7(" + map_machinetime.get(item) + "ms)"); else hidden++; } - sender.sendMessage("§c+ §4" + hidden + " Hidden"); + sender.sendMessage("&c+ &4" + hidden + " Hidden"); } sender.sendMessage(""); - sender.sendMessage("§6Ticking Chunks:"); + sender.sendMessage("&6Ticking Chunks:"); if (sender instanceof Player) { TellRawMessage tellraw = new TellRawMessage(); - tellraw.addText(" §7§oHover for more Info"); + tellraw.addText(" &7&oHover for more Info"); StringBuilder hover = new StringBuilder(); int hidden = 0; for (String c: map_chunktime.keySet()) { if (!skipped_chunks.contains(c)) { - if (map_chunktime.get(c) > 0) hover.append("\n§c" + c.replace("CraftChunk", "") + " - " + (map_chunk.containsKey(c) ? map_chunk.get(c): 0) + "x §7(" + map_chunktime.get(c) + "ms)"); + if (map_chunktime.get(c) > 0) hover.append("\n&c" + c.replace("CraftChunk", "") + " - " + (map_chunk.containsKey(c) ? map_chunk.get(c): 0) + "x &7(" + map_chunktime.get(c) + "ms)"); else hidden++; } } - hover.append("\n\n§c+ §4" + hidden + " Hidden"); + hover.append("\n\n&c+ &4" + hidden + " Hidden"); tellraw.addHoverEvent(HoverAction.SHOW_TEXT, hover.toString()); try { tellraw.send((Player) sender); @@ -396,11 +396,11 @@ public class TickerTask implements Runnable { int hidden = 0; for (String c: map_chunktime.keySet()) { if (!skipped_chunks.contains(c)) { - if (map_chunktime.get(c) > 0) sender.sendMessage(" §c" + c.replace("CraftChunk", "") + " - " + (map_chunk.containsKey(c) ? map_chunk.get(c): 0) + "x §7(" + map_chunktime.get(c) + "ms)"); + if (map_chunktime.get(c) > 0) sender.sendMessage(" &c" + c.replace("CraftChunk", "") + " - " + (map_chunk.containsKey(c) ? map_chunk.get(c): 0) + "x &7(" + map_chunktime.get(c) + "ms)"); else hidden++; } } - sender.sendMessage("§c+ §4" + hidden + " Hidden"); + sender.sendMessage("&c+ &4" + hidden + " Hidden"); } } diff --git a/src/me/mrCookieSlime/Slimefun/api/energy/EnergyNet.java b/src/me/mrCookieSlime/Slimefun/api/energy/EnergyNet.java index 1c8696637..31d2419b1 100644 --- a/src/me/mrCookieSlime/Slimefun/api/energy/EnergyNet.java +++ b/src/me/mrCookieSlime/Slimefun/api/energy/EnergyNet.java @@ -86,7 +86,7 @@ public class EnergyNet { double demand = 0.0D; if (scan(b.getLocation(), Axis.UNKNOWN, new HashSet(), input, storage, output, supply, demand).isEmpty()) { - EnergyHologram.update(b, "§4No Energy Network found"); + EnergyHologram.update(b, "&4No Energy Network found"); } else { for (final Location source: input) { diff --git a/src/me/mrCookieSlime/Slimefun/api/energy/ItemEnergy.java b/src/me/mrCookieSlime/Slimefun/api/energy/ItemEnergy.java index 7bb9bca7a..73ee90d4d 100644 --- a/src/me/mrCookieSlime/Slimefun/api/energy/ItemEnergy.java +++ b/src/me/mrCookieSlime/Slimefun/api/energy/ItemEnergy.java @@ -12,15 +12,15 @@ import me.mrCookieSlime.CSCoreLibPlugin.general.Player.PlayerInventory; public class ItemEnergy { -// "§c§o§8\u21E8 §e\u26A1 §70 / 50 J" +// "&c&o&8\u21E8 &e\u26A1 &70 / 50 J" public static float getStoredEnergy(ItemStack item) { if (item == null || item.getType() == null || item.getType().equals(Material.AIR)) return 0F; if (!item.hasItemMeta() || !item.getItemMeta().hasLore()) return 0F; for (String line: item.getItemMeta().getLore()) { - if (line.startsWith("§c§o§8\u21E8 §e\u26A1 §7") && line.contains(" / ") && line.endsWith(" J")) { - return Float.valueOf(line.split(" / ")[0].replace("§c§o§8\u21E8 §e\u26A1 §7", "")); + if (line.startsWith("&c&o&8\u21E8 &e\u26A1 &7") && line.contains(" / ") && line.endsWith(" J")) { + return Float.valueOf(line.split(" / ")[0].replace("&c&o&8\u21E8 &e\u26A1 &7", "")); } } @@ -32,7 +32,7 @@ public class ItemEnergy { if (!item.hasItemMeta() || !item.getItemMeta().hasLore()) return 0F; for (String line: item.getItemMeta().getLore()) { - if (line.startsWith("§c§o§8\u21E8 §e\u26A1 §7") && line.contains(" / ") && line.endsWith(" J")) { + if (line.startsWith("&c&o&8\u21E8 &e\u26A1 &7") && line.contains(" / ") && line.endsWith(" J")) { return Float.valueOf(line.split(" / ")[1].replace(" J", "")); } } @@ -69,7 +69,7 @@ public class ItemEnergy { int index = -1; for (int i = 0; i < lore.size(); i++) { String line = lore.get(i); - if (line.startsWith("§c§o§8\u21E8 §e\u26A1 §7") && line.contains(" / ") && line.endsWith(" J")) { + if (line.startsWith("&c&o&8\u21E8 &e\u26A1 &7") && line.contains(" / ") && line.endsWith(" J")) { index = i; break; } @@ -77,7 +77,7 @@ public class ItemEnergy { BigDecimal decimal = new BigDecimal(stored).setScale(2, BigDecimal.ROUND_HALF_UP); - lore.set(index, "§c§o§8\u21E8 §e\u26A1 §7" + decimal.floatValue() + " / " + capacity + " J"); + lore.set(index, "&c&o&8\u21E8 &e\u26A1 &7" + decimal.floatValue() + " / " + capacity + " J"); ItemMeta im = item.getItemMeta(); im.setLore(lore); diff --git a/src/me/mrCookieSlime/Slimefun/api/item_transport/CargoNet.java b/src/me/mrCookieSlime/Slimefun/api/item_transport/CargoNet.java index 324fa50d6..04266dade 100644 --- a/src/me/mrCookieSlime/Slimefun/api/item_transport/CargoNet.java +++ b/src/me/mrCookieSlime/Slimefun/api/item_transport/CargoNet.java @@ -58,7 +58,7 @@ public class CargoNet { private static final ChestTerminalSorter sorter = new ChestTerminalSorter(); public static final int[] terminal_slots = new int[] {0, 1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 18, 19, 20, 21, 22, 23, 24, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 39, 40, 41, 42}; - private static final ItemStack terminal_noitem_item = new CustomItem(new MaterialData(Material.BARRIER), "§4No Item cached"); + private static final ItemStack terminal_noitem_item = new CustomItem(new MaterialData(Material.BARRIER), "&4No Item cached"); private static final MenuClickHandler terminal_noitem_handler = new MenuClickHandler() { @Override @@ -84,7 +84,7 @@ public class CargoNet { final List visualizer2 = new ArrayList(); if (scan(b.getLocation(), blocks, visualizer1, visualizer2, Axis.UNKNOWN, input, output, terminals, providers, destinations, imports, exports).isEmpty()) { - CargoHologram.update(b, "§7Status: §4§lOFFLINE"); + CargoHologram.update(b, "&7Status: &4&lOFFLINE"); } else { final BlockStorage storage = BlockStorage.getStorage(b.getWorld()); @@ -392,9 +392,9 @@ public class CargoNet { ItemMeta im = stack.getItemMeta(); List lore = new ArrayList(); lore.add(""); - lore.add("§7Stored Items: §r" + DoubleHandler.getFancyDouble(item.getAmount())); - if (stack.getMaxStackSize() > 1) lore.add("§7 stack.getMaxStackSize() ? stack.getMaxStackSize(): item.getAmount()) + ">"); - else lore.add("§7"); + lore.add("&7Stored Items: &r" + DoubleHandler.getFancyDouble(item.getAmount())); + if (stack.getMaxStackSize() > 1) lore.add("&7 stack.getMaxStackSize() ? stack.getMaxStackSize(): item.getAmount()) + ">"); + else lore.add("&7"); lore.add(""); if (im.hasLore()) { for (String line: im.getLore()) { @@ -427,7 +427,7 @@ public class CargoNet { } } - CargoHologram.update(b, "§7Status: §a§lONLINE"); + CargoHologram.update(b, "&7Status: &a&lONLINE"); } }); } diff --git a/src/me/mrCookieSlime/Slimefun/holograms/EnergyHologram.java b/src/me/mrCookieSlime/Slimefun/holograms/EnergyHologram.java index 96e4d3450..d7f9ab62e 100644 --- a/src/me/mrCookieSlime/Slimefun/holograms/EnergyHologram.java +++ b/src/me/mrCookieSlime/Slimefun/holograms/EnergyHologram.java @@ -12,7 +12,7 @@ import org.bukkit.entity.Entity; public class EnergyHologram { public static void update(Block b, double supply, double demand) { - update(b, demand > supply ? ("§4§l- §c" + DoubleHandler.getFancyDouble(Math.abs(supply - demand)) + " §7J §e\u26A1"): ("§2§l+ §a" + DoubleHandler.getFancyDouble(supply - demand) + " §7J §e\u26A1")); + update(b, demand > supply ? ("&4&l- &c" + DoubleHandler.getFancyDouble(Math.abs(supply - demand)) + " &7J &e\u26A1"): ("&2&l+ &a" + DoubleHandler.getFancyDouble(supply - demand) + " &7J &e\u26A1")); } public static void update(final Block b, final String name) { diff --git a/src/me/mrCookieSlime/Slimefun/holograms/Projector.java b/src/me/mrCookieSlime/Slimefun/holograms/Projector.java index 90dfdf8d3..0a9c86f61 100644 --- a/src/me/mrCookieSlime/Slimefun/holograms/Projector.java +++ b/src/me/mrCookieSlime/Slimefun/holograms/Projector.java @@ -41,7 +41,7 @@ public class Projector { public static void openEditor(Player p, final Block projector) { ChestMenu menu = new ChestMenu("Hologram Settings"); - menu.addItem(0, new CustomItem(new MaterialData(Material.NAME_TAG), "§7Text §e(Click to edit)", "", "§r" + ChatColor.translateAlternateColorCodes('&', BlockStorage.getBlockInfo(projector, "text")))); + menu.addItem(0, new CustomItem(new MaterialData(Material.NAME_TAG), "&7Text &e(Click to edit)", "", "&r" + ChatColor.translateAlternateColorCodes('&', BlockStorage.getBlockInfo(projector, "text")))); menu.addMenuClickHandler(0, new MenuClickHandler() { @Override @@ -63,7 +63,7 @@ public class Projector { } }); - menu.addItem(1, new CustomItem(new MaterialData(Material.WATCH), "§7Offset: §e" + DoubleHandler.fixDouble(Double.valueOf(BlockStorage.getBlockInfo(projector, "offset")) + 1.0D), "", "§rLeft Click: §7+0.1", "§rRight Click: §7-0.1")); + menu.addItem(1, new CustomItem(new MaterialData(Material.WATCH), "&7Offset: &e" + DoubleHandler.fixDouble(Double.valueOf(BlockStorage.getBlockInfo(projector, "offset")) + 1.0D), "", "&rLeft Click: &7+0.1", "&rRight Click: &7-0.1")); menu.addMenuClickHandler(1, new MenuClickHandler() { @Override diff --git a/src/me/mrCookieSlime/Slimefun/listeners/AncientAltarListener.java b/src/me/mrCookieSlime/Slimefun/listeners/AncientAltarListener.java index 8d48af21e..b6f763727 100644 --- a/src/me/mrCookieSlime/Slimefun/listeners/AncientAltarListener.java +++ b/src/me/mrCookieSlime/Slimefun/listeners/AncientAltarListener.java @@ -146,7 +146,7 @@ public class AncientAltarListener implements Listener { if (stack != null && !stack.getType().equals(Material.AIR)) { PlayerInventory.consumeItemInHand(p); String nametag = StringUtils.formatItemName(stack, false); - Item entity = b.getWorld().dropItem(b.getLocation().add(0.5, 1.2, 0.5), new CustomItem(new CustomItem(stack, 1), "§5§dALTAR §3Probe - §e" + System.nanoTime())); + Item entity = b.getWorld().dropItem(b.getLocation().add(0.5, 1.2, 0.5), new CustomItem(new CustomItem(stack, 1), "&5&dALTAR &3Probe - &e" + System.nanoTime())); entity.setVelocity(new Vector(0, 0.1, 0)); entity.setMetadata("no_pickup", new FixedMetadataValue(SlimefunStartup.instance, "altar_item")); entity.setCustomNameVisible(true); @@ -158,7 +158,7 @@ public class AncientAltarListener implements Listener { @EventHandler public void onPickup(PlayerPickupItemEvent e) { if (e.getItem().hasMetadata("no_pickup")) e.setCancelled(true); - else if (!e.getItem().hasMetadata("no_pickup") && e.getItem().getItemStack().hasItemMeta() && e.getItem().getItemStack().getItemMeta().hasDisplayName() && e.getItem().getItemStack().getItemMeta().getDisplayName().startsWith("§5§dALTAR §3Probe - §e")) { + else if (!e.getItem().hasMetadata("no_pickup") && e.getItem().getItemStack().hasItemMeta() && e.getItem().getItemStack().getItemMeta().hasDisplayName() && e.getItem().getItemStack().getItemMeta().getDisplayName().startsWith("&5&dALTAR &3Probe - &e")) { e.setCancelled(true); e.getItem().remove(); } @@ -167,7 +167,7 @@ public class AncientAltarListener implements Listener { @EventHandler public void onMinecartPickup(InventoryPickupItemEvent e) { if (e.getItem().hasMetadata("no_pickup")) e.setCancelled(true); - else if (!e.getItem().hasMetadata("no_pickup") && e.getItem().getItemStack().hasItemMeta() && e.getItem().getItemStack().getItemMeta().hasDisplayName() && e.getItem().getItemStack().getItemMeta().getDisplayName().startsWith("§5§dALTAR §3Probe - §e")) { + else if (!e.getItem().hasMetadata("no_pickup") && e.getItem().getItemStack().hasItemMeta() && e.getItem().getItemStack().getItemMeta().hasDisplayName() && e.getItem().getItemStack().getItemMeta().getDisplayName().startsWith("&5&dALTAR &3Probe - &e")) { e.setCancelled(true); e.getItem().remove(); } diff --git a/src/me/mrCookieSlime/Slimefun/listeners/BackpackListener.java b/src/me/mrCookieSlime/Slimefun/listeners/BackpackListener.java index 980e34f37..d5225cc68 100644 --- a/src/me/mrCookieSlime/Slimefun/listeners/BackpackListener.java +++ b/src/me/mrCookieSlime/Slimefun/listeners/BackpackListener.java @@ -131,7 +131,7 @@ public class BackpackListener implements Listener { if (Slimefun.hasUnlocked(p, SlimefunItems.BACKPACK_SMALL, true)) { if (item.getAmount() == 1) { for (int line = 0; line < item.getItemMeta().getLore().size(); line++) { - if (item.getItemMeta().getLore().get(line).equals("§7ID: ")) { + if (item.getItemMeta().getLore().get(line).equals("&7ID: ")) { ItemMeta im = item.getItemMeta(); List lore = im.getLore(); lore.set(line, lore.get(line).replace("", Backpacks.createBackpack(p, 9))); @@ -152,7 +152,7 @@ public class BackpackListener implements Listener { if (Slimefun.hasUnlocked(p, SlimefunItems.BACKPACK_MEDIUM, true)) { if (item.getAmount() == 1) { for (int line = 0; line < item.getItemMeta().getLore().size(); line++) { - if (item.getItemMeta().getLore().get(line).equals("§7ID: ")) { + if (item.getItemMeta().getLore().get(line).equals("&7ID: ")) { ItemMeta im = item.getItemMeta(); List lore = im.getLore(); lore.set(line, lore.get(line).replace("", Backpacks.createBackpack(p, 18))); @@ -173,7 +173,7 @@ public class BackpackListener implements Listener { if (Slimefun.hasUnlocked(p, SlimefunItems.BACKPACK_LARGE, true)) { if (item.getAmount() == 1) { for (int line = 0; line < item.getItemMeta().getLore().size(); line++) { - if (item.getItemMeta().getLore().get(line).equals("§7ID: ")) { + if (item.getItemMeta().getLore().get(line).equals("&7ID: ")) { ItemMeta im = item.getItemMeta(); List lore = im.getLore(); lore.set(line, lore.get(line).replace("", Backpacks.createBackpack(p, 27))); @@ -194,7 +194,7 @@ public class BackpackListener implements Listener { if (Slimefun.hasUnlocked(p, SlimefunItems.WOVEN_BACKPACK, true)) { if (item.getAmount() == 1) { for (int line = 0; line < item.getItemMeta().getLore().size(); line++) { - if (item.getItemMeta().getLore().get(line).equals("§7ID: ")) { + if (item.getItemMeta().getLore().get(line).equals("&7ID: ")) { ItemMeta im = item.getItemMeta(); List lore = im.getLore(); lore.set(line, lore.get(line).replace("", Backpacks.createBackpack(p, 36))); @@ -215,7 +215,7 @@ public class BackpackListener implements Listener { if (Slimefun.hasUnlocked(p, SlimefunItems.GILDED_BACKPACK, true)) { if (item.getAmount() == 1) { for (int line = 0; line < item.getItemMeta().getLore().size(); line++) { - if (item.getItemMeta().getLore().get(line).equals("§7ID: ")) { + if (item.getItemMeta().getLore().get(line).equals("&7ID: ")) { ItemMeta im = item.getItemMeta(); List lore = im.getLore(); lore.set(line, lore.get(line).replace("", Backpacks.createBackpack(p, 45))); @@ -236,7 +236,7 @@ public class BackpackListener implements Listener { if (Slimefun.hasUnlocked(p, SlimefunItems.BOUND_BACKPACK, true)) { if (item.getAmount() == 1) { for (int line = 0; line < item.getItemMeta().getLore().size(); line++) { - if (item.getItemMeta().getLore().get(line).equals("§7ID: ")) { + if (item.getItemMeta().getLore().get(line).equals("&7ID: ")) { ItemMeta im = item.getItemMeta(); List lore = im.getLore(); lore.set(line, lore.get(line).replace("", Backpacks.createBackpack(p, 36))); @@ -257,7 +257,7 @@ public class BackpackListener implements Listener { if (Slimefun.hasUnlocked(p, SlimefunItems.COOLER, true)) { if (item.getAmount() == 1) { for (int line = 0; line < item.getItemMeta().getLore().size(); line++) { - if (item.getItemMeta().getLore().get(line).equals("§7ID: ")) { + if (item.getItemMeta().getLore().get(line).equals("&7ID: ")) { ItemMeta im = item.getItemMeta(); List lore = im.getLore(); lore.set(line, lore.get(line).replace("", Backpacks.createBackpack(p, 27))); diff --git a/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java b/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java index fd284dcf4..4590dc4dd 100644 --- a/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java +++ b/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java @@ -86,41 +86,41 @@ public class ItemListener implements Listener { } else if (BlockStorage.hasBlockInfo(e.getClickedBlock())) { p.sendMessage(" "); - p.sendMessage("§d" + e.getClickedBlock().getType() + ":" + e.getClickedBlock().getData() + " §e@ X: " + e.getClickedBlock().getX() + " Y: " + e.getClickedBlock().getY() + " Z: " + e.getClickedBlock().getZ()); - p.sendMessage("§dID: " + "§e" + BlockStorage.checkID(e.getClickedBlock())); + p.sendMessage("&d" + e.getClickedBlock().getType() + ":" + e.getClickedBlock().getData() + " &e@ X: " + e.getClickedBlock().getX() + " Y: " + e.getClickedBlock().getY() + " Z: " + e.getClickedBlock().getZ()); + p.sendMessage("&dID: " + "&e" + BlockStorage.checkID(e.getClickedBlock())); if (e.getClickedBlock().getState() instanceof Skull) { - p.sendMessage("§dSkull: " + "§2\u2714"); - p.sendMessage(" §dRotation: §e" + ((Skull) e.getClickedBlock().getState()).getRotation().toString()); + p.sendMessage("&dSkull: " + "&2\u2714"); + p.sendMessage(" &dRotation: &e" + ((Skull) e.getClickedBlock().getState()).getRotation().toString()); } if (BlockStorage.getStorage(e.getClickedBlock().getWorld()).hasInventory(e.getClickedBlock().getLocation())) { - p.sendMessage("§dInventory: " + "§2\u2714"); + p.sendMessage("&dInventory: " + "&2\u2714"); } else { - p.sendMessage("§dInventory: " + "§4\u2718"); + p.sendMessage("&dInventory: " + "&4\u2718"); } if (BlockStorage.check(e.getClickedBlock()).isTicking()) { - p.sendMessage("§dTicking: " + "§2\u2714"); - p.sendMessage(" §dAsync: §e" + (BlockStorage.check(e.getClickedBlock()).getTicker().isSynchronized() ? "§4\u2718": "§2\u2714")); - p.sendMessage(" §dTimings: §e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock()) + "ms"); - p.sendMessage(" §dTotal Timings: §e" + SlimefunStartup.ticker.getTimings(BlockStorage.checkID(e.getClickedBlock())) + "ms"); - p.sendMessage(" §dChunk Timings: §e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock().getChunk()) + "ms"); + p.sendMessage("&dTicking: " + "&2\u2714"); + p.sendMessage(" &dAsync: &e" + (BlockStorage.check(e.getClickedBlock()).getTicker().isSynchronized() ? "&4\u2718": "&2\u2714")); + p.sendMessage(" &dTimings: &e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock()) + "ms"); + p.sendMessage(" &dTotal Timings: &e" + SlimefunStartup.ticker.getTimings(BlockStorage.checkID(e.getClickedBlock())) + "ms"); + p.sendMessage(" &dChunk Timings: &e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock().getChunk()) + "ms"); } else if (BlockStorage.check(e.getClickedBlock()).getEnergyTicker() != null) { - p.sendMessage("§dTicking: " + "§b~ §3(Indirect)"); - p.sendMessage(" §dTimings: §e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock()) + "ms"); - p.sendMessage(" §dChunk Timings: §e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock().getChunk()) + "ms"); + p.sendMessage("&dTicking: " + "&b~ &3(Indirect)"); + p.sendMessage(" &dTimings: &e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock()) + "ms"); + p.sendMessage(" &dChunk Timings: &e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock().getChunk()) + "ms"); } else { - p.sendMessage("§dTicking: " + "§4\u2718"); + p.sendMessage("&dTicking: " + "&4\u2718"); } if (ChargableBlock.isChargable(e.getClickedBlock())) { - p.sendMessage("§dChargable: " + "§2\u2714"); - p.sendMessage(" §dEnergy: §e" + ChargableBlock.getCharge(e.getClickedBlock()) + " / " + ChargableBlock.getMaxCharge(e.getClickedBlock())); + p.sendMessage("&dChargable: " + "&2\u2714"); + p.sendMessage(" &dEnergy: &e" + ChargableBlock.getCharge(e.getClickedBlock()) + " / " + ChargableBlock.getMaxCharge(e.getClickedBlock())); } else { - p.sendMessage("§dChargable: " + "§4\u2718"); + p.sendMessage("&dChargable: " + "&4\u2718"); } - p.sendMessage("§6" + BlockStorage.getBlockInfoAsJson(e.getClickedBlock())); + p.sendMessage("&6" + BlockStorage.getBlockInfoAsJson(e.getClickedBlock())); p.sendMessage(" "); } break; diff --git a/src/me/mrCookieSlime/Slimefun/listeners/ToolListener.java b/src/me/mrCookieSlime/Slimefun/listeners/ToolListener.java index f4a11bb31..e7a928970 100644 --- a/src/me/mrCookieSlime/Slimefun/listeners/ToolListener.java +++ b/src/me/mrCookieSlime/Slimefun/listeners/ToolListener.java @@ -149,25 +149,25 @@ public class ToolListener implements Listener { } else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.CARGO_INPUT, false)) { if (e.getBlock().getY() != e.getBlockAgainst().getY()) { - e.getPlayer().sendMessage("§4Must be placed onto a Chest or Machine"); + e.getPlayer().sendMessage("&4Must be placed onto a Chest or Machine"); e.setCancelled(true); } } else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.CARGO_OUTPUT, false)) { if (e.getBlock().getY() != e.getBlockAgainst().getY()) { - e.getPlayer().sendMessage("§4Must be placed onto a Chest or Machine"); + e.getPlayer().sendMessage("&4Must be placed onto a Chest or Machine"); e.setCancelled(true); } } else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.CARGO_OUTPUT_ADVANCED, false)) { if (e.getBlock().getY() != e.getBlockAgainst().getY()) { - e.getPlayer().sendMessage("§4Must be placed onto a Chest or Machine"); + e.getPlayer().sendMessage("&4Must be placed onto a Chest or Machine"); e.setCancelled(true); } } else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.CT_IMPORT_BUS, false)) { if (e.getBlock().getY() != e.getBlockAgainst().getY()) { - e.getPlayer().sendMessage("§4Must be placed onto a Chest or Machine"); + e.getPlayer().sendMessage("&4Must be placed onto a Chest or Machine"); e.setCancelled(true); } } From 6f8ef1acfee1e6d8203975a900d1a84b62c3a07d Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 23 Nov 2016 18:21:19 +0100 Subject: [PATCH 34/37] =?UTF-8?q?Replaced=20all=20=C2=A7=20with=20&?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SlimefunItem/abstractItems/AReactor.java | 27 ++++++++++--------- .../abstractItems/MachineHelper.java | 2 +- .../Slimefun/holograms/CargoHologram.java | 3 ++- .../Slimefun/holograms/EnergyHologram.java | 3 ++- .../Slimefun/holograms/ReactorHologram.java | 6 +++-- 5 files changed, 23 insertions(+), 18 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java index eccb57083..0ac61f64b 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java @@ -309,22 +309,23 @@ public abstract class AReactor extends SlimefunItem { } }); + + ItemStack item = getProgressBar().clone(); + ItemMeta im = item.getItemMeta(); + im.setDisplayName(" "); + List lore = new ArrayList(); + lore.add(MachineHelper.getProgress(timeleft, processing.get(l).getTicks())); + lore.add(MachineHelper.getCoolant(timeleft, processing.get(l).getTicks())); + lore.add(""); + lore.add(MachineHelper.getTimeLeft(timeleft / 2)); + im.setLore(lore); + item.setItemMeta(im); + + BlockStorage.getInventory(l).replaceExistingItem(22, item); + if (needsCooling()) { boolean coolant = (processing.get(l).getTicks() - timeleft) % 25 == 0; - ItemStack item = getProgressBar().clone(); - ItemMeta im = item.getItemMeta(); - im.setDisplayName(" "); - List lore = new ArrayList(); - lore.add(MachineHelper.getProgress(timeleft, processing.get(l).getTicks())); - lore.add(MachineHelper.getCoolant(timeleft, processing.get(l).getTicks())); - lore.add(""); - lore.add(MachineHelper.getTimeLeft(timeleft / 2)); - im.setLore(lore); - item.setItemMeta(im); - - BlockStorage.getInventory(l).replaceExistingItem(22, item); - if (coolant) { if (port != null) { for (int slot: getCoolantSlots()) { diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineHelper.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineHelper.java index 4ccc0fcc5..aef06cf67 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineHelper.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineHelper.java @@ -14,7 +14,7 @@ public class MachineHelper { l -= minutes * 60; final int seconds = (int)l; timeleft = String.valueOf(timeleft) + seconds + "s"; - return "&7" + timeleft + " left"; + return ChatColor.translateAlternateColorCodes('&', "&7" + timeleft + " left"); } public static String getProgress(int time, int total) { diff --git a/src/me/mrCookieSlime/Slimefun/holograms/CargoHologram.java b/src/me/mrCookieSlime/Slimefun/holograms/CargoHologram.java index 9cde653fe..6670ead68 100644 --- a/src/me/mrCookieSlime/Slimefun/holograms/CargoHologram.java +++ b/src/me/mrCookieSlime/Slimefun/holograms/CargoHologram.java @@ -2,6 +2,7 @@ package me.mrCookieSlime.Slimefun.holograms; import me.mrCookieSlime.Slimefun.SlimefunStartup; +import org.bukkit.ChatColor; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.block.Block; @@ -16,7 +17,7 @@ public class CargoHologram { @Override public void run() { ArmorStand hologram = getArmorStand(b); - hologram.setCustomName(name); + hologram.setCustomName(ChatColor.translateAlternateColorCodes('&', name)); } }); } diff --git a/src/me/mrCookieSlime/Slimefun/holograms/EnergyHologram.java b/src/me/mrCookieSlime/Slimefun/holograms/EnergyHologram.java index d7f9ab62e..9907054f2 100644 --- a/src/me/mrCookieSlime/Slimefun/holograms/EnergyHologram.java +++ b/src/me/mrCookieSlime/Slimefun/holograms/EnergyHologram.java @@ -4,6 +4,7 @@ import me.mrCookieSlime.CSCoreLibPlugin.general.Math.DoubleHandler; import me.mrCookieSlime.Slimefun.SlimefunStartup; import org.bukkit.Bukkit; +import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.block.Block; import org.bukkit.entity.ArmorStand; @@ -21,7 +22,7 @@ public class EnergyHologram { @Override public void run() { ArmorStand hologram = getArmorStand(b); - hologram.setCustomName(name); + hologram.setCustomName(ChatColor.translateAlternateColorCodes('&', name)); } }); } diff --git a/src/me/mrCookieSlime/Slimefun/holograms/ReactorHologram.java b/src/me/mrCookieSlime/Slimefun/holograms/ReactorHologram.java index 1467ffe50..420bd633c 100644 --- a/src/me/mrCookieSlime/Slimefun/holograms/ReactorHologram.java +++ b/src/me/mrCookieSlime/Slimefun/holograms/ReactorHologram.java @@ -1,5 +1,6 @@ package me.mrCookieSlime.Slimefun.holograms; +import org.bukkit.ChatColor; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.entity.ArmorStand; @@ -20,7 +21,7 @@ public class ReactorHologram { } ArmorStand hologram = ArmorStandFactory.createHidden(l); - hologram.setCustomNameVisible(true); + hologram.setCustomNameVisible(false); hologram.setCustomName(null); return hologram; } @@ -31,7 +32,8 @@ public class ReactorHologram { @Override public void run() { ArmorStand hologram = getArmorStand(l); - hologram.setCustomName(name); + if (!hologram.isCustomNameVisible()) hologram.setCustomNameVisible(true); + hologram.setCustomName(ChatColor.translateAlternateColorCodes('&', name)); } }); } From 7aa493a96dff6d2a5cde67e2c0cb20680b0c1e83 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 23 Nov 2016 18:21:19 +0100 Subject: [PATCH 35/37] =?UTF-8?q?Replaced=20all=20=C2=A7=20with=20&?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SlimefunItem/abstractItems/AReactor.java | 27 ++++++++++--------- .../abstractItems/MachineHelper.java | 2 +- .../Slimefun/holograms/CargoHologram.java | 3 ++- .../Slimefun/holograms/EnergyHologram.java | 3 ++- .../Slimefun/holograms/ReactorHologram.java | 6 +++-- 5 files changed, 23 insertions(+), 18 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java index eccb57083..0ac61f64b 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java @@ -309,22 +309,23 @@ public abstract class AReactor extends SlimefunItem { } }); + + ItemStack item = getProgressBar().clone(); + ItemMeta im = item.getItemMeta(); + im.setDisplayName(" "); + List lore = new ArrayList(); + lore.add(MachineHelper.getProgress(timeleft, processing.get(l).getTicks())); + lore.add(MachineHelper.getCoolant(timeleft, processing.get(l).getTicks())); + lore.add(""); + lore.add(MachineHelper.getTimeLeft(timeleft / 2)); + im.setLore(lore); + item.setItemMeta(im); + + BlockStorage.getInventory(l).replaceExistingItem(22, item); + if (needsCooling()) { boolean coolant = (processing.get(l).getTicks() - timeleft) % 25 == 0; - ItemStack item = getProgressBar().clone(); - ItemMeta im = item.getItemMeta(); - im.setDisplayName(" "); - List lore = new ArrayList(); - lore.add(MachineHelper.getProgress(timeleft, processing.get(l).getTicks())); - lore.add(MachineHelper.getCoolant(timeleft, processing.get(l).getTicks())); - lore.add(""); - lore.add(MachineHelper.getTimeLeft(timeleft / 2)); - im.setLore(lore); - item.setItemMeta(im); - - BlockStorage.getInventory(l).replaceExistingItem(22, item); - if (coolant) { if (port != null) { for (int slot: getCoolantSlots()) { diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineHelper.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineHelper.java index 4ccc0fcc5..aef06cf67 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineHelper.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineHelper.java @@ -14,7 +14,7 @@ public class MachineHelper { l -= minutes * 60; final int seconds = (int)l; timeleft = String.valueOf(timeleft) + seconds + "s"; - return "&7" + timeleft + " left"; + return ChatColor.translateAlternateColorCodes('&', "&7" + timeleft + " left"); } public static String getProgress(int time, int total) { diff --git a/src/me/mrCookieSlime/Slimefun/holograms/CargoHologram.java b/src/me/mrCookieSlime/Slimefun/holograms/CargoHologram.java index 9cde653fe..6670ead68 100644 --- a/src/me/mrCookieSlime/Slimefun/holograms/CargoHologram.java +++ b/src/me/mrCookieSlime/Slimefun/holograms/CargoHologram.java @@ -2,6 +2,7 @@ package me.mrCookieSlime.Slimefun.holograms; import me.mrCookieSlime.Slimefun.SlimefunStartup; +import org.bukkit.ChatColor; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.block.Block; @@ -16,7 +17,7 @@ public class CargoHologram { @Override public void run() { ArmorStand hologram = getArmorStand(b); - hologram.setCustomName(name); + hologram.setCustomName(ChatColor.translateAlternateColorCodes('&', name)); } }); } diff --git a/src/me/mrCookieSlime/Slimefun/holograms/EnergyHologram.java b/src/me/mrCookieSlime/Slimefun/holograms/EnergyHologram.java index d7f9ab62e..9907054f2 100644 --- a/src/me/mrCookieSlime/Slimefun/holograms/EnergyHologram.java +++ b/src/me/mrCookieSlime/Slimefun/holograms/EnergyHologram.java @@ -4,6 +4,7 @@ import me.mrCookieSlime.CSCoreLibPlugin.general.Math.DoubleHandler; import me.mrCookieSlime.Slimefun.SlimefunStartup; import org.bukkit.Bukkit; +import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.block.Block; import org.bukkit.entity.ArmorStand; @@ -21,7 +22,7 @@ public class EnergyHologram { @Override public void run() { ArmorStand hologram = getArmorStand(b); - hologram.setCustomName(name); + hologram.setCustomName(ChatColor.translateAlternateColorCodes('&', name)); } }); } diff --git a/src/me/mrCookieSlime/Slimefun/holograms/ReactorHologram.java b/src/me/mrCookieSlime/Slimefun/holograms/ReactorHologram.java index 1467ffe50..420bd633c 100644 --- a/src/me/mrCookieSlime/Slimefun/holograms/ReactorHologram.java +++ b/src/me/mrCookieSlime/Slimefun/holograms/ReactorHologram.java @@ -1,5 +1,6 @@ package me.mrCookieSlime.Slimefun.holograms; +import org.bukkit.ChatColor; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.entity.ArmorStand; @@ -20,7 +21,7 @@ public class ReactorHologram { } ArmorStand hologram = ArmorStandFactory.createHidden(l); - hologram.setCustomNameVisible(true); + hologram.setCustomNameVisible(false); hologram.setCustomName(null); return hologram; } @@ -31,7 +32,8 @@ public class ReactorHologram { @Override public void run() { ArmorStand hologram = getArmorStand(l); - hologram.setCustomName(name); + if (!hologram.isCustomNameVisible()) hologram.setCustomNameVisible(true); + hologram.setCustomName(ChatColor.translateAlternateColorCodes('&', name)); } }); } From ef748fe01e014bd79e1e0c2631b17d13857e520b Mon Sep 17 00:00:00 2001 From: BuildTools Date: Thu, 24 Nov 2016 17:36:46 +0100 Subject: [PATCH 36/37] Added Electric Crucible --- .../Slimefun/Lists/SlimefunItems.java | 4 +- .../Slimefun/Setup/SlimefunSetup.java | 36 ++++++++++++++++++ .../Slimefun/listeners/ItemListener.java | 38 +++++++++---------- 3 files changed, 57 insertions(+), 21 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java b/src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java index ef1231150..7d1ed43d4 100644 --- a/src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java +++ b/src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java @@ -554,6 +554,7 @@ public class SlimefunItems { public static ItemStack HEATED_PRESSURE_CHAMBER = new CustomItem(new MaterialData(Material.STAINED_GLASS, (byte) 8), "&cHeated Pressure Chamber", "", "&4End-Game Machine", "&8\u21E8 &7Speed: 1x", "&8\u21E8 &e\u26A1 &710 J/s"); public static ItemStack HEATED_PRESSURE_CHAMBER_2 = new CustomItem(new MaterialData(Material.STAINED_GLASS, (byte) 8), "&cHeated Pressure Chamber &7- &eII", "", "&4End-Game Machine", "&8\u21E8 &7Speed: 5x", "&8\u21E8 &e\u26A1 &744 J/s"); public static ItemStack ELECTRIC_SMELTERY = new CustomItem(new MaterialData(Material.FURNACE), "&cElectric Smeltery", "", "&4Alloys-Only, doesn't smelt Dust into Ingots", "", "&4End-Game Machine", "&8\u21E8 &7Speed: 1x", "&8\u21E8 &e\u26A1 &720 J/s"); + public static ItemStack ELECTRIC_CRUCIBLE = new CustomItem(new MaterialData(Material.STAINED_CLAY, (byte) 14), "&cElectric Crucible", "", "&4End-Game Machine", "&8\u21E8 &7Speed: 1x", "&8\u21E8 &e\u26A1 &730 J/s"); public static ItemStack CARBON_PRESS = new CustomItem(new MaterialData(Material.STAINED_GLASS, (byte) 15), "&cCarbon Press", "", "&4End-Game Machine", "&8\u21E8 &7Speed: 1x", "&8\u21E8 &e\u26A1 &720 J/s"); public static ItemStack CARBON_PRESS_2 = new CustomItem(new MaterialData(Material.STAINED_GLASS, (byte) 15), "&cCarbon Press &7- &eII", "", "&4End-Game Machine", "&8\u21E8 &7Speed: 3x", "&8\u21E8 &e\u26A1 &750 J/s"); @@ -698,8 +699,7 @@ public class SlimefunItems { BOOSTED_URANIUM = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjgzN2NhMTJmMjIyZjQ3ODcxOTZhMTdiOGFiNjU2OTg1Zjg0MDRjNTA3NjdhZGJjYjZlN2YxNDI1NGZlZSJ9fX0="), "&2Boosted Uranium", "", "&2Radiation Level: HIGH", "&4&oHazmat Suit required"); PROGRAMMABLE_ANDROID = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzUwM2NiN2VkODQ1ZTdhNTA3ZjU2OWFmYzY0N2M0N2FjNDgzNzcxNDY1YzlhNjc5YTU0NTk0Yzc2YWZiYSJ9fX0="), "&cProgrammable Android &7(Normal)", "", "&8\u21E8 &7Function: None", "&8\u21E8 &7Fuel Efficiency: 1.0x"); - PROGRAMMABLE_ANDROID_MINER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTYzOGEyODU0MWFiM2FlMGE3MjNkNTU3ODczOGUwODc1ODM4OGVjNGMzMzI0N2JkNGNhMTM0ODJhZWYzMzQifX19"), "&cProgrammable Android &7(Miner)", "", "&8\u21E8 &7Function: Mining", "&8\u21E8 &7Fuel Efficiency: 1.0x"); - PROGRAMMABLE_ANDROID_FARMER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjlkMzMzNTdlODQxODgyM2JmNzgzZGU5MmRlODAyOTFiNGViZDM5MmFlYzg3MDY2OThlMDY4OTZkNDk4ZjYifX19"), "&cProgrammable Android &7(Farmer)", "", "&8\u21E8 &7Function: Farming", "&8\u21E8 &7Fuel Efficiency: 1.0x"); + PROGRAMMABLE_ANDROID_MINER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTYzOGEyODU0MWFiM2FlMGE3MjNkNTU3ODczOGUwODc1ODM4OGVjNGMzMzI0N2JkNGNhMTM0ODJcruciblekNDk4ZjYifX19"), "&cProgrammable Android &7(Farmer)", "", "&8\u21E8 &7Function: Farming", "&8\u21E8 &7Fuel Efficiency: 1.0x"); PROGRAMMABLE_ANDROID_WOODCUTTER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDMyYTgxNDUxMDE0MjIwNTE2OWExYWQzMmYwYTc0NWYxOGU5Y2I2YzY2ZWU2NGVjYTJlNjViYWJkZWY5ZmYifX19"), "&cProgrammable Android &7(Woodcutter)", "", "&8\u21E8 &7Function: Woodcutting", "&8\u21E8 &7Fuel Efficiency: 1.0x"); PROGRAMMABLE_ANDROID_BUTCHER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvM2I0NzJkZjBhZDlhM2JlODhmMmU1ZDVkNDIyZDAyYjExNmQ2NGQ4ZGYxNDc1ZWQzMmU1NDZhZmM4NGIzMSJ9fX0="), "&cProgrammable Android &7(Butcher)", "", "&8\u21E8 &7Function: Slaughtering", "&8\u21E8 &7Damage: 4", "&8\u21E8 &7Fuel Efficiency: 1.0x"); PROGRAMMABLE_ANDROID_FISHERMAN = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzQ1ZTg3MzNhNzMxMTQzMzNiOThiMzYwMTc1MTI0MTcyMmY0NzEzZTFhMWE1ZDM2ZmJiMTMyNDkzZjFjNyJ9fX0="), "&cProgrammable Android &7(Fisherman)", "", "&8\u21E8 &7Function: Fishing", "&8\u21E8 &7Success Rate: 10%", "&8\u21E8 &7Fuel Efficiency: 1.0x"); diff --git a/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java b/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java index 4a044278d..d9997c0cb 100644 --- a/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java +++ b/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java @@ -3374,6 +3374,42 @@ public class SlimefunSetup { }.registerChargeableBlock(true, 512); + new AContainer(Categories.ELECTRICITY, SlimefunItems.ELECTRIC_CRUCIBLE, "ELECTRIC_CRUCIBLE", RecipeType.ENHANCED_CRAFTING_TABLE, + new ItemStack[]{SlimefunItems.LEAD_INGOT, SlimefunItems.CRUCIBLE, SlimefunItems.LEAD_INGOT, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.HEATING_COIL, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.LEAD_INGOT, SlimefunItems.BIG_CAPACITOR, SlimefunItems.LEAD_INGOT}) { + @Override + public String getInventoryTitle() { + return "&4Electric Crucible"; + } + + @Override + public ItemStack getProgressBar() { + return new ItemStack(Material.BLAZE_POWDER); + } + + @Override + public void registerDefaultRecipes() { + registerRecipe(10, new ItemStack[]{new ItemStack(Material.BUCKET), new ItemStack(Material.COBBLESTONE, 16)}, new ItemStack[]{new ItemStack(Material.LAVA_BUCKET)}); + registerRecipe(6, new ItemStack[]{new ItemStack(Material.BUCKET), new ItemStack(Material.HARD_CLAY, 8)}, new ItemStack[]{new ItemStack(Material.LAVA_BUCKET)}); + registerRecipe(10, new ItemStack[]{new ItemStack(Material.BUCKET), new ItemStack(Material.LEAVES, 16)}, new ItemStack[]{new ItemStack(Material.WATER_BUCKET)}); + + } + + @Override + public int getEnergyConsumption() { + return 15; + } + + @Override + public int getSpeed() { + return 4; + } + + @Override + public String getMachineIdentifier() { + return "ELECTRIC_CRUCIBLE"; + } + }.registerChargeableBlock(true, 1024); + new AContainer(Categories.ELECTRICITY, SlimefunItems.ELECTRIC_ORE_GRINDER, "ELECTRIC_ORE_GRINDER", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, new ItemStack(Material.DIAMOND_PICKAXE), null, SlimefunItems.GILDED_IRON, SlimefunItems.HEATING_COIL, SlimefunItems.GILDED_IRON, SlimefunItems.GILDED_IRON, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.GILDED_IRON}) { diff --git a/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java b/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java index 4590dc4dd..5e54d4272 100644 --- a/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java +++ b/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java @@ -86,41 +86,41 @@ public class ItemListener implements Listener { } else if (BlockStorage.hasBlockInfo(e.getClickedBlock())) { p.sendMessage(" "); - p.sendMessage("&d" + e.getClickedBlock().getType() + ":" + e.getClickedBlock().getData() + " &e@ X: " + e.getClickedBlock().getX() + " Y: " + e.getClickedBlock().getY() + " Z: " + e.getClickedBlock().getZ()); - p.sendMessage("&dID: " + "&e" + BlockStorage.checkID(e.getClickedBlock())); + p.sendMessage("§d" + e.getClickedBlock().getType() + ":" + e.getClickedBlock().getData() + " §e@ X: " + e.getClickedBlock().getX() + " Y: " + e.getClickedBlock().getY() + " Z: " + e.getClickedBlock().getZ()); + p.sendMessage("§dID: " + "§e" + BlockStorage.checkID(e.getClickedBlock())); if (e.getClickedBlock().getState() instanceof Skull) { - p.sendMessage("&dSkull: " + "&2\u2714"); - p.sendMessage(" &dRotation: &e" + ((Skull) e.getClickedBlock().getState()).getRotation().toString()); + p.sendMessage("§dSkull: " + "§2\u2714"); + p.sendMessage(" §dRotation: §e" + ((Skull) e.getClickedBlock().getState()).getRotation().toString()); } if (BlockStorage.getStorage(e.getClickedBlock().getWorld()).hasInventory(e.getClickedBlock().getLocation())) { - p.sendMessage("&dInventory: " + "&2\u2714"); + p.sendMessage("§dInventory: " + "§2\u2714"); } else { - p.sendMessage("&dInventory: " + "&4\u2718"); + p.sendMessage("§dInventory: " + "§4\u2718"); } if (BlockStorage.check(e.getClickedBlock()).isTicking()) { - p.sendMessage("&dTicking: " + "&2\u2714"); - p.sendMessage(" &dAsync: &e" + (BlockStorage.check(e.getClickedBlock()).getTicker().isSynchronized() ? "&4\u2718": "&2\u2714")); - p.sendMessage(" &dTimings: &e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock()) + "ms"); - p.sendMessage(" &dTotal Timings: &e" + SlimefunStartup.ticker.getTimings(BlockStorage.checkID(e.getClickedBlock())) + "ms"); - p.sendMessage(" &dChunk Timings: &e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock().getChunk()) + "ms"); + p.sendMessage("§dTicking: " + "§2\u2714"); + p.sendMessage(" §dAsync: §e" + (BlockStorage.check(e.getClickedBlock()).getTicker().isSynchronized() ? "§4\u2718": "§2\u2714")); + p.sendMessage(" §dTimings: §e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock()) + "ms"); + p.sendMessage(" §dTotal Timings: §e" + SlimefunStartup.ticker.getTimings(BlockStorage.checkID(e.getClickedBlock())) + "ms"); + p.sendMessage(" §dChunk Timings: §e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock().getChunk()) + "ms"); } else if (BlockStorage.check(e.getClickedBlock()).getEnergyTicker() != null) { - p.sendMessage("&dTicking: " + "&b~ &3(Indirect)"); - p.sendMessage(" &dTimings: &e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock()) + "ms"); - p.sendMessage(" &dChunk Timings: &e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock().getChunk()) + "ms"); + p.sendMessage("§dTicking: " + "§b~ §3(Indirect)"); + p.sendMessage(" §dTimings: §e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock()) + "ms"); + p.sendMessage(" §dChunk Timings: §e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock().getChunk()) + "ms"); } else { - p.sendMessage("&dTicking: " + "&4\u2718"); + p.sendMessage("§dTicking: " + "§4\u2718"); } if (ChargableBlock.isChargable(e.getClickedBlock())) { - p.sendMessage("&dChargable: " + "&2\u2714"); - p.sendMessage(" &dEnergy: &e" + ChargableBlock.getCharge(e.getClickedBlock()) + " / " + ChargableBlock.getMaxCharge(e.getClickedBlock())); + p.sendMessage("§dChargable: " + "§2\u2714"); + p.sendMessage(" §dEnergy: §e" + ChargableBlock.getCharge(e.getClickedBlock()) + " / " + ChargableBlock.getMaxCharge(e.getClickedBlock())); } else { - p.sendMessage("&dChargable: " + "&4\u2718"); + p.sendMessage("§dChargable: " + "§4\u2718"); } - p.sendMessage("&6" + BlockStorage.getBlockInfoAsJson(e.getClickedBlock())); + p.sendMessage("§6" + BlockStorage.getBlockInfoAsJson(e.getClickedBlock())); p.sendMessage(" "); } break; From 2822791596e859a1b95495cb75bc64ec96f901a0 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Thu, 24 Nov 2016 17:48:11 +0100 Subject: [PATCH 37/37] Farmer Android was missing...? --- src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java b/src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java index 7d1ed43d4..860c58015 100644 --- a/src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java +++ b/src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java @@ -699,7 +699,8 @@ public class SlimefunItems { BOOSTED_URANIUM = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjgzN2NhMTJmMjIyZjQ3ODcxOTZhMTdiOGFiNjU2OTg1Zjg0MDRjNTA3NjdhZGJjYjZlN2YxNDI1NGZlZSJ9fX0="), "&2Boosted Uranium", "", "&2Radiation Level: HIGH", "&4&oHazmat Suit required"); PROGRAMMABLE_ANDROID = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzUwM2NiN2VkODQ1ZTdhNTA3ZjU2OWFmYzY0N2M0N2FjNDgzNzcxNDY1YzlhNjc5YTU0NTk0Yzc2YWZiYSJ9fX0="), "&cProgrammable Android &7(Normal)", "", "&8\u21E8 &7Function: None", "&8\u21E8 &7Fuel Efficiency: 1.0x"); - PROGRAMMABLE_ANDROID_MINER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTYzOGEyODU0MWFiM2FlMGE3MjNkNTU3ODczOGUwODc1ODM4OGVjNGMzMzI0N2JkNGNhMTM0ODJcruciblekNDk4ZjYifX19"), "&cProgrammable Android &7(Farmer)", "", "&8\u21E8 &7Function: Farming", "&8\u21E8 &7Fuel Efficiency: 1.0x"); + PROGRAMMABLE_ANDROID_FARMER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjlkMzMzNTdlODQxODgyM2JmNzgzZGU5MmRlODAyOTFiNGViZDM5MmFlYzg3MDY2OThlMDY4OTZkNDk4ZjYifX19"), "&cProgrammable Android &7(Farmer)", "", "&8\u21E8 &7Function: Farming", "&8\u21E8 &7Fuel Efficiency: 1.0x"); + PROGRAMMABLE_ANDROID_MINER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTYzOGEyODU0MWFiM2FlMGE3MjNkNTU3ODczOGUwODc1ODM4OGVjNGMzMzI0N2JkNGNhMTM0ODJhZWYzMzQifX19"), "§cProgrammable Android &7(Miner)", "", "§8\u21E8 §7Function: Mining", "§8\u21E8 §7Fuel Efficiency: 1.0x"); PROGRAMMABLE_ANDROID_WOODCUTTER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDMyYTgxNDUxMDE0MjIwNTE2OWExYWQzMmYwYTc0NWYxOGU5Y2I2YzY2ZWU2NGVjYTJlNjViYWJkZWY5ZmYifX19"), "&cProgrammable Android &7(Woodcutter)", "", "&8\u21E8 &7Function: Woodcutting", "&8\u21E8 &7Fuel Efficiency: 1.0x"); PROGRAMMABLE_ANDROID_BUTCHER = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvM2I0NzJkZjBhZDlhM2JlODhmMmU1ZDVkNDIyZDAyYjExNmQ2NGQ4ZGYxNDc1ZWQzMmU1NDZhZmM4NGIzMSJ9fX0="), "&cProgrammable Android &7(Butcher)", "", "&8\u21E8 &7Function: Slaughtering", "&8\u21E8 &7Damage: 4", "&8\u21E8 &7Fuel Efficiency: 1.0x"); PROGRAMMABLE_ANDROID_FISHERMAN = new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzQ1ZTg3MzNhNzMxMTQzMzNiOThiMzYwMTc1MTI0MTcyMmY0NzEzZTFhMWE1ZDM2ZmJiMTMyNDkzZjFjNyJ9fX0="), "&cProgrammable Android &7(Fisherman)", "", "&8\u21E8 &7Function: Fishing", "&8\u21E8 &7Success Rate: 10%", "&8\u21E8 &7Fuel Efficiency: 1.0x");