1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-05-10 12:47:44 +00:00

Renamed the Util::Player namespace to Util::Packet. More cleanups and refactorings.

This commit is contained in:
Mordred 2023-03-07 10:25:55 +01:00
parent 819f2842b0
commit ca002dadd1
11 changed files with 181 additions and 169 deletions

View file

@ -23,7 +23,7 @@
#include "Network/PacketWrappers/ActorControlPacket.h" #include "Network/PacketWrappers/ActorControlPacket.h"
#include "Network/PacketWrappers/ActorControlSelfPacket.h" #include "Network/PacketWrappers/ActorControlSelfPacket.h"
#include "Network/PacketWrappers/ActorControlTargetPacket.h" #include "Network/PacketWrappers/ActorControlTargetPacket.h"
#include "Network/Util/PlayerUtil.h" #include "Network/Util/PacketUtil.h"
#include <Logging/Logger.h> #include <Logging/Logger.h>
@ -518,7 +518,7 @@ void Action::Action::buildEffects()
return; return;
} }
Network::Util::Player::sendHudParam( *m_pSource->getAsPlayer() ); Network::Util::Packet::sendHudParam( *m_pSource->getAsPlayer() );
if( !hasLutEntry || m_hitActors.empty() ) if( !hasLutEntry || m_hitActors.empty() )
{ {

View file

@ -18,7 +18,7 @@
#include "Network/PacketWrappers/ActorControlTargetPacket.h" #include "Network/PacketWrappers/ActorControlTargetPacket.h"
#include "Network/PacketWrappers/NpcSpawnPacket.h" #include "Network/PacketWrappers/NpcSpawnPacket.h"
#include "Network/PacketWrappers/MoveActorPacket.h" #include "Network/PacketWrappers/MoveActorPacket.h"
#include "Network/Util/PlayerUtil.h" #include "Network/Util/PacketUtil.h"
#include "Navi/NaviProvider.h" #include "Navi/NaviProvider.h"
@ -542,7 +542,7 @@ void Sapphire::Entity::BNpc::hateListUpdate( const Sapphire::Entity::CharaPtr& p
if( pChara->isPlayer() ) if( pChara->isPlayer() )
{ {
auto pPlayer = pChara->getAsPlayer(); auto pPlayer = pChara->getAsPlayer();
Network::Util::Player::sendHateList( *pPlayer ); Network::Util::Packet::sendHateList( *pPlayer );
} }
} }
} }

View file

