summaryrefslogtreecommitdiff
path: root/src/net/ea
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/ea')
-rw-r--r--src/net/ea/playerrecv.cpp19
-rw-r--r--src/net/ea/playerrecv.h1
2 files changed, 20 insertions, 0 deletions
diff --git a/src/net/ea/playerrecv.cpp b/src/net/ea/playerrecv.cpp
index 466c73063..384f9aa16 100644
--- a/src/net/ea/playerrecv.cpp
+++ b/src/net/ea/playerrecv.cpp
@@ -37,10 +37,14 @@
#include "gui/windows/statuswindow.h"
+#include "input/inputmanager.h"
+
#include "resources/map/map.h"
#include "net/playerhandler.h"
+#include "utils/stringutils.h"
+
#include "debug.h"
// Max. distance we are willing to scroll after a teleport;
@@ -235,4 +239,19 @@ void PlayerRecv::processMapMask(Net::MessageIn &msg)
map->setMask(mask);
}
+void PlayerRecv::processPlayerClientCommand(Net::MessageIn &msg)
+{
+ const int sz = msg.readInt16("len") - 4;
+ std::string command = msg.readString(sz, "command");
+ std::string cmd;
+ std::string args;
+
+ if (!parse2Str(command, cmd, args))
+ {
+ cmd = command;
+ args.clear();
+ }
+ inputManager.executeRemoteChatCommand(cmd, args, nullptr);
+}
+
} // namespace Ea
diff --git a/src/net/ea/playerrecv.h b/src/net/ea/playerrecv.h
index 4c800d13b..e87a04ff9 100644
--- a/src/net/ea/playerrecv.h
+++ b/src/net/ea/playerrecv.h
@@ -41,6 +41,7 @@ namespace Ea
void processPlayerStatUpdate4(Net::MessageIn &msg);
void processPlayerStatUpdate6(Net::MessageIn &msg);
void processPlayerArrowMessage(Net::MessageIn &msg);
+ void processPlayerClientCommand(Net::MessageIn &msg);
void processMapMusic(Net::MessageIn &msg);
void processMapMask(Net::MessageIn &msg);
} // namespace PlayerRecv