fix: 修复Mod模块
This commit is contained in:
parent
9f83026e56
commit
88f574eea1
|
|
@ -88,9 +88,10 @@ fun main() = GlobalManager.runBlockingMain {
|
|||
maxBanMinutes = 15,
|
||||
)
|
||||
val modGroupHandlerModule = ModGroupHandlerModule(
|
||||
moduleName = "ModGrouup",
|
||||
moduleName = "ModGroup",
|
||||
targetGroupId = 339340846,
|
||||
answers = listOf("戏鸢", "一只戏鸢", "折戏鸢", "LostInLinearPast", "lostinlinearpast"),
|
||||
pollIntervalMillis = 15_000L,
|
||||
)
|
||||
|
||||
// 注册模块到全局模块管理器
|
||||
|
|
|
|||
|
|
@ -136,10 +136,12 @@ class ModGroupHandlerModule(
|
|||
|
||||
provider?.getAllRequests()?.forEach { request ->
|
||||
if (!request.checked && request.groupId == targetGroupId) {
|
||||
LoggerUtil.logger.info("[$name] 处理请求: requestId=${request.requestId}, actor=${request.actor}")
|
||||
val answerAllow = answers.contains(request.message)
|
||||
if(answerAllow) {
|
||||
val info = napCatClient.send<GetStrangerInfoEvent>(GetStrangerInfoRequest(ID.long(request.requestId)))
|
||||
LoggerUtil.logger.info("[$name] 处理请求: requestId=${request.requestId},requestQQ =${request.invitorUin}")
|
||||
val pattern = """答案:(.*)""".toRegex()
|
||||
val answer = pattern.find(request.message)?.groupValues?.get(1) ?: ""
|
||||
val answerAllow = answers.contains(answer)
|
||||
if (answerAllow) {
|
||||
val info = napCatClient.send<GetStrangerInfoEvent>(GetStrangerInfoRequest(ID.long(request.invitorUin)))
|
||||
val levelAllow = info.data.qqLevel >= 16
|
||||
val setRequest = SetGroupAddRequestRequest(
|
||||
levelAllow,
|
||||
|
|
@ -147,32 +149,57 @@ class ModGroupHandlerModule(
|
|||
if(!levelAllow) "QQ等级低于16级" else ""
|
||||
)
|
||||
napCatClient.send<NapCatEvent>(setRequest)
|
||||
if (levelAllow) napCatClient.send<NapCatEvent>(SendGroupMsgRequest(listOf(MessageElement.text(formatRejectRecordMessage(request.requestId))), ID.long(targetGroupId)))
|
||||
LoggerUtil.logger.info("[$name] 已${if (levelAllow) "同意" else "拒绝"}请求${if(!levelAllow) ",等级不够,${info.data.qqLevel}" else "" }: ${request.requestId}")
|
||||
if (levelAllow) {
|
||||
napCatClient.send<NapCatEvent>(
|
||||
SendGroupMsgRequest(
|
||||
listOf(
|
||||
MessageElement.at(ID.long(request.invitorUin), request.requesterNick),
|
||||
MessageElement.text("\n"),
|
||||
MessageElement.text(
|
||||
formatRejectRecordMessage(request.invitorUin)
|
||||
)
|
||||
), ID.long(targetGroupId)
|
||||
)
|
||||
)
|
||||
}
|
||||
LoggerUtil.logger.info("[$name] 已${if (levelAllow) "同意" else "拒绝"} 请求${if(!levelAllow) ",等级不够,${info.data.qqLevel}" else "" }: ${request.requestId}")
|
||||
if(levelAllow) stateCache?.records?.remove(request.invitorUin)
|
||||
} else {
|
||||
napCatClient.sendUnit(SetGroupAddRequestRequest(false, request.requestId.toString(), "答案错误,拒绝次数:${getRejectRecord(request.requestId)?.rejectCount}"))
|
||||
addReject(request.actor, "答案错误:${request.message}")
|
||||
LoggerUtil.logger.info("[$name] 答案错误:${request.message},已拒绝请求: ${request.requestId}")
|
||||
val rejectCount = (getRejectRecord(request.invitorUin)?.rejectCount ?: 0) + 1
|
||||
napCatClient.sendUnit(SetGroupAddRequestRequest(false, request.requestId.toString(), "答案错误,请输入标准答案,拒绝次数:${rejectCount}"))
|
||||
addReject(request.invitorUin, answer)
|
||||
LoggerUtil.logger.info("[$name] 答案错误:${answer},已拒绝请求: ${request.requestId}")
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
fun formatRejectRecordMessage(userId: Long): String {
|
||||
private fun formatRejectRecordMessage(userId: Long): String {
|
||||
val record = getRejectRecord(userId)
|
||||
return if (record != null) {
|
||||
"""
|
||||
用户QQ号:${record.userId}
|
||||
尝试次数:${record.rejectCount}
|
||||
最终评分:${rate(record.rejectCount)}
|
||||
尝试答案:【${record.reason.joinToString(",")}】
|
||||
""".trimIndent()
|
||||
📊 用户审核记录
|
||||
──────────────────
|
||||
🔹 用户QQ号:${record.userId}
|
||||
🔹 尝试次数:${record.rejectCount}
|
||||
🔹 最终评分:${rate(record.rejectCount)}
|
||||
|
||||
📝 尝试答案:
|
||||
${ "\n" + record.reason.joinToString("\n") { " • $it" }}
|
||||
|
||||
⚠️ 提示:请仔细阅读文档后再在群里提问,否则你会失去你的大脑🧠
|
||||
""".trimIndent()
|
||||
} else {
|
||||
"""
|
||||
用户QQ号:${userId}
|
||||
尝试次数:0
|
||||
最终评分:SSS
|
||||
""".trimIndent()
|
||||
📊 用户审核记录
|
||||
──────────────────
|
||||
🔹 用户QQ号:${userId}
|
||||
🔹 尝试次数:0
|
||||
🔹 最终评分:SSS ⭐
|
||||
|
||||
💡 该用户尚未有审核记录
|
||||
⚠️ 提示:请仔细阅读文档后再在群里提问,否则你会失去你的大脑🧠
|
||||
""".trimIndent()
|
||||
}
|
||||
}
|
||||
private fun rate(count: Int): String = when (count) {
|
||||
|
|
|
|||
|
|
@ -20,6 +20,14 @@ class ModuleManager {
|
|||
modules[module.name] = module
|
||||
LoggerUtil.logger.info("模块注册: ${module.name}")
|
||||
}
|
||||
/**
|
||||
* 注册多模块到管理器
|
||||
*/
|
||||
fun registerModules(moduleList: List<BaseModule>) {
|
||||
for (module in moduleList) {
|
||||
registerModule(module)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载指定模块
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
package top.r394realms.ltdmanagertest.help
|
||||
|
||||
import top.r3944realms.ltdmanager.GlobalManager
|
||||
|
||||
fun main() = GlobalManager.runBlockingMain {
|
||||
|
||||
}
|
||||
25
src/test/kotlin/top/r394realms/ltdmanagertest/mod/ModTest.kt
Normal file
25
src/test/kotlin/top/r394realms/ltdmanagertest/mod/ModTest.kt
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
package top.r394realms.ltdmanagertest.mod
|
||||
|
||||
import top.r3944realms.ltdmanager.GlobalManager
|
||||
import top.r3944realms.ltdmanager.module.ModGroupHandlerModule
|
||||
|
||||
|
||||
fun main() = GlobalManager.runBlockingMain {
|
||||
val groupId:Long = 538751386
|
||||
val selfQQId = 3327379836
|
||||
val selfNickName = "闲趣老土豆"
|
||||
// 创建模块实例
|
||||
|
||||
val modGroupHandlerModule = ModGroupHandlerModule(
|
||||
moduleName = "ModGroup",
|
||||
targetGroupId = 339340846,
|
||||
answers = listOf("戏鸢", "一只戏鸢", "折戏鸢", "LostInLinearPast", "lostinlinearpast"),
|
||||
)
|
||||
|
||||
// 注册模块到全局模块管理器
|
||||
|
||||
GlobalManager.moduleManager.registerModule(modGroupHandlerModule)
|
||||
|
||||
// 加载模块
|
||||
GlobalManager.moduleManager.loadModule(modGroupHandlerModule.name)
|
||||
}
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
package top.r394realms.ltdmanagertest.msg
|
||||
|
||||
import top.r3944realms.ltdmanager.GlobalManager
|
||||
import top.r3944realms.ltdmanager.napcat.NapCatClient
|
||||
import top.r3944realms.ltdmanager.napcat.data.ID
|
||||
import top.r3944realms.ltdmanager.napcat.data.MessageElement
|
||||
import top.r3944realms.ltdmanager.napcat.request.other.SendGroupMsgRequest
|
||||
fun main() = GlobalManager.runBlockingMain {
|
||||
val napCatClient = NapCatClient.create()
|
||||
|
||||
// 生成9x9乘法表字符串
|
||||
val multiplicationTable = buildString {
|
||||
for (i in 1..9) {
|
||||
for (j in 1..i) {
|
||||
append("$j×$i=${i * j}\t")
|
||||
}
|
||||
appendLine() // 换行
|
||||
}
|
||||
}
|
||||
|
||||
// 生成对齐检查字符
|
||||
val alignmentCheck = buildString {
|
||||
appendLine("📏 对齐检查(每个数字占位):")
|
||||
appendLine("1234567890") // 数字标尺
|
||||
appendLine("─".repeat(20)) // 分隔线
|
||||
|
||||
for (i in 1..9) {
|
||||
for (j in 1..i) {
|
||||
val product = i * j
|
||||
val placeholder = "X".repeat("$j×$i=$product".length)
|
||||
append("$placeholder\t")
|
||||
}
|
||||
appendLine()
|
||||
}
|
||||
}
|
||||
|
||||
napCatClient.sendUnit(
|
||||
SendGroupMsgRequest(
|
||||
listOf(
|
||||
MessageElement.at(ID.long(2561098830), "幸福亮亮"),
|
||||
MessageElement.text("\n"),
|
||||
MessageElement.text("9×9乘法表:\n"),
|
||||
MessageElement.text(multiplicationTable),
|
||||
MessageElement.text("\n────────────────────\n"),
|
||||
MessageElement.text(alignmentCheck),
|
||||
MessageElement.text("\n提问前,请看文档,不看文档就提问直接肘击(")
|
||||
),
|
||||
ID.long(339340846)
|
||||
)
|
||||
)
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user