예제 #1
0
        public override MetadataDictionary GetMetadata()
        {
            var metadata = base.GetMetadata();

            metadata[3] = new MetadataByte(_color);
            return(metadata);
        }
예제 #2
0
        public override MetadataDictionary GetMetadata()
        {
            var md = base.GetMetadata();

            md[MetadataSize] = new MetadataByte(Size);
            return(md);
        }
예제 #3
0
파일: ItemEntity.cs 프로젝트: qtx0213/MiNET
        public override MetadataDictionary GetMetadata()
        {
            MetadataDictionary metadata = base.GetMetadata();

            metadata[15] = new MetadataByte(1);
            return(metadata);
        }
예제 #4
0
        public override MetadataDictionary GetMetadata()
        {
            MetadataDictionary metadata = base.GetMetadata();

            metadata[1] = new MetadataInt(12);
            metadata[2] = new MetadataInt(0);
            metadata[3] = new MetadataByte(CollarColor);
            //metadata[4] = new MetadataString("Testing");
            if (Owner != null)
            {
                metadata[5] = new MetadataLong(Owner.EntityId);
            }
            metadata[7]  = new MetadataShort(300);
            metadata[8]  = new MetadataInt(0);
            metadata[9]  = new MetadataByte(0);
            metadata[38] = new MetadataLong(0);
            metadata[39] = new MetadataFloat(1.0f);
            metadata[44] = new MetadataShort(300);
            metadata[45] = new MetadataInt(0);
            metadata[46] = new MetadataByte(0);
            metadata[47] = new MetadataInt(0);
            metadata[53] = new MetadataFloat(0.6f);
            metadata[54] = new MetadataFloat(0.8f);
            metadata[56] = new MetadataVector3(0, 0, 0);
            metadata[57] = new MetadataByte(0);
            metadata[58] = new MetadataFloat(0f);
            metadata[59] = new MetadataFloat(0f);

            return(metadata);
        }
예제 #5
0
        public override MetadataDictionary GetMetadata()
        {
            //[0] byte 0 0,
            //[1] short 1 300,
            //[2] string 4 Client12,
            //[3] byte 0 1,
            //[4] byte 0 0,
            //[7] int 2 0,
            //[8] byte 0 0,
            //[15] byte 0 0,
            //[16] byte 0 0,
            //[17] long 6 0

            MetadataDictionary metadata = new MetadataDictionary();

            metadata[0]  = new MetadataByte((byte)(HealthManager.IsOnFire ? 1 : 0));
            metadata[1]  = new MetadataShort(HealthManager.Air);
            metadata[2]  = new MetadataString(Username);
            metadata[3]  = new MetadataByte(1);
            metadata[4]  = new MetadataByte(0);
            metadata[7]  = new MetadataInt(0);
            metadata[8]  = new MetadataByte(0);
            metadata[15] = new MetadataByte(0);
            metadata[16] = new MetadataByte(0);
            metadata[17] = new MetadataLong(0);

            return(metadata);
        }
예제 #6
0
        public override MetadataDictionary GetMetadata()
        {
            MetadataDictionary metadata = new MetadataDictionary();

            metadata[0]  = new MetadataLong(0);            // 0
            metadata[1]  = new MetadataInt(1);
            metadata[2]  = new MetadataInt(12);
            metadata[3]  = new MetadataByte(0);
            metadata[4]  = new MetadataString("");
            metadata[5]  = new MetadataLong(-1);
            metadata[7]  = new MetadataShort(300);
            metadata[39] = new MetadataFloat(1f);
            metadata[44] = new MetadataShort(300);
            metadata[45] = new MetadataInt(0);
            metadata[46] = new MetadataByte(0);
            metadata[47] = new MetadataInt(0);
            metadata[53] = new MetadataFloat(0.98f);
            metadata[54] = new MetadataFloat(0.98f);
            metadata[56] = new MetadataVector3(0, 0, 0);
            metadata[57] = new MetadataByte(0);
            metadata[58] = new MetadataFloat(0f);
            metadata[59] = new MetadataFloat(0f);

            return(metadata);
        }
