sealdice / sealdice-core

海豹骰核心程序,船新的trpg骰点机器人。轻量易用,功能强大,支持所有主流IM平台,并能在win/linux/mac/android下使用。
https://sealdice.com
MIT License
155 stars 40 forks source link

[Bug]: 规则插件同名指令覆盖问题 #1106

Closed MintCider closed 1 week ago

MintCider commented 3 weeks ago

在提问之前...

问题描述

当新规则插件存在与既有插件同名指令时,即使没有激活新规则,也会导致指令被覆盖。例如,seal-fu 插件使用 rc 作为检定指令,在安装此插件后,即使群内开启的仍为 coc 规则,使用 .rc 时仍然唤起了最终物语的检定指令。

猜测原因为:插件注册命令时后注册的覆盖先注册的。打开某一特定规则时,会重新注册规则模版关联的插件,因此在重载插件后,再次 .set coc 可以正确使用 .rc 指令。但是这不符合正常的使用逻辑,即使注册新的规则插件,在对应规则未被激活前,不应覆盖已有指令。

如何复现

  1. 安装规则插件,例如 seal-fu
  2. .set coc
  3. 重载插件
  4. .rc ...

你期望发生的

触发 COC7 插件的 rc 指令

实际上发生的

触发 seal-fu 插件的 rc 指令

日志文件

无关信息

截图

No response

海豹核心版本

1.4.6-beta+20240731.a2ba18f

操作系统

Linux

帐号类型

无关信息

使用协议

No response

附加内容

No response