#pragma once class PendingConnection; class PlayerConnection; class MinecraftServer; class Socket; class ServerSettingsChangedPacket; using namespace std; class ServerConnection { // public static Logger logger = Logger.getLogger("Minecraft"); private: // ServerSocket serverSocket; // private Thread listenThread; public: volatile bool running; private: int connectionCounter; private: CRITICAL_SECTION pending_cs; // 4J added vector< shared_ptr > pending; vector< shared_ptr > players; // 4J - When the server requests a texture, it should add it to here while we are waiting for it vector m_pendingTextureRequests; public: MinecraftServer *server; public: ServerConnection(MinecraftServer *server); // 4J - removed params InetAddress address, int port); ~ServerConnection(); void NewIncomingSocket(Socket *socket); // 4J - added void removeSpamProtection(Socket *socket) { }// 4J Stu - Not implemented as not required void addPlayerConnection(shared_ptr uc); private: void handleConnection(shared_ptr uc); public: void stop(); void tick(); // 4J Added bool addPendingTextureRequest(const wstring &textureName); void handleTextureReceived(const wstring &textureName); void handleTextureAndGeometryReceived(const wstring &textureName); void handleServerSettingsChanged(shared_ptr packet); };