Skip to content

Commit 3faa49a

Browse files
committed
feat: when player uses water bucket
1 parent 54f372f commit 3faa49a

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package br.minilambda.event;
2+
3+
import org.bukkit.Material;
4+
import org.bukkit.block.Block;
5+
import org.bukkit.event.EventHandler;
6+
import org.bukkit.event.Listener;
7+
import org.bukkit.event.player.PlayerBucketEmptyEvent;
8+
9+
public class DirtToMudUsingWater implements Listener {
10+
private Integer[][] blockDirections = {
11+
{0, -1, 0}, // Bottom.
12+
{-1, 0, 0}, // X negative.
13+
{+1, 0, 0}, // X positive.
14+
{0, 0, -1}, // Z negative.
15+
{0, 0, +1} // Z positive.
16+
};
17+
18+
@EventHandler
19+
public void onPlayerBucketEmptyEvent(PlayerBucketEmptyEvent event){
20+
/*
21+
* When player uses water bucket.
22+
*/
23+
// Exit if not using water bucket.
24+
if(event.getBucket() != Material.WATER_BUCKET) {
25+
return;
26+
}
27+
28+
// Get block occupied by water.
29+
Block blockOccupiedByWater = event.getBlock();
30+
31+
// Iterating block direction weights.
32+
for(Integer[] weight : this.blockDirections){
33+
// Getting block.
34+
Block block = blockOccupiedByWater.getWorld().getBlockAt(
35+
blockOccupiedByWater.getX() + weight[0],
36+
blockOccupiedByWater.getY() + weight[1],
37+
blockOccupiedByWater.getZ() + weight[2]
38+
);
39+
40+
// Jump to next loop if block is different of dirt.
41+
if(block.getType() != Material.DIRT){
42+
continue;
43+
}
44+
45+
// Else, set block type to mud block.
46+
block.setType(Material.MUD);
47+
}
48+
}
49+
50+
}

0 commit comments

Comments
 (0)