summaryrefslogtreecommitdiff
path: root/src/commandhandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/commandhandler.cpp')
-rw-r--r--src/commandhandler.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/commandhandler.cpp b/src/commandhandler.cpp
index dab51c8f..1c375ad9 100644
--- a/src/commandhandler.cpp
+++ b/src/commandhandler.cpp
@@ -21,6 +21,7 @@
#include "commandhandler.h"
+#include "beingmanager.h"
#include "channelmanager.h"
#include "channel.h"
#include "game.h"
@@ -126,6 +127,10 @@ void CommandHandler::handleCommand(const std::string &command, ChatTab *tab)
{
handleAway(args, tab);
}
+ else if (type == "showip" && Net::getNetworkType() == ServerInfo::TMWATHENA)
+ {
+ handleShowIp(args, tab);
+ }
else
{
tab->chatLog(_("Unknown command."));
@@ -479,6 +484,35 @@ void CommandHandler::handleToggle(const std::string &args, ChatTab *tab)
}
}
+void CommandHandler::handleShowIp(const std::string &args, ChatTab *tab)
+{
+ if (args.empty())
+ {
+ tab->chatLog(player_node->getShowIp() ?
+ _("Show IP: On") : _("Show IP: Off"));
+ return;
+ }
+
+ char opt = parseBoolean(args);
+
+ switch (opt)
+ {
+ case 0:
+ tab->chatLog(_("Show IP: Off"));
+ player_node->setShowIp(false);
+ break;
+ case 1:
+ tab->chatLog(_("Show IP: On"));
+ player_node->setShowIp(true);
+ break;
+ case -1:
+ tab->chatLog(strprintf(BOOLEAN_OPTIONS, "showip"));
+ return;
+ }
+
+ beingManager->updatePlayerNames();
+}
+
void CommandHandler::handlePresent(const std::string &args, ChatTab *tab)
{
chatWindow->doPresent();