@EventHandler public void onCauldronLevelChange(CauldronLevelChangeEvent event) { Player player = (Player) event.getEntity(); NovaPlayer nPlayer = PlayerManager.getPlayer(player); if(RegionManager.get(event.getBlock()) != null && (!plugin.getRegionManager().canInteract(player, event.getBlock()) || (!nPlayer.getPreferences().getBypass() && !nPlayer.hasPermission(GuildPermission.BLOCK_PLACE)))) { event.setCancelled(true); Message.CHAT_REGION_DENY_INTERACT.send(player); } }
public void a(World world, BlockPosition blockposition, IBlockData iblockdata, Entity entity) { int i = ((Integer) iblockdata.get(BlockCauldron.LEVEL)).intValue(); float f = (float) blockposition.getY() + (6.0F + (float) (3 * i)) / 16.0F; if (!world.isClientSide && entity.isBurning() && i > 0 && entity.getBoundingBox().b <= (double) f) { // CraftBukkit start if (!this.changeLevel(world, blockposition, iblockdata, i - 1, entity, CauldronLevelChangeEvent.ChangeReason.EXTINGUISH)) { return; } entity.extinguish(); // this.a(world, blockposition, iblockdata, i - 1); // CraftBukkit end } }
private boolean changeLevel(World world, BlockPosition blockposition, IBlockData iblockdata, int i, Entity entity, CauldronLevelChangeEvent.ChangeReason reason) { int newLevel = Integer.valueOf(MathHelper.clamp(i, 0, 3)); CauldronLevelChangeEvent event = new CauldronLevelChangeEvent( world.getWorld().getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ()), (entity == null) ? null : entity.getBukkitEntity(), reason, iblockdata.get(BlockCauldron.LEVEL), newLevel ); world.getServer().getPluginManager().callEvent(event); if (event.isCancelled()) { return false; } world.setTypeAndData(blockposition, iblockdata.set(BlockCauldron.LEVEL, newLevel), 2); world.updateAdjacentComparators(blockposition, this); return true; // CraftBukkit end }
public void a(World world, BlockPosition blockposition, IBlockData iblockdata, int i) { this.changeLevel(world, blockposition, iblockdata, i, null, CauldronLevelChangeEvent.ChangeReason.UNKNOWN); }