自此上次OPQBot 大改之后就再也没搞过QQ机器人了,今天换一个更高级的来折腾折腾。
开始
Koishi文档:Koishi
今天我是第一次安装,没细看文档,猜测这个东西是个 Controller,然后要装个 model 我选的 go-cqhttp。
配置 go-cqhttp
直接去 go-cqhttp 的release:https://github.com/Mrs4s/go-cqhttp/releases/
我是centOS,选的 amd64.
解包之后打开,会让你修改 config.yml.
填上QQ号(account),servers那里填上正向WS服务器,想跑在服务器外网访问的话,host要填0.0.0.0
./go-cqhttp
配置好了启动用screen挂着就行了。
配置 Koishi
下面摘抄自文档:
mkdir my-bot && cd my-bot
# 初始化项目
yarn init
# 安装 koishi
yarn add koishi -D
# 生成配置文件
yarn koishi init
# 补全依赖
yarn
-
Adapter Type: 选正向WS,host即服务器IP,端口是你在 go-cqhttp 中设置的,我写的8899
-
Koishi Port: 随便(一般情况保持默认即可, 确保不要与其他端口冲突)
-
Token for XXX Server / XXX Server / Secret for Koishi Server: 直接敲回车
-
configurate another bot? N(如有多个机器人, 可在此一并设置, 一般默认即可。)
-
Database Type: (随便)为了确保体验的完整性(如用户系统及大部分官方/社区插件, 强烈建议在此配置数据库。
-
Choose Offical Plugins: 直接回车(在此选择一并安装的官方插件列表, 详情介绍参见官方插件页面。选择后继续回车即可。)
这时 yarn koishi start 应该能跑了,不过这仅仅是测试。
效果
// 如果收到“天王盖地虎”,就回应“宝塔镇河妖”
import {Context, NextFunction, Session} from "koishi";
module.exports = async (ctx:Context) => {
ctx.middleware((session:Session, next:NextFunction) => {
if (session.content === '天王盖地虎') {
session.send('宝塔镇河妖')
}else if(session.content === "机器人"){
session.send("你tm才机器人呢")
}
return next()
})
}
hhhhhhhhhhhhh~~~