Repository: sealdice/sealdice-core (language: go)

Issue:
[Bug]: 插件定义的游戏系统中，群名片模板不会自动更新
### 在提问之前...

- [X] 我理解 Issue 是用于反馈和解决问题的，而非吐槽评论区，将尽可能提供更多信息帮助问题解决
- [X] 我填写了简短且清晰明确的标题，以便开发者在翻阅 issue 列表时能快速确定大致问题。而不是“一个建议”、“卡住了”等
- [X] 我已查看master branch或最新测试版的更新内容，并未提及该 bug 已被修复的情况
- [X] 已有issue中并没有看见其他人与我反馈相同的问题

### 问题描述

如题

原因是 sn 指令在使用自定义模板时，没有将 `ctx.Player.AutoSetNameTemplate` 设置为 **模板文本**，而是设置成了 **模板经过格式化的文本**

### 如何复现

NA

### 你期望发生的

NA

### 实际上发生的

NA

### 日志文件

![eed8ac632d0bedc9ae1334f260dda7fa](https://github.com/sealdice/sealdice-core/assets/45380560/246aaa08-910d-4a72-b221-a00fe90f1fa1)


### 截图

_No response_

### 海豹核心版本

1.4.2 + dev

### 操作系统

NA

### 帐号类型

NA

### 使用协议

_No response_

### 附加内容

_No response_


Discussion / hints:

Fix patch:
diff --git a/dice/ext_log.go b/dice/ext_log.go
index 28b92bea..8545c9a5 100644
--- a/dice/ext_log.go
+++ b/dice/ext_log.go
@@ -690,24 +690,23 @@ func RegisterBuiltinExtLog(self *Dice) {
 			default:
 				ok := false
 				ctx.Dice.GameSystemMap.Range(func(key string, value *GameSystemTemplate) bool {
-					name := strings.ToLower(val)
-					// 先检查绝对匹配
-					if t, exists := value.NameTemplate[val]; exists {
-						text, _ := SetPlayerGroupCardByTemplate(ctx, t.Template)
-						ctx.Player.AutoSetNameTemplate = text
-						ReplyToSender(ctx, msg, "已自动设置名片为"+val+"格式: "+text+"\n如有权限会持续自动改名片。使用.sn off可关闭")
-						ok = true
-						return false
+					var t NameTemplateItem
+					var exists bool
+
+					// 先检查绝对匹配, 不存在则检查小写匹配
+					if t, exists = value.NameTemplate[val]; !exists {
+						t, exists = value.NameTemplate[strings.ToLower(val)]
 					}
-					// 再检查小写匹配
-					if t, exists := value.NameTemplate[name]; exists {
-						text, _ := SetPlayerGroupCardByTemplate(ctx, t.Template)
-						ctx.Player.AutoSetNameTemplate = text
-						ReplyToSender(ctx, msg, "已自动设置名片为"+name+"格式: "+text+"\n如有权限会持续自动改名片。使用.sn off可关闭")
-						ok = true
-						return false
+
+					if !exists {
+						return true
 					}
-					return true
+
+					text, _ := SetPlayerGroupCardByTemplate(ctx, t.Template)
+					ctx.Player.AutoSetNameTemplate = t.Template
+					ReplyToSender(ctx, msg, "已自动设置名片为"+val+"格式: "+text+"\n如有权限会持续自动改名片。使用.sn off可关闭")
+					ok = true
+					return false
 				})
 
 				if ok {


Test patch: