aboutsummaryrefslogtreecommitdiff
path: root/doc/dbformat.txt
blob: a16737db116daab3a1f64a401cab89edb7218547 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47

Database is a regular Lua script that returns a table.

Table has a single named field `timestamp' containing the time_t the
DB was last saved. It's not used in the mod and is only meant for
external use (I don't find filesystem timestamps too reliable).

Next is a simple array (number indices) of entries.

Each entry contains following fields:

[1] = {
	-- Names/IPs associated with this entry
	names = {
		["foo"] = true,
		["bar"] = true,
		["123.45.67.89"] = true,
	},
	banned = true,      -- Whether this user is banned
	                    -- Other fields do not apply if false
	time = 12341234,    -- Time of last ban (*1)
	expires = 43214321  -- Time at which ban expires (*2)
	                    -- If nil, permanent ban
	reason = "asdf",    -- Reason for ban
	source = "qwerty",  -- Source of ban (*2)
	record = {
		[1] = {
			source = "asdf",
			reason = "qwerty",
			time = 12341234,
			expires = 43214321,
			type = "ban"
		},
		[1] = {
			source = "asdf",
			reason = "Unbanned",  -- When unbanned
			time = 12341234,
			type = "unban"
		},
	},
}

Notes:
(*1)  All times are expressed in whatever unit `os.time()' uses
      (`time_t' on most (all?) systems).
(*2)  Mods using the xban API are advised to use the "modname:source"
      format for `source' (for example: "anticheat:main").