예제 #1
0
 public static Slot FromStream(MinecraftStream stream)
 {
     var slot = Slot.EmptySlot;
     slot.Id = stream.ReadInt16();
     if (slot.Empty)
         return slot;
     slot.Count = stream.ReadInt8();
     slot.Metadata = stream.ReadInt16();
     var length = stream.ReadInt16();
     if (length == -1)
         return slot;
     slot.Nbt = new NbtFile();
     var buffer = stream.ReadUInt8Array(length);
     slot.Nbt.LoadFromBuffer(buffer, 0, length, NbtCompression.GZip, null);
     return slot;
 }
예제 #2
0
        public static ItemStack FromStream(MinecraftStream stream)
        {
            var slot = ItemStack.EmptyStack;

            slot.Id = stream.ReadInt16();
            if (slot.Empty)
            {
                return(slot);
            }
            slot.Count    = stream.ReadInt8();
            slot.Metadata = stream.ReadInt16();
            var length = stream.ReadInt16();

            if (length == -1)
            {
                return(slot);
            }
            slot.Nbt = new NbtFile();
            var buffer = stream.ReadUInt8Array(length);

            slot.Nbt.LoadFromBuffer(buffer, 0, length, NbtCompression.GZip, null);
            return(slot);
        }
예제 #3
0
 public void ReadPacket(MinecraftStream stream)
 {
     EntityId = stream.ReadInt32();
     Type = stream.ReadUInt8();
     X = stream.ReadInt32();
     Y = stream.ReadInt32();
     Z = stream.ReadInt32();
     Yaw = stream.ReadUInt8();
     Pitch = stream.ReadUInt8();
     Data = stream.ReadInt32();
     if (Data != 0)
     {
         SpeedX = stream.ReadInt16();
         SpeedY = stream.ReadInt16();
         SpeedZ = stream.ReadInt16();
     }
 }
예제 #4
0
 public void ReadPacket(MinecraftStream stream)
 {
     SlotIndex = stream.ReadInt16();
 }
예제 #5
0
 public void ReadPacket(MinecraftStream stream)
 {
     ServerId = stream.ReadString();
     var pkLength = stream.ReadInt16();
     PublicKey = stream.ReadUInt8Array(pkLength);
     var vtLength = stream.ReadInt16();
     VerificationToken = stream.ReadUInt8Array(vtLength);
 }
예제 #6
0
 public void ReadPacket(MinecraftStream stream)
 {
     var ssLength = stream.ReadInt16();
     SharedSecret = stream.ReadUInt8Array(ssLength);
     var vtLength = stream.ReadInt16();
     VerificationToken = stream.ReadUInt8Array(vtLength);
 }
예제 #7
0
 public void ReadPacket(MinecraftStream stream)
 {
     TeamName = stream.ReadString();
     PacketMode = (TeamMode)stream.ReadUInt8();
     if (PacketMode == TeamMode.CreateTeam || PacketMode == TeamMode.UpdateTeam)
     {
         DisplayName = stream.ReadString();
         TeamPrefix = stream.ReadString();
         TeamSuffix = stream.ReadString();
         EnableFriendlyFire = stream.ReadBoolean();
     }
     if (PacketMode == TeamMode.CreateTeam || PacketMode == TeamMode.AddPlayers ||
         PacketMode == TeamMode.RemovePlayers)
     {
         var playerCount = stream.ReadInt16();
         Players = new string[playerCount];
         for (int i = 0; i < playerCount; i++)
             Players[i] = stream.ReadString();
     }
 }
예제 #8
0
 public void ReadPacket(MinecraftStream stream)
 {
     X = stream.ReadInt32();
     Y = stream.ReadInt16();
     Z = stream.ReadInt32();
     Action = stream.ReadUInt8();
     var length = stream.ReadInt16();
     var data = stream.ReadUInt8Array(length);
     Nbt = new NbtFile();
     Nbt.LoadFromBuffer(data, 0, length, NbtCompression.GZip, null);
 }
예제 #9
0
 public void ReadPacket(MinecraftStream stream)
 {
     X = stream.ReadInt32();
     Y = stream.ReadInt16();
     Z = stream.ReadInt32();
     Text1 = stream.ReadString();
     Text2 = stream.ReadString();
     Text3 = stream.ReadString();
     Text4 = stream.ReadString();
 }
예제 #10
0
 public void ReadPacket(MinecraftStream stream)
 {
     ChunkX = stream.ReadInt32();
     ChunkZ = stream.ReadInt32();
     RecordCount = stream.ReadInt16();
     stream.ReadInt32();
     Data = stream.ReadInt32Array(RecordCount);
 }
예제 #11
0
 public void ReadPacket(MinecraftStream stream)
 {
     ExperienceBar = stream.ReadSingle();
     Level = stream.ReadInt16();
     TotalExperience = stream.ReadInt16();
 }
예제 #12
0
 public void ReadPacket(MinecraftStream stream)
 {
     EntityId = stream.ReadInt32();
     EffectId = stream.ReadUInt8();
     Amplifier = stream.ReadUInt8();
     Duration = stream.ReadInt16();
 }
예제 #13
0
 public void ReadPacket(MinecraftStream stream)
 {
     EntityId = stream.ReadInt32();
     VelocityX = stream.ReadInt16();
     VelocityY = stream.ReadInt16();
     VelocityZ = stream.ReadInt16();
 }
