From c762dc8461bedafb337e21fe6c75637a759d357b Mon Sep 17 00:00:00 2001 From: SoSeDiK Date: Sat, 23 Feb 2019 22:05:30 +0200 Subject: [PATCH 1/5] Updated skull rotation handling Replaced deprecated methods. Changed Ageable import. Androids can be placed in any rotation from the beginning now. --- .../Slimefun/Android/ProgrammableAndroid.java | 66 ++++++++----------- .../Slimefun/listeners/ItemListener.java | 6 +- 2 files changed, 32 insertions(+), 40 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/Android/ProgrammableAndroid.java b/src/me/mrCookieSlime/Slimefun/Android/ProgrammableAndroid.java index 7900e8324..e8d7c5e71 100644 --- a/src/me/mrCookieSlime/Slimefun/Android/ProgrammableAndroid.java +++ b/src/me/mrCookieSlime/Slimefun/Android/ProgrammableAndroid.java @@ -20,9 +20,10 @@ import org.bukkit.OfflinePlayer; import org.bukkit.Sound; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; +import org.bukkit.block.data.Ageable; +import org.bukkit.block.data.Rotatable; 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; @@ -100,7 +101,6 @@ public abstract class ProgrammableAndroid extends SlimefunItem { public abstract float getFuelEfficiency(); public abstract int getTier(); - @SuppressWarnings("deprecation") public ProgrammableAndroid(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe) { super(category, item, name, recipeType, recipe); @@ -218,12 +218,12 @@ public abstract class ProgrammableAndroid extends SlimefunItem { BlockStorage.addBlockInfo(b, "script", "START-TURN_LEFT-REPEAT"); BlockStorage.addBlockInfo(b, "index", "0"); BlockStorage.addBlockInfo(b, "fuel", "0"); - BlockStorage.addBlockInfo(b, "rotation", "NORTH"); + BlockStorage.addBlockInfo(b, "rotation", p.getFacing().toString()); BlockStorage.addBlockInfo(b, "paused", "true"); b.setType(Material.PLAYER_HEAD); - Skull skull = (Skull) b.getState(); - skull.setRotation(BlockFace.NORTH); - skull.update(true, false); + Rotatable blockData = (Rotatable) b.getBlockData(); + blockData.setRotation(p.getFacing()); + b.setBlockData(blockData); } @Override @@ -252,7 +252,6 @@ public abstract class ProgrammableAndroid extends SlimefunItem { }); } - @SuppressWarnings("deprecation") protected void tick(Block b) { try { if (!(b.getState() instanceof Skull)) { @@ -327,9 +326,9 @@ public abstract class ProgrammableAndroid extends SlimefunItem { int rotIndex = directions.indexOf(BlockFace.valueOf(BlockStorage.getLocationInfo(b.getLocation(), "rotation"))) - 1; if (rotIndex < 0) rotIndex = directions.size() - 1; BlockFace dir = directions.get(rotIndex); - Skull skull = (Skull) b.getState(); - skull.setRotation(dir); - skull.update(true, false); + Rotatable blockData = (Rotatable) b.getBlockData(); + blockData.setRotation(dir); + b.setBlockData(blockData); BlockStorage.addBlockInfo(b, "rotation", dir.toString()); break; } @@ -337,9 +336,9 @@ public abstract class ProgrammableAndroid extends SlimefunItem { int rotIndex = directions.indexOf(BlockFace.valueOf(BlockStorage.getLocationInfo(b.getLocation(), "rotation"))) + 1; if (rotIndex == directions.size()) rotIndex = 0; BlockFace dir = directions.get(rotIndex); - Skull skull = (Skull) b.getState(); - skull.setRotation(dir); - skull.update(true, false); + Rotatable blockData = (Rotatable) b.getBlockData(); + blockData.setRotation(dir); + b.setBlockData(blockData); BlockStorage.addBlockInfo(b, "rotation", dir.toString()); break; } @@ -652,7 +651,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { entities: for (Entity n: AndroidStatusHologram.getNearbyEntities(b, 4D + getTier())) { if (n instanceof Monster) continue; - if (n instanceof Ageable && !((Ageable) n).isAdult()) continue; + if (n instanceof org.bukkit.entity.Ageable && !((org.bukkit.entity.Ageable) n).isAdult()) continue; switch (BlockFace.valueOf(BlockStorage.getLocationInfo(b.getLocation(), "rotation"))) { case NORTH: { if (n instanceof LivingEntity && !(n instanceof ArmorStand) && !(n instanceof Player) && n.getLocation().getZ() < b.getZ()) { @@ -709,16 +708,14 @@ 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.PLAYER_HEAD); - - Skull skull = (Skull) block.getState(); - skull.setRotation(face); - skull.update(true, false); + Rotatable blockData = (Rotatable) block.getBlockData(); + blockData.setRotation(face); + block.setBlockData(blockData); CustomSkull.setSkull(block, CustomSkull.getTexture(getItem())); b.setType(Material.AIR); BlockStorage.moveBlockInfo(b.getLocation(), block.getLocation()); @@ -752,7 +749,6 @@ public abstract class ProgrammableAndroid extends SlimefunItem { } } - @SuppressWarnings("deprecation") private void movedig(Block b, BlockFace face, Block block) { Collection drops = block.getDrops(); if (!blockblacklist.contains(block.getType()) && !drops.isEmpty() && CSCoreLib.getLib().getProtectionManager().canBuild(UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), block)) { @@ -763,14 +759,11 @@ public abstract class ProgrammableAndroid extends SlimefunItem { if (SlimefunItem.blockhandler.containsKey(item.getID())) { if (SlimefunItem.blockhandler.get(item.getID()).onBreak(null, block, item, UnregisterReason.ANDROID_DIG)) { pushItems(b, BlockStorage.retrieve(block)); - block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType()); - block.setType(Material.PLAYER_HEAD); - - Skull skull = (Skull) block.getState(); - skull.setRotation(face); - skull.update(true, false); + Rotatable blockData = (Rotatable) block.getBlockData(); + blockData.setRotation(face); + block.setBlockData(blockData); CustomSkull.setSkull(block, CustomSkull.getTexture(getItem())); b.setType(Material.AIR); BlockStorage.moveBlockInfo(b.getLocation(), block.getLocation()); @@ -784,10 +777,9 @@ public abstract class ProgrammableAndroid extends SlimefunItem { pushItems(b, items); block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType()); block.setType(Material.PLAYER_HEAD); - - Skull skull = (Skull) block.getState(); - skull.setRotation(face); - skull.update(true, false); + Rotatable blockData = (Rotatable) block.getBlockData(); + blockData.setRotation(face); + block.setBlockData(blockData); CustomSkull.setSkull(block, CustomSkull.getTexture(getItem())); b.setType(Material.AIR); BlockStorage.moveBlockInfo(b.getLocation(), block.getLocation()); @@ -807,7 +799,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { } private boolean isFullGrown(Block block){ - org.bukkit.block.data.Ageable ageable = ((org.bukkit.block.data.Ageable)block.getBlockData()); + Ageable ageable = ((Ageable) block.getBlockData()); return ageable.getAge() >= ageable.getMaximumAge(); } @@ -819,7 +811,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { ItemStack drop = new ItemStack(Material.WHEAT, CSCoreLib.randomizer().nextInt(3) + 1); if (fits(b, drop)) { pushItems(b, drop); - org.bukkit.block.data.Ageable ageable = (org.bukkit.block.data.Ageable)block.getBlockData(); + Ageable ageable = (Ageable) block.getBlockData(); ageable.setAge(0); block.setBlockData(ageable); block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType()); @@ -832,7 +824,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { ItemStack drop = new ItemStack(Material.POTATO, CSCoreLib.randomizer().nextInt(3) + 1); if (fits(b, drop)) { pushItems(b, drop); - org.bukkit.block.data.Ageable ageable = (org.bukkit.block.data.Ageable)block.getBlockData(); + Ageable ageable = (Ageable) block.getBlockData(); ageable.setAge(0); block.setBlockData(ageable); block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType()); @@ -845,7 +837,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { ItemStack drop = new ItemStack(Material.CARROT, CSCoreLib.randomizer().nextInt(3) + 1); if (fits(b, drop)) { pushItems(b, drop); - org.bukkit.block.data.Ageable ageable = (org.bukkit.block.data.Ageable)block.getBlockData(); + Ageable ageable = (Ageable) block.getBlockData(); ageable.setAge(0); block.setBlockData(ageable); block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType()); @@ -858,7 +850,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { ItemStack drop = new ItemStack(Material.BEETROOT, CSCoreLib.randomizer().nextInt(3) + 1); if (fits(b, drop)) { pushItems(b, drop); - org.bukkit.block.data.Ageable ageable = (org.bukkit.block.data.Ageable)block.getBlockData(); + Ageable ageable = (Ageable) block.getBlockData(); ageable.setAge(0); block.setBlockData(ageable); block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType()); @@ -871,7 +863,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { ItemStack drop = new ItemStack(Material.COCOA_BEANS, CSCoreLib.randomizer().nextInt(3) + 1); if (fits(b, drop)) { pushItems(b, drop); - org.bukkit.block.data.Ageable ageable = (org.bukkit.block.data.Ageable)block.getBlockData(); + Ageable ageable = (Ageable) block.getBlockData(); ageable.setAge(0); block.setBlockData(ageable); block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType()); @@ -884,7 +876,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem { ItemStack drop = new ItemStack(Material.NETHER_WART, CSCoreLib.randomizer().nextInt(3) + 1); if (fits(b, drop)) { pushItems(b, drop); - org.bukkit.block.data.Ageable ageable = (org.bukkit.block.data.Ageable)block.getBlockData(); + Ageable ageable = (Ageable) block.getBlockData(); ageable.setAge(0); block.setBlockData(ageable); block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType()); diff --git a/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java b/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java index b9c85e00e..793af48f3 100644 --- a/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java +++ b/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java @@ -1,4 +1,3 @@ - package me.mrCookieSlime.Slimefun.listeners; import java.util.List; @@ -12,6 +11,7 @@ import org.bukkit.block.BlockFace; import org.bukkit.block.BrewingStand; import org.bukkit.block.Hopper; import org.bukkit.block.Skull; +import org.bukkit.block.data.Rotatable; import org.bukkit.entity.FallingBlock; import org.bukkit.entity.Player; import org.bukkit.entity.Wither; @@ -110,11 +110,11 @@ public class ItemListener implements Listener { } else if (BlockStorage.hasBlockInfo(e.getClickedBlock())) { p.sendMessage(" "); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&d" + e.getClickedBlock().getType() + ":" + e.getClickedBlock().getData() + " &e@ X: " + e.getClickedBlock().getX() + " Y: " + e.getClickedBlock().getY() + " Z: " + e.getClickedBlock().getZ())); + p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&d" + e.getClickedBlock().getType() + " &e@ X: " + e.getClickedBlock().getX() + " Y: " + e.getClickedBlock().getY() + " Z: " + e.getClickedBlock().getZ())); p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&dID: " + "&e" + BlockStorage.checkID(e.getClickedBlock()))); if (e.getClickedBlock().getState() instanceof Skull) { p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&dSkull: " + "&2\u2714")); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', " &dRotation: &e" + ((Skull) e.getClickedBlock().getState()).getRotation().toString())); + p.sendMessage(ChatColor.translateAlternateColorCodes('&', " &dRotation: &e" + ((Rotatable) e.getClickedBlock().getBlockData()).getRotation().toString())); } if (BlockStorage.getStorage(e.getClickedBlock().getWorld()).hasInventory(e.getClickedBlock().getLocation())) { p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&dInventory: " + "&2\u2714")); From fab821742d9683f0f565197b4e0e5c7b1b5ee4b9 Mon Sep 17 00:00:00 2001 From: SoSeDiK Date: Sat, 23 Feb 2019 22:21:03 +0200 Subject: [PATCH 2/5] Updated deprecated code parts Also replaced spaces with tabs. --- .../Slimefun/listeners/ItemListener.java | 102 ++++++++---------- 1 file changed, 44 insertions(+), 58 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java b/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java index 793af48f3..e48c5cd80 100644 --- a/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java +++ b/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java @@ -66,11 +66,6 @@ public class ItemListener implements Listener { plugin.getServer().getPluginManager().registerEvents(this, plugin); } - /** - * Listens to InventoryMoveItemEvent to handle IGNITION_CHAMBER. - * @param e InventoryMoveItemEvent - * @since 4.1.11 - */ @EventHandler public void onIgnitionChamberItemMove(InventoryMoveItemEvent e) { if (e.getInitiator().getHolder() instanceof Hopper) { @@ -80,7 +75,6 @@ public class ItemListener implements Listener { } } - @SuppressWarnings("deprecation") @EventHandler public void debug(PlayerInteractEvent e) { if (e.getAction().equals(Action.PHYSICAL) || !e.getHand().equals(EquipmentSlot.HAND)) return; @@ -124,7 +118,7 @@ public class ItemListener implements Listener { } if (BlockStorage.check(e.getClickedBlock()).isTicking()) { p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&dTicking: " + "&2\u2714")); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', " &dAsync: &e" + (BlockStorage.check(e.getClickedBlock()).getTicker().isSynchronized() ? "&4\u2718": "&2\u2714"))); + p.sendMessage(ChatColor.translateAlternateColorCodes('&', " &dAsync: &e" + (BlockStorage.check(e.getClickedBlock()).getBlockTicker().isSynchronized() ? "&4\u2718": "&2\u2714"))); p.sendMessage(ChatColor.translateAlternateColorCodes('&', " &dTimings: &e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock()) + "ms")); p.sendMessage(ChatColor.translateAlternateColorCodes('&', " &dTotal Timings: &e" + SlimefunStartup.ticker.getTimings(BlockStorage.checkID(e.getClickedBlock())) + "ms")); p.sendMessage(ChatColor.translateAlternateColorCodes('&', " &dChunk Timings: &e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock().getChunk()) + "ms")); @@ -158,8 +152,7 @@ public class ItemListener implements Listener { } } - @SuppressWarnings("deprecation") - @EventHandler(priority=EventPriority.NORMAL) + @EventHandler(priority = EventPriority.NORMAL) public void onRightClick(ItemUseEvent e) { if (e.getParentEvent() != null && !e.getParentEvent().getHand().equals(EquipmentSlot.HAND)) { return; @@ -167,7 +160,7 @@ public class ItemListener implements Listener { final Player p = e.getPlayer(); ItemStack item = e.getItem(); - + // water place under head bug fix if (e != null && e.getPlayer() != null && e.getParentEvent().getAction() != null && e.getParentEvent().getAction() == Action.RIGHT_CLICK_BLOCK && e.getParentEvent().getBlockFace() != null && e.getPlayer().getInventory() != null && e.getPlayer().getInventory().getItemInMainHand() != null && e.getPlayer().getInventory().getItemInMainHand().getType() == Material.WATER_BUCKET) { Location clicked = e.getClickedBlock().getLocation(); @@ -178,7 +171,7 @@ public class ItemListener implements Listener { return; } } - + if (SlimefunManager.isItemSimiliar(item, SlimefunGuide.getItem(BookDesign.BOOK), true)) { if (p.isSneaking()) SlimefunGuide.openSettings(p, item); else SlimefunGuide.openGuide(p, true); @@ -192,7 +185,7 @@ public class ItemListener implements Listener { else p.chat("/sf cheat"); } else if (SlimefunManager.isItemSimiliar(item, SlimefunGuide.getDeprecatedItem(true), true)) { - item = SlimefunGuide.getItem(true); + item = SlimefunGuide.getItem(BookDesign.BOOK); p.getInventory().setItemInMainHand(item); PlayerInventory.update(p); @@ -200,7 +193,7 @@ public class ItemListener implements Listener { else SlimefunGuide.openGuide(p, true); } else if (SlimefunManager.isItemSimiliar(item, SlimefunGuide.getDeprecatedItem(false), true)) { - item = SlimefunGuide.getItem(false); + item = SlimefunGuide.getItem(BookDesign.CHEST); p.getInventory().setItemInMainHand(item); PlayerInventory.update(p); @@ -210,13 +203,13 @@ public class ItemListener implements Listener { else if (SlimefunManager.isItemSimiliar(e.getPlayer().getInventory().getItemInMainHand(), SlimefunItems.DEBUG_FISH, true) || SlimefunManager.isItemSimiliar(e.getPlayer().getInventory().getItemInOffHand(), SlimefunItems.DEBUG_FISH, true)) { } else if (Slimefun.hasUnlocked(p, item, true)) { - for (ItemHandler handler: SlimefunItem.getHandlers("ItemInteractionHandler")) { + for (ItemHandler handler : SlimefunItem.getHandlers("ItemInteractionHandler")) { if (((ItemInteractionHandler) handler).onRightClick(e, p, item)) return; } if (SlimefunManager.isItemSimiliar(item, SlimefunItems.DURALUMIN_MULTI_TOOL, false) || SlimefunManager.isItemSimiliar(item, SlimefunItems.SOLDER_MULTI_TOOL, false) || SlimefunManager.isItemSimiliar(item, SlimefunItems.BILLON_MULTI_TOOL, false) || SlimefunManager.isItemSimiliar(item, SlimefunItems.STEEL_MULTI_TOOL, false) || SlimefunManager.isItemSimiliar(item, SlimefunItems.DAMASCUS_STEEL_MULTI_TOOL, false) || SlimefunManager.isItemSimiliar(item, SlimefunItems.REINFORCED_ALLOY_MULTI_TOOL, false) || SlimefunManager.isItemSimiliar(item, SlimefunItems.CARBONADO_MULTI_TOOL, false)) { e.setCancelled(true); ItemStack tool = null; - for (ItemStack mTool: new ItemStack[] {SlimefunItems.DURALUMIN_MULTI_TOOL, SlimefunItems.SOLDER_MULTI_TOOL, SlimefunItems.BILLON_MULTI_TOOL, SlimefunItems.STEEL_MULTI_TOOL, SlimefunItems.DAMASCUS_STEEL_MULTI_TOOL, SlimefunItems.REINFORCED_ALLOY_MULTI_TOOL, SlimefunItems.CARBONADO_MULTI_TOOL}) { + for (ItemStack mTool : new ItemStack[] {SlimefunItems.DURALUMIN_MULTI_TOOL, SlimefunItems.SOLDER_MULTI_TOOL, SlimefunItems.BILLON_MULTI_TOOL, SlimefunItems.STEEL_MULTI_TOOL, SlimefunItems.DAMASCUS_STEEL_MULTI_TOOL, SlimefunItems.REINFORCED_ALLOY_MULTI_TOOL, SlimefunItems.CARBONADO_MULTI_TOOL}) { if (mTool.getItemMeta().getLore().get(0).equalsIgnoreCase(item.getItemMeta().getLore().get(0))) { tool = mTool; break; @@ -231,14 +224,14 @@ public class ItemListener implements Listener { float charge = ItemEnergy.getStoredEnergy(item); float cost = 0.3F; if (charge >= cost) { - p.setItemInHand(ItemEnergy.chargeItem(item, -cost)); + p.getEquipment().setItemInMainHand(ItemEnergy.chargeItem(item, -cost)); Bukkit.getPluginManager().callEvent(new ItemUseEvent(e.getParentEvent(), SlimefunItem.getByID((String) Slimefun.getItemValue(SlimefunItem.getByItem(tool).getID(), "mode." + modes.get(index) + ".item")).getItem(), e.getClickedBlock())); } } else { index++; if (index == modes.size()) index = 0; - Messages.local.sendTranslation(p, "messages.mode-change", true, new Variable("%device%", "Multi Tool"), new Variable("%mode%", (String) Slimefun.getItemValue(SlimefunItem.getByItem(tool).getName(), "mode." + modes.get(index) + ".name"))); + Messages.local.sendTranslation(p, "messages.mode-change", true, new Variable("%device%", "Multi Tool"), new Variable("%mode%", (String) Slimefun.getItemValue(SlimefunItem.getByItem(tool).getID(), "mode." + modes.get(index) + ".name"))); Variables.mode.put(p.getUniqueId(), index); } } @@ -308,8 +301,7 @@ public class ItemListener implements Listener { else if (item.getType() == Material.POTION) { SlimefunItem sfItem = SlimefunItem.getByItem(item); if (sfItem != null && sfItem instanceof Juice) { - // Fix for 1.11 and 1.12 where Saturation potions are no longer working - + // Fix for Saturation on potions is no longer working for (PotionEffect effect : ((PotionMeta) item.getItemMeta()).getCustomEffects()) { if (effect.getType().equals(PotionEffectType.SATURATION)) { p.addPotionEffect(new PotionEffect(PotionEffectType.SATURATION, effect.getDuration(), effect.getAmplifier())); @@ -341,20 +333,14 @@ public class ItemListener implements Listener { Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() { - @Override - public void run() { - if (m == 0) { - p.getInventory().setItemInMainHand(null); - } - else if (m == 1) { - p.getInventory().setItemInOffHand(null); - } - else if (m == 2) { - p.getInventory().removeItem(new ItemStack(Material.GLASS_BOTTLE, 1)); - } - } + @Override + public void run() { + if (m == 0) p.getEquipment().setItemInMainHand(null); + else if (m == 1) p.getEquipment().setItemInOffHand(null); + else if (m == 2) p.getInventory().removeItem(new ItemStack(Material.GLASS_BOTTLE, 1)); + } - }, 1L); + }, 1L); } } } @@ -363,17 +349,17 @@ public class ItemListener implements Listener { } @EventHandler - public void onCraft(CraftItemEvent e) { - for (ItemStack item: e.getInventory().getContents()) { - if (SlimefunItem.getByItem(item) != null && !(SlimefunItem.getByItem(item).isReplacing())) { - e.setCancelled(true); - Messages.local.sendTranslation((Player) e.getWhoClicked(), "workbench.not-enhanced", true); - break; - } - } - } + public void onCraft(CraftItemEvent e) { + for (ItemStack item : e.getInventory().getContents()) { + if (SlimefunItem.getByItem(item) != null && !(SlimefunItem.getByItem(item).isReplacing())) { + e.setCancelled(true); + Messages.local.sendTranslation((Player) e.getWhoClicked(), "workbench.not-enhanced", true); + break; + } + } + } - @EventHandler(priority=EventPriority.LOWEST) + @EventHandler(priority = EventPriority.LOWEST) public void onEntityChangeBlock(EntityChangeBlockEvent e) { if (e.getEntity() instanceof FallingBlock) { if (Variables.blocks.contains(e.getEntity().getUniqueId())) { @@ -385,28 +371,28 @@ public class ItemListener implements Listener { SlimefunItem item = BlockStorage.check(e.getBlock()); if (item != null) { if (item.getID().equals("WITHER_PROOF_OBSIDIAN")) e.setCancelled(true); - if (item.getID().equals("WITHER_PROOF_GLASS")) e.setCancelled(true); + else if (item.getID().equals("WITHER_PROOF_GLASS")) e.setCancelled(true); } } } @EventHandler - public void onAnvil(InventoryClickEvent e) { - if (e.getRawSlot() == 2 && e.getWhoClicked() instanceof Player && e.getInventory().getType() == InventoryType.ANVIL) { + 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, true)) return; + if (SlimefunItem.getByItem(e.getInventory().getContents()[0]) != null && !SlimefunItem.isDisabled(e.getInventory().getContents()[0])) { + e.setCancelled(true); + Messages.local.sendTranslation((Player) e.getWhoClicked(), "anvil.not-working", true); + } + } + } - if (SlimefunItem.getByItem(e.getInventory().getContents()[0]) != null && !SlimefunItem.isDisabled(e.getInventory().getContents()[0])) { - e.setCancelled(true); - Messages.local.sendTranslation((Player) e.getWhoClicked(), "anvil.not-working", true); - } - } - } - @EventHandler (ignoreCancelled = true) - public void onPreBrew(InventoryClickEvent e) { - Inventory inventory = e.getInventory(); - if (inventory instanceof BrewerInventory && inventory.getHolder() instanceof BrewingStand) { - if(e.getRawSlot() < inventory.getSize()) e.setCancelled(SlimefunItem.getByItem(e.getCursor()) != null); - } - } + public void onPreBrew(InventoryClickEvent e) { + Inventory inventory = e.getInventory(); + if (inventory instanceof BrewerInventory && inventory.getHolder() instanceof BrewingStand) { + if (e.getRawSlot() < inventory.getSize()) e.setCancelled(SlimefunItem.getByItem(e.getCursor()) != null); + } + } + } From ad2ebaddc97343d053b0338e46fc0b70266f89e6 Mon Sep 17 00:00:00 2001 From: SoSeDiK Date: Sat, 23 Feb 2019 22:45:06 +0200 Subject: [PATCH 3/5] Fix for #825 Fixed the issue #825 --- .../Slimefun/listeners/ItemListener.java | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java b/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java index e48c5cd80..5bc35bf36 100644 --- a/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java +++ b/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java @@ -7,7 +7,6 @@ import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; -import org.bukkit.block.BlockFace; import org.bukkit.block.BrewingStand; import org.bukkit.block.Hopper; import org.bukkit.block.Skull; @@ -161,13 +160,12 @@ public class ItemListener implements Listener { final Player p = e.getPlayer(); ItemStack item = e.getItem(); - // water place under head bug fix - if (e != null && e.getPlayer() != null && e.getParentEvent().getAction() != null && e.getParentEvent().getAction() == Action.RIGHT_CLICK_BLOCK && e.getParentEvent().getBlockFace() != null && e.getPlayer().getInventory() != null && e.getPlayer().getInventory().getItemInMainHand() != null && e.getPlayer().getInventory().getItemInMainHand().getType() == Material.WATER_BUCKET) { - Location clicked = e.getClickedBlock().getLocation(); - BlockFace f = e.getParentEvent().getBlockFace(); - Location water = new Location(clicked.getWorld(), clicked.getX() + f.getModX(), clicked.getY() + f.getModY(), clicked.getZ() + f.getModZ()); - if (e.getPlayer().getLocation().getWorld().getBlockAt(water) != null && e.getPlayer().getLocation().getWorld().getBlockAt(water).getType() == Material.PLAYER_HEAD) { + // Fix for placing water on head + if (e.getParentEvent().getAction() == Action.RIGHT_CLICK_BLOCK && item != null && item.getType() == Material.WATER_BUCKET) { + Location water = e.getClickedBlock().getRelative(e.getParentEvent().getBlockFace()).getLocation(); + if ((p.getWorld().getBlockAt(water).getType() == Material.PLAYER_HEAD || p.getWorld().getBlockAt(water).getType() == Material.PLAYER_WALL_HEAD) && BlockStorage.hasBlockInfo(water)) { e.setCancelled(true); + p.getWorld().getBlockAt(water).getState().update(true, false); return; } } From 0728523ab7339bb95d64b70b33594caed69986a5 Mon Sep 17 00:00:00 2001 From: SoSeDiK Date: Sat, 23 Feb 2019 22:59:12 +0200 Subject: [PATCH 4/5] Keep Waterlogged BlockData Glass panes now keep their Waterlogged BlockData --- .../Slimefun/Objects/tasks/RainbowTicker.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/Objects/tasks/RainbowTicker.java b/src/me/mrCookieSlime/Slimefun/Objects/tasks/RainbowTicker.java index a10a966e8..24627a2ce 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/tasks/RainbowTicker.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/tasks/RainbowTicker.java @@ -6,6 +6,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.handlers.BlockTicker; import org.bukkit.block.Block; +import org.bukkit.block.data.Waterlogged; public class RainbowTicker extends BlockTicker { @@ -25,13 +26,19 @@ public class RainbowTicker extends BlockTicker { @Override public void tick(Block b, SlimefunItem item, Config data) { - if (MaterialHelper.isWool(b.getType())){ + if (MaterialHelper.isWool(b.getType())) { b.setType(MaterialHelper.WoolColours[meta], false); - }else if (MaterialHelper.isStainedGlass(b.getType())) { + } else if (MaterialHelper.isStainedGlass(b.getType())) { b.setType(MaterialHelper.StainedGlassColours[meta], false); - }else if (MaterialHelper.isStainedGlassPane(b.getType())){ + } else if (MaterialHelper.isStainedGlassPane(b.getType())){ + boolean waterlogged = ((Waterlogged) b.getBlockData()).isWaterlogged(); b.setType(MaterialHelper.StainedGlassPaneColours[meta], true); - }else if (MaterialHelper.isTerracotta(b.getType())){ + if (waterlogged) { + Waterlogged block = (Waterlogged) b.getBlockData(); + block.setWaterlogged(true); + b.setBlockData(block); + } + } else if (MaterialHelper.isTerracotta(b.getType())){ b.setType(MaterialHelper.TerracottaColours[meta], false); } } From ef868eae31cdf6eee83e7ad6fc938c71480bf967 Mon Sep 17 00:00:00 2001 From: SoSeDiK Date: Sat, 23 Feb 2019 23:14:01 +0200 Subject: [PATCH 5/5] Removed unused imports --- src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java | 2 +- .../Slimefun/Objects/SlimefunItem/EnhancedFurnace.java | 1 - src/me/mrCookieSlime/Slimefun/Setup/SlimefunManager.java | 2 -- src/me/mrCookieSlime/Slimefun/api/network/Network.java | 1 - src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java | 2 +- 5 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java b/src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java index 360a14b3f..4989d9b9e 100644 --- a/src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java +++ b/src/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java @@ -327,7 +327,7 @@ public class SlimefunItems { /* Gems */ public static ItemStack SYNTHETIC_DIAMOND = new CustomItem(Material.DIAMOND, "&bSynthetic Diamond", 0); public static ItemStack SYNTHETIC_EMERALD = new CustomItem(Material.EMERALD, "&bSynthetic Emerald", 0); - public static ItemStack SYNTHETIC_SAPPHIRE; + public static ItemStack SYNTHETIC_SAPPHIRE = null; public static ItemStack CARBONADO = null; public static ItemStack RAW_CARBONADO = null; public static ItemStack URANIUM = null; diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/EnhancedFurnace.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/EnhancedFurnace.java index 84a5bd570..1dcd95bc1 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/EnhancedFurnace.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/EnhancedFurnace.java @@ -6,7 +6,6 @@ import me.mrCookieSlime.Slimefun.Lists.Categories; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.handlers.BlockTicker; -import org.bukkit.Bukkit; import org.bukkit.block.Block; import org.bukkit.block.Furnace; import org.bukkit.inventory.ItemStack; diff --git a/src/me/mrCookieSlime/Slimefun/Setup/SlimefunManager.java b/src/me/mrCookieSlime/Slimefun/Setup/SlimefunManager.java index 19cab2caa..03e0268f6 100644 --- a/src/me/mrCookieSlime/Slimefun/Setup/SlimefunManager.java +++ b/src/me/mrCookieSlime/Slimefun/Setup/SlimefunManager.java @@ -1,12 +1,10 @@ package me.mrCookieSlime.Slimefun.Setup; import java.util.ArrayList; -import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; -import org.bukkit.Material; import org.bukkit.entity.EntityType; import org.bukkit.inventory.ItemStack; import org.bukkit.potion.PotionEffect; diff --git a/src/me/mrCookieSlime/Slimefun/api/network/Network.java b/src/me/mrCookieSlime/Slimefun/api/network/Network.java index f8cfb39cc..1dee3a877 100644 --- a/src/me/mrCookieSlime/Slimefun/api/network/Network.java +++ b/src/me/mrCookieSlime/Slimefun/api/network/Network.java @@ -8,7 +8,6 @@ import java.util.ArrayDeque; import java.util.ArrayList; import org.bukkit.Location; -import org.bukkit.Color; import me.mrCookieSlime.CSCoreLibPlugin.general.Particles.MC_1_13.ParticleEffect; import me.mrCookieSlime.Slimefun.SlimefunStartup; diff --git a/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java b/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java index 5bc35bf36..8f38a9f76 100644 --- a/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java +++ b/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java @@ -160,7 +160,7 @@ public class ItemListener implements Listener { final Player p = e.getPlayer(); ItemStack item = e.getItem(); - // Fix for placing water on head + // Fix for placing water on player heads if (e.getParentEvent().getAction() == Action.RIGHT_CLICK_BLOCK && item != null && item.getType() == Material.WATER_BUCKET) { Location water = e.getClickedBlock().getRelative(e.getParentEvent().getBlockFace()).getLocation(); if ((p.getWorld().getBlockAt(water).getType() == Material.PLAYER_HEAD || p.getWorld().getBlockAt(water).getType() == Material.PLAYER_WALL_HEAD) && BlockStorage.hasBlockInfo(water)) {