Skip to content
@simple-robot

Simple Robot Projects

hi 靓仔!hi 美女!
simbot logo

~ Simple Robot Framework ~

一个bot风格的高效异步事件调度框架
A Bot-style event scheduling framework, asynchronous and high-performance
💡核心库   |   应用手册   |   🏠社区
> 走过路过,不要忘记留下闪亮亮的 喔~ <
release org-stars org-discussions

简介

Simple Robot 是一个基于 KMP 的多平台 Bot 风格高性能异步事件调度框架(下文简称simbot), 提供统一的异步API和易用的风格设计,可以协助你更快速高效的编写 Bot 风格的事件调度应用。 目前主要应用于对接各种类型的 Bot 应用平台/框架,并提供部分组件库实现。

simbot 通过 Kotlin 语言开发、 基于 KMP 支持多平台, 并兼容Java(jdk11+)等JVM平台语言, 且提供大量 Java 友好 API 和 Spring Boot starter,协助你快速开发!

Why simbot?

  • 🔥基于 Kotlin Multiplatform,支持多平台
  • 🔥得益于Kotlin与挂起特性,简洁、简单、异步、高效!
  • 🔥Java友好! 不会Kotlin?没关系,我们为Java开发者提供了阻塞、异步、响应式等多种风格的API!
  • 🔥支持SpringBoot,助力你快速整合simbot、高效开发!
  • 🔥组件化,不仅易于支持组件间的协同与应用,也使得任意组件库的开发成为可能!
  • 🔥不仅仅是API调库侠!simbot提供更完备的实现与更多高级功能
    屏蔽掉你不想知道的细节,让你更加专注于你的逻辑本身!发送消息?send 就完事儿了!

核心库

核心库是所有组件的前置、标准API的制定者、也是绝大多数统一功能实现的地方。

👉前往核心库

组件库


组件 描述 手册 API文档 版本参考
QQ机器人组件 对接QQ官方API的QQ机器人多平台组件库,支持QQ群聊、单聊与QQ频道 📕前往手册 API文档 QQ机器人 Releases
OneBot组件 对接OneBot客户端协议的多平台组件库 📕前往手册 API文档 OneBot组件 Releases
KOOK(开黑啦)组件 对接KOOK官方API的多平台组件库 📕前往手册 API文档 KOOK(开黑啦)组件 Releases
🚧 Telegram组件 对接Telegram官方API的多平台组件库 📕前往手册 API文档 Telegram组件 Releases
🚧 Discord组件 对接Discord官方API的多平台组件库 📕前往手册 暂无 暂无
⏱️钉钉组件 对接钉钉机器人的组件库。
暂无,期待贡献(☆▽☆)
暂无 暂无 暂无
⏱️飞书组件 对接飞书机器人的组件库。
暂无,期待贡献(☆▽☆)
暂无 暂无 暂无
⏱️订阅号组件 对接微信订阅号机器人的组件库。
暂无,期待贡献(☆▽☆)
暂无 暂无 暂无

开始使用

前往 应用手册 来了解如何安装、使用,或参考其中的快速开始等章节,并了解更多细节。

我们也提供了一个 在线项目生成器,可以快速生成一个 simbot 的整合项目包, 前往生成或参考 文档中描述 了解更多!

积极反馈!

核心库于各式各样的组件库体积庞大,我们很难面面俱到。如果你遇到了任何预期外的问题、错误,或有你想要却不支持的功能,欢迎随时积极地通过 issues 反馈你的问题或建议, 也欢迎通过 讨论区 与我们积极交流、提出问题。 我们也同样会积极地对你的反馈、建议或问题做出回应与交流!

走马观花

Kotlin & simbot-core

suspend fun main() {
   val application = launchSimpleApplication {
        findAndInstallAllPlugins(true)
        findAndInstallAllComponents(true)
   }
   
   application.listeners {
          // 事件监听
          process<ContactMessageEvent> { event -> // this: EventProcessingContext
             event.reply("Hello, Simbot")
          }
      }
   
   application.join()
}

Java & Spring Boot

