From 9387e6f0b7a61f21d525d0dc086f69c600aa4fab Mon Sep 17 00:00:00 2001 From: TenPlus1 Date: Fri, 13 Nov 2015 12:10:52 +0000 Subject: [PATCH] added delprot command to remove protectors in bulk from banned/old players --- README.md | 3 ++- admin.lua | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ init.lua | 1 + 3 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 admin.lua diff --git a/README.md b/README.md index b14b886..3c90a13 100644 --- 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 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 diff --git a/init.lua b/init.lua index 5426ab0..bffe6d8 100644 --- 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