diff options
author | Gabriel Pérez-Cerezo <gabriel@gpcf.eu> | 2018-02-16 14:24:27 +0100 |
---|---|---|
committer | Gabriel Pérez-Cerezo <gabriel@gpcf.eu> | 2018-02-16 14:24:27 +0100 |
commit | 86f6923b7270cf10dc49051abb0df5e314b151e0 (patch) | |
tree | 44786b28cdb735a91cb4d693fc0d8a1d5e7eac4a | |
parent | db0f91aa0a7e9bd085b957be20019ca924306131 (diff) |
Added reason to unban, documented API changes
-rw-r--r-- | README.md | 4 | ||||
-rw-r--r-- | doc/API.md | 37 | ||||
-rw-r--r-- | doc/dbformat.txt | 2 | ||||
-rw-r--r-- | init.lua | 10 |
4 files changed, 44 insertions, 9 deletions
@@ -47,9 +47,9 @@ up. For example, `1Y3M3D7h` will ban for 1 year, 3 months, 3 days and 7 hours. Unbans a player. -**Usage:** `/xunban <player_or_ip>` +**Usage:** `/xunban <player_or_ip> <reason>` -**Example:** `/xunban Joe` +**Example:** `/xunban Joe has promised not to grief again` ### `xban_record` @@ -16,14 +16,47 @@ Ban a player and all of his/her alternative names and IPs. ### unban_player -`xban.unban_player(player_or_ip, source)` +`xban.unban_player(player_or_ip, source, reason)` + +Unban a player and all of his/her alternative names and IPs. A reason +may be given for this unbanning, so other moderators can follow your +thoughts. -Unban a player and all of his/her alternative names and IPs. #### Arguments: * `player_or_ip` - Player to search for and unban. * `source` - Source of the ban. See note 2 below. +* `reason` - Reason for unbanning. + +### add_record: + +`xban.add_record(player, record)` + +Adds a record to the player's criminal record. + +#### Arguments: + +* `player` - Name of a player +* `record` - a xban record (see below) + +### Player record format: + + + local record = { + source = "admin", + time = os.time(), + expires = nil, + reason = "bad behaviour", + type = "ban", + } + +* `source` - who issued the record +* `time` - time at which the record was issued +* `expires` - time at which the record expires, `nil` for never +* `reason` - reason for record +* `type` - type of record. + ### Notes diff --git a/doc/dbformat.txt b/doc/dbformat.txt index 71b25a5..a16737d 100644 --- a/doc/dbformat.txt +++ b/doc/dbformat.txt @@ -29,11 +29,13 @@ Each entry contains following fields: reason = "qwerty", time = 12341234, expires = 43214321, + type = "ban" }, [1] = { source = "asdf", reason = "Unbanned", -- When unbanned time = 12341234, + type = "unban" }, }, } @@ -123,7 +123,7 @@ function xban.ban_player(player, source, expires, reason) --> bool, err return true end -function xban.unban_player(player, source) --> bool, err +function xban.unban_player(player, source, reason) --> bool, err local e = xban.find_entry(player) if not e then return nil, "No such entry" @@ -131,7 +131,7 @@ function xban.unban_player(player, source) --> bool, err local rec = { source = source, time = os.time(), - reason = "Unbanned", + reason = (reason or ""), type = "unban" } table.insert(e.record, rec) @@ -260,16 +260,16 @@ minetest.register_chatcommand("xtempban", { minetest.register_chatcommand("xunban", { description = "XUnBan a player", - params = "<player_or_ip>", + params = "<player_or_ip> <reason>", privs = { ban=true }, func = function(name, params) - local plname = params:match("%S+") + local plname, reason = params:match("(%S+)%s+(.+)") if not plname then minetest.chat_send_player(name, "Usage: /xunban <player_or_ip>") return end - local ok, e = xban.unban_player(plname, name) + local ok, e = xban.unban_player(plname, name, reason) return ok, ok and ("Unbanned %s."):format(plname) or e end, }) |