public static void Init() { if (Instance == null) { Instance = BeatSaberUI.CreateCustomMenu <CustomMenu>("Online Multiplayer"); middleViewController = BeatSaberUI.CreateViewController <ListViewController>(); Instance.SetMainViewController(middleViewController, true, (firstActivation, type) => { refreshAvailableLobbies(); if (firstActivation) { middleViewController.CreateText("Available Lobbies", new Vector2(BASE.x + 60f, BASE.y)); refresh = middleViewController.CreateUIButton("CreditsButton", new Vector2(BASE.x + 80f, BASE.y + 2.5f), new Vector2(25f, 7f)); refresh.SetButtonText("Refresh"); refresh.SetButtonTextSize(3f); refresh.ToggleWordWrapping(false); refresh.onClick.AddListener(delegate() { refreshAvailableLobbies(); }); if (!SteamAPI.isLobbyConnected()) { Button host = middleViewController.CreateUIButton("CreditsButton", new Vector2(BASE.x, BASE.y + 2.5f), new Vector2(25f, 7f)); host.SetButtonTextSize(3f); host.ToggleWordWrapping(false); host.onClick.RemoveAllListeners(); host.SetButtonText("Host Public Lobby"); host.onClick.AddListener(delegate() { SteamAPI.CreateLobby(false); Instance.Dismiss(); MultiplayerLobby.Instance.Present(); }); Button hostP = middleViewController.CreateUIButton("CreditsButton", new Vector2(BASE.x, BASE.y + 2.5f - 10f), new Vector2(25f, 7f)); hostP.SetButtonTextSize(3f); hostP.ToggleWordWrapping(false); hostP.onClick.RemoveAllListeners(); hostP.SetButtonText("Host Private Lobby"); hostP.onClick.AddListener(delegate() { SteamAPI.CreateLobby(true); Instance.Dismiss(); MultiplayerLobby.Instance.Present(); }); } } }); } }
private void CreateMainMenuButton() { MultiplayerButton = MenuButtonUI.AddButton($"Multiplayer", "", delegate() { try { if (SteamAPI.isLobbyConnected()) { MultiplayerLobby.Instance.Present(); } else { MultiplayerListing.Instance.Present(); } } catch (Exception e) { Logger.Error($"Unable to present flow coordinator! Exception: {e}"); } }); }