예제 #7
0
        public void TestToString()
        {
            var mByte = new MetadataByte(200);
            var text  = mByte.ToString();

            Assert.Pass("This test must be manually verified."); // TODO
        }
예제 #8
0
        public override MetadataDictionary GetMetadata()
        {
            MetadataDictionary metadata = base.GetMetadata();

            metadata[18] = new MetadataByte((byte)CatType);

            return(metadata);
        }
예제 #9
0
        public override MetadataDictionary GetMetadata()
        {
            var metadata = base.GetMetadata();

            metadata[14] = new MetadataByte((byte)(IsBaby ? 1 : 0));

            return(metadata);
        }
예제 #10
0
        public override MetadataDictionary GetMetadata()
        {
            MetadataDictionary metadata = new MetadataDictionary();

            metadata[16] = new MetadataByte(Fuse);

            return(metadata);
        }
예제 #11
0
        public override MetadataDictionary GetMetadata()
        {
            MetadataDictionary metadata = base.GetMetadata();

            metadata[18] = new MetadataInt(IsAngry ? 1 : 0);
            metadata[20] = new MetadataByte(CollarColor);

            return(metadata);
        }
예제 #12
0
        /// <summary>
        ///     Handles the player action.
        /// </summary>
        /// <param name="message">The message.</param>
        private void HandlePlayerAction(McpePlayerAction message)
        {
            Log.DebugFormat("Player action: {0}", message.actionId);
            Log.DebugFormat("Entity ID: {0}", message.entityId);
            Log.DebugFormat("Action ID:  {0}", message.actionId);
            Log.DebugFormat("x:  {0}", message.x);
            Log.DebugFormat("y:  {0}", message.y);
            Log.DebugFormat("z:  {0}", message.z);
            Log.DebugFormat("face:  {0}", message.face);

            if (message.entityId != EntityId)
            {
                return;
            }

            switch (message.actionId)
            {
            case 5:                     // Shoot arrow
            {
                if (_itemUseTimer == null)
                {
                    return;
                }

                MetadataSlot itemSlot   = Inventory.ItemInHand;
                Item         itemInHand = ItemFactory.GetItem(itemSlot.Value.Id);

                if (itemInHand == null)
                {
                    return;                                             // Cheat(?)
                }
                _itemUseTimer.Stop();
                itemInHand.Release(Level, this, new BlockCoordinates(message.x, message.y, message.z), _itemUseTimer.ElapsedMilliseconds);

                _itemUseTimer = null;

                MetadataDictionary metadata = new MetadataDictionary();
                metadata[0] = new MetadataByte(0);
                Level.RelayBroadcast(this, new McpeSetEntityData
                    {
                        entityId = EntityId,
                        metadata = metadata,
                    });

                break;
            }

            case 7:                     // Respawn
                HandleRespawn(null);
                break;

            default:
                return;
            }
        }
예제 #13
0
		public virtual MetadataDictionary GetMetadata()
		{
			MetadataDictionary metadata = new MetadataDictionary();
			metadata[0] = new MetadataByte((byte) (HealthManager.IsOnFire ? 1 : 0));
			metadata[1] = new MetadataShort(HealthManager.Air);
			metadata[2] = new MetadataString(NameTag ?? string.Empty);
			metadata[3] = new MetadataByte(1);
			metadata[4] = new MetadataByte(0);
			metadata[15] = new MetadataByte(0);
			//metadata[16] = new MetadataByte(0);

			return metadata;
		}
예제 #14
0
        public void SendSetEntityData(Player player)
        {
            player.IsRiding = true;

            // FOR PLAYER
            MetadataDictionary metadata = player.GetMetadata();

            metadata[57] = new MetadataVector3(0, 1.02001f, 0);
            metadata[58] = new MetadataByte(1);
            metadata[59] = new MetadataFloat(90f);
            metadata[60] = new MetadataFloat(-90f);

            player.BroadcastSetEntityData(metadata);
        }
