Skip to content

Commit 0f41baf

Browse files
committed
poke
1 parent 7c2c268 commit 0f41baf

File tree

4 files changed

+34
-1
lines changed

4 files changed

+34
-1
lines changed

pkg/bot/api_handler.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import (
66
"strconv"
77
_ "unsafe"
88

9-
109
"github.com/ProtobufBot/Go-Mirai-Client/pkg/cache"
1110
"github.com/ProtobufBot/Go-Mirai-Client/pkg/clz"
1211
"github.com/ProtobufBot/Go-Mirai-Client/pkg/config"
@@ -44,6 +43,10 @@ func splitText(content string, limit int) []string {
4443
func preProcessPrivateSendingMessage(cli *client.QQClient, target int64, m *message.SendingMessage) {
4544
newElements := make([]message.IMessageElement, 0, len(m.Elements))
4645
for _, element := range m.Elements {
46+
if _, ok := element.(*clz.PokeElement); ok {
47+
cli.SendFriendPoke(target)
48+
continue
49+
}
4750
if i, ok := element.(*clz.LocalImageElement); ok {
4851
img, err := cli.UploadPrivateImage(target, i.Stream)
4952
if err != nil {
@@ -125,6 +128,10 @@ func preProcessGroupSendingMessage(cli *client.QQClient, groupCode int64, m *mes
125128
newElements = append(newElements, i)
126129
continue
127130
}
131+
if i, ok := element.(*clz.PokeElement); ok {
132+
cli.SendGroupPoke(groupCode, i.Target)
133+
continue
134+
}
128135
if i, ok := element.(*clz.MyVideoElement); ok {
129136
gm, err := cli.UploadGroupShortVideo(groupCode, i.UploadingVideo, i.UploadingCover)
130137
if err != nil {

pkg/bot/proto2mirai.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ func ProtoMsgToMiraiMsg(cli *client.QQClient, msgList []*onebot.Message, notConv
4242
}
4343
case "at":
4444
messageChain = append(messageChain, ProtoAtToMiraiAt(protoMsg.Data))
45+
case "poke":
46+
messageChain = append(messageChain, ProtoPokeToMiraiPoke(protoMsg.Data))
4547
case "image":
4648
messageChain = append(messageChain, ProtoImageToMiraiImage(protoMsg.Data))
4749
case "img":
@@ -166,6 +168,20 @@ func ProtoAtToMiraiAt(data map[string]string) message.IMessageElement {
166168
return message.NewAt(userId)
167169
}
168170

171+
func ProtoPokeToMiraiPoke(data map[string]string) message.IMessageElement {
172+
qq, ok := data["qq"]
173+
if !ok {
174+
log.Warnf("pokeQQ不存在")
175+
return EmptyText()
176+
}
177+
userId, err := strconv.ParseInt(qq, 10, 64)
178+
if err != nil {
179+
log.Warnf("pokeQQ不是数字")
180+
return EmptyText()
181+
}
182+
return &clz.PokeElement{Target: userId}
183+
}
184+
169185
func ProtoFaceToMiraiFace(data map[string]string) message.IMessageElement {
170186
idStr, ok := data["id"]
171187
if !ok {

pkg/bot/raw2mirai.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ func RawMsgToMiraiMsg(cli *client.QQClient, str string) []message.IMessageElemen
4747
switch node.XMLName.Local {
4848
case "at":
4949
elemList = append(elemList, ProtoAtToMiraiAt(attrMap))
50+
case "poke":
51+
elemList = append(elemList, ProtoPokeToMiraiPoke(attrMap))
5052
case "img":
5153
elemList = append(elemList, ProtoImageToMiraiImage(attrMap)) // TODO 为了兼容我的旧代码偷偷加的
5254
case "image":

pkg/clz/clz.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,11 @@ type GiftElement struct {
3434
func (g *GiftElement) Type() message.ElementType {
3535
return message.At
3636
}
37+
38+
type PokeElement struct {
39+
Target int64
40+
}
41+
42+
func (g *PokeElement) Type() message.ElementType {
43+
return message.At
44+
}

0 commit comments

Comments
 (0)