mirror of https://github.com/hykilpikonna/AquaDX
[+] New APIs
Build AquaMai / build (push) Has been cancelled
Details
Build AquaMai / build (push) Has been cancelled
Details
parent
f3bebc6fa2
commit
80536ef4fb
|
@ -1,8 +1,11 @@
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using HarmonyLib;
|
using HarmonyLib;
|
||||||
using MAI2.Util;
|
using MAI2.Util;
|
||||||
using Manager;
|
using Manager;
|
||||||
|
using Manager.UserDatas;
|
||||||
using Net.Packet;
|
using Net.Packet;
|
||||||
using Net.Packet.Mai2;
|
using Net.Packet.Mai2;
|
||||||
|
|
||||||
|
@ -64,4 +67,24 @@ public static class Shim
|
||||||
throw new MissingMethodException("No matching PacketUpsertUserAll constructor found");
|
throw new MissingMethodException("No matching PacketUpsertUserAll constructor found");
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
public static IEnumerable<UserScore>[] GetUserScoreList(UserData userData)
|
||||||
|
{
|
||||||
|
var tUserData = Traverse.Create(userData);
|
||||||
|
|
||||||
|
var tScoreList = tUserData.Property("ScoreList");
|
||||||
|
if (tScoreList.PropertyExists())
|
||||||
|
{
|
||||||
|
return tScoreList.GetValue<List<UserScore>[]>();
|
||||||
|
}
|
||||||
|
|
||||||
|
var tScoreDic = tUserData.Property("ScoreDic");
|
||||||
|
if (tScoreDic.PropertyExists())
|
||||||
|
{
|
||||||
|
var scoreDic = tScoreDic.GetValue<Dictionary<int, UserScore>[]>();
|
||||||
|
return scoreDic.Select(dic => dic.Values).ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new MissingFieldException("No matching UserData.ScoreList/ScoreDic found");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,8 +3,6 @@ using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using AquaMai.Helpers;
|
using AquaMai.Helpers;
|
||||||
using AquaMai.Resources;
|
using AquaMai.Resources;
|
||||||
using AquaMai.Utils;
|
|
||||||
using CriAtomDebugDetail;
|
|
||||||
using DB;
|
using DB;
|
||||||
using HarmonyLib;
|
using HarmonyLib;
|
||||||
using MAI2.Util;
|
using MAI2.Util;
|
||||||
|
@ -16,7 +14,6 @@ using MelonLoader;
|
||||||
using Monitor.Entry.Parts.Screens;
|
using Monitor.Entry.Parts.Screens;
|
||||||
using Net.Packet;
|
using Net.Packet;
|
||||||
using Net.Packet.Helper;
|
using Net.Packet.Helper;
|
||||||
using Net.Packet.Mai2;
|
|
||||||
using Process;
|
using Process;
|
||||||
using Process.UserDataNet.State.UserDataULState;
|
using Process.UserDataNet.State.UserDataULState;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
@ -109,7 +106,6 @@ public class ImmediateSave
|
||||||
private static void SaveDataFix(UserData userData)
|
private static void SaveDataFix(UserData userData)
|
||||||
{
|
{
|
||||||
UserDetail detail = userData.Detail;
|
UserDetail detail = userData.Detail;
|
||||||
_ = userData.ScoreList;
|
|
||||||
detail.EventWatchedDate = TimeManager.GetDateString(TimeManager.PlayBaseTime);
|
detail.EventWatchedDate = TimeManager.GetDateString(TimeManager.PlayBaseTime);
|
||||||
userData.CalcTotalValue();
|
userData.CalcTotalValue();
|
||||||
float num = 0f;
|
float num = 0f;
|
||||||
|
@ -147,7 +143,7 @@ public class ImmediateSave
|
||||||
|
|
||||||
List<UserRate> list = new List<UserRate>();
|
List<UserRate> list = new List<UserRate>();
|
||||||
List<UserRate> list2 = new List<UserRate>();
|
List<UserRate> list2 = new List<UserRate>();
|
||||||
List<UserScore>[] scoreList = userData.ScoreList;
|
IEnumerable<UserScore>[] scoreList = Shim.GetUserScoreList(userData);
|
||||||
List<UserRate> ratingList = userData.RatingList.RatingList;
|
List<UserRate> ratingList = userData.RatingList.RatingList;
|
||||||
List<UserRate> newRatingList = userData.RatingList.NewRatingList;
|
List<UserRate> newRatingList = userData.RatingList.NewRatingList;
|
||||||
int achive = RatingTableID.Rate_22.GetAchive();
|
int achive = RatingTableID.Rate_22.GetAchive();
|
||||||
|
|
|
@ -222,6 +222,10 @@ class Maimai2ServletController(
|
||||||
val getGameNgMusicId = BaseHandler { mapOf("length" to 0, "musicIdList" to empty) }
|
val getGameNgMusicId = BaseHandler { mapOf("length" to 0, "musicIdList" to empty) }
|
||||||
val getGameRanking = BaseHandler { mapOf("type" to it["type"].toString(), "gameRankingList" to empty) }
|
val getGameRanking = BaseHandler { mapOf("type" to it["type"].toString(), "gameRankingList" to empty) }
|
||||||
val getGameTournamentInfo = BaseHandler { mapOf("length" to 0, "gameTournamentInfoList" to empty) }
|
val getGameTournamentInfo = BaseHandler { mapOf("length" to 0, "gameTournamentInfoList" to empty) }
|
||||||
|
val getGameKaleidxScope = BaseHandler { mapOf("gameKaleidxScopeList" to empty) }
|
||||||
|
val getUserKaleidxScope = UserReqHandler { _, uid -> mapOf("userId" to uid, "userKaleidxScopeList" to empty) }
|
||||||
|
val getUserNewItem = UserReqHandler { _, uid -> mapOf("userId" to uid, "itemKind" to 0, "itemId" to 0) }
|
||||||
|
val getUserNewItemList = UserReqHandler { _, uid -> mapOf("userId" to uid, "userItemList" to empty) }
|
||||||
|
|
||||||
val getGameSetting = BaseHandler {
|
val getGameSetting = BaseHandler {
|
||||||
// The client-side implementation for reboot time is extremely cursed.
|
// The client-side implementation for reboot time is extremely cursed.
|
||||||
|
@ -289,6 +293,15 @@ class Maimai2ServletController(
|
||||||
"userMissionDataList" to empty
|
"userMissionDataList" to empty
|
||||||
) }
|
) }
|
||||||
|
|
||||||
|
val getGameMusicScore = BaseHandler { mapOf(
|
||||||
|
"gameMusicScore" to mapOf(
|
||||||
|
"musicId" to 0,
|
||||||
|
"level" to 0,
|
||||||
|
"type" to 0,
|
||||||
|
"scoreData" to ""
|
||||||
|
)
|
||||||
|
) }
|
||||||
|
|
||||||
val endpointList = setOf("GetGameEventApi", "GetGameRankingApi", "GetGameSettingApi", "GetGameTournamentInfoApi", "GetGameWeeklyDataApi",
|
val endpointList = setOf("GetGameEventApi", "GetGameRankingApi", "GetGameSettingApi", "GetGameTournamentInfoApi", "GetGameWeeklyDataApi",
|
||||||
"GetTransferFriendApi", "GetUserActivityApi", "GetUserCardApi", "GetUserCharacterApi", "GetUserDataApi",
|
"GetTransferFriendApi", "GetUserActivityApi", "GetUserCardApi", "GetUserCharacterApi", "GetUserDataApi",
|
||||||
"GetUserExtendApi", "GetUserFavoriteApi", "GetUserGhostApi", "GetUserItemApi", "GetUserLoginBonusApi",
|
"GetUserExtendApi", "GetUserFavoriteApi", "GetUserGhostApi", "GetUserItemApi", "GetUserLoginBonusApi",
|
||||||
|
@ -303,7 +316,8 @@ class Maimai2ServletController(
|
||||||
"CMUpsertUserPrintlogApi", "GetUserFavoriteItemApi", "GetUserRivalDataApi", "GetUserRivalMusicApi",
|
"CMUpsertUserPrintlogApi", "GetUserFavoriteItemApi", "GetUserRivalDataApi", "GetUserRivalMusicApi",
|
||||||
"GetUserScoreRankingApi", "UpsertClientBookkeepingApi", "UpsertClientSettingApi",
|
"GetUserScoreRankingApi", "UpsertClientBookkeepingApi", "UpsertClientSettingApi",
|
||||||
"UpsertClientTestmodeApi", "UpsertClientUploadApi", "Ping", "RemoveTokenApi", "CMLoginApi", "CMLogoutApi",
|
"UpsertClientTestmodeApi", "UpsertClientUploadApi", "Ping", "RemoveTokenApi", "CMLoginApi", "CMLogoutApi",
|
||||||
"CMUpsertBuyCardApi", "GetGameSettingApi").toMutableList()
|
"CMUpsertBuyCardApi", "GetGameSettingApi", "GetGameKaleidxScopeApi", "GetGameMusicScoreApi",
|
||||||
|
"GetUserKaleidxScopeApi", "GetUserNewItemApi", "GetUserNewItemListApi").toMutableList()
|
||||||
|
|
||||||
val noopEndpoint = endpointList.popAll("GetUserScoreRankingApi", "UpsertClientBookkeepingApi",
|
val noopEndpoint = endpointList.popAll("GetUserScoreRankingApi", "UpsertClientBookkeepingApi",
|
||||||
"UpsertClientSettingApi", "UpsertClientTestmodeApi", "UpsertClientUploadApi", "Ping", "RemoveTokenApi",
|
"UpsertClientSettingApi", "UpsertClientTestmodeApi", "UpsertClientUploadApi", "Ping", "RemoveTokenApi",
|
||||||
|
|
Loading…
Reference in New Issue