Closed jasonren0403 closed 3 years ago
bot上线调用第一条命令时,会把上一次登录最后的2-3条命令一起带出来,不知道是mirai本身还是yuq-mirai框架的问题。 该控制器有这样的定义
@Path("lethe \\(arc|arcaea|韵律源点)\\") @Action("\\(绑定|bind)\\ {arcID}") public String arcbind(String arcID) { if (!arcID.matches("\\d{9}")) { return "arcID格式不对哦~应该是9位数字吧?"; } return "你要绑定的arcID是 " + arcID; }
消息流是这样的,可以看到bot重发了上一次登录时的命令响应!
Bot ============================= 我 (不响应,因为不匹配) <-----lethe arc 绑定 <-----lethe arc bind 000000009 你要绑定的arcID是 000000009--------> (不响应,因为不匹配)<----ccc =============断开一次登录============ <-----lethe arc bind 123456789 你要绑定的arcID是 000000009 (!)---------> 你要绑定的arcID是 123456789---------->
从log来看,应该是上次登录时用户给bot发送的信息被重新分配了过来,从而会让框架中的相应逻辑处理一下,造成额外的输出
2020-08-11 10:10:21,757 INFO c.i.y.m.l.Network@[DefaultDispatcher-worker-5] - ConfigPushSvc.PushReq: Success 2020-08-11 10:10:56,820 INFO c.i.y.RainBot@[DefaultDispatcher-worker-4] - Receive Private Message: Friend(Gz♬☆J.R.best(*)), Message([ "lethe arc bind 000000009" ]) <-------注意,这条是上次bot登录时发送的! ------ Log Debug ------:: JrbotAPP:MessageEvent : 消息来自:* 2020-08-11 10:10:57,025 INFO c.i.y.m.e.ContactImpl@[DefaultDispatcher-worker-4] - Friend(Gz♬☆J.R.best(*)) <- Message([ "你要绑定的arcID是 000000009" ]) <---------根据那一条信息进行路由处理 2020-08-11 10:10:57,029 INFO c.i.y.RainBot@[DefaultDispatcher-worker-4] - Receive Private Message: Friend(Gz♬☆J.R.best(*)), Message([ "lethe arc bind 123456789" ]) ------ Log Debug ------:: JrbotAPP:MessageEvent : 消息来自:* 2020-08-11 10:10:57,121 INFO c.i.y.m.e.ContactImpl@[DefaultDispatcher-worker-4] - Friend(Gz♬☆J.R.best(*)) <- Message([ "你要绑定的arcID是 123456789" ])
bot上线调用第一条命令时,会把上一次登录最后的2-3条命令一起带出来,不知道是mirai本身还是yuq-mirai框架的问题。 该控制器有这样的定义
消息流是这样的,可以看到bot重发了上一次登录时的命令响应!
从log来看,应该是上次登录时用户给bot发送的信息被重新分配了过来,从而会让框架中的相应逻辑处理一下,造成额外的输出