diff --git a/pom.xml b/pom.xml index a883d54..d046c5f 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.dre brewery - 1.3.1 + 1.3.2 Brewery diff --git a/resources/plugin.yml b/resources/plugin.yml index 612063e..276ea28 100644 --- a/resources/plugin.yml +++ b/resources/plugin.yml @@ -1,5 +1,5 @@ name: Brewery -version: 1.3.1 +version: 1.3.2 main: com.dre.brewery.P authors: [Milan Albrecht, Frank Baumann] softdepend: [LWC, LogBlock, WorldGuard, GriefPrevention] diff --git a/src/com/dre/brewery/BCauldron.java b/src/com/dre/brewery/BCauldron.java index a7a47d4..79c8781 100644 --- a/src/com/dre/brewery/BCauldron.java +++ b/src/com/dre/brewery/BCauldron.java @@ -97,22 +97,28 @@ public class BCauldron { } ItemStack potion = bcauldron.ingredients.cook(bcauldron.state); if (potion != null) { + byte data = block.getData(); + if (data > 3) { + data = 3; + block.setData(data); + } else if (data <= 0) { + bcauldrons.remove(bcauldron); + return false; + } + data -= 1; + block.setData(data); + + if (data == 0) { + bcauldrons.remove(bcauldron); + } else { + bcauldron.someRemoved = true; + } // Bukkit Bug, inventory not updating while in event so this // will delay the give // but could also just use deprecated updateInventory() giveItem(player, potion); // player.getInventory().addItem(potion); // player.getInventory().updateInventory(); - if (block.getData() > 3) { - block.setData((byte) 3); - } - block.setData((byte) (block.getData() - 1)); - - if (block.getData() == 0) { - bcauldrons.remove(bcauldron); - } else { - bcauldron.someRemoved = true; - } return true; } } diff --git a/src/com/dre/brewery/listeners/PlayerListener.java b/src/com/dre/brewery/listeners/PlayerListener.java index e964cb1..e8c208c 100644 --- a/src/com/dre/brewery/listeners/PlayerListener.java +++ b/src/com/dre/brewery/listeners/PlayerListener.java @@ -34,46 +34,51 @@ public class PlayerListener implements Listener { Player player = event.getPlayer(); if (!player.isSneaking()) { Material type = clickedBlock.getType(); + + // Interacting with a Cauldron if (type == Material.CAULDRON) { - Block down = clickedBlock.getRelative(BlockFace.DOWN); - if (down.getType() == Material.FIRE || down.getType() == Material.STATIONARY_LAVA || down.getType() == Material.LAVA) { - Material materialInHand = event.getMaterial(); - ItemStack item = event.getItem(); + Material materialInHand = event.getMaterial(); + ItemStack item = event.getItem(); - - if (materialInHand == Material.WATCH) { - BCauldron.printTime(player, clickedBlock); + if (materialInHand == Material.WATCH) { + BCauldron.printTime(player, clickedBlock); + return; - // fill a glass bottle with potion - } else if (materialInHand == Material.GLASS_BOTTLE) { - if (player.getInventory().firstEmpty() != -1 || item.getAmount() == 1) { - if (BCauldron.fill(player, clickedBlock)) { - event.setCancelled(true); - if (player.hasPermission("brewery.cauldron.fill")) { - if (item.getAmount() > 1) { - item.setAmount(item.getAmount() - 1); - } else { - player.setItemInHand(new ItemStack(Material.AIR)); - } + // fill a glass bottle with potion + } else if (materialInHand == Material.GLASS_BOTTLE) { + if (player.getInventory().firstEmpty() != -1 || item.getAmount() == 1) { + if (BCauldron.fill(player, clickedBlock)) { + event.setCancelled(true); + if (player.hasPermission("brewery.cauldron.fill")) { + if (item.getAmount() > 1) { + item.setAmount(item.getAmount() - 1); + } else { + player.setItemInHand(new ItemStack(Material.AIR)); } } - } else { - event.setCancelled(true); } + } else { + event.setCancelled(true); + } + return; - // reset cauldron when refilling to prevent - // unlimited source of potions - } else if (materialInHand == Material.WATER_BUCKET) { - if (BCauldron.getFillLevel(clickedBlock) != 0) { - if (BCauldron.getFillLevel(clickedBlock) < 2) { - // will only remove when existing - BCauldron.remove(clickedBlock); - } - } + // reset cauldron when refilling to prevent + // unlimited source of potions + } else if (materialInHand == Material.WATER_BUCKET) { + if (BCauldron.getFillLevel(clickedBlock) != 0 && BCauldron.getFillLevel(clickedBlock) < 2) { + // will only remove when existing + BCauldron.remove(clickedBlock); + } + return; + } + + // Check if fire alive below cauldron when adding ingredients + Block down = clickedBlock.getRelative(BlockFace.DOWN); + if (down.getType() == Material.FIRE || down.getType() == Material.STATIONARY_LAVA || down.getType() == Material.LAVA) { + + // add ingredient to cauldron that meet the previous conditions + if (BIngredients.possibleIngredients.contains(materialInHand)) { - // add ingredient to cauldron that meet the previous - // contitions - } else if (BIngredients.possibleIngredients.contains(materialInHand)) { if (player.hasPermission("brewery.cauldron.insert")) { if (BCauldron.ingredientAdd(clickedBlock, item)) { boolean isBucket = item.getType().equals(Material.WATER_BUCKET) @@ -100,8 +105,8 @@ public class PlayerListener implements Listener { } else { event.setCancelled(true); } - return; } + return; } // Access a Barrel