F4MP/tiltedcode/Code/server/Services/PlayerService.h
Jous99 37b16f1547 code upload
codigo original de f4mp y tilted para referencias
2026-01-06 18:45:00 +01:00

37 lines
1.3 KiB
C++

#pragma once
#include <Events/PacketEvent.h>
struct World;
struct ShiftGridCellRequest;
struct EnterInteriorCellRequest;
struct EnterExteriorCellRequest;
struct PlayerRespawnRequest;
struct PlayerLevelRequest;
/**
* @brief Handles player specific actions that might change the information needed by other clients about that player.
*/
struct PlayerService
{
PlayerService(World& aWorld, entt::dispatcher& aDispatcher) noexcept;
~PlayerService() noexcept = default;
TP_NOCOPYMOVE(PlayerService);
protected:
void HandleGridCellShift(const PacketEvent<ShiftGridCellRequest>& acMessage) const noexcept;
void HandleExteriorCellEnter(const PacketEvent<EnterExteriorCellRequest>& acMessage) const noexcept;
void HandleInteriorCellEnter(const PacketEvent<EnterInteriorCellRequest>& acMessage) const noexcept;
void OnPlayerRespawnRequest(const PacketEvent<PlayerRespawnRequest>& acMessage) const noexcept;
void OnPlayerLevelRequest(const PacketEvent<PlayerLevelRequest>& acMessage) const noexcept;
private:
World& m_world;
entt::scoped_connection m_gridCellShiftConnection;
entt::scoped_connection m_exteriorCellEnterConnection;
entt::scoped_connection m_interiorCellEnterConnection;
entt::scoped_connection m_playerRespawnConnection;
entt::scoped_connection m_playerLevelConnection;
};