示例#1
0
        public void doLogin(Packet1Login packet1login)
        {
            EntityPlayerMP entityplayermp = mcServer.configManager.login(this, packet1login.username,
                                                                         packet1login.password);

            if (entityplayermp != null)
            {
                logger.info(
                    (new StringBuilder()).append(getUserAndIPString()).append(" logged in with entity id ").append(
                        entityplayermp.entityId).toString());
                ChunkCoordinates chunkcoordinates = mcServer.worldMngr.func_22078_l();
                var netserverhandler = new NetServerHandler(mcServer, netManager, entityplayermp);
                netserverhandler.sendPacket(new Packet1Login("", "", entityplayermp.entityId,
                                                             mcServer.worldMngr.func_22079_j(),
                                                             (byte)mcServer.worldMngr.worldProvider.worldType));
                netserverhandler.sendPacket(new Packet6SpawnPosition(chunkcoordinates.posX, chunkcoordinates.posY,
                                                                     chunkcoordinates.posZ));
                mcServer.configManager.sendPacketToAllPlayers(
                    new Packet3Chat(
                        (new StringBuilder()).append("§e").append(entityplayermp.username).append(" joined the game.").
                        toString()));
                mcServer.configManager.playerLoggedIn(entityplayermp);
                netserverhandler.teleportTo(entityplayermp.posX, entityplayermp.posY, entityplayermp.posZ,
                                            entityplayermp.rotationYaw, entityplayermp.rotationPitch);
                mcServer.networkServer.addPlayer(netserverhandler);
                netserverhandler.sendPacket(new Packet4UpdateTime(mcServer.worldMngr.getWorldTime()));
                entityplayermp.func_20057_k();
            }
            finishedProcessing = true;
        }
 public void playerLoggedOut(EntityPlayerMP entityplayermp)
 {
     playerNBTManagerObj.writePlayerData(entityplayermp);
     mcServer.worldMngr.func_22085_d(entityplayermp);
     playerEntities.remove(entityplayermp);
     playerManagerObj.removePlayer(entityplayermp);
 }
示例#3
0
 public void removeFromTrackedPlayers(EntityPlayerMP entityplayermp)
 {
     if (trackedPlayers.contains(entityplayermp))
     {
         trackedPlayers.remove(entityplayermp);
     }
 }
示例#4
0
 public void func_778_b(EntityPlayerMP entityplayermp)
 {
     if (!field_1072_b.contains(entityplayermp))
     {
         (new IllegalStateException(
              (new StringBuilder()).append("Failed to remove player. ").append(entityplayermp).append(
                  " isn't in chunk ").append(field_1071_c).append(", ").append(field_1070_d).toString())).
         printStackTrace();
         return;
     }
     field_1072_b.remove(entityplayermp);
     if (field_1072_b.size() == 0)
     {
         long l = field_1071_c + 0x7fffffffL | field_1070_d + 0x7fffffffL << 32;
         PlayerManager.func_539_b(field_1073_a).func_670_b(l);
         if (field_1067_g > 0)
         {
             PlayerManager.func_533_c(field_1073_a).remove(this);
         }
         PlayerManager.getMinecraftServer(field_1073_a).worldMngr.field_20911_y.func_374_c(field_1071_c,
                                                                                           field_1070_d);
     }
     entityplayermp.loadedChunks.remove(field_1069_e);
     if (entityplayermp.field_420_ah.contains(field_1069_e))
     {
         entityplayermp.playerNetServerHandler.sendPacket(new Packet50PreChunk(field_1071_c, field_1070_d, false));
     }
 }
        public EntityPlayerMP recreatePlayerEntity(EntityPlayerMP entityplayermp)
        {
            mcServer.entityTracker.removeTrackedPlayerSymmetric(entityplayermp);
            mcServer.entityTracker.untrackEntity(entityplayermp);
            playerManagerObj.removePlayer(entityplayermp);
            playerEntities.remove(entityplayermp);
            mcServer.worldMngr.func_22073_e(entityplayermp);
            var entityplayermp1 = new EntityPlayerMP(mcServer, mcServer.worldMngr, entityplayermp.username,
                                                     new ItemInWorldManager(mcServer.worldMngr));

            entityplayermp1.entityId = entityplayermp.entityId;
            entityplayermp1.playerNetServerHandler = entityplayermp.playerNetServerHandler;
            mcServer.worldMngr.field_20911_y.loadChunk((int)entityplayermp1.posX >> 4, (int)entityplayermp1.posZ >> 4);
            for (;
                 mcServer.worldMngr.getCollidingBoundingBoxes(entityplayermp1, entityplayermp1.boundingBox).size() != 0;
                 entityplayermp1.setPosition(entityplayermp1.posX, entityplayermp1.posY + 1.0D, entityplayermp1.posZ))
            {
            }
            entityplayermp1.playerNetServerHandler.sendPacket(new Packet9());
            entityplayermp1.playerNetServerHandler.teleportTo(entityplayermp1.posX, entityplayermp1.posY,
                                                              entityplayermp1.posZ, entityplayermp1.rotationYaw,
                                                              entityplayermp1.rotationPitch);
            playerManagerObj.addPlayer(entityplayermp1);
            mcServer.worldMngr.entityJoinedWorld(entityplayermp1);
            playerEntities.add(entityplayermp1);
            entityplayermp1.func_20057_k();
            entityplayermp1.func_22068_s();
            return(entityplayermp1);
        }
