Nambers / MiraiCP

c++ SDK of Mirai
https://eritque-arcus.tech/MiraiCP/
GNU Affero General Public License v3.0
178 stars 31 forks source link

遇到的几个小问题 #85

Closed Antarcticann closed 2 years ago

Antarcticann commented 2 years ago

大佬打扰了! Describe the bug 出现的异常(实际行为和预期行为)

1. 当群内被禁言或全员禁言时,尝试发送消息会导致mirai崩溃,目前使用try避免了这个问题 程序: Group(*GroupListCut, botid).sendMsg("已经在这里摸鱼" + to_string(intLmtDayTime) + "天了,马上就会离开这里。仍有需要的话可以再次邀请"); 错误信息:

2021-09-27 08:41:24 V/Bot.3457317465: Event: GroupMessagePreSendEvent(target=Group(7......5), message=已经在这里摸鱼21 天了,马上就会离开这里。仍有需要的话可以再次邀请)
2021-09-27 08:41:24 V/Bot.3457317465: Group(7......5) <- 已经在这里摸鱼21天了,马上就会离开这里。仍有需要的话可以再次邀请
2021-09-27 08:41:24 V/Bot.3457317465: Event: GroupMessagePostSendEvent(target=Group(701852575), message=已经在这里摸鱼21天了,马上就会离开这里。仍有需要的话可以再次邀请, exception=java.lang.IllegalStateException: Send message failed: MessageSvcPbSendMsg.Response.Failed(resultType=120, errorCode=0, errorMessage=), receipt=null)
2021-09-27 08:41:24 I/stdout: Send message failed: MessageSvcPbSendMsg.Response.Failed(resultType=120, errorCode=0, errorMessage=)
2021-09-27 08:41:24 I/stdout: {"data":{"miraiCode":false,"retryTime":3,"source":"{\"contact\":{\"botid\":3457317465,\"groupid\":0,\"id\":7......5,\"nickornamecard\":\"厦......群\",\"type\":2},\"content\":\"已经在这里摸鱼21天了, 马上就会离开这里。仍有需要的话可以再次邀请\"}"},"type":1}
2021-09-27 08:41:24 W/stderr: java.lang.IllegalStateException: Send message failed: MessageSvcPbSendMsg.Response.Failed(resultType=120, errorCode=0, errorMessage=)
2021-09-27 08:41:24 W/stderr:   at net.mamoe.mirai.internal.contact.SendMessageHandler.sendMessagePacket(SendMessageHandler.kt:164)
2021-09-27 08:41:24 W/stderr:   at net.mamoe.mirai.internal.contact.SendMessageHandler$sendMessagePacket$1.invokeSuspend(SendMessageHandler.kt)
2021-09-27 08:41:24 W/stderr:   at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
2021-09-27 08:41:24 W/stderr:   at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:33)
2021-09-27 08:41:24 W/stderr:   at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:102)
2021-09-27 08:41:24 W/stderr:   at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
2021-09-27 08:41:24 W/stderr:   at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
2021-09-27 08:41:24 W/stderr:   at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:274)
2021-09-27 08:41:24 W/stderr:   at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85)
2021-09-27 08:41:24 W/stderr:   at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)
2021-09-27 08:41:24 W/stderr:   at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
2021-09-27 08:41:24 W/stderr:   at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38)
2021-09-27 08:41:24 W/stderr:   at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
2021-09-27 08:41:24 W/stderr:   at tech.eritquearcus.miraicp.shared.CPP_lib$Companion.KOperation(CPP_lib.kt:329)
2021-09-27 08:41:24 W/stderr:   at tech.eritquearcus.miraicp.shared.CPP_lib.KOperation(CPP_lib.kt)

