summaryrefslogtreecommitdiff
path: root/src/server.cpp
diff options
context:
space:
mode:
authorLoïc Blot <nerzhul@users.noreply.github.com>2017-07-18 21:39:55 +0200
committerGitHub <noreply@github.com>2017-07-18 21:39:55 +0200
commit79f19b8369a0120fbf0bd0ee3739989fbbbca50e (patch)
tree0051cde3efe56d35d03aa50a5095d9b8ba04d15b /src/server.cpp
parent7e3cdf7088b1fb6744d0bd9cc903823b6e3bbfe3 (diff)
downloadminetest-79f19b8369a0120fbf0bd0ee3739989fbbbca50e.tar.gz
minetest-79f19b8369a0120fbf0bd0ee3739989fbbbca50e.tar.bz2
minetest-79f19b8369a0120fbf0bd0ee3739989fbbbca50e.zip
[CSM] Add flavour limits controlled by server (#5930)
* [CSM] Add flavour limits controlled by server Server send flavour limits to client permitting to disable or limit some Lua calls * Add limits for reading nodedefs and itemdefs * flavour: Add lookup node limits * Merge get_node_or_nil into get_node. Sending fake node doesn't make sense in CSM, just return nil if node is not available for any reason * Add node range customization when noderange flavour is enabled (default 8 nodes) * Limit nodes range & disable chat message sending by default * Bump protocol version
Diffstat (limited to 'src/server.cpp')
-rw-r--r--src/server.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/server.cpp b/src/server.cpp
index 33384816c..32e50c14f 100644
--- a/src/server.cpp
+++ b/src/server.cpp
@@ -298,6 +298,8 @@ Server::Server(
m_liquid_transform_every = g_settings->getFloat("liquid_update");
m_max_chatmessage_length = g_settings->getU16("chat_message_max_size");
+ m_csm_flavour_limits = g_settings->getU64("csm_flavour_limits");
+ m_csm_noderange_limit = g_settings->getU32("csm_flavour_noderange_limit");
}
Server::~Server()
@@ -2017,7 +2019,14 @@ void Server::SendActiveObjectMessages(u16 peer_id, const std::string &datas, boo
m_clients.send(pkt.getPeerId(),
reliable ? clientCommandFactoryTable[pkt.getCommand()].channel : 1,
&pkt, reliable);
+}
+void Server::SendCSMFlavourLimits(u16 peer_id)
+{
+ NetworkPacket pkt(TOCLIENT_CSM_FLAVOUR_LIMITS,
+ sizeof(m_csm_flavour_limits) + sizeof(m_csm_noderange_limit), peer_id);
+ pkt << m_csm_flavour_limits << m_csm_noderange_limit;
+ Send(&pkt);
}
s32 Server::playSound(const SimpleSoundSpec &spec,