#pragma once #include "NetworkMessage.h" namespace Feather { class PacketReader; class MinecraftClient; enum class ProtocolState { Handholding = -1, Play = 0, Status = 1, Login = 2, }; class ProtocolContext { public: inline ProtocolState GetState() const { return m_state; } inline void SetState(ProtocolState state) { printf("Setting state"); m_state = state; } private: ProtocolState m_state = ProtocolState::Handholding; }; class Protocol { public: void HandlePacket(MinecraftClient& client, PacketReader& packet); }; }