diff --git a/code/modules/admin/NewBan.dm b/code/modules/admin/NewBan.dm index 69252fd637..d9014fad01 100644 --- a/code/modules/admin/NewBan.dm +++ b/code/modules/admin/NewBan.dm @@ -36,10 +36,10 @@ var/savefile/Banlist if(matches) matches += "/" matches += "id" -// if( address == Banlist["ip"] ) -// if(matches) -// matches += "/" -// matches += "ip" + if( address == Banlist["ip"] ) + if(matches) + matches += "/" + matches += "ip" if(matches) if(Banlist["temp"]) @@ -93,7 +93,7 @@ var/savefile/Banlist return 1 -/proc/AddBan(ckey, computerid, reason, bannedby, temp, minutes) +/proc/AddBan(ckey, computerid, reason, bannedby, temp, minutes, address) var/bantimestamp @@ -110,6 +110,7 @@ var/savefile/Banlist Banlist.cd = "/base/[ckey][computerid]" Banlist["key"] << ckey Banlist["id"] << computerid + Banlist["ip"] << address Banlist["reason"] << reason Banlist["bannedby"] << bannedby Banlist["temp"] << temp @@ -140,7 +141,7 @@ var/savefile/Banlist usr.client.holder.DB_ban_unban( ckey(key), BANTYPE_ANY_FULLBAN) for (var/A in Banlist.dir) Banlist.cd = "/base/[A]" - if (key == Banlist["key"] || id == Banlist["id"]) + if (key == Banlist["key"] /*|| id == Banlist["id"]*/) Banlist.cd = "/base" Banlist.dir.Remove(A) continue diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 2bdc81693e..dcdad4f997 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -645,7 +645,12 @@ var/global/BSACooldown = 0 var/reason = input(usr,"Reason?","reason","Griefer") as text|null if(!reason) return - AddBan(M.ckey, M.computer_id, reason, usr.ckey, 0, 0) + switch(alert(usr,"IP ban?",,"Yes","No","Cancel")) + if("Cancel") return + if("Yes") + AddBan(M.ckey, M.computer_id, reason, usr.ckey, 0, 0, M.lastKnownIP) + if("No") + AddBan(M.ckey, M.computer_id, reason, usr.ckey, 0, 0) M << "\redYou have been banned by [usr.client.ckey].\nReason: [reason]." M << "\red This is a permanent ban." if(config.banappeals)