1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-05-02 16:57:47 +00:00

Improve readability of PacketCommand Handlers #2

This commit is contained in:
Mordred 2023-02-27 14:04:40 +01:00
parent 0f08bf8630
commit cb61ce54e5

View file

@ -404,15 +404,14 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
auto pZone = teriMgr.getTerritoryByGuId( player.getTerritoryId() ); auto pZone = teriMgr.getTerritoryByGuId( player.getTerritoryId() );
const auto& data = packet.data(); const auto& data = packet.data();
const auto commandId = data.Id;
const auto arg0arg1 = *reinterpret_cast< const uint64_t* >( &packet.data().Arg0 ); const auto arg0arg1 = *reinterpret_cast< const uint64_t* >( &packet.data().Arg0 );
Logger::debug( "\t\t {8} | {1:X} ( p1:{2:X} p11:{3:X} p12:{4:X} p2:{5:X} p3:{6:X} p4:{7:X} )", Logger::debug( "\t\t {8} | {1:X} ( p1:{2:X} p11:{3:X} p12:{4:X} p2:{5:X} p3:{6:X} p4:{7:X} )",
m_pSession->getId(), commandId, arg0arg1, data.Arg0, data.Arg1, data.Arg2, data.Target, data.Arg3, packetCommandToString( commandId ) ); m_pSession->getId(), data.Id, arg0arg1, data.Arg0, data.Arg1, data.Arg2, data.Target, data.Arg3, packetCommandToString( data.Id ) );
//Logger::Log(LoggingSeverity::debug, "[" + std::to_string(m_pSession->getId()) + "] " + pInPacket->toString()); //Logger::Log(LoggingSeverity::debug, "[" + std::to_string(m_pSession->getId()) + "] " + pInPacket->toString());
switch( commandId ) switch( data.Id )
{ {
case PacketCommand::DRAWN_SWORD: // Toggle sheathe case PacketCommand::DRAWN_SWORD: // Toggle sheathe
{ {
@ -452,17 +451,17 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
} }
case PacketCommand::CANCEL_MOUNT: case PacketCommand::CANCEL_MOUNT:
{ {
Service< World::Manager::PlayerMgr >::ref().onMountUpdate( player, 0 ); playerMgr().onMountUpdate( player, 0 );
break; break;
} }
case PacketCommand::COMPANION: case PacketCommand::COMPANION:
{ {
Common::Service< World::Manager::PlayerMgr >::ref().onCompanionUpdate( player, static_cast< uint8_t >( data.Arg0 ) ); playerMgr().onCompanionUpdate( player, static_cast< uint8_t >( data.Arg0 ) );
break; break;
} }
case PacketCommand::COMPANION_CANCEL: case PacketCommand::COMPANION_CANCEL:
{ {
Common::Service< World::Manager::PlayerMgr >::ref().onCompanionUpdate( player, 0 ); playerMgr().onCompanionUpdate( player, 0 );
break; break;
} }
case PacketCommand::REQUEST_STATUS_RESET: // Remove status (clicking it off) case PacketCommand::REQUEST_STATUS_RESET: // Remove status (clicking it off)
@ -479,8 +478,7 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
} }
case PacketCommand::INSPECT: case PacketCommand::INSPECT:
{ {
uint32_t targetId = data.Arg0; examineHandler( player, data.Arg0 );
examineHandler( player, targetId );
break; break;
} }
case PacketCommand::MARKING: // Mark player case PacketCommand::MARKING: // Mark player
@ -499,8 +497,7 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
} }
case PacketCommand::SET_HOWTO: // Update howtos seen case PacketCommand::SET_HOWTO: // Update howtos seen
{ {
uint32_t howToId = data.Arg0; player.updateHowtosSeen( data.Arg0 );
player.updateHowtosSeen( howToId );
break; break;
} }
case PacketCommand::SET_CUTSCENE: case PacketCommand::SET_CUTSCENE:
@ -553,11 +550,10 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
{ {
if( player.getPersistentEmote() > 0 ) if( player.getPersistentEmote() > 0 )
{ {
auto movePacket = std::make_shared< MoveActorPacket >( player, player.getRot(), 2, 0, 0, 0x5A / 4 );
player.setPersistentEmote( 0 ); player.setPersistentEmote( 0 );
player.setStatus( ActorStatus::Idle ); player.setStatus( ActorStatus::Idle );
server().queueForPlayers( player.getInRangePlayerIds(), movePacket ); 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(), ActorControlType::EmoteModeInterrupt ) );
server().queueForPlayers( player.getInRangePlayerIds(), makeActorControl( player.getId(), SetStatus, static_cast< uint8_t >( ActorStatus::Idle ) ) ); server().queueForPlayers( player.getInRangePlayerIds(), makeActorControl( player.getId(), SetStatus, static_cast< uint8_t >( ActorStatus::Idle ) ) );
} }
@ -567,8 +563,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 ) );
auto pSetStatusPacket = makeActorControl( player.getId(), SetPose, data.Arg0, data.Arg1 ); server().queueForPlayers( player.getInRangePlayerIds( true ), makeActorControl( player.getId(), SetPose, data.Arg0, data.Arg1 ) );
server().queueForPlayers( player.getInRangePlayerIds( true ), pSetStatusPacket );
break; break;
} }
case PacketCommand::POSE_EMOTE_CANCEL: // cancel pose case PacketCommand::POSE_EMOTE_CANCEL: // cancel pose
@ -604,12 +599,12 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
} }
case PacketCommand::ACHIEVEMENT_REQUEST_RATE: case PacketCommand::ACHIEVEMENT_REQUEST_RATE:
{ {
Service< World::Manager::PlayerMgr >::ref().onAchievementProgressChanged( player, data.Arg0 ); playerMgr().onAchievementProgressChanged( player, data.Arg0 );
break; break;
} }
case PacketCommand::ACHIEVEMENT_REQUEST: case PacketCommand::ACHIEVEMENT_REQUEST:
{ {
Service< World::Manager::PlayerMgr >::ref().onAchievementListChanged( player ); playerMgr().onAchievementListChanged( player );
break; break;
} }
case PacketCommand::TELEPO_INQUIRY: // Teleport case PacketCommand::TELEPO_INQUIRY: // Teleport
@ -655,7 +650,6 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
case PacketCommand::EVENT_HANDLER: case PacketCommand::EVENT_HANDLER:
{ {
pZone->onEventHandlerOrder( player, data.Arg0, data.Arg1, data.Arg2, static_cast< uint32_t >( data.Target ), data.Arg3 ); pZone->onEventHandlerOrder( player, data.Arg0, data.Arg1, data.Arg2, static_cast< uint32_t >( data.Target ), data.Arg3 );
break; break;
} }
case PacketCommand::CANCEL_QUEST: case PacketCommand::CANCEL_QUEST:
@ -671,9 +665,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() );
auto pShowBuildPresetUIPacket = makeActorControl( player.getId(), ShowBuildPresetUI, data.Arg0 ); server().queueForPlayer( player.getCharacterId(), makeActorControl( player.getId(), ShowBuildPresetUI, data.Arg0 ) );
server().queueForPlayer( player.getCharacterId(), pShowBuildPresetUIPacket );
break; break;
} }
case PacketCommand::HOUSING_AUCTION_INFO: case PacketCommand::HOUSING_AUCTION_INFO:
@ -741,7 +733,7 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
break; break;
}*/ }*/
case PacketCommand::HOUSING_WARP_TO_SAFE: case PacketCommand::HOUSING_WARP_TO_SAFE:
{ {
// close ui // close ui
if( data.Arg0 == 1 ) if( data.Arg0 == 1 )
@ -751,9 +743,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 );
auto pShowHousingItemUIPacket = makeActorControl( player.getId(), ShowHousingItemUI, 0, plot ); server().queueForPlayer( player.getCharacterId(), makeActorControl( player.getId(), ShowHousingItemUI, 0, plot ) );
server().queueForPlayer( player.getCharacterId(), pShowHousingItemUIPacket );
//TODO: show item housing container //TODO: show item housing container
@ -854,7 +844,7 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
default: default:
{ {
Logger::debug( "[{0}] Unhandled Command: {1:04X}", m_pSession->getId(), commandId ); Logger::debug( "[{0}] Unhandled Command: {1:04X}", player.getId(), data.Id );
break; break;
} }
} }