@EventHandler(priority = EventPriority.HIGH) public void onPlayerLogin(final PlayerLoginEvent event) { switch (event.getResult()) { case ALLOWED: case KICK_FULL: case KICK_BANNED: break; default: return; } userMap.addPrejoinedPlayer(event.getPlayer()); final IUser user = userMap.getUser(event.getPlayer()); userMap.removePrejoinedPlayer(event.getPlayer()); user.getData().setNpc(false); final long currentTime = System.currentTimeMillis(); final boolean banExpired = user.checkBanTimeout(currentTime); user.checkMuteTimeout(currentTime); user.checkJailTimeout(currentTime); if (!banExpired && (user.isBanned() || event.getResult() == Result.KICK_BANNED)) { String banReason = user.getData().getBan().getReason(); if (banReason == null || banReason.isEmpty() || banReason.equalsIgnoreCase("ban")) { banReason = _("The Ban Hammer has spoken!"); } if (user.getData().getBan().getTimeout() > 0) { //TODO: TL This banReason += "\n\n" + "Expires in " + DateUtil.formatDateDiff(user.getData().getBan().getTimeout()); } event.disallow(Result.KICK_BANNED, banReason); return; } if (server.getOnlinePlayers().length >= server.getMaxPlayers() && !Permissions.JOINFULLSERVER.isAuthorized(user)) { event.disallow(Result.KICK_FULL, _("Server is full!")); return; } event.allow(); user.setTimestamp(TimestampType.LOGIN, System.currentTimeMillis()); user.updateCompass(); user.queueSave(); }