public static void ReceiveClientSettings(Player player, GameStream stream) { string locale = stream.ReadString(); byte viewDistance = stream.ReadByte(); ChatMode chatMode = (ChatMode)(int)stream.ReadVarInt().Value; bool colors = stream.ReadBoolean(); byte skinParts = stream.ReadByte(); VarInt mainHand = stream.ReadVarInt(); player.Locale = locale; player.ViewDistance = viewDistance; player.ChatMode = chatMode; player.ColorsEnabled = colors; foreach (SkinPart part in SkinParts) { if (skinParts.IsBitSet(part)) { player.DisplayedSkinParts.Add(part); } } player.MainHand.Value = mainHand; SendPlayerSlot(player, stream, player.Slot); // TODO - Declare Recipes // TODO - Set Tags // TODO - Set Entity Statuses }
// TODO: Create SYNC LIST and SERVER TICK to proccess public static void PacketsToClientEvents(Player player, GameStream stream) { // TODO: Make this generic var packetId = (IncomingPacketType)stream.ReadByte(); Log.Debug($"Received packet {packetId} with {stream.Length} bytes"); switch (packetId) { case IncomingPacketType.Token: Log.Debug("PlayerAuthEvent"); var ev = new PlayerAuthEvent(player); ev.ReadFrom(stream); Func <int> runEvent = () => { OnPlayerAuth(ev); return(1); }; //DueEvents.Add(runEvent); runEvent(); break; } }