@ -35,7 +35,7 @@
#include "Network/PacketWrappers/EffectPacket1.h" #include "Network/PacketWrappers/EffectPacket1.h"
#include "Network/PacketWrappers/InitZonePacket.h" #include "Network/PacketWrappers/InitZonePacket.h"
#include "Network/Util/PlayerUtil.h" #include "Network/Util/PacketUtil.h"
#include "Action/Action.h" #include "Action/Action.h"
@ -264,7 +264,7 @@ void Player::addOnlineStatus( OnlineStatus status )
setOnlineStatusMask( newFlags ); setOnlineStatusMask( newFlags );
Network::Util::Player::sendOnlineStatus( *this ); Network::Util::Packet::sendOnlineStatus( *this );
} }
void Player::addOnlineStatus( const std::vector< Common::OnlineStatus >& status ) void Player::addOnlineStatus( const std::vector< Common::OnlineStatus >& status )
@ -278,7 +278,7 @@ void Player::addOnlineStatus( const std::vector< Common::OnlineStatus >& status
setOnlineStatusMask( newFlags ); setOnlineStatusMask( newFlags );
Network::Util::Player::sendOnlineStatus( *this ); Network::Util::Packet::sendOnlineStatus( *this );
} }
void Player::removeOnlineStatus( OnlineStatus status ) void Player::removeOnlineStatus( OnlineStatus status )
@ -292,7 +292,7 @@ void Player::removeOnlineStatus( OnlineStatus status )
setOnlineStatusMask( newFlags ); setOnlineStatusMask( newFlags );
setOnlineStatusCustomMask( newFlagsCustom ); setOnlineStatusCustomMask( newFlagsCustom );
Network::Util::Player::sendOnlineStatus( *this ); Network::Util::Packet::sendOnlineStatus( *this );
} }
void Player::removeOnlineStatus( const std::vector< Common::OnlineStatus >& status ) void Player::removeOnlineStatus( const std::vector< Common::OnlineStatus >& status )
@ -309,7 +309,7 @@ void Player::removeOnlineStatus( const std::vector< Common::OnlineStatus >& stat
setOnlineStatusMask( newFlags ); setOnlineStatusMask( newFlags );
setOnlineStatusCustomMask( newFlagsCustom ); setOnlineStatusCustomMask( newFlagsCustom );
Network::Util::Player::sendOnlineStatus( *this ); Network::Util::Packet::sendOnlineStatus( *this );
} }
void Player::calculateStats() void Player::calculateStats()
@ -457,7 +457,7 @@ void Player::registerAetheryte( uint8_t aetheryteId )
Util::valueToFlagByteIndexValue( aetheryteId, value, index ); Util::valueToFlagByteIndexValue( aetheryteId, value, index );
m_aetheryte[ index ] |= value; m_aetheryte[ index ] |= value;
Network::Util::Player::sendActorControlSelf( *this, LearnTeleport, aetheryteId, 1 ); Network::Util::Packet::sendActorControlSelf( *this, LearnTeleport, aetheryteId, 1 );
} }
bool Player::isAetheryteRegistered( uint8_t aetheryteId ) const bool Player::isAetheryteRegistered( uint8_t aetheryteId ) const
@ -560,7 +560,7 @@ void Player::setRewardFlag( Common::UnlockEntry unlockId )
m_unlocks[ index ] |= value; m_unlocks[ index ] |= value;
Network::Util::Player::sendActorControlSelf( *this, SetRewardFlag, unlock, 1 ); Network::Util::Packet::sendActorControlSelf( *this, SetRewardFlag, unlock, 1 );
} }
void Player::learnSong( uint8_t songId, uint32_t itemId ) void Player::learnSong( uint8_t songId, uint32_t itemId )
@ -571,7 +571,7 @@ void Player::learnSong( uint8_t songId, uint32_t itemId )
m_orchestrion[ index ] |= value; m_orchestrion[ index ] |= value;
Network::Util::Player::sendActorControlSelf( *this, ToggleOrchestrionUnlock, songId, 1, itemId ); Network::Util::Packet::sendActorControlSelf( *this, ToggleOrchestrionUnlock, songId, 1, itemId );
} }
bool Player::hasReward( Common::UnlockEntry unlockId ) const bool Player::hasReward( Common::UnlockEntry unlockId ) const
@ -608,7 +608,7 @@ void Player::gainExp( uint32_t amount )
{ {
setExp( 0 ); setExp( 0 );
if( currentExp != 0 ) if( currentExp != 0 )
Network::Util::Player::sendActorControlSelf( *this, UpdateUiExp, currentClass, 0 ); Network::Util::Packet::sendActorControlSelf( *this, UpdateUiExp, currentClass, 0 );
return; return;
} }
@ -632,8 +632,8 @@ void Player::gainExp( uint32_t amount )
else else
setExp( currentExp + amount ); setExp( currentExp + amount );
Network::Util::Player::sendActorControlSelf( *this, GainExpMsg, currentClass, amount ); Network::Util::Packet::sendActorControlSelf( *this, GainExpMsg, currentClass, amount );
Network::Util::Player::sendActorControlSelf( *this, UpdateUiExp, currentClass, getExp() ); Network::Util::Packet::sendActorControlSelf( *this, UpdateUiExp, currentClass, getExp() );
} }
void Player::levelUp() void Player::levelUp()
@ -642,7 +642,7 @@ void Player::levelUp()
m_mp = getMaxMp(); m_mp = getMaxMp();
setLevel( getLevel() + 1 ); setLevel( getLevel() + 1 );
Network::Util::Player::sendActorControl( getInRangePlayerIds( true ), *this, LevelUpEffect, static_cast< uint8_t >( getClass() ), getLevel(), getLevel() - 1 ); Network::Util::Packet::sendActorControl( getInRangePlayerIds( true ), *this, LevelUpEffect, static_cast< uint8_t >( getClass() ), getLevel(), getLevel() - 1 );
auto& achvMgr = Common::Service< World::Manager::AchievementMgr >::ref(); auto& achvMgr = Common::Service< World::Manager::AchievementMgr >::ref();
achvMgr.progressAchievementByType< Common::Achievement::Type::Classjob >( *this, static_cast< uint32_t >( getClass() ) ); achvMgr.progressAchievementByType< Common::Achievement::Type::Classjob >( *this, static_cast< uint32_t >( getClass() ) );
@ -717,9 +717,9 @@ void Player::setClassJob( Common::ClassJob classJob )
m_tp = 0; m_tp = 0;
Network::Util::Player::sendStatusUpdate( *this ); Network::Util::Packet::sendStatusUpdate( *this );
Network::Util::Player::sendActorControl( getInRangePlayerIds( true ), *this, ClassJobChange, 4 ); Network::Util::Packet::sendActorControl( getInRangePlayerIds( true ), *this, ClassJobChange, 4 );
Network::Util::Player::sendHudParam( *this ); Network::Util::Packet::sendHudParam( *this );
Service< World::Manager::MapMgr >::ref().updateQuests( *this ); Service< World::Manager::MapMgr >::ref().updateQuests( *this );
} }
@ -730,9 +730,9 @@ void Player::setLevel( uint8_t level )
m_classArray[ classJobIndex ] = level; m_classArray[ classJobIndex ] = level;
calculateStats(); calculateStats();
Network::Util::Player::sendBaseParams( *this ); Network::Util::Packet::sendBaseParams( *this );
Network::Util::Player::sendHudParam( *this ); Network::Util::Packet::sendHudParam( *this );
Network::Util::Player::sendStatusUpdate( *this ); Network::Util::Packet::sendStatusUpdate( *this );
} }
void Player::setLevelForClass( uint8_t level, Common::ClassJob classjob ) void Player::setLevelForClass( uint8_t level, Common::ClassJob classjob )
@ -745,7 +745,7 @@ void Player::setLevelForClass( uint8_t level, Common::ClassJob classjob )
m_classArray[ classJobIndex ] = level; m_classArray[ classJobIndex ] = level;
Network::Util::Player::sendActorControlSelf( *this, ClassJobUpdate, static_cast< uint8_t >( classjob ), getLevelForClass( classjob ) ); Network::Util::Packet::sendActorControlSelf( *this, ClassJobUpdate, static_cast< uint8_t >( classjob ), getLevelForClass( classjob ) );
auto& achvMgr = Common::Service< World::Manager::AchievementMgr >::ref(); auto& achvMgr = Common::Service< World::Manager::AchievementMgr >::ref();
achvMgr.progressAchievementByType< Common::Achievement::Type::Classjob >( *this, static_cast< uint32_t >( classjob ) ); achvMgr.progressAchievementByType< Common::Achievement::Type::Classjob >( *this, static_cast< uint32_t >( classjob ) );
@ -818,7 +818,7 @@ void Player::despawn( Entity::PlayerPtr pTarget )
Logger::debug( "Despawning {0} for {1}", getName(), pTarget->getName() ); Logger::debug( "Despawning {0} for {1}", getName(), pTarget->getName() );
pPlayer->freePlayerSpawnId( getId() ); pPlayer->freePlayerSpawnId( getId() );
Network::Util::Player::sendActorControlSelf( *this, WarpStart, 4, getId(), 1 ); Network::Util::Packet::sendActorControlSelf( *this, WarpStart, 4, getId(), 1 );
} }
GameObjectPtr Player::lookupTargetById( uint64_t targetId ) GameObjectPtr Player::lookupTargetById( uint64_t targetId )
@ -848,13 +848,13 @@ void Player::setGrandCompany( uint8_t gc )
m_gc = gc; m_gc = gc;
if( m_gcRank[ gc ] == 0 ) if( m_gcRank[ gc ] == 0 )
m_gcRank[ gc ] = 1; m_gcRank[ gc ] = 1;
Network::Util::Player::sendGrandCompany( *this ); Network::Util::Packet::sendGrandCompany( *this );
} }
void Player::setGrandCompanyRankAt( uint8_t index, uint8_t rank ) void Player::setGrandCompanyRankAt( uint8_t index, uint8_t rank )
{ {
m_gcRank[ index ] = rank; m_gcRank[ index ] = rank;
Network::Util::Player::sendGrandCompany( *this ); Network::Util::Packet::sendGrandCompany( *this );
} }
const Player::Condition& Player::getConditions() const const Player::Condition& Player::getConditions() const
@ -882,7 +882,7 @@ void Player::setCondition( Common::PlayerCondition flag )
Util::valueToFlagByteIndexValue( iFlag, value, index ); Util::valueToFlagByteIndexValue( iFlag, value, index );
m_condition[ index ] |= value; m_condition[ index ] |= value;
Network::Util::Player::sendCondition( *this ); Network::Util::Packet::sendCondition( *this );
} }
void Player::setConditions( const std::vector< Common::PlayerCondition >& flags ) void Player::setConditions( const std::vector< Common::PlayerCondition >& flags )
@ -897,7 +897,7 @@ void Player::setConditions( const std::vector< Common::PlayerCondition >& flags
m_condition[ index ] |= value; m_condition[ index ] |= value;
} }
Network::Util::Player::sendCondition( *this ); Network::Util::Packet::sendCondition( *this );
} }
void Player::removeCondition( Common::PlayerCondition flag ) void Player::removeCondition( Common::PlayerCondition flag )
@ -912,7 +912,7 @@ void Player::removeCondition( Common::PlayerCondition flag )
Util::valueToFlagByteIndexValue( iFlag, value, index ); Util::valueToFlagByteIndexValue( iFlag, value, index );
m_condition[ index ] ^= value; m_condition[ index ] ^= value;
Network::Util::Player::sendCondition( *this ); Network::Util::Packet::sendCondition( *this );
} }
void Player::update( uint64_t tickCount ) void Player::update( uint64_t tickCount )
@ -941,7 +941,7 @@ void Player::freePlayerSpawnId( uint32_t actorId )
if( spawnId == m_actorSpawnIndexAllocator.getAllocFailId() ) if( spawnId == m_actorSpawnIndexAllocator.getAllocFailId() )
return; return;
Network::Util::Player::sendDeletePlayer( *this, actorId, spawnId ); Network::Util::Packet::sendDeletePlayer( *this, actorId, spawnId );
} }
Player::AetheryteList& Player::getAetheryteArray() Player::AetheryteList& Player::getAetheryteArray()
@ -953,7 +953,7 @@ Player::AetheryteList& Player::getAetheryteArray()
void Player::setHomepoint( uint8_t aetheryteId ) void Player::setHomepoint( uint8_t aetheryteId )
{ {
m_homePoint = aetheryteId; m_homePoint = aetheryteId;
Network::Util::Player::sendActorControlSelf( *this, SetHomepoint, aetheryteId ); Network::Util::Packet::sendActorControlSelf( *this, SetHomepoint, aetheryteId );
} }
/*! get homepoint */ /*! get homepoint */
@ -1002,7 +1002,7 @@ void Player::unlockMount( uint32_t mountId )
m_mountGuide[ mount->data().MountOrder / 8 ] |= ( 1 << ( mount->data().MountOrder % 8 ) ); m_mountGuide[ mount->data().MountOrder / 8 ] |= ( 1 << ( mount->data().MountOrder % 8 ) );
Network::Util::Player::sendActorControlSelf( *this, SetMountBitmask, mount->data().MountOrder, 1 ); Network::Util::Packet::sendActorControlSelf( *this, SetMountBitmask, mount->data().MountOrder, 1 );
} }
void Player::unlockCompanion( uint32_t companionId ) void Player::unlockCompanion( uint32_t companionId )
@ -1019,7 +1019,7 @@ void Player::unlockCompanion( uint32_t companionId )
m_minionGuide[ index ] |= value; m_minionGuide[ index ] |= value;
Network::Util::Player::sendActorControlSelf( *this, LearnCompanion, companionId, 1 ); Network::Util::Packet::sendActorControlSelf( *this, LearnCompanion, companionId, 1 );
} }
Player::MinionList& Player::getMinionGuideBitmask() Player::MinionList& Player::getMinionGuideBitmask()
@ -1109,7 +1109,7 @@ void Player::hateListAdd( const BNpc& bnpc )
uint8_t hateId = m_freeHateSlotQueue.front(); uint8_t hateId = m_freeHateSlotQueue.front();
m_freeHateSlotQueue.pop(); m_freeHateSlotQueue.pop();
m_actorIdTohateSlotMap[ bnpc.getId() ] = hateId; m_actorIdTohateSlotMap[ bnpc.getId() ] = hateId;
Network::Util::Player::sendHateList( *this ); Network::Util::Packet::sendHateList( *this );
} }
} }
@ -1124,7 +1124,7 @@ void Player::hateListRemove( const BNpc& bnpc )
uint8_t hateSlot = it->second; uint8_t hateSlot = it->second;
m_freeHateSlotQueue.push( hateSlot ); m_freeHateSlotQueue.push( hateSlot );
m_actorIdTohateSlotMap.erase( it ); m_actorIdTohateSlotMap.erase( it );
Network::Util::Player::sendHateList( *this ); Network::Util::Packet::sendHateList( *this );
return; return;
} }
} }
@ -1144,14 +1144,14 @@ const std::map< uint32_t, uint8_t >& Player::getActorIdToHateSlotMap()
void Player::onMobAggro( const BNpc& bnpc ) void Player::onMobAggro( const BNpc& bnpc )
{ {
hateListAdd( bnpc ); hateListAdd( bnpc );
Network::Util::Player::sendActorControl( *this, SetBattle, 1 ); Network::Util::Packet::sendActorControl( *this, SetBattle, 1 );
} }
void Player::onMobDeaggro( const BNpc& bnpc ) void Player::onMobDeaggro( const BNpc& bnpc )
{ {
hateListRemove( bnpc ); hateListRemove( bnpc );
if( m_actorIdTohateSlotMap.empty() ) if( m_actorIdTohateSlotMap.empty() )
Network::Util::Player::sendActorControl( *this, SetBattle, 0 ); Network::Util::Packet::sendActorControl( *this, SetBattle, 0 );
} }
bool Player::isLogin() const bool Player::isLogin() const
@ -1193,7 +1193,7 @@ void Player::setTitle( uint16_t titleId )
return; return;
m_activeTitle = titleId; m_activeTitle = titleId;
Network::Util::Player::sendActorControl( getInRangePlayerIds( true ), *this, SetTitle, titleId ); Network::Util::Packet::sendActorControl( getInRangePlayerIds( true ), *this, SetTitle, titleId );
} }
const Player::AchievementData& Player::getAchievementData() const const Player::AchievementData& Player::getAchievementData() const
@ -1209,7 +1209,7 @@ void Player::setAchievementData( const Player::AchievementData& achievementData
void Player::setMaxGearSets( uint8_t amount ) void Player::setMaxGearSets( uint8_t amount )
{ {
m_equippedMannequin = amount; m_equippedMannequin = amount;
Network::Util::Player::sendActorControlSelf( *this, SetMaxGearSets, m_equippedMannequin ); Network::Util::Packet::sendActorControlSelf( *this, SetMaxGearSets, m_equippedMannequin );
} }
void Player::addGearSet() void Player::addGearSet()
@ -1234,7 +1234,7 @@ uint8_t Player::getMaxGearSets() const
void Player::setConfigFlags( uint16_t state ) void Player::setConfigFlags( uint16_t state )
{ {
m_configFlags = static_cast< uint8_t >( state ); m_configFlags = static_cast< uint8_t >( state );
Network::Util::Player::sendConfigFlags( *this ); Network::Util::Packet::sendConfigFlags( *this );
} }
uint8_t Player::getConfigFlags() const uint8_t Player::getConfigFlags() const
@ -1245,7 +1245,7 @@ uint8_t Player::getConfigFlags() const
void Player::setMount( uint32_t mountId ) void Player::setMount( uint32_t mountId )
{ {
m_mount = mountId; m_mount = mountId;
Network::Util::Player::sendMount( *this ); Network::Util::Packet::sendMount( *this );
} }
void Player::setCompanion( uint8_t id ) void Player::setCompanion( uint8_t id )
@ -1258,7 +1258,7 @@ void Player::setCompanion( uint8_t id )
m_companionId = id; m_companionId = id;
Network::Util::Player::sendActorControl( getInRangePlayerIds( true ), *this, ToggleCompanion, id ); Network::Util::Packet::sendActorControl( getInRangePlayerIds( true ), *this, ToggleCompanion, id );
} }
uint8_t Player::getCurrentCompanion() const uint8_t Player::getCurrentCompanion() const
@ -1418,7 +1418,7 @@ void Player::teleportQuery( uint16_t aetheryteId )
cost = std::min< uint16_t >( 999, cost ); cost = std::min< uint16_t >( 999, cost );
bool insufficientGil = getCurrency( Common::CurrencyType::Gil ) < cost; bool insufficientGil = getCurrency( Common::CurrencyType::Gil ) < cost;
Network::Util::Player::sendActorControlSelf( *this, OnExecuteTelepo, insufficientGil ? 2 : 0, aetheryteId ); Network::Util::Packet::sendActorControlSelf( *this, OnExecuteTelepo, insufficientGil ? 2 : 0, aetheryteId );
if( !insufficientGil ) if( !insufficientGil )
{ {
@ -1493,7 +1493,7 @@ void Player::dyeItemFromDyeingInfo()
insertInventoryItem( static_cast< Sapphire::Common::InventoryType >( itemToDyeContainer ), static_cast< uint16_t >( itemToDyeSlot ), itemToDye ); insertInventoryItem( static_cast< Sapphire::Common::InventoryType >( itemToDyeContainer ), static_cast< uint16_t >( itemToDyeSlot ), itemToDye );
writeItem( itemToDye ); writeItem( itemToDye );
Network::Util::Player::sendActorControlSelf( *this, DyeMsg, itemToDye->getId(), shouldDye, invalidateGearSet ); Network::Util::Packet::sendActorControlSelf( *this, DyeMsg, itemToDye->getId(), shouldDye, invalidateGearSet );
} }
void Player::setGlamouringInfo( uint32_t itemToGlamourContainer, uint32_t itemToGlamourSlot, uint32_t glamourBagContainer, uint32_t glamourBagSlot, bool shouldGlamour ) void Player::setGlamouringInfo( uint32_t itemToGlamourContainer, uint32_t itemToGlamourSlot, uint32_t glamourBagContainer, uint32_t glamourBagSlot, bool shouldGlamour )
@ -1515,7 +1515,7 @@ void Player::glamourItemFromGlamouringInfo()
uint32_t glamourBagSlot = m_glamouringInfo.glamourBagSlot; uint32_t glamourBagSlot = m_glamouringInfo.glamourBagSlot;
bool shouldGlamour = m_glamouringInfo.shouldGlamour; bool shouldGlamour = m_glamouringInfo.shouldGlamour;
Network::Util::Player::sendCondition( *this ); Network::Util::Packet::sendCondition( *this );
auto itemToGlamour = getItemAt( itemToGlamourContainer, itemToGlamourSlot ); auto itemToGlamour = getItemAt( itemToGlamourContainer, itemToGlamourSlot );
auto glamourToUse = getItemAt( glamourBagContainer, glamourBagSlot ); auto glamourToUse = getItemAt( glamourBagContainer, glamourBagSlot );
@ -1547,9 +1547,9 @@ void Player::glamourItemFromGlamouringInfo()
writeItem( itemToGlamour ); writeItem( itemToGlamour );
if( shouldGlamour ) if( shouldGlamour )
Network::Util::Player::sendActorControlSelf( *this, GlamourCastMsg, itemToGlamour->getId(), glamourToUse->getId(), invalidateGearSet ); Network::Util::Packet::sendActorControlSelf( *this, GlamourCastMsg, itemToGlamour->getId(), glamourToUse->getId(), invalidateGearSet );
else else
Network::Util::Player::sendActorControlSelf( *this, GlamourRemoveMsg, itemToGlamour->getId(), invalidateGearSet ); Network::Util::Packet::sendActorControlSelf( *this, GlamourRemoveMsg, itemToGlamour->getId(), invalidateGearSet );
} }
void Player::resetObjSpawnIndex() void Player::resetObjSpawnIndex()
@ -1565,7 +1565,7 @@ void Player::freeObjSpawnIndexForActorId( uint32_t actorId )
if( spawnId == m_objSpawnIndexAllocator.getAllocFailId() ) if( spawnId == m_objSpawnIndexAllocator.getAllocFailId() )
return; return;
Network::Util::Player::sendDeleteObject( *this, spawnId ); Network::Util::Packet::sendDeleteObject( *this, spawnId );
} }
bool Player::isObjSpawnIndexValid( uint8_t index ) bool Player::isObjSpawnIndexValid( uint8_t index )
@ -1634,7 +1634,7 @@ void Player::updateHuntingLog( uint16_t id )
if( note1->data().Monster == id && logEntry.entries[ i - 1 ][ x ] < note->data().NeededKills[ x ] ) if( note1->data().Monster == id && logEntry.entries[ i - 1 ][ x ] < note->data().NeededKills[ x ] )
{ {
logEntry.entries[ i - 1 ][ x ]++; logEntry.entries[ i - 1 ][ x ]++;
Network::Util::Player::sendActorControlSelf( *this, HuntingLogEntryUpdate, monsterNoteId, x, logEntry.entries[ i - 1 ][ x ] ); Network::Util::Packet::sendActorControlSelf( *this, HuntingLogEntryUpdate, monsterNoteId, x, logEntry.entries[ i - 1 ][ x ] );
logChanged = true; logChanged = true;
sectionChanged = true; sectionChanged = true;
} }
@ -1643,7 +1643,7 @@ void Player::updateHuntingLog( uint16_t id )
} }
if( logChanged && sectionComplete && sectionChanged ) if( logChanged && sectionComplete && sectionChanged )
{ {
Network::Util::Player::sendActorControlSelf( *this, HuntingLogSectionFinish, monsterNoteId, i, 0 ); Network::Util::Packet::sendActorControlSelf( *this, HuntingLogSectionFinish, monsterNoteId, i, 0 );
gainExp( note->data().RewardExp ); gainExp( note->data().RewardExp );
} }
if( !sectionComplete ) if( !sectionComplete )
@ -1653,18 +1653,18 @@ void Player::updateHuntingLog( uint16_t id )
} }
if( logChanged && allSectionsComplete ) if( logChanged && allSectionsComplete )
{ {
Network::Util::Player::sendActorControlSelf( *this, HuntingLogRankFinish, 4 ); Network::Util::Packet::sendActorControlSelf( *this, HuntingLogRankFinish, 4 );
gainExp( rankRewards[ logEntry.rank ] ); gainExp( rankRewards[ logEntry.rank ] );
if( logEntry.rank < 4 ) if( logEntry.rank < 4 )
{ {
logEntry.rank++; logEntry.rank++;
memset( logEntry.entries, 0, 40 ); memset( logEntry.entries, 0, 40 );
Network::Util::Player::sendActorControlSelf( *this, HuntingLogRankUnlock, currentClassId, logEntry.rank + 1, 0 ); Network::Util::Packet::sendActorControlSelf( *this, HuntingLogRankUnlock, currentClassId, logEntry.rank + 1, 0 );
} }
} }
if( logChanged ) if( logChanged )
Network::Util::Player::sendHuntingLog( *this ); Network::Util::Packet::sendHuntingLog( *this );
} }
void Player::setActiveLand( uint8_t land, uint8_t ward ) void Player::setActiveLand( uint8_t land, uint8_t ward )
@ -1727,7 +1727,7 @@ void Player::resetRecastGroups()
m_recast[ i ] = 0.0f; m_recast[ i ] = 0.0f;
m_recastMax[ i ] = 0.0f; m_recastMax[ i ] = 0.0f;
} }
Network::Util::Player::sendRecastGroups( *this ); Network::Util::Packet::sendRecastGroups( *this );
} }
bool Player::checkAction() bool Player::checkAction()
@ -1826,7 +1826,7 @@ void Player::setFalling( bool state, const Common::FFXIVARR_POSITION3& pos, bool
// no mercy on hated players // no mercy on hated players
takeDamage( damage ); takeDamage( damage );
} }
Network::Util::Player::sendActorControl( getInRangePlayerIds( true ), *this, SetFallDamage, damage ); Network::Util::Packet::sendActorControl( getInRangePlayerIds( true ), *this, SetFallDamage, damage );
} }
} }
} }

