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); }
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); }
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()); } }