/client/verb/aooc(msg as text)
set name = "AOOC"
set desc = "An OOC channel exclusive to antagonists."
set category = "OOC"
if(GLOB.say_disabled) //This is here to try to identify lag problems
to_chat(usr, "Speech is currently admin-disabled.")
return
if(!mob)
return
if(!holder)
if(mob.stat == DEAD)
to_chat(usr, "You cannot use AOOC while dead.")
return
if(!is_special_character(mob))
to_chat(usr, "You aren't an antagonist!")
if(prefs.muted & MUTE_OOC)
to_chat(src, "You cannot use AOOC (muted).")
return
if(jobban_isbanned(src.mob, "OOC"))
to_chat(src, "You are banned from OOC.")
return
if(!GLOB.aooc_allowed)
to_chat(src, "AOOC is currently muted.")
return
if(QDELETED(src))
return
msg = copytext(sanitize(msg), 1, MAX_MESSAGE_LEN)
var/raw_msg = msg
if(!msg)
return
msg = emoji_parse(msg)
if(!holder)
if(handle_spam_prevention(msg,MUTE_OOC))
return
if(findtext(msg, "byond://"))
to_chat(src, "Advertising other servers is not allowed.")
log_admin("[key_name(src)] has attempted to advertise in AOOC: [msg]")
message_admins("[key_name_admin(src)] has attempted to advertise in AOOC: [msg]")
return
mob.log_talk(raw_msg,LOG_OOC, tag="(AOOC)")
var/keyname = key
if(prefs.unlock_content)
if(prefs.toggles & MEMBER_PUBLIC)
keyname = "[icon2html('icons/member_content.dmi', world, "blag")][keyname]"
//The linkify span classes and linkify=TRUE below make ooc text get clickable chat href links if you pass in something resembling a url
var/antaglisting = list()
for(var/datum/mind/M in get_antag_minds(/datum/antagonist))
if(!M.current || !M.current.client)
continue
antaglisting |= M.current.client
for(var/mob/M in GLOB.player_list)
if(M.client && (M.stat == DEAD || M.client.holder))
antaglisting |= M.client
for(var/client/C in antaglisting)
if(!C || !istype(C))
continue
if(holder)
if(!holder.fakekey || C.holder)
if(check_rights_for(src, R_ADMIN))
to_chat(C, "[CONFIG_GET(flag/allow_admin_ooccolor) && prefs.ooccolor ? "" :"" ]Antag OOC: [keyname][holder.fakekey ? "/([holder.fakekey])" : ""]: [msg]")
else
to_chat(C, "Antag OOC: [keyname][holder.fakekey ? "/([holder.fakekey])" : ""]: [msg]")
else
to_chat(C, "Antag OOC: [holder.fakekey ? holder.fakekey : key]: [msg]")
else if(!(key in C.prefs.ignoring))
to_chat(C, "Antag OOC: [keyname]: [msg]")
GLOBAL_VAR_INIT(antag_ooc_colour, AOOC_COLOR)
/client/proc/set_aooc(newColor as color)
set name = "Set Antag OOC Color"
set desc = "Modifies antag OOC Color"
set category = "Fun"
GLOB.antag_ooc_colour = sanitize_ooccolor(newColor)
/client/proc/reset_aooc()
set name = "Reset Antag OOC Color"
set desc = "Returns antag OOC Color to default"
set category = "Fun"
GLOB.antag_ooc_colour = AOOC_COLOR
/proc/toggle_aooc(toggle = null)
if(toggle != null) //if we're specifically en/disabling ooc
if(toggle != GLOB.aooc_allowed)
GLOB.aooc_allowed = toggle
else
return
else //otherwise just toggle it
GLOB.aooc_allowed = !GLOB.aooc_allowed
var/antaglisting = list() //Only those who have access to AOOC need to know if it's enabled or not.
for(var/datum/mind/M in get_antag_minds(/datum/antagonist))
if(!M.current || !M.current.client)
continue
antaglisting |= M.current.client
for(var/mob/M in GLOB.player_list)
if(M.client && (M.stat == DEAD || M.client.holder))
antaglisting |= M.client
for(var/client/C in antaglisting)
if(!C || !istype(C))
continue
to_chat(C, "The Antagonist OOC channel has been [GLOB.aooc_allowed ? "enabled. If you're an antagonist, you can access it through the \"AOOC\" verb." : "disabled"].")