public void checkWinner() { if (doSeconds) { List<Gamer> aliveGamers = pm.getAliveGamers(); if (aliveGamers.size() == 1) { doSeconds = false; final Gamer winner = aliveGamers.get(0); Bukkit.getPluginManager().callEvent(new PlayerWinEvent(winner)); int reward = getPrize(1); if (reward > 0) winner.addBalance(reward); winner.getPlayer().setAllowFlight(true); Bukkit.getScheduler() .scheduleSyncRepeatingTask( this, new Runnable() { public void run() { Bukkit.broadcastMessage( String.format( translationsConfig.getBroadcastWinnerWon(), winner.getName())); } }, 0, mainConfig.getWonBroadcastsDelay() * 20); Bukkit.getScheduler() .scheduleSyncDelayedTask( this, new Runnable() { public void run() { String kick = String.format(translationsConfig.getKickMessageWon(), winner.getName()); shutdown(kick); } }, mainConfig.getGameShutdownDelay() * 20); } else if (aliveGamers.size() == 0) { doSeconds = false; shutdown(translationsConfig.getKickNobodyWonMessage()); } } }