Пример #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);
        }
Пример #2
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);
 }
Пример #3
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);
        }