2. 无法被陌生人邀请加群 陌生人指的是没有添加好友或者添加了好友但在bot这边显示为陌生人的QQ(当bot在qq面板上被设置为添加好友权限为任何人时会出现这种陌生人,目前已设置为需要验证信息以避免产生陌生人 好友邀请加群会成功,但没有触发sendmsg 当接收到戳一戳消息时也会触发这样的错误 该错误不会导致mirai崩溃 程序:

  // 邀请加群
        procession->registerEvent<GroupInviteEvent>([](GroupInviteEvent e) {
            e.accept();
            Friend(MasterQQId, e.bot.id).sendMsg("收到加群邀请,群" + to_string(e.groupid) + e.groupName + ",已同意,邀请者:" + to_string(e.inviterid) + e.inviterNick);
        });

错误信息:

2021-09-27 09:39:33 V/Bot.3457317465: Event: BotInvitedJoinGroupRequestEvent(bot=Bot(3457317465), eventId=1632706774498763, invitorId=2......4, groupId=1......7, groupName=攘......谷), invitorNick=每......所)
2021-09-27 09:39:33 E/MiraiCP: json格式化异常,位置C-Handle
StackTrace:
broadcast(class MiraiCP::GroupMessageEvent)[E:\Mirai\MiraiCP_CPP\cpp\include\miraiCP.hpp:2678]
[E:\Mirai\MiraiCP_CPP\cpp\include\miraiCP.hpp:304](注:此处是插件在我电脑上的路径,而不是在服务器上的路径
[E:\Mirai\MiraiCP_CPP\cpp\include\miraiCP.hpp:575]
2021-09-27 09:39:33 E/MiraiCP: {"source":{"botid":3457317465,"eventid":1632706774498763,"groupid":1......7,"groupname":"攘......谷)","inviterid":2......4,"inviternick":"每......所"},"type":3}
StackTrace:
broadcast(class MiraiCP::GroupMessageEvent)[E:\Mirai\MiraiCP_CPP\cpp\include\miraiCP.hpp:2678]
[E:\Mirai\MiraiCP_CPP\cpp\include\miraiCP.hpp:304]
[E:\Mirai\MiraiCP_CPP\cpp\include\miraiCP.hpp:575]
[E:\Mirai\MiraiCP_CPP\cpp\include\miraiCP.hpp:304]
[E:\Mirai\MiraiCP_CPP\cpp\include\miraiCP.hpp:575]
2021-09-27 09:39:33 E/MiraiCP: [json.exception.type_error.302] type must be string, but is object
StackTrace:
broadcast(class MiraiCP::GroupMessageEvent)[E:\Mirai\MiraiCP_CPP\cpp\include\miraiCP.hpp:2678]
[E:\Mirai\MiraiCP_CPP\cpp\include\miraiCP.hpp:304]
[E:\Mirai\MiraiCP_CPP\cpp\include\miraiCP.hpp:575]
[E:\Mirai\MiraiCP_CPP\cpp\include\miraiCP.hpp:304]
[E:\Mirai\MiraiCP_CPP\cpp\include\miraiCP.hpp:575]
[E:\Mirai\MiraiCP_CPP\cpp\include\miraiCP.hpp:304]
[E:\Mirai\MiraiCP_CPP\cpp\include\miraiCP.hpp:575]

本地运行环境 版本:

名字 出现的版本
loader x
plguin v2.7.1-dev-1
Nambers commented 2 years ago

关于第一点的禁言我记得我做过处理 https://github.com/Nambers/MiraiCP/blob/master/kotlin/shared/src/main/kotlin/PublicShared.kt#L203 但是好像没起到作用,我尝试复现看看

Antarcticann commented 2 years ago

大佬这个处理是只需要替换hpp还是需要替换所有的呀

Nambers commented 2 years ago

第一个错误是因为发送的信息内容为空抛出的,我没遇到过,出现很频繁吗

Antarcticann commented 2 years ago

我再多线程中写了个程序,遍历群列表,然后在21天没发送过消息的群里发送“已经在这里摸鱼21天了,马上就会离开这里。”这句话,然后退出群聊,就是上面的那个Group().sendmsg里的,之后在碰到全员禁言的群时就会出现这个错误。不过平时没有出现过 操作是这样的

if ((nowtime - LmtGroupList[*GroupListCut]) >= (intLmtDayTime * 24 * 60 * 60))
                        {

                            Friend(Masterid, botid).sendMsg("在" + to_string(*GroupListCut) + Group(*GroupListCut, botid).nickOrNameCard() + "里摸鱼" + to_string(intLmtDayTime) + "天,已退出该群");
                            try
                            {
                                Group(*GroupListCut, botid).sendMsg("已经在这里摸鱼" + to_string(intLmtDayTime) + "天了,马上就会离开这里。仍有需要的话可以再次邀请");
                            }
                            catch (...)
                            {
                                logger->warning(to_string(*GroupListCut)+"中发送消息失败!");
                            }
                            Sleep(500);
                            Group(*GroupListCut, botid).quit();
                            Sleep(500);
                        }
Nambers commented 2 years ago

如果没触发sendMsg 可能是因为没广播这个事件直接通过的,你试一下log一下信息有没有广播这个event

Antarcticann commented 2 years ago

这个sendmsg触发了,邀请加群的那个sendmsg没有触发

 procession->registerEvent<GroupInviteEvent>([](GroupInviteEvent e) {
            e.accept();
            Friend(MasterQQId, e.bot.id).sendMsg("收到加群邀请,群" + to_string(e.groupid) + e.groupName + ",已同意,邀请者:" + to_string(e.inviterid) + e.inviterNick);
        });

我给它价格log

Nambers commented 2 years ago

我再多线程中写了个程序,遍历群列表,然后在21天没发送过消息的群里发送“已经在这里摸鱼21天了,马上就会离开这里。”这句话,然后退出群聊,就是上面的那个Group().sendmsg里的,之后在碰到全员禁言的群时就会出现这个错误。不过平时没有出现过 操作是这样的

if ((nowtime - LmtGroupList[*GroupListCut]) >= (intLmtDayTime * 24 * 60 * 60))
                      {

                          Friend(Masterid, botid).sendMsg("在" + to_string(*GroupListCut) + Group(*GroupListCut, botid).nickOrNameCard() + "里摸鱼" + to_string(intLmtDayTime) + "天,已退出该群");
                          try
                          {
                              Group(*GroupListCut, botid).sendMsg("已经在这里摸鱼" + to_string(intLmtDayTime) + "天了,马上就会离开这里。仍有需要的话可以再次邀请");
                          }
                          catch (...)
                          {
                              logger->warning(to_string(*GroupListCut)+"中发送消息失败!");
                          }
                          Sleep(500);
                          Group(*GroupListCut, botid).quit();
                          Sleep(500);
                      }

我在全员禁言或者单独禁言的情况下都没出现上面那个报错段 image

Antarcticann commented 2 years ago

怪事(挠头 我这个发送消息是写在多线程中的,除此之外应该也没什么特别之处,我试试能不能复现一下

Antarcticann commented 2 years ago

我在测试群里开启了全员禁言,然后让bot尝试向群里发送消息,出现了如下报错,我没有对这个sendmsg写try 同时mirai没有崩溃

2021-09-27 11:46:00 V/Bot.3457317465: 灰(429189622) -> .mastertogroup 921935880 111
2021-09-27 11:46:00 I/MiraiCP: Send message for Group(921935880) is 来自Master的消息:111
2021-09-27 11:46:00 V/Bot.3457317465: Event: GroupMessagePreSendEvent(target=Group(921935880), message=来自Master的消息 :111)
2021-09-27 11:46:01 V/Bot.3457317465: Group(921935880) <- 来自Master的消息:111
2021-09-27 11:46:01 V/Bot.3457317465: Event: GroupMessagePostSendEvent(target=Group(921935880), message=来自Master的消息:111, exception=java.lang.IllegalStateException: Send message failed: MessageSvcPbSendMsg.Response.Failed(resultType=120, errorCode=0, errorMessage=), receipt=null)
2021-09-27 11:46:01 I/stdout: Send message failed: MessageSvcPbSendMsg.Response.Failed(resultType=120, errorCode=0, errorMessage=)
2021-09-27 11:46:01 I/stdout: {"data":{"miraiCode":false,"retryTime":3,"source":"{\"contact\":{\"botid\":3457317465,\"groupid\":0,\"id\":921935880,\"nickornamecard\":\"柴刀一家\",\"type\":2},\"content\":\"来自Master的消息:111\"}"},"type":1}
2021-09-27 11:46:01 W/stderr: java.lang.IllegalStateException: Send message failed: MessageSvcPbSendMsg.Response.Failed(resultType=120, errorCode=0, errorMessage=)
2021-09-27 11:46:01 W/stderr:   at net.mamoe.mirai.internal.contact.SendMessageHandler.sendMessagePacket(SendMessageHandler.kt:164)
2021-09-27 11:46:01 W/stderr:   at net.mamoe.mirai.internal.contact.SendMessageHandler$sendMessagePacket$1.invokeSuspend(SendMessageHandler.kt)
2021-09-27 11:46:01 W/stderr:   at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
2021-09-27 11:46:01 W/stderr:   at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:33)
2021-09-27 11:46:01 W/stderr:   at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:102)
2021-09-27 11:46:01 W/stderr:   at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
2021-09-27 11:46:01 W/stderr:   at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
2021-09-27 11:46:01 W/stderr:   at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:274)
2021-09-27 11:46:01 W/stderr:   at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85)
2021-09-27 11:46:01 W/stderr:   at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)
2021-09-27 11:46:01 W/stderr:   at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
2021-09-27 11:46:01 W/stderr:   at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38)
2021-09-27 11:46:01 W/stderr:   at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
2021-09-27 11:46:01 W/stderr:   at tech.eritquearcus.miraicp.shared.CPP_lib$Companion.KOperation(CPP_lib.kt:329)
2021-09-27 11:46:01 W/stderr:   at tech.eritquearcus.miraicp.shared.CPP_lib.KOperation(CPP_lib.kt)
2021-09-27 11:46:01 W/stderr:   at tech.eritquearcus.miraicp.shared.CPP_lib.Event(Native Method)
2021-09-27 11:46:01 W/stderr:   at tech.eritquearcus.miraicp.shared.UlitsKt.Event$lambda-3(Ulits.kt:43)
2021-09-27 11:46:01 W/stderr:   at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
2021-09-27 11:46:01 W/stderr:   at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
2021-09-27 11:46:01 W/stderr:   at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
2021-09-27 11:46:01 W/stderr:   at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
2021-09-27 11:46:01 W/stderr:   at java.base/java.lang.Thread.run(Unknown Source)
2021-09-27 11:46:01 E/MiraiCP: MiraiCP error:MiraiCP内部无法预料的错误:reach a error area, Contact::SendMiraiCode
StackTrace:
broadcast(class MiraiCP::PrivateMessageEvent)[E:\Mirai开发\MiraiCP_CPP2.7dev5\cpp\include\miraiCP.hpp:2678]
[E:\Mirai开发\MiraiCP_CPP2.7dev5\cpp\include\miraiCP.hpp:2099]
[E:\Mirai开发\MiraiCP_CPP2.7dev5\cpp\include\miraiCP.hpp:1926]
[E:\Mirai开发\MiraiCP_CPP2.7dev5\cpp\include\miraiCP.hpp:1253]
[E:\Mirai开发\MiraiCP_CPP2.7dev5\cpp\include\miraiCP.hpp:575]
Antarcticann commented 2 years ago

