7e9b96a00f
* Maps and things no code/icons * helpers defines globalvars * Onclick world.dm orphaned_procs * subsystems Round vote and shuttle autocall done here too * datums * Game folder * Admin - chatter modules * clothing - mining * modular computers - zambies * client * mob level 1 * mob stage 2 + simple_animal * silicons n brains * mob stage 3 + Alien/Monkey * human mobs * icons updated * some sounds * emitter y u no commit * update tgstation.dme * compile fixes * travis fixes Also removes Fast digest mode, because reasons. * tweaks for travis Mentors are broke again Also fixes Sizeray guns * oxygen loss fix for vore code. * removes unused code * some code updates * bulk fixes * further fixes * outside things * whoops. * Maint bar ported * GLOBs.
33 lines
1000 B
Plaintext
33 lines
1000 B
Plaintext
SUBSYSTEM_DEF(stickyban)
|
|
name = "Sticky Ban"
|
|
init_order = -10
|
|
flags = SS_NO_FIRE
|
|
|
|
var/list/cache = list()
|
|
|
|
/datum/controller/subsystem/stickyban/Initialize(timeofday)
|
|
var/list/bannedkeys = world.GetConfig("ban")
|
|
//sanitize the sticky ban list
|
|
for (var/bannedkey in bannedkeys)
|
|
var/ckey = ckey(bannedkey)
|
|
var/list/ban = stickyban2list(world.GetConfig("ban", bannedkey))
|
|
|
|
//byond stores sticky bans by key, that can end up confusing things
|
|
//i also remove it here so that if any stickybans cause a runtime, they just stop existing
|
|
world.SetConfig("ban", bannedkey, null)
|
|
|
|
if (!ban["ckey"])
|
|
ban["ckey"] = ckey
|
|
|
|
//storing these can break things and isn't needed for sticky ban tracking
|
|
ban -= "IP"
|
|
ban -= "computer_id"
|
|
|
|
ban["matches_this_round"] = list()
|
|
ban["existing_user_matches_this_round"] = list()
|
|
ban["admin_matches_this_round"] = list()
|
|
cache[ckey] = ban
|
|
|
|
for (var/bannedckey in cache)
|
|
world.SetConfig("ban", bannedckey, list2stickyban(cache[bannedckey]))
|