mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-24 12:37:26 +01:00
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:
@@ -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")
|
||||
|
||||
@@ -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)]->[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)]->[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)]->[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)]->[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)]->Discord Admins:</b> <span class='notice'>[msg]</span></span>")
|
||||
to_chat(X, SPAN_DISCORDPM("<b>PM: [key_name_admin(src)]->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"])
|
||||
|
||||
@@ -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!
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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,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!
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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)]"))
|
||||
|
||||
@@ -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>"))
|
||||
|
||||
@@ -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])")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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.")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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'))
|
||||
|
||||
|
||||
@@ -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!
|
||||
|
||||
|
||||
@@ -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."))
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user