added delprot command to remove protectors in bulk from banned/old players
authorTenPlus1 <kinsellaja@yahoo.com>
Fri, 13 Nov 2015 12:10:52 +0000 (12:10 +0000)
committerTenPlus1 <kinsellaja@yahoo.com>
Fri, 13 Nov 2015 12:10:52 +0000 (12:10 +0000)
README.md
admin.lua [new file with mode: 0644]
init.lua

index b14b886..3c90a13 100644 (file)
--- a/README.md
+++ b/README.md
@@ -28,4 +28,5 @@ Released under WTFPL
 1.3 - Moved protector on_place into node itself, protector zone display changed
       from 10 to 5 seconds, general code tidy
 1.4 - Changed protector recipes to give single item instead of 4, added + button
-      to interface, tweaked and tidied code
\ No newline at end of file
+      to interface, tweaked and tidied code, added admin command /delprot to remove
+      protectors in bulk from banned/old players
\ No newline at end of file
diff --git a/admin.lua b/admin.lua
new file mode 100644 (file)
index 0000000..063d5ed
--- /dev/null
+++ b/admin.lua
@@ -0,0 +1,59 @@
+
+protector.removal_names = ""
+
+minetest.register_chatcommand("delprot", {
+       params = "",
+       description = "Remove Protectors near players with names provided (separate names with spaces)",
+       privs = {server = true},
+       func = function(name, param)
+
+               if not param or param == "" then
+
+                       minetest.chat_send_player(name,
+                               "Protector Names to remove: "
+                               .. protector.removal_names)
+
+                       return
+               end
+
+               if param == "-" then
+                       minetest.chat_send_player(name,
+                               "Name List Reset")
+
+                       protector.removal_names = ""
+
+                       return
+               end
+
+               protector.removal_names = param
+
+       end,
+})
+
+minetest.register_abm({
+       nodenames = {"protector:protect", "protector:protect2"},
+       interval = 8,
+       chance = 1,
+       catch_up = false,
+       action = function(pos, node)
+
+               if protector.removal_names == "" then
+                       return
+               end
+
+               local meta = minetest.get_meta(pos)
+               local owner = meta:get_string("owner")
+               --local members = meta:get_string("members")
+
+               local names = protector.removal_names:split(" ")
+
+               for _, n in ipairs(names) do
+
+                       if n == owner then
+                               minetest.set_node(pos, {name = "air"})
+                       end
+
+               end
+
+       end
+})
\ No newline at end of file
index 5426ab0..bffe6d8 100644 (file)
--- a/init.lua
+++ b/init.lua
@@ -499,5 +499,6 @@ minetest.register_node("protector:display_node", {
 
 dofile(minetest.get_modpath("protector") .. "/doors_chest.lua")
 dofile(minetest.get_modpath("protector") .. "/pvp.lua")
+dofile(minetest.get_modpath("protector") .. "/admin.lua")
 
 print ("[MOD] Protector Redo loaded")
\ No newline at end of file