summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2016-02-25 21:34:05 +0300
committerAndrei Karas <akaras@inbox.ru>2016-02-25 21:36:40 +0300
commit0b448599f2a1422630e80fbd12f7c6fd9792460e (patch)
tree835ad05cc868af0255d97995968bbafa9594eb93
parent3fe3a77e1ae0db748a8a0b8d500db24a6a964b44 (diff)
downloadmanaplus-0b448599f2a1422630e80fbd12f7c6fd9792460e.tar.gz
manaplus-0b448599f2a1422630e80fbd12f7c6fd9792460e.tar.bz2
manaplus-0b448599f2a1422630e80fbd12f7c6fd9792460e.tar.xz
manaplus-0b448599f2a1422630e80fbd12f7c6fd9792460e.zip
Add chat command /alive. Also add it to player context menu.
-rw-r--r--src/actions/commands.cpp6
-rw-r--r--src/actions/commands.h1
-rw-r--r--src/dyetool/actions/commands.cpp1
-rw-r--r--src/enums/input/inputaction.h1
-rw-r--r--src/gui/popups/popupmenu.cpp6
-rw-r--r--src/input/inputactionmap.h6
-rw-r--r--src/net/adminhandler.h2
-rw-r--r--src/net/ea/adminhandler.cpp5
-rw-r--r--src/net/ea/adminhandler.h2
-rw-r--r--src/net/eathena/adminhandler.cpp5
-rw-r--r--src/net/eathena/adminhandler.h2
-rw-r--r--src/net/tmwa/adminhandler.cpp6
-rw-r--r--src/net/tmwa/adminhandler.h2
13 files changed, 32 insertions, 13 deletions
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