#pragma once #include #include #include "message.hpp" namespace RedpilledBot { namespace IRC { class Client { public: Client(std::string username, std::string password); ~Client() = default; void run(); template void on(typename MessageHandler::fn function) { switch (T) { case Privmsg: this->onPrivmsg = function; break; default: break; } } private: void authorize(); std::string username; std::string password; std::string host; std::string port; ix::WebSocket websocket; // Message handlers typename MessageHandler::fn onPrivmsg; }; } }