From 736795a624ae5f04b11fa284cb8a4b14579c1766 Mon Sep 17 00:00:00 2001 From: Jared Adams Date: Thu, 16 Apr 2009 10:10:50 -0600 Subject: Rehash CommandHandler a bit, it's now fully merged Tabs can now interract with CommandHandler and define their own commands in a seemless way. Most channel-related commands have been moved into ChannelTab, the close command is now in the WhisperTab, and eAthena's party tab now shows all standard commands. --- src/net/ea/chathandler.cpp | 16 ++++++++-------- src/net/ea/gui/partytab.cpp | 42 ++++++++++++++---------------------------- src/net/ea/gui/partytab.h | 5 ++++- 3 files changed, 26 insertions(+), 37 deletions(-) (limited to 'src/net') diff --git a/src/net/ea/chathandler.cpp b/src/net/ea/chathandler.cpp index 997881f8..626f1048 100644 --- a/src/net/ea/chathandler.cpp +++ b/src/net/ea/chathandler.cpp @@ -200,43 +200,43 @@ void ChatHandler::privateMessage(const std::string &recipient, void ChatHandler::channelList() { - // TODO + localChatTab->chatLog(_("Channels are not supported!"), BY_SERVER); } void ChatHandler::enterChannel(const std::string &channel, const std::string &password) { - // TODO + localChatTab->chatLog(_("Channels are not supported!"), BY_SERVER); } void ChatHandler::quitChannel(int channelId) { - // TODO + localChatTab->chatLog(_("Channels are not supported!"), BY_SERVER); } void ChatHandler::sendToChannel(int channelId, const std::string &text) { - // TODO + localChatTab->chatLog(_("Channels are not supported!"), BY_SERVER); } void ChatHandler::userList(const std::string &channel) { - // TODO + localChatTab->chatLog(_("Channels are not supported!"), BY_SERVER); } void ChatHandler::setChannelTopic(int channelId, const std::string &text) { - // TODO + localChatTab->chatLog(_("Channels are not supported!"), BY_SERVER); } void ChatHandler::setUserMode(int channelId, const std::string &name, int mode) { - // TODO + localChatTab->chatLog(_("Channels are not supported!"), BY_SERVER); } void ChatHandler::kickUser(int channelId, const std::string &name) { - // TODO + localChatTab->chatLog(_("Channels are not supported!"), BY_SERVER); } } // namespace EAthena diff --git a/src/net/ea/gui/partytab.cpp b/src/net/ea/gui/partytab.cpp index 5f6da0f9..e9651af9 100644 --- a/src/net/ea/gui/partytab.cpp +++ b/src/net/ea/gui/partytab.cpp @@ -46,24 +46,20 @@ void PartyTab::handleInput(const std::string &msg) Net::getPartyHandler()->chat(msg); } -void PartyTab::handleCommand(std::string msg) +void PartyTab::showHelp() { - std::string::size_type pos = msg.find(' '); - std::string type(msg, 0, pos); - std::string args(msg, pos == std::string::npos ? msg.size() : pos + 1); + chatLog(_("/help > Display this help.")); + chatLog(_("/create > Create a new party")); + chatLog(_("/new > Alias of create")); + chatLog(_("/invite > Invite a player to your party")); + chatLog(_("/leave > Leave the party you are in")); +} +bool PartyTab::handleCommand(std::string type, std::string args) +{ if (type == "help") { - if (args == "") - { - chatLog(_("-- Help --")); - chatLog(_("/help > Display this help.")); - chatLog(_("/create > Create a new party")); - chatLog(_("/new > Alias of create")); - chatLog(_("/invite > Invite a player to your party")); - chatLog(_("/leave > Leave the party you are in")); - } - else if (args == "create" || args == "new") + if (args == "create" || args == "new") { chatLog(_("Command: /new ")); chatLog(_("Command: /create ")); @@ -83,18 +79,8 @@ void PartyTab::handleCommand(std::string msg) chatLog(_("Command: /leave")); chatLog(_("This command causes the player to leave the party.")); } - else if (args == "help") - { - chatLog(_("Command: /help")); - chatLog(_("This command displays a list of all commands available.")); - chatLog(_("Command: /help ")); - chatLog(_("This command displays help on .")); - } else - { - chatLog(_("Unknown command.")); - chatLog(_("Type /help for a list of commands.")); - } + return false; } else if (type == "create" || type == "new") { @@ -121,7 +107,7 @@ void PartyTab::handleCommand(std::string msg) */ } else - { - chatLog("Unknown command"); - } + return false; + + return true; } diff --git a/src/net/ea/gui/partytab.h b/src/net/ea/gui/partytab.h index bf9413d0..fac4061b 100644 --- a/src/net/ea/gui/partytab.h +++ b/src/net/ea/gui/partytab.h @@ -33,9 +33,12 @@ class PartyTab : public ChatTab PartyTab(); ~PartyTab(); + void showHelp(); + + bool handleCommand(std::string type, std::string args); + protected: void handleInput(const std::string &msg); - void handleCommand(std::string msg); }; extern PartyTab *partyTab; -- cgit v1.2.3-70-g09d2