mirror of
https://github.com/OpenFusionProject/OpenFusion.git
synced 2024-11-22 21:40:05 +00:00
Add chat dump to monitor
This commit is contained in:
parent
792a317b48
commit
d03c4f109f
@ -14,6 +14,7 @@
|
|||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
std::map<std::string, ChatCommand> ChatManager::commands;
|
std::map<std::string, ChatCommand> ChatManager::commands;
|
||||||
|
std::vector<std::string> ChatManager::dump;
|
||||||
|
|
||||||
std::vector<std::string> parseArgs(std::string full) {
|
std::vector<std::string> parseArgs(std::string full) {
|
||||||
std::stringstream ss(full);
|
std::stringstream ss(full);
|
||||||
@ -815,6 +816,7 @@ void ChatManager::chatHandler(CNSocket* sock, CNPacketData* data) {
|
|||||||
std::string fullChat = sanitizeText(U16toU8(chat->szFreeChat));
|
std::string fullChat = sanitizeText(U16toU8(chat->szFreeChat));
|
||||||
|
|
||||||
std::cout << "[FreeChat] " << PlayerManager::getPlayerName(plr, false) << ": " << fullChat << std::endl;
|
std::cout << "[FreeChat] " << PlayerManager::getPlayerName(plr, false) << ": " << fullChat << std::endl;
|
||||||
|
dump.push_back(PlayerManager::getPlayerName(plr, true) + ": " + fullChat);
|
||||||
|
|
||||||
if (fullChat.length() > 1 && fullChat[0] == CMD_PREFIX) { // PREFIX
|
if (fullChat.length() > 1 && fullChat[0] == CMD_PREFIX) { // PREFIX
|
||||||
runCmd(fullChat, sock);
|
runCmd(fullChat, sock);
|
||||||
@ -844,6 +846,7 @@ void ChatManager::menuChatHandler(CNSocket* sock, CNPacketData* data) {
|
|||||||
std::string fullChat = sanitizeText(U16toU8(chat->szFreeChat));
|
std::string fullChat = sanitizeText(U16toU8(chat->szFreeChat));
|
||||||
|
|
||||||
std::cout << "[MenuChat] " << PlayerManager::getPlayerName(plr, false) << ": " << fullChat << std::endl;
|
std::cout << "[MenuChat] " << PlayerManager::getPlayerName(plr, false) << ": " << fullChat << std::endl;
|
||||||
|
dump.push_back(PlayerManager::getPlayerName(plr, true) + ": " + fullChat);
|
||||||
|
|
||||||
// send to client
|
// send to client
|
||||||
INITSTRUCT(sP_FE2CL_REP_SEND_MENUCHAT_MESSAGE_SUCC, resp);
|
INITSTRUCT(sP_FE2CL_REP_SEND_MENUCHAT_MESSAGE_SUCC, resp);
|
||||||
@ -921,6 +924,7 @@ void ChatManager::announcementHandler(CNSocket* sock, CNPacketData* data) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::cout << "[Bcast " << announcement->iAreaType << "] " << PlayerManager::getPlayerName(plr, false) << ": " << U16toU8(msg.szAnnounceMsg) << std::endl;
|
std::cout << "[Bcast " << announcement->iAreaType << "] " << PlayerManager::getPlayerName(plr, false) << ": " << U16toU8(msg.szAnnounceMsg) << std::endl;
|
||||||
|
dump.push_back("**" + PlayerManager::getPlayerName(plr, true) + ": " + U16toU8(msg.szAnnounceMsg) + "**");
|
||||||
}
|
}
|
||||||
|
|
||||||
// we only allow plain ascii, at least for now
|
// we only allow plain ascii, at least for now
|
||||||
|
@ -18,6 +18,7 @@ struct ChatCommand {
|
|||||||
|
|
||||||
namespace ChatManager {
|
namespace ChatManager {
|
||||||
extern std::map<std::string, ChatCommand> commands;
|
extern std::map<std::string, ChatCommand> commands;
|
||||||
|
extern std::vector<std::string> dump;
|
||||||
void init();
|
void init();
|
||||||
|
|
||||||
void registerCommand(std::string cmd, int requiredLevel, CommandHandler handlr, std::string help = "");
|
void registerCommand(std::string cmd, int requiredLevel, CommandHandler handlr, std::string help = "");
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
#include "CNShardServer.hpp"
|
#include "CNShardServer.hpp"
|
||||||
#include "PlayerManager.hpp"
|
#include "PlayerManager.hpp"
|
||||||
|
#include "ChatManager.hpp"
|
||||||
#include "CNStructs.hpp"
|
#include "CNStructs.hpp"
|
||||||
#include "Monitor.hpp"
|
#include "Monitor.hpp"
|
||||||
#include "settings.hpp"
|
#include "settings.hpp"
|
||||||
@ -102,6 +103,7 @@ outer:
|
|||||||
if (!transmit(it, (char*)"begin\n", 6))
|
if (!transmit(it, (char*)"begin\n", 6))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
// player
|
||||||
for (auto& pair : PlayerManager::players) {
|
for (auto& pair : PlayerManager::players) {
|
||||||
if (pair.second->hidden)
|
if (pair.second->hidden)
|
||||||
continue;
|
continue;
|
||||||
@ -114,11 +116,21 @@ outer:
|
|||||||
goto outer;
|
goto outer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// chat
|
||||||
|
for (auto& str : ChatManager::dump) {
|
||||||
|
n = std::snprintf(buff, sizeof(buff), "chat %s\n", str.c_str());
|
||||||
|
|
||||||
|
if (!transmit(it, buff, n))
|
||||||
|
goto outer;
|
||||||
|
}
|
||||||
|
|
||||||
if (!transmit(it, (char*)"end\n", 4))
|
if (!transmit(it, (char*)"end\n", 4))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
it++;
|
it++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ChatManager::dump.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Monitor::acceptConnection(SOCKET fd, uint16_t revents) {
|
bool Monitor::acceptConnection(SOCKET fd, uint16_t revents) {
|
||||||
|
Loading…
Reference in New Issue
Block a user