Dont Override Interaction while Sneaking

This commit is contained in:
Sn0wStorm
2013-09-04 23:46:07 +02:00
parent bfe859d3bc
commit a990e91496
@@ -31,66 +31,68 @@ public class PlayerListener implements Listener {
if (clickedBlock != null) { if (clickedBlock != null) {
if (event.getAction() == Action.RIGHT_CLICK_BLOCK) { if (event.getAction() == Action.RIGHT_CLICK_BLOCK) {
if (clickedBlock.getType() == Material.CAULDRON) { Player player = event.getPlayer();
if (clickedBlock.getRelative(BlockFace.DOWN).getType() == Material.FIRE || clickedBlock.getRelative(BlockFace.DOWN).getType() == Material.STATIONARY_LAVA if (!player.isSneaking()) {
|| clickedBlock.getRelative(BlockFace.DOWN).getType() == Material.LAVA) { if (clickedBlock.getType() == Material.CAULDRON) {
Material materialInHand = event.getMaterial(); if (clickedBlock.getRelative(BlockFace.DOWN).getType() == Material.FIRE || clickedBlock.getRelative(BlockFace.DOWN).getType() == Material.STATIONARY_LAVA
Player player = event.getPlayer(); || clickedBlock.getRelative(BlockFace.DOWN).getType() == Material.LAVA) {
ItemStack item = event.getItem(); Material materialInHand = event.getMaterial();
ItemStack item = event.getItem();
if (materialInHand == Material.WATCH) { if (materialInHand == Material.WATCH) {
BCauldron.printTime(player, clickedBlock); BCauldron.printTime(player, clickedBlock);
// fill a glass bottle with potion // fill a glass bottle with potion
} else if (materialInHand == Material.GLASS_BOTTLE) { } else if (materialInHand == Material.GLASS_BOTTLE) {
if (player.getInventory().firstEmpty() != -1 || item.getAmount() == 1) { if (player.getInventory().firstEmpty() != -1 || item.getAmount() == 1) {
if (BCauldron.fill(player, clickedBlock)) { if (BCauldron.fill(player, clickedBlock)) {
event.setCancelled(true);
if (item.getAmount() > 1) {
item.setAmount(item.getAmount() - 1);
} else {
player.setItemInHand(new ItemStack(0));
}
}
} else {
event.setCancelled(true); event.setCancelled(true);
}
// reset cauldron when refilling to prevent
// unlimited source of potions
} else if (materialInHand == Material.WATER_BUCKET) {
if (clickedBlock.getData() != 0) {
if (clickedBlock.getData() < 3) {
// will only remove when existing
BCauldron.remove(clickedBlock);
}
}
// add ingredient to cauldron that meet the previous
// contitions
} else if (BIngredients.possibleIngredients.contains(materialInHand)) {
if (BCauldron.ingredientAdd(clickedBlock, materialInHand)) {
if (item.getAmount() > 1) { if (item.getAmount() > 1) {
item.setAmount(item.getAmount() - 1); item.setAmount(item.getAmount() - 1);
} else { } else {
player.setItemInHand(new ItemStack(0)); player.setItemInHand(new ItemStack(0));
} }
} }
} else {
event.setCancelled(true);
}
// reset cauldron when refilling to prevent
// unlimited source of potions
} else if (materialInHand == Material.WATER_BUCKET) {
if (clickedBlock.getData() != 0) {
if (clickedBlock.getData() < 3) {
// will only remove when existing
BCauldron.remove(clickedBlock);
}
}
// add ingredient to cauldron that meet the previous
// contitions
} else if (BIngredients.possibleIngredients.contains(materialInHand)) {
if (BCauldron.ingredientAdd(clickedBlock, materialInHand)) {
if (item.getAmount() > 1) {
item.setAmount(item.getAmount() - 1);
} else {
player.setItemInHand(new ItemStack(0));
}
} }
} }
} // access a barrel
// access a barrel } else if (clickedBlock.getType() == Material.FENCE || clickedBlock.getType() == Material.NETHER_FENCE || clickedBlock.getType() == Material.SIGN
} else if (clickedBlock.getType() == Material.FENCE || clickedBlock.getType() == Material.NETHER_FENCE || clickedBlock.getType() == Material.SIGN || clickedBlock.getType() == Material.WALL_SIGN) {
|| clickedBlock.getType() == Material.WALL_SIGN) { Barrel barrel = Barrel.get(clickedBlock);
Barrel barrel = Barrel.get(clickedBlock); if (barrel != null) {
if (barrel != null) { event.setCancelled(true);
event.setCancelled(true); Block broken = Barrel.getBrokenBlock(clickedBlock);
Block broken = Barrel.getBrokenBlock(clickedBlock); // barrel is built correctly
// barrel is built correctly if (broken == null) {
if (broken == null) { barrel.open(player);
barrel.open(event.getPlayer()); } else {
} else { barrel.remove(broken);
barrel.remove(broken); }
} }
} }
} }