View file

@ -12,7 +12,9 @@
#include "Manager/PlayerMgr.h" #include "Manager/PlayerMgr.h"
#include "Service.h" #include "Service.h"
#include <Network/PacketWrappers/RestingPacket.h> #include <Network/PacketWrappers/RestingPacket.h>
#include <Network/Util/PacketUtil.h>
using namespace Sapphire;
using namespace Sapphire::Common; using namespace Sapphire::Common;
using namespace Sapphire::Network::Packets; using namespace Sapphire::Network::Packets;
using namespace Sapphire::Network::Packets::WorldPackets::Server; using namespace Sapphire::Network::Packets::WorldPackets::Server;
@ -71,7 +73,7 @@ void Sapphire::Entity::Player::onTick()
bool sendUpdate = performResting(); bool sendUpdate = performResting();
if( sendUpdate ) if( sendUpdate )
server().queueForPlayers( getInRangePlayerIds( true ), std::make_shared< RestingPacket >( *this ) ); Network::Util::Packet::sendRestingUpdate( *this );
} }
bool Sapphire::Entity::Player::performResting() bool Sapphire::Entity::Player::performResting()

View file

@ -18,7 +18,7 @@
#include "Network/PacketWrappers/ActorControlSelfPacket.h" #include "Network/PacketWrappers/ActorControlSelfPacket.h"
#include "Network/PacketWrappers/UpdateInventorySlotPacket.h" #include "Network/PacketWrappers/UpdateInventorySlotPacket.h"
#include <Network/PacketDef/Zone/ServerZoneDef.h> #include <Network/PacketDef/Zone/ServerZoneDef.h>
#include <Network/Util/PlayerUtil.h> #include <Network/Util/PacketUtil.h>
#include "Manager/InventoryMgr.h" #include "Manager/InventoryMgr.h"
#include "Manager/ItemMgr.h" #include "Manager/ItemMgr.h"
@ -225,10 +225,10 @@ void Sapphire::Entity::Player::equipItem( Common::GearSetSlot equipSlotId, Item&
calculateItemLevel(); calculateItemLevel();
if( sendUpdate ) if( sendUpdate )
{ {
Network::Util::Player::sendEquip( *this ); Network::Util::Packet::sendEquip( *this );
Network::Util::Player::sendActorControl( *this, SetItemLevel, getItemLevel() ); Network::Util::Packet::sendActorControl( *this, SetItemLevel, getItemLevel() );
Network::Util::Player::sendBaseParams( *this ); Network::Util::Packet::sendBaseParams( *this );
Network::Util::Player::sendHudParam( *this ); Network::Util::Packet::sendHudParam( *this );
} }
} }
@ -247,10 +247,10 @@ void Sapphire::Entity::Player::unequipItem( Common::GearSetSlot equipSlotId, Ite
if( sendUpdate ) if( sendUpdate )
{ {
Network::Util::Player::sendEquip( *this ); Network::Util::Packet::sendEquip( *this );
Network::Util::Player::sendActorControl( *this, SetItemLevel, getItemLevel() ); Network::Util::Packet::sendActorControl( *this, SetItemLevel, getItemLevel() );
Network::Util::Player::sendBaseParams( *this ); Network::Util::Packet::sendBaseParams( *this );
Network::Util::Player::sendHudParam( *this ); Network::Util::Packet::sendHudParam( *this );
} }
} }

