机器人自己发送的消息,MessageEvent事件监听不到
-
使用组件:Mirai-core 2.15-M1
前因
我想要将数据存储到数据库中,以从别人的引用消息中获取原数据
但是当别人引用除机器人以外其他消息是,数据库可以查询到
当别人引用机器人发的消息时,数据库查询不到控制台输出,发现机器人并没有将自己发送的消息存储到数据库
于是我尝试使用MessagePostSendEvent事件,将原数据添加到数据库中
但MessagePostSendEvent并不附带MessageSource,所以无法获取ids等信息我想要
希望修复这个bug,让MessageEvent可以监听到机器人自己发送的消息
PS:我测试用其他设备发送消息,MessageEvent可以监听到,但就是监听不到Mirai自己发的消息
-
MessagePostSendEvent.receipt.source
-
@cssxsh 牛啦,这是我的实现
private void messagePostSendEventListener() { logger.info("MessagePostSendEventListener Running"); GlobalEventChannel.INSTANCE.subscribeAlways(MessagePostSendEvent.class, event -> { logger.info("MessagePostSendEvent..."); // 这里新构造了一个带source的chain,存储到数据库中 MessageChain chain = Objects.requireNonNull(event.getReceipt()).getSource().plus(event.getMessage()); if (!chainService.insertMessageChain(new MessageChainData(chain))) logger.warn("存储失败: " + chain.contentToString()); }); }
-
此回复已被删除!