예제 #15
0
        // Metadata:
        //[0] long 7 536870912,
        //[1] int 2 1,
        //[2] int 2 0,
        //[3] byte 0 0,
        //[4] string 4 ,
        //[5] long 7 1,
        //[6] long 7 0,
        //[7] short 1 300,
        //[8] int 2 0,
        //[9] byte 0 0,
        //[38] long 7 0,
        //[39] float 3 1,
        //[44] short 1 300,
        //[45] int 2 0,
        //[46] byte 0 0,
        //[47] int 2 0,
        //[53] float 3 1,99,
        //[54] float 3 1,99,
        //[56] vector3 8 <0� 0� 0>,
        //[57] byte 0 0,
        //[58] float 3 0,
        //[59] float 3 0

        public override MetadataDictionary GetMetadata()
        {
            MetadataDictionary metadata = base.GetMetadata();

            //MetadataDictionary metadata = new MetadataDictionary();
            metadata[0]  = new MetadataLong(GetDataValue());
            metadata[39] = new MetadataFloat(1.0f);
            metadata[44] = new MetadataShort(300);
            metadata[53] = new MetadataFloat(1.99f);
            metadata[54] = new MetadataFloat(1.99f);
            metadata[57] = new MetadataByte(0);
            metadata[58] = new MetadataFloat(0);
            metadata[59] = new MetadataFloat(0);

            return(metadata);
        }
예제 #16
0
파일: Projectile.cs 프로젝트: qtx0213/MiNET
        public override MetadataDictionary GetMetadata()
        {
            var metadata = base.GetMetadata();

            if (IsCritical)
            {
                metadata[16] = new MetadataByte(1);
            }

            if (Shooter != null)
            {
                metadata[17] = new MetadataLong(Shooter.EntityId);
            }

            return(metadata);
        }
예제 #17
0
파일: Wither.cs 프로젝트: kennyvv/MiNET-1.2
        public override MetadataDictionary GetMetadata()
        {
            MetadataDictionary metadata = new MetadataDictionary();

            metadata[0]  = new MetadataLong(8592556032);            // 1000000000001010000000000000000000; CanClimb, CanFly, Breathing
            metadata[1]  = new MetadataInt(1);
            metadata[2]  = new MetadataInt(0);
            metadata[3]  = new MetadataByte(0);
            metadata[4]  = new MetadataString("");
            metadata[5]  = new MetadataLong(-1);
            metadata[7]  = new MetadataShort(300);
            metadata[8]  = new MetadataInt(0);
            metadata[9]  = new MetadataByte(0);
            metadata[10] = new MetadataByte(0);
            metadata[22] = new MetadataByte(0);
            metadata[38] = new MetadataLong(0);
            metadata[39] = new MetadataFloat(1f);
            metadata[43] = new MetadataShort(300);
            metadata[44] = new MetadataInt(0);
            metadata[45] = new MetadataByte(0);
            metadata[46] = new MetadataInt(0);
            metadata[47] = new MetadataInt(0);
            metadata[49] = new MetadataInt(AnimationStep);
            metadata[50] = new MetadataLong(-1);
            metadata[51] = new MetadataLong(-1);
            metadata[52] = new MetadataLong(-1);
            metadata[53] = new MetadataShort((short)(ShowAuora ? 0 : 1));
            metadata[54] = new MetadataFloat(1f);
            metadata[55] = new MetadataFloat(3f);
            metadata[58] = new MetadataByte(0);
            metadata[59] = new MetadataFloat(0f);
            metadata[60] = new MetadataFloat(0f);
            metadata[70] = new MetadataByte(0);
            metadata[71] = new MetadataString("");
            metadata[72] = new MetadataString("");
            metadata[73] = new MetadataByte(1);
            metadata[74] = new MetadataByte(0);
            metadata[75] = new MetadataInt(0);
            metadata[76] = new MetadataInt(0);
            metadata[77] = new MetadataInt(0);
            metadata[78] = new MetadataInt(-1);

            //metadata[49] = new MetadataInt(0);
            //metadata[53] = new MetadataShort(0);

            return(metadata);
        }
