AquaDX/AquaMai/AquaMai.Mods/Fix/Common.cs

140 lines
3.9 KiB
C#
Raw Normal View History

using System.Net;
using HarmonyLib;
2024-07-09 18:11:06 +08:00
using Manager;
2024-08-04 12:27:09 +08:00
using Net;
2024-07-27 05:47:45 +08:00
using UnityEngine;
using AquaMai.Config.Attributes;
using AquaMai.Core.Attributes;
2024-07-09 18:11:06 +08:00
namespace AquaMai.Mods.Fix;
2024-07-09 18:11:06 +08:00
[ConfigSection(exampleHidden: true, defaultOn: true)]
public class Common
2024-07-09 18:11:06 +08:00
{
[ConfigEntry]
private readonly static bool preventIniFileClear = true;
[EnableIf(nameof(preventIniFileClear))]
2024-07-09 18:11:06 +08:00
[HarmonyPrefix]
2024-07-26 23:24:42 +08:00
[HarmonyPatch(typeof(MAI2System.IniFile), "clear")]
2024-07-09 18:11:06 +08:00
private static bool PreIniFileClear()
{
return false;
}
[ConfigEntry]
private readonly static bool fixDebugInput = true;
[EnableIf(nameof(fixDebugInput))]
2024-07-27 05:47:45 +08:00
[HarmonyPrefix]
[HarmonyPatch(typeof(DebugInput), "GetKey")]
private static bool GetKey(ref bool __result, KeyCode name)
{
__result = UnityEngine.Input.GetKey(name);
return false;
}
[EnableIf(nameof(fixDebugInput))]
2024-07-27 05:47:45 +08:00
[HarmonyPrefix]
[HarmonyPatch(typeof(DebugInput), "GetKeyDown")]
private static bool GetKeyDown(ref bool __result, KeyCode name)
{
__result = UnityEngine.Input.GetKeyDown(name);
return false;
}
[EnableIf(nameof(fixDebugInput))]
2024-07-27 05:47:45 +08:00
[HarmonyPrefix]
[HarmonyPatch(typeof(DebugInput), "GetMouseButton")]
private static bool GetMouseButton(ref bool __result, int button)
{
__result = UnityEngine.Input.GetMouseButton(button);
return false;
}
[EnableIf(nameof(fixDebugInput))]
2024-07-27 05:47:45 +08:00
[HarmonyPrefix]
[HarmonyPatch(typeof(DebugInput), "GetMouseButtonDown")]
private static bool GetMouseButtonDown(ref bool __result, int button)
{
__result = UnityEngine.Input.GetMouseButtonDown(button);
return false;
}
2024-08-04 12:27:09 +08:00
[ConfigEntry]
private readonly static bool bypassCakeHashCheck = true;
[EnableIf(nameof(bypassCakeHashCheck))]
[HarmonyPostfix]
[HarmonyPatch(typeof(NetHttpClient), MethodType.Constructor)]
private static void OnNetHttpClientConstructor(NetHttpClient __instance)
2024-10-03 16:40:51 +08:00
{
// Bypass Cake.dll hash check
var tInstance = Traverse.Create(__instance).Field("isTrueDll");
if (tInstance.FieldExists())
{
tInstance.SetValue(true);
}
}
[ConfigEntry]
private readonly static bool restoreCertificateValidation = true;
[EnableIf(nameof(restoreCertificateValidation))]
[HarmonyPostfix]
[HarmonyPatch(typeof(NetHttpClient), "Create")]
private static void OnNetHttpClientCreate()
{
// Unset the certificate validation callback (SSL pinning) to restore the default behavior
ServicePointManager.ServerCertificateValidationCallback = null;
2024-10-03 16:40:51 +08:00
}
2024-10-24 01:15:55 +08:00
[ConfigEntry]
private readonly static bool forceNonTarget = true;
[EnableIf(nameof(forceNonTarget))]
2024-11-21 18:47:13 +08:00
[HarmonyPrefix]
2024-11-21 01:53:12 +08:00
[HarmonyPatch(typeof(MAI2System.Config), "IsTarget", MethodType.Getter)]
private static bool PreIsTarget(ref bool __result)
2024-11-20 02:46:41 +08:00
{
// Who is teaching others to set `Target = 1`?!
2024-11-20 02:46:41 +08:00
__result = false;
return false;
}
[ConfigEntry]
private readonly static bool forceIgnoreError = true;
[EnableIf(nameof(forceIgnoreError))]
2024-11-21 18:47:13 +08:00
[HarmonyPrefix]
2024-11-21 01:53:12 +08:00
[HarmonyPatch(typeof(MAI2System.Config), "IsIgnoreError", MethodType.Getter)]
private static bool PreIsIgnoreError(ref bool __result)
2024-11-20 04:06:15 +08:00
{
__result = true;
return false;
}
[ConfigEntry]
private readonly static bool bypassSpecialNumCheck = true;
public static void OnAfterPatch(HarmonyLib.Harmony h)
2024-10-24 01:15:55 +08:00
{
if (bypassSpecialNumCheck)
{
if (typeof(GameManager).GetMethod("CalcSpecialNum") is null) return;
h.PatchAll(typeof(CalcSpecialNumPatch));
}
2024-10-24 01:15:55 +08:00
}
private class CalcSpecialNumPatch
{
[HarmonyPrefix]
[HarmonyPatch(typeof(GameManager), "CalcSpecialNum")]
private static bool CalcSpecialNum(ref int __result)
{
__result = 1024;
return false;
}
}
2024-07-09 18:11:06 +08:00
}