Esempio n. 1
0
        private bool ReadPacket()
        {
            bool flag = false;

            try
            {
                net.minecraft.src.Packet packet = net.minecraft.src.Packet.ReadPacket(socketInputStream, netHandler.IsServerHandler());
                if (packet != null)
                {
                    field_28141_d[packet.GetPacketId()] += packet.GetPacketSize() + 1;
                    readPackets.Enqueue(packet);
                    flag = true;
                }
                else
                {
                    NetworkShutdown("disconnect.endOfStream", new object[0]);
                }
            }
            catch (System.Exception exception)
            {
                if (!isTerminating)
                {
                    OnNetworkError(exception);
                }
                return(false);
            }
            return(flag);
        }
 public virtual void SendPacketToAllPlayers(net.minecraft.src.Packet packet)
 {
     for (int i = 0; i < playerEntities.Count; i++)
     {
         net.minecraft.src.EntityPlayerMP entityplayermp = (net.minecraft.src.EntityPlayerMP
                                                            )playerEntities[i];
         entityplayermp.netServerHandler.SendPacket(packet);
     }
 }
Esempio n. 3
0
        public override void RegisterPacket(net.minecraft.src.Packet packet)
        {
            if (disconnected)
            {
                return;
            }

            logger.Warning((new java.lang.StringBuilder()).Append(this.GetType().Name).Append(" wasn't prepared to deal with a ").Append(packet.GetType().Name).ToString());
            KickPlayer("Protocol error, unexpected packet");
        }
Esempio n. 4
0
 [MethodImpl(MethodImplOptions.Synchronized)] // CRAFTBUKKIT
 public virtual void SendPacketToTrackedPlayersAndTrackedEntity(net.minecraft.src.Entity
                                                                entity, net.minecraft.src.Packet packet)
 {
     net.minecraft.src.EntityTrackerEntry entitytrackerentry = (net.minecraft.src.EntityTrackerEntry
                                                                )trackedEntityHashTable.Lookup(entity.entityId);
     if (entitytrackerentry != null)
     {
         entitytrackerentry.SendPacketToTrackedPlayersAndTrackedEntity(packet);
     }
 }
Esempio n. 5
0
 private void UpdateTileEntity(net.minecraft.src.TileEntity tileentity)
 {
     if (tileentity != null)
     {
         net.minecraft.src.Packet packet = tileentity.GetDescriptionPacket();
         if (packet != null)
         {
             SendPacketToPlayersInInstance(packet);
         }
     }
 }
Esempio n. 6
0
 public virtual void SendPacketToPlayersInInstance(net.minecraft.src.Packet packet
                                                   )
 {
     for (int i = 0; i < players.Count; i++)
     {
         net.minecraft.src.EntityPlayerMP entityplayermp = (net.minecraft.src.EntityPlayerMP
                                                            )players[i];
         if (entityplayermp.playerChunkCoordIntPairs.Contains(location))
         {
             entityplayermp.netServerHandler.SendPacket(packet);
         }
     }
 }
 public virtual bool SendPacketToPlayer(string s, net.minecraft.src.Packet packet)
 {
     net.minecraft.src.EntityPlayerMP entityplayermp = GetPlayerEntity(s);
     if (entityplayermp != null)
     {
         entityplayermp.netServerHandler.SendPacket(packet);
         return(true);
     }
     else
     {
         return(false);
     }
 }
 public virtual void SendPacketToAllPlayersInDimension(net.minecraft.src.Packet packet
                                                       , int i)
 {
     for (int j = 0; j < playerEntities.Count; j++)
     {
         net.minecraft.src.EntityPlayerMP entityplayermp = (net.minecraft.src.EntityPlayerMP
                                                            )playerEntities[j];
         if (entityplayermp.dimension == i)
         {
             entityplayermp.netServerHandler.SendPacket(packet);
         }
     }
 }
Esempio n. 9
0
 public virtual void AddToSendQueue(net.minecraft.src.Packet packet)
 {
     if (isServerTerminating)
     {
         return;
     }
     lock (sendQueueLock)
     {
         sendQueueByteLength += packet.GetPacketSize() + 1;
         if (packet.isChunkDataPacket)
         {
             chunkDataPackets.Enqueue(packet);
         }
         else
         {
             dataPackets.Enqueue(packet);
         }
     }
 }
