mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2026-01-10 09:22:29 +00:00
- Added two new verbs to 'debug verbs'. The first outputs everything in the jobban records list to standard output, the 2nd applies a filter and only prints the things that contain the word. - Fixed an old jobban bug which only checked if someone's ckey ends with the bannee's ckey to jobban them from the job. So perrorage getting banned would result in errorage having the ban in effect too. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5338 316c924e-a436-60f5-8080-3fe189b3f50e
106 lines
2.9 KiB
Plaintext
106 lines
2.9 KiB
Plaintext
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
|
|
|
|
var/jobban_runonce // Updates legacy bans with new info
|
|
var/jobban_keylist[0] //to store the keys & ranks
|
|
|
|
/proc/jobban_fullban(mob/M, rank, reason)
|
|
if (!M || !M.key) return
|
|
jobban_keylist.Add(text("[M.ckey] - [rank] ## [reason]"))
|
|
jobban_savebanfile()
|
|
|
|
/proc/jobban_client_fullban(ckey, rank)
|
|
if (!ckey || !rank) return
|
|
jobban_keylist.Add(text("[ckey] - [rank]"))
|
|
jobban_savebanfile()
|
|
|
|
//returns a reason if M is banned from rank, returns 0 otherwise
|
|
/proc/jobban_isbanned(mob/M, rank)
|
|
if(M && rank)
|
|
if(_jobban_isbanned(M, rank)) return "Reason Unspecified" //for old jobban
|
|
if (guest_jobbans(rank))
|
|
if(config.guest_jobban && IsGuestKey(M.key))
|
|
return "Guest Job-ban"
|
|
if(config.usewhitelist && !check_whitelist(M))
|
|
return "Whitelisted Job"
|
|
|
|
for (var/s in jobban_keylist)
|
|
if( findtext(s,"[M.ckey] - [rank]") == 1 )
|
|
var/startpos = findtext(s, "## ")+3
|
|
if(startpos && startpos<length(s))
|
|
var/text = copytext(s, startpos, 0)
|
|
if(text)
|
|
return text
|
|
return "Reason Unspecified"
|
|
return 0
|
|
|
|
/*
|
|
DEBUG
|
|
/mob/verb/list_all_jobbans()
|
|
set name = "list all jobbans"
|
|
|
|
for(var/s in jobban_keylist)
|
|
world << s
|
|
|
|
/mob/verb/reload_jobbans()
|
|
set name = "reload jobbans"
|
|
|
|
jobban_loadbanfile()
|
|
*/
|
|
|
|
/proc/jobban_loadbanfile()
|
|
if(config.ban_legacy_system)
|
|
var/savefile/S=new("data/job_full.ban")
|
|
S["keys[0]"] >> jobban_keylist
|
|
log_admin("Loading jobban_rank")
|
|
S["runonce"] >> jobban_runonce
|
|
|
|
if (!length(jobban_keylist))
|
|
jobban_keylist=list()
|
|
log_admin("jobban_keylist was empty")
|
|
else
|
|
if(!establish_db_connection())
|
|
world.log << "Database connection failed. Reverting to the legacy ban system."
|
|
diary << "Database connection failed. Reverting to the legacy ban system."
|
|
config.ban_legacy_system = 1
|
|
jobban_loadbanfile()
|
|
return
|
|
|
|
var/DBQuery/query = dbcon.NewQuery("SELECT ckey, job FROM erro_ban WHERE bantype = 'JOB_PERMABAN' AND isnull(unbanned)")
|
|
query.Execute()
|
|
|
|
while(query.NextRow())
|
|
var/ckey = query.item[1]
|
|
var/job = query.item[2]
|
|
|
|
jobban_keylist.Add("[ckey] - [job]")
|
|
|
|
/proc/jobban_savebanfile()
|
|
var/savefile/S=new("data/job_full.ban")
|
|
S["keys[0]"] << jobban_keylist
|
|
|
|
/proc/jobban_unban(mob/M, rank)
|
|
jobban_remove("[M.ckey] - [rank]")
|
|
jobban_savebanfile()
|
|
|
|
|
|
/proc/ban_unban_log_save(var/formatted_log)
|
|
text2file(formatted_log,"data/ban_unban_log.txt")
|
|
|
|
|
|
/proc/jobban_updatelegacybans()
|
|
if(!jobban_runonce)
|
|
log_admin("Updating jobbanfile!")
|
|
// Updates bans.. Or fixes them. Either way.
|
|
for(var/T in jobban_keylist)
|
|
if(!T) continue
|
|
jobban_runonce++ //don't run this update again
|
|
|
|
|
|
/proc/jobban_remove(X)
|
|
for (var/i = 1; i <= length(jobban_keylist); i++)
|
|
if( findtext(jobban_keylist[i], "[X]") )
|
|
jobban_keylist.Remove(jobban_keylist[i])
|
|
jobban_savebanfile()
|
|
return 1
|
|
return 0
|