Java 类org.bukkit.event.player.AsyncPlayerPreLoginEvent 实例源码

项目:AntiBots    文件:EventListener.java   
@EventHandler
public void onPlayerJoin(AsyncPlayerPreLoginEvent event){
    if(protection){
        DataProvider dp = DataProvider.getInstance();
        ApiDataProvider adp = ApiDataProvider.getInstance();
        try{
            if(dp.getWhitelist().contains(event.getName())) return;
            if(!adp.testFor(event.getName())){
                event.disallow(AsyncPlayerPreLoginEvent.Result.KICK_OTHER, DataProvider.getInstance().getFormattedMessage());
            }
        } catch(Exception e) {
            Main.instance().getLogger().log(Level.SEVERE, "An exception occured while verifying " + event.getName() + ". Usually it's caused by bad configuration. Check your configuration, or start a new issue on GitHub!");
            event.disallow(AsyncPlayerPreLoginEvent.Result.KICK_OTHER, DataProvider.getInstance().getFormattedMessage());
        }
    }
}
项目:SamaGamesCore    文件:JoinManagerImplement.java   
public void onLogin(AsyncPlayerPreLoginEvent event)
{
    UUID player = event.getUniqueId();

    if (moderatorsExpected.contains(player)) // On traite après
        return;

    if(!playersExpected.contains(player))
    {
        JoinResponse response = requestJoin(event.getUniqueId(), true);
        if (!response.isAllowed())
        {
            event.disallow(Result.KICK_OTHER, ChatColor.RED + response.getReason());
            return;
        }
    }

    playersExpected.remove(player);

    for (IJoinHandler handler : this.joiners.values())
        handler.onLogin(player, event.getName());
}
项目:LuckPerms    文件:BukkitConnectionListener.java   
@EventHandler(priority = EventPriority.MONITOR)
public void onPlayerPreLoginMonitor(AsyncPlayerPreLoginEvent e) {
    /* Listen to see if the event was cancelled after we initially handled the connection
       If the connection was cancelled here, we need to do something to clean up the data that was loaded. */

    // Check to see if this connection was denied at LOW.
    if (this.deniedAsyncLogin.remove(e.getUniqueId())) {
        // their data was never loaded at LOW priority, now check to see if they have been magically allowed since then.

        // This is a problem, as they were denied at low priority, but are now being allowed.
        if (e.getLoginResult() == AsyncPlayerPreLoginEvent.Result.ALLOWED) {
            this.plugin.getLog().severe("Player connection was re-allowed for " + e.getUniqueId());
            e.disallow(AsyncPlayerPreLoginEvent.Result.KICK_OTHER, "");
        }

        return;
    }
}
项目:K-Security    文件:TransactionAntiBot.java   
@EventHandler
public void onAsync(AsyncPlayerPreLoginEvent event) {
    cacher.removeAndGet(event.getAddress()).ifPresent(player -> {
        sendPacket(player, factory.createLoginPacket());
        Bukkit.getScheduler().runTask(plugin, () -> ignore.addIgnore(player, Packets.Server.LOGIN));
        holder.addPlayer(player);

        sendPacket(player, factory.createTransactionPacket(0, Short.MIN_VALUE, false));
        if (latch.await(player)) {
            holder.flush(player);
            players.add(player.getAddress().getAddress().toString());
        } else {
            event.disallow(AsyncPlayerPreLoginEvent.Result.KICK_OTHER, Lang.BOT_DETECT.withSpacingPrefix());
            counter.incrementAndGet();
        }
        holder.release(player);
        latch.release(player);
        cacher.release(player);
    });
}
项目:ExilePearl    文件:TestBukkit.java   
/**
 * Creates a new player instance and adds it to the server
 * @param name The player name
 * @param uid The player UUID
 * @return The player instance
 */
