mirror of
				https://github.com/luanti-org/minetest_game.git
				synced 2025-11-04 09:15:29 +01:00 
			
		
		
		
	Creative: Prevent unauthorized item access (#1840)
This commit is contained in:
		@@ -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")
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user