Decompiled source of BetterAudioFilterSettings v1.0.0

plugins/BetterAudioFilterSettings/BetterAudioFilterSettings.dll

Decompiled 3 weeks ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using BepInEx;
using BepInEx.Logging;
using BepInEx.NET.Common;
using BepInExResoniteShim;
using FrooxEngine;
using HarmonyLib;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(/*Could not decode attribute arguments.*/)]
[assembly: TargetFramework(".NETCoreApp,Version=v10.0", FrameworkDisplayName = ".NET 10.0")]
[assembly: AssemblyCompany("art0007i")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0+dc2cc50f597ebbc57073d6d232f1acee15ab1bbc")]
[assembly: AssemblyProduct("Better AudioFilterSettings")]
[assembly: AssemblyTitle("BetterAudioFilterSettings")]
[assembly: AssemblyMetadata("RepositoryUrl", "https://github.com/art0007i/BetterAudioFilterSettings")]
[assembly: AssemblyVersion("1.0.0.0")]
[module: RefSafetyRules(11)]
namespace BetterAudioFilterSettings;

[ResonitePlugin("art0007i.BetterAudioFilterSettings", "Better AudioFilterSettings", "1.0.0", "art0007i", "https://github.com/art0007i/BetterAudioFilterSettings")]
[BepInDependency(/*Could not decode attribute arguments.*/)]
public class Plugin : BasePlugin
{
	[HarmonyPatch(typeof(AudioInputFilteringSettings), "GetDefaultSettingSwitches")]
	public class DefaultSwitchesPatch
	{
		public static bool Prefix(World world, ref List<SettingSwitchValue> __result)
		{
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			//IL_002c: Unknown result type (might be due to invalid IL or missing references)
			int num = 1;
			List<SettingSwitchValue> obj = new List<SettingSwitchValue>(num);
			CollectionsMarshal.SetCount<SettingSwitchValue>(obj, num);
			global::System.Span<SettingSwitchValue> span = CollectionsMarshal.AsSpan<SettingSwitchValue>(obj);
			int num2 = 0;
			span[num2] = ((SettingSwitchSource)SettingSwitchSource.EnsureSettingSwitchSource<VR_ActiveSetttingSwitchSource>(world)).CurrentValue;
			__result = obj;
			return false;
		}
	}

	[HarmonyPatch(typeof(AudioInputFilteringSettings), "IsValidSetOfSwitches")]
	public class SettingSwitchesPatch
	{
		public static bool Prefix(AudioInputFilteringSettings __instance, ref bool __result, List<SettingSwitchValue> switches)
		{
			__result = Enumerable.Any<SettingSwitchValue>((global::System.Collections.Generic.IEnumerable<SettingSwitchValue>)switches, (Func<SettingSwitchValue, bool>)((SettingSwitchValue s) => s.source is VR_ActiveSetttingSwitchSource));
			return false;
		}
	}

	internal static ManualLogSource Log;

	public override void Load()
	{
		Log = ((BasePlugin)this).Log;
		((BasePlugin)this).HarmonyInstance.PatchAll();
	}
}
public static class PluginMetadata
{
	public const string GUID = "art0007i.BetterAudioFilterSettings";

	public const string NAME = "Better AudioFilterSettings";

	public const string VERSION = "1.0.0";

	public const string AUTHORS = "art0007i";

	public const string REPOSITORY_URL = "https://github.com/art0007i/BetterAudioFilterSettings";
}

patchers/BetterAudioFilterSettings/BetterAudioFilterSettingsPatcher.dll

Decompiled 3 weeks ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using BepInEx.Preloader.Core.Patching;
using Mono.Cecil;
using Mono.Cecil.Cil;
using Mono.Cecil.Rocks;
using MonoMod.Utils;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(/*Could not decode attribute arguments.*/)]
[assembly: TargetFramework(".NETCoreApp,Version=v10.0", FrameworkDisplayName = ".NET 10.0")]
[assembly: AssemblyCompany("BetterAudioFilterSettingsPatcher")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0+dc2cc50f597ebbc57073d6d232f1acee15ab1bbc")]
[assembly: AssemblyProduct("BetterAudioFilterSettingsPatcher")]
[assembly: AssemblyTitle("BetterAudioFilterSettingsPatcher")]
[assembly: AssemblyVersion("1.0.0.0")]
[module: RefSafetyRules(11)]
namespace BetterAudioFilterSettings;

[PatcherPluginInfo("art0007i.BetterAudioFilterSettings", "Better AudioFilterSettings", "1.0.0")]
public class Patcher : BasePatcher
{
	public const string GUID = "art0007i.BetterAudioFilterSettings";

	public const string Name = "Better AudioFilterSettings";

	public const string Version = "1.0.0";

	[TargetAssembly("FrooxEngine.dll")]
	public bool PatchFrooxEngine(ref AssemblyDefinition assembly, string filename)
	{
		//IL_0078: Unknown result type (might be due to invalid IL or missing references)
		//IL_0082: Unknown result type (might be due to invalid IL or missing references)
		//IL_0089: Unknown result type (might be due to invalid IL or missing references)
		//IL_0090: Expected O, but got Unknown
		//IL_00c9: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d4: Unknown result type (might be due to invalid IL or missing references)
		//IL_00df: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ea: Unknown result type (might be due to invalid IL or missing references)
		//IL_0123: Unknown result type (might be due to invalid IL or missing references)
		//IL_012a: Expected O, but got Unknown
		//IL_0157: Unknown result type (might be due to invalid IL or missing references)
		//IL_015e: Expected O, but got Unknown
		//IL_016d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0177: Unknown result type (might be due to invalid IL or missing references)
		TypeDefinition type = assembly.MainModule.GetType("FrooxEngine.AudioInputFilteringSettings");
		TypeDefinition type2 = assembly.MainModule.GetType("FrooxEngine.SettingSwitchValue");
		TypeDefinition type3 = assembly.MainModule.GetType("FrooxEngine.World");
		MethodDefinition val = Enumerable.First<MethodDefinition>((global::System.Collections.Generic.IEnumerable<MethodDefinition>)assembly.MainModule.GetType("FrooxEngine.SettingComponent").Methods, (Func<MethodDefinition, bool>)((MethodDefinition x) => "IsValidSetOfSwitches" == ((MemberReference)x).Name));
		MethodDefinition val2 = new MethodDefinition(((MemberReference)val).Name, (MethodAttributes)(val.Attributes & 0xFEFF), ((MethodReference)val).ReturnType);
		type.Methods.Add(val2);
		val2.Body.InitLocals = true;
		ILProcessor iLProcessor = val2.Body.GetILProcessor();
		Extensions.AddRange<ParameterDefinition>(((MethodReference)val2).Parameters, (global::System.Collections.Generic.IEnumerable<ParameterDefinition>)((MethodReference)val).Parameters);
		iLProcessor.Emit(OpCodes.Ldarg_0);
		iLProcessor.Emit(OpCodes.Ldarg_1);
		iLProcessor.Emit(OpCodes.Call, (MethodReference)(object)val);
		iLProcessor.Emit(OpCodes.Ret);
		MethodDefinition val3 = new MethodDefinition("GetDefaultSettingSwitches", (MethodAttributes)150, (TypeReference)(object)TypeReferenceRocks.MakeGenericInstanceType(assembly.MainModule.ImportReference(typeof(List<>)), (TypeReference[])(object)new TypeReference[1] { (TypeReference)type2 }));
		type.Methods.Add(val3);
		val3.Body.InitLocals = true;
		ILProcessor iLProcessor2 = val3.Body.GetILProcessor();
		ParameterDefinition val4 = new ParameterDefinition("world", (ParameterAttributes)0, (TypeReference)(object)type3);
		((MethodReference)val3).Parameters.Add(val4);
		iLProcessor2.Emit(OpCodes.Ldnull);
		iLProcessor2.Emit(OpCodes.Ret);
		return true;
	}
}