增加 胜率统计

This commit is contained in:
筱傑 2022-01-23 16:20:21 +08:00
parent 30eb1b2883
commit 55ce2defc9
3 changed files with 41 additions and 5 deletions

View File

@ -12,4 +12,10 @@ object JHRPluginData : AutoSavePluginData("HorseRacingPluginData") {
@ValueDescription("用户统计")
val playerStat: MutableMap<Long, PlayerStatistics> by value()
@ValueDescription("总比赛场次")
var totalRankCount by value(0)
@ValueDescription("赛马获胜计数")
val horseWinCount: MutableList<Int> by value()
}

View File

@ -159,14 +159,13 @@ object JHorseRacing : KotlinPlugin(
}
val mb = MessageChainBuilder()
for (winner in winners) {
// 增加该赛马胜场
JHRPluginData.horseWinCount[winner-1] += 1
mb.add(JHRPluginConfig.winnerMessage[Random.nextInt(JHRPluginConfig.winnerMessage.size)].replace("?", winner.toString()))
mb.add("\n")
}
// if (winners.size == 1) {
// mb.add("${winners[0]} 最终赢得了胜利,让我们为它鼓掌")
// } else {
// mb.add("${winners.joinToString()} 一起赢得了胜利,让我们为它们鼓掌")
// }
// 增加总赛马场次
JHRPluginData.totalRankCount += 1
ranks.remove(subject.id)
val pool = pools.remove(subject.id)
if (pool != null && pool.size > 0) {
@ -200,6 +199,11 @@ object JHorseRacing : KotlinPlugin(
JHRPluginData.reload()
JHRCommand.register()
// 初始化赛马胜场计数器
while (JHRPluginData.horseWinCount.size < horseCount) {
JHRPluginData.horseWinCount.add(0)
}
val eventChannel = GlobalEventChannel.parentScope(this)
eventChannel.subscribeAlways<GroupMessageEvent> {
val msg = message.contentToString()
@ -448,6 +452,14 @@ object JHorseRacing : KotlinPlugin(
.append("ヾ(◍°∇°◍)ノ゙继续加油吧!")
subject.sendMessage(ret.asMessageChain())
}
msg == "胜率" -> {
val ret = MessageChainBuilder()
for (i in 0 until horseCount) {
ret.append("${horseLogo}${i+1} ${JHRPluginData.horseWinCount[i]}/${JHRPluginData.totalRankCount}\n")
}
if (ret.isNotEmpty())
subject.sendMessage(ret.asMessageChain())
}
}
}

View File

@ -1,8 +1,26 @@
package top.jie65535.jhr.game
/**
* 玩家数据统计
*/
class PlayerStatistics {
/**
* 下注次数
*/
var betCount = 0
/**
* 胜利次数
*/
var winCount = 0
/**
* 贡献次数增加词条次数
*/
var contribution = 0
/**
* 签到次数
*/
var signCount = 0
}