啊,确实,邀请加群时没有弹出log

Antarcticann commented 2 years ago

我在测试群里开启了全员禁言,然后让bot尝试向群里发送消息,出现了如下报错,我没有对这个sendmsg写try 同时mirai没有崩溃

2021-09-27 11:46:00 V/Bot.3457317465: 灰(429189622) -> .mastertogroup 921935880 111
2021-09-27 11:46:00 I/MiraiCP: Send message for Group(921935880) is 来自Master的消息:111
2021-09-27 11:46:00 V/Bot.3457317465: Event: GroupMessagePreSendEvent(target=Group(921935880), message=来自Master的消息 :111)
2021-09-27 11:46:01 V/Bot.3457317465: Group(921935880) <- 来自Master的消息:111
2021-09-27 11:46:01 V/Bot.3457317465: Event: GroupMessagePostSendEvent(target=Group(921935880), message=来自Master的消息:111, exception=java.lang.IllegalStateException: Send message failed: MessageSvcPbSendMsg.Response.Failed(resultType=120, errorCode=0, errorMessage=), receipt=null)
2021-09-27 11:46:01 I/stdout: Send message failed: MessageSvcPbSendMsg.Response.Failed(resultType=120, errorCode=0, errorMessage=)
2021-09-27 11:46:01 I/stdout: {"data":{"miraiCode":false,"retryTime":3,"source":"{\"contact\":{\"botid\":3457317465,\"groupid\":0,\"id\":921935880,\"nickornamecard\":\"柴刀一家\",\"type\":2},\"content\":\"来自Master的消息:111\"}"},"type":1}
2021-09-27 11:46:01 W/stderr: java.lang.IllegalStateException: Send message failed: MessageSvcPbSendMsg.Response.Failed(resultType=120, errorCode=0, errorMessage=)
2021-09-27 11:46:01 W/stderr:   at net.mamoe.mirai.internal.contact.SendMessageHandler.sendMessagePacket(SendMessageHandler.kt:164)
2021-09-27 11:46:01 W/stderr:   at net.mamoe.mirai.internal.contact.SendMessageHandler$sendMessagePacket$1.invokeSuspend(SendMessageHandler.kt)
2021-09-27 11:46:01 W/stderr:   at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
2021-09-27 11:46:01 W/stderr:   at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:33)
2021-09-27 11:46:01 W/stderr:   at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:102)
2021-09-27 11:46:01 W/stderr:   at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
2021-09-27 11:46:01 W/stderr:   at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
2021-09-27 11:46:01 W/stderr:   at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:274)
2021-09-27 11:46:01 W/stderr:   at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85)
2021-09-27 11:46:01 W/stderr:   at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)
2021-09-27 11:46:01 W/stderr:   at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
2021-09-27 11:46:01 W/stderr:   at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38)
2021-09-27 11:46:01 W/stderr:   at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
2021-09-27 11:46:01 W/stderr:   at tech.eritquearcus.miraicp.shared.CPP_lib$Companion.KOperation(CPP_lib.kt:329)
2021-09-27 11:46:01 W/stderr:   at tech.eritquearcus.miraicp.shared.CPP_lib.KOperation(CPP_lib.kt)
2021-09-27 11:46:01 W/stderr:   at tech.eritquearcus.miraicp.shared.CPP_lib.Event(Native Method)
2021-09-27 11:46:01 W/stderr:   at tech.eritquearcus.miraicp.shared.UlitsKt.Event$lambda-3(Ulits.kt:43)
2021-09-27 11:46:01 W/stderr:   at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
2021-09-27 11:46:01 W/stderr:   at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
2021-09-27 11:46:01 W/stderr:   at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
2021-09-27 11:46:01 W/stderr:   at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
2021-09-27 11:46:01 W/stderr:   at java.base/java.lang.Thread.run(Unknown Source)
2021-09-27 11:46:01 E/MiraiCP: MiraiCP error:MiraiCP内部无法预料的错误:reach a error area, Contact::SendMiraiCode
StackTrace:
broadcast(class MiraiCP::PrivateMessageEvent)[E:\Mirai开发\MiraiCP_CPP2.7dev5\cpp\include\miraiCP.hpp:2678]
[E:\Mirai开发\MiraiCP_CPP2.7dev5\cpp\include\miraiCP.hpp:2099]
[E:\Mirai开发\MiraiCP_CPP2.7dev5\cpp\include\miraiCP.hpp:1926]
[E:\Mirai开发\MiraiCP_CPP2.7dev5\cpp\include\miraiCP.hpp:1253]
[E:\Mirai开发\MiraiCP_CPP2.7dev5\cpp\include\miraiCP.hpp:575]

