private void NetManagerOnSendToServer(NetManager.orig_SendToServer orig, Terraria.Net.NetManager self, NetPacket packet) { //if (IsChatOpen()) foreach (TcpClient tcpClient in localServer) { Console.WriteLine("Sending to server"); if (tcpClient.Client.Connected) { byte[] data = packet.Buffer.Data; using (MemoryStream stream = new MemoryStream()) { using (BinaryWriter writer = new BinaryWriter(stream)) { writer.Write(0); using (MemoryStream stream2 = new MemoryStream(data)) { stream2.WriteTo(stream); } _socket.AsyncSend(stream.GetBuffer(), 0, packet.Length, new SocketSendCallback(SendCallback), packet); } } } } //typeof(NetManager).GetMethod("SendData", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(Terraria.Net.NetManager.Instance, new object[] {connection.Socket, packet }); }
private void NetManagerOnSendToClient(NetManager.orig_SendToClient orig, Terraria.Net.NetManager self, NetPacket packet, int playerid) { //if (IsChatOpen()) { packet.ShrinkToFit(); _socket.AsyncSend(packet.Buffer.Data, 0, packet.Length, new SocketSendCallback(SendCallback), packet); //typeof(NetManager).GetMethod("SendData", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(Terraria.Net.NetManager.Instance, new object[] { connection.Socket, packet }); } }