public static void ServerSteamNetTick(MultiplayerServer server) { foreach (var packet in ReadPackets()) { if (packet.joinPacket) { ClearChannel(0); } var player = server.players.FirstOrDefault(p => p.conn is SteamBaseConn conn && conn.remoteId == packet.remote); if (packet.joinPacket && player == null) { IConnection conn = new SteamServerConn(packet.remote); conn.State = ConnectionStateEnum.ServerJoining; player = server.OnConnected(conn); player.type = PlayerType.Steam; player.steamId = (ulong)packet.remote; player.steamPersonaName = SteamFriends.GetFriendPersonaName(packet.remote); if (player.steamPersonaName.Length == 0) { player.steamPersonaName = "[unknown]"; } conn.Send(Packets.Server_SteamAccept); } if (!packet.joinPacket && player != null) { player.HandleReceive(packet.data, packet.reliable); } } }