Buggy code:
public class CaptureThePointsBlockListener extends BlockListener { private CaptureThePoints ctp ; public boolean capturegame = false ; public boolean preGame = true ; public double loadDouble ( String s ) { } public Integer loadInt ( String s ) { } public boolean loadBoolean ( String s ) { } public String loadString ( String s ) { } public CaptureThePointsBlockListener ( CaptureThePoints ctp ) { } Plugin checkPlugin ( String ctpname ) { } public DyeColor itsColor ( Block b ) { } public boolean didSomeoneWin ( ) { } public String addPoints ( String aTeam , String gainedpoint ) { } public String subtractPoints ( String aTeam , String lostpoint ) { } public void restoreThings ( Player p ) { } public boolean isAlreadyInGame ( Player p ) { } public void assignRole ( Player p , String role ) { } public void endGame ( boolean noRewards ) { } @ Override public void onBlockBreak ( BlockBreakEvent event ) { if ( ( ctp . playerData . containsKey ( event . getPlayer ( ) ) ) && ( ctp . playerData . get ( event . getPlayer ( ) ) . isInLobby ) ) { int playerLocX = event . getPlayer ( ) . getLocation ( ) . getBlockX ( ) ; int playerLocY = ( event . getPlayer ( ) . getLocation ( ) . getBlockY ( ) ) - 1 ; int playerLocZ = event . getPlayer ( ) . getLocation ( ) . getBlockZ ( ) ; Block block = event . getBlock ( ) ; if ( ( ( playerLocX == ( block . getX ( ) ) ) && ( playerLocY == ( block . getY ( ) ) ) ) && ( playerLocZ == ( block . getZ ( ) ) ) ) { ctp . playerData . get ( event . getPlayer ( ) ) . justJoined = true ; ctp . playerNameForTeleport = event . getPlayer ( ) . getName ( ) ; ctp . getServer ( ) . getScheduler ( ) . scheduleSyncDelayedTask ( ctp , new Runnable ( ) { @ Override public void run ( ) { if ( ! ( ctp . playerNameForTeleport . isEmpty ( ) ) ) { ctp . playerData . get ( ctp . getServer ( ) . getPlayer ( ctp . playerNameForTeleport ) ) . justJoined = false ; ctp . playerNameForTeleport = "" ; } } <START_BUG> } , 20L ) ; <END_BUG> } event . setCancelled ( true ) ; return ; } if ( ! ( ctp . isGameRunning ( ) ) ) { return ; } Block block = event . getBlock ( ) ; Player player = event . getPlayer ( ) ; BlockState state = block . getState ( ) ; MaterialData data = state . getData ( ) ; if ( isAlreadyInGame ( player ) ) { boolean helmetRemoved = ctp . playerListener . checkHelmet ( player ) ; if ( helmetRemoved ) { ctp . playerListener . fixHelmet ( player ) ; event . setCancelled ( true ) ; return ; } if ( state instanceof Sign ) { event . setCancelled ( true ) ; return ; } if ( data instanceof Wool ) { Location loc = block . getLocation ( ) ; for ( CTPPoints point : ctp . mainArena . capturePoints ) { Location pointLocation = new Location ( player . getWorld ( ) , point . x , point . y , point . z ) ; double distance = pointLocation . distance ( loc ) ; if ( distance < 5.0 ) { if ( ( point . pointDirection ) == null ) { if ( checkForFill ( point , loc , ctp . playerData . get ( player ) . color , ( ( Wool ) ( data ) ) . getColor ( ) . toString ( ) , true ) ) { if ( ctp . playerData . get ( player ) . color . equalsIgnoreCase ( ( ( Wool ) ( data ) ) . getColor ( ) . toString ( ) ) ) { event . setCancelled ( true ) ; return ; } if ( ( point . controledByTeam ) != null ) { point . controledByTeam = null ; Util . sendMessageToPlayers ( ctp , subtractPoints ( ( ( Wool ) ( data ) ) . getColor ( ) . toString ( ) , point . name ) ) ; break ; } } } else { if ( checkForFillVert ( point , loc , ctp . playerData . get ( player ) . color , ( ( Wool ) ( data ) ) . getColor ( ) . toString ( ) , true ) ) { if ( ctp . playerData . get ( player ) . color . equalsIgnoreCase ( ( ( Wool ) ( data ) ) . getColor ( ) . toString ( ) ) ) { event . setCancelled ( true ) ; return ; } if ( ( point . controledByTeam ) != null ) { point . controledByTeam = null ; Util . sendMessageToPlayers ( ctp , subtractPoints ( ( ( Wool ) ( data ) ) . getColor ( ) . toString ( ) , point . name ) ) ; break ; } } } } } } ctp . arenaRestore . addBlock ( block , true ) ; if ( ! ( ctp . configOptions . breakingBlocksDropsItems ) ) { if ( ! ( event . isCancelled ( ) ) ) { event . setCancelled ( true ) ; block . setType ( AIR ) ; } return ; } } } private boolean isInsidePoint ( CTPPoints point , Location loc ) { } private boolean isInsidePointVert ( CTPPoints point , Location loc ) { } private boolean checkForColor ( String color , Location loc1 , Location loc2 , Location loc3 ) { }

Fix:
} , 5L ) ;