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