#pragma once #include "Common.h" #include "NetworkMessage.h" #include "protocol/ProtocolDefinitions.h" #include #include namespace Feather { class DedicatedServer; class PacketReader; class MinecraftClient; class ProtocolContext { public: inline ProtocolState GetState() const { return m_state; } inline void SetState(ProtocolState state) { Log_Info("Setting state: %d", (int)state); m_state = state; } private: ProtocolState m_state = ProtocolState::Handholding; }; class Protocol { DedicatedServer& m_server; public: Protocol(DedicatedServer& server) : m_server(server) {} void HandlePacket(MinecraftClient& client, PacketReader& packet); }; }