From 0b448599f2a1422630e80fbd12f7c6fd9792460e Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Thu, 25 Feb 2016 21:34:05 +0300 Subject: Add chat command /alive. 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 | 6 +----- src/input/inputactionmap.h | 6 ++++++ src/net/adminhandler.h | 2 +- src/net/ea/adminhandler.cpp | 5 ----- src/net/ea/adminhandler.h | 2 -- src/net/eathena/adminhandler.cpp | 5 +++++ src/net/eathena/adminhandler.h | 2 ++ src/net/tmwa/adminhandler.cpp | 6 ++++++ src/net/tmwa/adminhandler.h | 2 ++ 13 files changed, 32 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/actions/commands.cpp b/src/actions/commands.cpp index b3412f50a..3f12c0ed2 100644 --- a/src/actions/commands.cpp +++ b/src/actions/commands.cpp @@ -1414,4 +1414,10 @@ impHandler(commandHeal) return true; } +impHandler(commandAlive) +{ + adminHandler->alive(event.args); + return true; +} + } // namespace Actions diff --git a/src/actions/commands.h b/src/actions/commands.h index c84a4de54..af8a9d64d 100644 --- a/src/actions/commands.h +++ b/src/actions/commands.h @@ -123,6 +123,7 @@ namespace Actions decHandler(commandKiller); decHandler(commandKillable); decHandler(commandHeal); + decHandler(commandAlive); } // namespace Actions #undef decHandler diff --git a/src/dyetool/actions/commands.cpp b/src/dyetool/actions/commands.cpp index 5473ee04e..9908193f4 100644 --- a/src/dyetool/actions/commands.cpp +++ b/src/dyetool/actions/commands.cpp @@ -123,5 +123,6 @@ impHandlerVoid(commandGotoNpc) impHandlerVoid(commandKiller) impHandlerVoid(commandKillable) impHandlerVoid(commandHeal) +impHandlerVoid(commandAlive) } // namespace Actions diff --git a/src/enums/input/inputaction.h b/src/enums/input/inputaction.h index ca1fe01a2..8deb60cfc 100644 --- a/src/enums/input/inputaction.h +++ b/src/enums/input/inputaction.h @@ -652,6 +652,7 @@ enumStart(InputAction) COMMAND_KILLER, COMMAND_KILLABLE, COMMAND_HEAL, + COMMAND_ALIVE, TOTAL } enumEnd(InputAction); diff --git a/src/gui/popups/popupmenu.cpp b/src/gui/popups/popupmenu.cpp index 34d29ef10..d442c0d99 100644 --- a/src/gui/popups/popupmenu.cpp +++ b/src/gui/popups/popupmenu.cpp @@ -1338,10 +1338,6 @@ void PopupMenu::handleLink(const std::string &link, { adminHandler->recallName(mNick); } - else if (link == "revive" && !mNick.empty()) - { - adminHandler->reviveName(mNick); - } else if (link == "ipcheck" && !mNick.empty()) { adminHandler->ipcheckName(mNick); @@ -2732,7 +2728,7 @@ void PopupMenu::showPlayerGMCommands() mBrowserBox->addRow("recall", _("Recall")); // TRANSLATORS: popup menu item // TRANSLATORS: revive player - mBrowserBox->addRow("revive", _("Revive")); + mBrowserBox->addRow("/alive 'NAME'", _("Revive")); if (!legacy && mBeingId != BeingId_zero) { mBrowserBox->addRow("##3---"); diff --git a/src/input/inputactionmap.h b/src/input/inputactionmap.h index 299af0268..8f839e716 100644 --- a/src/input/inputactionmap.h +++ b/src/input/inputactionmap.h @@ -5401,6 +5401,12 @@ static const InputActionData inputActionData "gmheal", UseArgs_true, Protected_true}, + {"keyCommandAlive", + defaultAction(&Actions::commandAlive), + InputCondition::INGAME, + "alive|revive", + UseArgs_true, + Protected_true}, }; #undef defaultAction diff --git a/src/net/adminhandler.h b/src/net/adminhandler.h index b741fd7a1..04ec9bb6f 100644 --- a/src/net/adminhandler.h +++ b/src/net/adminhandler.h @@ -80,7 +80,7 @@ class AdminHandler notfinal virtual void recallName(const std::string &name) const = 0; - virtual void reviveName(const std::string &name) const = 0; + virtual void alive(const std::string &name) const = 0; virtual void ipcheckName(const std::string &name) const = 0; diff --git a/src/net/ea/adminhandler.cpp b/src/net/ea/adminhandler.cpp index a45cb2d4c..27e3adbe7 100644 --- a/src/net/ea/adminhandler.cpp +++ b/src/net/ea/adminhandler.cpp @@ -59,11 +59,6 @@ void AdminHandler::unbanName(const std::string &name) const Gm::runCommand("unban", name); } -void AdminHandler::reviveName(const std::string &name) const -{ - Gm::runCommand("revive", name); -} - void AdminHandler::ipcheckName(const std::string &name) const { Gm::runCommand("ipcheck", name); diff --git a/src/net/ea/adminhandler.h b/src/net/ea/adminhandler.h index 3d6adf433..9dcbbc9bd 100644 --- a/src/net/ea/adminhandler.h +++ b/src/net/ea/adminhandler.h @@ -51,8 +51,6 @@ class AdminHandler notfinal : public Net::AdminHandler void unbanName(const std::string &name) const override final; - void reviveName(const std::string &name) const override final; - void ipcheckName(const std::string &name) const override final; void slide(const int x, const int y) const override final; diff --git a/src/net/eathena/adminhandler.cpp b/src/net/eathena/adminhandler.cpp index 1abdb3b01..1965cee9d 100644 --- a/src/net/eathena/adminhandler.cpp +++ b/src/net/eathena/adminhandler.cpp @@ -285,4 +285,9 @@ void AdminHandler::heal(const std::string &name) const Gm::runCharCommand("heal", name); } +void AdminHandler::alive(const std::string &name) const +{ + Gm::runCharCommand("alive", name); +} + } // namespace EAthena diff --git a/src/net/eathena/adminhandler.h b/src/net/eathena/adminhandler.h index 8897dd58d..dcb7fd7b8 100644 --- a/src/net/eathena/adminhandler.h +++ b/src/net/eathena/adminhandler.h @@ -122,6 +122,8 @@ class AdminHandler final : public Ea::AdminHandler void heal(const std::string &name) const override final; + void alive(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 f9f85e8be..6fcc1bd6e 100644 --- a/src/net/tmwa/adminhandler.cpp +++ b/src/net/tmwa/adminhandler.cpp @@ -223,4 +223,10 @@ void AdminHandler::heal(const std::string &name A_UNUSED) const { } +void AdminHandler::alive(const std::string &name) const +{ + Gm::runCommand("revive", name); +} + + } // namespace TmwAthena diff --git a/src/net/tmwa/adminhandler.h b/src/net/tmwa/adminhandler.h index 2d06e88d3..99a141517 100644 --- a/src/net/tmwa/adminhandler.h +++ b/src/net/tmwa/adminhandler.h @@ -134,6 +134,8 @@ class AdminHandler final : public Ea::AdminHandler void killable(const std::string &name) const override final A_CONST; void heal(const std::string &name) const override final A_CONST; + + void alive(const std::string &name) const override final; }; } // namespace TmwAthena -- cgit v1.2.3-60-g2f50