From 34f0eb83158c3d97e14fb5ce0784554ff6a25021 Mon Sep 17 00:00:00 2001 From: wish Date: Fri, 30 Sep 2022 23:54:16 +1000 Subject: [PATCH] handle leaving alliance --- server/channelserver/handlers_guild_alliance.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/server/channelserver/handlers_guild_alliance.go b/server/channelserver/handlers_guild_alliance.go index 8f3a6313e..1d0960780 100644 --- a/server/channelserver/handlers_guild_alliance.go +++ b/server/channelserver/handlers_guild_alliance.go @@ -141,8 +141,15 @@ func handleMsgMhfOperateJoint(s *Session, p mhfpacket.MHFPacket) { } case mhfpacket.OPERATE_JOINT_LEAVE: if guild.LeaderCharID == s.charID { - // delete alliance application - // or leave alliance + if guild.ID == alliance.SubGuild1ID && alliance.SubGuild2ID > 0 { + s.server.db.Exec(`UPDATE guild_alliances SET sub1_id = sub2_id, sub2_id = NULL WHERE id = $1`, alliance.ID) + } else if guild.ID == alliance.SubGuild1ID && alliance.SubGuild2ID == 0 { + s.server.db.Exec(`UPDATE guild_alliances SET sub1_id = NULL WHERE id = $1`, alliance.ID) + } else { + s.server.db.Exec(`UPDATE guild_alliances SET sub2_id = NULL WHERE id = $1`, alliance.ID) + } + // TODO: Handle deleting Alliance applications + doAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) } else { s.logger.Warn( "Non-owner of guild attempted alliance leave",