summaryrefslogtreecommitdiff
path: root/src/commandhandler.h
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2012-11-27 02:59:26 +0300
committerAndrei Karas <akaras@inbox.ru>2012-11-27 23:32:12 +0300
commit1fd495484bb43a1e0b0d088874d7bc588d8d38c9 (patch)
tree1c975620150a8e30196379748871338fa89720ac /src/commandhandler.h
parent42d107be2ecb0cf81c1a291bb4e63e78094bd62e (diff)
downloadmv-1fd495484bb43a1e0b0d088874d7bc588d8d38c9.tar.gz
mv-1fd495484bb43a1e0b0d088874d7bc588d8d38c9.tar.bz2
mv-1fd495484bb43a1e0b0d088874d7bc588d8d38c9.tar.xz
mv-1fd495484bb43a1e0b0d088874d7bc588d8d38c9.zip
Simplify command handlers.
Diffstat (limited to 'src/commandhandler.h')
-rw-r--r--src/commandhandler.h305
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;