Open ChengTu-Lazy opened 3 months ago
“.”在指令名中表示点或空格分隔的子指令。
不是所有情况都适合用 alias,请自行编写中间件或使用 dialogue 插件代替。
“.”在指令名中表示点或空格分隔的子指令。
不是所有情况都适合用 alias,请自行编写中间件或使用 dialogue 插件代替。
我懂你的意思了,把正则匹配这一段放到中间件中进行对吗,不过我还是希望能把正则匹配放到alias里,这样就能无痛更换了
不管怎样,句点在指令名中属于特殊字符。而且就算可以注册名称为一个句点的指令,调用时也必须在后面加一个空格才能传入参数,同时即使句点后面没有数字,也会被认为是在调用该指令,这可能影响 Koishi 的其他操作逻辑,如回复句点来接受拼写纠正。
希望能把正则匹配放到 alias 里
我们之所以不推荐使用 shortcut 就是因为有正则。正则表达式的平台支持比较糟糕,并且不好的正则也会有一系列性能问题。
如果非常需要使用正则的话还是继续用 shortcut 吧,未来也可能有其他方案提供。
Describe the bug
我写的插件是:https://github.com/ChengTu-Lazy/koishi-plugin-dst-search 其中一个指令是 [.] 或者 [。] 用alias注册指令时就报错了
Steps to reproduce
Expected behavior
按例子来说,不用alias直接用我注释掉的shrtcut的话,输入.1应当回复test1
但实际上这样的写法会直接报错
Screenshots
Versions
System: OS: Windows 11 10.0.22631 CPU: (16) x64 13th Gen Intel(R) Core(TM) i5-1340P
Binaries: Node: 18.20.0 Yarn: 4.1.1
Koishi: Core: 4.17.10 Console: 5.29.3
Additional context
我有看到文档说如果用户加载的多个插件都注册了同一个指令别名,那么后一个加载的插件将直接加载失败。
实际上shortcut的正则匹配可以实现我的需求,但是它要被alias替换了,以后某个版本可能就用不了了