Staff say channels now show user's OOC/role color (#30165)

* lets see

* some changes
This commit is contained in:
Contrabang
2025-09-02 14:58:46 +00:00
committed by GitHub
parent 881a0da37b
commit dffb7d4ad8
2 changed files with 43 additions and 36 deletions
+14 -15
View File
@@ -53,21 +53,7 @@ GLOBAL_VAR_INIT(admin_ooc_colour, "#b82e00")
log_ooc(msg, src)
mob.create_log(OOC_LOG, msg)
var/display_colour = GLOB.normal_ooc_colour
if(holder && !holder.fakekey)
display_colour = GLOB.mentor_ooc_colour
if(check_rights(R_MOD,0) && !check_rights(R_ADMIN,0))
display_colour = GLOB.moderator_ooc_colour
else if(check_rights(R_ADMIN,0))
if(GLOB.configuration.admin.allow_admin_ooc_colour)
display_colour = src.prefs.ooccolor
else
display_colour = GLOB.admin_ooc_colour
if(prefs.unlock_content)
if(display_colour == GLOB.normal_ooc_colour)
if(prefs.toggles & PREFTOGGLE_MEMBER_PUBLIC)
display_colour = GLOB.member_ooc_colour
var/display_colour = get_ooc_color()
for(var/client/C in GLOB.clients)
if(C.prefs.toggles & PREFTOGGLE_CHAT_OOC)
@@ -95,6 +81,19 @@ GLOBAL_VAR_INIT(admin_ooc_colour, "#b82e00")
to_chat(C, "<font color='[display_colour]'><span class='ooc'><span class='prefix'>OOC:</span> <EM>[display_name]:</EM> <span class='message'>[msg]</span></span></font>")
/client/proc/get_ooc_color()
if(!holder || holder.fakekey)
if(prefs.unlock_content && (prefs.toggles & PREFTOGGLE_MEMBER_PUBLIC))
return GLOB.member_ooc_colour
return GLOB.normal_ooc_colour
if(!check_rights(R_ADMIN, FALSE))
if(check_rights(R_MOD, FALSE))
return GLOB.moderator_ooc_colour
return GLOB.mentor_ooc_colour
if(!GLOB.configuration.admin.allow_admin_ooc_colour)
return GLOB.admin_ooc_colour
return prefs.ooccolor
/proc/toggle_ooc()
GLOB.ooc_enabled = (!GLOB.ooc_enabled)
if(GLOB.ooc_enabled)
+29 -21
View File
@@ -12,26 +12,26 @@
GLOB.asays += asay
log_adminsay(msg, src)
if(check_rights(R_ADMIN,0))
// Do this up here before it gets sent to everyone & emoji'd
if(SSredis.connected)
var/list/data = list()
data["author"] = usr.ckey
data["source"] = GLOB.configuration.system.instance_id
data["message"] = html_decode(msg)
SSredis.publish("byond.asay", json_encode(data))
// Do this up here before it gets sent to everyone & emoji'd
if(SSredis.connected)
var/list/data = list()
data["author"] = usr.ckey
data["source"] = GLOB.configuration.system.instance_id
data["message"] = html_decode(msg)
SSredis.publish("byond.asay", json_encode(data))
for(var/client/C in GLOB.admins)
var/temp_message = msg
if(R_ADMIN & C.holder.rights)
// Lets see if this admin was pinged in the asay message
if(findtext(temp_message, "@[C.ckey]") || findtext(temp_message, "@[C.key]")) // Check ckey and key, so you can type @AffectedArc07 or @affectedarc07
SEND_SOUND(C, sound('sound/misc/ping.ogg'))
temp_message = replacetext(temp_message, "@[C.ckey]", "<font color='red'>@[C.ckey]</font>")
temp_message = replacetext(temp_message, "@[C.key]", "<font color='red'>@[C.key]</font>") // Same applies here. key and ckey.
var/display_color = get_staffsay_color()
for(var/client/C in GLOB.admins)
var/temp_message = msg
if(R_ADMIN & C.holder.rights)
// Lets see if this admin was pinged in the asay message
if(findtext(temp_message, "@[C.ckey]") || findtext(temp_message, "@[C.key]")) // Check ckey and key, so you can type @AffectedArc07 or @affectedarc07
SEND_SOUND(C, sound('sound/misc/ping.ogg'))
temp_message = replacetext(temp_message, "@[C.ckey]", "<font color='red'>@[C.ckey]</font>")
temp_message = replacetext(temp_message, "@[C.key]", "<font color='red'>@[C.key]</font>") // Same applies here. key and ckey.
temp_message = "<span class='emoji_enabled'>[temp_message]</span>"
to_chat(C, "<span class='admin_channel'>ADMIN: <span class='name'>[key_name(usr, 1)]</span> ([admin_jump_link(mob)]): <span class='message'>[temp_message]</span></span>", MESSAGE_TYPE_ADMINCHAT, confidential = TRUE)
temp_message = "<span class='emoji_enabled'>[temp_message]</span>"
to_chat(C, "<span class='admin_channel'>ADMIN: <font color='[display_color]'>[key_name(usr, 1)]</font> ([admin_jump_link(mob)]): <span class='message'>[temp_message]</span></span>", MESSAGE_TYPE_ADMINCHAT, confidential = TRUE)
SSblackbox.record_feedback("tally", "admin_verb", 1, "Asay") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -59,6 +59,7 @@
data["message"] = html_decode(msg)
SSredis.publish("byond.devsay", json_encode(data))
var/display_color = get_staffsay_color()
for(var/client/C in GLOB.admins)
if(check_rights(R_ADMIN|R_MOD|R_DEV_TEAM, 0, C.mob))
var/display_name = key
@@ -68,7 +69,7 @@
else
display_name = holder.fakekey
msg = "<span class='emoji_enabled'>[msg]</span>"
to_chat(C, "<span class='[check_rights(R_ADMIN, 0) ? "dev_channel_admin" : "dev_channel"]'>DEV: <span class='name'>[display_name]</span> ([admin_jump_link(mob)]): <span class='message'>[msg]</span></span>", MESSAGE_TYPE_DEVCHAT, confidential = TRUE)
to_chat(C, "<span class='[check_rights(R_ADMIN, 0) ? "dev_channel_admin" : "dev_channel"]'>DEV: <font color='[display_color]'>[display_name]</font> ([admin_jump_link(mob)]): <span class='message'>[msg]</span></span>", MESSAGE_TYPE_DEVCHAT, confidential = TRUE)
SSblackbox.record_feedback("tally", "admin_verb", 1, "Devsay") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -96,6 +97,7 @@
data["message"] = html_decode(msg)
SSredis.publish("byond.staffsay", json_encode(data))
var/display_color = get_staffsay_color()
for(var/client/C in GLOB.admins)
if(check_rights(0, 0, C.mob))
var/display_name = key
@@ -105,7 +107,7 @@
else
display_name = holder.fakekey
msg = "<span class='emoji_enabled'>[msg]</span>"
to_chat(C, "<span class='[check_rights(R_ADMIN, 0) ? "staff_channel_admin" : "staff_channel"]'>STAFF: <span class='name'>[display_name]</span> ([admin_jump_link(mob)]): <span class='message'>[msg]</span></span>", MESSAGE_TYPE_STAFFCHAT, confidential = TRUE)
to_chat(C, "<span class='[check_rights(R_ADMIN, 0) ? "staff_channel_admin" : "staff_channel"]'>STAFF: <font color='[display_color]'>[display_name]</font> ([admin_jump_link(mob)]): <span class='message'>[msg]</span></span>", MESSAGE_TYPE_STAFFCHAT, confidential = TRUE)
SSblackbox.record_feedback("tally", "admin_verb", 1, "Staffsay") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -143,6 +145,7 @@
data["message"] = html_decode(msg)
SSredis.publish("byond.msay", json_encode(data))
var/display_color = get_staffsay_color()
for(var/client/C in GLOB.admins)
if(check_rights(R_ADMIN|R_MOD|R_MENTOR, 0, C.mob))
var/display_name = key
@@ -152,7 +155,7 @@
else
display_name = holder.fakekey
msg = "<span class='emoji_enabled'>[msg]</span>"
to_chat(C, "<span class='[check_rights(R_ADMIN, 0) ? "mentor_channel_admin" : "mentor_channel"]'>MENTOR: <span class='name'>[display_name]</span> ([admin_jump_link(mob)]): <span class='message'>[msg]</span></span>", MESSAGE_TYPE_MENTORCHAT, confidential = TRUE)
to_chat(C, "<span class='[check_rights(R_ADMIN, 0) ? "mentor_channel_admin" : "mentor_channel"]'>MENTOR: <font color='[display_color]'>[display_name]</font> ([admin_jump_link(mob)]): <span class='message'>[msg]</span></span>", MESSAGE_TYPE_MENTORCHAT, confidential = TRUE)
SSblackbox.record_feedback("tally", "admin_verb", 1, "Msay") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -188,3 +191,8 @@
log_and_message_admins("toggled mentor chat [enabling ? "on" : "off"].")
SSblackbox.record_feedback("tally", "admin_verb", 1, "Toggle Msay")
/client/proc/get_staffsay_color()
if(!GLOB.configuration.admin.allow_admin_ooc_colour || !check_rights(R_ADMIN, FALSE))
return client2rankcolour(src)
return prefs.ooccolor