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