diff --git a/build.gradle.kts b/build.gradle.kts index 9a3bf17..f2af2fb 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,13 +1,13 @@ plugins { - val kotlinVersion = "1.6.0" + val kotlinVersion = "1.7.10" kotlin("jvm") version kotlinVersion kotlin("plugin.serialization") version kotlinVersion - id("net.mamoe.mirai-console") version "2.12.2" + id("net.mamoe.mirai-console") version "2.14.0" } group = "top.jie65535" -version = "1.2.1" +version = "1.3.0" repositories { mavenLocal() diff --git a/src/main/kotlin/top/jie65535/jnr/JNRPluginConfig.kt b/src/main/kotlin/top/jie65535/jnr/JNRPluginConfig.kt index 1b80eb4..6db422a 100644 --- a/src/main/kotlin/top/jie65535/jnr/JNRPluginConfig.kt +++ b/src/main/kotlin/top/jie65535/jnr/JNRPluginConfig.kt @@ -47,4 +47,9 @@ object JNRPluginConfig : AutoSavePluginConfig("jnr") { */ @ValueDescription("用户私聊回复间隔(秒),0表示无限制") var userInterval: Long by value(0L) + + /** + * 是否在间隔期间依然拦截事件,与 [isIntercept] 有关 + */ + var interceptAtInterval: Boolean by value(true) } \ No newline at end of file diff --git a/src/main/kotlin/top/jie65535/jnr/JNudgeReply.kt b/src/main/kotlin/top/jie65535/jnr/JNudgeReply.kt index 9905297..9b439db 100644 --- a/src/main/kotlin/top/jie65535/jnr/JNudgeReply.kt +++ b/src/main/kotlin/top/jie65535/jnr/JNudgeReply.kt @@ -18,7 +18,7 @@ object JNudgeReply : KotlinPlugin( JvmPluginDescription( id = "me.jie65535.mirai-console-jnr-plugin", name = "J Nudge Reply", - version = "1.2.1", + version = "1.3.0", ) { author("jie65535") info("""自定义戳一戳回复插件""") @@ -61,7 +61,7 @@ object JNudgeReply : KotlinPlugin( } // 判断间隔 - if (isReply) { + val isIgnored = if (isReply) { val totalWeight = replyList.sumOf { it.weight } var w = Random.nextInt(totalWeight) for (msg in replyList) { @@ -72,18 +72,23 @@ object JNudgeReply : KotlinPlugin( w -= msg.weight } } + false } else { logger.info("正在CD中,本次已忽略") + true } // 拦截事件 - if (JNRPluginConfig.priority != EventPriority.MONITOR && JNRPluginConfig.isIntercept) { - intercept() + if (JNRPluginConfig.priority != EventPriority.MONITOR && JNRPluginConfig.isIntercept + ) { + // 在被忽略的情况下判断是否拦截 + if (!isIgnored || JNRPluginConfig.interceptAtInterval) + intercept() } } } - logger.info { "Plugin loaded" } + logger.info { "Plugin loaded. https://github.com/jie65535/mirai-console-jnr-plugin" } } private suspend fun doReply(message: ReplyMessage, event: NudgeEvent) {