summaryrefslogtreecommitdiff
path: root/xban2/init.lua
diff options
context:
space:
mode:
Diffstat (limited to 'xban2/init.lua')
-rw-r--r--xban2/init.lua25
1 files changed, 25 insertions, 0 deletions
diff --git a/xban2/init.lua b/xban2/init.lua
index 6f15f14..68a3508 100644
--- a/xban2/init.lua
+++ b/xban2/init.lua
@@ -314,6 +314,7 @@ minetest.register_chatcommand("xban_wl", {
end,
})
+
local function check_temp_bans()
minetest.after(60, check_temp_bans)
local to_rm = { }
@@ -374,6 +375,30 @@ local function load_db()
end
end
+minetest.register_chatcommand("xban_cleanup", {
+ description = "Removes all non-banned entries from the xban db",
+ privs = { server=true },
+ func = function(name, params)
+ local old_count = #db
+
+ local i = 1
+ while i <= #db do
+ if not db[i].banned then
+ -- not banned, remove from db
+ table.remove(db, i)
+ else
+ -- banned, hold entry back
+ i = i + 1
+ end
+ end
+
+ -- save immediately
+ save_db()
+
+ return true, "Removed " .. (old_count - #db) .. " entries, new db entry-count: " .. #db
+ end,
+})
+
minetest.register_on_shutdown(save_db)
minetest.after(SAVE_INTERVAL, save_db)
load_db()