View file

@ -2,7 +2,7 @@
#include <Util/Util.h> #include <Util/Util.h>
#include "AchievementMgr.h" #include "AchievementMgr.h"
#include <Network/Util/PlayerUtil.h> #include <Network/Util/PacketUtil.h>
#include <Network/CommonActorControl.h> #include <Network/CommonActorControl.h>
using namespace Sapphire; using namespace Sapphire;
@ -69,9 +69,9 @@ void AchievementMgr::unlockAchievement( Entity::Player& player, uint32_t achieve
// fire packets // fire packets
player.setAchievementData( achvData ); player.setAchievementData( achvData );
Network::Util::Player::sendAchievementList( player ); Network::Util::Packet::sendAchievementList( player );
Network::Util::Player::sendActorControl( player, AchievementComplete, achievementId ); Network::Util::Packet::sendActorControl( player, AchievementComplete, achievementId );
Network::Util::Player::sendActorControl( player, AchievementObtainMsg, achievementId ); Network::Util::Packet::sendActorControl( player, AchievementObtainMsg, achievementId );
// check and add title to player // check and add title to player
auto achvTitleId = achvExd->data().Title; auto achvTitleId = achvExd->data().Title;

View file

@ -7,8 +7,6 @@
#include <Territory/Land.h> #include <Territory/Land.h>
#include <Manager/TerritoryMgr.h> #include <Manager/TerritoryMgr.h>
#include <Manager/AchievementMgr.h>
#include <Manager/PartyMgr.h>
#include <Manager/HousingMgr.h> #include <Manager/HousingMgr.h>
#include <Manager/QuestMgr.h> #include <Manager/QuestMgr.h>
@ -18,18 +16,8 @@
#include <Database/ZoneDbConnection.h> #include <Database/ZoneDbConnection.h>
#include <Database/DbWorkerPool.h> #include <Database/DbWorkerPool.h>
#include <Network/GameConnection.h>
#include <Network/CommonActorControl.h> #include <Network/CommonActorControl.h>
#include <Network/PacketDef/Zone/ServerZoneDef.h> #include <Network/Util/PacketUtil.h>
#include <Network/PacketWrappers/ActorControlPacket.h>
#include <Network/PacketWrappers/ActorControlSelfPacket.h>
#include <Network/PacketWrappers/ActorControlTargetPacket.h>
#include <Network/PacketWrappers/InitZonePacket.h>
#include <Network/PacketWrappers/PlayerSetupPacket.h>
#include <Network/PacketWrappers/ServerNoticePacket.h>
#include <Network/PacketWrappers/ChatPacket.h>
#include <Network/PacketWrappers/HudParamPacket.h>
#include <Network/Util/PlayerUtil.h>
#include <Actor/Player.h> #include <Actor/Player.h>
#include <Actor/BNpc.h> #include <Actor/BNpc.h>
@ -218,9 +206,7 @@ void PlayerMgr::onMobKill( Entity::Player& player, Entity::BNpc& bnpc )
scriptMgr.onBNpcKill( player, bnpc ); scriptMgr.onBNpcKill( player, bnpc );
if( player.hasReward( Common::UnlockEntry::HuntingLog ) ) if( player.hasReward( Common::UnlockEntry::HuntingLog ) )
{
player.updateHuntingLog( bnpc.getBNpcNameId() ); player.updateHuntingLog( bnpc.getBNpcNameId() );
}
} }
void PlayerMgr::sendLoginMessage( Entity::Player& player ) void PlayerMgr::sendLoginMessage( Entity::Player& player )
@ -262,48 +248,48 @@ void PlayerMgr::onMoveZone( Sapphire::Entity::Player& player )
} }
auto& teri = *pZone; auto& teri = *pZone;
Network::Util::Player::sendLogin( player ); Network::Util::Packet::sendLogin( player );
player.sendInventory(); player.sendInventory();
if( player.isLogin() ) if( player.isLogin() )
{ {
Network::Util::Player::sendActorControlSelf( player, SetConfigFlags, player.getConfigFlags(), 1 ); Network::Util::Packet::sendActorControlSelf( player, SetConfigFlags, player.getConfigFlags(), 1 );
Network::Util::Player::sendActorControlSelf( player, SetMaxGearSets, player.getMaxGearSets() ); Network::Util::Packet::sendActorControlSelf( player, SetMaxGearSets, player.getMaxGearSets() );
} }
// set flags, will be reset automatically by zoning ( only on client side though ) // set flags, will be reset automatically by zoning ( only on client side though )
//setStateFlag( PlayerStateFlag::BetweenAreas ); //setStateFlag( PlayerStateFlag::BetweenAreas );
//setStateFlag( PlayerStateFlag::BetweenAreas1 ); //setStateFlag( PlayerStateFlag::BetweenAreas1 );
Network::Util::Player::sendHuntingLog( player ); Network::Util::Packet::sendHuntingLog( player );
if( player.isLogin() ) if( player.isLogin() )
Network::Util::Player::sendPlayerSetup( player ); Network::Util::Packet::sendPlayerSetup( player );
Network::Util::Player::sendRecastGroups( player ); Network::Util::Packet::sendRecastGroups( player );
Network::Util::Player::sendBaseParams( player ); Network::Util::Packet::sendBaseParams( player );
Network::Util::Player::sendActorControl( player, SetItemLevel, player.getItemLevel() ); Network::Util::Packet::sendActorControl( player, SetItemLevel, player.getItemLevel() );
if( player.isLogin() ) if( player.isLogin() )
{ {
Network::Util::Player::sendChangeClass( player ); Network::Util::Packet::sendChangeClass( player );
Network::Util::Player::sendActorControl( player, 0x112, 0x24 ); // unknown Network::Util::Packet::sendActorControl( player, 0x112, 0x24 ); // unknown
Network::Util::Player::sendContentAttainFlags( player ); Network::Util::Packet::sendContentAttainFlags( player );
player.clearSoldItems(); player.clearSoldItems();
} }
housingMgr.sendLandFlags( player ); housingMgr.sendLandFlags( player );
Network::Util::Player::sendInitZone( player ); Network::Util::Packet::sendInitZone( player );
if( player.isLogin() ) if( player.isLogin() )
{ {
Network::Util::Player::sendDailyQuests( player ); Network::Util::Packet::sendDailyQuests( player );
Network::Util::Player::sendQuestRepeatFlags( player ); Network::Util::Packet::sendQuestRepeatFlags( player );
auto &questMgr = Common::Service< World::Manager::QuestMgr >::ref(); auto &questMgr = Common::Service< World::Manager::QuestMgr >::ref();
questMgr.sendQuestsInfo( player ); questMgr.sendQuestsInfo( player );
Network::Util::Player::sendGrandCompany( player ); Network::Util::Packet::sendGrandCompany( player );
} }
teri.onPlayerZoneIn( player ); teri.onPlayerZoneIn( player );
@ -357,22 +343,21 @@ void PlayerMgr::onUpdate( Entity::Player& player, uint64_t tickCount )
void PlayerMgr::sendServerNotice( Entity::Player& player, const std::string& message ) //Purple Text void PlayerMgr::sendServerNotice( Entity::Player& player, const std::string& message ) //Purple Text
{ {
server().queueForPlayer( player.getCharacterId(), std::make_shared< ServerNoticePacket >( player.getId(), message ) ); Network::Util::Packet::sendServerNotice( player, message );
} }
void PlayerMgr::sendUrgent( Entity::Player& player, const std::string& message ) //Red Text void PlayerMgr::sendUrgent( Entity::Player& player, const std::string& message ) //Red Text
{ {
server().queueForPlayer( player.getCharacterId(), std::make_shared< ChatPacket >( player, Common::ChatType::ServerUrgent, message ) ); Network::Util::Packet::sendChat( player, Common::ChatType::ServerUrgent, message );
} }
void PlayerMgr::sendDebug( Entity::Player& player, const std::string& message ) //Grey Text void PlayerMgr::sendDebug( Entity::Player& player, const std::string& message ) //Grey Text
{ {
server().queueForPlayer( player.getCharacterId(), std::make_shared< ChatPacket >( player, Common::ChatType::SystemMessage, message ) ); Network::Util::Packet::sendChat( player, Common::ChatType::SystemMessage, message );
} }
void PlayerMgr::sendLogMessage( Entity::Player& player, uint32_t messageId, uint32_t param2, uint32_t param3, void PlayerMgr::sendLogMessage( Entity::Player& player, uint32_t messageId, uint32_t param2, uint32_t param3,
uint32_t param4, uint32_t param5, uint32_t param6 ) uint32_t param4, uint32_t param5, uint32_t param6 )
{ {
server().queueForPlayer( player.getCharacterId(), makeActorControlTarget( player.getId(), ActorControlType::LogMsg, messageId, Network::Util::Packet::sendActorControlTarget( player, LogMsg, messageId, param2, param3, param4, param5, param6 );
param2, param3, param4, param5, param6 ) );
} }

