mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-25 17:42:26 +00:00
155 lines
4.7 KiB
Plaintext
155 lines
4.7 KiB
Plaintext
|
|
/client/verb/ooc(msg as text)
|
|
set name = "OOC"
|
|
set category = "OOC"
|
|
|
|
if(say_disabled) //This is here to try to identify lag problems
|
|
usr << "<span class='warning'>Speech is currently admin-disabled.</span>"
|
|
return
|
|
|
|
if(!mob) return
|
|
if(IsGuestKey(key))
|
|
src << "Guests may not use OOC."
|
|
return
|
|
|
|
msg = sanitize(msg)
|
|
if(!msg) return
|
|
|
|
if(!(prefs.toggles & CHAT_OOC))
|
|
src << "<span class='warning'>You have OOC muted.</span>"
|
|
return
|
|
|
|
if(!holder)
|
|
if(!config.ooc_allowed)
|
|
src << "<span class='danger'>OOC is globally muted.</span>"
|
|
return
|
|
if(!config.dooc_allowed && (mob.stat == DEAD))
|
|
usr << "<span class='danger'>OOC for dead mobs has been turned off.</span>"
|
|
return
|
|
if(prefs.muted & MUTE_OOC)
|
|
src << "<span class='danger'>You cannot use OOC (muted).</span>"
|
|
return
|
|
if(handle_spam_prevention(msg,MUTE_OOC))
|
|
return
|
|
if(findtext(msg, "byond://"))
|
|
src << "<B>Advertising other servers is not allowed.</B>"
|
|
log_admin("[key_name(src)] has attempted to advertise in OOC: [msg]")
|
|
message_admins("[key_name_admin(src)] has attempted to advertise in OOC: [msg]")
|
|
return
|
|
|
|
log_ooc("[mob.name]/[key] : [msg]")
|
|
|
|
var/ooc_style = "everyone"
|
|
if(holder && !holder.fakekey)
|
|
ooc_style = "elevated"
|
|
if(holder.rights & R_MOD)
|
|
ooc_style = "moderator"
|
|
if(holder.rights & R_DEBUG)
|
|
ooc_style = "developer"
|
|
if(holder.rights & R_ADMIN)
|
|
ooc_style = "admin"
|
|
|
|
for(var/client/target in clients)
|
|
if(target.prefs.toggles & CHAT_OOC)
|
|
var/display_name = src.key
|
|
if(holder)
|
|
if(holder.fakekey)
|
|
if(target.holder)
|
|
display_name = "[holder.fakekey]/([src.key])"
|
|
else
|
|
display_name = holder.fakekey
|
|
if(holder && !holder.fakekey && (holder.rights & R_ADMIN) && config.allow_admin_ooccolor && (src.prefs.ooccolor != initial(src.prefs.ooccolor))) // keeping this for the badmins
|
|
target << "<font color='[src.prefs.ooccolor]'><span class='ooc'>" + create_text_tag("ooc", "OOC:", target) + " <EM>[display_name]:</EM> <span class='message'>[msg]</span></span></font>"
|
|
else
|
|
target << "<span class='ooc'><span class='[ooc_style]'>" + create_text_tag("ooc", "OOC:", target) + " <EM>[display_name]:</EM> <span class='message'>[msg]</span></span></span>"
|
|
|
|
/client/verb/looc(msg as text)
|
|
set name = "LOOC"
|
|
set desc = "Local OOC, seen only by those in view."
|
|
set category = "OOC"
|
|
|
|
if(say_disabled) //This is here to try to identify lag problems
|
|
usr << "<span class='danger'>Speech is currently admin-disabled.</span>"
|
|
return
|
|
|
|
if(!mob)
|
|
return
|
|
|
|
if(IsGuestKey(key))
|
|
src << "Guests may not use OOC."
|
|
return
|
|
|
|
msg = sanitize(msg)
|
|
if(!msg)
|
|
return
|
|
|
|
if(!(prefs.toggles & CHAT_LOOC))
|
|
src << "<span class='danger'>You have LOOC muted.</span>"
|
|
return
|
|
|
|
if(!holder)
|
|
if(!config.looc_allowed)
|
|
src << "<span class='danger'>LOOC is globally muted.</span>"
|
|
return
|
|
if(!config.dooc_allowed && (mob.stat == DEAD))
|
|
usr << "<span class='danger'>OOC for dead mobs has been turned off.</span>"
|
|
return
|
|
if(prefs.muted & MUTE_OOC)
|
|
src << "<span class='danger'>You cannot use OOC (muted).</span>"
|
|
return
|
|
if(handle_spam_prevention(msg, MUTE_OOC))
|
|
return
|
|
if(findtext(msg, "byond://"))
|
|
src << "<B>Advertising other servers is not allowed.</B>"
|
|
log_admin("[key_name(src)] has attempted to advertise in OOC: [msg]")
|
|
message_admins("[key_name_admin(src)] has attempted to advertise in OOC: [msg]")
|
|
return
|
|
|
|
log_ooc("(LOCAL) [mob.name]/[key] : [msg]")
|
|
|
|
var/mob/source = mob.get_looc_source()
|
|
var/list/heard = get_mobs_or_objects_in_view(7, source, 1, 0)
|
|
|
|
var/display_name = key
|
|
if(holder && holder.fakekey)
|
|
display_name = holder.fakekey
|
|
if(mob.stat != DEAD)
|
|
display_name = mob.name
|
|
|
|
for(var/client/target in clients)
|
|
if(target.prefs.toggles & CHAT_LOOC)
|
|
var/prefix = ""
|
|
var/admin_stuff = ""
|
|
var/send = 0
|
|
|
|
if(target in admins)
|
|
admin_stuff += "/([key])"
|
|
if(target != src)
|
|
admin_stuff += "([admin_jump_link(mob, target.holder)])"
|
|
|
|
if(target.mob in heard)
|
|
send = 1
|
|
if(isAI(target.mob))
|
|
prefix = "(Core) "
|
|
|
|
else if(isAI(target.mob)) // Special case
|
|
var/mob/living/silicon/ai/A = target.mob
|
|
if(A.eyeobj in hearers(7, source))
|
|
send = 1
|
|
prefix = "(Eye) "
|
|
|
|
if(!send && (target in admins))
|
|
send = 1
|
|
prefix = "(R)"
|
|
|
|
if(send)
|
|
target << "<span class='ooc'><span class='looc'>" + create_text_tag("looc", "LOOC:", target) + " <span class='prefix'>[prefix]</span><EM>[display_name][admin_stuff]:</EM> <span class='message'>[msg]</span></span></span>"
|
|
|
|
/mob/proc/get_looc_source()
|
|
return src
|
|
|
|
/mob/living/silicon/ai/get_looc_source()
|
|
if(eyeobj)
|
|
return eyeobj
|
|
return src
|