diff --git a/code/modules/admin/banjob.dm b/code/modules/admin/banjob.dm index bc68c4a9e01..1399c6310a5 100644 --- a/code/modules/admin/banjob.dm +++ b/code/modules/admin/banjob.dm @@ -16,14 +16,6 @@ var/jobban_keylist[0] //to store the keys & ranks //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 diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 3c11398621f..5f04c0f69b9 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -363,24 +363,22 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set if(jobban_isbanned(user, "Syndicate")) dat += "You are banned from antagonist roles." src.be_special = 0 + var/n = 0 + for (var/i in special_roles) + if(jobban_isbanned(user, i)) + dat += "Be [i]: BANNED
" + else + var/days_remaining = null + if(config.use_age_restriction_for_jobs && ispath(special_roles[i])) //If it's a game mode antag, check if the player meets the minimum age + var/mode_path = special_roles[i] + var/datum/game_mode/temp_mode = new mode_path + days_remaining = temp_mode.get_remaining_days(user.client) - else - var/n = 0 - for (var/i in special_roles) - if(jobban_isbanned(user, i)) - dat += "Be [i]: \[BANNED]
" + if(days_remaining) + dat += "Be [i]: \[IN [days_remaining] DAYS]
" else - var/days_remaining = null - if(config.use_age_restriction_for_jobs && ispath(special_roles[i])) //If it's a game mode antag, check if the player meets the minimum age - var/mode_path = special_roles[i] - var/datum/game_mode/temp_mode = new mode_path - days_remaining = temp_mode.get_remaining_days(user.client) - - if(days_remaining) - dat += "Be [i]: \[IN [days_remaining] DAYS]
" - else - dat += "Be [i]: [src.be_special&(1<
" - n++ + dat += "Be [i]:
[src.be_special&(1<
" + n++ dat += "" dat += "
" @@ -436,7 +434,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set var/rank = job.title lastJob = job if(jobban_isbanned(user, rank)) - HTML += "[rank] \[BANNED\]" + HTML += "[rank] BANNED" continue if(!job.player_old_enough(user.client)) var/available_in_days = job.available_in_days(user.client) @@ -650,6 +648,28 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set proc/process_link(mob/user, list/href_list) if(!istype(user, /mob/new_player)) return + if(href_list["jobbancheck"]) + var/job = sanitizeSQL(href_list["jobbancheck"]) + var/sql_ckey = sanitizeSQL(user.ckey) + var/DBQuery/query_get_jobban = dbcon.NewQuery("SELECT reason, bantime, duration, expiration_time, a_ckey FROM [format_table_name("ban")] WHERE ckey = '[sql_ckey]' AND job = '[job]' AND (bantype = 'JOB_PERMABAN' OR (bantype = 'JOB_TEMPBAN' AND expiration_time > Now())) AND isnull(unbanned)") + if(!query_get_jobban.Execute()) + var/err = query_get_jobban.ErrorMsg() + log_game("SQL ERROR obtaining reason from ban table. Error : \[[err]\]\n") + return + if(query_get_jobban.NextRow()) + var/reason = query_get_jobban.item[1] + var/bantime = query_get_jobban.item[2] + var/duration = query_get_jobban.item[3] + var/expiration_time = query_get_jobban.item[4] + var/a_ckey = query_get_jobban.item[5] + var/text + text = "You, or another user of this computer, ([user.ckey]) is banned from playing [job]. The ban reason is:
[reason]
This ban was applied by [a_ckey] on [bantime]" + if(text2num(duration) > 0) + text += ". The ban is for [duration] minutes and expires on [expiration_time] (server time)" + text += ".
" + user << text + return + if(href_list["preference"] == "job") switch(href_list["task"]) if("close") diff --git a/html/changelogs/Jordie jobban.yml b/html/changelogs/Jordie jobban.yml new file mode 100644 index 00000000000..79a8f787e9c --- /dev/null +++ b/html/changelogs/Jordie jobban.yml @@ -0,0 +1,5 @@ +author: Jordie0608 +delete-after: True + +changes: + - rscadd: "You can now view the reason of a jobban from character setup." \ No newline at end of file