ThreadPlayerLookupUUID.java 文件源码

java
阅读 26 收藏 0 点赞 0 评论 0

项目:Tweakkit-Server 作者:
private void fireLoginEvents() throws Exception
{
    // CraftBukkit start - fire PlayerPreLoginEvent
    if (!this.a.networkManager.isConnected()) {
        return;
    }

    String playerName = LoginListener.a(this.a).getName();
    java.net.InetAddress address = ((java.net.InetSocketAddress) a.networkManager.getSocketAddress()).getAddress();
    java.util.UUID uniqueId = LoginListener.a(this.a).getId();
    final org.bukkit.craftbukkit.CraftServer server = LoginListener.c(this.a).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.c(this.a).processQueue.add(waitable);
        if (waitable.get() != PlayerPreLoginEvent.Result.ALLOWED) {
            this.a.disconnect(event.getKickMessage());
            return;
        }
    } else {
        if (asyncEvent.getLoginResult() != AsyncPlayerPreLoginEvent.Result.ALLOWED) {
            this.a.disconnect(asyncEvent.getKickMessage());
            return;
        }
    }
    // CraftBukkit end

    LoginListener.e().info("UUID of player " + LoginListener.a(this.a).getName() + " is " + LoginListener.a(this.a).getId());
    LoginListener.a(this.a, EnumProtocolState.READY_TO_ACCEPT);
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号