using System; using Unity.Services.Lobbies; namespace LobbyRelaySample.lobby { /// /// Wrapper for all the interactions with the Lobby API. /// public static class LobbyAPIInterface { /* TODO Delete LobbyAPIInterface public static void CreateLobbyAsync(string requesterUASId, string lobbyName, int maxPlayers, bool isPrivate, Dictionary localUserData, Action onComplete) { CreateLobbyOptions createOptions = new CreateLobbyOptions { IsPrivate = isPrivate, Player = new Player(id: requesterUASId, data: localUserData) }; var task = LobbyService.Instance.CreateLobbyAsync(lobbyName, maxPlayers, createOptions); AsyncRequestLobby.Instance.DoRequest(task, onComplete); } public static void DeleteLobbyAsync(string lobbyId, Action onComplete) { var task = LobbyService.Instance.DeleteLobbyAsync(lobbyId); AsyncRequestLobby.Instance.DoRequest(task, onComplete); } public static void JoinLobbyAsync_ByCode(string requesterUASId, string lobbyCode, Dictionary localUserData, Action onComplete) { JoinLobbyByCodeOptions joinOptions = new JoinLobbyByCodeOptions { Player = new Player(id: requesterUASId, data: localUserData) }; var task = LobbyService.Instance.JoinLobbyByCodeAsync(lobbyCode, joinOptions); AsyncRequestLobby.Instance.DoRequest(task, onComplete); } public static void JoinLobbyAsync_ById(string requesterUASId, string lobbyId, Dictionary localUserData, Action onComplete) { JoinLobbyByIdOptions joinOptions = new JoinLobbyByIdOptions { Player = new Player(id: requesterUASId, data: localUserData) }; var task = LobbyService.Instance.JoinLobbyByIdAsync(lobbyId, joinOptions); AsyncRequestLobby.Instance.DoRequest(task, onComplete); } public static void QuickJoinLobbyAsync(string requesterUASId, List filters, Dictionary localUserData, Action onComplete) { var joinRequest = new QuickJoinLobbyOptions { Filter = filters, Player = new Player(id: requesterUASId, data: localUserData) }; var task = LobbyService.Instance.QuickJoinLobbyAsync(joinRequest); AsyncRequestLobby.Instance.DoRequest(task, onComplete); } public static void LeaveLobbyAsync(string requesterUASId, string lobbyId, Action onComplete) { var task = LobbyService.Instance.RemovePlayerAsync(lobbyId, requesterUASId); AsyncRequestLobby.Instance.DoRequest(task, onComplete); } /// /// Uupdates custom data to the lobby, for all to see. /// public static void UpdateLobbyAsync(string lobbyId, Dictionary data, bool shouldLock, Action onComplete) { UpdateLobbyOptions updateOptions = new UpdateLobbyOptions { Data = data, IsLocked = shouldLock }; var task = LobbyService.Instance.UpdateLobbyAsync(lobbyId, updateOptions); AsyncRequestLobby.Instance.DoRequest(task, onComplete); } public static void UpdatePlayerAsync(string lobbyId, string playerId, Dictionary data, Action onComplete, string allocationId, string connectionInfo) { UpdatePlayerOptions updateOptions = new UpdatePlayerOptions { Data = data, AllocationId = allocationId, ConnectionInfo = connectionInfo }; var task = LobbyService.Instance.UpdatePlayerAsync(lobbyId, playerId, updateOptions); AsyncRequestLobby.Instance.DoRequest(task, onComplete); }*/ } }