1
mirror of https://github.com/StarWishsama/Slimefun4.git synced 2024-09-20 11:45:51 +00:00

Merge pull request #267 from VoidAngel/master

Backpack & crucible fixes
This commit is contained in:
TheBusyBiscuit 2017-04-25 18:21:34 +02:00 committed by GitHub
commit a162d3c812
2 changed files with 42 additions and 26 deletions

View File

@ -2284,7 +2284,7 @@ public class SlimefunSetup {
new SlimefunGadget(Categories.MACHINES_1, SlimefunItems.CRUCIBLE, "CRUCIBLE", RecipeType.ENHANCED_CRAFTING_TABLE, 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), 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() { .register(true, new ItemInteractionHandler() {
@Override @Override
@ -2297,6 +2297,7 @@ public class SlimefunSetup {
for (ItemStack convert: RecipeType.getRecipeInputs(machine)) { for (ItemStack convert: RecipeType.getRecipeInputs(machine)) {
if (input != null) { if (input != null) {
if (SlimefunManager.isItemSimiliar(input, convert, true)) { if (SlimefunManager.isItemSimiliar(input, convert, true)) {
e.setCancelled(true);
ItemStack removing = input.clone(); ItemStack removing = input.clone();
removing.setAmount(convert.getAmount()); removing.setAmount(convert.getAmount());
p.getInventory().removeItem(removing); p.getInventory().removeItem(removing);
@ -2305,7 +2306,7 @@ public class SlimefunSetup {
@Override @Override
public void run() { public void run() {
if (input.getType() == Material.COBBLESTONE) { if (input.getType() == Material.COBBLESTONE || input.getType() == Material.HARD_CLAY) {
block.setType(Material.LAVA); block.setType(Material.LAVA);
block.setData((byte) 7); block.setData((byte) 7);
block.getWorld().playSound(block.getLocation(), Sound.BLOCK_LAVA_POP, 1F, 1F); block.getWorld().playSound(block.getLocation(), Sound.BLOCK_LAVA_POP, 1F, 1F);
@ -2319,7 +2320,7 @@ public class SlimefunSetup {
@Override @Override
public void run() { public void run() {
if (input.getType() == Material.COBBLESTONE) { if (input.getType() == Material.COBBLESTONE || input.getType() == Material.HARD_CLAY) {
block.setType(Material.LAVA); block.setType(Material.LAVA);
block.setData((byte) 6); block.setData((byte) 6);
block.getWorld().playSound(block.getLocation(), Sound.BLOCK_LAVA_POP, 1F, 1F); block.getWorld().playSound(block.getLocation(), Sound.BLOCK_LAVA_POP, 1F, 1F);
@ -2333,7 +2334,7 @@ public class SlimefunSetup {
@Override @Override
public void run() { public void run() {
if (input.getType() == Material.COBBLESTONE) { if (input.getType() == Material.COBBLESTONE || input.getType() == Material.HARD_CLAY) {
block.setType(Material.LAVA); block.setType(Material.LAVA);
block.setData((byte) 5); block.setData((byte) 5);
block.getWorld().playSound(block.getLocation(), Sound.BLOCK_LAVA_POP, 1F, 1F); block.getWorld().playSound(block.getLocation(), Sound.BLOCK_LAVA_POP, 1F, 1F);
@ -2347,7 +2348,7 @@ public class SlimefunSetup {
@Override @Override
public void run() { public void run() {
if (input.getType() == Material.COBBLESTONE) { if (input.getType() == Material.COBBLESTONE || input.getType() == Material.HARD_CLAY) {
block.setType(Material.LAVA); block.setType(Material.LAVA);
block.setData((byte) 4); block.setData((byte) 4);
block.getWorld().playSound(block.getLocation(), Sound.BLOCK_LAVA_POP, 1F, 1F); block.getWorld().playSound(block.getLocation(), Sound.BLOCK_LAVA_POP, 1F, 1F);
@ -2361,7 +2362,7 @@ public class SlimefunSetup {
@Override @Override
public void run() { public void run() {
if (input.getType() == Material.COBBLESTONE) { if (input.getType() == Material.COBBLESTONE || input.getType() == Material.HARD_CLAY) {
block.setType(Material.LAVA); block.setType(Material.LAVA);
block.setData((byte) 3); block.setData((byte) 3);
block.getWorld().playSound(block.getLocation(), Sound.BLOCK_LAVA_POP, 1F, 1F); block.getWorld().playSound(block.getLocation(), Sound.BLOCK_LAVA_POP, 1F, 1F);
@ -2375,7 +2376,7 @@ public class SlimefunSetup {
@Override @Override
public void run() { public void run() {
if (input.getType() == Material.COBBLESTONE) { if (input.getType() == Material.COBBLESTONE || input.getType() == Material.HARD_CLAY) {
block.setType(Material.LAVA); block.setType(Material.LAVA);
block.setData((byte) 2); block.setData((byte) 2);
block.getWorld().playSound(block.getLocation(), Sound.BLOCK_LAVA_POP, 1F, 1F); block.getWorld().playSound(block.getLocation(), Sound.BLOCK_LAVA_POP, 1F, 1F);
@ -2389,7 +2390,7 @@ public class SlimefunSetup {
@Override @Override
public void run() { public void run() {
if (input.getType() == Material.COBBLESTONE) { if (input.getType() == Material.COBBLESTONE || input.getType() == Material.HARD_CLAY) {
block.setType(Material.LAVA); block.setType(Material.LAVA);
block.setData((byte) 1); block.setData((byte) 1);
block.getWorld().playSound(block.getLocation(), Sound.BLOCK_LAVA_POP, 1F, 1F); block.getWorld().playSound(block.getLocation(), Sound.BLOCK_LAVA_POP, 1F, 1F);
@ -2403,7 +2404,7 @@ public class SlimefunSetup {
@Override @Override
public void run() { public void run() {
if (input.getType() == Material.COBBLESTONE) { if (input.getType() == Material.COBBLESTONE || input.getType() == Material.HARD_CLAY) {
block.setType(Material.STATIONARY_LAVA); block.setType(Material.STATIONARY_LAVA);
block.setData((byte) 0); block.setData((byte) 0);
block.getWorld().playSound(block.getLocation(), Sound.BLOCK_LAVA_POP, 1F, 1F); block.getWorld().playSound(block.getLocation(), Sound.BLOCK_LAVA_POP, 1F, 1F);

View File

@ -6,6 +6,7 @@ import me.mrCookieSlime.Slimefun.Variables;
import me.mrCookieSlime.Slimefun.SlimefunStartup; import me.mrCookieSlime.Slimefun.SlimefunStartup;
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.Juice; 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.Objects.SlimefunItem.SlimefunItem;
import me.mrCookieSlime.Slimefun.Setup.Messages; import me.mrCookieSlime.Slimefun.Setup.Messages;
import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager;
@ -18,8 +19,10 @@ import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.block.Action; import org.bukkit.event.block.Action;
import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.InventoryCloseEvent; import org.bukkit.event.inventory.InventoryCloseEvent;
import org.bukkit.event.player.PlayerDropItemEvent;
import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta; 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 @EventHandler
public void onClick(InventoryClickEvent e) { public void onClick(InventoryClickEvent e) {
if (Variables.backpack.containsKey(e.getWhoClicked().getUniqueId())) { if (Variables.backpack.containsKey(e.getWhoClicked().getUniqueId())) {
ItemStack item = Variables.backpack.get(e.getWhoClicked().getUniqueId()); ItemStack item = Variables.backpack.get(e.getWhoClicked().getUniqueId());
if (SlimefunManager.isItemSimiliar(item, SlimefunItem.getItem("COOLER"), false)) { if (e.getClick() == ClickType.NUMBER_KEY) {
SlimefunItem sfItem = SlimefunItem.getByItem(e.getCurrentItem()); ItemStack hotbarItem = e.getWhoClicked().getInventory().getItem(e.getHotbarButton());
if (e.getCurrentItem() == null); SlimefunItem sfItem = SlimefunItem.getByItem(hotbarItem);
else if (sfItem == null) e.setCancelled(true); if (hotbarItem != null && hotbarItem.getType().toString().contains("SHULKER_BOX")) e.setCancelled(true);
else if (!(sfItem instanceof Juice)) 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);
} }
} }