예제 #18
0
        public override MetadataDictionary GetMetadata()
        {
            MetadataDictionary metadata = new MetadataDictionary();

            metadata[0]  = new MetadataByte((byte)(HealthManager.IsOnFire ? 1 : 0));
            metadata[1]  = new MetadataShort(HealthManager.Air);
            metadata[2]  = new MetadataString(NameTag ?? Name);
            metadata[3]  = new MetadataByte(!HideNameTag);
            metadata[4]  = new MetadataByte(Silent);
            metadata[7]  = new MetadataInt(0);            // Potion Color
            metadata[8]  = new MetadataByte(0);           // Potion Ambient
            metadata[15] = new MetadataByte(NoAi);
            metadata[16] = new MetadataByte(0);           // Player flags
            metadata[17] = new MetadataLong(0);

            return(metadata);
        }
예제 #19
0
        public virtual MetadataDictionary GetMetadata()
        {
            MetadataDictionary metadata = new MetadataDictionary();

            metadata[0]  = new MetadataByte(GetDataValue());
            metadata[2]  = new MetadataString(NameTag ?? string.Empty);
            metadata[3]  = new MetadataByte(!HideNameTag);
            metadata[4]  = new MetadataByte(Silent);
            metadata[7]  = new MetadataInt(0);            // Potion Color
            metadata[8]  = new MetadataByte(0);           // Potion Ambient
            metadata[15] = new MetadataByte(NoAi);
            metadata[16] = new MetadataByte(0);           // Player flags
            //metadata[17] = new MetadataIntCoordinates(0, 0, 0);
            metadata[23] = new MetadataLong(-1);          // Leads EID (target or holder?)
            metadata[24] = new MetadataByte(0);           // Leads on/off
            return(metadata);
        }
예제 #20
0
        public override MetadataDictionary GetMetadata()
        {
            Log.Warn("Metadata");
            MetadataDictionary metadata = new MetadataDictionary();

            //metadata[38] = new MetadataLong(0);
            //metadata[39] = new MetadataFloat(1f);
            //metadata[44] = new MetadataShort(300);

            //MetadataDictionary metadata = new MetadataDictionary();
            metadata[0]  = new MetadataLong(8388608);            // 100000000000000000000000; Sitting
            metadata[1]  = new MetadataInt(1);
            metadata[2]  = new MetadataInt(0);
            metadata[3]  = new MetadataByte(0);
            metadata[4]  = new MetadataString("");
            metadata[5]  = new MetadataLong(-1);
            metadata[7]  = new MetadataShort(300);
            metadata[8]  = new MetadataInt(0);
            metadata[9]  = new MetadataByte(0);
            metadata[10] = new MetadataByte(0);
            metadata[22] = new MetadataByte(0);
            metadata[38] = new MetadataLong(0);
            metadata[39] = new MetadataFloat(1f);
            metadata[43] = new MetadataShort(300);
            metadata[44] = new MetadataInt(0);
            metadata[45] = new MetadataByte(0);
            metadata[46] = new MetadataInt(0);
            metadata[47] = new MetadataInt(0);
            metadata[54] = new MetadataFloat(13f);
            metadata[55] = new MetadataFloat(4f);
            metadata[58] = new MetadataByte(0);
            metadata[59] = new MetadataFloat(0f);
            metadata[60] = new MetadataFloat(0f);
            metadata[70] = new MetadataByte(0);
            metadata[71] = new MetadataString("");
            metadata[72] = new MetadataString("");
            metadata[73] = new MetadataByte(1);
            metadata[74] = new MetadataByte(0);
            metadata[75] = new MetadataInt(0);
            metadata[76] = new MetadataInt(0);
            metadata[77] = new MetadataInt(0);
            metadata[78] = new MetadataInt(-1);

            return(metadata);
        }
예제 #21
0
        public override MetadataDictionary GetMetadata()
        {
            EatingHaystack = IsEating ? 32 : 0;
            Scale          = IsBaby ? 0.5582917f : 1.0;
            var metadata = base.GetMetadata();

            metadata[(int)MetadataFlags.Variant]        = new MetadataInt(Variant);
            metadata[(int)MetadataFlags.Markings]       = new MetadataInt(Markings);
            metadata[(int)MetadataFlags.EatingHaystack] = new MetadataInt(EatingHaystack);
            if (IsTamed)
            {
                metadata[45] = new MetadataByte(12);
                metadata[46] = new MetadataInt(2);
            }

            Log.Debug($"Horse: {metadata}");
            return(metadata);
        }
