修复 插件重启后允许重复签到问题

This commit is contained in:
筱傑 2022-01-23 18:30:36 +08:00
parent 549e0b669e
commit c0d4a60be2
2 changed files with 14 additions and 10 deletions

View File

@ -4,6 +4,7 @@ import net.mamoe.mirai.console.data.AutoSavePluginData
import net.mamoe.mirai.console.data.ValueDescription
import net.mamoe.mirai.console.data.value
import top.jie65535.jhr.game.PlayerStatistics
import java.util.*
object JHRPluginData : AutoSavePluginData("HorseRacingPluginData") {
@ -18,4 +19,10 @@ object JHRPluginData : AutoSavePluginData("HorseRacingPluginData") {
@ValueDescription("赛马获胜计数")
val horseWinCount: MutableList<Int> by value()
@ValueDescription("签到表日期")
var signDate by value(Calendar.getInstance().get(Calendar.DATE))
@ValueDescription("当日签到表")
var signUpSheet by value(mutableListOf<Long>())
}

View File

@ -36,16 +36,14 @@ object JHorseRacing : KotlinPlugin(
}
) {
// region 签到
private var date = Calendar.getInstance().get(Calendar.DATE)
private val mSignUpSheet = mutableListOf<Long>()
private val signUpSheet: MutableList<Long>
get() {
val now = Calendar.getInstance().get(Calendar.DATE)
if (date != now) {
date = now
mSignUpSheet.clear()
if (JHRPluginData.signDate != now) {
JHRPluginData.signDate = now
JHRPluginData.signUpSheet.clear()
}
return mSignUpSheet
return JHRPluginData.signUpSheet
}
private fun checkSign(id: Long): Boolean {
@ -457,7 +455,6 @@ object JHorseRacing : KotlinPlugin(
subject.sendMessage(msgB.asMessageChain())
}
msg == "统计" -> {
val stat = getPlayerStat(sender.id)
val ret = MessageChainBuilder()
ret.append(message.quote())
.append(getPlayerStat(sender.id).toString())
@ -465,12 +462,12 @@ object JHorseRacing : KotlinPlugin(
subject.sendMessage(ret.asMessageChain())
}
msg == "胜率" -> {
val ret = MessageChainBuilder()
logger.info("查询胜率")
val ret = StringBuilder()
for (i in 0 until horseCount) {
ret.append("${horseLogo}${i+1} ${JHRPluginData.horseWinCount[i]}/${JHRPluginData.totalRankCount}\n")
}
if (ret.isNotEmpty())
subject.sendMessage(ret.asMessageChain())
subject.sendMessage(ret.toString())
}
}
}