diff --git a/server/imserver_new/guild/guildmgr.go b/server/imserver_new/guild/guildmgr.go index 8a89f261..8d12f8a4 100644 --- a/server/imserver_new/guild/guildmgr.go +++ b/server/imserver_new/guild/guildmgr.go @@ -539,6 +539,10 @@ func (this *guildMgr) AsyncKickout(accountId string, targetId string, cb func(in cb(0, "") return; } + if guild.getMember(targetId) == nil { + cb(0, "") + return; + } } func (this *guildMgr) AsyncDisband(accountId string, cb func(int32, string, []string)) { diff --git a/server/imserver_new/player/player.go b/server/imserver_new/player/player.go index 383d3817..b1a76469 100644 --- a/server/imserver_new/player/player.go +++ b/server/imserver_new/player/player.go @@ -497,6 +497,17 @@ func (this *player) CMLeaveGuild(hdr *f5.MsgHdr, msg *cs.CMLeaveGuild) { } func (this *player) CMDismissMember(hdr *f5.MsgHdr, msg *cs.CMDismissMember) { + rspMsg := new(cs.SMDismissMember) + GetGuildMgr().AsyncKickout( + this.GetAccountId(), + msg.GetDismissAccountId(), + func (errCode int32, errMsg string) { + if errCode != 0 { + this.SendMsg(rspMsg.Err(errCode, errMsg)) + return + } + this.SendMsg(rspMsg) + }) } func (this *player) CMSetMemberLevel(hdr *f5.MsgHdr, msg *cs.CMSetMemberLevel) {