refactor(Core/Cache): move the GlobalPlayerCache to its own class (#9166)
This commit is contained in:
parent
00dc369cb6
commit
731d256420
47 changed files with 898 additions and 595 deletions
|
|
@ -17,6 +17,7 @@
|
|||
|
||||
#include "CalendarMgr.h"
|
||||
#include "Chat.h"
|
||||
#include "CharacterCache.h"
|
||||
#include "Config.h"
|
||||
#include "DatabaseEnv.h"
|
||||
#include "Guild.h"
|
||||
|
|
@ -1550,9 +1551,10 @@ void Guild::HandleInviteMember(WorldSession* session, std::string const& name)
|
|||
void Guild::HandleAcceptMember(WorldSession* session)
|
||||
{
|
||||
Player* player = session->GetPlayer();
|
||||
if (!sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GUILD) &&
|
||||
player->GetTeamId() != sObjectMgr->GetPlayerTeamIdByGUID(GetLeaderGUID().GetCounter()))
|
||||
if (!sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GUILD) && player->GetTeamId() != sCharacterCache->GetCharacterTeamByGuid(GetLeaderGUID()))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
AddMember(player->GetGUID());
|
||||
}
|
||||
|
|
@ -1963,7 +1965,7 @@ bool Guild::LoadMemberFromDB(Field* fields)
|
|||
return false;
|
||||
}
|
||||
m_members[memberGUID] = member;
|
||||
sWorld->UpdateGlobalPlayerGuild(memberGUID.GetCounter(), GetId());
|
||||
sCharacterCache->UpdateCharacterGuildId(memberGUID, GetId());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -2172,7 +2174,7 @@ void Guild::MassInviteToEvent(WorldSession* session, uint32 minLevel, uint32 max
|
|||
}
|
||||
|
||||
Member* member = itr->second;
|
||||
uint32 level = Player::GetLevelFromStorage(member->GetGUID().GetCounter());
|
||||
uint32 level = sCharacterCache->GetCharacterLevelByGuid(member->GetGUID());
|
||||
|
||||
if (member->GetGUID() != session->GetPlayer()->GetGUID() && level >= minLevel && level <= maxLevel && member->IsRankNotLower(minRank))
|
||||
{
|
||||
|
|
@ -2197,7 +2199,7 @@ bool Guild::AddMember(ObjectGuid guid, uint8 rankId)
|
|||
if (player->GetGuildId() != 0)
|
||||
return false;
|
||||
}
|
||||
else if (Player::GetGuildIdFromStorage(guid.GetCounter()) != 0)
|
||||
else if (sCharacterCache->GetCharacterGuildIdByGuid(guid) != 0)
|
||||
return false;
|
||||
|
||||
// Remove all player signs from another petitions
|
||||
|
|
@ -2249,7 +2251,7 @@ bool Guild::AddMember(ObjectGuid guid, uint8 rankId)
|
|||
return false;
|
||||
}
|
||||
m_members[guid] = member;
|
||||
sWorld->UpdateGlobalPlayerGuild(guid.GetCounter(), m_id);
|
||||
sCharacterCache->UpdateCharacterGuildId(guid, m_id);
|
||||
}
|
||||
|
||||
CharacterDatabaseTransaction trans(nullptr);
|
||||
|
|
@ -2321,7 +2323,9 @@ void Guild::DeleteMember(ObjectGuid guid, bool isDisbanding, bool isKicked, bool
|
|||
player->SetRank(0);
|
||||
}
|
||||
else
|
||||
sWorld->UpdateGlobalPlayerGuild(guid.GetCounter(), 0);
|
||||
{
|
||||
sCharacterCache->UpdateCharacterGuildId(guid, 0);
|
||||
}
|
||||
|
||||
_DeleteMemberFromDB(guid.GetCounter());
|
||||
if (!isDisbanding)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue