From 79cd9b8290a38c89ea6d550145a6d8be0ac4a091 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 9 Apr 2024 15:46:39 +0800 Subject: [PATCH] 1 --- server/imserver_new/common/types.go | 1 + server/imserver_new/guild/guildmgr.go | 27 +++++++++++++++++++++++++++ server/imserver_new/player/player.go | 12 ++++++++++++ 3 files changed, 40 insertions(+) diff --git a/server/imserver_new/common/types.go b/server/imserver_new/common/types.go index 82e87ff5..aa95c183 100644 --- a/server/imserver_new/common/types.go +++ b/server/imserver_new/common/types.go @@ -98,6 +98,7 @@ type GuildMgr interface { AsyncLeave(string, func(int32, string, []string)) AsyncKickout(string, string, func(int32, string)) AsyncDisband(string, func(int32, string, []string)) + AsyncSetGuildJob(string, string, int32, func(int32, string)) AsyncSearch(string, string, func(int32, string)) AsyncGetGuildLogs(string, string, func(int32, string)) AsyncUpdateGuild(string, map[int32]string, func(int32, string)) diff --git a/server/imserver_new/guild/guildmgr.go b/server/imserver_new/guild/guildmgr.go index 21ab0f34..ab4c2a88 100644 --- a/server/imserver_new/guild/guildmgr.go +++ b/server/imserver_new/guild/guildmgr.go @@ -537,6 +537,33 @@ func (this *guildMgr) AsyncLeave(accountId string, cb func(int32, string, []stri }) } +func (this *guildMgr) AsyncSetGuildJob(accountId string, targetId string, guildJob int32, + cb func(int32, string)) { + guild := this.internalGetGuildByAccountId(accountId) + if guild == nil { + cb(0, "") + return; + } + if !guild.isOwner(accountId) { + cb(0, "") + return; + } + if guild.getMember(targetId) == nil { + cb(0, "") + return; + } + f5.NewLockAsyncTask( + [][]string{ + {constant.GUILD_ID_LOCK_KEY, guild.guildId}, + {constant.GUILD_NAME_LOCK_KEY, guild.guildName}, + {constant.GUILD_MEMBER_LOCK_KEY, accountId}, + {constant.GUILD_MEMBER_LOCK_KEY, targetId}, + }, + func (task *f5.LockAsyncTask) { + + }) +} + func (this *guildMgr) AsyncKickout(accountId string, targetId string, cb func(int32, string)) { guild := this.internalGetGuildByAccountId(accountId) if guild == nil { diff --git a/server/imserver_new/player/player.go b/server/imserver_new/player/player.go index b1a76469..6b24ced7 100644 --- a/server/imserver_new/player/player.go +++ b/server/imserver_new/player/player.go @@ -511,6 +511,18 @@ func (this *player) CMDismissMember(hdr *f5.MsgHdr, msg *cs.CMDismissMember) { } func (this *player) CMSetMemberLevel(hdr *f5.MsgHdr, msg *cs.CMSetMemberLevel) { + rspMsg := new(cs.SMSetMemberLevel) + GetGuildMgr().AsyncSetGuildJob( + this.GetAccountId(), + msg.GetMemberAccountId(), + msg.GetMemberLevel(), + func (errCode int32, errMsg string) { + if errCode != 0 { + this.SendMsg(rspMsg.Err(errCode, errMsg)) + return + } + this.SendMsg(rspMsg) + }) } func (this *player) CMDisband(hdr *f5.MsgHdr, msg *cs.CMDisband) {