diff --git a/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java b/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java index 766364fef..25ac142df 100644 --- a/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java +++ b/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java @@ -2284,7 +2284,7 @@ public class SlimefunSetup { 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.COBBLESTONE, 16), new ItemStack(Material.LAVA_BUCKET), new ItemStack(Material.LEAVES, 16), new ItemStack(Material.WATER_BUCKET), new ItemStack(Material.HARD_CLAY, 12), new ItemStack(Material.WATER_BUCKET)}) + new ItemStack [] {new ItemStack(Material.COBBLESTONE, 16), new ItemStack(Material.LAVA_BUCKET), new ItemStack(Material.LEAVES, 16), new ItemStack(Material.WATER_BUCKET), new ItemStack(Material.HARD_CLAY, 12), new ItemStack(Material.LAVA_BUCKET)}) .register(true, new ItemInteractionHandler() { @Override @@ -2297,6 +2297,7 @@ public class SlimefunSetup { for (ItemStack convert: RecipeType.getRecipeInputs(machine)) { if (input != null) { if (SlimefunManager.isItemSimiliar(input, convert, true)) { + e.setCancelled(true); ItemStack removing = input.clone(); removing.setAmount(convert.getAmount()); p.getInventory().removeItem(removing); @@ -2305,7 +2306,7 @@ public class SlimefunSetup { @Override public void run() { - if (input.getType() == Material.COBBLESTONE) { + if (input.getType() == Material.COBBLESTONE || input.getType() == Material.HARD_CLAY) { block.setType(Material.LAVA); block.setData((byte) 7); block.getWorld().playSound(block.getLocation(), Sound.BLOCK_LAVA_POP, 1F, 1F); @@ -2319,7 +2320,7 @@ public class SlimefunSetup { @Override public void run() { - if (input.getType() == Material.COBBLESTONE) { + if (input.getType() == Material.COBBLESTONE || input.getType() == Material.HARD_CLAY) { block.setType(Material.LAVA); block.setData((byte) 6); block.getWorld().playSound(block.getLocation(), Sound.BLOCK_LAVA_POP, 1F, 1F); @@ -2333,7 +2334,7 @@ public class SlimefunSetup { @Override public void run() { - if (input.getType() == Material.COBBLESTONE) { + if (input.getType() == Material.COBBLESTONE || input.getType() == Material.HARD_CLAY) { block.setType(Material.LAVA); block.setData((byte) 5); block.getWorld().playSound(block.getLocation(), Sound.BLOCK_LAVA_POP, 1F, 1F); @@ -2347,7 +2348,7 @@ public class SlimefunSetup { @Override public void run() { - if (input.getType() == Material.COBBLESTONE) { + if (input.getType() == Material.COBBLESTONE || input.getType() == Material.HARD_CLAY) { block.setType(Material.LAVA); block.setData((byte) 4); block.getWorld().playSound(block.getLocation(), Sound.BLOCK_LAVA_POP, 1F, 1F); @@ -2361,7 +2362,7 @@ public class SlimefunSetup { @Override public void run() { - if (input.getType() == Material.COBBLESTONE) { + if (input.getType() == Material.COBBLESTONE || input.getType() == Material.HARD_CLAY) { block.setType(Material.LAVA); block.setData((byte) 3); block.getWorld().playSound(block.getLocation(), Sound.BLOCK_LAVA_POP, 1F, 1F); @@ -2375,7 +2376,7 @@ public class SlimefunSetup { @Override public void run() { - if (input.getType() == Material.COBBLESTONE) { + if (input.getType() == Material.COBBLESTONE || input.getType() == Material.HARD_CLAY) { block.setType(Material.LAVA); block.setData((byte) 2); block.getWorld().playSound(block.getLocation(), Sound.BLOCK_LAVA_POP, 1F, 1F); @@ -2389,7 +2390,7 @@ public class SlimefunSetup { @Override public void run() { - if (input.getType() == Material.COBBLESTONE) { + if (input.getType() == Material.COBBLESTONE || input.getType() == Material.HARD_CLAY) { block.setType(Material.LAVA); block.setData((byte) 1); block.getWorld().playSound(block.getLocation(), Sound.BLOCK_LAVA_POP, 1F, 1F); @@ -2403,7 +2404,7 @@ public class SlimefunSetup { @Override public void run() { - if (input.getType() == Material.COBBLESTONE) { + if (input.getType() == Material.COBBLESTONE || input.getType() == Material.HARD_CLAY) { block.setType(Material.STATIONARY_LAVA); block.setData((byte) 0); block.getWorld().playSound(block.getLocation(), Sound.BLOCK_LAVA_POP, 1F, 1F); diff --git a/src/me/mrCookieSlime/Slimefun/listeners/BackpackListener.java b/src/me/mrCookieSlime/Slimefun/listeners/BackpackListener.java index 01f05c9d1..97274b1c6 100644 --- a/src/me/mrCookieSlime/Slimefun/listeners/BackpackListener.java +++ b/src/me/mrCookieSlime/Slimefun/listeners/BackpackListener.java @@ -6,6 +6,7 @@ import me.mrCookieSlime.Slimefun.Variables; import me.mrCookieSlime.Slimefun.SlimefunStartup; import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.Juice; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunBackpack; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.Setup.Messages; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; @@ -18,8 +19,10 @@ import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; +import org.bukkit.event.inventory.ClickType; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryCloseEvent; +import org.bukkit.event.player.PlayerDropItemEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; @@ -40,28 +43,40 @@ public class BackpackListener implements Listener { } } + @EventHandler + public void onItemDrop(PlayerDropItemEvent e) { + if (Variables.backpack.containsKey(e.getPlayer().getUniqueId())){ + ItemStack item = e.getItemDrop().getItemStack(); + SlimefunItem sfItem = SlimefunItem.getByItem(item); + if (sfItem instanceof SlimefunBackpack) e.setCancelled(true); + } + } + @EventHandler public void onClick(InventoryClickEvent e) { if (Variables.backpack.containsKey(e.getWhoClicked().getUniqueId())) { ItemStack item = Variables.backpack.get(e.getWhoClicked().getUniqueId()); - if (SlimefunManager.isItemSimiliar(item, SlimefunItem.getItem("COOLER"), false)) { - SlimefunItem sfItem = SlimefunItem.getByItem(e.getCurrentItem()); - if (e.getCurrentItem() == null); - else if (sfItem == null) e.setCancelled(true); - else if (!(sfItem instanceof Juice)) e.setCancelled(true); + if (e.getClick() == ClickType.NUMBER_KEY) { + ItemStack hotbarItem = e.getWhoClicked().getInventory().getItem(e.getHotbarButton()); + SlimefunItem sfItem = SlimefunItem.getByItem(hotbarItem); + if (hotbarItem != null && hotbarItem.getType().toString().contains("SHULKER_BOX")) e.setCancelled(true); + else if (sfItem instanceof SlimefunBackpack) e.setCancelled(true); + } + else { + SlimefunItem sfItem = SlimefunItem.getByItem(e.getCurrentItem()); + if (SlimefunManager.isItemSimiliar(item, SlimefunItem.getItem("COOLER"), false)) { + if (e.getCurrentItem() == null); + else if (sfItem == null) e.setCancelled(true); + else if (!(sfItem instanceof Juice)) e.setCancelled(true); + } + else if (e.getCurrentItem() != null && e.getCurrentItem().getType().toString().contains("SHULKER_BOX")) e.setCancelled(true); + else if (sfItem instanceof SlimefunBackpack) e.setCancelled(true); + else if (SlimefunManager.isItemSimiliar(e.getCurrentItem(), SlimefunItems.VOIDBAG_SMALL, false)) e.setCancelled(true); + else if (SlimefunManager.isItemSimiliar(e.getCurrentItem(), SlimefunItems.VOIDBAG_MEDIUM, false)) e.setCancelled(true); + else if (SlimefunManager.isItemSimiliar(e.getCurrentItem(), SlimefunItems.VOIDBAG_BIG, false)) e.setCancelled(true); + else if (SlimefunManager.isItemSimiliar(e.getCurrentItem(), SlimefunItems.VOIDBAG_LARGE, false)) e.setCancelled(true); + else if (SlimefunManager.isItemSimiliar(e.getCurrentItem(), SlimefunItems.BOUND_VOIDBAG, false)) e.setCancelled(true); } - else if (SlimefunManager.isItemSimiliar(e.getCurrentItem(), item, true)) e.setCancelled(true); - else if (SlimefunManager.isItemSimiliar(e.getCurrentItem(), SlimefunItems.BACKPACK_SMALL, false)) e.setCancelled(true); - else if (SlimefunManager.isItemSimiliar(e.getCurrentItem(), SlimefunItems.BACKPACK_MEDIUM, false)) e.setCancelled(true); - else if (SlimefunManager.isItemSimiliar(e.getCurrentItem(), SlimefunItems.BACKPACK_LARGE, false)) e.setCancelled(true); - else if (SlimefunManager.isItemSimiliar(e.getCurrentItem(), SlimefunItems.WOVEN_BACKPACK, false)) e.setCancelled(true); - else if (SlimefunManager.isItemSimiliar(e.getCurrentItem(), SlimefunItems.GILDED_BACKPACK, false)) e.setCancelled(true); - else if (SlimefunManager.isItemSimiliar(e.getCurrentItem(), SlimefunItems.BOUND_BACKPACK, false)) e.setCancelled(true); - else if (SlimefunManager.isItemSimiliar(e.getCurrentItem(), SlimefunItems.VOIDBAG_SMALL, false)) e.setCancelled(true); - else if (SlimefunManager.isItemSimiliar(e.getCurrentItem(), SlimefunItems.VOIDBAG_MEDIUM, false)) e.setCancelled(true); - else if (SlimefunManager.isItemSimiliar(e.getCurrentItem(), SlimefunItems.VOIDBAG_BIG, false)) e.setCancelled(true); - else if (SlimefunManager.isItemSimiliar(e.getCurrentItem(), SlimefunItems.VOIDBAG_LARGE, false)) e.setCancelled(true); - else if (SlimefunManager.isItemSimiliar(e.getCurrentItem(), SlimefunItems.BOUND_VOIDBAG, false)) e.setCancelled(true); } }