在报错之后的程序全都没有运行

Nambers commented 2 years ago

啊,确实,邀请加群时没有弹出log

那就是没过那个事件,好像是群聊人数<多少人的时候就会自动进然后不会发出申请

我在测试群里开启了全员禁言,然后让bot尝试向群里发送消息,出现了如下报错,我没有对这个sendmsg写try 同时mirai没有崩溃

2021-09-27 11:46:00 V/Bot.3457317465: 灰(429189622) -> .mastertogroup 921935880 111
2021-09-27 11:46:00 I/MiraiCP: Send message for Group(921935880) is 来自Master的消息:111
2021-09-27 11:46:00 V/Bot.3457317465: Event: GroupMessagePreSendEvent(target=Group(921935880), message=来自Master的消息 :111)
2021-09-27 11:46:01 V/Bot.3457317465: Group(921935880) <- 来自Master的消息:111
2021-09-27 11:46:01 V/Bot.3457317465: Event: GroupMessagePostSendEvent(target=Group(921935880), message=来自Master的消息:111, exception=java.lang.IllegalStateException: Send message failed: MessageSvcPbSendMsg.Response.Failed(resultType=120, errorCode=0, errorMessage=), receipt=null)
2021-09-27 11:46:01 I/stdout: Send message failed: MessageSvcPbSendMsg.Response.Failed(resultType=120, errorCode=0, errorMessage=)
2021-09-27 11:46:01 I/stdout: {"data":{"miraiCode":false,"retryTime":3,"source":"{\"contact\":{\"botid\":3457317465,\"groupid\":0,\"id\":921935880,\"nickornamecard\":\"柴刀一家\",\"type\":2},\"content\":\"来自Master的消息:111\"}"},"type":1}
2021-09-27 11:46:01 W/stderr: java.lang.IllegalStateException: Send message failed: MessageSvcPbSendMsg.Response.Failed(resultType=120, errorCode=0, errorMessage=)
2021-09-27 11:46:01 W/stderr:   at net.mamoe.mirai.internal.contact.SendMessageHandler.sendMessagePacket(SendMessageHandler.kt:164)
2021-09-27 11:46:01 W/stderr:   at net.mamoe.mirai.internal.contact.SendMessageHandler$sendMessagePacket$1.invokeSuspend(SendMessageHandler.kt)
2021-09-27 11:46:01 W/stderr:   at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
2021-09-27 11:46:01 W/stderr:   at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:33)
2021-09-27 11:46:01 W/stderr:   at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:102)
2021-09-27 11:46:01 W/stderr:   at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
2021-09-27 11:46:01 W/stderr:   at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
2021-09-27 11:46:01 W/stderr:   at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:274)
2021-09-27 11:46:01 W/stderr:   at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85)
2021-09-27 11:46:01 W/stderr:   at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)
2021-09-27 11:46:01 W/stderr:   at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
2021-09-27 11:46:01 W/stderr:   at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38)
2021-09-27 11:46:01 W/stderr:   at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
2021-09-27 11:46:01 W/stderr:   at tech.eritquearcus.miraicp.shared.CPP_lib$Companion.KOperation(CPP_lib.kt:329)
2021-09-27 11:46:01 W/stderr:   at tech.eritquearcus.miraicp.shared.CPP_lib.KOperation(CPP_lib.kt)
2021-09-27 11:46:01 W/stderr:   at tech.eritquearcus.miraicp.shared.CPP_lib.Event(Native Method)
2021-09-27 11:46:01 W/stderr:   at tech.eritquearcus.miraicp.shared.UlitsKt.Event$lambda-3(Ulits.kt:43)
2021-09-27 11:46:01 W/stderr:   at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
2021-09-27 11:46:01 W/stderr:   at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
2021-09-27 11:46:01 W/stderr:   at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
2021-09-27 11:46:01 W/stderr:   at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
2021-09-27 11:46:01 W/stderr:   at java.base/java.lang.Thread.run(Unknown Source)
2021-09-27 11:46:01 E/MiraiCP: MiraiCP error:MiraiCP内部无法预料的错误:reach a error area, Contact::SendMiraiCode
StackTrace:
broadcast(class MiraiCP::PrivateMessageEvent)[E:\Mirai开发\MiraiCP_CPP2.7dev5\cpp\include\miraiCP.hpp:2678]
[E:\Mirai开发\MiraiCP_CPP2.7dev5\cpp\include\miraiCP.hpp:2099]
[E:\Mirai开发\MiraiCP_CPP2.7dev5\cpp\include\miraiCP.hpp:1926]
[E:\Mirai开发\MiraiCP_CPP2.7dev5\cpp\include\miraiCP.hpp:1253]
[E:\Mirai开发\MiraiCP_CPP2.7dev5\cpp\include\miraiCP.hpp:575]

