1
0
mirror of https://github.com/Mrs4s/MiraiGo.git synced 2025-05-04 11:07:40 +08:00

add: group.Quit().

This commit is contained in:
Mrs4s 2020-07-31 12:15:25 +08:00
parent 06234f080b
commit 0136cb21d9
3 changed files with 34 additions and 0 deletions

View File

@ -869,3 +869,27 @@ func (c *QQClient) buildMultiApplyDownPacket(resId string) (uint16, []byte) {
packet := packets.BuildUniPacket(c.Uin, seq, "MultiMsg.ApplyDown", 1, c.OutGoingPacketSessionId, EmptyBytes, c.sigInfo.d2Key, payload)
return seq, packet
}
// ProfileService.GroupMngReq
func (c *QQClient) buildQuitGroupPacket(groupCode int64) (uint16, []byte) {
seq := c.nextSeq()
jw := jce.NewJceWriter()
jw.WriteInt32(2, 0)
jw.WriteInt64(c.Uin, 1)
jw.WriteBytes(binary.NewWriterF(func(w *binary.Writer) {
w.WriteUInt32(uint32(c.Uin))
w.WriteUInt32(uint32(groupCode))
}), 2)
buf := &jce.RequestDataVersion3{Map: map[string][]byte{"GroupMngReq": packRequestDataV3(jw.Bytes())}}
pkt := &jce.RequestPacket{
IVersion: 3,
IRequestId: c.nextPacketSeq(),
SServantName: "KQQ.ProfileService.ProfileServantObj",
SFuncName: "GroupMngReq",
SBuffer: buf.ToBytes(),
Context: map[string]string{},
Status: map[string]string{},
}
packet := packets.BuildUniPacket(c.Uin, seq, "ProfileService.GroupMngReq", 1, c.OutGoingPacketSessionId, EmptyBytes, c.sigInfo.d2Key, pkt.ToBytes())
return seq, packet
}

View File

@ -584,6 +584,10 @@ func (c *QQClient) groupMute(groupCode, memberUin int64, time uint32) {
_, _ = c.sendAndWait(c.buildGroupMutePacket(groupCode, memberUin, time))
}
func (c *QQClient) quitGroup(groupCode int64) {
_, _ = c.sendAndWait(c.buildQuitGroupPacket(groupCode))
}
func (c *QQClient) kickGroupMember(groupCode, memberUin int64, msg string) {
_, _ = c.sendAndWait(c.buildGroupKickPacket(groupCode, memberUin, msg))
}

View File

@ -188,6 +188,12 @@ func (g *GroupInfo) MuteAll(mute bool) {
}
}
func (g *GroupInfo) Quit() {
if g.SelfPermission() != Owner {
g.client.quitGroup(g.Code)
}
}
func (m *GroupMemberInfo) DisplayName() string {
if m.CardName == "" {
return m.Nickname