跳至內容

LNNBot

出自希顶维基

LNNBotDGCK81LNN 維護的 QQ 機器人,也在部分其他平台可用,基於 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 語言自定義的功能,可通過發送 ¿¿名称 输入…/wc 名称 输入… 來使用。

用戶系統

當 bot 首次在聊天中收到來自一個賬號的消息時,會自動將該賬號登記為用戶並按順序分配一個用戶序號。通過賬號綁定可以讓bot把指定賬號關聯到指定的一個已有用戶。每個用戶具有一定的權限

點數系統

為了限制一些功能的使用,部分指令在調用時需要消耗點數。每個用戶每天(北京時間)可以使用 checkin 指令進行一次簽到來獲得點數;贊助 LNNBot 的用戶可以獲得點數消耗減免額度獎勵。用戶可以使用 balance 指令來查詢自己當前擁有的點數和點數消耗減免額度。

平台支持

LNNBot 主要提供服務是通過 QQ 賬號「LNNBot」,由於這是通過第三方協議 OneBot 實現的,框架將其稱作 onebot 平台,而 qq 平台是通過 QQ 官方開放平台實現的「真魂bot」。LNNBot 也在 Discord、Telegram、Kook 平台提供服務。部分功能只能在 onebot 平台正常使用。

外部鏈接