/** * Removes from db characters that should be deleted (their deletion time has passed). * * @param account */ private static void removeDeletedCharacters(Account account) { /* Removes chars that should be removed */ Iterator<PlayerAccountData> it = account.iterator(); while (it.hasNext()) { PlayerAccountData pad = it.next(); Race race = pad.getPlayerCommonData().getRace(); long deletionTime = ((long) pad.getDeletionTimeInSeconds()) * 1000; if (deletionTime != 0 && deletionTime <= System.currentTimeMillis()) { it.remove(); account.decrementCountOf(race); PlayerService.deletePlayerFromDB(pad.getPlayerCommonData().getPlayerObjId()); if (GSConfig.FACTIONS_RATIO_LIMITED && pad.getPlayerCommonData().getLevel() >= GSConfig.FACTIONS_RATIO_LEVEL) { if (account.getNumberOf(race) == 0) { GameServer.updateRatio(pad.getPlayerCommonData().getRace(), -1); } } } } }