aboutsummaryrefslogtreecommitdiff
path: root/src/server.cpp
diff options
context:
space:
mode:
authorAndrew Ward <rw@rubenwardy.com>2018-03-28 16:04:41 +0100
committerGitHub <noreply@github.com>2018-03-28 16:04:41 +0100
commit2323842dd3dd336b087ca3cf9756e0680b3a1244 (patch)
tree6b76f139e42872c8457c991925a5a2e6d41b85c9 /src/server.cpp
parent040b878cd5f77f6b44622b7c00255b4981500dc8 (diff)
downloadminetest-2323842dd3dd336b087ca3cf9756e0680b3a1244.tar.xz
Add formspec theming using prepended strings
Diffstat (limited to 'src/server.cpp')
-rw-r--r--src/server.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/server.cpp b/src/server.cpp
index 774f3ef12..8be223f74 100644
--- a/src/server.cpp
+++ b/src/server.cpp
@@ -1870,7 +1870,7 @@ void Server::SendPlayerInventoryFormspec(session_t peer_id)
{
RemotePlayer *player = m_env->getPlayer(peer_id);
assert(player);
- if(player->getPeerId() == PEER_ID_INEXISTENT)
+ if (player->getPeerId() == PEER_ID_INEXISTENT)
return;
NetworkPacket pkt(TOCLIENT_INVENTORY_FORMSPEC, 0, peer_id);
@@ -1878,6 +1878,18 @@ void Server::SendPlayerInventoryFormspec(session_t peer_id)
Send(&pkt);
}
+void Server::SendPlayerFormspecPrepend(session_t peer_id)
+{
+ RemotePlayer *player = m_env->getPlayer(peer_id);
+ assert(player);
+ if (player->getPeerId() == PEER_ID_INEXISTENT)
+ return;
+
+ NetworkPacket pkt(TOCLIENT_FORMSPEC_PREPEND, 0, peer_id);
+ pkt << FORMSPEC_VERSION_STRING + player->formspec_prepend;
+ Send(&pkt);
+}
+
u32 Server::SendActiveObjectRemoveAdd(session_t peer_id, const std::string &datas)
{
NetworkPacket pkt(TOCLIENT_ACTIVE_OBJECT_REMOVE_ADD, datas.size(), peer_id);
@@ -2918,6 +2930,14 @@ void Server::reportInventoryFormspecModified(const std::string &name)
SendPlayerInventoryFormspec(player->getPeerId());
}
+void Server::reportFormspecPrependModified(const std::string &name)
+{
+ RemotePlayer *player = m_env->getPlayer(name.c_str());
+ if (!player)
+ return;
+ SendPlayerFormspecPrepend(player->getPeerId());
+}
+
void Server::setIpBanned(const std::string &ip, const std::string &name)
{
m_banmanager->add(ip, name);