添加可切换闲置状态的命令

This commit is contained in:
dongRogen 2022-08-09 20:32:39 +08:00
parent 21bcedcb17
commit b2090cc09b
4 changed files with 44 additions and 6 deletions

View File

@ -20,4 +20,43 @@ object PluginCommands : CompositeCommand(PluginMain, "jcf") {
}
sendMessage(msg.toString())
}
}
@SubCommand
@Description("设置订阅信息推送botqq id")
suspend fun CommandSender.setSubsSender(sender: Long) {
PluginConfig.subscribeSender = sender
sendMessage("OK! ")
}
@SubCommand
@Description("设置检查间隔(单位:秒)")
suspend fun CommandSender.setCheckInterval(second: Long) {
PluginConfig.checkInterval = second
sendMessage("OK! 将在下次检查结束后应用")
}
@SubCommand
@Description("查看订阅处理的状态")
suspend fun CommandSender.subStat() {
val subs = PluginMain.subscribeHandler
if (subs.isIdle) {
sendMessage("订阅器闲置中")
} else {
sendMessage("订阅处理正常运行中")
}
}
@SubCommand
@Description("使订阅器闲置")
suspend fun CommandSender.idleSubs() {
PluginMain.subscribeHandler.idle()
sendMessage("OK已闲置")
}
@SubCommand
@Description("使订阅器恢复运行")
suspend fun CommandSender.runSubs() {
PluginMain.subscribeHandler.start()
sendMessage("OK已恢复订阅处理")
}
}

View File

@ -25,11 +25,11 @@ object PluginConfig : AutoSavePluginConfig("JCurseforgeConfig") {
* 订阅信息推送bot
*/
@ValueDescription("订阅信息推送botqq id")
val subscribeSender: Long by value(-1L)
var subscribeSender: Long by value(-1L)
/**
* 检查间隔
*/
@ValueDescription("检查间隔(单位:秒)")
val checkInterval: Long by value(60 * 60 * 4L)
var checkInterval: Long by value(60 * 60 * 4L)
}

View File

@ -43,7 +43,7 @@ object PluginMain: KotlinPlugin(
launch {
subscribeHandler.load(this)
}
subscribeHandler.start()// TODO 添加可切换闲置状态的命令
subscribeHandler.start()
logger.info { "Plugin Enabled" }
}
}

View File

@ -224,14 +224,13 @@ class SubscribeHandler(
*/
private fun CoroutineScope.loop() = launch {
val senderQQ = PluginConfig.subscribeSender
val interval = PluginConfig.checkInterval
if (senderQQ < 0) {
logger.warning("必须配置订阅信息推送botqq id才可以进行订阅推送")
logger.warning("插件会持续收集订阅与检查mod更新但无法进行消息推送。")
}
logger.info("subscription listening")
while (true) {
delay(1000 * interval)
delay(1000 * PluginConfig.checkInterval)
if (isIdle) continue
val subSet = HashMap(PluginData.subscriptionSet)