The current BepInExPack is broken due to the Oakveil update, and mods installed through a mod manager may not work. Join the modding Discord for more information.
Decompiled source of NightbaneHardcore v1.0.7
NightbaneHardcore.dll
Decompiled 4 days agousing System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Globalization; using System.IO; using System.Linq; using System.Net.Http; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using System.Text; using System.Text.Json; using BepInEx; using BepInEx.Configuration; using BepInEx.Core.Logging.Interpolation; using BepInEx.Logging; using BepInEx.Unity.IL2CPP; using BepInEx.Unity.IL2CPP.Utils.Collections; using HarmonyLib; using Il2CppInterop.Runtime; using Il2CppInterop.Runtime.InteropTypes.Arrays; using Il2CppSystem.Collections.Generic; using Microsoft.CodeAnalysis; using NightbaneHardcore; using ProjectM; using ProjectM.Network; using ProjectM.Physics; using ProjectM.Scripting; using ProjectM.Shared; using Stunlock.Core; using Unity.Collections; using Unity.Entities; using Unity.Mathematics; using UnityEngine; using VampireCommandFramework; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETCoreApp,Version=v6.0", FrameworkDisplayName = ".NET 6.0")] [assembly: AssemblyCompany("NightbaneHardcore")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyDescription("V Rising Hardcore Mode - Wipes your entire progress on death.")] [assembly: AssemblyFileVersion("1.0.3.0")] [assembly: AssemblyInformationalVersion("0.1.10+1.Branch.main.Sha.c33d0879382e1a0da34861ec55914ba7e637a80e.a51823c37df10329e66978023b3f07ef97121203")] [assembly: AssemblyProduct("NightbaneHardcore")] [assembly: AssemblyTitle("NightbaneHardcore")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.3.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.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } internal class Configuration { internal static bool PvPOnBloodmoon { get; private set; } internal static bool HigherDropOnBloodmoon { get; private set; } internal static int DropRateOnBloodmoon { get; private set; } internal static bool AnnounceDeaths { get; private set; } internal static bool LockItemDropping { get; private set; } internal static bool LastWords { get; private set; } internal static bool DiscordDeathlog { get; private set; } internal static string DiscordWebhookID { get; private set; } internal static string DiscordWebhookToken { get; private set; } internal static string DiscordWebhookIDPvP { get; private set; } internal static string DiscordWebhookTokenPvP { get; private set; } internal static void InitConfig(ConfigFile config) { PvPOnBloodmoon = config.Bind<bool>("Bloodmoon", "PvPOnBloodmoon", true, "Enable PvP during Bloodmoon.").Value; HigherDropOnBloodmoon = config.Bind<bool>("Bloodmoon", "HigherDropOnBloodmoon", true, "Enable higher item drop rates during Bloodmoon.").Value; DropRateOnBloodmoon = config.Bind<int>("Bloodmoon", "DropRateOnBloodmoon", 3, "Drop rate during Bloodmoon. (if enabled)").Value; AnnounceDeaths = config.Bind<bool>("General", "AnnounceDeaths", true, "Announce player deaths in chat.").Value; LockItemDropping = config.Bind<bool>("General", "LockItemDropping", true, "Prevent players from dropping items.").Value; LastWords = config.Bind<bool>("General", "LastWords", true, "Add last words of player that just died to the chat announcement.").Value; DiscordDeathlog = config.Bind<bool>("Discord", "DiscordDeathlog", false, "Log deaths to a Discord webhook.").Value; DiscordWebhookID = config.Bind<string>("Discord", "DiscordWebhookID", "", "Discord webhook ID for PvE death logging.").Value; DiscordWebhookToken = config.Bind<string>("Discord", "DiscordWebhookToken", "", "Discord webhook token for PvE death logging.").Value; DiscordWebhookIDPvP = config.Bind<string>("Discord", "DiscordWebhookIDPvP", "", "Discord webhook ID for PvP kill logging.").Value; DiscordWebhookTokenPvP = config.Bind<string>("Discord", "DiscordWebhookTokenPvP", "", "Discord webhook token for PvP kill logging.").Value; } } internal static class Core { public static World Server { get; } = GetServerWorld() ?? throw new Exception("There is no Server world!"); private static World GetServerWorld() { return ((IEnumerable<World>)World.s_AllWorlds.ToArray()).FirstOrDefault((Func<World, bool>)((World world) => world.Name == "Server")); } } internal static class ECSExtensions { public delegate void ActionRef<T>(ref T item); public unsafe static void Write<T>(this Entity entity, T componentData) where T : struct { //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) ComponentType val = default(ComponentType); ((ComponentType)(ref val))..ctor(Il2CppType.Of<T>(), (AccessMode)0); byte[] array = StructureToByteArray(componentData); int num = Marshal.SizeOf<T>(); fixed (byte* ptr = array) { EntityManager entityManager = Core.Server.EntityManager; ((EntityManager)(ref entityManager)).SetComponentDataRaw(entity, val.TypeIndex, (void*)ptr, num); } } public static void With<T>(this Entity entity, ActionRef<T> action) where T : struct { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) T item = entity.ReadRW<T>(); action(ref item); EntityManager entityManager = Core.Server.EntityManager; ((EntityManager)(ref entityManager)).SetComponentData<T>(entity, item); } public unsafe static T ReadRW<T>(this Entity entity) where T : struct { //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) ComponentType val = default(ComponentType); ((ComponentType)(ref val))..ctor(Il2CppType.Of<T>(), (AccessMode)0); EntityManager entityManager = Core.Server.EntityManager; void* componentDataRawRW = ((EntityManager)(ref entityManager)).GetComponentDataRawRW(entity, val.TypeIndex); return Marshal.PtrToStructure<T>(new IntPtr(componentDataRawRW)); } public static byte[] StructureToByteArray<T>(T structure) where T : struct { int num = Marshal.SizeOf(structure); byte[] array = new byte[num]; IntPtr intPtr = Marshal.AllocHGlobal(num); Marshal.StructureToPtr(structure, intPtr, fDeleteOld: true); Marshal.Copy(intPtr, array, 0, num); Marshal.FreeHGlobal(intPtr); return array; } public unsafe static T Read<T>(this Entity entity) where T : struct { //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) ComponentType val = default(ComponentType); ((ComponentType)(ref val))..ctor(Il2CppType.Of<T>(), (AccessMode)0); EntityManager entityManager = Core.Server.EntityManager; void* componentDataRawRO = ((EntityManager)(ref entityManager)).GetComponentDataRawRO(entity, val.TypeIndex); return Marshal.PtrToStructure<T>(new IntPtr(componentDataRawRO)); } public static DynamicBuffer<T> AddBuffer<T>(this Entity entity) where T : struct { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) EntityManager entityManager = Core.Server.EntityManager; return ((EntityManager)(ref entityManager)).AddBuffer<T>(entity); } public static DynamicBuffer<T> ReadBuffer<T>(this Entity entity) where T : struct { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) EntityManager entityManager = Core.Server.EntityManager; return ((EntityManager)(ref entityManager)).GetBuffer<T>(entity, false); } public static bool HasBuffer<T>(this Entity entity) where T : struct { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) EntityManager entityManager = Core.Server.EntityManager; return ((EntityManager)(ref entityManager)).HasBuffer<T>(entity); } public static bool Has<T>(this Entity entity) { //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) ComponentType val = default(ComponentType); ((ComponentType)(ref val))..ctor(Il2CppType.Of<T>(), (AccessMode)0); EntityManager entityManager = Core.Server.EntityManager; return ((EntityManager)(ref entityManager)).HasComponent(entity, val); } public static string LookupName(this PrefabGUID prefabGuid) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) PrefabCollectionSystem existingSystemManaged = Core.Server.GetExistingSystemManaged<PrefabCollectionSystem>(); Enumerator<string, PrefabGUID> enumerator = existingSystemManaged.SpawnableNameToPrefabGuidDictionary.GetEnumerator(); while (enumerator.MoveNext()) { KeyValuePair<string, PrefabGUID> current = enumerator.Current; if (current.Value == prefabGuid) { return current.key; } } return "GUID Not Found"; } public static void Add<T>(this Entity entity) { //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) ComponentType val = default(ComponentType); ((ComponentType)(ref val))..ctor(Il2CppType.Of<T>(), (AccessMode)0); EntityManager entityManager = Core.Server.EntityManager; ((EntityManager)(ref entityManager)).AddComponent(entity, val); } public static void Remove<T>(this Entity entity) { //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) ComponentType val = default(ComponentType); ((ComponentType)(ref val))..ctor(Il2CppType.Of<T>(), (AccessMode)0); EntityManager entityManager = Core.Server.EntityManager; ((EntityManager)(ref entityManager)).RemoveComponent(entity, val); } } [HarmonyPatch(typeof(ChatMessageSystem), "OnUpdate")] public static class ChatMessageSystemHook { public static void Prefix(ChatMessageSystem __instance) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //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_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004a: 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_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) EntityQuery _query_661171423_ = __instance.__query_661171423_0; NativeArray<Entity> val = ((EntityQuery)(ref _query_661171423_)).ToEntityArray(AllocatorHandle.op_Implicit((Allocator)2)); try { Enumerator<Entity> enumerator = val.GetEnumerator(); while (enumerator.MoveNext()) { Entity current = enumerator.Current; ChatMessageEvent val2 = current.Read<ChatMessageEvent>(); FromCharacter val3 = current.Read<FromCharacter>(); User val4 = val3.User.Read<User>(); if (Hardcore.LastWords.ContainsKey(val4.PlatformId)) { Hardcore.LastWords[val4.PlatformId] = ((FixedString512Bytes)(ref val2.MessageText)).Value; string contents = JsonSerializer.Serialize(Hardcore.LastWords, new JsonSerializerOptions { WriteIndented = true }); File.WriteAllText(Hardcore.LastWordsJson, contents); } else { Hardcore.LastWords.Add(val4.PlatformId, ((FixedString512Bytes)(ref val2.MessageText)).Value); } } } finally { val.Dispose(); } } } [HarmonyPatch(typeof(KillEventSystem), "OnUpdate")] public static class DeathEventListenerHook { public static void Prefix(KillEventSystem __instance) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //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_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) EntityQuery _query_463356032_ = __instance.__query_463356032_0; NativeArray<Entity> val = ((EntityQuery)(ref _query_463356032_)).ToEntityArray(AllocatorHandle.op_Implicit((Allocator)2)); try { Enumerator<Entity> enumerator = val.GetEnumerator(); while (enumerator.MoveNext()) { Entity current = enumerator.Current; if (current.Has<KillEvent>() && current.Has<FromCharacter>()) { FromCharacter val2 = current.Read<FromCharacter>(); KillEvent val3 = current.Read<KillEvent>(); if (((object)(KillWho)(ref val3.Who)).ToString() == "Self") { EntityManager entityManager = Core.Server.EntityManager; ((EntityManager)(ref entityManager)).DestroyEntity(current); Helper.SendSystemMessageToClient(Core.Server.EntityManager, val2.User.Read<User>(), "<color=red>You can't use unstuck in Hardcore mode!"); } } } } finally { val.Dispose(); } } } [HarmonyPatch(typeof(DropInventoryItemSystem), "OnUpdate")] public static class DropItemThrowSystemHook { [HarmonyPrefix] public static void Prefix(DropInventoryItemSystem __instance) { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_004c: 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_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0068: 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_009b: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) if (!Configuration.LockItemDropping) { return; } EntityQuery _query_1470978904_ = __instance.__query_1470978904_0; NativeArray<Entity> val = ((EntityQuery)(ref _query_1470978904_)).ToEntityArray(AllocatorHandle.op_Implicit((Allocator)2)); try { Enumerator<Entity> enumerator = val.GetEnumerator(); Entity val3 = default(Entity); while (enumerator.MoveNext()) { Entity current = enumerator.Current; if (current.Has<DropInventoryItemEvent>()) { DropInventoryItemEvent val2 = current.Read<DropInventoryItemEvent>(); FromCharacter fromCharacter = current.Read<FromCharacter>(); ((NetworkIdLookupMap)(ref Hardcore.networkIdSystem._NetworkIdLookupMap)).TryGetValue(val2.Inventory, ref val3); if (!val3.Has<Attached>()) { Hardcore.HandleDropItemChest(val3, fromCharacter, val2.SlotIndex); } else { Hardcore.HandleDropItem(fromCharacter, val2.SlotIndex); } EntityManager entityManager = Core.Server.EntityManager; ((EntityManager)(ref entityManager)).DestroyEntity(current); } } } finally { val.Dispose(); } } } [HarmonyPatch(typeof(DropItemSystem), "OnUpdate")] public static class DropItemSystemHook { [HarmonyPrefix] public static void Prefix(DropItemSystem __instance) { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_0133: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Unknown result type (might be due to invalid IL or missing references) //IL_0157: Unknown result type (might be due to invalid IL or missing references) //IL_015f: Unknown result type (might be due to invalid IL or missing references) //IL_0164: Unknown result type (might be due to invalid IL or missing references) //IL_0168: Unknown result type (might be due to invalid IL or missing references) if (!Configuration.LockItemDropping) { return; } EntityQuery val = __instance.__query_1470978519_2; NativeArray<Entity> val2 = ((EntityQuery)(ref val)).ToEntityArray(AllocatorHandle.op_Implicit((Allocator)2)); EntityManager entityManager; try { Enumerator<Entity> enumerator = val2.GetEnumerator(); while (enumerator.MoveNext()) { Entity current = enumerator.Current; if (current.Has<DropEntireInventoryEvent>()) { FromCharacter val3 = current.Read<FromCharacter>(); Helper.SendSystemMessageToClient(Core.Server.EntityManager, val3.User.Read<User>(), "<color=red>You can't drop your inventory in Hardcore Mode!"); entityManager = Core.Server.EntityManager; ((EntityManager)(ref entityManager)).DestroyEntity(current); } } } finally { val2.Dispose(); } val = __instance.__query_1470978519_0; NativeArray<Entity> val4 = ((EntityQuery)(ref val)).ToEntityArray(AllocatorHandle.op_Implicit((Allocator)2)); try { Enumerator<Entity> enumerator2 = val4.GetEnumerator(); while (enumerator2.MoveNext()) { Entity current2 = enumerator2.Current; if (current2.Has<DropItemAtSlotEvent>()) { DropItemAtSlotEvent val5 = current2.Read<DropItemAtSlotEvent>(); FromCharacter fromCharacter = current2.Read<FromCharacter>(); Hardcore.HandleDropItem(fromCharacter, val5.SlotIndex); entityManager = Core.Server.EntityManager; ((EntityManager)(ref entityManager)).DestroyEntity(current2); } } } finally { val4.Dispose(); } val = __instance.__query_1470978519_1; NativeArray<Entity> val6 = ((EntityQuery)(ref val)).ToEntityArray(AllocatorHandle.op_Implicit((Allocator)2)); try { Enumerator<Entity> enumerator3 = val6.GetEnumerator(); while (enumerator3.MoveNext()) { Entity current3 = enumerator3.Current; entityManager = Core.Server.EntityManager; ((EntityManager)(ref entityManager)).DestroyEntity(current3); } } finally { val6.Dispose(); } } } [HarmonyPatch(typeof(VampireDownedServerEventSystem), "OnUpdate")] public static class VampireDownedHook { public static void Prefix(VampireDownedServerEventSystem __instance) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //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_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) EntityQuery _query_1174204813_ = __instance.__query_1174204813_0; NativeArray<Entity> val = ((EntityQuery)(ref _query_1174204813_)).ToEntityArray(AllocatorHandle.op_Implicit((Allocator)2)); try { Enumerator<Entity> enumerator = val.GetEnumerator(); while (enumerator.MoveNext()) { Entity current = enumerator.Current; Hardcore.HardcoreDeath(current); } } finally { val.Dispose(); } } } namespace NightbaneHardcore { public static class Hardcore { [HarmonyPatch] internal static class InitializationPatch { [HarmonyPatch(typeof(GameBootstrap), "Start")] [HarmonyPostfix] private static void StartPostfix() { Initialize(); } } [CompilerGenerated] private sealed class <DestroyCastleOnDeath>d__22 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public Entity userEntity; private User <userOwner>5__1; private EntityManager <entityManager>5__2; private EntityQuery <query>5__3; private NativeArray<Entity> <entities>5__4; private List<Entity> <entitiesToDestroy>5__5; private int <batchSize>5__6; private float <delayBetweenBatches>5__7; private Enumerator<Entity> <>s__8; private Entity <entity>5__9; private UserOwner <ownerUser>5__10; private User <owner>5__11; private int <i>5__12; private int <j>5__13; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <DestroyCastleOnDeath>d__22(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <entitiesToDestroy>5__5 = null; <>1__state = -2; } private bool MoveNext() { //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_0106: 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_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_019a: Unknown result type (might be due to invalid IL or missing references) //IL_01b2: Unknown result type (might be due to invalid IL or missing references) //IL_0209: Unknown result type (might be due to invalid IL or missing references) //IL_0213: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; <userOwner>5__1 = userEntity.Read<User>(); <entityManager>5__2 = Core.Server.EntityManager; <query>5__3 = ((EntityManager)(ref <entityManager>5__2)).CreateEntityQuery(Il2CppStructArray<ComponentType>.op_Implicit((ComponentType[])(object)new ComponentType[1] { new ComponentType(Il2CppType.Of<UserOwner>(), (AccessMode)1) })); <entities>5__4 = ((EntityQuery)(ref <query>5__3)).ToEntityArray(AllocatorHandle.op_Implicit((Allocator)3)); <entitiesToDestroy>5__5 = new List<Entity>(); <>s__8 = <entities>5__4.GetEnumerator(); while (<>s__8.MoveNext()) { <entity>5__9 = <>s__8.Current; <ownerUser>5__10 = ((EntityManager)(ref <entityManager>5__2)).GetComponentData<UserOwner>(<entity>5__9); if (!(<ownerUser>5__10.Owner._Entity == Entity.Null)) { <owner>5__11 = ((EntityManager)(ref <entityManager>5__2)).GetComponentData<User>(<ownerUser>5__10.Owner._Entity); if (((FixedString64Bytes)(ref <owner>5__11.CharacterName)).Value == ((FixedString64Bytes)(ref <userOwner>5__1.CharacterName)).Value) { <entitiesToDestroy>5__5.Add(<entity>5__9); } } } <entities>5__4.Dispose(); <batchSize>5__6 = 20; <delayBetweenBatches>5__7 = 0.5f; <i>5__12 = 0; break; case 1: <>1__state = -1; <i>5__12 += <batchSize>5__6; break; } if (<i>5__12 < <entitiesToDestroy>5__5.Count) { <j>5__13 = 0; while (<j>5__13 < <batchSize>5__6 && <i>5__12 + <j>5__13 < <entitiesToDestroy>5__5.Count) { DestroyUtility.Destroy(<entityManager>5__2, <entitiesToDestroy>5__5[<i>5__12 + <j>5__13], (DestroyDebugReason)0, (string)null, 0); <j>5__13++; } <>2__current = (object)new WaitForSeconds(<delayBetweenBatches>5__7); <>1__state = 1; return true; } return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class <KickPlayerWithDelay>d__21 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public Entity userEntity; private string <jsonDataDeaths>5__1; private User <user>5__2; private string <newName>5__3; private Entity <entity>5__4; private NetworkId <networkId>5__5; private RenameUserDebugEvent <renameEvent>5__6; private FromCharacter <fromCharacter>5__7; private string <jsonData>5__8; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <KickPlayerWithDelay>d__21(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <jsonDataDeaths>5__1 = null; <newName>5__3 = null; <jsonData>5__8 = null; <>1__state = -2; } private bool MoveNext() { //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0069: 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_007a: Unknown result type (might be due to invalid IL or missing references) //IL_0197: Unknown result type (might be due to invalid IL or missing references) //IL_019c: Unknown result type (might be due to invalid IL or missing references) //IL_01a7: Unknown result type (might be due to invalid IL or missing references) //IL_01ac: Unknown result type (might be due to invalid IL or missing references) //IL_01b3: Unknown result type (might be due to invalid IL or missing references) //IL_01b8: Unknown result type (might be due to invalid IL or missing references) //IL_01bf: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: Unknown result type (might be due to invalid IL or missing references) //IL_01d9: Unknown result type (might be due to invalid IL or missing references) //IL_01e0: Unknown result type (might be due to invalid IL or missing references) //IL_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_0201: Unknown result type (might be due to invalid IL or missing references) //IL_0208: Unknown result type (might be due to invalid IL or missing references) //IL_0220: Unknown result type (might be due to invalid IL or missing references) //IL_0229: Unknown result type (might be due to invalid IL or missing references) //IL_0230: Unknown result type (might be due to invalid IL or missing references) //IL_0252: Unknown result type (might be due to invalid IL or missing references) //IL_0268: Unknown result type (might be due to invalid IL or missing references) //IL_026e: Unknown result type (might be due to invalid IL or missing references) //IL_027f: Unknown result type (might be due to invalid IL or missing references) //IL_0284: Unknown result type (might be due to invalid IL or missing references) //IL_0288: Unknown result type (might be due to invalid IL or missing references) //IL_028d: Unknown result type (might be due to invalid IL or missing references) //IL_0292: Unknown result type (might be due to invalid IL or missing references) //IL_029a: Unknown result type (might be due to invalid IL or missing references) //IL_02a8: Unknown result type (might be due to invalid IL or missing references) //IL_02ad: Unknown result type (might be due to invalid IL or missing references) //IL_02b5: Unknown result type (might be due to invalid IL or missing references) //IL_02ba: Unknown result type (might be due to invalid IL or missing references) //IL_02bf: Unknown result type (might be due to invalid IL or missing references) //IL_02c1: Unknown result type (might be due to invalid IL or missing references) //IL_02c9: Unknown result type (might be due to invalid IL or missing references) //IL_02d2: Unknown result type (might be due to invalid IL or missing references) //IL_02d7: Unknown result type (might be due to invalid IL or missing references) //IL_02e9: Unknown result type (might be due to invalid IL or missing references) //IL_02ee: Unknown result type (might be due to invalid IL or missing references) //IL_02f3: Unknown result type (might be due to invalid IL or missing references) //IL_02f5: Unknown result type (might be due to invalid IL or missing references) //IL_0300: Unknown result type (might be due to invalid IL or missing references) //IL_0306: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_015b: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Unknown result type (might be due to invalid IL or missing references) //IL_0181: Expected O, but got Unknown //IL_00c5: Unknown result type (might be due to invalid IL or missing references) switch (<>1__state) { default: return false; case 0: { <>1__state = -1; Deaths++; <jsonDataDeaths>5__1 = JsonSerializer.Serialize(Deaths, new JsonSerializerOptions { WriteIndented = true }); File.WriteAllText(DeathsJson, <jsonDataDeaths>5__1); <user>5__2 = userEntity.Read<User>(); FixedString64Bytes characterName = <user>5__2.CharacterName; <newName>5__3 = ((object)(FixedString64Bytes)(ref characterName)).ToString() + Deaths; if (LastWords.ContainsKey(<user>5__2.PlatformId) && Configuration.LastWords) { Helper.SendSystemMessageToAllClients(Core.Server.EntityManager, "<color=red>Last Words: <color=yellow>" + LastWords[<user>5__2.PlatformId]); LastWords.Remove(<user>5__2.PlatformId); <jsonData>5__8 = JsonSerializer.Serialize(LastWords, new JsonSerializerOptions { WriteIndented = true }); File.WriteAllText(LastWordsJson, <jsonData>5__8); <jsonData>5__8 = null; } Helper.SendSystemMessageToClient(Core.Server.EntityManager, <user>5__2, "<color=red>You Died! Your character and castle is being removed."); Helper.SendSystemMessageToClient(Core.Server.EntityManager, <user>5__2, "<color=red>You will be kicked from server in 5 seconds..."); <>2__current = (object)new WaitForSeconds(5f); <>1__state = 1; return true; } case 1: { <>1__state = -1; EntityManager entityManager = Core.Server.EntityManager; <entity>5__4 = ((EntityManager)(ref entityManager)).CreateEntity(Il2CppStructArray<ComponentType>.op_Implicit((ComponentType[])(object)new ComponentType[3] { ComponentType.ReadOnly<NetworkEventType>(), ComponentType.ReadOnly<SendEventToUser>(), ComponentType.ReadOnly<KickEvent>() })); <entity>5__4.Write<KickEvent>(new KickEvent { PlatformId = <user>5__2.PlatformId }); <entity>5__4.Write<SendEventToUser>(new SendEventToUser { UserIndex = <user>5__2.Index }); <entity>5__4.Write<NetworkEventType>(new NetworkEventType { EventId = NetworkEvents.EventId_KickEvent, IsAdminEvent = false, IsDebugEvent = false }); <user>5__2.PlatformId = 0uL; userEntity.Write<User>(<user>5__2); entityManager = Core.Server.EntityManager; <networkId>5__5 = ((EntityManager)(ref entityManager)).GetComponentData<NetworkId>(userEntity); <renameEvent>5__6 = new RenameUserDebugEvent { NewName = FixedString64Bytes.op_Implicit(<newName>5__3), Target = <networkId>5__5 }; <fromCharacter>5__7 = new FromCharacter { User = userEntity, Character = <user>5__2.LocalCharacter._Entity }; debugEventsSystem.RenameUser(<fromCharacter>5__7, <renameEvent>5__6); return false; } } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } private static MonoBehaviour monoBehaviour; private static HttpClient httpClient = new HttpClient(); public static ServerGameSettingsSystem serverGameSettingsSystem; public static DebugEventsSystem debugEventsSystem; public static Singleton networkIdSystem; public static string LastWordsJson = "BepInEx/config/NightbaneHardcore/LastWords.json"; public static string DeathsJson = "BepInEx/config/NightbaneHardcore/DeathsCount.json"; public static string ItemDropsJson = "BepInEx/config/NightbaneHardcore/ItemDropsConfirms.json"; public static Dictionary<ulong, string> LastWords = new Dictionary<ulong, string>(); public static List<ulong> ItemDropConfirms = new List<ulong>(); public static int Deaths = 0; public static bool PvPEnabled; public static half DefaultDropRate; public static bool HigherDropRateEnabled = false; public static bool Initialized = false; public static void Initialize() { //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Invalid comparison between Unknown and I4 //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) if (!Initialized) { serverGameSettingsSystem = Core.Server.GetExistingSystemManaged<ServerGameSettingsSystem>(); debugEventsSystem = Core.Server.GetExistingSystemManaged<DebugEventsSystem>(); ServerScriptMapper existingSystemManaged = Core.Server.GetExistingSystemManaged<ServerScriptMapper>(); networkIdSystem = ((ComponentSystemBase)existingSystemManaged).GetSingleton<Singleton>(); ServerGameBalanceSettings val = serverGameSettingsSystem._Settings.ToStruct(false); if ((int)val.GameModeType == 1) { PvPEnabled = true; } else { PvPEnabled = false; } DefaultDropRate = val.DropTableModifier_General; string path = "BepInEx/config/NightbaneHardcore"; Directory.CreateDirectory(path); File.AppendAllText(LastWordsJson, "{}"); File.AppendAllText(DeathsJson, "{}"); File.AppendAllText(ItemDropsJson, "{}"); LastWords = Helper.LoadJson<Dictionary<ulong, string>>(LastWordsJson); Deaths = Helper.LoadJson<int>(DeathsJson); ItemDropConfirms = Helper.LoadJson<List<ulong>>(ItemDropsJson); StartCoroutine(Helper.RepeatingCoroutine(delegate { PvPOnBloodmoon(); }, 2f)); Plugin.logger.LogInfo((object)"Initialized!"); Initialized = true; } } public static void HandleDropItem(FromCharacter fromCharacter, int slotIndex) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: 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_003d: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004c: 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_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) User val = fromCharacter.User.Read<User>(); if (!ItemDropConfirms.Contains(val.PlatformId)) { Helper.SendSystemMessageToClient(Core.Server.EntityManager, val, "<color=red>WARNING! item drops on ground is disabled in Hardcore Mode! If you want to remove your items, use <color=yellow>.dropenable<color=red> command, it will let you remove items instead of dropping."); return; } InventoryInstanceElement val2 = fromCharacter.Character.ReadBuffer<InventoryInstanceElement>()[0]; InventoryUtilitiesServer.ClearSlot(Core.Server.EntityManager, val2.ExternalInventoryEntity._Entity, slotIndex); } public static void HandleDropItemChest(Entity chestEntity, FromCharacter fromCharacter, int slotIndex) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: 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_003d: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) User val = fromCharacter.User.Read<User>(); if (!ItemDropConfirms.Contains(val.PlatformId)) { Helper.SendSystemMessageToClient(Core.Server.EntityManager, val, "<color=red>WARNING! item drops on ground is disabled in Hardcore Mode! If you want to remove your items, use <color=yellow>.dropenable<color=red> command, it will let you remove items instead of dropping."); return; } InventoryInstanceElement val2 = chestEntity.ReadBuffer<InventoryInstanceElement>()[0]; InventoryUtilitiesServer.ClearSlot(Core.Server.EntityManager, val2.ExternalInventoryEntity._Entity, slotIndex); } public static void HardcoreDeath(Entity deathEntity) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_0073: 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_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: 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_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: 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_0260: Unknown result type (might be due to invalid IL or missing references) //IL_0261: Unknown result type (might be due to invalid IL or missing references) //IL_0266: 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_0209: Unknown result type (might be due to invalid IL or missing references) //IL_020a: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_0164: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_016a: Unknown result type (might be due to invalid IL or missing references) //IL_02fc: Unknown result type (might be due to invalid IL or missing references) //IL_02fe: Unknown result type (might be due to invalid IL or missing references) //IL_0300: Unknown result type (might be due to invalid IL or missing references) //IL_0305: Unknown result type (might be due to invalid IL or missing references) //IL_0319: Unknown result type (might be due to invalid IL or missing references) //IL_0397: Unknown result type (might be due to invalid IL or missing references) //IL_03a4: Unknown result type (might be due to invalid IL or missing references) //IL_0335: Unknown result type (might be due to invalid IL or missing references) //IL_0353: Unknown result type (might be due to invalid IL or missing references) //IL_0355: Unknown result type (might be due to invalid IL or missing references) Entity val = default(Entity); VampireDownedServerEventSystem.TryFindRootOwner(deathEntity, 1, Core.Server.EntityManager, ref val); VampireDownedBuff val2 = deathEntity.Read<VampireDownedBuff>(); Entity val3 = default(Entity); VampireDownedServerEventSystem.TryFindRootOwner(val2.Source, 1, Core.Server.EntityManager, ref val3); bool flag = val3.Has<PlayerCharacter>(); Entity controller = val.Read<ControlledBy>().Controller; User val4 = controller.Read<User>(); Equipment val5 = val.Read<Equipment>(); float num = ModifiableFloat.op_Implicit(val5.ArmorLevel) + ModifiableFloat.op_Implicit(val5.SpellLevel) + ModifiableFloat.op_Implicit(val5.WeaponLevel); ServerScriptMapper existingSystemManaged = Core.Server.GetExistingSystemManaged<ServerScriptMapper>(); ServerGameManager serverGameManager = existingSystemManaged._ServerGameManager; if (flag && val3 != val) { Equipment val6 = val3.Read<Equipment>(); float num2 = ModifiableFloat.op_Implicit(val6.ArmorLevel) + ModifiableFloat.op_Implicit(val6.SpellLevel) + ModifiableFloat.op_Implicit(val6.WeaponLevel); if (Configuration.DiscordDeathlog) { string discordWebhookIDPvP = Configuration.DiscordWebhookIDPvP; string discordWebhookTokenPvP = Configuration.DiscordWebhookTokenPvP; List<object> list = new List<object>(); DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(25, 4); defaultInterpolatedStringHandler.AppendLiteral("Player "); PlayerCharacter val7 = val3.Read<PlayerCharacter>(); defaultInterpolatedStringHandler.AppendFormatted(((FixedString64Bytes)(ref val7.Name)).Value); defaultInterpolatedStringHandler.AppendLiteral(" ("); defaultInterpolatedStringHandler.AppendFormatted(Mathf.Floor(num2)); defaultInterpolatedStringHandler.AppendLiteral(") has slain "); defaultInterpolatedStringHandler.AppendFormatted<FixedString64Bytes>(val.Read<PlayerCharacter>().Name); defaultInterpolatedStringHandler.AppendLiteral(" ("); defaultInterpolatedStringHandler.AppendFormatted(Mathf.Floor(num)); defaultInterpolatedStringHandler.AppendLiteral(")!"); list.Add(new { title = "PvP Kill", description = defaultInterpolatedStringHandler.ToStringAndClear(), color = int.Parse("FF0000", NumberStyles.HexNumber) }); var value = new { embeds = list }; string requestUri = $"https://discordapp.com/api/webhooks/{discordWebhookIDPvP}/{discordWebhookTokenPvP}"; StringContent content = new StringContent(JsonSerializer.Serialize(value), Encoding.UTF8, "application/json"); httpClient.PostAsync(requestUri, content); } StatChangeUtility.KillEntity(Core.Server.EntityManager, val, serverGameManager.ServerTime, (StatChangeReason)1); } else if (Configuration.DiscordDeathlog) { string discordWebhookID = Configuration.DiscordWebhookID; string discordWebhookToken = Configuration.DiscordWebhookToken; var value2 = new { embeds = new List<object> { new { title = "PvE Death", description = $"Player {val.Read<PlayerCharacter>().Name} has died at level {Mathf.Floor(num)}!", color = int.Parse("FF0000", NumberStyles.HexNumber) } } }; string requestUri2 = $"https://discordapp.com/api/webhooks/{discordWebhookID}/{discordWebhookToken}"; StringContent content2 = new StringContent(JsonSerializer.Serialize(value2), Encoding.UTF8, "application/json"); httpClient.PostAsync(requestUri2, content2); } Helper.TeleportUser(controller, val4.LocalCharacter._Entity, new float3(-2016.0348f, 5f, -2778.0544f)); if (Configuration.AnnounceDeaths) { Helper.SendSystemMessageToAllClients(Core.Server.EntityManager, $"<color=red><size=20>Vampire {val4.CharacterName} Has died at level {Mathf.Floor(num)}!"); } StartCoroutine(KickPlayerWithDelay(controller)); StartCoroutine(DestroyCastleOnDeath(controller)); } public static Coroutine StartCoroutine(IEnumerator routine) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown if ((Object)(object)monoBehaviour == (Object)null) { GameObject val = new GameObject("NightbaneHardcore"); monoBehaviour = (MonoBehaviour)(object)val.AddComponent<IgnorePhysicsDebugSystem>(); Object.DontDestroyOnLoad((Object)(object)val); } return monoBehaviour.StartCoroutine(CollectionExtensions.WrapToIl2Cpp(routine)); } [IteratorStateMachine(typeof(<KickPlayerWithDelay>d__21))] public static IEnumerator KickPlayerWithDelay(Entity userEntity) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <KickPlayerWithDelay>d__21(0) { userEntity = userEntity }; } [IteratorStateMachine(typeof(<DestroyCastleOnDeath>d__22))] public static IEnumerator DestroyCastleOnDeath(Entity userEntity) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <DestroyCastleOnDeath>d__22(0) { userEntity = userEntity }; } public static void PvPOnBloodmoon() { //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_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_0186: Unknown result type (might be due to invalid IL or missing references) //IL_0190: Unknown result type (might be due to invalid IL or missing references) //IL_0195: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_019a: Unknown result type (might be due to invalid IL or missing references) //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_0133: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_013c: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_014a: Unknown result type (might be due to invalid IL or missing references) //IL_01c0: Unknown result type (might be due to invalid IL or missing references) //IL_01ca: Unknown result type (might be due to invalid IL or missing references) //IL_01cf: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: Unknown result type (might be due to invalid IL or missing references) //IL_01d4: Unknown result type (might be due to invalid IL or missing references) ServerScriptMapper existingSystemManaged = Core.Server.GetExistingSystemManaged<ServerScriptMapper>(); ServerGameManager serverGameManager = existingSystemManaged._ServerGameManager; bool flag = ((DayNightCycle)(ref serverGameManager.DayNightCycle)).IsBloodMoonDay(); Entity val = Helper.GetEntitiesByComponentType<ServerGameBalanceSettings>()[0]; ServerGameBalanceSettings val2 = serverGameSettingsSystem._Settings.ToStruct(false); float timeSinceDayStart = ((DayNightCycle)(ref serverGameManager.DayNightCycle)).TimeSinceDayStart; if (timeSinceDayStart < 361f && flag) { return; } EntityManager entityManager; if (Configuration.HigherDropOnBloodmoon) { if (flag && !HigherDropRateEnabled) { HigherDropRateEnabled = true; val2.DropTableModifier_General = (half)(float)Configuration.DropRateOnBloodmoon; entityManager = Core.Server.EntityManager; ((EntityManager)(ref entityManager)).SetComponentData<ServerGameBalanceSettings>(val, val2); Helper.SendSystemMessageToAllClients(Core.Server.EntityManager, $"<color=red>The Blood Moon rises, X{Configuration.DropRateOnBloodmoon} Drop Rate is now ACTIVE!"); } else if (!flag && HigherDropRateEnabled) { HigherDropRateEnabled = false; val2.DropTableModifier_General = DefaultDropRate; entityManager = Core.Server.EntityManager; ((EntityManager)(ref entityManager)).SetComponentData<ServerGameBalanceSettings>(val, val2); Helper.SendSystemMessageToAllClients(Core.Server.EntityManager, "<color=green>The Blood Moon fades, drop rates are back to normal."); } } if (Configuration.PvPOnBloodmoon) { if (flag && !PvPEnabled) { PvPEnabled = true; val2.GameModeType = (GameModeType)1; entityManager = Core.Server.EntityManager; ((EntityManager)(ref entityManager)).SetComponentData<ServerGameBalanceSettings>(val, val2); } else if (!flag && PvPEnabled) { PvPEnabled = false; val2.GameModeType = (GameModeType)0; entityManager = Core.Server.EntityManager; ((EntityManager)(ref entityManager)).SetComponentData<ServerGameBalanceSettings>(val, val2); } } } [Command("dropenable", null, null, null, null, false)] public static void DropEnableCommand(ChatCommandContext ctx) { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) if (ItemDropConfirms.Contains(ctx.Event.User.PlatformId)) { ctx.Reply("<color=red>Item removing is already enabled! Use .dropdisable command to disable it."); return; } ItemDropConfirms.Add(ctx.Event.User.PlatformId); string contents = JsonSerializer.Serialize(ItemDropConfirms, new JsonSerializerOptions { WriteIndented = true }); File.WriteAllText(ItemDropsJson, contents); ctx.Reply("<color=green>Item removing is now enabled! Use .dropdisable command to disable it."); } [Command("dropdisable", null, null, null, null, false)] public static void DropDisableCommand(ChatCommandContext ctx) { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) if (!ItemDropConfirms.Contains(ctx.Event.User.PlatformId)) { ctx.Reply("<color=red>Item removing is already disabled! Use .dropenable command to enable it."); return; } ItemDropConfirms.Remove(ctx.Event.User.PlatformId); string contents = JsonSerializer.Serialize(ItemDropConfirms, new JsonSerializerOptions { WriteIndented = true }); File.WriteAllText(ItemDropsJson, contents); ctx.Reply("<color=green>Item removing is now disabled! Use .dropenable command to enable it again."); } } public static class Helper { [CompilerGenerated] private sealed class <RepeatingCoroutine>d__0 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public Action action; public float delay; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <RepeatingCoroutine>d__0(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; break; case 1: <>1__state = -1; action?.Invoke(); break; } <>2__current = (object)new WaitForSeconds(delay); <>1__state = 1; return true; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [IteratorStateMachine(typeof(<RepeatingCoroutine>d__0))] public static IEnumerator RepeatingCoroutine(Action action, float delay) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <RepeatingCoroutine>d__0(0) { action = action, delay = delay }; } public static void SendSystemMessageToClient(EntityManager entityManager, User user, string message) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) FixedString512Bytes val = FixedString512Bytes.op_Implicit(message); ServerChatUtils.SendSystemMessageToClient(entityManager, user, ref val); } public static void SendSystemMessageToAllClients(EntityManager entityManager, string message) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) FixedString512Bytes val = FixedString512Bytes.op_Implicit(message); ServerChatUtils.SendSystemMessageToAllClients(entityManager, ref val); } public static void TeleportUser(Entity User, Entity Character, float3 position) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0050: 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) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_006b: 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_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) EntityManager entityManager = Core.Server.EntityManager; Entity val = ((EntityManager)(ref entityManager)).CreateEntity(Il2CppStructArray<ComponentType>.op_Implicit((ComponentType[])(object)new ComponentType[2] { ComponentType.ReadOnly<FromCharacter>(), ComponentType.ReadOnly<PlayerTeleportDebugEvent>() })); FromCharacter val2 = default(FromCharacter); val2.Character = Character; val2.User = User; FromCharacter val3 = val2; entityManager = Core.Server.EntityManager; ((EntityManager)(ref entityManager)).SetComponentData<FromCharacter>(val, val3); entityManager = Core.Server.EntityManager; ((EntityManager)(ref entityManager)).SetComponentData<PlayerTeleportDebugEvent>(val, new PlayerTeleportDebugEvent { Position = position, Target = (TeleportTarget)0 }); } public static NativeArray<Entity> GetEntitiesByComponentType<T1>(bool includeAll = false, bool includeDisabled = false, bool includeSpawn = false, bool includePrefab = false, bool includeDestroyed = false) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Expected O, but got Unknown //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: 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_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) EntityQueryOptions val = (EntityQueryOptions)0; if (includeAll) { val = (EntityQueryOptions)(val | 0xC3); } if (includeDisabled) { val = (EntityQueryOptions)(val | 2); } if (includeSpawn) { val = (EntityQueryOptions)(val | 0x40); } if (includePrefab) { val = (EntityQueryOptions)(val | 1); } if (includeDestroyed) { val = (EntityQueryOptions)(val | 0x80); } EntityQueryDesc val2 = new EntityQueryDesc(); val2.All = Il2CppStructArray<ComponentType>.op_Implicit((ComponentType[])(object)new ComponentType[1] { new ComponentType(Il2CppType.Of<T1>(), (AccessMode)0) }); val2.Options = val; EntityQueryDesc val3 = val2; EntityManager entityManager = Core.Server.EntityManager; EntityQuery val4 = ((EntityManager)(ref entityManager)).CreateEntityQuery(Il2CppStructArray<ComponentType>.op_Implicit((ComponentType[])(object)new ComponentType[1] { new ComponentType(Il2CppType.Of<T1>(), (AccessMode)0) })); return ((EntityQuery)(ref val4)).ToEntityArray(AllocatorHandle.op_Implicit((Allocator)2)); } public static T LoadJson<T>(string filePath) where T : new() { //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Expected O, but got Unknown if (!File.Exists(filePath)) { return new T(); } try { string json = File.ReadAllText(filePath); T val = JsonSerializer.Deserialize<T>(json, new JsonSerializerOptions { WriteIndented = true }); return (val != null) ? val : new T(); } catch (Exception ex) { ManualLogSource logger = Plugin.logger; bool flag = default(bool); BepInExErrorLogInterpolatedStringHandler val2 = new BepInExErrorLogInterpolatedStringHandler(46, 2, ref flag); if (flag) { ((BepInExLogInterpolatedStringHandler)val2).AppendLiteral("[NightbaneHardcore] Error loading JSON from "); ((BepInExLogInterpolatedStringHandler)val2).AppendFormatted<string>(filePath); ((BepInExLogInterpolatedStringHandler)val2).AppendLiteral(": "); ((BepInExLogInterpolatedStringHandler)val2).AppendFormatted<string>(ex.Message); } logger.LogError(val2); return new T(); } } } [BepInPlugin("NightbaneHardcore", "NightbaneHardcore", "1.0.6")] public class Plugin : BasePlugin { private Harmony _harmony; public static ManualLogSource logger; public override void Load() { //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Expected O, but got Unknown //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Expected O, but got Unknown logger = ((BasePlugin)this).Log; ManualLogSource log = ((BasePlugin)this).Log; bool flag = default(bool); BepInExInfoLogInterpolatedStringHandler val = new BepInExInfoLogInterpolatedStringHandler(27, 2, ref flag); if (flag) { ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Plugin "); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted<string>("NightbaneHardcore"); ((BepInExLogInterpolatedStringHandler)val).AppendLiteral(" version "); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted<string>("1.0.6"); ((BepInExLogInterpolatedStringHandler)val).AppendLiteral(" is loaded!"); } log.LogInfo(val); _harmony = new Harmony("NightbaneHardcore"); _harmony.PatchAll(Assembly.GetExecutingAssembly()); CommandRegistry.RegisterAll(); Configuration.InitConfig(((BasePlugin)this).Config); } public override bool Unload() { CommandRegistry.UnregisterAssembly(); Harmony harmony = _harmony; if (harmony != null) { harmony.UnpatchSelf(); } return true; } } public static class MyPluginInfo { public const string PLUGIN_GUID = "NightbaneHardcore"; public const string PLUGIN_NAME = "NightbaneHardcore"; public const string PLUGIN_VERSION = "1.0.6"; } }