diff options
author | Shocker <shocker@freakz.ro> | 2012-01-05 00:50:33 +0200 |
---|---|---|
committer | Shocker <shocker@freakz.ro> | 2012-01-05 00:50:33 +0200 |
commit | 1a1d8a100becd59f6d5ca1c2371a4e4e58ea6503 (patch) | |
tree | 390c73c1c7e0852ff34f1f74b800437ec3f28937 | |
parent | d5647760e24e2f755f34d787a243cdc6c156d967 (diff) |
Core/Guilds: Players should be removed from guild when changing faction
Closes #4623
-rw-r--r-- | src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp b/src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp index 47af8c9bc1e..fd649175f76 100644 --- a/src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp @@ -1800,7 +1800,9 @@ void WorldSession::HandleCharFactionOrRaceChange(WorldPacket& recv_data) if (!sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GUILD)) { // Reset guild - trans->PAppend("DELETE FROM `guild_member` WHERE `guid`= '%u'", lowGuid); + if (QueryResult result = CharacterDatabase.PQuery("SELECT guildid FROM `guild_member` WHERE guid ='%u'", lowGuid)) + if (Guild* guild = sGuildMgr->GetGuildById((result->Fetch()[0]).GetUInt32())) + guild->DeleteMember(MAKE_NEW_GUID(lowGuid, 0, HIGHGUID_PLAYER)); } if (!sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_ADD_FRIEND)) |