Mirai.Net icon indicating copy to clipboard operation
Mirai.Net copied to clipboard

[BUG]无法获取NudgeEvent

Open lonelyicer opened this issue 1 year ago • 1 comments

发生了什么事? 无法获取NudgeEvent

怎么复现?

bot.MessageReceived
                .OfType<NudgeEvent>()
                .Subscribe(Received =>
                {
                    Console.WriteLine($"[{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}][INFO]收到来自{Received.FromId}的戳一戳。");
                    if (Received.Target != "114514" || Received.FromId == "114514")
                    {
                        return;
                    }
                    else
                    {
                        MessageManager.SendNudgeAsync(Received.FromId, Received.Subject.Id, MessageReceivers.Group);
                    }
                });

你以为它会做什么? 本应在收到戳一戳消息后在控制台输出消息来源,并且戳发出戳一戳的人,但似乎并无法收到NudgeEvent消息 Mirai控制台可以看见Mirai是有收到戳一戳的。

截图 Cache_258beb8effc446a1 image

环境

  • 操作系统:Windows 10 22H1/Windows Server 2022
  • Mirai版本:v2.12.0
  • Mirai http Api版本:v2.5.2
  • Mirai.Net 版本:2.4.2

lonelyicer avatar Aug 24 '22 20:08 lonelyicer

GroupMessageReceived可以正常获取

bot.MessageReceived
                .OfType<GroupMessageReceiver>()
                .Subscribe(Received =>
                {
                    if (Received.MessageChain.GetPlainMessage() == "戳一戳")
                    {
                        MessageManager.SendNudgeAsync(Received.Sender.Id, Received.GroupId, MessageReceivers.Group);
                    }
                });

Screenshot_20220825_044932

lonelyicer avatar Aug 24 '22 20:08 lonelyicer

我手动写websocket也收不到, 大概是mirai-api-http的原因? 去那里问问吧

Cyl18 avatar Sep 10 '22 22:09 Cyl18

因为你试图用消息订阅源bot.MessageReceived来接收一个事件,应该改用bot.EventReceived

SinoAHpx avatar Sep 11 '22 01:09 SinoAHpx

因为你试图用消息订阅源bot.MessageReceived来接收一个事件,应该改用bot.EventReceived

十分感谢,好了,是我太菜了(

lonelyicer avatar Sep 12 '22 15:09 lonelyicer