Skip to content

Commit

Permalink
Do not dump water when clicking on a door in the nether.
Browse files Browse the repository at this point in the history
Fixes #70
  • Loading branch information
tastybento committed Jan 29, 2021
1 parent 8118280 commit 63e6a5d
Showing 1 changed file with 6 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,9 @@
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;

Expand All @@ -40,15 +38,11 @@ public GreenhouseEvents(final Greenhouses addon) {
* @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);
}
}

Expand Down Expand Up @@ -137,19 +131,6 @@ public void onBlockBreak(final BlockBreakEvent e) {
});
}

/**
* 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())
Expand Down

0 comments on commit 63e6a5d

Please sign in to comment.