@SpringBootApplication
@EnableSimbot // 启用simbot
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }

    // 可以选择阻塞、异步或响应式等多种不同风格的 Java API
    // 前排提醒:这里仅供示例,不建议混用多种风格,尤其是阻塞和异步混用。

    /** 事件监听,监听一个通用的标准事件类型 */
    @Listener
    public void onFriendMessage(ChatChannelMessageEvent event) {
        event.replyBlocking("Hello, Simbot!");
    }

    /**
     * 假设:你在使用Telegram组件,那么此处为监听 Telegram 的普通群消息事件
     * 并且这里以 reactor API 为例
     */
    @Listener
    public Mono<Void> onTelegramChatGroupMessage(TelegramChatGroupMessageEvent event) {
        return event.replyReserve("Hello, Simbot!").transform(SuspendReserve.mono()).then();
    }

     /**
     * 假设:你在使用KOOK组件,那么此处为监听KOOK的聊天子频道消息事件
     * 并且这里以 Java async API 为例
     */
    @Listener
    public CompletableFuture<?> onKookChannelMessage(KookChannelMessageEvent event) {
        return event.replyAsync("Hello, Simbot!");
    }
}

Kotlin 构建消息

// 单个消息元素
val text = "你好".toText()
val at = At(123456.ID)
// 组装消息链
val messages = text + at
// 构建消息链
val built = buildMessages {
    +"你好"
    +at
    +Face(666.ID)
}

Java 构建消息

// 单个消息元素
var text = Text.of("你好");
var at = new At(Identifies.of(123456));
// 组装消息链
var messages = Messages.of(text, at);
// 构建消息链
var built = MessagesBuilder.create()
    .add("你好")
    .add(at)
    .add(new Face(Identifies.of(666)))
    .build();

Note

针对不同的平台,各组件还可能会提供更多组件专属的消息元素类型,比如QQ频道中的 Ark 或 markdown 等。


社群 / Communities

👉 展开查看 QQ群

群号:点击加入 185375305

