public void WriteToStream(IPacketCodec rawCodec, Func <int> compressThresholdCallback) { var threshold = compressThresholdCallback(); if (threshold == 0 || DataLength < threshold) { PacketLength = (int)BaseStream.Length; rawCodec.WriteVarInt(DataLength); Content.CopyTo(rawCodec.BaseStream, DataLength); return; } var stream = new MemoryStream(); var content = Content.Clone(stream); content.WriteVarInt(DataLength); var compressedStream = new DeflaterOutputStream(stream); Content.CopyTo(compressedStream, DataLength); compressedStream.Flush(); stream.Position = 0; PacketLength = (int)stream.Length; rawCodec.WriteVarInt(PacketLength); content.CopyTo(rawCodec.BaseStream, PacketLength); compressedStream.Dispose(); stream.Dispose(); }
public void WriteToStream(IPacketCodec content) { content.WriteVarInt(EntityId); content.Write(PlayerUuid); content.Write(Position); content.WriteAngleRotation(Rotation); }
public void WriteToStream(IPacketCodec content) { content.WriteVarInt(ProtocolVersion); content.Write(ServerAddress); content.Write(ServerPort); content.WriteVarIntEnum(NextState); }
public void WriteToStream(IPacketCodec content) { content.WriteVarInt(EntityId); content.Write((short)(Delta.X * 4096)); content.Write((short)(Delta.Y * 4096)); content.Write((short)(Delta.Z * 4096)); content.Write(OnGround); }
public void WriteToStream(IPacketCodec content) { content.Write(EntityId); content.Write(IsHardcore); content.Write(Gamemode); content.Write(PreviousGamemode); content.WriteVarInt(WorldCount); content.Write(WorldNames); content.Write(DimensionCodec); content.Write(Dimension); content.Write(WorldName); content.Write(HashedSeed); content.WriteVarInt(MaxPlayers); content.Write(ViewDistance); content.Write(ReducedDebugInfo); content.Write(EnableRespawnScreen); content.Write(IsDebug); content.Write(IsFlat); }
public void WriteToStream(IPacketCodec content) { content.WriteVarInt(EntityId); content.WriteVarIntEnum(Type); if (Type == InteractType.InteractAt) { content.Write(Target); } if (Type == InteractType.Interact || Type == InteractType.InteractAt) { content.WriteVarIntEnum(Hand); } content.Write(Sneaking); }
public void WriteToStream(IPacketCodec content) { byte flags = 0; void PushFlag(CoordKind kind) { flags |= (byte)(flags << 1 & (byte)kind); } PushFlag(XKind); PushFlag(YKind); PushFlag(ZKind); PushFlag(YRotKind); PushFlag(XRotKind); content.Write(Position); content.Write(Rotation); content.Write(flags); content.WriteVarInt(TeleportId); content.Write(DismountVehicle); }
public void WriteToStream(IPacketCodec content) { content.WriteVarInt(Threshold); }
public void WriteToStream(IPacketCodec content) { content.WriteVarInt(EntityId); content.WriteAngleRotation(Rotation); content.Write(OnGround); }
public void WriteToStream(IPacketCodec content) { content.WriteVarInt(TeleportId); }
public void WriteToStream(IPacketCodec content) { content.WriteVarInt(ChunkX); content.WriteVarInt(ChunkZ); }