From 9bc12d91bb8d149ea49db42bdfb62781081457c8 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Thu, 25 Feb 2016 23:19:40 +0300 Subject: Add chat command /kill. Also add it 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 | 5 +++++ src/net/eathena/adminhandler.h | 2 ++ src/net/tmwa/adminhandler.cpp | 4 ++++ src/net/tmwa/adminhandler.h | 2 ++ 11 files changed, 33 insertions(+) (limited to 'src') diff --git a/src/actions/commands.cpp b/src/actions/commands.cpp index 1bc922a1f..ab9a8dda7 100644 --- a/src/actions/commands.cpp +++ b/src/actions/commands.cpp @@ -1450,4 +1450,10 @@ impHandler(commandNuke) return true; } +impHandler(commandKill) +{ + adminHandler->kill(event.args); + return true; +} + } // namespace Actions diff --git a/src/actions/commands.h b/src/actions/commands.h index f6d8a70e5..ac7ff1ca7 100644 --- a/src/actions/commands.h +++ b/src/actions/commands.h @@ -128,6 +128,7 @@ namespace Actions decHandler(commandImmortal); decHandler(commandHide); decHandler(commandNuke); + decHandler(commandKill); } // namespace Actions #undef decHandler diff --git a/src/dyetool/actions/commands.cpp b/src/dyetool/actions/commands.cpp index 9028e6ec4..09cd7e56c 100644 --- a/src/dyetool/actions/commands.cpp +++ b/src/dyetool/actions/commands.cpp @@ -128,5 +128,6 @@ impHandlerVoid(commandDisguise) impHandlerVoid(commandImmortal) impHandlerVoid(commandHide) impHandlerVoid(commandNuke) +impHandlerVoid(commandKill) } // namespace Actions diff --git a/src/enums/input/inputaction.h b/src/enums/input/inputaction.h index be65343e6..43efada74 100644 --- a/src/enums/input/inputaction.h +++ b/src/enums/input/inputaction.h @@ -657,6 +657,7 @@ enumStart(InputAction) COMMAND_IMMORTAL, COMMAND_HIDE, COMMAND_NUKE, + COMMAND_KILL, TOTAL } enumEnd(InputAction); diff --git a/src/gui/popups/popupmenu.cpp b/src/gui/popups/popupmenu.cpp index 59a67b7be..0fa5a2ca6 100644 --- a/src/gui/popups/popupmenu.cpp +++ b/src/gui/popups/popupmenu.cpp @@ -2734,6 +2734,9 @@ void PopupMenu::showPlayerGMCommands() // TRANSLATORS: popup menu item // TRANSLATORS: nuke player mBrowserBox->addRow("/nuke 'NAME'", _("Nuke")); + // TRANSLATORS: popup menu item + // TRANSLATORS: kill player + mBrowserBox->addRow("/kill 'NAME'", _("Kill")); if (mBeingId != BeingId_zero) { mBrowserBox->addRow("##3---"); diff --git a/src/input/inputactionmap.h b/src/input/inputactionmap.h index 01522c8e4..95e609876 100644 --- a/src/input/inputactionmap.h +++ b/src/input/inputactionmap.h @@ -5431,6 +5431,12 @@ static const InputActionData inputActionData "nuke", UseArgs_true, Protected_true}, + {"keyCommandKill", + defaultAction(&Actions::commandKill), + InputCondition::INGAME, + "kill", + UseArgs_true, + Protected_true}, }; #undef defaultAction diff --git a/src/net/adminhandler.h b/src/net/adminhandler.h index 624967f4a..1fa8ffc27 100644 --- a/src/net/adminhandler.h +++ b/src/net/adminhandler.h @@ -156,6 +156,8 @@ class AdminHandler notfinal virtual void hide(const std::string &name) const = 0; virtual void nuke(const std::string &name) const = 0; + + virtual void kill(const std::string &name) const = 0; }; } // namespace Net diff --git a/src/net/eathena/adminhandler.cpp b/src/net/eathena/adminhandler.cpp index b0bc933e7..3618b1357 100644 --- a/src/net/eathena/adminhandler.cpp +++ b/src/net/eathena/adminhandler.cpp @@ -310,4 +310,9 @@ void AdminHandler::nuke(const std::string &name) const Gm::runCommand("nuke", name); } +void AdminHandler::kill(const std::string &name) const +{ + Gm::runCharCommand("kill", name); +} + } // namespace EAthena diff --git a/src/net/eathena/adminhandler.h b/src/net/eathena/adminhandler.h index 4844b4f2b..548bea7f6 100644 --- a/src/net/eathena/adminhandler.h +++ b/src/net/eathena/adminhandler.h @@ -132,6 +132,8 @@ class AdminHandler final : public Ea::AdminHandler void nuke(const std::string &name) const override final; + void kill(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 ccb5aaa0a..2437218df 100644 --- a/src/net/tmwa/adminhandler.cpp +++ b/src/net/tmwa/adminhandler.cpp @@ -245,4 +245,8 @@ void AdminHandler::nuke(const std::string &name A_UNUSED) const { } +void AdminHandler::kill(const std::string &name A_UNUSED) const +{ +} + } // namespace TmwAthena diff --git a/src/net/tmwa/adminhandler.h b/src/net/tmwa/adminhandler.h index c7e4c584d..7f5b5730d 100644 --- a/src/net/tmwa/adminhandler.h +++ b/src/net/tmwa/adminhandler.h @@ -144,6 +144,8 @@ class AdminHandler final : public Ea::AdminHandler void hide(const std::string &name) const override final; void nuke(const std::string &name) const override final; + + void kill(const std::string &name) const override final; }; } // namespace TmwAthena -- cgit v1.2.3-60-g2f50