diff --git a/code/modules/admin/DB ban/functions.dm b/code/modules/admin/DB ban/functions.dm
index cc26d7153d..d07386c447 100644
--- a/code/modules/admin/DB ban/functions.dm
+++ b/code/modules/admin/DB ban/functions.dm
@@ -349,6 +349,8 @@ datum/admins/proc/DB_ban_unban_by_id(var/id)
var/bdcolor = "#ffdddd" //banned dark
var/ulcolor = "#eeffee" //unbanned light
var/udcolor = "#ddffdd" //unbanned dark
+ var/alcolor = "#eeeeff" // auto-unbanned light
+ var/adcolor = "#ddddff" // auto-unbanned dark
output += "
"
output += ""
@@ -400,6 +402,8 @@ datum/admins/proc/DB_ban_unban_by_id(var/id)
var/DBQuery/select_query = dbcon.NewQuery("SELECT id, bantime, bantype, reason, job, duration, expiration_time, ckey, a_ckey, unbanned, unbanned_ckey, unbanned_datetime, edits, ip, computerid FROM erro_ban WHERE 1 [playersearch] [adminsearch] [ipsearch] [cidsearch] [bantypesearch] ORDER BY bantime DESC LIMIT 100")
select_query.Execute()
+ var/now = time2text(world.realtime, "YYYY-MM-DD hh:mm:ss") // MUST BE the same format as SQL gives us the dates in, and MUST be least to most specific (i.e. year, month, day not day, month, year)
+
while(select_query.NextRow())
var/banid = select_query.item[1]
var/bantime = select_query.item[2]
@@ -417,36 +421,42 @@ datum/admins/proc/DB_ban_unban_by_id(var/id)
var/ip = select_query.item[14]
var/cid = select_query.item[15]
+ // true if this ban has expired
+ var/auto = now > expiration // oh how I love ISO 8601 (ish) date strings
+
var/lcolor = blcolor
var/dcolor = bdcolor
if(unbanned)
lcolor = ulcolor
dcolor = udcolor
+ else if(auto)
+ lcolor = alcolor
+ dcolor = adcolor
var/typedesc =""
switch(bantype)
if("PERMABAN")
typedesc = "PERMABAN"
if("TEMPBAN")
- typedesc = "TEMPBAN
([duration] minutes [(unbanned) ? "" : "(Edit))"]
Expires [expiration]"
+ typedesc = "TEMPBAN
([duration] minutes) [(unbanned || auto) ? "" : "(Edit)"]
Expires [expiration]"
if("JOB_PERMABAN")
typedesc = "JOBBAN
([job])"
if("JOB_TEMPBAN")
- typedesc = "TEMP JOBBAN
([job])
([duration] minutes
Expires [expiration]"
+ typedesc = "TEMP JOBBAN
([job])
([duration] minutes)
Expires [expiration]"
output += ""
output += "| [typedesc] | "
output += "[ckey] | "
output += "[bantime] | "
output += "[ackey] | "
- output += "[(unbanned) ? "" : "Unban"] | "
+ output += "[(unbanned || auto) ? "" : "Unban"] | "
output += "
"
output += ""
output += "| IP: [ip] | "
output += "CIP: [cid] | "
output += "
"
output += ""
- output += "| Reason: [(unbanned) ? "" : "(Edit)"] \"[reason]\" | "
+ output += "Reason: [(unbanned || auto) ? "" : "(Edit)"] \"[reason]\" | "
output += "
"
if(edits)
output += ""
@@ -459,10 +469,14 @@ datum/admins/proc/DB_ban_unban_by_id(var/id)
output += "
"
output += "| UNBANNED by admin [unbanckey] on [unbantime] | "
output += "
"
+ if(auto)
+ output += ""
+ output += "| EXPIRED at [expiration] | "
+ output += "
"
output += ""
output += "|   | "
output += "
"
output += "
"
- usr << browse(output,"window=lookupbans;size=900x700")
\ No newline at end of file
+ usr << browse(output,"window=lookupbans;size=900x700")
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index e60a830086..983292ebc3 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -85,7 +85,7 @@
banreason = "[banreason] (CUSTOM CID)"
else
message_admins("Ban process: A mob matching [playermob.ckey] was found at location [playermob.x], [playermob.y], [playermob.z]. Custom ip and computer id fields replaced with the ip and computer id from the located mob")
- notes_add(playermob.ckey,banreason,usr)
+ notes_add(banckey,banreason,usr)
DB_ban_record(bantype, playermob, banduration, banreason, banjob, null, banckey, banip, bancid )