基于OneBot协议的QQ机器人快速开发框架

Related tags

Spring Boot Shiro
Overview

Shiro

基于 OneBot 协议的 QQ机器人 快速开发框架

maven issues license jdk-version qq-group cqhttp

QuickStart

<!-- 导入Maven依赖 -->
<dependency>
    <groupId>com.mikuac</groupId>
    <artifactId>shiro</artifactId>
    <version>1.1.1</version>
</dependency>
# 修改application.yaml
server:
  port: 5555

shiro:
  # 全局限速器 (基于令牌桶算法),无需该配置字段可删除,将使用默认值(默认禁用)
  limiter:
    enable: false
    permits-per-second: 1
  # Webscoket连接地址,无需该配置字段可删除,将使用默认值 "/ws/shiro"
  ws-config:
    ws-url: "/ws/shiro"
  # 插件列表 (顺序执行,如果前一个插件返回了MESSAGE_BLOCK,将不会执行后续插件)
  plugin-list:
    - com.mikuac.bot.plugins.ExamplePlugin
// 继承BotPlugin开始编写插件
@Component
public class ExamplePlugin extends BotPlugin {

    @Override
    public int onPrivateMessage(@NotNull Bot bot, @NotNull PrivateMessageEvent event) {
        // 构建消息
        MsgUtils msgUtils = MsgUtils().builder().face(66).text("Hello, this is shiro demo.");
        // 发送私聊消息
        bot.sendPrivateMsg(event.getUserId(), msgUtils.build(), false);
        // 返回 MESSAGE_IGNORE 插件向下执行,返回 MESSAGE_BLOCK 则不执行下一个插件
        return MESSAGE_IGNORE;
    }

    @Override
    public int onGroupMessage(@NotNull Bot bot, @NotNull GroupMessageEvent event) {
        // 构建消息
        MsgUtils msgUtils = MsgUtils().builder().at(event.getUserId()).face(66).text("Hello, this is shiro demo.");
        // 发送群消息
        bot.sendGroupMsg(event.getGroupId(), msgUtils.build(), false);
        // 返回 MESSAGE_IGNORE 插件向下执行,返回 MESSAGE_BLOCK 则不执行下一个插件
        return MESSAGE_IGNORE;
    }

}

Client

Shiro 以 OneBot-v11 标准协议进行开发,兼容所有支持反向WebSocket的OneBot协议客户端

项目地址 平台 核心作者 备注
Yiwen-Chan/OneBot-YaYa 先驱 kanri
richardchien/coolq-http-api CKYU richardchien 可在 Mirai 平台使用 mirai-native 加载
Mrs4s/go-cqhttp MiraiGo Mrs4s
yyuueexxiinngg/cqhttp-mirai Mirai yyuueexxiinngg
takayama-lily/onebot OICQ takayama

Feature

完善中···

目前已实现绝大部分Event,Action,CQCode,请自行查看源码

Credits

License

This product is licensed under the GNU General Public License version 3. The license is as published by the Free Software Foundation published at https://www.gnu.org/licenses/gpl-3.0.html.

Alternatively, this product is licensed under the GNU Lesser General Public License version 3 for non-commercial use. The license is as published by the Free Software Foundation published at https://www.gnu.org/licenses/lgpl-3.0.html.

Feel free to contact us if you have any questions about licensing or want to use the library in a commercial closed source product.

Thanks

Thanks JetBrains Provide Free License Support OpenSource Project

Stargazers over time

Stargazers over time

