diff options
| author | TenPlus1 <kinsellaja@yahoo.com> | 2016-12-29 18:09:01 +0000 | 
|---|---|---|
| committer | TenPlus1 <kinsellaja@yahoo.com> | 2016-12-29 18:09:01 +0000 | 
| commit | 71782e27ab99b98b2ec07796087dd8a46d4889d8 (patch) | |
| tree | a5226394abeda724e418c24755bd1a22f21253c8 | |
| parent | cfbe158cb26b6280c9c07c1bbd1862ccd1b95414 (diff) | |
tweak protector_remove and add protector_replace commands
| -rw-r--r-- | README.md | 18 | ||||
| -rw-r--r-- | admin.lua | 82 | 
2 files changed, 85 insertions, 15 deletions
@@ -53,20 +53,32 @@ Usage: (requires server privelage)  list names to remove -	/delprot +	/protector_remove  remove specific user names -	/delprot name1 name2 +	/protector_remove name1 name2  remove all names from list -	/delprot - +	/protector_remove -  Whenever a player is near any protectors with name1 or name2 then it will be  replaced by an air block. +show owner name to replace + +	/protector_replace + +replace owner with new name + +	/protector_replace owner new_owner + +reset name list +	/protector_replace - + +  The following lines can be added to your minetest.conf file to configure specific features of the mod:  protector_radius = 5 @@ -2,23 +2,25 @@  local S = protector.intllib  protector.removal_names = "" +protector.replace_names = "" -minetest.register_chatcommand("delprot", { -	params = "", -	description = S("Remove Protectors near players with names provided (separate names with spaces)"), +minetest.register_chatcommand("protector_remove", { +	params = "<names list>", +	description = S("Remove Protectors around players (separate names with spaces)"),  	privs = {server = true},  	func = function(name, param)  		if not param or param == "" then  			minetest.chat_send_player(name, -				S("Protector Names to remove: %1", -				protector.removal_names)) +				"Protector Names to remove: " +				.. protector.removal_names)  			return  		end  		if param == "-" then +  			minetest.chat_send_player(name,  				S("Name List Reset")) @@ -32,6 +34,48 @@ minetest.register_chatcommand("delprot", {  	end,  }) + +minetest.register_chatcommand("protector_replace", { +	params = "<owner name> <name to replace with>", +	description = S("Replace Protector Owner with name provided"), +	privs = {server = true}, +	func = function(name, param) + +		if not param or param == "" then + +			if protector.replace_names ~= "" then + +				local names = protector.replace_names:split(" ") + +				minetest.chat_send_player(name, +					"Replacing Protector name '" .. names[1] +					.. "' with '" .. names[2] .. "'") + +				return +			else +				minetest.chat_send_player(name, +					"Usage: /protector_replace <owner name> <new owner name>") + +				return +			end +		end + +		if param == "-" then + +			minetest.chat_send_player(name, +				S("Name List Reset")) + +			protector.replace_names = "" + +			return +		end + +		protector.replace_names = param + +	end, +}) + +  minetest.register_abm({  	nodenames = {"protector:protect", "protector:protect2"},  	interval = 8, @@ -39,23 +83,37 @@ minetest.register_abm({  	catch_up = false,  	action = function(pos, node) -		if protector.removal_names == "" then +		if protector.removal_names == "" +		and protector_replace_names == "" then  			return  		end -		local meta = minetest.get_meta(pos) +		local meta = minetest.get_meta(pos) ; if not meta then return end  		local owner = meta:get_string("owner")  		--local members = meta:get_string("members") -		local names = protector.removal_names:split(" ") +		if protector.removal_names ~= "" then -		for _, n in pairs(names) do +			local names = protector.removal_names:split(" ") -			if n == owner then -				minetest.set_node(pos, {name = "air"}) -			end +			for _, n in pairs(names) do +				if n == owner then +					minetest.set_node(pos, {name = "air"}) +				end +			end  		end +		if protector.replace_names ~= "" then + +			local names = protector.replace_names:split(" ") + +			if owner == names[1] then + +				meta:set_string("owner", names[2]) +				meta:set_string("infotext", "Protection (owned by " .. names[2] .. ")") +			end + +		end  	end  })  | 
