Ejemplo n.º 1
0
        public virtual void DoLogin(net.minecraft.src.Packet1Login packet1login)
        {
            net.minecraft.src.EntityPlayerMP entityplayermp = mcServer.serverConfigurationManager.Login(this, packet1login.username);
            if (entityplayermp != null)
            {
                mcServer.serverConfigurationManager.ReadPlayerDataFromFile(entityplayermp);
                entityplayermp.SetWorldHandler(mcServer.GetWorldServer(entityplayermp.dimension));

                //TODO: Cleanup all java.lang.StringBuilder instances
                //logger.Info((new java.lang.StringBuilder()).Append(GetUserAndIPString()).Append(" logged in with entity id ").Append(entityplayermp.entityId).Append(" at (").Append(entityplayermp.posX).Append(", ").Append(entityplayermp.posY).Append(", ").Append(entityplayermp.posZ).Append(")").ToString());
                logger.Info($"{GetUserAndIPString()} logged in with entity id {entityplayermp.entityId} at ({entityplayermp.posX}, {entityplayermp.posY}, {entityplayermp.posZ})");

                net.minecraft.src.WorldServer      worldserver      = mcServer.GetWorldServer(entityplayermp.dimension);
                net.minecraft.src.ChunkCoordinates chunkcoordinates = worldserver.GetSpawnPoint();
                net.minecraft.src.NetServerHandler netserverhandler = new net.minecraft.src.NetServerHandler(mcServer, netManager, entityplayermp);

                netserverhandler.SendPacket(new net.minecraft.src.Packet1Login(string.Empty, entityplayermp.entityId, worldserver.GetSeed(), unchecked ((byte)worldserver.worldProvider.worldType)));
                netserverhandler.SendPacket(new net.minecraft.src.Packet6SpawnPosition(chunkcoordinates.posX, chunkcoordinates.posY, chunkcoordinates.posZ));

                mcServer.serverConfigurationManager.Func_28170_a(entityplayermp, worldserver);

                //TODO: Defer login message to hook
                //mcServer.configManager.SendPacketToAllPlayers(new net.minecraft.src.Packet3Chat((new java.lang.StringBuilder()).Append("\xf7e").Append(entityplayermp.username).Append(" joined the game.").ToString()));
                mcServer.serverConfigurationManager.SendPacketToAllPlayers(new net.minecraft.src.Packet3Chat($"§e{entityplayermp.username} joined the game."));
                mcServer.serverConfigurationManager.PlayerLoggedIn(entityplayermp);

                netserverhandler.TeleportTo(entityplayermp.posX, entityplayermp.posY, entityplayermp.posZ, entityplayermp.rotationYaw, entityplayermp.rotationPitch);
                mcServer.networkServer.AddPlayer(netserverhandler);

                netserverhandler.SendPacket(new net.minecraft.src.Packet4UpdateTime(worldserver.GetWorldTime()));

                entityplayermp.Func_20057_k();
            }
            finishedProcessing = true;
        }
        public virtual void SendPlayerToOtherDimension(net.minecraft.src.EntityPlayerMP entityplayermp
                                                       )
        {
            net.minecraft.src.WorldServer worldserver = mcServer.GetWorldServer(entityplayermp
                                                                                .dimension);
            int i = 0;

            if (entityplayermp.dimension == -1)
            {
                i = 0;
            }
            else
            {
                i = -1;
            }
            entityplayermp.dimension = i;
            net.minecraft.src.WorldServer worldserver1 = mcServer.GetWorldServer(entityplayermp
                                                                                 .dimension);
            entityplayermp.netServerHandler.SendPacket(new net.minecraft.src.Packet9Respawn
                                                           (unchecked ((byte)entityplayermp.dimension)));
            worldserver.RemovePlayer(entityplayermp);
            entityplayermp.isDead = false;
            double d  = entityplayermp.posX;
            double d1 = entityplayermp.posZ;
            double d2 = 8D;

            if (entityplayermp.dimension == -1)
            {
                d  /= d2;
                d1 /= d2;
                entityplayermp.SetLocationAndAngles(d, entityplayermp.posY, d1, entityplayermp.rotationYaw
                                                    , entityplayermp.rotationPitch);
                if (entityplayermp.IsEntityAlive())
                {
                    worldserver.UpdateEntityWithOptionalForce(entityplayermp, false);
                }
            }
            else
            {
                d  *= d2;
                d1 *= d2;
                entityplayermp.SetLocationAndAngles(d, entityplayermp.posY, d1, entityplayermp.rotationYaw
                                                    , entityplayermp.rotationPitch);
                if (entityplayermp.IsEntityAlive())
                {
                    worldserver.UpdateEntityWithOptionalForce(entityplayermp, false);
                }
            }
            if (entityplayermp.IsEntityAlive())
            {
                worldserver1.AddEntity(entityplayermp);
                entityplayermp.SetLocationAndAngles(d, entityplayermp.posY, d1, entityplayermp.rotationYaw
                                                    , entityplayermp.rotationPitch);
                worldserver1.UpdateEntityWithOptionalForce(entityplayermp, false);
                worldserver1.chunkProviderServer.chunkLoadOverride = true;
                (new net.minecraft.src.PortalTravelAgent()).SetExitLocation(worldserver1, entityplayermp
                                                                            );
                worldserver1.chunkProviderServer.chunkLoadOverride = false;
            }
            Func_28172_a(entityplayermp);
            entityplayermp.netServerHandler.TeleportTo(entityplayermp.posX, entityplayermp
                                                       .posY, entityplayermp.posZ, entityplayermp.rotationYaw, entityplayermp.rotationPitch
                                                       );
            entityplayermp.SetWorldHandler(worldserver1);
            Func_28170_a(entityplayermp, worldserver1);
            Func_30008_g(entityplayermp);
        }