// Decompiled with JetBrains decompiler // Type: Terraria.NetMessage // Assembly: Terraria, Version=1.0.4.0, Culture=neutral, PublicKeyToken=null // MVID: FF258283-FE37-4E8A-A035-CB1E6DC74C3C // Assembly location: C:\Users\mikeyisbaeyt\Downloads\depotdownloader-2.4.5\depots\105601\6707058\Terraria.exe using Microsoft.Xna.Framework; using System; using System.Text; namespace Terraria { public class NetMessage { public static messageBuffer[] buffer = new messageBuffer[257]; public static void SendData( int msgType, int remoteClient = -1, int ignoreClient = -1, string text = "", int number = 0, float number2 = 0.0f, float number3 = 0.0f, float number4 = 0.0f, int number5 = 0) { int whoAmi = 256; if (Main.netMode == 2 && remoteClient >= 0) whoAmi = remoteClient; lock (NetMessage.buffer[whoAmi]) { int count = 5; int dstOffset1 = count; int num1; switch (msgType) { case 1: byte[] bytes1 = BitConverter.GetBytes(msgType); byte[] bytes2 = Encoding.UTF8.GetBytes("Terraria" + (object) Main.curRelease); count += bytes2.Length; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes1, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); Buffer.BlockCopy((Array) bytes2, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 5, bytes2.Length); break; case 2: byte[] bytes3 = BitConverter.GetBytes(msgType); byte[] bytes4 = Encoding.UTF8.GetBytes(text); count += bytes4.Length; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes3, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); Buffer.BlockCopy((Array) bytes4, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 5, bytes4.Length); if (Main.dedServ) { Console.WriteLine(Netplay.serverSock[whoAmi].tcpClient.Client.RemoteEndPoint.ToString() + " was booted: " + text); break; } break; case 3: byte[] bytes5 = BitConverter.GetBytes(msgType); byte[] bytes6 = BitConverter.GetBytes(remoteClient); count += bytes6.Length; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes5, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); Buffer.BlockCopy((Array) bytes6, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 5, bytes6.Length); break; case 4: byte[] bytes7 = BitConverter.GetBytes(msgType); byte num2 = (byte) number; byte hair = (byte) Main.player[(int) num2].hair; byte num3 = 0; if (Main.player[(int) num2].male) num3 = (byte) 1; byte[] bytes8 = Encoding.UTF8.GetBytes(text); count += 24 + bytes8.Length + 1; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes7, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); NetMessage.buffer[whoAmi].writeBuffer[5] = num2; int num4 = dstOffset1 + 1; NetMessage.buffer[whoAmi].writeBuffer[6] = hair; int num5 = num4 + 1; NetMessage.buffer[whoAmi].writeBuffer[7] = num3; int index1 = num5 + 1; NetMessage.buffer[whoAmi].writeBuffer[index1] = Main.player[(int) num2].hairColor.R; int index2 = index1 + 1; NetMessage.buffer[whoAmi].writeBuffer[index2] = Main.player[(int) num2].hairColor.G; int index3 = index2 + 1; NetMessage.buffer[whoAmi].writeBuffer[index3] = Main.player[(int) num2].hairColor.B; int index4 = index3 + 1; NetMessage.buffer[whoAmi].writeBuffer[index4] = Main.player[(int) num2].skinColor.R; int index5 = index4 + 1; NetMessage.buffer[whoAmi].writeBuffer[index5] = Main.player[(int) num2].skinColor.G; int index6 = index5 + 1; NetMessage.buffer[whoAmi].writeBuffer[index6] = Main.player[(int) num2].skinColor.B; int index7 = index6 + 1; NetMessage.buffer[whoAmi].writeBuffer[index7] = Main.player[(int) num2].eyeColor.R; int index8 = index7 + 1; NetMessage.buffer[whoAmi].writeBuffer[index8] = Main.player[(int) num2].eyeColor.G; int index9 = index8 + 1; NetMessage.buffer[whoAmi].writeBuffer[index9] = Main.player[(int) num2].eyeColor.B; int index10 = index9 + 1; NetMessage.buffer[whoAmi].writeBuffer[index10] = Main.player[(int) num2].shirtColor.R; int index11 = index10 + 1; NetMessage.buffer[whoAmi].writeBuffer[index11] = Main.player[(int) num2].shirtColor.G; int index12 = index11 + 1; NetMessage.buffer[whoAmi].writeBuffer[index12] = Main.player[(int) num2].shirtColor.B; int index13 = index12 + 1; NetMessage.buffer[whoAmi].writeBuffer[index13] = Main.player[(int) num2].underShirtColor.R; int index14 = index13 + 1; NetMessage.buffer[whoAmi].writeBuffer[index14] = Main.player[(int) num2].underShirtColor.G; int index15 = index14 + 1; NetMessage.buffer[whoAmi].writeBuffer[index15] = Main.player[(int) num2].underShirtColor.B; int index16 = index15 + 1; NetMessage.buffer[whoAmi].writeBuffer[index16] = Main.player[(int) num2].pantsColor.R; int index17 = index16 + 1; NetMessage.buffer[whoAmi].writeBuffer[index17] = Main.player[(int) num2].pantsColor.G; int index18 = index17 + 1; NetMessage.buffer[whoAmi].writeBuffer[index18] = Main.player[(int) num2].pantsColor.B; int index19 = index18 + 1; NetMessage.buffer[whoAmi].writeBuffer[index19] = Main.player[(int) num2].shoeColor.R; int index20 = index19 + 1; NetMessage.buffer[whoAmi].writeBuffer[index20] = Main.player[(int) num2].shoeColor.G; int index21 = index20 + 1; NetMessage.buffer[whoAmi].writeBuffer[index21] = Main.player[(int) num2].shoeColor.B; int index22 = index21 + 1; NetMessage.buffer[whoAmi].writeBuffer[index22] = Main.player[(int) num2].difficulty; int dstOffset2 = index22 + 1; Buffer.BlockCopy((Array) bytes8, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset2, bytes8.Length); break; case 5: byte[] bytes9 = BitConverter.GetBytes(msgType); byte num6 = (byte) number; byte num7 = (byte) number2; byte num8; byte[] bytes10; if ((double) number2 < 49.0) { if (Main.player[number].inventory[(int) number2].name == "" || Main.player[number].inventory[(int) number2].stack == 0 || Main.player[number].inventory[(int) number2].type == 0) Main.player[number].inventory[(int) number2].netID = 0; num8 = (byte) Main.player[number].inventory[(int) number2].stack; bytes10 = BitConverter.GetBytes((short) Main.player[number].inventory[(int) number2].netID); if (Main.player[number].inventory[(int) number2].stack < 0) num8 = (byte) 0; } else { if (Main.player[number].armor[(int) number2 - 48 - 1].name == "" || Main.player[number].armor[(int) number2 - 48 - 1].stack == 0 || Main.player[number].armor[(int) number2 - 48 - 1].type == 0) Main.player[number].armor[(int) number2 - 48 - 1].SetDefaults(0); num8 = (byte) Main.player[number].armor[(int) number2 - 48 - 1].stack; bytes10 = BitConverter.GetBytes((short) Main.player[number].armor[(int) number2 - 48 - 1].netID); if (Main.player[number].armor[(int) number2 - 48 - 1].stack < 0) num8 = (byte) 0; } byte num9 = (byte) number3; count += 4 + bytes10.Length; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes9, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); NetMessage.buffer[whoAmi].writeBuffer[5] = num6; int num10 = dstOffset1 + 1; NetMessage.buffer[whoAmi].writeBuffer[6] = num7; int num11 = num10 + 1; NetMessage.buffer[whoAmi].writeBuffer[7] = num8; int num12 = num11 + 1; NetMessage.buffer[whoAmi].writeBuffer[8] = num9; int dstOffset3 = num12 + 1; Buffer.BlockCopy((Array) bytes10, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset3, bytes10.Length); break; case 6: byte[] bytes11 = BitConverter.GetBytes(msgType); Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes11, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); break; case 7: byte[] bytes12 = BitConverter.GetBytes(msgType); byte[] bytes13 = BitConverter.GetBytes((int) Main.time); byte num13 = 0; if (Main.dayTime) num13 = (byte) 1; byte moonPhase = (byte) Main.moonPhase; byte num14 = 0; if (Main.bloodMoon) num14 = (byte) 1; byte[] bytes14 = BitConverter.GetBytes(Main.maxTilesX); byte[] bytes15 = BitConverter.GetBytes(Main.maxTilesY); byte[] bytes16 = BitConverter.GetBytes(Main.spawnTileX); byte[] bytes17 = BitConverter.GetBytes(Main.spawnTileY); byte[] bytes18 = BitConverter.GetBytes((int) Main.worldSurface); byte[] bytes19 = BitConverter.GetBytes((int) Main.rockLayer); byte[] bytes20 = BitConverter.GetBytes(Main.worldID); byte[] bytes21 = Encoding.UTF8.GetBytes(Main.worldName); byte num15 = 0; if (WorldGen.shadowOrbSmashed) ++num15; if (NPC.downedBoss1) num15 += (byte) 2; if (NPC.downedBoss2) num15 += (byte) 4; if (NPC.downedBoss3) num15 += (byte) 8; if (Main.hardMode) num15 += (byte) 16; if (NPC.downedClown) num15 += (byte) 32; count += bytes13.Length + 1 + 1 + 1 + bytes14.Length + bytes15.Length + bytes16.Length + bytes17.Length + bytes18.Length + bytes19.Length + bytes20.Length + 1 + bytes21.Length; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes12, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); Buffer.BlockCopy((Array) bytes13, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 5, bytes13.Length); int index23 = dstOffset1 + bytes13.Length; NetMessage.buffer[whoAmi].writeBuffer[index23] = num13; int index24 = index23 + 1; NetMessage.buffer[whoAmi].writeBuffer[index24] = moonPhase; int index25 = index24 + 1; NetMessage.buffer[whoAmi].writeBuffer[index25] = num14; int dstOffset4 = index25 + 1; Buffer.BlockCopy((Array) bytes14, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset4, bytes14.Length); int dstOffset5 = dstOffset4 + bytes14.Length; Buffer.BlockCopy((Array) bytes15, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset5, bytes15.Length); int dstOffset6 = dstOffset5 + bytes15.Length; Buffer.BlockCopy((Array) bytes16, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset6, bytes16.Length); int dstOffset7 = dstOffset6 + bytes16.Length; Buffer.BlockCopy((Array) bytes17, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset7, bytes17.Length); int dstOffset8 = dstOffset7 + bytes17.Length; Buffer.BlockCopy((Array) bytes18, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset8, bytes18.Length); int dstOffset9 = dstOffset8 + bytes18.Length; Buffer.BlockCopy((Array) bytes19, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset9, bytes19.Length); int dstOffset10 = dstOffset9 + bytes19.Length; Buffer.BlockCopy((Array) bytes20, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset10, bytes20.Length); int index26 = dstOffset10 + bytes20.Length; NetMessage.buffer[whoAmi].writeBuffer[index26] = num15; int dstOffset11 = index26 + 1; Buffer.BlockCopy((Array) bytes21, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset11, bytes21.Length); num1 = dstOffset11 + bytes21.Length; break; case 8: byte[] bytes22 = BitConverter.GetBytes(msgType); byte[] bytes23 = BitConverter.GetBytes(number); byte[] bytes24 = BitConverter.GetBytes((int) number2); count += bytes23.Length + bytes24.Length; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes22, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); Buffer.BlockCopy((Array) bytes23, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset1, 4); int dstOffset12 = dstOffset1 + 4; Buffer.BlockCopy((Array) bytes24, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset12, 4); break; case 9: byte[] bytes25 = BitConverter.GetBytes(msgType); byte[] bytes26 = BitConverter.GetBytes(number); byte[] bytes27 = Encoding.UTF8.GetBytes(text); count += bytes26.Length + bytes27.Length; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes25, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); Buffer.BlockCopy((Array) bytes26, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset1, 4); int dstOffset13 = dstOffset1 + 4; Buffer.BlockCopy((Array) bytes27, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset13, bytes27.Length); break; case 10: short num16 = (short) number; int num17 = (int) number2; int index27 = (int) number3; Buffer.BlockCopy((Array) BitConverter.GetBytes(msgType), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); Buffer.BlockCopy((Array) BitConverter.GetBytes(num16), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset1, 2); int dstOffset14 = dstOffset1 + 2; Buffer.BlockCopy((Array) BitConverter.GetBytes(num17), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset14, 4); int dstOffset15 = dstOffset14 + 4; Buffer.BlockCopy((Array) BitConverter.GetBytes(index27), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset15, 4); int index28 = dstOffset15 + 4; short num18; for (int index29 = num17; index29 < num17 + (int) num16; index29 = index29 + (int) num18 + 1) { byte num19 = 0; if (Main.tile[index29, index27].active) ++num19; if (Main.tile[index29, index27].wall > (byte) 0) num19 += (byte) 4; if (Main.tile[index29, index27].liquid > (byte) 0) num19 += (byte) 8; if (Main.tile[index29, index27].wire) num19 += (byte) 16; NetMessage.buffer[whoAmi].writeBuffer[index28] = num19; int dstOffset16 = index28 + 1; byte[] bytes28 = BitConverter.GetBytes(Main.tile[index29, index27].frameX); byte[] bytes29 = BitConverter.GetBytes(Main.tile[index29, index27].frameY); byte wall = Main.tile[index29, index27].wall; if (Main.tile[index29, index27].active) { NetMessage.buffer[whoAmi].writeBuffer[dstOffset16] = Main.tile[index29, index27].type; ++dstOffset16; if (Main.tileFrameImportant[(int) Main.tile[index29, index27].type]) { Buffer.BlockCopy((Array) bytes28, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset16, 2); int dstOffset17 = dstOffset16 + 2; Buffer.BlockCopy((Array) bytes29, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset17, 2); dstOffset16 = dstOffset17 + 2; } } if (wall > (byte) 0) { NetMessage.buffer[whoAmi].writeBuffer[dstOffset16] = wall; ++dstOffset16; } if (Main.tile[index29, index27].liquid > (byte) 0) { NetMessage.buffer[whoAmi].writeBuffer[dstOffset16] = Main.tile[index29, index27].liquid; int index30 = dstOffset16 + 1; byte num20 = 0; if (Main.tile[index29, index27].lava) num20 = (byte) 1; NetMessage.buffer[whoAmi].writeBuffer[index30] = num20; dstOffset16 = index30 + 1; } short num21 = 1; while (index29 + (int) num21 < num17 + (int) num16 && Main.tile[index29, index27].isTheSameAs(Main.tile[index29 + (int) num21, index27])) ++num21; num18 = (short) ((int) num21 - 1); Buffer.BlockCopy((Array) BitConverter.GetBytes(num18), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset16, 2); index28 = dstOffset16 + 2; } Buffer.BlockCopy((Array) BitConverter.GetBytes(index28 - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); count = index28; break; case 11: byte[] bytes30 = BitConverter.GetBytes(msgType); byte[] bytes31 = BitConverter.GetBytes(number); byte[] bytes32 = BitConverter.GetBytes((int) number2); byte[] bytes33 = BitConverter.GetBytes((int) number3); byte[] bytes34 = BitConverter.GetBytes((int) number4); count += bytes31.Length + bytes32.Length + bytes33.Length + bytes34.Length; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes30, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); Buffer.BlockCopy((Array) bytes31, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset1, 4); int dstOffset18 = dstOffset1 + 4; Buffer.BlockCopy((Array) bytes32, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset18, 4); int dstOffset19 = dstOffset18 + 4; Buffer.BlockCopy((Array) bytes33, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset19, 4); int dstOffset20 = dstOffset19 + 4; Buffer.BlockCopy((Array) bytes34, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset20, 4); num1 = dstOffset20 + 4; break; case 12: byte[] bytes35 = BitConverter.GetBytes(msgType); byte num22 = (byte) number; byte[] bytes36 = BitConverter.GetBytes(Main.player[(int) num22].SpawnX); byte[] bytes37 = BitConverter.GetBytes(Main.player[(int) num22].SpawnY); count += 1 + bytes36.Length + bytes37.Length; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes35, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); NetMessage.buffer[whoAmi].writeBuffer[dstOffset1] = num22; int dstOffset21 = dstOffset1 + 1; Buffer.BlockCopy((Array) bytes36, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset21, 4); int dstOffset22 = dstOffset21 + 4; Buffer.BlockCopy((Array) bytes37, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset22, 4); num1 = dstOffset22 + 4; break; case 13: byte[] bytes38 = BitConverter.GetBytes(msgType); byte num23 = (byte) number; byte num24 = 0; if (Main.player[(int) num23].controlUp) ++num24; if (Main.player[(int) num23].controlDown) num24 += (byte) 2; if (Main.player[(int) num23].controlLeft) num24 += (byte) 4; if (Main.player[(int) num23].controlRight) num24 += (byte) 8; if (Main.player[(int) num23].controlJump) num24 += (byte) 16; if (Main.player[(int) num23].controlUseItem) num24 += (byte) 32; if (Main.player[(int) num23].direction == 1) num24 += (byte) 64; byte selectedItem = (byte) Main.player[(int) num23].selectedItem; byte[] bytes39 = BitConverter.GetBytes(Main.player[number].position.X); byte[] bytes40 = BitConverter.GetBytes(Main.player[number].position.Y); byte[] bytes41 = BitConverter.GetBytes(Main.player[number].velocity.X); byte[] bytes42 = BitConverter.GetBytes(Main.player[number].velocity.Y); count += 3 + bytes39.Length + bytes40.Length + bytes41.Length + bytes42.Length; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes38, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); NetMessage.buffer[whoAmi].writeBuffer[5] = num23; int num25 = dstOffset1 + 1; NetMessage.buffer[whoAmi].writeBuffer[6] = num24; int num26 = num25 + 1; NetMessage.buffer[whoAmi].writeBuffer[7] = selectedItem; int dstOffset23 = num26 + 1; Buffer.BlockCopy((Array) bytes39, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset23, 4); int dstOffset24 = dstOffset23 + 4; Buffer.BlockCopy((Array) bytes40, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset24, 4); int dstOffset25 = dstOffset24 + 4; Buffer.BlockCopy((Array) bytes41, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset25, 4); int dstOffset26 = dstOffset25 + 4; Buffer.BlockCopy((Array) bytes42, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset26, 4); break; case 14: byte[] bytes43 = BitConverter.GetBytes(msgType); byte num27 = (byte) number; byte num28 = (byte) number2; count += 2; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes43, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); NetMessage.buffer[whoAmi].writeBuffer[5] = num27; NetMessage.buffer[whoAmi].writeBuffer[6] = num28; break; case 15: byte[] bytes44 = BitConverter.GetBytes(msgType); Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes44, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); break; case 16: byte[] bytes45 = BitConverter.GetBytes(msgType); byte num29 = (byte) number; byte[] bytes46 = BitConverter.GetBytes((short) Main.player[(int) num29].statLife); byte[] bytes47 = BitConverter.GetBytes((short) Main.player[(int) num29].statLifeMax); count += 1 + bytes46.Length + bytes47.Length; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes45, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); NetMessage.buffer[whoAmi].writeBuffer[5] = num29; int dstOffset27 = dstOffset1 + 1; Buffer.BlockCopy((Array) bytes46, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset27, 2); int dstOffset28 = dstOffset27 + 2; Buffer.BlockCopy((Array) bytes47, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset28, 2); break; case 17: byte[] bytes48 = BitConverter.GetBytes(msgType); byte num30 = (byte) number; byte[] bytes49 = BitConverter.GetBytes((int) number2); byte[] bytes50 = BitConverter.GetBytes((int) number3); byte num31 = (byte) number4; count += 1 + bytes49.Length + bytes50.Length + 1 + 1; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes48, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); NetMessage.buffer[whoAmi].writeBuffer[dstOffset1] = num30; int dstOffset29 = dstOffset1 + 1; Buffer.BlockCopy((Array) bytes49, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset29, 4); int dstOffset30 = dstOffset29 + 4; Buffer.BlockCopy((Array) bytes50, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset30, 4); int index31 = dstOffset30 + 4; NetMessage.buffer[whoAmi].writeBuffer[index31] = num31; int index32 = index31 + 1; NetMessage.buffer[whoAmi].writeBuffer[index32] = (byte) number5; break; case 18: byte[] bytes51 = BitConverter.GetBytes(msgType); BitConverter.GetBytes((int) Main.time); byte num32 = 0; if (Main.dayTime) num32 = (byte) 1; byte[] bytes52 = BitConverter.GetBytes((int) Main.time); byte[] bytes53 = BitConverter.GetBytes(Main.sunModY); byte[] bytes54 = BitConverter.GetBytes(Main.moonModY); count += 1 + bytes52.Length + bytes53.Length + bytes54.Length; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes51, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); NetMessage.buffer[whoAmi].writeBuffer[dstOffset1] = num32; int dstOffset31 = dstOffset1 + 1; Buffer.BlockCopy((Array) bytes52, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset31, 4); int dstOffset32 = dstOffset31 + 4; Buffer.BlockCopy((Array) bytes53, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset32, 2); int dstOffset33 = dstOffset32 + 2; Buffer.BlockCopy((Array) bytes54, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset33, 2); num1 = dstOffset33 + 2; break; case 19: byte[] bytes55 = BitConverter.GetBytes(msgType); byte num33 = (byte) number; byte[] bytes56 = BitConverter.GetBytes((int) number2); byte[] bytes57 = BitConverter.GetBytes((int) number3); byte num34 = 0; if ((double) number4 == 1.0) num34 = (byte) 1; count += 1 + bytes56.Length + bytes57.Length + 1; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes55, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); NetMessage.buffer[whoAmi].writeBuffer[dstOffset1] = num33; int dstOffset34 = dstOffset1 + 1; Buffer.BlockCopy((Array) bytes56, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset34, 4); int dstOffset35 = dstOffset34 + 4; Buffer.BlockCopy((Array) bytes57, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset35, 4); int index33 = dstOffset35 + 4; NetMessage.buffer[whoAmi].writeBuffer[index33] = num34; break; case 20: short num35 = (short) number; int num36 = (int) number2; int num37 = (int) number3; Buffer.BlockCopy((Array) BitConverter.GetBytes(msgType), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); Buffer.BlockCopy((Array) BitConverter.GetBytes(num35), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset1, 2); int dstOffset36 = dstOffset1 + 2; Buffer.BlockCopy((Array) BitConverter.GetBytes(num36), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset36, 4); int dstOffset37 = dstOffset36 + 4; Buffer.BlockCopy((Array) BitConverter.GetBytes(num37), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset37, 4); int dstOffset38 = dstOffset37 + 4; for (int index34 = num36; index34 < num36 + (int) num35; ++index34) { for (int index35 = num37; index35 < num37 + (int) num35; ++index35) { byte num38 = 0; if (Main.tile[index34, index35].active) ++num38; if (Main.tile[index34, index35].wall > (byte) 0) num38 += (byte) 4; if (Main.tile[index34, index35].liquid > (byte) 0 && Main.netMode == 2) num38 += (byte) 8; if (Main.tile[index34, index35].wire) num38 += (byte) 16; NetMessage.buffer[whoAmi].writeBuffer[dstOffset38] = num38; ++dstOffset38; byte[] bytes58 = BitConverter.GetBytes(Main.tile[index34, index35].frameX); byte[] bytes59 = BitConverter.GetBytes(Main.tile[index34, index35].frameY); byte wall = Main.tile[index34, index35].wall; if (Main.tile[index34, index35].active) { NetMessage.buffer[whoAmi].writeBuffer[dstOffset38] = Main.tile[index34, index35].type; ++dstOffset38; if (Main.tileFrameImportant[(int) Main.tile[index34, index35].type]) { Buffer.BlockCopy((Array) bytes58, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset38, 2); int dstOffset39 = dstOffset38 + 2; Buffer.BlockCopy((Array) bytes59, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset39, 2); dstOffset38 = dstOffset39 + 2; } } if (wall > (byte) 0) { NetMessage.buffer[whoAmi].writeBuffer[dstOffset38] = wall; ++dstOffset38; } if (Main.tile[index34, index35].liquid > (byte) 0 && Main.netMode == 2) { NetMessage.buffer[whoAmi].writeBuffer[dstOffset38] = Main.tile[index34, index35].liquid; int index36 = dstOffset38 + 1; byte num39 = 0; if (Main.tile[index34, index35].lava) num39 = (byte) 1; NetMessage.buffer[whoAmi].writeBuffer[index36] = num39; dstOffset38 = index36 + 1; } } } Buffer.BlockCopy((Array) BitConverter.GetBytes(dstOffset38 - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); count = dstOffset38; break; case 21: byte[] bytes60 = BitConverter.GetBytes(msgType); byte[] bytes61 = BitConverter.GetBytes((short) number); byte[] bytes62 = BitConverter.GetBytes(Main.item[number].position.X); byte[] bytes63 = BitConverter.GetBytes(Main.item[number].position.Y); byte[] bytes64 = BitConverter.GetBytes(Main.item[number].velocity.X); byte[] bytes65 = BitConverter.GetBytes(Main.item[number].velocity.Y); byte stack1 = (byte) Main.item[number].stack; byte prefix1 = Main.item[number].prefix; short num40 = 0; if (Main.item[number].active && Main.item[number].stack > 0) num40 = (short) Main.item[number].netID; byte[] bytes66 = BitConverter.GetBytes(num40); count += bytes61.Length + bytes62.Length + bytes63.Length + bytes64.Length + bytes65.Length + 1 + bytes66.Length + 1; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes60, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); Buffer.BlockCopy((Array) bytes61, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset1, bytes61.Length); int dstOffset40 = dstOffset1 + 2; Buffer.BlockCopy((Array) bytes62, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset40, bytes62.Length); int dstOffset41 = dstOffset40 + 4; Buffer.BlockCopy((Array) bytes63, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset41, bytes63.Length); int dstOffset42 = dstOffset41 + 4; Buffer.BlockCopy((Array) bytes64, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset42, bytes64.Length); int dstOffset43 = dstOffset42 + 4; Buffer.BlockCopy((Array) bytes65, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset43, bytes65.Length); int index37 = dstOffset43 + 4; NetMessage.buffer[whoAmi].writeBuffer[index37] = stack1; int index38 = index37 + 1; NetMessage.buffer[whoAmi].writeBuffer[index38] = prefix1; int dstOffset44 = index38 + 1; Buffer.BlockCopy((Array) bytes66, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset44, bytes66.Length); break; case 22: byte[] bytes67 = BitConverter.GetBytes(msgType); byte[] bytes68 = BitConverter.GetBytes((short) number); byte owner = (byte) Main.item[number].owner; count += bytes68.Length + 1; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes67, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); Buffer.BlockCopy((Array) bytes68, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset1, bytes68.Length); int index39 = dstOffset1 + 2; NetMessage.buffer[whoAmi].writeBuffer[index39] = owner; break; case 23: byte[] bytes69 = BitConverter.GetBytes(msgType); byte[] bytes70 = BitConverter.GetBytes((short) number); byte[] bytes71 = BitConverter.GetBytes(Main.npc[number].position.X); byte[] bytes72 = BitConverter.GetBytes(Main.npc[number].position.Y); byte[] bytes73 = BitConverter.GetBytes(Main.npc[number].velocity.X); byte[] bytes74 = BitConverter.GetBytes(Main.npc[number].velocity.Y); byte[] bytes75 = BitConverter.GetBytes((short) Main.npc[number].target); byte[] bytes76 = BitConverter.GetBytes(Main.npc[number].life); if (!Main.npc[number].active) bytes76 = BitConverter.GetBytes(0); if (!Main.npc[number].active || Main.npc[number].life <= 0) Main.npc[number].netSkip = 0; if (Main.npc[number].name == null) Main.npc[number].name = ""; byte[] bytes77 = BitConverter.GetBytes((short) Main.npc[number].netID); count += bytes70.Length + bytes71.Length + bytes72.Length + bytes73.Length + bytes74.Length + bytes75.Length + bytes76.Length + NPC.maxAI * 4 + bytes77.Length + 1 + 1; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes69, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); Buffer.BlockCopy((Array) bytes70, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset1, bytes70.Length); int dstOffset45 = dstOffset1 + 2; Buffer.BlockCopy((Array) bytes71, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset45, bytes71.Length); int dstOffset46 = dstOffset45 + 4; Buffer.BlockCopy((Array) bytes72, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset46, bytes72.Length); int dstOffset47 = dstOffset46 + 4; Buffer.BlockCopy((Array) bytes73, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset47, bytes73.Length); int dstOffset48 = dstOffset47 + 4; Buffer.BlockCopy((Array) bytes74, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset48, bytes74.Length); int dstOffset49 = dstOffset48 + 4; Buffer.BlockCopy((Array) bytes75, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset49, bytes75.Length); int index40 = dstOffset49 + 2; NetMessage.buffer[whoAmi].writeBuffer[index40] = (byte) (Main.npc[number].direction + 1); int index41 = index40 + 1; NetMessage.buffer[whoAmi].writeBuffer[index41] = (byte) (Main.npc[number].directionY + 1); int dstOffset50 = index41 + 1; Buffer.BlockCopy((Array) bytes76, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset50, bytes76.Length); int dstOffset51 = dstOffset50 + 4; for (int index42 = 0; index42 < NPC.maxAI; ++index42) { byte[] bytes78 = BitConverter.GetBytes(Main.npc[number].ai[index42]); Buffer.BlockCopy((Array) bytes78, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset51, bytes78.Length); dstOffset51 += 4; } Buffer.BlockCopy((Array) bytes77, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset51, bytes77.Length); break; case 24: byte[] bytes79 = BitConverter.GetBytes(msgType); byte[] bytes80 = BitConverter.GetBytes((short) number); byte num41 = (byte) number2; count += bytes80.Length + 1; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes79, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); Buffer.BlockCopy((Array) bytes80, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset1, bytes80.Length); int index43 = dstOffset1 + 2; NetMessage.buffer[whoAmi].writeBuffer[index43] = num41; break; case 25: byte[] bytes81 = BitConverter.GetBytes(msgType); byte num42 = (byte) number; byte[] bytes82 = Encoding.UTF8.GetBytes(text); byte num43 = (byte) number2; byte num44 = (byte) number3; byte num45 = (byte) number4; count += 1 + bytes82.Length + 3; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes81, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); NetMessage.buffer[whoAmi].writeBuffer[dstOffset1] = num42; int index44 = dstOffset1 + 1; NetMessage.buffer[whoAmi].writeBuffer[index44] = num43; int index45 = index44 + 1; NetMessage.buffer[whoAmi].writeBuffer[index45] = num44; int index46 = index45 + 1; NetMessage.buffer[whoAmi].writeBuffer[index46] = num45; int dstOffset52 = index46 + 1; Buffer.BlockCopy((Array) bytes82, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset52, bytes82.Length); break; case 26: byte[] bytes83 = BitConverter.GetBytes(msgType); byte num46 = (byte) number; byte num47 = (byte) ((double) number2 + 1.0); byte[] bytes84 = BitConverter.GetBytes((short) number3); byte[] bytes85 = Encoding.UTF8.GetBytes(text); byte num48 = (byte) number4; byte num49 = (byte) number5; count += 2 + bytes84.Length + 1 + bytes85.Length + 1; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes83, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); NetMessage.buffer[whoAmi].writeBuffer[dstOffset1] = num46; int index47 = dstOffset1 + 1; NetMessage.buffer[whoAmi].writeBuffer[index47] = num47; int dstOffset53 = index47 + 1; Buffer.BlockCopy((Array) bytes84, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset53, bytes84.Length); int index48 = dstOffset53 + 2; NetMessage.buffer[whoAmi].writeBuffer[index48] = num48; int index49 = index48 + 1; NetMessage.buffer[whoAmi].writeBuffer[index49] = num49; int dstOffset54 = index49 + 1; Buffer.BlockCopy((Array) bytes85, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset54, bytes85.Length); break; case 27: byte[] bytes86 = BitConverter.GetBytes(msgType); byte[] bytes87 = BitConverter.GetBytes((short) Main.projectile[number].identity); byte[] bytes88 = BitConverter.GetBytes(Main.projectile[number].position.X); byte[] bytes89 = BitConverter.GetBytes(Main.projectile[number].position.Y); byte[] bytes90 = BitConverter.GetBytes(Main.projectile[number].velocity.X); byte[] bytes91 = BitConverter.GetBytes(Main.projectile[number].velocity.Y); byte[] bytes92 = BitConverter.GetBytes(Main.projectile[number].knockBack); byte[] bytes93 = BitConverter.GetBytes((short) Main.projectile[number].damage); Buffer.BlockCopy((Array) bytes86, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); Buffer.BlockCopy((Array) bytes87, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset1, bytes87.Length); int dstOffset55 = dstOffset1 + 2; Buffer.BlockCopy((Array) bytes88, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset55, bytes88.Length); int dstOffset56 = dstOffset55 + 4; Buffer.BlockCopy((Array) bytes89, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset56, bytes89.Length); int dstOffset57 = dstOffset56 + 4; Buffer.BlockCopy((Array) bytes90, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset57, bytes90.Length); int dstOffset58 = dstOffset57 + 4; Buffer.BlockCopy((Array) bytes91, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset58, bytes91.Length); int dstOffset59 = dstOffset58 + 4; Buffer.BlockCopy((Array) bytes92, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset59, bytes92.Length); int dstOffset60 = dstOffset59 + 4; Buffer.BlockCopy((Array) bytes93, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset60, bytes93.Length); int index50 = dstOffset60 + 2; NetMessage.buffer[whoAmi].writeBuffer[index50] = (byte) Main.projectile[number].owner; int index51 = index50 + 1; NetMessage.buffer[whoAmi].writeBuffer[index51] = (byte) Main.projectile[number].type; int dstOffset61 = index51 + 1; for (int index52 = 0; index52 < Projectile.maxAI; ++index52) { byte[] bytes94 = BitConverter.GetBytes(Main.projectile[number].ai[index52]); Buffer.BlockCopy((Array) bytes94, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset61, bytes94.Length); dstOffset61 += 4; } count += dstOffset61; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); break; case 28: byte[] bytes95 = BitConverter.GetBytes(msgType); byte[] bytes96 = BitConverter.GetBytes((short) number); byte[] bytes97 = BitConverter.GetBytes((short) number2); byte[] bytes98 = BitConverter.GetBytes(number3); byte num50 = (byte) ((double) number4 + 1.0); byte num51 = (byte) number5; count += bytes96.Length + bytes97.Length + bytes98.Length + 1 + 1; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes95, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); Buffer.BlockCopy((Array) bytes96, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset1, bytes96.Length); int dstOffset62 = dstOffset1 + 2; Buffer.BlockCopy((Array) bytes97, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset62, bytes97.Length); int dstOffset63 = dstOffset62 + 2; Buffer.BlockCopy((Array) bytes98, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset63, bytes98.Length); int index53 = dstOffset63 + 4; NetMessage.buffer[whoAmi].writeBuffer[index53] = num50; int index54 = index53 + 1; NetMessage.buffer[whoAmi].writeBuffer[index54] = num51; break; case 29: byte[] bytes99 = BitConverter.GetBytes(msgType); byte[] bytes100 = BitConverter.GetBytes((short) number); byte num52 = (byte) number2; count += bytes100.Length + 1; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes99, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); Buffer.BlockCopy((Array) bytes100, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset1, bytes100.Length); int index55 = dstOffset1 + 2; NetMessage.buffer[whoAmi].writeBuffer[index55] = num52; break; case 30: byte[] bytes101 = BitConverter.GetBytes(msgType); byte num53 = (byte) number; byte num54 = 0; if (Main.player[(int) num53].hostile) num54 = (byte) 1; count += 2; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes101, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); NetMessage.buffer[whoAmi].writeBuffer[dstOffset1] = num53; int index56 = dstOffset1 + 1; NetMessage.buffer[whoAmi].writeBuffer[index56] = num54; break; case 31: byte[] bytes102 = BitConverter.GetBytes(msgType); byte[] bytes103 = BitConverter.GetBytes(number); byte[] bytes104 = BitConverter.GetBytes((int) number2); count += bytes103.Length + bytes104.Length; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes102, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); Buffer.BlockCopy((Array) bytes103, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset1, bytes103.Length); int dstOffset64 = dstOffset1 + 4; Buffer.BlockCopy((Array) bytes104, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset64, bytes104.Length); break; case 32: byte[] bytes105 = BitConverter.GetBytes(msgType); byte[] bytes106 = BitConverter.GetBytes((short) number); byte num55 = (byte) number2; byte stack2 = (byte) Main.chest[number].item[(int) number2].stack; byte prefix2 = Main.chest[number].item[(int) number2].prefix; byte[] numArray = Main.chest[number].item[(int) number2].name != null ? BitConverter.GetBytes((short) Main.chest[number].item[(int) number2].netID) : BitConverter.GetBytes((short) 0); count += bytes106.Length + 1 + 1 + 1 + numArray.Length; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes105, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); Buffer.BlockCopy((Array) bytes106, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset1, bytes106.Length); int index57 = dstOffset1 + 2; NetMessage.buffer[whoAmi].writeBuffer[index57] = num55; int index58 = index57 + 1; NetMessage.buffer[whoAmi].writeBuffer[index58] = stack2; int index59 = index58 + 1; NetMessage.buffer[whoAmi].writeBuffer[index59] = prefix2; int dstOffset65 = index59 + 1; Buffer.BlockCopy((Array) numArray, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset65, numArray.Length); break; case 33: byte[] bytes107 = BitConverter.GetBytes(msgType); byte[] bytes108 = BitConverter.GetBytes((short) number); byte[] bytes109; byte[] bytes110; if (number > -1) { bytes109 = BitConverter.GetBytes(Main.chest[number].x); bytes110 = BitConverter.GetBytes(Main.chest[number].y); } else { bytes109 = BitConverter.GetBytes(0); bytes110 = BitConverter.GetBytes(0); } count += bytes108.Length + bytes109.Length + bytes110.Length; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes107, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); Buffer.BlockCopy((Array) bytes108, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset1, bytes108.Length); int dstOffset66 = dstOffset1 + 2; Buffer.BlockCopy((Array) bytes109, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset66, bytes109.Length); int dstOffset67 = dstOffset66 + 4; Buffer.BlockCopy((Array) bytes110, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset67, bytes110.Length); break; case 34: byte[] bytes111 = BitConverter.GetBytes(msgType); byte[] bytes112 = BitConverter.GetBytes(number); byte[] bytes113 = BitConverter.GetBytes((int) number2); count += bytes112.Length + bytes113.Length; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes111, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); Buffer.BlockCopy((Array) bytes112, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset1, bytes112.Length); int dstOffset68 = dstOffset1 + 4; Buffer.BlockCopy((Array) bytes113, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset68, bytes113.Length); break; case 35: byte[] bytes114 = BitConverter.GetBytes(msgType); byte num56 = (byte) number; byte[] bytes115 = BitConverter.GetBytes((short) number2); count += 1 + bytes115.Length; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes114, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); NetMessage.buffer[whoAmi].writeBuffer[5] = num56; int dstOffset69 = dstOffset1 + 1; Buffer.BlockCopy((Array) bytes115, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset69, 2); break; case 36: byte[] bytes116 = BitConverter.GetBytes(msgType); byte num57 = (byte) number; byte num58 = 0; if (Main.player[(int) num57].zoneEvil) num58 = (byte) 1; byte num59 = 0; if (Main.player[(int) num57].zoneMeteor) num59 = (byte) 1; byte num60 = 0; if (Main.player[(int) num57].zoneDungeon) num60 = (byte) 1; byte num61 = 0; if (Main.player[(int) num57].zoneJungle) num61 = (byte) 1; byte num62 = 0; if (Main.player[(int) num57].zoneHoly) num62 = (byte) 1; count += 6; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes116, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); NetMessage.buffer[whoAmi].writeBuffer[dstOffset1] = num57; int index60 = dstOffset1 + 1; NetMessage.buffer[whoAmi].writeBuffer[index60] = num58; int index61 = index60 + 1; NetMessage.buffer[whoAmi].writeBuffer[index61] = num59; int index62 = index61 + 1; NetMessage.buffer[whoAmi].writeBuffer[index62] = num60; int index63 = index62 + 1; NetMessage.buffer[whoAmi].writeBuffer[index63] = num61; int index64 = index63 + 1; NetMessage.buffer[whoAmi].writeBuffer[index64] = num62; num1 = index64 + 1; break; case 37: byte[] bytes117 = BitConverter.GetBytes(msgType); Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes117, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); break; case 38: byte[] bytes118 = BitConverter.GetBytes(msgType); byte[] bytes119 = Encoding.UTF8.GetBytes(text); count += bytes119.Length; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes118, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); Buffer.BlockCopy((Array) bytes119, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset1, bytes119.Length); break; case 39: byte[] bytes120 = BitConverter.GetBytes(msgType); byte[] bytes121 = BitConverter.GetBytes((short) number); count += bytes121.Length; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes120, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); Buffer.BlockCopy((Array) bytes121, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset1, bytes121.Length); break; case 40: byte[] bytes122 = BitConverter.GetBytes(msgType); byte num63 = (byte) number; byte[] bytes123 = BitConverter.GetBytes((short) Main.player[(int) num63].talkNPC); count += 1 + bytes123.Length; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes122, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); NetMessage.buffer[whoAmi].writeBuffer[dstOffset1] = num63; int dstOffset70 = dstOffset1 + 1; Buffer.BlockCopy((Array) bytes123, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset70, bytes123.Length); num1 = dstOffset70 + 2; break; case 41: byte[] bytes124 = BitConverter.GetBytes(msgType); byte num64 = (byte) number; byte[] bytes125 = BitConverter.GetBytes(Main.player[(int) num64].itemRotation); byte[] bytes126 = BitConverter.GetBytes((short) Main.player[(int) num64].itemAnimation); count += 1 + bytes125.Length + bytes126.Length; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes124, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); NetMessage.buffer[whoAmi].writeBuffer[dstOffset1] = num64; int dstOffset71 = dstOffset1 + 1; Buffer.BlockCopy((Array) bytes125, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset71, bytes125.Length); int dstOffset72 = dstOffset71 + 4; Buffer.BlockCopy((Array) bytes126, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset72, bytes126.Length); break; case 42: byte[] bytes127 = BitConverter.GetBytes(msgType); byte num65 = (byte) number; byte[] bytes128 = BitConverter.GetBytes((short) Main.player[(int) num65].statMana); byte[] bytes129 = BitConverter.GetBytes((short) Main.player[(int) num65].statManaMax); count += 1 + bytes128.Length + bytes129.Length; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes127, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); NetMessage.buffer[whoAmi].writeBuffer[5] = num65; int dstOffset73 = dstOffset1 + 1; Buffer.BlockCopy((Array) bytes128, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset73, 2); int dstOffset74 = dstOffset73 + 2; Buffer.BlockCopy((Array) bytes129, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset74, 2); break; case 43: byte[] bytes130 = BitConverter.GetBytes(msgType); byte num66 = (byte) number; byte[] bytes131 = BitConverter.GetBytes((short) number2); count += 1 + bytes131.Length; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes130, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); NetMessage.buffer[whoAmi].writeBuffer[5] = num66; int dstOffset75 = dstOffset1 + 1; Buffer.BlockCopy((Array) bytes131, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset75, 2); break; case 44: byte[] bytes132 = BitConverter.GetBytes(msgType); byte num67 = (byte) number; byte num68 = (byte) ((double) number2 + 1.0); byte[] bytes133 = BitConverter.GetBytes((short) number3); byte num69 = (byte) number4; byte[] bytes134 = Encoding.UTF8.GetBytes(text); count += 2 + bytes133.Length + 1 + bytes134.Length; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes132, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); NetMessage.buffer[whoAmi].writeBuffer[dstOffset1] = num67; int index65 = dstOffset1 + 1; NetMessage.buffer[whoAmi].writeBuffer[index65] = num68; int dstOffset76 = index65 + 1; Buffer.BlockCopy((Array) bytes133, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset76, bytes133.Length); int index66 = dstOffset76 + 2; NetMessage.buffer[whoAmi].writeBuffer[index66] = num69; int dstOffset77 = index66 + 1; Buffer.BlockCopy((Array) bytes134, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset77, bytes134.Length); num1 = dstOffset77 + bytes134.Length; break; case 45: byte[] bytes135 = BitConverter.GetBytes(msgType); byte num70 = (byte) number; byte team = (byte) Main.player[(int) num70].team; count += 2; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes135, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); NetMessage.buffer[whoAmi].writeBuffer[5] = num70; int index67 = dstOffset1 + 1; NetMessage.buffer[whoAmi].writeBuffer[index67] = team; break; case 46: byte[] bytes136 = BitConverter.GetBytes(msgType); byte[] bytes137 = BitConverter.GetBytes(number); byte[] bytes138 = BitConverter.GetBytes((int) number2); count += bytes137.Length + bytes138.Length; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes136, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); Buffer.BlockCopy((Array) bytes137, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset1, bytes137.Length); int dstOffset78 = dstOffset1 + 4; Buffer.BlockCopy((Array) bytes138, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset78, bytes138.Length); break; case 47: byte[] bytes139 = BitConverter.GetBytes(msgType); byte[] bytes140 = BitConverter.GetBytes((short) number); byte[] bytes141 = BitConverter.GetBytes(Main.sign[number].x); byte[] bytes142 = BitConverter.GetBytes(Main.sign[number].y); byte[] bytes143 = Encoding.UTF8.GetBytes(Main.sign[number].text); count += bytes140.Length + bytes141.Length + bytes142.Length + bytes143.Length; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes139, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); Buffer.BlockCopy((Array) bytes140, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset1, bytes140.Length); int dstOffset79 = dstOffset1 + bytes140.Length; Buffer.BlockCopy((Array) bytes141, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset79, bytes141.Length); int dstOffset80 = dstOffset79 + bytes141.Length; Buffer.BlockCopy((Array) bytes142, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset80, bytes142.Length); int dstOffset81 = dstOffset80 + bytes142.Length; Buffer.BlockCopy((Array) bytes143, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset81, bytes143.Length); num1 = dstOffset81 + bytes143.Length; break; case 48: byte[] bytes144 = BitConverter.GetBytes(msgType); byte[] bytes145 = BitConverter.GetBytes(number); byte[] bytes146 = BitConverter.GetBytes((int) number2); byte liquid = Main.tile[number, (int) number2].liquid; byte num71 = 0; if (Main.tile[number, (int) number2].lava) num71 = (byte) 1; count += bytes145.Length + bytes146.Length + 1 + 1; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes144, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); Buffer.BlockCopy((Array) bytes145, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset1, 4); int dstOffset82 = dstOffset1 + 4; Buffer.BlockCopy((Array) bytes146, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset82, 4); int index68 = dstOffset82 + 4; NetMessage.buffer[whoAmi].writeBuffer[index68] = liquid; int index69 = index68 + 1; NetMessage.buffer[whoAmi].writeBuffer[index69] = num71; num1 = index69 + 1; break; case 49: byte[] bytes147 = BitConverter.GetBytes(msgType); Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes147, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); break; case 50: byte[] bytes148 = BitConverter.GetBytes(msgType); byte num72 = (byte) number; count += 11; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes148, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); NetMessage.buffer[whoAmi].writeBuffer[dstOffset1] = num72; int index70 = dstOffset1 + 1; for (int index71 = 0; index71 < 10; ++index71) { NetMessage.buffer[whoAmi].writeBuffer[index70] = (byte) Main.player[(int) num72].buffType[index71]; ++index70; } break; case 51: byte[] bytes149 = BitConverter.GetBytes(msgType); count += 2; byte num73 = (byte) number; byte num74 = (byte) number2; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes149, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); NetMessage.buffer[whoAmi].writeBuffer[dstOffset1] = num73; int index72 = dstOffset1 + 1; NetMessage.buffer[whoAmi].writeBuffer[index72] = num74; break; case 52: byte[] bytes150 = BitConverter.GetBytes(msgType); byte num75 = (byte) number; byte num76 = (byte) number2; byte[] bytes151 = BitConverter.GetBytes((int) number3); byte[] bytes152 = BitConverter.GetBytes((int) number4); count += 2 + bytes151.Length + bytes152.Length; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes150, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); NetMessage.buffer[whoAmi].writeBuffer[dstOffset1] = num75; int index73 = dstOffset1 + 1; NetMessage.buffer[whoAmi].writeBuffer[index73] = num76; int dstOffset83 = index73 + 1; Buffer.BlockCopy((Array) bytes151, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset83, 4); int dstOffset84 = dstOffset83 + 4; Buffer.BlockCopy((Array) bytes152, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset84, 4); num1 = dstOffset84 + 4; break; case 53: byte[] bytes153 = BitConverter.GetBytes(msgType); byte[] bytes154 = BitConverter.GetBytes((short) number); byte num77 = (byte) number2; byte[] bytes155 = BitConverter.GetBytes((short) number3); count += bytes154.Length + 1 + bytes155.Length; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes153, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); Buffer.BlockCopy((Array) bytes154, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset1, bytes154.Length); int index74 = dstOffset1 + bytes154.Length; NetMessage.buffer[whoAmi].writeBuffer[index74] = num77; int dstOffset85 = index74 + 1; Buffer.BlockCopy((Array) bytes155, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset85, bytes155.Length); num1 = dstOffset85 + bytes155.Length; break; case 54: byte[] bytes156 = BitConverter.GetBytes(msgType); byte[] bytes157 = BitConverter.GetBytes((short) number); count += bytes157.Length + 15; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes156, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); Buffer.BlockCopy((Array) bytes157, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset1, bytes157.Length); int index75 = dstOffset1 + bytes157.Length; for (int index76 = 0; index76 < 5; ++index76) { NetMessage.buffer[whoAmi].writeBuffer[index75] = (byte) Main.npc[(int) (short) number].buffType[index76]; int dstOffset86 = index75 + 1; byte[] bytes158 = BitConverter.GetBytes(Main.npc[(int) (short) number].buffTime[index76]); Buffer.BlockCopy((Array) bytes158, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset86, bytes158.Length); index75 = dstOffset86 + bytes158.Length; } break; case 55: byte[] bytes159 = BitConverter.GetBytes(msgType); byte num78 = (byte) number; byte num79 = (byte) number2; byte[] bytes160 = BitConverter.GetBytes((short) number3); count += 2 + bytes160.Length; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes159, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); NetMessage.buffer[whoAmi].writeBuffer[dstOffset1] = num78; int index77 = dstOffset1 + 1; NetMessage.buffer[whoAmi].writeBuffer[index77] = num79; int dstOffset87 = index77 + 1; Buffer.BlockCopy((Array) bytes160, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset87, bytes160.Length); num1 = dstOffset87 + bytes160.Length; break; case 56: byte[] bytes161 = BitConverter.GetBytes(msgType); byte[] bytes162 = BitConverter.GetBytes((short) number); byte[] bytes163 = Encoding.UTF8.GetBytes(Main.chrName[number]); count += bytes162.Length + bytes163.Length; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes161, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); Buffer.BlockCopy((Array) bytes162, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset1, bytes162.Length); int dstOffset88 = dstOffset1 + bytes162.Length; Buffer.BlockCopy((Array) bytes163, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset88, bytes163.Length); break; case 57: byte[] bytes164 = BitConverter.GetBytes(msgType); count += 2; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes164, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); NetMessage.buffer[whoAmi].writeBuffer[dstOffset1] = WorldGen.tGood; int index78 = dstOffset1 + 1; NetMessage.buffer[whoAmi].writeBuffer[index78] = WorldGen.tEvil; break; case 58: byte[] bytes165 = BitConverter.GetBytes(msgType); byte num80 = (byte) number; byte[] bytes166 = BitConverter.GetBytes(number2); count += 1 + bytes166.Length; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes165, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); NetMessage.buffer[whoAmi].writeBuffer[dstOffset1] = num80; int dstOffset89 = dstOffset1 + 1; Buffer.BlockCopy((Array) bytes166, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset89, bytes166.Length); break; case 59: byte[] bytes167 = BitConverter.GetBytes(msgType); byte[] bytes168 = BitConverter.GetBytes(number); byte[] bytes169 = BitConverter.GetBytes((int) number2); count += bytes168.Length + bytes169.Length; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes167, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); Buffer.BlockCopy((Array) bytes168, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset1, bytes168.Length); int dstOffset90 = dstOffset1 + 4; Buffer.BlockCopy((Array) bytes169, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset90, bytes169.Length); break; case 60: byte[] bytes170 = BitConverter.GetBytes(msgType); byte[] bytes171 = BitConverter.GetBytes((short) number); byte[] bytes172 = BitConverter.GetBytes((short) number2); byte[] bytes173 = BitConverter.GetBytes((short) number3); byte num81 = (byte) number4; count += bytes171.Length + bytes172.Length + bytes173.Length + 1; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes170, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); Buffer.BlockCopy((Array) bytes171, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset1, bytes171.Length); int dstOffset91 = dstOffset1 + 2; Buffer.BlockCopy((Array) bytes172, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset91, bytes172.Length); int dstOffset92 = dstOffset91 + 2; Buffer.BlockCopy((Array) bytes173, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset92, bytes173.Length); int index79 = dstOffset92 + 2; NetMessage.buffer[whoAmi].writeBuffer[index79] = num81; num1 = index79 + 1; break; case 61: byte[] bytes174 = BitConverter.GetBytes(msgType); byte[] bytes175 = BitConverter.GetBytes(number); byte[] bytes176 = BitConverter.GetBytes((int) number2); count += bytes175.Length + bytes176.Length; Buffer.BlockCopy((Array) BitConverter.GetBytes(count - 4), 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 0, 4); Buffer.BlockCopy((Array) bytes174, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, 4, 1); Buffer.BlockCopy((Array) bytes175, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset1, bytes175.Length); int dstOffset93 = dstOffset1 + bytes175.Length; Buffer.BlockCopy((Array) bytes176, 0, (Array) NetMessage.buffer[whoAmi].writeBuffer, dstOffset93, bytes176.Length); break; } if (Main.netMode == 1) { if (Netplay.clientSock.tcpClient.Connected) { try { ++NetMessage.buffer[whoAmi].spamCount; ++Main.txMsg; Main.txData += count; ++Main.txMsgType[msgType]; Main.txDataType[msgType] += count; Netplay.clientSock.networkStream.BeginWrite(NetMessage.buffer[whoAmi].writeBuffer, 0, count, new AsyncCallback(Netplay.clientSock.ClientWriteCallBack), (object) Netplay.clientSock.networkStream); } catch { } } } else if (remoteClient == -1) { switch (msgType) { case 13: int index80 = number; for (int index81 = 0; index81 < 256; ++index81) { if (index81 != ignoreClient && (NetMessage.buffer[index81].broadcast || Netplay.serverSock[index81].state >= 3 && msgType == 10) && Netplay.serverSock[index81].tcpClient.Connected) { bool flag = false; if (Main.player[index80].netSkip > 0) { Rectangle rectangle1 = new Rectangle((int) Main.player[index81].position.X, (int) Main.player[index81].position.Y, Main.player[index81].width, Main.player[index81].height); Rectangle rectangle2 = new Rectangle((int) Main.player[index80].position.X, (int) Main.player[index80].position.Y, Main.player[index80].width, Main.player[index80].height); rectangle2.X -= 2500; rectangle2.Y -= 2500; rectangle2.Width += 5000; rectangle2.Height += 5000; if (rectangle1.Intersects(rectangle2)) flag = true; } else flag = true; if (flag) { try { ++NetMessage.buffer[index81].spamCount; ++Main.txMsg; Main.txData += count; ++Main.txMsgType[msgType]; Main.txDataType[msgType] += count; Netplay.serverSock[index81].networkStream.BeginWrite(NetMessage.buffer[whoAmi].writeBuffer, 0, count, new AsyncCallback(Netplay.serverSock[index81].ServerWriteCallBack), (object) Netplay.serverSock[index81].networkStream); } catch { } } } } ++Main.player[index80].netSkip; if (Main.player[index80].netSkip > 2) { Main.player[index80].netSkip = 0; break; } break; case 20: for (int index82 = 0; index82 < 256; ++index82) { if (index82 != ignoreClient && (NetMessage.buffer[index82].broadcast || Netplay.serverSock[index82].state >= 3 && msgType == 10) && Netplay.serverSock[index82].tcpClient.Connected) { if (Netplay.serverSock[index82].SectionRange(number, (int) number2, (int) number3)) { try { ++NetMessage.buffer[index82].spamCount; ++Main.txMsg; Main.txData += count; ++Main.txMsgType[msgType]; Main.txDataType[msgType] += count; Netplay.serverSock[index82].networkStream.BeginWrite(NetMessage.buffer[whoAmi].writeBuffer, 0, count, new AsyncCallback(Netplay.serverSock[index82].ServerWriteCallBack), (object) Netplay.serverSock[index82].networkStream); } catch { } } } } break; case 27: int index83 = number; for (int index84 = 0; index84 < 256; ++index84) { if (index84 != ignoreClient && (NetMessage.buffer[index84].broadcast || Netplay.serverSock[index84].state >= 3 && msgType == 10) && Netplay.serverSock[index84].tcpClient.Connected) { bool flag = false; if (Main.projectile[index83].type == 12) { flag = true; } else { Rectangle rectangle3 = new Rectangle((int) Main.player[index84].position.X, (int) Main.player[index84].position.Y, Main.player[index84].width, Main.player[index84].height); Rectangle rectangle4 = new Rectangle((int) Main.projectile[index83].position.X, (int) Main.projectile[index83].position.Y, Main.projectile[index83].width, Main.projectile[index83].height); rectangle4.X -= 5000; rectangle4.Y -= 5000; rectangle4.Width += 10000; rectangle4.Height += 10000; if (rectangle3.Intersects(rectangle4)) flag = true; } if (flag) { try { ++NetMessage.buffer[index84].spamCount; ++Main.txMsg; Main.txData += count; ++Main.txMsgType[msgType]; Main.txDataType[msgType] += count; Netplay.serverSock[index84].networkStream.BeginWrite(NetMessage.buffer[whoAmi].writeBuffer, 0, count, new AsyncCallback(Netplay.serverSock[index84].ServerWriteCallBack), (object) Netplay.serverSock[index84].networkStream); } catch { } } } } break; case 28: int index85 = number; for (int index86 = 0; index86 < 256; ++index86) { if (index86 != ignoreClient && (NetMessage.buffer[index86].broadcast || Netplay.serverSock[index86].state >= 3 && msgType == 10) && Netplay.serverSock[index86].tcpClient.Connected) { bool flag = false; if (Main.npc[index85].life <= 0) { flag = true; } else { Rectangle rectangle5 = new Rectangle((int) Main.player[index86].position.X, (int) Main.player[index86].position.Y, Main.player[index86].width, Main.player[index86].height); Rectangle rectangle6 = new Rectangle((int) Main.npc[index85].position.X, (int) Main.npc[index85].position.Y, Main.npc[index85].width, Main.npc[index85].height); rectangle6.X -= 3000; rectangle6.Y -= 3000; rectangle6.Width += 6000; rectangle6.Height += 6000; if (rectangle5.Intersects(rectangle6)) flag = true; } if (flag) { try { ++NetMessage.buffer[index86].spamCount; ++Main.txMsg; Main.txData += count; ++Main.txMsgType[msgType]; Main.txDataType[msgType] += count; Netplay.serverSock[index86].networkStream.BeginWrite(NetMessage.buffer[whoAmi].writeBuffer, 0, count, new AsyncCallback(Netplay.serverSock[index86].ServerWriteCallBack), (object) Netplay.serverSock[index86].networkStream); } catch { } } } } break; default: for (int index87 = 0; index87 < 256; ++index87) { if (index87 != ignoreClient && (NetMessage.buffer[index87].broadcast || Netplay.serverSock[index87].state >= 3 && msgType == 10)) { if (Netplay.serverSock[index87].tcpClient.Connected) { try { ++NetMessage.buffer[index87].spamCount; ++Main.txMsg; Main.txData += count; ++Main.txMsgType[msgType]; Main.txDataType[msgType] += count; Netplay.serverSock[index87].networkStream.BeginWrite(NetMessage.buffer[whoAmi].writeBuffer, 0, count, new AsyncCallback(Netplay.serverSock[index87].ServerWriteCallBack), (object) Netplay.serverSock[index87].networkStream); } catch { } } } } break; } } else if (Netplay.serverSock[remoteClient].tcpClient.Connected) { try { ++NetMessage.buffer[remoteClient].spamCount; ++Main.txMsg; Main.txData += count; ++Main.txMsgType[msgType]; Main.txDataType[msgType] += count; Netplay.serverSock[remoteClient].networkStream.BeginWrite(NetMessage.buffer[whoAmi].writeBuffer, 0, count, new AsyncCallback(Netplay.serverSock[remoteClient].ServerWriteCallBack), (object) Netplay.serverSock[remoteClient].networkStream); } catch { } } if (Main.verboseNetplay) { int num82 = 0; while (num82 < count) ++num82; for (int index88 = 0; index88 < count; ++index88) { int num83 = (int) NetMessage.buffer[whoAmi].writeBuffer[index88]; } } NetMessage.buffer[whoAmi].writeLocked = false; if (msgType == 19 && Main.netMode == 1) { int size = 5; NetMessage.SendTileSquare(whoAmi, (int) number2, (int) number3, size); } if (msgType != 2 || Main.netMode != 2) return; Netplay.serverSock[whoAmi].kill = true; } } public static void RecieveBytes(byte[] bytes, int streamLength, int i = 256) { lock (NetMessage.buffer[i]) { try { Buffer.BlockCopy((Array) bytes, 0, (Array) NetMessage.buffer[i].readBuffer, NetMessage.buffer[i].totalData, streamLength); NetMessage.buffer[i].totalData += streamLength; NetMessage.buffer[i].checkBytes = true; } catch { if (Main.netMode == 1) { Main.menuMode = 15; Main.statusText = "Bad header lead to a read buffer overflow."; Netplay.disconnect = true; } else Netplay.serverSock[i].kill = true; } } } public static void CheckBytes(int i = 256) { lock (NetMessage.buffer[i]) { int num = 0; if (NetMessage.buffer[i].totalData < 4) return; if (NetMessage.buffer[i].messageLength == 0) NetMessage.buffer[i].messageLength = BitConverter.ToInt32(NetMessage.buffer[i].readBuffer, 0) + 4; for (; NetMessage.buffer[i].totalData >= NetMessage.buffer[i].messageLength + num && NetMessage.buffer[i].messageLength > 0; NetMessage.buffer[i].messageLength = NetMessage.buffer[i].totalData - num < 4 ? 0 : BitConverter.ToInt32(NetMessage.buffer[i].readBuffer, num) + 4) { if (!Main.ignoreErrors) { NetMessage.buffer[i].GetData(num + 4, NetMessage.buffer[i].messageLength - 4); } else { try { NetMessage.buffer[i].GetData(num + 4, NetMessage.buffer[i].messageLength - 4); } catch { } } num += NetMessage.buffer[i].messageLength; } if (num == NetMessage.buffer[i].totalData) NetMessage.buffer[i].totalData = 0; else if (num > 0) { Buffer.BlockCopy((Array) NetMessage.buffer[i].readBuffer, num, (Array) NetMessage.buffer[i].readBuffer, 0, NetMessage.buffer[i].totalData - num); NetMessage.buffer[i].totalData -= num; } NetMessage.buffer[i].checkBytes = false; } } public static void BootPlayer(int plr, string msg) => NetMessage.SendData(2, plr, text: msg); public static void SendTileSquare(int whoAmi, int tileX, int tileY, int size) { int num = (size - 1) / 2; NetMessage.SendData(20, whoAmi, number: size, number2: ((float) (tileX - num)), number3: ((float) (tileY - num))); } public static void SendSection(int whoAmi, int sectionX, int sectionY) { if (Main.netMode != 2) return; try { if (sectionX < 0 || sectionY < 0 || sectionX >= Main.maxSectionsX || sectionY >= Main.maxSectionsY) return; Netplay.serverSock[whoAmi].tileSection[sectionX, sectionY] = true; int num1 = sectionX * 200; int num2 = sectionY * 150; for (int index = num2; index < num2 + 150; ++index) NetMessage.SendData(10, whoAmi, number: 200, number2: ((float) num1), number3: ((float) index)); } catch { } } public static void greetPlayer(int plr) { if (Main.motd == "") NetMessage.SendData(25, plr, text: (Lang.mp[18] + " " + Main.worldName + "!"), number: ((int) byte.MaxValue), number2: ((float) byte.MaxValue), number3: 240f, number4: 20f); else NetMessage.SendData(25, plr, text: Main.motd, number: ((int) byte.MaxValue), number2: ((float) byte.MaxValue), number3: 240f, number4: 20f); string str = ""; for (int index = 0; index < (int) byte.MaxValue; ++index) { if (Main.player[index].active) str = !(str == "") ? str + ", " + Main.player[index].name : str + Main.player[index].name; } NetMessage.SendData(25, plr, text: ("Current players: " + str + "."), number: ((int) byte.MaxValue), number2: ((float) byte.MaxValue), number3: 240f, number4: 20f); } public static void sendWater(int x, int y) { if (Main.netMode == 1) { NetMessage.SendData(48, number: x, number2: ((float) y)); } else { for (int remoteClient = 0; remoteClient < 256; ++remoteClient) { if ((NetMessage.buffer[remoteClient].broadcast || Netplay.serverSock[remoteClient].state >= 3) && Netplay.serverSock[remoteClient].tcpClient.Connected) { int index1 = x / 200; int index2 = y / 150; if (Netplay.serverSock[remoteClient].tileSection[index1, index2]) NetMessage.SendData(48, remoteClient, number: x, number2: ((float) y)); } } } } public static void syncPlayers() { bool flag = false; for (int index1 = 0; index1 < (int) byte.MaxValue; ++index1) { int num1 = 0; if (Main.player[index1].active) num1 = 1; if (Netplay.serverSock[index1].state == 10) { if (Main.autoShutdown && !flag) { string str1 = Netplay.serverSock[index1].tcpClient.Client.RemoteEndPoint.ToString(); string str2 = str1; for (int index2 = 0; index2 < str1.Length; ++index2) { if (str1.Substring(index2, 1) == ":") str2 = str1.Substring(0, index2); } if (str2 == "127.0.0.1") flag = true; } NetMessage.SendData(14, ignoreClient: index1, number: index1, number2: ((float) num1)); NetMessage.SendData(4, ignoreClient: index1, text: Main.player[index1].name, number: index1); NetMessage.SendData(13, ignoreClient: index1, number: index1); NetMessage.SendData(16, ignoreClient: index1, number: index1); NetMessage.SendData(30, ignoreClient: index1, number: index1); NetMessage.SendData(45, ignoreClient: index1, number: index1); NetMessage.SendData(42, ignoreClient: index1, number: index1); NetMessage.SendData(50, ignoreClient: index1, number: index1); for (int index3 = 0; index3 < 49; ++index3) NetMessage.SendData(5, ignoreClient: index1, text: Main.player[index1].inventory[index3].name, number: index1, number2: ((float) index3), number3: ((float) Main.player[index1].inventory[index3].prefix)); NetMessage.SendData(5, ignoreClient: index1, text: Main.player[index1].armor[0].name, number: index1, number2: 49f, number3: ((float) Main.player[index1].armor[0].prefix)); NetMessage.SendData(5, ignoreClient: index1, text: Main.player[index1].armor[1].name, number: index1, number2: 50f, number3: ((float) Main.player[index1].armor[1].prefix)); NetMessage.SendData(5, ignoreClient: index1, text: Main.player[index1].armor[2].name, number: index1, number2: 51f, number3: ((float) Main.player[index1].armor[2].prefix)); NetMessage.SendData(5, ignoreClient: index1, text: Main.player[index1].armor[3].name, number: index1, number2: 52f, number3: ((float) Main.player[index1].armor[3].prefix)); NetMessage.SendData(5, ignoreClient: index1, text: Main.player[index1].armor[4].name, number: index1, number2: 53f, number3: ((float) Main.player[index1].armor[4].prefix)); NetMessage.SendData(5, ignoreClient: index1, text: Main.player[index1].armor[5].name, number: index1, number2: 54f, number3: ((float) Main.player[index1].armor[5].prefix)); NetMessage.SendData(5, ignoreClient: index1, text: Main.player[index1].armor[6].name, number: index1, number2: 55f, number3: ((float) Main.player[index1].armor[6].prefix)); NetMessage.SendData(5, ignoreClient: index1, text: Main.player[index1].armor[7].name, number: index1, number2: 56f, number3: ((float) Main.player[index1].armor[7].prefix)); NetMessage.SendData(5, ignoreClient: index1, text: Main.player[index1].armor[8].name, number: index1, number2: 57f, number3: ((float) Main.player[index1].armor[8].prefix)); NetMessage.SendData(5, ignoreClient: index1, text: Main.player[index1].armor[9].name, number: index1, number2: 58f, number3: ((float) Main.player[index1].armor[9].prefix)); NetMessage.SendData(5, ignoreClient: index1, text: Main.player[index1].armor[10].name, number: index1, number2: 59f, number3: ((float) Main.player[index1].armor[10].prefix)); if (!Netplay.serverSock[index1].announced) { Netplay.serverSock[index1].announced = true; NetMessage.SendData(25, ignoreClient: index1, text: (Main.player[index1].name + " " + Lang.mp[19]), number: ((int) byte.MaxValue), number2: ((float) byte.MaxValue), number3: 240f, number4: 20f); if (Main.dedServ) Console.WriteLine(Main.player[index1].name + " " + Lang.mp[19]); } } else { int num2 = 0; NetMessage.SendData(14, ignoreClient: index1, number: index1, number2: ((float) num2)); if (Netplay.serverSock[index1].announced) { Netplay.serverSock[index1].announced = false; NetMessage.SendData(25, ignoreClient: index1, text: (Netplay.serverSock[index1].oldName + " " + Lang.mp[20]), number: ((int) byte.MaxValue), number2: ((float) byte.MaxValue), number3: 240f, number4: 20f); if (Main.dedServ) Console.WriteLine(Netplay.serverSock[index1].oldName + " " + Lang.mp[20]); } } } for (int number = 0; number < 200; ++number) { if (Main.npc[number].active && Main.npc[number].townNPC && NPC.TypeToNum(Main.npc[number].type) != -1) { int num = 0; if (Main.npc[number].homeless) num = 1; NetMessage.SendData(60, number: number, number2: ((float) Main.npc[number].homeTileX), number3: ((float) Main.npc[number].homeTileY), number4: ((float) num)); } } if (!Main.autoShutdown || flag) return; WorldGen.saveWorld(); Netplay.disconnect = true; } } }