From 9f74f79a02e342c35dc02146e965091e07d5c557 Mon Sep 17 00:00:00 2001 From: Raymond <101374892+raymonable@users.noreply.github.com> Date: Fri, 18 Apr 2025 17:31:25 -0400 Subject: [PATCH] feat: :sparkles: symbol chat --- .../icu/samnyan/aqua/net/db/AquaGameOptions.kt | 9 +++++++++ .../aqua/sega/chusan/handler/ChusanApis.kt | 16 +++++++++++++++- .../db/80/V1000_47__chusan_symbol_chat.sql | 5 +++++ 3 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 src/main/resources/db/80/V1000_47__chusan_symbol_chat.sql diff --git a/src/main/java/icu/samnyan/aqua/net/db/AquaGameOptions.kt b/src/main/java/icu/samnyan/aqua/net/db/AquaGameOptions.kt index 5448b507..f5067b00 100644 --- a/src/main/java/icu/samnyan/aqua/net/db/AquaGameOptions.kt +++ b/src/main/java/icu/samnyan/aqua/net/db/AquaGameOptions.kt @@ -43,6 +43,15 @@ class AquaGameOptions( @SettingField("chu3-matching") var chusanMatchingReflector: String = "", + + @SettingField("chu3-matching-chat") + var chusanSymbolChat1: Int? = null, + @SettingField("chu3-matching-chat") + var chusanSymbolChat2: Int? = null, + @SettingField("chu3-matching-chat") + var chusanSymbolChat3: Int? = null, + @SettingField("chu3-matching-chat") + var chusanSymbolChat4: Int? = null, @SettingField("mai2") var enableMusicRank: Boolean = true, 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 b4c755bf..6431b474 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 @@ -84,7 +84,6 @@ fun ChusanController.chusanInit() { "GetUserRivalData" { """{"userId":"${data["userId"]}","length":"0","userRivalData":[]}""" } "GetUserRegion" { """{"userId":"${data["userId"]}","length":"0","userRegionList":[]}""" } "GetUserPrintedCard" { """{"userId":"${data["userId"]}","length":0,"nextIndex":-1,"userPrintedCardList":[]}""" } - "GetUserSymbolChatSetting" { """{"userId":"${data["userId"]}","length":"0","symbolChatInfoList":[]}""" } // Net battle data "GetUserNetBattleData" api@ { @@ -98,6 +97,21 @@ fun ChusanController.chusanInit() { } "GetUserNetBattleRankingInfo" { """{"userId":"${data["userId"]}","length":"0","userNetBattleRankingInfoList":{}}""" } + "GetUserSymbolChatSetting".paged("symbolChatInfoList") { + fun Int.makeSymbols(order: Int) = (1..5).map { + mapOf( + "sceneId" to it, + "symbolChatId" to this, + "orderId" to order + ) + } + + db.userData.findByCard_ExtId(uid)()?.card?.aquaUser?.gameOptions?.run { + listOf(chusanSymbolChat1, chusanSymbolChat2, chusanSymbolChat3, chusanSymbolChat4) + .flatMapIndexed { i, sym -> sym?.makeSymbols(i) ?: empty } + } ?: empty + } + // User handlers "GetUserData" { db.userData.findByCard_ExtId(uid)()?.let{ u -> mapOf("userId" to uid, "userData" to u) } diff --git a/src/main/resources/db/80/V1000_47__chusan_symbol_chat.sql b/src/main/resources/db/80/V1000_47__chusan_symbol_chat.sql new file mode 100644 index 00000000..4dda3974 --- /dev/null +++ b/src/main/resources/db/80/V1000_47__chusan_symbol_chat.sql @@ -0,0 +1,5 @@ +ALTER TABLE aqua_game_options +ADD chusan_symbol_chat1 MEDIUMINT NULL, +ADD chusan_symbol_chat2 MEDIUMINT NULL, +ADD chusan_symbol_chat3 MEDIUMINT NULL, +ADD chusan_symbol_chat4 MEDIUMINT NULL; \ No newline at end of file