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 }) |