From 0a0013aaef8362958708224f8739009da003502c Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Mon, 13 Dec 2021 02:18:33 +0100 Subject: [PATCH] fix(Core/Guild): Properly updates guild leader using command `guild rank`. (#9596) Fixes #9396 --- src/server/game/Guilds/Guild.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp index 47e7d01db..04eeb784e 100644 --- a/src/server/game/Guilds/Guild.cpp +++ b/src/server/game/Guilds/Guild.cpp @@ -2268,6 +2268,17 @@ bool Guild::ChangeMemberRank(ObjectGuid guid, uint8 newRank) if (Member* member = GetMember(guid)) { member->ChangeRank(newRank); + + if (newRank == GR_GUILDMASTER) + { + m_leaderGuid = guid; + + CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_GUILD_LEADER); + stmt->setUInt32(0, m_leaderGuid.GetCounter()); + stmt->setUInt32(1, m_id); + CharacterDatabase.Execute(stmt); + } + return true; } return false;