LNNBot:修订间差异
| 第14行: | 第14行: | ||
DGCK81LNN 编写的插件市场插件会[https://github.com/DGCK81LNN?tab=repositories&q=koishi-plugin 开源在 GitHub];而 LNNBot 所用的 miniplug 插件和微指令的源代码则会不定期同步到 [https://gitee.com/DGCK81LNN/lnnbot-miniplugs Gitee 仓库 DGCK81LNN/lnnbot-miniplugs]。另外,用户可以通过 <code>/{{LNNBot指令链接|microcommand show|code=0}} ''微指令名称''</code>、<code>{{LNNBot wc指令链接|¿|code=0}} cmdget ''WhatCommands指令名称''</code> 查询 LNNBot 的任何微指令或 WhatCommands 指令的源代码。 | DGCK81LNN 编写的插件市场插件会[https://github.com/DGCK81LNN?tab=repositories&q=koishi-plugin 开源在 GitHub];而 LNNBot 所用的 miniplug 插件和微指令的源代码则会不定期同步到 [https://gitee.com/DGCK81LNN/lnnbot-miniplugs Gitee 仓库 DGCK81LNN/lnnbot-miniplugs]。另外,用户可以通过 <code>/{{LNNBot指令链接|microcommand show|code=0}} ''微指令名称''</code>、<code>{{LNNBot wc指令链接|¿|code=0}} cmdget ''WhatCommands指令名称''</code> 查询 LNNBot 的任何微指令或 WhatCommands 指令的源代码。 | ||
== 功能 == | == 功能系统 == | ||
=== 指令 === | === 指令系统 === | ||
{{main|LNNBot/指令}} | {{main|LNNBot/指令}} | ||
'''指令'''是 LNNBot 功能中重要的一类,它们有一种共通的调用语法, | '''指令'''是 LNNBot 功能中重要的一类,它们有一种共通的调用语法,即发送“'''/名称 选项和参数…'''”。 | ||
=== WhatCommands 指令 === | === WhatCommands 指令 === | ||
{{main|LNNBot/WhatCommands指令}} | {{main|LNNBot/WhatCommands指令}} | ||
'''WhatCommands 指令'''可由用户 | '''WhatCommands 指令'''是一种可由用户使用 [[WhatLang]] 语言自定义的功能,可通过发送“'''¿¿名称 输入…'''”或“'''/[[LNNBot/指令/whatcmd|wc]] 名称 输入…'''”来使用。 | ||
=== 用户系统 === | === 用户系统 === | ||
当 bot 首次在聊天中收到来自一个账号的消息时,会自动将该账号登记为'''用户'''并按顺序分配一个'''用户序号'''。通过[[LNNBot/指令/bind|账号绑定]]可以让bot把指定账号关联到指定的一个已有用户。每个用户具有一定的'''[[LNNBot/权限|权限]]'''。 | |||
=== 点数系统 === | === 点数系统 === | ||
为了限制一些功能的使用,部分指令在调用时需要消耗'''点数'''。每个用户每天(北京时间)可以使用 {{LNNBot指令链接|checkin}} 指令进行'''签到'''来获得点数;'''[[LNNBot/指令/patron|赞助]]''' LNNBot 的用户可以获得'''点数消耗减免额度'''奖励。用户可以使用 {{LNNBot指令链接|balance}} 指令来查询自己当前拥有的点数和点数消耗减免额度。 | |||
2025年12月2日 (二) 09:39的版本
LNNBot 是 DGCK81LNN 维护的 QQ 机器人,也在 Discord 可用,基于 Koishi.js 框架,具有〇改希顶语转写、代码运行、网站截图、字体渲染、信息查询等丰富的功能。
架构
Koishi.js 是一个可扩展的机器人框架,它允许各种插件各自提供自己的功能。LNNBot 的各种功能根据来源可以分为:
- 插件市场插件,即从 Koishi.js 插件市场安装的插件,由不同的 Koishi.js 插件开发者编写并发布在 npm,通常用 TypeScript 编写;
- miniplug 插件,即借助 DGCK81LNN 制作的 miniplug 插件,由维护者在机器人控制台直接使用 JavaScript 编写的插件,省去了将 TypeScript 插件源代码编译为 JavaScript 并重启 bot 的过程,并且可以随时修改插件代码并进行热重载;
- 微指令,即通过 DGCK81LNN 制作的 microcommands 插件,由维护者在聊天中通过指令输入 JavaScript 代码定义的指令,代码保存在机器人数据库;
- WhatCommands 指令,即通过最初由预防开发的 WhatLang 语言解释器,由用户自定义的一类类似于指令的功能。
以上四个类别之间实际上存在从属关系,miniplug 本身是一个插件市场插件,microcommands 本身是一个 miniplug 插件(也在插件市场发布),WhatCommands 指令依赖于插件市场插件 whatlang。四个类别之间呈现从稳健到轻便的层级关系,在为 LNNBot 实现新功能时,较为复杂的功能需要编写为单独插件,而轻量简单的需求使用微指令甚至 WhatCommands 指令即可满足。
DGCK81LNN 编写的插件市场插件会开源在 GitHub;而 LNNBot 所用的 miniplug 插件和微指令的源代码则会不定期同步到 Gitee 仓库 DGCK81LNN/lnnbot-miniplugs。另外,用户可以通过 /microcommand show 微指令名称、¿¿¿ cmdget WhatCommands指令名称 查询 LNNBot 的任何微指令或 WhatCommands 指令的源代码。
功能系统
指令系统
- 主条目:LNNBot/指令
指令是 LNNBot 功能中重要的一类,它们有一种共通的调用语法,即发送“/名称 选项和参数…”。
WhatCommands 指令
WhatCommands 指令是一种可由用户使用 WhatLang 语言自定义的功能,可通过发送“¿¿名称 输入…”或“/wc 名称 输入…”来使用。
用户系统
当 bot 首次在聊天中收到来自一个账号的消息时,会自动将该账号登记为用户并按顺序分配一个用户序号。通过账号绑定可以让bot把指定账号关联到指定的一个已有用户。每个用户具有一定的权限。
点数系统
为了限制一些功能的使用,部分指令在调用时需要消耗点数。每个用户每天(北京时间)可以使用 checkin 指令进行签到来获得点数;赞助 LNNBot 的用户可以获得点数消耗减免额度奖励。用户可以使用 balance 指令来查询自己当前拥有的点数和点数消耗减免额度。