示例#6
0
 public void removeTrackedPlayerSymmetric(EntityPlayerMP entityplayermp)
 {
     if (trackedPlayers.contains(entityplayermp))
     {
         trackedPlayers.remove(entityplayermp);
         entityplayermp.playerNetServerHandler.sendPacket(new Packet29DestroyEntity(trackedEntity.entityId));
     }
 }
        public void sendChatMessageToPlayer(string s, string s1)
        {
            EntityPlayerMP entityplayermp = getPlayerEntity(s);

            if (entityplayermp != null)
            {
                entityplayermp.playerNetServerHandler.sendPacket(new Packet3Chat(s1));
            }
        }
示例#8
0
        public void removeTrackedPlayerSymmetric(EntityPlayerMP entityplayermp)
        {
            EntityTrackerEntry entitytrackerentry;

            for (Iterator iterator = trackedEntitySet.iterator();
                 iterator.hasNext();
                 entitytrackerentry.removeTrackedPlayerSymmetric(entityplayermp))
            {
                entitytrackerentry = (EntityTrackerEntry)iterator.next();
            }
        }
示例#9
0
 public override void handleRespawnPacket(Packet9 packet9)
 {
     if (playerEntity.health > 0)
     {
         return;
     }
     else
     {
         playerEntity = mcServer.configManager.recreatePlayerEntity(playerEntity);
         return;
     }
 }
示例#10
0
 public NetServerHandler(MinecraftServer minecraftserver, NetworkManager networkmanager,
                         EntityPlayerMP entityplayermp)
 {
     connectionClosed = false;
     hasMoved         = true;
     field_10_k       = new HashMap();
     mcServer         = minecraftserver;
     netManager       = networkmanager;
     networkmanager.setNetHandler(this);
     playerEntity = entityplayermp;
     entityplayermp.playerNetServerHandler = this;
 }
 public void playerLoggedIn(EntityPlayerMP entityplayermp)
 {
     playerEntities.add(entityplayermp);
     playerNBTManagerObj.readPlayerData(entityplayermp);
     mcServer.worldMngr.field_20911_y.loadChunk((int)entityplayermp.posX >> 4, (int)entityplayermp.posZ >> 4);
     for (;
          mcServer.worldMngr.getCollidingBoundingBoxes(entityplayermp, entityplayermp.boundingBox).size() != 0;
          entityplayermp.setPosition(entityplayermp.posX, entityplayermp.posY + 1.0D, entityplayermp.posZ))
     {
     }
     mcServer.worldMngr.entityJoinedWorld(entityplayermp);
     playerManagerObj.addPlayer(entityplayermp);
 }
        public bool sendPacketToPlayer(string s, Packet packet)
        {
            EntityPlayerMP entityplayermp = getPlayerEntity(s);

            if (entityplayermp != null)
            {
                entityplayermp.playerNetServerHandler.sendPacket(packet);
                return(true);
            }
            else
            {
                return(false);
            }
        }
