#pragma once #include namespace blitz { namespace protocol { class PacketVisitor { protected: PacketVisitor() {} virtual ~PacketVisitor() {} public: void Check(const Packet& packet); virtual void Visit(const packets::PlayerLogin&) {} virtual void Visit(const packets::UpdateHealth&) {} virtual void Visit(const packets::LoggingSuccess&) {} virtual void Visit(const packets::PlayerDeath&) {} virtual void Visit(const packets::PlayerJoin&) {} virtual void Visit(const packets::PlayerLeave&) {} virtual void Visit(const packets::PlayerList&) {} virtual void Visit(const packets::PlayerStats&) {} virtual void Visit(const packets::ServerConfig&) {} virtual void Visit(const packets::ServerTps&) {} virtual void Visit(const packets::UpdateGameState&) {} virtual void Visit(const packets::KeepAlive&) {} virtual void Visit(const packets::Disconnect&) {} virtual void Visit(const packets::ChatMessage&) {} virtual void Visit(const packets::PlayerPositionAndRotation&) {} virtual void Visit(const packets::PlayerShoot&) {} }; } // namespace protocol } // namespace blitz