Esempio n. 10
0
        /// <exception cref="System.IO.IOException"/>
        public static net.minecraft.src.Packet ReadPacket(java.io.DataInputStream datainputstream, bool flag)
        {
            int i = 0;

            net.minecraft.src.Packet packet = null;
            try
            {
                i = datainputstream.Read();
                if (i == -1)
                {
                    return(null);
                }
                if (flag && !serverPacketIdList.Contains(i) || !flag && !clientPacketIdList.Contains(i))
                {
                    throw new System.IO.IOException((new java.lang.StringBuilder()).Append("Bad packet id ").Append(i).ToString());
                }
                packet = GetNewPacket(i);
                if (packet == null)
                {
                    throw new System.IO.IOException((new java.lang.StringBuilder()).Append("Bad packet id ").Append(i).ToString());
                }
                packet.ReadPacketData(datainputstream);
            }
            catch (System.IO.EndOfStreamException e)
            {
                System.Console.Out.WriteLine("Reached end of stream");
                return(null);
            }
            net.minecraft.src.PacketCounter packetcounter = (net.minecraft.src.PacketCounter)
                                                            packetStats[i];
            if (packetcounter == null)
            {
                packetcounter  = new net.minecraft.src.PacketCounter(null);
                packetStats[i] = packetcounter;
            }
            packetcounter.AddPacket(packet.GetPacketSize());
            totalPacketsCount++;
            if (totalPacketsCount % 1000 != 0)
            {
            }
            return(packet);
        }
Esempio n. 11
0
 public virtual void SendPacket(net.minecraft.src.Packet packet)
 {
     netManager.AddToSendQueue(packet); //TODO: Craftbukkit -- reroute chunk compression to another thread
     //field_22004_g = field_15_f; // CRAFTBUKKIT -- e85c99289cd0f56cb9aff8e673f3e87664cc4321 fix latency issues
 }
Esempio n. 12
0
 /// <exception cref="System.IO.IOException"/>
 public static void WritePacket(net.minecraft.src.Packet packet, java.io.DataOutputStream
                                dataoutputstream)
 {
     dataoutputstream.Write(packet.GetPacketId());
     packet.WritePacketData(dataoutputstream);
 }
Esempio n. 13
0
        private bool SendPacket()
        {
            bool flag = false;

            try
            {
                Packet ppeek;
                bool   peek;
                bool   t = false;
                peek = dataPackets.TryPeek(out ppeek);
                if (dataPackets.Count > 0 && peek && (chunkDataSendCounter == 0 || Sharpen.Runtime.CurrentTimeMillis() - ((net.minecraft.src.Packet)ppeek).creationTimeMillis >= (long)chunkDataSendCounter))
                {
                    net.minecraft.src.Packet packet = null;
                    try
                    {
                        lock (sendQueueLock)
                        {
                            t = dataPackets.TryDequeue(out packet);
                            //packet = (net.minecraft.src.Packet)dataPackets.(0);
                            if (t)
                            {
                                sendQueueByteLength -= packet.GetPacketSize() + 1;
                            }
                        }
                        if (t)
                        {
                            net.minecraft.src.Packet.WritePacket(packet, socketOutputStream);
                            field_28140_e[packet.GetPacketId()] += packet.GetPacketSize() + 1;
                            flag = true;
                        }
                    }
                    finally
                    {
                        if (t && packet != null && packet is IDisposable)
                        {
                            ((IDisposable)packet).Dispose();
                        }
                    }
                }
                peek = chunkDataPackets.TryPeek(out ppeek);
                if (field_20175_w-- <= 0 && chunkDataPackets.Count > 0 && peek &&
                    (chunkDataSendCounter == 0 || Sharpen.Runtime.CurrentTimeMillis() - ((net.minecraft.src.Packet)ppeek).creationTimeMillis >= (long)chunkDataSendCounter))
                {
                    net.minecraft.src.Packet packet1 = null;
                    try
                    {
                        lock (sendQueueLock)
                        {
                            t = chunkDataPackets.TryDequeue(out packet1);
                            //packet1 = (net.minecraft.src.Packet)
                            if (t)
                            {
                                sendQueueByteLength -= packet1.GetPacketSize() + 1;
                            }
                        }
                        if (t)
                        {
                            net.minecraft.src.Packet.WritePacket(packet1, socketOutputStream);
                            field_28140_e[packet1.GetPacketId()] += packet1.GetPacketSize() + 1;
                            field_20175_w = 0;
                            flag          = true;
                        }
                    }
                    finally
                    {
                        if (t && packet1 != null && packet1 is IDisposable)
                        {
                            ((IDisposable)packet1).Dispose();
                        }
                    }
                }
            }
            catch (System.Exception exception)
            {
                if (exception is ThreadInterruptedException)
                {
                    throw;                                          //SHARP: Not sure if this 'fixes' ThreadInterruptedExceptions, just allows it to be ignored by the thread (as it's being caught in NetworkWriterThread).
                }
                if (!isTerminating)
                {
                    OnNetworkError(exception);
                }
                return(false);
            }
            return(flag);
        }
 public virtual void SendPacketToPlayersAroundPoint(net.minecraft.src.EntityPlayer entityplayer, double
                                                    pointX, double pointY, double pointZ, double radius, int dimension, net.minecraft.src.Packet packet)
 {
     for (int j = 0; j < playerEntities.Count; j++)
     {
         net.minecraft.src.EntityPlayerMP entityplayermp = (net.minecraft.src.EntityPlayerMP
                                                            )playerEntities[j];
         if (entityplayermp == entityplayer || entityplayermp.dimension != dimension)
         {
             continue;
         }
         double deltaX = pointX - entityplayermp.posX;
         double deltaY = pointY - entityplayermp.posY;
         double deltaZ = pointZ - entityplayermp.posZ;
         if (deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ < radius * radius)
         {
             entityplayermp.netServerHandler.SendPacket(packet);
         }
     }
 }
 public virtual void SendPacketToPlayersAroundPoint(double x, double y, double z
                                                    , double radius, int dimension, net.minecraft.src.Packet packet)
 {
     SendPacketToPlayersAroundPoint(null, x, y, z, radius, dimension, packet);
 }
