From a1d35f3d69dbed8cd9ce317a11f2bd2f7c816c75 Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Sat, 22 Jul 2017 20:16:25 +0200 Subject: [PATCH] Creative: Prevent unauthorized item access (#1840) --- mods/creative/inventory.lua | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/mods/creative/inventory.lua b/mods/creative/inventory.lua index 0e1d813e..00b2aa55 100644 --- a/mods/creative/inventory.lua +++ b/mods/creative/inventory.lua @@ -10,22 +10,25 @@ function creative.init_creative_inventory(player) minetest.create_detached_inventory("creative_" .. player_name, { allow_move = function(inv, from_list, from_index, to_list, to_index, count, player2) - if not to_list == "main" then - return count - else + local name = player2 and player2:get_player_name() or "" + if not creative.is_enabled_for(name) or + to_list == "main" then return 0 end + return count end, allow_put = function(inv, listname, index, stack, player2) return 0 end, allow_take = function(inv, listname, index, stack, player2) + local name = player2 and player2:get_player_name() or "" + if not creative.is_enabled_for(name) then + return 0 + end return -1 end, on_move = function(inv, from_list, from_index, to_list, to_index, count, player2) end, - on_put = function(inv, listname, index, stack, player2) - end, on_take = function(inv, listname, index, stack, player2) if stack and stack:get_count() > 0 then minetest.log("action", player_name .. " takes " .. stack:get_name().. " from creative inventory") -- 2.25.1