using System.Reflection; using Game; using HarmonyLib; using Manager; using Rizu.Core; namespace Rizu.BepInEx; [HarmonyPatch(typeof(GameScoreList))] public class PatchGameScoreList { // New field introduced in SDEZ 1.40 (maimai DX BUDDiES) private static readonly FieldInfo UtageKanjiTextField = typeof(SessionInfo) .GetField("utageKanjiText", BindingFlags.Instance | BindingFlags.Public); // ReSharper disable once InconsistentNaming [HarmonyPatch(nameof(GameScoreList.SetPlayAfterRate))] [HarmonyPostfix] private static void SetPlayAfterRatePostfix(GameScoreList __instance, int musicRate, int danRate, UdemaeID dan, int classValue) { if (!__instance.IsEnable) { return; } if (__instance.SessionInfo.isAdvDemo || __instance.SessionInfo.isTutorial) { return; } if (UtageKanjiTextField != null && !string.IsNullOrEmpty((string)UtageKanjiTextField.GetValue(__instance.SessionInfo))) { return; } RizuPlugin.Instance.StartCoroutine(Exporter.Instance.ExportScore(__instance)); } }