public static TestPlayer createOnlinePlayer(String name, UUID uid) {        
    TestPlayer p = TestPlayer.create(name);

    final InetSocketAddress address = new InetSocketAddress("localhost", 25565);
    final AsyncPlayerPreLoginEvent preLoginEvent = new AsyncPlayerPreLoginEvent(name, address.getAddress(), uid);
    getPluginManager().callEvent(preLoginEvent);
    if (preLoginEvent.getLoginResult() != Result.ALLOWED) {
        return null;
    }

    final PlayerLoginEvent loginEvent = new PlayerLoginEvent(p, "localhost", address.getAddress());
    getPluginManager().callEvent(loginEvent);

    if (loginEvent.getResult() != PlayerLoginEvent.Result.ALLOWED) {
        return null;
    }

    final PlayerJoinEvent joinEvent = new PlayerJoinEvent(p, "");
    getPluginManager().callEvent(joinEvent);

    p.goOnline();
    return p;
}
项目:AdvancedBan    文件:BukkitMain.java   
public void onEnable() {
    instance = this;
    Universal.get().setup(new BukkitMethods());

    ConnectionListener connListener = new ConnectionListener();
    this.getServer().getPluginManager().registerEvents(connListener, this);
    this.getServer().getPluginManager().registerEvents(new ChatListener(), this);
    this.getServer().getPluginManager().registerEvents(new CommandListener(), this);

    for (Player op : Bukkit.getOnlinePlayers()) {
        AsyncPlayerPreLoginEvent apple = new AsyncPlayerPreLoginEvent(op.getName(), op.getAddress().getAddress(), op.getUniqueId());
        connListener.onConnect(apple);
        if (apple.getLoginResult() == AsyncPlayerPreLoginEvent.Result.KICK_BANNED) {
            op.kickPlayer(apple.getKickMessage());
        }
    }
}
项目:CraftoPlugin    文件:CraftoDatabase.java   
private void checkForNameChange(final CraftoPlayer player, final AsyncPlayerPreLoginEvent event) {
        if (player != null && event != null && player.getUniqueId().equals(event.getUniqueId())) {
            if (!player.getName().equalsIgnoreCase(event.getName())) { // If true, player has changed his name!
//              final String query = "INSERT INTO `cp_history` (`playerid`, `info`, `created_at`) "
//                      + "VALUES ("+player.getId()+", 'Changed name from "+player.getName()+" to "+event.getName()+".', "+new Timestamp(System.currentTimeMillis())
//                      + "); UPDATE `cp_players` SET `name`='"+event.getName()+"' WHERE `uuid`='"+event.getUniqueId()+"' LIMIT 1;";
//              this.executeAsync(Query.of(query));

                player.registerRecord(0, "Changed name from " + player.getName() + " to " + event.getName() + ".", null, null);

                this.plugin.getServer().getPluginManager().callEvent(new CraftoPlayerNameChangeEvent(player, player.getName(), event.getName()));
                ((DatabaseCraftoPlayer) player).setName(event.getName());

                // Reinsert into name map
                if (!this.namePlayerMap.containsKey(player.getName().toLowerCase())) { this.namePlayerMap.put(player.getName().toLowerCase(), new SortedList<>(1)); }
                this.namePlayerMap.get(player.getName().toLowerCase()).add(player);
            }
        }
    }
