From 1de7b439da1040d80d74eea2848b0046736513a4 Mon Sep 17 00:00:00 2001 From: zc-meng Date: Fri, 27 Sep 2024 10:54:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8B=8B=E7=AB=A0=E6=A0=B9=E6=8D=AE=E5=88=86?= =?UTF-8?q?=E6=95=B0=E5=A4=A7=E5=B0=8F=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/kotlin/Statistics.kt | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/Statistics.kt b/src/main/kotlin/Statistics.kt index 9c1cc00a..10558b24 100644 --- a/src/main/kotlin/Statistics.kt +++ b/src/main/kotlin/Statistics.kt @@ -342,16 +342,29 @@ object Statistics { val totalPlayerGameCount: PlayerGameCount get() = PlayerGameCount(totalWinCount.get(), totalGameCount.get()) + fun sortTitles(titles: String): String { + fun getTitleRank(title: String): Int = when (title) { + "\u2B50" -> 1 // score >= 2900 + "\uD83D\uDC51" -> 2 // score >= 1900 + "\uD83D\uDCA0" -> 3 // score >= 1400 + "\uD83D\uDC8D" -> 4 // score >= 920 + "\uD83E\uDD47" -> 5 // score >= 520 + else -> 6 // Lower than 520 + } + return titles.toList().sortedBy { getTitleRank(it.toString()) }.joinToString("") + } + private fun savePlayerInfo() { val sb = StringBuilder() for ((_, info) in playerInfoMap) { + val sortedTitles = sortTitles(info.title) sb.append(info.winCount).append(',') sb.append(info.gameCount).append(',') sb.append(info.name).append(',') sb.append(info.score).append(',') sb.append(info.password).append(',') sb.append(info.forbidUntil).append(',') - sb.append(info.title).append(',') + sb.append(sortedTitles).append(',') sb.append(info.lastTime).append(',') sb.append(info.energy).append(',') sb.append(info.maxScore).append(',')