예제 #1
0
        public static object[] ReadEntityMetadata(Wrapped wSock) {
            var MetadataDict = new Dictionary<int, object>();

            do {
                var item = wSock.readByte();

                if (item == 127)
                    break;

                var index = item & 0x1F;
                var type = item >> 5;

                switch (type) {
                    case 0:
                        MetadataDict.Add(index, wSock.readByte());
                        break;
                    case 1:
                        MetadataDict.Add(index, wSock.readShort());
                        break;
                    case 2:
                        MetadataDict.Add(index, wSock.readInt());
                        break;
                    case 3:
                        MetadataDict.Add(index, wSock.readFloat());
                        break;
                    case 4:
                        MetadataDict.Add(index, wSock.readString());
                        break;
                    case 5:
                        MetadataDict.Add(index, ReadSlot(wSock));
                        break;
                    case 6:
                        MetadataDict.Add(index, new Vector(wSock.readInt(), wSock.readInt(), wSock.readInt()));
                        break;
                }
            } while (true);

            MetadataDict.OrderBy(o => o.Key); // -- Order the dictionary based on the index values
            return MetadataDict.Values.ToArray(); // -- Return the data as an array.
        }
예제 #2
0
            public void Read(Wrapped wSock) {
                WindowId = wSock.readByte();
                WindowType = wSock.readString();
                WindowTitle = wSock.readString();
                NumberOfSlots = wSock.readByte();

                if (WindowType == "EntityHorse")
                    EntityID = wSock.readInt();
            }
예제 #3
0
        public static SlotData ReadSlot(Wrapped wSock) {
            var Data = new SlotData();
            Data.ID = wSock.readShort();

            if (Data.ID == -1) {
                Data.ID = 0;
                Data.ItemCount = 0;
                Data.ItemDamage = 0;
                return Data;
            }

            Data.ItemCount = wSock.readByte();
            Data.ItemDamage = wSock.readShort();
            var NBTLength = wSock.readShort();

            if (NBTLength == -1)
                return Data;

            Data.NbtData = wSock.readByteArray(NBTLength);
            return Data;
        }
예제 #4
0
 public void Read(Wrapped wSock) {
     EntityID = wSock.readVarInt();
     Animation = wSock.readByte();
 }
예제 #5
0
 public void Read(Wrapped wSock) {
     Dimension = wSock.readInt(); // -- Only possible values for this are -1, 0, and 1.. No reason for it to be an int and waste 4 bytes. Thanks mojang.
     Difficulty = wSock.readByte();
     Gamemode = wSock.readByte();
     LevelType = wSock.readString();
 }
예제 #6
0
 public void Read(Wrapped wSock) {
     X = wSock.readInt();
     Y = wSock.readByte();
     Z = wSock.readInt();
     Direction = wSock.readSByte();
     Helditem = WrappedExtension.ReadSlot(wSock);
     CursorpositionX = wSock.readSByte();
     CursorpositionY = wSock.readSByte();
     CursorpositionZ = wSock.readSByte();
     Slot = wSock.readShort();
 }
예제 #7
0
 public void Read(Wrapped wSock) {
     X = wSock.readInt();
     Y = wSock.readShort();
     Z = wSock.readInt();
     Action = wSock.readByte();
     Datalength = wSock.readShort();
     NBTData = wSock.readByteArray(Datalength);
 }
예제 #8
0
 public void Read(Wrapped wSock) {
     WindowID = wSock.readByte();
     Property = wSock.readShort();
     Value = wSock.readShort();
 }
예제 #9
0
 public void Read(Wrapped wSock) {
     PlayerUUID = new Guid(wSock.readByteArray(16));
     X = wSock.readInt();
     Y = wSock.readInt();
     Z = wSock.readInt();
     Yaw = wSock.readByte();
     Pitch = wSock.readByte();
     CurrentItem = wSock.readShort();
     Metadata = WrappedExtension.ReadEntityMetadata(wSock);
 }
예제 #10
0
 public void Read(Wrapped wSock) {
     Animation = wSock.readByte();
 }
예제 #11
0
 public void Read(Wrapped wSock) {
     Dimension = wSock.readInt();
     Difficulty = wSock.readByte();
     Gamemode = wSock.readByte();
     LevelType = wSock.readString();
 }
예제 #12
0
 public void Read(Wrapped wSock) {
     Locale = wSock.readString();
     ViewDistance = wSock.readSByte();
     ChatMode = wSock.readSByte();
     ChatColors = wSock.readBool();
     DisplayedSkinParts = wSock.readByte();
 }
