Skip to content

RTAkland/ROneBot

Repository files navigation

ROBICON

ROneBot -- OneBot11协程SDK

Made By RTAkland

MadeWithKotlin
GitHub Workflow Status Kotlin Version GitHub

概述

这是一个OneBot11协程SDK, 主要接入OneBot11协议, 计划支持其他主流协议(WIP) 现在可以处理绝大部分的输入输出, 你可以点击这里 来查看支持哪些输入. 点击这里查看支持哪些输出

框架支持使用正向反向Websocket并且内置了MessageCommand 也就是命令你可以快速的注册一个命令而不需要重复造轮子 注意: 内置一个带权限的指令管理器, 权限 -> 群内权限(群主、管理员、成员, 这三种)

最低JDK版本为 11

这里是使用此框架的官方示例机器人, 包含了50+ 种命令(Github)

文档

https://docs.rtast.cn/#/docs/ronebot/README

Java不友好(?)

此框架深度依赖于Kotlin协程, 在Kotlin中被suspend修饰的函数会被隐式的添加一个参数 CoroutineContext这个上下文参数用于控制协程的挂起和恢复, 在Java中调用挂起函数 需要先用Kotlin创建一个普通函数, 在Kotlin中使用kotlinx.coroutines提供的协程 构建起函数, 然后在Java中调用Kotlin的普通函数, 就像下面这样

/*
 这里定义普通的函数
 */
fun createClient() {
    runBlocking {
        TODO("这里是协程作用域")
    }
}
/*
 这里调用Kotlin创建的普通函数      
 */
public class TestJava {
    public static void main(String[] args) {
        KotlinExampleKt.createClient();
    }
}

多实例

ROneBot已经全面迁移到2.x版本并支持多实例!

注意事项

1. 你只能使用本框架创建一种服务方式, 要么使用createServer 要么使用 createClient 如果创建了两种会导致无法正常收发消息 2. 框架只能处理数组形式的消息, 如果强制使用CQ码格式的消息将会导致错误抛出

现已全面迁移到2.x版本支持正向和反向两种通信模式同时进行, 并且支持创建多个客户端和服务端

开源

  • 本项目以Apache-2.0许可开源, 即:
    • 你可以直接使用该项目提供的功能, 无需任何授权
    • 你可以在注明来源版权信息的情况下对源代码进行任意分发和修改以及衍生

鸣谢

JetBrainsIcon

JetBrains Open Source 提供的强大IDE支持