/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"].")