From 63e360035284393291a33c7cefef4931dd72199f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20Mart=C3=ADnez?= Date: Mon, 10 Oct 2016 03:58:53 -0300 Subject: [PATCH] Disallow banning already-banned players. Fixes #9. --- init.lua | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/init.lua b/init.lua index 81818a8..2075a83 100644 --- a/init.lua +++ b/init.lua @@ -73,6 +73,9 @@ end function xban.ban_player(player, source, expires, reason) --> bool, err local e = xban.find_entry(player, true) + if e.banned then + return nil, "Already banned" + end local rec = { source = source, time = os.time(), @@ -195,8 +198,8 @@ minetest.register_chatcommand("xban", { if not (plname and reason) then return false, "Usage: /xban " end - xban.ban_player(plname, name, nil, reason) - return true, ("Banned %s."):format(plname) + local ok, e = xban.ban_player(plname, name, nil, reason) + return ok, ok and ("Banned %s."):format(plname) or e end, }) @@ -214,8 +217,9 @@ minetest.register_chatcommand("xtempban", { return false, "You must ban for at least 60 seconds." end local expires = os.time() + time - xban.ban_player(plname, name, expires, reason) - return true, ("Banned %s until %s."):format(plname, os.date("%c", expires)) + local ok, e = xban.ban_player(plname, name, expires, reason) + return ok, (ok and ("Banned %s until %s."):format( + plname, os.date("%c", expires)) or e) end, })