Convert most spans to defines (#31080)

* spanish?

* aaaagain

* keep maptext

* Update robot_items.dm

* Update span_defines.dm

* compiles

* Update silicon_mob.dm

* compile
This commit is contained in:
kyunkyunkyun
2025-12-14 04:55:48 +05:00
committed by GitHub
parent e5f0a6fffb
commit b0463d3c83
1624 changed files with 15737 additions and 15581 deletions
+6 -6
View File
@@ -40,7 +40,7 @@
//Guest Checking
if(GLOB.configuration.general.guest_ban && check_guest && IsGuestKey(key))
log_adminwarn("Failed Login: [key] [computer_id] [address] - Guests not allowed")
// message_admins("<span class='notice'>Failed Login: [key] - Guests not allowed</span>")
// message_admins(SPAN_NOTICE("Failed Login: [key] - Guests not allowed"))
if(log_info)
INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(log_connection), ckey(key), address, computer_id, CONNECTION_TYPE_DROPPED_BANNED)
return list("reason"="guest", "desc"="\nReason: Guests not allowed. Please sign in with a BYOND account.")
@@ -184,11 +184,11 @@
if(admin)
if(bantype == "ADMIN_PERMABAN" || bantype == "ADMIN_TEMPBAN")
log_admin("The admin [key] is admin banned, and has been disallowed access")
message_admins("<span class='adminnotice'>The admin [key] is admin banned, and has been disallowed access</span>")
message_admins(SPAN_ADMINNOTICE("The admin [key] is admin banned, and has been disallowed access"))
else
log_admin("The admin [key] has been allowed to bypass a matching ban on [pckey]")
message_admins("<span class='adminnotice'>The admin [key] has been allowed to bypass a matching ban on [pckey]</span>")
addclientmessage(ckey,"<span class='adminnotice'>You have been allowed to bypass a matching ban on [pckey].</span>")
message_admins(SPAN_ADMINNOTICE("The admin [key] has been allowed to bypass a matching ban on [pckey]"))
addclientmessage(ckey,SPAN_ADMINNOTICE("You have been allowed to bypass a matching ban on [pckey]."))
continue
var/expires = ""
if(text2num(duration) > 0)
@@ -217,8 +217,8 @@
//So it's safe to let admins walk thru bans here
if(admin)
log_admin("The admin [key] has been allowed to bypass a matching ban")
message_admins("<span class='adminnotice'>The admin [key] has been allowed to bypass a matching ban</span>")
addclientmessage(ckey,"<span class='adminnotice'>You have been allowed to bypass a matching ban.</span>")
message_admins(SPAN_ADMINNOTICE("The admin [key] has been allowed to bypass a matching ban"))
addclientmessage(ckey,SPAN_ADMINNOTICE("You have been allowed to bypass a matching ban."))
return null
else
log_adminwarn("Failed Login: [key] [computer_id] [address] - Banned [.["message"]]")
+4 -4
View File
@@ -1,6 +1,6 @@
USER_VERB(server_memo, R_SERVER, "Memo", "View and modify server memos.", VERB_CATEGORY_SERVER)
if(!SSdbcore.IsConnected())
to_chat(client, "<span class='danger'>Failed to establish database connection.</span>")
to_chat(client, SPAN_DANGER("Failed to establish database connection."))
return
var/memotask = input(client, "Choose task.", "Memo") in list("Show", "Write", "Edit", "Remove")
if(!memotask)
@@ -13,7 +13,7 @@ USER_VERB(server_memo, R_SERVER, "Memo", "View and modify server memos.", VERB_C
if(!task)
return
if(!SSdbcore.IsConnected())
to_chat(src, "<span class='danger'>Failed to establish database connection.</span>")
to_chat(src, SPAN_DANGER("Failed to establish database connection."))
return
switch(task)
if("Write")
@@ -126,9 +126,9 @@ USER_VERB(server_memo, R_SERVER, "Memo", "View and modify server memos.", VERB_C
var/memotext = query_memoshow.item[2]
var/timestamp = query_memoshow.item[3]
var/last_editor = query_memoshow.item[4]
output += "<span class='memo'>Memo by <span class='prefix'>[ckey]</span> on [timestamp]"
output += "[SPAN_MEMO("Memo by <span class='prefix'>[ckey]")] on [timestamp]"
if(last_editor)
output += "<br><span class='memoedit'>Last edit by [last_editor] <A href='byond://?_src_=holder;memoeditlist=[ckey]'>(Click here to see edit log)</A></span>"
output += "<br>[SPAN_MEMOEDIT("Last edit by [last_editor] <A href='byond://?_src_=holder;memoeditlist=[ckey]'>(Click here to see edit log)</A>")]"
output += "<br>[memotext]</span><br>"
if(output)
to_chat(src, output)
+6 -6
View File
@@ -50,7 +50,7 @@ GLOBAL_PROTECT(admin_ranks) // this shit is being protected for obvious reasons
/proc/reload_one_admin(admin_ckey, silent = FALSE)
if(IsAdminAdvancedProcCall())
to_chat(usr, "<span class='boldannounce'>Admin reload blocked: Advanced ProcCall detected.</span>")
to_chat(usr, SPAN_BOLDANNOUNCE("Admin reload blocked: Advanced ProcCall detected."))
message_admins("[key_name(usr)] attempted to reload an admin via advanced proc-call")
log_admin("[key_name(usr)] attempted to reload an admin via advanced proc-call")
return
@@ -65,7 +65,7 @@ GLOBAL_PROTECT(admin_ranks) // this shit is being protected for obvious reasons
if(admin_ckey in (GLOB.de_admins + GLOB.de_mentors))
if(!silent)
message_admins("<span class='notice'>Admin permissions for [admin_ckey] will reload when they re-admin.</span>")
message_admins(SPAN_NOTICE("Admin permissions for [admin_ckey] will reload when they re-admin."))
return
if(admin_ckey in GLOB.directory)
@@ -73,7 +73,7 @@ GLOBAL_PROTECT(admin_ranks) // this shit is being protected for obvious reasons
var/localhosted = admin.try_localhost_autoadmin()
if(localhosted)
if(!silent)
message_admins("<span class='notice'>Admin permissions for [admin_ckey] reloaded. Full permissions granted as they are currently connected from localhost.</span>")
message_admins(SPAN_NOTICE("Admin permissions for [admin_ckey] reloaded. Full permissions granted as they are currently connected from localhost."))
return
if(GLOB.configuration.admin.use_database_admins)
@@ -105,7 +105,7 @@ GLOBAL_PROTECT(admin_ranks) // this shit is being protected for obvious reasons
// If you have no rights, you don't get an admin datum.
qdel(get_admin)
if(!silent)
message_admins("<span class='notice'>Admin permissions for [admin_ckey] have been reloaded.</span>")
message_admins(SPAN_NOTICE("Admin permissions for [admin_ckey] have been reloaded."))
return
admin_datum = new(rank, rights, admin_ckey)
qdel(get_admin)
@@ -123,11 +123,11 @@ GLOBAL_PROTECT(admin_ranks) // this shit is being protected for obvious reasons
admin_datum.associate(GLOB.directory[admin_ckey])
if(!silent)
message_admins("<span class='notice'>Admin permissions for [admin_ckey] have been reloaded.</span>")
message_admins(SPAN_NOTICE("Admin permissions for [admin_ckey] have been reloaded."))
/proc/load_admins(run_async = FALSE)
if(IsAdminAdvancedProcCall())
to_chat(usr, "<span class='boldannounce'>Admin reload blocked: Advanced ProcCall detected.</span>")
to_chat(usr, SPAN_BOLDANNOUNCE("Admin reload blocked: Advanced ProcCall detected."))
message_admins("[key_name(usr)] attempted to reload admins via advanced proc-call")
log_admin("[key_name(usr)] attempted to reload admins via advanced proc-call")
return
+26 -26
View File
@@ -8,7 +8,7 @@ USER_VERB(hide_verbs, R_NONE, "Adminverbs - Hide All", "Hide most of your admin
client.remove_user_verbs()
add_verb(client, /client/proc/show_verbs)
to_chat(client, "<span class='interface'>Almost all of your adminverbs have been hidden.</span>")
to_chat(client, SPAN_INTERFACE("Almost all of your adminverbs have been hidden."))
SSblackbox.record_feedback("tally", "admin_verb", 1, "Hide Admin Verbs") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/show_verbs()
@@ -18,7 +18,7 @@ USER_VERB(hide_verbs, R_NONE, "Adminverbs - Hide All", "Hide most of your admin
remove_verb(src, /client/proc/show_verbs)
add_user_verbs()
to_chat(src, "<span class='interface'>All of your adminverbs are now visible.</span>")
to_chat(src, SPAN_INTERFACE("All of your adminverbs are now visible."))
SSblackbox.record_feedback("tally", "admin_verb", 1, "Show Admin Verbs") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/mentor_ghost()
@@ -26,7 +26,7 @@ USER_VERB(hide_verbs, R_NONE, "Adminverbs - Hide All", "Hide most of your admin
var/is_full_admin = check_rights(R_ADMIN|R_MOD, FALSE)
if(!is_mentor && !is_full_admin)
to_chat(src, "<span class='warning'>You aren't allowed to use this!</span>")
to_chat(src, SPAN_WARNING("You aren't allowed to use this!"))
return
// mentors are allowed only if they have the observe trait, which is given on observe.
@@ -71,7 +71,7 @@ USER_VERB(admin_ghost, R_ADMIN|R_MOD, "Aghost", "Aghost self.", VERB_CATEGORY_AD
/// if they attempt to do anything that would stop their orbit, they will immediately be returned to their body.
USER_VERB(admin_observe, R_ADMIN|R_MOD|R_MENTOR, "Aobserve", "Admin-observe a player mob.", VERB_CATEGORY_ADMIN)
if(isnewplayer(client.mob))
to_chat(client, "<span class='warning'>You cannot aobserve while in the lobby. Please join or observe first.</span>")
to_chat(client, SPAN_WARNING("You cannot aobserve while in the lobby. Please join or observe first."))
return
var/mob/target
@@ -80,15 +80,15 @@ USER_VERB(admin_observe, R_ADMIN|R_MOD|R_MENTOR, "Aobserve", "Admin-observe a pl
if(isnull(target))
return
if(target == client)
to_chat(client, "<span class='warning'>You can't observe yourself!</span>")
to_chat(client, SPAN_WARNING("You can't observe yourself!"))
return
if(isobserver(target))
to_chat(client, "<span class='warning'>[target] is a ghost, and cannot be observed.</span>")
to_chat(client, SPAN_WARNING("[target] is a ghost, and cannot be observed."))
return
if(isnewplayer(target))
to_chat(client, "<span class='warning'>[target] is in the lobby, and cannot be observed.</span>")
to_chat(client, SPAN_WARNING("[target] is in the lobby, and cannot be observed."))
return
SSuser_verbs.invoke_verb(client, /datum/user_verb/admin_observe_target, target)
@@ -109,15 +109,15 @@ USER_VERB(admin_observe, R_ADMIN|R_MOD|R_MENTOR, "Aobserve", "Admin-observe a pl
USER_CONTEXT_MENU(admin_observe_target, R_ADMIN|R_MOD|R_MENTOR, "\[Admin\] Aobserve", mob/target as mob)
if(isnewplayer(client.mob))
to_chat(client, "<span class='warning'>You cannot aobserve while in the lobby. Please join or observe first.</span>")
to_chat(client, SPAN_WARNING("You cannot aobserve while in the lobby. Please join or observe first."))
return
if(isnewplayer(target))
to_chat(client, "<span class='warning'>[target] is currently in the lobby.</span>")
to_chat(client, SPAN_WARNING("[target] is currently in the lobby."))
return
if(isobserver(target))
to_chat(client, "<span class='warning'>You can't observe a ghost.</span>")
to_chat(client, SPAN_WARNING("You can't observe a ghost."))
return
var/mob/dead/observer/observer = client.mob
@@ -148,7 +148,7 @@ USER_CONTEXT_MENU(admin_observe_target, R_ADMIN|R_MOD|R_MENTOR, "\[Admin\] Aobse
// we need to handle this here because when you aghost, your mob gets set to the ghost. Oops!
ADD_TRAIT(client.mob.mind, TRAIT_MENTOR_OBSERVING, MENTOR_OBSERVING)
RegisterSignal(ghost, COMSIG_ATOM_ORBITER_STOP, TYPE_PROC_REF(/client, on_mentor_observe_end), override = TRUE)
to_chat(client, "<span class='notice'>You have temporarily observed [target], either move or observe again to un-observe.</span>")
to_chat(client, SPAN_NOTICE("You have temporarily observed [target], either move or observe again to un-observe."))
log_admin("[key_name(client)] has mobserved out of their body to follow [target].")
else
log_admin("[key_name(client)] is aobserving [target].")
@@ -172,7 +172,7 @@ USER_CONTEXT_MENU(admin_observe_target, R_ADMIN|R_MOD|R_MENTOR, "\[Admin\] Aobse
// tell everyone since this is kinda nasty.
log_debug("Mentor [key_name_mentor(src)] was unable to re-enter their body after mentor observing.")
log_and_message_admins("[key_name_mentor(src)] was unable to re-enter their body after mentor observing.")
to_chat(src, "<span class='userdanger'>Unable to return you to your body after mentor ghosting. If your body still exists, please contact a coder, and you should probably ahelp.</span>")
to_chat(src, SPAN_USERDANGER("Unable to return you to your body after mentor ghosting. If your body still exists, please contact a coder, and you should probably ahelp."))
USER_VERB(invisimin, R_ADMIN, "Invisimin", "Toggles ghost-like invisibility (Don't abuse this)", VERB_CATEGORY_ADMIN)
if(!isliving(client.mob))
@@ -182,12 +182,12 @@ USER_VERB(invisimin, R_ADMIN, "Invisimin", "Toggles ghost-like invisibility (Don
if(client_mob.invisibility == INVISIBILITY_OBSERVER)
client_mob.invisibility = initial(client_mob.invisibility)
client_mob.add_to_all_human_data_huds()
to_chat(client, "<span class='danger'>Invisimin off. Invisibility reset.</span>")
to_chat(client, SPAN_DANGER("Invisimin off. Invisibility reset."))
log_admin("[key_name(client)] has turned Invisimin OFF")
else
client_mob.invisibility = INVISIBILITY_OBSERVER
client_mob.remove_from_all_data_huds()
to_chat(client, "<span class='notice'>Invisimin on. You are now as invisible as a ghost.</span>")
to_chat(client, SPAN_NOTICE("Invisimin on. You are now as invisible as a ghost."))
log_admin("[key_name(client)] has turned Invisimin ON")
SSblackbox.record_feedback("tally", "admin_verb", 1, "Invisimin") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -299,7 +299,7 @@ USER_VERB(drop_bomb, R_EVENT, "Drop Bomb", "Cause an explosion of varying streng
return
explosion(epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range, 1, 1, cause = "[client.ckey]: Drop Bomb command")
log_admin("[key_name(client)] created an admin explosion at [epicenter.loc]")
message_admins("<span class='adminnotice'>[key_name_admin(client)] created an admin explosion at [epicenter.loc]</span>")
message_admins(SPAN_ADMINNOTICE("[key_name_admin(client)] created an admin explosion at [epicenter.loc]"))
SSblackbox.record_feedback("tally", "admin_verb", 1, "Drop Bomb") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
USER_VERB(give_spell, R_EVENT, "Give Spell", VERB_NO_DESCRIPTION, VERB_CATEGORY_HIDDEN, mob/T)
@@ -336,7 +336,7 @@ USER_VERB(give_disease, R_EVENT, "Give Disease", VERB_NO_DESCRIPTION, VERB_CATEG
T.ForceContractDisease(given_disease)
SSblackbox.record_feedback("tally", "admin_verb", 1, "Give Disease") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
log_admin("[key_name(client)] gave [key_name(T)] the disease [given_disease].")
message_admins("<span class='adminnotice'>[key_name_admin(client)] gave [key_name(T)] the disease [given_disease].</span>")
message_admins(SPAN_ADMINNOTICE("[key_name_admin(client)] gave [key_name(T)] the disease [given_disease]."))
USER_VERB(disease_outbreak, R_EVENT, "Disease Outbreak", "Creates a disease and infects a random player with it.", VERB_CATEGORY_EVENT)
var/datum/disease/given_disease = null
@@ -374,7 +374,7 @@ USER_CONTEXT_MENU(make_sound, R_EVENT, "\[Admin\] Make Sound", obj/O in view())
for(var/mob/V in hearers(O))
V.show_message(admin_pencode_to_html(message), 2)
log_admin("[key_name(client)] made [O] at [O.x], [O.y], [O.z] make a sound")
message_admins("<span class='notice'>[key_name_admin(client)] made [O] at [O.x], [O.y], [O.z] make a sound</span>")
message_admins(SPAN_NOTICE("[key_name_admin(client)] made [O] at [O.x], [O.y], [O.z] make a sound"))
SSblackbox.record_feedback("tally", "admin_verb", 1, "Make Sound") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
USER_VERB(toggle_build_mode_self, R_EVENT, "Toggle Build Mode Self", "Toggle Build Mode on yourself.", VERB_CATEGORY_EVENT)
@@ -398,7 +398,7 @@ USER_VERB(deadmin_self, R_ADMIN|R_MENTOR, "De-admin self", "De-admin yourself.",
log_admin("[key_name(client)] deadmined themself.")
message_admins("[key_name_admin(client)] deadmined themself.")
client.deadmin()
to_chat(client, "<span class='interface'>You are now a normal player.</span>")
to_chat(client, SPAN_INTERFACE("You are now a normal player."))
SSblackbox.record_feedback("tally", "admin_verb", 1, "De-admin") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
USER_VERB(toggle_log_hrefs, R_SERVER, "Toggle href logging", "Toggle href logging", VERB_CATEGORY_SERVER)
@@ -488,7 +488,7 @@ USER_VERB(free_job_slot, R_ADMIN, "Free Job Slot", "Frees a station job role.",
SSblackbox.record_feedback("tally", "admin_verb", 1, "Free Job Slot") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
USER_CONTEXT_MENU(man_up, R_ADMIN, "\[Admin\] Man Up", mob/T as mob in GLOB.player_list)
to_chat(T, chat_box_notice_thick("<span class='notice'><b><font size=4>Man up.<br> Deal with it.</font></b><br>Move on.</span>"))
to_chat(T, chat_box_notice_thick(SPAN_NOTICE("<b><font size=4>Man up.<br> Deal with it.</font></b><br>Move on.")))
SEND_SOUND(T, sound('sound/voice/manup1.ogg'))
log_admin("[key_name(client)] told [key_name(T)] to man up and deal with it.")
@@ -498,7 +498,7 @@ USER_VERB(global_man_up, R_ADMIN, "Man Up Global", "Tells everyone to man up and
if(tgui_alert(client, "Are you sure you want to send the global message?", "Confirm Man Up Global", list("Yes", "No")) == "Yes")
var/manned_up_sound = sound('sound/voice/manup1.ogg')
for(var/sissy in GLOB.player_list)
to_chat(sissy, chat_box_notice_thick("<span class='notice'><b><font size=4>Man up.<br> Deal with it.</font></b><br>Move on.</span>"))
to_chat(sissy, chat_box_notice_thick(SPAN_NOTICE("<b><font size=4>Man up.<br> Deal with it.</font></b><br>Move on.")))
SEND_SOUND(sissy, manned_up_sound)
log_admin("[key_name(client)] told everyone to man up and deal with it.")
@@ -558,12 +558,12 @@ USER_VERB(raw_gas_scan, R_DEBUG|R_VIEWRUNTIMES, "Raw Gas Scan", "Scans your curr
USER_VERB(find_interesting_turf, R_DEBUG|R_VIEWRUNTIMES, "Interesting Turf", \
"Teleports you to a random Interesting Turf from MILLA", VERB_CATEGORY_DEBUG)
if(!isobserver(client.mob))
to_chat(client.mob, "<span class='warning'>You must be an observer to do this!</span>")
to_chat(client.mob, SPAN_WARNING("You must be an observer to do this!"))
return
var/list/interesting_tile = get_random_interesting_tile()
if(!length(interesting_tile))
to_chat(client, "<span class='notice'>There are no interesting turfs. How interesting!</span>")
to_chat(client, SPAN_NOTICE("There are no interesting turfs. How interesting!"))
return
var/turf/T = interesting_tile[MILLA_INDEX_TURF]
@@ -591,7 +591,7 @@ USER_VERB(visualize_interesting_turfs, R_DEBUG|R_VIEWRUNTIMES, "Visualize Intere
var/list/coords = get_interesting_atmos_tiles()
if(!length(coords))
to_chat(client, "<span class='notice'>There are no interesting turfs. How interesting!</span>")
to_chat(client, SPAN_NOTICE("There are no interesting turfs. How interesting!"))
return
while(length(coords))
@@ -612,7 +612,7 @@ USER_VERB(visualize_interesting_turfs, R_DEBUG|R_VIEWRUNTIMES, "Visualize Intere
zlevel_turf_indexes = sortAssoc(zlevel_turf_indexes)
for(var/key in zlevel_turf_indexes)
to_chat(client, "<span class='notice'>Z[key]: <b>[length(zlevel_turf_indexes["[key]"])] Interesting Turfs</b></span>")
to_chat(client, SPAN_NOTICE("Z[key]: <b>[length(zlevel_turf_indexes["[key]"])] Interesting Turfs</b>"))
var/z_to_view = tgui_input_number(client, "A list of z-levels their ITs has appeared in chat. Please enter a Z to visualize. Enter 0 or close the window to cancel", "Selection", 0)
@@ -665,13 +665,13 @@ USER_VERB(create_rnd_restore_disk, R_ADMIN, "Create RnD Backup Restore Disk", "C
SSuser_verbs.invoke_verb(user, /datum/user_verb/admin_ghost)
var/datum/target = locateUID(uid)
if(QDELETED(target))
to_chat(user, "<span class='warning'>This datum has been deleted!</span>")
to_chat(user, SPAN_WARNING("This datum has been deleted!"))
return
if(istype(target, /datum/mind))
var/datum/mind/mind = target
if(!ismob(mind.current))
to_chat(user, "<span class='warning'>This can only be used on instances of type /mob</span>")
to_chat(user, SPAN_WARNING("This can only be used on instances of type /mob"))
return
target = mind.current
+4 -4
View File
@@ -43,7 +43,7 @@
if(!length(jbh.job_bans))
if(!from_client_connection)
to_chat(src, chat_box_red("<span class='warning'>You have no active jobbans!</span>"))
to_chat(src, chat_box_red(SPAN_WARNING("You have no active jobbans!")))
return
var/list/messages = list()
@@ -52,12 +52,12 @@
var/datum/job_ban/JB = jbh.job_bans[ban] // Remember. Its assoc.
switch(JB.bantype)
if("JOB_PERMABAN")
messages.Add("<span class='warning'>[JB.bantype]: [JB.job] - REASON: [JB.reason], by [JB.a_ckey]; [JB.bantime]</span>")
messages.Add(SPAN_WARNING("[JB.bantype]: [JB.job] - REASON: [JB.reason], by [JB.a_ckey]; [JB.bantime]"))
if("JOB_TEMPBAN")
messages.Add("<span class='warning'>[JB.bantype]: [JB.job] - REASON: [JB.reason], by [JB.a_ckey]; [JB.bantime]; [JB.duration]; expires [JB.expiration_time]</span>")
messages.Add(SPAN_WARNING("[JB.bantype]: [JB.job] - REASON: [JB.reason], by [JB.a_ckey]; [JB.bantime]; [JB.duration]; expires [JB.expiration_time]"))
if(GLOB.configuration.url.banappeals_url)
messages.Add("<span class='warning'>You can appeal the bans at: [GLOB.configuration.url.banappeals_url]</span>")
messages.Add(SPAN_WARNING("You can appeal the bans at: [GLOB.configuration.url.banappeals_url]"))
to_chat(src, chat_box_red(messages.Join("<br>")))
+4 -4
View File
@@ -15,7 +15,7 @@
/datum/admins/proc/create_ccbdb_lookup(ckey)
// Bail if disabled
if(!GLOB.configuration.url.centcom_ban_db_url)
to_chat(usr, "<span class='warning'>The CentCom Ban DB lookup is disabled. Please inform a maintainer or server host.</span>")
to_chat(usr, SPAN_WARNING("The CentCom Ban DB lookup is disabled. Please inform a maintainer or server host."))
return
// Bail if no ckey is supplied
if(!ckey)
@@ -41,12 +41,12 @@
// Bail if it errored
if(response.errored)
to_chat(user, "<span class='warning'>Error connecting to CentCom Ban DB. Please inform a maintainer or server host.</span>")
to_chat(user, SPAN_WARNING("Error connecting to CentCom Ban DB. Please inform a maintainer or server host."))
return
// Bail if the code isnt 200
if(response.status_code != 200)
to_chat(user, "<span class='warning'>Error performing CentCom Ban DB lookup (Code: [response.status_code])</span>")
to_chat(user, SPAN_WARNING("Error performing CentCom Ban DB lookup (Code: [response.status_code])"))
return
var/list/popup_data = list()
@@ -98,7 +98,7 @@
popup_data += "<hr>"
catch
to_chat(user, "<span class='warning'>Error parsing JSON data from CentCom Ban DB lookup. Please inform a maintainer.</span>")
to_chat(user, SPAN_WARNING("Error parsing JSON data from CentCom Ban DB lookup. Please inform a maintainer."))
return
var/datum/browser/popup = new(user, "ccbdblookup-[ckey]", "<div align='center'>CC Ban DB Lookup - [ckey]</div>", 700, 600)
+13 -13
View File
@@ -5,7 +5,7 @@
if(!check_rights(R_BAN)) return
if(!SSdbcore.IsConnected())
to_chat(usr, "<span class='boldannounceooc'>Database connection failure when attempting to make DB ban. Please freeze them and write their ckey in notepad, so they can be banned when the DB returns.</span>")
to_chat(usr, SPAN_BOLDANNOUNCEOOC("Database connection failure when attempting to make DB ban. Please freeze them and write their ckey in notepad, so they can be banned when the DB returns."))
return
var/serverip = "[world.internet_address]:[world.port]"
@@ -109,12 +109,12 @@
if(blockselfban)
if(a_ckey == ckey)
to_chat(usr, "<span class='danger'>You cannot apply this ban type on yourself.</span>")
to_chat(usr, SPAN_DANGER("You cannot apply this ban type on yourself."))
return
// Check validity of the CID. Some have a lot of collisions due to bad industry practices (thanks walmart)
if(computerid && (computerid in GLOB.configuration.admin.common_cid_map))
to_chat(usr, "<span class='notice'>You attempted to apply a ban that includes the CID [computerid]. This CID has been ignored for the following reason: [GLOB.configuration.admin.common_cid_map[computerid]]</span>")
to_chat(usr, SPAN_NOTICE("You attempted to apply a ban that includes the CID [computerid]. This CID has been ignored for the following reason: [GLOB.configuration.admin.common_cid_map[computerid]]"))
// Cancel it out. DO NOT USE NULL HERE. IT MAKES THE DB CRY. USE AN EMPTY STRING.
computerid = ""
@@ -142,7 +142,7 @@
if(adm_query.NextRow())
var/adm_bans = text2num(adm_query.item[1])
if(adm_bans >= MAX_ADMIN_BANS_PER_ADMIN)
to_chat(usr, "<span class='danger'>You already logged [MAX_ADMIN_BANS_PER_ADMIN] admin ban(s) or more. Do not abuse this function!</span>")
to_chat(usr, SPAN_DANGER("You already logged [MAX_ADMIN_BANS_PER_ADMIN] admin ban(s) or more. Do not abuse this function!"))
qdel(adm_query)
return
qdel(adm_query)
@@ -174,7 +174,7 @@
return
qdel(query_insert)
to_chat(usr, "<span class='notice'>Ban saved to database.</span>")
to_chat(usr, SPAN_NOTICE("Ban saved to database."))
message_admins("[key_name_admin(usr)] has added a [bantype_str] for [ckey] [(job)?"([job])":""] [(duration > 0)?"([duration] minutes)":""] with the reason: \"[reason]\" to the ban database.",1)
if(announce_in_discord)
@@ -198,7 +198,7 @@
if(!check_rights(R_BAN)) return
if(!SSdbcore.IsConnected())
to_chat(usr, "<span class='boldannounceooc'>Database connection failure when attempting to remove DB ban. Please remember to unban them at a later date!.</span>")
to_chat(usr, SPAN_BOLDANNOUNCEOOC("Database connection failure when attempting to remove DB ban. Please remember to unban them at a later date!."))
return
var/bantype_str
@@ -260,17 +260,17 @@
qdel(query)
if(ban_number == 0)
to_chat(usr, "<span class='warning'>Database update failed due to no bans fitting the search criteria. If this is not a legacy ban you should contact the database admin.</span>")
to_chat(usr, SPAN_WARNING("Database update failed due to no bans fitting the search criteria. If this is not a legacy ban you should contact the database admin."))
return
if(ban_number > 1)
to_chat(usr, "<span class='warning'>Database update failed due to multiple bans fitting the search criteria. Note down the ckey, job and current time and contact the database admin.</span>")
to_chat(usr, SPAN_WARNING("Database update failed due to multiple bans fitting the search criteria. Note down the ckey, job and current time and contact the database admin."))
return
if(istext(ban_id))
ban_id = text2num(ban_id)
if(!isnum(ban_id))
to_chat(usr, "<span class='warning'>Database update failed due to a ban ID mismatch. Contact the database admin.</span>")
to_chat(usr, SPAN_WARNING("Database update failed due to a ban ID mismatch. Contact the database admin."))
return
DB_ban_unban_by_id(ban_id)
@@ -394,7 +394,7 @@
return
if(!SSdbcore.IsConnected())
to_chat(usr, "<span class='boldannounceooc'>Database connection failure when attempting to remove DB ban. Please remember to unban them at a later date!.</span>")
to_chat(usr, SPAN_BOLDANNOUNCEOOC("Database connection failure when attempting to remove DB ban. Please remember to unban them at a later date!."))
return
var/ban_number = 0 //failsafe
@@ -413,11 +413,11 @@
qdel(query)
if(ban_number == 0)
to_chat(usr, "<span class='warning'>Database update failed due to a ban id not being present in the database.</span>")
to_chat(usr, SPAN_WARNING("Database update failed due to a ban id not being present in the database."))
return
if(ban_number > 1)
to_chat(usr, "<span class='warning'>Database update failed due to multiple bans having the same ID. Contact the database admin.</span>")
to_chat(usr, SPAN_WARNING("Database update failed due to multiple bans having the same ID. Contact the database admin."))
return
if(!src.owner || !isclient(src.owner))
@@ -459,7 +459,7 @@
return
if(!SSdbcore.IsConnected())
to_chat(usr, "<span class='warning'>Failed to establish database connection</span>")
to_chat(usr, SPAN_WARNING("Failed to establish database connection"))
return
var/cached_UID = UID()
var/list/output = list()
+9 -9
View File
@@ -34,7 +34,7 @@ GLOBAL_PROTECT(href_token)
/datum/admins/New(initial_rank, initial_rights, ckey)
if(IsAdminAdvancedProcCall())
to_chat(usr, "<span class='boldannounceooc'>Admin rank creation blocked: Advanced ProcCall detected.</span>")
to_chat(usr, SPAN_BOLDANNOUNCEOOC("Admin rank creation blocked: Advanced ProcCall detected."))
message_admins("[key_name(usr)] attempted to create a new admin rank via advanced proc-call")
log_admin("[key_name(usr)] attempted to edit feedback a new admin rank via advanced proc-call")
return
@@ -52,7 +52,7 @@ GLOBAL_PROTECT(href_token)
/datum/admins/Destroy()
if(IsAdminAdvancedProcCall())
to_chat(usr, "<span class='boldannounceooc'>Admin rank deletion blocked: Advanced ProcCall detected.</span>")
to_chat(usr, SPAN_BOLDANNOUNCEOOC("Admin rank deletion blocked: Advanced ProcCall detected."))
message_admins("[key_name(usr)] attempted to delete an admin rank via advanced proc-call")
log_admin("[key_name(usr)] attempted to delete an admin rank via advanced proc-call")
return
@@ -62,7 +62,7 @@ GLOBAL_PROTECT(href_token)
/datum/admins/proc/associate(client/C, delay_2fa_complaint = FALSE)
if(IsAdminAdvancedProcCall())
to_chat(usr, "<span class='boldannounceooc'>Rank association blocked: Advanced ProcCall detected.</span>")
to_chat(usr, SPAN_BOLDANNOUNCEOOC("Rank association blocked: Advanced ProcCall detected."))
message_admins("[key_name(usr)] attempted to associate an admin rank to a new client via advanced proc-call")
log_admin("[key_name(usr)] attempted to associate an admin rank to a new client via advanced proc-call")
return
@@ -79,7 +79,7 @@ GLOBAL_PROTECT(href_token)
restricted_by_2fa = TRUE
if(!delay_2fa_complaint)
// And tell them about it.
to_chat(owner,"<span class='boldannounceooc'><big>You do not have 2FA enabled. Admin verbs will be unavailable until you have enabled 2FA.\nTo setup 2FA, head to the following menu: <a href='byond://?_src_=prefs;preference=tab;tab=[TAB_GAME]'>Game Preferences</a></span>") // Very fucking obvious
to_chat(owner,SPAN_BOLDANNOUNCEOOC("<big>You do not have 2FA enabled. Admin verbs will be unavailable until you have enabled 2FA.\nTo setup 2FA, head to the following menu: <a href='byond://?_src_=prefs;preference=tab;tab=[TAB_GAME]'>Game Preferences</a>")) // Very fucking obvious
// Regardless of client, tell BYOND if they should have profiler access.
if(rights & (R_DEBUG | R_VIEWRUNTIMES))
@@ -121,7 +121,7 @@ GLOBAL_PROTECT(href_token)
/datum/admins/proc/disassociate()
if(IsAdminAdvancedProcCall())
to_chat(usr, "<span class='boldannounceooc'>Rank disassociation blocked: Advanced ProcCall detected.</span>")
to_chat(usr, SPAN_BOLDANNOUNCEOOC("Rank disassociation blocked: Advanced ProcCall detected."))
message_admins("[key_name(usr)] attempted to disassociate an admin rank from a client via advanced proc-call")
log_admin("[key_name(usr)] attempted to disassociate an admin rank from a client via advanced proc-call")
return
@@ -196,7 +196,7 @@ NOTE: checks usr by default, not src
/client/proc/deadmin()
if(IsAdminAdvancedProcCall())
to_chat(usr, "<span class='boldannounceooc'>Deadmin blocked: Advanced ProcCall detected.</span>")
to_chat(usr, SPAN_BOLDANNOUNCEOOC("Deadmin blocked: Advanced ProcCall detected."))
message_admins("[key_name(usr)] attempted to de-admin a client via advanced proc-call")
log_admin("[key_name(usr)] attempted to de-admin a client via advanced proc-call")
return
@@ -216,12 +216,12 @@ NOTE: checks usr by default, not src
set desc = "Regain your admin powers."
if(IsAdminAdvancedProcCall())
to_chat(usr, "<span class='boldannounceooc'>Readmin blocked: Advanced ProcCall detected.</span>")
to_chat(usr, SPAN_BOLDANNOUNCEOOC("Readmin blocked: Advanced ProcCall detected."))
message_admins("[key_name(usr)] attempted to re-admin a client via advanced proc-call")
log_admin("[key_name(usr)] attempted to re-admin a client via advanced proc-call")
if(holder)
to_chat(usr, "<span class='notice'>You are already an admin.</span>")
to_chat(usr, SPAN_NOTICE("You are already an admin."))
else if(ckey in (GLOB.de_admins + GLOB.de_mentors))
GLOB.de_admins -= ckey
GLOB.de_mentors -= ckey
@@ -230,7 +230,7 @@ NOTE: checks usr by default, not src
message_admins("[key_name_admin(usr)] re-adminned themselves.")
SSblackbox.record_feedback("tally", "admin_verb", 1, "Re-admin") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
else
to_chat(usr, "<span class='boldannounceooc'>Readmin blocked: You were not an admin or mentor.</span>")
to_chat(usr, SPAN_BOLDANNOUNCEOOC("Readmin blocked: You were not an admin or mentor."))
message_admins("[key_name(usr)] attempted to re-admin without being an admin or mentor")
log_admin("[key_name(usr)] attempted to re-admin without being an admin or mentor")
+1 -1
View File
@@ -1,6 +1,6 @@
USER_CONTEXT_MENU(machine_upgrade, R_DEBUG, "\[Admin\] Tweak Component Ratings", obj/machinery/M as obj in world)
if(!istype(M))
to_chat(client, "<span class='danger'>This can only be used on subtypes of /obj/machinery.</span>")
to_chat(client, SPAN_DANGER("This can only be used on subtypes of /obj/machinery."))
return
var/new_rating = input(client, "Enter new rating:","Num") as num
+6 -6
View File
@@ -165,7 +165,7 @@ RESTRICT_TYPE(/datum/ui_module/admin/antagonist_menu)
if("show_player_panel")
var/datum/mind/mind = locateUID(params["mind_uid"])
if(QDELETED(mind.current))
to_chat(ui.user, "<span class='warning'>Mind doesn't have a corresponding mob.</span>")
to_chat(ui.user, SPAN_WARNING("Mind doesn't have a corresponding mob."))
return
SSuser_verbs.invoke_verb(ui.user, /datum/user_verb/show_player_panel, mind.current)
if("pm")
@@ -177,13 +177,13 @@ RESTRICT_TYPE(/datum/ui_module/admin/antagonist_menu)
var/datum/mind/mind = locateUID(params["mind_uid"])
if(!ismob(mind.current))
to_chat(ui.user, "<span class='warning'>This can only be used on instances of type /mob</span>")
to_chat(ui.user, SPAN_WARNING("This can only be used on instances of type /mob"))
return
SSuser_verbs.invoke_verb(C, /datum/user_verb/admin_observe_target, mind.current)
if("tp")
var/datum/mind/mind = locateUID(params["mind_uid"])
if(QDELETED(mind))
to_chat(ui.user, "<span class='warning'>No mind!</span>")
to_chat(ui.user, SPAN_WARNING("No mind!"))
return
mind.edit_memory()
if("vv")
@@ -192,7 +192,7 @@ RESTRICT_TYPE(/datum/ui_module/admin/antagonist_menu)
var/client/C = ui.user.client
var/datum/target = locateUID(params["owner_uid"])
if(QDELETED(target))
to_chat(ui.user, "<span class='warning'>It seems the target you are looking for is null or deleted.</span>")
to_chat(ui.user, SPAN_WARNING("It seems the target you are looking for is null or deleted."))
return
if(istype(target, /datum/antagonist))
var/datum/antagonist/antag = target
@@ -200,7 +200,7 @@ RESTRICT_TYPE(/datum/ui_module/admin/antagonist_menu)
if(istype(target, /datum/mind))
var/datum/mind/mind = target
if(!ismob(mind.current))
to_chat(ui.user, "<span class='warning'>This can only be used on instances of type /mob</span>")
to_chat(ui.user, SPAN_WARNING("This can only be used on instances of type /mob"))
return
target = mind.current
var/mob/dead/observer/A = C.mob
@@ -210,4 +210,4 @@ RESTRICT_TYPE(/datum/ui_module/admin/antagonist_menu)
ui.user.client.holder.team_switch_tab_index = clamp(GLOB.antagonist_teams.Find(target), 1, length(GLOB.antagonist_teams))
ui.user.client.holder.check_teams()
return
to_chat(ui.user, "<span class='warning'>Type [target.type] isn't supported for finding the owner of an objective.</span>")
to_chat(ui.user, SPAN_WARNING("Type [target.type] isn't supported for finding the owner of an objective."))
+13 -13
View File
@@ -7,7 +7,7 @@ GLOBAL_VAR_INIT(disable_explosions, FALSE)
////////////////////////////////
/proc/message_admins(msg)
msg = "<span class='admin'><span class='prefix'>ADMIN LOG:</span> <span class='message'>[msg]</span></span>"
msg = SPAN_ADMIN(SPAN_PREFIX("ADMIN LOG:</span> <span class='message'>[msg]") )
for(var/client/C in GLOB.admins)
if(R_ADMIN & C.holder.rights)
if(C.prefs && !(C.prefs.toggles & PREFTOGGLE_CHAT_NO_ADMINLOGS))
@@ -15,7 +15,7 @@ GLOBAL_VAR_INIT(disable_explosions, FALSE)
/proc/msg_admin_attack(text, loglevel)
if(!GLOB.nologevent)
var/rendered = "<span class='admin'><span class='prefix'>ATTACK:</span> <span class='message'>[text]</span></span>"
var/rendered = SPAN_ADMIN(SPAN_PREFIX("ATTACK:</span> <span class='message'>[text]") )
for(var/client/C in GLOB.admins)
if((C.holder.rights & R_ADMIN) && (C.prefs?.atklog <= loglevel))
to_chat(C, rendered, MESSAGE_TYPE_ATTACKLOG, confidential = TRUE)
@@ -60,12 +60,12 @@ GLOBAL_VAR_INIT(disable_explosions, FALSE)
for(var/mob/O in GLOB.mob_list)
if(O.ckey && O.ckey == ckey_to_find)
if(admin_to_notify)
to_chat(admin_to_notify, "<span class='warning'>admin_ban_mobsearch: Player [ckey_to_find] is now in mob [O]. Pulling data from new mob.</span>", MESSAGE_TYPE_ADMINLOG, confidential = TRUE)
to_chat(admin_to_notify, SPAN_WARNING("admin_ban_mobsearch: Player [ckey_to_find] is now in mob [O]. Pulling data from new mob."), MESSAGE_TYPE_ADMINLOG, confidential = TRUE)
return O
if(admin_to_notify)
to_chat(admin_to_notify, "<span class='warning'>admin_ban_mobsearch: Player [ckey_to_find] does not seem to have any mob, anywhere. This is probably an error.</span>", MESSAGE_TYPE_ADMINLOG, confidential = TRUE)
to_chat(admin_to_notify, SPAN_WARNING("admin_ban_mobsearch: Player [ckey_to_find] does not seem to have any mob, anywhere. This is probably an error."), MESSAGE_TYPE_ADMINLOG, confidential = TRUE)
else if(admin_to_notify)
to_chat(admin_to_notify, "<span class='warning'>admin_ban_mobsearch: No mob or ckey detected.</span>", MESSAGE_TYPE_ADMINLOG, confidential = TRUE)
to_chat(admin_to_notify, SPAN_WARNING("admin_ban_mobsearch: No mob or ckey detected."), MESSAGE_TYPE_ADMINLOG, confidential = TRUE)
return M
///////////////////////////////////////////////////////////////////////////////////////////////Panels
@@ -384,7 +384,7 @@ USER_VERB(end_round, R_SERVER, "End Round", \
log_admin("[key_name(client)] has admin ended the round with message: '[input]'")
SSticker.force_ending = TRUE
SSticker.record_biohazard_results()
to_chat(world, "<span class='warning'><big><b>[input]</b></big></span>")
to_chat(world, SPAN_WARNING("<big><b>[input]</b></big>"))
SSblackbox.record_feedback("tally", "admin_verb", 1, "End Round") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
SSticker.mode_result = "admin ended"
@@ -394,7 +394,7 @@ USER_VERB(announce, R_ADMIN, "Announce", "Announce your desires to the world", V
if(!check_rights_client(R_SERVER, 0, client))
message = adminscrub(message,500)
message = replacetext(message, "\n", "<br>") // required since we're putting it in a <p> tag
to_chat(world, chat_box_notice("<span class='notice'><b>[client.holder.fakekey ? "Administrator" : client.key] Announces:</b><br><br><p>[message]</p></span>"))
to_chat(world, chat_box_notice(SPAN_NOTICE("<b>[client.holder.fakekey ? "Administrator" : client.key] Announces:</b><br><br><p>[message]</p>")))
log_admin("Announce: [key_name(client)] : [message]")
for(var/client/clients_to_alert in GLOB.clients)
window_flash(clients_to_alert)
@@ -458,7 +458,7 @@ USER_VERB(start_server_now, R_SERVER, "Start Now", "Start the round RIGHT NOW",
var/msg = ""
if(SSticker.current_state == GAME_STATE_STARTUP)
msg = " (The server is still setting up, but the round will be started as soon as possible.)"
message_admins("<span class='darkmblue'>[client.key] has started the game.[msg]</span>")
message_admins(SPAN_DARKMBLUE("[client.key] has started the game.[msg]"))
SSblackbox.record_feedback("tally", "admin_verb", 1, "Start Game") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
return 1
else
@@ -685,7 +685,7 @@ USER_VERB(toggle_guests, R_SERVER, "Toggle Guests", "Guests can't enter", VERB_C
else
to_chat(world, "<B>Guests may now enter the game.</B>")
log_admin("[key_name(client)] toggled guests game entering [GLOB.configuration?.general.guest_ban ? "dis" : ""]allowed.")
message_admins("<span class='notice'>[key_name_admin(client)] toggled guests game entering [GLOB.configuration?.general.guest_ban ? "dis" : ""]allowed.</span>", 1)
message_admins(SPAN_NOTICE("[key_name_admin(client)] toggled guests game entering [GLOB.configuration?.general.guest_ban ? "dis" : ""]allowed."), 1)
SSblackbox.record_feedback("tally", "admin_verb", 1, "Toggle Guests") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/datum/admins/proc/output_ai_laws()
@@ -814,7 +814,7 @@ USER_CONTEXT_MENU(update_mob_sprite, R_ADMIN, "\[Admin\] Update Mob Sprite", mob
var/mob/living/basic/possessed_object/tomob = new(toitem)
message_admins("<span class='adminnotice'>[key_name_admin(usr)] has put [frommob.ckey] in control of [tomob.name].</span>")
message_admins(SPAN_ADMINNOTICE("[key_name_admin(usr)] has put [frommob.ckey] in control of [tomob.name]."))
log_admin("[key_name(usr)] stuffed [frommob.ckey] into [tomob.name].")
SSblackbox.record_feedback("tally", "admin_verb", 1, "Ghost Drag")
@@ -840,7 +840,7 @@ USER_CONTEXT_MENU(update_mob_sprite, R_ADMIN, "\[Admin\] Update Mob Sprite", mob
if(tomob.client) //no need to ghostize if there is no client
tomob.ghostize(GHOST_FLAGS_OBSERVE_ONLY)
message_admins("<span class='adminnotice'>[key_name_admin(usr)] has put [frommob.ckey] in control of [tomob.name].</span>")
message_admins(SPAN_ADMINNOTICE("[key_name_admin(usr)] has put [frommob.ckey] in control of [tomob.name]."))
log_admin("[key_name(usr)] stuffed [frommob.ckey] into [tomob.name].")
SSblackbox.record_feedback("tally", "admin_verb", 1, "Ghost Drag")
@@ -860,7 +860,7 @@ USER_CONTEXT_MENU(update_mob_sprite, R_ADMIN, "\[Admin\] Update Mob Sprite", mob
if(QDELETED(frommob) || QDELETED(tothing)) //make sure the mobs don't go away while we waited for a response
return TRUE
message_admins("<span class='adminnotice'>[key_name_admin(usr)] has put [frommob.ckey] in control of an empty AI core.</span>")
message_admins(SPAN_ADMINNOTICE("[key_name_admin(usr)] has put [frommob.ckey] in control of an empty AI core."))
log_admin("[key_name(usr)] stuffed [frommob.ckey] into an empty AI core.")
SSblackbox.record_feedback("tally", "admin_verb", 1, "Ghost Drag")
@@ -911,7 +911,7 @@ USER_CONTEXT_MENU(update_mob_sprite, R_ADMIN, "\[Admin\] Update Mob Sprite", mob
possible_targets += possible_target.current // Allows for admins to pick off station roles
if(!length(possible_targets))
to_chat(caller_mob, "<span class='warning'>No possible target found.</span>")
to_chat(caller_mob, SPAN_WARNING("No possible target found."))
return
possible_targets = sortAtom(possible_targets)
+4 -4
View File
@@ -23,7 +23,7 @@ USER_VERB(outfit_manager, R_EVENT, "Outfit Manager", "Opens the outfit manager."
/datum/admins/proc/delete_outfit(mob/admin,datum/outfit/O)
GLOB.custom_outfits -= O
qdel(O)
to_chat(admin,"<span class='notice'>Outfit deleted.</span>")
to_chat(admin,SPAN_NOTICE("Outfit deleted."))
outfit_manager(admin)
/datum/admins/proc/load_outfit(mob/admin)
@@ -33,15 +33,15 @@ USER_VERB(outfit_manager, R_EVENT, "Outfit Manager", "Opens the outfit manager."
var/filedata = wrap_file2text(outfit_file)
var/json = json_decode(filedata)
if(!json)
to_chat(admin,"<span class='warning'>JSON decode error.</span>")
to_chat(admin,SPAN_WARNING("JSON decode error."))
return
var/otype = text2path(json["outfit_type"])
if(!ispath(otype,/datum/outfit))
to_chat(admin,"<span class='warning'>Malformed/Outdated file.</span>")
to_chat(admin,SPAN_WARNING("Malformed/Outdated file."))
return
var/datum/outfit/O = new otype
if(!O.load_from(json))
to_chat(admin,"<span class='warning'>Malformed/Outdated file.</span>")
to_chat(admin,SPAN_WARNING("Malformed/Outdated file."))
return
GLOB.custom_outfits += O
outfit_manager(admin)
@@ -121,14 +121,14 @@ USER_VERB(edit_admin_permissions, R_PERMISSIONS, "Permissions Panel", "Edit admi
if(!check_rights(R_PERMISSIONS))
return FALSE
if(IsAdminAdvancedProcCall())
to_chat(usr, "<span class='boldannounceooc'>Admin edit blocked: Advanced ProcCall detected.</span>")
to_chat(usr, SPAN_BOLDANNOUNCEOOC("Admin edit blocked: Advanced ProcCall detected."))
message_admins("[key_name(usr)] attempted to edit admin DB via advanced proc-call")
log_admin("[key_name(usr)] attempted to edit admin DB via advanced proc-call")
return FALSE
if(!usr.client)
return FALSE
if(!db_available())
to_chat(usr, "<span class='warning'>Admin database unavailable</span>")
to_chat(usr, SPAN_WARNING("Admin database unavailable"))
return FALSE
return TRUE
@@ -137,16 +137,16 @@ USER_VERB(edit_admin_permissions, R_PERMISSIONS, "Permissions Panel", "Edit admi
return
if(!istext(target_key))
to_chat(usr, "<span class='warning'>Provided key '[target_key]' is not text!</span>")
to_chat(usr, SPAN_WARNING("Provided key '[target_key]' is not text!"))
return
target_key = ckey(target_key)
if(target_key == "")
to_chat(usr, "<span class='warning'>Provided key was blank after converting to ckey!</span>")
to_chat(usr, SPAN_WARNING("Provided key was blank after converting to ckey!"))
return
if(!isnum(new_rank))
to_chat(usr, "<span class='warning'>Provided rank ID '[new_rank]' is not a number!</span>")
to_chat(usr, SPAN_WARNING("Provided rank ID '[new_rank]' is not a number!"))
return
var/datum/db_query/get_rank_name = SSdbcore.NewQuery("SELECT name FROM admin_ranks WHERE id = :new_rank", list(
@@ -160,7 +160,7 @@ USER_VERB(edit_admin_permissions, R_PERMISSIONS, "Permissions Panel", "Edit admi
rank_name = get_rank_name.item[1]
qdel(get_rank_name)
if(!rank_name)
to_chat(usr, "<span class='warning'>Rank with ID [new_rank] not found in database!</span>")
to_chat(usr, SPAN_WARNING("Rank with ID [new_rank] not found in database!"))
return
var/datum/db_query/get_admin_id = SSdbcore.NewQuery("SELECT id FROM admin WHERE ckey = :target_key", list(
@@ -190,7 +190,7 @@ USER_VERB(edit_admin_permissions, R_PERMISSIONS, "Permissions Panel", "Edit admi
qdel(insert_new_admin)
return
qdel(insert_new_admin)
message_admins("<span class='notice'>Admin ranks updated by [usr.ckey]: [target_key] (NEW ADMIN) is now a [rank_name][display_note].</span>")
message_admins(SPAN_NOTICE("Admin ranks updated by [usr.ckey]: [target_key] (NEW ADMIN) is now a [rank_name][display_note]."))
var/logtxt = "Added new admin [target_key] to rank [rank_name][display_note]"
var/datum/db_query/add_log = SSdbcore.NewQuery("INSERT INTO admin_log (`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (Now() , :uckey, :uip, :logtxt)", list(
@@ -213,7 +213,7 @@ USER_VERB(edit_admin_permissions, R_PERMISSIONS, "Permissions Panel", "Edit admi
qdel(update_admin_rank)
return
qdel(update_admin_rank)
message_admins("<span class='notice'>Admin ranks updated by [usr.ckey]: [target_key] is now a [rank_name][display_note].</span>")
message_admins(SPAN_NOTICE("Admin ranks updated by [usr.ckey]: [target_key] is now a [rank_name][display_note]."))
var/logtxt = "Edited the rank of [target_key] to [rank_name][display_note]"
if(clear_custom_permissions)
@@ -225,7 +225,7 @@ USER_VERB(edit_admin_permissions, R_PERMISSIONS, "Permissions Panel", "Edit admi
return
qdel(clear_permissions)
logtxt += " and cleared their custom permissions"
message_admins("<span class='notice'>Admin permissions updated by [usr.ckey]: [target_key] no longer has any custom permissions.</span>")
message_admins(SPAN_NOTICE("Admin permissions updated by [usr.ckey]: [target_key] no longer has any custom permissions."))
var/datum/db_query/add_log = SSdbcore.NewQuery("INSERT INTO admin_log (`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (Now() , :uckey, :uip, :logtxt)", list(
"uckey" = usr.ckey,
@@ -242,21 +242,21 @@ USER_VERB(edit_admin_permissions, R_PERMISSIONS, "Permissions Panel", "Edit admi
return
if(!istext(target_key))
to_chat(usr, "<span class='warning'>Provided key '[target_key]' is not text!</span>")
to_chat(usr, SPAN_WARNING("Provided key '[target_key]' is not text!"))
return
target_key = ckey(target_key)
if(target_key == "")
to_chat(usr, "<span class='warning'>Provided key was blank after converting to ckey!</span>")
to_chat(usr, SPAN_WARNING("Provided key was blank after converting to ckey!"))
return
if(!isnum(permission_bit) || permission_bit < 1 || floor(permission_bit) != permission_bit)
to_chat(usr, "<span class='warning'>Provided permission '[permission_bit]' is not positive whole number!</span>")
to_chat(usr, SPAN_WARNING("Provided permission '[permission_bit]' is not positive whole number!"))
return
var/pow2 = round(log(2, permission_bit), 1)
if((2 ** pow2) != permission_bit)
to_chat(usr, "<span class='warning'>Provided permission '[permission_bit]' is not a power of two, and would affect multiple permission bits!</span>")
to_chat(usr, SPAN_WARNING("Provided permission '[permission_bit]' is not a power of two, and would affect multiple permission bits!"))
return
var/datum/db_query/get_admin_permissions = SSdbcore.NewQuery("SELECT admin.id, admin_ranks.default_permissions, admin.extra_permissions, admin.removed_permissions FROM admin LEFT OUTER JOIN admin_ranks ON admin.permissions_rank = admin_ranks.id WHERE ckey = :target_key", list(
@@ -279,7 +279,7 @@ USER_VERB(edit_admin_permissions, R_PERMISSIONS, "Permissions Panel", "Edit admi
qdel(get_admin_permissions)
if(!admin_id)
to_chat(usr, "<span class='warning'>No admin found with ckey [target_key]!</span>")
to_chat(usr, SPAN_WARNING("No admin found with ckey [target_key]!"))
return
flag_account_for_forum_sync(target_key)
@@ -294,7 +294,7 @@ USER_VERB(edit_admin_permissions, R_PERMISSIONS, "Permissions Panel", "Edit admi
qdel(remove_removal)
return
qdel(remove_removal)
message_admins("<span class='notice'>Admin permissions updated by [usr.ckey]: [target_key] is no longer excluded from having [rights2text(permission_bit)].</span>")
message_admins(SPAN_NOTICE("Admin permissions updated by [usr.ckey]: [target_key] is no longer excluded from having [rights2text(permission_bit)]."))
var/logtxt = "Un-excluded permission [rights2text(permission_bit)] (flag = [permission_bit]) from admin [target_key]"
var/datum/db_query/create_log = SSdbcore.NewQuery({"
@@ -318,7 +318,7 @@ USER_VERB(edit_admin_permissions, R_PERMISSIONS, "Permissions Panel", "Edit admi
qdel(remove_extra)
return
qdel(remove_extra)
message_admins("<span class='notice'>Admin permissions updated by [usr.ckey]: [target_key] no longer has the extra permission [rights2text(permission_bit)].</span>")
message_admins(SPAN_NOTICE("Admin permissions updated by [usr.ckey]: [target_key] no longer has the extra permission [rights2text(permission_bit)]."))
var/logtxt = "Removed extra permission [rights2text(permission_bit)] (flag = [permission_bit]) from admin [target_key]"
var/datum/db_query/create_log = SSdbcore.NewQuery({"
@@ -342,7 +342,7 @@ USER_VERB(edit_admin_permissions, R_PERMISSIONS, "Permissions Panel", "Edit admi
qdel(create_removal)
return
qdel(create_removal)
message_admins("<span class='notice'>Admin permissions updated by [usr.ckey]: [target_key] is now excluded from having [rights2text(permission_bit)].</span>")
message_admins(SPAN_NOTICE("Admin permissions updated by [usr.ckey]: [target_key] is now excluded from having [rights2text(permission_bit)]."))
var/logtxt = "Excluded permission [rights2text(permission_bit)] (flag = [permission_bit]) from admin [target_key]"
var/datum/db_query/create_log = SSdbcore.NewQuery({"
@@ -365,7 +365,7 @@ USER_VERB(edit_admin_permissions, R_PERMISSIONS, "Permissions Panel", "Edit admi
qdel(add_extra)
return
qdel(add_extra)
message_admins("<span class='notice'>Admin permissions updated by [usr.ckey]: [target_key] has been granted the extra permission [rights2text(permission_bit)].</span>")
message_admins(SPAN_NOTICE("Admin permissions updated by [usr.ckey]: [target_key] has been granted the extra permission [rights2text(permission_bit)]."))
var/logtxt = "Added extra permission [rights2text(permission_bit)] (flag = [permission_bit]) to admin [target_key]"
var/datum/db_query/create_log = SSdbcore.NewQuery({"
@@ -383,12 +383,12 @@ USER_VERB(edit_admin_permissions, R_PERMISSIONS, "Permissions Panel", "Edit admi
return
if(!istext(target_key))
to_chat(usr, "<span class='warning'>Provided key '[target_key]' is not text!</span>")
to_chat(usr, SPAN_WARNING("Provided key '[target_key]' is not text!"))
return
target_key = ckey(target_key)
if(target_key == "")
to_chat(usr, "<span class='warning'>Provided key was blank after converting to ckey!</span>")
to_chat(usr, SPAN_WARNING("Provided key was blank after converting to ckey!"))
return
var/datum/db_query/get_admin_id = SSdbcore.NewQuery("SELECT admin.id FROM admin WHERE ckey = :target_key", list(
@@ -404,7 +404,7 @@ USER_VERB(edit_admin_permissions, R_PERMISSIONS, "Permissions Panel", "Edit admi
qdel(get_admin_id)
if(!admin_id)
to_chat(usr, "<span class='warning'>No admin found with ckey [target_key]!</span>")
to_chat(usr, SPAN_WARNING("No admin found with ckey [target_key]!"))
return
flag_account_for_forum_sync(target_key)
@@ -416,7 +416,7 @@ USER_VERB(edit_admin_permissions, R_PERMISSIONS, "Permissions Panel", "Edit admi
qdel(remove_admin)
return
qdel(remove_admin)
message_admins("<span class='notice'>Admin ranks updated by [usr.ckey]: [target_key] no longer has any admin rank.</span>")
message_admins(SPAN_NOTICE("Admin ranks updated by [usr.ckey]: [target_key] no longer has any admin rank."))
var/logtxt = "Removed the admin rank of [target_key]"
if(clear_custom_permissions)
@@ -427,7 +427,7 @@ USER_VERB(edit_admin_permissions, R_PERMISSIONS, "Permissions Panel", "Edit admi
qdel(clear_permissions)
return
qdel(clear_permissions)
message_admins("<span class='notice'>Admin permissions updated by [usr.ckey]: [target_key] no longer has any custom permissions.</span>")
message_admins(SPAN_NOTICE("Admin permissions updated by [usr.ckey]: [target_key] no longer has any custom permissions."))
logtxt += " and cleared their custom permissions"
var/datum/db_query/create_log = SSdbcore.NewQuery({"
@@ -454,7 +454,7 @@ USER_VERB(edit_admin_permissions, R_PERMISSIONS, "Permissions Panel", "Edit admi
add_rank.warn_execute()
qdel(add_rank)
message_admins("<span class='notice'>Admin ranks updated by [usr.ckey]: new rank [rank_name] created.</span>")
message_admins(SPAN_NOTICE("Admin ranks updated by [usr.ckey]: new rank [rank_name] created."))
var/logtxt = "Created the admin rank [rank_name]"
var/datum/db_query/create_log = SSdbcore.NewQuery({"
INSERT INTO admin_log (`datetime` ,`adminckey` ,`adminip` ,`log`)
@@ -473,7 +473,7 @@ USER_VERB(edit_admin_permissions, R_PERMISSIONS, "Permissions Panel", "Edit admi
var/rank_id = get_db_rank_id(rank_name)
if(!rank_id)
to_chat(usr, "<span class='warning'>No rank named [rank_name] found!</span>")
to_chat(usr, SPAN_WARNING("No rank named [rank_name] found!"))
return
var/datum/db_query/get_admins_with_rank = SSdbcore.NewQuery("SELECT ckey FROM admin WHERE permissions_rank = :rank_id", list(
@@ -487,7 +487,7 @@ USER_VERB(edit_admin_permissions, R_PERMISSIONS, "Permissions Panel", "Edit admi
admins += get_admins_with_rank.item[1]
qdel(get_admins_with_rank)
if(length(admins) > 0)
to_chat(usr, "<span class='warning'>[rank_name] is still in use, reassign the following admins first: [admins.Join(", ")]</span>")
to_chat(usr, SPAN_WARNING("[rank_name] is still in use, reassign the following admins first: [admins.Join(", ")]"))
return
var/datum/db_query/delete_rank = SSdbcore.NewQuery("DELETE FROM admin_ranks WHERE id = :rank_id", list(
@@ -498,7 +498,7 @@ USER_VERB(edit_admin_permissions, R_PERMISSIONS, "Permissions Panel", "Edit admi
return
qdel(delete_rank)
message_admins("<span class='notice'>Admin ranks updated by [usr.ckey]: unused rank [rank_name] deleted.</span>")
message_admins(SPAN_NOTICE("Admin ranks updated by [usr.ckey]: unused rank [rank_name] deleted."))
var/logtxt = "Deleted the unused admin rank [rank_name]"
var/datum/db_query/create_log = SSdbcore.NewQuery({"
INSERT INTO admin_log (`datetime` ,`adminckey` ,`adminip` ,`log`)
@@ -528,16 +528,16 @@ USER_VERB(edit_admin_permissions, R_PERMISSIONS, "Permissions Panel", "Edit admi
rank_permissions = get_rank_details.item[2]
qdel(get_rank_details)
if(!rank_id)
to_chat(usr, "<span class='warning'>No rank named [rank_name] found!</span>")
to_chat(usr, SPAN_WARNING("No rank named [rank_name] found!"))
return
if(!isnum(permission_bit) || permission_bit < 1 || floor(permission_bit) != permission_bit)
to_chat(usr, "<span class='warning'>Provided permission '[permission_bit]' is not positive whole number!</span>")
to_chat(usr, SPAN_WARNING("Provided permission '[permission_bit]' is not positive whole number!"))
return
var/pow2 = round(log(2, permission_bit), 1)
if((2 ** pow2) != permission_bit)
to_chat(usr, "<span class='warning'>Provided permission '[permission_bit]' is not a power of two, and would affect multiple permission bits!</span>")
to_chat(usr, SPAN_WARNING("Provided permission '[permission_bit]' is not a power of two, and would affect multiple permission bits!"))
return
if(rank_permissions & permission_bit)
@@ -550,7 +550,7 @@ USER_VERB(edit_admin_permissions, R_PERMISSIONS, "Permissions Panel", "Edit admi
qdel(create_removal)
return
qdel(create_removal)
message_admins("<span class='notice'>Admin ranks updated by [usr.ckey]: [rank_name] no longer has [rights2text(permission_bit)]. An admin reload is required to apply this change.</span>")
message_admins(SPAN_NOTICE("Admin ranks updated by [usr.ckey]: [rank_name] no longer has [rights2text(permission_bit)]. An admin reload is required to apply this change."))
var/logtxt = "Removed permission [rights2text(permission_bit)] (flag = [permission_bit]) from admin rank [rank_name]"
var/datum/db_query/create_log = SSdbcore.NewQuery({"
@@ -573,7 +573,7 @@ USER_VERB(edit_admin_permissions, R_PERMISSIONS, "Permissions Panel", "Edit admi
qdel(grant_permission)
return
qdel(grant_permission)
message_admins("<span class='notice'>Admin ranks updated by [usr.ckey]: [rank_name] has been given [rights2text(permission_bit)]. An admin reload is required to apply this change.</span>")
message_admins(SPAN_NOTICE("Admin ranks updated by [usr.ckey]: [rank_name] has been given [rights2text(permission_bit)]. An admin reload is required to apply this change."))
var/logtxt = "Added permission [rights2text(permission_bit)] (flag = [permission_bit]) to admin rank [rank_name]"
var/datum/db_query/create_log = SSdbcore.NewQuery({"
+10 -10
View File
@@ -3,14 +3,14 @@
return
if(IsAdminAdvancedProcCall() && !sanitise_html)
// *sigh*
to_chat(usr, "<span class='boldannounceooc'>Unsanitized note add blocked: Advanced ProcCall detected.</span>")
to_chat(usr, SPAN_BOLDANNOUNCEOOC("Unsanitized note add blocked: Advanced ProcCall detected."))
message_admins("[key_name(usr)] attempted to possibly inject HTML into notes via advanced proc-call")
log_admin("[key_name(usr)] attempted to possibly inject HTML into notes via advanced proc-call")
return
if(!SSdbcore.IsConnected())
if(usr)
to_chat(usr, "<span class='danger'>Failed to establish database connection.</span>")
to_chat(usr, SPAN_DANGER("Failed to establish database connection."))
return
if(!target_ckey)
@@ -39,7 +39,7 @@
if(!ckey_found)
if(usr)
to_chat(usr, "<span class='redtext'>[target_ckey] has not been seen before, you can only add notes to known players.</span>")
to_chat(usr, SPAN_REDTEXT("[target_ckey] has not been seen before, you can only add notes to known players."))
return
var/crew_number = 0
@@ -97,7 +97,7 @@
var/adminckey
if(!SSdbcore.IsConnected())
if(usr)
to_chat(usr, "<span class='danger'>Failed to establish database connection.</span>")
to_chat(usr, SPAN_DANGER("Failed to establish database connection."))
return
if(!note_id)
return
@@ -134,7 +134,7 @@
return
if(!SSdbcore.IsConnected())
if(usr)
to_chat(usr, "<span class='danger'>Failed to establish database connection.</span>")
to_chat(usr, SPAN_DANGER("Failed to establish database connection."))
return
if(!note_id)
return
@@ -152,7 +152,7 @@
var/adminckey = query_find_note_edit.item[3]
var/automated = query_find_note_edit.item[4]
if(automated)
to_chat(usr, "<span class='notice'>That note is generated automatically. You can't edit it.</span>")
to_chat(usr, SPAN_NOTICE("That note is generated automatically. You can't edit it."))
return
var/new_note = input("Input new note", "New Note", "[old_note]") as message|null
if(!new_note)
@@ -254,7 +254,7 @@
if(!query_list_notes.warn_execute())
qdel(query_list_notes)
return
to_chat(usr, "<span class='notice'>Started regex note search for [search]. Please wait for results...</span>")
to_chat(usr, SPAN_NOTICE("Started regex note search for [search]. Please wait for results..."))
message_admins("[usr.ckey] has started a note search with the following regex: [search] | CPU usage may be higher.")
while(query_list_notes.NextRow())
index_ckey = query_list_notes.item[1]
@@ -274,7 +274,7 @@
return
if(!SSdbcore.IsConnected())
if(usr)
to_chat(usr, "<span class='danger'>Failed to establish database connection.</span>")
to_chat(usr, SPAN_DANGER("Failed to establish database connection."))
return
if(!note_id)
return
@@ -292,10 +292,10 @@
var/automated = query_find_note_edit.item[4]
var/public = query_find_note_edit.item[5]
if((!adminckey || adminckey != usr.ckey) && !check_rights(R_PERMISSIONS))
to_chat(usr, "<span class='notice'>You cannot toggle the publicity of notes created by other users.</span>")
to_chat(usr, SPAN_NOTICE("You cannot toggle the publicity of notes created by other users."))
return
if(automated)
to_chat(usr, "<span class='notice'>That note is generated automatically. You can't edit it.</span>")
to_chat(usr, SPAN_NOTICE("That note is generated automatically. You can't edit it."))
return
if(public)
File diff suppressed because it is too large Load Diff
+12 -12
View File
@@ -17,7 +17,7 @@
USER_VERB(execute_sdql2_query, R_PROCCALL, "SDQL2 Query", "Run an SDQL query", VERB_CATEGORY_DEBUG)
if(!check_rights_client(R_PROCCALL, FALSE, client)) //Shouldn't happen... but just to be safe.
message_admins("<span class='danger'>ERROR: Non-admin [key_name_admin(client)] attempted to execute a SDQL query!</span>")
message_admins(SPAN_DANGER("ERROR: Non-admin [key_name_admin(client)] attempted to execute a SDQL query!"))
log_admin("Non-admin [key_name(client)] attempted to execute a SDQL query!")
return
@@ -30,7 +30,7 @@ USER_VERB(execute_sdql2_query, R_PROCCALL, "SDQL2 Query", "Run an SDQL query", V
/client/proc/run_sdql2_query(query_text)
if(!check_rights(R_PROCCALL)) //Shouldn't happen... but just to be safe.
message_admins("<span class='danger'>ERROR: Non-admin [key_name_admin(usr)] attempted to execute an SDQL query!</span>")
message_admins(SPAN_DANGER("ERROR: Non-admin [key_name_admin(usr)] attempted to execute an SDQL query!"))
log_admin("Non-admin [key_name(usr)] attempted to execute an SDQL query: [query_text]")
return
@@ -147,7 +147,7 @@ USER_VERB(execute_sdql2_query, R_PROCCALL, "SDQL2 Query", "Run an SDQL query", V
break
catch(var/exception/e)
to_chat(usr, "<span class='danger'>An exception has occurred during the execution of your query and your query has been aborted.</span>")
to_chat(usr, SPAN_DANGER("An exception has occurred during the execution of your query and your query has been aborted."))
to_chat(usr, " [e.name]")
to_chat(usr, " at: [e.file]:[e.line]")
@@ -175,7 +175,7 @@ USER_VERB(execute_sdql2_query, R_PROCCALL, "SDQL2 Query", "Run an SDQL query", V
querys[querys_pos] = parsed_tree
querys_pos++
else //There was an error so don't run anything, and tell the user which query has errored.
to_chat(usr, "<span class='danger'>Parsing error on [querys_pos]\th query. Nothing was executed.</span>")
to_chat(usr, SPAN_DANGER("Parsing error on [querys_pos]\th query. Nothing was executed."))
return list()
query_tree = list()
do_parse = 0
@@ -332,7 +332,7 @@ USER_VERB(execute_sdql2_query, R_PROCCALL, "SDQL2 Query", "Run an SDQL query", V
if("or", "||")
result = (result || val)
else
to_chat(usr, "<span class='danger'>SDQL2: Unknown op [op]</span>")
to_chat(usr, SPAN_DANGER("SDQL2: Unknown op [op]"))
result = null
else
result = val
@@ -396,11 +396,11 @@ USER_VERB(execute_sdql2_query, R_PROCCALL, "SDQL2 Query", "Run an SDQL query", V
if(expression[start] == "\[" && long)
if(lowertext(copytext(expression[start + 1], 1, 3)) != "0x")
to_chat(usr, "<span class='danger'>Invalid ref syntax: [expression[start + 1]]</span>")
to_chat(usr, SPAN_DANGER("Invalid ref syntax: [expression[start + 1]]"))
return null
v = locate("\[[expression[start + 1]]\]")
if(!v)
to_chat(usr, "<span class='danger'>Invalid ref: [expression[start + 1]]</span>")
to_chat(usr, SPAN_DANGER("Invalid ref: [expression[start + 1]]"))
return null
start++
@@ -438,7 +438,7 @@ USER_VERB(execute_sdql2_query, R_PROCCALL, "SDQL2 Query", "Run an SDQL query", V
var/list/L = v
var/index = SDQL_expression(source, expression[start + 2])
if(isnum(index) && (!ISINTEGER(index) || length(L) < index))
to_chat(world, "<span class='danger'>Invalid list index: [index]</span>")
to_chat(world, SPAN_DANGER("Invalid list index: [index]"))
return null
return L[index]
@@ -499,7 +499,7 @@ USER_VERB(execute_sdql2_query, R_PROCCALL, "SDQL2 Query", "Run an SDQL query", V
else if(char == "'")
if(word != "")
to_chat(usr, "<span class='danger'>SDQL2: You have an error in your SDQL syntax, unexpected ' in query: \"<font color=gray>[query_text]</font>\" following \"<font color=gray>[word]</font>\". Please check your syntax, and try again.</span>")
to_chat(usr, SPAN_DANGER("SDQL2: You have an error in your SDQL syntax, unexpected ' in query: \"<font color=gray>[query_text]</font>\" following \"<font color=gray>[word]</font>\". Please check your syntax, and try again."))
return null
word = "'"
@@ -519,7 +519,7 @@ USER_VERB(execute_sdql2_query, R_PROCCALL, "SDQL2 Query", "Run an SDQL query", V
word += char
if(i > len)
to_chat(usr, "<span class='danger'>SDQL2: You have an error in your SDQL syntax, unmatched ' in query: \"<font color=gray>[query_text]</font>\". Please check your syntax, and try again.</span>")
to_chat(usr, SPAN_DANGER("SDQL2: You have an error in your SDQL syntax, unmatched ' in query: \"<font color=gray>[query_text]</font>\". Please check your syntax, and try again."))
return null
query_list += "[word]'"
@@ -527,7 +527,7 @@ USER_VERB(execute_sdql2_query, R_PROCCALL, "SDQL2 Query", "Run an SDQL query", V
else if(char == "\"")
if(word != "")
to_chat(usr, "<span class='danger'>SDQL2: You have an error in your SDQL syntax, unexpected \" in query: \"<font color=gray>[query_text]</font>\" following \"<font color=gray>[word]</font>\". Please check your syntax, and try again.</span>")
to_chat(usr, SPAN_DANGER("SDQL2: You have an error in your SDQL syntax, unexpected \" in query: \"<font color=gray>[query_text]</font>\" following \"<font color=gray>[word]</font>\". Please check your syntax, and try again."))
return null
word = "\""
@@ -547,7 +547,7 @@ USER_VERB(execute_sdql2_query, R_PROCCALL, "SDQL2 Query", "Run an SDQL query", V
word += char
if(i > len)
to_chat(usr, "<span class='danger'>SDQL2: You have an error in your SDQL syntax, unmatched \" in query: \"<font color=gray>[query_text]</font>\". Please check your syntax, and try again.</span>")
to_chat(usr, SPAN_DANGER("SDQL2: You have an error in your SDQL syntax, unmatched \" in query: \"<font color=gray>[query_text]</font>\". Please check your syntax, and try again."))
return null
query_list += "[word]\""
@@ -60,7 +60,7 @@
/datum/sdql_parser/proc/parse_error(error_message)
error = 1
to_chat(usr, "<span class='danger'>SDQL2 Parsing Error: [error_message]</span>")
to_chat(usr, SPAN_DANGER("SDQL2 Parsing Error: [error_message]"))
return length(query) + 1
/datum/sdql_parser/proc/parse()
@@ -1,6 +1,6 @@
USER_VERB(open_zlevel_manager, R_ADMIN, "Z-Level Manager", "Opens the Z-Level Manager.", VERB_CATEGORY_ADMIN)
if(!SSmapping || !SSmapping.initialized)
to_chat(client, "<span class='notice'>SSmapping has not initialized yet, Z-Level Manager is not available yet.</span>")
to_chat(client, SPAN_NOTICE("SSmapping has not initialized yet, Z-Level Manager is not available yet."))
return
message_admins("[key_name_admin(client)] is using the Z-Level Manager")
+16 -16
View File
@@ -52,7 +52,7 @@ USER_VERB(admin_pm_by_key_panel, R_ADMIN|R_MENTOR, "Admin PM Key", "Send a PM by
//Fetching a message if needed. src is the sender and C is the target client
/client/proc/cmd_admin_pm(whom, msg, type = "PM", ticket_id = -1)
if(check_mute(ckey, MUTE_ADMINHELP))
to_chat(src, "<span class='danger'>Error: Private-Message: You are unable to use PM-s (muted).</span>")
to_chat(src, SPAN_DANGER("Error: Private-Message: You are unable to use PM-s (muted)."))
return
var/client/C
@@ -63,7 +63,7 @@ USER_VERB(admin_pm_by_key_panel, R_ADMIN|R_MENTOR, "Admin PM Key", "Send a PM by
if(!C)
if(holder)
to_chat(src, "<span class='danger'>Error: Private-Message: Client not found.</span>")
to_chat(src, SPAN_DANGER("Error: Private-Message: Client not found."))
else
adminhelp(msg) //admin we are replying to left. adminhelp instead
return
@@ -71,7 +71,7 @@ USER_VERB(admin_pm_by_key_panel, R_ADMIN|R_MENTOR, "Admin PM Key", "Send a PM by
/*if(C && C.last_pm_received + config.simultaneous_pm_warning_timeout > world.time && holder)
//send a warning to admins, but have a delay popup for mods
if(holder.rights & R_ADMIN)
to_chat(src, "<span class='danger'>Simultaneous PMs warning:</span> that player has been PM'd in the last [config.simultaneous_pm_warning_timeout / 10] seconds by: [C.ckey_last_pm]")
to_chat(src, "[SPAN_DANGER("Simultaneous PMs warning:")] that player has been PM'd in the last [config.simultaneous_pm_warning_timeout / 10] seconds by: [C.ckey_last_pm]")
else
if(alert("That player has been PM'd in the last [config.simultaneous_pm_warning_timeout / 10] seconds by: [C.ckey_last_pm]","Simultaneous PMs warning","Continue","Cancel") == "Cancel")
return*/
@@ -119,7 +119,7 @@ USER_VERB(admin_pm_by_key_panel, R_ADMIN|R_MENTOR, "Admin PM Key", "Send a PM by
return
if(!C)
if(holder)
to_chat(src, "<span class='danger'>Error: Admin-PM: Client not found.</span>")
to_chat(src, SPAN_DANGER("Error: Admin-PM: Client not found."))
else
adminhelp(msg) //admin we are replying to has vanished, adminhelp instead
return
@@ -141,7 +141,7 @@ USER_VERB(admin_pm_by_key_panel, R_ADMIN|R_MENTOR, "Admin PM Key", "Send a PM by
receive_pm_type = holder.rank
else if(!C.holder)
to_chat(src, "<span class='danger'>Error: Admin-PM: Non-admin to non-admin PM communication is forbidden.</span>")
to_chat(src, SPAN_DANGER("Error: Admin-PM: Non-admin to non-admin PM communication is forbidden."))
return
var/receive_message = ""
@@ -179,7 +179,7 @@ USER_VERB(admin_pm_by_key_panel, R_ADMIN|R_MENTOR, "Admin PM Key", "Send a PM by
else
ticket_link = "(<a href='byond://?_src_=holder;openticket=[ticket_id]'>TICKET</a>)"
var/emoji_msg = "<span class='emoji_enabled'>[msg]</span>"
var/emoji_msg = SPAN_EMOJI_ENABLED("[msg]")
var/receive_window_link = "(<a href='byond://?src=[C.persistent.pm_tracker.UID()];newtitle=[key]'>WINDOW</a>)"
if(message_type == MESSAGE_TYPE_MENTORPM && check_rights(R_ADMIN|R_MENTOR, 0, C.mob))
receive_window_link = ticket_link
@@ -206,9 +206,9 @@ USER_VERB(admin_pm_by_key_panel, R_ADMIN|R_MENTOR, "Admin PM Key", "Send a PM by
var/third_party_message
if(message_type == MESSAGE_TYPE_MENTORPM)
third_party_message = chat_box_mhelp("<span class='mentorhelp'>[type]: [key_name(src, TRUE, type, ticket_id = ticket_id)]-&gt;[key_name(C, TRUE, type, ticket_id = ticket_id)]:<br><br>[emoji_msg]<br>[ping_link] [ticket_link] [alert_link] [observe_link]</span>")
third_party_message = chat_box_mhelp(SPAN_MENTORHELP("[type]: [key_name(src, TRUE, type, ticket_id = ticket_id)]-&gt;[key_name(C, TRUE, type, ticket_id = ticket_id)]:<br><br>[emoji_msg]<br>[ping_link] [ticket_link] [alert_link] [observe_link]"))
else
third_party_message = chat_box_ahelp("<span class='adminhelp'>[type]: [key_name(src, TRUE, type, ticket_id = ticket_id)]-&gt;[key_name(C, TRUE, type, ticket_id = ticket_id)]:<br><br>[emoji_msg]<br>[ping_link] [ticket_link] [alert_link] [observe_link]</span>")
third_party_message = chat_box_ahelp(SPAN_ADMINHELP("[type]: [key_name(src, TRUE, type, ticket_id = ticket_id)]-&gt;[key_name(C, TRUE, type, ticket_id = ticket_id)]:<br><br>[emoji_msg]<br>[ping_link] [ticket_link] [alert_link] [observe_link]"))
//play the recieving admin the adminhelp sound (if they have them enabled)
//non-admins always hear the sound, as they cannot toggle it
@@ -237,11 +237,11 @@ USER_VERB(admin_pm_by_key_panel, R_ADMIN|R_MENTOR, "Admin PM Key", "Send a PM by
/client/proc/cmd_admin_discord_pm()
if(check_mute(ckey, MUTE_ADMINHELP))
to_chat(src, "<span class='danger'>Error: Private-Message: You are unable to use PMs (muted).</span>")
to_chat(src, SPAN_DANGER("Error: Private-Message: You are unable to use PMs (muted)."))
return
if(last_discord_pm_time > world.time)
to_chat(usr, "<span class='warning'>Please wait [(last_discord_pm_time - world.time)/10] seconds, or for a reply, before sending another PM to Discord.</span>")
to_chat(usr, SPAN_WARNING("Please wait [(last_discord_pm_time - world.time)/10] seconds, or for a reply, before sending another PM to Discord."))
return
// We only allow PMs once every 10 seconds, othewrise the channel can get spammed very quickly
@@ -255,20 +255,20 @@ USER_VERB(admin_pm_by_key_panel, R_ADMIN|R_MENTOR, "Admin PM Key", "Send a PM by
sanitize(msg)
if(length(msg) > 400) // Dont want them super spamming
to_chat(src, "<span class='warning'>Your message was not sent because it was more then 400 characters find your message below for ease of copy/pasting</span>")
to_chat(src, "<span class='notice'>[msg]</span>")
to_chat(src, SPAN_WARNING("Your message was not sent because it was more then 400 characters find your message below for ease of copy/pasting"))
to_chat(src, SPAN_NOTICE("[msg]"))
return
GLOB.discord_manager.send2discord_simple(DISCORD_WEBHOOK_ADMIN, "PM from [key_name(src)]: [html_decode(msg)]")
to_chat(src, "<span class='discordpm'>PM to-<b>Discord Admins</b>: [msg]</span>", MESSAGE_TYPE_ADMINPM, confidential = TRUE)
to_chat(src, SPAN_DISCORDPM("PM to-<b>Discord Admins</b>: [msg]"), MESSAGE_TYPE_ADMINPM, confidential = TRUE)
log_admin("PM: [key_name(src)]->Discord: [msg]")
for(var/client/X in GLOB.admins)
if(X == src)
continue
if(check_rights(R_ADMIN, 0, X.mob))
to_chat(X, "<span class='discordpm'><b>PM: [key_name_admin(src)]-&gt;Discord Admins:</b> <span class='notice'>[msg]</span></span>")
to_chat(X, SPAN_DISCORDPM("<b>PM: [key_name_admin(src)]-&gt;Discord Admins:</b> [SPAN_NOTICE("[msg]")]"))
/client/verb/open_pms_ui()
set name = "My PMs"
@@ -380,7 +380,7 @@ USER_VERB(admin_pm_by_key_panel, R_ADMIN|R_MENTOR, "Admin PM Key", "Send a PM by
dat += "</table>"
dat += "</div>"
if(convo.typing)
dat += "<i><span class='typing'>[current_title] is typing</span></i>"
dat += "<i>[SPAN_TYPING("[current_title] is typing")]</i>"
dat += "<br>"
dat += "</h4>"
dat += "<a href='byond://?src=[UID()];reply=[current_title]'>Reply</a>"
@@ -439,7 +439,7 @@ USER_VERB(admin_pm_by_key_panel, R_ADMIN|R_MENTOR, "Admin PM Key", "Send a PM by
C.persistent.pm_tracker.forced = TRUE // We forced it open
window_flash(C)
C.persistent.pm_tracker.show_ui(C.mob)
to_chat(usr, "<span class='notice'>Forced open [C]'s messages window.</span>")
to_chat(usr, SPAN_NOTICE("Forced open [C]'s messages window."))
return
if(href_list["reply"])
+8 -8
View File
@@ -32,8 +32,8 @@ USER_VERB(admin_say, R_ADMIN, "Asay", "Asay", VERB_CATEGORY_HIDDEN, msg as text)
temp_message = replacetext(temp_message, "@[C.ckey]", "<font color='red'>@[C.ckey]</font>")
temp_message = replacetext(temp_message, "@[C.key]", "<font color='red'>@[C.key]</font>") // Same applies here. key and ckey.
temp_message = "<span class='emoji_enabled'>[temp_message]</span>"
to_chat(C, "<span class='admin_channel'>ADMIN: <font color='[display_color]'>[key_name(client, 1)]</font> ([admin_jump_link(client.mob)]): <span class='message'>[temp_message]</span></span>", MESSAGE_TYPE_ADMINCHAT, confidential = TRUE)
temp_message = SPAN_EMOJI_ENABLED("[temp_message]")
to_chat(C, SPAN_ADMIN_CHANNEL("ADMIN: <font color='[display_color]'>[key_name(client, 1)]</font> ([admin_jump_link(client.mob)]): [SPAN_MESSAGE("[temp_message]")]"), MESSAGE_TYPE_ADMINCHAT, confidential = TRUE)
SSblackbox.record_feedback("tally", "admin_verb", 1, "Asay") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -64,8 +64,8 @@ USER_VERB(dev_say, R_ADMIN|R_DEV_TEAM, "Devsay", "Devsay", VERB_CATEGORY_HIDDEN,
display_name = "[client.holder.fakekey]/([client.key])"
else
display_name = client.holder.fakekey
msg = "<span class='emoji_enabled'>[msg]</span>"
to_chat(C, "<span class='[check_rights(R_ADMIN, 0) ? "dev_channel_admin" : "dev_channel"]'>DEV: <font color='[display_color]'>[display_name]</font> ([admin_jump_link(client.mob)]): <span class='message'>[msg]</span></span>", MESSAGE_TYPE_DEVCHAT, confidential = TRUE)
msg = SPAN_EMOJI_ENABLED("[msg]")
to_chat(C, "<span class='[check_rights(R_ADMIN, 0) ? "dev_channel_admin" : "dev_channel"]'>DEV: <font color='[display_color]'>[display_name]</font> ([admin_jump_link(client.mob)]): [SPAN_MESSAGE("[msg]")]</span>", MESSAGE_TYPE_DEVCHAT, confidential = TRUE)
SSblackbox.record_feedback("tally", "admin_verb", 1, "Devsay") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -99,8 +99,8 @@ USER_VERB(staff_say, R_ADMIN|R_MENTOR|R_DEV_TEAM, "Staffsay", "Staffsay", VERB_C
display_name = "[client.holder.fakekey]/([client.key])"
else
display_name = client.holder.fakekey
msg = "<span class='emoji_enabled'>[msg]</span>"
to_chat(C, "<span class='[check_rights(R_ADMIN, 0) ? "staff_channel_admin" : "staff_channel"]'>STAFF: <font color='[display_color]'>[display_name]</font> ([admin_jump_link(client.mob)]): <span class='message'>[msg]</span></span>", MESSAGE_TYPE_STAFFCHAT, confidential = TRUE)
msg = SPAN_EMOJI_ENABLED("[msg]")
to_chat(C, "<span class='[check_rights(R_ADMIN, 0) ? "staff_channel_admin" : "staff_channel"]'>STAFF: <font color='[display_color]'>[display_name]</font> ([admin_jump_link(client.mob)]): [SPAN_MESSAGE("[msg]")]</span>", MESSAGE_TYPE_STAFFCHAT, confidential = TRUE)
SSblackbox.record_feedback("tally", "admin_verb", 1, "Staffsay") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -135,8 +135,8 @@ USER_VERB(mentor_say, R_ADMIN|R_MENTOR|R_MOD, "Msay", "Use mentorsay.", VERB_CAT
display_name = "[client.holder.fakekey]/([client.key])"
else
display_name = client.holder.fakekey
msg = "<span class='emoji_enabled'>[msg]</span>"
to_chat(C, "<span class='[check_rights(R_ADMIN, 0) ? "mentor_channel_admin" : "mentor_channel"]'>MENTOR: <font color='[display_color]'>[display_name]</font> ([admin_jump_link(client.mob)]): <span class='message'>[msg]</span></span>", MESSAGE_TYPE_MENTORCHAT, confidential = TRUE)
msg = SPAN_EMOJI_ENABLED("[msg]")
to_chat(C, "<span class='[check_rights(R_ADMIN, 0) ? "mentor_channel_admin" : "mentor_channel"]'>MENTOR: <font color='[display_color]'>[display_name]</font> ([admin_jump_link(client.mob)]): [SPAN_MESSAGE("[msg]")]</span>", MESSAGE_TYPE_MENTORCHAT, confidential = TRUE)
SSblackbox.record_feedback("tally", "admin_verb", 1, "Msay") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
+1 -1
View File
@@ -8,6 +8,6 @@ USER_VERB(aooc, R_ADMIN, "AOOC", "Antagonist OOC", VERB_CATEGORY_OOC, msg as tex
for(var/mob/M in GLOB.mob_list)
if((M.mind && M.mind.special_role && M.client) || (M.client && M.client.holder && (M.client.holder.rights & R_ADMIN)))
to_chat(M, "<font color='#960018'><span class='ooc'><span class='prefix'>AOOC:</span> <EM>[display_name]:</EM> <span class='message'>[msg]</span></span></font>")
to_chat(M, "<font color='#960018'>[SPAN_OOC("[SPAN_PREFIX("AOOC:")] <EM>[display_name]:</EM> [SPAN_MESSAGE("[msg]")]")]</font>")
log_aooc(msg, client)
+2 -2
View File
@@ -13,7 +13,7 @@ USER_VERB(change_custom_event, R_EVENT, "Change Custom Event", "Set a custom eve
to_chat(world, "<h1 class='alert'>Custom Event</h1>")
to_chat(world, "<h2 class='alert'>A custom event is starting. OOC Info:</h2>")
to_chat(world, "<span class='alert'>[html_encode(GLOB.custom_event_msg)]</span>")
to_chat(world, SPAN_ALERT("[html_encode(GLOB.custom_event_msg)]"))
to_chat(world, "<br>")
// normal verb for players to view info
@@ -30,5 +30,5 @@ USER_VERB(change_custom_event, R_EVENT, "Change Custom Event", "Set a custom eve
custom_event_information += "<h1 class='alert'>Custom Event</h1>"
custom_event_information += "<h2 class='alert'>A custom event is taking place. OOC Info:</h2>"
custom_event_information += "<span class='alert'>[html_encode(GLOB.custom_event_msg)]</span>"
custom_event_information += SPAN_ALERT("[html_encode(GLOB.custom_event_msg)]")
to_chat(src, chat_box_regular(custom_event_information.Join("<br>")))
+3 -3
View File
@@ -3,11 +3,11 @@ USER_VERB(dsay, R_ADMIN|R_MOD, "Dsay", "Deadsay", VERB_CATEGORY_HIDDEN, msg as t
return
if(check_mute(client.ckey, MUTE_DEADCHAT))
to_chat(client, "<span class='warning'>You cannot send DSAY messages (muted).</span>")
to_chat(client, SPAN_WARNING("You cannot send DSAY messages (muted)."))
return
if(!(client.prefs.toggles & PREFTOGGLE_CHAT_DEAD))
to_chat(client, "<span class='warning'>You have deadchat muted.</span>")
to_chat(client, SPAN_WARNING("You have deadchat muted."))
return
if(client.handle_spam_prevention(msg, MUTE_DEADCHAT))
@@ -36,5 +36,5 @@ USER_VERB(dsay, R_ADMIN|R_MOD, "Dsay", "Deadsay", VERB_CATEGORY_HIDDEN, msg as t
var/prefix = "[stafftype] ([client.key])"
if(client.holder.fakekey)
prefix = "Administrator"
say_dead_direct("<span class='name'>[prefix]</span> says, <span class='message'>\"[msg]\"</span>")
say_dead_direct(SPAN_NAME("[prefix]</span> says, <span class='message'>\"[msg]\""))
SSblackbox.record_feedback("tally", "admin_verb", 1, "Dsay") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
+14 -14
View File
@@ -8,7 +8,7 @@ GLOBAL_VAR_INIT(deathsquad_sent, FALSE)
if(!check_rights(R_EVENT))
return
if(SSticker.current_state == GAME_STATE_PREGAME)
to_chat(usr, "<span class='warning'>The round hasn't started yet!</span>")
to_chat(usr, SPAN_WARNING("The round hasn't started yet!"))
return
if(GLOB.deathsquad_sent)
if(alert("A Deathsquad is already being sent, are you sure you want to send another?", null, "Yes", "No") != "Yes")
@@ -19,9 +19,9 @@ GLOBAL_VAR_INIT(deathsquad_sent, FALSE)
if(alert("Do you want to set AI and cyborgs laws to Terminator?", null, "Yes", "No") != "No")
ai_laws_change = TRUE
message_admins("<span class='notice'>[key_name_admin(proccaller)] has started to spawn a DeathSquad.</span>")
message_admins(SPAN_NOTICE("[key_name_admin(proccaller)] has started to spawn a DeathSquad."))
log_admin("[key_name_admin(proccaller)] has started to spawn a DeathSquad.")
to_chat(proccaller, "<span class='boldwarning'>This 'mode' will go on until everyone is dead or the station is destroyed. You may also admin-call the evac shuttle or use the end round verb when appropriate. Spawned commandos have internals cameras which are viewable through a monitor inside the Spec. Ops. Office. The first one selected will be the team leader.</span>")
to_chat(proccaller, SPAN_BOLDWARNING("This 'mode' will go on until everyone is dead or the station is destroyed. You may also admin-call the evac shuttle or use the end round verb when appropriate. Spawned commandos have internals cameras which are viewable through a monitor inside the Spec. Ops. Office. The first one selected will be the team leader."))
var/mission = sanitize(copytext_char(input(src, "Please specify which mission the Deathsquad shall undertake.", "Specify Mission", "",), 1, MAX_MESSAGE_LEN))
if(!mission)
@@ -36,7 +36,7 @@ GLOBAL_VAR_INIT(deathsquad_sent, FALSE)
var/notice_sound = sound('sound/AI/epsilon_laws.ogg')
for(var/mob/living/silicon/ai/AI in ais)
death_squad_ai_law_set.sync(AI, TRUE, FALSE) // Reset all laws exept zero
to_chat(AI, "<span class='userdanger'>Central command has uploaded a new set of laws you must follow. Make sure you follow them.</span>")
to_chat(AI, SPAN_USERDANGER("Central command has uploaded a new set of laws you must follow. Make sure you follow them."))
SEND_SOUND(AI, notice_sound)
AI.show_laws()
var/obj/item/radio/headset/heads/ai_integrated/ai_radio = AI.get_radio()
@@ -45,7 +45,7 @@ GLOBAL_VAR_INIT(deathsquad_sent, FALSE)
for(var/mob/living/silicon/robot/R in AI.connected_robots)
R.sync()
to_chat(R, "<span class='userdanger'>Central command has uploaded a new set of laws you must follow. Make sure you follow them.</span>")
to_chat(R, SPAN_USERDANGER("Central command has uploaded a new set of laws you must follow. Make sure you follow them."))
SEND_SOUND(R, notice_sound)
R.show_laws()
var/obj/item/radio/borg/cyborg_radio = R.get_radio()
@@ -105,7 +105,7 @@ GLOBAL_VAR_INIT(deathsquad_sent, FALSE)
if(!length(commando_ghosts))
message_admins("[key_name_admin(proccaller)]'s Deathsquad had no volunteers and was cancelled.")
log_admin("[key_name(proccaller)]'s Deathsquad had no volunteers and was cancelled.")
to_chat(src, "<span class='userdanger'>Nobody volunteered to join the DeathSquad.</span>")
to_chat(src, SPAN_USERDANGER("Nobody volunteered to join the DeathSquad."))
return
// Spawns a nuclear warhead for the team
@@ -123,7 +123,7 @@ GLOBAL_VAR_INIT(deathsquad_sent, FALSE)
var/dstype
if(is_leader)
to_chat(ghost_mob.client, "<span class='boldwarning'>You have been chosen to lead the Deathsquad. Please stand by.</span>" )
to_chat(ghost_mob.client, SPAN_BOLDWARNING("You have been chosen to lead the Deathsquad. Please stand by.") )
else
dstype = input_async(ghost_mob, "Select Deathsquad Type (10 seconds):", list("Organic", "Cyborg"))
addtimer(CALLBACK(src, PROC_REF(deathsquad_spawn), ghost_mob, is_leader, dstype, my_spawn_loc, nuke_code, mission), 10 SECONDS) // This may fail if the user switches mobs during it, this is because input_async is only for mobs not clients
@@ -140,7 +140,7 @@ GLOBAL_VAR_INIT(deathsquad_sent, FALSE)
P.stamp(stamp)
qdel(stamp)
message_admins("<span class='notice'>[key_name_admin(proccaller)] has spawned a DeathSquad.</span>")
message_admins(SPAN_NOTICE("[key_name_admin(proccaller)] has spawned a DeathSquad."))
log_admin("[key_name(proccaller)] used Spawn Death Squad.")
return TRUE
@@ -174,9 +174,9 @@ GLOBAL_VAR_INIT(deathsquad_sent, FALSE)
R.key = ghost_mob.key
dust_if_respawnable(ghost_mob)
if(nuke_code)
R.mind.store_memory("<b>Nuke Code:</b> <span class='warning'>[nuke_code].</span>")
R.mind.store_memory("<b>Mission:</b> <span class='warning'>[mission].</span>")
to_chat(R, "<span class='userdanger'>You are a Deathsquad cyborg, in the service of Central Command. \nYour current mission is: <span class='danger'>[mission]</span></span>")
R.mind.store_memory("<b>Nuke Code:</b> [SPAN_WARNING("[nuke_code].")]")
R.mind.store_memory("<b>Mission:</b> [SPAN_WARNING("[mission].")]")
to_chat(R, SPAN_USERDANGER("You are a Deathsquad cyborg, in the service of Central Command. \nYour current mission is: [SPAN_DANGER("[mission]")]"))
else
var/mob/living/carbon/human/new_commando = create_deathsquad_commando(L, is_leader)
new_commando.mind.key = ghost_mob.key
@@ -184,9 +184,9 @@ GLOBAL_VAR_INIT(deathsquad_sent, FALSE)
dust_if_respawnable(ghost_mob)
new_commando.update_action_buttons_icon()
if(nuke_code)
new_commando.mind.store_memory("<b>Nuke Code:</b> <span class='warning'>[nuke_code].</span>")
new_commando.mind.store_memory("<b>Mission:</b> <span class='warning'>[mission].</span>")
to_chat(new_commando, "<span class='userdanger'>You are a Deathsquad [is_leader ? "<b>TEAM LEADER</b>" : "commando"] in the service of Central Command. Check the table ahead for detailed instructions.\nYour current mission is: <span class='danger'>[mission]</span></span>")
new_commando.mind.store_memory("<b>Nuke Code:</b> [SPAN_WARNING("[nuke_code].")]")
new_commando.mind.store_memory("<b>Mission:</b> [SPAN_WARNING("[mission].")]")
to_chat(new_commando, SPAN_USERDANGER("You are a Deathsquad [is_leader ? "<b>TEAM LEADER</b>" : "commando"] in the service of Central Command. Check the table ahead for detailed instructions.\nYour current mission is: [SPAN_DANGER("[mission]")]"))
/client/proc/create_deathsquad_commando(obj/spawn_location, is_leader = FALSE)
var/mob/living/carbon/human/new_commando = new(spawn_location.loc)
+18 -18
View File
@@ -39,7 +39,7 @@ USER_VERB(advanced_proccall, R_PROCCALL, "Advanced ProcCall", "Advanced ProcCall
// absolutely not
if(findtextEx(trim(lowertext(procname)), "rustg"))
message_admins("<span class='userdanger'>[key_name_admin(client)] attempted to proc call rust-g procs. Inform the host <u>at once</u>.</span>")
message_admins(SPAN_USERDANGER("[key_name_admin(client)] attempted to proc call rust-g procs. Inform the host <u>at once</u>."))
log_admin("[key_name(client)] attempted to proc call rust-g procs. Inform the host at once.")
GLOB.discord_manager.send2discord_simple(DISCORD_WEBHOOK_ADMIN, "[key_name(client)] attempted to proc call rustg things. Inform the host at once.")
return
@@ -106,10 +106,10 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention)
CRASH("WrapAdminProcCall with no ckey: [target] [procname] [english_list(arguments)]")
if(current_caller && current_caller != ckey)
if(!GLOB.AdminProcCallSpamPrevention[ckey])
to_chat(usr, "<span class='userdanger'>Another set of admin called procs are still running, your proc will be run after theirs finish.</span>")
to_chat(usr, SPAN_USERDANGER("Another set of admin called procs are still running, your proc will be run after theirs finish."))
GLOB.AdminProcCallSpamPrevention[ckey] = TRUE
UNTIL(!GLOB.AdminProcCaller)
to_chat(usr, "<span class='userdanger'>Running your proc</span>")
to_chat(usr, SPAN_USERDANGER("Running your proc"))
GLOB.AdminProcCallSpamPrevention -= ckey
else
UNTIL(!GLOB.AdminProcCaller)
@@ -121,7 +121,7 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention)
try
. = world.WrapAdminProcCall(target, procname, arguments)
catch(var/exception/e)
to_chat(usr, "<span class='userdanger'>Your proc call failed to execute, likely from runtimes. You <i>should</i> be out of safety mode. If not, god help you. Runtime Info: [e.file]:[e.line]: [e.name]</span>")
to_chat(usr, SPAN_USERDANGER("Your proc call failed to execute, likely from runtimes. You <i>should</i> be out of safety mode. If not, god help you. Runtime Info: [e.file]:[e.line]: [e.name]"))
if(--GLOB.AdminProcCallCount == 0)
GLOB.AdminProcCaller = null
@@ -133,7 +133,7 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention)
else if(target != world)
return call(target, procname)(arglist(arguments))
else
to_chat(usr, "<span class='boldannounceooc'>Call to world/proc/[procname] blocked: Advanced ProcCall detected.</span>")
to_chat(usr, SPAN_BOLDANNOUNCEOOC("Call to world/proc/[procname] blocked: Advanced ProcCall detected."))
message_admins("[key_name(usr)] attempted to call world/proc/[procname] with arguments: [english_list(arguments)]")
log_admin("[key_name(usr)] attempted to call world/proc/[procname] with arguments: [english_list(arguments)]l")
@@ -146,7 +146,7 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention)
USER_CONTEXT_MENU(call_proc_datum, R_PROCCALL, "\[Admin\] Atom ProcCall", datum/A as null|area|mob|obj|turf)
if(istype(A, /datum/logging) || istype(A, /datum/log_record))
message_admins("<span class='userdanger'>[key_name_admin(client)] attempted to proc call on a logging object. Inform the host <u>at once</u>.</span>")
message_admins(SPAN_USERDANGER("[key_name_admin(client)] attempted to proc call on a logging object. Inform the host <u>at once</u>."))
log_admin("[key_name(client)] attempted to proc call on a logging object. Inform the host at once.")
GLOB.discord_manager.send2discord_simple(DISCORD_WEBHOOK_ADMIN, "[key_name(client)] attempted to proc call on a logging object. Inform the host at once.")
return
@@ -156,7 +156,7 @@ USER_CONTEXT_MENU(call_proc_datum, R_PROCCALL, "\[Admin\] Atom ProcCall", datum/
return
if(!hascall(A,procname))
to_chat(client, "<span class='warning'>Error: callproc_datum(): target has no such call [procname].</span>")
to_chat(client, SPAN_WARNING("Error: callproc_datum(): target has no such call [procname]."))
return
var/list/lst = client.get_callproc_args()
@@ -164,14 +164,14 @@ USER_CONTEXT_MENU(call_proc_datum, R_PROCCALL, "\[Admin\] Atom ProcCall", datum/
return
if(!A || !IsValidSrc(A))
to_chat(client, "<span class='warning'>Error: callproc_datum(): owner of proc no longer exists.</span>")
to_chat(client, SPAN_WARNING("Error: callproc_datum(): owner of proc no longer exists."))
return
message_admins("[key_name_admin(client)] called [A]'s [procname]() with [length(lst) ? "the arguments [list2params(lst)]":"no arguments"]")
log_admin("[key_name(client)] called [A]'s [procname]() with [length(lst) ? "the arguments [list2params(lst)]":"no arguments"]")
spawn()
var/returnval = WrapAdminProcCall(A, procname, lst) // Pass the lst as an argument list to the proc
to_chat(client, "<span class='notice'>[procname] returned: [!isnull(returnval) ? returnval : "null"]</span>")
to_chat(client, SPAN_NOTICE("[procname] returned: [!isnull(returnval) ? returnval : "null"]"))
SSblackbox.record_feedback("tally", "admin_verb", 1, "Atom Proc-Call") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -284,7 +284,7 @@ USER_VERB(admin_alienize, R_SPAWN, "Make Alien", "Turn the target mob into an al
M:Alienize()
SSblackbox.record_feedback("tally", "admin_verb", 1, "Make Alien") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
log_admin("[key_name(client)] made [key_name(M)] into an alien.")
message_admins("<span class='notice'>[key_name_admin(client)] made [key_name(M)] into an alien.</span>", 1)
message_admins(SPAN_NOTICE("[key_name_admin(client)] made [key_name(M)] into an alien."), 1)
else
alert(client, "Invalid mob")
@@ -298,7 +298,7 @@ USER_VERB(admin_slimezie, R_SPAWN, "Make slime", "Turn the target mob into a sli
M:slimeize()
SSblackbox.record_feedback("tally", "admin_verb", 1, "Make Slime") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
log_admin("[key_name(client)] made [key_name(M)] into a slime.")
message_admins("<span class='notice'>[key_name_admin(client)] made [key_name(M)] into a slime.</span>", 1)
message_admins(SPAN_NOTICE("[key_name_admin(client)] made [key_name(M)] into a slime."), 1)
else
alert(client, "Invalid mob")
@@ -312,7 +312,7 @@ USER_VERB(admin_super, R_SPAWN, "Make Superhero", "Turn the target mob into a su
if(S)
S.create(M)
log_admin("[key_name(client)] has turned [M.key] into a Superhero.")
message_admins("<span class='notice'>[key_name_admin(client)] made [key_name(M)] into a Superhero.</span>", 1)
message_admins(SPAN_NOTICE("[key_name_admin(client)] made [key_name(M)] into a Superhero."), 1)
else
alert(client, "Invalid mob")
@@ -364,7 +364,7 @@ USER_VERB(grant_full_access, R_EVENT, "Grant Full Access", "Gives mob all-access
alert(client, "Invalid mob")
SSblackbox.record_feedback("tally", "admin_verb", 1, "Grant Full Access") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
log_admin("[key_name(client)] has granted [M.key] full access.")
message_admins("<span class='notice'>[key_name_admin(client)] has granted [M.key] full access.</span>", 1)
message_admins(SPAN_NOTICE("[key_name_admin(client)] has granted [M.key] full access."), 1)
USER_VERB_VISIBILITY(assume_direct_control, VERB_VISIBILITY_FLAG_MOREDEBUG)
USER_VERB(assume_direct_control, R_ADMIN|R_DEBUG, "Assume direct control", "Direct intervention", VERB_CATEGORY_ADMIN, mob/M in GLOB.mob_list)
@@ -374,7 +374,7 @@ USER_VERB(assume_direct_control, R_ADMIN|R_DEBUG, "Assume direct control", "Dire
else
var/mob/dead/observer/ghost = new/mob/dead/observer(M,1)
ghost.ckey = M.ckey
message_admins("<span class='notice'>[key_name_admin(client)] assumed direct control of [M].</span>", 1)
message_admins(SPAN_NOTICE("[key_name_admin(client)] assumed direct control of [M]."), 1)
log_admin("[key_name(client)] assumed direct control of [M].")
var/mob/adminmob = client.mob
M.ckey = client.ckey
@@ -522,7 +522,7 @@ USER_CONTEXT_MENU(select_equipment, R_EVENT, "\[Admin\] Select equipment", mob/l
SSblackbox.record_feedback("tally", "admin_verb", 1, "Select Equipment") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
log_admin("[key_name(client)] changed the equipment of [key_name(M)] to [dresscode].")
message_admins("<span class='notice'>[key_name_admin(client)] changed the equipment of [key_name_admin(M)] to [dresscode].</span>", 1)
message_admins(SPAN_NOTICE("[key_name_admin(client)] changed the equipment of [key_name_admin(M)] to [dresscode]."), 1)
/client/proc/robust_dress_shop(list/potential_minds)
var/list/special_outfits = list(
@@ -754,10 +754,10 @@ USER_VERB(view_runtimes, R_DEBUG|R_VIEWRUNTIMES, "View Runtimes", "Open the Runt
USER_VERB(allow_browser_inspect, R_DEBUG, "Allow Browser Inspect", "Allow browser debugging via inspect", VERB_CATEGORY_DEBUG)
if(client.byond_version < 516)
to_chat(client, "<span class='warning'>You can only use this on 516!</span>")
to_chat(client, SPAN_WARNING("You can only use this on 516!"))
return
to_chat(client, "<span class='notice'>You can now right click to use inspect on browsers.</span>")
to_chat(client, SPAN_NOTICE("You can now right click to use inspect on browsers."))
winset(client, "", "browser-options=byondstorage,find,devtools")
USER_VERB_VISIBILITY(debug_clean_radiation, VERB_VISIBILITY_FLAG_MOREDEBUG)
@@ -777,7 +777,7 @@ USER_VERB(debug_clean_radiation, R_DEBUG, "Remove All Radiation", "Remove all ra
USER_VERB(view_bug_reports, R_DEBUG|R_VIEWRUNTIMES|R_ADMIN, "View Bug Reports", "Select a bug report to view", VERB_CATEGORY_DEBUG)
if(!length(GLOB.bug_reports))
to_chat(client, "<span class='warning'>There are no bug reports to view</span>")
to_chat(client, SPAN_WARNING("There are no bug reports to view"))
return
var/list/bug_report_selection = list()
for(var/datum/tgui_bug_report_form/report in GLOB.bug_reports)
+2 -2
View File
@@ -15,7 +15,7 @@
if(T.active_hotspot)
burning = 1
to_chat(usr, "<span class='notice'>@[target.x],[target.y]: O:[GM.oxygen()] T:[GM.toxins()] N:[GM.nitrogen()] C:[GM.carbon_dioxide()] N2O: [GM.sleeping_agent()] Agent B: [GM.agent_b()] Hydrogen: [GM.hydrogen()] Water Vapor: [GM.water_vapor()] w [GM.temperature()] Kelvin, [GM.return_pressure()] kPa [(burning)?("<span class='warning'>BURNING</span>"):(null)]</span>")
to_chat(usr, SPAN_NOTICE("@[target.x],[target.y]: O:[GM.oxygen()] T:[GM.toxins()] N:[GM.nitrogen()] C:[GM.carbon_dioxide()] N2O: [GM.sleeping_agent()] Agent B: [GM.agent_b()] Hydrogen: [GM.hydrogen()] Water Vapor: [GM.water_vapor()] w [GM.temperature()] Kelvin, [GM.return_pressure()] kPa [(burning)?SPAN_WARNING("BURNING"):(null)]"))
message_admins("[key_name_admin(usr)] has checked the air status of [target]")
log_admin("[key_name(usr)] has checked the air status of [target]")
@@ -117,7 +117,7 @@ USER_VERB(vv_by_ref, R_MAINTAINER, "VV by Ref", "Give this a ref string, and you
var/datum/D = locate(refstring)
if(!D)
to_chat(client, "<span class='warning'>That ref string does not correspond to any datum.</span>")
to_chat(client, SPAN_WARNING("That ref string does not correspond to any datum."))
return
SSuser_verbs.invoke_verb(client, /datum/user_verb/debug_variables, D)
+3 -3
View File
@@ -45,7 +45,7 @@ USER_CONTEXT_MENU(admin_freeze, R_ADMIN, "\[Admin\] Freeze", atom/movable/M)
admin_prev_sleeping = null
to_chat(src, "<b><font color= red>You have been [frozen ? "frozen" : "unfrozen"] by [admin]</b></font>")
message_admins("<span class='notice'>[key_name_admin(admin)] [frozen ? "froze" : "unfroze"] [key_name_admin(src)] [mech ? "in a [mech]" : ""]</span>")
message_admins(SPAN_NOTICE("[key_name_admin(admin)] [frozen ? "froze" : "unfroze"] [key_name_admin(src)] [mech ? "in a [mech]" : ""]"))
log_admin("[key_name(admin)] [frozen ? "froze" : "unfroze"] [key_name(src)] [mech ? "in a [mech]" : ""]")
update_icons()
@@ -88,7 +88,7 @@ USER_CONTEXT_MENU(admin_freeze, R_ADMIN, "\[Admin\] Freeze", atom/movable/M)
if(occupant)
occupant.admin_Freeze(admin, mech = name) // We also want to freeze the driver of the mech.
else
message_admins("<span class='notice'>[key_name_admin(admin)] [frozen ? "froze" : "unfroze"] an empty [name]</span>")
message_admins(SPAN_NOTICE("[key_name_admin(admin)] [frozen ? "froze" : "unfroze"] an empty [name]"))
log_admin("[key_name(admin)] [frozen ? "froze" : "unfroze"] an empty [name]")
/obj/machinery/atmospherics/supermatter_crystal/admin_Freeze(client/admin)
@@ -103,5 +103,5 @@ USER_CONTEXT_MENU(admin_freeze, R_ADMIN, "\[Admin\] Freeze", atom/movable/M)
GLOB.frozen_atom_list -= src
processes = TRUE
cut_overlay(freeze_overlay)
message_admins("<span class='notice'>[key_name_admin(admin)] [processes ? "unfroze" : "froze"] a supermatter crystal</span>")
message_admins(SPAN_NOTICE("[key_name_admin(admin)] [processes ? "unfroze" : "froze"] a supermatter crystal"))
log_admin("[key_name(admin)] [processes ? "unfroze" : "froze"] a supermatter crystal")
+1 -1
View File
@@ -79,7 +79,7 @@
H.equipOutfit(O, FALSE)
to_chat(H, "<BR><span class='danger'><B>[themission]</B></span>")
to_chat(H, "<BR>[SPAN_DANGER("<B>[themission]</B>")]")
H.mind.store_memory("<B>[themission]</B><BR><BR>")
if(is_syndicate)
@@ -87,8 +87,8 @@ GLOBAL_VAR_INIT(sent_syndicate_infiltration_team, 0)
new_syndicate_infiltrator.update_action_buttons_icon()
dust_if_respawnable(theguy)
infiltrators -= theguy
to_chat(new_syndicate_infiltrator, "<span class='danger'>You are a [!syndicate_leader_selected?"Infiltrator":"<B>Lead Infiltrator</B>"] in the service of the Syndicate. \nYour current mission is: <B>[input]</B></span>")
to_chat(new_syndicate_infiltrator, "<span class='notice'>You are equipped with an uplink bio-chip to help you achieve your objectives. ((activate it via button in top left of screen))</span>")
to_chat(new_syndicate_infiltrator, SPAN_DANGER("You are a [!syndicate_leader_selected?"Infiltrator":"<B>Lead Infiltrator</B>"] in the service of the Syndicate. \nYour current mission is: <B>[input]</B>"))
to_chat(new_syndicate_infiltrator, SPAN_NOTICE("You are equipped with an uplink bio-chip to help you achieve your objectives. ((activate it via button in top left of screen))"))
new_syndicate_infiltrator.faction += "syndicate"
GLOB.data_core.manifest_inject(new_syndicate_infiltrator)
if(syndicate_leader_selected)
@@ -96,11 +96,11 @@ GLOBAL_VAR_INIT(sent_syndicate_infiltration_team, 0)
new_syndicate_infiltrator.loc = warpto.loc
sit_spawns_leader -= warpto
team_leader = new_syndicate_infiltrator
to_chat(new_syndicate_infiltrator, "<span class='danger'>As team leader, it is up to you to organize your team! Give the job to someone else if you can't handle it.</span>")
to_chat(new_syndicate_infiltrator, SPAN_DANGER("As team leader, it is up to you to organize your team! Give the job to someone else if you can't handle it."))
else
to_chat(new_syndicate_infiltrator, "<span class='danger'>Your team leader is: [team_leader]. They are in charge!</span>")
to_chat(new_syndicate_infiltrator, SPAN_DANGER("Your team leader is: [team_leader]. They are in charge!"))
teamsize--
to_chat(new_syndicate_infiltrator, "<span class='notice'>You have more helpful information stored in your Notes.</span>")
to_chat(new_syndicate_infiltrator, SPAN_NOTICE("You have more helpful information stored in your Notes."))
new_syndicate_infiltrator.mind.store_memory("<B>Mission:</B> [input] ")
new_syndicate_infiltrator.mind.store_memory("<B>Team Leader:</B> [team_leader] ")
new_syndicate_infiltrator.mind.store_memory("<B>Starting Equipment:</B> <BR>- Syndicate Headset ((.h for your radio))<BR>- Chameleon Jumpsuit ((right click to Change Color))<BR> - Agent ID card ((disguise as another job))<BR> - Uplink Bio-chip ((top left of screen)) <BR> - Dust Bio-chip ((destroys your body on death)) <BR> - Combat Gloves ((insulated, disguised as black gloves)) <BR> - Anything bought with your uplink bio-chip")
@@ -20,9 +20,9 @@ USER_VERB(map_template_place, R_DEBUG, "Map template - Place", "Map template - P
client.images += preview
if(alert(client, "Confirm location.","Template Confirm","Yes","No") == "Yes")
var/timer = start_watch()
message_admins("<span class='adminnotice'>[key_name_admin(client)] has started to place the map template ([template.name]) at <A href='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[T.x];Y=[T.y];Z=[T.z]'>(JMP)</a></span>")
message_admins(SPAN_ADMINNOTICE("[key_name_admin(client)] has started to place the map template ([template.name]) at <A href='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[T.x];Y=[T.y];Z=[T.z]'>(JMP)</a>"))
if(template.load(T, centered = TRUE))
message_admins("<span class='adminnotice'>[key_name_admin(client)] has placed a map template ([template.name]) at <A href='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[T.x];Y=[T.y];Z=[T.z]'>(JMP)</a>. Took [stop_watch(timer)]s.</span>")
message_admins(SPAN_ADMINNOTICE("[key_name_admin(client)] has placed a map template ([template.name]) at <A href='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[T.x];Y=[T.y];Z=[T.z]'>(JMP)</a>. Took [stop_watch(timer)]s."))
else
to_chat(client, "Failed to place map")
client.images -= preview
@@ -36,12 +36,12 @@ USER_VERB(map_template_upload, R_DEBUG, "Map Template - Upload", "Map Template -
return
var/timer = start_watch()
message_admins("<span class='adminnotice'>[key_name_admin(client)] has begun uploading a map template ([map])</span>")
message_admins(SPAN_ADMINNOTICE("[key_name_admin(client)] has begun uploading a map template ([map])"))
var/datum/map_template/M = new(map=map, rename="[map]")
if(M.preload_size(map))
to_chat(client, "Map template '[map]' ready to place ([M.width]x[M.height])")
GLOB.map_templates[M.name] = M
message_admins("<span class='adminnotice'>[key_name_admin(client)] has uploaded a map template ([map]). Took [stop_watch(timer)]s.</span>")
message_admins(SPAN_ADMINNOTICE("[key_name_admin(client)] has uploaded a map template ([map]). Took [stop_watch(timer)]s."))
else
to_chat(client, "Map template '[map]' failed to load properly")
@@ -51,9 +51,9 @@ USER_VERB(map_template_load_lazy, R_DEBUG, "Map template - Lazy Load", "Map temp
return
var/datum/map_template/template = GLOB.map_templates[map]
message_admins("<span class='adminnotice'>[key_name_admin(client)] is lazyloading the map template ([template.name]).</span>")
message_admins(SPAN_ADMINNOTICE("[key_name_admin(client)] is lazyloading the map template ([template.name])."))
var/datum/turf_reservation/reserve = SSmapping.lazy_load_template(template)
if(!istype(reserve))
message_admins("<span class='danger'>Lazyloading [template.name] failed! You should report this as a bug.</span>")
message_admins(SPAN_DANGER("Lazyloading [template.name] failed! You should report this as a bug."))
return
message_admins("<span class='adminnotice'>[key_name_admin(client)] has lazyloaded the map template ([template.name]) at [ADMIN_JMP(reserve.bottom_left_turf)]</span>")
message_admins(SPAN_ADMINNOTICE("[key_name_admin(client)] has lazyloaded the map template ([template.name]) at [ADMIN_JMP(reserve.bottom_left_turf)]"))
+1 -1
View File
@@ -173,4 +173,4 @@ USER_VERB(set_next_map, R_SERVER, "Set Next Map", "Set Next Map", VERB_CATEGORY_
message_admins("[key_name_admin(client)] has set the next map to [SSmapping.next_map.fluff_name] ([SSmapping.next_map.technical_name])")
log_admin("[key_name(client)] has set the next map to [SSmapping.next_map.fluff_name] ([SSmapping.next_map.technical_name])")
if(announce_to_players == "Yes")
to_chat(world, "<span class='boldannounceooc'>[client.key] has chosen the following map for next round: <font color='cyan'>[SSmapping.next_map.fluff_name] ([SSmapping.next_map.technical_name])</font></span>")
to_chat(world, SPAN_BOLDANNOUNCEOOC("[client.key] has chosen the following map for next round: <font color='cyan'>[SSmapping.next_map.fluff_name] ([SSmapping.next_map.technical_name])</font>"))
+7 -7
View File
@@ -411,7 +411,7 @@ GLOBAL_PROTECT(VVmaint_only)
L[var_value] = mod_list_add_ass(O) //hehe
if(O)
if(!O.vv_edit_var(objectvar, L))
to_chat(src, "<span class='warning'>Your edit was rejected by the object.</span>")
to_chat(src, SPAN_WARNING("Your edit was rejected by the object."))
return
log_world("### ListVarEdit by [src]: [(O ? O.type : "/list")] [objectvar]: ADDED=[var_value]")
log_admin("[key_name(src)] modified [original_name]'s [objectvar]: ADDED=[var_value]")
@@ -454,7 +454,7 @@ GLOBAL_PROTECT(VVmaint_only)
L = L.Copy()
listclearnulls(L)
if(!O.vv_edit_var(objectvar, L))
to_chat(src, "<span class='warning'>Your edit was rejected by the object.</span>")
to_chat(src, SPAN_WARNING("Your edit was rejected by the object."))
return
log_world("### ListVarEdit by [src]: [O.type] [objectvar]: CLEAR NULLS")
log_admin("[key_name(src)] modified [original_name]'s [objectvar]: CLEAR NULLS")
@@ -464,7 +464,7 @@ GLOBAL_PROTECT(VVmaint_only)
if(variable == "(CLEAR DUPES)")
L = uniqueList(L)
if(!O.vv_edit_var(objectvar, L))
to_chat(src, "<span class='warning'>Your edit was rejected by the object.</span>")
to_chat(src, SPAN_WARNING("Your edit was rejected by the object."))
return
log_world("### ListVarEdit by [src]: [O.type] [objectvar]: CLEAR DUPES")
log_admin("[key_name(src)] modified [original_name]'s [objectvar]: CLEAR DUPES")
@@ -474,7 +474,7 @@ GLOBAL_PROTECT(VVmaint_only)
if(variable == "(SHUFFLE)")
L = shuffle(L)
if(!O.vv_edit_var(objectvar, L))
to_chat(src, "<span class='warning'>Your edit was rejected by the object.</span>")
to_chat(src, SPAN_WARNING("Your edit was rejected by the object."))
return
log_world("### ListVarEdit by [src]: [O.type] [objectvar]: SHUFFLE")
log_admin("[key_name(src)] modified [original_name]'s [objectvar]: SHUFFLE")
@@ -551,7 +551,7 @@ GLOBAL_PROTECT(VVmaint_only)
L.Cut(index, index+1)
if(O)
if(!O.vv_edit_var(objectvar, L))
to_chat(src, "<span class='warning'>Your edit was rejected by the object.</span>")
to_chat(src, SPAN_WARNING("Your edit was rejected by the object."))
return
log_world("### ListVarEdit by [src]: [O.type] [objectvar]: REMOVED=[html_encode("[original_var]")]")
log_admin("[key_name(src)] modified [original_name]'s [objectvar]: REMOVED=[original_var]")
@@ -570,7 +570,7 @@ GLOBAL_PROTECT(VVmaint_only)
L[index] = new_var
if(O)
if(!O.vv_edit_var(objectvar, L))
to_chat(src, "<span class='warning'>Your edit was rejected by the object.</span>")
to_chat(src, SPAN_WARNING("Your edit was rejected by the object."))
return
log_world("### ListVarEdit by [src]: [(O ? O.type : "/list")] [objectvar]: [original_var]=[new_var]")
log_admin("[key_name(src)] modified [original_name]'s [objectvar]: [original_var]=[new_var]")
@@ -708,7 +708,7 @@ GLOBAL_PROTECT(VVmaint_only)
var_new = replacetext(var_new,"\[[V]]","[O.vars[V]]")
if(!O.vv_edit_var(variable, var_new))
to_chat(src, "<span class='warning'>Your edit was rejected by the object.</span>")
to_chat(src, SPAN_WARNING("Your edit was rejected by the object."))
return
SEND_GLOBAL_SIGNAL(COMSIG_GLOB_VAR_EDIT, args)
log_world("### VarEdit by [src]: [O.type] [variable]=[html_encode("[var_new]")] (Type: [class])")
+1 -1
View File
@@ -389,7 +389,7 @@ USER_VERB(one_click_antag, R_SERVER|R_EVENT, "Create Antagonist", "Auto-create a
thunderdome_candidates.Cut(max_thunderdome_players + 1)
if(ISODD(length(thunderdome_candidates))) // We want fair fights
var/surplus_candidate = pick_n_take(thunderdome_candidates)
to_chat(surplus_candidate, "<span class='warning'>You were not chosen due to an odd number of participants.</span>")
to_chat(surplus_candidate, SPAN_WARNING("You were not chosen due to an odd number of participants."))
for(var/mob/dead/observer/candidate_to_spawn in thunderdome_candidates)
if(!candidate_to_spawn || !candidate_to_spawn.key || !candidate_to_spawn.client)
continue
+4 -4
View File
@@ -79,15 +79,15 @@
return
var/mob/A = locateUID(thrownby)
if((H in GLOB.team_alpha) && (A in GLOB.team_alpha))
to_chat(A, "<span class='warning'>He's on your team!</span>")
to_chat(A, SPAN_WARNING("He's on your team!"))
return
else if((H in GLOB.team_bravo) && (A in GLOB.team_bravo))
to_chat(A, "<span class='warning'>He's on your team!</span>")
to_chat(A, SPAN_WARNING("He's on your team!"))
return
else if(!(A in GLOB.team_alpha) && !(A in GLOB.team_bravo))
to_chat(A, "<span class='warning'>You're not part of the dodgeball game, sorry!</span>")
to_chat(A, SPAN_WARNING("You're not part of the dodgeball game, sorry!"))
return
else
playsound(src, 'sound/items/dodgeball.ogg', 50, 1)
visible_message("<span class='danger'>[H] HAS BEEN ELIMINATED!</span>")
visible_message(SPAN_DANGER("[H] HAS BEEN ELIMINATED!"))
H.melt()
+2 -2
View File
@@ -20,7 +20,7 @@ USER_VERB(ping_all_admins, R_ADMIN, "Ping all admins", "Ping all admins", VERB_C
admins_to_ping += C
if(length(admins_to_ping) < 2) // All by yourself?
to_chat(client, "<span class='boldannounceooc'>No other admins online to ping[de_admin_also == "Yes" ? ", including those that have used de-admin" : ""]!</span>")
to_chat(client, SPAN_BOLDANNOUNCEOOC("No other admins online to ping[de_admin_also == "Yes" ? ", including those that have used de-admin" : ""]!"))
return
var/datum/say/asay = new(client.ckey, client.holder.rank, msg, world.timeofday)
@@ -29,5 +29,5 @@ USER_VERB(ping_all_admins, R_ADMIN, "Ping all admins", "Ping all admins", VERB_C
for(var/client/C in admins_to_ping)
SEND_SOUND(C, sound('sound/misc/ping.ogg'))
to_chat(C, "<span class='all_admin_ping'>ALL ADMIN PING: <span class='name'>[key_name(client, TRUE)]</span> ([admin_jump_link(client.mob)]): <span class='emoji_enabled'>[msg]</span></span>")
to_chat(C, SPAN_ALL_ADMIN_PING("ALL ADMIN PING: [SPAN_NAME("[key_name(client, TRUE)]")] ([admin_jump_link(client.mob)]): [SPAN_EMOJI_ENABLED("[msg]")]"))
to_chat(client, "[length(admins_to_ping)] clients pinged.")
+16 -16
View File
@@ -38,7 +38,7 @@ USER_VERB(play_sound, R_SOUNDS, "Legacy Play Global Sound", "Send a sound to pla
uploaded_sound.volume = 100 * M.client.prefs.get_channel_volume(CHANNEL_ADMIN)
var/this_uid = M.client.UID()
to_chat(M, "<span class='boldannounceic'>[client.ckey] played <code>[S]</code> (<a href='byond://?src=[this_uid];action=silenceSound'>SILENCE</a>) (<a href='byond://?src=[this_uid];action=muteAdmin&a=[client.ckey]'>ALWAYS SILENCE THIS ADMIN</a>)</span>")
to_chat(M, SPAN_BOLDANNOUNCEIC("[client.ckey] played <code>[S]</code> (<a href='byond://?src=[this_uid];action=silenceSound'>SILENCE</a>) (<a href='byond://?src=[this_uid];action=muteAdmin&a=[client.ckey]'>ALWAYS SILENCE THIS ADMIN</a>)"))
SEND_SOUND(M, uploaded_sound)
SSblackbox.record_feedback("tally", "admin_verb", 1, "Play Global Sound") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -120,7 +120,7 @@ USER_VERB(play_sound_tgchat, R_SOUNDS, "Play Global Sound", "Play a sound to be
if(sound_mode == "Web")
if(!GLOB.configuration.system.ytdlp_url)
to_chat(client, "<span class='boldwarning'>yt-dlp was not configured, action unavailable</span>") //Check config
to_chat(client, SPAN_BOLDWARNING("yt-dlp was not configured, action unavailable")) //Check config
return
web_sound_input = tgui_input_text(client, "Enter content URL", "Play Internet Sound", null)
@@ -130,8 +130,8 @@ USER_VERB(play_sound_tgchat, R_SOUNDS, "Play Global Sound", "Play a sound to be
web_sound_input = trim(web_sound_input)
if(findtext(web_sound_input, ":") && !findtext(web_sound_input, GLOB.is_http_protocol))
to_chat(client, "<span class='boldwarning'>Non-http(s) URIs are not allowed.</span>")
to_chat(client, "<span class='warning'>For yt-dlp shortcuts like ytsearch: please use the appropriate full url from the website.</span>")
to_chat(client, SPAN_BOLDWARNING("Non-http(s) URIs are not allowed."))
to_chat(client, SPAN_WARNING("For yt-dlp shortcuts like ytsearch: please use the appropriate full url from the website."))
return
// Prepare the body
@@ -149,12 +149,12 @@ USER_VERB(play_sound_tgchat, R_SOUNDS, "Play Global Sound", "Play a sound to be
try
data = json_decode(media_poll_response.body)
catch(var/exception/e)
to_chat(client, "<span class='boldwarning'>yt-dlp JSON parsing FAILED:</span>")
to_chat(client, "<span class='warning'>[e]: [media_poll_response.body]</span>")
to_chat(client, SPAN_BOLDWARNING("yt-dlp JSON parsing FAILED:"))
to_chat(client, SPAN_WARNING("[e]: [media_poll_response.body]"))
return
else
to_chat(client, "<span class='boldwarning'>yt-dlp URL retrieval FAILED:</span>")
to_chat(client, "<span class='warning'>[media_poll_response.body]</span>")
to_chat(client, SPAN_BOLDWARNING("yt-dlp URL retrieval FAILED:"))
to_chat(client, SPAN_WARNING("[media_poll_response.body]"))
return
else if(sound_mode == "Upload MP3")
@@ -170,7 +170,7 @@ USER_VERB(play_sound_tgchat, R_SOUNDS, "Play Global Sound", "Play a sound to be
var/static/regex/only_extension = regex(@{"^.*\.([a-z0-9]{1,5})$"}, "gi")
var/extension = only_extension.Replace("[soundfile]", "$1")
if(!length(extension) || extension != "mp3")
to_chat(client, "<span class='boldwarning'>Invalid filename extension.</span>")
to_chat(client, SPAN_BOLDWARNING("Invalid filename extension."))
return
var/static/playsound_notch = 1
@@ -201,20 +201,20 @@ USER_VERB(play_sound_tgchat, R_SOUNDS, "Play Global Sound", "Play a sound to be
if(res == "Yes")
log_admin("[key_name(client)] played sound: [web_sound_input]")
message_admins("[key_name(client)] played sound: [web_sound_input]")
to_chat(world, "<span class='boldannounceooc'>[client.ckey] played: [webpage_url]</span>")
to_chat(world, SPAN_BOLDANNOUNCEOOC("[client.ckey] played: [webpage_url]"))
else if(res == "No")
music_extra_data["link"] = "Song Link Hidden"
music_extra_data["title"] = "Song Title Hidden"
music_extra_data["artist"] = "Song Artist Hidden"
log_admin("[key_name(client)] played sound: [web_sound_input]")
message_admins("[key_name(client)] played sound: [web_sound_input]")
to_chat(world, "<span class='boldannounceooc'>[client.ckey] played a sound</span>")
to_chat(world, SPAN_BOLDANNOUNCEOOC("[client.ckey] played a sound"))
SSblackbox.record_feedback("tally", "admin_verb", 1, "Play Global Sound TGchat")
if(!must_send_assets && web_sound_url && !findtext(web_sound_url, GLOB.is_http_protocol))
to_chat(client, "<span class='boldwarning'>BLOCKED: Content URL not using http(s) protocol</span>", confidential = TRUE)
to_chat(client, "<span class='warning'>The media provider returned a content URL that isn't using the HTTP or HTTPS protocol</span>", confidential = TRUE)
to_chat(client, SPAN_BOLDWARNING("BLOCKED: Content URL not using http(s) protocol"), confidential = TRUE)
to_chat(client, SPAN_WARNING("The media provider returned a content URL that isn't using the HTTP or HTTPS protocol"), confidential = TRUE)
return
if(web_sound_url)
@@ -223,13 +223,13 @@ USER_VERB(play_sound_tgchat, R_SOUNDS, "Play Global Sound", "Play a sound to be
var/player_uid = M.client.UID()
if(C.prefs.sound & SOUND_MIDI)
if(client.ckey in M.client.prefs.admin_sound_ckey_ignore)
to_chat(C, "<span class='warning'>But [client.ckey] is muted locally in preferences!</span>")
to_chat(C, SPAN_WARNING("But [client.ckey] is muted locally in preferences!"))
continue
else
if(must_send_assets)
SSassets.transport.send_assets(C, asset_name)
C.tgui_panel?.play_music(web_sound_url, music_extra_data)
to_chat(C, "<span class='warning'>(<a href='byond://?src=[player_uid];action=silenceSound'>SILENCE</a>) (<a href='byond://?src=[player_uid];action=muteAdmin&a=[client.ckey]'>ALWAYS SILENCE THIS ADMIN</a>)</span>")
to_chat(C, SPAN_WARNING("(<a href='byond://?src=[player_uid];action=silenceSound'>SILENCE</a>) (<a href='byond://?src=[player_uid];action=muteAdmin&a=[client.ckey]'>ALWAYS SILENCE THIS ADMIN</a>)"))
else
to_chat(C, "<span class='warning'>But Admin MIDIs are disabled in preferences!</span>")
to_chat(C, SPAN_WARNING("But Admin MIDIs are disabled in preferences!"))
return
+9 -9
View File
@@ -8,7 +8,7 @@
if(usr.client)
if(check_mute(client.ckey, MUTE_PRAY))
to_chat(usr, "<span class='warning'>You cannot pray (muted).</span>")
to_chat(usr, SPAN_WARNING("You cannot pray (muted)."))
return
if(client.handle_spam_prevention(msg, MUTE_PRAY, OOC_COOLDOWN))
return
@@ -30,7 +30,7 @@
deity = GET_CULT_DATA(entity_name, "Cult God")
log_say("(PRAYER) [msg]", usr)
msg = "<span class='notice'>[bicon(cross)]<b><font color=[font_color]>[prayer_type][deity ? " (to [deity])" : ""][mind && HAS_MIND_TRAIT(usr, TRAIT_HOLY) ? " (blessings: [mind.num_blessed])" : ""]:</font> [key_name(src, 1)] ([ADMIN_QUE(src,"?")]) ([ADMIN_PP(src,"PP")]) ([ADMIN_VV(src,"VV")]) ([ADMIN_TP(src,"TP")]) ([ADMIN_SM(src,"SM")]) ([admin_jump_link(src)]) ([ADMIN_SC(src,"SC")]) (<A href='byond://?_src_=holder;Bless=[UID()]'>BLESS</A>) (<A href='byond://?_src_=holder;Smite=[UID()]'>SMITE</A>):</b> [msg]</span>"
msg = SPAN_NOTICE("[bicon(cross)]<b><font color=[font_color]>[prayer_type][deity ? " (to [deity])" : ""][mind && HAS_MIND_TRAIT(usr, TRAIT_HOLY) ? " (blessings: [mind.num_blessed])" : ""]:</font> [key_name(src, 1)] ([ADMIN_QUE(src,"?")]) ([ADMIN_PP(src,"PP")]) ([ADMIN_VV(src,"VV")]) ([ADMIN_TP(src,"TP")]) ([ADMIN_SM(src,"SM")]) ([admin_jump_link(src)]) ([ADMIN_SC(src,"SC")]) (<A href='byond://?_src_=holder;Bless=[UID()]'>BLESS</A>) (<A href='byond://?_src_=holder;Smite=[UID()]'>SMITE</A>):</b> [msg]")
for(var/client/X in GLOB.admins)
if(check_rights(R_EVENT,0,X.mob))
@@ -43,7 +43,7 @@
/proc/Centcomm_announce(text, mob/Sender)
var/msg = sanitize(copytext_char(text, 1, MAX_MESSAGE_LEN))
msg = "<span class='boldnotice'><font color=orange>CENTCOMM: </font>[key_name(Sender, 1)] ([ADMIN_PP(Sender,"PP")]) ([ADMIN_VV(Sender,"VV")]) ([ADMIN_TP(Sender,"TP")]) ([ADMIN_SM(Sender,"SM")]) ([admin_jump_link(Sender)]) ([ADMIN_BSA(Sender,"BSA")]) ([ADMIN_CENTCOM_REPLY(Sender,"RPLY")])):</span> [msg]"
msg = "[SPAN_BOLDNOTICE("<font color=orange>CENTCOMM: </font>[key_name(Sender, 1)] ([ADMIN_PP(Sender,"PP")]) ([ADMIN_VV(Sender,"VV")]) ([ADMIN_TP(Sender,"TP")]) ([ADMIN_SM(Sender,"SM")]) ([admin_jump_link(Sender)]) ([ADMIN_BSA(Sender,"BSA")]) ([ADMIN_CENTCOM_REPLY(Sender,"RPLY")])):")] [msg]"
for(var/client/X in GLOB.admins)
if(R_EVENT & X.holder.rights)
to_chat(X, msg, MESSAGE_TYPE_ADMINPM)
@@ -52,7 +52,7 @@
/proc/Syndicate_announce(text, mob/Sender)
var/msg = sanitize(copytext_char(text, 1, MAX_MESSAGE_LEN))
msg = "<span class='boldnotice'><font color='#DC143C'>SYNDICATE: </font>[key_name(Sender, 1)] ([ADMIN_PP(Sender,"PP")]) ([ADMIN_VV(Sender,"VV")]) ([ADMIN_TP(Sender,"TP")]) ([ADMIN_SM(Sender,"SM")]) ([admin_jump_link(Sender)]) ([ADMIN_BSA(Sender,"BSA")]) ([ADMIN_SYNDICATE_REPLY(Sender,"RPLY")]):</span> [msg]"
msg = "[SPAN_BOLDNOTICE("<font color='#DC143C'>SYNDICATE: </font>[key_name(Sender, 1)] ([ADMIN_PP(Sender,"PP")]) ([ADMIN_VV(Sender,"VV")]) ([ADMIN_TP(Sender,"TP")]) ([ADMIN_SM(Sender,"SM")]) ([admin_jump_link(Sender)]) ([ADMIN_BSA(Sender,"BSA")]) ([ADMIN_SYNDICATE_REPLY(Sender,"RPLY")]):")] [msg]"
for(var/client/X in GLOB.admins)
if(check_rights(R_EVENT,0,X.mob))
to_chat(X, msg, MESSAGE_TYPE_ADMINPM)
@@ -67,9 +67,9 @@
"sender_uid" = Sender.UID(),
"message" = html_decode(msg)))
GLOB.ert_request_messages.Insert(1, insert_this) // insert it to the top of the list
msg = "<span class='adminnotice'><b><font color=orange>ERT REQUEST: </font>[key_name(Sender, 1)] ([ADMIN_PP(Sender,"PP")]) ([ADMIN_VV(Sender,"VV")]) ([ADMIN_TP(Sender,"TP")]) ([ADMIN_SM(Sender,"SM")]) ([admin_jump_link(Sender)]) ([ADMIN_BSA(Sender,"BSA")]) (<A href='byond://?_src_=holder;ErtReply=[Sender.UID()]'>RESPOND</A>):</b> [msg]</span>"
msg = SPAN_ADMINNOTICE("<b><font color=orange>ERT REQUEST: </font>[key_name(Sender, 1)] ([ADMIN_PP(Sender,"PP")]) ([ADMIN_VV(Sender,"VV")]) ([ADMIN_TP(Sender,"TP")]) ([ADMIN_SM(Sender,"SM")]) ([admin_jump_link(Sender)]) ([ADMIN_BSA(Sender,"BSA")]) (<A href='byond://?_src_=holder;ErtReply=[Sender.UID()]'>RESPOND</A>):</b> [msg]")
if(repeat_warning)
msg += "<BR><span class='adminnotice'><b>WARNING: ERT request has gone 5 minutes with no reply!</b></span>"
msg += "<BR>[SPAN_ADMINNOTICE("<b>WARNING: ERT request has gone 5 minutes with no reply!</b>")]"
for(var/client/X in GLOB.admins)
if(check_rights(R_EVENT,0,X.mob))
to_chat(X, msg, MESSAGE_TYPE_ADMINPM)
@@ -80,16 +80,16 @@
var/nuke_code = get_nuke_code()
var/nuke_status = get_nuke_status()
var/msg = sanitize(copytext_char(text, 1, MAX_MESSAGE_LEN))
msg = "<span class='adminnotice'><b><font color=orange>NUKE CODE REQUEST: </font>[key_name(Sender)] ([ADMIN_PP(Sender,"PP")]) ([ADMIN_VV(Sender,"VV")]) ([ADMIN_TP(Sender,"TP")]) ([ADMIN_SM(Sender,"SM")]) ([admin_jump_link(Sender)]) ([ADMIN_BSA(Sender,"BSA")]) ([ADMIN_CENTCOM_REPLY(Sender,"RPLY")]):</b> [msg]</span>"
msg = SPAN_ADMINNOTICE("<b><font color=orange>NUKE CODE REQUEST: </font>[key_name(Sender)] ([ADMIN_PP(Sender,"PP")]) ([ADMIN_VV(Sender,"VV")]) ([ADMIN_TP(Sender,"TP")]) ([ADMIN_SM(Sender,"SM")]) ([admin_jump_link(Sender)]) ([ADMIN_BSA(Sender,"BSA")]) ([ADMIN_CENTCOM_REPLY(Sender,"RPLY")]):</b> [msg]")
for(var/client/X in GLOB.admins)
if(check_rights(R_EVENT,0,X.mob))
to_chat(X, msg, MESSAGE_TYPE_ADMINPM)
if(nuke_status == NUKE_MISSING)
to_chat(X, "<span class='userdanger'>The nuclear device is not on station!</span>")
to_chat(X, SPAN_USERDANGER("The nuclear device is not on station!"))
else
to_chat(X, "<b>The nuke code is [nuke_code].</b>")
if(nuke_status == NUKE_CORE_MISSING)
to_chat(X, "<span class='userdanger'>The nuclear device does not have a core, and will not arm!</span>")
to_chat(X, SPAN_USERDANGER("The nuclear device does not have a core, and will not arm!"))
if(X.prefs.sound & SOUND_ADMINHELP)
SEND_SOUND(X, sound('sound/effects/adminhelp.ogg'))
+29 -29
View File
@@ -34,9 +34,9 @@ USER_VERB(imprison, R_ADMIN, "Prison", "Send a mob to prison.", VERB_CATEGORY_AD
prisoner.equip_to_slot_or_del(new /obj/item/clothing/under/color/orange(prisoner), ITEM_SLOT_JUMPSUIT)
prisoner.equip_to_slot_or_del(new /obj/item/clothing/shoes/orange(prisoner), ITEM_SLOT_SHOES)
spawn(50)
to_chat(M, "<span class='warning'>You have been sent to the prison station!</span>")
to_chat(M, SPAN_WARNING("You have been sent to the prison station!"))
log_admin("[key_name(client)] sent [key_name(M)] to the prison station.")
message_admins("<span class='notice'>[key_name_admin(client)] sent [key_name_admin(M)] to the prison station.</span>", 1)
message_admins(SPAN_NOTICE("[key_name_admin(client)] sent [key_name_admin(M)] to the prison station."), 1)
SSblackbox.record_feedback("tally", "admin_verb", 1, "Prison") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
USER_CONTEXT_MENU(subtle_message, R_EVENT, "\[Admin\] Subtle Message", mob/M as mob in GLOB.mob_list)
@@ -54,7 +54,7 @@ USER_CONTEXT_MENU(subtle_message, R_EVENT, "\[Admin\] Subtle Message", mob/M as
to_chat(M, "<b>You hear a voice in your head... <i>[msg]</i></b>")
log_admin("SubtlePM: [key_name(client)] -> [key_name(M)] : [msg]")
message_admins("<span class='boldnotice'>Subtle Message: [key_name_admin(client)] -> [key_name_admin(M)] : [msg]</span>", 1)
message_admins(SPAN_BOLDNOTICE("Subtle Message: [key_name_admin(client)] -> [key_name_admin(M)] : [msg]"), 1)
M.create_log(MISC_LOG, "Subtle Message: [msg]", "From: [key_name_admin(client)]")
SSblackbox.record_feedback("tally", "admin_verb", 1, "Subtle Message") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -108,7 +108,7 @@ USER_VERB(global_narrate, R_SERVER|R_EVENT, "Global Narrate", "Narrate text to t
msg = admin_pencode_to_html(msg)
to_chat(world, "[msg]")
log_admin("GlobalNarrate: [key_name(client)] : [msg]")
message_admins("<span class='boldnotice'>GlobalNarrate: [key_name_admin(client)]: [msg]<BR></span>", 1)
message_admins(SPAN_BOLDNOTICE("GlobalNarrate: [key_name_admin(client)]: [msg]<BR>"), 1)
SSblackbox.record_feedback("tally", "admin_verb", 1, "Global Narrate")
USER_CONTEXT_MENU(direct_narrate, R_SERVER|R_EVENT, "\[Admin\] Direct Narrate", mob/M)
@@ -126,7 +126,7 @@ USER_CONTEXT_MENU(direct_narrate, R_SERVER|R_EVENT, "\[Admin\] Direct Narrate",
to_chat(M, msg)
log_admin("DirectNarrate: [key_name(client)] to ([key_name(M)]): [msg]")
message_admins("<span class='boldnotice'>Direct Narrate: [key_name_admin(client)] to ([key_name_admin(M)]): [msg]<br></span>", 1)
message_admins(SPAN_BOLDNOTICE("Direct Narrate: [key_name_admin(client)] to ([key_name_admin(M)]): [msg]<br>"), 1)
M.create_log(MISC_LOG, "Direct Narrate: [msg]", "From: [key_name_admin(client)]")
SSblackbox.record_feedback("tally", "admin_verb", 1, "Direct Narrate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -165,7 +165,7 @@ USER_CONTEXT_MENU(headset_message, R_SERVER|R_EVENT, "\[Admin\] Headset Message"
USER_VERB(godmode, R_ADMIN, "Godmode", "Toggles godmode on a mob.", VERB_CATEGORY_ADMIN, mob/M as mob in GLOB.mob_list)
M.status_flags ^= GODMODE
to_chat(client, "<span class='notice'>Toggled [(M.status_flags & GODMODE) ? "ON" : "OFF"]</span>")
to_chat(client, SPAN_NOTICE("Toggled [(M.status_flags & GODMODE) ? "ON" : "OFF"]"))
log_admin("[key_name(client)] has toggled [key_name(M)]'s nodamage to [(M.status_flags & GODMODE) ? "On" : "Off"]")
message_admins("[key_name_admin(client)] has toggled [key_name_admin(M)]'s nodamage to [(M.status_flags & GODMODE) ? "On" : "Off"]", 1)
@@ -247,18 +247,18 @@ USER_VERB(toggle_antaghud_use, R_SERVER, "Toggle antagHUD usage", "Toggles antag
for(var/mob/dead/observer/g in client.get_ghosts())
if(g.antagHUD)
g.antagHUD = FALSE // Disable it on those that have it enabled
to_chat(g, "<span class='danger'>The Administrators have disabled AntagHUD.</span>")
to_chat(g, SPAN_DANGER("The Administrators have disabled AntagHUD."))
GLOB.configuration.general.allow_antag_hud = FALSE
to_chat(client, "<span class='danger'>AntagHUD usage has been disabled</span>")
to_chat(client, SPAN_DANGER("AntagHUD usage has been disabled"))
action = "disabled"
else
for(var/mob/dead/observer/g in client.get_ghosts())
if(!g.client.holder) // Add the verb back for all non-admin ghosts
to_chat(g, "<span class='boldnotice'>The Administrators have enabled AntagHUD.</span>")// Notify all observers they can now use AntagHUD
to_chat(g, SPAN_BOLDNOTICE("The Administrators have enabled AntagHUD."))// Notify all observers they can now use AntagHUD
GLOB.configuration.general.allow_antag_hud = TRUE
action = "enabled"
to_chat(client, "<span class='boldnotice'>AntagHUD usage has been enabled</span>")
to_chat(client, SPAN_BOLDNOTICE("AntagHUD usage has been enabled"))
log_admin("[key_name(client)] has [action] antagHUD usage for observers")
@@ -274,19 +274,19 @@ USER_VERB(toggle_antaghug_restrictions, R_SERVER, "Toggle antagHUD Restrictions"
var/action=""
if(GLOB.configuration.general.restrict_antag_hud_rejoin)
for(var/mob/dead/observer/g in client.get_ghosts())
to_chat(g, "<span class='boldnotice'>The administrator has lifted restrictions on joining the round if you use AntagHUD</span>")
to_chat(g, SPAN_BOLDNOTICE("The administrator has lifted restrictions on joining the round if you use AntagHUD"))
action = "lifted restrictions"
GLOB.configuration.general.restrict_antag_hud_rejoin = FALSE
to_chat(client, "<span class='boldnotice'>AntagHUD restrictions have been lifted</span>")
to_chat(client, SPAN_BOLDNOTICE("AntagHUD restrictions have been lifted"))
else
for(var/mob/dead/observer/g in client.get_ghosts())
to_chat(g, "<span class='danger'>The administrator has placed restrictions on joining the round if you use AntagHUD</span>")
to_chat(g, "<span class='danger'>Your AntagHUD has been disabled, you may choose to re-enabled it but will be under restrictions.</span>")
to_chat(g, SPAN_DANGER("The administrator has placed restrictions on joining the round if you use AntagHUD"))
to_chat(g, SPAN_DANGER("Your AntagHUD has been disabled, you may choose to re-enabled it but will be under restrictions."))
g.antagHUD = FALSE
GLOB.antag_hud_users -= g.ckey
action = "placed restrictions"
GLOB.configuration.general.restrict_antag_hud_rejoin = TRUE
to_chat(client, "<span class='danger'>AntagHUD restrictions have been enabled</span>")
to_chat(client, SPAN_DANGER("AntagHUD restrictions have been enabled"))
log_admin("[key_name(client)] has [action] on joining the round if they use AntagHUD")
message_admins("Admin [key_name_admin(client)] has [action] on joining the round if they use AntagHUD", 1)
@@ -334,7 +334,7 @@ USER_VERB(respawn_character, R_SPAWN, "Respawn Character", \
G_found.mind.transfer_to(new_xeno) //be careful when doing stuff like this! I've already checked the mind isn't in use
new_xeno.key = G_found.key
to_chat(new_xeno, "You have been fully respawned. Enjoy the game.")
message_admins("<span class='notice'>[key_name_admin(client)] has respawned [new_xeno.key] as a filthy xeno.</span>", 1)
message_admins(SPAN_NOTICE("[key_name_admin(client)] has respawned [new_xeno.key] as a filthy xeno."), 1)
return //all done. The ghost is auto-deleted
var/mob/living/carbon/human/new_character = new(pick(GLOB.latejoin))//The mob being spawned.
@@ -445,7 +445,7 @@ USER_VERB(respawn_character, R_SPAWN, "Respawn Character", \
if(alert(new_character,"Would you like an active AI to announce this character?", null,"No","Yes")=="Yes")
call(TYPE_PROC_REF(/mob/new_player, AnnounceArrival))(new_character, new_character.mind.assigned_role)
message_admins("<span class='notice'>[key_name_admin(client)] has respawned [key_name_admin(G_found)] as [new_character.real_name].</span>", 1)
message_admins(SPAN_NOTICE("[key_name_admin(client)] has respawned [key_name_admin(G_found)] as [new_character.real_name]."), 1)
to_chat(new_character, "You have been fully respawned. Enjoy the game.")
@@ -486,7 +486,7 @@ USER_VERB(respawn_character, R_SPAWN, "Respawn Character", \
else return 0
new_xeno.ckey = ckey
message_admins("<span class='notice'>[key_name_admin(user)] has spawned [ckey] as a filthy xeno [alien_caste].</span>", 1)
message_admins(SPAN_NOTICE("[key_name_admin(user)] has spawned [ckey] as a filthy xeno [alien_caste]."), 1)
return 1
/client/proc/get_ghosts(notify = 0, what = 2)
@@ -534,7 +534,7 @@ USER_CONTEXT_MENU(admin_rejuvenate, R_REJUVINATE, "\[Admin\] Rejuvenate", mob/li
M.revive()
log_admin("[key_name(client)] healed / revived [key_name(M)]")
message_admins("<span class='warning'>Admin [key_name_admin(client)] healed / revived [key_name_admin(M)]!</span>", 1)
message_admins(SPAN_WARNING("Admin [key_name_admin(client)] healed / revived [key_name_admin(M)]!"), 1)
SSblackbox.record_feedback("tally", "admin_verb", 1, "Rejuvenate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
USER_VERB(create_centcom_report, R_SERVER|R_EVENT, "Create Communications Report", "Send an IC announcement to the game world.", VERB_CATEGORY_EVENT)
@@ -609,7 +609,7 @@ USER_VERB(list_open_jobs, R_ADMIN, "List free slots", "List available station jo
if(SSjobs)
var/currentpositiontally
var/totalpositiontally
to_chat(client, "<span class='notice'>Job Name: Filled job slot / Total job slots <b>(Free job slots)</b></span>")
to_chat(client, SPAN_NOTICE("Job Name: Filled job slot / Total job slots <b>(Free job slots)</b>"))
for(var/datum/job/job in SSjobs.occupations)
to_chat(client, "<span class='notice'>[job.title]: [job.current_positions] / \
[job.total_positions == -1 ? "<b>UNLIMITED</b>" : job.total_positions] \
@@ -688,7 +688,7 @@ USER_VERB(gib_self, R_ADMIN|R_EVENT, "Gibself", "Gibself.", VERB_CATEGORY_EVENT)
mob.gib()
log_admin("[key_name(client)] used gibself.")
message_admins("<span class='notice'>[key_name_admin(client)] used gibself.</span>", 1)
message_admins(SPAN_NOTICE("[key_name_admin(client)] used gibself."), 1)
SSblackbox.record_feedback("tally", "admin_verb", 1, "Gibself") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
USER_CONTEXT_MENU(admin_check_contents, R_ADMIN, "\[Admin\] Check Contents", mob/living/M as mob)
@@ -725,7 +725,7 @@ USER_VERB(call_shuttle, R_ADMIN, "Call Shuttle", "Calls the shuttle.", VERB_CATE
SSshuttle.emergency.request()
log_admin("[key_name(client)] admin-called the emergency shuttle.")
message_admins("<span class='adminnotice'>[key_name_admin(client)] admin-called the emergency shuttle.</span>")
message_admins(SPAN_ADMINNOTICE("[key_name_admin(client)] admin-called the emergency shuttle."))
SSblackbox.record_feedback("tally", "admin_verb", 1, "Call Shuttle") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
USER_VERB(cancel_shuttle, R_ADMIN, "Cancel Shuttle", "Cancels the shuttle.", VERB_CATEGORY_ADMIN)
@@ -747,7 +747,7 @@ USER_VERB(cancel_shuttle, R_ADMIN, "Cancel Shuttle", "Cancels the shuttle.", VER
SSshuttle.emergency.cancel(byCC = TRUE)
log_admin("[key_name(client)] admin-recalled the emergency shuttle.")
message_admins("<span class='adminnotice'>[key_name_admin(client)] admin-recalled the emergency shuttle.</span>")
message_admins(SPAN_ADMINNOTICE("[key_name_admin(client)] admin-recalled the emergency shuttle."))
SSblackbox.record_feedback("tally", "admin_verb", 1, "Cancel Shuttle") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
USER_VERB(deny_shuttle, R_ADMIN, "Toggle Deny Shuttle", "Toggles crew shuttle calling-ability.", VERB_CATEGORY_ADMIN)
@@ -763,7 +763,7 @@ USER_VERB(deny_shuttle, R_ADMIN, "Toggle Deny Shuttle", "Toggles crew shuttle ca
if(alert == "Allow")
if(!length(SSshuttle.hostile_environments))
to_chat(client, "<span class='notice'>No hostile environments found, cleared for takeoff!</span>")
to_chat(client, SPAN_NOTICE("No hostile environments found, cleared for takeoff!"))
return
if(alert(client, "[english_list(SSshuttle.hostile_environments)] is currently blocking the shuttle call, do you want to clear them?", "Toggle Deny Shuttle", "Yes", "No") == "Yes")
SSshuttle.hostile_environments.Cut()
@@ -776,7 +776,7 @@ USER_VERB(deny_shuttle, R_ADMIN, "Toggle Deny Shuttle", "Toggles crew shuttle ca
log_and_message_admins("has denied the shuttle to be called.")
USER_VERB(open_attack_log, R_ADMIN, "Attack Log", "Prints the attack log.", VERB_CATEGORY_ADMIN, mob/M as mob in GLOB.mob_list)
to_chat(client, "<span class='danger'>Attack Log for [M]</span>")
to_chat(client, SPAN_DANGER("Attack Log for [M]"))
for(var/t in M.attack_log_old)
to_chat(client, t)
SSblackbox.record_feedback("tally", "admin_verb", 1, "Attack Log") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -803,7 +803,7 @@ USER_VERB(everyone_random, R_SERVER|R_EVENT, "Make Everyone Random", \
message_admins("Admin [key_name_admin(client)] has forced the players to have random appearances.", 1)
if(notifyplayers == "Yes")
to_chat(world, "<span class='notice'><b>Admin [client.key] has forced the players to have completely random identities!</b></span>")
to_chat(world, SPAN_NOTICE("<b>Admin [client.key] has forced the players to have completely random identities!</b>"))
to_chat(client, "<i>Remember: you can always disable the randomness by using the verb again, assuming the round hasn't started yet</i>.")
@@ -928,12 +928,12 @@ USER_VERB(list_ssds_afks, R_ADMIN, "List SSDs and AFKs", "List SSDs and AFK play
USER_VERB(toggle_ert_calling, R_EVENT, "Toggle ERT", "Toggle the station's ability to call a response team.", VERB_CATEGORY_EVENT)
if(SSticker.mode.ert_disabled)
SSticker.mode.ert_disabled = FALSE
to_chat(client, "<span class='notice'>ERT has been <b>Enabled</b>.</span>")
to_chat(client, SPAN_NOTICE("ERT has been <b>Enabled</b>."))
log_admin("Admin [key_name(client)] has enabled ERT calling.")
message_admins("Admin [key_name_admin(client)] has enabled ERT calling.", 1)
else
SSticker.mode.ert_disabled = TRUE
to_chat(client, "<span class='warning'>ERT has been <b>Disabled</b>.</span>")
to_chat(client, SPAN_WARNING("ERT has been <b>Disabled</b>."))
log_admin("Admin [key_name(client)] has disabled ERT calling.")
message_admins("Admin [key_name_admin(client)] has disabled ERT calling.", 1)
@@ -964,7 +964,7 @@ USER_VERB(modify_goals, R_EVENT, "Modify Station Goals", "Modify station goals."
/datum/admins/proc/modify_goals()
if(SSticker.current_state < GAME_STATE_PLAYING)
to_chat(usr, "<span class='warning'>This verb can only be used if the round has started.</span>")
to_chat(usr, SPAN_WARNING("This verb can only be used if the round has started."))
return
var/list/dat = list("<!DOCTYPE html>")
@@ -19,7 +19,7 @@ GLOBAL_VAR_INIT(sent_syndicate_strike_team, 0)
return
alert("This 'mode' will go on until everyone is dead or the station is destroyed. You may also admin-call the evac shuttle when appropriate. Spawned syndicates have internals cameras which are viewable through a monitor inside the Syndicate Mothership Bridge. Assigning the team's detailed task is recommended from there. The first one selected/spawned will be the team leader.")
message_admins("<span class='notice'>[key_name_admin(usr)] has started to spawn a Syndicate Strike Team.</span>", 1)
message_admins(SPAN_NOTICE("[key_name_admin(usr)] has started to spawn a Syndicate Strike Team."), 1)
var/input = null
while(!input)
@@ -48,7 +48,7 @@ GLOBAL_VAR_INIT(sent_syndicate_strike_team, 0)
var/image/I = new('icons/obj/cardboard_cutout.dmi', "cutout_commando")
var/list/commando_ghosts = pollCandidatesWithVeto(src, usr, SYNDICATE_COMMANDOS_POSSIBLE, "Join the Syndicate Strike Team?", null, 21, 45 SECONDS, TRUE, GLOB.role_playtime_requirements[ROLE_DEATHSQUAD], TRUE, FALSE, source = I)
if(!length(commando_ghosts))
to_chat(usr, "<span class='userdanger'>Nobody volunteered to join the SST.</span>")
to_chat(usr, SPAN_USERDANGER("Nobody volunteered to join the SST."))
return
GLOB.sent_syndicate_strike_team = 1
@@ -78,10 +78,10 @@ GLOBAL_VAR_INIT(sent_syndicate_strike_team, 0)
//So they don't forget their code or mission.
if(nuke_code)
new_syndicate_commando.mind.store_memory("<B>Nuke Code:</B> <span class='warning'>[nuke_code].</span>")
new_syndicate_commando.mind.store_memory("<B>Mission:</B> <span class='warning'>[input].</span>")
new_syndicate_commando.mind.store_memory("<B>Nuke Code:</B> [SPAN_WARNING("[nuke_code].")]")
new_syndicate_commando.mind.store_memory("<B>Mission:</B> [SPAN_WARNING("[input].")]")
to_chat(new_syndicate_commando, "<span class='notice'>You are an Elite Syndicate [is_leader ? "<B>TEAM LEADER</B>" : "commando"] in the service of the Syndicate. \nYour current mission is: <span class='userdanger'>[input]</span></span>")
to_chat(new_syndicate_commando, SPAN_NOTICE("You are an Elite Syndicate [is_leader ? "<B>TEAM LEADER</B>" : "commando"] in the service of the Syndicate. \nYour current mission is: [SPAN_USERDANGER("[input]")]"))
new_syndicate_commando.faction += "syndicate"
var/datum/atom_hud/antag/opshud = GLOB.huds[ANTAG_HUD_OPS]
opshud.join_hud(new_syndicate_commando.mind.current)
@@ -90,7 +90,7 @@ GLOBAL_VAR_INIT(sent_syndicate_strike_team, 0)
is_leader = FALSE
syndicate_commando_number--
message_admins("<span class='notice'>[key_name_admin(usr)] has spawned a Syndicate strike squad.</span>", 1)
message_admins(SPAN_NOTICE("[key_name_admin(usr)] has spawned a Syndicate strike squad."), 1)
log_admin("[key_name(usr)] used Spawn Syndicate Squad.")
SSblackbox.record_feedback("tally", "admin_verb", 1, "Send SST") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
+1 -1
View File
@@ -10,4 +10,4 @@ USER_VERB(set_ticklag, R_MAINTAINER, "Set Ticklag", \
SSblackbox.record_feedback("tally", "admin_verb", 1, "Set Ticklag") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
else
to_chat(client, "<span class='warning'>Error: ticklag(): Invalid world.ticklag value. No changes made.</span>")
to_chat(client, SPAN_WARNING("Error: ticklag(): Invalid world.ticklag value. No changes made."))
+3 -3
View File
@@ -12,15 +12,15 @@
to_chat(usr, "Unable to locate the AI job")
return
if(HAS_TRAIT(SSstation, STATION_TRAIT_TRIAI))
to_chat(usr, "<span class='danger'>The triple AI station trait is now enabled. This trait can be disabled in the Modify Station Traits menu.</span>")
to_chat(usr, SPAN_DANGER("The triple AI station trait is now enabled. This trait can be disabled in the Modify Station Traits menu."))
return
if(SSticker.triai)
SSticker.triai = FALSE
to_chat(usr, "Only one AI will be spawned at round start.")
message_admins("<span class='notice'>[key_name_admin(usr)] has toggled off triple AIs at round start.</span>", 1)
message_admins(SPAN_NOTICE("[key_name_admin(usr)] has toggled off triple AIs at round start."), 1)
else
SSticker.triai = TRUE
to_chat(usr, "There will be an AI Triumvirate at round start.")
message_admins("<span class='notice'>[key_name_admin(usr)] has toggled on triple AIs at round start.</span>", 1)
message_admins(SPAN_NOTICE("[key_name_admin(usr)] has toggled on triple AIs at round start."), 1)
return
+2 -2
View File
@@ -12,7 +12,7 @@
qdel(query_watchfind)
return
if(!query_watchfind.NextRow())
to_chat(usr, "<span class='redtext'>[new_ckey] has not been seen before, you can only add known players.</span>")
to_chat(usr, SPAN_REDTEXT("[new_ckey] has not been seen before, you can only add known players."))
qdel(query_watchfind)
return
else
@@ -31,7 +31,7 @@
qdel(query_watch)
if(already_watched)
to_chat(usr, "<span class='redtext'>[target_ckey] is already on the watchlist.</span>")
to_chat(usr, SPAN_REDTEXT("[target_ckey] is already on the watchlist."))
return
var/reason = input(usr,"Please state the reason","Reason") as message|null
if(!reason)