Skip to content

类似于NoneBot的OneBot11异步消息处理框架, 支持绝大部分消息解析输入输出OneBotV11, 计划支持Satori和Kritor, adapter with kotlin, resolve input and some output, support kritor and satori soon

License

Notifications You must be signed in to change notification settings

RTAkland/ROneBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ROBICON

ROneBot -- 类似于NoneBot的OneBot异步消息处理框架

Made By RTAkland

MadeWithKotlin
GitHub Workflow Status Kotlin Version GitHub

概述

这是一个类似于NoneBot的异步(协程)框架主要接入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版本并支持多实例!

开发

由于Kritor部分的.proto文件是通过git子模块引入的所以在clone完仓库本体之后你还需要执行以下命令 来拉取子模块的内容

$ git submodule update --init --recursive

注意事项

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

现已全面迁移到2.x版本支持正向和反向两种通信模式同时进行

开源

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

鸣谢

JetBrainsIcon

JetBrains Open Source 提供的强大IDE支持

About

类似于NoneBot的OneBot11异步消息处理框架, 支持绝大部分消息解析输入输出OneBotV11, 计划支持Satori和Kritor, adapter with kotlin, resolve input and some output, support kritor and satori soon

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages