love.forte.simple-robot:component-onebot

simple-robot是一个通用bot开发框架,以同一种灵活的标准来编写不同平台的bot应用。而simpler-robot便是simple-robot 2.x版本命名。

License

License

GroupId

GroupId

love.forte.simple-robot
ArtifactId

ArtifactId

component-onebot
Last Version

Last Version

2.0.0-BETA.6
Release Date

Release Date

Type

Type

jar
Description

Description

simple-robot是一个通用bot开发框架,以同一种灵活的标准来编写不同平台的bot应用。而simpler-robot便是simple-robot 2.x版本命名。

Download component-onebot

How to add to project

<!-- https://jarcasting.com/artifacts/love.forte.simple-robot/component-onebot/ -->
<dependency>
    <groupId>love.forte.simple-robot</groupId>
    <artifactId>component-onebot</artifactId>
    <version>2.0.0-BETA.6</version>
</dependency>
// https://jarcasting.com/artifacts/love.forte.simple-robot/component-onebot/
implementation 'love.forte.simple-robot:component-onebot:2.0.0-BETA.6'
// https://jarcasting.com/artifacts/love.forte.simple-robot/component-onebot/
implementation ("love.forte.simple-robot:component-onebot:2.0.0-BETA.6")
'love.forte.simple-robot:component-onebot:jar:2.0.0-BETA.6'
<dependency org="love.forte.simple-robot" name="component-onebot" rev="2.0.0-BETA.6">
  <artifact name="component-onebot" type="jar" />
</dependency>
@Grapes(
@Grab(group='love.forte.simple-robot', module='component-onebot', version='2.0.0-BETA.6')
)
libraryDependencies += "love.forte.simple-robot" % "component-onebot" % "2.0.0-BETA.6"
[love.forte.simple-robot/component-onebot "2.0.0-BETA.6"]

Dependencies

compile (1)

Group / Artifact Type Version
love.forte.simple-robot : core jar 2.0.0-BETA.6

Project Modules

There are no modules declared in this project.
logo

- simpler-robot -

github    |    gitee
> 感谢 CatCode 开发团队成员制作的simbot logo <
> 走过路过,不要忘记点亮一颗喔~ <
release snapshot
stars forks watchers repo size lines release issues last commit license

简介

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

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

simbot 在发展过程中,很多功能的使用灵感来自于springboot,例如基础依赖注入与注解监听,并且对于一些主要组件专门提供了springboot-starter模块以方便开发者快速整合springboot(当然,如果可以,我依旧更希望你使用原生simbot环境)。

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

以及更多高级特性等待你的发现...


旧版本考古 -> simple-robot 1.x

支持平台

目前支持的机器人平台:

计划中准备支持的平台:

  • QQ
    • onebot(QQ机器人通用协议)
  • TG
  • discord
  • 钉钉
    • 企业内建应用事件
    • 企业内建群BOT

文档

simpler-robot文档:https://www.yuque.com/simpler-robot/simpler-robot-doc

Demo

各个组件的Demo项目正在逐步建设。 目前已经存在的Demo:

新特性

既然是相对于1.x版本的新版本,那么必然会有更优异的特性。

  • 更明确的实例定义。不再将较为混乱的各种方法堆在事件中,而是使用容器将他们整齐归类。
  • 更好的消息构建。提供更多的消息发送方式来适应各种场景下的消息发送效率。
  • 更高的效率。知识是需要沉淀的。每一次的版本更新都会比以往更多的考虑效率问题。
  • 更好的日志。日志整合slf4japi,可以无缝兼容其他任意slf4j下的日志框架。
  • 更灵活的开发。降低核心、组件之间的强耦合,更多的借助IOC模块实现更灵活的开发与拓展。
  • 更灵活的配置。支持propertiesyaml 类型配置的解析,同时也支持指定特定启动参数、通过网络获取在线配置文件等多种方式。
  • 更灵活的事件监听。优化核心注解@Listen的使用。
  • 更灵活的事件过滤。优化核心注解@Filter的使用。
  • 分工更明确的模块。核心、组件、序列化、http客户端、定时任务...各司其职,并提供丰富的实现模块来减少你的项目冗余依赖量。
  • 更好的问题反馈。所有的官方模块都会汇总于此。开启一个 issue 来反馈问题的效率远远高于在群里茫然的提问。
  • 以及更多...

其他模块

simpler-robot所独立的公共模块项目:

simpler-robot所使用的特殊码CatCode:

极简示例

文档-快速开始:https://www.yuque.com/simpler-robot/simpler-robot-doc/qeyorq

监听消息

@Beans
public class TestListener {
  /** 发送一句“我收到了”,并再复读收到的所有消息 */
  @OnPrivate
  public void listen(PrivateMsg msg, MsgSender sender) {
    sender.SENDER.sendPrivateMsg(msg, "我收到了");
    sender.SENDER.sendPrivateMsg(msg, msg.getMsgContent());
  }
}

监听并筛选消息

@Beans
public class TestListener {
  /** 监听群里的 'hi! simbot' 消息并作出回应 */
  @OnGroup
  @Filter("hi! simbot")
  public void listenGroup(GroupMsg msg, MsgSender sender) {
    // 获取发消息的人的账号
    String accountCode = m.getAccountInfo().getAccountCode();
    // 准备at这个人的CatCode
    String at = CatCodeUtil.INSTANCE.getStringTemplate().at(accountCode);
    // 发送消息
    sender.SENDER.sendGroupMsg(m, at + " 我在哦");
  }
}

@Beans
public class TestListener {
  /** 通过依赖注入得到消息构建器工厂。 */  
  @Depend
  private MessageContentBuilderFactory builderFactory;
  
  /** 监听群里的 'hi! simbot' 消息并作出回应 */
  @OnGroup
  @Filter("hi! simbot")
  public void listenGroup(GroupMsg msg, MsgSender sender){
    // 获取发消息的人的账号
    String accountCode = msg.getAccountInfo().getAccountCode();
    // 获取消息构建器
    MessageContentBuilder builder = builderFactory.getMessageContentBuilder();
    // 构建消息实例
    MessageContent msgContent = builder.at(accountCode).text(" 我在哦").build();
    // 发送消息
    sender.SENDER.sendGroupMsg(msg, msgContent);
  }
}

协助我

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

捐助我

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

特别鸣谢

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


感谢 猫猫码 为本项目提供支持并绘制项目LOGO。

Versions

Version
2.0.0-BETA.6
2.0.0-BETA.5
2.0.0-ALPHA.12