Coder Social home page Coder Social logo

simple-robot / simpler-robot Goto Github PK

View Code? Open in Web Editor NEW
502.0 6.0 43.0 102.11 MB

Simple Robot,一个bot风格的高效异步事件调度框架 / A Bot-style event scheduling framework, asynchronous and high-performance

Home Page: https://simbot.forte.love

License: GNU Lesser General Public License v3.0

Kotlin 99.01% Java 0.88% CSS 0.06% FreeMarker 0.05%
simbot simple-robot bot qqbot kook-bot qq-bot qq-guild-bot java kotlin bot-framework

simpler-robot's Issues

[BUG] 根据微信群号获取群信息异常

version: 2.0.0-BETA.6
java: 8_261

module: 可爱猫-httpapi

问题描述

根据群号获取群成员异常

相关日志

https://paste.ubuntu.com/p/2RTJbb62gg/

复现方式

@Listen(GroupMsg.class)
    public void testGroup(GroupMsg msg, MsgSender sender) {
        System.out.println("收到群消息:" + msg.getMsg());

        System.out.println(sender.GETTER.getGroupInfo(msg));

        for (GroupMemberInfo groupMemberInfo : sender.GETTER.getGroupMemberList(msg)) {
            System.out.println(groupMemberInfo);
        }

[BUG] 监听新人入群事件获取OperatorInfo报NPE

version: 2.0.0-ALPHA.10

module: ``

问题描述

监听新人入群事件时,从GroupMemberIncrease中获取OperatorInfo报NPE异常

相关日志

相关代码
@OnGroupMemberIncrease
public void groupMemberIncreaseListener(GroupMemberIncrease increaseMsg, MsgSender sender) {
log.info("新增了一名群成员");
long operatorCode = Objects.requireNonNull(increaseMsg.getOperatorInfo()).getOperatorCodeNumber();

复现方式

监听新人入群事件

[BUG] @ListenBreak未实现

version: 2.0.0-ALPHA.7

module: ``

疑问描述

两个监听器,第一个监听器A用了PriorityConstant.FIRST标记第一个执行,第二个监听器B是用@OnPrivate,所以应该是默认的PriorityConstant.TENTH,最后一个执行,A监听器使用了@ListenBreak注解,想要实现A监听器执行成功后不执行B监听器,但是最后两个监听器都执行了。

[BUG] 发送多个消息导致锁异常

version: v2.0.0-ALPHA.9

module: component-mirai

问题描述

当一次性发送多个图片的时候,会导致出现同步锁异常。

解决方案

移除同步锁,并追加图片复述时的优化方案。

[BUG] @Filter(anyAt = true) 无效

version: v2.0.0-ALPHA.12

module: core

@Filter(anyAt = true) 无效,实际表现等同于 @Filter(anyAt = false), 仅 @Filters(anyAt = true) 才会生效。

[QUE] mirai组件多行文本控制台显示不全

version: 2.0.0-RC.1``

module: ``

问题描述

@listen(GroupMsg.class)
public void GroupMessage(GroupMsg msg,MsgSender sender){

    System.out.println(msg.getMsg());
}

假设接收到一个换行群消息:
Test
Test
Test
通过System.out.println(msg.getMsg());仅能得到最后一个Test

相关日志

复现方式

@listen(GroupMsg.class)
public void GroupMessage(GroupMsg msg,MsgSender sender){

    System.out.println(msg.getMsg());
}

假设接收到一个换行群消息:
Test
Test
Test
通过System.out.println(msg.getMsg());仅能得到最后一个Test

[BUG] http-client-ktor 模块依赖 serialization-json-core 而未提供默认的实现模块导致mirai组件启动报错。

version: 2.0.0-ALPHA.5

module: http-client-ktor

问题描述

http-client-ktor 模块依赖serialization-json-core 而未提供默认的实现模块导致依赖注入失败,会导致mirai组件启动报错。

临时解决方案:
pom中追加:

        <dependency>
            <groupId>love.forte.simple-robot</groupId>
            <artifactId>serialization-json-fastjson</artifactId>
        </dependency>

下一个 alpha.6 版本修复。

[BUG]

version: v2.0.0-ALPHA.4-v2.0.0-ALPHA.5

module: core

问题描述

v2.0.0-ALPHA.4 版本更新后会导致任何不存在 文本消息(text) 的事件消息被所有监听函数触发。
此问题将会在 v2.0.0-ALPHA.6 版本修复。

[SUG] 优化事件触发机制

优化事件触发机制,当尝试触发一个不存在/未注册的事件类型的时候,不会真正触发事件流程。

[FEAT] 允许kotlin可空参数默认置null

// myBean 可以为null,因此如果依赖管理找不到此实例则会得到null值,而不是抛出异常。
@OnGroup
fun listen(msg: GroupMsg, myBean: MyBean?) {
    // ...
}

自定义过滤器MostMatchType失效

version: 2.0.0-BETA.7

module: filter

问题描述

监听器上加两个自定义过滤器,后面指定匹配规则失效
测试了两个方法,分别指定了mostMatchType = MostMatchType.ALL和mostMatchType = MostMatchType.ANY
都只执行了第一个过滤器,第一个过滤器返回true的情况下不会执行第二个过滤器,直接执行监听事件,第一个返回false才会执行第二个过滤器

相关日志

复现方式

[FEAT] @Filter支持定向过滤

使@Filter不再仅局限于通过msg.text进行过滤,而是支持解析一个简单的表达式来允许通过其他目标进行过滤,例如ListenContext中的某个元素。

[SUG] 提供默认送信器接口

提供一种配置以实现多个 默认送信器 方案,例如对于不支持的API来讲,严格模式下会抛出异常,而兼容模式下则会返回一个默认常量,警告模式则会输出警告日志等。

[BUG] @Filter未匹配正则表达式

version: `` 2.0.0-BETA.6

module: `` core

问题描述

@filter 对于其中正则表达式解析似乎不太对

相关日志

复现方式

@OnPrivate @Filter(value = ".*A.*") public void A(PrivateMsg msg, MsgSender sender) { System.out.println("A->A"); }

方法如上 此监听的正则表达式好像没有生效,仅当我输入.*A.*时,监听才会触发
注:@ongroup中匹配似乎是正常的

[FEAT] 优化监听函数注册时,监听类型与实际参数不符的情况

// 监听函数解析期间会输出警告日志,因为你监听了 GroupMsg, 而参数中的 PrivateMsg 却没有被监听,它在触发监听时会抛出异常。
@OnGroup
public void listen(PrivateMsg msg) {
    // ...    
}
// 监听函数解析期间会输出警告日志,因为你监听了 GroupMsg, 而参数中的 PrivateMsg 却没有被监听,它将永远为null。
@OnGroup
public void listen(@Depend(orIgnore = true) PrivateMsg msg) {
    // ...    
}

[FEAT] 细化账号信息容器

细化账号信息容器(AccountInfo)的子类型, 例如好友账号信息容器、群成员账号信息容器等。

[BUG]

version: B7

module: CatCode

问题描述

CatCodeUtil.getInstance().getNekoList(msg, "at")
获取不到消息内容里面的猫猫码

相关日志

复现方式

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.