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 Pirates of the Company v1.1.0
BepInEx/plugins/PiratesOfTheCaribbean.dll
Decompiled 2 years agousing System; 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 ModelReplacement; 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("PiratesOfTheCaribbean")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("PiratesOfTheCaribbean")] [assembly: AssemblyTitle("PiratesOfTheCaribbean")] [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 PiratesOfTheCaribbean { public class JackSparrowReplacement : BodyReplacementBase { protected override GameObject? LoadAssetsAndReturnModel() { GameObject val = Assets.mainAssetBundle.LoadAsset<GameObject>("Jack Sparrow"); if ((Object)(object)val == (Object)null) { PiratesOfTheCaribbean.Logger.LogError((object)"Jack Sparrow asset is not found in the asset bundle."); } else { PiratesOfTheCaribbean.Logger.LogInfo((object)"Jack Sparrow asset loaded successfully."); } return val; } } public class CursedJackSparrowReplacement : BodyReplacementBase { protected override GameObject? LoadAssetsAndReturnModel() { GameObject val = Assets.mainAssetBundle.LoadAsset<GameObject>("Cursed Jack Sparrow"); if ((Object)(object)val == (Object)null) { PiratesOfTheCaribbean.Logger.LogError((object)"Cursed Jack Sparrow asset is not found in the asset bundle."); } else { PiratesOfTheCaribbean.Logger.LogInfo((object)"Cursed Jack Sparrow asset loaded successfully."); } return val; } } public class DavyJonesReplacement : BodyReplacementBase { protected override GameObject? LoadAssetsAndReturnModel() { GameObject val = Assets.mainAssetBundle.LoadAsset<GameObject>("Davy Jones"); if ((Object)(object)val == (Object)null) { PiratesOfTheCaribbean.Logger.LogError((object)"Davy Jones asset is not found in the asset bundle."); } else { PiratesOfTheCaribbean.Logger.LogInfo((object)"Davy Jones asset loaded successfully."); } return val; } } public class ElizabethSwannReplacement : BodyReplacementBase { protected override GameObject? LoadAssetsAndReturnModel() { GameObject val = Assets.mainAssetBundle.LoadAsset<GameObject>("Elizabeth Swann"); if ((Object)(object)val == (Object)null) { PiratesOfTheCaribbean.Logger.LogError((object)"Elizabeth Swann asset is not found in the asset bundle."); } else { PiratesOfTheCaribbean.Logger.LogInfo((object)"Elizabeth Swann asset loaded successfully."); } return val; } } public class BarbossaReplacement : BodyReplacementBase { protected override GameObject? LoadAssetsAndReturnModel() { GameObject val = Assets.mainAssetBundle.LoadAsset<GameObject>("Barbossa"); if ((Object)(object)val == (Object)null) { PiratesOfTheCaribbean.Logger.LogError((object)"Barbossa asset is not found in the asset bundle."); } else { PiratesOfTheCaribbean.Logger.LogInfo((object)"Barbossa asset loaded successfully."); } return val; } } [BepInPlugin("Nordbo.PiratesOfTheCaribbean", "Pirates Of The Caribbean", "1.1.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] public class PiratesOfTheCaribbean : BaseUnityPlugin { public static PiratesOfTheCaribbean Instance { get; private set; } internal static ManualLogSource Logger { get; private set; } internal static Harmony? Harmony { get; set; } private void Awake() { Logger = ((BaseUnityPlugin)this).Logger; Instance = this; string location = Assembly.GetExecutingAssembly().Location; string directoryName = Path.GetDirectoryName(location); Assets.PopulateAssets(directoryName); if ((Object)(object)Assets.mainAssetBundle == (Object)null) { Logger.LogError((object)"Asset bundle failed to load."); return; } RegisterModels(); Patch(); Logger.LogInfo((object)"PiratesOfTheCaribbean v1.0.0 has loaded!"); } private void RegisterModels() { if ((Object)(object)Assets.mainAssetBundle != (Object)null) { ModelReplacementAPI.RegisterSuitModelReplacement("Jack Sparrow", typeof(JackSparrowReplacement)); ModelReplacementAPI.RegisterSuitModelReplacement("Cursed Jack Sparrow", typeof(CursedJackSparrowReplacement)); ModelReplacementAPI.RegisterSuitModelReplacement("Davy Jones", typeof(DavyJonesReplacement)); ModelReplacementAPI.RegisterSuitModelReplacement("Elizabeth Swann", typeof(ElizabethSwannReplacement)); ModelReplacementAPI.RegisterSuitModelReplacement("Barbossa", typeof(BarbossaReplacement)); } else { Logger.LogError((object)"Asset bundle failed to load."); } } internal static void Patch() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Expected O, but got Unknown if (Harmony == null) { Harmony = new Harmony("PiratesOfTheCaribbean"); } Logger.LogDebug((object)"Patching..."); Harmony.PatchAll(); Logger.LogDebug((object)"Finished patching!"); } } public static class Assets { public static string mainAssetBundleName = "potcbundle"; public static AssetBundle mainAssetBundle; private static string GetAssemblyName() { return Assembly.GetExecutingAssembly().FullName.Split(',')[0]; } public static void PopulateAssets(string path) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Invalid comparison between Unknown and O if ((object)(Object)mainAssetBundle == null) { mainAssetBundle = AssetBundle.LoadFromFile(Path.Combine(path, mainAssetBundleName)); } } } public static class MyPluginInfo { public const string PLUGIN_GUID = "PiratesOfTheCaribbean"; public const string PLUGIN_NAME = "PiratesOfTheCaribbean"; public const string PLUGIN_VERSION = "1.0.0"; } }