#define WHITELIST_FILE "data/yellow_whitelist.txt" var/global/y_whitelist = list() proc load_ywhitelist() if (!fexists(WHITELIST_FILE)) //Doesn't it exists? text2file(null, WHITELIST_FILE) //CREATE IT y_whitelist = file2list(WHITELIST_FILE) isInWhitelist(var/K) load_ywhitelist() K = ckey(K) if (K in y_whitelist) return 1 return 0 addInWhitelist(var/K as text) load_ywhitelist() K = ckey(K) if (isInWhitelist(K)) return 0 text2file(K, WHITELIST_FILE) return 1 removeFromWhitelist(var/K as text) load_ywhitelist() K = ckey(K) if (K in y_whitelist) y_whitelist -= K fdel(WHITELIST_FILE) text2file(dd_list2text(y_whitelist, "\n"), WHITELIST_FILE) //Goddamn BYOND. return 1 return 0 /datum/admins/proc AddIn() set category = "Server" set name = "Add in whitelist" if (usr.client.holder.rank in list("Game Master", "Host", "Game Admin")) var/key = input(usr, "A key:") as text if (!key) return if (!addInWhitelist(key)) usr << "[ckey(key)] is already there" return log_admin("\blue [key_name_admin(usr)] added [ckey(key)] in the whitelist") message_admins("[key_name_admin(usr)] has added [ckey(key)] to whitelist.", 1) else usr << "\red You don't have such high rank to do this." RemoveFrom() set category = "Server" set name = "Remove from whitelist" if (usr.client.holder.rank in list("Game Master", "Host", "Game Admin")) var/key = input(usr, "A key:") as text if (!key) return if (!removeFromWhitelist(key)) usr << "[ckey(key)] isn't in there." return log_admin("\blue [key_name_admin(usr)] removed [ckey(key)] from the whitelist") message_admins("[key_name_admin(usr)] has removed [ckey(key)] from whitelist.", 1) else usr << "\red You don't have such high rank to do this." InWhitelist() set category = "Server" set name = "Is player in whitelist?" var/key = input(usr, "A key:") as text if (!key) return if (isInWhitelist(key)) usr << "[ckey(key)] is in the whitelist" else usr << "[ckey(key)] isn't in the whitelist" ShowWhitelist() set category = "Server" set name = "Show whitelist" load_ywhitelist() var/dat = dd_list2text(y_whitelist, "
") usr << browse(dat, "window=whitelist")