Prevent unauthorized users from taking water from waterlogged blocks
Thanks @jikoo for the snippet Closes #473 , closes #477
This commit is contained in:
parent
cd1c3d52bc
commit
9b52a0d133
|
|
@ -32,7 +32,9 @@ import org.bukkit.World;
|
||||||
import org.bukkit.World.Environment;
|
import org.bukkit.World.Environment;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.block.BlockFace;
|
import org.bukkit.block.BlockFace;
|
||||||
|
import org.bukkit.block.data.BlockData;
|
||||||
import org.bukkit.block.data.Levelled;
|
import org.bukkit.block.data.Levelled;
|
||||||
|
import org.bukkit.block.data.Waterlogged;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.entity.AbstractHorse;
|
import org.bukkit.entity.AbstractHorse;
|
||||||
import org.bukkit.entity.Animals;
|
import org.bukkit.entity.Animals;
|
||||||
|
|
@ -1565,7 +1567,14 @@ class PlayerEventHandler implements Listener
|
||||||
{
|
{
|
||||||
//exemption for cow milking (permissions will be handled by player interact with entity event instead)
|
//exemption for cow milking (permissions will be handled by player interact with entity event instead)
|
||||||
Material blockType = block.getType();
|
Material blockType = block.getType();
|
||||||
if(blockType == Material.AIR || blockType.isSolid()) return;
|
if (blockType == Material.AIR)
|
||||||
|
return;
|
||||||
|
if(blockType.isSolid())
|
||||||
|
{
|
||||||
|
BlockData blockData = block.getBlockData();
|
||||||
|
if (!(blockData instanceof Waterlogged) || !((Waterlogged)blockData).isWaterlogged())
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
instance.sendMessage(player, TextMode.Err, noBuildReason);
|
instance.sendMessage(player, TextMode.Err, noBuildReason);
|
||||||
bucketEvent.setCancelled(true);
|
bucketEvent.setCancelled(true);
|
||||||
|
|
@ -1574,7 +1583,6 @@ class PlayerEventHandler implements Listener
|
||||||
}
|
}
|
||||||
|
|
||||||
//when a player interacts with the world
|
//when a player interacts with the world
|
||||||
@SuppressWarnings("deprecation")
|
|
||||||
@EventHandler(priority = EventPriority.LOWEST)
|
@EventHandler(priority = EventPriority.LOWEST)
|
||||||
void onPlayerInteract(PlayerInteractEvent event)
|
void onPlayerInteract(PlayerInteractEvent event)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user