コード例 #1
0
        private void PacketReceived(IPacket packet)
        {
            if (packet["COMPRESSION"] == "1" && packet.Payload != null)
            {
                packet.Payload = compression.Decompress(packet.Payload);
            }

            var map = packetMapper.Map(packet);

            if (map == null) //Unhandled Packet
            {
                ((BroadcastUtility)On).BroadcastUnhandledPacket(packet);
                return;
            }


            //Notify any attached processes that a packet has been received.
            ((BroadcastUtility)On).BroadcastPacketReceived(packet.Clone());

            //Process any packet handlers on the packet
            handlerHub.ProcessPacket(this, map);

            //Process any watchs that are on the packet
            packetWatcher.Process(map);

            //Process any plugins
            pluginManager.Process(this, map);
        }
コード例 #2
0
ファイル: PalBot.cs プロジェクト: Montaser1998/botsdotnet
        private async void PacketReceived(IPacket packet)
        {
            if (packet["COMPRESSION"] == "1" && packet.Payload != null)
            {
                packet.Payload = compression.Decompress(packet.Payload);
            }

            var map = packetMapper.Map(packet);

            if (map == null) //Unhandled Packet
            {
                ((BroadcastUtility)On).BroadcastUnhandledPacket(packet);
                return;
            }

            //Notify any attached processes that a packet has been received.
            ((BroadcastUtility)On).BroadcastPacketReceived(packet.Clone());

            //Process any packet handlers on the packet
            handlerHub.ProcessPacket(this, map);

            //Process any watchs that are on the packet
            packetWatcher.Process(map);

            if (!(map is MessagePacket))
            {
                return;
            }

            var om = (MessagePacket)map;

            var msg = await Message(om);

            await MessageReceived(msg);
        }
コード例 #3
0
        private IPacket MidPacket(IPacket packet, byte[] chunk, long corid)
        {
            var p = packet.Clone();

            p["CORRELATION-ID"] = corid.ToString();
            p.Payload           = chunk;
            return(p);
        }
コード例 #4
0
        private IPacket HeadPacket(IPacket packet, byte[] chunk, int totalLength)
        {
            var p = packet.Clone();

            p["TOTAL-LENGTH"] = totalLength.ToString();
            p.Payload         = chunk;
            return(p);
        }
コード例 #5
0
        private IPacket SinglePacket(IPacket packet)
        {
            var p = packet.Clone();

            p["LAST"] = "T";
            p.Payload = packet.Payload;
            return(p);
        }
コード例 #6
0
        public bool OnBeforePacket(IClient client, IPacket packet)
        {
            bool    ret   = true;
            IPacket clone = packet.Clone();

            lock (plugins) {
                foreach (var plugin in plugins)
                {
                    try {
                        if (plugin.Enabled && !plugin.Plugin.OnBeforePacket(client, clone))
                        {
                            ret = false;
                        }

                        packet = clone;
                    }
                    catch (Exception ex) {
                        OnError(plugin, "OnBeforePacket", ex);
                    }
                }
            }

            return(ret);
        }