#ifndef SERVER_HPP_
#define SERVER_HPP_
#include "client.hpp"
#include "irc_cmd.hpp"
#include "common.hpp"


class Server {
    private:
        static Server* inst;
        bool motd(Client*) const;
        static bool ping(Client*);

    public:
        Server();
        static INLINE Server* getInst() { return inst; }
        ~Server();

        bool handle(Client*, Command*); ///< main work being dispatched here
        void disconnect(Client*, const char*); ///< leaves all channels, optional message
        static bool notice(Client*, const char*); ///< sends server notice
};


#endif