2488 {
2489 lock (
buffer[bufferIndex])
2490 {
2491 if (Main.dedServ && Netplay.Clients[bufferIndex].PendingTermination)
2492 {
2493 Netplay.Clients[bufferIndex].PendingTerminationApproved = true;
2494 buffer[bufferIndex].checkBytes =
false;
2495 return;
2496 }
2497 int num = 0;
2498 int num2 =
buffer[bufferIndex].totalData;
2499 try
2500 {
2501 while (num2 >= 2)
2502 {
2504 if (num2 >= num3)
2505 {
2506 long position =
buffer[bufferIndex].reader.BaseStream.Position;
2507 buffer[bufferIndex].GetData(num + 2, num3 - 2, out var _);
2508 if (Main.dedServ && Netplay.Clients[bufferIndex].PendingTermination)
2509 {
2510 Netplay.Clients[bufferIndex].PendingTerminationApproved = true;
2511 buffer[bufferIndex].checkBytes =
false;
2512 break;
2513 }
2514 buffer[bufferIndex].reader.BaseStream.Position = position + num3;
2515 num2 -= num3;
2516 num += num3;
2517 continue;
2518 }
2519 break;
2520 }
2521 }
2523 {
2524 if (Main.dedServ && num <
buffer.Length - 100)
2525 {
2527 }
2528 num2 = 0;
2529 num = 0;
2530 }
2531 if (num2 !=
buffer[bufferIndex].totalData)
2532 {
2533 for (
int i = 0;
i < num2;
i++)
2534 {
2535 buffer[bufferIndex].readBuffer[
i] =
buffer[bufferIndex].readBuffer[
i + num];
2536 }
2537 buffer[bufferIndex].totalData = num2;
2538 }
2539 buffer[bufferIndex].checkBytes =
false;
2540 }
2541 }
static ushort ToUInt16(byte[] value, int startIndex)
static string GetTextValue(string key)
static MessageBuffer[] buffer