mirror of
https://github.com/jie65535/JChatGPT.git
synced 2026-06-23 00:49:31 +08:00
Guard group active-level fetch in name card serialization
member.active.temperature relies on OneBot pulling group honor data, which throws "Error code: 2" when the upstream is busy/unavailable. That access sat outside the existing title try/catch, so a failure propagated through getSystemPrompt -> onMessage and aborted the entire reply. Wrap the active.temperature access in its own try/catch and degrade gracefully (omit the lv segment) instead of breaking the whole turn. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -1023,11 +1023,16 @@ object JChatGPT : KotlinPlugin(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun getNameCard(member: Member): String {
|
private fun getNameCard(member: Member): String {
|
||||||
val nameCard = StringBuilder()
|
val nameCard = StringBuilder("【")
|
||||||
// 群活跃等级
|
// 群活跃等级:active 依赖 OneBot 拉取群荣誉数据,繁忙/失败时会抛 "Error code: 2",
|
||||||
nameCard.append("【lv").append(member.active.temperature)
|
// 必须兜底,否则整次回复都会因取名片失败而中断。
|
||||||
|
try {
|
||||||
|
nameCard.append("lv").append(member.active.temperature).append(' ')
|
||||||
|
} catch (e: Throwable) {
|
||||||
|
logger.warning("获取群活跃等级失败", e)
|
||||||
|
}
|
||||||
// 真实群身份:始终按实际权限显示,不会被专属头衔覆盖
|
// 真实群身份:始终按实际权限显示,不会被专属头衔覆盖
|
||||||
nameCard.append(' ').append(
|
nameCard.append(
|
||||||
when (member.permission) {
|
when (member.permission) {
|
||||||
OWNER -> "群主"
|
OWNER -> "群主"
|
||||||
ADMINISTRATOR -> "管理员"
|
ADMINISTRATOR -> "管理员"
|
||||||
|
|||||||
Reference in New Issue
Block a user