diff options
author | Andrew Ward <rw@rubenwardy.com> | 2018-03-28 16:04:41 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-28 16:04:41 +0100 |
commit | 2323842dd3dd336b087ca3cf9756e0680b3a1244 (patch) | |
tree | 6b76f139e42872c8457c991925a5a2e6d41b85c9 /src/server.cpp | |
parent | 040b878cd5f77f6b44622b7c00255b4981500dc8 (diff) | |
download | minetest-2323842dd3dd336b087ca3cf9756e0680b3a1244.tar.xz |
Add formspec theming using prepended strings
Diffstat (limited to 'src/server.cpp')
-rw-r--r-- | src/server.cpp | 22 |
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); |