using 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.Configuration; using BepInEx.Core.Logging.Interpolation; using BepInEx.Logging; using BepInEx.Unity.IL2CPP; using Fishing; using HarmonyLib; using Microsoft.CodeAnalysis; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETCoreApp,Version=v6.0", FrameworkDisplayName = ".NET 6.0")] [assembly: AssemblyCompany("InstantHook")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("InstantHook")] [assembly: AssemblyTitle("InstantHook")] [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.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace InstantHook { [BepInPlugin("com.voodoofishin.instanthook", "Instant Hook", "2.0.0")] public class Plugin : BasePlugin { public const string PluginGuid = "com.voodoofishin.instanthook"; public const string PluginName = "Instant Hook"; public const string PluginVersion = "2.0.0"; internal static ManualLogSource Logger; internal static ConfigEntry Enabled; internal static ConfigEntry MinBiteDelay; internal static ConfigEntry MaxBiteDelay; internal static ConfigEntry VerboseLogging; public override void Load() { //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Expected O, but got Unknown //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Expected O, but got Unknown //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Expected O, but got Unknown //IL_0128: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Expected O, but got Unknown //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Expected O, but got Unknown Logger = ((BasePlugin)this).Log; Enabled = ((BasePlugin)this).Config.Bind("General", "Enabled", true, "Master switch. When true, the random 'wait for a fish to bite' delay is removed."); MinBiteDelay = ((BasePlugin)this).Config.Bind("General", "MinBiteDelay", 0f, new ConfigDescription("Minimum seconds before a fish bites after your bobber lands. 0 = bites as soon as the game allows. The bite, hook-set and fight all stay normal.", (AcceptableValueBase)(object)new AcceptableValueRange(0f, 30f), Array.Empty())); MaxBiteDelay = ((BasePlugin)this).Config.Bind("General", "MaxBiteDelay", 0.1f, new ConfigDescription("Maximum seconds before a fish bites. Keep this at or just above MinBiteDelay. A tiny value like 0.1 is recommended over a hard 0 so the game's bite routine has one frame to set everything up.", (AcceptableValueBase)(object)new AcceptableValueRange(0f, 30f), Array.Empty())); VerboseLogging = ((BasePlugin)this).Config.Bind("Debug", "VerboseLogging", false, "Log when the bite delays are overridden."); Harmony val = new Harmony("com.voodoofishin.instanthook"); bool flag = default(bool); try { val.PatchAll(); ManualLogSource logger = Logger; BepInExInfoLogInterpolatedStringHandler val2 = new BepInExInfoLogInterpolatedStringHandler(27, 2, ref flag); if (flag) { ((BepInExLogInterpolatedStringHandler)val2).AppendFormatted("Instant Hook"); ((BepInExLogInterpolatedStringHandler)val2).AppendLiteral(" v"); ((BepInExLogInterpolatedStringHandler)val2).AppendFormatted("2.0.0"); ((BepInExLogInterpolatedStringHandler)val2).AppendLiteral(" loaded. Patches applied."); } logger.LogInfo(val2); } catch (Exception ex) { ManualLogSource logger2 = Logger; BepInExErrorLogInterpolatedStringHandler val3 = new BepInExErrorLogInterpolatedStringHandler(33, 1, ref flag); if (flag) { ((BepInExLogInterpolatedStringHandler)val3).AppendLiteral("Failed to apply Harmony patches: "); ((BepInExLogInterpolatedStringHandler)val3).AppendFormatted(ex); } logger2.LogError(val3); } } } [HarmonyPatch(typeof(FishingManager), "Awake")] internal static class FishingManagerPatch { [HarmonyPostfix] private static void Postfix(FishingManager __instance) { //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Expected O, but got Unknown try { if (Plugin.Enabled.Value) { Apply(__instance, "Awake"); } } catch (Exception ex) { ManualLogSource logger = Plugin.Logger; bool flag = default(bool); BepInExErrorLogInterpolatedStringHandler val = new BepInExErrorLogInterpolatedStringHandler(33, 1, ref flag); if (flag) { ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("InstantHook Awake postfix error: "); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted(ex.Message); } logger.LogError(val); } } internal static void Apply(FishingManager mgr, string where) { //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Expected O, but got Unknown if ((Object)(object)mgr == (Object)null) { return; } float value = Plugin.MinBiteDelay.Value; float num = Plugin.MaxBiteDelay.Value; if (num < value) { num = value; } mgr._minFishBiteDelay = value; mgr._maxFishBiteDelay = num; if (Plugin.VerboseLogging.Value) { ManualLogSource logger = Plugin.Logger; bool flag = default(bool); BepInExInfoLogInterpolatedStringHandler val = new BepInExInfoLogInterpolatedStringHandler(44, 3, ref flag); if (flag) { ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("InstantHook: bite delay set to ["); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted(value, "0.###"); ((BepInExLogInterpolatedStringHandler)val).AppendLiteral(".."); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted(num, "0.###"); ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("]s (via "); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted(where); ((BepInExLogInterpolatedStringHandler)val).AppendLiteral(")."); } logger.LogInfo(val); } } } [HarmonyPatch(typeof(FishingManager), "StartLookingForFishServerRpc")] internal static class FishingManagerStartPatch { [HarmonyPrefix] private static void Prefix(FishingManager __instance) { //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Expected O, but got Unknown try { if (Plugin.Enabled.Value) { FishingManagerPatch.Apply(__instance, "StartLookingForFish"); } } catch (Exception ex) { ManualLogSource logger = Plugin.Logger; bool flag = default(bool); BepInExErrorLogInterpolatedStringHandler val = new BepInExErrorLogInterpolatedStringHandler(32, 1, ref flag); if (flag) { ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("InstantHook Start prefix error: "); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted(ex.Message); } logger.LogError(val); } } } }