diff options
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); |