예제 #22
0
        private void HandleUseItem(McpeUseItem message)
        {
            Log.DebugFormat("Use item: {0}", message.item);
            Log.DebugFormat("Entity ID: {0}", message.entityId);
            Log.DebugFormat("meta:  {0}", message.meta);
            Log.DebugFormat("x:  {0}", message.x);
            Log.DebugFormat("y:  {0}", message.y);
            Log.DebugFormat("z:  {0}", message.z);
            Log.DebugFormat("face:  {0}", message.face);
            Log.DebugFormat("fx:  {0}", message.fx);
            Log.DebugFormat("fy:  {0}", message.fy);
            Log.DebugFormat("fz:  {0}", message.fz);
            Log.DebugFormat("px:  {0}", message.positionX);
            Log.DebugFormat("py:  {0}", message.positionY);
            Log.DebugFormat("pz:  {0}", message.positionZ);

            if (message.face <= 5)
            {
                Level.RelayBroadcast(this, new McpeAnimate()
                {
                    actionId = 1,
                    entityId = EntityId
                });

                Vector3 faceCoords = new Vector3(message.fx, message.fy, message.fz);

                Level.Interact(Level, this, message.item, new BlockCoordinates(message.x, message.y, message.z), message.meta, (BlockFace)message.face, faceCoords);
            }
            else
            {
                _itemUseTimer = new Stopwatch();
                _itemUseTimer.Start();
                // Snowballs and shit
                Level.Interact(Level, this, message.item, new BlockCoordinates(message.x, message.y, message.z), message.meta);

                MetadataDictionary metadata = new MetadataDictionary();
                metadata[0] = new MetadataByte(16);
                Level.RelayBroadcast(this, new McpeSetEntityData
                {
                    entityId = EntityId,
                    metadata = metadata,
                });
            }
        }
예제 #23
0
        public override MetadataDictionary GetMetadata()
        {
            MetadataDictionary metadata = new MetadataDictionary();

            metadata[0]  = new MetadataByte((byte)(HealthManager.IsOnFire ? 1 : 0));
            metadata[1]  = new MetadataShort(HealthManager.Air);
            metadata[2]  = new MetadataString(NameTag ?? Name);
            metadata[3]  = new MetadataByte(!HideNameTag);
            metadata[4]  = new MetadataByte(Silent);
            metadata[7]  = new MetadataInt(0);            // Potion Color
            metadata[8]  = new MetadataByte(0);           // Potion Ambient
            metadata[15] = new MetadataByte(NoAi);
            metadata[16] = new MetadataByte(0);           // Player flags
            //metadata[17] = new MetadataIntCoordinates(0, 0, 0);
            metadata[23] = new MetadataInt(-1);           // Leads EID (target or holder?)
            metadata[24] = new MetadataByte(0);           // Leads on/off

            return(metadata);
        }
예제 #24
0
        public override MetadataDictionary GetMetadata()
        {
            MetadataDictionary metadata = new MetadataDictionary();

            metadata[0]  = new MetadataLong(4398046511104);            // 1000000000000000000000000000000000000000000;
            metadata[1]  = new MetadataInt(1);
            metadata[2]  = new MetadataInt(0);
            metadata[3]  = new MetadataByte(0);
            metadata[4]  = new MetadataString("");
            metadata[5]  = new MetadataLong(-1);
            metadata[7]  = new MetadataShort(300);
            metadata[8]  = new MetadataInt(0);
            metadata[9]  = new MetadataByte(0);
            metadata[10] = new MetadataByte(0);
            metadata[22] = new MetadataByte(0);
            metadata[38] = new MetadataLong(0);
            metadata[39] = new MetadataFloat(1f);
            metadata[43] = new MetadataShort(300);
            metadata[44] = new MetadataInt(0);
            metadata[45] = new MetadataByte(0);
            metadata[46] = new MetadataInt(0);
            metadata[47] = new MetadataInt(0);
            metadata[54] = new MetadataFloat(0.4f);
            metadata[55] = new MetadataFloat(0.8f);
            metadata[58] = new MetadataByte(0);
            metadata[59] = new MetadataFloat(0f);
            metadata[60] = new MetadataFloat(0f);
            metadata[70] = new MetadataByte(0);
            metadata[71] = new MetadataString("");
            metadata[72] = new MetadataString("");
            metadata[73] = new MetadataByte(1);
            metadata[74] = new MetadataByte(0);
            metadata[75] = new MetadataInt(0);
            metadata[76] = new MetadataInt(0);
            metadata[77] = new MetadataInt(0);
            metadata[78] = new MetadataInt(-1);

            return(metadata);
        }
