Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of NoBackgroundAudio v1.0.2
plugins/NoBackgroundAudio.dll
Decompiled 2 years agousing System; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using System.Threading.Tasks; using BepInEx; using Microsoft.CodeAnalysis; using NoBackgroundAudio.Extensions; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("NoBackgroundAudio")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyDescription("My first plugin")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("NoBackgroundAudio")] [assembly: AssemblyTitle("NoBackgroundAudio")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace NoBackgroundAudio { [BepInPlugin("NoBackgroundAudio", "NoBackgroundAudio", "1.0.0")] public class Plugin : BaseUnityPlugin { private void Awake() { ((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin NoBackgroundAudio loaded"); Start(); } private async void Start() { while ((Object)(object)IngamePlayerSettings.Instance == (Object)null) { await Task.Delay(1000); } ((Component)IngamePlayerSettings.Instance).gameObject.AddOnApplicationFocusEvents(OnApplicationFocus); } private void OnApplicationFocus(bool hasFocus) { float volume = ES3.Load<float>("MasterVolume", "LCGeneralSaveData", 1f); if (!hasFocus) { AudioListener.volume = 0f; } else { AudioListener.volume = volume; } } } public static class PluginInfo { public const string PLUGIN_GUID = "NoBackgroundAudio"; public const string PLUGIN_NAME = "NoBackgroundAudio"; public const string PLUGIN_VERSION = "1.0.0"; } } namespace NoBackgroundAudio.Extensions { public static class GameObjectExtensions { public static void AddOnApplicationFocusEvents(this GameObject gameObject, Action<bool> onApplicationFocus) { ApplicationFocusHandler applicationFocusHandler = gameObject.AddComponent<ApplicationFocusHandler>(); applicationFocusHandler.OnApplicationFocusEvent += onApplicationFocus; } } public class ApplicationFocusHandler : MonoBehaviour { public event Action<bool> OnApplicationFocusEvent; private void OnApplicationFocus(bool hasFocus) { this.OnApplicationFocusEvent?.Invoke(hasFocus); } } }