Decompiled source of MPlayermodels v1.2.0
BepInEx/plugins/MoreSuits.dll
Decompiled 8 months agousing System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using HarmonyLib; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = "")] [assembly: AssemblyCompany("MoreSuits")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyDescription("A mod that adds more suit options to Lethal Company")] [assembly: AssemblyFileVersion("1.4.1.0")] [assembly: AssemblyInformationalVersion("1.4.1")] [assembly: AssemblyProduct("MoreSuits")] [assembly: AssemblyTitle("MoreSuits")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.4.1.0")] [module: UnverifiableCode] namespace MoreSuits; [BepInPlugin("x753.More_Suits", "More Suits", "1.4.1")] public class MoreSuitsMod : BaseUnityPlugin { [HarmonyPatch(typeof(StartOfRound))] internal class StartOfRoundPatch { [HarmonyPatch("Start")] [HarmonyPrefix] private static void StartPatch(ref StartOfRound __instance) { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Expected O, but got Unknown //IL_067c: Unknown result type (might be due to invalid IL or missing references) //IL_0681: Unknown result type (might be due to invalid IL or missing references) //IL_0687: Unknown result type (might be due to invalid IL or missing references) //IL_068c: Unknown result type (might be due to invalid IL or missing references) //IL_03f9: Unknown result type (might be due to invalid IL or missing references) //IL_0400: Expected O, but got Unknown //IL_0310: Unknown result type (might be due to invalid IL or missing references) //IL_0317: Expected O, but got Unknown //IL_0598: Unknown result type (might be due to invalid IL or missing references) //IL_0204: Unknown result type (might be due to invalid IL or missing references) //IL_020b: Expected O, but got Unknown try { if (SuitsAdded) { return; } int count = __instance.unlockablesList.unlockables.Count; UnlockableItem val = new UnlockableItem(); int num = 0; for (int i = 0; i < __instance.unlockablesList.unlockables.Count; i++) { UnlockableItem val2 = __instance.unlockablesList.unlockables[i]; if (!((Object)(object)val2.suitMaterial != (Object)null) || !val2.alreadyUnlocked) { continue; } val = val2; List<string> list = Directory.GetDirectories(Paths.PluginPath, "moresuits", SearchOption.AllDirectories).ToList(); List<string> list2 = new List<string>(); List<string> list3 = new List<string>(); List<string> list4 = DisabledSuits.ToLower().Replace(".png", "").Split(',') .ToList(); List<string> list5 = new List<string>(); if (!LoadAllSuits) { foreach (string item2 in list) { if (File.Exists(Path.Combine(item2, "!less-suits.txt"))) { string[] collection = new string[9] { "glow", "kirby", "knuckles", "luigi", "mario", "minion", "skeleton", "slayer", "smile" }; list5.AddRange(collection); break; } } } foreach (string item3 in list) { if (item3 != "") { string[] files = Directory.GetFiles(item3, "*.png"); string[] files2 = Directory.GetFiles(item3, "*.matbundle"); list2.AddRange(files); list3.AddRange(files2); } } list3.Sort(); list2.Sort(); try { foreach (string item4 in list3) { Object[] array = AssetBundle.LoadFromFile(item4).LoadAllAssets(); foreach (Object val3 in array) { if (val3 is Material) { Material item = (Material)val3; customMaterials.Add(item); } } } } catch (Exception ex) { Debug.Log((object)("Something went wrong with More Suits! Could not load materials from asset bundle(s). Error: " + ex)); } foreach (string item5 in list2) { if (list4.Contains(Path.GetFileNameWithoutExtension(item5).ToLower())) { continue; } string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); if (list5.Contains(Path.GetFileNameWithoutExtension(item5).ToLower()) && item5.Contains(directoryName)) { continue; } UnlockableItem val4; Material val5; if (Path.GetFileNameWithoutExtension(item5).ToLower() == "default") { val4 = val; val5 = val4.suitMaterial; } else { val4 = JsonUtility.FromJson<UnlockableItem>(JsonUtility.ToJson((object)val)); val5 = Object.Instantiate<Material>(val4.suitMaterial); } byte[] array2 = File.ReadAllBytes(item5); Texture2D val6 = new Texture2D(2, 2); ImageConversion.LoadImage(val6, array2); val5.mainTexture = (Texture)(object)val6; val4.unlockableName = Path.GetFileNameWithoutExtension(item5); try { string path = Path.Combine(Path.GetDirectoryName(item5), "advanced", val4.unlockableName + ".json"); if (File.Exists(path)) { string[] array3 = File.ReadAllLines(path); for (int j = 0; j < array3.Length; j++) { string[] array4 = array3[j].Trim().Split(':'); if (array4.Length != 2) { continue; } string text = array4[0].Trim('"', ' ', ','); string text2 = array4[1].Trim('"', ' ', ','); if (text2.Contains(".png")) { byte[] array5 = File.ReadAllBytes(Path.Combine(Path.GetDirectoryName(item5), "advanced", text2)); Texture2D val7 = new Texture2D(2, 2); ImageConversion.LoadImage(val7, array5); val5.SetTexture(text, (Texture)(object)val7); continue; } if (text == "PRICE" && int.TryParse(text2, out var result)) { try { val4 = AddToRotatingShop(val4, result, __instance.unlockablesList.unlockables.Count); } catch (Exception ex2) { Debug.Log((object)("Something went wrong with More Suits! Could not add a suit to the rotating shop. Error: " + ex2)); } continue; } switch (text2) { case "KEYWORD": val5.EnableKeyword(text); continue; case "DISABLEKEYWORD": val5.DisableKeyword(text); continue; case "SHADERPASS": val5.SetShaderPassEnabled(text, true); continue; case "DISABLESHADERPASS": val5.SetShaderPassEnabled(text, false); continue; } float result2; Vector4 vector; if (text == "SHADER") { Shader shader = Shader.Find(text2); val5.shader = shader; } else if (text == "MATERIAL") { foreach (Material customMaterial in customMaterials) { if (((Object)customMaterial).name == text2) { val5 = Object.Instantiate<Material>(customMaterial); val5.mainTexture = (Texture)(object)val6; break; } } } else if (float.TryParse(text2, out result2)) { val5.SetFloat(text, result2); } else if (TryParseVector4(text2, out vector)) { val5.SetVector(text, vector); } } } } catch (Exception ex3) { Debug.Log((object)("Something went wrong with More Suits! Error: " + ex3)); } val4.suitMaterial = val5; if (val4.unlockableName.ToLower() != "default") { if (num == MaxSuits) { Debug.Log((object)"Attempted to add a suit, but you've already reached the max number of suits! Modify the config if you want more."); continue; } __instance.unlockablesList.unlockables.Add(val4); num++; } } SuitsAdded = true; break; } UnlockableItem val8 = JsonUtility.FromJson<UnlockableItem>(JsonUtility.ToJson((object)val)); val8.alreadyUnlocked = false; val8.hasBeenMoved = false; val8.placedPosition = Vector3.zero; val8.placedRotation = Vector3.zero; val8.unlockableType = 753; while (__instance.unlockablesList.unlockables.Count < count + MaxSuits) { __instance.unlockablesList.unlockables.Add(val8); } } catch (Exception ex4) { Debug.Log((object)("Something went wrong with More Suits! Error: " + ex4)); } } [HarmonyPatch("PositionSuitsOnRack")] [HarmonyPrefix] private static bool PositionSuitsOnRackPatch(ref StartOfRound __instance) { //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) List<UnlockableSuit> source = Object.FindObjectsOfType<UnlockableSuit>().ToList(); source = source.OrderBy((UnlockableSuit suit) => suit.syncedSuitID.Value).ToList(); int num = 0; foreach (UnlockableSuit item in source) { AutoParentToShip component = ((Component)item).gameObject.GetComponent<AutoParentToShip>(); component.overrideOffset = true; float num2 = 0.18f; if (MakeSuitsFitOnRack && source.Count > 13) { num2 /= (float)Math.Min(source.Count, 20) / 12f; } component.positionOffset = new Vector3(-2.45f, 2.75f, -8.41f) + __instance.rightmostSuitPosition.forward * num2 * (float)num; component.rotationOffset = new Vector3(0f, 90f, 0f); num++; } return false; } } private const string modGUID = "x753.More_Suits"; private const string modName = "More Suits"; private const string modVersion = "1.4.1"; private readonly Harmony harmony = new Harmony("x753.More_Suits"); private static MoreSuitsMod Instance; public static bool SuitsAdded = false; public static string DisabledSuits; public static bool LoadAllSuits; public static bool MakeSuitsFitOnRack; public static int MaxSuits; public static List<Material> customMaterials = new List<Material>(); private static TerminalNode cancelPurchase; private static TerminalKeyword buyKeyword; private void Awake() { if ((Object)(object)Instance == (Object)null) { Instance = this; } DisabledSuits = ((BaseUnityPlugin)this).Config.Bind<string>("General", "Disabled Suit List", "UglySuit751.png,UglySuit752.png,UglySuit753.png", "Comma-separated list of suits that shouldn't be loaded").Value; LoadAllSuits = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "Ignore !less-suits.txt", false, "If true, ignores the !less-suits.txt file and will attempt to load every suit, except those in the disabled list. This should be true if you're not worried about having too many suits.").Value; MakeSuitsFitOnRack = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "Make Suits Fit on Rack", true, "If true, squishes the suits together so more can fit on the rack.").Value; MaxSuits = ((BaseUnityPlugin)this).Config.Bind<int>("General", "Max Suits", 100, "The maximum number of suits to load. If you have more, some will be ignored.").Value; harmony.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin More Suits is loaded!"); } private static UnlockableItem AddToRotatingShop(UnlockableItem newSuit, int price, int unlockableID) { //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Expected O, but got Unknown //IL_01ce: Unknown result type (might be due to invalid IL or missing references) //IL_01d4: Expected O, but got Unknown //IL_0298: Unknown result type (might be due to invalid IL or missing references) //IL_029f: Expected O, but got Unknown Terminal val = Object.FindObjectOfType<Terminal>(); for (int i = 0; i < val.terminalNodes.allKeywords.Length; i++) { if (((Object)val.terminalNodes.allKeywords[i]).name == "Buy") { buyKeyword = val.terminalNodes.allKeywords[i]; break; } } newSuit.alreadyUnlocked = false; newSuit.hasBeenMoved = false; newSuit.placedPosition = Vector3.zero; newSuit.placedRotation = Vector3.zero; newSuit.shopSelectionNode = ScriptableObject.CreateInstance<TerminalNode>(); ((Object)newSuit.shopSelectionNode).name = newSuit.unlockableName + "SuitBuy1"; newSuit.shopSelectionNode.creatureName = newSuit.unlockableName + " suit"; newSuit.shopSelectionNode.displayText = "You have requested to order " + newSuit.unlockableName + " suits.\nTotal cost of item: [totalCost].\n\nPlease CONFIRM or DENY.\n\n"; newSuit.shopSelectionNode.clearPreviousText = true; newSuit.shopSelectionNode.shipUnlockableID = unlockableID; newSuit.shopSelectionNode.itemCost = price; newSuit.shopSelectionNode.overrideOptions = true; CompatibleNoun val2 = new CompatibleNoun(); val2.noun = ScriptableObject.CreateInstance<TerminalKeyword>(); val2.noun.word = "confirm"; val2.noun.isVerb = true; val2.result = ScriptableObject.CreateInstance<TerminalNode>(); ((Object)val2.result).name = newSuit.unlockableName + "SuitBuyConfirm"; val2.result.creatureName = ""; val2.result.displayText = "Ordered " + newSuit.unlockableName + " suits! Your new balance is [playerCredits].\n\n"; val2.result.clearPreviousText = true; val2.result.shipUnlockableID = unlockableID; val2.result.buyUnlockable = true; val2.result.itemCost = price; val2.result.terminalEvent = ""; CompatibleNoun val3 = new CompatibleNoun(); val3.noun = ScriptableObject.CreateInstance<TerminalKeyword>(); val3.noun.word = "deny"; val3.noun.isVerb = true; if ((Object)(object)cancelPurchase == (Object)null) { cancelPurchase = ScriptableObject.CreateInstance<TerminalNode>(); } val3.result = cancelPurchase; ((Object)val3.result).name = "MoreSuitsCancelPurchase"; val3.result.displayText = "Cancelled order.\n"; newSuit.shopSelectionNode.terminalOptions = (CompatibleNoun[])(object)new CompatibleNoun[2] { val2, val3 }; TerminalKeyword val4 = ScriptableObject.CreateInstance<TerminalKeyword>(); ((Object)val4).name = newSuit.unlockableName + "Suit"; val4.word = newSuit.unlockableName.ToLower() + " suit"; val4.defaultVerb = buyKeyword; CompatibleNoun val5 = new CompatibleNoun(); val5.noun = val4; val5.result = newSuit.shopSelectionNode; List<CompatibleNoun> list = buyKeyword.compatibleNouns.ToList(); list.Add(val5); buyKeyword.compatibleNouns = list.ToArray(); List<TerminalKeyword> list2 = val.terminalNodes.allKeywords.ToList(); list2.Add(val4); list2.Add(val2.noun); list2.Add(val3.noun); val.terminalNodes.allKeywords = list2.ToArray(); return newSuit; } public static bool TryParseVector4(string input, out Vector4 vector) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) vector = Vector4.zero; string[] array = input.Split(','); if (array.Length == 4 && float.TryParse(array[0], out var result) && float.TryParse(array[1], out var result2) && float.TryParse(array[2], out var result3) && float.TryParse(array[3], out var result4)) { vector = new Vector4(result, result2, result3, result4); return true; } return false; } }
BepInEx/plugins/BA models.dll
Decompiled 8 months agousing System; 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 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: IgnoresAccessChecksTo("Assembly-CSharp")] [assembly: AssemblyCompany("BA models")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("BA models")] [assembly: AssemblyTitle("BA models")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] 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; } } } namespace BAModelReplacement { public class MREIMI : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "eimi"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MROHNO : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "ohno"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRAKARI : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "akari"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRCHINATSU_HINOMIYA : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "chinatsu_hinomiya"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRREISA : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "reisa"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRKOYUKI : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "koyuki"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } protected override void OnEmoteStart(int emoteId) { base.replacementModel.GetComponentInChildren<SkinnedMeshRenderer>().SetBlendShapeWeight(67, 0f); base.replacementModel.GetComponentInChildren<SkinnedMeshRenderer>().SetBlendShapeWeight(102, 0f); if (emoteId == 2) { AudioClip randomAudio = Assets.KoyukiE2.GetRandomAudio(StartOfRound.Instance.randomMapSeed); ((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f); base.replacementModel.GetComponentInChildren<SkinnedMeshRenderer>().SetBlendShapeWeight(67, 100f); base.replacementModel.GetComponentInChildren<SkinnedMeshRenderer>().SetBlendShapeWeight(102, 100f); } } protected override void OnEmoteEnd() { base.replacementModel.GetComponentInChildren<SkinnedMeshRenderer>().SetBlendShapeWeight(67, 0f); base.replacementModel.GetComponentInChildren<SkinnedMeshRenderer>().SetBlendShapeWeight(102, 0f); } } public class MRIZUMI : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "izumi"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRHIBIKI : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "hibiki"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRREIJO : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "reijo"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } [BepInPlugin("BlueArchive.Delete", "Blue Archive bundle", "2.0.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Plugin : BaseUnityPlugin { private void Awake() { //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Expected O, but got Unknown Assets.PopulateAssets(); ModelReplacementAPI.RegisterSuitModelReplacement("Eimi", typeof(MREIMI)); ModelReplacementAPI.RegisterSuitModelReplacement("Tsukuyo", typeof(MROHNO)); ModelReplacementAPI.RegisterSuitModelReplacement("Akari", typeof(MRAKARI)); ModelReplacementAPI.RegisterSuitModelReplacement("Chinatsu", typeof(MRCHINATSU_HINOMIYA)); ModelReplacementAPI.RegisterSuitModelReplacement("Reisa", typeof(MRREISA)); ModelReplacementAPI.RegisterSuitModelReplacement("Koyuki", typeof(MRKOYUKI)); ModelReplacementAPI.RegisterSuitModelReplacement("Izumi", typeof(MRIZUMI)); ModelReplacementAPI.RegisterSuitModelReplacement("Hibiki", typeof(MRHIBIKI)); ModelReplacementAPI.RegisterSuitModelReplacement("Reijo", typeof(MRREIJO)); Harmony val = new Harmony("BlueArchive.Delete"); val.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin BlueArchive.Delete is loaded!"); } } public static class Assets { public class RandomAudioClip { private List<AudioClip> audioClipList = new List<AudioClip>(); public AudioClip GetRandomAudio(int seed) { Random random = new Random(); int num = random.Next(audioClipList.Count); Console.WriteLine($"Get audio N {audioClipList.Count} > {num}"); return audioClipList[num]; } public void AddAudio(string name) { AudioClip audioClipFromName = GetAudioClipFromName(name); if ((Object)(object)audioClipFromName != (Object)null) { audioClipList.Add(audioClipFromName); } else { Console.WriteLine("clip " + name + " null"); } } } public static string mainAssetBundleName = "BAbundle"; public static AssetBundle MainAssetBundle = null; public static RandomAudioClip KoyukiE2 = new RandomAudioClip(); private static string GetAssemblyName() { return Assembly.GetExecutingAssembly().GetName().Name.Replace(" ", "_"); } public static void PopulateAssets() { if ((Object)(object)MainAssetBundle == (Object)null) { Console.WriteLine(GetAssemblyName() + "." + mainAssetBundleName); using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(GetAssemblyName() + "." + mainAssetBundleName); MainAssetBundle = AssetBundle.LoadFromStream(stream); } KoyukiE2.AddAudio("Koyuki_CommonSkill"); } public static AudioClip GetAudioClipFromName(string name) { Object obj = MainAssetBundle.LoadAsset(name); return (AudioClip)(object)((obj is AudioClip) ? obj : null); } } } namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] internal sealed class IgnoresAccessChecksToAttribute : Attribute { public IgnoresAccessChecksToAttribute(string assemblyName) { } } }
BepInEx/plugins/kendoLC.dll
Decompiled 8 months 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.Configuration; using HarmonyLib; using Microsoft.CodeAnalysis; 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 = "")] [assembly: IgnoresAccessChecksTo("Assembly-CSharp")] [assembly: AssemblyCompany("kendoLC")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("kendoLC")] [assembly: AssemblyTitle("kendoLC")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] 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; } } } namespace ModelReplacement { public class MRKENDOU : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "kendoU"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } [BepInPlugin("kosakusasd", "Kendo_Roblox_Model", "0.1.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Plugin : BaseUnityPlugin { public static ConfigFile config; public static ConfigEntry<bool> enableModelForAllSuits { get; private set; } public static ConfigEntry<bool> enableModelAsDefault { get; private set; } public static ConfigEntry<string> suitNamesToEnableModel { get; private set; } private static void InitConfig() { enableModelForAllSuits = config.Bind<bool>("Suits to Replace Settings", "Enable Model for all Suits", false, "Enable to model replace every suit. Set to false to specify suits"); enableModelAsDefault = config.Bind<bool>("Suits to Replace Settings", "Enable Model as default", false, "Enable to model replace every suit that hasn't been otherwise registered."); suitNamesToEnableModel = config.Bind<string>("Suits to Replace Settings", "Suits to enable Model for", "Default,Orange suit", "Enter a comma separated list of suit names.(Additionally, [Green suit,Pajama suit,Hazard suit])"); } private void Awake() { //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Expected O, but got Unknown config = ((BaseUnityPlugin)this).Config; InitConfig(); Assets.PopulateAssets(); ModelReplacementAPI.RegisterSuitModelReplacement("Kendo", typeof(MRKENDOU)); Harmony val = new Harmony("kosakusasd"); val.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin kosakusasd is loaded!"); } } public static class Assets { public static string mainAssetBundleName = "kendotemp"; public static AssetBundle MainAssetBundle = null; private static string GetAssemblyName() { return Assembly.GetExecutingAssembly().GetName().Name.Replace(" ", "_"); } public static void PopulateAssets() { if ((Object)(object)MainAssetBundle == (Object)null) { Console.WriteLine(GetAssemblyName() + "." + mainAssetBundleName); using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(GetAssemblyName() + "." + mainAssetBundleName); MainAssetBundle = AssetBundle.LoadFromStream(stream); } } } } namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] internal sealed class IgnoresAccessChecksToAttribute : Attribute { public IgnoresAccessChecksToAttribute(string assemblyName) { } } }
BepInEx/plugins/JujutsuKaisenSuits.dll
Decompiled 8 months 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.Configuration; using HarmonyLib; using Microsoft.CodeAnalysis; using ModelReplacement; using UnityEngine; using jjksuitsbundle; [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: AssemblyCompany("Jujutsu Kaisen Suits Unity")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("Jujutsu Kaisen Suits Unity")] [assembly: AssemblyTitle("Jujutsu Kaisen Suits Unity")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] 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; } } } namespace jjksuitsbundle { [BepInPlugin("inki.JJKSuits", "Jujutsu Kaisen Suits", "2.0.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Plugin : BaseUnityPlugin { public static ConfigFile config; public static ConfigEntry<bool> enableModelForAllSuits { get; private set; } public static ConfigEntry<bool> enableModelAsDefault { get; private set; } public static ConfigEntry<string> suitNamesToEnableModel { get; private set; } private static void InitConfig() { enableModelForAllSuits = config.Bind<bool>("Suits to Replace Settings", "Enable Model for all Suits", false, "Enable to model replace every suit. Set to false to specify suits"); enableModelAsDefault = config.Bind<bool>("Suits to Replace Settings", "Enable Model as default", false, "Enable to model replace every suit that hasn't been otherwise registered."); suitNamesToEnableModel = config.Bind<string>("Suits to Replace Settings", "Suits to enable Model for", "Default,Orange suit", "Enter a comma separated list of suit names.(Additionally, [Green suit,Pajama suit,Hazard suit])"); } private void Awake() { //IL_02ee: Unknown result type (might be due to invalid IL or missing references) //IL_02f4: Expected O, but got Unknown config = ((BaseUnityPlugin)this).Config; InitConfig(); Assets.PopulateAssets(); if (enableModelForAllSuits.Value) { ModelReplacementAPI.RegisterModelReplacementOverride(typeof(MRITADORI)); } if (enableModelAsDefault.Value) { ModelReplacementAPI.RegisterModelReplacementDefault(typeof(MRITADORI)); } string[] array = suitNamesToEnableModel.Value.Split(','); string[] array2 = array; foreach (string text in array2) { ModelReplacementAPI.RegisterSuitModelReplacement(text, typeof(MRITADORI)); } ModelReplacementAPI.RegisterSuitModelReplacement("OlderGeto", typeof(MROLDERGETO)); ModelReplacementAPI.RegisterSuitModelReplacement("OlderGojo", typeof(MROLDERGOJO)); ModelReplacementAPI.RegisterSuitModelReplacement("Itadori", typeof(MRITADORI)); ModelReplacementAPI.RegisterSuitModelReplacement("Nobara", typeof(MRNOBARA)); ModelReplacementAPI.RegisterSuitModelReplacement("Megumi", typeof(MRMEGUMI)); ModelReplacementAPI.RegisterSuitModelReplacement("Nanami", typeof(MRNANAMI)); ModelReplacementAPI.RegisterSuitModelReplacement("Yuta", typeof(MRYUTA)); ModelReplacementAPI.RegisterSuitModelReplacement("Panda", typeof(MRPANDA)); ModelReplacementAPI.RegisterSuitModelReplacement("Panda_v2", typeof(MRPANDAV2)); ModelReplacementAPI.RegisterSuitModelReplacement("Todo", typeof(MRTODO)); ModelReplacementAPI.RegisterSuitModelReplacement("Maki", typeof(MRMAKI)); ModelReplacementAPI.RegisterSuitModelReplacement("Inumaki", typeof(MRINUMAKI)); ModelReplacementAPI.RegisterSuitModelReplacement("MeiMei", typeof(MRMEIMEI)); ModelReplacementAPI.RegisterSuitModelReplacement("Kokichi", typeof(MRKOKICHI)); ModelReplacementAPI.RegisterSuitModelReplacement("Mechamaru", typeof(MRMECHAMARU)); ModelReplacementAPI.RegisterSuitModelReplacement("Jogo", typeof(MRJOGO)); ModelReplacementAPI.RegisterSuitModelReplacement("Sukuna", typeof(MRSUKUNA)); ModelReplacementAPI.RegisterSuitModelReplacement("Hanami", typeof(MRHANAMI)); ModelReplacementAPI.RegisterSuitModelReplacement("Mahito", typeof(MRMAHITO)); ModelReplacementAPI.RegisterSuitModelReplacement("Eso", typeof(MRESO)); ModelReplacementAPI.RegisterSuitModelReplacement("Junpei", typeof(MRJUNPEI)); ModelReplacementAPI.RegisterSuitModelReplacement("Sukuna_v3", typeof(MRSUKUNAV3)); ModelReplacementAPI.RegisterSuitModelReplacement("Miwa", typeof(MRMIWA)); ModelReplacementAPI.RegisterSuitModelReplacement("Utahime", typeof(MRUTAHIME)); ModelReplacementAPI.RegisterSuitModelReplacement("Momo", typeof(MRMOMO)); ModelReplacementAPI.RegisterSuitModelReplacement("Sukuna_v2", typeof(MRSUKUNAV2)); ModelReplacementAPI.RegisterSuitModelReplacement("Mai", typeof(MRMAI)); ModelReplacementAPI.RegisterSuitModelReplacement("Todo_v2", typeof(MRTODOV2)); Harmony val = new Harmony("inki.JJKSuits"); val.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin inki.JJKSuits is loaded, MONKEYS!"); } } public static class Assets { public static string mainAssetBundleName = "jjksuitsbundle"; public static AssetBundle MainAssetBundle = null; private static string GetAssemblyName() { return Assembly.GetExecutingAssembly().GetName().Name.Replace(" ", "_"); } public static void PopulateAssets() { if ((Object)(object)MainAssetBundle == (Object)null) { Console.WriteLine(GetAssemblyName() + "." + mainAssetBundleName); using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(GetAssemblyName() + "." + mainAssetBundleName); MainAssetBundle = AssetBundle.LoadFromStream(stream); } } } } namespace ModelReplacement { public class MROLDERGOJO : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "OlderGojo"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MROLDERGETO : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "OlderGeto"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRITADORI : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Itadori"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRNOBARA : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Nobara"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRMEGUMI : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Megumi"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRNANAMI : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Nanami"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRYUTA : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Yuta"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRPANDA : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Panda"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRPANDAV2 : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Panda_v2"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRTODO : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Todo"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRMAKI : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Maki"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRINUMAKI : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Inumaki"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRMEIMEI : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "MeiMei"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRKOKICHI : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Kokichi"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRMECHAMARU : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Mechamaru"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRJOGO : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Jogo"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRSUKUNA : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Sukuna"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRHANAMI : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Hanami"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRMAHITO : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Mahito"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRESO : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Eso"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRJUNPEI : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Junpei"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRSUKUNAV3 : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Sukuna_v3"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRSUKUNAV2 : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Sukuna_v2"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRTODOV2 : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Todo_v2"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRMAI : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Mai"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRUTAHIME : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Utahime"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRMIWA : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Miwa"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRMOMO : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Momo"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } } namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] internal sealed class IgnoresAccessChecksToAttribute : Attribute { public IgnoresAccessChecksToAttribute(string assemblyName) { } } }
BepInEx/plugins/MoreJujutsuKaisenSuits.dll
Decompiled 8 months 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.Configuration; 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: IgnoresAccessChecksTo("")] [assembly: AssemblyCompany("More Jujutsu Kaisen Suits Unity")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("More Jujutsu Kaisen Suits Unity")] [assembly: AssemblyTitle("More Jujutsu Kaisen Suits Unity")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] 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; } } } namespace jjkmoresuitsbundle { public class MRYOUNGGOJO : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "YoungGojo"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRYOUNGGETO : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "YoungGeto"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRSHIGEMO : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Shigemo"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRMAHITOV2 : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Mahito_v2"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRYUKI : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Yuki"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRRIKO : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Riko"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRYOUNGSHOKO : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "YoungShoko"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRHANAMIV2 : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Hanami_v2"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRJOGOV2 : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Jogo_v2"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRTOJI : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Toji"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRCHOSO : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Choso"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRYAGA : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Yaga"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRDAGON : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Dagon"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRTAKADA : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Takada"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRTSUMIKI : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Tsumiki"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRYOSHINOBU : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Yoshinobu"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRUIUI : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "UiUi"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MROLDERSHOKO : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "OlderShoko"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRMIGUEL : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Miguel"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } [BepInPlugin("inki.MoreJJKSuits", "MoreJujutsu Kaisen Suits", "0.1.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Plugin : BaseUnityPlugin { public static ConfigFile config; public static ConfigEntry<bool> enableModelForAllSuits { get; private set; } public static ConfigEntry<bool> enableModelAsDefault { get; private set; } public static ConfigEntry<string> suitNamesToEnableModel { get; private set; } private static void InitConfig() { enableModelForAllSuits = config.Bind<bool>("Suits to Replace Settings", "Enable Model for all Suits", false, "Enable to model replace every suit. Set to false to specify suits"); enableModelAsDefault = config.Bind<bool>("Suits to Replace Settings", "Enable Model as default", false, "Enable to model replace every suit that hasn't been otherwise registered."); suitNamesToEnableModel = config.Bind<string>("Suits to Replace Settings", "Suits to enable Model for", "Default,Orange suit", "Enter a comma separated list of suit names.(Additionally, [Green suit,Pajama suit,Hazard suit])"); } private void Awake() { //IL_0231: Unknown result type (might be due to invalid IL or missing references) //IL_0237: Expected O, but got Unknown config = ((BaseUnityPlugin)this).Config; InitConfig(); Assets.PopulateAssets(); if (enableModelForAllSuits.Value) { ModelReplacementAPI.RegisterModelReplacementOverride(typeof(MRYOUNGGOJO)); } if (enableModelAsDefault.Value) { ModelReplacementAPI.RegisterModelReplacementDefault(typeof(MRYOUNGGOJO)); } string[] array = suitNamesToEnableModel.Value.Split(','); string[] array2 = array; foreach (string text in array2) { ModelReplacementAPI.RegisterSuitModelReplacement(text, typeof(MRYOUNGGOJO)); } ModelReplacementAPI.RegisterSuitModelReplacement("YoungGojo", typeof(MRYOUNGGOJO)); ModelReplacementAPI.RegisterSuitModelReplacement("YoungGeto", typeof(MRYOUNGGETO)); ModelReplacementAPI.RegisterSuitModelReplacement("Shigemo", typeof(MRSHIGEMO)); ModelReplacementAPI.RegisterSuitModelReplacement("Yuki", typeof(MRYUKI)); ModelReplacementAPI.RegisterSuitModelReplacement("Mahito_v2", typeof(MRMAHITOV2)); ModelReplacementAPI.RegisterSuitModelReplacement("Jogo_v2", typeof(MRJOGOV2)); ModelReplacementAPI.RegisterSuitModelReplacement("Riko", typeof(MRRIKO)); ModelReplacementAPI.RegisterSuitModelReplacement("Choso", typeof(MRCHOSO)); ModelReplacementAPI.RegisterSuitModelReplacement("OlderShoko", typeof(MROLDERSHOKO)); ModelReplacementAPI.RegisterSuitModelReplacement("YoungShoko", typeof(MRYOUNGSHOKO)); ModelReplacementAPI.RegisterSuitModelReplacement("Hanami_v2", typeof(MRHANAMIV2)); ModelReplacementAPI.RegisterSuitModelReplacement("Toji", typeof(MRTOJI)); ModelReplacementAPI.RegisterSuitModelReplacement("UiUi", typeof(MRUIUI)); ModelReplacementAPI.RegisterSuitModelReplacement("Dagon", typeof(MRDAGON)); ModelReplacementAPI.RegisterSuitModelReplacement("Takada", typeof(MRTAKADA)); ModelReplacementAPI.RegisterSuitModelReplacement("Tsumiki", typeof(MRTSUMIKI)); ModelReplacementAPI.RegisterSuitModelReplacement("Yoshinobu", typeof(MRYOSHINOBU)); ModelReplacementAPI.RegisterSuitModelReplacement("Yaga", typeof(MRYAGA)); ModelReplacementAPI.RegisterSuitModelReplacement("Miguel", typeof(MRMIGUEL)); Harmony val = new Harmony("inki.MoreJJKSuits"); val.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin inki.MoreJJKSuits is loaded!"); } } public static class Assets { public static string mainAssetBundleName = "jjkmoresuitsbundle"; public static AssetBundle MainAssetBundle = null; private static string GetAssemblyName() { return Assembly.GetExecutingAssembly().GetName().Name.Replace(" ", "_"); } public static void PopulateAssets() { if ((Object)(object)MainAssetBundle == (Object)null) { Console.WriteLine(GetAssemblyName() + "." + mainAssetBundleName); using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(GetAssemblyName() + "." + mainAssetBundleName); MainAssetBundle = AssetBundle.LoadFromStream(stream); } } } } namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] internal sealed class IgnoresAccessChecksToAttribute : Attribute { public IgnoresAccessChecksToAttribute(string assemblyName) { } } }