示例#13
0
 public void func_779_a(EntityPlayerMP entityplayermp)
 {
     if (field_1072_b.contains(entityplayermp))
     {
         throw new IllegalStateException(
                   (new StringBuilder()).append("Failed to add player. ").append(entityplayermp).append(
                       " already is in chunk ").append(field_1071_c).append(", ").append(field_1070_d).toString());
     }
     else
     {
         entityplayermp.field_420_ah.add(field_1069_e);
         entityplayermp.playerNetServerHandler.sendPacket(new Packet50PreChunk(field_1069_e.chunkXPos,
                                                                               field_1069_e.chunkZPos, true));
         field_1072_b.add(entityplayermp);
         entityplayermp.loadedChunks.add(field_1069_e);
         return;
     }
 }
示例#14
0
        public void func_543_c(EntityPlayerMP entityplayermp)
        {
            int    i  = (int)entityplayermp.posX >> 4;
            int    j  = (int)entityplayermp.posZ >> 4;
            double d  = entityplayermp.field_9155_d - entityplayermp.posX;
            double d1 = entityplayermp.field_9154_e - entityplayermp.posZ;
            double d2 = d * d + d1 * d1;

            if (d2 < 64D)
            {
                return;
            }
            int k  = (int)entityplayermp.field_9155_d >> 4;
            int l  = (int)entityplayermp.field_9154_e >> 4;
            int i1 = i - k;
            int j1 = j - l;

            if (i1 == 0 && j1 == 0)
            {
                return;
            }
            for (int k1 = i - 10; k1 <= i + 10; k1++)
            {
                for (int l1 = j - 10; l1 <= j + 10; l1++)
                {
                    if (!func_544_a(k1, l1, k, l))
                    {
                        func_537_a(k1, l1, true).func_779_a(entityplayermp);
                    }
                    if (func_544_a(k1 - i1, l1 - j1, i, j))
                    {
                        continue;
                    }
                    PlayerInstance playerinstance = func_537_a(k1 - i1, l1 - j1, false);
                    if (playerinstance != null)
                    {
                        playerinstance.func_778_b(entityplayermp);
                    }
                }
            }

            entityplayermp.field_9155_d = entityplayermp.posX;
            entityplayermp.field_9154_e = entityplayermp.posZ;
        }
示例#15
0
        public void removePlayer(EntityPlayerMP entityplayermp)
        {
            int i = (int)entityplayermp.field_9155_d >> 4;
            int j = (int)entityplayermp.field_9154_e >> 4;

            for (int k = i - 10; k <= i + 10; k++)
            {
                for (int l = j - 10; l <= j + 10; l++)
                {
                    PlayerInstance playerinstance = func_537_a(k, l, false);
                    if (playerinstance != null)
                    {
                        playerinstance.func_778_b(entityplayermp);
                    }
                }
            }

            field_9216_a.remove(entityplayermp);
        }
示例#16
0
        public void updatePlayerEntity(EntityPlayerMP entityplayermp)
        {
            if (entityplayermp == trackedEntity)
            {
                return;
            }
            double d  = entityplayermp.posX - (encodedPosX / 32);
            double d1 = entityplayermp.posZ - (encodedPosZ / 32);

            if (d >= (-trackingDistanceThreshold) && d <= trackingDistanceThreshold &&
                d1 >= (-trackingDistanceThreshold) && d1 <= trackingDistanceThreshold)
            {
                if (!trackedPlayers.contains(entityplayermp))
                {
                    trackedPlayers.add(entityplayermp);
                    entityplayermp.playerNetServerHandler.sendPacket(getSpawnPacket());
                    if (shouldSendMotionUpdates)
                    {
                        entityplayermp.playerNetServerHandler.sendPacket(new Packet28(trackedEntity.entityId,
                                                                                      trackedEntity.motionX,
                                                                                      trackedEntity.motionY,
                                                                                      trackedEntity.motionZ));
                    }
                    ItemStack[] aitemstack = trackedEntity.getInventory();
                    if (aitemstack != null)
                    {
                        for (int i = 0; i < aitemstack.Length; i++)
                        {
                            entityplayermp.playerNetServerHandler.sendPacket(
                                new Packet5PlayerInventory(trackedEntity.entityId, i, aitemstack[i]));
                        }
                    }
                }
            }
            else if (trackedPlayers.contains(entityplayermp))
            {
                trackedPlayers.remove(entityplayermp);
                entityplayermp.playerNetServerHandler.sendPacket(new Packet29DestroyEntity(trackedEntity.entityId));
            }
        }