在报错之后的程序全都没有运行

这个报错我没找到复现方法, 就把群全员禁言然后在privateMessageEvent里用Bot找到这个群然后发送信息 然后

2021-09-27 11:46:01 E/MiraiCP: MiraiCP error:MiraiCP内部无法预料的错误:reach a error area, Contact::SendMiraiCode

这个报错是这里抛出的 https://github.com/Nambers/MiraiCP/blob/master/kotlin/shared/src/main/kotlin/PublicShared.kt#L189 这就很奇怪,逻辑上感觉不会出现的 你的jar版本和C++版本一样吧

Antarcticann commented 2 years ago

一样的啊,plugin也是2.7.1dev1,hpp和jar我都是从最新release下载的,使用的是替换hpp的更新方法Orz 我刚才用了个更大的群测试群邀请,然后就报错了,也没出现log

2021-09-27 16:59:13 V/Bot.3457317465: Event: BotInvitedJoinGroupRequestEvent(bot=Bot(3457317465), eventId=1632733154343670, invitorId=429189622, groupId=983595354, groupName=HY-PnoS Club, invitorNick=灰)
2021-09-27 16:59:13 E/MiraiCP: json格式化异常,位置C-Handle
StackTrace:
broadcast(class MiraiCP::GroupMessageEvent)[E:\Mirai开发\MiraiCP_CPP2.7dev5\cpp\include\miraiCP.hpp:2678]
[E:\Mirai开发\MiraiCP_CPP2.7dev5\cpp\include\miraiCP.hpp:304]
[E:\Mirai开发\MiraiCP_CPP2.7dev5\cpp\include\miraiCP.hpp:575]
2021-09-27 16:59:13 E/MiraiCP: {"source":{"botid":3457317465,"eventid":1632733154343670,"groupid":983595354,"groupname":"HY-PnoS Club","inviterid":429189622,"inviternick":"灰"},"type":3}
StackTrace:
broadcast(class MiraiCP::GroupMessageEvent)[E:\Mirai开发\MiraiCP_CPP2.7dev5\cpp\include\miraiCP.hpp:2678]
[E:\Mirai开发\MiraiCP_CPP2.7dev5\cpp\include\miraiCP.hpp:304]
[E:\Mirai开发\MiraiCP_CPP2.7dev5\cpp\include\miraiCP.hpp:575]
[E:\Mirai开发\MiraiCP_CPP2.7dev5\cpp\include\miraiCP.hpp:304]
[E:\Mirai开发\MiraiCP_CPP2.7dev5\cpp\include\miraiCP.hpp:575]
2021-09-27 16:59:13 E/MiraiCP: [json.exception.type_error.302] type must be string, but is object
StackTrace:
broadcast(class MiraiCP::GroupMessageEvent)[E:\Mirai开发\MiraiCP_CPP2.7dev5\cpp\include\miraiCP.hpp:2678]
[E:\Mirai开发\MiraiCP_CPP2.7dev5\cpp\include\miraiCP.hpp:304]
[E:\Mirai开发\MiraiCP_CPP2.7dev5\cpp\include\miraiCP.hpp:575]
[E:\Mirai开发\MiraiCP_CPP2.7dev5\cpp\include\miraiCP.hpp:304]
[E:\Mirai开发\MiraiCP_CPP2.7dev5\cpp\include\miraiCP.hpp:575]
[E:\Mirai开发\MiraiCP_CPP2.7dev5\cpp\include\miraiCP.hpp:304]
[E:\Mirai开发\MiraiCP_CPP2.7dev5\cpp\include\miraiCP.hpp:575]
Antarcticann commented 2 years ago

