summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTenPlus1 <kinsellaja@yahoo.com>2016-12-29 18:09:01 +0000
committerTenPlus1 <kinsellaja@yahoo.com>2016-12-29 18:09:01 +0000
commit71782e27ab99b98b2ec07796087dd8a46d4889d8 (patch)
treea5226394abeda724e418c24755bd1a22f21253c8
parentcfbe158cb26b6280c9c07c1bbd1862ccd1b95414 (diff)
tweak protector_remove and add protector_replace commands
-rw-r--r--README.md18
-rw-r--r--admin.lua82
2 files changed, 85 insertions, 15 deletions
diff --git a/README.md b/README.md
index 13c93dc..df1e6a3 100644
--- a/README.md
+++ b/README.md
@@ -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
diff --git a/admin.lua b/admin.lua
index 219aff5..320e644 100644
--- a/admin.lua
+++ b/admin.lua
@@ -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
})