Comments
  • 添加阻断注解,优化代码

    添加阻断注解,优化代码

    1.添加阻断注解,支持注解开发模式下的处理阻断 2.删除原有群消息和私聊消息处的排序逻辑,统一在注解收集处处理。这样不管什么类型的消息处理都能实现排序和阻断,不用重新写处理逻辑

    建议: 1.不要使用val,会降低代码可读性,没法直接显性的了解当前调用方法的返回值类型 2.可以使用策略模式+责任链模式优化过多的switch或者if

    opened by ilxyil 6
  • 添加@MessageHandler注解和sendMessage方法

    添加@MessageHandler注解和sendMessage方法

    功能描述 添加@MessageHandler注解和sendMessage方法 @MessageHandler同时监听PrivateMessage和GroupMessage,sendMessage方法根据Message类型和来源发送消息。比如是PrivateMessage就sendPrivateMessage到Event的userId

    enhancement 
    opened by kzw200015 6
  • [请求] ActionPathEnum 提供可扩展方式

    [请求] ActionPathEnum 提供可扩展方式

    是这样的,我在 go-cqhttp 看到的一些 request 发现在 ActionPathEnum 没有提供 (例如群精华消息,我找不到) ,于是便打算自行调用 ActionHandler 去做自定义的 API 请求。

    但我发现 Enum 是没办法自行使用反射创建的,而且你的 ActionHandler 的 doActionRequest 方法中只能放入 ActionPathEnum 作为请求,因此我现在无法做自定义的 API 请求。如果要在不修改API源代码的前提下做,我只能重新实作一个新的 ActionHandler ,并使用反射获取现有 ActionHandler 的所有实例,极其麻烦。

    如果此API会持续更新的话,我就需要每次有新的更新都要修改本API源代码一次,很麻烦。因此我希望你能接受 pull request ? 或者由作者本人去修改。

    为 ActionPathEnum 提供可扩展方式很简单,只要创建一个 interface 去定义 enum 的方法 然后由 ActionPathEnum 去继承,最后 ActionHandler 的 doActionRequest 方法 接收 该 Interface 作为参数而不是 ActionPathEnum 就可以了。

    public interface ActionPath {
    
      String getDesc();
      
      String getPath();
    
    }
    
    public enum ActionPathEnum implements ActionPath {
    
         SOME_ACTION("do_action", "某个请求"); // 更多如此类推
    
         private final String path;
         private final String desc;
        
        @Override
        public String getPath() {
            return this.path;
        }
    
        @Override
        public String getDesc() {
            return this.desc;
        }
    
        private ActionPathEnum(String path, String desc) {
            this.path = path;
            this.desc = desc;
        }
    }
    
    @Component
    public class ActionHandler {
         // ....
         public JSONObject doActionRequest(WebSocketSession session, ActionPath action, JSONObject params) {
            // ....
            String path = action.getPath();
            String desc = action.getDesc();
            // .....
         }
         // .....
    }
    
    enhancement 
    opened by eric2788 2
  • ⬆️ Bump spring-boot-starter-websocket from 2.7.5 to 3.0.1

    ⬆️ Bump spring-boot-starter-websocket from 2.7.5 to 3.0.1

    Bumps spring-boot-starter-websocket from 2.7.5 to 3.0.1.

    Release notes

    Sourced from spring-boot-starter-websocket's releases.

    v3.0.1

    :lady_beetle: Bug Fixes

    • Fix typo in LocalDevToolsAutoConfiguration logging #33615
    • No warning is given when <springProfile> is used in a Logback <root> block #33610
    • Auto-configure PropagationWebGraphQlInterceptor for tracing propagation #33542
    • WebClient instrumentation fails with IllegalArgumentException when adapting to WebClientExchangeTagsProvider #33483
    • Reactive observation auto-configuration does not declare order for WebFilter #33444
    • Web server fails to start due to "Resource location must not be null" when attempting to use a PKCS 11 KeyStore #33433
    • Actuator health endpoint for neo4j throws NoSuchElementException and always returns Status.DOWN #33428
    • Anchors in YAML configuration files throw UnsupportedOperationException #33404
    • ZipkinRestTemplateSender is not customizable #33399
    • AOT doesn't work with Logstash Logback Encoder #33387
    • Maven process-aot goal fails when release version is set in Maven compiler plugin #33382
    • DependsOnDatabaseInitializationPostProcessor re-declares bean dependencies at native image runtime #33374
    • @SpringBootTest now throws a NullPointerException rather than a helpful IllegalStateException when @SpringBootConfiguration is not found #33371
    • bootBuildImage always trys to create a native image due to bootJar always adding a META-INF/native-image/argfile to the jar #33363

    :notebook_with_decorative_cover: Documentation

    • Improve gradle plugin tags documentation #33617
    • Improve maven plugin tags documentation #33616
    • Fix typo in tomcat accesslog checkExists doc #33512
    • Documented Java compiler level is wrong #33505
    • Fix typo in documentation #33453
    • Update instead of replace environment in bootBuildImage documentation #33424
    • Update the reference docs to document the need to declare the native-maven-plugin when using buildpacks to create a native image #33422
    • Document that the shutdown endpoint is not intended for use when deploying a war to a servlet container #33410
    • Reinstate GraphQL testing documentaion #33407
    • Description of NEVER in Sanitize Sensitive Values isn't formatted correctly #33398

    :hammer: Dependency Upgrades

    • Upgrade to AspectJ 1.9.19 #33586
    • Upgrade to Byte Buddy 1.12.20 #33587
    • Upgrade to Couchbase Client 3.4.1 #33588
    • Upgrade to Dropwizard Metrics 4.2.14 #33589
    • Upgrade to Elasticsearch Client 8.5.3 #33590
    • Upgrade to Hibernate 6.1.6.Final #33591
    • Upgrade to HttpClient 4.5.14 #33592
    • Upgrade to HttpCore 4.4.16 #33593
    • Upgrade to Infinispan 14.0.4.Final #33594
    • Upgrade to Jaybird 4.0.8.java11 #33595
    • Upgrade to Jetty 11.0.13 #33596
    • Upgrade to jOOQ 3.17.6 #33597
    • Upgrade to Kotlin 1.7.22 #33598
    • Upgrade to Lettuce 6.2.2.RELEASE #33599
    • Upgrade to MongoDB 4.8.1 #33600
    • Upgrade to MSSQL JDBC 11.2.2.jre17 #33601
    • Upgrade to Native Build Tools Plugin 0.9.19 #33602

    ... (truncated)

    Commits
    • 837947c Release v3.0.1
    • 5929d95 Merge branch '2.7.x'
    • b10b788 Next development version (v2.7.8-SNAPSHOT)
    • f588793 Update copyright year of changed files
    • 0254619 Merge branch '2.7.x'
    • e4772cf Update copyright year of changed files
    • 2e7ca6f Warning if <springProfile> is used in phase 2 model elements
    • 2ed512d Use model.deepMarkAsSkipped in SpringProfileModelHandler
    • 532fed3 Increase couchbase connection timeout for tests
    • 9562a2c Merge branch '2.7.x'
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • ⬆️ Bump spring-boot-starter-test from 2.7.5 to 3.0.1

    ⬆️ Bump spring-boot-starter-test from 2.7.5 to 3.0.1

    Bumps spring-boot-starter-test from 2.7.5 to 3.0.1.

    Release notes

    Sourced from spring-boot-starter-test's releases.

    v3.0.1

    :lady_beetle: Bug Fixes

    • Fix typo in LocalDevToolsAutoConfiguration logging #33615
    • No warning is given when <springProfile> is used in a Logback <root> block #33610
    • Auto-configure PropagationWebGraphQlInterceptor for tracing propagation #33542
    • WebClient instrumentation fails with IllegalArgumentException when adapting to WebClientExchangeTagsProvider #33483
    • Reactive observation auto-configuration does not declare order for WebFilter #33444
    • Web server fails to start due to "Resource location must not be null" when attempting to use a PKCS 11 KeyStore #33433
    • Actuator health endpoint for neo4j throws NoSuchElementException and always returns Status.DOWN #33428
    • Anchors in YAML configuration files throw UnsupportedOperationException #33404
    • ZipkinRestTemplateSender is not customizable #33399
    • AOT doesn't work with Logstash Logback Encoder #33387
    • Maven process-aot goal fails when release version is set in Maven compiler plugin #33382
    • DependsOnDatabaseInitializationPostProcessor re-declares bean dependencies at native image runtime #33374
    • @SpringBootTest now throws a NullPointerException rather than a helpful IllegalStateException when @SpringBootConfiguration is not found #33371
    • bootBuildImage always trys to create a native image due to bootJar always adding a META-INF/native-image/argfile to the jar #33363

    :notebook_with_decorative_cover: Documentation

    • Improve gradle plugin tags documentation #33617
    • Improve maven plugin tags documentation #33616
    • Fix typo in tomcat accesslog checkExists doc #33512
    • Documented Java compiler level is wrong #33505
    • Fix typo in documentation #33453
    • Update instead of replace environment in bootBuildImage documentation #33424
    • Update the reference docs to document the need to declare the native-maven-plugin when using buildpacks to create a native image #33422
    • Document that the shutdown endpoint is not intended for use when deploying a war to a servlet container #33410
    • Reinstate GraphQL testing documentaion #33407
    • Description of NEVER in Sanitize Sensitive Values isn't formatted correctly #33398

    :hammer: Dependency Upgrades

    • Upgrade to AspectJ 1.9.19 #33586
    • Upgrade to Byte Buddy 1.12.20 #33587
    • Upgrade to Couchbase Client 3.4.1 #33588
    • Upgrade to Dropwizard Metrics 4.2.14 #33589
    • Upgrade to Elasticsearch Client 8.5.3 #33590
    • Upgrade to Hibernate 6.1.6.Final #33591
    • Upgrade to HttpClient 4.5.14 #33592
    • Upgrade to HttpCore 4.4.16 #33593
    • Upgrade to Infinispan 14.0.4.Final #33594
    • Upgrade to Jaybird 4.0.8.java11 #33595
    • Upgrade to Jetty 11.0.13 #33596
    • Upgrade to jOOQ 3.17.6 #33597
    • Upgrade to Kotlin 1.7.22 #33598
    • Upgrade to Lettuce 6.2.2.RELEASE #33599
    • Upgrade to MongoDB 4.8.1 #33600
    • Upgrade to MSSQL JDBC 11.2.2.jre17 #33601
    • Upgrade to Native Build Tools Plugin 0.9.19 #33602

    ... (truncated)

    Commits
    • 837947c Release v3.0.1
    • 5929d95 Merge branch '2.7.x'
    • b10b788 Next development version (v2.7.8-SNAPSHOT)
    • f588793 Update copyright year of changed files
    • 0254619 Merge branch '2.7.x'
    • e4772cf Update copyright year of changed files
    • 2e7ca6f Warning if <springProfile> is used in phase 2 model elements
    • 2ed512d Use model.deepMarkAsSkipped in SpringProfileModelHandler
    • 532fed3 Increase couchbase connection timeout for tests
    • 9562a2c Merge branch '2.7.x'
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • ⬆️ Bump spring-boot-configuration-processor from 2.7.5 to 3.0.1

    ⬆️ Bump spring-boot-configuration-processor from 2.7.5 to 3.0.1

    Bumps spring-boot-configuration-processor from 2.7.5 to 3.0.1.

    Release notes

    Sourced from spring-boot-configuration-processor's releases.

    v3.0.1

    :lady_beetle: Bug Fixes

    • Fix typo in LocalDevToolsAutoConfiguration logging #33615
    • No warning is given when <springProfile> is used in a Logback <root> block #33610
    • Auto-configure PropagationWebGraphQlInterceptor for tracing propagation #33542
    • WebClient instrumentation fails with IllegalArgumentException when adapting to WebClientExchangeTagsProvider #33483
    • Reactive observation auto-configuration does not declare order for WebFilter #33444
    • Web server fails to start due to "Resource location must not be null" when attempting to use a PKCS 11 KeyStore #33433
    • Actuator health endpoint for neo4j throws NoSuchElementException and always returns Status.DOWN #33428
    • Anchors in YAML configuration files throw UnsupportedOperationException #33404
    • ZipkinRestTemplateSender is not customizable #33399
    • AOT doesn't work with Logstash Logback Encoder #33387
    • Maven process-aot goal fails when release version is set in Maven compiler plugin #33382
    • DependsOnDatabaseInitializationPostProcessor re-declares bean dependencies at native image runtime #33374
    • @SpringBootTest now throws a NullPointerException rather than a helpful IllegalStateException when @SpringBootConfiguration is not found #33371
    • bootBuildImage always trys to create a native image due to bootJar always adding a META-INF/native-image/argfile to the jar #33363

    :notebook_with_decorative_cover: Documentation

    • Improve gradle plugin tags documentation #33617
    • Improve maven plugin tags documentation #33616
    • Fix typo in tomcat accesslog checkExists doc #33512
    • Documented Java compiler level is wrong #33505
    • Fix typo in documentation #33453
    • Update instead of replace environment in bootBuildImage documentation #33424
    • Update the reference docs to document the need to declare the native-maven-plugin when using buildpacks to create a native image #33422
    • Document that the shutdown endpoint is not intended for use when deploying a war to a servlet container #33410
    • Reinstate GraphQL testing documentaion #33407
    • Description of NEVER in Sanitize Sensitive Values isn't formatted correctly #33398

    :hammer: Dependency Upgrades

    • Upgrade to AspectJ 1.9.19 #33586
    • Upgrade to Byte Buddy 1.12.20 #33587
    • Upgrade to Couchbase Client 3.4.1 #33588
    • Upgrade to Dropwizard Metrics 4.2.14 #33589
    • Upgrade to Elasticsearch Client 8.5.3 #33590
    • Upgrade to Hibernate 6.1.6.Final #33591
    • Upgrade to HttpClient 4.5.14 #33592
    • Upgrade to HttpCore 4.4.16 #33593
    • Upgrade to Infinispan 14.0.4.Final #33594
    • Upgrade to Jaybird 4.0.8.java11 #33595
    • Upgrade to Jetty 11.0.13 #33596
    • Upgrade to jOOQ 3.17.6 #33597
    • Upgrade to Kotlin 1.7.22 #33598
    • Upgrade to Lettuce 6.2.2.RELEASE #33599
    • Upgrade to MongoDB 4.8.1 #33600
    • Upgrade to MSSQL JDBC 11.2.2.jre17 #33601
    • Upgrade to Native Build Tools Plugin 0.9.19 #33602

    ... (truncated)

    Commits
    • 837947c Release v3.0.1
    • 5929d95 Merge branch '2.7.x'
    • b10b788 Next development version (v2.7.8-SNAPSHOT)
    • f588793 Update copyright year of changed files
    • 0254619 Merge branch '2.7.x'
    • e4772cf Update copyright year of changed files
    • 2e7ca6f Warning if <springProfile> is used in phase 2 model elements
    • 2ed512d Use model.deepMarkAsSkipped in SpringProfileModelHandler
    • 532fed3 Increase couchbase connection timeout for tests
    • 9562a2c Merge branch '2.7.x'
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • ⬆️ Bump spring-boot-starter-test from 2.7.5 to 3.0.0

    ⬆️ Bump spring-boot-starter-test from 2.7.5 to 3.0.0

    Bumps spring-boot-starter-test from 2.7.5 to 3.0.0.

    Release notes

    Sourced from spring-boot-starter-test's releases.

    v3.0.0

    :star: New Features

    • Provide a configuration property for the observation patterns of Spring Integration components #33099

    :lady_beetle: Bug Fixes

    • io.micrometer.tracing.Tracer on the classpath breaks AOT processing for tests #33298
    • Tracer library HTTP instrumentation is auto-configured unnecessarily #33287
    • Auto-configuration ignores user-provided ObservationConventions #33285
    • ScheduledBeanLazyInitializationExcludeFilter is auto-configured even when annotation-based scheduled has not been enabled #33284
    • SpringBootContextLoader prints banner twice when using a @ContextHierarchy #33263
    • Properties migrator causes an application to fail to start if it tries to map a property whose metadata data entry contains an invalid configuration property name #33250
    • Wavefront MeterRegistryCustomizer is not applying application tags from application.properties #33244
    • Actuator responses no longer format timestamps as ISO-8601 #33236
    • Configuration property is not bound in a native image when property has get, set, and is methods #33232
    • Configuration property binding does not deal with bridge methods #33212
    • Contribute missing resource hints for GraphQL schema files and GraphiQL HTML page #33208
    • Hints for ClientHttpRequestFactory should only be generated for matching methods #33203
    • Native profile should configure execution in pluginManagement #33184
    • Configuring management.server.port via a config tree results in a ConverterNotFoundException when the management context is refreshed #33169
    • JBoss logging does not route directly to SLF4J when using Logback #33155
    • Test with UseMainMethod.Always do not work with Kotlin main functions #33114
    • Maven process-aot does not specify source and target release when compiling generated sources #33112
    • Some Actuator beans are ineligible for post-processing #33110
    • AOT-generated source fails to compile when Actuator is enabled on a WebFlux project #33106
    • @ContextHierarchy should never be used with main method #33078
    • Maven process-aot fails when compiler plugin has been configured with --enable-preview #33012
    • Wavefront application tags differ from those used in a Spring Boot 2.x application #32844
    • Maven goal spring-boot:build-image runs package phase twice #26455

    :notebook_with_decorative_cover: Documentation

    • Document observation for R2DBC #33335
    • Align Tomcat multiple connectors example with recommendation to configure SSL declaratively #33333
    • Actuator document is misleading about k8s startup probe #33327
    • Update documented for @Timed to reflect narrower support #33282
    • Update reference documentation to replace mentions of tags providers and contributors with their Observation-based equivalents #33281
    • Link to Micrometer's @Timed documentation #33266
    • Clarify use of the spring.cache.type property with Hazelcast #33258
    • Example git.commit.time in the Actuator API documentation is thousands of years in the future #33256
    • Update Spring Security filter dispatcher types docs to reflect change in default value #33252
    • Documentation for nested configuration properties in a native image uses @NestedConfigurationProperty too widely #33239
    • Document that the jar task should not be disabled when building a native image #33238
    • Document nesting configuration properties using records or Kotlin data classes and how and when to use @NestedConfigurationProperty #33235
    • Links to Features describes sections that have moved elsewhere #33214
    • Fix broken links in docs #33209
    • Document the need for compilation with -parameters when targeting a native image #33182
    • Remove outdated native image documentation #33109
    • Mention @RegisterReflectionForBinding in the docs #32903

    ... (truncated)

    Commits
    • c9c359f Release v3.0.0
    • fb2cc73 Work around Thymeleaf's dependency on spring-security-bom:6.0.0-RC2
    • 355b428 Merge branch '2.7.x'
    • 7ea5881 Update LATEST_GA to false to prepare for 3.0.0's release
    • 1de09f4 Merge branch '2.6.x' into 2.7.x
    • e922650 Upgrade to Spring Framework 6.0.2
    • 4b8a28a Next development version (v2.7.7-SNAPSHOT)
    • 14ba9b1 Start building against Spring Framework 6.0.2 snapshots
    • d4a9100 Next development version (v2.6.15-SNAPSHOT)
    • 28cb225 Merge branch '2.7.x'
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • ⬆️ Bump spring-boot-starter-websocket from 2.7.5 to 3.0.0

    ⬆️ Bump spring-boot-starter-websocket from 2.7.5 to 3.0.0

    Bumps spring-boot-starter-websocket from 2.7.5 to 3.0.0.

    Release notes

    Sourced from spring-boot-starter-websocket's releases.

    v3.0.0

    :star: New Features

    • Provide a configuration property for the observation patterns of Spring Integration components #33099

    :lady_beetle: Bug Fixes

    • io.micrometer.tracing.Tracer on the classpath breaks AOT processing for tests #33298
    • Tracer library HTTP instrumentation is auto-configured unnecessarily #33287
    • Auto-configuration ignores user-provided ObservationConventions #33285
    • ScheduledBeanLazyInitializationExcludeFilter is auto-configured even when annotation-based scheduled has not been enabled #33284
    • SpringBootContextLoader prints banner twice when using a @ContextHierarchy #33263
    • Properties migrator causes an application to fail to start if it tries to map a property whose metadata data entry contains an invalid configuration property name #33250
    • Wavefront MeterRegistryCustomizer is not applying application tags from application.properties #33244
    • Actuator responses no longer format timestamps as ISO-8601 #33236
    • Configuration property is not bound in a native image when property has get, set, and is methods #33232
    • Configuration property binding does not deal with bridge methods #33212
    • Contribute missing resource hints for GraphQL schema files and GraphiQL HTML page #33208
    • Hints for ClientHttpRequestFactory should only be generated for matching methods #33203
    • Native profile should configure execution in pluginManagement #33184
    • Configuring management.server.port via a config tree results in a ConverterNotFoundException when the management context is refreshed #33169
    • JBoss logging does not route directly to SLF4J when using Logback #33155
    • Test with UseMainMethod.Always do not work with Kotlin main functions #33114
    • Maven process-aot does not specify source and target release when compiling generated sources #33112
    • Some Actuator beans are ineligible for post-processing #33110
    • AOT-generated source fails to compile when Actuator is enabled on a WebFlux project #33106
    • @ContextHierarchy should never be used with main method #33078
    • Maven process-aot fails when compiler plugin has been configured with --enable-preview #33012
    • Wavefront application tags differ from those used in a Spring Boot 2.x application #32844
    • Maven goal spring-boot:build-image runs package phase twice #26455

    :notebook_with_decorative_cover: Documentation

    • Document observation for R2DBC #33335
    • Align Tomcat multiple connectors example with recommendation to configure SSL declaratively #33333
    • Actuator document is misleading about k8s startup probe #33327
    • Update documented for @Timed to reflect narrower support #33282
    • Update reference documentation to replace mentions of tags providers and contributors with their Observation-based equivalents #33281
    • Link to Micrometer's @Timed documentation #33266
    • Clarify use of the spring.cache.type property with Hazelcast #33258
    • Example git.commit.time in the Actuator API documentation is thousands of years in the future #33256
    • Update Spring Security filter dispatcher types docs to reflect change in default value #33252
    • Documentation for nested configuration properties in a native image uses @NestedConfigurationProperty too widely #33239
    • Document that the jar task should not be disabled when building a native image #33238
    • Document nesting configuration properties using records or Kotlin data classes and how and when to use @NestedConfigurationProperty #33235
    • Links to Features describes sections that have moved elsewhere #33214
    • Fix broken links in docs #33209
    • Document the need for compilation with -parameters when targeting a native image #33182
    • Remove outdated native image documentation #33109
    • Mention @RegisterReflectionForBinding in the docs #32903

    ... (truncated)

    Commits
    • c9c359f Release v3.0.0
    • fb2cc73 Work around Thymeleaf's dependency on spring-security-bom:6.0.0-RC2
    • 355b428 Merge branch '2.7.x'
    • 7ea5881 Update LATEST_GA to false to prepare for 3.0.0's release
    • 1de09f4 Merge branch '2.6.x' into 2.7.x
    • e922650 Upgrade to Spring Framework 6.0.2
    • 4b8a28a Next development version (v2.7.7-SNAPSHOT)
    • 14ba9b1 Start building against Spring Framework 6.0.2 snapshots
    • d4a9100 Next development version (v2.6.15-SNAPSHOT)
    • 28cb225 Merge branch '2.7.x'
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • ⬆️ Bump spring-boot-configuration-processor from 2.7.5 to 3.0.0

    ⬆️ Bump spring-boot-configuration-processor from 2.7.5 to 3.0.0

    Bumps spring-boot-configuration-processor from 2.7.5 to 3.0.0.

    Release notes

    Sourced from spring-boot-configuration-processor's releases.

    v3.0.0

    :star: New Features

    • Provide a configuration property for the observation patterns of Spring Integration components #33099

    :lady_beetle: Bug Fixes

    • io.micrometer.tracing.Tracer on the classpath breaks AOT processing for tests #33298
    • Tracer library HTTP instrumentation is auto-configured unnecessarily #33287
    • Auto-configuration ignores user-provided ObservationConventions #33285
    • ScheduledBeanLazyInitializationExcludeFilter is auto-configured even when annotation-based scheduled has not been enabled #33284
    • SpringBootContextLoader prints banner twice when using a @ContextHierarchy #33263
    • Properties migrator causes an application to fail to start if it tries to map a property whose metadata data entry contains an invalid configuration property name #33250
    • Wavefront MeterRegistryCustomizer is not applying application tags from application.properties #33244
    • Actuator responses no longer format timestamps as ISO-8601 #33236
    • Configuration property is not bound in a native image when property has get, set, and is methods #33232
    • Configuration property binding does not deal with bridge methods #33212
    • Contribute missing resource hints for GraphQL schema files and GraphiQL HTML page #33208
    • Hints for ClientHttpRequestFactory should only be generated for matching methods #33203
    • Native profile should configure execution in pluginManagement #33184
    • Configuring management.server.port via a config tree results in a ConverterNotFoundException when the management context is refreshed #33169
    • JBoss logging does not route directly to SLF4J when using Logback #33155
    • Test with UseMainMethod.Always do not work with Kotlin main functions #33114
    • Maven process-aot does not specify source and target release when compiling generated sources #33112
    • Some Actuator beans are ineligible for post-processing #33110
    • AOT-generated source fails to compile when Actuator is enabled on a WebFlux project #33106
    • @ContextHierarchy should never be used with main method #33078
    • Maven process-aot fails when compiler plugin has been configured with --enable-preview #33012
    • Wavefront application tags differ from those used in a Spring Boot 2.x application #32844
    • Maven goal spring-boot:build-image runs package phase twice #26455

    :notebook_with_decorative_cover: Documentation

    • Document observation for R2DBC #33335
    • Align Tomcat multiple connectors example with recommendation to configure SSL declaratively #33333
    • Actuator document is misleading about k8s startup probe #33327
    • Update documented for @Timed to reflect narrower support #33282
    • Update reference documentation to replace mentions of tags providers and contributors with their Observation-based equivalents #33281
    • Link to Micrometer's @Timed documentation #33266
    • Clarify use of the spring.cache.type property with Hazelcast #33258
    • Example git.commit.time in the Actuator API documentation is thousands of years in the future #33256
    • Update Spring Security filter dispatcher types docs to reflect change in default value #33252
    • Documentation for nested configuration properties in a native image uses @NestedConfigurationProperty too widely #33239
    • Document that the jar task should not be disabled when building a native image #33238
    • Document nesting configuration properties using records or Kotlin data classes and how and when to use @NestedConfigurationProperty #33235
    • Links to Features describes sections that have moved elsewhere #33214
    • Fix broken links in docs #33209
    • Document the need for compilation with -parameters when targeting a native image #33182
    • Remove outdated native image documentation #33109
    • Mention @RegisterReflectionForBinding in the docs #32903

    ... (truncated)

    Commits
    • c9c359f Release v3.0.0
    • fb2cc73 Work around Thymeleaf's dependency on spring-security-bom:6.0.0-RC2
    • 355b428 Merge branch '2.7.x'
    • 7ea5881 Update LATEST_GA to false to prepare for 3.0.0's release
    • 1de09f4 Merge branch '2.6.x' into 2.7.x
    • e922650 Upgrade to Spring Framework 6.0.2
    • 4b8a28a Next development version (v2.7.7-SNAPSHOT)
    • 14ba9b1 Start building against Spring Framework 6.0.2 snapshots
    • d4a9100 Next development version (v2.6.15-SNAPSHOT)
    • 28cb225 Merge branch '2.7.x'
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • 插件异常后在控制台无输出

    插件异常后在控制台无输出

    详细描述 插件出现异常后,未将异常信息输出至标准输出

    预期结果 将异常栈信息输出至标准输出

    当前结果 无异常信息

    在最新的RELEASE版本中能否复现?

    复现方法 throw new RuntimeException("Test");

    屏幕截图或者日志 无报错日志

    运行或开发环境

    • 系统版本:[ CentOS 7 ]
    • Shiro版本:[ v.1.2.7 ]
    • 客户端版本:[ go-cqhttp v1.0.0-rc1 ]
    • JDK版本:[ openjdk version "1.8.0_282" ]
    • SpringBoot版本:[ v2.2.6.RELEASE ]
    bug 
    opened by coder-tq 1
  • ⬆️ Bump fastjson2 from 2.0.20 to 2.0.21

    ⬆️ Bump fastjson2 from 2.0.20 to 2.0.21

    Bumps fastjson2 from 2.0.20 to 2.0.21.

    Release notes

    Sourced from fastjson2's releases.

    FASTJSON 2.0.21版本发布,BUG FIX提升兼容性

    这又是一个BUG FIX功能增强版本,很多用户已经开始从FASTJSON 1.x测试升级到FASTJSON 2.0。DUBBO 3在测试FASTJSON 2。同时也有一些大数据场景开始使用FASTJSON 2的JSONPath。这个过程发现了一些问题,也产生了新的需求,需要快速解决,所以最近发布新版本比较频繁,大家按需升级,使用兼容API的用户,建议使用最新版本。

    Issues

    1. 反序列化支持自动识别英语MMM日期格式 #997
    2. 修复JSONSchema某种场景空指针的异常 #986
    3. 修复parseArray方法不兼容的问题 #984
    4. 增加FASTJSON 1.x BrowserSecure的兼容支持 #964
    5. 修复Enum序列化mixin与WriteEnumUsingToString同时配置时不起作用的问题 #971
    6. Enum成员支持JSONField配置输出名字
    7. JSONPath兼容FASTJSON 1.x设置数字属性 #956
    8. 增强对Boolean类型的自动识别 #976
    9. 支持Probuf对象序列化为JSON格式 #982
    10. 修复首字母大写字段无法反序列化的问题 #983
    11. JSONObject.toJavaObject某些场景报错的问题 #1001
    12. 支持自动识别Jackson Annotation JsonFormat的日期格式配置 #1003
    13. 支持将空字符串识别为NULL #998
    14. 增强对JDK 14 Record类型反序列化的支持 #994
    15. 修复JVM参数-XX:-CompactStrings配置下导致反序列化源码的问题
    16. 修复ObjectReaderProvider/ObjectWriterProvider的cleanUp方法在复杂场景不起作用的问题
    17. 进一步提升了JSONB格式的序列化和反序列化性能
    18. 修复特定场景下序列化生成ObjectWriter时报Timsort异常的问题

    MAVEN依赖配置

    <dependency>
    	<groupId>com.alibaba.fastjson2</groupId>
    	<artifactId>fastjson2</artifactId>
    	<version>2.0.21</version>
    </dependency>
    
    • GraalVM版本
    <dependency>
    	<groupId>com.alibaba.fastjson2</groupId>
    	<artifactId>fastjson2</artifactId>
    	<version>2.0.21.graal</version>
    </dependency>
    
    • Android版本
    <dependency>
    	<groupId>com.alibaba.fastjson2</groupId>
    	<artifactId>fastjson2</artifactId>
    	<version>2.0.21.android</version>
    </dependency>
    

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
Releases(v1.4.4)
  • v1.4.4(Dec 20, 2022)

  • v1.4.3(Dec 12, 2022)

  • v1.4.2(Dec 4, 2022)

    新增: 新增 @Order 注解 @ilxyil 修复: 用户在已经继承 BotPlugin 的情况下还使用注解导致消息被重复消费 @ilxyil 新增: @PrivateMessageHandler @GuildMessageHandler 支持 @Order 注解进行优先级排序 @ilxyil

    Source code(tar.gz)
    Source code(zip)
  • v1.4.1(Dec 3, 2022)

  • v1.4.0(Nov 4, 2022)

    新增: 群文件删除 新增: 群文件文件夹创建 新增: 群文件文件夹删除 新增: 获取群文件资源链接 修改: onWholeMessage -> onAnyMessage

    Source code(tar.gz)
    Source code(zip)
  • v1.3.9(Nov 1, 2022)

    以下方法均由 com.mikuac.shiro.core.CoreEvent 类提供

    新增: 客户端 online offline 事件 新增: 支持 session 自定义处理

    Source code(tar.gz)
    Source code(zip)
  • v1.3.8(Oct 27, 2022)

    修复: 消息事件注解 at 参数与 cmd 参数无法共存使用 变更: WholeMessageEvent 变更为 AnyMessageEvent 其他: 依赖升级

    Source code(tar.gz)
    Source code(zip)
  • v1.3.7(Oct 20, 2022)

    新增: 私聊消息事件增加 groupId 字段,当 subType 值为 group 时,表明本次事件为临时消息,groupId 值为来源群号

    Source code(tar.gz)
    Source code(zip)
  • v1.3.6(Oct 19, 2022)

  • v1.3.5(Sep 2, 2022)

    修复: 部分空参数接口空指针异常 - 导致原因 [1fd247da39c2e68865955a5cef19084a08a2ec56]

    新增: 群打卡 新增: 获取单向好友列表 新增: 删除单向好友接口

    Source code(tar.gz)
    Source code(zip)
  • v1.3.4(Aug 31, 2022)

  • v1.3.3(Aug 23, 2022)

  • v1.3.2(Jun 23, 2022)

    API

    图片 OCR 获取频道列表 私聊合并转发 获取中文分词 私聊文件发送 获取当前账号在线客户端列表 设置登录账号信息(昵称,头像等···)

    Event

    无更新

    MsgUtils

    支持发送猜拳消息 rps

    ShiroUtils

    escape2 消息编码(可用于转义CQ码,防止文本注入)

    Source code(tar.gz)
    Source code(zip)
  • v1.3.1(May 21, 2022)

    新增: 频道支持 更新: 替换 fastjsonfastjson2

    API

    获取频道列表 @MisakaTAT 获取子频道列表 @MisakaTAT 发送信息到子频道 @alexskim 单独获取频道成员信息 @MisakaTAT 通过访客获取频道元数据 @MisakaTAT 获取频道系统内BOT的资料 @MisakaTAT

    Event

    子频道创建 @MisakaTAT 子频道删除 @MisakaTAT 收到频道消息 @alexskim 子频道信息更新 @MisakaTAT 频道消息表情贴更新 @MisakaTAT

    Source code(tar.gz)
    Source code(zip)
  • v1.3.0(Apr 4, 2022)

  • v1.2.9(Feb 18, 2022)

    优化: 移除了 Google Guava 依赖,改为使用内部限流工具类,进一步减小体积。 修复: MsgUtils 部分消息类型的编码问题

    Source code(tar.gz)
    Source code(zip)
  • v1.2.8(Feb 16, 2022)

    修正: 字符串消息转数组消息分割错误 修正: BotPlugin 类的事件重写方法内部异常抛出被错误捕获 #41

    新增: 群消息与好友消息撤回通知事件注解 新增: ShiroUtils 新增通过 QQ 获取昵称方法

    其它: 常规依赖更新

    Source code(tar.gz)
    Source code(zip)
  • v1.2.7(Jan 17, 2022)

    新增: 增加 @Shiro 注解,纯注解监听插件可在类上添加此注解替代继承 BotPlugin

    变更: 修正注解监听事件所返回 Matcher 类的默认匹配行为 变更: 注解名修改 FriendAddHandler -> FriendAddNoticeHandler

    其它: 代码结构改进

    Source code(tar.gz)
    Source code(zip)
  • v1.2.6(Dec 31, 2021)

    新增: 优化 ShiroUtils.generateForwardMsg() 新增: 支持自定义限速器模式 新增: 支持从代理对象的目标类上获取自定义注解 新增: 新增 onWholeMessage 方法

    Source code(tar.gz)
    Source code(zip)
  • v1.2.5(Dec 23, 2021)

    新增: 好友添加事件注解 @FriendAddNotice 新增: 群成员增加事件注解 @GroupIncreaseHandler 新增: 群成员减少事件注解 @GroupDecreaseHandler 新增: MsgUtils 支持 musiccustomMusic 类型消息发送 常规: 依赖更新

    Source code(tar.gz)
    Source code(zip)
  • v1.2.4(Dec 16, 2021)

    修正: 字段 retcode 变更为 retCode 修正: 增加在 v1.2.3 版本中被误移除的 spring-boot-configuration-processor 依赖(编写yaml文件将会无提示,不影响正常读取)

    Source code(tar.gz)
    Source code(zip)
  • v1.2.3(Dec 15, 2021)

  • v1.2.2(Dec 7, 2021)

  • v1.2.1(Dec 7, 2021)

  • v1.2.0(Dec 2, 2021)

  • v1.1.9(Nov 28, 2021)

  • v1.1.8(Nov 26, 2021)

  • v1.1.7(Nov 15, 2021)

  • v1.1.6(Nov 13, 2021)

  • v1.1.5(Sep 22, 2021)

Owner
MisakaTAT
凉风乍起,一叶知秋。
MisakaTAT