跳转到内容

LNNBot

此后如竟没有炬火,我便是唯一的光。
DGCK81LNN留言 | 贡献2025年11月19日 (三) 09:30的版本

LNNBotDGCK81LNN 维护的 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 指令

主条目:LNNBot/WhatCommands指令

WhatCommands 指令可由用户通过 WhatLang 语言编写后供自己和他人使用,它们本身不是 Koishi.js 指令系统内的指令,但可以通过指令 whatcmd 调用。以 WhatLang 作为一门深奥编程语言(esolang)的学习门槛为代价,WhatCommands 的灵活性相比微指令更上一层楼,只要掌握 WhatLang,任何用户都可以在语言提供的能力范围内为 LNNBot 添加新功能,无需经bot维护者审核代码。

用户系统

点数系统