bans
Server
modkit.bans is a ban list the server plugin keeps on its own. It is stored in data\bans.json under the server root and survives restarts. A banned player is kicked when the server first sees them in the game, which is up to half a second after the join. The event playerRejected(player, reason) fires and playerConnected does not.
This list is separate from the game's own ban list. Bans you set in the game's admin panel do not show up here, and the other way round.
Every function that takes a player accepts a player table or a Steam ID string.
modkit.bans.add
modkit.bans.add(player [, reason [, hours]])
modkit.bans.add(player, options)
| Parameter | Type | Description |
|---|---|---|
| player | player table or string | who to ban. The player does not have to be online. |
| reason | string | shown in the kick message, default "banned" |
| hours | number | length of the ban. 0 or nothing means forever. |
| options | table | reason, hours, name (player name for your records), by (who banned, default is the resource name) |
Returns: true. If the player is online they are kicked right away. A Steam ID with anything but digits raises an error.
modkit.commands.add("ban", function(admin, steamId, hours, ...)
local reason = table.concat({ ... }, " ")
modkit.bans.add(steamId, { reason = reason, hours = tonumber(hours) or 0, by = admin.name })
admin:message("Banned " .. steamId)
end, "moderation.ban")
modkit.bans.remove
modkit.bans.remove(player)
Returns: true when there was a ban.
modkit.bans.isBanned
modkit.bans.isBanned(player)
Returns: false, or true and the ban entry. An expired ban is removed by this call and counts as not banned.
| Field | Type | Description |
|---|---|---|
steamId, name, reason, by |
string | |
created |
integer | Unix time |
expires |
integer | Unix time, 0 for a permanent ban |
local banned, entry = modkit.bans.isBanned("76561198000000001")
if banned then print(entry.reason, os.date("%Y-%m-%d", entry.created)) end
modkit.bans.list
modkit.bans.list()
Returns: array of ban entries.
player:ban
player:ban([reason [, hours]]) bans and kicks the player in one call. See player.