mirror of
https://github.com/Mrs4s/MiraiGo.git
synced 2025-05-04 11:07:40 +08:00
feat: batch kick (#279)
* kick batch * Update group_info.go * Update client.go * Update builders.go --------- Co-authored-by: 源文雨 <41315874+fumiama@users.noreply.github.com>
This commit is contained in:
parent
1d0fdf6983
commit
b49cd23484
@ -1093,20 +1093,22 @@ func (c *QQClient) buildGroupMuteAllPacket(groupCode int64, mute bool) (uint16,
|
||||
}
|
||||
|
||||
// OidbSvc.0x8a0_0
|
||||
func (c *QQClient) buildGroupKickPacket(groupCode, memberUin int64, kickMsg string, block bool) (uint16, []byte) {
|
||||
func (c *QQClient) buildGroupKickPacket(groupCode int64, kickMsg string, block bool, memberUins ...int64) (uint16, []byte) {
|
||||
flagBlock := 0
|
||||
if block {
|
||||
flagBlock = 1
|
||||
}
|
||||
body := &oidb.D8A0ReqBody{
|
||||
OptUint64GroupCode: groupCode,
|
||||
MsgKickList: []*oidb.D8A0KickMemberInfo{
|
||||
{
|
||||
msgKickList := make([]*oidb.D8A0KickMemberInfo, 0, len(memberUins))
|
||||
for _, memberUin := range memberUins {
|
||||
msgKickList = append(msgKickList, &oidb.D8A0KickMemberInfo{
|
||||
OptUint32Operate: 5,
|
||||
OptUint64MemberUin: memberUin,
|
||||
OptUint32Flag: int32(flagBlock),
|
||||
},
|
||||
},
|
||||
})
|
||||
}
|
||||
body := &oidb.D8A0ReqBody{
|
||||
OptUint64GroupCode: groupCode,
|
||||
MsgKickList: msgKickList,
|
||||
KickMsg: []byte(kickMsg),
|
||||
}
|
||||
b, _ := proto.Marshal(body)
|
||||
|
@ -726,8 +726,8 @@ func (c *QQClient) quitGroup(groupCode int64) {
|
||||
_, _ = c.sendAndWait(c.buildQuitGroupPacket(groupCode))
|
||||
}
|
||||
|
||||
func (c *QQClient) kickGroupMember(groupCode, memberUin int64, msg string, block bool) {
|
||||
_, _ = c.sendAndWait(c.buildGroupKickPacket(groupCode, memberUin, msg, block))
|
||||
func (c *QQClient) KickGroupMembers(groupCode int64, msg string, block bool, memberUins ...int64) {
|
||||
_, _ = c.sendAndWait(c.buildGroupKickPacket(groupCode, msg, block, memberUins...))
|
||||
}
|
||||
|
||||
func (g *GroupInfo) removeMember(uin int64) {
|
||||
|
@ -389,7 +389,7 @@ func (m *GroupMemberInfo) EditSpecialTitle(title string) {
|
||||
|
||||
func (m *GroupMemberInfo) Kick(msg string, block bool) error {
|
||||
if m.Uin != m.Group.client.Uin && m.Manageable() {
|
||||
m.Group.client.kickGroupMember(m.Group.Code, m.Uin, msg, block)
|
||||
m.Group.client.KickGroupMembers(m.Group.Code, msg, block, m.Uin)
|
||||
return nil
|
||||
} else {
|
||||
return errors.New("not manageable")
|
||||
|
Loading…
x
Reference in New Issue
Block a user