View file

@ -17,7 +17,7 @@
#include "Network/PacketWrappers/ActorControlPacket.h" #include "Network/PacketWrappers/ActorControlPacket.h"
#include "Network/PacketWrappers/ActorControlTargetPacket.h" #include "Network/PacketWrappers/ActorControlTargetPacket.h"
#include "Network/PacketWrappers/MoveActorPacket.h" #include "Network/PacketWrappers/MoveActorPacket.h"
#include "Network/Util/PlayerUtil.h" #include "Network/Util/PacketUtil.h"
#include "Action/Action.h" #include "Action/Action.h"
@ -388,15 +388,9 @@ void examineHandler( Sapphire::Entity::Player& player, uint32_t targetId )
return; return;
if( pPlayer->isActingAsGm() || pPlayer->getTerritoryTypeId() != player.getTerritoryTypeId() ) if( pPlayer->isActingAsGm() || pPlayer->getTerritoryTypeId() != player.getTerritoryTypeId() )
{ Network::Util::Packet::sendActorControl( player, ExamineError );
server().queueForPlayer( player.getCharacterId(), makeActorControl( player.getId(), ActorControlType::ExamineError ) );
}
else else
{
server().queueForPlayer( player.getCharacterId(), std::make_shared< InspectPacket >( player, pPlayer ) ); server().queueForPlayer( player.getCharacterId(), std::make_shared< InspectPacket >( player, pPlayer ) );
}
} }
void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player )
@ -424,7 +418,7 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
player.setStance( Stance::Passive ); player.setStance( Stance::Passive );
player.setAutoattack( false ); player.setAutoattack( false );
} }
server().queueForPlayers( player.getInRangePlayerIds(), makeActorControl( player.getId(), 0, data.Arg0, 1 ) ); Network::Util::Packet::sendActorControl( player.getInRangePlayerIds(), player, ToggleWeapon, data.Arg0, 1 );
break; break;
} }
case PacketCommand::AUTO_ATTACK: // Toggle auto-attack case PacketCommand::AUTO_ATTACK: // Toggle auto-attack
@ -437,7 +431,7 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
else else
player.setAutoattack( false ); player.setAutoattack( false );
server().queueForPlayers( player.getInRangePlayerIds(), makeActorControl( player.getId(), 1, data.Arg0, 1 ) ); Network::Util::Packet::sendActorControl( player.getInRangePlayerIds(), player, AutoAttack, data.Arg0, 1 );
break; break;
} }
@ -494,7 +488,7 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
} }
case PacketCommand::TITLE_LIST: // Get title list case PacketCommand::TITLE_LIST: // Get title list
{ {
Network::Util::Player::sendTitleList( player ); Network::Util::Packet::sendTitleList( player );
break; break;
} }
case PacketCommand::SET_HOWTO: // Update howtos seen case PacketCommand::SET_HOWTO: // Update howtos seen
@ -504,7 +498,7 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
} }
case PacketCommand::SET_CUTSCENE: case PacketCommand::SET_CUTSCENE:
{ {
server().queueForPlayer( player.getCharacterId(), makeActorControl( player.getId(), ActorControlType::SetCutsceneFlag, data.Arg0, 1 ) ); Network::Util::Packet::sendActorControl( player, SetCutsceneFlag, data.Arg0, 1 );
break; break;
} }
case PacketCommand::EMOTE: // emote case PacketCommand::EMOTE: // emote
@ -519,8 +513,7 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
if( !emoteData ) if( !emoteData )
return; return;
server().queueForPlayers( player.getInRangePlayerIds(), Network::Util::Packet::sendActorControlTarget( player.getInRangePlayerIds(), player, Emote, emoteId, 0, isSilent ? 1 : 0, 0, targetId );
makeActorControlTarget( player.getId(), ActorControlType::Emote, emoteId, 0, isSilent ? 1 : 0, 0, targetId ) );
bool isPersistent = emoteData->data().Mode != 0; bool isPersistent = emoteData->data().Mode != 0;
@ -531,9 +524,8 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
player.setPersistentEmote( emoteData->data().Mode ); player.setPersistentEmote( emoteData->data().Mode );
player.setStatus( ActorStatus::EmoteMode ); player.setStatus( ActorStatus::EmoteMode );
server().queueForPlayers( player.getInRangePlayerIds( true ), makeActorControl( player.getId(), ActorControlType::SetStatus, Network::Util::Packet::sendActorControl( player.getInRangePlayerIds( true ), player, SetStatus, static_cast< uint8_t >( ActorStatus::EmoteMode ),
static_cast< uint8_t >( ActorStatus::EmoteMode ), emoteData->data().IsEndEmoteMode ? 1 : 0 );
emoteData->data().IsEndEmoteMode ? 1 : 0 ) );
} }
if( emoteData->data().IsAvailableWhenDrawn ) if( emoteData->data().IsAvailableWhenDrawn )
@ -545,7 +537,7 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
} }
case PacketCommand::EMOTE_CANCEL: // emote case PacketCommand::EMOTE_CANCEL: // emote
{ {
server().queueForPlayers( player.getInRangePlayerIds(), makeActorControl( player.getId(), ActorControlType::EmoteInterrupt ) ); Network::Util::Packet::sendActorControl( player.getInRangePlayerIds(), player, EmoteModeInterrupt );
break; break;
} }
case PacketCommand::EMOTE_MODE_CANCEL: case PacketCommand::EMOTE_MODE_CANCEL:
@ -556,8 +548,9 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
player.setStatus( ActorStatus::Idle ); player.setStatus( ActorStatus::Idle );
server().queueForPlayers( player.getInRangePlayerIds(), std::make_shared< MoveActorPacket >( player, player.getRot(), 2, 0, 0, 0x5A / 4 ) ); server().queueForPlayers( player.getInRangePlayerIds(), std::make_shared< MoveActorPacket >( player, player.getRot(), 2, 0, 0, 0x5A / 4 ) );
server().queueForPlayers( player.getInRangePlayerIds(), makeActorControl( player.getId(), ActorControlType::EmoteModeInterrupt ) );
server().queueForPlayers( player.getInRangePlayerIds(), makeActorControl( player.getId(), SetStatus, static_cast< uint8_t >( ActorStatus::Idle ) ) ); Network::Util::Packet::sendActorControl( player.getInRangePlayerIds(), player, EmoteModeInterrupt );
Network::Util::Packet::sendActorControl( player.getInRangePlayerIds(), player, SetStatus, static_cast< uint8_t >( ActorStatus::Idle ) );
} }
break; break;
} }
@ -565,7 +558,7 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
case PacketCommand::POSE_EMOTE_WORK: // reapply pose case PacketCommand::POSE_EMOTE_WORK: // reapply pose
{ {
player.setPose( static_cast< uint8_t >( data.Arg1 ) ); player.setPose( static_cast< uint8_t >( data.Arg1 ) );
server().queueForPlayers( player.getInRangePlayerIds( true ), makeActorControl( player.getId(), SetPose, data.Arg0, data.Arg1 ) ); Network::Util::Packet::sendActorControl( player.getInRangePlayerIds( true ), player, SetPose, data.Arg0, data.Arg1 );
break; break;
} }
case PacketCommand::POSE_EMOTE_CANCEL: // cancel pose case PacketCommand::POSE_EMOTE_CANCEL: // cancel pose
@ -604,12 +597,12 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
auto achievementId = data.Arg0; auto achievementId = data.Arg0;
auto& achvMgr = Common::Service< AchievementMgr >::ref(); auto& achvMgr = Common::Service< AchievementMgr >::ref();
auto achvProgress = achvMgr.getAchievementDataById( player, achievementId ); auto achvProgress = achvMgr.getAchievementDataById( player, achievementId );
Network::Util::Player::sendActorControl( player, AchievementSetRate, achievementId, achvProgress.first, achvProgress.second ); Network::Util::Packet::sendActorControl( player, AchievementSetRate, achievementId, achvProgress.first, achvProgress.second );
break; break;
} }
case PacketCommand::ACHIEVEMENT_REQUEST: case PacketCommand::ACHIEVEMENT_REQUEST:
{ {
Network::Util::Player::sendAchievementList( player ); Network::Util::Packet::sendAchievementList( player );
break; break;
} }
case PacketCommand::TELEPO_INQUIRY: // Teleport case PacketCommand::TELEPO_INQUIRY: // Teleport
@ -670,7 +663,7 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
player.setActiveLand( static_cast< uint8_t >( data.Arg0 ), hZone->getWardNum() ); player.setActiveLand( static_cast< uint8_t >( data.Arg0 ), hZone->getWardNum() );
server().queueForPlayer( player.getCharacterId(), makeActorControl( player.getId(), ShowBuildPresetUI, data.Arg0 ) ); Network::Util::Packet::sendActorControl( player, ShowBuildPresetUI, data.Arg0 );
break; break;
} }
case PacketCommand::HOUSING_AUCTION_INFO: case PacketCommand::HOUSING_AUCTION_INFO:
@ -748,8 +741,7 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
uint8_t ward = ( data.Arg1 >> 16 ) & 0xFF; uint8_t ward = ( data.Arg1 >> 16 ) & 0xFF;
uint8_t plot = ( data.Arg1 & 0xFF ); uint8_t plot = ( data.Arg1 & 0xFF );
server().queueForPlayer( player.getCharacterId(), makeActorControl( player.getId(), ShowHousingItemUI, 0, plot ) ); Network::Util::Packet::sendActorControl( player, ShowHousingItemUI, 0, plot );
//TODO: show item housing container //TODO: show item housing container
break; break;

