diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index 88ff8198086..249816bc388 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -50,6 +50,7 @@ GLOBAL_LIST_INIT(admin_verbs_admin, list(
/client/proc/global_man_up,
/client/proc/library_manager,
/client/proc/view_asays,
+ /client/proc/view_msays,
/client/proc/empty_ai_core_toggle_latejoin,
/client/proc/aooc,
/client/proc/freeze,
@@ -212,7 +213,8 @@ GLOBAL_LIST_INIT(admin_verbs_mentor, list(
/client/proc/openMentorTicketUI,
/client/proc/admin_observe, /* Allow mentors to observe as well, though they face some limitations */
/client/proc/admin_observe_target,
- /client/proc/cmd_mentor_say /* mentor say*/
+ /client/proc/cmd_mentor_say, /* mentor say*/
+ /client/proc/view_msays,
// cmd_mentor_say is added/removed by the toggle_mentor_chat verb
))
GLOBAL_LIST_INIT(admin_verbs_proccall, list(
diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm
index 02793d7d8d3..afe8db20b06 100644
--- a/code/modules/admin/player_panel.dm
+++ b/code/modules/admin/player_panel.dm
@@ -347,7 +347,7 @@
dname = M
return {"
| [dname][caption][logout_status][istype(A, /area/station/security/permabrig) ? " (PERMA) " : ""][M.stat == 2 ? " (DEAD)" : ""] |
- PM [ADMIN_FLW(M, "FLW")] | [close ? "
" : ""]"}
+ PM [ADMIN_FLW(M, "FLW")] [ADMIN_OBS(M, "OBS")] | [close ? "" : ""]"}
/datum/admins/proc/check_antagonists()
if(!check_rights(R_ADMIN))
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 9d6c3c18bf4..42ac7efec50 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -1269,6 +1269,12 @@
usr.client.view_asays()
+ else if(href_list["msays"])
+ if(!check_rights(R_ADMIN | R_MENTOR))
+ return
+
+ usr.client.view_msays()
+
else if(href_list["tdome1"])
if(!check_rights(R_SERVER|R_EVENT)) return
diff --git a/code/modules/admin/verbs/adminsay.dm b/code/modules/admin/verbs/adminsay.dm
index 663a6b7eacb..924a7b9c052 100644
--- a/code/modules/admin/verbs/adminsay.dm
+++ b/code/modules/admin/verbs/adminsay.dm
@@ -8,7 +8,7 @@
if(!msg)
return
- var/datum/asays/asay = new(usr.ckey, usr.client.holder.rank, msg, world.timeofday)
+ var/datum/say/asay = new(usr.ckey, usr.client.holder.rank, msg, world.timeofday)
GLOB.asays += asay
log_adminsay(msg, src)
@@ -64,6 +64,8 @@
msg = emoji_parse(copytext_char(sanitize(msg), 1, MAX_MESSAGE_LEN))
log_mentorsay(msg, src)
+ var/datum/say/msay = new(usr.ckey, usr.client.holder.rank, msg, world.timeofday)
+ GLOB.msays += msay
mob.create_log(OOC_LOG, "MSAY: [msg]")
if(!msg)
diff --git a/code/modules/admin/verbs/asays.dm b/code/modules/admin/verbs/asays.dm
index e713d2b1bcc..7fe02d91ce1 100644
--- a/code/modules/admin/verbs/asays.dm
+++ b/code/modules/admin/verbs/asays.dm
@@ -1,17 +1,28 @@
GLOBAL_LIST_EMPTY(asays)
+GLOBAL_LIST_EMPTY(msays)
-/datum/asays
+/datum/say
var/ckey
var/rank
var/message
var/time
-/datum/asays/New(ckey = "", rank = "", message = "", time = 0)
+/datum/say/New(ckey = "", rank = "", message = "", time = 0)
src.ckey = ckey
src.rank = rank
src.message = message
src.time = time
+/client/proc/view_msays()
+ set name = "Msays"
+ set desc = "View Msays from the current round."
+ set category = "Admin"
+
+ if(!check_rights(R_MENTOR | R_ADMIN))
+ return
+
+ display_says(GLOB.msays, "msay")
+
/client/proc/view_asays()
set name = "Asays"
set desc = "View Asays from the current round."
@@ -20,6 +31,10 @@ GLOBAL_LIST_EMPTY(asays)
if(!check_rights(R_ADMIN))
return
+ display_says(GLOB.asays, "asay")
+
+/client/proc/display_says(list/say_list, title)
+
var/list/output = list({"
- Refresh
+ Refresh
"})
@@ -51,7 +66,7 @@ GLOBAL_LIST_EMPTY(asays)
"}
- for(var/datum/asays/A in GLOB.asays)
+ for(var/datum/say/A in say_list)
var/timestr = time2text(A.time, "hh:mm:ss")
output += {"
@@ -65,6 +80,6 @@ GLOBAL_LIST_EMPTY(asays)
"}
- var/datum/browser/popup = new(src, "asays", "Current Round Asays
", 1200, 825)
+ var/datum/browser/popup = new(src, title, "Current Round [capitalize(title)]s
", 1200, 825)
popup.set_content(output.Join())
popup.open(0)
diff --git a/code/modules/admin/verbs/ping_all_admins.dm b/code/modules/admin/verbs/ping_all_admins.dm
index a6ca8110515..7279a2d9842 100644
--- a/code/modules/admin/verbs/ping_all_admins.dm
+++ b/code/modules/admin/verbs/ping_all_admins.dm
@@ -29,7 +29,7 @@
to_chat(usr, "No other admins online to ping[de_admin_also == "Yes" ? ", including those that have used de-admin" : ""]!")
return
- var/datum/asays/asay = new(usr.ckey, usr.client.holder.rank, msg, world.timeofday)
+ var/datum/say/asay = new(usr.ckey, usr.client.holder.rank, msg, world.timeofday)
GLOB.asays += asay
log_ping_all_admins("[length(admins_to_ping)] clients pinged: [msg]", src)