#ifndef GAMESERVER_H
#define GAMESERVER_H

#include "server/commands/ServerCommands.h"
#include "server/network/Client.h"
#include "common/network/Packet.h"
#include "gaming-core/utils/Clock.h"
#include "commands/CommandManager.h"

class GameServer final {
public:
    GameServer(const Clock& tps);

    void tick();
    void handleCommands(ServerCommands& serverCommands);

    void onFullServerClientConnect(Client& client);
    void onClientConnect(Client& client);
    void onClientPackage(Client& client, Packet& packet);
    void onClientDisconnect(Client& client);

private:
    const Clock& tps;
    CommandManager commandManager;
};

#endif