From 3936b8d63c0088b67fe70466cfbf6e26b1b3fa2d Mon Sep 17 00:00:00 2001 From: jie65535 Date: Mon, 24 Jan 2022 09:13:54 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20=E6=94=B6=E7=9B=8A?= =?UTF-8?q?=E6=A6=9C=E4=B8=8E=E7=99=BD=E7=BB=99=E6=A6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/kotlin/JHorseRacing.kt | 33 +++++++++++++++++++++--- src/main/kotlin/game/PlayerStatistics.kt | 14 +++++++++- 2 files changed, 43 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/JHorseRacing.kt b/src/main/kotlin/JHorseRacing.kt index 7289854..8599ce7 100644 --- a/src/main/kotlin/JHorseRacing.kt +++ b/src/main/kotlin/JHorseRacing.kt @@ -180,6 +180,7 @@ object JHorseRacing : KotlinPlugin( for (bet in pool) { val score = JHRPluginData.Scores[bet.id]!! val stat = getPlayerStat(bet.id) + stat.betCount += 1 stat.totalBetScore += bet.score val income = if (winners.indexOf(bet.number) != -1) { stat.winCount += 1 @@ -190,10 +191,13 @@ object JHorseRacing : KotlinPlugin( JHRPluginData.Scores[bet.id] = score + income mb.add("\n") mb.add(At(bet.id)) - if (income > 0) + if (income > 0) { mb.add(" +$income") - else + stat.totalWinScore += income + } else { mb.add(" $income") + stat.totalLossScore += income + } } } subject.sendMessage(mb.asMessageChain()) @@ -315,7 +319,8 @@ object JHorseRacing : KotlinPlugin( return@subscribeAlways } - getPlayerStat(sender.id).betCount += 1 + // 结算时再计数 + // getPlayerStat(sender.id).betCount += 1 pool.add(Bet(sender.id, no, coin)) subject.sendMessage(JHRPluginConfig.betMessage[Random.nextInt(JHRPluginConfig.betMessage.size)].replace("?", no.toString())) } @@ -454,6 +459,28 @@ object JHorseRacing : KotlinPlugin( } subject.sendMessage(msgB.asMessageChain()) } + msg == "白给榜" -> { + val msgB = MessageChainBuilder(11) + msgB.append("白给榜\n") + JHRPluginData.playerStat.entries.filter { subject.contains(it.key) } + .sortedByDescending { it.value.totalLossScore } + .take(10) + .onEach { + msgB.append("| ${it.value.totalLossScore} | ${subject[it.key]!!.nameCardOrNick}\n") + } + subject.sendMessage(msgB.asMessageChain()) + } + msg == "收益榜" -> { + val msgB = MessageChainBuilder(11) + msgB.append("收益榜\n") + JHRPluginData.playerStat.entries.filter { subject.contains(it.key) } + .sortedByDescending { it.value.totalWinScore } + .take(10) + .onEach { + msgB.append("| ${it.value.totalWinScore} | ${subject[it.key]!!.nameCardOrNick}\n") + } + subject.sendMessage(msgB.asMessageChain()) + } msg == "统计" -> { val ret = MessageChainBuilder() ret.append(message.quote()) diff --git a/src/main/kotlin/game/PlayerStatistics.kt b/src/main/kotlin/game/PlayerStatistics.kt index e6eab70..bf31e8f 100644 --- a/src/main/kotlin/game/PlayerStatistics.kt +++ b/src/main/kotlin/game/PlayerStatistics.kt @@ -31,11 +31,23 @@ class PlayerStatistics { */ var totalBetScore = 0 + /** + * 获胜积分累计 + */ + var totalWinScore = 0 + + /** + * 失败积分累计 + */ + var totalLossScore = 0 + override fun toString(): String { return "下注次数:${betCount}\n" + "获胜次数:${winCount}\n" + "贡献次数:${contribution}\n" + "签到次数:${signCount}\n" + - "下注积分:${totalBetScore}" + "下注积分:${totalBetScore}\n" + + "收益:${totalWinScore}\n" + + "亏损:${totalLossScore}" } }