当前仓库属于关闭状态,部分功能使用受限,详情请查阅 仓库状态说明
1 Star 33 Fork 3

法欧特斯卡雷特 / simple-robot-core
关闭

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

基于接口的通讯机器人java开发框架-核心

img

项目对应GITHUB地址: https://github.com/ForteScarlet/simple-robot-core

项目对应GITEE地址: https://gitee.com/ForteScarlet/simple-robot-core

首先,点击项目右上角的star以开启隐藏链接。

核心版本:img


使用2.x版本:

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

当前仓库版本(1.x)已进入停止更新状态,请前往2.x版本。





1.x文档请见文档地址: http://simple-robot-doc.forte.lovehttps://www.kancloud.cn/forte-scarlet/simple-coolq-doc

1.x在线javadoc文档(由码云平台生成): https://apidoc.gitee.com/ForteScarlet/simple-robot-core

由于目前核心部分与组件部分相互分离,所以核心与组件的github地址也相互分离了。 所有组件均依赖于此核心框架,支持maven坐标,具体坐标请见文档下文入群咨询

点击star后即可申请加入QQ群聊,QQ群号:782930037








这是什么?

这是一个基于网络通讯接口的通讯机器人开发框架,可以对接例如酷Q机器人等一系列通讯机器人应用。 此框架分有两个部分:核心框架与组件框架,当前仓库为核心框架。

核心框架?

核心框架提供主要的功能与接口,用于为组件框架提供实现接口,并借此可以实现不同平台、不同插件的简易切换。 核心框架提供标准化接口、功能,但是不能够直接使用。

组件框架?

组件框架依赖于核心框架,其存在的主要目的就是为了针对某一个特定的插件(例如酷Q的CQ HTTP API插件)进行对接。

为何要分离?

举个例子。假如你想要使用此框架对接 A应用 ,那么你就要使用 组件框架A 来开发,然后过了两个月,你发现B应用也挺好的,想要切换到B应用,这时候分离的作用就出现了,你只需要将依赖的组件框架A切换为组件框架B,然后简单修改一下启动类和配置信息,而不需要修改任何功能性的代码(例如消息监听器、定时任务等等)。因为绝大部分功能性的东西都是核心框架所提供的,而你切换组件是不会变更核心的,这样就可以做到能够很好的去支持更多的应用,且切换起来也不会太繁琐。

简单来讲,核心框架就是一块儿主板,组件框架就是一块儿显卡,而最终开机后,电脑里的各种各样的应用程序,就是你最终所书写的功能性代码。


只要这块儿主板不变,每次更换显卡只需要重新安装一下显卡驱动,而不需要删除所有的应用。

也得益于核心组件分离,使其能够有更大的拓展空间,而不是仅局限于酷Q应用,也不一定局限于腾讯QQ的业务范围。毕竟有着“私信、群聊”等等一系列信息内容的应用可不仅限于腾讯QQ


