summaryrefslogtreecommitdiff
path: root/src/net
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2016-02-25 00:53:34 +0300
committerAndrei Karas <akaras@inbox.ru>2016-02-25 00:53:34 +0300
commit14800b09f0cc47ab4452039c45ba99295a40e2d8 (patch)
tree1e5ff4911580cd509d9f21bf8f8ff942302e3a81 /src/net
parentd0967473d6f1e356592e8adbe46fcbbe04c60393 (diff)
downloadmanaplus-14800b09f0cc47ab4452039c45ba99295a40e2d8.tar.gz
manaplus-14800b09f0cc47ab4452039c45ba99295a40e2d8.tar.bz2
manaplus-14800b09f0cc47ab4452039c45ba99295a40e2d8.tar.xz
manaplus-14800b09f0cc47ab4452039c45ba99295a40e2d8.zip
Add chat command /saveposition. Also add it to player context menu.
Diffstat (limited to 'src/net')
-rw-r--r--src/net/adminhandler.h2
-rw-r--r--src/net/eathena/adminhandler.cpp8
-rw-r--r--src/net/eathena/adminhandler.h2
-rw-r--r--src/net/tmwa/adminhandler.cpp4
-rw-r--r--src/net/tmwa/adminhandler.h3
5 files changed, 19 insertions, 0 deletions
diff --git a/src/net/adminhandler.h b/src/net/adminhandler.h
index 63a30dc07..963356a81 100644
--- a/src/net/adminhandler.h
+++ b/src/net/adminhandler.h
@@ -134,6 +134,8 @@ class AdminHandler notfinal
virtual void spawnSlaveClone(const std::string &name) const = 0;
virtual void spawnEvilClone(const std::string &name) const = 0;
+
+ virtual void savePosition(const std::string &name) const = 0;
};
} // namespace Net
diff --git a/src/net/eathena/adminhandler.cpp b/src/net/eathena/adminhandler.cpp
index 16a4e999d..4c7b776f9 100644
--- a/src/net/eathena/adminhandler.cpp
+++ b/src/net/eathena/adminhandler.cpp
@@ -273,4 +273,12 @@ void AdminHandler::spawnEvilClone(const std::string &name) const
chatHandler->talk("@evilclone " + name, GENERAL_CHANNEL);
}
+void AdminHandler::savePosition(const std::string &name) const
+{
+ if (name.empty() || (localPlayer && name == localPlayer->getName()))
+ chatHandler->talk("@save", GENERAL_CHANNEL);
+ else
+ chatHandler->talk("#save " + name, GENERAL_CHANNEL);
+}
+
} // namespace EAthena
diff --git a/src/net/eathena/adminhandler.h b/src/net/eathena/adminhandler.h
index 1808231b5..d0212a027 100644
--- a/src/net/eathena/adminhandler.h
+++ b/src/net/eathena/adminhandler.h
@@ -108,6 +108,8 @@ class AdminHandler final : public Ea::AdminHandler
void spawnEvilClone(const std::string &name) const override final;
+ void savePosition(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 a0c6e5457..f9180a7d8 100644
--- a/src/net/tmwa/adminhandler.cpp
+++ b/src/net/tmwa/adminhandler.cpp
@@ -198,4 +198,8 @@ void AdminHandler::spawnEvilClone(const std::string &name A_UNUSED) const
{
}
+void AdminHandler::savePosition(const std::string &name A_UNUSED) const
+{
+}
+
} // namespace TmwAthena
diff --git a/src/net/tmwa/adminhandler.h b/src/net/tmwa/adminhandler.h
index 94025716a..0aaa64f17 100644
--- a/src/net/tmwa/adminhandler.h
+++ b/src/net/tmwa/adminhandler.h
@@ -118,6 +118,9 @@ class AdminHandler final : public Ea::AdminHandler
void spawnEvilClone(const std::string &name) const override final
A_CONST;
+
+ void savePosition(const std::string &name) const override final
+ A_CONST;
};
} // namespace TmwAthena