Пример #1
0
        public override void Read(PrimitiveReader reader)
        {
            Locale       = reader.ReadStringProto(16);
            ViewDistance = reader.ReadByte();
            ChatMode     = (ChatModeEnum)reader.ReadVarint();
            if (!(ChatMode == ChatModeEnum.Enabled || ChatMode == ChatModeEnum.CommandsOnly || ChatMode == ChatModeEnum.Hidden))
            {
                throw new InvalidPacketException(nameof(ChatMode), ChatMode);
            }
            var mask = reader.ReadByte();

            if ((mask & 0x01) != 0)
            {
                CapeEnabled = true;
            }
            if ((mask & 0x02) != 0)
            {
                JacketEnabled = true;
            }
            if ((mask & 0x04) != 0)
            {
                LeftSleeveEnabled = true;
            }
            if ((mask & 0x08) != 0)
            {
                RightSleeveEnabled = true;
            }
            if ((mask & 0x10) != 0)
            {
                LeftPantsLegEnabled = true;
            }
            if ((mask & 0x20) != 0)
            {
                RightPantsLegEnabled = true;
            }
            if ((mask & 0x40) != 0)
            {
                HatEnabled = true;
            }
            MainHand = (HandSide)reader.ReadVarint();
            if (!MainHand.IsValid())
            {
                throw new InvalidPacketException(nameof(MainHand), MainHand);
            }
        }