mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-12 08:36:00 +01:00
Refactors most spans into span procs (#59645)
Converts most spans into span procs. Mostly used regex for this and sorted out any compile time errors afterwards so there could be some bugs. Was initially going to do defines, but ninja said to make it into a proc, and if there's any overhead, they can easily be changed to defines. Makes it easier to control the formatting and prevents typos when creating spans as it'll runtime if you misspell instead of silently failing. Reduces the code you need to write when writing spans, as you don't need to close the span as that's automatically handled by the proc. (Note from Lemon: This should be converted to defines once we update the minimum version to 514. Didn't do it now because byond pain and such)
This commit is contained in:
@@ -39,8 +39,8 @@
|
||||
if (admin)
|
||||
log_admin("The admin [key] has been allowed to bypass the whitelist")
|
||||
if (message)
|
||||
message_admins("<span class='adminnotice'>The admin [key] has been allowed to bypass the whitelist</span>")
|
||||
addclientmessage(ckey,"<span class='adminnotice'>You have been allowed to bypass the whitelist</span>")
|
||||
message_admins(span_adminnotice("The admin [key] has been allowed to bypass the whitelist"))
|
||||
addclientmessage(ckey,span_adminnotice("You have been allowed to bypass the whitelist"))
|
||||
else
|
||||
log_access("Failed Login: [key] - Not on whitelist")
|
||||
return list("reason"="whitelist", "desc" = "\nReason: You are not on the white list for this server")
|
||||
@@ -83,7 +83,7 @@
|
||||
log_admin(msg)
|
||||
if (message)
|
||||
message_admins(msg)
|
||||
addclientmessage(ckey,"<span class='adminnotice'>Admin [key] has been allowed to bypass a matching non-admin ban on [i["key"]] [i["ip"]]-[i["computerid"]].</span>")
|
||||
addclientmessage(ckey,span_adminnotice("Admin [key] has been allowed to bypass a matching non-admin ban on [i["key"]] [i["ip"]]-[i["computerid"]]."))
|
||||
continue
|
||||
var/expires = "This is a permanent ban."
|
||||
if(i["expiration_time"])
|
||||
@@ -216,12 +216,12 @@
|
||||
if (admin)
|
||||
log_admin("The admin [key] has been allowed to bypass a matching host/sticky ban on [bannedckey]")
|
||||
if (message)
|
||||
message_admins("<span class='adminnotice'>The admin [key] has been allowed to bypass a matching host/sticky ban on [bannedckey]</span>")
|
||||
addclientmessage(ckey,"<span class='adminnotice'>You have been allowed to bypass a matching host/sticky ban on [bannedckey]</span>")
|
||||
message_admins(span_adminnotice("The admin [key] has been allowed to bypass a matching host/sticky ban on [bannedckey]"))
|
||||
addclientmessage(ckey,span_adminnotice("You have been allowed to bypass a matching host/sticky ban on [bannedckey]"))
|
||||
return null
|
||||
|
||||
if (C) //user is already connected!.
|
||||
to_chat(C, "<span class='redtext'>You are about to get disconnected for matching a sticky ban after you connected. If this turns out to be the ban evasion detection system going haywire, we will automatically detect this and revert the matches. if you feel that this is the case, please wait EXACTLY 6 seconds then reconnect using file -> reconnect to see if the match was automatically reversed.</span>", confidential = TRUE)
|
||||
to_chat(C, span_redtext("You are about to get disconnected for matching a sticky ban after you connected. If this turns out to be the ban evasion detection system going haywire, we will automatically detect this and revert the matches. if you feel that this is the case, please wait EXACTLY 6 seconds then reconnect using file -> reconnect to see if the match was automatically reversed."), confidential = TRUE)
|
||||
|
||||
var/desc = "\nReason:(StickyBan) You, or another user of this computer or connection ([bannedckey]) is banned from playing here. The ban reason is:\n[ban["message"]]\nThis ban was applied by [ban["admin"]]\nThis is a BanEvasion Detection System ban, if you think this ban is a mistake, please wait EXACTLY 6 seconds, then try again before filing an appeal.\n"
|
||||
. = list("reason" = "Stickyban", "desc" = desc)
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
log_admin("[key_name(usr)] checked the individual player panel for [key_name(M)][isobserver(usr)?"":" while in game"].")
|
||||
|
||||
if(!M)
|
||||
to_chat(usr, "<span class='warning'>You seem to be selecting a mob that doesn't exist anymore.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_warning("You seem to be selecting a mob that doesn't exist anymore."), confidential = TRUE)
|
||||
return
|
||||
|
||||
var/body = "<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><title>Options for [M.key]</title></head>"
|
||||
@@ -508,7 +508,7 @@
|
||||
if(message)
|
||||
if(!check_rights(R_SERVER,0))
|
||||
message = adminscrub(message,500)
|
||||
to_chat(world, "<span class='adminnotice'><b>[usr.client.holder.fakekey ? "Administrator" : usr.key] Announces:</b></span>\n \t [message]", confidential = TRUE)
|
||||
to_chat(world, "[span_adminnotice("<b>[usr.client.holder.fakekey ? "Administrator" : usr.key] Announces:</b>")]\n \t [message]", confidential = TRUE)
|
||||
log_admin("Announce: [key_name(usr)] : [message]")
|
||||
SSblackbox.record_feedback("tally", "admin_verb", 1, "Announce") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -530,7 +530,7 @@
|
||||
else
|
||||
message_admins("[key_name(usr)] set the admin notice.")
|
||||
log_admin("[key_name(usr)] set the admin notice:\n[new_admin_notice]")
|
||||
to_chat(world, "<span class='adminnotice'><b>Admin Notice:</b>\n \t [new_admin_notice]</span>", confidential = TRUE)
|
||||
to_chat(world, span_adminnotice("<b>Admin Notice:</b>\n \t [new_admin_notice]"), confidential = TRUE)
|
||||
SSblackbox.record_feedback("tally", "admin_verb", 1, "Set Admin Notice") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
GLOB.admin_notice = new_admin_notice
|
||||
return
|
||||
@@ -593,7 +593,7 @@
|
||||
else
|
||||
to_chat(world, "<B>New players may now enter the game.</B>", confidential = TRUE)
|
||||
log_admin("[key_name(usr)] toggled new player game entering.")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] toggled new player game entering.</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] toggled new player game entering."))
|
||||
world.update_status()
|
||||
SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle Entering", "[GLOB.enter_allowed ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -621,7 +621,7 @@
|
||||
to_chat(world, "<B>You may now respawn.</B>", confidential = TRUE)
|
||||
else
|
||||
to_chat(world, "<B>You may no longer respawn :(</B>", confidential = TRUE)
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] toggled respawn to [!new_nores ? "On" : "Off"].</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] toggled respawn to [!new_nores ? "On" : "Off"]."))
|
||||
log_admin("[key_name(usr)] toggled respawn to [!new_nores ? "On" : "Off"].")
|
||||
world.update_status()
|
||||
SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle Respawn", "[!new_nores ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
@@ -788,7 +788,7 @@
|
||||
else
|
||||
to_chat(world, "<B>Guests may now enter the game.</B>", confidential = TRUE)
|
||||
log_admin("[key_name(usr)] toggled guests game entering [!new_guest_ban ? "" : "dis"]allowed.")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] toggled guests game entering [!new_guest_ban ? "" : "dis"]allowed.</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] toggled guests game entering [!new_guest_ban ? "" : "dis"]allowed."))
|
||||
SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle Guests", "[!new_guest_ban ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/datum/admins/proc/output_ai_laws()
|
||||
@@ -936,7 +936,7 @@
|
||||
if(tomob.mind == ghost.mind)
|
||||
ghost.mind = null
|
||||
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] has put [frommob.key] in control of [tomob.name].</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] has put [frommob.key] in control of [tomob.name]."))
|
||||
log_admin("[key_name(usr)] stuffed [frommob.key] into [tomob.name].")
|
||||
SSblackbox.record_feedback("tally", "admin_verb", 1, "Ghost Drag Control")
|
||||
|
||||
|
||||
@@ -37,6 +37,6 @@
|
||||
|
||||
var/F = file("[GLOB.log_directory]/[selected].html")
|
||||
if(!fexists(F))
|
||||
to_chat(src, "<span class='danger'>No [selected] logfile was found.</span>", confidential = TRUE)
|
||||
to_chat(src, span_danger("No [selected] logfile was found."), confidential = TRUE)
|
||||
return
|
||||
src << browse(F,"window=investigate[selected];size=800x300")
|
||||
|
||||
@@ -328,7 +328,7 @@ GLOBAL_PROTECT(admin_verbs_hideable)
|
||||
remove_admin_verbs()
|
||||
add_verb(src, /client/proc/show_verbs)
|
||||
|
||||
to_chat(src, "<span class='interface'>Almost all of your adminverbs have been hidden.</span>", confidential = TRUE)
|
||||
to_chat(src, span_interface("Almost all of your adminverbs have been hidden."), confidential = TRUE)
|
||||
SSblackbox.record_feedback("tally", "admin_verb", 1, "Hide All Adminverbs") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
return
|
||||
|
||||
@@ -339,7 +339,7 @@ GLOBAL_PROTECT(admin_verbs_hideable)
|
||||
remove_verb(src, /client/proc/show_verbs)
|
||||
add_admin_verbs()
|
||||
|
||||
to_chat(src, "<span class='interface'>All of your adminverbs are now visible.</span>", confidential = TRUE)
|
||||
to_chat(src, span_interface("All of your adminverbs are now visible."), confidential = TRUE)
|
||||
SSblackbox.record_feedback("tally", "admin_verb", 1, "Show Adminverbs") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
|
||||
@@ -383,10 +383,10 @@ GLOBAL_PROTECT(admin_verbs_hideable)
|
||||
if(holder && mob)
|
||||
if(mob.invisibility == INVISIBILITY_OBSERVER)
|
||||
mob.invisibility = initial(mob.invisibility)
|
||||
to_chat(mob, "<span class='boldannounce'>Invisimin off. Invisibility reset.</span>", confidential = TRUE)
|
||||
to_chat(mob, span_boldannounce("Invisimin off. Invisibility reset."), confidential = TRUE)
|
||||
else
|
||||
mob.invisibility = INVISIBILITY_OBSERVER
|
||||
to_chat(mob, "<span class='adminnotice'><b>Invisimin on. You are now as invisible as a ghost.</b></span>", confidential = TRUE)
|
||||
to_chat(mob, span_adminnotice("<b>Invisimin on. You are now as invisible as a ghost.</b>"), confidential = TRUE)
|
||||
|
||||
/client/proc/check_antagonists()
|
||||
set name = "Check Antagonists"
|
||||
@@ -634,12 +634,12 @@ GLOBAL_PROTECT(admin_verbs_hideable)
|
||||
var/robeless = (tgui_alert(usr, "Would you like to force this spell to be robeless?", "Robeless Casting?", list("Force Robeless", "Use Spell Setting")) == "Force Robeless")
|
||||
|
||||
if(QDELETED(spell_recipient))
|
||||
to_chat(usr, "<span class='warning'>The intended spell recipient no longer exists.</span>")
|
||||
to_chat(usr, span_warning("The intended spell recipient no longer exists."))
|
||||
return
|
||||
|
||||
SSblackbox.record_feedback("tally", "admin_verb", 1, "Give Spell") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
log_admin("[key_name(usr)] gave [key_name(spell_recipient)] the spell [spell_desc][robeless ? " (Forced robeless)" : ""].")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] gave [key_name_admin(spell_recipient)] the spell [spell_desc][spell_desc][robeless ? " (Forced robeless)" : ""].</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] gave [key_name_admin(spell_recipient)] the spell [spell_desc][spell_desc][robeless ? " (Forced robeless)" : ""]."))
|
||||
|
||||
var/spell_path = spell_list[spell_desc]
|
||||
var/obj/effect/proc_holder/spell/new_spell = new spell_path()
|
||||
@@ -652,7 +652,7 @@ GLOBAL_PROTECT(admin_verbs_hideable)
|
||||
spell_recipient.mind.AddSpell(new_spell)
|
||||
else
|
||||
spell_recipient.AddSpell(new_spell)
|
||||
message_admins("<span class='danger'>Spells given to mindless mobs will not be transferred in mindswap or cloning!</span>")
|
||||
message_admins(span_danger("Spells given to mindless mobs will not be transferred in mindswap or cloning!"))
|
||||
|
||||
/client/proc/remove_spell(mob/removal_target in GLOB.mob_list)
|
||||
set category = "Admin.Fun"
|
||||
@@ -668,7 +668,7 @@ GLOBAL_PROTECT(admin_verbs_hideable)
|
||||
if(removed_spell)
|
||||
removal_target.mind.RemoveSpell(removed_spell)
|
||||
log_admin("[key_name(usr)] removed the spell [removed_spell] from [key_name(removal_target)].")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] removed the spell [removed_spell] from [key_name_admin(removal_target)].</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] removed the spell [removed_spell] from [key_name_admin(removal_target)]."))
|
||||
SSblackbox.record_feedback("tally", "admin_verb", 1, "Remove Spell") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/give_disease(mob/living/T in GLOB.mob_living_list)
|
||||
@@ -676,7 +676,7 @@ GLOBAL_PROTECT(admin_verbs_hideable)
|
||||
set name = "Give Disease"
|
||||
set desc = "Gives a Disease to a mob."
|
||||
if(!istype(T))
|
||||
to_chat(src, "<span class='notice'>You can only give a disease to a mob of type /mob/living.</span>", confidential = TRUE)
|
||||
to_chat(src, span_notice("You can only give a disease to a mob of type /mob/living."), confidential = TRUE)
|
||||
return
|
||||
var/datum/disease/D = input("Choose the disease to give to that guy", "ACHOO") as null|anything in sortList(SSdisease.diseases, /proc/cmp_typepaths_asc)
|
||||
if(!D)
|
||||
@@ -684,7 +684,7 @@ GLOBAL_PROTECT(admin_verbs_hideable)
|
||||
T.ForceContractDisease(new D, FALSE, TRUE)
|
||||
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(usr)] gave [key_name(T)] the disease [D].")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] gave [key_name_admin(T)] the disease [D].</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] gave [key_name_admin(T)] the disease [D]."))
|
||||
|
||||
/client/proc/object_say(obj/O in world)
|
||||
set category = "Admin.Events"
|
||||
@@ -695,7 +695,7 @@ GLOBAL_PROTECT(admin_verbs_hideable)
|
||||
return
|
||||
O.say(message)
|
||||
log_admin("[key_name(usr)] made [O] at [AREACOORD(O)] say \"[message]\"")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] made [O] at [AREACOORD(O)]. say \"[message]\"</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] made [O] at [AREACOORD(O)]. say \"[message]\""))
|
||||
SSblackbox.record_feedback("tally", "admin_verb", 1, "Object Say") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
/client/proc/togglebuildmodeself()
|
||||
set name = "Toggle Build Mode Self"
|
||||
@@ -725,7 +725,7 @@ GLOBAL_PROTECT(admin_verbs_hideable)
|
||||
|
||||
holder.deactivate()
|
||||
|
||||
to_chat(src, "<span class='interface'>You are now a normal player.</span>")
|
||||
to_chat(src, span_interface("You are now a normal player."))
|
||||
log_admin("[src] deadminned themselves.")
|
||||
message_admins("[src] deadminned themselves.")
|
||||
SSblackbox.record_feedback("tally", "admin_verb", 1, "Deadmin")
|
||||
@@ -750,7 +750,7 @@ GLOBAL_PROTECT(admin_verbs_hideable)
|
||||
if (!holder)
|
||||
return //This can happen if an admin attempts to vv themself into somebody elses's deadmin datum by getting ref via brute force
|
||||
|
||||
to_chat(src, "<span class='interface'>You are now an admin.</span>", confidential = TRUE)
|
||||
to_chat(src, span_interface("You are now an admin."), confidential = TRUE)
|
||||
message_admins("[src] re-adminned themselves.")
|
||||
log_admin("[src] re-adminned themselves.")
|
||||
SSblackbox.record_feedback("tally", "admin_verb", 1, "Readmin")
|
||||
|
||||
@@ -146,7 +146,7 @@ GLOBAL_VAR(antag_prototypes)
|
||||
|
||||
if(!current_antag) //Show antagging options
|
||||
if(possible_admin_antags.len)
|
||||
antag_header_parts += "<span class='highlight'>None</span>"
|
||||
antag_header_parts += span_highlight("None")
|
||||
antag_header_parts += possible_admin_antags
|
||||
else
|
||||
//If there's no antags to show in this category skip the section completely
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
return
|
||||
target = value["value"]
|
||||
if(!istype(target))
|
||||
to_chat(usr, "<span class='danger'>Invalid target.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Invalid target."), confidential = TRUE)
|
||||
return
|
||||
if("No")
|
||||
target = null
|
||||
@@ -40,12 +40,12 @@
|
||||
|
||||
if(targetselected)
|
||||
if(!hascall(target, procname))
|
||||
to_chat(usr, "<span class='warning'>Error: callproc(): type [target.type] has no [proctype] named [procpath].</span>", confidential = TRUE)
|
||||
to_chat(usr, span_warning("Error: callproc(): type [target.type] has no [proctype] named [procpath]."), confidential = TRUE)
|
||||
return
|
||||
else
|
||||
procpath = "/[proctype]/[procname]"
|
||||
if(!text2path(procpath))
|
||||
to_chat(usr, "<span class='warning'>Error: callproc(): [procpath] does not exist.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_warning("Error: callproc(): [procpath] does not exist."), confidential = TRUE)
|
||||
return
|
||||
|
||||
var/list/lst = get_callproc_args()
|
||||
@@ -99,7 +99,7 @@ GLOBAL_PROTECT(LastAdminCalledProc)
|
||||
CRASH("WrapAdminProcCall with no ckey: [target] [procname] [english_list(arguments)]")
|
||||
|
||||
if(current_caller && current_caller != ckey)
|
||||
to_chat(usr, "<span class='adminnotice'>Another set of admin called procs are still running. Try again later.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_adminnotice("Another set of admin called procs are still running. Try again later."), confidential = TRUE)
|
||||
return
|
||||
|
||||
GLOB.LastAdminCalledProc = procname
|
||||
@@ -146,7 +146,7 @@ GLOBAL_PROTECT(LastAdminCalledProc)
|
||||
return
|
||||
|
||||
if(!A || !IsValidSrc(A))
|
||||
to_chat(usr, "<span class='warning'>Error: callproc_datum(): owner of proc no longer exists.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_warning("Error: callproc_datum(): owner of proc no longer exists."), confidential = TRUE)
|
||||
return
|
||||
log_admin("[key_name(src)] called [A]'s [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"].")
|
||||
var/msg = "[key_name(src)] called [A]'s [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"]."
|
||||
|
||||
@@ -186,7 +186,7 @@
|
||||
dat += "<BR><b><font color='#bf42f4'>SKIPPED \[On centcom Z-level\]: [living_skipped] living players|[drones] living drones|</font></b>"
|
||||
dat += "<BR><b><font color='red'>Dead/Observing players:|[observers_connected] active|[observers - observers_connected] disconnected|[brains] brains|</font></b>"
|
||||
if(other_players)
|
||||
dat += "<BR><span class='userdanger'>[other_players] players in invalid state or the statistics code is bugged!</span>"
|
||||
dat += "<BR>[span_userdanger("[other_players] players in invalid state or the statistics code is bugged!")]"
|
||||
dat += "<br><br>"
|
||||
|
||||
dat += build_antag_listing()
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
return
|
||||
|
||||
/obj/effect/fun_balloon/proc/pop()
|
||||
visible_message("<span class='notice'>[src] pops!</span>")
|
||||
visible_message(span_notice("[src] pops!"))
|
||||
playsound(get_turf(src), pop_sound_effect, 50, TRUE, -1)
|
||||
qdel(src)
|
||||
|
||||
@@ -119,7 +119,7 @@
|
||||
var/turf/T = find_safe_turf()
|
||||
new /obj/effect/temp_visual/gravpush(get_turf(M))
|
||||
M.forceMove(T)
|
||||
to_chat(M, "<span class='notice'>Pop!</span>", confidential = TRUE)
|
||||
to_chat(M, span_notice("Pop!"), confidential = TRUE)
|
||||
|
||||
// ----------- Station Crash
|
||||
// Can't think of anywhere better to put it right now
|
||||
|
||||
@@ -319,7 +319,7 @@ GLOBAL_PROTECT(href_token)
|
||||
to_chat(
|
||||
admin_client,
|
||||
type = MESSAGE_TYPE_ADMINLOG,
|
||||
html = "<span class='admin'><span class='prefix'>ADMIN 2FA:</span> You have the ability to verify [key_name_admin(client)] by using the Permissions Panel.</span>",
|
||||
html = span_admin("[span_prefix("ADMIN 2FA:")] You have the ability to verify [key_name_admin(client)] by using the Permissions Panel."),
|
||||
confidential = TRUE,
|
||||
)
|
||||
|
||||
|
||||
@@ -168,7 +168,7 @@
|
||||
suit = new suit //initial() doesn't like lists
|
||||
options = suit.allowed
|
||||
if(!options.len) //nothing will happen, but don't let the user think it's broken
|
||||
to_chat(owner, "<span class='warning'>No options available for the current suit.</span>")
|
||||
to_chat(owner, span_warning("No options available for the current suit."))
|
||||
|
||||
if("belt")
|
||||
options = typesof(/obj/item/storage/belt)
|
||||
|
||||
@@ -8,7 +8,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits
|
||||
/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."))
|
||||
SStgui.update_user_uis(admin)
|
||||
|
||||
/datum/admins/proc/load_outfit(mob/admin)
|
||||
@@ -18,15 +18,15 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits
|
||||
var/filedata = 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
|
||||
SStgui.update_user_uis(admin)
|
||||
|
||||
@@ -169,7 +169,7 @@
|
||||
if(check_rights(R_DBRANKS, FALSE))
|
||||
if(!skip)
|
||||
if(!SSdbcore.Connect())
|
||||
to_chat(usr, "<span class='danger'>Unable to connect to database, changes are temporary only.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Unable to connect to database, changes are temporary only."), confidential = TRUE)
|
||||
use_db = FALSE
|
||||
else
|
||||
use_db = tgui_alert(usr,"Permanent changes are saved to the database for future rounds, temporary changes will affect only the current round", "Permanent or Temporary?", list("Permanent", "Temporary", "Cancel"))
|
||||
@@ -227,7 +227,7 @@
|
||||
if(!.)
|
||||
return FALSE
|
||||
if(!admin_ckey && (. in GLOB.admin_datums+GLOB.deadmins))
|
||||
to_chat(usr, "<span class='danger'>[admin_key] is already an admin.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("[admin_key] is already an admin."), confidential = TRUE)
|
||||
return FALSE
|
||||
if(use_db)
|
||||
//if an admin exists without a datum they won't be caught by the above
|
||||
@@ -240,7 +240,7 @@
|
||||
return FALSE
|
||||
if(query_admin_in_db.NextRow())
|
||||
qdel(query_admin_in_db)
|
||||
to_chat(usr, "<span class='danger'>[admin_key] already listed in admin database. Check the Management tab if they don't appear in the list of admins.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("[admin_key] already listed in admin database. Check the Management tab if they don't appear in the list of admins."), confidential = TRUE)
|
||||
return FALSE
|
||||
qdel(query_admin_in_db)
|
||||
var/datum/db_query/query_add_admin = SSdbcore.NewQuery(
|
||||
@@ -304,7 +304,7 @@
|
||||
D.deactivate() //after logs so the deadmined admin can see the message.
|
||||
|
||||
/datum/admins/proc/auto_deadmin()
|
||||
to_chat(owner, "<span class='interface'>You are now a normal player.</span>", confidential = TRUE)
|
||||
to_chat(owner, span_interface("You are now a normal player."), confidential = TRUE)
|
||||
var/old_owner = owner
|
||||
deactivate()
|
||||
message_admins("[old_owner] deadmined via auto-deadmin config.")
|
||||
@@ -506,7 +506,7 @@
|
||||
return
|
||||
if(query_admins_with_rank.NextRow())
|
||||
qdel(query_admins_with_rank)
|
||||
to_chat(usr, "<span class='danger'>Error: Rank deletion attempted while rank still used; Tell a coder, this shouldn't happen.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Error: Rank deletion attempted while rank still used; Tell a coder, this shouldn't happen."), confidential = TRUE)
|
||||
return
|
||||
qdel(query_admins_with_rank)
|
||||
if(tgui_alert(usr,"Are you sure you want to remove [admin_rank]?","Confirm Removal",list("Do it","Cancel")) == "Do it")
|
||||
@@ -543,4 +543,4 @@
|
||||
qdel(query_sync_lastadminrank)
|
||||
return
|
||||
qdel(query_sync_lastadminrank)
|
||||
to_chat(usr, "<span class='admin'>Sync of [admin_key] successful.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_admin("Sync of [admin_key] successful."), confidential = TRUE)
|
||||
|
||||
@@ -245,7 +245,7 @@
|
||||
if(!check_rights(R_POLL))
|
||||
return
|
||||
if(!SSdbcore.Connect())
|
||||
to_chat(usr, "<span class='danger'>Failed to establish database connection.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Failed to establish database connection."), confidential = TRUE)
|
||||
return
|
||||
var/list/error_state = list()
|
||||
var/new_poll = FALSE
|
||||
@@ -309,9 +309,9 @@
|
||||
error_state += "This poll type requires at least one option."
|
||||
if(error_state.len)
|
||||
if(poll.edit_ready)
|
||||
to_chat(usr, "<span class='danger'>Not all edits were applied because the following errors were present:\n[error_state.Join("\n")]</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Not all edits were applied because the following errors were present:\n[error_state.Join("\n")]"), confidential = TRUE)
|
||||
else
|
||||
to_chat(usr, "<span class='danger'>Poll not [new_poll ? "initialized" : "submitted"] because the following errors were present:\n[error_state.Join("\n")]</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Poll not [new_poll ? "initialized" : "submitted"] because the following errors were present:\n[error_state.Join("\n")]"), confidential = TRUE)
|
||||
if(new_poll)
|
||||
qdel(poll)
|
||||
return
|
||||
@@ -354,7 +354,7 @@
|
||||
if(!check_rights(R_POLL))
|
||||
return
|
||||
if(!SSdbcore.Connect())
|
||||
to_chat(usr, "<span class='danger'>Failed to establish database connection.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Failed to establish database connection."), confidential = TRUE)
|
||||
return
|
||||
var/datum/db_query/query_delete_poll = SSdbcore.NewQuery(
|
||||
"CALL set_poll_deleted(:poll_id)",
|
||||
@@ -383,7 +383,7 @@
|
||||
if(!check_rights(R_POLL))
|
||||
return
|
||||
if(!SSdbcore.Connect())
|
||||
to_chat(usr, "<span class='danger'>Failed to establish database connection.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Failed to establish database connection."), confidential = TRUE)
|
||||
return
|
||||
var/new_poll = !poll_id
|
||||
if(poll_type != POLLTYPE_MULTI)
|
||||
@@ -446,7 +446,7 @@
|
||||
*/
|
||||
/datum/poll_question/proc/save_all_options()
|
||||
if(!SSdbcore.Connect())
|
||||
to_chat(usr, "<span class='danger'>Failed to establish database connection.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Failed to establish database connection."), confidential = TRUE)
|
||||
return
|
||||
for(var/o in options)
|
||||
var/datum/poll_option/option = o
|
||||
@@ -460,7 +460,7 @@
|
||||
if(!check_rights(R_POLL))
|
||||
return
|
||||
if(!SSdbcore.Connect())
|
||||
to_chat(usr, "<span class='danger'>Failed to establish database connection.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Failed to establish database connection."), confidential = TRUE)
|
||||
return
|
||||
var/table = "poll_vote"
|
||||
if(poll_type == POLLTYPE_TEXT)
|
||||
@@ -474,7 +474,7 @@
|
||||
return
|
||||
qdel(query_clear_poll_votes)
|
||||
poll_votes = 0
|
||||
to_chat(usr, "<span class='danger'>Poll [poll_type == POLLTYPE_TEXT ? "responses" : "votes"] cleared.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Poll [poll_type == POLLTYPE_TEXT ? "responses" : "votes"] cleared."), confidential = TRUE)
|
||||
|
||||
/**
|
||||
* Show the options for creating a poll option or editing its parameters.
|
||||
@@ -543,7 +543,7 @@
|
||||
if(!check_rights(R_POLL))
|
||||
return
|
||||
if(!SSdbcore.Connect())
|
||||
to_chat(usr, "<span class='danger'>Failed to establish database connection.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Failed to establish database connection."), confidential = TRUE)
|
||||
return
|
||||
var/list/error_state = list()
|
||||
var/new_option = FALSE
|
||||
@@ -601,10 +601,10 @@
|
||||
option.desc_max = null
|
||||
if(error_state.len)
|
||||
if(new_option)
|
||||
to_chat(usr, "<span class='danger'>Option not added because the following errors were present:\n[error_state.Join("\n")]</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Option not added because the following errors were present:\n[error_state.Join("\n")]"), confidential = TRUE)
|
||||
qdel(option)
|
||||
else
|
||||
to_chat(usr, "<span class='danger'>Not all edits were applied because the following errors were present:\n[error_state.Join("\n")]</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Not all edits were applied because the following errors were present:\n[error_state.Join("\n")]"), confidential = TRUE)
|
||||
return
|
||||
if(new_option)
|
||||
poll.options += option
|
||||
@@ -641,7 +641,7 @@
|
||||
if(!check_rights(R_POLL))
|
||||
return
|
||||
if(!SSdbcore.Connect())
|
||||
to_chat(usr, "<span class='danger'>Failed to establish database connection.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Failed to establish database connection."), confidential = TRUE)
|
||||
return
|
||||
|
||||
var/list/values = list("text" = text, "default_percentage_calc" = default_percentage_calc, "pollid" = parent_poll.poll_id, "id" = option_id)
|
||||
@@ -677,7 +677,7 @@
|
||||
. = parent_poll
|
||||
if(option_id)
|
||||
if(!SSdbcore.Connect())
|
||||
to_chat(usr, "<span class='danger'>Failed to establish database connection.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Failed to establish database connection."), confidential = TRUE)
|
||||
return
|
||||
var/datum/db_query/query_delete_poll_option = SSdbcore.NewQuery(
|
||||
"UPDATE [format_table_name("poll_option")] AS o INNER JOIN [format_table_name("poll_vote")] AS v ON o.id = v.optionid SET o.deleted = 1, v.deleted = 1 WHERE o.id = :option_id",
|
||||
@@ -695,7 +695,7 @@
|
||||
*/
|
||||
/proc/load_poll_data()
|
||||
if(!SSdbcore.Connect())
|
||||
to_chat(usr, "<span class='danger'>Failed to establish database connection.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Failed to establish database connection."), confidential = TRUE)
|
||||
return
|
||||
var/datum/db_query/query_load_polls = SSdbcore.NewQuery("SELECT id, polltype, starttime, endtime, question, subtitle, adminonly, multiplechoiceoptions, dontshow, allow_revoting, IF(polltype='TEXT',(SELECT COUNT(ckey) FROM [format_table_name("poll_textreply")] AS t WHERE t.pollid = q.id AND deleted = 0), (SELECT COUNT(DISTINCT ckey) FROM [format_table_name("poll_vote")] AS v WHERE v.pollid = q.id AND deleted = 0)), IFNULL((SELECT byond_key FROM [format_table_name("player")] AS p WHERE p.ckey = q.createdby_ckey), createdby_ckey), IF(starttime > NOW(), 1, 0) FROM [format_table_name("poll_question")] AS q WHERE NOW() < endtime AND deleted = 0")
|
||||
if(!query_load_polls.Execute())
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
/datum/smite/berforate/effect(client/user, mob/living/target)
|
||||
. = ..()
|
||||
if (!iscarbon(target))
|
||||
to_chat(user, "<span class='warning'>This must be used on a carbon mob.</span>", confidential = TRUE)
|
||||
to_chat(user, span_warning("This must be used on a carbon mob."), confidential = TRUE)
|
||||
return
|
||||
|
||||
var/repetitions
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
/datum/smite/bloodless/effect(client/user, mob/living/target)
|
||||
. = ..()
|
||||
if (!iscarbon(target))
|
||||
to_chat(user, "<span class='warning'>This must be used on a carbon mob.</span>", confidential = TRUE)
|
||||
to_chat(user, span_warning("This must be used on a carbon mob."), confidential = TRUE)
|
||||
return
|
||||
var/mob/living/carbon/carbon_target = target
|
||||
for(var/_limb in carbon_target.bodyparts)
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
. = ..()
|
||||
|
||||
if (!iscarbon(target))
|
||||
to_chat(user, "<span class='warning'>This must be used on a carbon mob.</span>", confidential = TRUE)
|
||||
to_chat(user, span_warning("This must be used on a carbon mob."), confidential = TRUE)
|
||||
return
|
||||
|
||||
var/mob/living/carbon/carbon_target = target
|
||||
|
||||
@@ -5,24 +5,24 @@
|
||||
/datum/smite/dock_pay/effect(client/user, mob/living/target)
|
||||
. = ..()
|
||||
if (!iscarbon(target))
|
||||
to_chat(user, "<span class='warning'>This must be used on a carbon mob.</span>", confidential = TRUE)
|
||||
to_chat(user, span_warning("This must be used on a carbon mob."), confidential = TRUE)
|
||||
return
|
||||
var/mob/living/carbon/dude = target
|
||||
var/obj/item/card/id/card = dude.get_idcard(TRUE)
|
||||
if (!card)
|
||||
to_chat(user, "<span class='warning'>[dude] does not have an ID card on!</span>", confidential = TRUE)
|
||||
to_chat(user, span_warning("[dude] does not have an ID card on!"), confidential = TRUE)
|
||||
return
|
||||
if (!card.registered_account)
|
||||
to_chat(user, "<span class='warning'>[dude] does not have an ID card with an account!</span>", confidential = TRUE)
|
||||
to_chat(user, span_warning("[dude] does not have an ID card with an account!"), confidential = TRUE)
|
||||
return
|
||||
if (card.registered_account.account_balance == 0)
|
||||
to_chat(user, "<span class='warning'>ID Card lacks any funds. No pay to dock.</span>")
|
||||
to_chat(user, span_warning("ID Card lacks any funds. No pay to dock."))
|
||||
return
|
||||
var/new_cost = input("How much pay are we docking? Current balance: [card.registered_account.account_balance] credits.", "BUDGET CUTS") as num|null
|
||||
if (!new_cost)
|
||||
return
|
||||
if (!(card.registered_account.has_money(new_cost)))
|
||||
to_chat(user, "<span class='warning'>ID Card lacked funds. Emptying account.</span>")
|
||||
to_chat(user, span_warning("ID Card lacked funds. Emptying account."))
|
||||
card.registered_account.bank_card_talk("[new_cost] credits deducted from your account based on performance review.")
|
||||
card.registered_account.account_balance = 0
|
||||
else
|
||||
|
||||
@@ -5,11 +5,11 @@
|
||||
/datum/smite/knot_shoes/effect(client/user, mob/living/target)
|
||||
. = ..()
|
||||
if (!iscarbon(target))
|
||||
to_chat(user, "<span class='warning'>This must be used on a carbon mob.</span>", confidential = TRUE)
|
||||
to_chat(user, span_warning("This must be used on a carbon mob."), confidential = TRUE)
|
||||
return
|
||||
var/mob/living/carbon/dude = target
|
||||
var/obj/item/clothing/shoes/sick_kicks = dude.shoes
|
||||
if (!sick_kicks?.can_be_tied)
|
||||
to_chat(user, "<span class='warning'>[dude] does not have knottable shoes!</span>", confidential = TRUE)
|
||||
to_chat(user, span_warning("[dude] does not have knottable shoes!"), confidential = TRUE)
|
||||
return
|
||||
sick_kicks.adjust_laces(SHOES_KNOTTED)
|
||||
|
||||
@@ -11,4 +11,4 @@
|
||||
if(ishuman(target))
|
||||
var/mob/living/carbon/human/human_target = target
|
||||
human_target.electrocution_animation(LIGHTNING_BOLT_ELECTROCUTION_ANIMATION_LENGTH)
|
||||
to_chat(target, "<span class='userdanger'>The gods have punished you for your sins!</span>", confidential = TRUE)
|
||||
to_chat(target, span_userdanger("The gods have punished you for your sins!"), confidential = TRUE)
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
. = ..()
|
||||
|
||||
if (!iscarbon(target))
|
||||
to_chat(user, "<span class='warning'>This must be used on a carbon mob.</span>", confidential = TRUE)
|
||||
to_chat(user, span_warning("This must be used on a carbon mob."), confidential = TRUE)
|
||||
return
|
||||
|
||||
var/mob/living/carbon/carbon_target = target
|
||||
|
||||
@@ -5,4 +5,4 @@
|
||||
/datum/smite/puzzle/effect(client/user, mob/living/target)
|
||||
. = ..()
|
||||
if(!puzzle_imprison(target))
|
||||
to_chat(user, "<span class='warning'>Imprisonment failed!</span>", confidential = TRUE)
|
||||
to_chat(user, span_warning("Imprisonment failed!"), confidential = TRUE)
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
/datum/smite/scarify/effect(client/user, mob/living/target)
|
||||
. = ..()
|
||||
if(!iscarbon(target))
|
||||
to_chat(user, "<span class='warning'>This must be used on a carbon mob.</span>", confidential = TRUE)
|
||||
to_chat(user, span_warning("This must be used on a carbon mob."), confidential = TRUE)
|
||||
return
|
||||
var/mob/living/carbon/dude = target
|
||||
dude.generate_fake_scars(rand(1, 4))
|
||||
to_chat(dude, "<span class='warning'>You feel your body grow jaded and torn...</span>")
|
||||
to_chat(dude, span_warning("You feel your body grow jaded and torn..."))
|
||||
|
||||
@@ -37,9 +37,9 @@
|
||||
. = ..()
|
||||
if(!isobserver(user))
|
||||
return
|
||||
. += "<span class='boldnotice'>Sound File:</span> [sound_file ? sound_file : "None chosen"]"
|
||||
. += "<span class='boldnotice'>Mode:</span> [motus_operandi]</span>"
|
||||
. += "<span class='boldnotice'>Range:</span> [emitter_range]</span>"
|
||||
. += "[span_boldnotice("Sound File:")] [sound_file ? sound_file : "None chosen"]"
|
||||
. += span_boldnotice("Mode:</span> [motus_operandi]")
|
||||
. += span_boldnotice("Range:</span> [emitter_range]")
|
||||
. += "<b>Sound is playing at [sound_volume]% volume.</b>"
|
||||
if(user.client.holder)
|
||||
. += "<b>Alt-click it to quickly activate it!</b>"
|
||||
@@ -54,7 +54,7 @@
|
||||
/obj/effect/sound_emitter/AltClick(mob/user)
|
||||
if(check_rights_for(user.client, R_SOUND))
|
||||
activate(user)
|
||||
to_chat(user, "<span class='notice'>Sound emitter activated.</span>", confidential = TRUE)
|
||||
to_chat(user, span_notice("Sound emitter activated."), confidential = TRUE)
|
||||
|
||||
/obj/effect/sound_emitter/proc/edit_emitter(mob/user)
|
||||
var/dat = ""
|
||||
@@ -82,20 +82,20 @@
|
||||
if(!new_label)
|
||||
return
|
||||
maptext = MAPTEXT(new_label)
|
||||
to_chat(user, "<span class='notice'>Label set to [maptext].</span>", confidential = TRUE)
|
||||
to_chat(user, span_notice("Label set to [maptext]."), confidential = TRUE)
|
||||
if(href_list["edit_sound_file"])
|
||||
var/new_file = input(user, "Choose a sound file.", "Sound Emitter") as null|sound
|
||||
if(!new_file)
|
||||
return
|
||||
sound_file = new_file
|
||||
to_chat(user, "<span class='notice'>New sound file set to [sound_file].</span>", confidential = TRUE)
|
||||
to_chat(user, span_notice("New sound file set to [sound_file]."), confidential = TRUE)
|
||||
if(href_list["edit_volume"])
|
||||
var/new_volume = input(user, "Choose a volume.", "Sound Emitter", sound_volume) as null|num
|
||||
if(isnull(new_volume))
|
||||
return
|
||||
new_volume = clamp(new_volume, 0, 100)
|
||||
sound_volume = new_volume
|
||||
to_chat(user, "<span class='notice'>Volume set to [sound_volume]%.</span>", confidential = TRUE)
|
||||
to_chat(user, span_notice("Volume set to [sound_volume]%."), confidential = TRUE)
|
||||
if(href_list["edit_mode"])
|
||||
var/new_mode
|
||||
var/mode_list = list("Local (normal sound)" = SOUND_EMITTER_LOCAL, "Direct (not affected by environment/location)" = SOUND_EMITTER_DIRECT)
|
||||
@@ -103,7 +103,7 @@
|
||||
if(!new_mode)
|
||||
return
|
||||
motus_operandi = mode_list[new_mode]
|
||||
to_chat(user, "<span class='notice'>Mode set to [motus_operandi].</span>", confidential = TRUE)
|
||||
to_chat(user, span_notice("Mode set to [motus_operandi]."), confidential = TRUE)
|
||||
if(href_list["edit_range"])
|
||||
var/new_range
|
||||
var/range_list = list("Radius (all mobs within a radius)" = SOUND_EMITTER_RADIUS, "Z-Level (all mobs on the same z)" = SOUND_EMITTER_ZLEVEL, "Global (all players)" = SOUND_EMITTER_GLOBAL)
|
||||
@@ -111,14 +111,14 @@
|
||||
if(!new_range)
|
||||
return
|
||||
emitter_range = range_list[new_range]
|
||||
to_chat(user, "<span class='notice'>Range set to [emitter_range].</span>", confidential = TRUE)
|
||||
to_chat(user, span_notice("Range set to [emitter_range]."), confidential = TRUE)
|
||||
if(href_list["edit_radius"])
|
||||
var/new_radius = input(user, "Choose a radius.", "Sound Emitter", sound_volume) as null|num
|
||||
if(isnull(new_radius))
|
||||
return
|
||||
new_radius = clamp(new_radius, 0, 127)
|
||||
play_radius = new_radius
|
||||
to_chat(user, "<span class='notice'>Audible radius set to [play_radius].</span>", confidential = TRUE)
|
||||
to_chat(user, span_notice("Audible radius set to [play_radius]."), confidential = TRUE)
|
||||
if(href_list["play"])
|
||||
activate(user)
|
||||
edit_emitter(user) //Refresh the UI to see our changes
|
||||
|
||||
@@ -337,7 +337,7 @@
|
||||
if(!check_rights(R_BAN))
|
||||
return
|
||||
if(!SSdbcore.Connect())
|
||||
to_chat(usr, "<span class='danger'>Failed to establish database connection.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Failed to establish database connection."), confidential = TRUE)
|
||||
return
|
||||
var/list/error_state = list()
|
||||
var/player_key
|
||||
@@ -443,7 +443,7 @@
|
||||
else
|
||||
error_state += "No ban type was selected."
|
||||
if(error_state.len)
|
||||
to_chat(usr, "<span class='danger'>Ban not [edit_id ? "edited" : "created"] because the following errors were present:\n[error_state.Join("\n")]</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Ban not [edit_id ? "edited" : "created"] because the following errors were present:\n[error_state.Join("\n")]"), confidential = TRUE)
|
||||
return
|
||||
if(edit_id)
|
||||
edit_ban(edit_id, player_key, ip_check, player_ip, cid_check, player_cid, use_last_connection, applies_to_admins, duration, interval, reason, mirror_edit, old_key, old_ip, old_cid, old_applies, page, admin_key, changes)
|
||||
@@ -454,7 +454,7 @@
|
||||
if(!check_rights(R_BAN))
|
||||
return
|
||||
if(!SSdbcore.Connect())
|
||||
to_chat(usr, "<span class='danger'>Failed to establish database connection.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Failed to establish database connection."), confidential = TRUE)
|
||||
return
|
||||
var/player_ckey = ckey(player_key)
|
||||
if(player_ckey)
|
||||
@@ -501,7 +501,7 @@
|
||||
if(R_EVERYTHING && !(R_EVERYTHING & rank.can_edit_rights)) //edit rights are a more effective way to check hierarchical rank since many non-headmins have R_PERMISSIONS now
|
||||
max_adminbans = MAX_ADMINBANS_PER_HEADMIN
|
||||
if(adminban_count >= max_adminbans)
|
||||
to_chat(usr, "<span class='danger'>You've already logged [max_adminbans] admin ban(s) or more. Do not abuse this function!</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("You've already logged [max_adminbans] admin ban(s) or more. Do not abuse this function!"), confidential = TRUE)
|
||||
qdel(query_check_adminban_count)
|
||||
return
|
||||
qdel(query_check_adminban_count)
|
||||
@@ -567,7 +567,7 @@
|
||||
var/is_admin = FALSE
|
||||
if(C)
|
||||
build_ban_cache(C)
|
||||
to_chat(C, "<span class='boldannounce'>You have been [applies_to_admins ? "admin " : ""]banned by [usr.client.key] from [roles_to_ban[1] == "Server" ? "the server" : " Roles: [roles_to_ban.Join(", ")]"].\nReason: [reason]</span><br><span class='danger'>This ban is [isnull(duration) ? "permanent." : "temporary, it will be removed in [time_message]."] The round ID is [GLOB.round_id].</span><br><span class='danger'>To appeal this ban go to [appeal_url]</span>", confidential = TRUE)
|
||||
to_chat(C, span_boldannounce("You have been [applies_to_admins ? "admin " : ""]banned by [usr.client.key] from [roles_to_ban[1] == "Server" ? "the server" : " Roles: [roles_to_ban.Join(", ")]"].\nReason: [reason]</span><br>[span_danger("This ban is [isnull(duration) ? "permanent." : "temporary, it will be removed in [time_message]."] The round ID is [GLOB.round_id].")]<br><span class='danger'>To appeal this ban go to [appeal_url]"), confidential = TRUE)
|
||||
if(GLOB.admin_datums[C.ckey] || GLOB.deadmins[C.ckey])
|
||||
is_admin = TRUE
|
||||
if(roles_to_ban[1] == "Server" && (!is_admin || (is_admin && applies_to_admins)))
|
||||
@@ -577,7 +577,7 @@
|
||||
for(var/client/i in GLOB.clients - C)
|
||||
if(i.address == player_ip || i.computer_id == player_cid)
|
||||
build_ban_cache(i)
|
||||
to_chat(i, "<span class='boldannounce'>You have been [applies_to_admins ? "admin " : ""]banned by [usr.client.key] from [roles_to_ban[1] == "Server" ? "the server" : " Roles: [roles_to_ban.Join(", ")]"].\nReason: [reason]</span><br><span class='danger'>This ban is [isnull(duration) ? "permanent." : "temporary, it will be removed in [time_message]."] The round ID is [GLOB.round_id].</span><br><span class='danger'>To appeal this ban go to [appeal_url]</span>", confidential = TRUE)
|
||||
to_chat(i, span_boldannounce("You have been [applies_to_admins ? "admin " : ""]banned by [usr.client.key] from [roles_to_ban[1] == "Server" ? "the server" : " Roles: [roles_to_ban.Join(", ")]"].\nReason: [reason]</span><br>[span_danger("This ban is [isnull(duration) ? "permanent." : "temporary, it will be removed in [time_message]."] The round ID is [GLOB.round_id].")]<br><span class='danger'>To appeal this ban go to [appeal_url]"), confidential = TRUE)
|
||||
if(GLOB.admin_datums[i.ckey] || GLOB.deadmins[i.ckey])
|
||||
is_admin = TRUE
|
||||
if(roles_to_ban[1] == "Server" && (!is_admin || (is_admin && applies_to_admins)))
|
||||
@@ -587,7 +587,7 @@
|
||||
if(!check_rights(R_BAN))
|
||||
return
|
||||
if(!SSdbcore.Connect())
|
||||
to_chat(usr, "<span class='danger'>Failed to establish database connection.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Failed to establish database connection."), confidential = TRUE)
|
||||
return
|
||||
var/datum/browser/unban_panel = new(usr, "unbanpanel", "Unbanning Panel", 850, 600)
|
||||
unban_panel.add_stylesheet("unbanpanelcss", 'html/admin/unbanpanel.css')
|
||||
@@ -729,7 +729,7 @@
|
||||
if(!check_rights(R_BAN))
|
||||
return
|
||||
if(!SSdbcore.Connect())
|
||||
to_chat(usr, "<span class='danger'>Failed to establish database connection.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Failed to establish database connection."), confidential = TRUE)
|
||||
return
|
||||
var/target = ban_target_string(player_key, player_ip, player_cid)
|
||||
if(tgui_alert(usr, "Please confirm unban of [target] from [role].", "Unban confirmation", list("Yes", "No")) == "No")
|
||||
@@ -754,18 +754,18 @@
|
||||
var/client/C = GLOB.directory[player_key]
|
||||
if(C)
|
||||
build_ban_cache(C)
|
||||
to_chat(C, "<span class='boldannounce'>[usr.client.key] has removed a ban from [role] for your key.</span>", confidential = TRUE)
|
||||
to_chat(C, span_boldannounce("[usr.client.key] has removed a ban from [role] for your key."), confidential = TRUE)
|
||||
for(var/client/i in GLOB.clients - C)
|
||||
if(i.address == player_ip || i.computer_id == player_cid)
|
||||
build_ban_cache(i)
|
||||
to_chat(i, "<span class='boldannounce'>[usr.client.key] has removed a ban from [role] for your IP or CID.</span>", confidential = TRUE)
|
||||
to_chat(i, span_boldannounce("[usr.client.key] has removed a ban from [role] for your IP or CID."), confidential = TRUE)
|
||||
unban_panel(player_key, admin_key, player_ip, player_cid, page)
|
||||
|
||||
/datum/admins/proc/edit_ban(ban_id, player_key, ip_check, player_ip, cid_check, player_cid, use_last_connection, applies_to_admins, duration, interval, reason, mirror_edit, old_key, old_ip, old_cid, old_applies, admin_key, page, list/changes)
|
||||
if(!check_rights(R_BAN))
|
||||
return
|
||||
if(!SSdbcore.Connect())
|
||||
to_chat(usr, "<span class='danger'>Failed to establish database connection.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Failed to establish database connection."), confidential = TRUE)
|
||||
return
|
||||
var/player_ckey = ckey(player_key)
|
||||
var/bantime
|
||||
@@ -818,7 +818,7 @@
|
||||
if(R_EVERYTHING && !(R_EVERYTHING & rank.can_edit_rights)) //edit rights are a more effective way to check hierarchical rank since many non-headmins have R_PERMISSIONS now
|
||||
max_adminbans = MAX_ADMINBANS_PER_HEADMIN
|
||||
if(adminban_count >= max_adminbans)
|
||||
to_chat(usr, "<span class='danger'>You've already logged [max_adminbans] admin ban(s) or more. Do not abuse this function!</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("You've already logged [max_adminbans] admin ban(s) or more. Do not abuse this function!"), confidential = TRUE)
|
||||
qdel(query_check_adminban_count)
|
||||
return
|
||||
qdel(query_check_adminban_count)
|
||||
@@ -886,18 +886,18 @@
|
||||
var/client/C = GLOB.directory[old_key]
|
||||
if(C)
|
||||
build_ban_cache(C)
|
||||
to_chat(C, "<span class='boldannounce'>[usr.client.key] has edited the [changes_keys_text] of a ban for your key.</span>", confidential = TRUE)
|
||||
to_chat(C, span_boldannounce("[usr.client.key] has edited the [changes_keys_text] of a ban for your key."), confidential = TRUE)
|
||||
for(var/client/i in GLOB.clients - C)
|
||||
if(i.address == old_ip || i.computer_id == old_cid)
|
||||
build_ban_cache(i)
|
||||
to_chat(i, "<span class='boldannounce'>[usr.client.key] has edited the [changes_keys_text] of a ban for your IP or CID.</span>", confidential = TRUE)
|
||||
to_chat(i, span_boldannounce("[usr.client.key] has edited the [changes_keys_text] of a ban for your IP or CID."), confidential = TRUE)
|
||||
unban_panel(player_key, null, null, null, page)
|
||||
|
||||
/datum/admins/proc/ban_log(ban_id)
|
||||
if(!check_rights(R_BAN))
|
||||
return
|
||||
if(!SSdbcore.Connect())
|
||||
to_chat(usr, "<span class='danger'>Failed to establish database connection.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Failed to establish database connection."), confidential = TRUE)
|
||||
return
|
||||
var/datum/db_query/query_get_ban_edits = SSdbcore.NewQuery({"
|
||||
SELECT edits FROM [format_table_name("ban")] WHERE id = :ban_id
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/proc/create_message(type, target_key, admin_ckey, text, timestamp, server, secret, logged = 1, browse, expiry, note_severity)
|
||||
if(!SSdbcore.Connect())
|
||||
to_chat(usr, "<span class='danger'>Failed to establish database connection.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Failed to establish database connection."), confidential = TRUE)
|
||||
return
|
||||
if(!type)
|
||||
return
|
||||
@@ -111,7 +111,7 @@
|
||||
|
||||
/proc/delete_message(message_id, logged = 1, browse)
|
||||
if(!SSdbcore.Connect())
|
||||
to_chat(usr, "<span class='danger'>Failed to establish database connection.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Failed to establish database connection."), confidential = TRUE)
|
||||
return
|
||||
message_id = text2num(message_id)
|
||||
if(!message_id)
|
||||
@@ -154,7 +154,7 @@
|
||||
|
||||
/proc/edit_message(message_id, browse)
|
||||
if(!SSdbcore.Connect())
|
||||
to_chat(usr, "<span class='danger'>Failed to establish database connection.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Failed to establish database connection."), confidential = TRUE)
|
||||
return
|
||||
message_id = text2num(message_id)
|
||||
if(!message_id)
|
||||
@@ -204,7 +204,7 @@
|
||||
|
||||
/proc/edit_message_expiry(message_id, browse)
|
||||
if(!SSdbcore.Connect())
|
||||
to_chat(usr, "<span class='danger'>Failed to establish database connection.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Failed to establish database connection."), confidential = TRUE)
|
||||
return
|
||||
message_id = text2num(message_id)
|
||||
if(!message_id)
|
||||
@@ -275,7 +275,7 @@
|
||||
|
||||
/proc/edit_message_severity(message_id)
|
||||
if(!SSdbcore.Connect())
|
||||
to_chat(usr, "<span class='danger'>Failed to establish database connection.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Failed to establish database connection."), confidential = TRUE)
|
||||
return
|
||||
message_id = text2num(message_id)
|
||||
if(!message_id)
|
||||
@@ -326,7 +326,7 @@
|
||||
|
||||
/proc/toggle_message_secrecy(message_id)
|
||||
if(!SSdbcore.Connect())
|
||||
to_chat(usr, "<span class='danger'>Failed to establish database connection.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Failed to establish database connection."), confidential = TRUE)
|
||||
return
|
||||
message_id = text2num(message_id)
|
||||
if(!message_id)
|
||||
@@ -370,7 +370,7 @@
|
||||
|
||||
/proc/browse_messages(type, target_ckey, index, linkless = FALSE, filter, agegate = FALSE)
|
||||
if(!SSdbcore.Connect())
|
||||
to_chat(usr, "<span class='danger'>Failed to establish database connection.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Failed to establish database connection."), confidential = TRUE)
|
||||
return
|
||||
var/list/output = list()
|
||||
var/ruler = "<hr style='background:#000000; border:0; height:3px'>"
|
||||
@@ -623,7 +623,7 @@
|
||||
|
||||
/proc/get_message_output(type, target_ckey)
|
||||
if(!SSdbcore.Connect())
|
||||
to_chat(usr, "<span class='danger'>Failed to establish database connection.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Failed to establish database connection."), confidential = TRUE)
|
||||
return
|
||||
if(!type)
|
||||
return
|
||||
@@ -652,7 +652,7 @@
|
||||
var/editor_key = query_get_message_output.item[5]
|
||||
switch(type)
|
||||
if("message")
|
||||
output += "<font color='red' size='3'><b>Admin message left by <span class='prefix'>[admin_key]</span> on [timestamp]</b></font>"
|
||||
output += "<font color='red' size='3'><b>Admin message left by [span_prefix("[admin_key]")] on [timestamp]</b></font>"
|
||||
output += "<br><font color='red'>[text]</font><br>"
|
||||
var/datum/db_query/query_message_read = SSdbcore.NewQuery(
|
||||
"UPDATE [format_table_name("messages")] SET type = 'message sent' WHERE id = :id",
|
||||
@@ -667,9 +667,9 @@
|
||||
message_admins("<font color='red'><B>Notice: </B></font><font color='blue'>[key_name_admin(target_ckey)] has been on the watchlist since [timestamp] and has just connected - Reason: [text]</font>")
|
||||
send2tgs_adminless_only("Watchlist", "[key_name(target_ckey)] is on the watchlist and has just connected - Reason: [text]")
|
||||
if("memo")
|
||||
output += "<span class='memo'>Memo by <span class='prefix'>[admin_key]</span> on [timestamp]"
|
||||
output += "[span_memo("Memo by <span class='prefix'>[admin_key]")] on [timestamp]"
|
||||
if(editor_key)
|
||||
output += "<br><span class='memoedit'>Last edit by [editor_key] <A href='?_src_=holder;[HrefToken()];messageedits=[message_id]'>(Click here to see edit log)</A></span>"
|
||||
output += "<br>[span_memoedit("Last edit by [editor_key] <A href='?_src_=holder;[HrefToken()];messageedits=[message_id]'>(Click here to see edit log)</A>")]"
|
||||
output += "<br>[text]</span><br>"
|
||||
qdel(query_get_message_output)
|
||||
return output
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
ban["ckey"] = ckey
|
||||
|
||||
if (get_stickyban_from_ckey(ckey))
|
||||
to_chat(usr, "<span class='adminnotice'>Error: Can not add a stickyban: User already has a current sticky ban</span>", confidential = TRUE)
|
||||
to_chat(usr, span_adminnotice("Error: Can not add a stickyban: User already has a current sticky ban"), confidential = TRUE)
|
||||
return
|
||||
|
||||
if (data["reason"])
|
||||
@@ -50,7 +50,7 @@
|
||||
SSstickyban.cache[ckey] = ban
|
||||
|
||||
log_admin_private("[key_name(usr)] has stickybanned [ckey].\nReason: [ban["message"]]")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] has stickybanned [ckey].\nReason: [ban["message"]]</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] has stickybanned [ckey].\nReason: [ban["message"]]"))
|
||||
|
||||
if ("remove")
|
||||
if (!data["ckey"])
|
||||
@@ -59,12 +59,12 @@
|
||||
|
||||
var/ban = get_stickyban_from_ckey(ckey)
|
||||
if (!ban)
|
||||
to_chat(usr, "<span class='adminnotice'>Error: No sticky ban for [ckey] found!</span>", confidential = TRUE)
|
||||
to_chat(usr, span_adminnotice("Error: No sticky ban for [ckey] found!"), confidential = TRUE)
|
||||
return
|
||||
if (tgui_alert(usr,"Are you sure you want to remove the sticky ban on [ckey]?","Are you sure",list("Yes","No")) == "No")
|
||||
return
|
||||
if (!get_stickyban_from_ckey(ckey))
|
||||
to_chat(usr, "<span class='adminnotice'>Error: The ban disappeared.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_adminnotice("Error: The ban disappeared."), confidential = TRUE)
|
||||
return
|
||||
world.SetConfig("ban",ckey, null)
|
||||
SSstickyban.cache -= ckey
|
||||
@@ -79,7 +79,7 @@
|
||||
|
||||
|
||||
log_admin_private("[key_name(usr)] removed [ckey]'s stickyban")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] removed [ckey]'s stickyban</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] removed [ckey]'s stickyban"))
|
||||
|
||||
if ("remove_alt")
|
||||
if (!data["ckey"])
|
||||
@@ -90,12 +90,12 @@
|
||||
var/alt = ckey(data["alt"])
|
||||
var/ban = get_stickyban_from_ckey(ckey)
|
||||
if (!ban)
|
||||
to_chat(usr, "<span class='adminnotice'>Error: No sticky ban for [ckey] found!</span>", confidential = TRUE)
|
||||
to_chat(usr, span_adminnotice("Error: No sticky ban for [ckey] found!"), confidential = TRUE)
|
||||
return
|
||||
|
||||
var/key = LAZYACCESS(ban["keys"], alt)
|
||||
if (!key)
|
||||
to_chat(usr, "<span class='adminnotice'>Error: [alt] is not linked to [ckey]'s sticky ban!</span>", confidential = TRUE)
|
||||
to_chat(usr, span_adminnotice("Error: [alt] is not linked to [ckey]'s sticky ban!"), confidential = TRUE)
|
||||
return
|
||||
|
||||
if (tgui_alert(usr,"Are you sure you want to disassociate [alt] from [ckey]'s sticky ban? \nNote: Nothing stops byond from re-linking them, Use \[E] to exempt them","Are you sure",list("Yes","No")) == "No")
|
||||
@@ -104,13 +104,13 @@
|
||||
//we have to do this again incase something changes
|
||||
ban = get_stickyban_from_ckey(ckey)
|
||||
if (!ban)
|
||||
to_chat(usr, "<span class='adminnotice'>Error: The ban disappeared.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_adminnotice("Error: The ban disappeared."), confidential = TRUE)
|
||||
return
|
||||
|
||||
key = LAZYACCESS(ban["keys"], alt)
|
||||
|
||||
if (!key)
|
||||
to_chat(usr, "<span class='adminnotice'>Error: [alt] link to [ckey]'s sticky ban disappeared.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_adminnotice("Error: [alt] link to [ckey]'s sticky ban disappeared."), confidential = TRUE)
|
||||
return
|
||||
|
||||
LAZYREMOVE(ban["keys"], alt)
|
||||
@@ -127,7 +127,7 @@
|
||||
qdel(query_remove_stickyban_alt)
|
||||
|
||||
log_admin_private("[key_name(usr)] has disassociated [alt] from [ckey]'s sticky ban")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] has disassociated [alt] from [ckey]'s sticky ban</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] has disassociated [alt] from [ckey]'s sticky ban"))
|
||||
|
||||
if ("edit")
|
||||
if (!data["ckey"])
|
||||
@@ -135,7 +135,7 @@
|
||||
var/ckey = data["ckey"]
|
||||
var/ban = get_stickyban_from_ckey(ckey)
|
||||
if (!ban)
|
||||
to_chat(usr, "<span class='adminnotice'>Error: No sticky ban for [ckey] found!</span>", confidential = TRUE)
|
||||
to_chat(usr, span_adminnotice("Error: No sticky ban for [ckey] found!"), confidential = TRUE)
|
||||
return
|
||||
var/oldreason = ban["message"]
|
||||
var/reason = input(usr,"Reason","Reason","[ban["message"]]") as text|null
|
||||
@@ -144,7 +144,7 @@
|
||||
//we have to do this again incase something changed while we waited for input
|
||||
ban = get_stickyban_from_ckey(ckey)
|
||||
if (!ban)
|
||||
to_chat(usr, "<span class='adminnotice'>Error: The ban disappeared.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_adminnotice("Error: The ban disappeared."), confidential = TRUE)
|
||||
return
|
||||
ban["message"] = "[reason]"
|
||||
|
||||
@@ -161,7 +161,7 @@
|
||||
qdel(query_edit_stickyban)
|
||||
|
||||
log_admin_private("[key_name(usr)] has edited [ckey]'s sticky ban reason from [oldreason] to [reason]")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] has edited [ckey]'s sticky ban reason from [oldreason] to [reason]</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] has edited [ckey]'s sticky ban reason from [oldreason] to [reason]"))
|
||||
|
||||
if ("exempt")
|
||||
if (!data["ckey"])
|
||||
@@ -172,12 +172,12 @@
|
||||
var/alt = ckey(data["alt"])
|
||||
var/ban = get_stickyban_from_ckey(ckey)
|
||||
if (!ban)
|
||||
to_chat(usr, "<span class='adminnotice'>Error: No sticky ban for [ckey] found!</span>", confidential = TRUE)
|
||||
to_chat(usr, span_adminnotice("Error: No sticky ban for [ckey] found!"), confidential = TRUE)
|
||||
return
|
||||
|
||||
var/key = LAZYACCESS(ban["keys"], alt)
|
||||
if (!key)
|
||||
to_chat(usr, "<span class='adminnotice'>Error: [alt] is not linked to [ckey]'s sticky ban!</span>", confidential = TRUE)
|
||||
to_chat(usr, span_adminnotice("Error: [alt] is not linked to [ckey]'s sticky ban!"), confidential = TRUE)
|
||||
return
|
||||
|
||||
if (tgui_alert(usr,"Are you sure you want to exempt [alt] from [ckey]'s sticky ban?","Are you sure",list("Yes","No")) == "No")
|
||||
@@ -186,13 +186,13 @@
|
||||
//we have to do this again incase something changes
|
||||
ban = get_stickyban_from_ckey(ckey)
|
||||
if (!ban)
|
||||
to_chat(usr, "<span class='adminnotice'>Error: The ban disappeared.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_adminnotice("Error: The ban disappeared."), confidential = TRUE)
|
||||
return
|
||||
|
||||
key = LAZYACCESS(ban["keys"], alt)
|
||||
|
||||
if (!key)
|
||||
to_chat(usr, "<span class='adminnotice'>Error: [alt]'s link to [ckey]'s sticky ban disappeared.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_adminnotice("Error: [alt]'s link to [ckey]'s sticky ban disappeared."), confidential = TRUE)
|
||||
return
|
||||
LAZYREMOVE(ban["keys"], alt)
|
||||
key["exempt"] = TRUE
|
||||
@@ -211,7 +211,7 @@
|
||||
qdel(query_exempt_stickyban_alt)
|
||||
|
||||
log_admin_private("[key_name(usr)] has exempted [alt] from [ckey]'s sticky ban")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] has exempted [alt] from [ckey]'s sticky ban</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] has exempted [alt] from [ckey]'s sticky ban"))
|
||||
|
||||
if ("unexempt")
|
||||
if (!data["ckey"])
|
||||
@@ -222,12 +222,12 @@
|
||||
var/alt = ckey(data["alt"])
|
||||
var/ban = get_stickyban_from_ckey(ckey)
|
||||
if (!ban)
|
||||
to_chat(usr, "<span class='adminnotice'>Error: No sticky ban for [ckey] found!</span>", confidential = TRUE)
|
||||
to_chat(usr, span_adminnotice("Error: No sticky ban for [ckey] found!"), confidential = TRUE)
|
||||
return
|
||||
|
||||
var/key = LAZYACCESS(ban["whitelist"], alt)
|
||||
if (!key)
|
||||
to_chat(usr, "<span class='adminnotice'>Error: [alt] is not exempt from [ckey]'s sticky ban!</span>", confidential = TRUE)
|
||||
to_chat(usr, span_adminnotice("Error: [alt] is not exempt from [ckey]'s sticky ban!"), confidential = TRUE)
|
||||
return
|
||||
|
||||
if (tgui_alert(usr,"Are you sure you want to unexempt [alt] from [ckey]'s sticky ban?","Are you sure",list("Yes","No")) == "No")
|
||||
@@ -236,12 +236,12 @@
|
||||
//we have to do this again incase something changes
|
||||
ban = get_stickyban_from_ckey(ckey)
|
||||
if (!ban)
|
||||
to_chat(usr, "<span class='adminnotice'>Error: The ban disappeared.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_adminnotice("Error: The ban disappeared."), confidential = TRUE)
|
||||
return
|
||||
|
||||
key = LAZYACCESS(ban["whitelist"], alt)
|
||||
if (!key)
|
||||
to_chat(usr, "<span class='adminnotice'>Error: [alt]'s exemption from [ckey]'s sticky ban disappeared.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_adminnotice("Error: [alt]'s exemption from [ckey]'s sticky ban disappeared."), confidential = TRUE)
|
||||
return
|
||||
|
||||
LAZYREMOVE(ban["whitelist"], alt)
|
||||
@@ -261,13 +261,13 @@
|
||||
qdel(query_unexempt_stickyban_alt)
|
||||
|
||||
log_admin_private("[key_name(usr)] has unexempted [alt] from [ckey]'s sticky ban")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] has unexempted [alt] from [ckey]'s sticky ban</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] has unexempted [alt] from [ckey]'s sticky ban"))
|
||||
|
||||
if ("timeout")
|
||||
if (!data["ckey"])
|
||||
return
|
||||
if (!SSdbcore.Connect())
|
||||
to_chat(usr, "<span class='adminnotice'>No database connection!</span>", confidential = TRUE)
|
||||
to_chat(usr, span_adminnotice("No database connection!"), confidential = TRUE)
|
||||
return
|
||||
|
||||
var/ckey = data["ckey"]
|
||||
@@ -276,7 +276,7 @@
|
||||
return
|
||||
var/ban = get_stickyban_from_ckey(ckey)
|
||||
if (!ban)
|
||||
to_chat(usr, "<span class='adminnotice'>Error: No sticky ban for [ckey] found!</span>", confidential = TRUE)
|
||||
to_chat(usr, span_adminnotice("Error: No sticky ban for [ckey] found!"), confidential = TRUE)
|
||||
return
|
||||
|
||||
ban["timeout"] = TRUE
|
||||
@@ -288,13 +288,13 @@
|
||||
cachedban["timeout"] = TRUE
|
||||
|
||||
log_admin_private("[key_name(usr)] has put [ckey]'s sticky ban on timeout.")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] has put [ckey]'s sticky ban on timeout.</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] has put [ckey]'s sticky ban on timeout."))
|
||||
|
||||
if ("untimeout")
|
||||
if (!data["ckey"])
|
||||
return
|
||||
if (!SSdbcore.Connect())
|
||||
to_chat(usr, "<span class='adminnotice'>No database connection!</span>", confidential = TRUE)
|
||||
to_chat(usr, span_adminnotice("No database connection!"), confidential = TRUE)
|
||||
return
|
||||
var/ckey = data["ckey"]
|
||||
|
||||
@@ -307,7 +307,7 @@
|
||||
cachedban["timeout"] = FALSE
|
||||
if (!ban)
|
||||
if (!cachedban)
|
||||
to_chat(usr, "<span class='adminnotice'>Error: No sticky ban for [ckey] found!</span>", confidential = TRUE)
|
||||
to_chat(usr, span_adminnotice("Error: No sticky ban for [ckey] found!"), confidential = TRUE)
|
||||
return
|
||||
ban = cachedban
|
||||
|
||||
@@ -316,7 +316,7 @@
|
||||
world.SetConfig("ban",ckey,list2stickyban(ban))
|
||||
|
||||
log_admin_private("[key_name(usr)] has taken [ckey]'s sticky ban off of timeout.")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] has taken [ckey]'s sticky ban off of timeout.</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] has taken [ckey]'s sticky ban off of timeout."))
|
||||
|
||||
|
||||
if ("revert")
|
||||
@@ -327,15 +327,15 @@
|
||||
return
|
||||
var/ban = get_stickyban_from_ckey(ckey)
|
||||
if (!ban)
|
||||
to_chat(usr, "<span class='adminnotice'>Error: No sticky ban for [ckey] found!</span>", confidential = TRUE)
|
||||
to_chat(usr, span_adminnotice("Error: No sticky ban for [ckey] found!"), confidential = TRUE)
|
||||
return
|
||||
var/cached_ban = SSstickyban.cache[ckey]
|
||||
if (!cached_ban)
|
||||
to_chat(usr, "<span class='adminnotice'>Error: No cached sticky ban for [ckey] found!</span>", confidential = TRUE)
|
||||
to_chat(usr, span_adminnotice("Error: No cached sticky ban for [ckey] found!"), confidential = TRUE)
|
||||
world.SetConfig("ban",ckey,null)
|
||||
|
||||
log_admin_private("[key_name(usr)] has reverted [ckey]'s sticky ban to its state at round start.")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] has reverted [ckey]'s sticky ban to its state at round start.</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] has reverted [ckey]'s sticky ban to its state at round start."))
|
||||
//revert is mostly used when shit goes rouge, so we have to set it to null
|
||||
// and wait a byond tick before assigning it to ensure byond clears its shit.
|
||||
sleep(world.tick_lag)
|
||||
|
||||
+35
-35
@@ -44,7 +44,7 @@
|
||||
return
|
||||
var/mob/M = locate(href_list["getplaytimewindow"]) in GLOB.mob_list
|
||||
if(!M)
|
||||
to_chat(usr, "<span class='danger'>ERROR: Mob not found.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("ERROR: Mob not found."), confidential = TRUE)
|
||||
return
|
||||
cmd_show_exp_panel(M.client)
|
||||
else if(href_list["forceevent"])
|
||||
@@ -104,7 +104,7 @@
|
||||
return
|
||||
SSshuttle.emergency.request()
|
||||
log_admin("[key_name(usr)] called the Emergency Shuttle.")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] called the Emergency Shuttle to the station.</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] called the Emergency Shuttle to the station."))
|
||||
|
||||
if("2")
|
||||
if(EMERGENCY_AT_LEAST_DOCKED)
|
||||
@@ -113,11 +113,11 @@
|
||||
if(SHUTTLE_CALL)
|
||||
SSshuttle.emergency.cancel()
|
||||
log_admin("[key_name(usr)] sent the Emergency Shuttle back.")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] sent the Emergency Shuttle back.</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] sent the Emergency Shuttle back."))
|
||||
else
|
||||
SSshuttle.emergency.cancel()
|
||||
log_admin("[key_name(usr)] called the Emergency Shuttle.")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] called the Emergency Shuttle to the station.</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] called the Emergency Shuttle to the station."))
|
||||
|
||||
|
||||
|
||||
@@ -131,7 +131,7 @@
|
||||
SSshuttle.emergency.setTimer(timer SECONDS)
|
||||
log_admin("[key_name(usr)] edited the Emergency Shuttle's timeleft to [timer] seconds.")
|
||||
minor_announce("The emergency shuttle will reach its destination in [DisplayTimeText(timer SECONDS)].")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] edited the Emergency Shuttle's timeleft to [timer] seconds.</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] edited the Emergency Shuttle's timeleft to [timer] seconds."))
|
||||
else if(href_list["trigger_centcom_recall"])
|
||||
if(!check_rights(R_ADMIN))
|
||||
return
|
||||
@@ -197,16 +197,16 @@
|
||||
if(!check_rights(R_ADMIN))
|
||||
return
|
||||
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] is considering ending the round.</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] is considering ending the round."))
|
||||
if(tgui_alert(usr, "This will end the round, are you SURE you want to do this?", "Confirmation", list("Yes", "No")) == "Yes")
|
||||
if(tgui_alert(usr, "Final Confirmation: End the round NOW?", "Confirmation", list("Yes", "No")) == "Yes")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] has ended the round.</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] has ended the round."))
|
||||
SSticker.force_ending = 1 //Yeah there we go APC destroyed mission accomplished
|
||||
return
|
||||
else
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] decided against ending the round.</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] decided against ending the round."))
|
||||
else
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] decided against ending the round.</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] decided against ending the round."))
|
||||
|
||||
else if(href_list["simplemake"])
|
||||
if(!check_rights(R_SPAWN))
|
||||
@@ -226,7 +226,7 @@
|
||||
delmob = FALSE
|
||||
|
||||
log_admin("[key_name(usr)] has used rudimentary transformation on [key_name(M)]. Transforming to [href_list["simplemake"]].; deletemob=[delmob]")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] has used rudimentary transformation on [key_name_admin(M)]. Transforming to [href_list["simplemake"]].; deletemob=[delmob]</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] has used rudimentary transformation on [key_name_admin(M)]. Transforming to [href_list["simplemake"]].; deletemob=[delmob]"))
|
||||
switch(href_list["simplemake"])
|
||||
if("observer")
|
||||
M.change_mob_type( /mob/dead/observer , null, null, delmob )
|
||||
@@ -292,19 +292,19 @@
|
||||
var/mob/M = locate(href_list["boot2"])
|
||||
if(ismob(M))
|
||||
if(!check_if_greater_rights_than(M.client))
|
||||
to_chat(usr, "<span class='danger'>Error: They have more rights than you do.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Error: They have more rights than you do."), confidential = TRUE)
|
||||
return
|
||||
if(tgui_alert(usr, "Kick [key_name(M)]?", "Confirm", list("Yes", "No")) != "Yes")
|
||||
return
|
||||
if(!M)
|
||||
to_chat(usr, "<span class='danger'>Error: [M] no longer exists!</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Error: [M] no longer exists!"), confidential = TRUE)
|
||||
return
|
||||
if(!M.client)
|
||||
to_chat(usr, "<span class='danger'>Error: [M] no longer has a client!</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Error: [M] no longer has a client!"), confidential = TRUE)
|
||||
return
|
||||
to_chat(M, "<span class='danger'>You have been kicked from the server by [usr.client.holder.fakekey ? "an Administrator" : "[usr.client.key]"].</span>", confidential = TRUE)
|
||||
to_chat(M, span_danger("You have been kicked from the server by [usr.client.holder.fakekey ? "an Administrator" : "[usr.client.key]"]."), confidential = TRUE)
|
||||
log_admin("[key_name(usr)] kicked [key_name(M)].")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] kicked [key_name_admin(M)].</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] kicked [key_name_admin(M)]."))
|
||||
qdel(M.client)
|
||||
|
||||
else if(href_list["addmessage"])
|
||||
@@ -560,7 +560,7 @@
|
||||
return
|
||||
|
||||
log_admin("[key_name(usr)] attempting to monkeyize [key_name(H)].")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] attempting to monkeyize [key_name_admin(H)].</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] attempting to monkeyize [key_name_admin(H)]."))
|
||||
H.monkeyize()
|
||||
|
||||
else if(href_list["humanone"])
|
||||
@@ -573,7 +573,7 @@
|
||||
return
|
||||
|
||||
log_admin("[key_name(usr)] attempting to humanize [key_name(Mo)].")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] attempting to humanize [key_name_admin(Mo)].</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] attempting to humanize [key_name_admin(Mo)]."))
|
||||
Mo.humanize()
|
||||
|
||||
else if(href_list["corgione"])
|
||||
@@ -586,7 +586,7 @@
|
||||
return
|
||||
|
||||
log_admin("[key_name(usr)] attempting to corgize [key_name(H)].")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] attempting to corgize [key_name_admin(H)].</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] attempting to corgize [key_name_admin(H)]."))
|
||||
H.corgize()
|
||||
|
||||
|
||||
@@ -604,7 +604,7 @@
|
||||
M.say(speech, forced = "admin speech")
|
||||
speech = sanitize(speech) // Nah, we don't trust them
|
||||
log_admin("[key_name(usr)] forced [key_name(M)] to say: [speech]")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] forced [key_name_admin(M)] to say: [speech]</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] forced [key_name_admin(M)] to say: [speech]"))
|
||||
|
||||
else if(href_list["sendtoprison"])
|
||||
if(!check_rights(R_ADMIN))
|
||||
@@ -622,7 +622,7 @@
|
||||
return
|
||||
|
||||
M.forceMove(pick(GLOB.prisonwarp))
|
||||
to_chat(M, "<span class='adminnotice'>You have been sent to Prison!</span>", confidential = TRUE)
|
||||
to_chat(M, span_adminnotice("You have been sent to Prison!"), confidential = TRUE)
|
||||
|
||||
log_admin("[key_name(usr)] has sent [key_name(M)] to Prison!")
|
||||
message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to Prison!")
|
||||
@@ -634,11 +634,11 @@
|
||||
var/mob/M = locate(href_list["sendbacktolobby"])
|
||||
|
||||
if(!isobserver(M))
|
||||
to_chat(usr, "<span class='notice'>You can only send ghost players back to the Lobby.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_notice("You can only send ghost players back to the Lobby."), confidential = TRUE)
|
||||
return
|
||||
|
||||
if(!M.client)
|
||||
to_chat(usr, "<span class='warning'>[M] doesn't seem to have an active client.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_warning("[M] doesn't seem to have an active client."), confidential = TRUE)
|
||||
return
|
||||
|
||||
if(tgui_alert(usr, "Send [key_name(M)] back to Lobby?", "Message", list("Yes", "No")) != "Yes")
|
||||
@@ -673,7 +673,7 @@
|
||||
L.Unconscious(100)
|
||||
sleep(5)
|
||||
L.forceMove(pick(GLOB.tdome1))
|
||||
addtimer(CALLBACK(GLOBAL_PROC, /proc/to_chat, L, "<span class='adminnotice'>You have been sent to the Thunderdome.</span>"), 5 SECONDS)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, /proc/to_chat, L, span_adminnotice("You have been sent to the Thunderdome.")), 5 SECONDS)
|
||||
log_admin("[key_name(usr)] has sent [key_name(L)] to the thunderdome. (Team 1)")
|
||||
message_admins("[key_name_admin(usr)] has sent [key_name_admin(L)] to the thunderdome. (Team 1)")
|
||||
|
||||
@@ -699,7 +699,7 @@
|
||||
L.Unconscious(100)
|
||||
sleep(5)
|
||||
L.forceMove(pick(GLOB.tdome2))
|
||||
addtimer(CALLBACK(GLOBAL_PROC, /proc/to_chat, L, "<span class='adminnotice'>You have been sent to the Thunderdome.</span>"), 5 SECONDS)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, /proc/to_chat, L, span_adminnotice("You have been sent to the Thunderdome.")), 5 SECONDS)
|
||||
log_admin("[key_name(usr)] has sent [key_name(L)] to the thunderdome. (Team 2)")
|
||||
message_admins("[key_name_admin(usr)] has sent [key_name_admin(L)] to the thunderdome. (Team 2)")
|
||||
|
||||
@@ -722,7 +722,7 @@
|
||||
L.Unconscious(100)
|
||||
sleep(5)
|
||||
L.forceMove(pick(GLOB.tdomeadmin))
|
||||
addtimer(CALLBACK(GLOBAL_PROC, /proc/to_chat, L, "<span class='adminnotice'>You have been sent to the Thunderdome.</span>"), 5 SECONDS)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, /proc/to_chat, L, span_adminnotice("You have been sent to the Thunderdome.")), 5 SECONDS)
|
||||
log_admin("[key_name(usr)] has sent [key_name(L)] to the thunderdome. (Admin.)")
|
||||
message_admins("[key_name_admin(usr)] has sent [key_name_admin(L)] to the thunderdome. (Admin.)")
|
||||
|
||||
@@ -752,7 +752,7 @@
|
||||
L.Unconscious(100)
|
||||
sleep(5)
|
||||
L.forceMove(pick(GLOB.tdomeobserve))
|
||||
addtimer(CALLBACK(GLOBAL_PROC, /proc/to_chat, L, "<span class='adminnotice'>You have been sent to the Thunderdome.</span>"), 5 SECONDS)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, /proc/to_chat, L, span_adminnotice("You have been sent to the Thunderdome.")), 5 SECONDS)
|
||||
log_admin("[key_name(usr)] has sent [key_name(L)] to the thunderdome. (Observer.)")
|
||||
message_admins("[key_name_admin(usr)] has sent [key_name_admin(L)] to the thunderdome. (Observer.)")
|
||||
|
||||
@@ -766,7 +766,7 @@
|
||||
return
|
||||
|
||||
L.revive(full_heal = TRUE, admin_revive = TRUE)
|
||||
message_admins("<span class='danger'>Admin [key_name_admin(usr)] healed / revived [key_name_admin(L)]!</span>")
|
||||
message_admins(span_danger("Admin [key_name_admin(usr)] healed / revived [key_name_admin(L)]!"))
|
||||
log_admin("[key_name(usr)] healed / Revived [key_name(L)].")
|
||||
|
||||
else if(href_list["makeai"])
|
||||
@@ -785,9 +785,9 @@
|
||||
if("No")
|
||||
move = FALSE
|
||||
if(QDELETED(H))
|
||||
to_chat(usr, "<span class='danger'>Subject was deleted already. Transform canceled.</span>")
|
||||
to_chat(usr, span_danger("Subject was deleted already. Transform canceled."))
|
||||
return
|
||||
message_admins("<span class='danger'>Admin [key_name_admin(usr)] AIized [key_name_admin(H)]!</span>")
|
||||
message_admins(span_danger("Admin [key_name_admin(usr)] AIized [key_name_admin(H)]!"))
|
||||
log_admin("[key_name(usr)] AIized [key_name(H)].")
|
||||
H.AIize(TRUE, H.client, move)
|
||||
|
||||
@@ -1063,7 +1063,7 @@
|
||||
log_admin("[key_name(H)] got their [new_item], spawned by [key_name(src.owner)].")
|
||||
message_admins("[key_name(H)] got their [new_item], spawned by [key_name(src.owner)].")
|
||||
SSblackbox.record_feedback("amount", "admin_cookies_spawned", 1)
|
||||
to_chat(H, "<span class='adminnotice'>Your prayers have been answered!! You received the <b>best [new_item.name]!</b></span>", confidential = TRUE)
|
||||
to_chat(H, span_adminnotice("Your prayers have been answered!! You received the <b>best [new_item.name]!</b>"), confidential = TRUE)
|
||||
SEND_SOUND(H, sound('sound/effects/pray_chaplain.ogg'))
|
||||
|
||||
else if(href_list["adminsmite"])
|
||||
@@ -1634,7 +1634,7 @@
|
||||
if(tgui_alert(usr,"Are you sure you want to kick all [afkonly ? "AFK" : ""] clients from the lobby??","Message",list("Yes","Cancel")) != "Yes")
|
||||
to_chat(usr, "Kick clients from lobby aborted", confidential = TRUE)
|
||||
return
|
||||
var/list/listkicked = kick_clients_in_lobby("<span class='danger'>You were kicked from the lobby by [usr.client.holder.fakekey ? "an Administrator" : "[usr.client.key]"].</span>", afkonly)
|
||||
var/list/listkicked = kick_clients_in_lobby(span_danger("You were kicked from the lobby by [usr.client.holder.fakekey ? "an Administrator" : "[usr.client.key]"]."), afkonly)
|
||||
|
||||
var/strkicked = ""
|
||||
for(var/name in listkicked)
|
||||
@@ -1677,7 +1677,7 @@
|
||||
else if(href_list["viewruntime"])
|
||||
var/datum/error_viewer/error_viewer = locate(href_list["viewruntime"])
|
||||
if(!istype(error_viewer))
|
||||
to_chat(usr, "<span class='warning'>That runtime viewer no longer exists.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_warning("That runtime viewer no longer exists."), confidential = TRUE)
|
||||
return
|
||||
|
||||
if(href_list["viewruntime_backto"])
|
||||
@@ -1707,7 +1707,7 @@
|
||||
return
|
||||
|
||||
if(!CONFIG_GET(string/centcom_ban_db))
|
||||
to_chat(usr, "<span class='warning'>Centcom Galactic Ban DB is disabled!</span>")
|
||||
to_chat(usr, span_warning("Centcom Galactic Ban DB is disabled!"))
|
||||
return
|
||||
|
||||
var/ckey = href_list["centcomlookup"]
|
||||
@@ -1949,11 +1949,11 @@
|
||||
|
||||
else if(href_list["admincommend"])
|
||||
if(!SSticker.IsRoundInProgress())
|
||||
to_chat(usr, "<span class='warning'>The round must be in progress to use this!</span>")
|
||||
to_chat(usr, span_warning("The round must be in progress to use this!"))
|
||||
return
|
||||
var/mob/heart_recepient = locate(href_list["admincommend"])
|
||||
if(!heart_recepient?.ckey)
|
||||
to_chat(usr, "<span class='warning'>This mob either no longer exists or no longer is being controlled by someone!</span>")
|
||||
to_chat(usr, span_warning("This mob either no longer exists or no longer is being controlled by someone!"))
|
||||
return
|
||||
|
||||
switch(tgui_alert(usr, "Would you like the effects to apply immediately or at the end of the round? Applying them now will make it clear it was an admin commendation.", "<3?", list("Apply now", "Apply at round end", "Cancel")))
|
||||
|
||||
@@ -203,7 +203,7 @@
|
||||
/client/proc/SDQL2_query(query_text as message)
|
||||
set category = "Debug"
|
||||
if(!check_rights(R_DEBUG)) //Shouldn't happen... but just to be safe.
|
||||
message_admins("<span class='danger'>ERROR: Non-admin [key_name(usr)] attempted to execute a SDQL query!</span>")
|
||||
message_admins(span_danger("ERROR: Non-admin [key_name(usr)] attempted to execute a SDQL query!"))
|
||||
log_admin("Non-admin [key_name(usr)] attempted to execute a SDQL query!")
|
||||
return FALSE
|
||||
var/list/results = world.SDQL2_query(query_text, key_name_admin(usr), "[key_name(usr)]")
|
||||
@@ -248,7 +248,7 @@
|
||||
running += query
|
||||
var/msg = "Starting query #[query.id] - [query.get_query_text()]."
|
||||
if(usr)
|
||||
to_chat(usr, "<span class='admin'>[msg]</span>", confidential = TRUE)
|
||||
to_chat(usr, span_admin("[msg]"), confidential = TRUE)
|
||||
log_admin(msg)
|
||||
query.ARun()
|
||||
else //Start all
|
||||
@@ -256,7 +256,7 @@
|
||||
running += query
|
||||
var/msg = "Starting query #[query.id] - [query.get_query_text()]."
|
||||
if(usr)
|
||||
to_chat(usr, "<span class='admin'>[msg]</span>", confidential = TRUE)
|
||||
to_chat(usr, span_admin("[msg]"), confidential = TRUE)
|
||||
log_admin(msg)
|
||||
query.ARun()
|
||||
|
||||
@@ -277,7 +277,7 @@
|
||||
finished = FALSE
|
||||
if(query.state == SDQL2_STATE_ERROR)
|
||||
if(usr)
|
||||
to_chat(usr, "<span class='admin'>SDQL query [query.get_query_text()] errored. It will NOT be automatically garbage collected. Please remove manually.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_admin("SDQL query [query.get_query_text()] errored. It will NOT be automatically garbage collected. Please remove manually."), confidential = TRUE)
|
||||
running -= query
|
||||
else
|
||||
if(query.finished)
|
||||
@@ -294,19 +294,19 @@
|
||||
running += next_query
|
||||
var/msg = "Starting query #[next_query.id] - [next_query.get_query_text()]."
|
||||
if(usr)
|
||||
to_chat(usr, "<span class='admin'>[msg]</span>", confidential = TRUE)
|
||||
to_chat(usr, span_admin("[msg]"), confidential = TRUE)
|
||||
log_admin(msg)
|
||||
next_query.ARun()
|
||||
else
|
||||
if(usr)
|
||||
to_chat(usr, "<span class='admin'>SDQL query [query.get_query_text()] was halted. It will NOT be automatically garbage collected. Please remove manually.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_admin("SDQL query [query.get_query_text()] was halted. It will NOT be automatically garbage collected. Please remove manually."), confidential = TRUE)
|
||||
running -= query
|
||||
while(!finished)
|
||||
|
||||
var/end_time_total = REALTIMEOFDAY - start_time_total
|
||||
return list("<span class='admin'>SDQL query combined results: [query_text]</span>",\
|
||||
"<span class='admin'>SDQL query completed: [objs_all] objects selected by path, and [selectors_used ? objs_eligible : objs_all] objects executed on after WHERE filtering/MAPping if applicable.</span>",\
|
||||
"<span class='admin'>SDQL combined querys took [DisplayTimeText(end_time_total)] to complete.</span>") + combined_refs
|
||||
return list(span_admin("SDQL query combined results: [query_text]"),\
|
||||
span_admin("SDQL query completed: [objs_all] objects selected by path, and [selectors_used ? objs_eligible : objs_all] objects executed on after WHERE filtering/MAPping if applicable."),\
|
||||
span_admin("SDQL combined querys took [DisplayTimeText(end_time_total)] to complete.")) + combined_refs
|
||||
|
||||
GLOBAL_LIST_INIT(sdql2_queries, GLOB.sdql2_queries || list())
|
||||
GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/sdql2_vv_all, new(null, "VIEW VARIABLES (all)", null))
|
||||
@@ -860,7 +860,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/sdql2_vv_all, new(null
|
||||
if("or", "||")
|
||||
result = (result || val)
|
||||
else
|
||||
to_chat(usr, "<span class='danger'>SDQL2: Unknown op [op]</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("SDQL2: Unknown op [op]"), confidential = TRUE)
|
||||
result = null
|
||||
else
|
||||
result = val
|
||||
@@ -970,7 +970,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/sdql2_vv_all, new(null
|
||||
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>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Parsing error on [querys_pos]\th query. Nothing was executed."), confidential = TRUE)
|
||||
return list()
|
||||
query_tree = list()
|
||||
do_parse = 0
|
||||
@@ -1016,16 +1016,16 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/sdql2_vv_all, new(null
|
||||
D = object
|
||||
|
||||
if (object == world && (!long || expression[start + 1] == ".") && !(expression[start] in exclude) && copytext(expression[start], 1, 3) != "SS") //3 == length("SS") + 1
|
||||
to_chat(usr, "<span class='danger'>World variables are not allowed to be accessed. Use global.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("World variables are not allowed to be accessed. Use global."), confidential = TRUE)
|
||||
return null
|
||||
|
||||
else if(expression [start] == "{" && long)
|
||||
if(lowertext(copytext(expression[start + 1], 1, 3)) != "0x") //3 == length("0x") + 1
|
||||
to_chat(usr, "<span class='danger'>Invalid pointer syntax: [expression[start + 1]]</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Invalid pointer syntax: [expression[start + 1]]"), confidential = TRUE)
|
||||
return null
|
||||
v = locate("\[[expression[start + 1]]]")
|
||||
if(!v)
|
||||
to_chat(usr, "<span class='danger'>Invalid pointer: [expression[start + 1]]</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Invalid pointer: [expression[start + 1]]"), confidential = TRUE)
|
||||
return null
|
||||
start++
|
||||
long = start < expression.len
|
||||
@@ -1088,7 +1088,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/sdql2_vv_all, new(null
|
||||
var/list/L = v
|
||||
var/index = query.SDQL_expression(source, expression[start + 2])
|
||||
if(isnum(index) && (!ISINTEGER(index) || L.len < index))
|
||||
to_chat(usr, "<span class='danger'>Invalid list index: [index]</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Invalid list index: [index]"), confidential = TRUE)
|
||||
return null
|
||||
return L[index]
|
||||
return v
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
|
||||
/datum/sdql_parser/proc/parse_error(error_message)
|
||||
error = 1
|
||||
to_chat(usr, "<span class='warning'>SDQL2 Parsing Error: [error_message]</span>", confidential = TRUE)
|
||||
to_chat(usr, span_warning("SDQL2 Parsing Error: [error_message]"), confidential = TRUE)
|
||||
return query.len + 1
|
||||
|
||||
/datum/sdql_parser/proc/parse()
|
||||
|
||||
@@ -213,7 +213,7 @@
|
||||
var/datum/give_sdql_spell/ui = new(usr, target)
|
||||
ui.ui_interact(usr)
|
||||
else
|
||||
to_chat(usr, "<span class='warning'>SDQL spells are disabled.</span>")
|
||||
to_chat(usr, span_warning("SDQL spells are disabled."))
|
||||
|
||||
|
||||
/datum/give_sdql_spell
|
||||
@@ -306,7 +306,7 @@
|
||||
|
||||
/datum/give_sdql_spell/New(_user, target)
|
||||
if(!CONFIG_GET(flag/sdql_spells))
|
||||
to_chat(_user, "<span class='warning'>SDQL spells are disabled.</span>")
|
||||
to_chat(_user, span_warning("SDQL spells are disabled."))
|
||||
qdel(src)
|
||||
return
|
||||
user = CLIENT_FROM_VAR(_user)
|
||||
@@ -845,4 +845,4 @@
|
||||
target_mob.mind.AddSpell(new_spell)
|
||||
else
|
||||
target_mob.AddSpell(new_spell)
|
||||
to_chat(user, "<span class='danger'>Spells given to mindless mobs will not be transferred in mindswap or cloning!</span>")
|
||||
to_chat(user, span_danger("Spells given to mindless mobs will not be transferred in mindswap or cloning!"))
|
||||
|
||||
@@ -83,7 +83,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
dat += "<A href='?_src_=holder;[HrefToken()];ahelp_tickets=[state]'>Refresh</A><br><br>"
|
||||
for(var/I in l2b)
|
||||
var/datum/admin_help/AH = I
|
||||
dat += "<span class='adminnotice'><span class='adminhelp'>Ticket #[AH.id]</span>: <A href='?_src_=holder;[HrefToken()];ahelp=[REF(AH)];ahelp_action=ticket'>[AH.initiator_key_name]: [AH.name]</A></span><br>"
|
||||
dat += "[span_adminnotice("[span_adminhelp("Ticket #[AH.id]")]: <A href='?_src_=holder;[HrefToken()];ahelp=[REF(AH)];ahelp_action=ticket'>[AH.initiator_key_name]: [AH.name]</A>")]<br>"
|
||||
|
||||
usr << browse(dat.Join(), "window=ahelp_list[state];size=600x480")
|
||||
|
||||
@@ -211,7 +211,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
var/admin_number_present = send2tgs_adminless_only(initiator_ckey, "Ticket #[id]: [msg]")
|
||||
log_admin_private("Ticket #[id]: [key_name(initiator)]: [name] - heard by [admin_number_present] non-AFK admins who have +BAN.")
|
||||
if(admin_number_present <= 0)
|
||||
to_chat(C, "<span class='notice'>No active admins are online, your adminhelp was sent through TGS to admins who are available. This may use IRC or Discord.</span>", confidential = TRUE)
|
||||
to_chat(C, span_notice("No active admins are online, your adminhelp was sent through TGS to admins who are available. This may use IRC or Discord."), confidential = TRUE)
|
||||
heard_by_no_admins = TRUE
|
||||
GLOB.ahelp_tickets.active_tickets += src
|
||||
|
||||
@@ -267,7 +267,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
msg = sanitize(copytext_char(msg, 1, MAX_MESSAGE_LEN))
|
||||
var/ref_src = "[REF(src)]"
|
||||
//Message to be sent to all admins
|
||||
var/admin_msg = "<span class='adminnotice'><span class='adminhelp'>Ticket [TicketHref("#[id]", ref_src)]</span><b>: [LinkedReplyName(ref_src)] [FullMonty(ref_src)]:</b> <span class='linkify'>[keywords_lookup(msg)]</span></span>"
|
||||
var/admin_msg = span_adminnotice(span_adminhelp("Ticket [TicketHref("#[id]", ref_src)]</span><b>: [LinkedReplyName(ref_src)] [FullMonty(ref_src)]:</b> <span class='linkify'>[keywords_lookup(msg)]"))
|
||||
|
||||
AddInteraction("<font color='red'>[LinkedReplyName(ref_src)]: [msg]</font>")
|
||||
log_admin_private("Ticket #[id]: [key_name(initiator)]: [msg]")
|
||||
@@ -285,18 +285,18 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
//show it to the person adminhelping too
|
||||
to_chat(initiator,
|
||||
type = MESSAGE_TYPE_ADMINPM,
|
||||
html = "<span class='adminnotice'>PM to-<b>Admins</b>: <span class='linkify'>[msg]</span></span>",
|
||||
html = span_adminnotice("PM to-<b>Admins</b>: <span class='linkify'>[msg]</span>"),
|
||||
confidential = TRUE)
|
||||
SSblackbox.LogAhelp(id, "Ticket Opened", msg, null, initiator.ckey)
|
||||
|
||||
//Reopen a closed ticket
|
||||
/datum/admin_help/proc/Reopen()
|
||||
if(state == AHELP_ACTIVE)
|
||||
to_chat(usr, "<span class='warning'>This ticket is already open.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_warning("This ticket is already open."), confidential = TRUE)
|
||||
return
|
||||
|
||||
if(GLOB.ahelp_tickets.CKey2ActiveTicket(initiator_ckey))
|
||||
to_chat(usr, "<span class='warning'>This user already has an active ticket, cannot reopen this one.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_warning("This user already has an active ticket, cannot reopen this one."), confidential = TRUE)
|
||||
return
|
||||
|
||||
statclick = new(null, src)
|
||||
@@ -314,7 +314,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
initiator.current_ticket = src
|
||||
|
||||
AddInteraction("<font color='purple'>Reopened by [key_name_admin(usr)]</font>")
|
||||
var/msg = "<span class='adminhelp'>Ticket [TicketHref("#[id]")] reopened by [key_name_admin(usr)].</span>"
|
||||
var/msg = span_adminhelp("Ticket [TicketHref("#[id]")] reopened by [key_name_admin(usr)].")
|
||||
message_admins(msg)
|
||||
log_admin_private(msg)
|
||||
SSblackbox.LogAhelp(id, "Reopened", "Reopened by [usr.key]", usr.ckey)
|
||||
@@ -357,7 +357,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
addtimer(CALLBACK(initiator, /client/proc/giveadminhelpverb), 50)
|
||||
|
||||
AddInteraction("<font color='green'>Resolved by [key_name].</font>")
|
||||
to_chat(initiator, "<span class='adminhelp'>Your ticket has been resolved by an admin. The Adminhelp verb will be returned to you shortly.</span>", confidential = TRUE)
|
||||
to_chat(initiator, span_adminhelp("Your ticket has been resolved by an admin. The Adminhelp verb will be returned to you shortly."), confidential = TRUE)
|
||||
if(!silent)
|
||||
SSblackbox.record_feedback("tally", "ahelp_stats", 1, "resolved")
|
||||
var/msg = "Ticket [TicketHref("#[id]")] resolved by [key_name]"
|
||||
@@ -509,12 +509,12 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
set name = "Adminhelp"
|
||||
|
||||
if(GLOB.say_disabled) //This is here to try to identify lag problems
|
||||
to_chat(usr, "<span class='danger'>Speech is currently admin-disabled.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Speech is currently admin-disabled."), confidential = TRUE)
|
||||
return
|
||||
|
||||
//handle muting and automuting
|
||||
if(prefs.muted & MUTE_ADMINHELP)
|
||||
to_chat(src, "<span class='danger'>Error: Admin-PM: You cannot send adminhelps (Muted).</span>", confidential = TRUE)
|
||||
to_chat(src, span_danger("Error: Admin-PM: You cannot send adminhelps (Muted)."), confidential = TRUE)
|
||||
return
|
||||
if(handle_spam_prevention(msg,MUTE_ADMINHELP))
|
||||
return
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
if(!holder)
|
||||
to_chat(src,
|
||||
type = MESSAGE_TYPE_ADMINPM,
|
||||
html = "<span class='danger'>Error: Admin-PM-Context: Only administrators may use this command.</span>",
|
||||
html = span_danger("Error: Admin-PM-Context: Only administrators may use this command."),
|
||||
confidential = TRUE)
|
||||
return
|
||||
if(!ismob(M) || !M.client)
|
||||
@@ -22,7 +22,7 @@
|
||||
if(!holder)
|
||||
to_chat(src,
|
||||
type = MESSAGE_TYPE_ADMINPM,
|
||||
html = "<span class='danger'>Error: Admin-PM-Panel: Only administrators may use this command.</span>",
|
||||
html = span_danger("Error: Admin-PM-Panel: Only administrators may use this command."),
|
||||
confidential = TRUE)
|
||||
return
|
||||
var/list/client/targets[0]
|
||||
@@ -44,7 +44,7 @@
|
||||
if(prefs.muted & MUTE_ADMINHELP)
|
||||
to_chat(src,
|
||||
type = MESSAGE_TYPE_ADMINPM,
|
||||
html = "<span class='danger'>Error: Admin-PM: You are unable to use admin PM-s (muted).</span>",
|
||||
html = span_danger("Error: Admin-PM: You are unable to use admin PM-s (muted)."),
|
||||
confidential = TRUE)
|
||||
return
|
||||
var/client/C
|
||||
@@ -58,7 +58,7 @@
|
||||
if(holder)
|
||||
to_chat(src,
|
||||
type = MESSAGE_TYPE_ADMINPM,
|
||||
html = "<span class='danger'>Error: Admin-PM: Client not found.</span>",
|
||||
html = span_danger("Error: Admin-PM: Client not found."),
|
||||
confidential = TRUE)
|
||||
return
|
||||
|
||||
@@ -76,11 +76,11 @@
|
||||
else
|
||||
to_chat(src,
|
||||
type = MESSAGE_TYPE_ADMINPM,
|
||||
html = "<span class='danger'>Error: Admin-PM: Client not found.</span>",
|
||||
html = span_danger("Error: Admin-PM: Client not found."),
|
||||
confidential = TRUE)
|
||||
to_chat(src,
|
||||
type = MESSAGE_TYPE_ADMINPM,
|
||||
html = "<span class='danger'><b>Message not sent:</b></span><br>[msg]",
|
||||
html = "[span_danger("<b>Message not sent:</b>")]<br>[msg]",
|
||||
confidential = TRUE)
|
||||
AH.AddInteraction("<b>No client found, message not sent:</b><br>[msg]")
|
||||
return
|
||||
@@ -92,18 +92,18 @@
|
||||
if(prefs.muted & MUTE_ADMINHELP)
|
||||
to_chat(src,
|
||||
type = MESSAGE_TYPE_ADMINPM,
|
||||
html = "<span class='danger'>Error: Admin-PM: You are unable to use admin PM-s (muted).</span>",
|
||||
html = span_danger("Error: Admin-PM: You are unable to use admin PM-s (muted)."),
|
||||
confidential = TRUE)
|
||||
return
|
||||
|
||||
if(!holder && !current_ticket) //no ticket? https://www.youtube.com/watch?v=iHSPf6x1Fdo
|
||||
to_chat(src,
|
||||
type = MESSAGE_TYPE_ADMINPM,
|
||||
html = "<span class='danger'>You can no longer reply to this ticket, please open another one by using the Adminhelp verb if need be.</span>",
|
||||
html = span_danger("You can no longer reply to this ticket, please open another one by using the Adminhelp verb if need be."),
|
||||
confidential = TRUE)
|
||||
to_chat(src,
|
||||
type = MESSAGE_TYPE_ADMINPM,
|
||||
html = "<span class='notice'>Message: [msg]</span>",
|
||||
html = span_notice("Message: [msg]"),
|
||||
confidential = TRUE)
|
||||
return
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
if(!recipient)
|
||||
to_chat(src,
|
||||
type = MESSAGE_TYPE_ADMINPM,
|
||||
html = "<span class='danger'>Error: Admin-PM: Client not found.</span>",
|
||||
html = span_danger("Error: Admin-PM: Client not found."),
|
||||
confidential = TRUE)
|
||||
return
|
||||
|
||||
@@ -142,7 +142,7 @@
|
||||
if(holder)
|
||||
to_chat(src,
|
||||
type = MESSAGE_TYPE_ADMINPM,
|
||||
html = "<span class='danger'>Error: Use the admin IRC/Discord channel, nerd.</span>",
|
||||
html = span_danger("Error: Use the admin IRC/Discord channel, nerd."),
|
||||
confidential = TRUE)
|
||||
return
|
||||
|
||||
@@ -162,11 +162,11 @@
|
||||
if(holder)
|
||||
to_chat(src,
|
||||
type = MESSAGE_TYPE_ADMINPM,
|
||||
html = "<span class='danger'>Error: Admin-PM: Client not found.</span>",
|
||||
html = span_danger("Error: Admin-PM: Client not found."),
|
||||
confidential = TRUE)
|
||||
to_chat(src,
|
||||
type = MESSAGE_TYPE_ADMINPM,
|
||||
html = "<span class='danger'><b>Message not sent:</b></span><br>[msg]",
|
||||
html = "[span_danger("<b>Message not sent:</b>")]<br>[msg]",
|
||||
confidential = TRUE)
|
||||
if(recipient_ticket)
|
||||
recipient_ticket.AddInteraction("<b>No client found, message not sent:</b><br>[msg]")
|
||||
@@ -179,7 +179,7 @@
|
||||
if(prefs.muted & MUTE_ADMINHELP)
|
||||
to_chat(src,
|
||||
type = MESSAGE_TYPE_ADMINPM,
|
||||
html = "<span class='danger'>Error: Admin-PM: You are unable to use admin PM-s (muted).</span>",
|
||||
html = span_danger("Error: Admin-PM: You are unable to use admin PM-s (muted)."),
|
||||
confidential = TRUE)
|
||||
return
|
||||
|
||||
@@ -202,7 +202,7 @@
|
||||
if(external)
|
||||
to_chat(src,
|
||||
type = MESSAGE_TYPE_ADMINPM,
|
||||
html = "<span class='notice'>PM to-<b>Admins</b>: <span class='linkify'>[rawmsg]</span></span>",
|
||||
html = span_notice("PM to-<b>Admins</b>: <span class='linkify'>[rawmsg]</span>"),
|
||||
confidential = TRUE)
|
||||
var/datum/admin_help/AH = admin_ticket_log(src, "<font color='red'>Reply PM from-<b>[key_name(src, TRUE, TRUE)]</b> to <i>External</i>: [keywordparsedmsg]</font>")
|
||||
externalreplyamount--
|
||||
@@ -215,11 +215,11 @@
|
||||
if(holder)
|
||||
to_chat(recipient,
|
||||
type = MESSAGE_TYPE_ADMINPM,
|
||||
html = "<span class='danger'>Admin PM from-<b>[key_name(src, recipient, 1)]</b>: <span class='linkify'>[keywordparsedmsg]</span></span>",
|
||||
html = span_danger("Admin PM from-<b>[key_name(src, recipient, 1)]</b>: <span class='linkify'>[keywordparsedmsg]</span>"),
|
||||
confidential = TRUE)
|
||||
to_chat(src,
|
||||
type = MESSAGE_TYPE_ADMINPM,
|
||||
html = "<span class='notice'>Admin PM to-<b>[key_name(recipient, src, 1)]</b>: <span class='linkify'>[keywordparsedmsg]</span></span>",
|
||||
html = span_notice("Admin PM to-<b>[key_name(recipient, src, 1)]</b>: <span class='linkify'>[keywordparsedmsg]</span>"),
|
||||
confidential = TRUE)
|
||||
//omg this is dumb, just fill in both their tickets
|
||||
var/interaction_message = "<font color='purple'>PM from-<b>[key_name(src, recipient, 1)]</b> to-<b>[key_name(recipient, src, 1)]</b>: [keywordparsedmsg]</font>"
|
||||
@@ -232,11 +232,11 @@
|
||||
admin_ticket_log(src, "<font color='red'>[replymsg]</font>")
|
||||
to_chat(recipient,
|
||||
type = MESSAGE_TYPE_ADMINPM,
|
||||
html = "<span class='danger'>[replymsg]</span>",
|
||||
html = span_danger("[replymsg]"),
|
||||
confidential = TRUE)
|
||||
to_chat(src,
|
||||
type = MESSAGE_TYPE_ADMINPM,
|
||||
html = "<span class='notice'>PM to-<b>Admins</b>: <span class='linkify'>[msg]</span></span>",
|
||||
html = span_notice("PM to-<b>Admins</b>: <span class='linkify'>[msg]</span>"),
|
||||
confidential = TRUE)
|
||||
SSblackbox.LogAhelp(current_ticket.id, "Reply", msg, recipient.ckey, src.ckey)
|
||||
|
||||
@@ -258,15 +258,15 @@
|
||||
confidential = TRUE)
|
||||
to_chat(recipient,
|
||||
type = MESSAGE_TYPE_ADMINPM,
|
||||
html = "<span class='adminsay'>Admin PM from-<b>[key_name(src, recipient, 0)]</b>: <span class='linkify'>[msg]</span></span>",
|
||||
html = span_adminsay("Admin PM from-<b>[key_name(src, recipient, 0)]</b>: <span class='linkify'>[msg]</span>"),
|
||||
confidential = TRUE)
|
||||
to_chat(recipient,
|
||||
type = MESSAGE_TYPE_ADMINPM,
|
||||
html = "<span class='adminsay'><i>Click on the administrator's name to reply.</i></span>",
|
||||
html = span_adminsay("<i>Click on the administrator's name to reply.</i>"),
|
||||
confidential = TRUE)
|
||||
to_chat(src,
|
||||
type = MESSAGE_TYPE_ADMINPM,
|
||||
html = "<span class='notice'>Admin PM to-<b>[key_name(recipient, src, 1)]</b>: <span class='linkify'>[msg]</span></span>",
|
||||
html = span_notice("Admin PM to-<b>[key_name(recipient, src, 1)]</b>: <span class='linkify'>[msg]</span>"),
|
||||
confidential = TRUE)
|
||||
|
||||
admin_ticket_log(recipient, "<font color='purple'>PM From [key_name_admin(src)]: [keywordparsedmsg]</font>")
|
||||
@@ -285,11 +285,11 @@
|
||||
if(!current_ticket)
|
||||
to_chat(src,
|
||||
type = MESSAGE_TYPE_ADMINPM,
|
||||
html = "<span class='danger'>Error: Admin-PM: Non-admin to non-admin PM communication is forbidden.</span>",
|
||||
html = span_danger("Error: Admin-PM: Non-admin to non-admin PM communication is forbidden."),
|
||||
confidential = TRUE)
|
||||
to_chat(src,
|
||||
type = MESSAGE_TYPE_ADMINPM,
|
||||
html = "<span class='danger'><b>Message not sent:</b></span><br>[msg]",
|
||||
html = "[span_danger("<b>Message not sent:</b>")]<br>[msg]",
|
||||
confidential = TRUE)
|
||||
return
|
||||
current_ticket.MessageNoRecipient(msg)
|
||||
@@ -299,7 +299,7 @@
|
||||
for(var/client/X in GLOB.admins)
|
||||
to_chat(X,
|
||||
type = MESSAGE_TYPE_ADMINPM,
|
||||
html = "<span class='notice'><B>PM: [key_name(src, X, 0)]->External:</B> [keywordparsedmsg]</span>",
|
||||
html = span_notice("<B>PM: [key_name(src, X, 0)]->External:</B> [keywordparsedmsg]"),
|
||||
confidential = TRUE)
|
||||
else
|
||||
window_flash(recipient, ignorepref = TRUE)
|
||||
@@ -309,7 +309,7 @@
|
||||
if(X.key!=key && X.key!=recipient.key) //check client/X is an admin and isn't the sender or recipient
|
||||
to_chat(X,
|
||||
type = MESSAGE_TYPE_ADMINPM,
|
||||
html = "<span class='notice'><B>PM: [key_name(src, X, 0)]->[key_name(recipient, X, 0)]:</B> [keywordparsedmsg]</span>" ,
|
||||
html = span_notice("<B>PM: [key_name(src, X, 0)]->[key_name(recipient, X, 0)]:</B> [keywordparsedmsg]") ,
|
||||
confidential = TRUE)
|
||||
|
||||
/client/proc/popup_admin_pm(client/recipient, msg)
|
||||
@@ -406,11 +406,11 @@
|
||||
confidential = TRUE)
|
||||
to_chat(C,
|
||||
type = MESSAGE_TYPE_ADMINPM,
|
||||
html = "<span class='adminsay'>Admin PM from-<b><a href='?priv_msg=[stealthkey]'>[adminname]</A></b>: [msg]</span>",
|
||||
html = span_adminsay("Admin PM from-<b><a href='?priv_msg=[stealthkey]'>[adminname]</A></b>: [msg]"),
|
||||
confidential = TRUE)
|
||||
to_chat(C,
|
||||
type = MESSAGE_TYPE_ADMINPM,
|
||||
html = "<span class='adminsay'><i>Click on the administrator's name to reply.</i></span>",
|
||||
html = span_adminsay("<i>Click on the administrator's name to reply.</i>"),
|
||||
confidential = TRUE)
|
||||
|
||||
admin_ticket_log(C, "<font color='purple'>PM From [tgs_tagged]: [msg]</font>")
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
mob.log_talk(msg, LOG_ASAY)
|
||||
msg = keywords_lookup(msg)
|
||||
var/custom_asay_color = (CONFIG_GET(flag/allow_admin_asaycolor) && prefs.asaycolor) ? "<font color=[prefs.asaycolor]>" : "<font color='#FF4500'>"
|
||||
msg = "<span class='adminsay'><span class='prefix'>ADMIN:</span> <EM>[key_name(usr, 1)]</EM> [ADMIN_FLW(mob)]: [custom_asay_color]<span class='message linkify'>[msg]</span></span>[custom_asay_color ? "</font>":null]"
|
||||
msg = "[span_adminsay("[span_prefix("ADMIN:")] <EM>[key_name(usr, 1)]</EM> [ADMIN_FLW(mob)]: [custom_asay_color]<span class='message linkify'>[msg]")]</span>[custom_asay_color ? "</font>":null]"
|
||||
to_chat(GLOB.admins,
|
||||
type = MESSAGE_TYPE_ADMINCHAT,
|
||||
html = msg,
|
||||
|
||||
@@ -45,4 +45,4 @@ GLOBAL_DATUM(triple_ai_controller, /datum/triple_ai_controller)
|
||||
else
|
||||
QDEL_NULL(GLOB.triple_ai_controller)
|
||||
to_chat(usr, "There will[GLOB.triple_ai_controller ? "" : "not"] be an AI Triumvirate at round start.")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] has toggled [GLOB.triple_ai_controller ? "on" : "off"] triple AIs at round start.</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] has toggled [GLOB.triple_ai_controller ? "on" : "off"] triple AIs at round start."))
|
||||
|
||||
@@ -15,7 +15,7 @@ GLOBAL_DATUM(current_anonymous_theme, /datum/anonymous_theme)
|
||||
var/response = tgui_alert(usr, "Anon mode is currently enabled. Disable?", "cold feet", list("Disable Anon Names", "Keep it Enabled"))
|
||||
if(response != "Disable Anon Names")
|
||||
return
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] has disabled anonymous names.</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] has disabled anonymous names."))
|
||||
QDEL_NULL(GLOB.current_anonymous_theme)
|
||||
return
|
||||
var/list/input_list = list("Cancel")
|
||||
@@ -36,7 +36,7 @@ GLOBAL_DATUM(current_anonymous_theme, /datum/anonymous_theme)
|
||||
extras_enabled = extras_enabled == "Yes"
|
||||
alert_players = alert_players == "Yes"
|
||||
GLOB.current_anonymous_theme = new chosen_theme(extras_enabled, alert_players)
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] has enabled anonymous names. THEME: [GLOB.current_anonymous_theme].</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] has enabled anonymous names. THEME: [GLOB.current_anonymous_theme]."))
|
||||
|
||||
/* Datum singleton initialized by the client proc to hold the naming generation */
|
||||
/datum/anonymous_theme
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
if (!istype(borgo, /mob/living/silicon/robot))
|
||||
borgo = input("Select a borg", "Select a borg", null, null) as null|anything in sortNames(GLOB.silicon_mobs)
|
||||
if (!istype(borgo, /mob/living/silicon/robot))
|
||||
to_chat(usr, "<span class='warning'>Borg is required for borgpanel</span>", confidential = TRUE)
|
||||
to_chat(usr, span_warning("Borg is required for borgpanel"), confidential = TRUE)
|
||||
|
||||
var/datum/borgpanel/borgpanel = new(usr, borgo)
|
||||
|
||||
|
||||
@@ -104,10 +104,10 @@
|
||||
announce_contents = !announce_contents
|
||||
if("submit_report")
|
||||
if(!command_name)
|
||||
to_chat(ui_user, "<span class='danger'>You can't send a report with no command name.</span>")
|
||||
to_chat(ui_user, span_danger("You can't send a report with no command name."))
|
||||
return
|
||||
if(!command_report_content)
|
||||
to_chat(ui_user, "<span class='danger'>You can't send a report with no contents.</span>")
|
||||
to_chat(ui_user, span_danger("You can't send a report with no contents."))
|
||||
return
|
||||
send_announcement()
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
if(!mob)
|
||||
return
|
||||
if(prefs.muted & MUTE_DEADCHAT)
|
||||
to_chat(src, "<span class='danger'>You cannot send DSAY messages (muted).</span>", confidential = TRUE)
|
||||
to_chat(src, span_danger("You cannot send DSAY messages (muted)."), confidential = TRUE)
|
||||
return
|
||||
|
||||
if (handle_spam_prevention(msg,MUTE_DEADCHAT))
|
||||
@@ -24,7 +24,7 @@
|
||||
if(holder.fakekey)
|
||||
rank_name = pick(strings("admin_nicknames.json", "ranks", "config"))
|
||||
admin_name = pick(strings("admin_nicknames.json", "names", "config"))
|
||||
var/rendered = "<span class='game deadsay'><span class='prefix'>DEAD:</span> <span class='name'>[rank_name]([admin_name])</span> says, <span class='message'>\"[emoji_parse(msg)]\"</span></span>"
|
||||
var/rendered = "<span class='game deadsay'>[span_prefix("DEAD:")] [span_name("[rank_name]([admin_name])")] says, <span class='message'>\"[emoji_parse(msg)]\"</span></span>"
|
||||
|
||||
for (var/mob/M in GLOB.player_list)
|
||||
if(isnewplayer(M))
|
||||
|
||||
@@ -131,7 +131,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
INVOKE_ASYNC(M, /mob/living/carbon/human/proc/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(usr)] made [key_name(M)] into an alien at [AREACOORD(M)].")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] made [ADMIN_LOOKUPFLW(M)] into an alien.</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] made [ADMIN_LOOKUPFLW(M)] into an alien."))
|
||||
else
|
||||
tgui_alert(usr,"Invalid mob")
|
||||
|
||||
@@ -146,7 +146,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
INVOKE_ASYNC(M, /mob/living/carbon/human/proc/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(usr)] made [key_name(M)] into a slime at [AREACOORD(M)].")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] made [ADMIN_LOOKUPFLW(M)] into a slime.</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] made [ADMIN_LOOKUPFLW(M)] into a slime."))
|
||||
else
|
||||
tgui_alert(usr,"Invalid mob")
|
||||
|
||||
@@ -226,7 +226,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
tgui_alert(usr,"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(src)] has granted [M.key] full access.")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] has granted [M.key] full access.</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] has granted [M.key] full access."))
|
||||
|
||||
/client/proc/cmd_assume_direct_control(mob/M in GLOB.mob_list)
|
||||
set category = "Admin.Game"
|
||||
@@ -237,9 +237,9 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
if(tgui_alert(usr,"This mob is being controlled by [M.key]. Are you sure you wish to assume control of it? [M.key] will be made a ghost.",,list("Yes","No")) != "Yes")
|
||||
return
|
||||
if(!M || QDELETED(M))
|
||||
to_chat(usr, "<span class='warning'>The target mob no longer exists.</span>")
|
||||
to_chat(usr, span_warning("The target mob no longer exists."))
|
||||
return
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] assumed direct control of [M].</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] assumed direct control of [M]."))
|
||||
log_admin("[key_name(usr)] assumed direct control of [M].")
|
||||
var/mob/adminmob = mob
|
||||
if(M.ckey)
|
||||
@@ -265,7 +265,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
if((isobserver(oldmob) || tgui_alert(usr,"Do you want to delete [newkey]'s old mob?","Delete?",list("Yes","No")) != "No"))
|
||||
delmob = TRUE
|
||||
if(!M || QDELETED(M))
|
||||
to_chat(usr, "<span class='warning'>The target mob no longer exists, aborting.</span>")
|
||||
to_chat(usr, span_warning("The target mob no longer exists, aborting."))
|
||||
return
|
||||
if(M.ckey)
|
||||
M.ghostize(FALSE)
|
||||
@@ -273,7 +273,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
M.client?.init_verbs()
|
||||
if(delmob)
|
||||
qdel(oldmob)
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] gave away direct control of [M] to [newkey].</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] gave away direct control of [M] to [newkey]."))
|
||||
log_admin("[key_name(usr)] gave away direct control of [M] to [newkey].")
|
||||
SSblackbox.record_feedback("tally", "admin_verb", 1, "Give Direct Control") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -287,7 +287,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
to_chat(usr, "Game still loading, please hold!", confidential = TRUE)
|
||||
return
|
||||
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] used the Test Atmos Monitor debug command.</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] used the Test Atmos Monitor debug command."))
|
||||
log_admin("[key_name(usr)] used the Test Atmos Monitor debug command.")
|
||||
|
||||
var/bad_shit = 0
|
||||
@@ -340,7 +340,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
else
|
||||
log_message = "all z-levels"
|
||||
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] used the Test Areas debug command checking [log_message].</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] used the Test Areas debug command checking [log_message]."))
|
||||
log_admin("[key_name(usr)] used the Test Areas debug command checking [log_message].")
|
||||
|
||||
for(var/area/A in world)
|
||||
@@ -649,7 +649,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
if(istype(landmark))
|
||||
var/datum/map_template/ruin/template = landmark.ruin_template
|
||||
usr.forceMove(get_turf(landmark))
|
||||
to_chat(usr, "<span class='name'>[template.name]</span>", confidential = TRUE)
|
||||
to_chat(usr, span_name("[template.name]"), confidential = TRUE)
|
||||
to_chat(usr, "<span class='italics'>[template.description]</span>", confidential = TRUE)
|
||||
|
||||
/client/proc/place_ruin()
|
||||
@@ -697,10 +697,10 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
var/obj/effect/landmark/ruin/landmark = GLOB.ruin_landmarks[GLOB.ruin_landmarks.len]
|
||||
log_admin("[key_name(src)] randomly spawned ruin [ruinname] at [COORD(landmark)].")
|
||||
usr.forceMove(get_turf(landmark))
|
||||
to_chat(src, "<span class='name'>[template.name]</span>", confidential = TRUE)
|
||||
to_chat(src, span_name("[template.name]"), confidential = TRUE)
|
||||
to_chat(src, "<span class='italics'>[template.description]</span>", confidential = TRUE)
|
||||
else
|
||||
to_chat(src, "<span class='warning'>Failed to place [template.name].</span>", confidential = TRUE)
|
||||
to_chat(src, span_warning("Failed to place [template.name]."), confidential = TRUE)
|
||||
|
||||
/client/proc/clear_dynamic_transit()
|
||||
set category = "Debug"
|
||||
@@ -711,7 +711,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
var/answer = tgui_alert(usr,"WARNING: THIS WILL WIPE ALL RESERVED SPACE TO A CLEAN SLATE! ANY MOVING SHUTTLES, ELEVATORS, OR IN-PROGRESS PHOTOGRAPHY WILL BE DELETED!", "Really wipe dynamic turfs?", list("YES", "NO"))
|
||||
if(answer != "YES")
|
||||
return
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(src)] cleared dynamic transit space.</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(src)] cleared dynamic transit space."))
|
||||
SSblackbox.record_feedback("tally", "admin_verb", 1, "Clear Dynamic Transit") // If...
|
||||
log_admin("[key_name(src)] cleared dynamic transit space.")
|
||||
SSmapping.wipe_reservations() //this goes after it's logged, incase something horrible happens.
|
||||
@@ -726,7 +726,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
|
||||
SSachievements.achievements_enabled = !SSachievements.achievements_enabled
|
||||
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(src)] [SSachievements.achievements_enabled ? "disabled" : "enabled"] the medal hub lockout.</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(src)] [SSachievements.achievements_enabled ? "disabled" : "enabled"] the medal hub lockout."))
|
||||
SSblackbox.record_feedback("tally", "admin_verb", 1, "Toggle Medal Disable") // If...
|
||||
log_admin("[key_name(src)] [SSachievements.achievements_enabled ? "disabled" : "enabled"] the medal hub lockout.")
|
||||
|
||||
@@ -749,7 +749,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
|
||||
SSevents.scheduled = world.time
|
||||
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(src)] pumped a random event.</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(src)] pumped a random event."))
|
||||
SSblackbox.record_feedback("tally", "admin_verb", 1, "Pump Random Event")
|
||||
log_admin("[key_name(src)] pumped a random event.")
|
||||
|
||||
@@ -760,7 +760,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
|
||||
LINE_PROFILE_START
|
||||
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(src)] started line by line profiling.</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(src)] started line by line profiling."))
|
||||
SSblackbox.record_feedback("tally", "admin_verb", 1, "Start Line Profiling")
|
||||
log_admin("[key_name(src)] started line by line profiling.")
|
||||
|
||||
@@ -771,7 +771,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
|
||||
LINE_PROFILE_STOP
|
||||
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(src)] stopped line by line profiling.</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(src)] stopped line by line profiling."))
|
||||
SSblackbox.record_feedback("tally", "admin_verb", 1, "Stop Line Profiling")
|
||||
log_admin("[key_name(src)] stopped line by line profiling.")
|
||||
|
||||
@@ -873,55 +873,55 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
//Is there an explicit worn_icon to pick against the worn_icon_state? Easy street expected behavior.
|
||||
if(sprite.worn_icon)
|
||||
if(!(sprite.icon_state in icon_states(sprite.worn_icon)))
|
||||
to_chat(src, "<span class='warning'>ERROR sprites for [sprite.type]. Slot Flags are [sprite.slot_flags].</span>", confidential = TRUE)
|
||||
to_chat(src, span_warning("ERROR sprites for [sprite.type]. Slot Flags are [sprite.slot_flags]."), confidential = TRUE)
|
||||
else if(sprite.worn_icon_state)
|
||||
if(sprite.slot_flags & ITEM_SLOT_MASK)
|
||||
actual_file_name = 'icons/mob/clothing/mask.dmi'
|
||||
if(!(sprite.worn_icon_state in icon_states(actual_file_name)))
|
||||
to_chat(src, "<span class='warning'>ERROR sprites for [sprite.type]. Mask slot.</span>", confidential = TRUE)
|
||||
to_chat(src, span_warning("ERROR sprites for [sprite.type]. Mask slot."), confidential = TRUE)
|
||||
if(sprite.slot_flags & ITEM_SLOT_NECK)
|
||||
actual_file_name = 'icons/mob/clothing/neck.dmi'
|
||||
if(!(sprite.worn_icon_state in icon_states(actual_file_name)))
|
||||
to_chat(src, "<span class='warning'>ERROR sprites for [sprite.type]. Neck slot.</span>", confidential = TRUE)
|
||||
to_chat(src, span_warning("ERROR sprites for [sprite.type]. Neck slot."), confidential = TRUE)
|
||||
if(sprite.slot_flags & ITEM_SLOT_BACK)
|
||||
actual_file_name = 'icons/mob/clothing/back.dmi'
|
||||
if(!(sprite.worn_icon_state in icon_states(actual_file_name)))
|
||||
to_chat(src, "<span class='warning'>ERROR sprites for [sprite.type]. Back slot.</span>", confidential = TRUE)
|
||||
to_chat(src, span_warning("ERROR sprites for [sprite.type]. Back slot."), confidential = TRUE)
|
||||
if(sprite.slot_flags & ITEM_SLOT_HEAD)
|
||||
actual_file_name = 'icons/mob/clothing/head.dmi'
|
||||
if(!(sprite.worn_icon_state in icon_states(actual_file_name)))
|
||||
to_chat(src, "<span class='warning'>ERROR sprites for [sprite.type]. Head slot.</span>", confidential = TRUE)
|
||||
to_chat(src, span_warning("ERROR sprites for [sprite.type]. Head slot."), confidential = TRUE)
|
||||
if(sprite.slot_flags & ITEM_SLOT_BELT)
|
||||
actual_file_name = 'icons/mob/clothing/belt.dmi'
|
||||
if(!(sprite.worn_icon_state in icon_states(actual_file_name)))
|
||||
to_chat(src, "<span class='warning'>ERROR sprites for [sprite.type]. Belt slot.</span>", confidential = TRUE)
|
||||
to_chat(src, span_warning("ERROR sprites for [sprite.type]. Belt slot."), confidential = TRUE)
|
||||
if(sprite.slot_flags & ITEM_SLOT_SUITSTORE)
|
||||
actual_file_name = 'icons/mob/clothing/belt_mirror.dmi'
|
||||
if(!(sprite.worn_icon_state in icon_states(actual_file_name)))
|
||||
to_chat(src, "<span class='warning'>ERROR sprites for [sprite.type]. Suit Storage slot.</span>", confidential = TRUE)
|
||||
to_chat(src, span_warning("ERROR sprites for [sprite.type]. Suit Storage slot."), confidential = TRUE)
|
||||
else if(sprite.icon_state)
|
||||
if(sprite.slot_flags & ITEM_SLOT_MASK)
|
||||
actual_file_name = 'icons/mob/clothing/mask.dmi'
|
||||
if(!(sprite.icon_state in icon_states(actual_file_name)))
|
||||
to_chat(src, "<span class='warning'>ERROR sprites for [sprite.type]. Mask slot.</span>", confidential = TRUE)
|
||||
to_chat(src, span_warning("ERROR sprites for [sprite.type]. Mask slot."), confidential = TRUE)
|
||||
if(sprite.slot_flags & ITEM_SLOT_NECK)
|
||||
actual_file_name = 'icons/mob/clothing/neck.dmi'
|
||||
if(!(sprite.icon_state in icon_states(actual_file_name)))
|
||||
to_chat(src, "<span class='warning'>ERROR sprites for [sprite.type]. Neck slot.</span>", confidential = TRUE)
|
||||
to_chat(src, span_warning("ERROR sprites for [sprite.type]. Neck slot."), confidential = TRUE)
|
||||
if(sprite.slot_flags & ITEM_SLOT_BACK)
|
||||
actual_file_name = 'icons/mob/clothing/back.dmi'
|
||||
if(!(sprite.icon_state in icon_states(actual_file_name)))
|
||||
to_chat(src, "<span class='warning'>ERROR sprites for [sprite.type]. Back slot.</span>", confidential = TRUE)
|
||||
to_chat(src, span_warning("ERROR sprites for [sprite.type]. Back slot."), confidential = TRUE)
|
||||
if(sprite.slot_flags & ITEM_SLOT_HEAD)
|
||||
actual_file_name = 'icons/mob/clothing/head.dmi'
|
||||
if(!(sprite.icon_state in icon_states(actual_file_name)))
|
||||
to_chat(src, "<span class='warning'>ERROR sprites for [sprite.type]. Head slot.</span>", confidential = TRUE)
|
||||
to_chat(src, span_warning("ERROR sprites for [sprite.type]. Head slot."), confidential = TRUE)
|
||||
if(sprite.slot_flags & ITEM_SLOT_BELT)
|
||||
actual_file_name = 'icons/mob/clothing/belt.dmi'
|
||||
if(!(sprite.icon_state in icon_states(actual_file_name)))
|
||||
to_chat(src, "<span class='warning'>ERROR sprites for [sprite.type]. Belt slot.</span>", confidential = TRUE)
|
||||
to_chat(src, span_warning("ERROR sprites for [sprite.type]. Belt slot."), confidential = TRUE)
|
||||
if(sprite.slot_flags & ITEM_SLOT_SUITSTORE)
|
||||
actual_file_name = 'icons/mob/clothing/belt_mirror.dmi'
|
||||
if(!(sprite.icon_state in icon_states(actual_file_name)))
|
||||
to_chat(src, "<span class='warning'>ERROR sprites for [sprite.type]. Suit Storage slot.</span>", confidential = TRUE)
|
||||
to_chat(src, span_warning("ERROR sprites for [sprite.type]. Suit Storage slot."), confidential = TRUE)
|
||||
#endif
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
message_admins("[key_name_admin(usr)] re-enabled the CDN asset transport")
|
||||
log_admin("[key_name(usr)] re-enabled the CDN asset transport")
|
||||
else
|
||||
to_chat(usr, "<span class='adminnotice'>The CDN is not enabled!</span>")
|
||||
to_chat(usr, span_adminnotice("The CDN is not enabled!"))
|
||||
if (tgui_alert(usr, "The CDN asset transport is not enabled! If you having issues with assets you can also try disabling filename mutations.", "The CDN asset transport is not enabled!", list("Try disabling filename mutations", "Nevermind")) == "Try disabling filename mutations")
|
||||
SSassets.transport.dont_mutate_filenames = !SSassets.transport.dont_mutate_filenames
|
||||
message_admins("[key_name_admin(usr)] [(SSassets.transport.dont_mutate_filenames ? "disabled" : "re-enabled")] asset filename transforms")
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
var/new_fps = round(input("Sets game frames-per-second. Can potentially break the game (default: [cfg_fps])","FPS", world.fps) as num|null)
|
||||
|
||||
if(new_fps <= 0)
|
||||
to_chat(src, "<span class='danger'>Error: set_server_fps(): Invalid world.fps value. No changes made.</span>", confidential = TRUE)
|
||||
to_chat(src, span_danger("Error: set_server_fps(): Invalid world.fps value. No changes made."), confidential = TRUE)
|
||||
return
|
||||
if(new_fps > cfg_fps * 1.5)
|
||||
if(tgui_alert(usr, "You are setting fps to a high value:\n\t[new_fps] frames-per-second\n\tconfig.fps = [cfg_fps]","Warning!",list("Confirm","ABORT-ABORT-ABORT")) != "Confirm")
|
||||
|
||||
@@ -11,7 +11,7 @@ GLOBAL_DATUM(highlander_controller, /datum/highlander_controller)
|
||||
. = ..()
|
||||
RegisterSignal(SSdcs, COMSIG_GLOB_CREWMEMBER_JOINED, .proc/new_highlander)
|
||||
sound_to_playing_players('sound/misc/highlander.ogg')
|
||||
send_to_playing_players("<span class='boldannounce'><font size=6>THERE CAN BE ONLY ONE</font></span>")
|
||||
send_to_playing_players(span_boldannounce("<font size=6>THERE CAN BE ONLY ONE</font>"))
|
||||
for(var/obj/item/disk/nuclear/fukkendisk in GLOB.poi_list)
|
||||
var/datum/component/stationloving/component = fukkendisk.GetComponent(/datum/component/stationloving)
|
||||
component?.relocate() //Gets it out of bags and such
|
||||
@@ -59,7 +59,7 @@ GLOBAL_DATUM(highlander_controller, /datum/highlander_controller)
|
||||
/datum/highlander_controller/proc/new_highlander(mob/living/carbon/human/new_crewmember, rank)
|
||||
SIGNAL_HANDLER
|
||||
|
||||
to_chat(new_crewmember, "<span class='userdanger'><i>THERE CAN BE ONLY ONE!!!</i></span>")
|
||||
to_chat(new_crewmember, span_userdanger("<i>THERE CAN BE ONLY ONE!!!</i>"))
|
||||
new_crewmember.make_scottish()
|
||||
|
||||
/**
|
||||
@@ -76,17 +76,17 @@ GLOBAL_DATUM(highlander_controller, /datum/highlander_controller)
|
||||
return
|
||||
|
||||
if(was_delayed) //sends more accurate logs
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)]'s delayed THERE CAN ONLY BE ONE started!</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)]'s delayed THERE CAN ONLY BE ONE started!"))
|
||||
log_admin("[key_name(usr)] delayed THERE CAN ONLY BE ONE started.")
|
||||
else
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] used THERE CAN BE ONLY ONE!</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] used THERE CAN BE ONLY ONE!"))
|
||||
log_admin("[key_name(usr)] used THERE CAN BE ONLY ONE.")
|
||||
|
||||
GLOB.highlander_controller = new /datum/highlander_controller
|
||||
|
||||
/client/proc/only_one_delayed()
|
||||
send_to_playing_players("<span class='userdanger'>Bagpipes begin to blare. You feel Scottish pride coming over you.</span>")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] used (delayed) THERE CAN BE ONLY ONE!</span>")
|
||||
send_to_playing_players(span_userdanger("Bagpipes begin to blare. You feel Scottish pride coming over you."))
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] used (delayed) THERE CAN BE ONLY ONE!"))
|
||||
log_admin("[key_name(usr)] used delayed THERE CAN BE ONLY ONE.")
|
||||
addtimer(CALLBACK(src, .proc/only_one, TRUE), 42 SECONDS)
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
template.post_load(P)
|
||||
break
|
||||
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(src)] has placed a map template ([template.name]) at [ADMIN_COORDJMP(T)]</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(src)] has placed a map template ([template.name]) at [ADMIN_COORDJMP(T)]"))
|
||||
else
|
||||
to_chat(src, "Failed to place map", confidential = TRUE)
|
||||
images -= preview
|
||||
@@ -50,7 +50,7 @@
|
||||
if(!map)
|
||||
return
|
||||
if(copytext("[map]", -4) != ".dmm")//4 == length(".dmm")
|
||||
to_chat(src, "<span class='warning'>Filename must end in '.dmm': [map]</span>", confidential = TRUE)
|
||||
to_chat(src, span_warning("Filename must end in '.dmm': [map]"), confidential = TRUE)
|
||||
return
|
||||
var/datum/map_template/M
|
||||
switch(tgui_alert(usr, "What kind of map is this?", "Map type", list("Normal", "Shuttle", "Cancel")))
|
||||
@@ -61,7 +61,7 @@
|
||||
else
|
||||
return
|
||||
if(!M.cached_map)
|
||||
to_chat(src, "<span class='warning'>Map template '[map]' failed to parse properly.</span>", confidential = TRUE)
|
||||
to_chat(src, span_warning("Map template '[map]' failed to parse properly."), confidential = TRUE)
|
||||
return
|
||||
|
||||
var/datum/map_report/report = M.cached_map.check_for_errors()
|
||||
@@ -69,7 +69,7 @@
|
||||
if(report)
|
||||
report.show_to(src)
|
||||
report_link = " - <a href='?src=[REF(report)];[HrefToken(TRUE)];show=1'>validation report</a>"
|
||||
to_chat(src, "<span class='warning'>Map template '[map]' <a href='?src=[REF(report)];[HrefToken()];show=1'>failed validation</a>.</span>", confidential = TRUE)
|
||||
to_chat(src, span_warning("Map template '[map]' <a href='?src=[REF(report)];[HrefToken()];show=1'>failed validation</a>."), confidential = TRUE)
|
||||
if(report.loadable)
|
||||
var/response = tgui_alert(usr, "The map failed validation, would you like to load it anyways?", "Map Errors", list("Cancel", "Upload Anyways"))
|
||||
if(response != "Upload Anyways")
|
||||
@@ -79,5 +79,5 @@
|
||||
return
|
||||
|
||||
SSmapping.map_templates[M.name] = M
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(src)] has uploaded a map template '[map]' ([M.width]x[M.height])[report_link].</span>")
|
||||
to_chat(src, "<span class='notice'>Map template '[map]' ready to place ([M.width]x[M.height])</span>", confidential = TRUE)
|
||||
message_admins(span_adminnotice("[key_name_admin(src)] has uploaded a map template '[map]' ([M.width]x[M.height])[report_link]."))
|
||||
to_chat(src, span_notice("Map template '[map]' ready to place ([M.width]x[M.height])"), confidential = TRUE)
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
return
|
||||
|
||||
if(copytext("[map_file]", -4) != ".dmm")//4 == length(".dmm")
|
||||
to_chat(src, "<span class='warning'>Filename must end in '.dmm': [map_file]</span>")
|
||||
to_chat(src, span_warning("Filename must end in '.dmm': [map_file]"))
|
||||
return
|
||||
|
||||
if(!fcopy(map_file, "_maps/custom/[map_file]"))
|
||||
@@ -59,11 +59,11 @@
|
||||
// This is to make sure the map works so the server does not start without a map.
|
||||
var/datum/parsed_map/M = new (map_file)
|
||||
if(!M)
|
||||
to_chat(src, "<span class='warning'>Map '[map_file]' failed to parse properly.</span>")
|
||||
to_chat(src, span_warning("Map '[map_file]' failed to parse properly."))
|
||||
return
|
||||
|
||||
if(!M.bounds)
|
||||
to_chat(src, "<span class='warning'>Map '[map_file]' has non-existant bounds.</span>")
|
||||
to_chat(src, span_warning("Map '[map_file]' has non-existant bounds."))
|
||||
qdel(M)
|
||||
return
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
if(!shuttle)
|
||||
continue
|
||||
if(!SSmapping.shuttle_templates[shuttle])
|
||||
to_chat(usr, "<span class='warning'>No such shuttle as '[shuttle]' exists, using default.</span>")
|
||||
to_chat(usr, span_warning("No such shuttle as '[shuttle]' exists, using default."))
|
||||
continue
|
||||
VM.shuttles[s] = shuttle
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
set category = "Server"
|
||||
set name = "Toggle Panic Bunker"
|
||||
if (!CONFIG_GET(flag/sql_enabled))
|
||||
to_chat(usr, "<span class='adminnotice'>The Database is not enabled!</span>", confidential = TRUE)
|
||||
to_chat(usr, span_adminnotice("The Database is not enabled!"), confidential = TRUE)
|
||||
return
|
||||
|
||||
var/new_pb = !CONFIG_GET(flag/panic_bunker)
|
||||
@@ -30,7 +30,7 @@
|
||||
set category = "Server"
|
||||
set name = "Toggle PB Interviews"
|
||||
if (!CONFIG_GET(flag/panic_bunker))
|
||||
to_chat(usr, "<span class='adminnotice'>NOTE: The panic bunker is not enabled, so this change will not effect anything until it is enabled.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_adminnotice("NOTE: The panic bunker is not enabled, so this change will not effect anything until it is enabled."), confidential = TRUE)
|
||||
var/new_interview = !CONFIG_GET(flag/panic_bunker_interview)
|
||||
CONFIG_SET(flag/panic_bunker_interview, new_interview)
|
||||
log_admin("[key_name(usr)] has toggled the Panic Bunker's interview system, it is now [new_interview ? "enabled" : "disabled"].")
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
var/res = tgui_alert(usr, "Show the title of this song to the players?",, list("Yes","No", "Cancel"))
|
||||
switch(res)
|
||||
if("Yes")
|
||||
to_chat(world, "<span class='boldannounce'>An admin played: [S]</span>", confidential = TRUE)
|
||||
to_chat(world, span_boldannounce("An admin played: [S]"), confidential = TRUE)
|
||||
if("Cancel")
|
||||
return
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
|
||||
var/ytdl = CONFIG_GET(string/invoke_youtubedl)
|
||||
if(!ytdl)
|
||||
to_chat(src, "<span class='boldwarning'>Youtube-dl was not configured, action unavailable</span>", confidential = TRUE) //Check config.txt for the INVOKE_YOUTUBEDL value
|
||||
to_chat(src, span_boldwarning("Youtube-dl was not configured, action unavailable"), confidential = TRUE) //Check config.txt for the INVOKE_YOUTUBEDL value
|
||||
return
|
||||
|
||||
var/web_sound_input = input("Enter content URL (supported sites only, leave blank to stop playing)", "Play Internet Sound via youtube-dl") as text|null
|
||||
@@ -85,8 +85,8 @@
|
||||
|
||||
web_sound_input = trim(web_sound_input)
|
||||
if(findtext(web_sound_input, ":") && !findtext(web_sound_input, GLOB.is_http_protocol))
|
||||
to_chat(src, "<span class='boldwarning'>Non-http(s) URIs are not allowed.</span>", confidential = TRUE)
|
||||
to_chat(src, "<span class='warning'>For youtube-dl shortcuts like ytsearch: please use the appropriate full url from the website.</span>", confidential = TRUE)
|
||||
to_chat(src, span_boldwarning("Non-http(s) URIs are not allowed."), confidential = TRUE)
|
||||
to_chat(src, span_warning("For youtube-dl shortcuts like ytsearch: please use the appropriate full url from the website."), confidential = TRUE)
|
||||
return
|
||||
var/shell_scrubbed_input = shell_url_scrub(web_sound_input)
|
||||
var/list/output = world.shelleo("[ytdl] --geo-bypass --format \"bestaudio\[ext=mp3]/best\[ext=mp4]\[height<=360]/bestaudio\[ext=m4a]/bestaudio\[ext=aac]\" --dump-single-json --no-playlist -- \"[shell_scrubbed_input]\"")
|
||||
@@ -98,8 +98,8 @@
|
||||
try
|
||||
data = json_decode(stdout)
|
||||
catch(var/exception/e)
|
||||
to_chat(src, "<span class='boldwarning'>Youtube-dl JSON parsing FAILED:</span>", confidential = TRUE)
|
||||
to_chat(src, "<span class='warning'>[e]: [stdout]</span>", confidential = TRUE)
|
||||
to_chat(src, span_boldwarning("Youtube-dl JSON parsing FAILED:"), confidential = TRUE)
|
||||
to_chat(src, span_warning("[e]: [stdout]"), confidential = TRUE)
|
||||
return
|
||||
|
||||
if (data["url"])
|
||||
@@ -116,7 +116,7 @@
|
||||
var/res = tgui_alert(usr, "Show the title of and link to this song to the players?\n[title]",, list("No", "Yes", "Cancel"))
|
||||
switch(res)
|
||||
if("Yes")
|
||||
to_chat(world, "<span class='boldannounce'>An admin played: [webpage_url]</span>", confidential = TRUE)
|
||||
to_chat(world, span_boldannounce("An admin played: [webpage_url]"), confidential = TRUE)
|
||||
if("Cancel")
|
||||
return
|
||||
|
||||
@@ -124,8 +124,8 @@
|
||||
log_admin("[key_name(src)] played web sound: [web_sound_input]")
|
||||
message_admins("[key_name(src)] played web sound: [web_sound_input]")
|
||||
else
|
||||
to_chat(src, "<span class='boldwarning'>Youtube-dl URL retrieval FAILED:</span>", confidential = TRUE)
|
||||
to_chat(src, "<span class='warning'>[stderr]</span>", confidential = TRUE)
|
||||
to_chat(src, span_boldwarning("Youtube-dl URL retrieval FAILED:"), confidential = TRUE)
|
||||
to_chat(src, span_warning("[stderr]"), confidential = TRUE)
|
||||
|
||||
else //pressed ok with blank
|
||||
log_admin("[key_name(src)] stopped web sound")
|
||||
@@ -134,8 +134,8 @@
|
||||
stop_web_sounds = TRUE
|
||||
|
||||
if(web_sound_url && !findtext(web_sound_url, GLOB.is_http_protocol))
|
||||
to_chat(src, "<span class='boldwarning'>BLOCKED: Content URL not using http(s) protocol</span>", confidential = TRUE)
|
||||
to_chat(src, "<span class='warning'>The media provider returned a content URL that isn't using the HTTP or HTTPS protocol</span>", confidential = TRUE)
|
||||
to_chat(src, span_boldwarning("BLOCKED: Content URL not using http(s) protocol"), confidential = TRUE)
|
||||
to_chat(src, 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 || stop_web_sounds)
|
||||
for(var/m in GLOB.player_list)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
set name = "Pray"
|
||||
|
||||
if(GLOB.say_disabled) //This is here to try to identify lag problems
|
||||
to_chat(usr, "<span class='danger'>Speech is currently admin-disabled.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Speech is currently admin-disabled."), confidential = TRUE)
|
||||
return
|
||||
|
||||
msg = copytext_char(sanitize(msg), 1, MAX_MESSAGE_LEN)
|
||||
@@ -12,7 +12,7 @@
|
||||
log_prayer("[src.key]/([src.name]): [msg]")
|
||||
if(usr.client)
|
||||
if(usr.client.prefs.muted & MUTE_PRAY)
|
||||
to_chat(usr, "<span class='danger'>You cannot pray (muted).</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("You cannot pray (muted)."), confidential = TRUE)
|
||||
return
|
||||
if(src.client.handle_spam_prevention(msg,MUTE_PRAY))
|
||||
return
|
||||
@@ -40,7 +40,7 @@
|
||||
prayer_type = "SPIRITUAL PRAYER"
|
||||
|
||||
var/msg_tmp = msg
|
||||
msg = "<span class='adminnotice'>[icon2html(cross, GLOB.admins)]<b><font color=[font_color]>[prayer_type][deity ? " (to [deity])" : ""]: </font>[ADMIN_FULLMONTY(src)] [ADMIN_SC(src)]:</b> <span class='linkify'>[msg]</span></span>"
|
||||
msg = span_adminnotice("[icon2html(cross, GLOB.admins)]<b><font color=[font_color]>[prayer_type][deity ? " (to [deity])" : ""]: </font>[ADMIN_FULLMONTY(src)] [ADMIN_SC(src)]:</b> <span class='linkify'>[msg]</span>")
|
||||
|
||||
for(var/client/C in GLOB.admins)
|
||||
if(C.prefs.chat_toggles & CHAT_PRAYER)
|
||||
@@ -48,7 +48,7 @@
|
||||
if(C.prefs.toggles & SOUND_PRAYERS)
|
||||
if(usr.job == "Chaplain")
|
||||
SEND_SOUND(C, sound('sound/effects/pray.ogg'))
|
||||
to_chat(usr, "<span class='info'>You pray to the gods: \"[msg_tmp]\"</span>", confidential = TRUE)
|
||||
to_chat(usr, span_info("You pray to the gods: \"[msg_tmp]\""), confidential = TRUE)
|
||||
|
||||
SSblackbox.record_feedback("tally", "admin_verb", 1, "Prayer") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
//log_admin("HELP: [key_name(src)]: [msg]")
|
||||
@@ -56,7 +56,7 @@
|
||||
/// Used by communications consoles to message CentCom
|
||||
/proc/message_centcom(text, mob/sender)
|
||||
var/msg = copytext_char(sanitize(text), 1, MAX_MESSAGE_LEN)
|
||||
msg = "<span class='adminnotice'><b><font color=orange>CENTCOM:</font>[ADMIN_FULLMONTY(sender)] [ADMIN_CENTCOM_REPLY(sender)]:</b> [msg]</span>"
|
||||
msg = span_adminnotice("<b><font color=orange>CENTCOM:</font>[ADMIN_FULLMONTY(sender)] [ADMIN_CENTCOM_REPLY(sender)]:</b> [msg]")
|
||||
to_chat(GLOB.admins, msg, confidential = TRUE)
|
||||
for(var/obj/machinery/computer/communications/console in GLOB.machines)
|
||||
console.override_cooldown()
|
||||
@@ -64,7 +64,7 @@
|
||||
/// Used by communications consoles to message the Syndicate
|
||||
/proc/message_syndicate(text, mob/sender)
|
||||
var/msg = copytext_char(sanitize(text), 1, MAX_MESSAGE_LEN)
|
||||
msg = "<span class='adminnotice'><b><font color=crimson>SYNDICATE:</font>[ADMIN_FULLMONTY(sender)] [ADMIN_SYNDICATE_REPLY(sender)]:</b> [msg]</span>"
|
||||
msg = span_adminnotice("<b><font color=crimson>SYNDICATE:</font>[ADMIN_FULLMONTY(sender)] [ADMIN_SYNDICATE_REPLY(sender)]:</b> [msg]")
|
||||
to_chat(GLOB.admins, msg, confidential = TRUE)
|
||||
for(var/obj/machinery/computer/communications/console in GLOB.machines)
|
||||
console.override_cooldown()
|
||||
@@ -72,7 +72,7 @@
|
||||
/// Used by communications consoles to request the nuclear launch codes
|
||||
/proc/nuke_request(text, mob/sender)
|
||||
var/msg = copytext_char(sanitize(text), 1, MAX_MESSAGE_LEN)
|
||||
msg = "<span class='adminnotice'><b><font color=orange>NUKE CODE REQUEST:</font>[ADMIN_FULLMONTY(sender)] [ADMIN_CENTCOM_REPLY(sender)] [ADMIN_SET_SD_CODE]:</b> [msg]</span>"
|
||||
msg = span_adminnotice("<b><font color=orange>NUKE CODE REQUEST:</font>[ADMIN_FULLMONTY(sender)] [ADMIN_CENTCOM_REPLY(sender)] [ADMIN_SET_SD_CODE]:</b> [msg]")
|
||||
to_chat(GLOB.admins, msg, confidential = TRUE)
|
||||
for(var/obj/machinery/computer/communications/console in GLOB.machines)
|
||||
console.override_cooldown()
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
to_chat(M, "<i>You hear a voice in your head... <b>[msg]</i></b>", confidential = TRUE)
|
||||
|
||||
log_admin("SubtlePM: [key_name(usr)] -> [key_name(M)] : [msg]")
|
||||
msg = "<span class='adminnotice'><b> SubtleMessage: [key_name_admin(usr)] -> [key_name_admin(M)] :</b> [msg]</span>"
|
||||
msg = span_adminnotice("<b> SubtleMessage: [key_name_admin(usr)] -> [key_name_admin(M)] :</b> [msg]")
|
||||
message_admins(msg)
|
||||
admin_ticket_log(M, msg)
|
||||
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!
|
||||
@@ -77,7 +77,7 @@
|
||||
|
||||
log_directed_talk(mob, H, input, LOG_ADMIN, "reply")
|
||||
message_admins("[key_name_admin(src)] replied to [key_name_admin(H)]'s [sender] message with: \"[input]\"")
|
||||
to_chat(H, "<span class='hear'>You hear something crackle in your ears for a moment before a voice speaks. \"Please stand by for a message from [sender == "Syndicate" ? "your benefactor" : "Central Command"]. Message as follows[sender == "Syndicate" ? ", agent." : ":"] <b>[input].</b> Message ends.\"</span>", confidential = TRUE)
|
||||
to_chat(H, span_hear("You hear something crackle in your ears for a moment before a voice speaks. \"Please stand by for a message from [sender == "Syndicate" ? "your benefactor" : "Central Command"]. Message as follows[sender == "Syndicate" ? ", agent." : ":"] <b>[input].</b> Message ends.\""), confidential = TRUE)
|
||||
|
||||
SSblackbox.record_feedback("tally", "admin_verb", 1, "Headset Message") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -94,7 +94,7 @@
|
||||
return
|
||||
to_chat(world, "[msg]", confidential = TRUE)
|
||||
log_admin("GlobalNarrate: [key_name(usr)] : [msg]")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] Sent a global narrate</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] Sent a global narrate"))
|
||||
SSblackbox.record_feedback("tally", "admin_verb", 1, "Global Narrate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/cmd_admin_direct_narrate(mob/M)
|
||||
@@ -117,7 +117,7 @@
|
||||
|
||||
to_chat(M, msg, confidential = TRUE)
|
||||
log_admin("DirectNarrate: [key_name(usr)] to ([M.name]/[M.key]): [msg]")
|
||||
msg = "<span class='adminnotice'><b> DirectNarrate: [key_name(usr)] to ([M.name]/[M.key]):</b> [msg]<BR></span>"
|
||||
msg = span_adminnotice("<b> DirectNarrate: [key_name(usr)] to ([M.name]/[M.key]):</b> [msg]<BR>")
|
||||
message_admins(msg)
|
||||
admin_ticket_log(M, msg)
|
||||
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!
|
||||
@@ -140,7 +140,7 @@
|
||||
to_chat(M, msg, confidential = TRUE)
|
||||
|
||||
log_admin("LocalNarrate: [key_name(usr)] at [AREACOORD(A)]: [msg]")
|
||||
message_admins("<span class='adminnotice'><b> LocalNarrate: [key_name_admin(usr)] at [ADMIN_VERBOSEJMP(A)]:</b> [msg]<BR></span>")
|
||||
message_admins(span_adminnotice("<b> LocalNarrate: [key_name_admin(usr)] at [ADMIN_VERBOSEJMP(A)]:</b> [msg]<BR>"))
|
||||
SSblackbox.record_feedback("tally", "admin_verb", 1, "Local Narrate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/cmd_admin_godmode(mob/M in GLOB.mob_list)
|
||||
@@ -150,7 +150,7 @@
|
||||
return
|
||||
|
||||
M.status_flags ^= GODMODE
|
||||
to_chat(usr, "<span class='adminnotice'>Toggled [(M.status_flags & GODMODE) ? "ON" : "OFF"]</span>", confidential = TRUE)
|
||||
to_chat(usr, span_adminnotice("Toggled [(M.status_flags & GODMODE) ? "ON" : "OFF"]"), confidential = TRUE)
|
||||
|
||||
log_admin("[key_name(usr)] has toggled [key_name(M)]'s nodamage to [(M.status_flags & GODMODE) ? "On" : "Off"]")
|
||||
var/msg = "[key_name_admin(usr)] has toggled [ADMIN_LOOKUPFLW(M)]'s nodamage to [(M.status_flags & GODMODE) ? "On" : "Off"]"
|
||||
@@ -252,7 +252,7 @@
|
||||
if(candidates.len)
|
||||
ckey = input("Pick the player you want to respawn as a xeno.", "Suitable Candidates") as null|anything in sortKey(candidates)
|
||||
else
|
||||
to_chat(usr, "<span class='danger'>Error: create_xeno(): no suitable candidates.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("Error: create_xeno(): no suitable candidates."), confidential = TRUE)
|
||||
if(!istext(ckey))
|
||||
return FALSE
|
||||
|
||||
@@ -278,7 +278,7 @@
|
||||
SSjob.SendToLateJoin(new_xeno, FALSE)
|
||||
|
||||
new_xeno.ckey = ckey
|
||||
var/msg = "<span class='notice'>[key_name_admin(usr)] has spawned [ckey] as a filthy xeno [alien_caste].</span>"
|
||||
var/msg = span_notice("[key_name_admin(usr)] has spawned [ckey] as a filthy xeno [alien_caste].")
|
||||
message_admins(msg)
|
||||
admin_ticket_log(new_xeno, msg)
|
||||
return TRUE
|
||||
@@ -340,7 +340,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
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.", confidential = TRUE)
|
||||
var/msg = "<span class='adminnotice'>[key_name_admin(usr)] has respawned [new_xeno.key] as a filthy xeno.</span>"
|
||||
var/msg = span_adminnotice("[key_name_admin(usr)] has respawned [new_xeno.key] as a filthy xeno.")
|
||||
message_admins(msg)
|
||||
admin_ticket_log(new_xeno, msg)
|
||||
return //all done. The ghost is auto-deleted
|
||||
@@ -353,7 +353,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
G_found.mind.transfer_to(new_monkey) //be careful when doing stuff like this! I've already checked the mind isn't in use
|
||||
new_monkey.key = G_found.key
|
||||
to_chat(new_monkey, "You have been fully respawned. Enjoy the game.", confidential = TRUE)
|
||||
var/msg = "<span class='adminnotice'>[key_name_admin(usr)] has respawned [new_monkey.key] as a filthy monkey.</span>"
|
||||
var/msg = span_adminnotice("[key_name_admin(usr)] has respawned [new_monkey.key] as a filthy monkey.")
|
||||
message_admins(msg)
|
||||
admin_ticket_log(new_monkey, msg)
|
||||
return //all done. The ghost is auto-deleted
|
||||
@@ -447,7 +447,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
if(tgui_alert(new_character,"Would you like an active AI to announce this character?",,list("No","Yes"))=="Yes")
|
||||
AnnounceArrival(new_character, new_character.mind.assigned_role)
|
||||
|
||||
var/msg = "<span class='adminnotice'>[admin] has respawned [player_key] as [new_character.real_name].</span>"
|
||||
var/msg = span_adminnotice("[admin] has respawned [player_key] as [new_character.real_name].")
|
||||
message_admins(msg)
|
||||
admin_ticket_log(new_character, msg)
|
||||
|
||||
@@ -494,7 +494,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
M.revive(full_heal = TRUE, admin_revive = TRUE)
|
||||
|
||||
log_admin("[key_name(usr)] healed / revived [key_name(M)]")
|
||||
var/msg = "<span class='danger'>Admin [key_name_admin(usr)] healed / revived [ADMIN_LOOKUPFLW(M)]!</span>"
|
||||
var/msg = span_danger("Admin [key_name_admin(usr)] healed / revived [ADMIN_LOOKUPFLW(M)]!")
|
||||
message_admins(msg)
|
||||
admin_ticket_log(M, msg)
|
||||
SSblackbox.record_feedback("tally", "admin_verb", 1, "Rejuvenate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
@@ -615,7 +615,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
var/confirm = tgui_alert(usr, "You sure?", "Confirm", list("Yes", "No"))
|
||||
if(confirm == "Yes")
|
||||
log_admin("[key_name(usr)] used gibself.")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] used gibself.</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] used gibself."))
|
||||
SSblackbox.record_feedback("tally", "admin_verb", 1, "Gib Self") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
var/mob/living/ourself = mob
|
||||
@@ -667,7 +667,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
SSshuttle.emergency.request()
|
||||
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!
|
||||
log_admin("[key_name(usr)] admin-called the emergency shuttle.")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] admin-called the emergency shuttle[confirm == "Yes (No Recall)" ? " (non-recallable)" : ""].</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] admin-called the emergency shuttle[confirm == "Yes (No Recall)" ? " (non-recallable)" : ""]."))
|
||||
return
|
||||
|
||||
/client/proc/admin_cancel_shuttle()
|
||||
@@ -687,7 +687,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
SSshuttle.emergency.cancel()
|
||||
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!
|
||||
log_admin("[key_name(usr)] admin-recalled the emergency shuttle.")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] admin-recalled the emergency shuttle.</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] admin-recalled the emergency shuttle."))
|
||||
|
||||
return
|
||||
|
||||
@@ -699,13 +699,13 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
return
|
||||
|
||||
if(SSshuttle.emergency.mode == SHUTTLE_DISABLED)
|
||||
to_chat(usr, "<span class='warning'>Error, shuttle is already disabled.</span>")
|
||||
to_chat(usr, span_warning("Error, shuttle is already disabled."))
|
||||
return
|
||||
|
||||
if(tgui_alert(usr, "You sure?", "Confirm", list("Yes", "No")) != "Yes")
|
||||
return
|
||||
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] disabled the shuttle.</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] disabled the shuttle."))
|
||||
|
||||
SSshuttle.lastMode = SSshuttle.emergency.mode
|
||||
SSshuttle.lastCallTime = SSshuttle.emergency.timeLeft(1)
|
||||
@@ -722,13 +722,13 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
return
|
||||
|
||||
if(SSshuttle.emergency.mode != SHUTTLE_DISABLED)
|
||||
to_chat(usr, "<span class='warning'>Error, shuttle not disabled.</span>")
|
||||
to_chat(usr, span_warning("Error, shuttle not disabled."))
|
||||
return
|
||||
|
||||
if(tgui_alert(usr, "You sure?", "Confirm", list("Yes", "No")) != "Yes")
|
||||
return
|
||||
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] enabled the emergency shuttle.</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] enabled the emergency shuttle."))
|
||||
SSshuttle.adminEmergencyNoRecall = FALSE
|
||||
SSshuttle.emergencyNoRecall = FALSE
|
||||
if(SSshuttle.lastMode == SHUTTLE_DISABLED) //If everything goes to shit, fix it.
|
||||
@@ -765,7 +765,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
message_admins("Admin [key_name_admin(usr)] has forced the players to have random appearances.")
|
||||
|
||||
if(notifyplayers == "Yes")
|
||||
to_chat(world, "<span class='adminnotice'>Admin [usr.key] has forced the players to have completely random identities!</span>", confidential = TRUE)
|
||||
to_chat(world, span_adminnotice("Admin [usr.key] has forced the players to have completely random identities!"), confidential = TRUE)
|
||||
|
||||
to_chat(usr, "<i>Remember: you can always disable the randomness by using the verb again, assuming the round hasn't started yet</i>.", confidential = TRUE)
|
||||
|
||||
@@ -945,7 +945,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
if(!M)
|
||||
continue
|
||||
|
||||
M.audible_message("<span class='hear'>...wabbajack...wabbajack...</span>")
|
||||
M.audible_message(span_hear("...wabbajack...wabbajack..."))
|
||||
playsound(M.loc, 'sound/magic/staff_change.ogg', 50, TRUE, -1)
|
||||
|
||||
wabbajack(M)
|
||||
@@ -1098,7 +1098,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
return
|
||||
|
||||
if(!CONFIG_GET(flag/use_exp_tracking))
|
||||
to_chat(usr, "<span class='warning'>Tracking is disabled in the server configuration file.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_warning("Tracking is disabled in the server configuration file."), confidential = TRUE)
|
||||
return
|
||||
|
||||
var/list/msg = list()
|
||||
@@ -1114,10 +1114,10 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
if(!check_rights(R_ADMIN))
|
||||
return
|
||||
if(!client_to_check)
|
||||
to_chat(usr, "<span class='danger'>ERROR: Client not found.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("ERROR: Client not found."), confidential = TRUE)
|
||||
return
|
||||
if(!CONFIG_GET(flag/use_exp_tracking))
|
||||
to_chat(usr, "<span class='warning'>Tracking is disabled in the server configuration file.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_warning("Tracking is disabled in the server configuration file."), confidential = TRUE)
|
||||
return
|
||||
|
||||
new /datum/job_report_menu(client_to_check, usr)
|
||||
@@ -1126,11 +1126,11 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
if(!check_rights(R_ADMIN))
|
||||
return
|
||||
if(!C)
|
||||
to_chat(usr, "<span class='danger'>ERROR: Client not found.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("ERROR: Client not found."), confidential = TRUE)
|
||||
return
|
||||
|
||||
if(!C.set_db_player_flags())
|
||||
to_chat(usr, "<span class='danger'>ERROR: Unable read player flags from database. Please check logs.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("ERROR: Unable read player flags from database. Please check logs."), confidential = TRUE)
|
||||
var/dbflags = C.prefs.db_flags
|
||||
var/newstate = FALSE
|
||||
if(dbflags & DB_FLAG_EXEMPT)
|
||||
@@ -1139,7 +1139,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
newstate = TRUE
|
||||
|
||||
if(C.update_flag_db(DB_FLAG_EXEMPT, newstate))
|
||||
to_chat(usr, "<span class='danger'>ERROR: Unable to update player flags. Please check logs.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("ERROR: Unable to update player flags. Please check logs."), confidential = TRUE)
|
||||
else
|
||||
message_admins("[key_name_admin(usr)] has [newstate ? "activated" : "deactivated"] job exp exempt status on [key_name_admin(C)]")
|
||||
log_admin("[key_name(usr)] has [newstate ? "activated" : "deactivated"] job exp exempt status on [key_name(C)]")
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
set category = "Server"
|
||||
set name = "Reestablish DB Connection"
|
||||
if (!CONFIG_GET(flag/sql_enabled))
|
||||
to_chat(usr, "<span class='adminnotice'>The Database is not enabled!</span>", confidential = TRUE)
|
||||
to_chat(usr, span_adminnotice("The Database is not enabled!"), confidential = TRUE)
|
||||
return
|
||||
|
||||
if (SSdbcore.IsConnected())
|
||||
|
||||
@@ -151,7 +151,7 @@
|
||||
return
|
||||
|
||||
log_admin("[key_name(holder)] reset the thunderdome to default with delete_mobs==[delete_mobs].", 1)
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(holder)] reset the thunderdome to default with delete_mobs==[delete_mobs].</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(holder)] reset the thunderdome to default with delete_mobs==[delete_mobs]."))
|
||||
|
||||
var/area/thunderdome = GLOB.areas_by_type[/area/tdome/arena]
|
||||
if(delete_mobs == "Yes")
|
||||
@@ -169,13 +169,13 @@
|
||||
return
|
||||
set_station_name(new_name)
|
||||
log_admin("[key_name(holder)] renamed the station to \"[new_name]\".")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(holder)] renamed the station to: [new_name].</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(holder)] renamed the station to: [new_name]."))
|
||||
priority_announce("[command_name()] has renamed the station to \"[new_name]\".")
|
||||
if("reset_name")
|
||||
var/new_name = new_station_name()
|
||||
set_station_name(new_name)
|
||||
log_admin("[key_name(holder)] reset the station name.")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(holder)] reset the station name.</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(holder)] reset the station name."))
|
||||
priority_announce("[command_name()] has renamed the station to \"[new_name]\".")
|
||||
if("night_shift_set")
|
||||
var/val = tgui_alert(holder, "What do you want to set night shift to? This will override the automatic system until set to automatic again.", "Night Shift", list("On", "Off", "Automatic"))
|
||||
@@ -206,7 +206,7 @@
|
||||
message_admins("[key_name_admin(holder)] [new_perma ? "stopped" : "started"] the arrivals shuttle")
|
||||
log_admin("[key_name(holder)] [new_perma ? "stopped" : "started"] the arrivals shuttle")
|
||||
else
|
||||
to_chat(holder, "<span class='admin'>There is no arrivals shuttle.</span>", confidential = TRUE)
|
||||
to_chat(holder, span_admin("There is no arrivals shuttle."), confidential = TRUE)
|
||||
if("movelaborshuttle")
|
||||
SSblackbox.record_feedback("nested tally", "admin_secrets_fun_used", 1, list("Send Labor Shuttle"))
|
||||
if(!SSshuttle.toggleShuttle("laborcamp","laborcamp_home","laborcamp_away"))
|
||||
@@ -246,21 +246,21 @@
|
||||
return
|
||||
SSblackbox.record_feedback("nested tally", "admin_secrets_fun_used", 1, list("Power All APCs"))
|
||||
log_admin("[key_name(holder)] made all areas powered", 1)
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(holder)] made all areas powered</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(holder)] made all areas powered"))
|
||||
power_restore()
|
||||
if("unpower")
|
||||
if(!is_funmin)
|
||||
return
|
||||
SSblackbox.record_feedback("nested tally", "admin_secrets_fun_used", 1, list("Depower All APCs"))
|
||||
log_admin("[key_name(holder)] made all areas unpowered", 1)
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(holder)] made all areas unpowered</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(holder)] made all areas unpowered"))
|
||||
power_failure()
|
||||
if("quickpower")
|
||||
if(!is_funmin)
|
||||
return
|
||||
SSblackbox.record_feedback("nested tally", "admin_secrets_fun_used", 1, list("Power All SMESs"))
|
||||
log_admin("[key_name(holder)] made all SMESs powered", 1)
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(holder)] made all SMESs powered</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(holder)] made all SMESs powered"))
|
||||
power_restore_quick()
|
||||
if("anon_name")
|
||||
if(!is_funmin)
|
||||
@@ -384,7 +384,7 @@
|
||||
var/list/prefs = settings["mainsettings"]
|
||||
|
||||
if (prefs["amount"]["value"] < 1 || prefs["portalnum"]["value"] < 1)
|
||||
to_chat(holder, "<span class='warning'>Number of portals and mobs to spawn must be at least 1.</span>", confidential = TRUE)
|
||||
to_chat(holder, span_warning("Number of portals and mobs to spawn must be at least 1."), confidential = TRUE)
|
||||
return
|
||||
|
||||
var/mob/pathToSpawn = prefs["typepath"]["value"]
|
||||
@@ -392,7 +392,7 @@
|
||||
pathToSpawn = text2path(pathToSpawn)
|
||||
|
||||
if (!ispath(pathToSpawn))
|
||||
to_chat(holder, "<span class='notice'>Invalid path [pathToSpawn].</span>", confidential = TRUE)
|
||||
to_chat(holder, span_notice("Invalid path [pathToSpawn]."), confidential = TRUE)
|
||||
return
|
||||
|
||||
var/list/candidates = list()
|
||||
@@ -434,7 +434,7 @@
|
||||
if (!CONFIG_SET(number/bombcap, newBombCap))
|
||||
return
|
||||
|
||||
message_admins("<span class='boldannounce'>[key_name_admin(holder)] changed the bomb cap to [GLOB.MAX_EX_DEVESTATION_RANGE], [GLOB.MAX_EX_HEAVY_RANGE], [GLOB.MAX_EX_LIGHT_RANGE]</span>")
|
||||
message_admins(span_boldannounce("[key_name_admin(holder)] changed the bomb cap to [GLOB.MAX_EX_DEVESTATION_RANGE], [GLOB.MAX_EX_HEAVY_RANGE], [GLOB.MAX_EX_LIGHT_RANGE]"))
|
||||
log_admin("[key_name(holder)] changed the bomb cap to [GLOB.MAX_EX_DEVESTATION_RANGE], [GLOB.MAX_EX_HEAVY_RANGE], [GLOB.MAX_EX_LIGHT_RANGE]")
|
||||
//buttons that are fun for exactly you and nobody else.
|
||||
if("monkey")
|
||||
@@ -470,14 +470,14 @@
|
||||
new_objective.explanation_text = objective
|
||||
traitor_datum.objectives += new_objective
|
||||
player.mind.add_antag_datum(traitor_datum)
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(holder)] used everyone is a traitor secret. Objective is [objective]</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(holder)] used everyone is a traitor secret. Objective is [objective]"))
|
||||
log_admin("[key_name(holder)] used everyone is a traitor secret. Objective is [objective]")
|
||||
if("massbraindamage")
|
||||
if(!is_funmin)
|
||||
return
|
||||
SSblackbox.record_feedback("nested tally", "admin_secrets_fun_used", 1, list("Mass Braindamage"))
|
||||
for(var/mob/living/carbon/human/H in GLOB.player_list)
|
||||
to_chat(H, "<span class='boldannounce'>You suddenly feel stupid.</span>", confidential = TRUE)
|
||||
to_chat(H, span_boldannounce("You suddenly feel stupid."), confidential = TRUE)
|
||||
H.adjustOrganLoss(ORGAN_SLOT_BRAIN, 60, 80)
|
||||
message_admins("[key_name_admin(holder)] made everybody brain damaged")
|
||||
if("floorlava")
|
||||
@@ -521,7 +521,7 @@
|
||||
if(droptype == "Yes")
|
||||
ADD_TRAIT(I, TRAIT_NODROP, ADMIN_TRAIT)
|
||||
else
|
||||
to_chat(H, "<span class='warning'>You're not kawaii enough for this!</span>", confidential = TRUE)
|
||||
to_chat(H, span_warning("You're not kawaii enough for this!"), confidential = TRUE)
|
||||
if("masspurrbation")
|
||||
if(!is_funmin)
|
||||
return
|
||||
|
||||
@@ -221,6 +221,6 @@
|
||||
human_target.regenerate_icons()
|
||||
|
||||
log_admin("[key_name(usr)] changed the equipment of [key_name(human_target)] to [dresscode].")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] changed the equipment of [ADMIN_LOOKUPFLW(human_target)] to [dresscode].</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] changed the equipment of [ADMIN_LOOKUPFLW(human_target)] to [dresscode]."))
|
||||
|
||||
return dresscode
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
. = TRUE
|
||||
if("mass_apply")
|
||||
if(!check_rights_for(usr.client, R_FUN))
|
||||
to_chat(usr, "<span class='userdanger'>Stay in your lane, jannie.</span>")
|
||||
to_chat(usr, span_userdanger("Stay in your lane, jannie."))
|
||||
return
|
||||
var/target_path = text2path(params["path"])
|
||||
if(!target_path)
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
if (!C)
|
||||
return
|
||||
if(!target)
|
||||
to_chat(usr, "<span class='warning'>The object you tried to expose to [C] no longer exists (nulled or hard-deled)</span>", confidential = TRUE)
|
||||
to_chat(usr, span_warning("The object you tried to expose to [C] no longer exists (nulled or hard-deled)"), confidential = TRUE)
|
||||
return
|
||||
message_admins("[key_name_admin(usr)] Showed [key_name_admin(C)] a <a href='?_src_=vars;datumrefresh=[REF(target)]'>VV window</a>")
|
||||
log_admin("Admin [key_name(usr)] Showed [key_name(C)] a VV window of a [target]")
|
||||
@@ -77,7 +77,7 @@
|
||||
datumname = "element"
|
||||
target._AddElement(lst)
|
||||
log_admin("[key_name(usr)] has added [result] [datumname] to [key_name(target)].")
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] has added [result] [datumname] to [key_name_admin(target)].</span>")
|
||||
message_admins(span_notice("[key_name_admin(usr)] has added [result] [datumname] to [key_name_admin(target)]."))
|
||||
if(href_list[VV_HK_MODIFY_GREYSCALE])
|
||||
if(!check_rights(NONE))
|
||||
return
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
var/static/cookieoffset = rand(1, 9999) //to force cookies to reset after the round.
|
||||
|
||||
if(!usr.client || !usr.client.holder) //This is usr because admins can call the proc on other clients, even if they're not admins, to show them VVs.
|
||||
to_chat(usr, "<span class='danger'>You need to be an administrator to access this.</span>", confidential = TRUE)
|
||||
to_chat(usr, span_danger("You need to be an administrator to access this."), confidential = TRUE)
|
||||
return
|
||||
|
||||
if(!D)
|
||||
|
||||
Reference in New Issue
Block a user