summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVanessa Ezekowitz <vanessaezekowitz@gmail.com>2017-03-06 14:20:11 -0500
committerGitHub <noreply@github.com>2017-03-06 14:20:11 -0500
commit663d272870be0c0812c85d942e0245ceb150ccce (patch)
tree31a4b646ff342379535c8904b8d999613be5487c
parent32b6ca98161c1101393107db003da601bd7b4197 (diff)
parent5f1919d2bc0f56f18cccfb1cf01beeb41422bbc5 (diff)
Merge pull request #306 from Thomas--S/patch-1
Update has_locked_chest_privilege to current minetest_game function
-rw-r--r--technic_chests/common.lua28
1 files changed, 26 insertions, 2 deletions
diff --git a/technic_chests/common.lua b/technic_chests/common.lua
index 47054f5..b8e30a4 100644
--- a/technic_chests/common.lua
+++ b/technic_chests/common.lua
@@ -65,7 +65,31 @@ function technic.chests.on_inv_take(pos, listname, index, stack, player)
..minetest.pos_to_string(pos))
end
-function has_locked_chest_privilege(meta, player)
- return player:get_player_name() == meta:get_string("owner")
+local function has_locked_chest_privilege(meta, player)
+ if player then
+ if minetest.check_player_privs(player, "protection_bypass") then
+ return true
+ end
+ else
+ return false
+ end
+
+ -- is player wielding the right key?
+ local item = player:get_wielded_item()
+ if item:get_name() == "default:key" then
+ local key_meta = minetest.parse_json(item:get_metadata())
+ local secret = meta:get_string("key_lock_secret")
+ if secret ~= key_meta.secret then
+ return false
+ end
+
+ return true
+ end
+
+ if player:get_player_name() ~= meta:get_string("owner") then
+ return false
+ end
+
+ return true
end