diff --git a/code/modules/admin/DB ban/functions.dm b/code/modules/admin/DB ban/functions.dm
index ad60ecf4960..f67191ebeed 100644
--- a/code/modules/admin/DB ban/functions.dm
+++ b/code/modules/admin/DB ban/functions.dm
@@ -260,7 +260,8 @@ datum/admins/proc/DB_ban_unban_by_id(var/id)
holder.DB_ban_panel()
-/datum/admins/proc/DB_ban_panel(var/playerckey = null, var/adminckey = null)
+/datum/admins/proc/DB_ban_panel(var/playerckey = null, var/adminckey = null, var/playerip = null, var/pban = null, var/tban = null, var/jpban = null, var/jtban = null)
+
if(!usr.client)
return
@@ -312,11 +313,19 @@ datum/admins/proc/DB_ban_unban_by_id(var/id)
output += ""
output += "Ckey: "
output += "Admin ckey: "
+ output += "IP address:
"
+ output += "Permban: "
+ output += "Tempban: "
+ output += "PermJOBban: "
+ output += "TempJOBban: "
output += ""
output += ""
output += "Please note that all jobban bans or unbans are in-effect the following round."
- if(adminckey || playerckey)
+
+
+
+ if(adminckey || playerckey || playerip || pban || tban || jpban || jtban)
var/blcolor = "#ffeeee" //banned light
var/bdcolor = "#ffdddd" //banned dark
@@ -334,14 +343,32 @@ datum/admins/proc/DB_ban_unban_by_id(var/id)
adminckey = ckey(adminckey)
playerckey = ckey(playerckey)
+
var/adminsearch = ""
var/playersearch = ""
+ var/playeripsearch = ""
+ var/pbansearch = ""
+ var/tbansearch = ""
+ var/jpbansearch = ""
+ var/jtbansearch = ""
if(adminckey)
adminsearch = "AND a_ckey = '[adminckey]' "
if(playerckey)
playersearch = "AND ckey = '[playerckey]' "
+ if(playerip)
+ playeripsearch = "AND ip = '[playerip]' "
+ if(pban != null)
+ pbansearch = "AND bantype = 'PERMABAN'"
+ if(tban != null)
+ tbansearch = "AND bantype = 'TEMPBAN'"
+ if(jpban != null)
+ jpbansearch = "AND bantype = 'JOB_PERMABAN'"
+ if(jtban != null)
+ jtbansearch = "AND bantype = 'JOB_TEMPBAN'"
- var/DBQuery/select_query = dbcon.NewQuery("SELECT id, bantime, bantype, reason, job, duration, expiration_time, ckey, a_ckey, unbanned, unbanned_ckey, unbanned_datetime, edits FROM erro_ban WHERE 1 [playersearch] [adminsearch] ORDER BY bantime DESC")
+
+
+ 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 FROM erro_ban WHERE 1 [pbansearch] [tbansearch] [jpbansearch] [jtbansearch] [playersearch] [adminsearch] [playeripsearch] ORDER BY bantime DESC")
select_query.Execute()
while(select_query.NextRow())
@@ -358,6 +385,7 @@ datum/admins/proc/DB_ban_unban_by_id(var/id)
var/unbanckey = select_query.item[11]
var/unbantime = select_query.item[12]
var/edits = select_query.item[13]
+ var/ip = select_query.item[14]
var/lcolor = blcolor
var/dcolor = bdcolor
@@ -385,6 +413,7 @@ datum/admins/proc/DB_ban_unban_by_id(var/id)
output += ""
output += "
| TYPE | " + output += "CKEY | " + output += "TIME APPLIED | " + output += "ADMIN | " + output += "OPTIONS | " + output += "|
|---|---|---|---|---|---|
| [typedesc] | " + output += "[ckey] | " + output += "[bantime] | " + output += "[ackey] | " + output += "[(unbanned) ? "" : "Unban"] | " + output += "|
| Reason: [(unbanned) ? "" : "(Edit)"] \"[reason]\" | " + output += "IP: [ip] | " + output += "||||
| EDITS | " + output += "|||||
| [edits] | " + output += "|||||
| UNBANNED by admin [unbanckey] on [unbantime] | " + output += "|||||
|   | " + output += "|||||