diff --git a/AquaNet/src/libs/maimai.ts b/AquaNet/src/libs/maimai.ts index 4a0e4ba6..92fa3646 100644 --- a/AquaNet/src/libs/maimai.ts +++ b/AquaNet/src/libs/maimai.ts @@ -1,5 +1,6 @@ import {aqua_host} from "./config"; import type {TrendEntry} from "./generalTypes"; +import type {MaimaiUserSummaryEntry} from "./maimaiTypes"; const multTable = [ @@ -39,4 +40,8 @@ export async function getMaimaiApi(endpoint: string, params: any) { export async function getMaimaiTrend(userId: number): Promise { return await getMaimaiApi("trend", {userId}) +} + +export async function getMaimaiUser(userId: number): Promise { + return await getMaimaiApi("user-summary", {userId}) } \ No newline at end of file diff --git a/AquaNet/src/libs/maimaiTypes.ts b/AquaNet/src/libs/maimaiTypes.ts index 36a4a580..4f355aa4 100644 --- a/AquaNet/src/libs/maimaiTypes.ts +++ b/AquaNet/src/libs/maimaiTypes.ts @@ -38,4 +38,26 @@ export interface MaiUserPreviewData { isLogin: boolean iconId: number frameId: number +} + +export interface MaimaiUserSummaryEntry { + name: string + iconId: number + serverRank: number + accuracy: number + rating: number + ratingHighest: number + ranks: { name: string, count: number }[] + maxCombo: number + fullCombo: number + allPerfect: number + totalDxScore: number + plays: number + totalPlayTime: number + joined: string + lastSeen: string + lastVersion: string + best35: string + best15: string + recent: Rating[] } \ No newline at end of file diff --git a/src/main/java/icu/samnyan/aqua/api/controller/sega/game/maimai2/Maimai2New.kt b/src/main/java/icu/samnyan/aqua/api/controller/sega/game/maimai2/Maimai2New.kt index d08ea289..0c765535 100644 --- a/src/main/java/icu/samnyan/aqua/api/controller/sega/game/maimai2/Maimai2New.kt +++ b/src/main/java/icu/samnyan/aqua/api/controller/sega/game/maimai2/Maimai2New.kt @@ -67,7 +67,7 @@ class Maimai2New( "accuracy" to plays.sumOf { it.achievement } / plays.size, "rating" to user.playerRating, "ratingHighest" to user.highestRating, - "ranks" to ranks, + "ranks" to ranks.map { (k, v) -> mapOf("name" to k, "count" to v) }, "maxCombo" to plays.maxOf { it.maxCombo }, "fullCombo" to plays.count { it.totalCombo == it.maxCombo }, "allPerfect" to plays.count { it.achievement == 1010000 },