Skip to content

Commit cfb5511

Browse files
committed
feat: when block fade to water (ex: ice block)
1 parent 04b0721 commit cfb5511

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

src/main/java/br/minilambda/event/DirtToMudUsingWater.java

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import org.bukkit.event.EventHandler;
77
import org.bukkit.event.Listener;
88
import org.bukkit.event.block.BlockDispenseEvent;
9+
import org.bukkit.event.block.BlockFadeEvent;
910
import org.bukkit.event.block.BlockFromToEvent;
1011
import org.bukkit.event.block.BlockPlaceEvent;
1112
import org.bukkit.event.player.PlayerBucketEmptyEvent;
@@ -146,4 +147,35 @@ public void onDispenseWater(BlockDispenseEvent event){
146147
block.setType(Material.MUD);
147148
}
148149
}
150+
151+
@EventHandler
152+
public void onBlockFadeToWater(BlockFadeEvent event){
153+
/*
154+
* When block fade to water (ex: ice block).
155+
*/
156+
// Getting fadded block.
157+
Block fadedBlock = event.getBlock();
158+
// Exit if new block state is different of water.
159+
if(event.getNewState().getType() != Material.WATER){
160+
return;
161+
}
162+
163+
// Iterating block direction weights.
164+
for(Integer[] weight : this.blockDirections){
165+
// Getting block.
166+
Block block = fadedBlock.getWorld().getBlockAt(
167+
fadedBlock.getX() + weight[0],
168+
fadedBlock.getY() + weight[1],
169+
fadedBlock.getZ() + weight[2]
170+
);
171+
172+
// Jump to next loop if block is different of dirt.
173+
if(block.getType() != Material.DIRT){
174+
continue;
175+
}
176+
177+
// Else, set block type to mud block.
178+
block.setType(Material.MUD);
179+
}
180+
}
149181
}

0 commit comments

Comments
 (0)