From dc838adbcfb3abd2b42b7531a7966783d7c19319 Mon Sep 17 00:00:00 2001 From: wish Date: Fri, 26 Aug 2022 20:01:10 +1000 Subject: [PATCH] CanRecruit function in guild --- server/channelserver/handlers_guild.go | 2 +- server/channelserver/handlers_guild_member.go | 15 ++++++++++++++- server/channelserver/handlers_guild_scout.go | 4 ++-- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/server/channelserver/handlers_guild.go b/server/channelserver/handlers_guild.go index e13719dba..2a0ec1256 100644 --- a/server/channelserver/handlers_guild.go +++ b/server/channelserver/handlers_guild.go @@ -824,7 +824,7 @@ func handleMsgMhfOperateGuildMember(s *Session, p mhfpacket.MHFPacket) { actorCharacter, err := GetCharacterGuildData(s, s.charID) - if err != nil || (!actorCharacter.IsSubLeader() && guild.LeaderCharID != s.charID) || (!actorCharacter.Recruiter && guild.LeaderCharID != s.charID) { + if err != nil || (!actorCharacter.IsSubLeader() && guild.LeaderCharID != s.charID) { doAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) return } diff --git a/server/channelserver/handlers_guild_member.go b/server/channelserver/handlers_guild_member.go index 506c78bb1..2c3f0cd1a 100644 --- a/server/channelserver/handlers_guild_member.go +++ b/server/channelserver/handlers_guild_member.go @@ -26,8 +26,21 @@ type GuildMember struct { WeaponType uint16 `db:"weapon_type"` } +func (gm *GuildMember) CanRecruit() bool { + if gm.Recruiter { + return true + } + if gm.OrderIndex <= 3 { + return true + } + if gm.IsLeader { + return true + } + return false +} + func (gm *GuildMember) IsSubLeader() bool { - return gm.OrderIndex <= 3 && !gm.AvoidLeadership + return gm.OrderIndex <= 3 } func (gm *GuildMember) Save(s *Session) error { diff --git a/server/channelserver/handlers_guild_scout.go b/server/channelserver/handlers_guild_scout.go index 906f25154..f47c28bc6 100644 --- a/server/channelserver/handlers_guild_scout.go +++ b/server/channelserver/handlers_guild_scout.go @@ -21,7 +21,7 @@ func handleMsgMhfPostGuildScout(s *Session, p mhfpacket.MHFPacket) { panic(err) } - if actorCharGuildData == nil || (!actorCharGuildData.Recruiter && !actorCharGuildData.IsLeader && !actorCharGuildData.IsSubLeader()) { + if actorCharGuildData == nil || !actorCharGuildData.CanRecruit() { doAckBufFail(s, pkt.AckHandle, make([]byte, 4)) return } @@ -98,7 +98,7 @@ func handleMsgMhfCancelGuildScout(s *Session, p mhfpacket.MHFPacket) { panic(err) } - if guildCharData == nil || (!guildCharData.Recruiter && !guildCharData.IsLeader && !guildCharData.IsSubLeader()) { + if guildCharData == nil || !guildCharData.CanRecruit() { doAckBufFail(s, pkt.AckHandle, make([]byte, 4)) return }