@@ -6,11 +6,13 @@ import me.lightless.izumi.ApplicationContext
66import me.lightless.izumi.dao.ChatMessage
77import me.lightless.izumi.dao.ChatMessageDAO
88import me.lightless.izumi.dao.RyuoDAO
9+ import me.lightless.izumi.dao.RyuoModel
910import me.lightless.izumi.plugin.timer.ITimer
1011import net.mamoe.mirai.Bot
1112import net.mamoe.mirai.contact.Contact.Companion.sendImage
1213import net.mamoe.mirai.message.data.At
1314import net.mamoe.mirai.message.data.buildMessageChain
15+ import org.jetbrains.exposed.sql.SortOrder
1416import org.jetbrains.exposed.sql.and
1517import org.jetbrains.exposed.sql.transactions.transaction
1618import org.joda.time.DateTime
@@ -95,7 +97,7 @@ class Ryuo : ITimer {
9597 val nicknameInnerMap = nicknameMap[msgDAO.groupId] ? : continue
9698
9799 if (msgDAO.qq !in ryuoInnerMap.keys) {
98- ryuoInnerMap[msgDAO.qq] = 0
100+ ryuoInnerMap[msgDAO.qq] = 1
99101 } else {
100102 ryuoInnerMap[msgDAO.qq] = ryuoInnerMap[msgDAO.qq] as Long + 1
101103 }
@@ -135,6 +137,16 @@ class Ryuo : ITimer {
135137 add(yesterdayMessage)
136138 })
137139
140+ // FIXME 这么写,会导致某天有多位龙王的时候,连任计数出错,以后再改
141+ for (rid in ryuoIds) {
142+ val historyCnt = this .checkHistory(rid)
143+ fullMessage = fullMessage.plus(buildMessageChain {
144+ add(" \n " )
145+ add(At (rid))
146+ add(" 已经连任 $historyCnt 天的龙王了,加油哦~" )
147+ })
148+ }
149+
138150 // 存起来
139151 transaction {
140152 for (rid in ryuoIds) {
@@ -154,4 +166,16 @@ class Ryuo : ITimer {
154166 }
155167 }
156168
169+ private fun checkHistory (todayRyuo : Long ): Int {
170+ val ryuoList = transaction {
171+ RyuoDAO .all().orderBy(RyuoModel .createdTime to SortOrder .DESC )
172+ }
173+ var cnt = 1
174+ ryuoList
175+ .takeWhile { it.qq == todayRyuo }
176+ .forEach { _ -> cnt + = 1 }
177+
178+ return cnt
179+ }
180+
157181}
0 commit comments