예제 #13
0
 public void Read(Wrapped wSock) {
     Forward = wSock.readFloat();
     Flags = wSock.readByte();
 }
예제 #14
0
 public void Read(Wrapped wSock) {
     Difficulty = wSock.readByte();
 }
예제 #15
0
            public void Read(Wrapped wSock) {
                WindowID = wSock.readByte();
                Count = wSock.readShort();

                for (int i = 0; i < Count; i++)
                    Slots[i] = WrappedExtension.ReadSlot(wSock);
            }
예제 #16
0
 public void Read(Wrapped wSock) {
     WindowID = wSock.readByte();
 }
예제 #17
0
        public void Read(Wrapped wSock) {
            WindowID = wSock.readByte();
            Count = wSock.readShort();
            Slotdata = new SlotData[Count];

            for (int x = 0; x < Count; x++)
                Slotdata[x] = WrappedExtension.ReadSlot(wSock);
        }
예제 #18
0
 public void Read(Wrapped wSock) {
     Type = wSock.readSByte();
     X = wSock.readInt();
     Y = wSock.readInt();
     Z = wSock.readInt();
     Pitch = wSock.readByte();
     Yaw = wSock.readByte();
     Data = WrappedExtension.ReadObjectMetadata(wSock);
 }
예제 #19
0
 public void Read(Wrapped wSock) {
     WindowID = wSock.readByte();
     Actionnumber = wSock.readShort();
     Accepted = wSock.readBool();
 }
예제 #20
0
 public void Read(Wrapped wSock) {
     EntityID = wSock.readVarInt();
     Type = wSock.readByte();
     X = wSock.readInt();
     Y = wSock.readInt();
     Z = wSock.readInt();
     Pitch = wSock.readSByte();
     HeadPitch = wSock.readSByte();
     Yaw = wSock.readSByte();
     VelocityX = wSock.readShort();
     VelocityY = wSock.readShort();
     VelocityZ = wSock.readShort();
     Metadata = WrappedExtension.ReadEntityMetadata(wSock);
 }
예제 #21
0
 public void Read(Wrapped wSock) {
     Status = wSock.readSByte();
     X = wSock.readInt();
     Y = wSock.readByte();
     Z = wSock.readInt();
     Face = wSock.readSByte();
 }
예제 #22
0
 public void Read(Wrapped wSock) {
     X = wSock.readInt();
     Y = wSock.readByte();
     Z = wSock.readInt();
     BlockID = wSock.readVarInt();
     BlockMetadata = wSock.readByte();
 }
예제 #23
0
 public void Read(Wrapped wSock) {
     EntityID = wSock.readInt();
     Gamemode = wSock.readByte();
     Dimension = wSock.readSByte();
     Difficulty = wSock.readByte();
     MaxPlayers = wSock.readByte();
     LevelType = wSock.readString();
 }
예제 #24
0
 public void Read(Wrapped wSock) {
     X = wSock.readInt();
     Y = wSock.readShort();
     Z = wSock.readInt();
     Byte1 = wSock.readByte();
     Byte2 = wSock.readByte();
     BlockType = wSock.readVarInt();
 }
예제 #25
0
 public void Read(Wrapped wSock) {
     EntityID = wSock.readInt();
     X = wSock.readInt();
     Y = wSock.readByte();
     Z = wSock.readInt();
 }
예제 #26
0
 public void Read(Wrapped wSock) {
     SoundName = wSock.readString();
     EffectpositionX = wSock.readInt();
     EffectpositionY = wSock.readInt();
     EffectpositionZ = wSock.readInt();
     Volume = wSock.readFloat();
     Pitch = wSock.readByte();
 }
예제 #27
0
        public static ModifierData ReadModifierData(Wrapped wSock) {
            var Data = new ModifierData();

            Data.UUID = wSock.readByteArray(16); // -- Because f**k Minecraft.
            Data.Amount = wSock.readDouble();
            Data.Operation = wSock.readByte();

            return Data;
        }
예제 #28
0
 public void Read(Wrapped wSock) {
     Reason = wSock.readByte();
     Value = wSock.readFloat();
 }
예제 #29
0
 public void Read(Wrapped wSock) {
     Windowid = wSock.readByte();
     InventoryType = wSock.readByte();
     Windowtitle = wSock.readString();
     NumberofSlots = wSock.readByte();
     Useprovidedwindowtitle = wSock.readBool();
     EntityID = wSock.readInt();
 }
예제 #30
0
 public void Read(Wrapped wSock) {
     Location = new Position().Unpack(wSock.readLong());
     Byte1 = wSock.readByte();
     Byte2 = wSock.readByte();
     BlockType = wSock.readVarInt();
 }