From 43b7ea65a546feeb47b20e38aa6545d7523c8167 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Sun, 23 Nov 2025 23:43:23 +0800 Subject: [PATCH] [-] Replace login blocking with an `@ AquaDX` prefix --- AquaNet/src/pages/Welcome.svelte | 3 --- .../java/icu/samnyan/aqua/net/UserRegistrar.kt | 2 -- .../samnyan/aqua/net/games/GameApiController.kt | 3 +-- .../aqua/sega/chusan/handler/ChusanApis.kt | 13 ++----------- .../sega/chusan/handler/ChusanUpsertApis.kt | 7 +++++++ .../icu/samnyan/aqua/sega/general/model/Card.kt | 9 +++++++-- .../samnyan/aqua/sega/maimai2/Maimai2Apis.kt | 9 +-------- .../maimai2/handler/UpsertUserAllHandler.kt | 13 +++++++++++-- .../aqua/sega/ongeki/OngekiUpsertAllApi.kt | 7 +++++++ .../samnyan/aqua/sega/ongeki/OngekiUserApis.kt | 17 ++--------------- .../icu/samnyan/aqua/sega/wacca/WaccaServer.kt | 6 +++--- 11 files changed, 41 insertions(+), 48 deletions(-) diff --git a/AquaNet/src/pages/Welcome.svelte b/AquaNet/src/pages/Welcome.svelte index cb4a8cc9..9442fc57 100644 --- a/AquaNet/src/pages/Welcome.svelte +++ b/AquaNet/src/pages/Welcome.svelte @@ -99,9 +99,6 @@ state = 'verify' verifyMsg = t("welcome.verify-state-2") } - else if (e.message === 'Login not allowed: Card has been migrated to Minato.') { - location.href = `https://portal.mumur.net/login?username=${encodeURIComponent(email)}` - } else { error = e.message submitting = false // unnecessary? see line 113, same for both reset functions diff --git a/src/main/java/icu/samnyan/aqua/net/UserRegistrar.kt b/src/main/java/icu/samnyan/aqua/net/UserRegistrar.kt index 9d84f5e2..abdf1120 100644 --- a/src/main/java/icu/samnyan/aqua/net/UserRegistrar.kt +++ b/src/main/java/icu/samnyan/aqua/net/UserRegistrar.kt @@ -93,8 +93,6 @@ class UserRegistrar( ?: (400 - "User not found") if (!hasher.matches(password, user.pwHash)) 400 - "Invalid password" - if (user.ghostCard.status == CardStatus.MIGRATED_TO_MINATO) 400 - "Login not allowed: Card has been migrated to Minato." - // Check if email is verified if (!user.emailConfirmed && emailProps.enable) { // Check if last confirmation email was sent within a minute diff --git a/src/main/java/icu/samnyan/aqua/net/games/GameApiController.kt b/src/main/java/icu/samnyan/aqua/net/games/GameApiController.kt index 09bc3502..714fbe56 100644 --- a/src/main/java/icu/samnyan/aqua/net/games/GameApiController.kt +++ b/src/main/java/icu/samnyan/aqua/net/games/GameApiController.kt @@ -5,7 +5,6 @@ import icu.samnyan.aqua.net.BotProps import icu.samnyan.aqua.net.db.AquaUserServices import icu.samnyan.aqua.net.utils.SUCCESS import icu.samnyan.aqua.sega.general.model.Card -import icu.samnyan.aqua.sega.general.model.CardStatus import jakarta.annotation.PostConstruct import org.slf4j.LoggerFactory import org.springframework.beans.factory.annotation.Autowired @@ -56,7 +55,7 @@ abstract class GameApiController(val name: String, userDataClass: val reqUser = token?.let { us.jwt.auth(it) }?.let { u -> // Optimization: If the user is not banned, we don't need to process user information - if (!u.ghostCard.rankingBanned && !u.cards.any { it.rankingBanned } && u.ghostCard.status == CardStatus.NORMAL) null + if (!u.ghostCard.rankingBanned && !u.cards.any { it.rankingBanned } && u.ghostCard.status.isNormal) null else u } diff --git a/src/main/java/icu/samnyan/aqua/sega/chusan/handler/ChusanApis.kt b/src/main/java/icu/samnyan/aqua/sega/chusan/handler/ChusanApis.kt index 7e41b153..7168c3ec 100644 --- a/src/main/java/icu/samnyan/aqua/sega/chusan/handler/ChusanApis.kt +++ b/src/main/java/icu/samnyan/aqua/sega/chusan/handler/ChusanApis.kt @@ -236,9 +236,7 @@ fun ChusanController.chusanInit() { ) + userDict if (user.card?.status == CardStatus.MIGRATED_TO_MINATO) { - res["userName"] = "JiaQQqun / ChangeDNS" - res["rating"] = 0 - res["playerLevel"] = 0 + res["userName"] = "${res["userName"]}@AquaDX" } res @@ -394,13 +392,6 @@ fun ChusanController.chusanInit() { // } // process() - val user = db.userData.findByCard_ExtId(uid)() - - if (user?.card?.status == CardStatus.MIGRATED_TO_MINATO) { - """{"returnCode":"0"}""" - } - else { - """{"returnCode":"1"}""" - } + """{"returnCode":"1"}""" } } \ No newline at end of file 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 47361fc7..55b940bf 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 @@ -4,6 +4,7 @@ import ext.* import icu.samnyan.aqua.sega.chusan.ChusanController import icu.samnyan.aqua.sega.chusan.model.request.Chu3UserAll import icu.samnyan.aqua.sega.chusan.model.userdata.* +import icu.samnyan.aqua.sega.general.model.CardStatus import icu.samnyan.aqua.sega.general.model.response.UserRecentRating @Suppress("UNCHECKED_CAST") @@ -36,6 +37,12 @@ fun ChusanController.upsertApiInit() { userNameEx = "" }.also { db.userData.saveAndFlush(it) } + // If the user was previously migrated to Minato, saving would mark them "migrated and then cleared". + if (u.card?.status == CardStatus.MIGRATED_TO_MINATO) { + u.card?.status = CardStatus.NORMAL_MIGRATED_TO_MINATO_AND_THEN_CLEARED + us.cardRepo.save(u.card!!) + } + // Only save if it is a valid region and the user has played at least a song req.userPlaylogList?.firstOrNull()?.regionId?.let { rid -> val region = db.userRegions.findByUserAndRegionId(u, rid)?.apply { diff --git a/src/main/java/icu/samnyan/aqua/sega/general/model/Card.kt b/src/main/java/icu/samnyan/aqua/sega/general/model/Card.kt index 3aa2d176..fcd0183f 100644 --- a/src/main/java/icu/samnyan/aqua/sega/general/model/Card.kt +++ b/src/main/java/icu/samnyan/aqua/sega/general/model/Card.kt @@ -9,7 +9,7 @@ enum class CardStatus { NORMAL, // Reserved for future use - NORMAL_RESERVED_1, + NORMAL_MIGRATED_TO_MINATO_AND_THEN_CLEARED, NORMAL_RESERVED_2, NORMAL_RESERVED_3, NORMAL_RESERVED_4, @@ -22,7 +22,12 @@ enum class CardStatus { // Deleted statuses OVERWRITTEN, DELETED, - MIGRATED_TO_MINATO, + MIGRATED_TO_MINATO; + + /** + * Returns true if card status is in any NORMAL state + */ + val isNormal get() = this.ordinal in NORMAL.ordinal..NORMAL_RESERVED_9.ordinal } /** diff --git a/src/main/java/icu/samnyan/aqua/sega/maimai2/Maimai2Apis.kt b/src/main/java/icu/samnyan/aqua/sega/maimai2/Maimai2Apis.kt index 39ca2f6e..b9c64845 100644 --- a/src/main/java/icu/samnyan/aqua/sega/maimai2/Maimai2Apis.kt +++ b/src/main/java/icu/samnyan/aqua/sega/maimai2/Maimai2Apis.kt @@ -115,10 +115,7 @@ fun Maimai2ServletController.initApis() { ) if (d.card?.status == CardStatus.MIGRATED_TO_MINATO) { - res["userName"] = "JiaQQqun / ChangeDNS" - res["dispRate"] = 1 - res["playerRating"] = 66564 - res["totalAwake"] = 7114 + res["userName"] = "${res["userName"]}@AquaDX" } res @@ -134,10 +131,6 @@ fun Maimai2ServletController.initApis() { "Bearer" to "meow", "bearer" to "meow" ) - if (d?.card?.status == CardStatus.MIGRATED_TO_MINATO) { - res["returnCode"] = 0 - } - // Get regionId from request val region = data["regionId"] as? Int diff --git a/src/main/java/icu/samnyan/aqua/sega/maimai2/handler/UpsertUserAllHandler.kt b/src/main/java/icu/samnyan/aqua/sega/maimai2/handler/UpsertUserAllHandler.kt index e2ec4b99..a368e62d 100644 --- a/src/main/java/icu/samnyan/aqua/sega/maimai2/handler/UpsertUserAllHandler.kt +++ b/src/main/java/icu/samnyan/aqua/sega/maimai2/handler/UpsertUserAllHandler.kt @@ -5,11 +5,14 @@ import ext.invoke import ext.mapApply import ext.unique import icu.samnyan.aqua.sega.general.BaseHandler +import icu.samnyan.aqua.sega.general.model.CardStatus import icu.samnyan.aqua.sega.general.service.CardService import icu.samnyan.aqua.sega.maimai2.handler.UploadUserPlaylogHandler.Companion.playBacklog -import icu.samnyan.aqua.sega.maimai2.model.* +import icu.samnyan.aqua.sega.maimai2.model.Mai2Repos import icu.samnyan.aqua.sega.maimai2.model.request.Mai2UpsertUserAll -import icu.samnyan.aqua.sega.maimai2.model.userdata.* +import icu.samnyan.aqua.sega.maimai2.model.userdata.Mai2UserDetail +import icu.samnyan.aqua.sega.maimai2.model.userdata.Mai2UserGeneralData +import icu.samnyan.aqua.sega.maimai2.model.userdata.Mai2UserRate import icu.samnyan.aqua.sega.util.jackson.BasicMapper import lombok.AllArgsConstructor import org.slf4j.LoggerFactory @@ -59,6 +62,12 @@ class UpsertUserAllHandler( } }) + // If the user was previously migrated to Minato, saving would mark them "migrated and then cleared". + if (u.card?.status == CardStatus.MIGRATED_TO_MINATO) { + u.card?.status = CardStatus.NORMAL_MIGRATED_TO_MINATO_AND_THEN_CLEARED + cardService.cardRepo.save(u.card!!) + } + // Check playlog backlog if (playBacklog.containsKey(userId)) playBacklog.remove(userId)?.forEach { repos.userPlaylog.save(it.playlog.apply { user = u }) diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUpsertAllApi.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUpsertAllApi.kt index 5fc4c602..2b526adf 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUpsertAllApi.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUpsertAllApi.kt @@ -4,6 +4,7 @@ import ext.int import ext.invoke import ext.mapApply import ext.minus +import icu.samnyan.aqua.sega.general.model.CardStatus import icu.samnyan.aqua.sega.ongeki.model.OngekiUpsertUserAll import icu.samnyan.aqua.sega.ongeki.model.UserData import icu.samnyan.aqua.sega.ongeki.model.UserGeneralData @@ -49,6 +50,12 @@ fun OngekiController.initUpsertAll() { db.regions.save(region) } + // If the user was previously migrated to Minato, saving would mark them "migrated and then cleared". + if (u.card?.status == CardStatus.MIGRATED_TO_MINATO) { + u.card?.status = CardStatus.NORMAL_MIGRATED_TO_MINATO_AND_THEN_CLEARED + us.cardRepo.save(u.card!!) + } + all.run { // Set users listOfNotNull( diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUserApis.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUserApis.kt index 07788540..3fa6f510 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUserApis.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUserApis.kt @@ -162,26 +162,13 @@ fun OngekiController.initUser() { ) if (u.card?.status == CardStatus.MIGRATED_TO_MINATO) { - res["userName"] = "JiaQQqun / ChangeDNS" - res["level"] = 0 - res["exp"] = 0 - res["playerRating"] = 0 - res["newPlayerRating"] = 0 + res["userName"] = "${res["userName"]}@AquaDX" } res } - "GameLogin" { - val user = db.data.findByCard_ExtId(uid)() - - if (user?.card?.status == CardStatus.MIGRATED_TO_MINATO) { - """{"returnCode":"0"}""" - } - else { - """{"returnCode":"1"}""" - } - } + "GameLogin" { """{"returnCode":"1"}""" } "GetUserRecentRating".unpaged { db.generalData.findByUser_Card_ExtIdAndPropertyKey(uid, "recent_rating_list")()?.let { recent -> diff --git a/src/main/java/icu/samnyan/aqua/sega/wacca/WaccaServer.kt b/src/main/java/icu/samnyan/aqua/sega/wacca/WaccaServer.kt index ad899313..d4d49882 100644 --- a/src/main/java/icu/samnyan/aqua/sega/wacca/WaccaServer.kt +++ b/src/main/java/icu/samnyan/aqua/sega/wacca/WaccaServer.kt @@ -224,9 +224,9 @@ fun WaccaServer.init() { val status = u.lStatus().toMutableList() - if (u.card?.status == CardStatus.MIGRATED_TO_MINATO) { - status[1] = "JiaQQqun / ChangeDNS" - } +// if (u.card?.status == CardStatus.MIGRATED_TO_MINATO) { +// status[1] = "${status[1]}@AquaDX" +// } u.run { ls( "0 status" - status,