// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. using System; using System.Collections.Generic; namespace osu.Game.Online.RealtimeMultiplayer { [Serializable] public class MultiplayerRoom { private object writeLock = new object(); public long RoomID { get; set; } public MultiplayerRoomState State { get; set; } private List users = new List(); public IReadOnlyList Users { get { lock (writeLock) return users.ToArray(); } } public void Join(int user) { lock (writeLock) users.Add(new MultiplayerRoomUser(user)); } public void Leave(int user) { lock (writeLock) users.RemoveAll(u => u.UserID == user); } } }