• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

simpler-robot: simple-robot是一个通用bot开发框架,以同一种灵活的标准来编写不同平 ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

simpler-robot

开源软件地址:

https://gitee.com/ForteScarlet/simpler-robot

开源软件介绍:

logo

- simply-robot -

~ simbot v3 ~
github    |    gitee
> 感谢 CatCode 开发团队成员制作的simbot logo <
> 走过路过,不要忘记点亮一颗⭐喔~ <
release release doc
stars forks watchers repo-size issues last-commit search-hit top-language last-commitcopying

简介

这是一个通用机器人开发框架,是simple-robot的3.x版本(下文简称simbot3)。

simbot3 是一个JVM平台的通用机器人开发框架,基于simbot核心API并对接开发不同平台的机器人应用,你可以使用相同的代码风格来开发不同平台的机器人。

它提供了丰富的api接口与各种模块以支持机器人开发者与组件开发者使用,对于机器人开发者,你可以通过功能丰富的注解来实现各种较为复杂的事件匹配逻辑。对于组件开发者,你拥有很高的可选择性与灵活性来针对一个平台进行对接。

simbot3相比较于simbot2时代,其(再一次的)完全重构了整体架构,使用全面异步的api提供更加高效更加流畅的使用体验。


模块差异

simbot3中,simbot-coresimbot-boot(首先提醒,这里的boot指的不是springboot)之间的使用方式上会有较大的区别:

simbot-core上,你的使用方式会更加"原生",其允许你在更加复杂的代码中拥有更强的控制能力与灵活度。这更适合较为小型的系统或者需要更加灵活控制代码的应用。

而在simbot-boot(simboot)上,则提供了更多源于而优于simbot前代的注解开发与自动扫描机制,可以更快速高效的开发你的应用。

组件协同

simbot3支持多组件协同,但是这会给版本控制带来更大的挑战,因此如果你希望在你的应用里使用多组件,请仔细检查并测试各个组件之间的版本依赖关系。



注意!!

目前simbot3仍然处于前期阶段,如果你想参考simbot2, 可以参考分支: v2-dev

文档

simbot3的文档与simbot2的文档在一起,都在 语雀文档中。但是这次simbot3中的源码注释相比以前更为丰富,因此我建议对api相关的内容优先查阅代码中的文档注释。

当然,你也可以去看看API Doc ,API文档会在每次版本发布的时候更新。

组件

在simbot3相关的系列组件中,大部分需要依赖第三方库(也有可能是由simbot团队实现的)的组件,基本上都会使用独立的仓库进行管理,并且会尽量遵循simbot3的 命名概述 中所约定的规则。
simbot3目前已经实现的组件以及计划中的组件会列举于此,且不定期更新:

对接目标作者组件仓库地址状态
腾讯频道simbot teamhttps://github.com/simple-robot/simbot-component-tencent-guild维护中
Miraisimbot teamhttps://github.com/simple-robot/simbot-component-mirai维护中
开黑啦simbot teamhttps://github.com/simple-robot/simbot-component-kaiheila开发中

腾讯频道组件:

Mirai组件:

使用

Warn: 对于组件, 你需要去上面提及的组件仓库中选择你需要使用的.一个普通的simbot依赖不会有任何实现, 因此下述提及的依赖使用不能独立使用。

simbot-core

Maven

版本参考:

此处版本参考,需要版本在 v3.x.x 以上。如果显示为v2.x.x, 请前往 releases 寻找v3版本,或者查看 v2 版本说明。

<!-- 3.x中,大部分组件的版本维护独立于标准库,但是会在版本号中体现依赖标准库的版本号。 --><properties>    <simbot.version>${version}</simbot.version></properties>
<!-- simbot核心标准库 --><dependency>    <groupId>love.forte.simbot</groupId>    <artifactId>simbot-core</artifactId>    <version>${simbot.version}</version></dependency>

Gradle Kotlin DSL

val simbotVersion = // $version// simbot核心标准库implementation("love.forte.simbot:simbot-core:$simbotVersion")

Gradle Groovy

simbotVersion = // $version// simbot核心标准库implementation "love.forte.simbot:simbot-core:$simbotVersion"

快速开始

有关快速开始的相关内容,请参考文档中 《快速开始》 中的相关子章节


走马观花

事件监听

下述以 simbot-boot模块中的注解监听形式为例

@Listenersuspend fun GroupMessageEvent.listen() {    println("事件来源群: ${group().name}")    replyIfSupport { "你好!" }}
@Filter("你好")@Listenersuspend fun FriendMessageEvent.listen() {    friend().send("你也好")}

对象获取

@Listenersuspend fun GuildMessageEvent.listen() {    // 频道的所有子频道    val channels: Flow<Channel> = children()    // bot的所有好友    val friends: Flow<Friend> = bot.friends()    // 获取指定群对象    val group = bot.group(114514.ID)    val groupId = group.id    val groupName = group.name    val groupIcon = group.icon}

延时发送/动态参数

@Filter("我叫{{name}}")@Listenersuspend fun FriendMessageEvent.listen(@FilterValue("name") name: String) {    val friend = friend()    bot.launch {        delay(3000)        friend.send("Hello, $name")    }}

特殊消息

上传并发送图片

@Listenersuspend fun FriendMessageEvent.listen() {    val img = Path("img/example.png")    val imgResource = Resource.of(img)    val imgForSend = bot.uploadImage(imgResource)    // send img to friend    friend().send(imgForSend)}

群里at + 文本

@Listenersuspend fun GroupMessageEvent.listen() {    val authorId = author().id    val at = At(authorId)    group().send(at + "你好?".toText())}

更多示例代码可以参考3.x文档中的《走马观花》相关内容.

协助我

  • 你可以通过 pr 为项目代码作出贡献。
  • 你可以通过 issue 提出一个建议或者反馈一个问题。
  • 你可以通过 讨论区 与其他人或者simbot开发团队相互友好交流。
  • 如果你通过此项目创建了一个很酷的项目,欢迎通过 issue讨论区等方式联系团队开发人员,并将你酷酷的项目展示在作品展示区。

捐助我

如果你喜欢这个项目,不妨试着 捐助 一下我们,十分感谢。

特别鸣谢

jetbrains

感谢 jetbrains 为团队提供的免费授权,也希望大家能够支持jetbrains及其产品,支持正版。

贡献你的星星!

Stargazers over time

开源协议

simbot3(当前仓库下相关内容)以 LGPL 3.0 协议开源。

详细参见:

COPYING

COPYING.LESSER

文档持续优化中...


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap