diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm
index 7c8ac39db1..6825c07df3 100644
--- a/code/modules/admin/verbs/adminhelp.dm
+++ b/code/modules/admin/verbs/adminhelp.dm
@@ -113,17 +113,16 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","
var/list/debugholders = list()
var/list/adminholders = list()
for(var/client/X in admins)
- if((R_MENTOR|R_ADMIN) & X.holder.rights)
+ if(R_MENTOR & X.holder.rights && !(R_ADMIN & X.holder.rights)) // we don't want to count admins twice. This list should be JUST mentors
mentorholders += X
- if(R_MENTOR & X.holder.rights)
- if(X.is_afk())
- admin_number_afk++
- if(R_DEBUG & X.holder.rights)
+ if(X.is_afk())
+ admin_number_afk++
+ if(R_DEBUG & X.holder.rights) // Looking for anyone with +Debug which will be admins, developers, and developer mentors
debugholders += X
if(!(R_ADMIN & X.holder.rights))
if(X.is_afk())
admin_number_afk++
- if(R_ADMIN & X.holder.rights)
+ if(R_ADMIN & X.holder.rights) // just admins here please
adminholders += X
if(X.is_afk())
admin_number_afk++
@@ -131,31 +130,30 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","
switch(selected_type)
if("Gameplay/Roleplay question")
if(mentorholders.len)
- for(var/client/X in mentorholders)
- if(R_ADMIN & X.holder.rights)
- if(X.prefs.toggles & SOUND_ADMINHELP)
- X << 'sound/effects/adminhelp.ogg'
- X << msg
- else
- if(R_MENTOR & X.holder.rights)
- if(X.prefs.toggles & SOUND_ADMINHELP)
- X << 'sound/effects/adminhelp.ogg'
- X << mentor_msg
+ for(var/client/X in mentorholders) // Mentors get a message without buttons and no character name
+ if(X.prefs.toggles & SOUND_ADMINHELP)
+ X << 'sound/effects/adminhelp.ogg'
+ X << mentor_msg
+ if(adminholders.len)
+ for(var/client/X in adminholders) // Admins get the full monty
+ if(X.prefs.toggles & SOUND_ADMINHELP)
+ X << 'sound/effects/adminhelp.ogg'
+ X << msg
if("Rule/Gameplay issue")
if(adminholders.len)
- for(var/client/X in adminholders)
+ for(var/client/X in adminholders) // Admins of course get everything in their helps
if(X.prefs.toggles & SOUND_ADMINHELP)
X << 'sound/effects/adminhelp.ogg'
X << msg
if("Bug report")
if(debugholders.len)
for(var/client/X in debugholders)
- if(R_ADMIN & X.holder.rights)
+ if(R_ADMIN & X.holder.rights) // Admins get every button & special highlights in theirs
if(X.prefs.toggles & SOUND_ADMINHELP)
X << 'sound/effects/adminhelp.ogg'
X << msg
else
- if (R_DEBUG & X.holder.rights)
+ if (R_DEBUG & X.holder.rights) // Just devs or devmentors get non-highlighted names, but they do get JMP and VV for their bug reports.
if(X.prefs.toggles & SOUND_ADMINHELP)
X << 'sound/effects/adminhelp.ogg'
X << dev_msg
@@ -176,7 +174,7 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","
X << msg*/
//show it to the person adminhelping too
- src << "PM to-Staff: [original_msg]"
+ src << "PM to-Staff ([selected_type]): [original_msg]"
var/admin_number_present = admins.len - admin_number_afk
log_admin("HELP: [key_name(src)]: [original_msg] - heard by [admin_number_present] non-AFK admins.")
diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm
index bdc93347ff..5e26498a2b 100644
--- a/code/modules/admin/verbs/adminpm.dm
+++ b/code/modules/admin/verbs/adminpm.dm
@@ -43,7 +43,7 @@
if(!istype(C,/client))
if(holder) src << "Error: Private-Message: Client not found."
- else adminhelp(msg) //admin we are replying to left. adminhelp instead
+ else src << "Error: Private-Message: Client not found. They may have lost connection, so try using an adminhelp!"
return
//get message text, limit it's length.and clean/escape html
@@ -53,7 +53,7 @@
if(!msg) return
if(!C)
if(holder) src << "Error: Admin-PM: Client not found."
- else adminhelp(msg) //admin we are replying to has vanished, adminhelp instead
+ else src << "Error: Private-Message: Client not found. They may have lost connection, so try using an adminhelp!"
return
if (src.handle_spam_prevention(msg,MUTE_ADMINHELP))
@@ -78,7 +78,7 @@
else
recieve_color = "maroon"
send_pm_type = holder.rank + " "
- if(!C.holder && holder && holder.fakekey)
+ if(!C.holder && holder && holder.fakekey)
recieve_pm_type = "Admin"
else
recieve_pm_type = holder.rank