Do not dump water when clicking on a door in the nether.

Fixes https://github.com/BentoBoxWorld/Greenhouses/issues/70
This commit is contained in:
tastybento 2021-01-28 20:13:27 -08:00
parent 8118280129
commit 63e6a5d3b0
1 changed files with 6 additions and 25 deletions

View File

@ -10,11 +10,9 @@ import org.bukkit.block.Block;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockPistonExtendEvent;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerBucketEmptyEvent;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.event.player.PlayerTeleportEvent;
@ -40,15 +38,11 @@ public class GreenhouseEvents implements Listener {
* @param e - event
*/
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled=true)
public void onPlayerInteractInNether(PlayerInteractEvent e) {
if (!e.getPlayer().getWorld().getEnvironment().equals(World.Environment.NETHER)) {
return;
}
if (e.getAction().equals(Action.RIGHT_CLICK_BLOCK) && e.getItem() != null && e.getItem().getType().equals(Material.WATER_BUCKET)
&& addon.getManager().getMap().inGreenhouse(e.getClickedBlock().getLocation())) {
e.setCancelled(true);
e.getClickedBlock().getRelative(e.getBlockFace()).setType(Material.WATER);
e.getItem().setType(Material.BUCKET);
public void onPlayerInteractInNether(PlayerBucketEmptyEvent e) {
if (e.getPlayer().getWorld().getEnvironment().equals(World.Environment.NETHER)
&& e.getBucket().equals(Material.WATER_BUCKET)
&& addon.getManager().getMap().inGreenhouse(e.getBlockClicked().getLocation())) {
e.getBlockClicked().getRelative(e.getBlockFace()).setType(Material.WATER);
}
}
@ -137,19 +131,6 @@ public class GreenhouseEvents implements Listener {
});
}
/**
* Prevents placing of blocks above the greenhouses
* @param e - event
*/
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled=true)
public void onPlayerBlockPlace(final BlockPlaceEvent e) {
if (checkBlockHeight(e.getBlock())) {
e.setCancelled(true);
User user = User.getInstance(e.getPlayer());
user.sendMessage("greenhouses.error.cannot-place");
}
}
private boolean checkBlockHeight(Block block) {
return addon.getManager().getMap().getGreenhouse(block.getLocation())
.filter(g -> g.getCeilingHeight() < block.getY())