summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/net/adminhandler.h2
-rw-r--r--src/net/ea/adminhandler.cpp16
-rw-r--r--src/net/ea/adminhandler.h2
3 files changed, 20 insertions, 0 deletions
diff --git a/src/net/adminhandler.h b/src/net/adminhandler.h
index 328290ea8..ea3acb695 100644
--- a/src/net/adminhandler.h
+++ b/src/net/adminhandler.h
@@ -70,6 +70,8 @@ class AdminHandler notfinal
virtual void warp(const std::string &map,
const int x, const int y) const = 0;
+ virtual void slide(const int x, const int y) const = 0;
+
virtual void createItems(const int id,
const ItemColor color,
const int amount) const = 0;
diff --git a/src/net/ea/adminhandler.cpp b/src/net/ea/adminhandler.cpp
index 6815164c4..bccd2062d 100644
--- a/src/net/ea/adminhandler.cpp
+++ b/src/net/ea/adminhandler.cpp
@@ -22,9 +22,12 @@
#include "net/ea/adminhandler.h"
+#include "game.h"
+
#include "gui/chatconsts.h"
#include "net/chathandler.h"
+#include "net/serverfeatures.h"
#include "utils/stringutils.h"
@@ -76,4 +79,17 @@ void AdminHandler::createItems(const int id,
GENERAL_CHANNEL);
}
+void AdminHandler::slide(const int x, const int y) const
+{
+ if (serverFeatures->haveSlide())
+ {
+ chatHandler->talk(strprintf("@slide %d %d", x, y),
+ GENERAL_CHANNEL);
+ }
+ else
+ {
+ warp(Game::instance()->getCurrentMapName(), x, y);
+ }
+}
+
} // namespace Ea
diff --git a/src/net/ea/adminhandler.h b/src/net/ea/adminhandler.h
index 9849f4e31..c73fbafde 100644
--- a/src/net/ea/adminhandler.h
+++ b/src/net/ea/adminhandler.h
@@ -55,6 +55,8 @@ class AdminHandler notfinal : public Net::AdminHandler
void ipcheckName(const std::string &name) const override final;
+ void slide(const int x, const int y) const override final;
+
void createItems(const int id,
const ItemColor color,
const int amount) const override final;