internal override void ReadResponse(Pop3ResponseReader reader)
        {
            TakeSnapshot(reader);

            if (reader.IsNegative)
            {
                return;
            }



            using (var writer = new StringWriter()) {
                while (true)
                {
                    reader.ReadNextLine();
                    if (reader.IsCompleted)
                    {
                        break;
                    }
                    writer.WriteLine(reader.CurrentLine.StartsWith("..")
                        ? reader.CurrentLine.Substring(1)
                        : reader.CurrentLine);
                }

                var entity = new Entity();
                entity.Deserialize(writer.ToString());
                Message = entity.ToMessage();
            }
        }
Esempio n. 2
0
        internal override void ReadResponse(Pop3ResponseReader reader)
        {
            TakeSnapshot(reader);

            if (reader.IsNegative) {
                return;
            }

            using (var writer = new StringWriter()) {

                while (true) {
                    reader.ReadNextLine();
                    if (reader.IsCompleted) {
                        break;
                    }
                    writer.WriteLine(reader.CurrentLine.StartsWith("..")
                        ? reader.CurrentLine.Substring(1)
                        : reader.CurrentLine);
                }

                var entity = new Entity();
                entity.Deserialize(writer.ToString());
                Message = entity.ToMessage();
            }
        }
Esempio n. 3
0
        internal override void ReadResponse(Pop3ResponseReader reader)
        {
            TakeSnapshot(reader);

            if (IsNegative)
            {
                return;
            }

            using (var writer = new StringWriter()) {
                while (true)
                {
                    reader.ReadNextLine();
                    if (reader.IsCompleted)
                    {
                        break;
                    }

                    writer.WriteLine(reader.CurrentLine.StartsWith("..")
                     ? reader.CurrentLine.Substring(1)
                     : reader.CurrentLine);
                }


                var text  = writer.ToString();
                var index = text.IndexOf(Strings.CrLf + Strings.CrLf);

                var entity = new Entity();
                entity.Deserialize(text.Substring(0, index));

                _headerFields.AddRange(entity.Headers);
                Lines = text.Substring(index).Trim();
            }
        }
Esempio n. 4
0
        public static Message FromMime(string text)
        {
            var entity = new Entity();

            entity.Deserialize(text);
            return(entity.ToMessage());
        }
Esempio n. 5
0
        public void IN_OnNetworkMessage(Message packet)
        {
            switch (packet.type)
            {
            case Message.Type.Approved:
                OnApproved(packet);
                break;

            case Message.Type.EAC:
                EACServer.OnMessageReceived(packet);
                SendPacket(BaseServer, packet);
                break;

            case Message.Type.DisconnectReason:
                SendPacket(BaseServer, packet);
                if (BaseServer != null && BaseServer.connections.Count > 0)
                {
                    packet.read.Position = 1L;
                    string reasone = packet.read.String();
                    BaseServer?.Kick(BaseServer.connections[0], reasone);
                    ConsoleSystem.LogWarning("[VirtualServer]: От игрового сервера получена причина дисконнекта: " + reasone);
                }
                break;

            case Message.Type.Entities:
                packet.read.UInt32();
                using (Entity entity = Entity.Deserialize(packet.read))
                {
                    if (EntityManager.OnEntity(entity) == false)
                    {
                        if (BaseServer.write.Start())
                        {
                            BaseServer.write.PacketID(Message.Type.Entities);
                            BaseServer.write.UInt32(TakeEntityNUM);
                            entity.WriteToStream(BaseServer.write);
                            BaseServer.write.Send(new SendInfo(BaseServer.connections[0]));
                        }
                    }
                }
                break;

            case Message.Type.EntityDestroy:
                EntityManager.OnEntityDestroy(packet);
                SendPacket(BaseServer, packet);
                break;

            case Message.Type.EntityPosition:
                EntityManager.OnEntityPosition(packet);
                SendPacket(BaseServer, packet);
                break;

            default:
                if (NetworkManager.Instance.IN_NetworkMessage(packet) == false)
                {
                    SendPacket(BaseServer, packet);
                }
                break;
            }
        }
Esempio n. 6
0
 public object Parse(string value, object argument)
 {
     // we need to cut the boundaries at the beginning and the end.
     value = Regex.Replace(value, RegexPatterns.BoundaryEnvelope, string.Empty);
     var entity = new Entity();
     entity.Deserialize(value);
     return entity;
 }
Esempio n. 7
0
        public object Parse(string value, object argument)
        {
            // we need to cut the boundaries at the beginning and the end.
            value = Regex.Replace(value, RegexPatterns.BoundaryEnvelope, string.Empty);
            var entity = new Entity();

            entity.Deserialize(value);
            return(entity);
        }
Esempio n. 8
0
        public override void Deserialize(BinaryReader reader)
        {
            var items = reader.ReadInt32();

            for (var i = 0; i < items; i++)
            {
                this.Items.Add(Entity.Deserialize(reader));
            }
        }
Esempio n. 9
0
        public override void Deserialize(World world, BinaryReader reader)
        {
            var numItems = reader.ReadInt32();

            for (var i = 0; i < numItems; i++)
            {
                this.items.Add(Entity.Deserialize(world, reader));
            }
        }
Esempio n. 10
0
        /// <summary>
        /// Fetches a single nested message from the requested message.
        /// </summary>
        /// <param name="info">The associated info object, this token can be obtained from the messages body structure.</param>
        /// <returns>The requested nested message.</returns>
        public Message FetchNestedMessage(MessageInfo info)
        {
            var text = FetchEntityText(info);

            if (string.IsNullOrEmpty(text))
            {
                return(null);
            }
            var entity = new Entity();

            entity.Deserialize(text);
            return(entity.ToMessage());
        }