예제 #25
0
        public static void SpawnPlayer(RemoteClient client, Proxy proxy, IPacket _packet)
        {
            var packet = (SpawnPlayerPacket)_packet;

            if (packet.PlayerID < 0)
            {
                client.Position = new Vector3(packet.X / 32.0, packet.Y / 32.0, packet.Z / 32.0);
                client.Yaw      = packet.Yaw;
                client.Pitch    = packet.Pitch;
                client.SendPacket(new Modern.PlayerPositionAndLookPacket(
                                      client.Position.X, client.Position.Y + 1.72, client.Position.Z, client.Position.Y + 0.1, 0, 0, false));
            }
            else
            {
                var dictionary = new MetadataDictionary();
                dictionary[0] = new MetadataByte(0);
                dictionary[1] = new MetadataShort(300);
                client.SendPacket(new Modern.SpawnPlayerPacket(packet.PlayerID, packet.Username,
                                                               MathHelper.CreateAbsoluteInt(packet.X / 32.0),
                                                               MathHelper.CreateAbsoluteInt(packet.Y / 32.0),
                                                               MathHelper.CreateAbsoluteInt(packet.Z / 32.0), packet.Yaw, packet.Pitch, 0, dictionary));
            }
            client.SendPacket(new Modern.PlayerListItemPacket(packet.Username, true, 0));
        }
예제 #26
0
        public static MetadataDictionary ReadMetadataDictionaryAlternate(this Packet packet)
        {
            MetadataDictionary metadata = new MetadataDictionary();
            uint count = 0;
            int  index;
            uint type;

            try
            {
                //var stream = (Stream)ReflectionHelper.GetPrivateFieldValue<MemoryStreamReader>(typeof(Packet), packet, "_reader");
                count = packet.ReadUnsignedVarInt();                 //VarInt.ReadInt32(stream);

                for (int i = 0; i < count; ++i)
                {
                    index = (int)packet.ReadUnsignedVarInt();                //VarInt.ReadInt32(stream);
                    type  = packet.ReadUnsignedVarInt();                     //VarInt.ReadInt32(stream);

                    switch (type)
                    {
                    case 0:
                        metadata[index] = new MetadataByte(packet.ReadByte());

                        break;

                    case 1:
                        metadata[index] = new MetadataShort(packet.ReadShort());

                        break;

                    case 2:
                        metadata[index] = new MetadataInt(packet.ReadVarInt());

                        break;

                    case 3:
                        metadata[index] = new MetadataFloat(packet.ReadFloat());

                        break;

                    case 4:
                        metadata[index] = new MetadataString(packet.ReadString());

                        break;

                    case 5:
                        metadata[index] = new MetadataNbt(packet.ReadNbt());

                        break;

                    case 6:
                        metadata[index] = new MetadataIntCoordinates(
                            packet.ReadVarInt(), packet.ReadVarInt(), packet.ReadVarInt());

                        break;

                    case 7:
                        metadata[index] = new MetadataLong(packet.ReadVarLong());

                        break;

                    case 8:
                        metadata[index] = new MetadataVector3(packet.ReadVector3());

                        break;

                    default:
                        Log.Warn($"Unknown metadata type: {type} at index {index}");
                        break;
                    }
                }


                return(metadata);
            }
            catch (Exception ex)
            {
                Log.Warn(ex, $"Incomplete metadata: {ex.ToString()}");
                return(metadata);
            }
        }