突然又发现图片不知道为什么也发不出来了(挠头 2021-09-27 17:29:43 V/Bot.3457317465: [HY-PnoS Club(983595354)] 不是柴刀(不改矬子联盟)(429189622) -> .help 2021-09-27 17:29:43 E/MiraiCP: 发送图片找不到对应群组,位置:K-uploadImgGroup(),id:983595354 2021-09-27 17:29:43 E/MiraiCP: MiraiCP error:C++:找不到群 StackTrace: broadcast(class MiraiCP::GroupMessageEvent)[E:\Mirai开发\MiraiCP_CPP2.7dev5\cpp\include\miraiCP.hpp:2678] [E:\Mirai开发\MiraiCP_CPP2.7dev5\cpp\include\miraiCP.hpp:1283] [E:\Mirai开发\MiraiCP_CPP2.7dev5\cpp\include\miraiCP.hpp:575]

Nambers commented 2 years ago

群邀请的错误复现了,看看怎么修 图片这个问题报错是找不到群? 但是群号又一样,很怪

Antarcticann commented 2 years ago

很怪,明明指令是从群里来的,但是却找不到群 被禁言报错那个我try一下就好了,感觉影响不大,而且无法复现可能是我的问题,大佬优先看看群邀请和图片吧(捂脸

Nambers commented 2 years ago

很怪,明明指令是从群里来的,但是却找不到群 被禁言报错那个我try一下就好了,感觉影响不大,而且无法复现可能是我的问题,大佬优先看看群邀请和图片吧(捂脸

群邀请找到原因了,待会就可以给你个temp release 图片我看看能不能复现下 主要是找方法复现,有复现调试起来就比较容易

Nambers commented 2 years ago

@Asiimoviet 出现这些问题主要还是因为缺少单元测试,但是单元测试要等mirai那边暴露出来mockBot, 可以看我另外一个issue 这两个应该都修好了 在这里下jar和hpp 都替换掉

Antarcticann commented 2 years ago

更新完成了,目前发送图片显示发送成功了,不过群里没见到图,换了个号也不行,可能是被风控了(死 邀请进群仍然在报错,而且还不一样了 另外原本正常的好友添加请求也出现了这样的错误

2021-09-27 22:17:33 V/Bot.3457317465: Event: BotInvitedJoinGroupRequestEvent(bot=Bot(3457317465), eventId=1632752255065908, invitorId=429189622, groupId=983595354, groupName=HY-PnoS Club, invitorNick=灰)
2021-09-27 22:17:33 E/miraiCP: Exception in coroutine Plugin miraiCP of miraiCP
java.lang.NoClassDefFoundError: net/mamoe/mirai/data/RequestEventData
        at tech.eritquearcus.miraicp.shared.PublicShared$onEnable$14.invokeSuspend(PublicShared.kt:973)
        at tech.eritquearcus.miraicp.shared.PublicShared$onEnable$14.invoke(PublicShared.kt)
        at tech.eritquearcus.miraicp.shared.PublicShared$onEnable$14.invoke(PublicShared.kt)
        at net.mamoe.mirai.event.EventChannel$subscribeAlways$1.invokeSuspend(EventChannel.kt:432)
        at net.mamoe.mirai.event.EventChannel$subscribeAlways$1.invoke(EventChannel.kt)
        at net.mamoe.mirai.event.EventChannel$subscribeAlways$1.invoke(EventChannel.kt)
        at net.mamoe.mirai.internal.event.Handler$onEvent$2.invokeSuspend(InternalEventListeners.kt:50)
        at net.mamoe.mirai.internal.event.Handler$onEvent$2.invoke(InternalEventListeners.kt)
        at net.mamoe.mirai.internal.event.Handler$onEvent$2.invoke(InternalEventListeners.kt)
        at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89)
        at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:165)
        at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
        at net.mamoe.mirai.internal.event.Handler.onEvent(InternalEventListeners.kt:50)
        at net.mamoe.mirai.internal.event.InternalEventListenersKt.process(InternalEventListeners.kt:160)
        at net.mamoe.mirai.internal.event.InternalEventListenersKt.callAndRemoveIfRequired(InternalEventListeners.kt:109)
        at net.mamoe.mirai.event._EventBroadcast.broadcastImpl(Event.kt:174)
        at net.mamoe.mirai.IMirai.broadcastEvent(IMirai.kt:312)
        at net.mamoe.mirai.internal.MiraiImpl.broadcastEvent$suspendImpl(MiraiImpl.kt:304)
        at net.mamoe.mirai.internal.MiraiImpl.broadcastEvent(MiraiImpl.kt)
        at net.mamoe.mirai.event._EventBroadcast.broadcastPublic$suspendImpl(Event.kt:161)
        at net.mamoe.mirai.event._EventBroadcast.broadcastPublic(Event.kt)
        at net.mamoe.mirai.event.EventKt.broadcast(Event.kt:148)
        at net.mamoe.mirai.internal.network.components.EventDispatcherImpl$broadcast$2.invokeSuspend(EventDispatcher.kt:90)
        at net.mamoe.mirai.internal.network.components.EventDispatcherImpl$broadcast$2.invoke(EventDispatcher.kt)
        at net.mamoe.mirai.internal.network.components.EventDispatcherImpl$broadcast$2.invoke(EventDispatcher.kt)
        at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89)
        at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:165)
        at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
        at net.mamoe.mirai.internal.network.components.EventDispatcherImpl.broadcast$suspendImpl(EventDispatcher.kt:89)
        at net.mamoe.mirai.internal.network.components.EventDispatcherImpl.broadcast(EventDispatcher.kt)
        at net.mamoe.mirai.internal.network.components.EventDispatcherImpl$broadcastAsync$job$1.invokeSuspend(EventDispatcher.kt:105)
        at net.mamoe.mirai.internal.network.components.EventDispatcherImpl$broadcastAsync$job$1.invoke(EventDispatcher.kt)
        at net.mamoe.mirai.internal.network.components.EventDispatcherImpl$broadcastAsync$job$1.invoke(EventDispatcher.kt)
        at kotlinx.coroutines.intrinsics.UndispatchedKt.startCoroutineUndispatched(Undispatched.kt:55)
        at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:112)
        at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:126)
        at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Builders.common.kt:56)
        at kotlinx.coroutines.BuildersKt.launch(Unknown Source)
        at net.mamoe.mirai.internal.network.components.EventDispatcherImpl.broadcastAsync-kKe4JaQ(EventDispatcher.kt:102)
        at net.mamoe.mirai.internal.network.components.EventDispatcher.broadcastAsync-kKe4JaQ$default(EventDispatcher.kt:35)
        at net.mamoe.mirai.internal.network.components.EventBroadcasterPacketHandler.impl(PacketHandler.kt:87)
        at net.mamoe.mirai.internal.network.components.EventBroadcasterPacketHandler.handlePacket(PacketHandler.kt:73)
        at net.mamoe.mirai.internal.network.components.PacketHandlerChain.handlePacket(PacketHandler.kt:42)
        at net.mamoe.mirai.internal.network.handler.NetworkHandlerSupport$collectReceived$3.invokeSuspend(NetworkHandlerSupport.kt:84)
        at net.mamoe.mirai.internal.network.handler.NetworkHandlerSupport$collectReceived$3.invoke(NetworkHandlerSupport.kt)
        at net.mamoe.mirai.internal.network.handler.NetworkHandlerSupport$collectReceived$3.invoke(NetworkHandlerSupport.kt)
        at kotlinx.coroutines.intrinsics.UndispatchedKt.startCoroutineUndispatched(Undispatched.kt:55)
        at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:112)
        at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:126)
        at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Builders.common.kt:56)
        at kotlinx.coroutines.BuildersKt.launch(Unknown Source)
        at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch$default(Builders.common.kt:47)
        at kotlinx.coroutines.BuildersKt.launch$default(Unknown Source)
        at net.mamoe.mirai.internal.network.handler.NetworkHandlerSupport.collectReceived$mirai_core(NetworkHandlerSupport.kt:82)
        at net.mamoe.mirai.internal.network.impl.netty.NettyNetworkHandler$PacketDecodePipeline$2$1.invokeSuspend(NettyNetworkHandler.kt:186)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
        at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
