#include "chatManager.hpp" #include "IOManager.hpp" #include "inputManager.hpp" #include "log.hpp" #include "sessionManager.hpp" CChatManager::CChatManager() { log(LOG, "ChatManager: initialized"); } CChatManager::~CChatManager() { log(SYS, "ChatManager: bye"); } void CChatManager::newMessage(const SMessage &msg) { log(LOG, "{}: {}", msg.username, msg.msg); const auto session = msg.sender ? msg.sender->get() : g_pSessionManager->getByName(msg.username); if (session && session->isMuted()) { session->write("You are muted"); return; } g_pSessionManager->broadcast(msg); } std::string CChatManager::fmtBroadcastMessage(const SMessage &msg) { return NFormatter::fmt(NONE, "{}: {}", msg.username, msg.msg); } std::vector CChatManager::getChat() const { std::vector chat; for (const auto &[msg, _, _] : g_pIOManager->getIO()) if (msg) chat.push_back(*msg); return chat; }