예제 #14
0
 public void ReadPacket(MinecraftStream stream)
 {
     EntityId = stream.ReadInt32();
     X = stream.ReadInt32();
     Y = stream.ReadInt32();
     Z = stream.ReadInt32();
     Count = stream.ReadInt16();
 }
예제 #15
0
 public void ReadPacket(MinecraftStream stream)
 {
     WindowId = stream.ReadUInt8();
     SlotIndex = stream.ReadInt16();
     Item = Slot.FromStream(stream);
 }
예제 #16
0
 public void ReadPacket(MinecraftStream stream)
 {
     SlotIndex = stream.ReadInt16();
     Item = ItemStack.FromStream(stream);
 }
예제 #17
0
 public void ReadPacket(MinecraftStream stream)
 {
     X = stream.ReadInt32();
     Y = stream.ReadUInt8();
     Z = stream.ReadInt32();
     BlockType = stream.ReadInt16();
     BlockMetadata = stream.ReadUInt8();
 }
예제 #18
0
 public void ReadPacket(MinecraftStream stream)
 {
     ItemType = stream.ReadInt16();
     ItemId = stream.ReadInt16();
     var length = stream.ReadInt16();
     Text = Encoding.ASCII.GetString(stream.ReadUInt8Array(length));
 }
예제 #19
0
 public void ReadPacket(MinecraftStream stream)
 {
     X = stream.ReadInt32();
     Y = stream.ReadInt16();
     Z = stream.ReadInt32();
     Data1 = stream.ReadUInt8();
     Data2 = stream.ReadUInt8();
     BlockId = stream.ReadInt16();
 }
예제 #20
0
 public void ReadPacket(MinecraftStream stream)
 {
     PlayerName = stream.ReadString();
     Online = stream.ReadBoolean();
     Ping = stream.ReadInt16();
 }
예제 #21
0
 public void ReadPacket(MinecraftStream stream)
 {
     ChunkCount = stream.ReadInt16();
     var length = stream.ReadInt32();
     LightIncluded = stream.ReadBoolean();
     ChunkData = stream.ReadUInt8Array(length);
     ChunkMetadata = stream.ReadUInt8Array(ChunkCount * 12);
 }
예제 #22
0
 public void ReadPacket(MinecraftStream stream)
 {
     Channel = stream.ReadString();
     var length = stream.ReadInt16();
     Data = stream.ReadUInt8Array(length);
 }
예제 #23
0
 public void ReadPacket(MinecraftStream stream)
 {
     EntityId = stream.ReadInt32();
     SlotIndex = (EntityEquipmentSlot)stream.ReadInt16();
     Slot = ItemStack.FromStream(stream);
 }
예제 #24
0
 public void ReadPacket(MinecraftStream stream)
 {
     Health = stream.ReadInt16();
     Food = stream.ReadInt16();
     FoodSaturation = stream.ReadSingle();
 }
예제 #25
0
 public void ReadPacket(MinecraftStream stream)
 {
     WindowId = stream.ReadUInt8();
     SlotIndex = stream.ReadInt16();
     MouseButton = stream.ReadUInt8();
     ActionNumber = stream.ReadInt16();
     Shift = stream.ReadBoolean();
     ClickedItem = ItemStack.FromStream(stream);
 }
예제 #26
0
 public void ReadPacket(MinecraftStream stream)
 {
     Dimension = (Dimension)stream.ReadInt32();
     Difficulty = (Difficulty)stream.ReadInt8();
     GameMode = (GameMode)stream.ReadInt8();
     WorldHeight = stream.ReadInt16();
     LevelType = stream.ReadString();
 }
예제 #27
0
 public void ReadPacket(MinecraftStream stream)
 {
     WindowId = stream.ReadUInt8();
     short count = stream.ReadInt16();
     Items = new ItemStack[count];
     for (int i = 0; i < count; i++)
         Items[i] = ItemStack.FromStream(stream);
 }
예제 #28
0
 public void ReadPacket(MinecraftStream stream)
 {
     EntityId = stream.ReadInt32();
     PlayerName = stream.ReadString();
     X = stream.ReadInt32();
     Y = stream.ReadInt32();
     Z = stream.ReadInt32();
     Yaw = stream.ReadUInt8();
     Pitch = stream.ReadUInt8();
     HeldItem = stream.ReadInt16();
     Metadata = MetadataDictionary.FromStream(stream);
 }
예제 #29
0
 public void ReadPacket(MinecraftStream stream)
 {
     WindowId = stream.ReadUInt8();
     PropertyId = stream.ReadInt16();
     Value = stream.ReadInt16();
 }
예제 #30
0
 public void ReadPacket(MinecraftStream stream)
 {
     EntityId = stream.ReadInt32();
     Type = stream.ReadUInt8();
     X = stream.ReadInt32();
     Y = stream.ReadInt32();
     Z = stream.ReadInt32();
     Yaw = stream.ReadUInt8();
     Pitch = stream.ReadUInt8();
     HeadYaw = stream.ReadUInt8();
     VelocityX = stream.ReadInt16();
     VelocityY = stream.ReadInt16();
     VelocityZ = stream.ReadInt16();
     Metadata = MetadataDictionary.FromStream(stream);
 }
예제 #31
0
 public void ReadPacket(MinecraftStream stream)
 {
     WindowId = stream.ReadUInt8();
     ActionNumber = stream.ReadInt16();
     Accepted = stream.ReadBoolean();
 }