mirror of
https://github.com/jie65535/JChatGPT.git
synced 2026-06-23 00:49:31 +08:00
Separate real group role from title in serialized name card
A custom special title (e.g. a troll "群主" given to a regular member) used to override the permission-based role, misleading the LLM about who actually holds authority. Now the real role (群主/管理员/群员) from member.permission is always shown, with the title slot showing the special title (labeled 头衔"…") when present, otherwise falling back to the activity-level temperatureTitle that everyone sees in chat. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -982,19 +982,22 @@ object JChatGPT : KotlinPlugin(
|
|||||||
private fun getNameCard(member: Member): String {
|
private fun getNameCard(member: Member): String {
|
||||||
val nameCard = StringBuilder()
|
val nameCard = StringBuilder()
|
||||||
// 群活跃等级
|
// 群活跃等级
|
||||||
nameCard.append("【lv").append(member.active.temperature).append(" ")
|
nameCard.append("【lv").append(member.active.temperature)
|
||||||
try {
|
// 真实群身份:始终按实际权限显示,不会被专属头衔覆盖
|
||||||
// 群头衔
|
nameCard.append(' ').append(
|
||||||
if (member.specialTitle.isNotEmpty()) {
|
|
||||||
nameCard.append(member.specialTitle)
|
|
||||||
} else {
|
|
||||||
nameCard.append(
|
|
||||||
when (member.permission) {
|
when (member.permission) {
|
||||||
OWNER -> "群主"
|
OWNER -> "群主"
|
||||||
ADMINISTRATOR -> "管理员"
|
ADMINISTRATOR -> "管理员"
|
||||||
MEMBER -> member.temperatureTitle
|
MEMBER -> "群员"
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
// 头衔:有专属头衔则显示专属头衔(群主可任意赋予,可能与真实身份不符,故标注"头衔"以区分),
|
||||||
|
// 否则回退到聊天窗口可见的活跃等级称号
|
||||||
|
try {
|
||||||
|
if (member.specialTitle.isNotEmpty()) {
|
||||||
|
nameCard.append(" 头衔\"").append(member.specialTitle).append('"')
|
||||||
|
} else if (member.temperatureTitle.isNotEmpty()) {
|
||||||
|
nameCard.append(' ').append(member.temperatureTitle)
|
||||||
}
|
}
|
||||||
} catch (e: Throwable) {
|
} catch (e: Throwable) {
|
||||||
logger.warning("获取群头衔失败", e)
|
logger.warning("获取群头衔失败", e)
|
||||||
|
|||||||
Reference in New Issue
Block a user