Esempio n. 16
0
 public virtual void OnUpdateEntity(bool flag)
 {
     base.OnUpdate();
     for (int i = 0; i < inventory.GetSizeInventory(); i++)
     {
         net.minecraft.src.ItemStack itemstack = inventory.GetStackInSlot(i);
         if (itemstack == null || !net.minecraft.src.Item.itemsList[itemstack.itemID].Func_28019_b
                 () || netServerHandler.GetNumChunkDataPackets() > 2)
         {
             continue;
         }
         net.minecraft.src.Packet packet = ((net.minecraft.src.ItemMapBase)net.minecraft.src.Item
                                            .itemsList[itemstack.itemID]).Func_28022_b(itemstack, worldObj, this);
         if (packet != null)
         {
             netServerHandler.SendPacket(packet);
         }
     }
     if (flag && chunkCoordIntPairQueue.Count > 0)
     {
         net.minecraft.src.ChunkCoordIntPair chunkcoordintpair = (net.minecraft.src.ChunkCoordIntPair
                                                                  )chunkCoordIntPairQueue[0];
         if (chunkcoordintpair != null)
         {
             bool flag1 = false;
             if (netServerHandler.GetNumChunkDataPackets() < 4)
             {
                 flag1 = true;
             }
             if (flag1)
             {
                 net.minecraft.src.WorldServer worldserver = mcServer.GetWorldServer(dimension);
                 chunkCoordIntPairQueue.Remove(chunkcoordintpair);
                 netServerHandler.SendPacket(new net.minecraft.src.Packet51MapChunk(chunkcoordintpair
                                                                                    .X * 16, 0, chunkcoordintpair.Z * 16, 16, 128, 16, worldserver));
                 System.Collections.Generic.List <TileEntity> list = worldserver.GetTileEntityList(chunkcoordintpair.X
                                                                                                   * 16, 0, chunkcoordintpair.Z * 16, chunkcoordintpair.X * 16 + 16
                                                                                                   , 128, chunkcoordintpair.Z * 16 + 16);
                 for (int j = 0; j < list.Count; j++)
                 {
                     GetTileEntityInfo((net.minecraft.src.TileEntity)list[j]);
                 }
             }
         }
     }
     if (inPortal)
     {
         if (mcServer.propertyManager.GetBoolean("allow-nether", true))
         {
             if (currentCraftingInventory != personalCraftingInventory)
             {
                 UsePersonalCraftingInventory();
             }
             if (ridingEntity != null)
             {
                 MountEntity(ridingEntity);
             }
             else
             {
                 timeInPortal += 0.0125F;
                 if (timeInPortal >= 1.0F)
                 {
                     timeInPortal    = 1.0F;
                     timeUntilPortal = 10;
                     mcServer.serverConfigurationManager.SendPlayerToOtherDimension(this);
                 }
             }
             inPortal = false;
         }
     }
     else
     {
         if (timeInPortal > 0.0F)
         {
             timeInPortal -= 0.05F;
         }
         if (timeInPortal < 0.0F)
         {
             timeInPortal = 0.0F;
         }
     }
     if (timeUntilPortal > 0)
     {
         timeUntilPortal--;
     }
     if (health != lastHealth)
     {
         netServerHandler.SendPacket(new net.minecraft.src.Packet8UpdateHealth(health
                                                                               ));
         lastHealth = health;
     }
 }
Esempio n. 17
0
 public override void RegisterPacket(net.minecraft.src.Packet packet)
 {
     KickUser("Protocol error");
 }