diff --git a/code/defines/procs/admin.dm b/code/defines/procs/admin.dm
index fb9bc232e12..2bc6b59e1d0 100644
--- a/code/defines/procs/admin.dm
+++ b/code/defines/procs/admin.dm
@@ -48,6 +48,12 @@
var/message = "[key_name(whom, 1, include_name)](?)[isAntag(whom) ? "(A)" : ""][isLivingSSD(whom) ? "(SSD!)" : ""] ([admin_jump_link(whom)])"
return message
+/proc/key_name_mentor(var/whom, var/include_name = 1)
+ // Same as key_name_admin, but does not include (?) or (A) for antags.
+ var/message = "[key_name(whom, 1, include_name)] [isLivingSSD(whom) ? "(SSD!)" : ""] ([admin_jump_link(whom)])"
+ return message
+
+
/proc/log_and_message_admins(var/message as text)
log_admin("[key_name(usr)] " + message)
message_admins("[key_name_admin(usr)] " + message)
diff --git a/code/game/jobs/job_exp.dm b/code/game/jobs/job_exp.dm
index ba87db2946e..fc84a39bef7 100644
--- a/code/game/jobs/job_exp.dm
+++ b/code/game/jobs/job_exp.dm
@@ -3,20 +3,38 @@
/client/proc/cmd_mentor_check_player_exp() //Allows admins to determine who the newer players are.
set category = "Admin"
set name = "Check Player Playtime"
- if(!check_rights(R_ADMIN))
+ if(!check_rights(R_ADMIN|R_MOD|R_MENTOR))
return
- var/msg = "
Playtime ReportPlaytime:
"
+ var/msg = "Playtime Report"
+ var/list/players_new = list()
+ var/list/players_old = list()
+ var/pline
for(var/client/C in clients)
- msg += "- [key_name_admin(C.mob)]: " + C.get_exp_living() + "
"
- msg += "
"
+ if(check_rights(R_ADMIN))
+ pline = " [key_name_admin(C.mob)]: " + C.get_exp_living() + ""
+ else
+ pline = " [key_name_mentor(C.mob)]: " + C.get_exp_living() + ""
+ if(C.get_exp_living_num() > 1200)
+ players_old += pline
+ else
+ players_new += pline
+ if(players_new.len)
+ msg += "
Players under 20h:
"
+ msg += players_new.Join()
+ msg += "
"
+ if(players_old.len)
+ msg += "
Players over 20h:
"
+ msg += players_old.Join()
+ msg += "
"
+ msg += ""
src << browse(msg, "window=Player_playtime_check")
-/datum/admins/proc/cmd_show_exp_panel(var/client/C)
+/datum/admins/proc/cmd_mentor_show_exp_panel(var/client/C)
if(!C)
to_chat(usr, "ERROR: Client not found.")
return
- if(!check_rights(R_ADMIN))
+ if(!check_rights(R_ADMIN|R_MOD|R_MENTOR))
return
var/body = "Playtime for [C.key]
Playtime:"
body += C.get_exp_report()
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 4a01b1161e8..fe182889c87 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -2031,7 +2031,7 @@
if(!M)
to_chat(usr, "ERROR: Mob not found.")
return
- cmd_show_exp_panel(M.client)
+ cmd_mentor_show_exp_panel(M.client)
else if(href_list["jumpto"])
if(!check_rights(R_ADMIN)) return
diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index 79ee34fb635..4b484d58e80 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -88,7 +88,10 @@
missing_ages = 1
continue
if(C.player_age < age)
- msg += "[key_name_admin(C)]: account is [C.player_age] days old
"
+ if(check_rights(R_ADMIN))
+ msg += "[key_name_admin(C.mob)]: [C.player_age] days old
"
+ else
+ msg += "[key_name_mentor(C.mob)]: [C.player_age] days old
"
if(missing_ages)
to_chat(src, "Some accounts did not have proper ages set in their clients. This function requires database to be present")