love.forte.simbot:simbot-logger-watchosarm32

Simple Robot,一个通用的bot风格事件调度框架,以灵活的统一标准来编写bot应用。


Keywords
bot, bot-framework, java, kook-bot, kotlin, kotlin-coroutines, kotlin-multiplatform, qq-bot, qq-guild-bot, qqbot, simbot, simple-robot, telegram-bot
Licenses
GPL-3.0/LGPL-2.1+

Documentation

simbot logo

- Simple Robot -

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

English

简介

Simple Robot (v4) 是一个基于Kotlin协程Kotlin多平台 Bot风格高性能异步事件调度框架(下文简称simbot), 异步高效、Java友好~

simbot提供统一的异步API和易用的风格设计,可以协助你更快速高效的编写Bot风格的事件调度应用。 主要应用于对接各种类型的Bot应用平台/框架,并提供部分组件库实现。

simbot的平台功能由组件驱动,安装不同的组件库来获得不同的功能支持。

举个例子,在simbot中使用KOOK和QQ频道:

suspend fun main() {
    launchSimpleApplication { config() }
        .joinWith { module() }
}

fun ApplicationFactoryConfigurer<*, *, *>.config() {
    // 安装KOOK和QQ频道组件库
    useKook()
    useQQGuild()
}

/**
 * 对已经构建完成的 `Application` 进行配置于应用
 */
suspend fun Application.module() {
    registerBots()
    registerListeners()
}

/**
 * 注册所需的bot
 */
suspend fun Application.registerBots() {
    // ... 注册kook bot,并在此之后可处理到kook的相关事件
    kookBots {
        register(...) { ... }.start()
    }

    // ... 注册QQ频道bot,并在此之后可处理到QQ频道的相关事件
    qqGuildBots {
        register(...) { ... }.start()
    }
}

fun Application.registerListeners() {
    listeners {
        // 注册一个事件处理器
        // ChatChannelMessageEvent 是由simbot API定义的泛用类型,代表所有子频道消息事件
        // 其中就包括QQ频道的公域消息事件, 或者KOOK的频道消息事件
        listen<ChatChannelMessageEvent> {
            println("context: $this")
            println("context.event: $event")

            // 返回事件处理结果
            EventResult.empty()
        }

        // 再注册一个事件处理器
        // 明确监听QQ频道的公域消息事件
        // 使用 process 不需要返回值
        process<QGAtMessageCreateEvent> {
            println("context: $this")
            println("context.event: $event")
        }

        // 再注册一个事件处理器
        // 明确监听KOOK的频道消息事件
        // 使用 process 不需要返回值
        process<KookChannelMessageEvent> {
            println("context: $this")
            println("context.event: $event")
        }
    }
}

文档与引导

协助我们

为我们点亮一个 ✨star🌟 便是能够给予我们继续走下去的最大动力与支持!

  • 阅读 贡献指南 来了解如何贡献你的力量!
  • 你可以通过 讨论区 与其他人或者simbot开发团队相互友好交流。
  • 如果你通过此项目创建了一个很酷的开源项目,欢迎通过 ISSUES讨论区 等方式留下你的开源项目信息,并将你酷酷的项目展示在作品展示区。

联系我们

  • 如果想要反馈问题、提出建议建议或提出问题,请通过 ISSUES
  • 如果想要与开发团队交流、与其他开发者交流,请前往 讨论区
  • 可以前往 GitHub 组织首页 查看更多社群信息

特别鸣谢

jetbrains

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

星星!

Star History Chart

powered by Star History

License

Simple Robot 使用 LGPLv3 协议开源。

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by 
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Lesser GNU General Public License for more details.

You should have received a copy of the Lesser GNU General Public License 
along with this program.  If not, see <https://www.gnu.org/licenses/>.