Buggy code:
public class BukkitPlotListener implements Listener { private final PlotMe_Core api ; private final PlotMe_CorePlugin plugin ; private final PlotMeCoreManager manager ; public BukkitPlotListener ( PlotMe_CorePlugin instance ) { } @ EventHandler ( priority = EventPriority . HIGH ) public void onBlockBreak ( BlockBreakEvent event ) { } @ EventHandler ( priority = EventPriority . HIGH ) public void onBlockPlace ( BlockPlaceEvent event ) { } @ EventHandler ( priority = EventPriority . HIGH , ignoreCancelled = true ) public void onPlayerBucketEmpty ( PlayerBucketEmptyEvent event ) { Player player = event . getPlayer ( ) ; <START_BUG> BukkitLocation location = new BukkitLocation ( event . getBlockClicked ( ) . getLocation ( ) ) ; <END_BUG> if ( ! ( player . hasPermission ( ADMIN_BUILDANYWHERE ) ) ) { if ( manager . isPlotWorld ( location ) ) { String id = manager . getPlotId ( location ) ; if ( id . isEmpty ( ) ) { player . sendMessage ( api . getUtil ( ) . C ( "ErrCannotBuild" ) ) ; event . setCancelled ( true ) ; } else { PlotToClear ptc = api . getPlotLocked ( location . getWorld ( ) . getName ( ) , id ) ; if ( ptc != null ) { switch ( ptc . getReason ( ) ) { case Clear : player . sendMessage ( api . getUtil ( ) . C ( "MsgPlotLockedClear" ) ) ; break ; case Reset : player . sendMessage ( api . getUtil ( ) . C ( "MsgPlotLockedReset" ) ) ; break ; case Expired : player . sendMessage ( api . getUtil ( ) . C ( "MsgPlotLockedExpired" ) ) ; break ; } event . setCancelled ( true ) ; } else { Plot plot = manager . getPlotById ( id , location . getWorld ( ) ) ; if ( ( plot == null ) || ( ! ( plot . isAllowed ( player . getName ( ) , player . getUniqueId ( ) ) ) ) ) { player . sendMessage ( api . getUtil ( ) . C ( "ErrCannotBuild" ) ) ; event . setCancelled ( true ) ; } } } } } } @ EventHandler ( priority = EventPriority . HIGH , ignoreCancelled = true ) public void onPlayerBucketFill ( PlayerBucketFillEvent event ) { } @ SuppressWarnings ( "deprecation" ) @ EventHandler ( priority = EventPriority . HIGH , ignoreCancelled = true ) public void onPlayerInteract ( PlayerInteractEvent event ) { } @ EventHandler ( priority = EventPriority . HIGH , ignoreCancelled = true ) public void onBlockSpread ( BlockSpreadEvent event ) { } @ EventHandler ( priority = EventPriority . HIGH , ignoreCancelled = true ) public void onBlockForm ( BlockFormEvent event ) { } @ EventHandler ( priority = EventPriority . HIGH , ignoreCancelled = true ) public void onBlockDamage ( BlockDamageEvent event ) { } @ EventHandler ( priority = EventPriority . HIGH , ignoreCancelled = true ) public void onBlockFade ( BlockFadeEvent event ) { } @ EventHandler ( priority = EventPriority . HIGH , ignoreCancelled = true ) public void onBlockFromTo ( BlockFromToEvent event ) { } @ EventHandler ( priority = EventPriority . HIGH , ignoreCancelled = true ) public void onBlockGrow ( BlockGrowEvent event ) { } @ EventHandler ( priority = EventPriority . HIGH , ignoreCancelled = true ) public void onBlockPistonExtend ( BlockPistonExtendEvent event ) { } @ EventHandler ( priority = EventPriority . HIGH , ignoreCancelled = true ) public void onBlockPistonRetract ( BlockPistonRetractEvent event ) { } @ EventHandler ( priority = EventPriority . HIGH , ignoreCancelled = true ) public void onStructureGrow ( StructureGrowEvent event ) { } @ EventHandler ( priority = EventPriority . HIGH , ignoreCancelled = true ) public void onEntityExplode ( EntityExplodeEvent event ) { } @ EventHandler ( priority = EventPriority . HIGH , ignoreCancelled = true ) public void onBlockIgnite ( BlockIgniteEvent event ) { } @ EventHandler ( priority = EventPriority . HIGH , ignoreCancelled = true ) public void onHangingPlace ( HangingPlaceEvent event ) { } @ EventHandler ( priority = EventPriority . HIGH , ignoreCancelled = true ) public void onHangingBreakByEntity ( HangingBreakByEntityEvent event ) { } @ EventHandler ( priority = EventPriority . HIGH , ignoreCancelled = true ) public void onPlayerInteractEntity ( PlayerInteractEntityEvent event ) { } @ EventHandler ( priority = EventPriority . HIGH , ignoreCancelled = true ) public void onPlayerInteractAtEntity ( PlayerInteractAtEntityEvent event ) { } @ EventHandler ( priority = EventPriority . HIGH , ignoreCancelled = true ) public void onProjectileLaunchEvent ( ProjectileLaunchEvent event ) { } @ EventHandler ( priority = EventPriority . HIGH , ignoreCancelled = true ) public void onBowEvent ( EntityShootBowEvent event ) { } @ EventHandler ( priority = EventPriority . HIGH , ignoreCancelled = true ) public void onEggEvent ( PlayerEggThrowEvent event ) { } @ EventHandler ( priority = EventPriority . HIGH , ignoreCancelled = true ) public void onCreatureSpawn ( CreatureSpawnEvent event ) { } @ EventHandler public void onEntityDamagebyEntity ( EntityDamageByEntityEvent event ) { } @ EventHandler public void onPlotWorldLoad ( PlotWorldLoadEvent event ) { } @ EventHandler ( ignoreCancelled = true ) public void onPlayerQuit ( PlayerQuitEvent event ) { } @ EventHandler ( ignoreCancelled = true ) public void onPlayerJoin ( PlayerJoinEvent event ) { } @ EventHandler ( priority = EventPriority . HIGH , ignoreCancelled = true ) public void onEntityInteract ( EntityInteractEvent event ) { } }

Fix:
BukkitLocation location = new BukkitLocation ( event . getBlockClicked ( ) . getLocation ( ) . add ( event . getBlockFace ( ) . getModX ( ) , event . getBlockFace ( ) . getModY ( ) , event . getBlockFace ( ) . getModZ ( ) ) ) ;