diff --git a/src/main/java/icu/samnyan/aqua/net/games/GameHelper.kt b/src/main/java/icu/samnyan/aqua/net/games/GameHelper.kt index 59e64270..87cc97ad 100644 --- a/src/main/java/icu/samnyan/aqua/net/games/GameHelper.kt +++ b/src/main/java/icu/samnyan/aqua/net/games/GameHelper.kt @@ -1,8 +1,6 @@ package icu.samnyan.aqua.net.games -import ext.isoDate -import ext.minus -import ext.mut +import ext.* import java.time.LocalDate const val LETTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + @@ -17,10 +15,10 @@ const val WACCA_USERNAME_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "0123456789" + "~|?!=()[]{},.:;\"@/_-+#*&%$" -fun usernameCheck(chars: String): (IUserData, String) -> Unit = { u, v -> - u.userName = v +fun usernameCheck(isWacca: Bool): (IUserData, String) -> Unit = { u, v -> if (v.isBlank()) { 400 - "Username cannot be blank" } if (v.length > 8) { 400 - "Username too long" } + u.userName = toFullWidth(v) // v.find { it !in chars }?.let { 400 - "Invalid character '$it' in username" } } diff --git a/src/main/java/icu/samnyan/aqua/net/games/chu3/Chusan.kt b/src/main/java/icu/samnyan/aqua/net/games/chu3/Chusan.kt index 8e12503f..75fb22d1 100644 --- a/src/main/java/icu/samnyan/aqua/net/games/chu3/Chusan.kt +++ b/src/main/java/icu/samnyan/aqua/net/games/chu3/Chusan.kt @@ -33,7 +33,7 @@ class Chusan( // Only show > AAA rank override val shownRanks = chu3Scores.filter { it.first >= 95 * 10000 } override val settableFields: Map Unit> by lazy { mapOf( - "userName" to usernameCheck(SEGA_USERNAME_CHARS), + "userName" to usernameCheck(false), "nameplateId" to { u, v -> u.nameplateId = v.int }, "frameId" to { u, v -> u.frameId = v.int }, "trophyId" to { u, v -> u.trophyId = v.int }, diff --git a/src/main/java/icu/samnyan/aqua/net/games/mai2/Maimai2.kt b/src/main/java/icu/samnyan/aqua/net/games/mai2/Maimai2.kt index 2562166e..8c95ef54 100644 --- a/src/main/java/icu/samnyan/aqua/net/games/mai2/Maimai2.kt +++ b/src/main/java/icu/samnyan/aqua/net/games/mai2/Maimai2.kt @@ -40,7 +40,7 @@ class Maimai2( // Only show > S rank override val shownRanks = mai2Scores.filter { it.first >= 97 * 10000 } override val settableFields: Map Unit> by lazy { mapOf( - "userName" to usernameCheck(SEGA_USERNAME_CHARS), + "userName" to usernameCheck(false), "iconId" to { u, v -> u.iconId = v.int() }, "plateId" to { u, v -> u.plateId = v.int() }, "titleId" to { u, v -> u.titleId = v.int() }, diff --git a/src/main/java/icu/samnyan/aqua/net/games/ongeki/Ongeki.kt b/src/main/java/icu/samnyan/aqua/net/games/ongeki/Ongeki.kt index e72657bb..57e3fe37 100644 --- a/src/main/java/icu/samnyan/aqua/net/games/ongeki/Ongeki.kt +++ b/src/main/java/icu/samnyan/aqua/net/games/ongeki/Ongeki.kt @@ -35,7 +35,7 @@ class Ongeki( override val shownRanks = ongekiScores.filter { it.first >= 950000 } override val settableFields: Map Unit> by lazy { mapOf( - "userName" to usernameCheck(SEGA_USERNAME_CHARS), + "userName" to usernameCheck(false), "lastRomVersion" to { u, v -> u.lastRomVersion = v }, "lastDataVersion" to { u, v -> u.lastDataVersion = v }, diff --git a/src/main/java/icu/samnyan/aqua/net/games/wacca/Wacca.kt b/src/main/java/icu/samnyan/aqua/net/games/wacca/Wacca.kt index 56704046..8dad1db3 100644 --- a/src/main/java/icu/samnyan/aqua/net/games/wacca/Wacca.kt +++ b/src/main/java/icu/samnyan/aqua/net/games/wacca/Wacca.kt @@ -22,7 +22,7 @@ class Wacca( override val userMusicRepo: WcUserBestScoreRepo, ): GameApiController("wacca", WaccaUser::class) { override val settableFields: Map Unit> by lazy { mapOf( - "userName" to usernameCheck(WACCA_USERNAME_CHARS), + "userName" to usernameCheck(true), "lastRomVersion" to { u, v -> u.lastRomVersion = v }, ) }