From 74bdbf35dc19babb8b065d884b62011ca44aadbd Mon Sep 17 00:00:00 2001 From: Jordie0608 Date: Mon, 10 Oct 2016 01:04:33 +1100 Subject: [PATCH] various fixes to admin topic --- code/modules/admin/DB_ban/functions.dm | 3 +- code/modules/admin/topic.dm | 327 ++++++++++--------------- 2 files changed, 138 insertions(+), 192 deletions(-) diff --git a/code/modules/admin/DB_ban/functions.dm b/code/modules/admin/DB_ban/functions.dm index c86200ba19f..50a6f972afe 100644 --- a/code/modules/admin/DB_ban/functions.dm +++ b/code/modules/admin/DB_ban/functions.dm @@ -8,6 +8,7 @@ establish_db_connection() if(!dbcon.IsConnected()) + src << "Failed to establish database connection." return var/serverip = "[world.internet_address]:[world.port]" @@ -133,7 +134,7 @@ if(kickbannedckey) if(banned_mob && banned_mob.client && banned_mob.client.ckey == banckey) qdel(banned_mob.client) - + return 1 /datum/admins/proc/DB_ban_unban(ckey, bantype, job = "") diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index a5157a25298..4e23a35d7db 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -233,7 +233,9 @@ 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.") - DB_ban_record(bantype, playermob, banduration, banreason, banjob, null, banckey, banip, bancid ) + if(!DB_ban_record(bantype, playermob, banduration, banreason, banjob, null, banckey, banip, bancid )) + usr << "Failed to apply ban." + return add_note(banckey, banreason, null, usr.ckey, 0, null, 0) else if(href_list["editrights"]) @@ -529,12 +531,14 @@ var/reason = input(usr,"Please State Reason.","Reason") as message if(!reason) return + if(!DB_ban_record(BANTYPE_JOB_PERMA, M, -1, reason, "appearance")) + usr << "Failed to apply ban." + return + if(M.client) + jobban_buildcache(M.client) ban_unban_log_save("[key_name(usr)] appearance banned [key_name(M)]. reason: [reason]") log_admin("[key_name(usr)] appearance banned [key_name(M)]. \nReason: [reason]") feedback_inc("ban_appearance",1) - DB_ban_record(BANTYPE_JOB_PERMA, M, -1, reason, "appearance") - if(M.client) - jobban_buildcache(M.client) add_note(M.ckey, "Appearance banned - [reason]", null, usr.ckey, 0, null, 0) message_admins("[key_name_admin(usr)] appearance banned [key_name_admin(M)].") M << "You have been appearance banned by [usr.client.ckey]." @@ -557,10 +561,7 @@ usr << "This mob has no ckey." return - var/dat = "" - var/header = "Job-Ban Panel: [M.name]" - var/body - var/jobs = "" + var/dat = "Job-Ban Panel: [key_name(M)]" /***********************************WARNING!************************************ The jobban stuff looks mangled and disgusting @@ -570,298 +571,264 @@ var/counter = 0 //Regular jobs //Command (Blue) - jobs += "" - jobs += "" + dat += "
Command Positions
" + dat += "" for(var/jobPos in command_positions) if(!jobPos) continue - var/datum/job/job = SSjob.GetJob(jobPos) - if(!job) - continue - - if(jobban_isbanned(M, job.title)) - jobs += "" + if(jobban_isbanned(M, jobPos)) + dat += "" counter++ else - jobs += "" + dat += "" counter++ if(counter >= 6) //So things dont get squiiiiished! - jobs += "" + dat += "" counter = 0 - jobs += "
Command Positions
[replacetext(job.title, " ", " ")][jobPos][replacetext(job.title, " ", " ")][jobPos]
" + dat += "" //Security (Red) counter = 0 - jobs += "" - jobs += "" + dat += "
Security Positions
" + dat += "" for(var/jobPos in security_positions) if(!jobPos) continue - var/datum/job/job = SSjob.GetJob(jobPos) - if(!job) - continue - - if(jobban_isbanned(M, job.title)) - jobs += "" + if(jobban_isbanned(M, jobPos)) + dat += "" counter++ else - jobs += "" + dat += "" counter++ if(counter >= 5) //So things dont get squiiiiished! - jobs += "" + dat += "" counter = 0 - jobs += "
Security Positions
[replacetext(job.title, " ", " ")][jobPos][replacetext(job.title, " ", " ")][jobPos]
" + dat += "" //Engineering (Yellow) counter = 0 - jobs += "" - jobs += "" + dat += "
Engineering Positions
" + dat += "" for(var/jobPos in engineering_positions) if(!jobPos) continue - var/datum/job/job = SSjob.GetJob(jobPos) - if(!job) - continue - - if(jobban_isbanned(M, job.title)) - jobs += "" + if(jobban_isbanned(M, jobPos)) + dat += "" counter++ else - jobs += "" + dat += "" counter++ if(counter >= 5) //So things dont get squiiiiished! - jobs += "" + dat += "" counter = 0 - jobs += "
Engineering Positions
[replacetext(job.title, " ", " ")][jobPos][replacetext(job.title, " ", " ")][jobPos]
" + dat += "" //Medical (White) counter = 0 - jobs += "" - jobs += "" + dat += "
Medical Positions
" + dat += "" for(var/jobPos in medical_positions) if(!jobPos) continue - var/datum/job/job = SSjob.GetJob(jobPos) - if(!job) - continue - - if(jobban_isbanned(M, job.title)) - jobs += "" + if(jobban_isbanned(M, jobPos)) + dat += "" counter++ else - jobs += "" + dat += "" counter++ if(counter >= 5) //So things dont get squiiiiished! - jobs += "" + dat += "" counter = 0 - jobs += "
Medical Positions
[replacetext(job.title, " ", " ")][jobPos][replacetext(job.title, " ", " ")][jobPos]
" + dat += "" //Science (Purple) counter = 0 - jobs += "" - jobs += "" + dat += "
Science Positions
" + dat += "" for(var/jobPos in science_positions) if(!jobPos) continue - var/datum/job/job = SSjob.GetJob(jobPos) - if(!job) - continue - - if(jobban_isbanned(M, job.title)) - jobs += "" + if(jobban_isbanned(M, jobPos)) + dat += "" counter++ else - jobs += "" + dat += "" counter++ if(counter >= 5) //So things dont get squiiiiished! - jobs += "" + dat += "" counter = 0 - jobs += "
Science Positions
[replacetext(job.title, " ", " ")][jobPos][replacetext(job.title, " ", " ")][jobPos]
" + dat += "" //Supply (Brown) counter = 0 - jobs += "" - jobs += "" + dat += "
Supply Positions
" + dat += "" for(var/jobPos in supply_positions) if(!jobPos) continue - var/datum/job/job = SSjob.GetJob(jobPos) - if(!job) - continue - - if(jobban_isbanned(M, job.title)) - jobs += "" + if(jobban_isbanned(M, jobPos)) + dat += "" counter++ else - jobs += "" + dat += "" counter++ if(counter >= 5) //So things dont get COPYPASTE! - jobs += "" + dat += "" counter = 0 - jobs += "
Supply Positions
[replacetext(job.title, " ", " ")][jobPos][replacetext(job.title, " ", " ")][jobPos]
" + dat += "" //Civilian (Grey) counter = 0 - jobs += "" - jobs += "" + dat += "
Civilian Positions
" + dat += "" for(var/jobPos in civilian_positions) if(!jobPos) continue - var/datum/job/job = SSjob.GetJob(jobPos) - if(!job) - continue - - if(jobban_isbanned(M, job.title)) - jobs += "" + if(jobban_isbanned(M, jobPos)) + dat += "" counter++ else - jobs += "" + dat += "" counter++ if(counter >= 5) //So things dont get squiiiiished! - jobs += "" + dat += "" counter = 0 - jobs += "
Civilian Positions
[replacetext(job.title, " ", " ")][jobPos][replacetext(job.title, " ", " ")][jobPos]
" + dat += "" //Non-Human (Green) counter = 0 - jobs += "" - jobs += "" + dat += "
Non-human Positions
" + dat += "" for(var/jobPos in nonhuman_positions) if(!jobPos) continue - var/datum/job/job = SSjob.GetJob(jobPos) - if(!job) - continue - - if(jobban_isbanned(M, job.title)) - jobs += "" + if(jobban_isbanned(M, jobPos)) + dat += "" counter++ else - jobs += "" + dat += "" counter++ if(counter >= 5) //So things dont get squiiiiished! - jobs += "" + dat += "" counter = 0 - jobs += "
Non-human Positions
[replacetext(job.title, " ", " ")][jobPos][replacetext(job.title, " ", " ")][jobPos]
" + dat += "" //Ghost Roles (light light gray) - jobs += "" - jobs += "" + dat += "
Ghost Roles
" + dat += "" //pAI if(jobban_isbanned(M, "pAI")) - jobs += "" + dat += "" else - jobs += "" + dat += "" //Drones if(jobban_isbanned(M, "drone")) - jobs += "" + dat += "" else - jobs += "" + dat += "" //Positronic Brains if(jobban_isbanned(M, "posibrain")) - jobs += "" + dat += "" else - jobs += "" + dat += "" //Deathsquad if(jobban_isbanned(M, "deathsquad")) - jobs += "" + dat += "" else - jobs += "" + dat += "" + //Lavaland roles if(jobban_isbanned(M, "lavaland")) - jobs += "" + dat += "" else - jobs += "" + dat += "" - jobs += "
Ghost Roles
[replacetext("pAI", " ", " ")]pAI[replacetext("pAI", " ", " ")]pAI[replacetext("Drone", " ", " ")]Drone[replacetext("Drone", " ", " ")]Drone[replacetext("Posibrain", " ", " ")]Posibrain[replacetext("Posibrain", " ", " ")]Posibrain[replacetext("Deathsquad", " ", " ")]Deathsquad[replacetext("Deathsquad", " ", " ")]Deathsquad[replacetext("Lavaland", " ", " ")]Lavaland[replacetext("Lavaland", " ", " ")]Lavaland
" + dat += "" //Antagonist (Orange) var/isbanned_dept = jobban_isbanned(M, "Syndicate") - jobs += "" - jobs += "" + dat += "
Antagonist Positions
" + dat += "" //Traitor if(jobban_isbanned(M, "traitor") || isbanned_dept) - jobs += "" + dat += "" else - jobs += "" + dat += "" //Changeling if(jobban_isbanned(M, "changeling") || isbanned_dept) - jobs += "" + dat += "" else - jobs += "" + dat += "" //Nuke Operative if(jobban_isbanned(M, "operative") || isbanned_dept) - jobs += "" + dat += "" else - jobs += "" + dat += "" //Revolutionary if(jobban_isbanned(M, "revolutionary") || isbanned_dept) - jobs += "" + dat += "" else - jobs += "" + dat += "" //Gangster if(jobban_isbanned(M, "gangster") || isbanned_dept) - jobs += "" + dat += "" else - jobs += "" + dat += "" - jobs += "" //Breaking it up so it fits nicer on the screen every 5 entries + dat += "" //Breaking it up so it fits nicer on the screen every 5 entries //Cultist if(jobban_isbanned(M, "cultist") || isbanned_dept) - jobs += "" + dat += "" else - jobs += "" + dat += "" //Servant of Ratvar if(jobban_isbanned(M, "servant of Ratvar") || isbanned_dept) - jobs += "" + dat += "" else - jobs += "" + dat += "" //Wizard if(jobban_isbanned(M, "wizard") || isbanned_dept) - jobs += "" + dat += "" else - jobs += "" + dat += "" //Abductor if(jobban_isbanned(M, "abductor") || isbanned_dept) - jobs += "" + dat += "" else - jobs += "" + dat += "" //Alien if(jobban_isbanned(M, "alien candidate") || isbanned_dept) - jobs += "" + dat += "" else - jobs += "" + dat += "" - jobs += "
Antagonist Positions
[replacetext("Traitor", " ", " ")]Traitor[replacetext("Traitor", " ", " ")]Traitor[replacetext("Changeling", " ", " ")]Changeling[replacetext("Changeling", " ", " ")]Changeling[replacetext("Nuke Operative", " ", " ")]Nuke Operative[replacetext("Nuke Operative", " ", " ")]Nuke Operative[replacetext("Revolutionary", " ", " ")]Revolutionary[replacetext("Revolutionary", " ", " ")]Revolutionary[replacetext("Gangster", " ", " ")]Gangster[replacetext("Gangster", " ", " ")]Gangster
[replacetext("Cultist", " ", " ")]Cultist[replacetext("Cultist", " ", " ")]Cultist[replacetext("Servant", " ", " ")]Servant[replacetext("Servant", " ", " ")]Servant[replacetext("Wizard", " ", " ")]Wizard[replacetext("Wizard", " ", " ")]Wizard[replacetext("Abductor", " ", " ")]Abductor[replacetext("Abductor", " ", " ")]Abductor[replacetext("Alien", " ", " ")]Alien[replacetext("Alien", " ", " ")]Alien
" - - body = "[jobs]" - dat = "[header][body]" + dat += "" usr << browse(dat, "window=jobban2;size=800x450") return @@ -869,85 +836,58 @@ else if(href_list["jobban3"]) if(!check_rights(R_BAN)) return - var/mob/M = locate(href_list["jobban4"]) if(!ismob(M)) usr << "This can only be used on instances of type /mob" return - if(!SSjob) - usr << "Job Master has not been setup!" + usr << "Jobs subsystem not initialized yet!" return - - //get jobs for department if specified, otherwise just returnt he one job in a list. + //get jobs for department if specified, otherwise just return the one job in a list. var/list/joblist = list() switch(href_list["jobban3"]) if("commanddept") for(var/jobPos in command_positions) if(!jobPos) continue - var/datum/job/temp = SSjob.GetJob(jobPos) - if(!temp) - continue - joblist += temp.title + joblist += jobPos if("securitydept") for(var/jobPos in security_positions) if(!jobPos) continue - var/datum/job/temp = SSjob.GetJob(jobPos) - if(!temp) - continue - joblist += temp.title + joblist += jobPos if("engineeringdept") for(var/jobPos in engineering_positions) if(!jobPos) continue - var/datum/job/temp = SSjob.GetJob(jobPos) - if(!temp) - continue - joblist += temp.title + joblist += jobPos if("medicaldept") for(var/jobPos in medical_positions) if(!jobPos) continue - var/datum/job/temp = SSjob.GetJob(jobPos) - if(!temp) - continue - joblist += temp.title + joblist += jobPos if("sciencedept") for(var/jobPos in science_positions) if(!jobPos) continue - var/datum/job/temp = SSjob.GetJob(jobPos) - if(!temp) - continue - joblist += temp.title + joblist += jobPos if("supplydept") for(var/jobPos in supply_positions) if(!jobPos) continue - var/datum/job/temp = SSjob.GetJob(jobPos) - if(!temp) - continue - joblist += temp.title + joblist += jobPos if("civiliandept") for(var/jobPos in civilian_positions) if(!jobPos) continue - var/datum/job/temp = SSjob.GetJob(jobPos) - if(!temp) - continue - joblist += temp.title + joblist += jobPos if("nonhumandept") for(var/jobPos in nonhuman_positions) if(!jobPos) continue - var/datum/job/temp = SSjob.GetJob(jobPos) - if(!temp) - continue - joblist += temp.title + joblist += jobPos if("ghostroles") - joblist += list("pAI", "posibrain", "drone", "deathsquad") + joblist += list("pAI", "posibrain", "drone", "deathsquad", "lavaland") else joblist += href_list["jobban3"] @@ -970,12 +910,14 @@ var/msg for(var/job in notbannedlist) + if(!DB_ban_record(BANTYPE_JOB_TEMP, M, mins, reason, job)) + usr << "Failed to apply ban." + return + if(M.client) + jobban_buildcache(M.client) ban_unban_log_save("[key_name(usr)] temp-jobbanned [key_name(M)] from [job] for [mins] minutes. reason: [reason]") log_admin("[key_name(usr)] temp-jobbanned [key_name(M)] from [job] for [mins] minutes.") feedback_inc("ban_job_tmp",1) - DB_ban_record(BANTYPE_JOB_TEMP, M, mins, reason, job) - if(M.client) - jobban_buildcache(M.client) feedback_add_details("ban_job_tmp","- [job]") if(!msg) msg = job @@ -993,12 +935,14 @@ if(reason) var/msg for(var/job in notbannedlist) + if(!DB_ban_record(BANTYPE_JOB_PERMA, M, -1, reason, job)) + usr << "Failed to apply ban." + return + if(M.client) + jobban_buildcache(M.client) ban_unban_log_save("[key_name(usr)] perma-jobbanned [key_name(M)] from [job]. reason: [reason]") log_admin("[key_name(usr)] perma-banned [key_name(M)] from [job]") feedback_inc("ban_job",1) - DB_ban_record(BANTYPE_JOB_PERMA, M, -1, reason, job) - if(M.client) - jobban_buildcache(M.client) feedback_add_details("ban_job","- [job]") if(!msg) msg = job @@ -1127,22 +1071,23 @@ var/reason = input(usr,"Please State Reason.","Reason") as message if(!reason) return + if(!DB_ban_record(BANTYPE_TEMP, M, mins, reason)) + usr << "Failed to apply ban." + return AddBan(M.ckey, M.computer_id, reason, usr.ckey, 1, mins) - ban_unban_log_save("[usr.client.ckey] has banned [M.ckey]. - Reason: [reason] - This will be removed in [mins] minutes.") + ban_unban_log_save("[key_name(usr)] has banned [key_name(M)]. - Reason: [reason] - This will be removed in [mins] minutes.") M << "You have been banned by [usr.client.ckey].\nReason: [reason]" M << "This is a temporary ban, it will be removed in [mins] minutes." feedback_inc("ban_tmp",1) - DB_ban_record(BANTYPE_TEMP, M, mins, reason) feedback_inc("ban_tmp_mins",mins) if(config.banappeals) M << "To try to resolve this matter head to [config.banappeals]" else M << "No ban appeals URL has been set." - log_admin("[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.") - message_admins("[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.") + log_admin("[key_name(usr)] has banned [M.ckey].\nReason: [key_name(M)]\nThis will be removed in [mins] minutes.") + message_admins("[key_name_admin(usr)] has banned [key_name_admin(M)].\nReason: [reason]\nThis will be removed in [mins] minutes.") qdel(M.client) - //qdel(M) // See no reason why to delete mob. Important stuff can be lost. And ban can be lifted before round ends. if("No") var/reason = input(usr,"Please State Reason.","Reason") as message if(!reason) @@ -1160,14 +1105,14 @@ M << "To try to resolve this matter head to [config.banappeals]" else M << "No ban appeals URL has been set." - ban_unban_log_save("[usr.client.ckey] has permabanned [M.ckey]. - Reason: [reason] - This is a permanent ban.") - log_admin("[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis is a permanent ban.") - message_admins("[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis is a permanent ban.") + if(!DB_ban_record(BANTYPE_PERMA, M, -1, reason)) + usr << "Failed to apply ban." + return + ban_unban_log_save("[key_name(usr)] has permabanned [key_name(M)]. - Reason: [reason] - This is a permanent ban.") + log_admin("[key_name(usr)] has banned [key_name_admin(M)].\nReason: [reason]\nThis is a permanent ban.") + message_admins("[key_name_admin(usr)] has banned [key_name_admin(M)].\nReason: [reason]\nThis is a permanent ban.") feedback_inc("ban_perma",1) - DB_ban_record(BANTYPE_PERMA, M, -1, reason) - qdel(M.client) - //qdel(M) if("Cancel") return