Skip to content

Commit e69deab

Browse files
committed
Detect more changes to Cauldrons
1 parent 49efcea commit e69deab

3 files changed

Lines changed: 32 additions & 13 deletions

File tree

src/com/dre/brewery/P.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,9 @@ public void onEnable() {
102102
p.getServer().getPluginManager().registerEvents(entityListener, p);
103103
p.getServer().getPluginManager().registerEvents(inventoryListener, p);
104104
p.getServer().getPluginManager().registerEvents(worldListener, p);
105+
if (use1_9) {
106+
p.getServer().getPluginManager().registerEvents(new CauldronListener(), p);
107+
}
105108

106109
// Heartbeat
107110
p.getServer().getScheduler().runTaskTimer(p, new BreweryRunnable(), 650, 1200);
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.dre.brewery.listeners;
2+
3+
import com.dre.brewery.BCauldron;
4+
import org.bukkit.event.EventHandler;
5+
import org.bukkit.event.EventPriority;
6+
import org.bukkit.event.Listener;
7+
import org.bukkit.event.block.CauldronLevelChangeEvent;
8+
9+
public class CauldronListener implements Listener {
10+
11+
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
12+
public void onCauldronChange(CauldronLevelChangeEvent event) {
13+
if (event.getNewLevel() == 0 && event.getOldLevel() != 0) {
14+
if (event.getReason() == CauldronLevelChangeEvent.ChangeReason.BOTTLE_FILL) {
15+
return;
16+
}
17+
BCauldron.remove(event.getBlock());
18+
} else if (event.getNewLevel() == 3 && event.getOldLevel() != 3) {
19+
BCauldron.remove(event.getBlock());
20+
}
21+
}
22+
}

src/com/dre/brewery/listeners/PlayerListener.java

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public void onPlayerInteract(PlayerInteractEvent event) {
3939
Material materialInHand = event.getMaterial();
4040
ItemStack item = event.getItem();
4141

42-
if (materialInHand == null) {
42+
if (materialInHand == null || materialInHand == Material.BUCKET) {
4343
return;
4444

4545
} else if (materialInHand == Material.WATCH) {
@@ -64,22 +64,16 @@ public void onPlayerInteract(PlayerInteractEvent event) {
6464
}
6565
return;
6666

67-
// reset cauldron when refilling to prevent
68-
// unlimited source of potions
67+
// reset cauldron when refilling to prevent unlimited source of potions
6968
} else if (materialInHand == Material.WATER_BUCKET) {
70-
if (BCauldron.getFillLevel(clickedBlock) != 0 && BCauldron.getFillLevel(clickedBlock) < 2) {
71-
// will only remove when existing
72-
BCauldron.remove(clickedBlock);
69+
if (!P.use1_9) {
70+
if (BCauldron.getFillLevel(clickedBlock) != 0 && BCauldron.getFillLevel(clickedBlock) < 2) {
71+
// will only remove when existing
72+
BCauldron.remove(clickedBlock);
73+
}
7374
}
7475
return;
7576

76-
// Its possible to empty a Cauldron with a Bucket in 1.9
77-
} else if (P.use1_9 && materialInHand == Material.BUCKET) {
78-
if (BCauldron.getFillLevel(clickedBlock) == 2) {
79-
// will only remove when existing
80-
BCauldron.remove(clickedBlock);
81-
}
82-
return;
8377
}
8478

8579
// Check if fire alive below cauldron when adding ingredients

0 commit comments

Comments
 (0)