1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-27 14:57:44 +00:00

Moved onFcLogout to a better place

This commit is contained in:
Mordred 2023-02-10 08:56:58 +01:00
parent 6a9f5b683f
commit 2d3486ea1f
3 changed files with 8 additions and 7 deletions

View file

@ -20,6 +20,7 @@
#include "Manager/PlayerMgr.h"
#include "Manager/PartyMgr.h"
#include "Manager/WarpMgr.h"
#include "Manager/FreeCompanyMgr.h"
#include "Territory/Territory.h"
#include "Territory/InstanceContent.h"
@ -120,6 +121,8 @@ Player::~Player() = default;
void Player::unload()
{
auto& partyMgr = Common::Service< World::Manager::PartyMgr >::ref();
auto& fcMgr = Common::Service< World::Manager::FreeCompanyMgr >::ref();
// do one last update to db
updateSql();
// reset isLogin and loading sequences just in case
@ -130,11 +133,9 @@ void Player::unload()
setMarkedForRemoval( false );
// send updates to mgrs
if( getPartyId() != 0 )
{
auto& partyMgr = Common::Service< World::Manager::PartyMgr >::ref();
partyMgr.onMemberDisconnect( *this );
}
fcMgr.onFcLogout( getCharacterId() );
syncLastDBWrite();
}

View file

@ -342,7 +342,7 @@ void PlayerMgr::onZone( Sapphire::Entity::Player& player )
auto& housingMgr = Common::Service< HousingMgr >::ref();
auto& partyMgr = Common::Service< World::Manager::PartyMgr >::ref();
auto& server = Common::Service< World::WorldServer >::ref();
auto& fcMgr = Common::Service< World::Manager::FreeCompanyMgr >::ref();
auto pZone = teriMgr.getTerritoryByGuId( player.getTerritoryId() );
if( !pZone )
@ -423,8 +423,6 @@ void PlayerMgr::onZone( Sapphire::Entity::Player& player )
partyMgr.onMoveZone( player );
}
fcMgr.onFcLogin( player.getCharacterId() );
}
////////// Helper ///////////

View file

@ -55,6 +55,7 @@
#include "Manager/PlayerMgr.h"
#include "Manager/WarpMgr.h"
#include "Manager/ItemMgr.h"
#include "Manager/FreeCompanyMgr.h"
#include "Action/Action.h"
@ -368,10 +369,11 @@ void Sapphire::Network::GameConnection::loginHandler( const Packets::FFXIVARR_PA
{
const auto packet = ZoneChannelPacket< Client::FFXIVIpcLoginHandler >( inPacket );
auto& teriMgr = Common::Service< World::Manager::TerritoryMgr >::ref();
// init handler means this is a login procedure
auto& fcMgr = Common::Service< World::Manager::FreeCompanyMgr >::ref();
player.setIsLogin( true );
player.setConnected( true );
teriMgr.joinWorld( player );
fcMgr.onFcLogin( player.getCharacterId() );
}
void Sapphire::Network::GameConnection::syncHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player )