[refactor] Refactor ChatManager

* Extracted all commands into CustomCommands.cpp
* Moved all chat-related packet handlers into ChatManger.cpp
* Cleaned up redundant includes
* Unified handler naming scheme
* Made all command handlers in CustomCommands.cpp static
This commit is contained in:
2021-03-12 20:07:26 +01:00
parent 4cd3a3dabd
commit 2d7129111a
13 changed files with 1180 additions and 1163 deletions

View File

@@ -1,34 +1,26 @@
#pragma once
#include "CNShardServer.hpp"
#define CMD_PREFIX '/'
typedef void (*CommandHandler)(std::string fullString, std::vector<std::string>& args, CNSocket* sock);
struct ChatCommand {
int requiredAccLevel;
std::string help;
CommandHandler handlr;
ChatCommand(int r, CommandHandler h): requiredAccLevel(r), handlr(h) {}
ChatCommand(int r, CommandHandler h, std::string str): requiredAccLevel(r), help(str), handlr(h) {}
ChatCommand(): ChatCommand(0, nullptr) {}
};
#include "CNShardServer.hpp"
namespace ChatManager {
extern std::map<std::string, ChatCommand> commands;
extern std::vector<std::string> dump;
void init();
bool runCmd(std::string full, CNSocket* sock);
void registerCommand(std::string cmd, int requiredLevel, CommandHandler handlr, std::string help = "");
void chatHandler(CNSocket* sock, CNPacketData* data);
void emoteHandler(CNSocket* sock, CNPacketData* data);
void menuChatHandler(CNSocket* sock, CNPacketData* data);
void sendServerMessage(CNSocket* sock, std::string msg); // uses MOTD
void announcementHandler(CNSocket* sock, CNPacketData* data);
void buddyChatHandler(CNSocket* sock, CNPacketData* data);
void buddyMenuChatHandler(CNSocket* sock, CNPacketData* data);
void tradeChatHandler(CNSocket* sock, CNPacketData* data);
void groupChatHandler(CNSocket* sock, CNPacketData* data);
void groupMenuChatHandler(CNSocket* sock, CNPacketData* data);
void sendServerMessage(CNSocket* sock, std::string msg); // uses MOTD
std::string sanitizeText(std::string text, bool allowNewlines=false);
}