whitechi73 / OpenShamrock

A Bot Framework based on Lsposed with OneBot11(停止维护/禁用于违法用途)
https://whitechi73.github.io/OpenShamrock
GNU General Public License v3.0
1.41k stars 185 forks source link

bug: at消息没有at成功 #339

Closed luyanci closed 1 month ago

luyanci commented 1 month ago

警告: 在进一步操作之前,请检查下列选项。如果您忽视此模板或者没有提供关键信息,您的 Issue 将直接被关闭

描述 Bug

尝试发送带at的消息时,Shamrock会抛出一个错误,消息正常发送,但是没有任何at (at全员例外

错误日志

[18:40:17] ERROR java.lang.NoSuchMethodError: No interface method getTroopMember(Ljava/lang/String;Ljava/lang/String;)Lcom/tencent/mobileqq/data/troop/TroopMemberInfo; in class Lcom/tencent/mobileqq/troop/api/ITroopMemberInfoService; or its super classes (declaration of 'com.tencent.mobileqq.troop.api.ITroopMemberInfoService' appears in base.apk!classes3.dex)
    at moe.fuqiuluo.qqinterface.servlet.GroupSvc.getTroopMemberInfoByUinV2-BWLJW6A(GroupSvc.kt:636)
    at moe.fuqiuluo.qqinterface.servlet.msg.maker.NtMsgElementMaker.createAtElem-yxL6bBk(NtMsgElementMaker.kt:849)
    at moe.fuqiuluo.qqinterface.servlet.msg.maker.NtMsgElementMaker.access$createAtElem-yxL6bBk(NtMsgElementMaker.kt:63)
    at moe.fuqiuluo.qqinterface.servlet.msg.maker.NtMsgElementMaker$makerMap$7.invoke-yxL6bBk(NtMsgElementMaker.kt:71)
    at moe.fuqiuluo.qqinterface.servlet.msg.maker.NtMsgElementMaker$makerMap$7.invoke(NtMsgElementMaker.kt:71)
    at moe.fuqiuluo.shamrock.helper.MessageHelper.messageArrayToMsgElements(MessageHelper.kt:298)
    at moe.fuqiuluo.shamrock.helper.MessageHelper.sendMessageWithoutMsgId-hUnOzRk(MessageHelper.kt:92)
    at moe.fuqiuluo.qqinterface.servlet.MsgSvc.sendToAio-hUnOzRk(MsgSvc.kt:213)
    at moe.fuqiuluo.shamrock.remote.action.handlers.SendMessage.invoke(SendMessage.kt:167)
    at moe.fuqiuluo.shamrock.remote.action.handlers.SendMessage.invoke$default(SendMessage.kt:155)
    at moe.fuqiuluo.shamrock.remote.action.handlers.SendGroupMessage.internalHandle(SendGroupMessage.kt:26)
    at moe.fuqiuluo.shamrock.remote.action.IActionHandler.handle(ActionManager.kt:36)
    at moe.fuqiuluo.shamrock.remote.service.api.WebSocketClientServlet.handleMessage(WebSocketClientServlet.kt:72)
    at moe.fuqiuluo.shamrock.remote.service.api.WebSocketClientServlet.access$handleMessage(WebSocketClientServlet.kt:36)
    at moe.fuqiuluo.shamrock.remote.service.api.WebSocketClientServlet$onMessage$1.invokeSuspend(WebSocketClientServlet.kt:55)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
    at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:115)
    at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:103)
    at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)

复现 Bug

让onebot客户端发送一条带at的消息

系统信息

qpdbzzz commented 1 month ago

Shamrock-v1.1.1.onebot.r444.609e87d-all 这个版本最近几天前开始又不能艾特了

INFO 群消息(group = 群(878308421), uin = 503442652, id = 725309075, seq = 647911, msg = #体力)
[02:56:42] ERROR java.lang.NoSuchMethodError: No interface method getTroopMember(Ljava/lang/String;Ljava/lang/String;)Lcom/tencent/mobileqq/data/troop/TroopMemberInfo; in class Lcom/tencent/mobileqq/troop/api/ITroopMemberInfoService; or its super classes (declaration of 'com.tencent.mobileqq.troop.api.ITroopMemberInfoService' appears in /data/user/0/com.tencent.mobileqq/cache/lspatch/origin/3804311022.apk!classes3.dex)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
    at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:115)
    at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:103)
    at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)

[02:56:42] INFO 预发送消息(1003932538 | 647911 | 7397875877624572674)
[02:56:42] INFO Update message info from 647911 to 647912
[02:56:42] INFO 消息发送: , code: 0 
[02:56:42] INFO 自发消息(target = 878308421, id = 1003932538, msg = 
查询中请稍等...)
[02:56:52] ERROR java.lang.NoSuchMethodError: No interface method getTroopMember(Ljava/lang/String;Ljava/lang/String;)Lcom/tencent/mobileqq/data/troop/TroopMemberInfo; in class Lcom/tencent/mobileqq/troop/api/ITroopMemberInfoService; or its super classes (declaration of 'com.tencent.mobileqq.troop.api.ITroopMemberInfoService' appears in /data/user/0/com.tencent.mobileqq/cache/lspatch/origin/3804311022.apk!classes3.dex)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
    at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:115)
    at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:103)
    at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)

[02:56:52] INFO 预发送消息(223112426 | 647912 | 7397875920447520002)
[02:56:53] INFO Update message info from 647912 to 647913
[02:56:53] INFO 消息发送: 878308421, code: 0 
[02:56:53] INFO 自发消息(target = 878308421, id = 223112426, msg = 
[CQ:image,file=627996179E86152BBCDFA3FDD81F741A,subType=0,type=show,url=https://multimedia.nt.qq.com.cn/download?appid=1407&fileid=CgoyNjQ0NjMyMzc5EhQsgg54-p3_sgimUtpa9T84azHjchjolg4g_wooopjnwfrRhwNQgL2jAQ&spec=0&rkey=CAQSKAB6JWENi5LMk53DN46prWdzdn9S2cEQPZH2ENXBBocE4uDUdMRaLhU][CQ:image,file=5A56DF5E8E0CED981A6BE1E8405AE8C3,subType=0,type=show,url=https://multimedia.nt.qq.com.cn/download?appid=1407&fileid=CgoyNjQ0NjMyMzc5EhRvbhkkJbmZVzgoyCA8eiZ-5-vK6hjnnw8g_woolqnowfrRhwNQgL2jAQ&spec=0&rkey=CAQSKAB6JWENi5LMk53DN46prWdzdn9S2cEQPZH2ENXBBocE4uDUdMRaLhU])
[02:57:12] INFO Update message info from 647912 to 647912
[02:57:12] WARN 消息element转换错误:java.lang.UnsupportedOperationException: 不支持的消息element类型:8, elementType: 8
[02:57:13] INFO 群消息撤回(878308421): 2644632379 -> 2644632379, seq = 647912, hash = 1003932538, tip = 
[02:57:13] INFO Update message info from 647912 to 647912
[02:57:13] WARN 消息element转换错误:java.lang.UnsupportedOperationException: 不支持的消息element类型:8, elementType: 8