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

Some minor refactorings I came across while working on events.

This commit is contained in:
Mordred 2023-02-22 14:55:59 +01:00
parent d34bddc6ae
commit c647cc2511
6 changed files with 23 additions and 14 deletions

View file

@ -171,6 +171,8 @@ void PartyMgr::onDisband( Entity::Player& disbandingPlayer )
void PartyMgr::onMoveZone( Sapphire::Entity::Player &movingPlayer ) void PartyMgr::onMoveZone( Sapphire::Entity::Player &movingPlayer )
{ {
if( movingPlayer.getPartyId() == 0 )
return;
auto party = getParty( movingPlayer.getPartyId() ); auto party = getParty( movingPlayer.getPartyId() );
assert( party ); assert( party );
sendPartyUpdate( *party ); sendPartyUpdate( *party );
@ -178,6 +180,9 @@ void PartyMgr::onMoveZone( Sapphire::Entity::Player &movingPlayer )
void PartyMgr::onMemberDisconnect( Entity::Player& disconnectingPlayer ) void PartyMgr::onMemberDisconnect( Entity::Player& disconnectingPlayer )
{ {
if( disconnectingPlayer.getPartyId() == 0 )
return;
auto& server = Common::Service< World::WorldServer >::ref(); auto& server = Common::Service< World::WorldServer >::ref();
auto party = getParty( disconnectingPlayer.getPartyId() ); auto party = getParty( disconnectingPlayer.getPartyId() );
assert( party ); assert( party );

View file

@ -337,7 +337,7 @@ void PlayerMgr::onClassChanged( Entity::Player& player )
onPlayerHpMpTpChanged( player ); onPlayerHpMpTpChanged( player );
} }
void PlayerMgr::onLogin( Entity::Player& player ) void PlayerMgr::sendLoginMessage( Entity::Player& player )
{ {
auto motd = server().getConfig().motd; auto motd = server().getConfig().motd;
@ -349,15 +349,16 @@ void PlayerMgr::onLogin( Entity::Player& player )
} }
} }
void PlayerMgr::onLogin( Entity::Player &player )
{
}
void PlayerMgr::onLogout( Entity::Player &player ) void PlayerMgr::onLogout( Entity::Player &player )
{ {
auto& partyMgr = Common::Service< World::Manager::PartyMgr >::ref(); auto& partyMgr = Common::Service< World::Manager::PartyMgr >::ref();
auto& fcMgr = Common::Service< World::Manager::FreeCompanyMgr >::ref();
// send updates to mgrs // send updates to mgrs
if( player.getPartyId() != 0 ) partyMgr.onMemberDisconnect( player );
partyMgr.onMemberDisconnect( player );
fcMgr.onFcLogout( player.getCharacterId() );
} }
void PlayerMgr::onDeath( Entity::Player& player ) void PlayerMgr::onDeath( Entity::Player& player )
@ -457,11 +458,6 @@ void PlayerMgr::onMoveZone( Sapphire::Entity::Player& player )
onGrandCompanyChanged( player ); onGrandCompanyChanged( player );
} }
if( player.getPartyId() != 0 )
{
partyMgr.onMoveZone( player );
}
} }
void PlayerMgr::onUpdate( Entity::Player& player, uint64_t tickCount ) void PlayerMgr::onUpdate( Entity::Player& player, uint64_t tickCount )

View file

@ -39,6 +39,8 @@ namespace Sapphire::World::Manager
void onHateListChanged( Sapphire::Entity::Player& player ); void onHateListChanged( Sapphire::Entity::Player& player );
void sendLoginMessage( Sapphire::Entity::Player& player );
void onLogin( Sapphire::Entity::Player& player ); void onLogin( Sapphire::Entity::Player& player );
void onLogout( Sapphire::Entity::Player& player ); void onLogout( Sapphire::Entity::Player& player );
void onDeath( Sapphire::Entity::Player& player ); void onDeath( Sapphire::Entity::Player& player );

View file

