mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-20 19:44:09 +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:
@@ -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"]]")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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>")))
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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,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
|
||||
|
||||
@@ -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."))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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({"
|
||||
|
||||
@@ -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)
|
||||
|
||||
+199
-199
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user