[MIRROR] Decouples OOC/LOOC & RLOOC, adds ability to filter remote LOOC from specific VChat tabs (#6737)

Co-authored-by: Heroman3003 <31296024+Heroman3003@users.noreply.github.com>
Co-authored-by: Raeschen <rycoop29@gmail.com>
This commit is contained in:
CHOMPStation2
2023-08-06 08:24:19 -07:00
committed by GitHub
parent e3ea7ad10e
commit ea05422d4d
7 changed files with 71 additions and 28 deletions

View File

@@ -53,14 +53,15 @@
var/ooc_style = "everyone"
if(holder && !holder.fakekey)
ooc_style = "elevated"
//YawnWider Block Edit Start
if(holder.rights & R_MOD && !(holder.rights & R_BAN)) //Moderator
if(holder.rights & R_EVENT) //Retired Admins
ooc_style = "event_manager"
if(holder.rights & R_ADMIN && !(holder.rights & R_BAN)) //Game Masters
ooc_style = "moderator"
if(holder.rights & R_DEBUG && !(holder.rights & R_BAN)) //Developers
ooc_style = "developer"
if(holder.rights & R_ADMIN && holder.rights & R_BAN) //Admins
ooc_style = "admin"
//YawnWider Block Edit End
for(var/client/target in GLOB.clients)
if(target.is_preference_enabled(/datum/client_preference/show_ooc))
@@ -147,12 +148,12 @@
display_name = holder.fakekey
if(mob.stat != DEAD)
display_name = mob.name
//VOREStation Add - Resleeving shenanigan prevention
if(ishuman(mob))
var/mob/living/carbon/human/H = mob
if(H.original_player && H.original_player != H.ckey) //In a body not their own
display_name = "[H.mind.name] (as [H.name])"
//VOREStation Add End
// Everyone in normal viewing range of the LOOC
for(var/mob/viewer in m_viewers)
@@ -175,12 +176,12 @@
if(target in GLOB.admins)
admin_stuff += "/([key])"
to_chat(target, "<span class='ooc looc'>" + create_text_tag("looc", "LOOC:", target) + " <EM>[display_name][admin_stuff]:</EM> <span class='message'>[msg]</span></span>")
to_chat(target, "<span class='looc'>" + create_text_tag("looc", "LOOC:", target) + " <EM>[display_name][admin_stuff]:</EM> <span class='message'>[msg]</span></span>")
for(var/client/target in r_receivers)
var/admin_stuff = "/([key])([admin_jump_link(mob, target.holder)])"
to_chat(target, "<span class='ooc rlooc'>" + create_text_tag("looc", "LOOC:", target) + " <span class='prefix'>(R)</span><EM>[display_name][admin_stuff]:</EM> <span class='message'>[msg]</span></span>") //CHOMPEdit
to_chat(target, "<span class='rlooc'>" + create_text_tag("looc", "LOOC:", target) + " <span class='prefix'>(R)</span><EM>[display_name][admin_stuff]:</EM> <span class='message'>[msg]</span></span>")
/mob/proc/get_looc_source()
return src

View File

@@ -0,0 +1,24 @@
# VChat
(Please add to this file as you learn how this thing works. Thank you!)
## Development
To implement changes to VChat, one must modify either vchat.js or vchat_client,
where vchat.js corresponds to what actually appears to the user.
Not all of the logic is isolated within vchat_client, vchat.js handles a significant amount of processing as well.
### vchat.js
vchat.js is a development file - it is not actually included in the actual game code. Instead, what the game expects is
the minified version "vchat.min.js"
Therefore, to have your changes in "vchat.js" apply to the game for either PR or testing - you must first minify your script.
If you are unfamiliar how to, simply you copy the file contants in vchat.js, paste them into https://codebeautify.org/minify-js
or any similar tool and paste its output into vchat.min.js .
As of 2023/08/05, no tool is provided by the codebase to handle minification for the developer.
### ss13styles.css
Handles chat colours, background colours, filtering.
Please keep this file synchronized with code\stylesheet.dm where possible (filters, lightmode colours).

View File

@@ -15,7 +15,7 @@
OOC
<div class="ui top right attached red label">15</div>
</div>
<div class="right menu">
<div class="item" style="cursor: pointer;" title="New Tab"><i class="icon-folder-add"></i></div>
<div class="item" style="cursor: pointer;" title="Pause Autoscroll">
@@ -26,7 +26,7 @@
</div>
<div class="item" style="padding-left: 0px !important;"><span class="ui circular label" title="VChat Latency (Not exactly network latency)" :class="ping_classes">{{latency}}ms</span></div>
</div>
</div>
<div id="contentbox">
@@ -36,35 +36,40 @@
<span class='danger'>Testing danger message.</span><br>
<span class='secradio'>[Security] <b>Secu Person</b> says, "Testing radio message."</span><br>
<span class='ooc'><span class='everyone'>Testing OOC message.</span></span><br>
<span class='ooc'><span class='looc'>Testing LOOC message.</span></span><br>
<span class='looc'>Testing LOOC message.</span><br>
<span class='rlooc'>Testing RLOOC message.</span><br>
<span class='admin_channel'>Testing asay message.</span><br>
<span class='game say'><b>Test Person</b> says, "Testing say message 2."</span><br>
<span class='notice'>Testing notice message 2.</span><br>
<span class='danger'>Testing danger message 2.</span><br>
<span class='secradio'>[Security] <b>Secu Person</b> says, "Testing radio message 2".</span><br>
<span class='ooc'><span class='everyone'>Testing OOC message 2.</span></span><br>
<span class='ooc'><span class='looc'>Testing LOOC message 2.</span></span><br>
<span class='looc'>Testing LOOC message 2.</span><br>
<span class='rlooc'>Testing RLOOC message 2.</span><br>
<span class='admin_channel'>Testing asay message 2.</span><br>
<span class='game say'><b>Test Person</b> says, "Testing say message 3."</span><br>
<span class='notice'>Testing notice message 3.</span><br>
<span class='danger'>Testing danger message 3.</span><br>
<span class='secradio'>[Security] <b>Secu Person</b> says, "Testing radio message 3".</span><br>
<span class='ooc'><span class='everyone'>Testing OOC message 3.</span></span><br>
<span class='ooc'><span class='looc'>Testing LOOC message 3.</span></span><br>
<span class='looc'>Testing LOOC message 3.</span><br>
<span class='rlooc'>Testing RLOOC message 3.</span><br>
<span class='admin_channel'>Testing asay message 3.</span><br>
<span class='game say'><b>Test Person</b> says, "Testing say message 4."</span><br>
<span class='notice'>Testing notice message 4.</span><br>
<span class='danger'>Testing danger message 4.</span><br>
<span class='secradio'>[Security] <b>Secu Person</b> says, "Testing radio message 4".</span><br>
<span class='ooc'><span class='everyone'>Testing OOC message 4.</span></span><br>
<span class='ooc'><span class='looc'>Testing LOOC message 4.</span></span><br>
<span class='looc'>Testing LOOC message 4.</span><br>
<span class='rlooc'>Testing RLOOC message 4.</span><br>
<span class='admin_channel'>Testing asay message 4.</span><br>
<span class='game say'><b>Test Person</b> says, "Testing say message 5."</span><br>
<span class='notice'>Testing notice message 5.</span><br>
<span class='danger'>Testing danger message 5.</span><br>
<span class='secradio'>[Security] <b>Secu Person</b> says, "Testing radio message 5".</span><br>
<span class='ooc'><span class='everyone'>Testing OOC message 5.</span></span><br>
<span class='ooc'><span class='looc'>Testing LOOC message 5.</span></span><br>
<span class='looc'>Testing LOOC message 5.</span><br>
<span class='rlooc'>Testing RLOOC message 5.</span><br>
<span class='admin_channel'>Testing asay message 5.</span><br>
</div>
<div class="ui segment inverted">
@@ -73,38 +78,43 @@
<span class='danger'>Testing danger message.</span><br>
<span class='secradio'>[Security] <b>Secu Person</b> says, "Testing radio message."</span><br>
<span class='ooc'><span class='everyone'>Testing OOC message.</span></span><br>
<span class='ooc'><span class='looc'>Testing LOOC message.</span></span><br>
<span class='looc'>Testing LOOC message.</span><br>
<span class='rlooc'>Testing RLOOC message.</span><br>
<span class='admin_channel'>Testing asay message.</span><br>
<span class='game say'><b>Test Person</b> says, "Testing say message 2."</span><br>
<span class='notice'>Testing notice message 2.</span><br>
<span class='danger'>Testing danger message 2.</span><br>
<span class='secradio'>[Security] <b>Secu Person</b> says, "Testing radio message 2".</span><br>
<span class='ooc'><span class='everyone'>Testing OOC message 2.</span></span><br>
<span class='ooc'><span class='looc'>Testing LOOC message 2.</span></span><br>
<span class='looc'>Testing LOOC message 2.</span><br>
<span class='rlooc'>Testing RLOOC message 2.</span><br>
<span class='admin_channel'>Testing asay message 2.</span><br>
<span class='game say'><b>Test Person</b> says, "Testing say message 3."</span><br>
<span class='notice'>Testing notice message 3.</span><br>
<span class='danger'>Testing danger message 3.</span><br>
<span class='secradio'>[Security] <b>Secu Person</b> says, "Testing radio message 3".</span><br>
<span class='ooc'><span class='everyone'>Testing OOC message 3.</span></span><br>
<span class='ooc'><span class='looc'>Testing LOOC message 3.</span></span><br>
<span class='looc'>Testing LOOC message 3.</span><br>
<span class='rlooc'>Testing RLOOC message 3.</span><br>
<span class='admin_channel'>Testing asay message 3.</span><br>
<span class='game say'><b>Test Person</b> says, "Testing say message 4."</span><br>
<span class='notice'>Testing notice message 4.</span><br>
<span class='danger'>Testing danger message 4.</span><br>
<span class='secradio'>[Security] <b>Secu Person</b> says, "Testing radio message 4".</span><br>
<span class='ooc'><span class='everyone'>Testing OOC message 4.</span></span><br>
<span class='ooc'><span class='looc'>Testing LOOC message 4.</span></span><br>
<span class='looc'>Testing LOOC message 4.</span><br>
<span class='rlooc'>Testing RLOOC message 4.</span><br>
<span class='admin_channel'>Testing asay message 4.</span><br>
<span class='game say'><b>Test Person</b> says, "Testing say message 5."</span><br>
<span class='notice'>Testing notice message 5.</span><br>
<span class='danger'>Testing danger message 5.</span><br>
<span class='secradio'>[Security] <b>Secu Person</b> says, "Testing radio message 5".</span><br>
<span class='ooc'><span class='everyone'>Testing OOC message 5.</span></span><br>
<span class='ooc'><span class='looc'>Testing LOOC message 5.</span></span><br>
<span class='looc'>Testing LOOC message 5.</span><br>
<span class='rlooc'>Testing RLOOC message 5.</span><br>
<span class='admin_channel'>Testing asay message 5.</span><br>
</div>
</div>
</body>
</html>
</html>

View File

@@ -75,8 +75,8 @@ body.inverted {
.ooc .everyone {color: #002eb8;}
.inverted .ooc .everyone {color: #004ed8;} /* Dark mode */
.looc {color: #3A9696;}
.rlooc {color: #3ABB96;}
.looc {color: #3A9696; font-weight: bold}
.rlooc {color: #3ABB96; font-weight: bold}
.ooc .elevated {color: #2e78d9;}
.ooc .moderator {color: #184880;}
.ooc .developer {color: #1b521f;}

View File

@@ -185,7 +185,7 @@ function start_vue() {
admin: false
},
{
matches: ".filter_ooc, .ooc:not(.looc)",
matches: ".ooc, .filter_ooc",
becomes: "vc_globalooc",
pretty: "Global OOC",
tooltip: "The bluewall of global OOC messages",
@@ -275,12 +275,20 @@ function start_vue() {
admin: true
},
{
matches: ".ooc.looc, .ooc, .looc", //Dumb game
matches: ".looc",
becomes: "vc_looc",
pretty: "Local OOC",
tooltip: "Local OOC messages",
required: false //YW Edit
},
{
matches: ".rlooc",
becomes: "vc_rlooc",
pretty: "Remote LOOC",
tooltip: "Remote LOOC messages",
required: false,
admin: true
},
{
matches: ".boldannounce, .filter_system",
becomes: "vc_system",

File diff suppressed because one or more lines are too long

View File

@@ -15,9 +15,9 @@ em {font-style: normal;font-weight: bold;}
.log_message {color: #386AFF; font-weight: bold;}
/* OOC */
.ooc {font-weight: bold;}
.looc {color: #3A9696;}
.rlooc {color: #3ABB96;}
.ooc {font-weight: bold;}
.looc {color: #3A9696; font-weight: bold}
.rlooc {color: #3ABB96; font-weight: bold}
.ooc img.text_tag {width: 32px; height: 10px;}
.ooc .everyone {color: #002eb8;}