eiriksgata/mirai-rulateday-dice

.q指令的拓展使用

eiriksgata opened this issue · 0 comments

由于 .q 指令对于用户来说,如果查询的文档过多,那么将会导致搜索出来的文本量过多,因此可以考虑使用配置文件拓展 该指令的应用范畴。 例如 .qdnd3e ,那么可以单独查询 文档目录下的 dnd3e.json文件。用户可以通过配置文件来达成 对应的映射关系。

虽然本质上来说,这种拓展应当在写在代码层面上,但是用户自身二次开发编译本插件的学习成本过高,因此考虑另外一种方案。

方案设计如下:

  • rulatday -dice 程序初始化后,在config/com.github.eiriksgata.rulateday-dice/config.json 生成配置文件
  • 通过修改配置文件中的配置项,来进行指令映射。配置参考如下:
{
  "file.version": "1.0.6",
  "master.QQ.number": "",
  "auto.accept.friend.request": true,
  "auto.accept.group.request": true,
  "reply.at.user": false,
  "ai-drawing": {
    "url": "",
    "remote": true,
    "userId": ""
  },
  "instructions.prefix.list": [
    ".",
    ""
  ],
  "open-ai": {
    "api-key": ""
  },
  "instruction": {
    "expand": {
      "q": {
        "dnd5e": [
          "dnd5e.json"
        ],
        "coc": [
          "coc1.json",
          "coc2.json",
          "coc7.json"
        ]
      }
    }
  }
}

我们需要在 instruction 的 expand 拓展中 对q的指令进行拓展。 (注意:只有指定拓展功能的指令才会生效,目前只有q指令有用)
可以看到如果 按照以上的形式进行配置。
那么当你输入 .qdnd5e法术 的时候它将会 只在 dnd5e.json 的这个文件中进行内容查询。(查询的文件都应当放在 data\com.github.eiriksgata.rulateday-dice\custom-doc 当前程序目录的该文件路径中)
当然你想多个文件一起查询,也可以配置多个文件,如上述的.qcoc指令,便是从 coc1.json \ coc2.json \ coc7.json 这三个文件中进行查询。

除此之外如果你想直接查询所有的文档,那么 你则直接输入 .q关键字 即可,你可以可以理解为,如果 用户输入.qxxxx 其中 xxxx 开头匹配项没有 出现 上述的拓展指令的关键字,那么则 按全部文档查询。

可能你会疑问为什么都要加上 .q 作为前缀,这是因为 拓展指令 是 在当前有的指令基础下 做的 拓展功能,而上述的方案,都是 在 .q指令的功能下拓展的,因此 需要携带上 .q