From 12df62d7fee8b80a7bb9ce9a011b19a26f7b9fc3 Mon Sep 17 00:00:00 2001 From: jie65535 Date: Sat, 21 Dec 2024 21:32:29 +0800 Subject: [PATCH] Add member activity level permission --- src/main/kotlin/JChatGPT.kt | 13 ++++++++++--- src/main/kotlin/PluginConfig.kt | 3 +++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/JChatGPT.kt b/src/main/kotlin/JChatGPT.kt index 2abf108..b11946e 100644 --- a/src/main/kotlin/JChatGPT.kt +++ b/src/main/kotlin/JChatGPT.kt @@ -88,7 +88,12 @@ object JChatGPT : KotlinPlugin( // 发送者是否有权限 if (!toCommandSender().hasPermission(chatPermission)) { if (this is GroupMessageEvent) { - if (!sender.isOperator() || !PluginConfig.groupOpHasChatPermission) { + if (PluginConfig.groupOpHasChatPermission && sender.isOperator()) { + // 允许管理员使用 + } else if (sender.active.temperature >= PluginConfig.temperaturePermission) { + // 允许活跃度达标成员使用 + } else { + // 其它情况阻止使用 return } } @@ -188,7 +193,9 @@ object JChatGPT : KotlinPlugin( // 消息内容太长则转为转发消息避免刷屏 buildForwardMessage { for (item in history) { - val temp = toMessage(subject, item.content ?: "...") + if (item.content.isNullOrEmpty()) + continue + val temp = toMessage(subject, item.content!!) when (item.role) { Role.User -> sender says temp Role.Assistant -> bot says temp @@ -318,7 +325,7 @@ object JChatGPT : KotlinPlugin( logger.info("Result=$result") // 过会撤回加载消息 if (receipt != null) { - launch { delay(2.seconds); receipt.recall() } + launch { delay(3.seconds); receipt.recall() } } return result } diff --git a/src/main/kotlin/PluginConfig.kt b/src/main/kotlin/PluginConfig.kt index 0b9950d..908a189 100644 --- a/src/main/kotlin/PluginConfig.kt +++ b/src/main/kotlin/PluginConfig.kt @@ -23,6 +23,9 @@ object PluginConfig : AutoSavePluginConfig("Config") { @ValueDescription("好友是否自动拥有对话权限,默认是") val friendHasChatPermission: Boolean by value(true) + @ValueDescription("群荣誉等级权限门槛,达到这个等级相当于自动拥有权限。") + val temperaturePermission: Int by value(60) + @ValueDescription("等待响应超时时间,单位毫秒,默认60秒") val timeout: Long by value(60000L)