Exemple #1
0
        public override void Write(VarInt value)
        {
            var MinecraftByte = new MinecraftByte(Stream);

            while ((value & -128) != 0)
            {
                MinecraftByte.Write((byte)(value & 127 | 128));
                value = (int)(((uint)value.value) >> 7);
            }

            MinecraftByte.Write((byte)value);
        }
Exemple #2
0
        public override void Write(Metadata value)
        {
            var vi   = new MinecraftVarInt(Stream);
            var b    = new MinecraftByte(Stream);
            var func = typeof(MinecraftPacket).GetMethod("WriteToStream", BindingFlags.Static | BindingFlags.Public);
            var f2   = typeof(MinecraftMetadata).GetMethod("C", BindingFlags.Static | BindingFlags.Public);

            foreach (var v in value.Infos)
            {
                b.Write((byte)v.Key);
                vi.Write(Types.Reverse[v.Value.Type]);
                var v2 = f2.MakeGenericMethod(v.Value.Type).Invoke(null, new object[] { v.Value.value });
                func.MakeGenericMethod(v.Value.Type).Invoke(null, new object[] { Stream, v2 });
            }
            b.Write(0xff);
        }
Exemple #3
0
        public override void Write(ItemStack value)
        {
            var Uint8 = new MinecraftByte(Stream);

            new MinecraftShort(Stream).Write((short)value.ProtocolId);
            if (value.ProtocolId != -1)
            {
                Uint8.Write(value.ItemCount);
                new MinecraftNbtCompound(Stream).Write(value.GetNbt());
            }
        }