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 FryingPanMOD v1.1.1
MEMESOUNDMOD.dll
Decompiled a year agousing System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Logging; using HarmonyLib; using Microsoft.CodeAnalysis; using UnityEngine; using UnityEngine.Networking; using UnityEngine.SceneManagement; [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: IgnoresAccessChecksTo("Assembly-CSharp-firstpass")] [assembly: IgnoresAccessChecksTo("Assembly-CSharp")] [assembly: IgnoresAccessChecksTo("Autodesk.Fbx")] [assembly: IgnoresAccessChecksTo("Facepunch.Steamworks.Win64")] [assembly: IgnoresAccessChecksTo("FbxBuildTestAssets")] [assembly: IgnoresAccessChecksTo("Klattersynth")] [assembly: IgnoresAccessChecksTo("Photon3Unity3D")] [assembly: IgnoresAccessChecksTo("PhotonChat")] [assembly: IgnoresAccessChecksTo("PhotonRealtime")] [assembly: IgnoresAccessChecksTo("PhotonUnityNetworking")] [assembly: IgnoresAccessChecksTo("PhotonUnityNetworking.Utilities")] [assembly: IgnoresAccessChecksTo("PhotonVoice.API")] [assembly: IgnoresAccessChecksTo("PhotonVoice")] [assembly: IgnoresAccessChecksTo("PhotonVoice.PUN")] [assembly: IgnoresAccessChecksTo("SingularityGroup.HotReload.Runtime")] [assembly: IgnoresAccessChecksTo("SingularityGroup.HotReload.Runtime.Public")] [assembly: IgnoresAccessChecksTo("Sirenix.OdinInspector.Attributes")] [assembly: IgnoresAccessChecksTo("Sirenix.Serialization.Config")] [assembly: IgnoresAccessChecksTo("Sirenix.Serialization")] [assembly: IgnoresAccessChecksTo("Sirenix.Utilities")] [assembly: IgnoresAccessChecksTo("Unity.AI.Navigation")] [assembly: IgnoresAccessChecksTo("Unity.Formats.Fbx.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.InputSystem")] [assembly: IgnoresAccessChecksTo("Unity.InputSystem.ForUI")] [assembly: IgnoresAccessChecksTo("Unity.Postprocessing.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.Core.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.Core.ShaderLibrary")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.ShaderGraph.ShaderGraphLibrary")] [assembly: IgnoresAccessChecksTo("Unity.TextMeshPro")] [assembly: IgnoresAccessChecksTo("Unity.Timeline")] [assembly: IgnoresAccessChecksTo("Unity.VisualScripting.Antlr3.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.VisualScripting.Core")] [assembly: IgnoresAccessChecksTo("Unity.VisualScripting.Flow")] [assembly: IgnoresAccessChecksTo("Unity.VisualScripting.State")] [assembly: IgnoresAccessChecksTo("UnityEngine.ARModule")] [assembly: IgnoresAccessChecksTo("UnityEngine.NVIDIAModule")] [assembly: IgnoresAccessChecksTo("UnityEngine.UI")] [assembly: IgnoresAccessChecksTo("websocket-sharp")] [assembly: AssemblyCompany("GANGOD")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("MEMESOUNDMOD")] [assembly: AssemblyTitle("MEMESOUNDMOD")] [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.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } [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 MEMESOUNDMOD { [HarmonyPatch(typeof(PlayerController))] internal static class ExamplePlayerControllerPatch { [HarmonyPrefix] [HarmonyPatch("Start")] private static void Start_Prefix(PlayerController __instance) { MEMESOUNDMOD.Logger.LogDebug((object)$"{__instance} Start Prefix"); } [HarmonyPostfix] [HarmonyPatch("Start")] private static void Start_Postfix(PlayerController __instance) { MEMESOUNDMOD.Logger.LogDebug((object)$"{__instance} Start Postfix"); } } [HarmonyPatch(typeof(InventorySpot))] internal static class InventoryPatch { [HarmonyPrefix] [HarmonyPatch("UnequipItem")] private static void Uneq_Prefix(InventorySpot __instance) { MEMESOUNDMOD.CheckPans(((Component)__instance.CurrentItem).gameObject, Equip: false); } [HarmonyPostfix] [HarmonyPatch("EquipItem")] private static void Equp_Postfix(InventorySpot __instance) { MEMESOUNDMOD.CheckPans(((Component)__instance.CurrentItem).gameObject, Equip: true); } } [BepInPlugin("GANGOD.MEMESOUNDMOD", "MEMESOUNDMOD", "1.0")] public class MEMESOUNDMOD : BaseUnityPlugin { private string PATH = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\Audio\\"; private AudioClip SwingLoop; private AudioClip SwingStart; public static AudioClip SwingHit; private List<string> PansIdsInINV; private List<string> PansIds; private bool GotPan; internal static MEMESOUNDMOD Instance { get; private set; } internal static ManualLogSource Logger => Instance._logger; private ManualLogSource _logger => ((BaseUnityPlugin)this).Logger; internal Harmony? Harmony { get; set; } private void Awake() { Instance = this; ((Component)this).gameObject.transform.parent = null; ((Object)((Component)this).gameObject).hideFlags = (HideFlags)61; SceneManager.sceneLoaded += OnLevelSwitch; Patch(); Logger.LogInfo((object)$"{((BaseUnityPlugin)this).Info.Metadata.GUID} v{((BaseUnityPlugin)this).Info.Metadata.Version} has loaded!"); ((MonoBehaviour)this).StartCoroutine(GETAUDFROMFILEs("SwingStart.wav")); ((MonoBehaviour)this).StartCoroutine(GETAUDFROMFILEs("SwingLoop.wav")); ((MonoBehaviour)this).StartCoroutine(GETAUDFROMFILEs("SwingHit.wav")); } internal void Patch() { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Expected O, but got Unknown //IL_0026: Expected O, but got Unknown if (Harmony == null) { Harmony val = new Harmony(((BaseUnityPlugin)this).Info.Metadata.GUID); Harmony val2 = val; Harmony = val; } Harmony.PatchAll(); } internal void Unpatch() { Harmony? harmony = Harmony; if (harmony != null) { harmony.UnpatchSelf(); } } public static void CheckPans(GameObject PAN, bool Equip) { Logger.LogWarning((object)"SUCCES"); if (((Object)PAN).name.Contains("Item Melee Frying Pan")) { AudioSource val = null; Instance.PansIds.Add(((Object)PAN).name); val = ((!((Object)(object)PAN.gameObject.GetComponent<AudioSource>() == (Object)null)) ? PAN.gameObject.GetComponent<AudioSource>() : PAN.gameObject.AddComponent<AudioSource>()); val.Stop(); val.volume = 10f; val.spread = 2f; val.reverbZoneMix = 5f; if (!Equip) { val.PlayOneShot(Instance.SwingStart); } else { val.PlayOneShot(Instance.SwingLoop); } PAN.GetComponent<ItemMelee>().soundHit.Sounds[0] = SwingHit; PAN.GetComponent<ItemMelee>().soundSwingLoop.Volume = 10f; } } private IEnumerator GETAUDFROMFILEs(string filename) { string path = Path.Combine(PATH, filename); UnityWebRequest www = UnityWebRequestMultimedia.GetAudioClip(path, (AudioType)20); try { yield return www.SendWebRequest(); if ((int)www.result == 2) { Debug.LogError((object)www.error); yield break; } switch (filename) { case "SwingStart.wav": SwingStart = DownloadHandlerAudioClip.GetContent(www); break; case "SwingLoop.wav": SwingLoop = DownloadHandlerAudioClip.GetContent(www); break; case "SwingHit.wav": SwingHit = DownloadHandlerAudioClip.GetContent(www); break; } Logger.LogWarning((object)"SUCCES"); } finally { ((IDisposable)www)?.Dispose(); } } private void OnLevelSwitch(Scene scene, LoadSceneMode loadSceneMode) { GotPan = false; PansIds = new List<string> { "" }; PansIdsInINV = new List<string> { "" }; Instance = this; } } [HarmonyPatch(typeof(ItemMelee))] internal static class PanChange { [HarmonyPrefix] [HarmonyPatch("EnemyOrPVPSwingHit")] private static void HIT_Prefix(ItemMelee __instance) { } [HarmonyPostfix] [HarmonyPatch("EnemyOrPVPSwingHit")] private static void HIT_Postfix(ItemMelee __instance) { if (((Object)__instance).name.Contains("Item Melee Frying Pan")) { AudioSource val = null; val = ((Component)__instance).gameObject.AddComponent<AudioSource>(); val.Stop(); val.PlayOneShot(MEMESOUNDMOD.SwingHit); } } } }