Caused by: java.lang.ClassNotFoundException: net.mamoe.mirai.data.RequestEventData
        at net.mamoe.mirai.console.internal.plugin.JvmPluginClassLoader.findClass$mirai_console(JvmPluginClassLoader.kt:110)
        at net.mamoe.mirai.console.internal.plugin.JvmPluginClassLoader.findClass(JvmPluginClassLoader.kt:51)
        at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
        at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
        ... 61 more
Nambers commented 2 years ago

再试一下https://github.com/Nambers/MiraiCP/tree/devRelease/%2385 这个,只用jar 好友申请的确实有问题已经修好了 群聊申请的我没复现什么问题

Antarcticann commented 2 years ago

群邀请和好友邀请还是有相同的问题(挠头

Antarcticann commented 2 years ago

QQ截图20210928114939 这个样子

Antarcticann commented 2 years ago

报告大佬!加群和加好友的问题已解决!更新后出现的问题是我没更新MCL导致的!我是笨比,麻烦大佬了呜呜呜

Nambers commented 2 years ago

报告大佬!加群和加好友的问题已解决!更新后出现的问题是我没更新MCL导致的!我是笨比,麻烦大佬了呜呜呜

那目前还剩下什么问题吗, 就剩下禁言发言报错的问题吗? 之前忘记了RequestData是最新版的内容忘记叫你更新了

Antarcticann commented 2 years ago

试了试,解决了,好耶!!

Antarcticann commented 2 years ago

试了试,解决了,好耶!!

三个问题都不会报错了,谢谢大佬!

Nambers commented 2 years ago

下个版本包含这些修复,大概版号应该是2.8.0-dev-*