View file

@ -29,6 +29,7 @@
#include "Network/PacketWrappers/ActorControlSelfPacket.h" #include "Network/PacketWrappers/ActorControlSelfPacket.h"
#include "Network/PacketWrappers/ActorControlTargetPacket.h" #include "Network/PacketWrappers/ActorControlTargetPacket.h"
#include "Network/PacketWrappers/UpdateInventorySlotPacket.h" #include "Network/PacketWrappers/UpdateInventorySlotPacket.h"
#include "Network/Util/PacketUtil.h"
#include "Manager/DebugCommandMgr.h" #include "Manager/DebugCommandMgr.h"
#include "Manager/MarketMgr.h" #include "Manager/MarketMgr.h"
@ -83,8 +84,7 @@ void Sapphire::Network::GameConnection::setProfileHandler( const Packets::FFXIVA
strcpy( searchInfoPacket->data().SearchComment, player.getSearchMessage() ); strcpy( searchInfoPacket->data().SearchComment, player.getSearchMessage() );
queueOutPacket( searchInfoPacket ); queueOutPacket( searchInfoPacket );
server().queueForPlayers( player.getInRangePlayerIds( true ), makeActorControl( player.getId(), SetStatusIcon, Network::Util::Packet::sendActorControl( player.getInRangePlayerIds( true ), player, SetStatusIcon, static_cast< uint8_t >( player.getOnlineStatus() ) );
static_cast< uint8_t >( player.getOnlineStatus() ) ) );
} }
void Sapphire::Network::GameConnection::getProfileHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) void Sapphire::Network::GameConnection::getProfileHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player )
@ -236,7 +236,7 @@ void Sapphire::Network::GameConnection::moveHandler( const Packets::FFXIVARR_PAC
unknownRotation = 0x7F; unknownRotation = 0x7F;
} }
uint64_t currentTime = Util::getTimeMs(); uint64_t currentTime = Common::Util::getTimeMs();
player.m_lastMoveTime = currentTime; player.m_lastMoveTime = currentTime;
player.m_lastMoveflag = animationType; player.m_lastMoveflag = animationType;

View file

