mirror of
				https://github.com/kakalak-lumberJack/creative_areas.git
				synced 2025-10-31 08:05:23 +01:00 
			
		
		
		
	modstorage and inv storage
This commit is contained in:
		
							
								
								
									
										33
									
								
								init.lua
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								init.lua
									
									
									
									
									
								
							| @@ -1,5 +1,8 @@ | |||||||
| local cr_areas_file = minetest.get_worldpath().."/creative_areas.dat" | local cr_areas_file = minetest.get_worldpath().."/creative_areas.dat" | ||||||
| local cr_areas = {} | --local inv_file = minetest.get_worldpath().."/creative_areas_inv.dat" | ||||||
|  |  | ||||||
|  | local storage = minetest.get_mod_storage() | ||||||
|  | local cr_areas = minetest.deserialize(storage:get_string("cr_areas")) or {} | ||||||
| --------------- | --------------- | ||||||
| -- Functions | -- Functions | ||||||
| --------------- | --------------- | ||||||
| @@ -32,8 +35,9 @@ function make_cr_area(name, areaID) | |||||||
| 			end | 			end | ||||||
| 		end	 | 		end	 | ||||||
| 		table.insert(cr_areas, id) | 		table.insert(cr_areas, id) | ||||||
| 		write_file(cr_areas_file, cr_areas) | 		--write_file(cr_areas_file, cr_areas) | ||||||
| 		minetest.chat_send_player(name, "Area added to Creative Areas!")	 | 		storage:set_string("cr_areas", minetest.serialize(cr_areas)) | ||||||
|  | 		minetest.chat_send_player(name, "Area added to Creative Areas!") | ||||||
| 	else minetest.chat_send_player(name, "Not a valid area ID")	  | 	else minetest.chat_send_player(name, "Not a valid area ID")	  | ||||||
| 	end | 	end | ||||||
| end | end | ||||||
| @@ -75,10 +79,16 @@ end | |||||||
| --------------------- | --------------------- | ||||||
| --Initialize mod | --Initialize mod | ||||||
| ------------------- | ------------------- | ||||||
|  | --[[ | ||||||
|  | local tbl = storage:to_table()  | ||||||
|  | 	if tbl ~= nil then | ||||||
|  | 	cr_areas = tbl["fields"] | ||||||
|  | end | ||||||
|  |  | ||||||
| if cr_areas_file ~= nil then | if cr_areas_file ~= nil then | ||||||
| 	cr_areas = load_file(cr_areas_file) | 	cr_areas = load_file(cr_areas_file) | ||||||
| end | end | ||||||
|  | ]]-- | ||||||
| -- Chat Commands | -- Chat Commands | ||||||
| minetest.register_chatcommand("creative_area", { | minetest.register_chatcommand("creative_area", { | ||||||
| 	description = "Sets area to grant players creative priv while inside it", | 	description = "Sets area to grant players creative priv while inside it", | ||||||
| @@ -105,7 +115,8 @@ minetest.register_globalstep(function(dtime) | |||||||
| 	if timer >= math.random(1,3) then  | 	if timer >= math.random(1,3) then  | ||||||
| 		for _, player in ipairs(minetest.get_connected_players()) do | 		for _, player in ipairs(minetest.get_connected_players()) do | ||||||
| 			local pname = player:get_player_name() | 			local pname = player:get_player_name() | ||||||
| 			local privs = minetest.get_player_privs(pname)			 | 			local privs = minetest.get_player_privs(pname)	 | ||||||
|  | 			local inv = minetest.get_inventory({type="player", name=pname}) | ||||||
| 			--if minetest.get_player_privs(pname).privs == nil then --Players with the "privs" priv will not have privileges effected. | 			--if minetest.get_player_privs(pname).privs == nil then --Players with the "privs" priv will not have privileges effected. | ||||||
| 				if 	check_cr_area(player) == true then | 				if 	check_cr_area(player) == true then | ||||||
| 					if not minetest.check_player_privs(pname, {creative = true}) then | 					if not minetest.check_player_privs(pname, {creative = true}) then | ||||||
| @@ -113,12 +124,24 @@ minetest.register_globalstep(function(dtime) | |||||||
| 						minetest.set_player_privs(pname, privs) | 						minetest.set_player_privs(pname, privs) | ||||||
| 						local context = {page = sfinv.get_homepage_name(player)}--minetest.get_inventory{{type="detached", name="creative_"..pname}}--{page = sfinv.pages["creative_"..pname]} | 						local context = {page = sfinv.get_homepage_name(player)}--minetest.get_inventory{{type="detached", name="creative_"..pname}}--{page = sfinv.pages["creative_"..pname]} | ||||||
| 						sfinv.set_player_inventory_formspec(player, context) | 						sfinv.set_player_inventory_formspec(player, context) | ||||||
|  | 						local invlist = inv:get_list("main") | ||||||
|  | 						inv:set_list("saved", invlist) | ||||||
|  | 						local list = "" | ||||||
|  | 						for i = 1, #invlist do | ||||||
|  | 							list = list .." "..dump(invlist[i])  | ||||||
|  | 						end	 | ||||||
|  | 						--write_file(inv_file,) | ||||||
| 						minetest.chat_send_player(pname, "You are in creative area.") | 						minetest.chat_send_player(pname, "You are in creative area.") | ||||||
|  | 						 | ||||||
| 					end | 					end | ||||||
| 				else | 				else | ||||||
| 					if minetest.check_player_privs(pname, {creative=true}) then | 					if minetest.check_player_privs(pname, {creative=true}) then | ||||||
| 						privs.creative = nil | 						privs.creative = nil | ||||||
| 						minetest.set_player_privs(pname, privs) | 						minetest.set_player_privs(pname, privs) | ||||||
|  | 						local saved = inv:get_list("saved") | ||||||
|  | 						if saved ~= nil then | ||||||
|  | 							inv:set_list("main", saved) | ||||||
|  | 						end | ||||||
| 						local context = {page = sfinv.get_homepage_name(player)} | 						local context = {page = sfinv.get_homepage_name(player)} | ||||||
| 						sfinv.set_player_inventory_formspec(player, context) | 						sfinv.set_player_inventory_formspec(player, context) | ||||||
| 						minetest.chat_send_player(pname, "You have left creative area.") | 						minetest.chat_send_player(pname, "You have left creative area.") | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user