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); }
/// <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); }
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); }