Files
Sinmai-Assist/Common/PrintUserData.cs
2025-10-13 18:18:47 +08:00

86 lines
4.7 KiB
C#

using HarmonyLib;
using MAI2.Util;
using Manager;
using Manager.UserDatas;
using Process;
using System.IO;
namespace SinmaiAssist.Common;
public class PrintUserData
{
[HarmonyPostfix]
[HarmonyPatch(typeof(MusicSelectProcess), "OnStart")]
public static void Postifx()
{
PrintData(Singleton<UserDataManager>.Instance.GetUserData(0L).Detail);
PrintData(Singleton<UserDataManager>.Instance.GetUserData(1L).Detail);
}
private static void PrintData(UserDetail detail)
{
string userData = string.Empty;
userData += "[General]\n";
userData = userData + "AccessCode: " + detail.AccessCode + "\n";
userData = userData + "UserID: " + detail.UserID + "\n";
userData = userData + "Name: " + detail.UserName + "\n";
userData = userData + "AuthKey: " + detail.AuthKey + "\n";
userData = userData + "PlayCount: " + detail.PlayCount + "\n";
userData = userData + "TotalAwake: " + detail.TotalAwake + "\n";
userData += "[Rating]\n";
userData = userData + "Rating: " + detail.Rating + "\n";
userData = userData + "HighestRating: " + detail.HighestRating + "\n";
userData = userData + "MusicRating: " + detail.MusicRating + "\n";
userData = userData + "GradeRating: " + detail.GradeRating + "\n";
userData = userData + "GradeRank: " + detail.GradeRank + "\n";
userData += "[Game]\n";
userData = userData + "TotalAchievement: " + detail.TotalAchievement + "\n";
userData = userData + "TotalDeluxeScore: " + detail.TotalDeluxscore + "\n";
userData = userData + "TotalSync: " + detail.TotalSync + "\n";
userData = userData + "ComboCount: " + detail.ComboCount + "\n";
userData = userData + "AuthKey: " + detail.AuthKey + "\n";
userData = userData + "WinCount: " + detail.WinCount + "\n";
userData = userData + "HelpCount: " + detail.HelpCount + "\n";
userData = userData + "PlayVsCount: " + detail.PlayVsCount + "\n";
userData = userData + "PlaySyncCount: " + detail.PlaySyncCount + "\n";
userData = userData + "EquipIconID: " + detail.EquipIconID + "\n";
userData = userData + "EquipTitleID: " + detail.EquipTitleID + "\n";
userData = userData + "EquipPlateID: " + detail.EquipPlateID + "\n";
userData = userData + "SelectMapID: " + detail.SelectMapID + "\n";
userData += "[Log]\n";
userData = userData + "TotalLoginCount: " + detail.TotalLoginCount + "\n";
userData = userData + "ContinueLoginCount: " + detail.ContinueLoginCount + "\n";
userData = userData + "LastLoginDate: " + detail.LastLoginDate + "\n";
userData = userData + "LastPlayDate: " + detail.LastPlayDate + "\n";
userData = userData + "FirstPlayDate: " + detail.FirstPlayDate + "\n";
userData = userData + "DailyBounsDate: " + detail.DailyBonusDate + "\n";
userData = userData + "EventWatchedDate: " + detail.EventWatchedDate + "\n";
userData += "[System]\n";
userData = userData + "LastGameID: " + detail.LastGameId + "\n";
userData = userData + "LastROMVersion: " + detail.LastRomVersion + "\n";
userData = userData + "LastDataVersion: " + detail.LastDataVersion + "\n";
userData = userData + "LastRegionID: " + detail.LastRegionId + "\n";
userData = userData + "LastRegionName: " + detail.LastRegionName + "\n";
userData = userData + "LastPlaceID: " + detail.LastPlaceId + "\n";
userData = userData + "LastPlaceName: " + detail.LastPlaceName + "\n";
userData = userData + "LastAllNetID: " + detail.LastAllNetId + "\n";
userData = userData + "LastClientID: " + detail.LastClientId + "\n";
userData = userData + "LastCountryCode: " + detail.LastCountryCode + "\n";
userData = userData + "FirstGameID: " + detail.FirstGameId + "\n";
userData = userData + "FirstRomVersion: " + detail.FirstRomVersion + "\n";
userData = userData + "FirstDataVersion: " + detail.FirstDataVersion + "\n";
userData = userData + "CompatibleCMVersion: " + detail.CompatibleCmVersion + "\n";
userData = userData + "IsNetMember: " + detail.IsNetMember + "\n";
userData += $"Data generated by {BuildInfo.Name}";
if (!Directory.Exists(Path.Combine($"{BuildInfo.Name}/UserData")))
{
Directory.CreateDirectory($"{BuildInfo.Name}/UserData");
}
if (!File.Exists(Path.Combine($"{BuildInfo.Name}/UserData/User" + detail.UserID + ".txt")))
{
File.Create(Path.Combine($"{BuildInfo.Name}/UserData/User" + detail.UserID + ".txt")).Dispose();
}
File.WriteAllText(Path.Combine($"{BuildInfo.Name}/UserData/User" + detail.UserID + ".txt"), userData);
}
}