Esempio n. 11
0
            public void Load(DoomGame game)
            {
                var options = game.World.Options;

                options.Skill   = (GameSkill)this.reader.ReadByte();
                options.Episode = this.reader.ReadByte();
                options.Map     = this.reader.ReadByte();

                game.InitNew(options.Skill, options.Episode, options.Map);

                var levelTime = this.reader.ReadInt32();

                game.World.WorldEntity = Entity.Deserialize(game.World, this.reader);

                var numEntities = this.reader.ReadInt32();

                for (var i = 0; i < numEntities; i++)
                {
                    game.World.Entities.Add(Entity.Deserialize(game.World, this.reader));
                }

                this.UnArchivePlayers(game.World);
                this.UnArchiveWorld(game.World);
                this.UnArchiveThinkers(game.World);
                this.UnArchiveSpecials(game.World);

                var test = this.reader.ReadByte();

                this.reader.BaseStream.Position--;

                if (test != 0x1d)
                {
                    throw new Exception("Bad savegame!");
                }

                game.World.LevelTime = levelTime;

                options.Sound.SetListener(game.World.Options.Player.Mobj);
            }
Esempio n. 12
0
        /// <summary>
        /// Fetches a single message from the selected mailbox identified by its sequence number.
        /// </summary>
        /// <param name="sn">The sequence number of the requested message.</param>
        /// <returns>The requested message.</returns>
        public Message FetchMessageBySequenceNumber(int sn)
        {
            var query = Messages
                        .Where(x => x.SequenceNumber == sn)
                        .Select(x => new MessageContainer {
                Uid            = x.Uid,
                SequenceNumber = x.SequenceNumber,
                Text           = (string)x.Parts(string.Empty)
            });
            var container = query.ToList().FirstOrDefault();

            if (container != null)
            {
                var entity = new Entity();
                entity.Deserialize(container.Text);

                var message = entity.ToMessage();
                message.Uid            = container.Uid;
                message.SequenceNumber = container.SequenceNumber;
                return(message);
            }

            return(null);
        }
Esempio n. 13
0
 public override bool Undo()
 {
     Entity  e         = Entity.Deserialize(SerializedEntity);
     ref var newEntity = ref Global.EntityManager.Entities[e.EntityId];
Esempio n. 14
0
            private void UnArchivePlayer(Player player)
            {
                player.Clear();

                this.reader.BaseStream.Position += 4;
                player.PlayerState = (PlayerState)this.reader.ReadInt32();
                this.reader.BaseStream.Position += 8;
                player.ViewZ           = new Fixed(this.reader.ReadInt32());
                player.ViewHeight      = new Fixed(this.reader.ReadInt32());
                player.DeltaViewHeight = new Fixed(this.reader.ReadInt32());
                player.Bob             = new Fixed(this.reader.ReadInt32());
                player.Health          = this.reader.ReadInt32();
                player.ArmorPoints     = this.reader.ReadInt32();
                player.ArmorType       = this.reader.ReadInt32();

                for (var i = 0; i < (int)PowerType.Count; i++)
                {
                    player.Powers[i] = this.reader.ReadInt32();
                }

                for (var i = 0; i < (int)PowerType.Count; i++)
                {
                    player.Cards[i] = this.reader.ReadInt32() != 0;
                }

                player.Backpack = this.reader.ReadInt32() != 0;

                for (var i = 0; i < Player.MaxPlayerCount; i++)
                {
                    player.Frags[i] = this.reader.ReadInt32();
                }

                player.Entity = Entity.Deserialize(this.reader);

                var inventory = player.Entity.GetComponent <InventoryComponent>();

                var readyWeapon = this.reader.ReadString();

                player.ReadyWeapon = inventory.Items.First(weapon => weapon.Info.Name == readyWeapon);

                var pendingWeapon = this.reader.ReadString();

                if (pendingWeapon != "")
                {
                    player.PendingWeapon = inventory.Items.First(weapon => weapon.Info.Name == pendingWeapon);
                }

                player.AttackDown  = this.reader.ReadInt32() != 0;
                player.UseDown     = this.reader.ReadInt32() != 0;
                player.Cheats      = (CheatFlags)this.reader.ReadInt32();
                player.Refire      = this.reader.ReadInt32();
                player.KillCount   = this.reader.ReadInt32();
                player.ItemCount   = this.reader.ReadInt32();
                player.SecretCount = this.reader.ReadInt32();
                this.reader.BaseStream.Position += 4;
                player.DamageCount = this.reader.ReadInt32();
                player.BonusCount  = this.reader.ReadInt32();
                this.reader.BaseStream.Position += 4;
                player.ExtraLight    = this.reader.ReadInt32();
                player.FixedColorMap = this.reader.ReadInt32();
                player.ColorMap      = this.reader.ReadInt32();

                for (var i = 0; i < (int)PlayerSprite.Count; i++)
                {
                    player.PlayerSprites[i].State = DoomInfo.States[this.reader.ReadInt32()];

                    if (player.PlayerSprites[i].State.Number == (int)MobjState.Null)
                    {
                        player.PlayerSprites[i].State = null;
                    }

                    player.PlayerSprites[i].Tics = this.reader.ReadInt32();
                    player.PlayerSprites[i].Sx   = new Fixed(this.reader.ReadInt32());
                    player.PlayerSprites[i].Sy   = new Fixed(this.reader.ReadInt32());
                }

                player.DidSecret = this.reader.ReadInt32() != 0;
            }