/* Starshatter: The Open Source Project Copyright (c) 2021-2022, Starshatter: The Open Source Project Contributors Copyright (c) 2011-2012, Starshatter OpenSource Distribution Contributors Copyright (c) 1997-2006, Destroyer Studios LLC. AUTHOR: John DiCamillo OVERVIEW ======== HTTP Servlet Engine for Multiplayer Admin */ #include "MemDebug.h" #include "NetAdminChat.h" #include "NetLobbyServer.h" #include "NetServerConfig.h" #include "NetUser.h" #include "NetChat.h" #include "NetUtil.h" #include "HttpServlet.h" #include "NetLayer.h" #include "FormatUtil.h" // +-------------------------------------------------------------------+ NetAdminChat::NetAdminChat() { } // +-------------------------------------------------------------------+ bool NetAdminChat::DoGet(HttpRequest& request, HttpResponse& response) { if (CheckUser(request, response)) { NetLobbyServer* lobby = NetLobbyServer::GetInstance(); if (lobby) { Text msg = request.GetParam("msg"); Text act = request.GetParam("action"); if (msg.length()) { lobby->AddChat(user, msg); if (user) NetUtil::SendChat(0xffff, user->Name(), msg); } else if (act.length()) { if (act == "clear") lobby->ClearChat(); else if (act == "save") lobby->SaveChat(); } } response.SetStatus(HttpResponse::SC_OK); response.AddHeader("MIME-Version", "1.0"); response.AddHeader("Content-Type", "text/html"); response.AddHeader("Cache-Control", "no-cache"); response.AddHeader("Expires", "-1"); response.SetContent(GetHead("Chat") + GetTitleBar(GetStatLine(), "onLoad=\"self.focus();document.chatForm.msg.focus();\"") + GetContent() + GetBodyClose()); } return true; } // +-------------------------------------------------------------------+ Text NetAdminChat::GetContent() { Text content = "
"; content += FormatTimeString(c->GetTime()); content += " | "; content += c->GetUser(); content += " | "; content += c->GetMessage(); content += " |