public void OnApplicationStart() { string steamDllPath = Path.Combine(IPA.Utilities.UnityGame.InstallPath, "Beat Saber_Data", "Plugins", "steam_api64.dll"); bool hasSteamDll = File.Exists(steamDllPath); string platform = hasSteamDll ? "steam" : "oculus"; string gameVersionFull = $"{IPA.Utilities.UnityGame.GameVersion.ToString()}-{platform}"; var httpOptions = new BeatSaverSharp.HttpOptions() { ApplicationName = "BeatSaverDownloader", Version = Assembly.GetExecutingAssembly().GetName().Version, Agents = new BeatSaverSharp.ApplicationAgent[1] { new BeatSaverSharp.ApplicationAgent("BeatSaber", gameVersionFull), }, }; BeatSaver = new BeatSaverSharp.BeatSaver(httpOptions); instance = this; PluginConfig.LoadConfig(); Sprites.ConvertToSprites(); PluginUI.instance.Setup(); BS_Utils.Utilities.BSEvents.menuSceneLoadedFresh += OnMenuSceneLoadedFresh; SceneManager.activeSceneChanged += OnActiveSceneChanged; SceneManager.sceneLoaded += OnSceneLoaded; }
//////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// /// <summary> /// Make usage of beat saber plus custom maps server /// </summary> /// <param name="p_Instance"></param> /// <param name="p_Enabled"></param> /// <returns></returns> public static bool UseBeatSaberPlusCustomMapsServer(this BeatSaverSharp.BeatSaver p_Instance, bool p_Enabled) { if (p_Instance == null) { return(false); } try { if (p_Enabled && (!BeatSaberPlus.Config.Online.Enabled || !BeatSaberPlus.Config.Online.UseBSPCustomMapsServer)) { return(false); } if (m_BeatSaver_HttpInstance == null) { m_BeatSaver_HttpInstance = typeof(BeatSaverSharp.BeatSaver).GetProperty("HttpInstance", BindingFlags.Instance | BindingFlags.NonPublic); } var l_BSSHttp = m_BeatSaver_HttpInstance.GetValue(p_Instance); if (l_BSSHttp != null) { if (m_Http_Client == null) { m_Http_Client = l_BSSHttp.GetType().GetProperty("Client", BindingFlags.Instance | BindingFlags.NonPublic); } var l_HTTPClient = m_Http_Client.GetValue(l_BSSHttp) as HttpClient; if (l_HTTPClient != null) { l_HTTPClient.BaseAddress = new Uri(p_Enabled ? "https://maps.beatsaberplus.com/api/" : $"{BeatSaverSharp.BeatSaver.BaseURL}/api/"); return(true); } } } catch (System.Exception p_Exception) { Logger.Instance.Error("UseBeatSaberPlusCustomMapsServer failed,"); Logger.Instance.Error(p_Exception); } return(false); }