ThreadPlayerLookupUUID.java 文件源码

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

项目:Cauldron-Old 作者:
private void fireLoginEvents() throws Exception
{
    // CraftBukkit start - fire PlayerPreLoginEvent
    if (!this.field_151292_a.field_147333_a.isChannelOpen())
    {
        return;
    }

    String playerName = NetHandlerLoginServer.getGameProfile(this.field_151292_a).getName();
    java.net.InetAddress address = ((java.net.InetSocketAddress) this.field_151292_a.field_147333_a.getSocketAddress()).getAddress();
    java.util.UUID uniqueId = NetHandlerLoginServer.getGameProfile(this.field_151292_a).getId();
    final org.bukkit.craftbukkit.CraftServer server = this.mcServer.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();
            }
        };

        NetHandlerLoginServer.getMinecraftServer(this.field_151292_a).processQueue.add(waitable);

        if (waitable.get() != PlayerPreLoginEvent.Result.ALLOWED)
        {
            this.field_151292_a.func_147322_a(event.getKickMessage());
            return;
        }
    }
    else
    {
        if (asyncEvent.getLoginResult() != AsyncPlayerPreLoginEvent.Result.ALLOWED)
        {
            this.field_151292_a.func_147322_a(asyncEvent.getKickMessage());
            return;
        }
    }
    // CraftBukkit end

    NetHandlerLoginServer.getLogger().info("UUID of player " + NetHandlerLoginServer.getGameProfile(this.field_151292_a).getName() + " is " + NetHandlerLoginServer.getGameProfile(this.field_151292_a).getId());;
    NetHandlerLoginServer.setLoginState(this.field_151292_a, LoginState.READY_TO_ACCEPT);
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号