@EventHandler(priority = EventPriority.HIGH) public void onJoinWhileReseting(AsyncPlayerPreLoginEvent event) { if (plugin.resetMode) { event.setKickMessage(ChatMessages.resetMessage); event.setLoginResult(Result.KICK_OTHER); } }
@EventHandler public void onAsyncPlayerPreLoginEvent(AsyncPlayerPreLoginEvent e) { if (Arcade.getMatches().getStatus() == ArcadeMatchStatus.RESTARTING) { e.setLoginResult(AsyncPlayerPreLoginEvent.Result.KICK_WHITELIST); e.setKickMessage(Color.RED + "Serwer jest teraz restartowany..."); } if (this.server.isFull()) { boolean allowed = false; // TODO Mongo query to check if the player is allowed to join this server if (!allowed) { e.disallow( AsyncPlayerPreLoginEvent.Result.KICK_FULL, Color.RED + "Ten serwer jest obecnie pelny. Spróbuj " + "polaczyc sie ponownie pózniej, lub wybierz inny " + "serwer. Tylko ranga " + Color.GOLD + Color.BOLD + "VIP" + Color.RESET + Color.RED + " moze dolaczac " + "na pelne serwery."); } } }
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onPlayerLogin(final AsyncPlayerPreLoginEvent event) { if (!server.getOnlineMode()) return; if (event.getLoginResult() == AsyncPlayerPreLoginEvent.Result.KICK_BANNED) return; logger.log(Level.FINER, "Received " + event.getEventName()); final String playerName = event.getName(); if (this.isPlayerBanned(playerName)) { final BanRecord record = this.playerRecordManager.find(playerName).getActiveBan(); final String message = this.getKickMessage(record); event.disallow(AsyncPlayerPreLoginEvent.Result.KICK_BANNED, message); } }
@EventHandler(priority = EventPriority.MONITOR) public void onJoin(AsyncPlayerPreLoginEvent event) { PlayerData player = new PlayerData(event.getUniqueId(), event.getName(), event.getAddress()); try { plugin.getPlayerStorage().createOrUpdate(player); } catch (SQLException e) { PluginLogger.warn(e); return; } if (plugin.getConfiguration().isLogIpsEnabled()) { plugin.getPlayerHistoryStorage().create(player); } }
public static void handlePlayerPreLogin(AsyncPlayerPreLoginEvent event) { final String ip = event.getAddress().getHostAddress().trim(); final boolean isAdmin = TFM_AdminList.isSuperAdminSafe(null, ip); // Check if the player is already online for (Player onlinePlayer : TotalFreedomMod.server.getOnlinePlayers()) { if (!onlinePlayer.getName().equalsIgnoreCase(event.getName())) { continue; } if (!isAdmin) { event.disallow( AsyncPlayerPreLoginEvent.Result.KICK_OTHER, "Your username is already logged into this server."); } else { event.allow(); TFM_Sync.playerKick( onlinePlayer, "An admin just logged in with the username you are using."); } return; } }
@SuppressWarnings("deprecation") @EventHandler(order = Order.EARLIEST) public void onPlayerPreLogin(PlayerPreLoginEvent event) { if (event.isCancelled()) { return; } // Do both events here because Spout login events are all async org.bukkit.event.player.AsyncPlayerPreLoginEvent asyncPreLogin = new org.bukkit.event.player.AsyncPlayerPreLoginEvent(event.getName(), event.getAddress()); Bukkit.getPluginManager().callEvent(asyncPreLogin); if (asyncPreLogin.getLoginResult() != org.bukkit.event.player.AsyncPlayerPreLoginEvent.Result.ALLOWED) { toKick.put(asyncPreLogin.getName(), asyncPreLogin.getKickMessage()); return; } org.bukkit.event.player.PlayerPreLoginEvent preLogin = new org.bukkit.event.player.PlayerPreLoginEvent(event.getName(), event.getAddress()); Bukkit.getPluginManager().callEvent(preLogin); if (preLogin.getResult() != org.bukkit.event.player.PlayerPreLoginEvent.Result.ALLOWED) { toKick.put(preLogin.getName(), preLogin.getKickMessage()); return; } }
@EventHandler(priority = EventPriority.HIGHEST) public void banCheck(final AsyncPlayerPreLoginEvent event) { if (plugin.getConfiguration().isCheckOnJoin()) { // Check for new bans/mutes if (!plugin.getIpBanStorage().isBanned(event.getAddress())) { try { IpBanData ban = plugin.getIpBanStorage().retrieveBan(IPUtils.toLong(event.getAddress())); if (ban != null) { plugin.getIpBanStorage().addBan(ban); } } catch (SQLException e) { PluginLogger.warn(e); } } if (!plugin.getPlayerBanStorage().isBanned(event.getUniqueId())) { try { PlayerBanData ban = plugin.getPlayerBanStorage().retrieveBan(event.getUniqueId()); if (ban != null) { plugin.getPlayerBanStorage().addBan(ban); } } catch (SQLException e) { PluginLogger.warn(e); } } if (!plugin.getPlayerMuteStorage().isMuted(event.getUniqueId())) { try { PlayerMuteData mute = plugin.getPlayerMuteStorage().retrieveMute(event.getUniqueId()); if (mute != null) { plugin.getPlayerMuteStorage().addMute(mute); } } catch (SQLException e) { PluginLogger.warn(e); } } } if (plugin.getIpRangeBanStorage().isBanned(event.getAddress())) { IpRangeBanData data = plugin.getIpRangeBanStorage().getBan(event.getAddress()); if (data.hasExpired()) { try { plugin.getIpRangeBanStorage().unban(data, plugin.getPlayerStorage().getConsole()); } catch (SQLException e) { PluginLogger.warn(e); } return; } Message message; if (data.getExpires() == 0) { message = Message.get("baniprange.ip.disallowed"); } else { message = Message.get("tempbaniprange.ip.disallowed"); message.set("expires", DateUtils.getDifferenceFormat(data.getExpires())); } message.set("ip", event.getAddress().toString()); message.set("reason", data.getReason()); message.set("actor", data.getActor().getName()); event.setLoginResult(AsyncPlayerPreLoginEvent.Result.KICK_BANNED); event.setKickMessage(message.toString()); return; } if (plugin.getIpBanStorage().isBanned(event.getAddress())) { IpBanData data = plugin.getIpBanStorage().getBan(event.getAddress()); if (data.hasExpired()) { try { plugin.getIpBanStorage().unban(data, plugin.getPlayerStorage().getConsole()); } catch (SQLException e) { PluginLogger.warn(e); } return; } Message message; if (data.getExpires() == 0) { message = Message.get("banip.ip.disallowed"); } else { message = Message.get("tempbanip.ip.disallowed"); message.set("expires", DateUtils.getDifferenceFormat(data.getExpires())); } message.set("ip", event.getAddress().toString()); message.set("reason", data.getReason()); message.set("actor", data.getActor().getName()); event.setLoginResult(AsyncPlayerPreLoginEvent.Result.KICK_BANNED); event.setKickMessage(message.toString()); handleJoinDeny(event.getAddress().toString(), data.getReason()); return; } PlayerBanData data = plugin.getPlayerBanStorage().getBan(event.getUniqueId()); if (data != null && data.hasExpired()) { try { plugin.getPlayerBanStorage().unban(data, plugin.getPlayerStorage().getConsole()); } catch (SQLException e) { PluginLogger.warn(e); } return; } if (data == null) { return; } Message message; if (data.getExpires() == 0) { message = Message.get("ban.player.disallowed"); } else { message = Message.get("tempban.player.disallowed"); message.set("expires", DateUtils.getDifferenceFormat(data.getExpires())); } message.set("player", data.getPlayer().getName()); message.set("reason", data.getReason()); message.set("actor", data.getActor().getName()); event.setLoginResult(AsyncPlayerPreLoginEvent.Result.KICK_BANNED); event.setKickMessage(message.toString()); handleJoinDeny(data.getPlayer(), data.getReason()); }