From 52f9607980c82f53bbc76a5bb5825cbff61dc3b5 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Wed, 24 Feb 2016 17:47:26 +0300 Subject: Add chat command /showlevel. Also add show level commands to player context menu. --- src/actions/commands.cpp | 6 ++++++ src/actions/commands.h | 1 + src/dyetool/actions/commands.cpp | 1 + src/enums/input/inputaction.h | 1 + src/gui/popups/popupmenu.cpp | 3 +++ src/input/inputactionmap.h | 6 ++++++ src/net/adminhandler.h | 2 ++ src/net/eathena/adminhandler.cpp | 8 ++++++++ src/net/eathena/adminhandler.h | 2 ++ src/net/tmwa/adminhandler.cpp | 4 ++++ src/net/tmwa/adminhandler.h | 2 ++ 11 files changed, 36 insertions(+) (limited to 'src') diff --git a/src/actions/commands.cpp b/src/actions/commands.cpp index 6cd543707..0a5d098b1 100644 --- a/src/actions/commands.cpp +++ b/src/actions/commands.cpp @@ -1275,4 +1275,10 @@ impHandler(playerCharGmCommands) return true; } +impHandler(commandShowLevel) +{ + adminHandler->showLevel(event.args); + return true; +} + } // namespace Actions diff --git a/src/actions/commands.h b/src/actions/commands.h index a950b4d50..5740f2eb5 100644 --- a/src/actions/commands.h +++ b/src/actions/commands.h @@ -104,6 +104,7 @@ namespace Actions decHandler(mobSpawnSearch); decHandler(playerGmCommands); decHandler(playerCharGmCommands); + decHandler(commandShowLevel); } // namespace Actions #undef decHandler diff --git a/src/dyetool/actions/commands.cpp b/src/dyetool/actions/commands.cpp index 4578c4f2c..94c1a8fc2 100644 --- a/src/dyetool/actions/commands.cpp +++ b/src/dyetool/actions/commands.cpp @@ -104,5 +104,6 @@ impHandlerVoid(mobSearch) impHandlerVoid(mobSpawnSearch) impHandlerVoid(playerGmCommands) impHandlerVoid(playerCharGmCommands) +impHandlerVoid(commandShowLevel) } // namespace Actions diff --git a/src/enums/input/inputaction.h b/src/enums/input/inputaction.h index 478665844..12906d076 100644 --- a/src/enums/input/inputaction.h +++ b/src/enums/input/inputaction.h @@ -633,6 +633,7 @@ enumStart(InputAction) MOB_SPAWN_SEARCH, PLAYER_GM_COMMANDS, PLAYER_CHAR_GM_COMMANDS, + COMMAND_SHOW_LEVEL, TOTAL } enumEnd(InputAction); diff --git a/src/gui/popups/popupmenu.cpp b/src/gui/popups/popupmenu.cpp index 49eb9761f..eeadcd604 100644 --- a/src/gui/popups/popupmenu.cpp +++ b/src/gui/popups/popupmenu.cpp @@ -2664,6 +2664,9 @@ void PopupMenu::showPlayerGMCommands() // TRANSLATORS: check player ip mBrowserBox->addRow("ipcheck", _("Check ip")); // TRANSLATORS: popup menu item + // TRANSLATORS: show player level + mBrowserBox->addRow("/showlevel 'NAME'", _("Show level")); + // TRANSLATORS: popup menu item // TRANSLATORS: gm commands mBrowserBox->addRow("/gmcommands 'NAME'", _("Show commands")); // TRANSLATORS: popup menu item diff --git a/src/input/inputactionmap.h b/src/input/inputactionmap.h index 4ffd21800..8e834168d 100644 --- a/src/input/inputactionmap.h +++ b/src/input/inputactionmap.h @@ -5287,6 +5287,12 @@ static const InputActionData inputActionData "gmcharcommands|playerchargmcommands|playercharcommands", UseArgs_true, Protected_true}, + {"keyCommandShowLevel", + defaultAction(&Actions::commandShowLevel), + InputCondition::INGAME, + "showlevel|exp", + UseArgs_true, + Protected_true}, }; #undef defaultAction diff --git a/src/net/adminhandler.h b/src/net/adminhandler.h index 31dd89f02..55568fe6d 100644 --- a/src/net/adminhandler.h +++ b/src/net/adminhandler.h @@ -110,6 +110,8 @@ class AdminHandler notfinal virtual void playerGmCommands(const std::string &name) const = 0; virtual void playerCharGmCommands(const std::string &name) const = 0; + + virtual void showLevel(const std::string &name) const = 0; }; } // namespace Net diff --git a/src/net/eathena/adminhandler.cpp b/src/net/eathena/adminhandler.cpp index f5f5099ae..b2a898cca 100644 --- a/src/net/eathena/adminhandler.cpp +++ b/src/net/eathena/adminhandler.cpp @@ -203,4 +203,12 @@ void AdminHandler::playerCharGmCommands(const std::string &name) const chatHandler->talk("#charcommands " + name, GENERAL_CHANNEL); } +void AdminHandler::showLevel(const std::string &name) const +{ + if (name.empty() || (localPlayer && name == localPlayer->getName())) + chatHandler->talk("@exp", GENERAL_CHANNEL); + else + chatHandler->talk("#exp " + name, GENERAL_CHANNEL); +} + } // namespace EAthena diff --git a/src/net/eathena/adminhandler.h b/src/net/eathena/adminhandler.h index c84368d8b..832aaab16 100644 --- a/src/net/eathena/adminhandler.h +++ b/src/net/eathena/adminhandler.h @@ -86,6 +86,8 @@ class AdminHandler final : public Ea::AdminHandler void playerCharGmCommands(const std::string &name) const override final; + void showLevel(const std::string &name) const override final; + protected: static std::string mStatsName; }; diff --git a/src/net/tmwa/adminhandler.cpp b/src/net/tmwa/adminhandler.cpp index 91a1985b1..7b5f9d9b9 100644 --- a/src/net/tmwa/adminhandler.cpp +++ b/src/net/tmwa/adminhandler.cpp @@ -154,4 +154,8 @@ void AdminHandler::playerCharGmCommands(const std::string &name A_UNUSED) const { } +void AdminHandler::showLevel(const std::string &name A_UNUSED) const +{ +} + } // namespace TmwAthena diff --git a/src/net/tmwa/adminhandler.h b/src/net/tmwa/adminhandler.h index 35a12913a..58ad0fb22 100644 --- a/src/net/tmwa/adminhandler.h +++ b/src/net/tmwa/adminhandler.h @@ -89,6 +89,8 @@ class AdminHandler final : public Ea::AdminHandler void playerCharGmCommands(const std::string &name) const override final A_CONST; + + void showLevel(const std::string &name) const override final A_CONST; }; } // namespace TmwAthena -- cgit v1.2.3-60-g2f50