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 BeegFox v1.0.1
BeegFox.dll
Decompiled a year 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 BepInEx.Logging; using LethalLib.Modules; 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 = ".NET Standard 2.1")] [assembly: AssemblyCompany("BeegFox")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("Beeg Fox")] [assembly: AssemblyTitle("BeegFox")] [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 BeegFox { [BepInPlugin("BeegFox", "Beeg Fox", "1.0.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Fox : BaseUnityPlugin { public static Fox Instance { get; private set; } private static ManualLogSource Logger { get; set; } private static AssetBundle FoxBundle { get; set; } private void Awake() { Logger = ((BaseUnityPlugin)this).Logger; Instance = this; if (LoadBundle()) { RegisterItem(); Logger.LogInfo((object)"BeegFox loaded successfully."); } } private bool LoadBundle() { FoxBundle = LoadBundle("fox bundle", "fox"); return (Object)(object)FoxBundle != (Object)null; } private static AssetBundle LoadBundle(string bundleName, string logPrefix) { AssetBundle val = AssetBundle.LoadFromFile(PathUtils.GetForResourceInAssembly(bundleName)); if ((Object)(object)val == (Object)null) { Logger.LogError((object)("Failed to load " + logPrefix + " asset bundle.")); } return val; } private void RegisterItem() { Item val = LoadItemFromBundle(FoxBundle, "assets/fox/fox.asset", "fox"); if (!((Object)(object)val == (Object)null)) { ConfigEntry<int> val2 = CreateSliderConfig(((BaseUnityPlugin)this).Config, "Fox Rarity", 5, "The rarity of Fox. Higher values are more common."); RegisterItemWithGame(val, val2.Value); } } private static Item LoadItemFromBundle(AssetBundle bundle, string assetPath, string itemName) { Item val = bundle.LoadAsset<Item>(assetPath); if ((Object)(object)val == (Object)null) { Logger.LogError((object)("Failed to load " + itemName + " item from bundle.")); } return val; } private void RegisterItemWithGame(Item item, int rarity) { Items.RegisterScrap(item, rarity, (LevelTypes)(-1)); NetworkPrefabs.RegisterNetworkPrefab(item.spawnPrefab); } private static ConfigEntry<int> CreateSliderConfig(ConfigFile config, string key, int defaultValue, string description) { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Expected O, but got Unknown return config.Bind<int>("General", key, defaultValue, new ConfigDescription(description, (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 100), Array.Empty<object>())); } } public static class PathUtils { public static string GetForResourceInAssembly(string resourceName, Assembly? assembly = null) { if (assembly == null) { assembly = Assembly.GetCallingAssembly(); } return Path.Combine(Path.GetDirectoryName(assembly.Location) ?? string.Empty, resourceName); } } public static class MyPluginInfo { public const string PLUGIN_GUID = "BeegFox"; public const string PLUGIN_NAME = "Beeg Fox"; public const string PLUGIN_VERSION = "1.0.0"; } }