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

Issue:
[Bug]: 可以通过序号删除已绑定的角色卡
### 在提问之前...

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

### 问题描述

如题

### 如何复现

/

### 你期望发生的

/

### 实际上发生的

/

### 日志文件

/

### 截图

_No response_

### 海豹核心版本

1.4.6-dev+20240417.18fb484

### 操作系统

/

### 帐号类型

/

### 使用协议

_No response_

### 附加内容

_No response_


Discussion / hints:

Fix patch:
diff --git a/dice/builtin_commands.go b/dice/builtin_commands.go
index a3b70f61..f002c921 100644
--- a/dice/builtin_commands.go
+++ b/dice/builtin_commands.go
@@ -2152,7 +2152,7 @@ func (d *Dice) registerCoreCommands() {
 					ReplyToSender(ctx, msg, DiceFormatTmpl(ctx, "核心:角色管理_储存失败_已绑定"))
 				}
 			} else if cmdArgs.IsArgEqual(1, "del", "rm") {
-				name := getNickname()
+				name := tryConvertIndex2Name(ctx, getNickname())
 				if ctx.ChBindGet(name) != nil {
 					VarSetValueStr(ctx, "$t角色名", name)
 					ReplyToSender(ctx, msg, DiceFormatTmpl(ctx, "核心:角色管理_删除失败_已绑定"))
@@ -2164,16 +2164,11 @@ func (d *Dice) registerCoreCommands() {
 				VarSetValueStr(ctx, "$t角色名", name)
 				VarSetValueStr(ctx, "$t新角色名", fmt.Sprintf("<%s>", name))
 
-				name = tryConvertIndex2Name(ctx, name)
 				if _, exists := vars.ValueMap.Get("$ch:" + name); !exists {
 					ReplyToSender(ctx, msg, DiceFormatTmpl(ctx, "核心:角色管理_角色不存在"))
 					return CmdExecuteResult{Matched: true, Solved: true}
 				}
 
-				// 如果name原是序号，这里将被更新为角色名
-				VarSetValueStr(ctx, "$t角色名", name)
-				VarSetValueStr(ctx, "$t新角色名", fmt.Sprintf("<%s>", name))
-
 				vars.ValueMap.Del("$ch:" + name)
 				vars.LastWriteTime = time.Now().Unix()
 


Test patch: