@EventHandler public void onPlayerPreLogin(final AsyncPlayerPreLoginEvent event) { getUserSubjects().get(event.getUniqueId().toString()).exceptionally(e -> { logger.warn(t("Error while loading data for user %s/%s during prelogin: %s", event.getName(), event.getUniqueId().toString(), e.getMessage()), e); return null; }); }
@EventHandler(priority = EventPriority.HIGHEST) public void onConnect(AsyncPlayerPreLoginEvent event) { String result = Universal.get().callConnection(event.getName(), event.getAddress().getHostAddress()); if (result != null) { event.disallow(AsyncPlayerPreLoginEvent.Result.KICK_BANNED, result); } }
@EventHandler(priority = EventPriority.HIGH) public void onLogin(AsyncPlayerPreLoginEvent e) { if (!cm.isAntiDoubleLogin) { return; } String username = e.getName(); if (username == null) { return; } if (this.checkOnline(username)) { e.disallow(Result.KICK_OTHER, i18n.tr("antiDoubleLoginMessage")); } }
@EventHandler(priority = EventPriority.NORMAL) public void onPlayerPreLogin(AsyncPlayerPreLoginEvent event) { final String ip = event.getAddress().getHostAddress().trim(); final boolean isAdmin = plugin.al.getEntryByIp(ip) != null; // Check if the player is already online for (Player onlinePlayer : server.getOnlinePlayers()) { if (!onlinePlayer.getName().equalsIgnoreCase(event.getName())) { continue; } if (isAdmin) { event.allow(); FSync.playerKick(onlinePlayer, "An admin just logged in with the username you are using."); return; } event.disallow(AsyncPlayerPreLoginEvent.Result.KICK_OTHER, "Your username is already logged into this server."); return; } }
/** * Ensure a PlayerData instance exists for later use. * * @param event */ private void onAsyncPlayerPreLogin(final AsyncPlayerPreLoginEvent event) { final UUID playerId = event.getUniqueId(); // Treat carefully :). if (playerData.containsKey(playerId)) { // Skip if a PlayerData instance already exists. return; } else { // Create with default world data. getPlayerData(playerId, event.getName(), true, worldDataManager.getDefaultWorldData()).addTag(PlayerData.TAG_OPTIMISTIC_CREATE); } }
@EventHandler(priority = EventPriority.HIGHEST) public void onPreLogin(AsyncPlayerPreLoginEvent preLoginEvent) { if (preLoginEvent.getLoginResult() != Result.ALLOWED) { //in this event isCancelled option in the annotation doesn't work return; } UUID playerUuid = preLoginEvent.getUniqueId(); String playerName = preLoginEvent.getName(); UserPreference preferences = core.getStorage().getPreferences(playerUuid); if (preferences == null) { return; } plugin.startSession(playerUuid, preferences); Optional<SkinModel> optSkin = preferences.getTargetSkin(); if (optSkin.isPresent()) { SkinModel targetSkin = optSkin.get(); if (!preferences.isKeepSkin()) { targetSkin = core.checkAutoUpdate(targetSkin); } preferences.setTargetSkin(targetSkin); save(preferences); } else if (core.getConfig().getBoolean("restoreSkins")) { refetchSkin(playerName, preferences); } if (!preferences.getTargetSkin().isPresent()) { getRandomSkin().ifPresent(preferences::setTargetSkin); } }