Skip to content

Commit 173f3b6

Browse files
committed
finger guessing
1 parent d214f79 commit 173f3b6

File tree

6 files changed

+33
-3
lines changed

6 files changed

+33
-3
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ module github.com/ProtobufBot/Go-Mirai-Client
33
go 1.17
44

55
require (
6-
github.com/Mrs4s/MiraiGo v0.0.0-20211218073652-950567e4b77a
6+
github.com/Mrs4s/MiraiGo v0.0.0-20211218093950-72ffc08b72ac
77
github.com/fanliao/go-promise v0.0.0-20141029170127-1890db352a72
88
github.com/gin-gonic/gin v1.7.2
99
github.com/go-playground/validator/v10 v10.8.0 // indirect

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
github.com/Mrs4s/MiraiGo v0.0.0-20211218073652-950567e4b77a h1:luE4izN3BxycpMafSBY0HQHw66isocQCpIWyEBehb14=
2-
github.com/Mrs4s/MiraiGo v0.0.0-20211218073652-950567e4b77a/go.mod h1:HI05ardsa5HE1Z2xTw69dytmaqqRWv4ajD5Jpnycqqw=
1+
github.com/Mrs4s/MiraiGo v0.0.0-20211218093950-72ffc08b72ac h1:YYOJTY+L8ttv9CFUkcmZ+3V7n8rdRGrelfSZWdL+7VA=
2+
github.com/Mrs4s/MiraiGo v0.0.0-20211218093950-72ffc08b72ac/go.mod h1:HI05ardsa5HE1Z2xTw69dytmaqqRWv4ajD5Jpnycqqw=
33
github.com/RomiChan/protobuf v0.0.0-20211204042931-ff4f35848737 h1:p4o7/eSoP39jwnGZz08N1IpH/mNzg9SdCn7kPM9A9BE=
44
github.com/RomiChan/protobuf v0.0.0-20211204042931-ff4f35848737/go.mod h1:CKKOWC7mBxd36zxsCB1V8DTrwlTNRQvkSVbYqyUiGEE=
55
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=

pkg/bot/mirai2proto.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ func MiraiMsgToProtoMsg(cli *client.QQClient, messageChain []message.IMessageEle
2020
msgList = append(msgList, MiraiAtToProtoAt(elem))
2121
case *message.DiceElement:
2222
msgList = append(msgList, MiraiDiceToProtoDice(elem))
23+
case *message.FingerGuessingElement:
24+
msgList = append(msgList, MiraiFingerGuessingToProtoFingerGuessing(elem))
2325
case *message.FriendImageElement:
2426
msgList = append(msgList, MiraiFriendImageToProtoImage(elem))
2527
case *message.GroupImageElement:
@@ -119,6 +121,16 @@ func MiraiDiceToProtoDice(elem *message.DiceElement) *onebot.Message {
119121
}
120122
}
121123

124+
func MiraiFingerGuessingToProtoFingerGuessing(elem *message.FingerGuessingElement) *onebot.Message {
125+
return &onebot.Message{
126+
Type: "finger_guessing",
127+
Data: map[string]string{
128+
"value": strconv.FormatInt(int64(elem.Value), 10),
129+
"name": elem.Name,
130+
},
131+
}
132+
}
133+
122134
func MiraiFaceToProtoFace(elem *message.FaceElement) *onebot.Message {
123135
return &onebot.Message{
124136
Type: "face",

pkg/bot/mirai2raw.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ func MiraiMsgToRawMsg(cli *client.QQClient, messageChain []message.IMessageEleme
2020
result += fmt.Sprintf(`<at qq="%d"/>`, elem.Target)
2121
case *message.DiceElement:
2222
result += fmt.Sprintf(`<dice value="%d"/>`, elem.Value)
23+
case *message.FingerGuessingElement:
24+
result += fmt.Sprintf(`<finger_guessing value="%d" name="%s"/>`, elem.Value, elem.Name)
2325
case *message.FriendImageElement:
2426
result += fmt.Sprintf(`<image image_id="%s" url="%s"/>`, html.EscapeString(elem.ImageId), html.EscapeString(elem.Url))
2527
case *message.GroupImageElement:

pkg/bot/proto2mirai.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ func ProtoMsgToMiraiMsg(cli *client.QQClient, msgList []*onebot.Message, notConv
4545
messageChain = append(messageChain, ProtoAtToMiraiAt(protoMsg.Data))
4646
case "dice":
4747
messageChain = append(messageChain, ProtoDiceToMiraiDice(protoMsg.Data))
48+
case "finger_guessing":
49+
messageChain = append(messageChain, ProtoFingerGuessingToMiraiFingerGuessing(protoMsg.Data))
4850
case "poke":
4951
messageChain = append(messageChain, ProtoPokeToMiraiPoke(protoMsg.Data))
5052
case "image":
@@ -181,6 +183,18 @@ func ProtoDiceToMiraiDice(data map[string]string) message.IMessageElement {
181183
return message.NewDice(value)
182184
}
183185

186+
func ProtoFingerGuessingToMiraiFingerGuessing(data map[string]string) message.IMessageElement {
187+
value := int32(rand.Intn(2))
188+
valueStr, ok := data["value"]
189+
if ok {
190+
v, err := strconv.ParseInt(valueStr, 10, 64)
191+
if err == nil && v >= 0 && v <= 2 {
192+
value = int32(v)
193+
}
194+
}
195+
return message.NewFingerGuessing(value)
196+
}
197+
184198
func ProtoPokeToMiraiPoke(data map[string]string) message.IMessageElement {
185199
qq, ok := data["qq"]
186200
if !ok {

pkg/bot/raw2mirai.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ func RawMsgToMiraiMsg(cli *client.QQClient, str string) []message.IMessageElemen
4949
elemList = append(elemList, ProtoAtToMiraiAt(attrMap))
5050
case "dice":
5151
elemList = append(elemList, ProtoDiceToMiraiDice(attrMap))
52+
case "finger_guessing":
53+
elemList = append(elemList, ProtoFingerGuessingToMiraiFingerGuessing(attrMap))
5254
case "poke":
5355
elemList = append(elemList, ProtoPokeToMiraiPoke(attrMap))
5456
case "img":

0 commit comments

Comments
 (0)