mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
[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:
@@ -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
|
||||
|
||||
24
code/modules/vchat/README.md
Normal file
24
code/modules/vchat/README.md
Normal 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).
|
||||
@@ -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>
|
||||
|
||||
@@ -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;}
|
||||
|
||||
@@ -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",
|
||||
|
||||
2
code/modules/vchat/js/vchat.min.js
vendored
2
code/modules/vchat/js/vchat.min.js
vendored
File diff suppressed because one or more lines are too long
@@ -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;}
|
||||
|
||||
Reference in New Issue
Block a user