fix: 修复Mod模块
This commit is contained in:
parent
9f83026e56
commit
88f574eea1
|
|
@ -88,9 +88,10 @@ fun main() = GlobalManager.runBlockingMain {
|
||||||
maxBanMinutes = 15,
|
maxBanMinutes = 15,
|
||||||
)
|
)
|
||||||
val modGroupHandlerModule = ModGroupHandlerModule(
|
val modGroupHandlerModule = ModGroupHandlerModule(
|
||||||
moduleName = "ModGrouup",
|
moduleName = "ModGroup",
|
||||||
targetGroupId = 339340846,
|
targetGroupId = 339340846,
|
||||||
answers = listOf("戏鸢", "一只戏鸢", "折戏鸢", "LostInLinearPast", "lostinlinearpast"),
|
answers = listOf("戏鸢", "一只戏鸢", "折戏鸢", "LostInLinearPast", "lostinlinearpast"),
|
||||||
|
pollIntervalMillis = 15_000L,
|
||||||
)
|
)
|
||||||
|
|
||||||
// 注册模块到全局模块管理器
|
// 注册模块到全局模块管理器
|
||||||
|
|
|
||||||
|
|
@ -136,10 +136,12 @@ class ModGroupHandlerModule(
|
||||||
|
|
||||||
provider?.getAllRequests()?.forEach { request ->
|
provider?.getAllRequests()?.forEach { request ->
|
||||||
if (!request.checked && request.groupId == targetGroupId) {
|
if (!request.checked && request.groupId == targetGroupId) {
|
||||||
LoggerUtil.logger.info("[$name] 处理请求: requestId=${request.requestId}, actor=${request.actor}")
|
LoggerUtil.logger.info("[$name] 处理请求: requestId=${request.requestId},requestQQ =${request.invitorUin}")
|
||||||
val answerAllow = answers.contains(request.message)
|
val pattern = """答案:(.*)""".toRegex()
|
||||||
if(answerAllow) {
|
val answer = pattern.find(request.message)?.groupValues?.get(1) ?: ""
|
||||||
val info = napCatClient.send<GetStrangerInfoEvent>(GetStrangerInfoRequest(ID.long(request.requestId)))
|
val answerAllow = answers.contains(answer)
|
||||||
|
if (answerAllow) {
|
||||||
|
val info = napCatClient.send<GetStrangerInfoEvent>(GetStrangerInfoRequest(ID.long(request.invitorUin)))
|
||||||
val levelAllow = info.data.qqLevel >= 16
|
val levelAllow = info.data.qqLevel >= 16
|
||||||
val setRequest = SetGroupAddRequestRequest(
|
val setRequest = SetGroupAddRequestRequest(
|
||||||
levelAllow,
|
levelAllow,
|
||||||
|
|
@ -147,32 +149,57 @@ class ModGroupHandlerModule(
|
||||||
if(!levelAllow) "QQ等级低于16级" else ""
|
if(!levelAllow) "QQ等级低于16级" else ""
|
||||||
)
|
)
|
||||||
napCatClient.send<NapCatEvent>(setRequest)
|
napCatClient.send<NapCatEvent>(setRequest)
|
||||||
if (levelAllow) napCatClient.send<NapCatEvent>(SendGroupMsgRequest(listOf(MessageElement.text(formatRejectRecordMessage(request.requestId))), ID.long(targetGroupId)))
|
if (levelAllow) {
|
||||||
LoggerUtil.logger.info("[$name] 已${if (levelAllow) "同意" else "拒绝"}请求${if(!levelAllow) ",等级不够,${info.data.qqLevel}" else "" }: ${request.requestId}")
|
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 {
|
} else {
|
||||||
napCatClient.sendUnit(SetGroupAddRequestRequest(false, request.requestId.toString(), "答案错误,拒绝次数:${getRejectRecord(request.requestId)?.rejectCount}"))
|
val rejectCount = (getRejectRecord(request.invitorUin)?.rejectCount ?: 0) + 1
|
||||||
addReject(request.actor, "答案错误:${request.message}")
|
napCatClient.sendUnit(SetGroupAddRequestRequest(false, request.requestId.toString(), "答案错误,请输入标准答案,拒绝次数:${rejectCount}"))
|
||||||
LoggerUtil.logger.info("[$name] 答案错误:${request.message},已拒绝请求: ${request.requestId}")
|
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)
|
val record = getRejectRecord(userId)
|
||||||
return if (record != null) {
|
return if (record != null) {
|
||||||
"""
|
"""
|
||||||
用户QQ号:${record.userId}
|
📊 用户审核记录
|
||||||
尝试次数:${record.rejectCount}
|
──────────────────
|
||||||
最终评分:${rate(record.rejectCount)}
|
🔹 用户QQ号:${record.userId}
|
||||||
尝试答案:【${record.reason.joinToString(",")}】
|
🔹 尝试次数:${record.rejectCount}
|
||||||
""".trimIndent()
|
🔹 最终评分:${rate(record.rejectCount)}
|
||||||
|
|
||||||
|
📝 尝试答案:
|
||||||
|
${ "\n" + record.reason.joinToString("\n") { " • $it" }}
|
||||||
|
|
||||||
|
⚠️ 提示:请仔细阅读文档后再在群里提问,否则你会失去你的大脑🧠
|
||||||
|
""".trimIndent()
|
||||||
} else {
|
} else {
|
||||||
"""
|
"""
|
||||||
用户QQ号:${userId}
|
📊 用户审核记录
|
||||||
尝试次数:0
|
──────────────────
|
||||||
最终评分:SSS
|
🔹 用户QQ号:${userId}
|
||||||
""".trimIndent()
|
🔹 尝试次数:0
|
||||||
|
🔹 最终评分:SSS ⭐
|
||||||
|
|
||||||
|
💡 该用户尚未有审核记录
|
||||||
|
⚠️ 提示:请仔细阅读文档后再在群里提问,否则你会失去你的大脑🧠
|
||||||
|
""".trimIndent()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private fun rate(count: Int): String = when (count) {
|
private fun rate(count: Int): String = when (count) {
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,14 @@ class ModuleManager {
|
||||||
modules[module.name] = module
|
modules[module.name] = module
|
||||||
LoggerUtil.logger.info("模块注册: ${module.name}")
|
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