using System; using System.Collections.Generic; using Oculus.Platform.Models; using UnityEngine; namespace Oculus.Platform { public static class Rooms { public static Request UpdateDataStore(ulong roomID, Dictionary data) { if (Core.IsInitialized()) { CAPI.ovrKeyValuePair[] array = new CAPI.ovrKeyValuePair[data.Count]; int num = 0; foreach (KeyValuePair datum in data) { array[num++] = new CAPI.ovrKeyValuePair(datum.Key, datum.Value); } return new Request(CAPI.ovr_Room_UpdateDataStore(roomID, array)); } return null; } [Obsolete("Deprecated in favor of SetRoomInviteAcceptedNotificationCallback")] public static void SetRoomInviteNotificationCallback(Message.Callback callback) { SetRoomInviteAcceptedNotificationCallback(callback); } public static Request CreateAndJoinPrivate(RoomJoinPolicy joinPolicy, uint maxUsers, bool subscribeToUpdates = false) { if (Core.IsInitialized()) { return new Request(CAPI.ovr_Room_CreateAndJoinPrivate(joinPolicy, maxUsers, subscribeToUpdates)); } return null; } public static Request CreateAndJoinPrivate2(RoomJoinPolicy joinPolicy, uint maxUsers, RoomOptions roomOptions) { if (Core.IsInitialized()) { return new Request(CAPI.ovr_Room_CreateAndJoinPrivate2(joinPolicy, maxUsers, (IntPtr)roomOptions)); } return null; } public static Request Get(ulong roomID) { if (Core.IsInitialized()) { return new Request(CAPI.ovr_Room_Get(roomID)); } return null; } public static Request GetCurrent() { if (Core.IsInitialized()) { return new Request(CAPI.ovr_Room_GetCurrent()); } return null; } public static Request GetCurrentForUser(ulong userID) { if (Core.IsInitialized()) { return new Request(CAPI.ovr_Room_GetCurrentForUser(userID)); } return null; } public static Request GetInvitableUsers() { if (Core.IsInitialized()) { return new Request(CAPI.ovr_Room_GetInvitableUsers()); } return null; } public static Request GetInvitableUsers2(RoomOptions roomOptions = null) { if (Core.IsInitialized()) { return new Request(CAPI.ovr_Room_GetInvitableUsers2((IntPtr)roomOptions)); } return null; } public static Request GetModeratedRooms() { if (Core.IsInitialized()) { return new Request(CAPI.ovr_Room_GetModeratedRooms()); } return null; } public static Request InviteUser(ulong roomID, string inviteToken) { if (Core.IsInitialized()) { return new Request(CAPI.ovr_Room_InviteUser(roomID, inviteToken)); } return null; } public static Request Join(ulong roomID, bool subscribeToUpdates = false) { if (Core.IsInitialized()) { return new Request(CAPI.ovr_Room_Join(roomID, subscribeToUpdates)); } return null; } public static Request Join2(ulong roomID, RoomOptions roomOptions) { if (Core.IsInitialized()) { return new Request(CAPI.ovr_Room_Join2(roomID, (IntPtr)roomOptions)); } return null; } public static Request KickUser(ulong roomID, ulong userID, int kickDurationSeconds) { if (Core.IsInitialized()) { return new Request(CAPI.ovr_Room_KickUser(roomID, userID, kickDurationSeconds)); } return null; } public static Request LaunchInvitableUserFlow(ulong roomID) { if (Core.IsInitialized()) { return new Request(CAPI.ovr_Room_LaunchInvitableUserFlow(roomID)); } return null; } public static Request Leave(ulong roomID) { if (Core.IsInitialized()) { return new Request(CAPI.ovr_Room_Leave(roomID)); } return null; } public static Request SetDescription(ulong roomID, string description) { if (Core.IsInitialized()) { return new Request(CAPI.ovr_Room_SetDescription(roomID, description)); } return null; } public static Request UpdateMembershipLockStatus(ulong roomID, RoomMembershipLockStatus membershipLockStatus) { if (Core.IsInitialized()) { return new Request(CAPI.ovr_Room_UpdateMembershipLockStatus(roomID, membershipLockStatus)); } return null; } public static Request UpdateOwner(ulong roomID, ulong userID) { if (Core.IsInitialized()) { return new Request(CAPI.ovr_Room_UpdateOwner(roomID, userID)); } return null; } public static Request UpdatePrivateRoomJoinPolicy(ulong roomID, RoomJoinPolicy newJoinPolicy) { if (Core.IsInitialized()) { return new Request(CAPI.ovr_Room_UpdatePrivateRoomJoinPolicy(roomID, newJoinPolicy)); } return null; } public static void SetRoomInviteAcceptedNotificationCallback(Message.Callback callback) { Callback.SetNotificationCallback(Message.MessageType.Notification_Room_InviteAccepted, callback); } public static void SetRoomInviteReceivedNotificationCallback(Message.Callback callback) { Callback.SetNotificationCallback(Message.MessageType.Notification_Room_InviteReceived, callback); } public static void SetUpdateNotificationCallback(Message.Callback callback) { Callback.SetNotificationCallback(Message.MessageType.Notification_Room_RoomUpdate, callback); } public static Request GetNextRoomListPage(RoomList list) { if (!list.HasNextPage) { Debug.LogWarning("Oculus.Platform.GetNextRoomListPage: List has no next page"); return null; } if (Core.IsInitialized()) { return new Request(CAPI.ovr_HTTP_GetWithMessageType(list.NextUrl, 1317239238)); } return null; } } }