@ -1,4 +1,4 @@
#include "PlayerUtil.h" #include "PacketUtil.h"
#include <Exd/ExdData.h> #include <Exd/ExdData.h>
@ -18,23 +18,25 @@
#include <Network/PacketWrappers/RestingPacket.h> #include <Network/PacketWrappers/RestingPacket.h>
#include <Network/PacketWrappers/PlayerSetupPacket.h> #include <Network/PacketWrappers/PlayerSetupPacket.h>
#include <Network/PacketWrappers/InitZonePacket.h> #include <Network/PacketWrappers/InitZonePacket.h>
#include <Network/PacketWrappers/ServerNoticePacket.h>
#include <Network/PacketWrappers/ChatPacket.h>
using namespace Sapphire; using namespace Sapphire;
using namespace Sapphire::World::Manager; using namespace Sapphire::World::Manager;
using namespace Sapphire::Network; using namespace Sapphire::Network;
using namespace Sapphire::Network::Util::Player; using namespace Sapphire::Network::Util::Packet;
using namespace Sapphire::Network::Packets; using namespace Sapphire::Network::Packets;
using namespace Sapphire::Network::Packets::WorldPackets::Server; using namespace Sapphire::Network::Packets::WorldPackets::Server;
using namespace Sapphire::Network::ActorControl; using namespace Sapphire::Network::ActorControl;
void Util::Player::sendConfigFlags( Entity::Player& player ) void Util::Packet::sendConfigFlags( Entity::Player& player )
{ {
auto paramPacket = makeZonePacket< FFXIVIpcConfig >( player.getId() ); auto paramPacket = makeZonePacket< FFXIVIpcConfig >( player.getId() );
paramPacket->data().flag = player.getConfigFlags(); paramPacket->data().flag = player.getConfigFlags();
server().queueForPlayers( player.getInRangePlayerIds( true ), paramPacket ); server().queueForPlayers( player.getInRangePlayerIds( true ), paramPacket );
} }
void Util::Player::sendOnlineStatus( Entity::Player& player ) void Util::Packet::sendOnlineStatus( Entity::Player& player )
{ {
auto statusPacket = makeZonePacket< FFXIVIpcSetOnlineStatus >( player.getId() ); auto statusPacket = makeZonePacket< FFXIVIpcSetOnlineStatus >( player.getId() );
statusPacket->data().onlineStatusFlags = player.getFullOnlineStatusMask(); statusPacket->data().onlineStatusFlags = player.getFullOnlineStatusMask();
@ -44,7 +46,7 @@ void Util::Player::sendOnlineStatus( Entity::Player& player )
makeActorControl( player.getId(), SetStatusIcon, static_cast< uint8_t >( player.getOnlineStatus() ) ) ); makeActorControl( player.getId(), SetStatusIcon, static_cast< uint8_t >( player.getOnlineStatus() ) ) );
} }
void Util::Player::sendBaseParams( Entity::Player& player ) void Util::Packet::sendBaseParams( Entity::Player& player )
{ {
std::array< uint32_t, 50 > statParams{}; std::array< uint32_t, 50 > statParams{};
std::fill( std::begin( statParams ), std::end( statParams ), 0 ); std::fill( std::begin( statParams ), std::end( statParams ), 0 );
@ -67,13 +69,13 @@ void Util::Player::sendBaseParams( Entity::Player& player )
server().queueForPlayer( player.getCharacterId(), statPacket ); server().queueForPlayer( player.getCharacterId(), statPacket );
} }
void Util::Player::sendHudParam( Entity::Player& player ) void Util::Packet::sendHudParam( Entity::Player& player )
{ {
auto hudParamPacket = makeHudParam( player ); auto hudParamPacket = makeHudParam( player );
server().queueForPlayer( player.getCharacterId(), hudParamPacket ); server().queueForPlayer( player.getCharacterId(), hudParamPacket );
} }
void Util::Player::sendStatusUpdate( Entity::Player& player ) void Util::Packet::sendStatusUpdate( Entity::Player& player )
{ {
auto playerStatusUpdate = makeZonePacket< FFXIVIpcPlayerStatusUpdate >( player.getId() ); auto playerStatusUpdate = makeZonePacket< FFXIVIpcPlayerStatusUpdate >( player.getId() );
playerStatusUpdate->data().ClassJob = static_cast< uint8_t >( player.getClass() ); playerStatusUpdate->data().ClassJob = static_cast< uint8_t >( player.getClass() );
@ -85,7 +87,7 @@ void Util::Player::sendStatusUpdate( Entity::Player& player )
server().queueForPlayer( player.getCharacterId(), playerStatusUpdate ); server().queueForPlayer( player.getCharacterId(), playerStatusUpdate );
} }
void Util::Player::sendHuntingLog( Entity::Player& player ) void Util::Packet::sendHuntingLog( Entity::Player& player )
{ {
auto& exdData = Common::Service< Data::ExdData >::ref(); auto& exdData = Common::Service< Data::ExdData >::ref();
for( auto entryCount = 0; entryCount < Common::ARRSIZE_MONSTERNOTE; ++entryCount ) for( auto entryCount = 0; entryCount < Common::ARRSIZE_MONSTERNOTE; ++entryCount )
@ -128,37 +130,49 @@ void Util::Player::sendHuntingLog( Entity::Player& player )
} }
} }
void Util::Player::sendActorControlSelf( Entity::Player& player, uint16_t category, uint32_t param1, uint32_t param2, uint32_t param3, void Util::Packet::sendActorControlSelf( Entity::Player& player, uint16_t category, uint32_t param1, uint32_t param2, uint32_t param3,
uint32_t param4, uint32_t param5 ) uint32_t param4, uint32_t param5 )
{ {
server().queueForPlayer( player.getCharacterId(), makeActorControlSelf( player.getId(), category, param1, param2, param3, param4, param5 ) ); server().queueForPlayer( player.getCharacterId(), makeActorControlSelf( player.getId(), category, param1, param2, param3, param4, param5 ) );
} }
void Util::Player::sendActorControlSelf( const std::set< uint64_t >& characterIds, Entity::Player& player, uint16_t category, uint32_t param1, void Util::Packet::sendActorControlSelf( const std::set< uint64_t >& characterIds, Entity::Player& player, uint16_t category, uint32_t param1,
uint32_t param2, uint32_t param3, uint32_t param4, uint32_t param5 ) uint32_t param2, uint32_t param3, uint32_t param4, uint32_t param5 )
{ {
server().queueForPlayers( characterIds, makeActorControlSelf( player.getId(), category, param1, param2, param3, param4, param5 ) ); server().queueForPlayers( characterIds, makeActorControlSelf( player.getId(), category, param1, param2, param3, param4, param5 ) );
} }
void Util::Player::sendActorControl( Entity::Player& player, uint16_t category, uint32_t param1, uint32_t param2, uint32_t param3, uint32_t param4 ) void Util::Packet::sendActorControl( Entity::Player& player, uint16_t category, uint32_t param1, uint32_t param2, uint32_t param3, uint32_t param4 )
{ {
server().queueForPlayer( player.getCharacterId(), makeActorControl( player.getId(), category, param1, param2, param3, param4 ) ); server().queueForPlayer( player.getCharacterId(), makeActorControl( player.getId(), category, param1, param2, param3, param4 ) );
} }
void Util::Player::sendActorControl( const std::set< uint64_t >& characterIds, Entity::Player& player, uint16_t category, uint32_t param1, void Util::Packet::sendActorControl( const std::set< uint64_t >& characterIds, Entity::Player& player, uint16_t category, uint32_t param1,
uint32_t param2, uint32_t param3, uint32_t param4 ) uint32_t param2, uint32_t param3, uint32_t param4 )
{ {
server().queueForPlayers( characterIds, makeActorControl( player.getId(), category, param1, param2, param3, param4 ) ); server().queueForPlayers( characterIds, makeActorControl( player.getId(), category, param1, param2, param3, param4 ) );
} }
void Util::Player::sendTitleList( Entity::Player& player ) void Util::Packet::sendActorControlTarget( Entity::Player& player, uint16_t category, uint32_t param1, uint32_t param2, uint32_t param3,
uint32_t param4, uint32_t param5, uint32_t param6 )
{
server().queueForPlayer( player.getCharacterId(), makeActorControlTarget( player.getId(), category, param1, param2, param3, param4, param5, param6 ) );
}
void Util::Packet::sendActorControlTarget( const std::set< uint64_t >& characterIds, Entity::Player& player, uint16_t category, uint32_t param1,
uint32_t param2, uint32_t param3, uint32_t param4, uint32_t param5, uint32_t param6 )
{
server().queueForPlayers( characterIds, makeActorControlTarget( player.getId(), category, param1, param2, param3, param4, param5, param6 ) );
}
void Util::Packet::sendTitleList( Entity::Player& player )
{ {
auto titleListPacket = makeZonePacket< FFXIVIpcTitleList >( player.getId() ); auto titleListPacket = makeZonePacket< FFXIVIpcTitleList >( player.getId() );
memcpy( titleListPacket->data().TitleFlagsArray, player.getTitleList().data(), sizeof( titleListPacket->data().TitleFlagsArray ) ); memcpy( titleListPacket->data().TitleFlagsArray, player.getTitleList().data(), sizeof( titleListPacket->data().TitleFlagsArray ) );
server().queueForPlayer( player.getCharacterId(), titleListPacket ); server().queueForPlayer( player.getCharacterId(), titleListPacket );
} }
void Util::Player::sendGrandCompany( Entity::Player& player ) void Util::Packet::sendGrandCompany( Entity::Player& player )
{ {
auto gcAffPacket = makeZonePacket< FFXIVIpcGrandCompany >( player.getId() ); auto gcAffPacket = makeZonePacket< FFXIVIpcGrandCompany >( player.getId() );
gcAffPacket->data().ActiveCompanyId = player.getGc(); gcAffPacket->data().ActiveCompanyId = player.getGc();
@ -168,7 +182,7 @@ void Util::Player::sendGrandCompany( Entity::Player& player )
server().queueForPlayer( player.getCharacterId(), gcAffPacket ); server().queueForPlayer( player.getCharacterId(), gcAffPacket );
} }
void Util::Player::sendDeletePlayer( Entity::Player& player, uint32_t actorId, uint8_t spawnIndex ) void Util::Packet::sendDeletePlayer( Entity::Player& player, uint32_t actorId, uint8_t spawnIndex )
{ {
auto freeActorSpawnPacket = makeZonePacket< FFXIVIpcActorFreeSpawn >( player.getId() ); auto freeActorSpawnPacket = makeZonePacket< FFXIVIpcActorFreeSpawn >( player.getId() );
freeActorSpawnPacket->data().actorId = actorId; freeActorSpawnPacket->data().actorId = actorId;
@ -176,14 +190,14 @@ void Util::Player::sendDeletePlayer( Entity::Player& player, uint32_t actorId, u
server().queueForPlayer( player.getCharacterId(), freeActorSpawnPacket ); server().queueForPlayer( player.getCharacterId(), freeActorSpawnPacket );
} }
void Util::Player::sendDeleteObject( Entity::Player& player, uint8_t spawnIndex ) void Util::Packet::sendDeleteObject( Entity::Player& player, uint8_t spawnIndex )
{ {
auto freeObjectSpawnPacket = makeZonePacket< FFXIVIpcDeleteObject >( player.getId() ); auto freeObjectSpawnPacket = makeZonePacket< FFXIVIpcDeleteObject >( player.getId() );
freeObjectSpawnPacket->data().Index = spawnIndex; freeObjectSpawnPacket->data().Index = spawnIndex;
server().queueForPlayer( player.getCharacterId(), freeObjectSpawnPacket ); server().queueForPlayer( player.getCharacterId(), freeObjectSpawnPacket );
} }
void Util::Player::sendHateList( Entity::Player& player ) void Util::Packet::sendHateList( Entity::Player& player )
{ {
auto& teriMgr = Common::Service< World::Manager::TerritoryMgr >::ref(); auto& teriMgr = Common::Service< World::Manager::TerritoryMgr >::ref();
@ -211,7 +225,7 @@ void Util::Player::sendHateList( Entity::Player& player )
if( hateValue == 0 ) if( hateValue == 0 )
continue; continue;
auto hatePercent = ( hateValue / static_cast< float >( pBNpc->hateListGetHighestValue() ) ) * 100.f; auto hatePercent = ( static_cast< float >( hateValue ) / static_cast< float >( pBNpc->hateListGetHighestValue() ) ) * 100.f;
hateListPacket->data().List[ i ].Id = player.getId(); hateListPacket->data().List[ i ].Id = player.getId();
hateListPacket->data().List[ i ].Value = hateValue; hateListPacket->data().List[ i ].Value = hateValue;
@ -223,36 +237,36 @@ void Util::Player::sendHateList( Entity::Player& player )
server().queueForPlayer( player.getCharacterId(), { hateListPacket, hateRankPacket } ); server().queueForPlayer( player.getCharacterId(), { hateListPacket, hateRankPacket } );
} }
void Util::Player::sendMount( Entity::Player& player ) void Util::Packet::sendMount( Entity::Player& player )
{ {
auto mountId = player.getCurrentMount(); auto mountId = player.getCurrentMount();
auto inRangePlayerIds = player.getInRangePlayerIds( true ); auto inRangePlayerIds = player.getInRangePlayerIds( true );
if( mountId != 0 ) if( mountId != 0 )
{ {
Network::Util::Player::sendActorControl( inRangePlayerIds, player, SetStatus, static_cast< uint8_t >( Common::ActorStatus::Mounted ) ); Network::Util::Packet::sendActorControl( inRangePlayerIds, player, SetStatus, static_cast< uint8_t >( Common::ActorStatus::Mounted ) );
Network::Util::Player::sendActorControlSelf( inRangePlayerIds, player, 0x39e, 12 ); Network::Util::Packet::sendActorControlSelf( inRangePlayerIds, player, 0x39e, 12 );
} }
else else
{ {
Network::Util::Player::sendActorControl( inRangePlayerIds, player, SetStatus, static_cast< uint8_t >( Common::ActorStatus::Idle ) ); Network::Util::Packet::sendActorControl( inRangePlayerIds, player, SetStatus, static_cast< uint8_t >( Common::ActorStatus::Idle ) );
Network::Util::Player::sendActorControlSelf( inRangePlayerIds, player, Dismount, 1 ); Network::Util::Packet::sendActorControlSelf( inRangePlayerIds, player, Dismount, 1 );
} }
auto mountPacket = makeZonePacket< FFXIVIpcMount >( player.getId() ); auto mountPacket = makeZonePacket< FFXIVIpcMount >( player.getId() );
mountPacket->data().id = mountId; mountPacket->data().id = mountId;
server().queueForPlayers( inRangePlayerIds, mountPacket ); server().queueForPlayers( inRangePlayerIds, mountPacket );
} }
void Util::Player::sendEquip( Entity::Player& player ) void Util::Packet::sendEquip( Entity::Player& player )
{ {
server().queueForPlayers( player.getInRangePlayerIds( true ), std::make_shared< ModelEquipPacket >( player ) ); server().queueForPlayers( player.getInRangePlayerIds( true ), std::make_shared< ModelEquipPacket >( player ) );
} }
void Util::Player::sendCondition( Entity::Player& player ) void Util::Packet::sendCondition( Entity::Player& player )
{ {
server().queueForPlayer( player.getCharacterId(), std::make_shared< ConditionPacket >( player ) ); server().queueForPlayer( player.getCharacterId(), std::make_shared< ConditionPacket >( player ) );
} }
void Util::Player::sendRecastGroups( Entity::Player& player ) void Util::Packet::sendRecastGroups( Entity::Player& player )
{ {
const auto& recastGroups = player.getRecastGroups(); const auto& recastGroups = player.getRecastGroups();
const auto& recastGroupsMax = player.getRecastGroupsMax(); const auto& recastGroupsMax = player.getRecastGroupsMax();
@ -262,7 +276,7 @@ void Util::Player::sendRecastGroups( Entity::Player& player )
server().queueForPlayer( player.getCharacterId(), recastGroupPaket ); server().queueForPlayer( player.getCharacterId(), recastGroupPaket );
} }
void Util::Player::sendAchievementList( Entity::Player& player ) void Util::Packet::sendAchievementList( Entity::Player& player )
{ {
auto achvData = player.getAchievementData(); auto achvData = player.getAchievementData();
auto achvPacket = makeZonePacket< FFXIVIpcAchievement >( player.getId() ); auto achvPacket = makeZonePacket< FFXIVIpcAchievement >( player.getId() );
@ -271,24 +285,24 @@ void Util::Player::sendAchievementList( Entity::Player& player )
server().queueForPlayer( player.getCharacterId(), achvPacket ); server().queueForPlayer( player.getCharacterId(), achvPacket );
} }
void Util::Player::sendRestingUpdate( Entity::Player& player ) void Util::Packet::sendRestingUpdate( Entity::Player& player )
{ {
server().queueForPlayers( player.getInRangePlayerIds( true ), std::make_shared< RestingPacket >( player ) ); server().queueForPlayers( player.getInRangePlayerIds( true ), std::make_shared< RestingPacket >( player ) );
} }
void Util::Player::sendLogin( Entity::Player& player ) void Util::Packet::sendLogin( Entity::Player& player )
{ {
auto initPacket = makeZonePacket< FFXIVIpcLogin >( player.getId() ); auto initPacket = makeZonePacket< FFXIVIpcLogin >( player.getId() );
initPacket->data().playerActorId = player.getId(); initPacket->data().playerActorId = player.getId();
server().queueForPlayer( player.getCharacterId(), initPacket ); server().queueForPlayer( player.getCharacterId(), initPacket );
} }
void Util::Player::sendPlayerSetup( Entity::Player& player ) void Util::Packet::sendPlayerSetup( Entity::Player& player )
{ {
server().queueForPlayer( player.getCharacterId(), makePlayerSetup( player ) ); server().queueForPlayer( player.getCharacterId(), makePlayerSetup( player ) );
} }
void Util::Player::sendChangeClass( Entity::Player& player ) void Util::Packet::sendChangeClass( Entity::Player& player )
{ {
auto classInfo = makeZonePacket< FFXIVIpcChangeClass >( player.getId() ); auto classInfo = makeZonePacket< FFXIVIpcChangeClass >( player.getId() );
classInfo->data().ClassJob = static_cast< uint8_t >( player.getClass() ); classInfo->data().ClassJob = static_cast< uint8_t >( player.getClass() );
@ -298,7 +312,7 @@ void Util::Player::sendChangeClass( Entity::Player& player )
server().queueForPlayer( player.getCharacterId(), classInfo ); server().queueForPlayer( player.getCharacterId(), classInfo );
} }
void Util::Player::sendContentAttainFlags( Entity::Player& player ) void Util::Packet::sendContentAttainFlags( Entity::Player& player )
{ {
// todo - fill with actual data from player // todo - fill with actual data from player
auto contentFinderList = makeZonePacket< FFXIVIpcContentAttainFlags >( player.getId() ); auto contentFinderList = makeZonePacket< FFXIVIpcContentAttainFlags >( player.getId() );
@ -306,7 +320,7 @@ void Util::Player::sendContentAttainFlags( Entity::Player& player )
server().queueForPlayer( player.getCharacterId(), contentFinderList ); server().queueForPlayer( player.getCharacterId(), contentFinderList );
} }
void Util::Player::sendInitZone( Entity::Player& player ) void Util::Packet::sendInitZone( Entity::Player& player )
{ {
auto& teriMgr = Common::Service< World::Manager::TerritoryMgr >::ref(); auto& teriMgr = Common::Service< World::Manager::TerritoryMgr >::ref();
auto pZone = teriMgr.getTerritoryByGuId( player.getTerritoryId() ); auto pZone = teriMgr.getTerritoryByGuId( player.getTerritoryId() );
@ -319,12 +333,22 @@ void Util::Player::sendInitZone( Entity::Player& player )
server().queueForPlayer( player.getCharacterId(), makeInitZone( player, teri ) ); server().queueForPlayer( player.getCharacterId(), makeInitZone( player, teri ) );
} }
void Util::Player::sendDailyQuests( Entity::Player& player ) void Util::Packet::sendDailyQuests( Entity::Player& player )
{ {
server().queueForPlayer( player.getCharacterId(), makeZonePacket< FFXIVIpcDailyQuests >( player.getId() ) ); server().queueForPlayer( player.getCharacterId(), makeZonePacket< FFXIVIpcDailyQuests >( player.getId() ) );
} }
void Util::Player::sendQuestRepeatFlags( Entity::Player& player ) void Util::Packet::sendQuestRepeatFlags( Entity::Player& player )
{ {
server().queueForPlayer( player.getCharacterId(), makeZonePacket< FFXIVIpcQuestRepeatFlags >( player.getId() ) ); server().queueForPlayer( player.getCharacterId(), makeZonePacket< FFXIVIpcQuestRepeatFlags >( player.getId() ) );
} }
void Util::Packet::sendServerNotice( Entity::Player& player, const std::string& message )
{
server().queueForPlayer( player.getCharacterId(), std::make_shared< ServerNoticePacket >( player.getId(), message ) );
}
void Util::Packet::sendChat( Entity::Player& player, Common::ChatType chatType, const std::string& message )
{
server().queueForPlayer( player.getCharacterId(), std::make_shared< ChatPacket >( player, chatType, message ) );
}

View file

@ -5,7 +5,7 @@
#include <Actor/Player.h> #include <Actor/Player.h>
#include "Forwards.h" #include "Forwards.h"
namespace Sapphire::Network::Util::Player namespace Sapphire::Network::Util::Packet
{ {
void sendConfigFlags( Entity::Player& player ); void sendConfigFlags( Entity::Player& player );
void sendOnlineStatus( Entity::Player& player ); void sendOnlineStatus( Entity::Player& player );
@ -48,6 +48,10 @@ namespace Sapphire::Network::Util::Player
void sendDailyQuests( Entity::Player& player ); void sendDailyQuests( Entity::Player& player );
void sendQuestRepeatFlags( Entity::Player& player ); void sendQuestRepeatFlags( Entity::Player& player );
void sendServerNotice( Entity::Player& player, const std::string& message );
void sendChat( Entity::Player& player, Common::ChatType chatType, const std::string& message );
void sendActorControlSelf( Entity::Player& player, uint16_t category, uint32_t param1 = 0, uint32_t param2 = 0, uint32_t param3 = 0, void sendActorControlSelf( Entity::Player& player, uint16_t category, uint32_t param1 = 0, uint32_t param2 = 0, uint32_t param3 = 0,
uint32_t param4 = 0, uint32_t param5 = 0 ); uint32_t param4 = 0, uint32_t param5 = 0 );
@ -59,4 +63,9 @@ namespace Sapphire::Network::Util::Player
void sendActorControl( const std::set< uint64_t >& characterIds, Entity::Player& player, uint16_t category, uint32_t param1 = 0, uint32_t param2 = 0, void sendActorControl( const std::set< uint64_t >& characterIds, Entity::Player& player, uint16_t category, uint32_t param1 = 0, uint32_t param2 = 0,
uint32_t param3 = 0, uint32_t param4 = 0 ); uint32_t param3 = 0, uint32_t param4 = 0 );
void sendActorControlTarget( Entity::Player& player, uint16_t category, uint32_t param1 = 0, uint32_t param2 = 0, uint32_t param3 = 0,
uint32_t param4 = 0, uint32_t param5 = 0, uint32_t param6 = 0 );
void sendActorControlTarget( const std::set< uint64_t >& characterIds, Entity::Player& player, uint16_t category, uint32_t param1 = 0,
uint32_t param2 = 0, uint32_t param3 = 0, uint32_t param4 = 0, uint32_t param5 = 0, uint32_t param6 = 0 );
} }