diff options
author | Andrei Karas <akaras@inbox.ru> | 2012-11-27 02:59:26 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2012-11-27 23:32:12 +0300 |
commit | 1fd495484bb43a1e0b0d088874d7bc588d8d38c9 (patch) | |
tree | 1c975620150a8e30196379748871338fa89720ac /src/commandhandler.h | |
parent | 42d107be2ecb0cf81c1a291bb4e63e78094bd62e (diff) | |
download | manaplus-1fd495484bb43a1e0b0d088874d7bc588d8d38c9.tar.gz manaplus-1fd495484bb43a1e0b0d088874d7bc588d8d38c9.tar.bz2 manaplus-1fd495484bb43a1e0b0d088874d7bc588d8d38c9.tar.xz manaplus-1fd495484bb43a1e0b0d088874d7bc588d8d38c9.zip |
Simplify command handlers.
Diffstat (limited to 'src/commandhandler.h')
-rw-r--r-- | src/commandhandler.h | 305 |
1 files changed, 10 insertions, 295 deletions
diff --git a/src/commandhandler.h b/src/commandhandler.h index 507218f01..076c35711 100644 --- a/src/commandhandler.h +++ b/src/commandhandler.h @@ -23,16 +23,18 @@ #ifndef COMMANDHANDLER_H #define COMMANDHANDLER_H -#include "playerrelations.h" +#include "commands.h" #include <string> +#include "localconsts.h" + class ChatTab; extern ChatTab *localChatTab; -#define BOOLEAN_OPTIONS _("Options to /%s are \"yes\", \"no\", \"true\", "\ -"\"false\", \"1\", \"0\".") +typedef std::map<std::string, CommandFuncPtr> CommandsMap; +typedef CommandsMap::const_iterator CommandsMapIter; /** * A class to parse and handle user commands @@ -56,303 +58,16 @@ class CommandHandler final /** * Parse and handle the given command. */ - static void handleCommand(const std::string &command, - ChatTab *const tab = localChatTab); - - static void handleCommands(const std::string &command, - ChatTab *const tab = localChatTab); - - static void replaceVars(std::string &str); + void handleCommand(const std::string &command, + ChatTab *const tab = localChatTab); - static signed char parseBoolean(const std::string &value); + void handleCommands(const std::string &command, + ChatTab *const tab = localChatTab); protected: friend class ChatTab; friend class WhisperTab; - - /** - * Handle an announce command. - */ - static void handleAnnounce(const std::string &args, - ChatTab *const tab); - - /** - * Handle a help command. - */ - static void handleHelp(const std::string &args, ChatTab *const tab); - - /** - * Handle a where command. - */ - static void handleWhere(const std::string &args, ChatTab *const tab); - - /** - * Handle a who command. - */ - static void handleWho(const std::string &args, ChatTab *const tab); - - /** - * Handle a msg command. - */ - static void handleMsg(const std::string &args, ChatTab *const tab); - - /** - * Handle a msg tab request. - */ - static void handleQuery(const std::string &args, ChatTab *const tab); - - /** - * Handle a join command. - */ - static void handleJoin(const std::string &args, ChatTab *const tab); - - /** - * Handle a listchannels command. - */ - static void handleListChannels(const std::string &args, - ChatTab *const tab); - - /** - * Handle a clear command. - */ - static void handleClear(const std::string &args, ChatTab *const tab); - - /** - * Handle a createparty command. - */ - static void handleCreateParty(const std::string &args, - ChatTab *const tab); - - /** - * Handle a createguild command. - */ - static void handleCreateGuild(const std::string &args, - ChatTab *const tab); - - /** - * Handle a party command. - */ - static void handleParty(const std::string &args, ChatTab *const tab); - - /** - * Handle a me command. - */ - static void handleMe(const std::string &args, ChatTab *const tab); - - /** - * Handle a toggle command. - */ - static void handleToggle(const std::string &args, ChatTab *const tab); - - /** - * Handle a present command. - */ - static void handlePresent(const std::string &args, ChatTab *const tab); - - /** - * Handle an ignore command. - */ - static void handleIgnore(const std::string &args, ChatTab *const tab); - - /** - * Handle an unignore command. - */ - static void handleUnignore(const std::string &args, - ChatTab *const tab); - - /** - * Handle an friend command. - */ - static void handleFriend(const std::string &args, ChatTab *const tab); - - /** - * Handle an disregard command. - */ - static void handleDisregard(const std::string &args, - ChatTab *const tab); - - /** - * Handle an neutral command. - */ - static void handleNeutral(const std::string &args, ChatTab *const tab); - - /** - * Handle an blacklist command. - */ - static void handleBlackList(const std::string &args, - ChatTab *const tab); - - /** - * Handle an enemy command. - */ - static void handleEnemy(const std::string &args, ChatTab *const tab); - - /** - * Handle an erase command. - */ - static void handleErase(const std::string &args, ChatTab *const tab); - - /** - * Change relation. - */ - static void changeRelation(const std::string &args, - const PlayerRelation::Relation relation, - const std::string &relationText, - ChatTab *const tab); - - /** - * Handle a quit command. - */ - static void handleQuit(const std::string &args, ChatTab *const tab); - - /** - * Handle show all command. - */ - static void handleShowAll(const std::string &args, ChatTab *const tab); - - /** - * Handle move command. - */ - static void handleMove(const std::string &args, ChatTab *const tab); - - /** - * Handle target command. - */ - static void handleTarget(const std::string &args, ChatTab *const tab); - /** - * Handle atkhuman command. - */ - static void handleAttackHuman(const std::string &args, - ChatTab *const tab); - - /** - * Handle closeall command. - */ - static void handleCloseAll(const std::string &args, - ChatTab *const tab); - - /** - * Handle ignoreall command. - */ - static void handleIgnoreAll(const std::string &args, - ChatTab *const tab); - - /** - * Handle outfit command. - */ - static void handleOutfit(const std::string &args, ChatTab *const tab); - - /** - * Handle emote command. - */ - static void handleEmote(const std::string &args, ChatTab *const tab); - - /** - * Handle away command. - */ - static void handleAway(const std::string &args, ChatTab *const tab); - - /** - * Handle pseudo away command. - */ - static void handlePseudoAway(const std::string &args, - ChatTab *const tab); - - /** - * Handle follow command. - */ - static void handleFollow(const std::string &args, ChatTab *const tab); - - /** - * Handle imitation command. - */ - static void handleImitation(const std::string &args, - ChatTab *const tab); - - /** - * Handle heal command. - */ - static void handleHeal(const std::string &args, ChatTab *const tab); - - /** - * Handle navigate command. - */ - static void handleNavigate(const std::string &args, - ChatTab *const tab); - - static void handleMail(const std::string &args, ChatTab *const tab); - - static void handleHack(const std::string &args, ChatTab *const tab); - - static void handlePriceLoad(const std::string &args, - ChatTab *const tab); - - static void handlePriceSave(const std::string &args, - ChatTab *const tab); - - static void handleTrade(const std::string &args, ChatTab *const tab); - - static void handleDisconnect(const std::string &args, - ChatTab *const tab); - - static void handleUndress(const std::string &args, ChatTab *const tab); - - static void handleAttack(const std::string &args, ChatTab *const tab); - - static void handleDirs(const std::string &args, ChatTab *const tab); - - static void handleInfo(const std::string &args, ChatTab *const tab); - - static void handleWait(const std::string &args, ChatTab *const tab); - - static void handleUptime(const std::string &args, ChatTab *const tab); - - static void handleAddAttack(const std::string &args, - ChatTab *const tab); - - static void handleAddPriorityAttack(const std::string &args, - ChatTab *const tab); - - static void handleRemoveAttack(const std::string &args, - ChatTab *const tab); - - static void handleAddIgnoreAttack(const std::string &args, - ChatTab *const tab); - - static void handleServerIgnoreAll(const std::string &args, - ChatTab *const tab); - - static void handleServerUnIgnoreAll(const std::string &args, - ChatTab *const tab); - - static void handleSetDrop(const std::string &args, ChatTab *const tab); - - static void handleError(const std::string &args, ChatTab *const tab); - - static void handleUrl(const std::string &args, ChatTab *const tab); - - static void handleOpen(const std::string &args, ChatTab *const tab); - - static void handleDump(const std::string &args, ChatTab *const tab); - - static void handleDumpGraphics(const std::string &args, - ChatTab *const tab); - - static void handleDumpTests(const std::string &args, - ChatTab *const tab); - - static void handleDumpOGL(const std::string &args, ChatTab *const tab); - - static void outString(ChatTab *const tab, const std::string &str, - const std::string &def); - - static void outStringNormal(ChatTab *const tab, const std::string &str, - const std::string &def); - - static void handleCacheInfo(const std::string &args, - ChatTab *const tab); - - static bool parse2Int(const std::string &args, int &x, int &y); + CommandsMap mCommands; }; extern CommandHandler *commandHandler; |