From 8fcd2e6f3002db388b1273ee3904285eb3ce8c54 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Fri, 26 Feb 2016 01:19:03 +0300 Subject: Add chat command /unjail. Also add it to player context menu. --- src/actions/commands.cpp | 9 +++++++++ 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 | 5 +++++ src/net/eathena/adminhandler.h | 2 ++ src/net/tmwa/adminhandler.cpp | 4 ++++ src/net/tmwa/adminhandler.h | 2 ++ 11 files changed, 36 insertions(+) diff --git a/src/actions/commands.cpp b/src/actions/commands.cpp index 1ad0cf9a9..a1b746852 100644 --- a/src/actions/commands.cpp +++ b/src/actions/commands.cpp @@ -1465,4 +1465,13 @@ impHandler(commandJail) return true; } +impHandler(commandUnjail) +{ + const std::string args = event.args; + if (args.empty()) + return false; + adminHandler->unjail(args); + return true; +} + } // namespace Actions diff --git a/src/actions/commands.h b/src/actions/commands.h index 655b039d0..883b13d7b 100644 --- a/src/actions/commands.h +++ b/src/actions/commands.h @@ -130,6 +130,7 @@ namespace Actions decHandler(commandNuke); decHandler(commandKill); decHandler(commandJail); + decHandler(commandUnjail); } // namespace Actions #undef decHandler diff --git a/src/dyetool/actions/commands.cpp b/src/dyetool/actions/commands.cpp index 5c7398e04..cfd21fdd0 100644 --- a/src/dyetool/actions/commands.cpp +++ b/src/dyetool/actions/commands.cpp @@ -130,5 +130,6 @@ impHandlerVoid(commandHide) impHandlerVoid(commandNuke) impHandlerVoid(commandKill) impHandlerVoid(commandJail) +impHandlerVoid(commandUnjail) } // namespace Actions diff --git a/src/enums/input/inputaction.h b/src/enums/input/inputaction.h index 516f20d27..641408b66 100644 --- a/src/enums/input/inputaction.h +++ b/src/enums/input/inputaction.h @@ -659,6 +659,7 @@ enumStart(InputAction) COMMAND_NUKE, COMMAND_KILL, COMMAND_JAIL, + COMMAND_UNJAIL, TOTAL } enumEnd(InputAction); diff --git a/src/gui/popups/popupmenu.cpp b/src/gui/popups/popupmenu.cpp index 866e8cdf4..7ad1a63f3 100644 --- a/src/gui/popups/popupmenu.cpp +++ b/src/gui/popups/popupmenu.cpp @@ -2770,6 +2770,9 @@ void PopupMenu::showPlayerGMCommands() // TRANSLATORS: send player to jail mBrowserBox->addRow("/jail 'NAME'", _("Jail")); // TRANSLATORS: popup menu item + // TRANSLATORS: restore player from jail + mBrowserBox->addRow("/unjail 'NAME'", _("Unjail")); + // TRANSLATORS: popup menu item // TRANSLATORS: hide player mBrowserBox->addRow("/hide 'NAME'", _("Hide")); mBrowserBox->addRow("##3---"); diff --git a/src/input/inputactionmap.h b/src/input/inputactionmap.h index 90098ef3b..80bbe090a 100644 --- a/src/input/inputactionmap.h +++ b/src/input/inputactionmap.h @@ -5443,6 +5443,12 @@ static const InputActionData inputActionData "jail", UseArgs_true, Protected_true}, + {"keyCommandUnjail", + defaultAction(&Actions::commandUnjail), + InputCondition::INGAME, + "unjail", + UseArgs_true, + Protected_true}, }; #undef defaultAction diff --git a/src/net/adminhandler.h b/src/net/adminhandler.h index 1ea6cb325..000938240 100644 --- a/src/net/adminhandler.h +++ b/src/net/adminhandler.h @@ -160,6 +160,8 @@ class AdminHandler notfinal virtual void kill(const std::string &name) const = 0; virtual void jail(const std::string &name) const = 0; + + virtual void unjail(const std::string &name) const = 0; }; } // namespace Net diff --git a/src/net/eathena/adminhandler.cpp b/src/net/eathena/adminhandler.cpp index 92cb06531..1ee373043 100644 --- a/src/net/eathena/adminhandler.cpp +++ b/src/net/eathena/adminhandler.cpp @@ -320,4 +320,9 @@ void AdminHandler::jail(const std::string &name) const Gm::runCommand("jail", name); } +void AdminHandler::unjail(const std::string &name) const +{ + Gm::runCommand("unjail", name); +} + } // namespace EAthena diff --git a/src/net/eathena/adminhandler.h b/src/net/eathena/adminhandler.h index 23419ad27..995669f76 100644 --- a/src/net/eathena/adminhandler.h +++ b/src/net/eathena/adminhandler.h @@ -136,6 +136,8 @@ class AdminHandler final : public Ea::AdminHandler void jail(const std::string &name) const override final; + void unjail(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 488a9d05c..7de0cb247 100644 --- a/src/net/tmwa/adminhandler.cpp +++ b/src/net/tmwa/adminhandler.cpp @@ -253,4 +253,8 @@ void AdminHandler::jail(const std::string &name A_UNUSED) const { } +void AdminHandler::unjail(const std::string &name A_UNUSED) const +{ +} + } // namespace TmwAthena diff --git a/src/net/tmwa/adminhandler.h b/src/net/tmwa/adminhandler.h index 8b5c65dec..c45437113 100644 --- a/src/net/tmwa/adminhandler.h +++ b/src/net/tmwa/adminhandler.h @@ -148,6 +148,8 @@ class AdminHandler final : public Ea::AdminHandler void kill(const std::string &name) const override final; void jail(const std::string &name) const override final; + + void unjail(const std::string &name) const override final; }; } // namespace TmwAthena -- cgit v1.2.3-70-g09d2