diff options
-rw-r--r-- | src/net/adminhandler.h | 2 | ||||
-rw-r--r-- | src/net/ea/adminhandler.cpp | 16 | ||||
-rw-r--r-- | src/net/ea/adminhandler.h | 2 |
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; |