diff --git a/src/world/ContentFinder/ContentFinder.cpp b/src/world/ContentFinder/ContentFinder.cpp index 8b031196..b5499072 100644 --- a/src/world/ContentFinder/ContentFinder.cpp +++ b/src/world/ContentFinder/ContentFinder.cpp @@ -84,7 +84,7 @@ void Sapphire::World::ContentFinder::update() server.queueForPlayer( queuedPlayer->getCharacterId(), updatePacket ); pInstanceContent->bindPlayer( queuedPlayer->getEntityId() ); - warpMgr.requestMoveTerritory( *server.getPlayer( queuedPlayer->getEntityId() ), WarpType::WARP_TYPE_INSTANCE_CONTENT, pInstanceContent->getGuId(), { 0.f, 0.f, 0.f }, 0.f ); + warpMgr.requestMoveTerritory( *playerMgr().getPlayer( queuedPlayer->getEntityId() ), WarpType::WARP_TYPE_INSTANCE_CONTENT, pInstanceContent->getGuId(), { 0.f, 0.f, 0.f }, 0.f ); auto zonePacket = makeUpdateContent( queuedPlayer->getEntityId(), instance->getTerritoryTypeId(), 0, pInstanceContent->getGuId() ); auto zonePacket2 = makeUpdateContent( queuedPlayer->getEntityId(), instance->getTerritoryTypeId(), content->m_partyMemberCount ); diff --git a/src/world/Manager/BlacklistMgr.cpp b/src/world/Manager/BlacklistMgr.cpp index b53d5b51..a4e73f50 100644 --- a/src/world/Manager/BlacklistMgr.cpp +++ b/src/world/Manager/BlacklistMgr.cpp @@ -11,6 +11,7 @@ #include "Actor/Player.h" #include "BlacklistMgr.h" #include "FriendListMgr.h" +#include "PlayerMgr.h" #include "WorldServer.h" @@ -22,10 +23,9 @@ using namespace Sapphire::Network::Packets::WorldPackets; bool BlacklistMgr::onAddCharacter( Entity::Player& source, const std::string& targetName ) { // add target to blacklist + auto& playerMgr = Common::Service< World::Manager::PlayerMgr >::ref(); - auto& server = Common::Service< World::WorldServer >::ref(); - - auto pTarget = server.getPlayer( targetName ); + auto pTarget = playerMgr.getPlayer( targetName ); if( !pTarget ) { // target doesn't exist in server player table @@ -77,10 +77,9 @@ bool BlacklistMgr::onAddCharacter( Entity::Player& source, const std::string& ta bool BlacklistMgr::onRemoveCharacter( Entity::Player& source, const std::string& targetName ) { // remove target from blacklist + auto& playerMgr = Common::Service< World::Manager::PlayerMgr >::ref(); - auto& server = Common::Service< World::WorldServer >::ref(); - - auto pTarget = server.getPlayer( targetName ); + auto pTarget = playerMgr.getPlayer( targetName ); if( !pTarget ) { // target doesn't exist in server player table @@ -115,6 +114,7 @@ bool BlacklistMgr::onGetBlacklistPage( Entity::Player& source, uint8_t key, uint // it'll also be called multiple times sequentially until there are no more entries left (id == 0) auto& server = Common::Service< World::WorldServer >::ref(); + auto& playerMgr = Common::Service< World::Manager::PlayerMgr >::ref(); std::vector< Server::BlacklistCharacter > entries; @@ -134,7 +134,7 @@ bool BlacklistMgr::onGetBlacklistPage( Entity::Player& source, uint8_t key, uint } auto id = idVec[ i ]; - auto pPlayer = server.getPlayer( id ); + auto pPlayer = playerMgr.getPlayer( id ); if( !pPlayer ) continue; diff --git a/src/world/Manager/ChatChannelMgr.cpp b/src/world/Manager/ChatChannelMgr.cpp index d7c99db6..678e6279 100644 --- a/src/world/Manager/ChatChannelMgr.cpp +++ b/src/world/Manager/ChatChannelMgr.cpp @@ -3,6 +3,7 @@ #include #include "ChatChannelMgr.h" +#include "PlayerMgr.h" #include "Actor/Player.h" #include "WorldServer.h" @@ -110,6 +111,7 @@ void ChatChannelMgr::sendMessageToChannel( uint64_t channelId, Entity::Player& s auto& channelMembers = m_channels[ channelId ]; auto& server = Common::Service< World::WorldServer >::ref(); + auto& playerMgr = Common::Service< World::Manager::PlayerMgr >::ref(); // send message to all players in chat channel for( const auto id : channelMembers ) @@ -126,7 +128,7 @@ void ChatChannelMgr::sendMessageToChannel( uint64_t channelId, Entity::Player& s continue; } - auto pPlayer = server.getPlayer( id ); + auto pPlayer = playerMgr.getPlayer( id ); // prepare message packet, associating message and sender info with channel data auto chatToChannelPacket = std::make_shared< Packets::Server::ChatToChannelPacket >( *pPlayer, sender, channelId, message ); diff --git a/src/world/Manager/FreeCompanyMgr.cpp b/src/world/Manager/FreeCompanyMgr.cpp index 78b92f8e..91628122 100644 --- a/src/world/Manager/FreeCompanyMgr.cpp +++ b/src/world/Manager/FreeCompanyMgr.cpp @@ -11,6 +11,7 @@ #include "FreeCompany/FreeCompany.h" #include "FreeCompanyMgr.h" +#include "PlayerMgr.h" #include "Actor/Player.h" @@ -164,6 +165,7 @@ FreeCompanyPtr FreeCompanyMgr::getPlayerFreeCompany( uint64_t characterId ) void FreeCompanyMgr::sendFcInviteList( Entity::Player& player ) { + auto& playerMgr = Common::Service< World::Manager::PlayerMgr >::ref(); auto fc = getPlayerFreeCompany( player.getCharacterId() ); if( !fc ) return; @@ -177,7 +179,7 @@ void FreeCompanyMgr::sendFcInviteList( Entity::Player& player ) std::strcpy( inviteListPacket->data().FreeCompanyName, fc->getName().c_str() ); // fill master character data - auto masterCharacter = server.getPlayer( fc->getMasterId() ); + auto masterCharacter = playerMgr.getPlayer( fc->getMasterId() ); if( !masterCharacter ) { Logger::error( "FreeCompanyMgr: Unable to look up master character#{}!", fc->getMasterId() ); @@ -199,7 +201,7 @@ void FreeCompanyMgr::sendFcInviteList( Entity::Player& player ) if( entry == 0 || entry == fc->getMasterId() ) continue; - auto signee = server.getPlayer( entry ); + auto signee = playerMgr.getPlayer( entry ); if( !signee ) continue; @@ -241,7 +243,8 @@ void FreeCompanyMgr::sendFcStatus( Entity::Player& player ) void FreeCompanyMgr::onFcLogin( uint64_t characterId ) { auto& server = Common::Service< World::WorldServer >::ref(); - auto player = server.getPlayer( characterId ); + auto& playerMgr = Common::Service< World::Manager::PlayerMgr >::ref(); + auto player = playerMgr.getPlayer( characterId ); if( !player ) return; @@ -268,7 +271,8 @@ void FreeCompanyMgr::onFcLogin( uint64_t characterId ) void FreeCompanyMgr::onFcLogout( uint64_t characterId ) { auto& server = Common::Service< World::WorldServer >::ref(); - auto player = server.getPlayer( characterId ); + auto& playerMgr = Common::Service< World::Manager::PlayerMgr >::ref(); + auto player = playerMgr.getPlayer( characterId ); if( !player ) return; diff --git a/src/world/Manager/HousingMgr.cpp b/src/world/Manager/HousingMgr.cpp index f37585fd..7f854e33 100644 --- a/src/world/Manager/HousingMgr.cpp +++ b/src/world/Manager/HousingMgr.cpp @@ -310,7 +310,7 @@ LandPtr HousingMgr::getLandByOwnerId( uint64_t id ) void HousingMgr::sendLandSignOwned( Entity::Player& player, const Common::LandIdent ident ) { auto& server = Common::Service< World::WorldServer >::ref(); - + auto& playerMgr = Common::Service< World::Manager::PlayerMgr >::ref(); player.setActiveLand( static_cast< uint8_t >( ident.landId ), static_cast< uint8_t >( ident.wardNum ) ); auto landSetId = toLandSetId( ident.territoryTypeId, ident.wardNum ); @@ -341,7 +341,7 @@ void HousingMgr::sendLandSignOwned( Entity::Player& player, const Common::LandId uint64_t characterId = land->getOwnerId(); - std::string playerName = server.getPlayerNameFromDb( characterId ); + std::string playerName = playerMgr.getPlayerNameFromDb( characterId ); memcpy( &landInfoSignPacket->data().OwnerName, playerName.c_str(), playerName.size() ); diff --git a/src/world/Manager/LinkshellMgr.cpp b/src/world/Manager/LinkshellMgr.cpp index 80528583..8bbe79fe 100644 --- a/src/world/Manager/LinkshellMgr.cpp +++ b/src/world/Manager/LinkshellMgr.cpp @@ -11,6 +11,7 @@ #include "Linkshell/Linkshell.h" #include "LinkshellMgr.h" +#include "PlayerMgr.h" #include "Actor/Player.h" @@ -343,7 +344,8 @@ void LinkshellMgr::leaveLinkshell( uint64_t lsId, uint64_t characterId ) { auto& server = Common::Service< World::WorldServer >::ref(); auto& chatChannelMgr = Common::Service< Manager::ChatChannelMgr >::ref(); - auto leavingPlayer = server.getPlayer( characterId ); + auto& playerMgr = Common::Service< World::Manager::PlayerMgr >::ref(); + auto leavingPlayer = playerMgr.getPlayer( characterId ); auto lsPtr = getLinkshellById( lsId ); if( !leavingPlayer || !lsPtr ) return; @@ -359,7 +361,8 @@ void LinkshellMgr::joinLinkshell( uint64_t lsId, uint64_t characterId ) { auto &server = Common::Service< World::WorldServer >::ref(); auto& chatChannelMgr = Common::Service< Manager::ChatChannelMgr >::ref(); - auto joiningPlayer = server.getPlayer( characterId ); + auto& playerMgr = Common::Service< World::Manager::PlayerMgr >::ref(); + auto joiningPlayer = playerMgr.getPlayer( characterId ); auto lsPtr = getLinkshellById( lsId ); if( !joiningPlayer || !lsPtr ) return; diff --git a/src/world/Manager/PartyMgr.cpp b/src/world/Manager/PartyMgr.cpp index 7a5024a3..c5ab4aeb 100644 --- a/src/world/Manager/PartyMgr.cpp +++ b/src/world/Manager/PartyMgr.cpp @@ -10,6 +10,7 @@ #include "PartyMgr.h" #include "WorldServer.h" #include "ChatChannelMgr.h" +#include "PlayerMgr.h" #include "Session.h" @@ -266,9 +267,10 @@ void PartyMgr::onKick( const std::string& kickPlayerName, Entity::Player& leader void PartyMgr::onChangeLeader( const std::string& newLeaderName, Entity::Player& oldLeader ) { auto& server = Common::Service< World::WorldServer >::ref(); + auto& playerMgr = Common::Service< World::Manager::PlayerMgr >::ref(); auto party = getParty( oldLeader.getPartyId() ); - auto pNewLeader = server.getPlayer( newLeaderName ); + auto pNewLeader = playerMgr.getPlayer( newLeaderName ); if( !pNewLeader ) { @@ -331,13 +333,13 @@ std::vector< Entity::PlayerPtr > PartyMgr::getPartyMembers( Party& party ) { std::vector< Entity::PlayerPtr > members; - auto& server = Common::Service< World::WorldServer >::ref(); + auto& playerMgr = Common::Service< World::Manager::PlayerMgr >::ref(); for( auto& memberId : party.MemberId ) { if( memberId == 0 ) continue; - auto pPlayer = server.getPlayer( memberId ); + auto pPlayer = playerMgr.getPlayer( memberId ); members.push_back( pPlayer ); } @@ -346,12 +348,12 @@ std::vector< Entity::PlayerPtr > PartyMgr::getPartyMembers( Party& party ) Entity::PlayerPtr PartyMgr::getPartyLeader( Party& party ) { - auto& server = Common::Service< World::WorldServer >::ref(); + auto& playerMgr = Common::Service< World::Manager::PlayerMgr >::ref(); if( party.LeaderId == 0 ) return nullptr; - auto pLeader = server.getPlayer( party.LeaderId ); + auto pLeader = playerMgr.getPlayer( party.LeaderId ); return pLeader; } diff --git a/src/world/Manager/PlayerMgr.cpp b/src/world/Manager/PlayerMgr.cpp index 6c4c26d6..0611e74f 100644 --- a/src/world/Manager/PlayerMgr.cpp +++ b/src/world/Manager/PlayerMgr.cpp @@ -15,6 +15,9 @@ #include