S9YOY3DF{5CGIZIKNVIM~70_tmb

👉 展开查看 QQ频道

QQ频道:点击加入QQ频道

DEK66C_%WLD__C0KJR180%4

👉 展开查看 Discord

Discord: 点击加入Discord

✨除了前往社群,一同建设 社区 是我们最推荐的相互交流的方式。如果你发现了一些问题,也可以通过 Issues 进行反馈。 与他人交流,并留下你的足迹吧!

🤔 猜你感兴趣

文档/API文档

是一个不仔细看的坏孩子呢。文档的话,在最上面的 官网 就是喔。核心库的API文档(KDoc)也可以在那里面找到。

当然,我们也提供了一个 文档引导站点 供你选择。

教学视频

你也许可以去 这个B站视频合集 中看看。

🙋 你在吗?

你有在使用simbot吗? 通过为你的仓库 添加 simbot 主题 (也就是 GitHub 的仓库tag) 来告诉我们吧!

组件库开发

除了直接使用组件开发应用,simbot也支持使用 Kotlin 开发任意的自定义组件。

我们从 simbot4 开始会持续提供一些用于开发组件库/插件库的模板项目,如果你感兴趣, 在阅读组件开发相关文档之余也可以试试它们喔!

开发模板

Warning

组件开发与应用开发不同,不要搞混喔。

模板项目不一定会更新的很及时,如果你有发现任何描述错误、落后的版本、错误的逻辑,也都欢迎为其提交 issue 或 pr,感谢您的协助!

📚 图书馆

如果你想要找核心库或者各个组件的 API Doc 或者文档地址的话,也许你可以去 📚 图书馆 看看~

🤝 协助我们

⭐ 为你青睐的仓库贡献一枚star或参与到社区的活跃建设中就是对我们最大的鼓励与帮助!

⭐ 如果你希望参与项目的建设,欢迎通过PR对某一仓库进行贡献!

⭐ 我们的开发团队生产力非常低,因为人手总是不足。如果你也想要参与到我们的团队中来,欢迎通过邮箱社区QQ频道QQ群 联系我们~

✨ 贡献星星!

如果你喜欢 Simple Robot, 那么不妨前往核心库以及你所青睐的组件为它点个可爱的🌟~

你的支持就是最优质的更新动力,非常感谢❤️

Star History Chart

powered by Star History

Pinned Loading

  1. simpler-robot simpler-robot Public

    Simple Robot,一个bot风格的Kotlin多平台事件调度框架,异步高效、Java友好!/ A Bot-style Kotlin Multiplatform event scheduling framework, asynchronous and high-performance, java-friendly! 🐱😼😻😸

    Kotlin 521 43

  2. simbot-component-onebot simbot-component-onebot Public

    一个Kotlin多平台的 OneBot SDK 实现,一个异步高效、Java 友好的 Simple Robot 组件库 ~ 🐱🐱🐱

    Kotlin 11 3

  3. simbot-component-kook simbot-component-kook Public

    一个 Kotlin 多平台的 KOOK(开黑啦) Bot SDK 实现库,一个 Simple Robot 组件库,Java 友好、异步高效~ ❤️‍🔥❤️‍🔥😘

    Kotlin 19 1

  4. simbot-component-qq-guild simbot-component-qq-guild Public

    一个 Kotlin 多平台的QQ机器人(包括群聊) SDK,一个 Simple Robot 的组件库。对接官方API,Java 友好、异步高效 😻😻😽

    Kotlin 22 1

  5. simbot-component-telegram simbot-component-telegram Public

    A Kotlin multiplatform Telegram bot SDK, A Simple Robot Component library 🔥🔥❤️‍🔥

    Kotlin 3

Repositories

Showing 10 of 25 repositories
  • simbot-component-onebot Public

    一个Kotlin多平台的 OneBot SDK 实现,一个异步高效、Java 友好的 Simple Robot 组件库 ~ 🐱🐱🐱

    simple-robot/simbot-component-onebot’s past year of commit activity
    Kotlin 11 LGPL-3.0 3 3 4 Updated Nov 29, 2024
  • simbot-component-qq-guild Public

    一个 Kotlin 多平台的QQ机器人(包括群聊) SDK,一个 Simple Robot 的组件库。对接官方API,Java 友好、异步高效 😻😻😽

    simple-robot/simbot-component-qq-guild’s past year of commit activity
    Kotlin 22 LGPL-3.0 1 3 3 Updated Nov 29, 2024
  • simpler-robot Public

    Simple Robot,一个bot风格的Kotlin多平台事件调度框架,异步高效、Java友好!/ A Bot-style Kotlin Multiplatform event scheduling framework, asynchronous and high-performance, java-friendly! 🐱😼😻😸

    simple-robot/simpler-robot’s past year of commit activity
    Kotlin 521 LGPL-3.0 43 10 3 Updated Nov 29, 2024
  • simbot-component-telegram Public

    A Kotlin multiplatform Telegram bot SDK, A Simple Robot Component library 🔥🔥❤️‍🔥

    simple-robot/simbot-component-telegram’s past year of commit activity
    Kotlin 3 LGPL-3.0 0 2 3 Updated Nov 26, 2024
  • simbot-component-kook Public

    一个 Kotlin 多平台的 KOOK(开黑啦) Bot SDK 实现库,一个 Simple Robot 组件库,Java 友好、异步高效~ ❤️‍🔥❤️‍🔥😘

    simple-robot/simbot-component-kook’s past year of commit activity
    Kotlin 19 LGPL-3.0 1 7 5 Updated Nov 25, 2024
  • .github Public
    simple-robot/.github’s past year of commit activity
    0 0 0 0 Updated Nov 20, 2024
  • simbot4-multiplatform-component-template Public template

    simbot4 基于 Kotlin Multiplatform 的组件/插件开发模板项目

    simple-robot/simbot4-multiplatform-component-template’s past year of commit activity
    Kotlin 2 0 0 0 Updated Oct 23, 2024
  • Discussions Public

    和谐共处社区,健康快乐生活

    simple-robot/Discussions’s past year of commit activity
    3 CC0-1.0 0 0 0 Updated Jul 23, 2024
  • simbot-component-kritor Public

    (WIP) 一个对Kritor协议作为客户端进行实现的 Simple Robot 组件库,Java 友好、异步高效~ 🐱🐱🐱

    simple-robot/simbot-component-kritor’s past year of commit activity
    Kotlin 4 LGPL-3.0 1 0 0 Updated Apr 10, 2024
  • simbot-component-discord Public

    (WIP) Kotlin coroutines based Discord bot API/SDK multi-platform library, is also a Simple Robot Component library. 🚀🚀🌋

    simple-robot/simbot-component-discord’s past year of commit activity
    Kotlin 4 LGPL-3.0 0 0 0 Updated Mar 23, 2024

Top languages

Loading…

Most used topics

Loading…