The BepInEx console will not appear when launching like it does for other games on Thunderstore (you can turn it back on in your BepInEx.cfg file). If your PEAK crashes on startup, add -dx12 to your launch parameters.
Decompiled source of laba v0.1.2
plugins/com.github.CaviarSP.laba.dll
Decompiled a month agousing System; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Logging; using HarmonyLib; using Microsoft.CodeAnalysis; using Photon.Pun; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("com.github.CaviarSP.laba")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("0.1.2.0")] [assembly: AssemblyInformationalVersion("0.1.2")] [assembly: AssemblyProduct("com.github.CaviarSP.laba")] [assembly: AssemblyTitle("laba")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("0.1.2.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 BepInEx { [AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)] [Conditional("CodeGeneration")] internal sealed class BepInAutoPluginAttribute : Attribute { public BepInAutoPluginAttribute(string? id = null, string? name = null, string? version = null) { } } } namespace BepInEx.Preloader.Core.Patching { [AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)] [Conditional("CodeGeneration")] internal sealed class PatcherAutoPluginAttribute : Attribute { public PatcherAutoPluginAttribute(string? id = null, string? name = null, string? version = null) { } } } namespace laba { public class BuglePitcher : MonoBehaviourPun { private BugleSFX bugleSFX; private Item bugleItem; private void Awake() { Debug.Log((object)"BuglePitcher 被添加上了!"); } private void Start() { bugleSFX = ((Component)this).gameObject.GetComponent<BugleSFX>(); bugleItem = Traverse.Create((object)bugleSFX).Field("item").GetValue<Item>(); } private void Update() { //IL_0044: 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) if ((Object)(object)bugleSFX == (Object)null || (Object)(object)bugleItem == (Object)null) { Debug.Log((object)"找不到BugleSFX or bugleItem "); } else if (bugleItem.isUsingPrimary) { float num = Vector3.Dot(bugleItem.holderCharacter.data.lookDirection, Vector3.up); num = (num + 1f) / 2f; bugleSFX.currentPitch = num; ((MonoBehaviourPun)this).photonView.RPC("RPC_SyncPitch", (RpcTarget)0, new object[1] { num }); } } [PunRPC] private void RPC_SyncPitch(float pitch) { bugleSFX.currentPitch = pitch; bugleSFX.buglePlayer.pitch = Mathf.Lerp(bugleSFX.pitchMin, bugleSFX.pitchMax, bugleSFX.currentPitch); } } [HarmonyPatch(typeof(BugleSFX))] internal class BuglePatch { [HarmonyPostfix] [HarmonyPatch(typeof(BugleSFX), "Start")] private static void Postfix_Start(BugleSFX __instance) { if ((Object)(object)__instance == (Object)null) { Plugin.Log.LogError((object)"[Postfix_Start] __instance 是 null"); return; } ((Component)__instance).gameObject.AddComponent<BuglePitcher>(); Debug.Log((object)"已自动挂载 ModComponent"); } } [BepInPlugin("com.github.CaviarSP.laba", "laba", "0.1.2")] public class Plugin : BaseUnityPlugin { public const string Id = "com.github.CaviarSP.laba"; internal static ManualLogSource Log { get; private set; } public static string Name => "laba"; public static string Version => "0.1.2"; private void Awake() { //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Expected O, but got Unknown Log = ((BaseUnityPlugin)this).Logger; Log.LogInfo((object)"Plugin laba is loaded!"); Harmony val = new Harmony("com.github.CaviarSP.laba"); val.PatchAll(); Log.LogInfo((object)"插件启动成功,Patch 已加载!"); } private void Update() { } } } namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] internal sealed class IgnoresAccessChecksToAttribute : Attribute { public IgnoresAccessChecksToAttribute(string assemblyName) { } } }