From b44da1ee42dcb852ac3959d175eb68a343e0eea6 Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Wed, 10 Jun 2015 10:55:23 +0200 Subject: [PATCH] Admin JMP now includes a link to EYE or BDY if any. --- code/game/verbs/ooc.dm | 2 +- code/modules/admin/admin.dm | 8 +++---- code/modules/admin/topic.dm | 26 ++++++++++++++++++++-- code/modules/admin/verbs/adminsay.dm | 4 ++-- code/modules/admin/verbs/pray.dm | 6 ++--- code/modules/mob/dead/observer/observer.dm | 2 +- code/modules/mob/mob_helpers.dm | 2 +- code/modules/paperwork/faxmachine.dm | 2 +- 8 files changed, 37 insertions(+), 15 deletions(-) diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm index fa4f88083f..9d40b49bcf 100644 --- a/code/game/verbs/ooc.dm +++ b/code/game/verbs/ooc.dm @@ -125,7 +125,7 @@ if(target in admins) admin_stuff += "/([key])" if(target != src) - admin_stuff += "(JMP)" + admin_stuff += "([admin_jump_link(mob, target.holder)])" if(target.mob in heard) send = 1 diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 5e486c195a..bdf9e43bb9 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -58,7 +58,7 @@ proc/admin_notice(var/message, var/rights) TP - PM - SM - - JMP\]
+ [admin_jump_link(M, src)]\]
Mob type = [M.type]

