java类org.bukkit.event.player.AsyncPlayerPreLoginEvent的实例源码

PaloozaPlugin.java 文件源码 项目:MiniMiniGames 阅读 24 收藏 0 点赞 0 评论 0
@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?");
   }
}
PlayerListener.java 文件源码 项目:BGDCore 阅读 28 收藏 0 点赞 0 评论 0
@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);
}
JoinQuitListener.java 文件源码 项目:BetonQuest 阅读 25 收藏 0 点赞 0 评论 0
@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));
}
PlayerListener.java 文件源码 项目:CraftoPlugin 阅读 22 收藏 0 点赞 0 评论 0
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);
    }
}
PlayerListener.java 文件源码 项目:CraftoPlugin 阅读 24 收藏 0 点赞 0 评论 0
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 + "'");
        }
    }
}
CraftoDatabase.java 文件源码 项目:CraftoPlugin 阅读 19 收藏 0 点赞 0 评论 0
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()));
            }
        }
    }
}
PlayerLogin.java 文件源码 项目:ProtectPlugin 阅读 22 收藏 0 点赞 0 评论 0
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());
}
LoginListener.java 文件源码 项目:SpigotSource 阅读 21 收藏 0 点赞 0 评论 0
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;
}
LoginListener.java 文件源码 项目:Bukkit-Connect 阅读 22 收藏 0 点赞 0 评论 0
@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;
    }
}
BukkitPlugin.java 文件源码 项目:ServerListPlus 阅读 27 收藏 0 点赞 0 评论 0
@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());
}


问题


面经


文章

微信
公众号

扫码关注公众号