diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Guilds/Guild.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Guilds/GuildFinderMgr.cpp | 52 | ||||
-rw-r--r-- | src/server/game/Guilds/GuildFinderMgr.h | 52 | ||||
-rw-r--r-- | src/server/game/Handlers/GuildFinderHandler.cpp | 59 |
4 files changed, 82 insertions, 83 deletions
diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp index 175e9fe5813..0d3fb635a40 100644 --- a/src/server/game/Guilds/Guild.cpp +++ b/src/server/game/Guilds/Guild.cpp @@ -1307,7 +1307,7 @@ void Guild::Disband() CharacterDatabase.CommitTransaction(trans); - sGuildFinderMgr->DeleteGuild(m_id); + sGuildFinderMgr->DeleteGuild(GetGUID()); sGuildMgr->RemoveGuild(m_id); } diff --git a/src/server/game/Guilds/GuildFinderMgr.cpp b/src/server/game/Guilds/GuildFinderMgr.cpp index ee01bbf5467..c3fa5380e11 100644 --- a/src/server/game/Guilds/GuildFinderMgr.cpp +++ b/src/server/game/Guilds/GuildFinderMgr.cpp @@ -54,7 +54,7 @@ void GuildFinderMgr::LoadGuildSettings() do { Field* fields = result->Fetch(); - uint32 guildId = fields[0].GetUInt32(); + ObjectGuid guildId(HIGHGUID_GUILD, fields[0].GetUInt32()); uint8 availability = fields[1].GetUInt8(); uint8 classRoles = fields[2].GetUInt8(); uint8 interests = fields[3].GetUInt8(); @@ -94,15 +94,15 @@ void GuildFinderMgr::LoadMembershipRequests() do { Field* fields = result->Fetch(); - uint32 guildId = fields[0].GetUInt32(); - uint32 playerId = fields[1].GetUInt32(); + ObjectGuid guildId(HIGHGUID_GUILD, fields[0].GetUInt32()); + ObjectGuid playerId(HIGHGUID_PLAYER, fields[1].GetUInt32()); uint8 availability = fields[2].GetUInt8(); uint8 classRoles = fields[3].GetUInt8(); uint8 interests = fields[4].GetUInt8(); std::string comment = fields[5].GetString(); uint32 submitTime = fields[6].GetUInt32(); - MembershipRequest request(ObjectGuid(HIGHGUID_PLAYER, playerId), guildId, availability, classRoles, interests, comment, time_t(submitTime)); + MembershipRequest request(playerId, guildId, availability, classRoles, interests, comment, time_t(submitTime)); _membershipRequests[guildId].push_back(request); @@ -112,14 +112,14 @@ void GuildFinderMgr::LoadMembershipRequests() TC_LOG_INFO("server.loading", ">> Loaded %u guild finder membership requests in %u ms.", count, GetMSTimeDiffToNow(oldMSTime)); } -void GuildFinderMgr::AddMembershipRequest(uint32 guildGuid, MembershipRequest const& request) +void GuildFinderMgr::AddMembershipRequest(ObjectGuid const& guildGuid, MembershipRequest const& request) { _membershipRequests[guildGuid].push_back(request); SQLTransaction trans = CharacterDatabase.BeginTransaction(); PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_REP_GUILD_FINDER_APPLICANT); - stmt->setUInt32(0, request.GetGuildId()); - stmt->setUInt32(1, request.GetPlayerGUID()); + stmt->setUInt32(0, request.GetGuildGuid().GetCounter()); + stmt->setUInt32(1, request.GetPlayerGUID().GetCounter()); stmt->setUInt8(2, request.GetAvailability()); stmt->setUInt8(3, request.GetClassRoles()); stmt->setUInt8(4, request.GetInterests()); @@ -133,11 +133,11 @@ void GuildFinderMgr::AddMembershipRequest(uint32 guildGuid, MembershipRequest co SendMembershipRequestListUpdate(*player); // Notify the guild master and officers the list changed - if (Guild* guild = sGuildMgr->GetGuildById(guildGuid)) + if (Guild* guild = sGuildMgr->GetGuildByGuid(guildGuid)) SendApplicantListUpdate(*guild); } -void GuildFinderMgr::RemoveAllMembershipRequestsFromPlayer(ObjectGuid playerId) +void GuildFinderMgr::RemoveAllMembershipRequestsFromPlayer(ObjectGuid const& playerId) { for (MembershipRequestStore::iterator itr = _membershipRequests.begin(); itr != _membershipRequests.end(); ++itr) { @@ -151,20 +151,20 @@ void GuildFinderMgr::RemoveAllMembershipRequestsFromPlayer(ObjectGuid playerId) SQLTransaction trans = CharacterDatabase.BeginTransaction(); PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GUILD_FINDER_APPLICANT); - stmt->setUInt32(0, itr2->GetGuildId()); - stmt->setUInt32(1, itr2->GetPlayerGUID()); + stmt->setUInt32(0, itr2->GetGuildGuid().GetCounter()); + stmt->setUInt32(1, itr2->GetPlayerGUID().GetCounter()); trans->Append(stmt); CharacterDatabase.CommitTransaction(trans); itr->second.erase(itr2); // Notify the guild master and officers the list changed - if (Guild* guild = sGuildMgr->GetGuildById(itr->first)) + if (Guild* guild = sGuildMgr->GetGuildByGuid(itr->first)) SendApplicantListUpdate(*guild); } } -void GuildFinderMgr::RemoveMembershipRequest(uint32 playerId, uint32 guildId) +void GuildFinderMgr::RemoveMembershipRequest(ObjectGuid const& playerId, ObjectGuid const& guildId) { std::vector<MembershipRequest>::iterator itr = _membershipRequests[guildId].begin(); for (; itr != _membershipRequests[guildId].end(); ++itr) @@ -177,7 +177,7 @@ void GuildFinderMgr::RemoveMembershipRequest(uint32 playerId, uint32 guildId) SQLTransaction trans = CharacterDatabase.BeginTransaction(); PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GUILD_FINDER_APPLICANT); - stmt->setUInt32(0, itr->GetGuildId()); + stmt->setUInt32(0, itr->GetGuildGuid().GetCounter()); stmt->setUInt32(1, itr->GetPlayerGUID().GetCounter()); trans->Append(stmt); @@ -190,11 +190,11 @@ void GuildFinderMgr::RemoveMembershipRequest(uint32 playerId, uint32 guildId) SendMembershipRequestListUpdate(*player); // Notify the guild master and officers the list changed - if (Guild* guild = sGuildMgr->GetGuildById(guildId)) + if (Guild* guild = sGuildMgr->GetGuildByGuid(guildId)) SendApplicantListUpdate(*guild); } -std::list<MembershipRequest> GuildFinderMgr::GetAllMembershipRequestsForPlayer(uint32 playerGuid) +std::list<MembershipRequest> GuildFinderMgr::GetAllMembershipRequestsForPlayer(ObjectGuid const& playerGuid) { std::list<MembershipRequest> resultSet; for (MembershipRequestStore::const_iterator itr = _membershipRequests.begin(); itr != _membershipRequests.end(); ++itr) @@ -212,7 +212,7 @@ std::list<MembershipRequest> GuildFinderMgr::GetAllMembershipRequestsForPlayer(u return resultSet; } -uint8 GuildFinderMgr::CountRequestsFromPlayer(uint32 playerId) +uint8 GuildFinderMgr::CountRequestsFromPlayer(ObjectGuid const& playerId) { uint8 result = 0; for (MembershipRequestStore::const_iterator itr = _membershipRequests.begin(); itr != _membershipRequests.end(); ++itr) @@ -256,7 +256,7 @@ LFGuildStore GuildFinderMgr::GetGuildsMatchingSetting(LFGuildPlayer& settings, T return resultSet; } -bool GuildFinderMgr::HasRequest(uint32 playerId, uint32 guildId) +bool GuildFinderMgr::HasRequest(ObjectGuid const& playerId, ObjectGuid const& guildId) { for (std::vector<MembershipRequest>::const_iterator itr = _membershipRequests[guildId].begin(); itr != _membershipRequests[guildId].end(); ++itr) if (itr->GetPlayerGUID() == playerId) @@ -264,14 +264,14 @@ bool GuildFinderMgr::HasRequest(uint32 playerId, uint32 guildId) return false; } -void GuildFinderMgr::SetGuildSettings(uint32 guildGuid, LFGuildSettings const& settings) +void GuildFinderMgr::SetGuildSettings(ObjectGuid const& guildGuid, LFGuildSettings const& settings) { _guildSettings[guildGuid] = settings; SQLTransaction trans = CharacterDatabase.BeginTransaction(); PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_REP_GUILD_FINDER_GUILD_SETTINGS); - stmt->setUInt32(0, settings.GetGUID()); + stmt->setUInt32(0, settings.GetGUID().GetCounter()); stmt->setUInt8(1, settings.GetAvailability()); stmt->setUInt8(2, settings.GetClassRoles()); stmt->setUInt8(3, settings.GetInterests()); @@ -283,22 +283,20 @@ void GuildFinderMgr::SetGuildSettings(uint32 guildGuid, LFGuildSettings const& s CharacterDatabase.CommitTransaction(trans); } -void GuildFinderMgr::DeleteGuild(uint32 guildId) +void GuildFinderMgr::DeleteGuild(ObjectGuid const& guildId) { std::vector<MembershipRequest>::iterator itr = _membershipRequests[guildId].begin(); while (itr != _membershipRequests[guildId].end()) { SQLTransaction trans = CharacterDatabase.BeginTransaction(); - uint32 applicant = itr->GetPlayerGUID(); - PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GUILD_FINDER_APPLICANT); - stmt->setUInt32(0, itr->GetGuildId()); - stmt->setUInt32(1, applicant); + stmt->setUInt32(0, itr->GetGuildGuid().GetCounter()); + stmt->setUInt32(1, itr->GetPlayerGUID().GetCounter()); trans->Append(stmt); stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GUILD_FINDER_GUILD_SETTINGS); - stmt->setUInt32(0, itr->GetGuildId()); + stmt->setUInt32(0, itr->GetGuildGuid().GetCounter()); trans->Append(stmt); CharacterDatabase.CommitTransaction(trans); @@ -314,7 +312,7 @@ void GuildFinderMgr::DeleteGuild(uint32 guildId) _guildSettings.erase(guildId); // Notify the guild master the list changed (even if he's not a GM any more, not sure if needed) - if (Guild* guild = sGuildMgr->GetGuildById(guildId)) + if (Guild* guild = sGuildMgr->GetGuildByGuid(guildId)) SendApplicantListUpdate(*guild); } diff --git a/src/server/game/Guilds/GuildFinderMgr.h b/src/server/game/Guilds/GuildFinderMgr.h index c110dee871e..b1c57f230dd 100644 --- a/src/server/game/Guilds/GuildFinderMgr.h +++ b/src/server/game/Guilds/GuildFinderMgr.h @@ -64,20 +64,20 @@ struct MembershipRequest _availability = settings.GetAvailability(); _classRoles = settings.GetClassRoles(); _interests = settings.GetInterests(); - _guildId = settings.GetGuildId(); + _guildId = settings.GetGuildGuid(); _playerGUID = settings.GetPlayerGUID(); _time = settings.GetSubmitTime(); } - MembershipRequest(ObjectGuid playerGUID, uint32 guildId, uint32 availability, uint32 classRoles, uint32 interests, std::string& comment, time_t submitTime) : + MembershipRequest(ObjectGuid const& playerGUID, ObjectGuid const& guildId, uint32 availability, uint32 classRoles, uint32 interests, std::string& comment, time_t submitTime) : _comment(comment), _guildId(guildId), _playerGUID(playerGUID), _availability(availability), _classRoles(classRoles), _interests(interests), _time(submitTime) {} - MembershipRequest() : _guildId(0), _availability(0), _classRoles(0), + MembershipRequest() : _availability(0), _classRoles(0), _interests(0), _time(time(NULL)) {} - uint32 GetGuildId() const { return _guildId; } - ObjectGuid GetPlayerGUID() const { return _playerGUID; } + ObjectGuid const& GetGuildGuid() const { return _guildId; } + ObjectGuid const& GetPlayerGUID() const { return _playerGUID; } uint8 GetAvailability() const { return _availability; } uint8 GetClassRoles() const { return _classRoles; } uint8 GetInterests() const { return _interests; } @@ -90,7 +90,7 @@ struct MembershipRequest private: std::string _comment; - uint32 _guildId; + ObjectGuid _guildId; ObjectGuid _playerGUID; uint8 _availability; @@ -106,14 +106,13 @@ struct LFGuildPlayer public: LFGuildPlayer() { - _guid = 0; _roles = 0; _availability = 0; _interests = 0; _level = 0; } - LFGuildPlayer(uint32 guid, uint8 role, uint8 availability, uint8 interests, uint8 level) + LFGuildPlayer(ObjectGuid const& guid, uint8 role, uint8 availability, uint8 interests, uint8 level) { _guid = guid; _roles = role; @@ -122,7 +121,7 @@ struct LFGuildPlayer _level = level; } - LFGuildPlayer(uint32 guid, uint8 role, uint8 availability, uint8 interests, uint8 level, std::string& comment) : _comment(comment) + LFGuildPlayer(ObjectGuid const& guid, uint8 role, uint8 availability, uint8 interests, uint8 level, std::string& comment) : _comment(comment) { _guid = guid; _roles = role; @@ -140,7 +139,7 @@ struct LFGuildPlayer _level = settings.GetLevel(); } - uint32 GetGUID() const { return _guid; } + ObjectGuid const& GetGUID() const { return _guid; } uint8 GetClassRoles() const { return _roles; } uint8 GetAvailability() const { return _availability; } uint8 GetInterests() const { return _interests; } @@ -149,7 +148,7 @@ struct LFGuildPlayer private: std::string _comment; - uint32 _guid; + ObjectGuid _guid; uint8 _roles; uint8 _availability; uint8 _interests; @@ -164,16 +163,15 @@ struct LFGuildSettings : public LFGuildPlayer LFGuildSettings(bool listed, TeamId team) : LFGuildPlayer(), _listed(listed), _team(team) {} - LFGuildSettings(bool listed, TeamId team, uint32 guid, uint8 role, uint8 availability, uint8 interests, uint8 level) : + LFGuildSettings(bool listed, TeamId team, ObjectGuid const& guid, uint8 role, uint8 availability, uint8 interests, uint8 level) : LFGuildPlayer(guid, role, availability, interests, level), _listed(listed), _team(team) {} - LFGuildSettings(bool listed, TeamId team, uint32 guid, uint8 role, uint8 availability, uint8 interests, uint8 level, std::string& comment) : + LFGuildSettings(bool listed, TeamId team, ObjectGuid const& guid, uint8 role, uint8 availability, uint8 interests, uint8 level, std::string& comment) : LFGuildPlayer(guid, role, availability, interests, level, comment), _listed(listed), _team(team) {} LFGuildSettings(LFGuildSettings const& settings) : LFGuildPlayer(settings), _listed(settings.IsListed()), _team(settings.GetTeam()) {} - bool IsListed() const { return _listed; } void SetListed(bool state) { _listed = state; } @@ -183,8 +181,8 @@ struct LFGuildSettings : public LFGuildPlayer TeamId _team; }; -typedef std::map<uint32 /* guildGuid */, LFGuildSettings> LFGuildStore; -typedef std::map<uint32 /* guildGuid */, std::vector<MembershipRequest> > MembershipRequestStore; +typedef std::map<ObjectGuid /* guildGuid */, LFGuildSettings> LFGuildStore; +typedef std::map<ObjectGuid /* guildGuid */, std::vector<MembershipRequest> > MembershipRequestStore; class GuildFinderMgr { @@ -207,48 +205,48 @@ class GuildFinderMgr * @param guildGuid The guild's database guid. * @param LFGuildSettings The guild's settings storage. */ - void SetGuildSettings(uint32 guildGuid, LFGuildSettings const& settings); + void SetGuildSettings(ObjectGuid const& guildGuid, LFGuildSettings const& settings); /** * @brief Returns settings for a guild. * @param guildGuid The guild's database guid. */ - LFGuildSettings GetGuildSettings(uint32 guildGuid) { return _guildSettings[guildGuid]; } + LFGuildSettings GetGuildSettings(ObjectGuid const& guildGuid) { return _guildSettings[guildGuid]; } /** * @brief Files a membership request to a guild * @param guildGuid The guild's database GUID. * @param MembershipRequest An object storing all data related to the request. */ - void AddMembershipRequest(uint32 guildGuid, MembershipRequest const& request); + void AddMembershipRequest(ObjectGuid const& guildGuid, MembershipRequest const& request); /** * @brief Removes all membership request from a player. * @param playerId The player's database guid whose application shall be deleted. */ - void RemoveAllMembershipRequestsFromPlayer(ObjectGuid playerId); + void RemoveAllMembershipRequestsFromPlayer(ObjectGuid const& playerId); /** * @brief Removes a membership request to a guild. * @param playerId The player's database guid whose application shall be deleted. * @param guildId The guild's database guid */ - void RemoveMembershipRequest(uint32 playerId, uint32 guildId); + void RemoveMembershipRequest(ObjectGuid const& playerId, ObjectGuid const& guildId); /// Wipes everything related to a guild. Used when that guild is disbanded - void DeleteGuild(uint32 guildId); + void DeleteGuild(ObjectGuid const& guildId); /** * @brief Returns a set of membership requests for a guild * @param guildGuid The guild's database guid. */ - std::vector<MembershipRequest> GetAllMembershipRequestsForGuild(uint32 guildGuid) { return _membershipRequests[guildGuid]; } + std::vector<MembershipRequest> GetAllMembershipRequestsForGuild(ObjectGuid const& guildGuid) { return _membershipRequests[guildGuid]; } /** * @brief Returns a list of membership requests for a player. * @param playerGuid The player's database guid. */ - std::list<MembershipRequest> GetAllMembershipRequestsForPlayer(uint32 playerGuid); + std::list<MembershipRequest> GetAllMembershipRequestsForPlayer(ObjectGuid const& playerGuid); /** * @brief Returns a store of guilds matching the settings provided, using bitmask operators. @@ -257,11 +255,11 @@ class GuildFinderMgr */ LFGuildStore GetGuildsMatchingSetting(LFGuildPlayer& settings, TeamId faction); - /// Provided a player DB guid and a guild DB guid, determines if a pending request is filed with these keys. - bool HasRequest(uint32 playerId, uint32 guildId); + /// Provided a player guid and a guild guid, determines if a pending request is filed with these keys. + bool HasRequest(ObjectGuid const& playerId, ObjectGuid const& guildId); /// Counts the amount of pending membership requests, given the player's db guid. - uint8 CountRequestsFromPlayer(uint32 playerId); + uint8 CountRequestsFromPlayer(ObjectGuid const& playerId); void SendApplicantListUpdate(Guild& guild); void SendMembershipRequestListUpdate(Player& player); diff --git a/src/server/game/Handlers/GuildFinderHandler.cpp b/src/server/game/Handlers/GuildFinderHandler.cpp index 2dea43dcad1..9091bed97ad 100644 --- a/src/server/game/Handlers/GuildFinderHandler.cpp +++ b/src/server/game/Handlers/GuildFinderHandler.cpp @@ -26,7 +26,7 @@ void WorldSession::HandleGuildFinderAddRecruit(WorldPacket& recvPacket) { TC_LOG_DEBUG("network", "WORLD: Received CMSG_LF_GUILD_ADD_RECRUIT"); - if (sGuildFinderMgr->GetAllMembershipRequestsForPlayer(GetPlayer()->GetGUIDLow()).size() == 10) + if (sGuildFinderMgr->GetAllMembershipRequestsForPlayer(GetPlayer()->GetGUID()).size() == 10) return; uint32 classRoles = 0; @@ -58,8 +58,6 @@ void WorldSession::HandleGuildFinderAddRecruit(WorldPacket& recvPacket) recvPacket.ReadByteSeq(guid[1]); recvPacket.ReadByteSeq(guid[3]); - uint32 guildLowGuid = guid.GetCounter(); - if (!guid.IsGuild()) return; if (!(classRoles & GUILDFINDER_ALL_ROLES) || classRoles > GUILDFINDER_ALL_ROLES) @@ -69,8 +67,8 @@ void WorldSession::HandleGuildFinderAddRecruit(WorldPacket& recvPacket) if (!(guildInterests & ALL_INTERESTS) || guildInterests > ALL_INTERESTS) return; - MembershipRequest request = MembershipRequest(GetPlayer()->GetGUID(), guildLowGuid, availability, classRoles, guildInterests, comment, time(NULL)); - sGuildFinderMgr->AddMembershipRequest(guildLowGuid, request); + MembershipRequest request = MembershipRequest(GetPlayer()->GetGUID(), guid, availability, classRoles, guildInterests, comment, time(NULL)); + sGuildFinderMgr->AddMembershipRequest(guid, request); } void WorldSession::HandleGuildFinderBrowse(WorldPacket& recvPacket) @@ -94,7 +92,7 @@ void WorldSession::HandleGuildFinderBrowse(WorldPacket& recvPacket) Player* player = GetPlayer(); - LFGuildPlayer settings(player->GetGUIDLow(), classRoles, availability, guildInterests, ANY_FINDER_LEVEL); + LFGuildPlayer settings(player->GetGUID(), classRoles, availability, guildInterests, ANY_FINDER_LEVEL); LFGuildStore guildList = sGuildFinderMgr->GetGuildsMatchingSetting(settings, player->GetTeamId()); uint32 guildCount = guildList.size(); @@ -112,9 +110,9 @@ void WorldSession::HandleGuildFinderBrowse(WorldPacket& recvPacket) for (LFGuildStore::const_iterator itr = guildList.begin(); itr != guildList.end(); ++itr) { LFGuildSettings guildSettings = itr->second; - Guild* guild = sGuildMgr->GetGuildById(itr->first); + Guild* guild = sGuildMgr->GetGuildByGuid(itr->first); - ObjectGuid guildGUID = ObjectGuid(guild->GetGUID()); + ObjectGuid guildGUID = guild->GetGUID(); data.WriteBit(guildGUID[7]); data.WriteBit(guildGUID[5]); @@ -150,7 +148,7 @@ void WorldSession::HandleGuildFinderBrowse(WorldPacket& recvPacket) bufferData.WriteByteSeq(guildGUID[7]); - bufferData << uint8(sGuildFinderMgr->HasRequest(player->GetGUIDLow(), guild->GetGUID())); // Request pending + bufferData << uint8(sGuildFinderMgr->HasRequest(player->GetGUID(), guild->GetGUID())); // Request pending bufferData.WriteByteSeq(guildGUID[2]); bufferData.WriteByteSeq(guildGUID[0]); @@ -177,6 +175,11 @@ void WorldSession::HandleGuildFinderBrowse(WorldPacket& recvPacket) void WorldSession::HandleGuildFinderDeclineRecruit(WorldPacket& recvPacket) { TC_LOG_DEBUG("network", "WORLD: Received CMSG_LF_GUILD_DECLINE_RECRUIT"); + if (!GetPlayer()->GetGuild()) + { + recvPacket.rfinish(); + return; + } ObjectGuid playerGuid; @@ -201,14 +204,14 @@ void WorldSession::HandleGuildFinderDeclineRecruit(WorldPacket& recvPacket) if (!playerGuid.IsPlayer()) return; - sGuildFinderMgr->RemoveMembershipRequest(playerGuid.GetCounter(), GetPlayer()->GetGuildId()); + sGuildFinderMgr->RemoveMembershipRequest(playerGuid, GetPlayer()->GetGuild()->GetGUID()); } void WorldSession::HandleGuildFinderGetApplications(WorldPacket& /*recvPacket*/) { TC_LOG_DEBUG("network", "WORLD: Received CMSG_LF_GUILD_GET_APPLICATIONS"); // Empty opcode - std::list<MembershipRequest> applicatedGuilds = sGuildFinderMgr->GetAllMembershipRequestsForPlayer(GetPlayer()->GetGUIDLow()); + std::list<MembershipRequest> applicatedGuilds = sGuildFinderMgr->GetAllMembershipRequestsForPlayer(GetPlayer()->GetGUID()); uint32 applicationsCount = applicatedGuilds.size(); WorldPacket data(SMSG_LF_GUILD_MEMBERSHIP_LIST_UPDATED, 7 + 54 * applicationsCount); data.WriteBits(applicationsCount, 20); @@ -218,8 +221,8 @@ void WorldSession::HandleGuildFinderGetApplications(WorldPacket& /*recvPacket*/) ByteBuffer bufferData(54 * applicationsCount); for (std::list<MembershipRequest>::const_iterator itr = applicatedGuilds.begin(); itr != applicatedGuilds.end(); ++itr) { - Guild* guild = sGuildMgr->GetGuildById(itr->GetGuildId()); - LFGuildSettings guildSettings = sGuildFinderMgr->GetGuildSettings(itr->GetGuildId()); + Guild* guild = sGuildMgr->GetGuildByGuid(itr->GetGuildGuid()); + LFGuildSettings guildSettings = sGuildFinderMgr->GetGuildSettings(itr->GetGuildGuid()); MembershipRequest request = *itr; ObjectGuid guildGuid = ObjectGuid(guild->GetGUID()); @@ -260,7 +263,7 @@ void WorldSession::HandleGuildFinderGetApplications(WorldPacket& /*recvPacket*/) data.FlushBits(); data.append(bufferData); } - data << uint32(10 - sGuildFinderMgr->CountRequestsFromPlayer(GetPlayer()->GetGUIDLow())); // Applications count left + data << uint32(10 - sGuildFinderMgr->CountRequestsFromPlayer(GetPlayer()->GetGUID())); // Applications count left GetPlayer()->SendDirectMessage(&data); } @@ -274,10 +277,11 @@ void WorldSession::HandleGuildFinderGetRecruits(WorldPacket& recvPacket) recvPacket >> unkTime; Player* player = GetPlayer(); - if (!player->GetGuildId()) + Guild* guild = player->GetGuild(); + if (!guild) return; - std::vector<MembershipRequest> recruitsList = sGuildFinderMgr->GetAllMembershipRequestsForGuild(player->GetGuildId()); + std::vector<MembershipRequest> recruitsList = sGuildFinderMgr->GetAllMembershipRequestsForGuild(guild->GetGUID()); uint32 recruitCount = recruitsList.size(); ByteBuffer dataBuffer(53 * recruitCount); @@ -341,15 +345,13 @@ void WorldSession::HandleGuildFinderPostRequest(WorldPacket& /*recvPacket*/) Player* player = GetPlayer(); - if (!player->GetGuildId()) // Player must be in guild + Guild* guild = player->GetGuild(); + if (!guild) // Player must be in guild return; - bool isGuildMaster = true; - if (Guild* guild = sGuildMgr->GetGuildById(player->GetGuildId())) - if (guild->GetLeaderGUID() != player->GetGUID()) - isGuildMaster = false; + bool isGuildMaster = guild->GetLeaderGUID() == player->GetGUID(); - LFGuildSettings settings = sGuildFinderMgr->GetGuildSettings(player->GetGuildId()); + LFGuildSettings settings = sGuildFinderMgr->GetGuildSettings(guild->GetGUID()); WorldPacket data(SMSG_LF_GUILD_POST_UPDATED, 35); data.WriteBit(isGuildMaster); // Guessed @@ -397,7 +399,7 @@ void WorldSession::HandleGuildFinderRemoveRecruit(WorldPacket& recvPacket) if (!guildGuid.IsGuild()) return; - sGuildFinderMgr->RemoveMembershipRequest(GetPlayer()->GetGUIDLow(), guildGuid.GetCounter()); + sGuildFinderMgr->RemoveMembershipRequest(GetPlayer()->GetGUID(), guildGuid); } // Sent any time a guild master sets an option in the interface and when listing / unlisting his guild @@ -433,10 +435,11 @@ void WorldSession::HandleGuildFinderSetGuildPost(WorldPacket& recvPacket) if (!player->GetGuildId()) // Player must be in guild return; - if (Guild* guild = sGuildMgr->GetGuildById(player->GetGuildId())) // Player must be guild master - if (guild->GetLeaderGUID() != player->GetGUID()) - return; + Guild* guild = sGuildMgr->GetGuildById(player->GetGuildId()); + // Player must be guild master + if (guild->GetLeaderGUID() != player->GetGUID()) + return; - LFGuildSettings settings(listed, player->GetTeamId(), player->GetGuildId(), classRoles, availability, guildInterests, level, comment); - sGuildFinderMgr->SetGuildSettings(player->GetGuildId(), settings); + LFGuildSettings settings(listed, player->GetTeamId(), guild->GetGUID(), classRoles, availability, guildInterests, level, comment); + sGuildFinderMgr->SetGuildSettings(guild->GetGUID(), settings); } |