diff --git a/src/main/java/ext/Ext.kt b/src/main/java/ext/Ext.kt index a94651df..0fdcfe53 100644 --- a/src/main/java/ext/Ext.kt +++ b/src/main/java/ext/Ext.kt @@ -196,6 +196,7 @@ fun Map.vNotNull(): Map = filterValues { it != null }.m fun MutableList.popAll(list: List) = list.also { removeAll(it) } fun MutableList.popAll(vararg items: T) = popAll(items.toList()) inline fun Iterable.mapApply(block: T.() -> Unit) = map { it.apply(block) } +inline fun Iterable.mapApplyI(block: T.(Int) -> Unit) = mapIndexed { i, e -> e.apply { block(i) } } @Suppress("UNCHECKED_CAST") fun Map.recursiveNotNull(): Map = mapNotNull { (k, v) -> k to if (v is Map<*, *>) (v as Map).recursiveNotNull() else v diff --git a/src/main/java/icu/samnyan/aqua/sega/chusan/handler/ChusanUpsertApis.kt b/src/main/java/icu/samnyan/aqua/sega/chusan/handler/ChusanUpsertApis.kt index 58790dc6..e8bb3664 100644 --- a/src/main/java/icu/samnyan/aqua/sega/chusan/handler/ChusanUpsertApis.kt +++ b/src/main/java/icu/samnyan/aqua/sega/chusan/handler/ChusanUpsertApis.kt @@ -71,7 +71,13 @@ fun ChusanController.upsertApiInit() { // Playlog userPlaylogList?.let { db.userPlaylog.saveAll(it) } - userNetBattlelogList?.let { db.netBattleLog.saveAll(it.mapApply { + userNetBattlelogList?.let { db.netBattleLog.saveAll(it.mapApplyI { i -> + userPlaylogList?.getOrNull(i)?.let { + musicId = it.musicId + difficultyId = it.level + score = it.score + } + selectUserName = selectUserName.fromChusanUsername() opponentUserName1 = opponentUserName1.fromChusanUsername() opponentUserName2 = opponentUserName2.fromChusanUsername()