/// <summary> /// Unregisters a room from a server /// </summary> /// <param name="room"></param> public virtual void DestroyRoom(RegisteredRoom room) { var peer = room.Peer; if (peer != null) { var peerRooms = peer.GetProperty((int)MsfPropCodes.RegisteredRooms) as Dictionary <string, RegisteredRoom>; // Remove the room from peer if (peerRooms != null) { peerRooms.Remove(room.RoomId); } } // Remove the room from all rooms Rooms.Remove(room.RoomId); room.Destroy(); // Invoke the event if (RoomDestroyed != null) { RoomDestroyed.Invoke(room); } }
/// <summary> /// Unregisters a room from a server /// </summary> /// <param name="room"></param> public virtual void DestroyRoom(RegisteredRoom room) { var peer = room.Peer; if (peer != null) { var peerRooms = peer.GetProperty((int)MsfPropCodes.RegisteredRooms) as Dictionary <int, RegisteredRoom>; // Remove the room from peer if (peerRooms != null) { peerRooms.Remove(room.RoomId); } } // Remove the room from all rooms roomsList.Remove(room.RoomId); room.Destroy(); logger.Debug($"Room {room.RoomId} has been successfully destroyed"); // Invoke the event OnRoomDestroyedEvent?.Invoke(room); }