Kick | Warn | @@ -1306,15 +1306,15 @@ proc/admin_notice(var/message, var/rights) if(2) //Admins var/ref_mob = "\ref[M]" - return "[key_name(C, link, name, highlight_special)](?) (PP) (VV) (SM) (JMP) (CA)" + return "[key_name(C, link, name, highlight_special)](?) (PP) (VV) (SM) ([admin_jump_link(M, src)]) (CA)" if(3) //Devs var/ref_mob = "\ref[M]" - return "[key_name(C, link, name, highlight_special)](VV)(JMP)" + return "[key_name(C, link, name, highlight_special)](VV)([admin_jump_link(ref_mob, src)])" if(4) //Mentors var/ref_mob = "\ref[M]" - return "[key_name(C, link, name, highlight_special)] (?) (PP) (VV) (SM) (JMP)" + return "[key_name(C, link, name, highlight_special)] (?) (PP) (VV) (SM) ([admin_jump_link(ref_mob, src)])" /proc/ishost(whom) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index e780c9fd5d..65d466164b 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1247,7 +1247,7 @@ src.owner << "Name = [M.name]; Real_name = [M.real_name]; Mind_name = [M.mind?"[M.mind.name]":""]; Key = [M.key];" src.owner << "Location = [location_description];" src.owner << "[special_role_description]" - src.owner << "(PM) (PP) (VV) (SM) (JMP) (CA)" + src.owner << "(PM) (PP) (VV) (SM) ([admin_jump_link(M, src)]) (CA)" else if(href_list["adminspawncookie"]) if(!check_rights(R_ADMIN|R_FUN)) return @@ -2659,4 +2659,26 @@ mob/living/carbon/human/can_centcom_reply() return istype(l_ear, /obj/item/device/radio/headset) || istype(r_ear, /obj/item/device/radio/headset) mob/living/silicon/ai/can_centcom_reply() - return common_radio != null && !check_unable(2) \ No newline at end of file + return common_radio != null && !check_unable(2) + +/atom/proc/extra_admin_link() + return + +/mob/extra_admin_link(var/source) + if(client && eyeobj) + return "|EYE" + +/mob/dead/observer/extra_admin_link(var/source) + if(mind && mind.current) + return "|BDY" + +/proc/admin_jump_link(var/atom/target, var/source) + if(!target) return + // The way admin jump links handle their src is weirdly inconsistent... + if(istype(source, /datum/admins)) + source = "src=\ref[source]" + else + source = "_src_=holder" + + . = "JMP" + . += target.extra_admin_link(source) diff --git a/code/modules/admin/verbs/adminsay.dm b/code/modules/admin/verbs/adminsay.dm index fdbbe8d4e1..84764b55aa 100644 --- a/code/modules/admin/verbs/adminsay.dm +++ b/code/modules/admin/verbs/adminsay.dm @@ -12,7 +12,7 @@ if(check_rights(R_ADMIN,0)) for(var/client/C in admins) if(R_ADMIN & C.holder.rights) - C << "" + create_text_tag("admin", "ADMIN:", C) + " [key_name(usr, 1)](JMP): [msg]" + C << "" + create_text_tag("admin", "ADMIN:", C) + " [key_name(usr, 1)]([admin_jump_link(mob, src)]): [msg]" feedback_add_details("admin_verb","M") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -33,6 +33,6 @@ if(check_rights(R_ADMIN, 0)) sender_name = "[sender_name]" for(var/client/C in admins) - C << "" + create_text_tag("mod", "MOD:", C) + " [sender_name](JMP): [msg]" + C << "" + create_text_tag("mod", "MOD:", C) + " [sender_name]([admin_jump_link(mob, C.holder)]): [msg]" feedback_add_details("admin_verb","MS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/admin/verbs/pray.dm b/code/modules/admin/verbs/pray.dm index d987c52260..dc4b79c005 100644 --- a/code/modules/admin/verbs/pray.dm +++ b/code/modules/admin/verbs/pray.dm @@ -17,7 +17,7 @@ return var/image/cross = image('icons/obj/storage.dmi',"bible") - msg = "\blue \icon[cross] PRAY: [key_name(src, 1)] (?) (PP) (VV) (SM) (JMP) (CA) (SC): [msg]" + msg = "\blue \icon[cross] PRAY: [key_name(src, 1)] (?) (PP) (VV) (SM) ([admin_jump_link(src, src)]) (CA) (SC): [msg]" for(var/client/C in admins) if(R_ADMIN & C.holder.rights) @@ -29,13 +29,13 @@ //log_admin("HELP: [key_name(src)]: [msg]") /proc/Centcomm_announce(var/msg, var/mob/Sender, var/iamessage) - msg = "\blue CENTCOMM[iamessage ? " IA" : ""]:[key_name(Sender, 1)] (PP) (VV) (SM) (JMP) (CA) (BSA) (RPLY): [msg]" + msg = "\blue CENTCOMM[iamessage ? " IA" : ""]:[key_name(Sender, 1)] (PP) (VV) (SM) ([admin_jump_link(Sender, src)]) (CA) (BSA) (RPLY): [msg]" for(var/client/C in admins) if(R_ADMIN & C.holder.rights) C << msg /proc/Syndicate_announce(var/msg, var/mob/Sender) - msg = "\blue ILLEGAL:[key_name(Sender, 1)] (PP) (VV) (SM) (JMP) (CA) (BSA) (RPLY): [msg]" + msg = "\blue ILLEGAL:[key_name(Sender, 1)] (PP) (VV) (SM) ([admin_jump_link(Sender, src)]) (CA) (BSA) (RPLY): [msg]" for(var/client/C in admins) if(R_ADMIN & C.holder.rights) C << msg diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 37aecab043..85b71aef4f 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -686,7 +686,7 @@ mob/dead/observer/MayRespawn(var/feedback = 0) return /mob/extra_ghost_link(var/atom/ghost) - if(mind && eyeobj) + if(client && eyeobj) return "|eye" /mob/dead/observer/extra_ghost_link(var/atom/ghost) diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 563c7c5551..324c99b0b1 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -557,7 +557,7 @@ proc/is_blind(A) if(subject != M) follow = "([ghost_follow_link(subject, M)]) " if(M.stat != DEAD && M.client.holder) - follow = "(JMP) " + follow = "([admin_jump_link(subject, M.client.holder)]) " var/mob/dead/observer/DM if(istype(subject, /mob/dead/observer)) DM = subject diff --git a/code/modules/paperwork/faxmachine.dm b/code/modules/paperwork/faxmachine.dm index 7cd104870f..44d42e1b9d 100644 --- a/code/modules/paperwork/faxmachine.dm +++ b/code/modules/paperwork/faxmachine.dm @@ -211,7 +211,7 @@ var/list/adminfaxes = list() //cache for faxes that have been sent to admins /obj/machinery/photocopier/faxmachine/proc/message_admins(var/mob/sender, var/faxname, var/obj/item/sent, var/reply_type, font_colour="#006100") - var/msg = "\blue [faxname]: [key_name(sender, 1)] (PP) (VV) (SM) (JMP) (CA) (REPLY): Receiving '[sent.name]' via secure connection ... view message" + var/msg = "\blue [faxname]: [key_name(sender, 1)] (PP) (VV) (SM) ([admin_jump_link(sender, src)]) (CA) (REPLY): Receiving '[sent.name]' via secure connection ... view message" for(var/client/C in admins) if(R_ADMIN & C.holder.rights)