Please disclose if your mod was created primarily 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 TitensDeathsound v1.0.0
FartModBase.dll
Decompiled 2 years agousing System.CodeDom.Compiler; using System.ComponentModel; using System.Diagnostics; using System.Globalization; using System.IO; using System.Reflection; using System.Resources; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using System.Threading.Tasks; using BepInEx; using BepInEx.Logging; using GameNetcodeStuff; using HarmonyLib; using UnityEngine; using UnityEngine.Networking; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("FartModBase")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("FartModBase")] [assembly: AssemblyCopyright("Copyright © 2024")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("842f3ddc-4604-4176-b3eb-11656f468b05")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyVersion("1.0.0.0")] namespace FartModBase { [BepInPlugin("com.fartmodbase", "FartModBase", "0.0.1.0")] public class FartModBase : BaseUnityPlugin { private const string modGUID = "com.fartmodbase"; private const string modName = "FartModBase"; private const string modVersion = "0.0.1.0"; private readonly Harmony harmony = new Harmony("com.fartmodbase"); public static FartModBase Instance; public ManualLogSource mls; public AudioClip fartsound; private void Awake() { if ((Object)(object)Instance == (Object)null) { Instance = this; } mls = Logger.CreateLogSource("com.fartmodbase"); mls.LogInfo((object)"FartModBase loaded!"); harmony.PatchAll(); fartsound = GetAudioClip(); } public static AudioClip GetAudioClip() { //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Invalid comparison between Unknown and I4 AudioClip val = null; DirectoryInfo directoryInfo = new DirectoryInfo(Assembly.GetExecutingAssembly().Location); string fullName = directoryInfo.FullName; fullName = Path.GetDirectoryName(fullName); Instance.mls.LogError((object)("Directory: " + fullName)); UnityWebRequest audioClip = UnityWebRequestMultimedia.GetAudioClip(fullName + "\\fart.wav", (AudioType)20); audioClip.SendWebRequest(); while (!audioClip.isDone) { Instance.mls.LogInfo((object)"Waiting for request to be done"); } if (audioClip.error != null) { Instance.mls.LogError((object)"Error happened while importing sound."); Instance.mls.LogError((object)audioClip.error); } val = DownloadHandlerAudioClip.GetContent(audioClip); if (Object.op_Implicit((Object)(object)val) && (int)val.loadState == 2) { Instance.mls.LogInfo((object)"Sound loaded"); } if ((Object)(object)val == (Object)null) { Instance.mls.LogError((object)"fartsound is null"); } return val; } } } namespace FartModBase.Properties { [GeneratedCode("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] [DebuggerNonUserCode] [CompilerGenerated] internal class Resources { private static ResourceManager resourceMan; private static CultureInfo resourceCulture; [EditorBrowsable(EditorBrowsableState.Advanced)] internal static ResourceManager ResourceManager { get { if (resourceMan == null) { ResourceManager resourceManager = new ResourceManager("FartModBase.Properties.Resources", typeof(Resources).Assembly); resourceMan = resourceManager; } return resourceMan; } } [EditorBrowsable(EditorBrowsableState.Advanced)] internal static CultureInfo Culture { get { return resourceCulture; } set { resourceCulture = value; } } internal static byte[] fart { get { object @object = ResourceManager.GetObject("fart", resourceCulture); return (byte[])@object; } } internal Resources() { } } } namespace FartModBase.Patches { [HarmonyPatch(typeof(PlayerControllerB))] internal class PlayerControllerBPatch { [HarmonyPatch("Awake")] [HarmonyPostfix] private static void _awake() { FartModBase.Instance.mls.LogInfo((object)"PlayerControllerB awake"); } [HarmonyPatch("KillPlayerClientRpc")] [HarmonyPostfix] private static void _killPlayer() { FartModBase.Instance.mls.LogInfo((object)"Player killed"); AudioClip fartsound = FartModBase.Instance.fartsound; if ((Object)(object)fartsound == (Object)null) { FartModBase.Instance.mls.LogError((object)"Fartsound is nukk\nTrying to import it again..."); fartsound = FartModBase.GetAudioClip(); if ((Object)(object)fartsound == (Object)null) { FartModBase.Instance.mls.LogError((object)"Fartsound is still null\nAborting"); return; } } Task task = PlaySound(FartModBase.Instance.fartsound); } private static async Task<Task> PlaySound(AudioClip clip) { if ((Object)(object)clip == (Object)null) { return Task.CompletedTask; } GameObject audioobject = new GameObject("FartSound"); AudioSource audioSource = audioobject.AddComponent<AudioSource>(); audioSource.clip = clip; audioSource.volume = 1f; audioSource.pitch = 1f; audioSource.loop = false; audioSource.Play(); await Task.Delay(6000); Object.Destroy((Object)(object)audioobject); return Task.CompletedTask; } } }