/
ban.dm
42 lines (41 loc) · 1.64 KB
/
ban.dm
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
/// Manages the NTNet banlist
/datum/terminal_command/banned
name = "banned"
man_entry = list(
"Format: banned \[-flag nid\]",
"Without options, list currently banned network ids.",
"With -b followed by nid (number), ban the network id.",
"With -u followed by nid (number), unban the network id.",
"NOTICE: Requires network operator access for viewing, and admin access for modification"
)
pattern = "^banned"
req_access = list(list(access_network, access_network_admin))
skill_needed = SKILL_TRAINED
/datum/terminal_command/banned/proper_input_entered(text, mob/user, datum/terminal/terminal)
var/list/arguments = get_arguments(text)
if(isnull(arguments))
return syntax_error()
if(!ntnet_global || !terminal.computer.get_ntnet_status())
return network_error()
if(!length(arguments))
if (length(ntnet_global.banned_nids))
return list("[name]: The following network ids are banned:", jointext(ntnet_global.banned_nids, ", "))
else
return "[name]: There are no banned network ids."
else if(length(arguments) == 2)
if(!has_access(list(access_network_admin), user.GetAccess()))
return "[name]: ACCESS DENIED"
var/nid = text2num(arguments[2])
if(arguments[1] == "-b")
if (nid && !(nid in ntnet_global.banned_nids))
LAZYADD(ntnet_global.banned_nids, nid)
return "[name]: Network id '[nid]' banned."
else
return "[name]: Error; network id invalid or already banned."
else if(arguments[1] == "-u")
if (nid in ntnet_global.banned_nids)
ntnet_global.banned_nids -= nid
return "[name]: Network id '[nid]' unbanned."
else
return "[name]: Error; network id not found on list of banned ids."
return syntax_error()