@ -16,6 +16,7 @@
#include "HousingMgr.h" #include "HousingMgr.h"
#include "WarpMgr.h" #include "WarpMgr.h"
#include "PlayerMgr.h" #include "PlayerMgr.h"
#include "PartyMgr.h"
#include "Linkshell/Linkshell.h" #include "Linkshell/Linkshell.h"
#include "Territory/Land.h" #include "Territory/Land.h"
@ -589,6 +590,7 @@ TerritoryMgr::InstanceIdList TerritoryMgr::getInstanceContentIdList( uint16_t in
bool TerritoryMgr::movePlayer( Sapphire::Territory& teri, Entity::Player& player ) bool TerritoryMgr::movePlayer( Sapphire::Territory& teri, Entity::Player& player )
{ {
auto& playerMgr = Common::Service< Manager::PlayerMgr >::ref(); auto& playerMgr = Common::Service< Manager::PlayerMgr >::ref();
auto& partyMgr = Common::Service< Manager::PartyMgr >::ref();
auto pPrevZone = getTerritoryByGuId( player.getTerritoryId() ); auto pPrevZone = getTerritoryByGuId( player.getTerritoryId() );
@ -614,6 +616,7 @@ bool TerritoryMgr::movePlayer( Sapphire::Territory& teri, Entity::Player& player
teri.onBeforePlayerZoneIn( player ); teri.onBeforePlayerZoneIn( player );
playerMgr.onMoveZone( player ); playerMgr.onMoveZone( player );
partyMgr.onMoveZone( player );
return true; return true;
} }

View file

@ -347,9 +347,11 @@ void Sapphire::Network::GameConnection::loginHandler( const Packets::FFXIVARR_PA
const auto packet = ZoneChannelPacket< Client::FFXIVIpcLoginHandler >( inPacket ); const auto packet = ZoneChannelPacket< Client::FFXIVIpcLoginHandler >( inPacket );
auto& teriMgr = Common::Service< World::Manager::TerritoryMgr >::ref(); auto& teriMgr = Common::Service< World::Manager::TerritoryMgr >::ref();
auto& fcMgr = Common::Service< World::Manager::FreeCompanyMgr >::ref(); auto& fcMgr = Common::Service< World::Manager::FreeCompanyMgr >::ref();
auto& playerMgr = Common::Service< World::Manager::PlayerMgr >::ref();
player.setIsLogin( true ); player.setIsLogin( true );
player.setConnected( true ); player.setConnected( true );
teriMgr.joinWorld( player ); teriMgr.joinWorld( player );
playerMgr.onLogin( player );
fcMgr.onFcLogin( player.getCharacterId() ); fcMgr.onFcLogin( player.getCharacterId() );
} }
@ -382,8 +384,7 @@ void Sapphire::Network::GameConnection::setLanguageHandler( const Packets::FFXIV
// if this is a login event // if this is a login event
if( player.isLogin() ) if( player.isLogin() )
{ {
// fire the onLogin Event playerMgr.sendLoginMessage( player );
playerMgr.onLogin( player );
} }
// spawn the player for himself // spawn the player for himself

View file

@ -9,6 +9,7 @@
#include "Actor/Player.h" #include "Actor/Player.h"
#include "WorldServer.h" #include "WorldServer.h"
#include "Manager/PlayerMgr.h" #include "Manager/PlayerMgr.h"
#include "Manager/FreeCompanyMgr.h"
#include "Session.h" #include "Session.h"
@ -78,8 +79,9 @@ void Sapphire::World::Session::close()
if( m_pPlayer ) if( m_pPlayer )
{ {
auto& playerMgr = Common::Service< World::Manager::PlayerMgr >::ref(); auto& playerMgr = Common::Service< World::Manager::PlayerMgr >::ref();
auto& fcMgr = Common::Service< World::Manager::FreeCompanyMgr >::ref();
playerMgr.onLogout( *m_pPlayer ); playerMgr.onLogout( *m_pPlayer );
fcMgr.onFcLogout( m_pPlayer->getCharacterId() );
m_pPlayer->unload(); m_pPlayer->unload();
} }
} }