示例#17
0
        public void addPlayer(EntityPlayerMP entityplayermp)
        {
            int i = (int)entityplayermp.posX >> 4;
            int j = (int)entityplayermp.posZ >> 4;

            entityplayermp.field_9155_d = entityplayermp.posX;
            entityplayermp.field_9154_e = entityplayermp.posZ;
            int  k     = 0;
            byte byte0 = 10;
            int  l     = 0;
            int  i1    = 0;

            func_537_a(i, j, true).func_779_a(entityplayermp);
            for (int j1 = 1; j1 <= byte0 * 2; j1++)
            {
                for (int l1 = 0; l1 < 2; l1++)
                {
                    int[] ai = field_22089_e[k++ % 4];
                    for (int i2 = 0; i2 < j1; i2++)
                    {
                        l  += ai[0];
                        i1 += ai[1];
                        func_537_a(i + l, j + i1, true).func_779_a(entityplayermp);
                    }
                }
            }

            k %= 4;
            for (int k1 = 0; k1 < byte0 * 2; k1++)
            {
                l  += field_22089_e[k][0];
                i1 += field_22089_e[k][1];
                func_537_a(i + l, j + i1, true).func_779_a(entityplayermp);
            }

            field_9216_a.add(entityplayermp);
        }
示例#18
0
        public void handleCommand(ServerCommand servercommand)
        {
            string                     s = servercommand.command;
            ICommandListener           icommandlistener = servercommand.commandListener;
            string                     s1          = icommandlistener.getUsername();
            WorldServer                worldserver = minecraftServer.worldMngr;
            ServerConfigurationManager serverconfigurationmanager = minecraftServer.configManager;

            if (s.ToLower().StartsWith("help") || s.ToLower().StartsWith("?"))
            {
                showHelp(icommandlistener);
            }
            else if (s.ToLower().StartsWith("list"))
            {
                icommandlistener.log(
                    (new StringBuilder()).append("Connected players: ").append(
                        serverconfigurationmanager.getPlayerList()).toString());
            }
            else if (s.ToLower().StartsWith("stop"))
            {
                func_22115_a(s1, "Stopping the server..");
                minecraftServer.initiateShutdown();
            }
            else if (s.ToLower().StartsWith("save-all"))
            {
                func_22115_a(s1, "Forcing save..");
                worldserver.saveWorld(true, null);
                func_22115_a(s1, "Save complete.");
            }
            else if (s.ToLower().StartsWith("save-off"))
            {
                func_22115_a(s1, "Disabling level saving..");
                worldserver.levelSaving = true;
            }
            else if (s.ToLower().StartsWith("save-on"))
            {
                func_22115_a(s1, "Enabling level saving..");
                worldserver.levelSaving = false;
            }
            else if (s.ToLower().StartsWith("op "))
            {
                string s2 = s.Substring(s.IndexOf(" ")).Trim();
                serverconfigurationmanager.opPlayer(s2);
                func_22115_a(s1, (new StringBuilder()).append("Opping ").append(s2).toString());
                serverconfigurationmanager.sendChatMessageToPlayer(s2, "§eYou are now op!");
            }
            else if (s.ToLower().StartsWith("deop "))
            {
                string s3 = s.Substring(s.IndexOf(" ")).Trim();
                serverconfigurationmanager.deopPlayer(s3);
                serverconfigurationmanager.sendChatMessageToPlayer(s3, "§eYou are no longer op!");
                func_22115_a(s1, (new StringBuilder()).append("De-opping ").append(s3).toString());
            }
            else if (s.ToLower().StartsWith("ban-ip "))
            {
                string s4 = s.Substring(s.IndexOf(" ")).Trim();
                serverconfigurationmanager.banIP(s4);
                func_22115_a(s1, (new StringBuilder()).append("Banning ip ").append(s4).toString());
            }
            else if (s.ToLower().StartsWith("pardon-ip "))
            {
                string s5 = s.Substring(s.IndexOf(" ")).Trim();
                serverconfigurationmanager.pardonIP(s5);
                func_22115_a(s1, (new StringBuilder()).append("Pardoning ip ").append(s5).toString());
            }
            else if (s.ToLower().StartsWith("ban "))
            {
                string s6 = s.Substring(s.IndexOf(" ")).Trim();
                serverconfigurationmanager.banPlayer(s6);
                func_22115_a(s1, (new StringBuilder()).append("Banning ").append(s6).toString());
                EntityPlayerMP entityplayermp = serverconfigurationmanager.getPlayerEntity(s6);
                if (entityplayermp != null)
                {
                    entityplayermp.playerNetServerHandler.kickPlayer("Banned by admin");
                }
            }
            else if (s.ToLower().StartsWith("pardon "))
            {
                string s7 = s.Substring(s.IndexOf(" ")).Trim();
                serverconfigurationmanager.pardonPlayer(s7);
                func_22115_a(s1, (new StringBuilder()).append("Pardoning ").append(s7).toString());
            }
            else if (s.ToLower().StartsWith("kick "))
            {
                string         s8 = s.Substring(s.IndexOf(" ")).Trim();
                EntityPlayerMP entityplayermp1 = null;
                for (int i = 0; i < serverconfigurationmanager.playerEntities.size(); i++)
                {
                    var entityplayermp5 = (EntityPlayerMP)serverconfigurationmanager.playerEntities.get(i);
                    if (entityplayermp5.username.ToLowerInvariant() == s8.ToLowerInvariant())
                    {
                        entityplayermp1 = entityplayermp5;
                    }
                }

                if (entityplayermp1 != null)
                {
                    entityplayermp1.playerNetServerHandler.kickPlayer("Kicked by admin");
                    func_22115_a(s1,
                                 (new StringBuilder()).append("Kicking ").append(entityplayermp1.username).toString());
                }
                else
                {
                    icommandlistener.log(
                        (new StringBuilder()).append("Can't find user ").append(s8).append(". No kick.").toString());
                }
            }
            else if (s.ToLower().StartsWith("tp "))
            {
                string[] ask = s.Split(' ');
                if (ask.Length == 3)
                {
                    EntityPlayerMP entityplayermp2 = serverconfigurationmanager.getPlayerEntity(ask[1]);
                    EntityPlayerMP entityplayermp3 = serverconfigurationmanager.getPlayerEntity(ask[2]);
                    if (entityplayermp2 == null)
                    {
                        icommandlistener.log(
                            (new StringBuilder()).append("Can't find user ").append(ask[1]).append(". No tp.").toString());
                    }
                    else if (entityplayermp3 == null)
                    {
                        icommandlistener.log(
                            (new StringBuilder()).append("Can't find user ").append(ask[2]).append(". No tp.").toString());
                    }
                    else
                    {
                        entityplayermp2.playerNetServerHandler.teleportTo(entityplayermp3.posX, entityplayermp3.posY,
                                                                          entityplayermp3.posZ,
                                                                          entityplayermp3.rotationYaw,
                                                                          entityplayermp3.rotationPitch);
                        func_22115_a(s1,
                                     (new StringBuilder()).append("Teleporting ").append(ask[1]).append(" to ").append(
                                         ask[2]).append(".").toString());
                    }
                }
                else
                {
                    icommandlistener.log("Syntax error, please provice a source and a target.");
                }
            }
            else if (s.ToLower().StartsWith("give "))
            {
                string[] as1 = s.Split(' ');
                if (as1.Length != 3 && as1.Length != 4)
                {
                    return;
                }
                string         s9 = as1[1];
                EntityPlayerMP entityplayermp4 = serverconfigurationmanager.getPlayerEntity(s9);
                if (entityplayermp4 != null)
                {
                    try
                    {
                        int k = Integer.parseInt(as1[2]);
                        if (Item.itemsList[k] != null)
                        {
                            func_22115_a(s1,
                                         (new StringBuilder()).append("Giving ").append(entityplayermp4.username).append
                                             (" some ").append(k).toString());
                            int l = 1;
                            if (as1.Length > 3)
                            {
                                l = tryParse(as1[3], 1);
                            }
                            if (l < 1)
                            {
                                l = 1;
                            }
                            if (l > 64)
                            {
                                l = 64;
                            }
                            entityplayermp4.dropPlayerItem(new ItemStack(k, l, 0));
                        }
                        else
                        {
                            icommandlistener.log(
                                (new StringBuilder()).append("There's no item with id ").append(k).toString());
                        }
                    }
                    catch (NumberFormatException numberformatexception1)
                    {
                        icommandlistener.log(
                            (new StringBuilder()).append("There's no item with id ").append(as1[2]).toString());
                    }
                }
                else
                {
                    icommandlistener.log((new StringBuilder()).append("Can't find user ").append(s9).toString());
                }
            }
            else if (s.ToLower().StartsWith("time "))
            {
                string[] as2 = s.Split(' ');
                if (as2.Length != 3)
                {
                    return;
                }
                string s10 = as2[1];
                try
                {
                    int j = Integer.parseInt(as2[2]);
                    if ("add".Equals(s10, StringComparison.InvariantCultureIgnoreCase))
                    {
                        worldserver.func_22076_a(worldserver.getWorldTime() + j);
                        func_22115_a(s1, (new StringBuilder()).append("Added ").append(j).append(" to time").toString());
                    }
                    else if ("set".Equals(s10, StringComparison.InvariantCultureIgnoreCase))
                    {
                        worldserver.func_22076_a(j);
                        func_22115_a(s1, (new StringBuilder()).append("Set time to ").append(j).toString());
                    }
                    else
                    {
                        icommandlistener.log("Unknown method, use either \"add\" or \"set\"");
                    }
                }
                catch (NumberFormatException numberformatexception)
                {
                    icommandlistener.log(
                        (new StringBuilder()).append("Unable to convert time value, ").append(as2[2]).toString());
                }
            }
            else if (s.ToLower().StartsWith("say "))
            {
                s = s.Substring(s.IndexOf(" ")).Trim();
                minecraftLogger.info((new StringBuilder()).append("[").append(s1).append("] ").append(s).toString());
                serverconfigurationmanager.sendPacketToAllPlayers(
                    new Packet3Chat((new StringBuilder()).append("§d[Server] ").append(s).toString()));
            }
            else if (s.ToLower().StartsWith("tell "))
            {
                string[] as3 = s.Split(' ');
                if (as3.Length >= 3)
                {
                    s = s.Substring(s.IndexOf(" ")).Trim();
                    s = s.Substring(s.IndexOf(" ")).Trim();
                    minecraftLogger.info(
                        (new StringBuilder()).append("[").append(s1).append("->").append(as3[1]).append("] ").append(s).
                        toString());
                    s = (new StringBuilder()).append("§7").append(s1).append(" whispers ").append(s).toString();
                    minecraftLogger.info(s);
                    if (!serverconfigurationmanager.sendPacketToPlayer(as3[1], new Packet3Chat(s)))
                    {
                        icommandlistener.log("There's no player by that name online.");
                    }
                }
            }
            else if (s.ToLower().StartsWith("whitelist "))
            {
                func_22113_a(s1, s, icommandlistener);
            }
            else
            {
                minecraftLogger.info("Unknown console command. Type \"help\" for help.");
            }
        }
 public void func_613_b(EntityPlayerMP entityplayermp)
 {
     playerManagerObj.func_543_c(entityplayermp);
 }