From 21142a53df0e3532f780318bbc497d65dfb24418 Mon Sep 17 00:00:00 2001 From: Clansty Date: Fri, 2 May 2025 20:16:07 +0800 Subject: [PATCH] [+] Login Alert for net and mai2 --- src/main/java/icu/samnyan/aqua/net/Bot.kt | 4 --- .../icu/samnyan/aqua/net/UserRegistrar.kt | 3 ++ .../icu/samnyan/aqua/sega/aimedb/AimeDB.kt | 4 --- .../samnyan/aqua/sega/maimai2/Maimai2Apis.kt | 35 +++++++++++++++---- 4 files changed, 31 insertions(+), 15 deletions(-) diff --git a/src/main/java/icu/samnyan/aqua/net/Bot.kt b/src/main/java/icu/samnyan/aqua/net/Bot.kt index ad32c1fc..6d364ab5 100644 --- a/src/main/java/icu/samnyan/aqua/net/Bot.kt +++ b/src/main/java/icu/samnyan/aqua/net/Bot.kt @@ -19,10 +19,6 @@ import org.springframework.web.bind.annotation.RestController class BotProps { var enabled: Boolean = false var secret: String = "" - - companion object { - const val MINATO_CARD_EXT: Int = Int.MAX_VALUE - 2; - } } @RestController diff --git a/src/main/java/icu/samnyan/aqua/net/UserRegistrar.kt b/src/main/java/icu/samnyan/aqua/net/UserRegistrar.kt index e401f6a4..2ed646f1 100644 --- a/src/main/java/icu/samnyan/aqua/net/UserRegistrar.kt +++ b/src/main/java/icu/samnyan/aqua/net/UserRegistrar.kt @@ -8,6 +8,7 @@ import icu.samnyan.aqua.net.utils.PathProps import icu.samnyan.aqua.net.utils.SUCCESS import icu.samnyan.aqua.sega.general.dao.CardRepository import icu.samnyan.aqua.sega.general.model.Card +import icu.samnyan.aqua.sega.general.model.CardStatus import icu.samnyan.aqua.sega.general.service.CardService import jakarta.servlet.http.HttpServletRequest import org.slf4j.LoggerFactory @@ -111,6 +112,8 @@ class UserRegistrar( ?: (400 - "User not found") if (!hasher.matches(password, user.pwHash)) 400 - "Invalid password" + if (user.ghostCard.status == CardStatus.MIGRATED_TO_MINATO) 400 - "Placeholder" + // 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/sega/aimedb/AimeDB.kt b/src/main/java/icu/samnyan/aqua/sega/aimedb/AimeDB.kt index e78c92b0..c0971c6c 100644 --- a/src/main/java/icu/samnyan/aqua/sega/aimedb/AimeDB.kt +++ b/src/main/java/icu/samnyan/aqua/sega/aimedb/AimeDB.kt @@ -125,10 +125,6 @@ class AimeDB( } fun getCard(accessCode: String) = us.cardRepo.findByLuid(accessCode)()?.maybeGhost()?.let { card -> - // If it's migrated to Minato, return the Minato card for 24 hours - if (card.status == CardStatus.MIGRATED_TO_MINATO && card.accessTime.plusDays(1).isAfter(utcNow())) - return BotProps.MINATO_CARD_EXT.long - // Update card access time and return the extId us.cardRepo.save(card.apply { accessTime = LocalDateTime.now() }).extId } ?: -1 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 c594e19f..9a2849f1 100644 --- a/src/main/java/icu/samnyan/aqua/sega/maimai2/Maimai2Apis.kt +++ b/src/main/java/icu/samnyan/aqua/sega/maimai2/Maimai2Apis.kt @@ -3,6 +3,7 @@ package icu.samnyan.aqua.sega.maimai2 import ext.* +import icu.samnyan.aqua.sega.general.model.CardStatus import icu.samnyan.aqua.sega.maimai2.model.UserRivalMusic import icu.samnyan.aqua.sega.maimai2.model.UserRivalMusicDetail import icu.samnyan.aqua.sega.maimai2.model.userdata.Mai2UserKaleidx @@ -55,12 +56,6 @@ fun Maimai2ServletController.initApis() { ) } "CreateToken" static { """{"Bearer":"meow"}""" } - "UserLogin" static { mapOf( - "returnCode" to 1, "loginCount" to 1, - "lastLoginDate" to "2020-01-01 00:00:00.0", - "consecutiveLoginCount" to 0, "loginId" to 1, - "Bearer" to "meow", "bearer" to "meow" - ) } "CMUpsertUserPrintlog" static { """{"returnCode":1,"orderId":"0","serialId":"FAKECARDIMAG12345678"}""" } @@ -91,7 +86,7 @@ fun Maimai2ServletController.initApis() { val d = db.userData.findByCardExtId(uid)() ?: (404 - "User not found") val option = db.userOption.findSingleByUser_Card_ExtId(uid)() - mapOf( + val res = mutableMapOf( "userId" to uid, "userName" to d.userName, "isLogin" to false, @@ -114,6 +109,32 @@ fun Maimai2ServletController.initApis() { "isInherit" to false, "banState" to d.banState ) + + if (d.card?.status == CardStatus.MIGRATED_TO_MINATO) { + res["userName"] = "Migrated" + res["dispRate"] = 1 + res["playerRating"] = 66564 + res["totalAwake"] = 7114 + } + + res + } + + "UserLogin" { + val d = db.userData.findByCardExtId(uid)() ?: (404 - "User not found") + + val res = mutableMapOf( + "returnCode" to 1, "loginCount" to 1, + "lastLoginDate" to "2020-01-01 00:00:00.0", + "consecutiveLoginCount" to 0, "loginId" to 1, + "Bearer" to "meow", "bearer" to "meow" + ) + + if (d.card?.status == CardStatus.MIGRATED_TO_MINATO) { + res["returnCode"] = 0 + } + + res } "GetUserShopStock" {