-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathPlugin.cs
More file actions
56 lines (50 loc) · 2.1 KB
/
Plugin.cs
File metadata and controls
56 lines (50 loc) · 2.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
using IPA;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UnityEngine;
using BeatSaberMarkupLanguage;
using TMPro;
using HarmonyLib;
namespace NjsFixer
{
[Plugin(RuntimeOptions.SingleStartInit)]
public class Plugin
{
[OnStart]
public void OnApplicationStart()
{
Config.Read();
var harmony = new Harmony("com.kyle1413.BeatSaber.NjsFixer");
harmony.PatchAll(System.Reflection.Assembly.GetExecutingAssembly());
BS_Utils.Utilities.BSEvents.gameSceneLoaded += BSEvents_gameSceneLoaded;
BeatSaberMarkupLanguage.GameplaySetup.GameplaySetup.instance.AddTab("NjsFixer", "NjsFixer.UI.BSML.modifierUI.bsml", UI.ModifierUI.instance, BeatSaberMarkupLanguage.GameplaySetup.MenuType.Solo);
BeatSaberMarkupLanguage.GameplaySetup.GameplaySetup.instance.AddTab("NjsFixerOnline", "NjsFixer.UI.BSML.modifierOnlineUI.bsml", UI.ModifierUI.instance, BeatSaberMarkupLanguage.GameplaySetup.MenuType.Online);
UnityEngine.SceneManagement.SceneManager.activeSceneChanged += SceneManager_activeSceneChanged;
}
private void SceneManager_activeSceneChanged(UnityEngine.SceneManagement.Scene arg0, UnityEngine.SceneManagement.Scene arg1)
{
Config.Write();
}
[Init]
public void Init(IPA.Logging.Logger logger)
{
Logger.log = logger;
}
private void BSEvents_gameSceneLoaded()
{
bool WillOverride = BS_Utils.Plugin.LevelData.IsSet && !BS_Utils.Gameplay.Gamemode.IsIsolatedLevel
&& Config.UserConfig.enabled && BS_Utils.Plugin.LevelData.Mode == BS_Utils.Gameplay.Mode.Standard && BS_Utils.Plugin.LevelData.GameplayCoreSceneSetupData.practiceSettings == null;
if(WillOverride && !Config.UserConfig.dontForceNJS)
BS_Utils.Gameplay.ScoreSubmission.DisableSubmission("NjsFixer");
}
[OnExit]
public void OnApplicationQuit()
{
Config.Write();
}
}
}