Skip to content

Commit e66dd3b

Browse files
committed
get msg
1 parent 92a1dc6 commit e66dd3b

File tree

2 files changed

+55
-2
lines changed

2 files changed

+55
-2
lines changed

service/bot/api_handler.go

Lines changed: 50 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,57 @@ func HandleSendGroupMsg(cli *client.QQClient, req *onebot.SendGroupMsgReq) *oneb
6767
func HandleDeleteMsg(cli *client.QQClient, req *onebot.DeleteMsgReq) *onebot.DeleteMsgResp {
6868
eventInterface, ok := cache.GroupMessageLru.Get(req.MessageId)
6969
if !ok {
70-
return &onebot.DeleteMsgResp{}
70+
return nil
71+
}
72+
event, ok := eventInterface.(*message.GroupMessage)
73+
if !ok {
74+
return nil
7175
}
72-
event := eventInterface.(*message.GroupMessage)
7376
cli.RecallGroupMessage(event.GroupCode, event.Id, event.InternalId)
7477
return &onebot.DeleteMsgResp{}
7578
}
79+
80+
func HandleGetMsg(cli *client.QQClient, req *onebot.GetMsgReq) *onebot.GetMsgResp {
81+
eventInterface, isGroup := cache.GroupMessageLru.Get(req.MessageId)
82+
if isGroup {
83+
event := eventInterface.(*message.GroupMessage)
84+
messageType := "group"
85+
if event.Sender.Uin == cli.Uin {
86+
messageType = "self"
87+
}
88+
return &onebot.GetMsgResp{
89+
Time: event.Time,
90+
MessageType: messageType,
91+
MessageId: req.MessageId,
92+
RealId: event.InternalId, // 不知道是什么?
93+
Message: MiraiMsgToProtoMsg(event.Elements),
94+
RawMessage: MiraiMsgToRawMsg(event.Elements),
95+
Sender: &onebot.GetMsgResp_Sender{
96+
UserId: event.Sender.Uin,
97+
Nickname: event.Sender.Nickname,
98+
},
99+
}
100+
101+
}
102+
eventInterface, isPrivate := cache.PrivateMessageLru.Get(req.MessageId)
103+
if isPrivate {
104+
event := eventInterface.(*message.PrivateMessage)
105+
messageType := "private"
106+
if event.Sender.Uin == cli.Uin {
107+
messageType = "self"
108+
}
109+
return &onebot.GetMsgResp{
110+
Time: event.Time,
111+
MessageType: messageType,
112+
MessageId: req.MessageId,
113+
RealId: event.InternalId, // 不知道是什么?
114+
Message: MiraiMsgToProtoMsg(event.Elements),
115+
RawMessage: MiraiMsgToRawMsg(event.Elements),
116+
Sender: &onebot.GetMsgResp_Sender{
117+
UserId: event.Sender.Uin,
118+
Nickname: event.Sender.Nickname,
119+
},
120+
}
121+
}
122+
return nil
123+
}

service/bot/remote.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,11 @@ func handleApiFrame(cli *client.QQClient, req *onebot.Frame) *onebot.Frame {
103103
resp.Data = &onebot.Frame_DeleteMsgResp{
104104
DeleteMsgResp: HandleDeleteMsg(cli, data.DeleteMsgReq),
105105
}
106+
case *onebot.Frame_GetMsgReq:
107+
resp.FrameType = onebot.Frame_TGetMsgReq
108+
resp.Data = &onebot.Frame_GetMsgResp{
109+
GetMsgResp: HandleGetMsg(cli, data.GetMsgReq),
110+
}
106111
default:
107112
return resp
108113
}

0 commit comments

Comments
 (0)