From 8bfa248ef7a3a410d4531848cfce75d08a8c4ec7 Mon Sep 17 00:00:00 2001 From: cora Date: Sun, 30 Jan 2022 01:07:26 +0100 Subject: [PATCH 1/2] set privs only when changed setting privileges causes mt to write to the player db. this changes shields so it only sets the interact privilege when it has actually changed. --- mods/ITEMS/mcl_shields/init.lua | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mods/ITEMS/mcl_shields/init.lua b/mods/ITEMS/mcl_shields/init.lua index 9eebd3e80..914b55755 100644 --- a/mods/ITEMS/mcl_shields/init.lua +++ b/mods/ITEMS/mcl_shields/init.lua @@ -182,8 +182,10 @@ end local function set_interact(player, interact) local player_name = player:get_player_name() local privs = minetest.get_player_privs(player_name) - privs.interact = interact - minetest.set_player_privs(player_name, privs) + if privs.interact ~= interact then + privs.interact = interact + minetest.set_player_privs(player_name, privs) + end end local shield_hud = {} From 5cda117073fe9729eba9486b4e50dd7afb8e8bc4 Mon Sep 17 00:00:00 2001 From: cora Date: Sun, 30 Jan 2022 01:08:32 +0100 Subject: [PATCH 2/2] set hud flags only when changed Setting hud flags (and other player properties) when they have not changed results in unneccessary network traffic. --- mods/ITEMS/mcl_shields/init.lua | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mods/ITEMS/mcl_shields/init.lua b/mods/ITEMS/mcl_shields/init.lua index 914b55755..3ac58fc3c 100644 --- a/mods/ITEMS/mcl_shields/init.lua +++ b/mods/ITEMS/mcl_shields/init.lua @@ -197,7 +197,12 @@ local function remove_shield_hud(player) set_shield(player, false, 1) set_shield(player, false, 2) end - player:hud_set_flags({wielditem = true}) + + local hf=player:hud_get_flags() + if not hf.wielditem then + player:hud_set_flags({wielditem = true}) + end + playerphysics.remove_physics_factor(player, "speed", "shield_speed") set_interact(player, true) end