项目:CrazyLogin    文件:PlayerListener.java   
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGH)
@Permission("crazylogin.warnsession")
@Localized({ "CRAZYLOGIN.KICKED.SESSION.DUPLICATE", "CRAZYLOGIN.SESSION.DUPLICATEWARN $Name$ $IP$" })
public void PlayerLoginSessionCheck(final AsyncPlayerPreLoginEvent event) {
    if (plugin.isForceSingleSessionEnabled()) {
        final Player player = Bukkit.getPlayerExact(event.getName());
        if (player != null) {
            if (plugin.isForceSingleSessionSameIPBypassEnabled()) {
                final LoginPlayerData data = plugin.getPlayerData(player);
                if (data != null) {
                    if (event.getAddress().getHostAddress().equals(data.getLatestIP())) {
                        return;
                    }
                }
            }
            event.setLoginResult(AsyncPlayerPreLoginEvent.Result.KICK_OTHER);
            event.setKickMessage(plugin.getLocale().getLocaleMessage(player, "KICKED.SESSION.DUPLICATE"));
            plugin.broadcastLocaleMessage(true, "crazylogin.warnsession", true, "SESSION.DUPLICATEWARN", player.getName(), event.getAddress().getHostAddress());
            plugin.sendLocaleMessage("SESSION.DUPLICATEWARN", player, event.getAddress().getHostAddress(), player.getName());
            plugin.getCrazyLogger().log("AccessDenied", "Denied access for player " + player.getName() + " @ " + event.getAddress().getHostAddress() + " because of a player with this name being already online");
            return;
        }
    }
}
项目:CloudNet    文件:BukkitListener.java   
@EventHandler(priority = EventPriority.HIGHEST)
public void handle0(AsyncPlayerPreLoginEvent e)
{
    for(Player all : Bukkit.getOnlinePlayers())
        if(all.getUniqueId().equals(e.getUniqueId()))
            e.disallow(AsyncPlayerPreLoginEvent.Result.KICK_BANNED, "§cYou have to connect from a internal proxy server!");
}
项目:Warzone    文件:JoinManager.java   
@EventHandler
public void onPreLogin(AsyncPlayerPreLoginEvent event) {
    if (event.getLoginResult().equals(AsyncPlayerPreLoginEvent.Result.KICK_BANNED)) return;
    UserProfile userProfile = TGM.get().getTeamClient().login(new PlayerLogin(event.getName(), event.getUniqueId().toString(), event.getAddress().getHostAddress()));
    Bukkit.getLogger().info(userProfile.getName() + " " + userProfile.getId().toString());
    queuedJoins.add(new QueuedJoin(event.getUniqueId(), userProfile, System.currentTimeMillis()));
}
项目:EscapeLag    文件:DupeLoginPatch.java   
@EventHandler(priority = EventPriority.LOWEST)
public void onLogin(AsyncPlayerPreLoginEvent evt) {
    if (ConfigPatch.fixDupeOnline) {
        if (AzurePlayerList.contains(evt.getName())) {
            evt.setLoginResult(AsyncPlayerPreLoginEvent.Result.KICK_OTHER);
            evt.setKickMessage(ConfigPatch.messageKickDupeOnline);
        }
    }
}
项目:ProjectAres    文件:IdentityProviderImpl.java   
/**
 * Clear any nickname that collides with the real name of a player logging in.
 * This ensures that usernames + nicknames together contain no duplicates.
 * The user who's nickname was cleared is not notified of this, but this
 * should be an extremely rare situation, so it's not a big problem.
 */
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = false)
public void clearConflictingNicks(AsyncPlayerPreLoginEvent event) {
    final String name = event.getName();
    syncExecutor.execute(() -> {
        final Player player = nicknames.get(name);
        if(player != null) {
            changeIdentity(player, null);
        }
    });
}
项目:Kineticraft    文件:Punishments.java   
@EventHandler
public void onJoin(AsyncPlayerPreLoginEvent evt) {
    KCPlayer player = KCPlayer.getWrapper(evt.getUniqueId());
    if (player.isBanned())
        evt.disallow(AsyncPlayerPreLoginEvent.Result.KICK_BANNED,
            ChatColor.RED + "You are banned from Kineticraft!\n"
                    + ChatColor.RED + "Reason: " + ChatColor.YELLOW + player.getPunishments().last().getType().getDisplay() + "\n"
                    + ChatColor.RED + "Expiration: " + ChatColor.YELLOW + Utils.formatTimeFull(player.getPunishExpiry()) + "\n"
                    + ChatColor.RED + "Appeal on discord: http://kineticraft.net");
}
项目:mopm    文件:ConnectionListener.java   
@EventHandler(priority = EventPriority.MONITOR)
public void onPreLogin(AsyncPlayerPreLoginEvent event) {
    plugin.getLookupBoss().scheduleLookup(event.getAddress(), optBl -> optBl.ifPresent(proxyBlacklist -> {
        AsyncProxyDetectedEvent detectedEvent = new AsyncProxyDetectedEvent(proxyBlacklist, event.getAddress(), event.getUniqueId());
        plugin.getServer().getPluginManager().callEvent(detectedEvent);
        this.onJoinActions.put(detectedEvent.getUuid(), detectedEvent.getActions());
        this.finders.put(event.getUniqueId(), proxyBlacklist);
    }));
}
项目:NeverLag    文件:AntiDoubleLogin.java   
@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"));
    }
}
项目:VoxelGamesLibv2    文件:UserListener.java   
@EventHandler
public void onAsyncLogin(@Nonnull AsyncPlayerPreLoginEvent event) {
    if (!handler.login(event.getUniqueId())) {
        // something went horribly wrong
        // we don't have a locale here since the data was not loaded :/
        event.disallow(Result.KICK_OTHER, Lang.legacyColors(Lang.string(LangKey.DATA_NOT_LOADED)));
    }
}
项目:UHC    文件:JoinQuitHandlers.java   
@EventHandler
public void prejoin(final AsyncPlayerPreLoginEvent event){
    if (!UserManager.getInstance().getUser(event.getUniqueId()).isPresent() &&
            (GameState.current() != GameState.LOBBY && GameState.current() != GameState.STARTING)
            && UHC.getInstance().getMainConfig().isRoundBanDead()) {
        event.setKickMessage(colour("&cThe round has already started!"));
        event.setLoginResult(AsyncPlayerPreLoginEvent.Result.KICK_OTHER);
    }
}
项目:FlexMC    文件:MessageClientLoginListener.java   
private String tryLogin( ConnectionHandler connectionHandler, MessageC00LoginStart message ) {
    if ( connectionHandler.getVersion() > 338 ) {
        return "Outdated Server. Please use 1.12.1";
    }
    if ( connectionHandler.getVersion() < 338 ) {
        return "Outdated Client. Please use 1.12.1";
    }
    if ( connectionHandler.getVerifySession() != null ) {
        return "Already logging in";
    }
    if ( !Flex.getServer().isRunning() || Flex.getServer().getWorld() == null || !Flex.getServer().getWorld().isGenerated() ) {
        return "Server ist still starting up";
    }
    AsyncPlayerPreLoginEvent event = EventFactory.call( new AsyncPlayerPreLoginEvent( message.getName(), connectionHandler.getSocketAddress().getAddress(), UUID.randomUUID() ) );

    if( event.getLoginResult() != AsyncPlayerPreLoginEvent.Result.ALLOWED ) {
        return event.getKickMessage() == null ? "null" : event.getKickMessage();
    }

    if ( Flex.getServer().getConfig().isVerifyUsers() ) {
        VerifySession verifySession = new VerifySession( AuthHelper.nextToken(), message.getName() );
        connectionHandler.setVerifySession( verifySession );
        MessageS01EncryptionRequest encryptionRequest = new MessageS01EncryptionRequest( "", Flex.getServer().getKeyPair().getPublic().getEncoded(), verifySession.getToken() );
        connectionHandler.sendMessage( encryptionRequest );
        verifySession.getState().incrementAndGet();
    } else {
        connectionHandler.loginSuccess( message.getName(), UUID.nameUUIDFromBytes( ( "OfflinePlayer:" + message.getName() ).getBytes( Charsets.UTF_8 ) ) );
    }
    return null;
}
项目:ZentrelaCore    文件:PunishmentManager.java   
@EventHandler
public void onAsyncPrelogin(AsyncPlayerPreLoginEvent event) {
    InetAddress address = event.getAddress();
    String name = event.getName();
    String uuid = event.getUniqueId().toString();
    String ip = PunishmentManager.parseIP(address);
    PunishmentManager.registerIP(event.getUniqueId(), ip);
    /*
     * Check if user has a ban in effect matching either UUID or IP
     */
    AutoCloseable[] ac_dub = SQLManager.prepare("SELECT * FROM punishments WHERE uuid = ? OR ip = ?");
    try {
        PreparedStatement request_punishment_status = (PreparedStatement) ac_dub[0];
        request_punishment_status.setString(1, uuid);
        request_punishment_status.setString(2, ip);
        AutoCloseable[] ac_trip = SQLManager.executeQuery(request_punishment_status);
        ResultSet rs = (ResultSet) ac_trip[0];
        while (rs.next()) {
            Punishment pun = new Punishment();
            pun.load(rs);
            if (pun.isValid()) {
                if (pun.type == PunishmentType.BAN || pun.type == PunishmentType.IPBAN) {
                    System.out.println("Kicking " + name + " for active ban.");
                    event.disallow(Result.KICK_OTHER, pun.getReason());
                } else if (pun.type == PunishmentType.MUTE) {
                    muted_byUUID.put(uuid, pun);
                }
            }
        }
        SQLManager.close(ac_dub);
        SQLManager.close(ac_trip);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
项目:ZentrelaCore    文件:LoginLogoutManager.java   
@EventHandler
public void onAsyncPrelogin(AsyncPlayerPreLoginEvent event) {
    if (MaintenanceCommand.maintenanceMode && !MaintenanceCommand.allowed.contains(event.getUniqueId().toString())) {
        if (MotdManager.getMotd() != null)
            event.disallow(Result.KICK_OTHER, MotdManager.getMotd());
        else
            event.disallow(Result.KICK_OTHER, ChatColor.RED + "Zentrela is down for maintenance. Please check the MOTD (server list) for details!");
    }
}
项目:VoxelGamesLib    文件:UserListener.java   
@EventHandler
public void asyncLogin(@Nonnull AsyncPlayerPreLoginEvent event) {
    AsyncUserLoginEvent e = new AsyncUserLoginEvent(event.getUniqueId(), event.getName());
    eventHandler.callEvent(e);
    if (e.isCanceled()) {
        event.setLoginResult(AsyncPlayerPreLoginEvent.Result.KICK_OTHER);
        event.setKickMessage(e.getKickMessage());
    }
}
项目:DOHA-Check    文件:DOHACheck.java   
@Override
public void onEnable() {
    saveDefaultConfig();
    loadComponent(Configuration.class);

    if (Configuration.httpProxy.enabled.get())
        Unirest.setProxy(new HttpHost(Configuration.httpProxy.host.get(), Configuration.httpProxy.port.get()));

    accountTruster = new AccountTruster(new Requester(this));

    ZLib.registerEvents(new Listener() {
        @EventHandler
        public void onLogin(final AsyncPlayerPreLoginEvent event) {
            accountTruster.isHacked(event.getUniqueId(), new Callback<Boolean>() {
                public void call(Boolean hacked) {
                    if (hacked) {
                        Player player = Bukkit.getPlayer(event.getUniqueId());
                        if (player == null)
                            return;

                        player.kickPlayer(Configuration.kickReason.get());

                        for (Player p : Bukkit.getOnlinePlayers())
                            if (p.hasPermission(Configuration.annoucements.permission.get()))
                                p.sendMessage(Configuration.annoucements.message.get()
                                        .replaceAll("%player_name", player.getName())
                                        .replaceAll("%ip_address", event.getAddress().getHostAddress()));
                    }
                }
            });
        }
    });
}
项目:BeeLogin    文件:LoginEventHandler.java   
@EventHandler(priority = EventPriority.HIGHEST)
public void onPlayerLogin(AsyncPlayerPreLoginEvent event) {
    InetAddress playerAddress = event.getAddress();
    if ((Config.skipOnLoopbackAddress && playerAddress.isLoopbackAddress())
            || (Config.skipOnSiteLocalAddress && playerAddress.isSiteLocalAddress())) {
        return;
    }
    if (Config.usingBeeLoginMod) {
        BeeLogin.loginStatus.put(event.getName().toLowerCase(), false);
        event.allow();
        return;
    }
    String playerName = event.getName();
    String playerIp = playerAddress.getHostAddress().replace("/", "");
    LoginResult result = new LoginResult(Config.checkUrl, Config.queryMode, Config.encodeMode, playerName, playerIp,
            Config.serverIp, Config.serverPassword);
    if (result.getResult()) {
        event.allow();
    } else if (result.isBadIp()) {
        event.setLoginResult(AsyncPlayerPreLoginEvent.Result.KICK_OTHER);
        event.setKickMessage(Config.badIpMessage.replace("%UserIp%", playerIp));
        event.disallow(AsyncPlayerPreLoginEvent.Result.KICK_OTHER,
                Config.badIpMessage.replace("%UserIp%", playerIp));
    } else {
        event.setLoginResult(AsyncPlayerPreLoginEvent.Result.KICK_OTHER);
        event.setKickMessage(Config.kickMessage);
        event.disallow(AsyncPlayerPreLoginEvent.Result.KICK_OTHER, Config.badIpMessage);
    }
}
项目:Vanguard    文件:VanguardListener.java   
@EventHandler(priority = EventPriority.HIGHEST)
public void preAuth(AsyncPlayerPreLoginEvent ev) {
    PlayerSettings settings = Vanguard.getPlayerSettings(ev.getUniqueId());
    if (settings.getFailedAttempts() >= Configuration.getMaxAttemptFailure()) {
        ev.setLoginResult(AsyncPlayerPreLoginEvent.Result.KICK_BANNED);
        ev.setKickMessage(Configuration.getString("toomanyfailedattempts"));
    } else if (settings.getBanned() >= System.currentTimeMillis()) {
        ev.setKickMessage(Configuration.getString("vanguardauthfailure")
                .replace("$timeout$",
                        Long.toString(Configuration.getBanTimeOnFail())));

        ev.setLoginResult(AsyncPlayerPreLoginEvent.Result.KICK_BANNED);
    }
}
项目:BetterShards    文件:BetterShardsListener.java   
@EventHandler(priority = EventPriority.MONITOR)
public void playerPreLoginCacheInv(AsyncPlayerPreLoginEvent event) {
    UUID uuid = event.getUniqueId();
    if (uuid != null) {
        plugin.getLogger().log(Level.FINER, "Preparing to pre-load player data: {0}", uuid);
    } else { 
        return;
    }
    if (st == null){ // Small race condition if someone logs on as soon as the server starts.
        event.disallow(AsyncPlayerPreLoginEvent.Result.KICK_OTHER, "Please try to log in again in a moment, server is not ready to accept log-ins.");
        plugin.getLogger().log(Level.INFO, "Player {0} logged on before async process was ready, skipping.", uuid);
        return;
    }
    // caching disabled due to fail
    Future<ByteArrayInputStream> soondata = db.loadPlayerDataAsync(uuid, st.getInvIdentifier(uuid), true); // wedon't use the data, but know that it caches behind the scenes.

    try {
        ByteArrayInputStream after = soondata.get(); // I want to _INTENTIONALLY_ delay accepting the user's login until I know for sure I've got the data loaded asynchronously.
        if (after == null) {
            plugin.getLogger().log(Level.INFO, "Pre-load for player data {0} came back empty. New player? Error?", uuid);
        } else {
            plugin.getLogger().log(Level.FINER, "Pre-load for player data {0} complete.", uuid);
        }

    } catch (InterruptedException | ExecutionException e) {
        plugin.getLogger().log(Level.SEVERE, "Failed to pre-load player data: {0}", uuid);
        e.printStackTrace();
    }

    // We do this so it fetches the cache, then when called for real
    // by our CustomWorldNBTStorage class it doesn't have to wait and server won't lock.
}
项目:BetterShards    文件:BetterShardsListener.java   
@EventHandler(priority = EventPriority.LOWEST)
public void playerJoinedLobbyServer(AsyncPlayerPreLoginEvent event) {
    if (!config.get("lobby").getBool())
        return;
    UUID uuid = event.getUniqueId();
    if (st == null){ // Small race condition if someone logs on as soon as the server starts.
        plugin.getLogger().log(Level.INFO, "Player logged on before async process was ready, skipping.");
        return;
    }
    st.setInventoryIdentifier(uuid, InventoryIdentifier.IGNORE_INV);
}
项目:RedProtect    文件:RPPlayerListener.java   
@EventHandler
public void PlayerLogin(AsyncPlayerPreLoginEvent e){ 
    if (!RPConfig.getBool("server-protection.nickname-cap-filter.enabled")){
        return;
    }

    if (RedProtect.get().Ess){
        User essp = RedProtect.get().pless.getOfflineUser(e.getName());         
        if (essp != null && !essp.getConfigUUID().equals(e.getUniqueId())){
            e.setKickMessage(RPLang.get("playerlistener.capfilter.kickmessage").replace("{nick}", essp.getName()));
            e.setLoginResult(Result.KICK_OTHER);
        }
    }
}
项目:PowerfulPerms    文件:PowerfulPermissionManager.java   
@EventHandler(priority = EventPriority.HIGHEST)
public void onAsyncPlayerPreLogin(final AsyncPlayerPreLoginEvent e) {
    debug("AsyncPlayerPreLoginEvent " + e.getName());

    if (e.getLoginResult() == AsyncPlayerPreLoginEvent.Result.ALLOWED) {
        loadPlayer(e.getUniqueId(), e.getName(), true, true);
    }
}
项目:Hammer    文件:PlayerConnectListener.java   
@EventHandler(ignoreCancelled = true)
public void onPlayerConnect(AsyncPlayerPreLoginEvent event) {
    try {
        HammerText text = eventCore.handleEvent(
                new BukkitWrappedPlayer(Bukkit.getOfflinePlayer(event.getUniqueId())),
                event.getAddress().getHostAddress());

        if (text != null) {
            event.disallow(AsyncPlayerPreLoginEvent.Result.KICK_OTHER, HammerTextConverter.constructMessage(text));
        }
    } catch (HammerException e) {
        plugin.getLogger().severe("Connection to the MySQL database failed. Falling back to the Minecraft ban list.");
        e.printStackTrace();
    }
}
项目:AdvancedBan    文件:ConnectionListener.java   
@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);
    }
}
项目:MiniMiniGames    文件:PaloozaPlugin.java   
@EventHandler(priority = EventPriority.LOWEST)
public void onPlayerJoin(AsyncPlayerPreLoginEvent event) {
   String ip = event.getAddress().getHostAddress();
   if (!ip.equals("127.0.0.1")) {
      event.disallow(Result.KICK_OTHER, ChatColor.RED + "Eh?");
   }
}
项目:BGDCore    文件:PlayerListener.java   
@EventHandler(priority = EventPriority.LOWEST)
public void onPlayerLogin(final AsyncPlayerPreLoginEvent event) {
    // let's load it async!
    wrappers.put(event.getUniqueId(), BGDCore.loadPlayerWrapper(event.getUniqueId(), event.getName()));
    new BukkitRunnable() {
        @Override
        public void run() {
            if (wrappers.contains(event.getUniqueId())) {
                wrappers.remove(event.getUniqueId()); // aw, wasn't used
            }
        }
    }.runTaskLater(BGDCore.getPlugin(BGDCore.class), 30);
}
项目:BetonQuest    文件:JoinQuitListener.java   
@EventHandler(priority = EventPriority.HIGHEST)
public void playerPreLogin(AsyncPlayerPreLoginEvent event) {
    // if player was kicked, don't load the data
    if (event.getLoginResult() != Result.ALLOWED) {
        return;
    }
    String playerID = event.getUniqueId().toString();
    BetonQuest plugin = BetonQuest.getInstance();
    plugin.putPlayerData(playerID, new PlayerData(playerID));
}
项目:CraftoPlugin    文件:PlayerListener.java   
void checkForNameChange(StoredPlayer player, AsyncPlayerPreLoginEvent event, PlayerStorage storage) {
    if (player == null || event == null || !player.getUniqueId().equals(event.getUniqueId())) { return; }

    // TODO: Register name change record as soon as RecordModule is ported to 4.0
    // TODO: Call StoredPlayerChangeNameEvent

    if (!player.getName().equals(event.getName())) {
        info("Player " + player.getId() + " changed name from '" + player.getName() + "' to '" + event.getName() + "'");

        ((DatabaseStoredPlayer) player).setName(event.getName());

        // Restore into nameMap
        storage.store(player);
    }
}
项目:CraftoPlugin    文件:PlayerListener.java   
void checkForIPChange(StoredPlayer player, AsyncPlayerPreLoginEvent event, boolean firstJoin) {
    if (player == null || event == null || !player.getUniqueId().equals(event.getUniqueId())) { return; }
    String newAddress = event.getAddress().toString().replace("/", "");

    if (!player.getCurrentAddress().equals(newAddress) || firstJoin) {
        ((DatabaseStoredPlayer) player).setCurrentAddress(newAddress);

        if (!firstJoin) {
            // TODO: Call StoredPlayerChangeIPEvent

            info("Player " +player.getId() + " changed ip from '" + player.getCurrentAddress() + "' to '" + newAddress + "'");
        }
    }
}
项目:CraftoPlugin    文件:CraftoDatabase.java   
private void checkForIPChange(final CraftoPlayer player, final AsyncPlayerPreLoginEvent event, final boolean firstJoin) {
    if (player != null && event != null && player.getUniqueId().equals(event.getUniqueId())) {
        final String newAddress = event.getAddress().toString().replace("/", "");

        if (!player.getCurrentAddress().equals(newAddress) || firstJoin) {

            ((DatabaseCraftoPlayer) player).setCurrentAddress(event.getAddress().getHostAddress());

            if (!firstJoin) {
                this.plugin.getServer().getPluginManager().callEvent(new CraftoPlayerIPChangeEvent(player, player.getCurrentAddress(), event.getAddress().toString()));
            }
        }
    }
}
项目:ProtectPlugin    文件:PlayerLogin.java   
private void work(AsyncPlayerPreLoginEvent event) {
    InetAddress addr = event.getAddress();
    if (this.segment.contains(addr)) {
        event.setLoginResult(Result.KICK_BANNED);
        event.setKickMessage("您的IP已被服务器封禁");
    } else if (addr.getHostAddress().equals(LOCAL_HOST)) {
        // DO NOTHING
    } else if (checkAddr(addr.getHostAddress())) {
        event.setLoginResult(Result.KICK_OTHER);
        event.setKickMessage("请稍后尝试登陆服务器");
    }
    this.addrLast.put(addr.getHostAddress(), System.currentTimeMillis());
}
项目:SpigotSource    文件:LoginListener.java   
public void fireEvents() throws Exception {
            String playerName = i.getName();
            java.net.InetAddress address = ((java.net.InetSocketAddress) networkManager.getSocketAddress()).getAddress();
            java.util.UUID uniqueId = i.getId();
            final org.bukkit.craftbukkit.CraftServer server = LoginListener.this.server.server;

            AsyncPlayerPreLoginEvent asyncEvent = new AsyncPlayerPreLoginEvent(playerName, address, uniqueId);
            server.getPluginManager().callEvent(asyncEvent);

            if (PlayerPreLoginEvent.getHandlerList().getRegisteredListeners().length != 0) {
                final PlayerPreLoginEvent event = new PlayerPreLoginEvent(playerName, address, uniqueId);
                if (asyncEvent.getResult() != PlayerPreLoginEvent.Result.ALLOWED) {
                    event.disallow(asyncEvent.getResult(), asyncEvent.getKickMessage());
                }
                Waitable<PlayerPreLoginEvent.Result> waitable = new Waitable<PlayerPreLoginEvent.Result>() {
                    @Override
                    protected PlayerPreLoginEvent.Result evaluate() {
                        server.getPluginManager().callEvent(event);
                        return event.getResult();
                    }};

                LoginListener.this.server.processQueue.add(waitable);
                if (waitable.get() != PlayerPreLoginEvent.Result.ALLOWED) {
                    disconnect(event.getKickMessage());
                    return;
                }
            } else {
                if (asyncEvent.getLoginResult() != AsyncPlayerPreLoginEvent.Result.ALLOWED) {
                    disconnect(asyncEvent.getKickMessage());
                    return;
                }
            }
            // CraftBukkit end
            LoginListener.c.info("UUID of player " + LoginListener.this.i.getName() + " is " + LoginListener.this.i.getId());
            LoginListener.this.g = LoginListener.EnumProtocolState.READY_TO_ACCEPT;
}
项目:Bukkit-Connect    文件:LoginListener.java   
@EventHandler(priority = EventPriority.LOWEST)
public void onAsyncPlayerPreLogin(AsyncPlayerPreLoginEvent event) {
    LoginPayload payload = payloadCache.getByName(event.getName());
    if (payload == null) {
        event.disallow(AsyncPlayerPreLoginEvent.Result.KICK_OTHER, "LilyPad: Internal server error");
        return;
    }
}
项目:ServerListPlus    文件:BukkitPlugin.java   
@EventHandler
public void onPlayerLogin(AsyncPlayerPreLoginEvent event) {
    if (core == null) return; // Too early, we haven't finished initializing yet

    UUID uuid = null;
    try { uuid = event.getUniqueId(); } catch (NoSuchMethodError ignored) {}
    core.updateClient(event.getAddress(), uuid, event.getName());
}