有何优点?

  • 有着极高的扩展性。任何人都可以根据核心框架,并针对某一个应用或者接口来开发组件框架,并投入使用。
  • 核心提供了极其丰富的功能,例如
    • 注解开发风格
    • 丰富的过滤规则
    • 集成quartz定时任务框架
    • 依赖注入
    • 部分拦截器
    • 支持与Spring(boot(+MyBatis))等其他框架的整合
    • 目前针对Springboot,提供了快速启动器(starter)
  • 持续更新的代码
  • 好说话的作者(欢迎入群与群主交流催更😏
  • 高度接口化,可扩展性强
  • 有虽然没有完全写完但是已经很全面了的中文文档
  • 已上传Maven中央仓库,支持Maven、gradle等项目架构方式

现在已经存在的应用?

已经存在的组件框架

平台 依赖 项目地址
酷Q(停止) LEMOC插件 https://github.com/ForteScarlet/simple-robot-component-lemoc
酷Q(停止) HTTP TO CQ插件 https://github.com/ForteScarlet/simple-robot-component-httpapi
酷Q(停止) CQ HTTP API插件 https://github.com/ForteScarlet/simple-robot-component-coolHttpApi
酷Q(停止) JCQ插件 https://github.com/ForteScarlet/simple-robot-component-JCQ
JVM Mirai https://github.com/ForteScarlet/simple-robot-component-mirai

酷Q已停止服务。R.I.P.

已经存在的模组

名称 描述 项目地址
cqcodeutils模组 提供高效的cq码操作工具。可独立依赖、使用。 https://github.com/ForteScarlet/simple-robot-module-cqcodeutils
delay-task模组 提供基于携程的异步延时任务功能。可独立依赖、使用。 https://github.com/ForteScarlet/simple-robot-module-delay-task
redis-bot-manager模组 提供使用redis统一管理bot账号的功能。 暂无仓库,文档:http://simple-robot-doc.forte.love/1672448
debugger模组 提供一系列便于本地、远程debug的功能的模组。 https://github.com/ForteScarlet/simple-robot-module-debuger-common

已经存在的Springboot-starter

名称 描述 项目地址
core-starter starter项目的父项目,提供一些基础配置 https://github.com/ForteScarlet/simple-robot-core-springboot-starter
cqhttp-starter cqhttp组件的starter https://github.com/ForteScarlet/simple-robot-component-cqhttp-springboot-starter
mirai-starter mirai组件的starter https://github.com/ForteScarlet/simple-robot-component-mirai-springboot-starter

公开Demo

如果你想要尝试一下,不妨在阅读过文档的快速开始的情况下,去公开Demo项目(gitee)看一看。

如果你根据核心开发了组件框架,可以告知我,我会更新在此处与下文处。

如果你只是想开发一个QQ机器人,而不在乎使用什么平台,请参考文档开头提到的组件框架。

安装

此处仅对如何搭建Java项目进行说明,如果你想开发QQ机器人, 请移步至 文档 查看。

首先你需要知道,此项目(即核心) 无法直接使用,如果你想要开发酷Q平台的QQ机器人,请移步至 文档 查看。

其次,以下列举的部署方式中,版本号请自行修改为最新版。

你可以选择使用以下方法进行自动部署:

版本参考:img

Maven

<dependency>
    <groupId>io.github.ForteScarlet</groupId>
    <artifactId>simple-robot-core</artifactId>
    <version>${version}</version>
</dependency>

Gradle

// https://mvnrepository.com/artifact/io.github.ForteScarlet/simple-robot-core
compile group: 'io.github.ForteScarlet', name: 'simple-robot-core', version: '>${version}'

如果你不选择使用自动部署的方式,你可以直接前往 Maven下载Jar 包或者碰碰运气,看看releases有没有最新的Jar包。

注意,当你选择下载jar包的时候,请同时下载项目中lib文件夹下的依赖包。

看的有点蒙,但是想试试

可以考虑:

  • 加入QQ群:782930037, 如果对水群没有兴趣,可以直接去找群主。
  • 邮箱:ForteScarlet@163.com (邮箱信息查看周期较长)
  • GITEE或者GITHUB留言

首先建议进群交流,毕竟其他两个我并不经常看(●ˇ∀ˇ●)

建议、意见、bug反馈

  • 你可以使用issue向我反馈bug或者提出建议意见。
  • 你可以加入QQ群聊782930037向我反馈bug或者提出建议意见。
  • 你可以通过联系邮箱ForteScarlet@163.com向我反馈bug或者提出建议意见(可能会处理不及时)。

更新计划

对于未来的更新计划可以从github的projects中或者更新计划中看到。一般想到什么的话会优先更新更新计划.md

赞助一下?

那真的真的太感谢了,你可以参考 文档/捐助 或者去 爱发电 逛逛~

大家的成果

项目名称 作者 项目简介 项目链接

崩坏学园2小助手 - 萌萌新

瑶光天枢 崩坏学园2的在线群聊,查询装备,模拟扭蛋,查询up记录,来份色图的机器人 https://github.com/LiChen233/simple-robot

群管机器人

会跑的仓鼠 基于simple开发的群机器人 https://gitee.com/yaozhenyong/cqrobotjar2

游戏查询机器人

基于simple开发的娱乐性机器人 https://gitee.com/yaozhenyong/cqrobotIndependent

云端控制面板

主要做上面两个版本机器人的控制面板(web端) https://gitee.com/yaozhenyong/Qqrobotwar

Robot-Spring

千年老妖(1571650839)

基于酷Q的,使用Java语言开发的,面向COC的骰子机器人组件, 使用架构为SpringBoot-Mybatis-CoolHttpApI。主要功能:COC跑团基础功能+斗图,聊天,群管等乱七八糟的功能

https://github.com/17336324331/Robot-Spring

coolqhttpapisimpleyiluoeandxishirobot

以罗伊 就是用simple-robot框架写的一个小机器人啦,windows linux上都能正确运行(目前) https://github.com/YiluoE/coolqhttpapisimpleyiluoeandxishirobot
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

简介

这是基于java的机器人开发框架,是一种注解开发风格、可扩展的、可与SpringBoot应用相互结合的开发框架,对接各种提供接口的机器人应用来实现以一种统一标准编写机器人。未来也可能会对接一些其他的机器人应用。 展开 收起
Java
Apache-2.0
取消

发行版 (1)

全部

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/ForteScarlet/simple-robot-core.git
git@gitee.com:ForteScarlet/simple-robot-core.git
ForteScarlet
simple-robot-core
simple-robot-core
master

搜索帮助