mirror of
https://github.com/OpenFusionProject/OpenFusion.git
synced 2024-09-19 10:08:21 +00:00
dongresource
a12acbb68f
* Muting a player's freechat * Kicking players * Querying info about a player * Teleporting yourself to a player * Teleporting a player to yourself * Teleporting a player to another player * Teleporting a player to arbitrary coords * Teleporting a player to arbitrary coords in an arbitrary mapnum * /unstick Also: * Renamed misleading setSpecialPlayer() to setValuePlayer() * Revamped monitor logic * Added server-side checks to account level 50 commands * Made sure even trade chat is run through sanitizeText() * Moved setSpecialState() closer to its calling functions * Interpret client commands even in Buddy and Group chat (but not in Trade chat)
35 lines
1.2 KiB
C++
35 lines
1.2 KiB
C++
#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) {}
|
|
};
|
|
|
|
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);
|
|
|
|
std::string sanitizeText(std::string text, bool allowNewlines=false);
|
|
}
|