diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index f1a4eb6db95..439c1c8b3fa 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -1315,9 +1315,9 @@ proc/admin_notice(var/message, var/rights)
var/ref_mob = "\ref[M]"
return "[key_name(C, link, name, highlight_special)](?) (PP) (VV) (SM) (JMP) (CA)"
- if(3) //Devs
+ if(3) //Undibbsed
var/ref_mob = "\ref[M]"
- return "[key_name(C, link, name, highlight_special)](VV)(JMP)"
+ return "[key_name(C, link, name, highlight_special)](?) (DIBS) (PP) (JMP)"
if(4) //Mentors
var/ref_mob = "\ref[M]"
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 452d8d17114..4f78f830b58 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -2682,6 +2682,26 @@
paralyze_mob(M)
+ else if(href_list["admindibs"])
+ if (!check_rights(R_ADMIN|R_MOD))
+ return
+
+ var/client/C = locate(href_list["admindibs"])
+
+ if (!istype(C) || !C)
+ usr << "\red Player not found!"
+ return
+
+ if (C.adminhelped == 2)
+ log_and_message_admins("has called dibs on [key_name_admin(C)]'s adminhelp!")
+ usr << "You have taken over [key_name_admin(C)]'s adminhelp.'"
+ usr << "[get_options_bar(C, 2, 1, 1)]"
+
+ C << "Your adminhelp will be tended [usr.client.holder.fakekey ? "shortly" : "by [key_name(usr, 0, 0)]"]. Please allow the staff member a minute or two to write up a response."
+ C.adminhelped = 1
+ else
+ usr << "The adminhelp has already been claimed!"
+
return
mob/living/proc/can_centcom_reply()
diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm
index 9f29bc621af..41b6d09eff5 100644
--- a/code/modules/admin/verbs/adminhelp.dm
+++ b/code/modules/admin/verbs/adminhelp.dm
@@ -15,7 +15,13 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","
src << "Error: Admin-PM: You cannot send adminhelps (Muted)."
return
- adminhelped = 1 //Determines if they get the message to reply by clicking the name.
+ adminhelped = 2 //Determines if they get the message to reply by clicking the name.
+
+ /*A wee bit of an update here: we're using the following table for adminhelped values:
+ 2 - Adminhelp has not been claimed by anyone.
+ 1 - Adminhelp has been claimed, initial message has not been sent.
+ 0 - Adminhelp has been claimed, initial message has been sent.
+ */
if(src.handle_spam_prevention(msg,MUTE_ADMINHELP))
return
@@ -88,11 +94,11 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","
if(ai_found)
ai_cl = " (CL)"
- //Options bar: mob, details ( admin = 2, dev = 3, mentor = 4, character name (0 = just ckey, 1 = ckey and character name), link? (0 no don't make it a link, 1 do so),
+ //Options bar: mob, details ( admin = 2, undibbsed admin = 3, mentor = 4, character name (0 = just ckey, 1 = ckey and character name), link? (0 no don't make it a link, 1 do so),
// highlight special roles (0 = everyone has same looking name, 1 = antags / special roles get a golden name)
var/mentor_msg = "\blue Request for Help: [get_options_bar(mob, 4, 1, 1, 0)][ai_cl]: [msg]"
- msg = "\blue Request for Help:: [get_options_bar(mob, 2, 1, 1)][ai_cl]: [msg]"
+ msg = "\blue Request for Help:: [get_options_bar(mob, 3, 1, 1)][ai_cl]: [msg]"
var/admin_number_afk = 0
@@ -118,4 +124,3 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","
send2adminirc("Request for Help from [key_name(src)]: [html_decode(original_msg)]")
feedback_add_details("admin_verb","AH") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
return
-