mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
[MIRROR] refactors most spans (#9139)
Co-authored-by: Heroman3003 <31296024+Heroman3003@users.noreply.github.com> Co-authored-by: Kashargul <KashL@t-online.de>
This commit is contained in:
@@ -85,7 +85,7 @@
|
||||
|
||||
var/datum/db_query/query_insert = SSdbcore.NewQuery(sql,sqlargs) //CHOMPEdit TGSQL
|
||||
query_insert.Execute()
|
||||
to_chat(usr, "<span class='filter_adminlog'>[span_blue("Ban saved to database.")]</span>")
|
||||
to_chat(usr, span_filter_adminlog("[span_blue("Ban saved to database.")]"))
|
||||
message_admins("[key_name_admin(usr)] has added a [bantype_str] for [ckey] [(job)?"([job])":""] [(duration > 0)?"([duration] minutes)":""] with the reason: \"[reason]\" to the ban database.",1)
|
||||
qdel(query_insert) //CHOMPEdit TGSQL
|
||||
|
||||
@@ -139,17 +139,17 @@
|
||||
ban_number++;
|
||||
qdel(query) //CHOMPEdit TGSQL
|
||||
if(ban_number == 0)
|
||||
to_chat(usr, "<span class='filter_adminlog'>[span_red("Database update failed due to no bans fitting the search criteria. If this is not a legacy ban you should contact the database admin.")]</span>")
|
||||
to_chat(usr, span_filter_adminlog("[span_red("Database update failed due to no bans fitting the search criteria. If this is not a legacy ban you should contact the database admin.")]"))
|
||||
return
|
||||
|
||||
if(ban_number > 1)
|
||||
to_chat(usr, "<span class='filter_adminlog'>[span_red("Database update failed due to multiple bans fitting the search criteria. Note down the ckey, job and current time and contact the database admin.")]</span>")
|
||||
to_chat(usr, span_filter_adminlog("[span_red("Database update failed due to multiple bans fitting the search criteria. Note down the ckey, job and current time and contact the database admin.")]"))
|
||||
return
|
||||
|
||||
if(istext(ban_id))
|
||||
ban_id = text2num(ban_id)
|
||||
if(!isnum(ban_id))
|
||||
to_chat(usr, "<span class='filter_adminlog'>[span_red("Database update failed due to a ban ID mismatch. Contact the database admin.")]</span>")
|
||||
to_chat(usr, span_filter_adminlog("[span_red("Database update failed due to a ban ID mismatch. Contact the database admin.")]"))
|
||||
return
|
||||
|
||||
DB_ban_unban_by_id(ban_id)
|
||||
@@ -175,7 +175,7 @@
|
||||
duration = query.item[2]
|
||||
reason = query.item[3]
|
||||
else
|
||||
to_chat(usr, "<span class='filter_adminlog'>Invalid ban id. Contact the database admin</span>")
|
||||
to_chat(usr, span_filter_adminlog("Invalid ban id. Contact the database admin"))
|
||||
return
|
||||
qdel(query) //CHOMPEdit TGSQL
|
||||
reason = sql_sanitize_text(reason)
|
||||
@@ -209,7 +209,7 @@
|
||||
if(tgui_alert(usr, "Unban [pckey]?", "Unban?", list("Yes", "No")) == "Yes")
|
||||
DB_ban_unban_by_id(banid)
|
||||
return
|
||||
to_chat(usr, "<span class='filter_adminlog'>Cancelled</span>")
|
||||
to_chat(usr, span_filter_adminlog("Cancelled"))
|
||||
return
|
||||
|
||||
/datum/admins/proc/DB_ban_unban_by_id(var/id)
|
||||
@@ -232,11 +232,11 @@
|
||||
ban_number++;
|
||||
qdel(query) //CHOMPEdit TGSQL
|
||||
if(ban_number == 0)
|
||||
to_chat(usr, "<span class='filter_adminlog'>[span_red("Database update failed due to a ban id not being present in the database.")]</span>")
|
||||
to_chat(usr, span_filter_adminlog("[span_red("Database update failed due to a ban id not being present in the database.")]"))
|
||||
return
|
||||
|
||||
if(ban_number > 1)
|
||||
to_chat(usr, "<span class='filter_adminlog'>[span_red("Database update failed due to multiple bans having the same ID. Contact the database admin.")]</span>")
|
||||
to_chat(usr, span_filter_adminlog("[span_red("Database update failed due to multiple bans having the same ID. Contact the database admin.")]"))
|
||||
return
|
||||
|
||||
if(!src.owner || !istype(src.owner, /client))
|
||||
@@ -272,7 +272,7 @@
|
||||
|
||||
establish_db_connection()
|
||||
if(!SSdbcore.IsConnected()) //CHOMPEdit TGSQL
|
||||
to_chat(usr, "<span class='filter_adminlog'>[span_red("Failed to establish database connection")]</span>")
|
||||
to_chat(usr, span_filter_adminlog("[span_red("Failed to establish database connection")]"))
|
||||
return
|
||||
|
||||
var/output = "<div align='center'><table width='90%'><tr>"
|
||||
|
||||
@@ -106,7 +106,7 @@ var/savefile/Banlist
|
||||
|
||||
Banlist.cd = "/base"
|
||||
if ( Banlist.dir.Find("[ckey][computerid]") )
|
||||
to_chat(usr, "<span class='filter_adminlog warning'>Ban already exists.</span>")
|
||||
to_chat(usr, span_filter_adminlog(span_warning("Ban already exists.")))
|
||||
return 0
|
||||
else
|
||||
Banlist.dir.Add("[ckey][computerid]")
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
F["last_update"] << world.realtime
|
||||
log_misc("ToR data updated!")
|
||||
if(usr)
|
||||
to_chat(usr, "<span class='filter_adminlog'>ToRban updated.</span>")
|
||||
to_chat(usr, span_filter_adminlog("ToRban updated."))
|
||||
return
|
||||
log_misc("ToR data update aborted: no data.")
|
||||
return
|
||||
@@ -73,16 +73,16 @@
|
||||
var/choice = tgui_input_list(src,"Please select an IP address to remove from the ToR banlist:","Remove ToR ban", F.dir)
|
||||
if(choice)
|
||||
F.dir.Remove(choice)
|
||||
to_chat(src, "<span class='filter_adminlog'><b>Address removed</b></span>")
|
||||
to_chat(src, span_filter_adminlog("<b>Address removed</b>"))
|
||||
if("remove all")
|
||||
to_chat(src, "<span class='filter_adminlog'><b>[TORFILE] was [fdel(TORFILE)?"":"not "]removed.</b></span>")
|
||||
to_chat(src, span_filter_adminlog("<b>[TORFILE] was [fdel(TORFILE)?"":"not "]removed.</b>"))
|
||||
if("find")
|
||||
var/input = tgui_input_text(src,"Please input an IP address to search for:","Find ToR ban",null)
|
||||
if(input)
|
||||
if(ToRban_isbanned(input))
|
||||
to_chat(src, "<span class='filter_adminlog'>[span_orange("<b>Address is a known ToR address</b>")]</span>")
|
||||
to_chat(src, span_filter_adminlog("[span_orange("<b>Address is a known ToR address</b>")]"))
|
||||
else
|
||||
to_chat(src, "<span class='filter_adminlog danger'>Address is not a known ToR address</span>")
|
||||
to_chat(src, span_filter_adminlog(span_danger("Address is not a known ToR address")))
|
||||
return
|
||||
|
||||
#undef TORFILE
|
||||
|
||||
@@ -603,7 +603,7 @@ var/global/floorIsLava = 0
|
||||
if(!confirm || confirm == "Cancel")
|
||||
return
|
||||
if(confirm == "Yes")
|
||||
to_world("<span class='danger'>Restarting world!</span> <span class='notice'>Initiated by [usr.client.holder.fakekey ? "Admin" : usr.key]!</span>")
|
||||
to_world(span_danger("Restarting world!" ) + span_notice("Initiated by [usr.client.holder.fakekey ? "Admin" : usr.key]!"))
|
||||
log_admin("[key_name(usr)] initiated a reboot.")
|
||||
|
||||
feedback_set_details("end_error","admin reboot - by [usr.key] [usr.client.holder.fakekey ? "(stealth)" : ""]")
|
||||
@@ -702,12 +702,12 @@ var/datum/announcement/minor/admin_min_announcer = new
|
||||
//Time to find how they screwed up.
|
||||
//Wasn't the right length
|
||||
if((decomposed.len) % 3) //+1 to accomidate the lack of a wait time for the last message
|
||||
to_chat(usr, "<span class='warning'>You passed [decomposed.len] segments (senders+messages+pauses). You must pass a multiple of 3, minus 1 (no pause after the last message). That means a sender and message on every other line (starting on the first), separated by a pipe character (|), and a number every other line that is a pause in seconds.</span>")
|
||||
to_chat(usr, span_warning("You passed [decomposed.len] segments (senders+messages+pauses). You must pass a multiple of 3, minus 1 (no pause after the last message). That means a sender and message on every other line (starting on the first), separated by a pipe character (|), and a number every other line that is a pause in seconds."))
|
||||
return
|
||||
|
||||
//Too long a conversation
|
||||
if((decomposed.len / 3) > 20)
|
||||
to_chat(usr, "<span class='warning'>This conversation is too long! 20 messages maximum, please.</span>")
|
||||
to_chat(usr, span_warning("This conversation is too long! 20 messages maximum, please."))
|
||||
return
|
||||
|
||||
//Missed some sleeps, or sanitized to nothing.
|
||||
@@ -716,24 +716,24 @@ var/datum/announcement/minor/admin_min_announcer = new
|
||||
//Sanitize sender
|
||||
var/clean_sender = sanitize(decomposed[i])
|
||||
if(!clean_sender)
|
||||
to_chat(usr, "<span class='warning'>One part of your conversation was not able to be sanitized. It was the sender of the [(i+2)/3]\th message.</span>")
|
||||
to_chat(usr, span_warning("One part of your conversation was not able to be sanitized. It was the sender of the [(i+2)/3]\th message."))
|
||||
return
|
||||
decomposed[i] = clean_sender
|
||||
|
||||
//Sanitize message
|
||||
var/clean_message = sanitize(decomposed[++i])
|
||||
if(!clean_message)
|
||||
to_chat(usr, "<span class='warning'>One part of your conversation was not able to be sanitized. It was the body of the [(i+2)/3]\th message.</span>")
|
||||
to_chat(usr, span_warning("One part of your conversation was not able to be sanitized. It was the body of the [(i+2)/3]\th message."))
|
||||
return
|
||||
decomposed[i] = clean_message
|
||||
|
||||
//Sanitize wait time
|
||||
var/clean_time = text2num(decomposed[++i])
|
||||
if(!isnum(clean_time))
|
||||
to_chat(usr, "<span class='warning'>One part of your conversation was not able to be sanitized. It was the wait time after the [(i+2)/3]\th message.</span>")
|
||||
to_chat(usr, span_warning("One part of your conversation was not able to be sanitized. It was the wait time after the [(i+2)/3]\th message."))
|
||||
return
|
||||
if(clean_time > 60)
|
||||
to_chat(usr, "<span class='warning'>Max 60 second wait time between messages for sanity's sake please.</span>")
|
||||
to_chat(usr, span_warning("Max 60 second wait time between messages for sanity's sake please."))
|
||||
return
|
||||
decomposed[i] = clean_time
|
||||
|
||||
@@ -842,7 +842,7 @@ var/datum/announcement/minor/admin_min_announcer = new
|
||||
if(!check_rights(R_SERVER|R_EVENT))
|
||||
return
|
||||
if(SSticker.current_state > GAME_STATE_PREGAME)
|
||||
to_chat(usr, "<span class='warning'>Error: Start Now: Game has already started.</span>")
|
||||
to_chat(usr, span_warning("Error: Start Now: Game has already started."))
|
||||
return
|
||||
if(!SSticker.start_immediately)
|
||||
SSticker.start_immediately = TRUE
|
||||
@@ -850,11 +850,11 @@ var/datum/announcement/minor/admin_min_announcer = new
|
||||
if(SSticker.current_state == GAME_STATE_INIT)
|
||||
msg = " (The server is still setting up, but the round will be started as soon as possible.)"
|
||||
log_admin("[key_name(usr)] has started the game.[msg]")
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] has started the game.[msg]</span>")
|
||||
message_admins(span_notice("[key_name_admin(usr)] has started the game.[msg]"))
|
||||
feedback_add_details("admin_verb","SN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
else
|
||||
SSticker.start_immediately = FALSE
|
||||
to_world("<span class='notice'>Immediate game start canceled. Normal startup resumed.</span>")
|
||||
to_world(span_notice("Immediate game start canceled. Normal startup resumed."))
|
||||
log_and_message_admins("cancelled immediate game start.")
|
||||
|
||||
/datum/admins/proc/toggleenter()
|
||||
@@ -1396,7 +1396,7 @@ var/datum/announcement/minor/admin_min_announcer = new
|
||||
if(body)
|
||||
if(body.teleop)
|
||||
body.teleop = tomob
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] has put [frommob.ckey] in control of [tomob.name].</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] has put [frommob.ckey] in control of [tomob.name]."))
|
||||
log_admin("[key_name(usr)] stuffed [frommob.ckey] into [tomob.name].")
|
||||
feedback_add_details("admin_verb","CGD")
|
||||
tomob.ckey = frommob.ckey
|
||||
@@ -1564,17 +1564,17 @@ var/datum/announcement/minor/admin_min_announcer = new
|
||||
|
||||
|
||||
if(destination.receivefax(P))
|
||||
to_chat(src.owner, "<span class='notice'>Message reply to transmitted successfully.</span>")
|
||||
to_chat(src.owner, span_notice("Message reply to transmitted successfully."))
|
||||
if(P.sender) // sent as a reply
|
||||
log_admin("[key_name(src.owner)] replied to a fax message from [key_name(P.sender)]")
|
||||
for(var/client/C in GLOB.admins)
|
||||
if((R_ADMIN | R_MOD | R_EVENT) & C.holder.rights)
|
||||
to_chat(C, "<span class='log_message'><span class='prefix'>FAX LOG:</span>[key_name_admin(src.owner)] replied to a fax message from [key_name_admin(P.sender)] (<a href='?_src_=holder;[HrefToken()];AdminFaxView=\ref[rcvdcopy]'>VIEW</a>)</span>")
|
||||
to_chat(C, span_log_message("[span_prefix("FAX LOG:")][key_name_admin(src.owner)] replied to a fax message from [key_name_admin(P.sender)] (<a href='?_src_=holder;[HrefToken()];AdminFaxView=\ref[rcvdcopy]'>VIEW</a>)"))
|
||||
else
|
||||
log_admin("[key_name(src.owner)] has sent a fax message to [destination.department]")
|
||||
for(var/client/C in GLOB.admins)
|
||||
if((R_ADMIN | R_MOD | R_EVENT) & C.holder.rights)
|
||||
to_chat(C, "<span class='log_message'><span class='prefix'>FAX LOG:</span>[key_name_admin(src.owner)] has sent a fax message to [destination.department] (<a href='?_src_=holder;[HrefToken()];AdminFaxView=\ref[rcvdcopy]'>VIEW</a>)</span>")
|
||||
to_chat(C, span_log_message("[span_prefix("FAX LOG:")][key_name_admin(src.owner)] has sent a fax message to [destination.department] (<a href='?_src_=holder;[HrefToken()];AdminFaxView=\ref[rcvdcopy]'>VIEW</a>)"))
|
||||
|
||||
var/plaintext_title = P.sender ? "replied to [key_name(P.sender)]'s fax" : "sent a fax message to [destination.department]"
|
||||
var/fax_text = paper_html_to_plaintext(P.info)
|
||||
@@ -1590,7 +1590,7 @@ var/datum/announcement/minor/admin_min_announcer = new
|
||||
)
|
||||
|
||||
else
|
||||
to_chat(src.owner, "<span class='warning'>Message reply failed.</span>")
|
||||
to_chat(src.owner, span_warning("Message reply failed."))
|
||||
|
||||
spawn(100)
|
||||
qdel(P)
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
if(!message) return
|
||||
var/F = investigate_subject2file(subject)
|
||||
if(!F) return
|
||||
to_file(F, "<span class='filter_adminlog'><small>[time2text(world.timeofday,"hh:mm")] \ref[src] ([x],[y],[z])</small> || [src] [message]<br></span>")
|
||||
to_file(F, span_filter_adminlog("<small>[time2text(world.timeofday,"hh:mm")] \ref[src] ([x],[y],[z])</small> || [src] [message]<br>"))
|
||||
|
||||
//ADMINVERBS
|
||||
/client/proc/investigate_show( subject in list("hrefs","notes","singulo","telesci") )
|
||||
@@ -34,7 +34,7 @@
|
||||
if("singulo", "telesci") //general one-round-only stuff
|
||||
var/F = investigate_subject2file(subject)
|
||||
if(!F)
|
||||
to_chat(src, "<span class='filter_adminlog warning'>Error: admin_investigate: [INVESTIGATE_DIR][subject] is an invalid path or cannot be accessed.</span>")
|
||||
to_chat(src, span_filter_adminlog(span_warning("Error: admin_investigate: [INVESTIGATE_DIR][subject] is an invalid path or cannot be accessed.")))
|
||||
return
|
||||
src << browse(F,"window=investigate[subject];size=800x300")
|
||||
|
||||
@@ -43,10 +43,10 @@
|
||||
if(href_logfile)
|
||||
src << browse(href_logfile,"window=investigate[subject];size=800x300")
|
||||
else
|
||||
to_chat(src, "<span class='filter_adminlog warning'>Error: admin_investigate: No href logfile found.</span>")
|
||||
to_chat(src, span_filter_adminlog(span_warning("Error: admin_investigate: No href logfile found.")))
|
||||
return
|
||||
else
|
||||
to_chat(src, "<span class='filter_adminlog warning'>Error: admin_investigate: Href Logging is not on.</span>")
|
||||
to_chat(src, span_filter_adminlog(span_warning("Error: admin_investigate: Href Logging is not on.")))
|
||||
return
|
||||
|
||||
#undef INVESTIGATE_DIR
|
||||
|
||||
@@ -24,11 +24,11 @@
|
||||
return
|
||||
if("")
|
||||
F.dir.Remove(ckey)
|
||||
to_chat(src, "<span class='filter_adminlog'><b>Memo removed</b></span>")
|
||||
to_chat(src, span_filter_adminlog("<b>Memo removed</b>"))
|
||||
return
|
||||
if( findtext(memo,"<script",1,0) )
|
||||
return
|
||||
to_chat(F[ckey], "<span class='filter_adminlog'>[key] on [time2text(world.realtime,"(DDD) DD MMM hh:mm")]<br>[memo]</span>")
|
||||
to_chat(F[ckey], span_filter_adminlog("[key] on [time2text(world.realtime,"(DDD) DD MMM hh:mm")]<br>[memo]"))
|
||||
message_admins("[key] set an admin memo:<br>[memo]")
|
||||
|
||||
//show all memos
|
||||
@@ -39,7 +39,7 @@
|
||||
var/savefile/F = new(MEMOFILE)
|
||||
if(F)
|
||||
for(var/ckey in F.dir)
|
||||
to_chat(src, "<span class='filter_adminlog'><center><span class='motd'><b>Admin Memo</b><i> by [F[ckey]]</i></span></center></span>")
|
||||
to_chat(src, span_filter_adminlog("<center><span class='motd'><b>Admin Memo</b><i> by [F[ckey]]</i></span></center>"))
|
||||
|
||||
//delete your own or somebody else's memo
|
||||
/client/proc/admin_memo_delete()
|
||||
@@ -52,7 +52,7 @@
|
||||
ckey = src.ckey
|
||||
if(ckey)
|
||||
F.dir.Remove(ckey)
|
||||
to_chat(src, "<span class='filter_adminlog'><b>Removed Memo created by [ckey].</b></span>")
|
||||
to_chat(src, span_filter_adminlog("<b>Removed Memo created by [ckey].</b>"))
|
||||
|
||||
#undef MEMOFILE
|
||||
#undef ENABLE_MEMOS
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
remove_verb(src, list(/client/proc/hide_most_verbs,admin_verbs_hideable)) //CHOMPEdit TGPanel
|
||||
add_verb(src,/client/proc/show_verbs) //CHOMPEdit TGPanel
|
||||
|
||||
to_chat(src, "<span class='filter_system interface'>Most of your adminverbs have been hidden.</span>")
|
||||
to_chat(src, span_filter_system(span_interface("Most of your adminverbs have been hidden.")))
|
||||
feedback_add_details("admin_verb","HMV") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
return
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
remove_admin_verbs()
|
||||
add_verb(src, /client/proc/show_verbs) //CHOMPEdit
|
||||
|
||||
to_chat(src, "<span class='filter_system interface'>Almost all of your adminverbs have been hidden.</span>")
|
||||
to_chat(src, span_filter_system(span_interface("Almost all of your adminverbs have been hidden.")))
|
||||
feedback_add_details("admin_verb","TAVVH") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
return
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
remove_verb(src, /client/proc/show_verbs) //CHOMPEdit
|
||||
add_admin_verbs()
|
||||
|
||||
to_chat(src, "<span class='filter_adminlog interface'>All of your adminverbs are now visible.</span>")
|
||||
to_chat(src, span_filter_adminlog(span_interface("All of your adminverbs are now visible.")))
|
||||
feedback_add_details("admin_verb","TAVVS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
|
||||
@@ -54,13 +54,13 @@
|
||||
else
|
||||
ghost.reenter_corpse()
|
||||
else
|
||||
to_chat(ghost, "<span class='filter_system warning'>Error: Aghost: Can't reenter corpse.</span>")
|
||||
to_chat(ghost, span_filter_system(span_warning("Error: Aghost: Can't reenter corpse.")))
|
||||
return
|
||||
|
||||
feedback_add_details("admin_verb","P") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
else if(istype(mob,/mob/new_player))
|
||||
to_chat(src, "<span class='filter_system warning'>Error: Aghost: Can't admin-ghost whilst in the lobby. Join or Observe first.</span>")
|
||||
to_chat(src, span_filter_system(span_warning("Error: Aghost: Can't admin-ghost whilst in the lobby. Join or Observe first.")))
|
||||
else
|
||||
//ghostize
|
||||
var/mob/body = mob
|
||||
@@ -90,11 +90,11 @@
|
||||
if(holder && mob)
|
||||
if(mob.invisibility == INVISIBILITY_OBSERVER)
|
||||
mob.invisibility = initial(mob.invisibility)
|
||||
to_chat(mob, "<span class='filter_system danger'>Invisimin off. Invisibility reset.</span>")
|
||||
to_chat(mob, span_filter_system(span_danger("Invisimin off. Invisibility reset.")))
|
||||
mob.alpha = max(mob.alpha + 100, 255)
|
||||
else
|
||||
mob.invisibility = INVISIBILITY_OBSERVER
|
||||
to_chat(mob, "<span class='filter_system notice'><b>Invisimin on. You are now as invisible as a ghost.</b></span>")
|
||||
to_chat(mob, span_filter_system(span_notice("<b>Invisimin on. You are now as invisible as a ghost.</b>")))
|
||||
mob.alpha = max(mob.alpha - 100, 0)
|
||||
|
||||
|
||||
@@ -223,7 +223,7 @@
|
||||
|
||||
if(!warned_ckey || !istext(warned_ckey)) return
|
||||
if(warned_ckey in admin_datums)
|
||||
to_chat(usr, "<span class='warning'>Error: warn(): You can't warn admins.</span>")
|
||||
to_chat(usr, span_warning("Error: warn(): You can't warn admins."))
|
||||
return
|
||||
|
||||
var/datum/preferences/D
|
||||
@@ -232,14 +232,14 @@
|
||||
else D = preferences_datums[warned_ckey]
|
||||
|
||||
if(!D)
|
||||
to_chat(src, "<span class='warning'>Error: warn(): No such ckey found.</span>")
|
||||
to_chat(src, span_warning("Error: warn(): No such ckey found."))
|
||||
return
|
||||
|
||||
if(++D.warns >= MAX_WARNS) //uh ohhhh...you'reee iiiiin trouuuubble O:)
|
||||
ban_unban_log_save("[ckey] warned [warned_ckey], resulting in a [AUTOBANTIME] minute autoban.")
|
||||
if(C)
|
||||
message_admins("[key_name_admin(src)] has warned [key_name_admin(C)] resulting in a [AUTOBANTIME] minute ban.")
|
||||
to_chat(C, "<span class='filter_system danger'><BIG>You have been autobanned due to a warning by [ckey].</BIG><br>This is a temporary ban, it will be removed in [AUTOBANTIME] minutes.</span>")
|
||||
to_chat(C, span_filter_system(span_danger("<BIG>You have been autobanned due to a warning by [ckey].</BIG><br>This is a temporary ban, it will be removed in [AUTOBANTIME] minutes.")))
|
||||
del(C)
|
||||
else
|
||||
message_admins("[key_name_admin(src)] has warned [warned_ckey] resulting in a [AUTOBANTIME] minute ban.")
|
||||
@@ -247,7 +247,7 @@
|
||||
feedback_inc("ban_warn",1)
|
||||
else
|
||||
if(C)
|
||||
to_chat(C, "<span class='filter_system danger'><BIG>You have been formally warned by an administrator.</BIG><br>Further warnings will result in an autoban.</span>")
|
||||
to_chat(C, span_filter_system(span_danger("<BIG>You have been formally warned by an administrator.</BIG><br>Further warnings will result in an autoban.")))
|
||||
message_admins("[key_name_admin(src)] has warned [key_name_admin(C)]. They have [MAX_WARNS-D.warns] strikes remaining.")
|
||||
else
|
||||
message_admins("[key_name_admin(src)] has warned [warned_ckey] (DC). They have [MAX_WARNS-D.warns] strikes remaining.")
|
||||
@@ -323,7 +323,7 @@
|
||||
set popup_menu = FALSE //VOREStation Edit - Declutter.
|
||||
|
||||
if(!L)
|
||||
to_chat(usr, "<span class='warning'>Looks like you didn't select a mob.</span>")
|
||||
to_chat(usr, span_warning("Looks like you didn't select a mob."))
|
||||
return
|
||||
|
||||
var/list/possible_modifiers = subtypesof(/datum/modifier)
|
||||
@@ -369,7 +369,7 @@
|
||||
if(!msg)
|
||||
return
|
||||
for (var/mob/V in hearers(mob.control_object))
|
||||
V.show_message("<span class='filter_say'><b>[mob.control_object.name]</b> says: \"[msg]\"</span>", 2)
|
||||
V.show_message(span_filter_say("<b>[mob.control_object.name]</b> says: \"[msg]\""), 2)
|
||||
feedback_add_details("admin_verb","OT") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/kill_air() // -- TLE
|
||||
@@ -377,7 +377,7 @@
|
||||
set name = "Kill Air"
|
||||
set desc = "Toggle Air Processing"
|
||||
SSair.can_fire = !SSair.can_fire
|
||||
to_chat(usr, "<span class='filter_system'><b>[SSair.can_fire ? "En" : "Dis"]abled air processing.</b></span>")
|
||||
to_chat(usr, span_filter_system("<b>[SSair.can_fire ? "En" : "Dis"]abled air processing.</b>"))
|
||||
feedback_add_details("admin_verb","KA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
log_admin("[key_name(usr)] used 'kill air'.")
|
||||
message_admins(span_blue("[key_name_admin(usr)] used 'kill air'."), 1)
|
||||
@@ -390,7 +390,7 @@
|
||||
deadmin_holder.reassociate()
|
||||
log_admin("[src] re-admined themself.")
|
||||
message_admins("[src] re-admined themself.", 1)
|
||||
to_chat(src, "<span class='filter_system interface'>You now have the keys to control the planet, or at least a small space station</span>")
|
||||
to_chat(src, span_filter_system(span_interface("You now have the keys to control the planet, or at least a small space station")))
|
||||
remove_verb(src,/client/proc/readmin_self) //CHOMPEdit TGPanel
|
||||
|
||||
/client/proc/deadmin_self()
|
||||
@@ -402,7 +402,7 @@
|
||||
log_admin("[src] deadmined themself.")
|
||||
message_admins("[src] deadmined themself.", 1)
|
||||
deadmin()
|
||||
to_chat(src, "<span class='filter_system interface'>You are now a normal player.</span>")
|
||||
to_chat(src, span_filter_system(span_interface("You are now a normal player.")))
|
||||
add_verb(src,/client/proc/readmin_self) //CHOMPEdit TGPanel
|
||||
feedback_add_details("admin_verb","DAS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -532,8 +532,8 @@
|
||||
|
||||
if(tgui_alert(usr, "Are you sure you want to tell them to man up?","Confirmation",list("Deal with it","No")) != "Deal with it") return
|
||||
|
||||
to_chat(T, "<span class='filter_system notice'><b><font size=3>Man up and deal with it.</font></b></span>")
|
||||
to_chat(T, "<span class='filter_system notice'>Move along.</span>")
|
||||
to_chat(T, span_filter_system(span_notice("<b><font size=3>Man up and deal with it.</font></b>")))
|
||||
to_chat(T, span_filter_system(span_notice("Move along.")))
|
||||
|
||||
log_admin("[key_name(usr)] told [key_name(T)] to man up and deal with it.")
|
||||
message_admins(span_blue("[key_name_admin(usr)] told [key_name(T)] to man up and deal with it."), 1)
|
||||
|
||||
@@ -41,12 +41,12 @@
|
||||
testname = replacetext(testname, "()", "")
|
||||
|
||||
if(targetselected && !hascall(target,testname))
|
||||
to_chat(usr, "<span class='filter_adminlog'>" + span_red("Error: callproc(): type [target.type] has no proc named [procname].") + "</span>")
|
||||
to_chat(usr, span_filter_adminlog("" + span_red("Error: callproc(): type [target.type] has no proc named [procname].") + ""))
|
||||
return
|
||||
else
|
||||
var/procpath = text2path(procname)
|
||||
if (!procpath)
|
||||
to_chat(usr, "<span class='filter_adminlog'>" + span_red("Error: callproc(): proc [procname] does not exist. (Did you forget the /proc/ part?)") + "</span>")
|
||||
to_chat(usr, span_filter_adminlog("" + span_red("Error: callproc(): proc [procname] does not exist. (Did you forget the /proc/ part?)") + ""))
|
||||
return
|
||||
var/list/lst = get_callproc_args()
|
||||
if(!lst)
|
||||
@@ -54,7 +54,7 @@
|
||||
|
||||
if(targetselected)
|
||||
if(!target)
|
||||
to_chat(usr, "<span class='filter_adminlog'>" + span_red("Error: callproc(): owner of proc no longer exists.") + "</span>")
|
||||
to_chat(usr, span_filter_adminlog("" + span_red("Error: callproc(): owner of proc no longer exists.") + ""))
|
||||
return
|
||||
var/msg = "[key_name(src)] called [target]'s [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"]."
|
||||
log_admin(msg)
|
||||
@@ -86,11 +86,11 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention)
|
||||
|
||||
/proc/WrapAdminProcCall(datum/target, procname, list/arguments)
|
||||
if(target && procname == "Del")
|
||||
to_chat(usr, "<span class='filter_adminlog'>Calling Del() is not allowed</span>")
|
||||
to_chat(usr, span_filter_adminlog("Calling Del() is not allowed"))
|
||||
return
|
||||
|
||||
if(target != GLOBAL_PROC && !target.CanProcCall(procname))
|
||||
to_chat(usr, "<span class='filter_adminlog'>Proccall on [target.type]/proc/[procname] is disallowed!</span>")
|
||||
to_chat(usr, span_filter_adminlog("Proccall on [target.type]/proc/[procname] is disallowed!"))
|
||||
return
|
||||
var/current_caller = GLOB.AdminProcCaller
|
||||
var/ckey = usr ? usr.client.ckey : GLOB.AdminProcCaller
|
||||
@@ -98,10 +98,10 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention)
|
||||
CRASH("WrapAdminProcCall with no ckey: [target] [procname] [english_list(arguments)]")
|
||||
if(current_caller && current_caller != ckey)
|
||||
if(!GLOB.AdminProcCallSpamPrevention[ckey])
|
||||
to_chat(usr, "<span class='adminnotice'>Another set of admin called procs are still running, your proc will be run after theirs finish.</span>")
|
||||
to_chat(usr, span_adminnotice("Another set of admin called procs are still running, your proc will be run after theirs finish."))
|
||||
GLOB.AdminProcCallSpamPrevention[ckey] = TRUE
|
||||
UNTIL(!GLOB.AdminProcCaller)
|
||||
to_chat(usr, "<span class='adminnotice'>Running your proc</span>")
|
||||
to_chat(usr, span_adminnotice("Running your proc"))
|
||||
GLOB.AdminProcCallSpamPrevention -= ckey
|
||||
else
|
||||
UNTIL(!GLOB.AdminProcCaller)
|
||||
@@ -142,14 +142,14 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention)
|
||||
if(!procname)
|
||||
return
|
||||
if(!hascall(A,procname))
|
||||
to_chat(usr, "<span class='filter_adminlog'>" + span_red("Error: callproc_datum(): type [A.type] has no proc named [procname].") + "</span>")
|
||||
to_chat(usr, span_filter_adminlog("" + span_red("Error: callproc_datum(): type [A.type] has no proc named [procname].") + ""))
|
||||
return
|
||||
var/list/lst = get_callproc_args()
|
||||
if(!lst)
|
||||
return
|
||||
|
||||
if(!A || !IsValidSrc(A))
|
||||
to_chat(usr, "<span class='warning'>Error: callproc_datum(): owner of proc no longer exists.</span>")
|
||||
to_chat(usr, span_warning("Error: callproc_datum(): owner of proc no longer exists."))
|
||||
return
|
||||
var/msg = "[key_name(src)] called [A]'s [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"]."
|
||||
log_admin(msg)
|
||||
|
||||
@@ -84,7 +84,7 @@ NOTE: It checks usr by default. Supply the "user" argument if you wish to check
|
||||
return FALSE
|
||||
if(!C.holder)
|
||||
if(show_msg)
|
||||
to_chat(C, "<span class='filter_adminlog warning'>Error: You are not an admin.</span>")
|
||||
to_chat(C, span_filter_adminlog(span_warning("Error: You are not an admin.")))
|
||||
return FALSE
|
||||
|
||||
if(rights_required)
|
||||
@@ -92,7 +92,7 @@ NOTE: It checks usr by default. Supply the "user" argument if you wish to check
|
||||
return TRUE
|
||||
else
|
||||
if(show_msg)
|
||||
to_chat(C, "<span class='filter_adminlog warning'>Error: You do not have sufficient rights to do that. You require one of the following flags:[rights2text(rights_required," ")].</span>")
|
||||
to_chat(C, span_filter_adminlog(span_warning("Error: You do not have sufficient rights to do that. You require one of the following flags:[rights2text(rights_required," ")].")))
|
||||
return FALSE
|
||||
else
|
||||
return TRUE
|
||||
@@ -106,7 +106,7 @@ NOTE: It checks usr by default. Supply the "user" argument if you wish to check
|
||||
if(usr.client.holder.rights != other.holder.rights)
|
||||
if( (usr.client.holder.rights & other.holder.rights) == other.holder.rights )
|
||||
return 1 //we have all the rights they have and more
|
||||
to_chat(usr, "<span class='filter_adminlog warning'>Error: Cannot proceed. They have more or equal rights to us.</span>")
|
||||
to_chat(usr, span_filter_adminlog(span_warning("Error: Cannot proceed. They have more or equal rights to us.")))
|
||||
return 0
|
||||
|
||||
/client/proc/mark_datum(datum/D)
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
return
|
||||
|
||||
if(isnull(tx) || isnull(ty) || isnull(tz) || isnull(range))
|
||||
to_chat(usr, "<span class='filter_notice'>Capture Map Part, captures part of a map using camara like rendering.</span>")
|
||||
to_chat(usr, "<span class='filter_notice'>Usage: Capture-Map-Part target_x_cord target_y_cord target_z_cord range.</span>")
|
||||
to_chat(usr, "<span class='filter_notice'>Target coordinates specify bottom left corner of the capture, range defines render distance to opposite corner.</span>")
|
||||
to_chat(usr, span_filter_notice("Capture Map Part, captures part of a map using camara like rendering."))
|
||||
to_chat(usr, span_filter_notice("Usage: Capture-Map-Part target_x_cord target_y_cord target_z_cord range."))
|
||||
to_chat(usr, span_filter_notice("Target coordinates specify bottom left corner of the capture, range defines render distance to opposite corner."))
|
||||
return
|
||||
|
||||
if(range > 32 || range <= 0)
|
||||
to_chat(usr, "<span class='filter_notice'>Capturing range is incorrect, it must be within 1-32.</span>")
|
||||
to_chat(usr, span_filter_notice("Capturing range is incorrect, it must be within 1-32."))
|
||||
return
|
||||
|
||||
if(locate(tx,ty,tz))
|
||||
@@ -53,7 +53,7 @@
|
||||
cap.Blend(img, blendMode2iconMode(A.blend_mode), A.pixel_x + xoff, A.pixel_y + yoff)
|
||||
|
||||
var/file_name = "map_capture_x[tx]_y[ty]_z[tz]_r[range].png"
|
||||
to_chat(usr, "<span class='filter_notice'>Saved capture in cache as [file_name].</span>")
|
||||
to_chat(usr, span_filter_notice("Saved capture in cache as [file_name]."))
|
||||
usr << browse_rsc(cap, file_name)
|
||||
else
|
||||
to_chat(usr, "<span class='filter_notice'>Target coordinates are incorrect.</span>")
|
||||
to_chat(usr, span_filter_notice("Target coordinates are incorrect."))
|
||||
|
||||
@@ -502,15 +502,15 @@
|
||||
target.lawsync()
|
||||
return TRUE
|
||||
if("notify_laws")
|
||||
to_chat(target, "<span class='danger'>Law Notice</span>")
|
||||
to_chat(target, span_danger("Law Notice"))
|
||||
target.laws.show_laws(target)
|
||||
if(isAI(target))
|
||||
var/mob/living/silicon/ai/AI = target
|
||||
for(var/mob/living/silicon/robot/R in AI.connected_robots)
|
||||
to_chat(R, "<span class='danger'>Law Notice</span>")
|
||||
to_chat(R, span_danger("Law Notice"))
|
||||
R.laws.show_laws(R)
|
||||
if(usr != target)
|
||||
to_chat(usr, "<span class='notice'>Laws displayed.</span>")
|
||||
to_chat(usr, span_notice("Laws displayed."))
|
||||
return TRUE
|
||||
if("select_ai")
|
||||
selected_ai = locate(params["new_ai"])
|
||||
|
||||
@@ -51,13 +51,13 @@
|
||||
return
|
||||
|
||||
if(!usr.client.holder || !(usr.client.holder.rights & R_PERMISSIONS))
|
||||
to_chat(usr, "<span class='filter_adminlog'>[span_red("You do not have permission to do this!")]</span>")
|
||||
to_chat(usr, span_filter_adminlog("[span_red("You do not have permission to do this!")]"))
|
||||
return
|
||||
|
||||
establish_db_connection()
|
||||
|
||||
if(!SSdbcore.IsConnected()) //CHOMPEdit TGSQL
|
||||
to_chat(usr, "<span class='filter_adminlog'>[span_red("Failed to establish database connection")]</span>")
|
||||
to_chat(usr, span_filter_adminlog("[span_red("Failed to establish database connection")]"))
|
||||
return
|
||||
|
||||
if(!adm_ckey || !new_rank)
|
||||
@@ -87,7 +87,7 @@
|
||||
var/datum/db_query/log_query = SSdbcore.NewQuery("INSERT INTO `test`.`erro_admin_log` (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Added new admin [adm_ckey] to rank [new_rank]');") //CHOMPEdit TGSQL
|
||||
log_query.Execute()
|
||||
qdel(log_query) //CHOMPEdit TGSQL
|
||||
to_chat(usr, "<span class='filter_adminlog'>[span_blue("New admin added.")]</span>")
|
||||
to_chat(usr, span_filter_adminlog("[span_blue("New admin added.")]"))
|
||||
else
|
||||
if(!isnull(admin_id) && isnum(admin_id))
|
||||
var/datum/db_query/insert_query = SSdbcore.NewQuery("UPDATE `erro_admin` SET rank = '[new_rank]' WHERE id = [admin_id]") //CHOMPEdit TGSQL
|
||||
@@ -96,7 +96,7 @@
|
||||
var/datum/db_query/log_query = SSdbcore.NewQuery("INSERT INTO `test`.`erro_admin_log` (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Edited the rank of [adm_ckey] to [new_rank]');") //CHOMPEdit TGSQL
|
||||
log_query.Execute()
|
||||
qdel(log_query) //CHOMPEdit TGSQL
|
||||
to_chat(usr, "<span class='filter_adminlog'>[span_blue("Admin rank changed.")]</span>")
|
||||
to_chat(usr, span_filter_adminlog("[span_blue("Admin rank changed.")]"))
|
||||
|
||||
/datum/admins/proc/log_admin_permission_modification(var/adm_ckey, var/new_permission)
|
||||
if(CONFIG_GET(flag/admin_legacy_system)) return // CHOMPEdit
|
||||
@@ -105,12 +105,12 @@
|
||||
return
|
||||
|
||||
if(!usr.client.holder || !(usr.client.holder.rights & R_PERMISSIONS))
|
||||
to_chat(usr, "<span class='filter_adminlog'>[span_red(">You do not have permission to do this!")]</span>")
|
||||
to_chat(usr, span_filter_adminlog("[span_red(">You do not have permission to do this!")]"))
|
||||
return
|
||||
|
||||
establish_db_connection()
|
||||
if(!SSdbcore.IsConnected()) //CHOMPEdit TGSQL
|
||||
to_chat(usr, "<span class='filter_adminlog'>[span_red("Failed to establish database connection!")]</span>")
|
||||
to_chat(usr, span_filter_adminlog("[span_red("Failed to establish database connection!")]"))
|
||||
return
|
||||
|
||||
if(!adm_ckey || !new_permission)
|
||||
@@ -146,7 +146,7 @@
|
||||
var/datum/db_query/log_query = SSdbcore.NewQuery("INSERT INTO `test`.`erro_admin_log` (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Removed permission [rights2text(new_permission)] (flag = [new_permission]) to admin [adm_ckey]');") //CHOMPEdit TGSQL
|
||||
log_query.Execute()
|
||||
qdel(log_query) //CHOMPEdit TGSQL
|
||||
to_chat(usr, "<span class='filter_adminlog'>[span_blue("Permission removed.")]</span>")
|
||||
to_chat(usr, span_filter_adminlog("[span_blue("Permission removed.")]"))
|
||||
else //This admin doesn't have this permission, so we are adding it.
|
||||
var/datum/db_query/insert_query = SSdbcore.NewQuery("UPDATE `erro_admin` SET flags = '[admin_rights | new_permission]' WHERE id = [admin_id]") //CHOMPEdit TGSQL
|
||||
insert_query.Execute()
|
||||
@@ -154,4 +154,4 @@
|
||||
var/datum/db_query/log_query = SSdbcore.NewQuery("INSERT INTO `test`.`erro_admin_log` (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Added permission [rights2text(new_permission)] (flag = [new_permission]) to admin [adm_ckey]')") //CHOMPEdit TGSQL
|
||||
log_query.Execute()
|
||||
qdel(log_query) //CHOMPEdit TGSQL
|
||||
to_chat(usr, "<span class='filter_adminlog'>[span_blue("Permission added.")]</span>")
|
||||
to_chat(usr, span_filter_adminlog("[span_blue("Permission added.")]"))
|
||||
|
||||
@@ -31,9 +31,9 @@
|
||||
var/move_duration = tgui_input_number(user, "How many seconds will this jump take?")
|
||||
|
||||
S.long_jump(area_choices[origin_area], area_choices[destination_area], area_choices[transition_area], move_duration)
|
||||
message_admins("<span class='notice'>[key_name_admin(user)] has initiated a jump from [origin_area] to [destination_area] lasting [move_duration] seconds for the [shuttle_tag] shuttle</span>", 1)
|
||||
message_admins(span_notice("[key_name_admin(user)] has initiated a jump from [origin_area] to [destination_area] lasting [move_duration] seconds for the [shuttle_tag] shuttle"), 1)
|
||||
log_admin("[key_name_admin(user)] has initiated a jump from [origin_area] to [destination_area] lasting [move_duration] seconds for the [shuttle_tag] shuttle")
|
||||
else
|
||||
S.short_jump(area_choices[origin_area], area_choices[destination_area])
|
||||
message_admins("<span class='notice'>[key_name_admin(user)] has initiated a jump from [origin_area] to [destination_area] for the [shuttle_tag] shuttle</span>", 1)
|
||||
message_admins(span_notice("[key_name_admin(user)] has initiated a jump from [origin_area] to [destination_area] for the [shuttle_tag] shuttle"), 1)
|
||||
log_admin("[key_name_admin(user)] has initiated a jump from [origin_area] to [destination_area] for the [shuttle_tag] shuttle")
|
||||
|
||||
@@ -17,13 +17,13 @@
|
||||
affected_mobs |= M
|
||||
switch(rand(1,4))
|
||||
if(1)
|
||||
M.show_message(text("<span class='notice'>You shudder as if cold...</span>"), 1)
|
||||
M.show_message(span_notice("You shudder as if cold..."), 1)
|
||||
if(2)
|
||||
M.show_message(text("<span class='notice'>You feel something gliding across your back...</span>"), 1)
|
||||
M.show_message(span_notice("You feel something gliding across your back..."), 1)
|
||||
if(3)
|
||||
M.show_message(text("<span class='notice'>Your eyes twitch, you feel like something you can't see is here...</span>"), 1)
|
||||
M.show_message(span_notice("Your eyes twitch, you feel like something you can't see is here..."), 1)
|
||||
if(4)
|
||||
M.show_message(text("<span class='notice'>You notice something moving out of the corner of your eye, but nothing is there...</span>"), 1)
|
||||
M.show_message(span_notice("You notice something moving out of the corner of your eye, but nothing is there..."), 1)
|
||||
|
||||
for(var/obj/W in orange(5,M))
|
||||
if(prob(25) && !W.anchored)
|
||||
@@ -43,6 +43,6 @@
|
||||
|
||||
sleep(100)
|
||||
for(var/mob/M in affected_mobs)
|
||||
M.show_message(text("<span class='notice'>The chilling wind suddenly stops...</span>"), 1)
|
||||
M.show_message(span_notice("The chilling wind suddenly stops..."), 1)
|
||||
affected_mobs.Cut()
|
||||
affected_areas.Cut()
|
||||
|
||||
@@ -17,5 +17,5 @@
|
||||
var/range_dev = max_explosion_range *0.25
|
||||
var/range_high = max_explosion_range *0.5
|
||||
var/range_low = max_explosion_range
|
||||
message_admins("<span class='danger'>[key_name_admin(user)] changed the bomb cap to [range_dev], [range_high], [range_low]</span>", 1)
|
||||
message_admins(span_danger("[key_name_admin(user)] changed the bomb cap to [range_dev], [range_high], [range_low]"), 1)
|
||||
log_admin("[key_name_admin(user)] changed the bomb cap to [max_explosion_range]")
|
||||
|
||||
@@ -23,9 +23,9 @@
|
||||
feedback_add_details("admin_secrets_fun_used","Grav")
|
||||
if(gravity_is_on)
|
||||
log_admin("[key_name(user)] toggled gravity on.", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(user)] toggled gravity on.</span>", 1)
|
||||
message_admins(span_notice("[key_name_admin(user)] toggled gravity on."), 1)
|
||||
command_announcement.Announce("Gravity generators are again functioning within normal parameters. Sorry for any inconvenience.")
|
||||
else
|
||||
log_admin("[key_name(user)] toggled gravity off.", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] toggled gravity off.</span>", 1)
|
||||
message_admins(span_notice("[key_name_admin(usr)] toggled gravity off."), 1)
|
||||
command_announcement.Announce("Feedback surge detected in mass-distributions systems. Artificial gravity has been disabled whilst the system reinitializes. Further failures may result in a gravitational collapse and formation of blackholes. Have a nice day.")
|
||||
|
||||
@@ -26,9 +26,9 @@
|
||||
feedback_add_details("admin_secrets_fun_used","Grav")
|
||||
if(gravity_is_on)
|
||||
log_admin("[key_name(user)] toggled gravity on.", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(user)] toggled gravity on.</span>", 1)
|
||||
message_admins(span_notice("[key_name_admin(user)] toggled gravity on."), 1)
|
||||
command_announcement.Announce("Gravity generators are again functioning within normal parameters. Sorry for any inconvenience.")
|
||||
else
|
||||
log_admin("[key_name(user)] toggled gravity off.", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] toggled gravity off.</span>", 1)
|
||||
message_admins(span_notice("[key_name_admin(usr)] toggled gravity off."), 1)
|
||||
command_announcement.Announce("Feedback surge detected in mass-distributions systems. Artificial gravity has been disabled. Please wait for the system to reinitialize, or contact your engineering department.", "Gravity Failure")
|
||||
|
||||
@@ -87,23 +87,23 @@
|
||||
switch(bantype)
|
||||
if(BANTYPE_PERMA)
|
||||
if(!banckey || !banreason)
|
||||
to_chat(usr, "<span class='filter_adminlog'>Not enough parameters (Requires ckey and reason)</span>")
|
||||
to_chat(usr, span_filter_adminlog("Not enough parameters (Requires ckey and reason)"))
|
||||
return
|
||||
banduration = null
|
||||
banjob = null
|
||||
if(BANTYPE_TEMP)
|
||||
if(!banckey || !banreason || !banduration)
|
||||
to_chat(usr, "<span class='filter_adminlog'>Not enough parameters (Requires ckey, reason and duration)</span>")
|
||||
to_chat(usr, span_filter_adminlog("Not enough parameters (Requires ckey, reason and duration)"))
|
||||
return
|
||||
banjob = null
|
||||
if(BANTYPE_JOB_PERMA)
|
||||
if(!banckey || !banreason || !banjob)
|
||||
to_chat(usr, "<span class='filter_adminlog'>Not enough parameters (Requires ckey, reason and job)</span>")
|
||||
to_chat(usr, span_filter_adminlog("Not enough parameters (Requires ckey, reason and job)"))
|
||||
return
|
||||
banduration = null
|
||||
if(BANTYPE_JOB_TEMP)
|
||||
if(!banckey || !banreason || !banjob || !banduration)
|
||||
to_chat(usr, "<span class='filter_adminlog'>Not enough parameters (Requires ckey, reason and job)</span>")
|
||||
to_chat(usr, span_filter_adminlog("Not enough parameters (Requires ckey, reason and job)"))
|
||||
return
|
||||
|
||||
var/mob/playermob
|
||||
@@ -142,14 +142,14 @@
|
||||
var/new_ckey = ckey(tgui_input_text(usr,"New admin's ckey","Admin ckey", null))
|
||||
if(!new_ckey) return
|
||||
if(new_ckey in admin_datums)
|
||||
to_chat(usr, "<span class='filter_adminlog warning'>Error: Topic 'editrights': [new_ckey] is already an admin</span>")
|
||||
to_chat(usr, span_filter_adminlog(span_warning("Error: Topic 'editrights': [new_ckey] is already an admin")))
|
||||
return
|
||||
adm_ckey = new_ckey
|
||||
task = "rank"
|
||||
else if(task != "show")
|
||||
adm_ckey = ckey(href_list["ckey"])
|
||||
if(!adm_ckey)
|
||||
to_chat(usr, "<span class='filter_adminlog warning'>Error: Topic 'editrights': No valid ckey</span>")
|
||||
to_chat(usr, span_filter_adminlog(span_warning("Error: Topic 'editrights': No valid ckey")))
|
||||
return
|
||||
|
||||
var/datum/admins/D = admin_datums[adm_ckey]
|
||||
@@ -181,7 +181,7 @@
|
||||
if(CONFIG_GET(flag/admin_legacy_system)) // CHOMPEdit
|
||||
new_rank = ckeyEx(new_rank)
|
||||
if(!new_rank)
|
||||
to_chat(usr, "<span class='filter_adminlog warning'>Error: Topic 'editrights': Invalid rank</span>")
|
||||
to_chat(usr, span_filter_adminlog(span_warning("Error: Topic 'editrights': Invalid rank")))
|
||||
return
|
||||
if(CONFIG_GET(flag/admin_legacy_system)) // CHOMPEdit
|
||||
if(admin_ranks.len)
|
||||
@@ -290,7 +290,7 @@
|
||||
|
||||
var/mob/M = locate(href_list["mob"])
|
||||
if(!ismob(M))
|
||||
to_chat(usr, "<span class='filter_adminlog'>This can only be used on instances of type /mob</span>")
|
||||
to_chat(usr, span_filter_adminlog("This can only be used on instances of type /mob"))
|
||||
return
|
||||
|
||||
var/delmob = 0
|
||||
@@ -398,14 +398,14 @@
|
||||
|
||||
var/mob/M = locate(href_list["jobban2"])
|
||||
if(!ismob(M))
|
||||
to_chat(usr, "<span class='filter_adminlog'>This can only be used on instances of type /mob</span>")
|
||||
to_chat(usr, span_filter_adminlog("This can only be used on instances of type /mob"))
|
||||
return
|
||||
|
||||
if(!M.ckey) //sanity
|
||||
to_chat(usr, "<span class='filter_adminlog'>This mob has no ckey</span>")
|
||||
to_chat(usr, span_filter_adminlog("This mob has no ckey"))
|
||||
return
|
||||
if(!job_master)
|
||||
to_chat(usr, "<span class='filter_adminlog'>Job Master has not been setup!</span>")
|
||||
to_chat(usr, span_filter_adminlog("Job Master has not been setup!"))
|
||||
return
|
||||
|
||||
var/dat = ""
|
||||
@@ -679,16 +679,16 @@
|
||||
//JOBBAN'S INNARDS
|
||||
else if(href_list["jobban3"])
|
||||
if(!check_rights(R_MOD,0) && !check_rights(R_ADMIN,0))
|
||||
to_chat(usr, "<span class='filter_adminlog warning'>You do not have the appropriate permissions to add job bans!</span>")
|
||||
to_chat(usr, span_filter_adminlog(span_warning("You do not have the appropriate permissions to add job bans!")))
|
||||
return
|
||||
|
||||
if(check_rights(R_MOD,0) && !check_rights(R_ADMIN,0) && !CONFIG_GET(flag/mods_can_job_tempban)) // If mod and tempban disabled // CHOMPEdit
|
||||
to_chat(usr, "<span class='filter_adminlog warning'>Mod jobbanning is disabled!</span>")
|
||||
to_chat(usr, span_filter_adminlog(span_warning("Mod jobbanning is disabled!")))
|
||||
return
|
||||
|
||||
var/mob/M = locate(href_list["jobban4"])
|
||||
if(!ismob(M))
|
||||
to_chat(usr, "<span class='filter_adminlog'>This can only be used on instances of type /mob</span>")
|
||||
to_chat(usr, span_filter_adminlog("This can only be used on instances of type /mob"))
|
||||
return
|
||||
|
||||
if(M != usr) //we can jobban ourselves
|
||||
@@ -697,7 +697,7 @@
|
||||
return
|
||||
|
||||
if(!job_master)
|
||||
to_chat(usr, "<span class='filter_adminlog'>Job Master has not been setup!</span>")
|
||||
to_chat(usr, span_filter_adminlog("Job Master has not been setup!"))
|
||||
return
|
||||
|
||||
//get jobs for department if specified, otherwise just returnt he one job in a list.
|
||||
@@ -783,16 +783,16 @@
|
||||
return
|
||||
if("Yes")
|
||||
if(!check_rights(R_MOD,0) && !check_rights(R_BAN, 0))
|
||||
to_chat(usr, "<span class='filter_adminlog warning'> You cannot issue temporary job-bans!</span>")
|
||||
to_chat(usr, span_filter_adminlog(span_warning("You cannot issue temporary job-bans!")))
|
||||
return
|
||||
if(CONFIG_GET(flag/ban_legacy_system)) // CHOMPEdit
|
||||
to_chat(usr, "<span class='filter_adminlog warning'>Your server is using the legacy banning system, which does not support temporary job bans. Consider upgrading. Aborting ban.</span>")
|
||||
to_chat(usr, span_filter_adminlog(span_warning("Your server is using the legacy banning system, which does not support temporary job bans. Consider upgrading. Aborting ban.")))
|
||||
return
|
||||
var/mins = tgui_input_number(usr,"How long (in minutes)?","Ban time",1440)
|
||||
if(!mins)
|
||||
return
|
||||
if(check_rights(R_MOD, 0) && !check_rights(R_BAN, 0) && mins > CONFIG_GET(number/mod_job_tempban_max)) // CHOMPEdit
|
||||
to_chat(usr, "<span class='filter_adminlog warning'> Moderators can only job tempban up to [CONFIG_GET(number/mod_job_tempban_max)] minutes!</span>") // CHOMPEdit
|
||||
to_chat(usr, span_filter_adminlog(span_warning("Moderators can only job tempban up to [CONFIG_GET(number/mod_job_tempban_max)] minutes!"))) // CHOMPEdit
|
||||
return
|
||||
var/reason = sanitize(tgui_input_text(usr,"Reason?","Please State Reason",""))
|
||||
if(!reason)
|
||||
@@ -812,9 +812,9 @@
|
||||
msg += ", [job]"
|
||||
notes_add(M.ckey, "Banned from [msg] - [reason]", usr)
|
||||
message_admins(span_blue("[key_name_admin(usr)] banned [key_name_admin(M)] from [msg] for [mins] minutes"), 1)
|
||||
to_chat(M, "<span class='filter_system'>[span_red("<BIG><B>You have been jobbanned by [usr.client.ckey] from: [msg].</B></BIG>")]</span>")
|
||||
to_chat(M, "<span class='filter_system'>[span_red("<B>The reason is: [reason]</B>")]</span>")
|
||||
to_chat(M, "<span class='filter_system'>[span_red("This jobban will be lifted in [mins] minutes.")]</span>")
|
||||
to_chat(M, span_filter_system("[span_red("<BIG><B>You have been jobbanned by [usr.client.ckey] from: [msg].</B></BIG>")]"))
|
||||
to_chat(M, span_filter_system("[span_red("<B>The reason is: [reason]</B>")]"))
|
||||
to_chat(M, span_filter_system("[span_red("This jobban will be lifted in [mins] minutes.")]"))
|
||||
href_list["jobban2"] = 1 // lets it fall through and refresh
|
||||
return 1
|
||||
if("No")
|
||||
@@ -833,9 +833,9 @@
|
||||
else msg += ", [job]"
|
||||
notes_add(M.ckey, "Banned from [msg] - [reason]", usr)
|
||||
message_admins(span_blue("[key_name_admin(usr)] banned [key_name_admin(M)] from [msg]"), 1)
|
||||
to_chat(M, "<span class='filter_system'>[span_red("<BIG><B>You have been jobbanned by [usr.client.ckey] from: [msg].</B></BIG>")]</span>")
|
||||
to_chat(M, "<span class='filter_system'>[span_red("<B>The reason is: [reason]</B>")]</span>")
|
||||
to_chat(M, "<span class='filter_system'>[span_red("Jobban can be lifted only upon request.")]</span>")
|
||||
to_chat(M, span_filter_system("[span_red("<BIG><B>You have been jobbanned by [usr.client.ckey] from: [msg].</B></BIG>")]"))
|
||||
to_chat(M, span_filter_system("[span_red("<B>The reason is: [reason]</B>")]"))
|
||||
to_chat(M, span_filter_system("[span_red("Jobban can be lifted only upon request.")]"))
|
||||
href_list["jobban2"] = 1 // lets it fall through and refresh
|
||||
return 1
|
||||
if("Cancel")
|
||||
@@ -845,7 +845,7 @@
|
||||
//all jobs in joblist are banned already OR we didn't give a reason (implying they shouldn't be banned)
|
||||
if(joblist.len) //at least 1 banned job exists in joblist so we have stuff to unban.
|
||||
if(!CONFIG_GET(flag/ban_legacy_system)) // CHOMPEdit
|
||||
to_chat(usr, "<span class='filter_adminlog'>Unfortunately, database based unbanning cannot be done through this panel</span>")
|
||||
to_chat(usr, span_filter_adminlog("Unfortunately, database based unbanning cannot be done through this panel"))
|
||||
DB_ban_panel(M.ckey)
|
||||
return
|
||||
var/msg
|
||||
@@ -866,7 +866,7 @@
|
||||
continue
|
||||
if(msg)
|
||||
message_admins(span_blue("[key_name_admin(usr)] unbanned [key_name_admin(M)] from [msg]"), 1)
|
||||
to_chat(M, "<span class='filter_system danger'><BIG>You have been un-jobbanned by [usr.client.ckey] from [msg].</BIG></span>")
|
||||
to_chat(M, span_filter_system(span_danger("<BIG>You have been un-jobbanned by [usr.client.ckey] from [msg].</BIG>")))
|
||||
href_list["jobban2"] = 1 // lets it fall through and refresh
|
||||
return 1
|
||||
return 0 //we didn't do anything!
|
||||
@@ -904,11 +904,11 @@
|
||||
|
||||
else if(href_list["newban"])
|
||||
if(!check_rights(R_MOD,0) && !check_rights(R_BAN, 0))
|
||||
to_chat(usr, "<span class='warning'>You do not have the appropriate permissions to add bans!</span>")
|
||||
to_chat(usr, span_warning("You do not have the appropriate permissions to add bans!"))
|
||||
return
|
||||
|
||||
if(check_rights(R_MOD,0) && !check_rights(R_ADMIN, 0) && !CONFIG_GET(flag/mods_can_job_tempban)) // If mod and tempban disabled // CHOMPEdit
|
||||
to_chat(usr, "<span class='warning'>Mod jobbanning is disabled!</span>")
|
||||
to_chat(usr, span_warning("Mod jobbanning is disabled!"))
|
||||
return
|
||||
|
||||
var/mob/M = locate(href_list["newban"])
|
||||
@@ -924,7 +924,7 @@
|
||||
if(!mins)
|
||||
return
|
||||
if(check_rights(R_MOD, 0) && !check_rights(R_BAN, 0) && mins > CONFIG_GET(number/mod_tempban_max)) // CHOMPEdit
|
||||
to_chat(usr, "<span class='warning'>Moderators can only job tempban up to [CONFIG_GET(number/mod_tempban_max)] minutes!</span>") // CHOMPEdit
|
||||
to_chat(usr, span_warning("Moderators can only job tempban up to [CONFIG_GET(number/mod_tempban_max)] minutes!")) // CHOMPEdit
|
||||
return
|
||||
if(mins >= 525600) mins = 525599
|
||||
var/reason = sanitize(tgui_input_text(usr,"Reason?","reason","Griefer"))
|
||||
@@ -933,15 +933,15 @@
|
||||
AddBan(M.ckey, M.computer_id, reason, usr.ckey, 1, mins)
|
||||
ban_unban_log_save("[usr.client.ckey] has banned [M.ckey]. - Reason: [reason] - This will be removed in [mins] minutes.")
|
||||
notes_add(M.ckey,"[usr.client.ckey] has banned [M.ckey]. - Reason: [reason] - This will be removed in [mins] minutes.",usr)
|
||||
to_chat(M, "<span class='filter_system critical'>You have been banned by [usr.client.ckey].\nReason: [reason].</span>")
|
||||
to_chat(M, "<span class='filter_system warning'>This is a temporary ban, it will be removed in [mins] minutes.</span>")
|
||||
to_chat(M, span_filter_system(span_critical("You have been banned by [usr.client.ckey].\nReason: [reason].")))
|
||||
to_chat(M, span_filter_system(span_warning("This is a temporary ban, it will be removed in [mins] minutes.")))
|
||||
feedback_inc("ban_tmp",1)
|
||||
DB_ban_record(BANTYPE_TEMP, M, mins, reason)
|
||||
feedback_inc("ban_tmp_mins",mins)
|
||||
if(CONFIG_GET(string/banappeals)) // CHOMPEdit
|
||||
to_chat(M, "<span class='filter_system warning'>To try to resolve this matter head to [CONFIG_GET(string/banappeals)]</span>") // CHOMPEdit
|
||||
to_chat(M, span_filter_system(span_warning("To try to resolve this matter head to [CONFIG_GET(string/banappeals)]"))) // CHOMPEdit
|
||||
else
|
||||
to_chat(M, "<span class='filter_system warning'>No ban appeals URL has been set.</span>")
|
||||
to_chat(M, span_filter_system(span_warning("No ban appeals URL has been set.")))
|
||||
log_admin("[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.")
|
||||
message_admins(span_blue("[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis will be removed in [mins] minutes."))
|
||||
// CHOMPedit Start - Tickets System
|
||||
@@ -962,12 +962,12 @@
|
||||
AddBan(M.ckey, M.computer_id, reason, usr.ckey, 0, 0, M.lastKnownIP)
|
||||
if("No")
|
||||
AddBan(M.ckey, M.computer_id, reason, usr.ckey, 0, 0)
|
||||
to_chat(M, "<span class='filter_system critical'>You have been banned by [usr.client.ckey].\nReason: [reason].</span>")
|
||||
to_chat(M, "<span class='filter_system warning'>This is a permanent ban.</span>")
|
||||
to_chat(M, span_filter_system(span_critical("You have been banned by [usr.client.ckey].\nReason: [reason].")))
|
||||
to_chat(M, span_filter_system(span_warning("This is a permanent ban.")))
|
||||
if(CONFIG_GET(string/banappeals)) // CHOMPEdit
|
||||
to_chat(M, "<span class='filter_system warning'>To try to resolve this matter head to [CONFIG_GET(string/banappeals)]</span>") // CHOMPEdit
|
||||
to_chat(M, span_filter_system(span_warning("To try to resolve this matter head to [CONFIG_GET(string/banappeals)]"))) // CHOMPEdit
|
||||
else
|
||||
to_chat(M, "<span class='filter_system warning'>No ban appeals URL has been set.</span>")
|
||||
to_chat(M, span_filter_system(span_warning("No ban appeals URL has been set.")))
|
||||
ban_unban_log_save("[usr.client.ckey] has permabanned [M.ckey]. - Reason: [reason] - This is a permanent ban.")
|
||||
notes_add(M.ckey,"[usr.client.ckey] has permabanned [M.ckey]. - Reason: [reason] - This is a permanent ban.",usr)
|
||||
log_admin("[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis is a permanent ban.")
|
||||
@@ -1055,7 +1055,7 @@
|
||||
|
||||
var/mob/living/carbon/human/H = locate(href_list["monkeyone"])
|
||||
if(!istype(H))
|
||||
to_chat(usr, "<span class='filter_adminlog'>This can only be used on instances of type /mob/living/carbon/human</span>")
|
||||
to_chat(usr, span_filter_adminlog("This can only be used on instances of type /mob/living/carbon/human"))
|
||||
return
|
||||
|
||||
log_admin("[key_name(usr)] attempting to monkeyize [key_name(H)]")
|
||||
@@ -1067,7 +1067,7 @@
|
||||
|
||||
var/mob/living/carbon/human/H = locate(href_list["corgione"])
|
||||
if(!istype(H))
|
||||
to_chat(usr, "<span class='filter_adminlog'>This can only be used on instances of type /mob/living/carbon/human</span>")
|
||||
to_chat(usr, span_filter_adminlog("This can only be used on instances of type /mob/living/carbon/human"))
|
||||
return
|
||||
|
||||
log_admin("[key_name(usr)] attempting to corgize [key_name(H)]")
|
||||
@@ -1079,7 +1079,7 @@
|
||||
|
||||
var/mob/M = locate(href_list["forcespeech"])
|
||||
if(!ismob(M))
|
||||
to_chat(usr, "<span class='filter_adminlog'>this can only be used on instances of type /mob</span>")
|
||||
to_chat(usr, span_filter_adminlog("this can only be used on instances of type /mob"))
|
||||
|
||||
var/speech = tgui_input_text(usr, "What will [key_name(M)] say?.", "Force speech", "") // Don't need to sanitize, since it does that in say(), we also trust our admins.
|
||||
if(!speech) return
|
||||
@@ -1096,10 +1096,10 @@
|
||||
|
||||
var/mob/M = locate(href_list["sendtoprison"])
|
||||
if(!ismob(M))
|
||||
to_chat(usr, "<span class='filter_adminlog'>This can only be used on instances of type /mob</span>")
|
||||
to_chat(usr, span_filter_adminlog("This can only be used on instances of type /mob"))
|
||||
return
|
||||
if(istype(M, /mob/living/silicon/ai))
|
||||
to_chat(usr, "<span class='filter_adminlog'>This cannot be used on instances of type /mob/living/silicon/ai</span>")
|
||||
to_chat(usr, span_filter_adminlog("This cannot be used on instances of type /mob/living/silicon/ai"))
|
||||
return
|
||||
|
||||
var/turf/prison_cell = pick(prisonwarp)
|
||||
@@ -1124,7 +1124,7 @@
|
||||
prisoner.equip_to_slot_or_del(new /obj/item/clothing/under/color/prison(prisoner), slot_w_uniform)
|
||||
prisoner.equip_to_slot_or_del(new /obj/item/clothing/shoes/orange(prisoner), slot_shoes)
|
||||
|
||||
to_chat(M, "<span class='filter_system warning'>You have been sent to the prison station!</span>")
|
||||
to_chat(M, span_filter_system(span_warning("You have been sent to the prison station!")))
|
||||
log_admin("[key_name(usr)] sent [key_name(M)] to the prison station.")
|
||||
message_admins(span_blue("[key_name_admin(usr)] sent [key_name_admin(M)] to the prison station."), 1)
|
||||
|
||||
@@ -1134,11 +1134,11 @@
|
||||
|
||||
var/mob/M = locate(href_list["sendbacktolobby"])
|
||||
if(!isobserver(M))
|
||||
to_chat(usr, "<span class='filter_adminlog notice'>You can only send ghost players back to the Lobby.</span>")
|
||||
to_chat(usr, span_filter_adminlog(span_notice("You can only send ghost players back to the Lobby.")))
|
||||
return
|
||||
|
||||
if(!M.client)
|
||||
to_chat(usr, "<span class='filter_adminlog warning'>[M] doesn't seem to have an active client.</span>")
|
||||
to_chat(usr, span_filter_adminlog(span_warning("[M] doesn't seem to have an active client.")))
|
||||
return
|
||||
|
||||
if(tgui_alert(usr, "Send [key_name(M)] back to Lobby?", "Message", list("Yes", "No")) != "Yes")
|
||||
@@ -1159,10 +1159,10 @@
|
||||
|
||||
var/mob/M = locate(href_list["tdome1"])
|
||||
if(!ismob(M))
|
||||
to_chat(usr, "<span class='filter_adminlog'>This can only be used on instances of type /mob</span>")
|
||||
to_chat(usr, span_filter_adminlog("This can only be used on instances of type /mob"))
|
||||
return
|
||||
if(istype(M, /mob/living/silicon/ai))
|
||||
to_chat(usr, "<span class='filter_adminlog'>This cannot be used on instances of type /mob/living/silicon/ai</span>")
|
||||
to_chat(usr, span_filter_adminlog("This cannot be used on instances of type /mob/living/silicon/ai"))
|
||||
return
|
||||
|
||||
for(var/obj/item/I in M)
|
||||
@@ -1172,7 +1172,7 @@
|
||||
sleep(5)
|
||||
M.loc = pick(tdome1)
|
||||
spawn(50)
|
||||
to_chat(M, "<span class='filter_system notice'>You have been sent to the Thunderdome.</span>")
|
||||
to_chat(M, span_filter_system(span_notice("You have been sent to the Thunderdome.")))
|
||||
log_admin("[key_name(usr)] has sent [key_name(M)] to the thunderdome. (Team 1)")
|
||||
message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the thunderdome. (Team 1)", 1)
|
||||
|
||||
@@ -1184,10 +1184,10 @@
|
||||
|
||||
var/mob/M = locate(href_list["tdome2"])
|
||||
if(!ismob(M))
|
||||
to_chat(usr, "<span class='filter_adminlog'>This can only be used on instances of type /mob</span>")
|
||||
to_chat(usr, span_filter_adminlog("This can only be used on instances of type /mob"))
|
||||
return
|
||||
if(istype(M, /mob/living/silicon/ai))
|
||||
to_chat(usr, "<span class='filter_adminlog'>This cannot be used on instances of type /mob/living/silicon/ai</span>")
|
||||
to_chat(usr, span_filter_adminlog("This cannot be used on instances of type /mob/living/silicon/ai"))
|
||||
return
|
||||
|
||||
for(var/obj/item/I in M)
|
||||
@@ -1197,7 +1197,7 @@
|
||||
sleep(5)
|
||||
M.loc = pick(tdome2)
|
||||
spawn(50)
|
||||
to_chat(M, "<span class='filter_system notice'>You have been sent to the Thunderdome.</span>")
|
||||
to_chat(M, span_filter_system(span_notice("You have been sent to the Thunderdome.")))
|
||||
log_admin("[key_name(usr)] has sent [key_name(M)] to the thunderdome. (Team 2)")
|
||||
message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the thunderdome. (Team 2)", 1)
|
||||
|
||||
@@ -1209,17 +1209,17 @@
|
||||
|
||||
var/mob/M = locate(href_list["tdomeadmin"])
|
||||
if(!ismob(M))
|
||||
to_chat(usr, "<span class='filter_adminlog'>This can only be used on instances of type /mob</span>")
|
||||
to_chat(usr, span_filter_adminlog("This can only be used on instances of type /mob"))
|
||||
return
|
||||
if(istype(M, /mob/living/silicon/ai))
|
||||
to_chat(usr, "<span class='filter_adminlog'>This cannot be used on instances of type /mob/living/silicon/ai</span>")
|
||||
to_chat(usr, span_filter_adminlog("This cannot be used on instances of type /mob/living/silicon/ai"))
|
||||
return
|
||||
|
||||
M.Paralyse(5)
|
||||
sleep(5)
|
||||
M.loc = pick(tdomeadmin)
|
||||
spawn(50)
|
||||
to_chat(M, "<span class='filter_system notice'>You have been sent to the Thunderdome.</span>")
|
||||
to_chat(M, span_filter_system(span_notice("You have been sent to the Thunderdome.")))
|
||||
log_admin("[key_name(usr)] has sent [key_name(M)] to the thunderdome. (Admin.)")
|
||||
message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the thunderdome. (Admin.)", 1)
|
||||
|
||||
@@ -1231,10 +1231,10 @@
|
||||
|
||||
var/mob/M = locate(href_list["tdomeobserve"])
|
||||
if(!ismob(M))
|
||||
to_chat(usr, "<span class='filter_adminlog'>This can only be used on instances of type /mob</span>")
|
||||
to_chat(usr, span_filter_adminlog("This can only be used on instances of type /mob"))
|
||||
return
|
||||
if(istype(M, /mob/living/silicon/ai))
|
||||
to_chat(usr, "<span class='filter_adminlog'>This cannot be used on instances of type /mob/living/silicon/ai</span>")
|
||||
to_chat(usr, span_filter_adminlog("This cannot be used on instances of type /mob/living/silicon/ai"))
|
||||
return
|
||||
|
||||
for(var/obj/item/I in M)
|
||||
@@ -1248,7 +1248,7 @@
|
||||
sleep(5)
|
||||
M.loc = pick(tdomeobserve)
|
||||
spawn(50)
|
||||
to_chat(M, "<span class='filter_system notice'>You have been sent to the Thunderdome.</span>")
|
||||
to_chat(M, span_filter_system(span_notice("You have been sent to the Thunderdome.")))
|
||||
log_admin("[key_name(usr)] has sent [key_name(M)] to the thunderdome. (Observer.)")
|
||||
message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the thunderdome. (Observer.)", 1)
|
||||
|
||||
@@ -1257,7 +1257,7 @@
|
||||
|
||||
var/mob/living/L = locate(href_list["revive"])
|
||||
if(!istype(L))
|
||||
to_chat(usr, "<span class='filter_adminlog'>This can only be used on instances of type /mob/living</span>")
|
||||
to_chat(usr, span_filter_adminlog("This can only be used on instances of type /mob/living"))
|
||||
return
|
||||
|
||||
if(CONFIG_GET(flag/allow_admin_rev)) // CHOMPEdit
|
||||
@@ -1265,14 +1265,14 @@
|
||||
message_admins(span_red("Admin [key_name_admin(usr)] healed / revived [key_name_admin(L)]!"), 1)
|
||||
log_admin("[key_name(usr)] healed / Rrvived [key_name(L)]")
|
||||
else
|
||||
to_chat(usr, "<span class='filter_adminlog filter_warning'>Admin Rejuvinates have been disabled</span>")
|
||||
to_chat(usr, span_filter_adminlog(span_filter_warning("Admin Rejuvinates have been disabled")))
|
||||
|
||||
else if(href_list["makeai"])
|
||||
if(!check_rights(R_SPAWN)) return
|
||||
|
||||
var/mob/living/carbon/human/H = locate(href_list["makeai"])
|
||||
if(!istype(H))
|
||||
to_chat(usr, "<span class='filter_adminlog'>This can only be used on instances of type /mob/living/carbon/human</span>")
|
||||
to_chat(usr, span_filter_adminlog("This can only be used on instances of type /mob/living/carbon/human"))
|
||||
return
|
||||
|
||||
message_admins(span_red("Admin [key_name_admin(usr)] AIized [key_name_admin(H)]!"), 1)
|
||||
@@ -1284,7 +1284,7 @@
|
||||
|
||||
var/mob/living/carbon/human/H = locate(href_list["makealien"])
|
||||
if(!istype(H))
|
||||
to_chat(usr, "<span class='filter_adminlog'>This can only be used on instances of type /mob/living/carbon/human</span>")
|
||||
to_chat(usr, span_filter_adminlog("This can only be used on instances of type /mob/living/carbon/human"))
|
||||
return
|
||||
|
||||
usr.client.cmd_admin_alienize(H)
|
||||
@@ -1294,7 +1294,7 @@
|
||||
|
||||
var/mob/living/carbon/human/H = locate(href_list["makerobot"])
|
||||
if(!istype(H))
|
||||
to_chat(usr, "<span class='filter_adminlog'>This can only be used on instances of type /mob/living/carbon/human</span>")
|
||||
to_chat(usr, span_filter_adminlog("This can only be used on instances of type /mob/living/carbon/human"))
|
||||
return
|
||||
|
||||
usr.client.cmd_admin_robotize(H)
|
||||
@@ -1304,7 +1304,7 @@
|
||||
|
||||
var/mob/M = locate(href_list["makeanimal"])
|
||||
if(istype(M, /mob/new_player))
|
||||
to_chat(usr, "<span class='filter_adminlog'>This cannot be used on instances of type /mob/new_player</span>")
|
||||
to_chat(usr, span_filter_adminlog("This cannot be used on instances of type /mob/new_player"))
|
||||
return
|
||||
|
||||
usr.client.cmd_admin_animalize(M)
|
||||
@@ -1323,7 +1323,7 @@
|
||||
|
||||
var/mob/living/carbon/human/H = locate(href_list["togmutate"])
|
||||
if(!istype(H))
|
||||
to_chat(usr, "<span class='filter_adminlog'>This can only be used on instances of type /mob/living/carbon/human</span>")
|
||||
to_chat(usr, span_filter_adminlog("This can only be used on instances of type /mob/living/carbon/human"))
|
||||
return
|
||||
var/block=text2num(href_list["block"])
|
||||
usr.client.cmd_admin_toggle_block(H,block)
|
||||
@@ -1362,11 +1362,11 @@
|
||||
|
||||
var/mob/M = locate(href_list["take_question"])
|
||||
if(ismob(M))
|
||||
var/take_msg = "<span class='notice'><b>ADMINHELP</b>: <b>[key_name(usr.client)]</b> is attending to <b>[key_name(M)]'s</b> adminhelp, please don't dogpile them.</span>"
|
||||
var/take_msg = span_notice("<b>ADMINHELP</b>: <b>[key_name(usr.client)]</b> is attending to <b>[key_name(M)]'s</b> adminhelp, please don't dogpile them.")
|
||||
for(var/client/X in GLOB.admins)
|
||||
if((R_ADMIN|R_MOD|R_SERVER) & X.holder.rights) //VOREStation Edit
|
||||
to_chat(X, take_msg)
|
||||
to_chat(M, "<span class='filter_pm notice'><b>Your adminhelp is being attended to by [usr.client]. Thanks for your patience!</b></span>")
|
||||
to_chat(M, span_filter_pm(span_notice("<b>Your adminhelp is being attended to by [usr.client]. Thanks for your patience!</b>")))
|
||||
// VoreStation Edit Start
|
||||
if (CONFIG_GET(string/chat_webhook_url)) // CHOMPEdit
|
||||
spawn(0)
|
||||
@@ -1377,7 +1377,7 @@
|
||||
world.Export("[CONFIG_GET(string/chat_webhook_url)]?[query_string]") // CHOMPEdit
|
||||
// VoreStation Edit End
|
||||
else
|
||||
to_chat(usr, "<span class='warning'>Unable to locate mob.</span>")
|
||||
to_chat(usr, span_warning("Unable to locate mob."))
|
||||
|
||||
else if(href_list["adminplayerobservecoodjump"])
|
||||
if(!check_rights(R_ADMIN|R_SERVER|R_MOD)) return //VOREStation Edit
|
||||
@@ -1397,7 +1397,7 @@
|
||||
else if(href_list["adminmoreinfo"])
|
||||
var/mob/M = locate(href_list["adminmoreinfo"])
|
||||
if(!ismob(M))
|
||||
to_chat(usr, "<span class='filter_adminlog'>This can only be used on instances of type /mob</span>")
|
||||
to_chat(usr, span_filter_adminlog("This can only be used on instances of type /mob"))
|
||||
return
|
||||
|
||||
var/location_description = ""
|
||||
@@ -1450,7 +1450,7 @@
|
||||
|
||||
var/mob/living/carbon/human/H = locate(href_list["adminspawncookie"])
|
||||
if(!ishuman(H))
|
||||
to_chat(usr, "<span class='filter_adminlog'>This can only be used on instances of type /mob/living/carbon/human</span>")
|
||||
to_chat(usr, span_filter_adminlog("This can only be used on instances of type /mob/living/carbon/human"))
|
||||
return
|
||||
|
||||
H.equip_to_slot_or_del( new /obj/item/reagent_containers/food/snacks/cookie(H), slot_l_hand )
|
||||
@@ -1467,14 +1467,14 @@
|
||||
log_admin("[key_name(H)] got their cookie, spawned by [key_name(src.owner)]")
|
||||
message_admins("[key_name(H)] got their cookie, spawned by [key_name(src.owner)]")
|
||||
feedback_inc("admin_cookies_spawned",1)
|
||||
to_chat(H, "<span class='notice'>Your prayers have been answered!! You received the <b>best cookie</b>!</span>")
|
||||
to_chat(H, span_notice("Your prayers have been answered!! You received the <b>best cookie</b>!"))
|
||||
|
||||
else if(href_list["adminsmite"])
|
||||
if(!check_rights(R_ADMIN|R_FUN|R_EVENT)) return
|
||||
|
||||
var/mob/living/carbon/human/H = locate(href_list["adminsmite"])
|
||||
if(!ishuman(H))
|
||||
to_chat(usr, "<span class='filter_adminlog'>This can only be used on instances of type /mob/living/carbon/human</span>")
|
||||
to_chat(usr, span_filter_adminlog("This can only be used on instances of type /mob/living/carbon/human"))
|
||||
return
|
||||
|
||||
owner.smite(H)
|
||||
@@ -1484,7 +1484,7 @@
|
||||
|
||||
var/mob/living/M = locate(href_list["BlueSpaceArtillery"])
|
||||
if(!isliving(M))
|
||||
to_chat(usr, "<span class='filter_adminlog'>This can only be used on instances of type /mob/living</span>")
|
||||
to_chat(usr, span_filter_adminlog("This can only be used on instances of type /mob/living"))
|
||||
return
|
||||
|
||||
if(tgui_alert(src.owner, "Are you sure you wish to hit [key_name(M)] with Blue Space Artillery?", "Confirm Firing?", list("Yes", "No")) != "Yes")
|
||||
@@ -1495,39 +1495,39 @@
|
||||
else if(href_list["CentComReply"])
|
||||
var/mob/living/L = locate(href_list["CentComReply"])
|
||||
if(!istype(L))
|
||||
to_chat(usr, "<span class='filter_adminlog'>This can only be used on instances of type /mob/living/</span>")
|
||||
to_chat(usr, span_filter_adminlog("This can only be used on instances of type /mob/living/"))
|
||||
return
|
||||
|
||||
if(L.can_centcom_reply())
|
||||
var/input = sanitize(tgui_input_text(src.owner, "Please enter a message to reply to [key_name(L)] via their headset.","Outgoing message from CentCom", ""))
|
||||
if(!input) return
|
||||
|
||||
to_chat(src.owner, "<span class='filter_adminlog'>You sent [input] to [L] via a secure channel.</span>")
|
||||
to_chat(src.owner, span_filter_adminlog("You sent [input] to [L] via a secure channel."))
|
||||
log_admin("[src.owner] replied to [key_name(L)]'s CentCom message with the message [input].")
|
||||
message_admins("[src.owner] replied to [key_name(L)]'s CentCom message with: \"[input]\"")
|
||||
if(!isAI(L))
|
||||
to_chat(L, "<span class='info'>You hear something crackle in your headset for a moment before a voice speaks.</span>")
|
||||
to_chat(L, "<span class='info'>Please stand by for a message from Central Command.</span>")
|
||||
to_chat(L, "<span class='info'>Message as follows.</span>")
|
||||
to_chat(L, "<span class='notice'>[input]</span>")
|
||||
to_chat(L, "<span class='info'>Message ends.</span>")
|
||||
to_chat(L, span_info("You hear something crackle in your headset for a moment before a voice speaks."))
|
||||
to_chat(L, span_info("Please stand by for a message from Central Command."))
|
||||
to_chat(L, span_info("Message as follows."))
|
||||
to_chat(L, span_notice("[input]"))
|
||||
to_chat(L, span_info("Message ends."))
|
||||
else
|
||||
to_chat(src.owner, "<span class='filter_adminlog'>The person you are trying to contact does not have functional radio equipment.</span>")
|
||||
to_chat(src.owner, span_filter_adminlog("The person you are trying to contact does not have functional radio equipment."))
|
||||
|
||||
|
||||
else if(href_list["SyndicateReply"])
|
||||
var/mob/living/carbon/human/H = locate(href_list["SyndicateReply"])
|
||||
if(!istype(H))
|
||||
to_chat(usr, "<span class='filter_adminlog'>This can only be used on instances of type /mob/living/carbon/human</span>")
|
||||
to_chat(usr, span_filter_adminlog("This can only be used on instances of type /mob/living/carbon/human"))
|
||||
return
|
||||
if(!istype(H.l_ear, /obj/item/radio/headset) && !istype(H.r_ear, /obj/item/radio/headset))
|
||||
to_chat(usr, "<span class='filter_adminlog'>The person you are trying to contact is not wearing a headset</span>")
|
||||
to_chat(usr, span_filter_adminlog("The person you are trying to contact is not wearing a headset"))
|
||||
return
|
||||
|
||||
var/input = sanitize(tgui_input_text(src.owner, "Please enter a message to reply to [key_name(H)] via their headset.","Outgoing message from a shadowy figure...", ""))
|
||||
if(!input) return
|
||||
|
||||
to_chat(src.owner, "<span class='filter_adminlog'>You sent [input] to [H] via a secure channel.</span>")
|
||||
to_chat(src.owner, span_filter_adminlog("You sent [input] to [H] via a secure channel."))
|
||||
log_admin("[src.owner] replied to [key_name(H)]'s illegal message with the message [input].")
|
||||
to_chat(H, "<span class='filter_notice'>You hear something crackle in your headset for a moment before a voice speaks. \
|
||||
\"Please stand by for a message from your benefactor. Message as follows, agent. <b>\"[input]\"</b> Message ends.\"</span>")
|
||||
@@ -1552,7 +1552,7 @@
|
||||
|
||||
usr << browse(data, "window=[B.name]")
|
||||
else
|
||||
to_chat(usr, "<span class='warning'>The faxed item is not viewable. This is probably a bug, and should be reported on the tracker: [fax.type]</span>")
|
||||
to_chat(usr, span_warning("The faxed item is not viewable. This is probably a bug, and should be reported on the tracker: [fax.type]"))
|
||||
|
||||
else if (href_list["AdminFaxViewPage"])
|
||||
var/page = text2num(href_list["AdminFaxViewPage"])
|
||||
@@ -1602,7 +1602,7 @@
|
||||
feedback_add_details("admin_verb","JM") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
log_and_message_admins("[key_name_admin(usr)] jumped to [key_name_admin(M)]")
|
||||
else
|
||||
to_chat(usr, "<span class='filter_adminlog'>This mob is not located in the game world.</span>")
|
||||
to_chat(usr, span_filter_adminlog("This mob is not located in the game world."))
|
||||
|
||||
else if(href_list["getmob"])
|
||||
if(!check_rights(R_ADMIN|R_MOD|R_DEBUG|R_EVENT))
|
||||
@@ -1671,7 +1671,7 @@
|
||||
|
||||
var/mob/M = locate(href_list["traitor"])
|
||||
if(!ismob(M))
|
||||
to_chat(usr, "<span class='filter_adminlog'>This can only be used on instances of type /mob.</span>")
|
||||
to_chat(usr, span_filter_adminlog("This can only be used on instances of type /mob."))
|
||||
return
|
||||
show_traitor_panel(M)
|
||||
|
||||
@@ -1695,7 +1695,7 @@
|
||||
if(!check_rights(R_SPAWN)) return
|
||||
|
||||
if(!CONFIG_GET(flag/allow_admin_spawning)) // CHOMPEdit
|
||||
to_chat(usr, "<span class='filter_adminlog'>Spawning of items is not allowed.</span>")
|
||||
to_chat(usr, span_filter_adminlog("Spawning of items is not allowed."))
|
||||
return
|
||||
|
||||
var/atom/loc = usr.loc
|
||||
@@ -1755,24 +1755,24 @@
|
||||
where = "onfloor"
|
||||
|
||||
if( where == "inhand" )
|
||||
to_chat(usr, "<span class='filter_adminlog'>Support for inhand not available yet. Will spawn on floor.</span>")
|
||||
to_chat(usr, span_filter_adminlog("Support for inhand not available yet. Will spawn on floor."))
|
||||
where = "onfloor"
|
||||
|
||||
if ( where == "inhand" ) //Can only give when human or monkey
|
||||
if ( !( ishuman(usr) || issmall(usr) ) )
|
||||
to_chat(usr, "<span class='filter_adminlog'>Can only spawn in hand when you're a human or a monkey.</span>")
|
||||
to_chat(usr, span_filter_adminlog("Can only spawn in hand when you're a human or a monkey."))
|
||||
where = "onfloor"
|
||||
else if ( usr.get_active_hand() )
|
||||
to_chat(usr, "<span class='filter_adminlog'>Your active hand is full. Spawning on floor.</span>")
|
||||
to_chat(usr, span_filter_adminlog("Your active hand is full. Spawning on floor."))
|
||||
where = "onfloor"
|
||||
|
||||
if ( where == "inmarked" )
|
||||
if ( !marked_datum )
|
||||
to_chat(usr, "<span class='filter_adminlog'>You don't have any object marked. Abandoning spawn.</span>")
|
||||
to_chat(usr, span_filter_adminlog("You don't have any object marked. Abandoning spawn."))
|
||||
return
|
||||
else
|
||||
if ( !istype(marked_datum,/atom) )
|
||||
to_chat(usr, "<span class='filter_adminlog'>The object you have marked cannot be used as a target. Target must be of type /atom. Abandoning spawn.</span>")
|
||||
to_chat(usr, span_filter_adminlog("The object you have marked cannot be used as a target. Target must be of type /atom. Abandoning spawn."))
|
||||
return
|
||||
|
||||
var/atom/target //Where the object will be spawned
|
||||
@@ -2028,17 +2028,17 @@
|
||||
if(check_rights(R_SPAWN)) //VOREStation Edit
|
||||
var/mob/M = locate(href_list["toglang"])
|
||||
if(!istype(M))
|
||||
to_chat(usr, "<span class='filter_adminlog'>[M] is illegal type, must be /mob!</span>")
|
||||
to_chat(usr, span_filter_adminlog("[M] is illegal type, must be /mob!"))
|
||||
return
|
||||
var/lang2toggle = href_list["lang"]
|
||||
var/datum/language/L = GLOB.all_languages[lang2toggle]
|
||||
|
||||
if(L in M.languages)
|
||||
if(!M.remove_language(lang2toggle))
|
||||
to_chat(usr, "<span class='filter_adminlog'>Failed to remove language '[lang2toggle]' from \the [M]!</span>")
|
||||
to_chat(usr, span_filter_adminlog("Failed to remove language '[lang2toggle]' from \the [M]!"))
|
||||
else
|
||||
if(!M.add_language(lang2toggle))
|
||||
to_chat(usr, "<span class='filter_adminlog'>Failed to add language '[lang2toggle]' from \the [M]!</span>")
|
||||
to_chat(usr, span_filter_adminlog("Failed to add language '[lang2toggle]' from \the [M]!"))
|
||||
|
||||
show_player_panel(M)
|
||||
|
||||
@@ -2047,7 +2047,7 @@
|
||||
|
||||
var/mob/living/carbon/M = locate(href_list["cryoplayer"]) //VOREStation edit from just an all mob check to mob/living/carbon
|
||||
if(!istype(M))
|
||||
to_chat(usr, "<span class='warning'>Mob doesn't exist!</span>")
|
||||
to_chat(usr, span_warning("Mob doesn't exist!"))
|
||||
return
|
||||
|
||||
var/client/C = usr.client
|
||||
|
||||
@@ -31,6 +31,4 @@
|
||||
var/F = file("broken_icons.txt")
|
||||
fdel(F)
|
||||
F << text
|
||||
to_world("<span class='filter_system'>Completeled successfully and written to [F]</span>")
|
||||
|
||||
|
||||
to_world(span_filter_system("Completeled successfully and written to [F]"))
|
||||
|
||||
@@ -190,7 +190,7 @@ Example: USING PROCCALL = BLOCKING, SELECT = FORCE_NULLS, PRIORITY = HIGH SELECT
|
||||
/client/proc/SDQL2_query(query_text as message)
|
||||
set category = "Debug.Misc" //CHOMPEdit
|
||||
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)]")
|
||||
@@ -224,7 +224,7 @@ Example: USING PROCCALL = BLOCKING, SELECT = FORCE_NULLS, PRIORITY = HIGH SELECT
|
||||
running += query
|
||||
var/msg = "Starting query #[query.id] - [query.get_query_text()]."
|
||||
if(usr)
|
||||
to_chat(usr, "<span class='admin'>[msg]</span>")
|
||||
to_chat(usr, span_admin("[msg]"))
|
||||
log_admin(msg)
|
||||
query.ARun()
|
||||
var/finished = FALSE
|
||||
@@ -243,7 +243,7 @@ Example: USING PROCCALL = BLOCKING, SELECT = FORCE_NULLS, PRIORITY = HIGH SELECT
|
||||
finished = FALSE
|
||||
else 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>")
|
||||
to_chat(usr, span_admin("SDQL query [query.get_query_text()] errored. It will NOT be automatically garbage collected. Please remove manually."))
|
||||
running -= query
|
||||
else
|
||||
if(query.finished)
|
||||
@@ -256,14 +256,14 @@ Example: USING PROCCALL = BLOCKING, SELECT = FORCE_NULLS, PRIORITY = HIGH SELECT
|
||||
//QDEL_IN(query, 50) Maybe when vorestation finally ports timers..
|
||||
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>")
|
||||
to_chat(usr, span_admin("SDQL query [query.get_query_text()] was halted. It will NOT be automatically garbage collected. Please remove manually."))
|
||||
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))
|
||||
@@ -801,7 +801,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>")
|
||||
to_chat(usr, span_danger("SDQL2: Unknown op [op]"))
|
||||
result = null
|
||||
else
|
||||
result = val
|
||||
@@ -895,7 +895,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>")
|
||||
to_chat(usr, span_danger("Parsing error on [querys_pos]\th query. Nothing was executed."))
|
||||
return list()
|
||||
query_tree = list()
|
||||
do_parse = 0
|
||||
@@ -941,16 +941,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))
|
||||
to_chat(usr, "<span class='danger'>World variables are not allowed to be accessed. Use global.</span>")
|
||||
to_chat(usr, span_danger("World variables are not allowed to be accessed. Use global."))
|
||||
return null
|
||||
|
||||
else if(expression [start] == "{" && long)
|
||||
if(lowertext(copytext(expression[start + 1], 1, 3)) != "0x")
|
||||
to_chat(usr, "<span class='danger'>Invalid pointer syntax: [expression[start + 1]]</span>")
|
||||
to_chat(usr, span_danger("Invalid pointer syntax: [expression[start + 1]]"))
|
||||
return null
|
||||
v = locate("\[[expression[start + 1]]]")
|
||||
if(!v)
|
||||
to_chat(usr, "<span class='danger'>Invalid pointer: [expression[start + 1]]</span>")
|
||||
to_chat(usr, span_danger("Invalid pointer: [expression[start + 1]]"))
|
||||
return null
|
||||
start++
|
||||
long = start < expression.len
|
||||
@@ -995,7 +995,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) && (!(round(index) == index) || L.len < index))
|
||||
to_chat(usr, "<span class='danger'>Invalid list index: [index]</span>")
|
||||
to_chat(usr, span_danger("Invalid list index: [index]"))
|
||||
return null
|
||||
return L[index]
|
||||
return v
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
|
||||
/datum/SDQL_parser/proc/parse_error(error_message)
|
||||
error = 1
|
||||
to_chat(usr, "<span class='warning'>SQDL2 Parsing Error: [error_message]</span>")
|
||||
to_chat(usr, span_warning("SQDL2 Parsing Error: [error_message]"))
|
||||
return query.len + 1
|
||||
|
||||
/datum/SDQL_parser/proc/parse()
|
||||
@@ -632,4 +632,4 @@
|
||||
else
|
||||
i = variable(i, node)
|
||||
|
||||
return i
|
||||
return i
|
||||
|
||||
@@ -212,13 +212,13 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
MessageNoRecipient(parsed_message)
|
||||
send2adminchat() //VOREStation Add
|
||||
//show it to the person adminhelping too
|
||||
to_chat(C, "<span class='pm adminnotice'>PM to-<b>Admins</b>: [name]</span>")
|
||||
to_chat(C, span_pm(span_adminnotice("PM to-<b>Admins</b>: [name]")))
|
||||
|
||||
//send it to irc if nobody is on and tell us how many were on
|
||||
var/admin_number_present = send2irc_adminless_only(initiator_ckey, name)
|
||||
log_admin("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='pm notice'>No active admins are online, your adminhelp was sent to the admin discord.</span>") //VOREStation Edit
|
||||
to_chat(C, span_pm(span_notice("No active admins are online, your adminhelp was sent to the admin discord."))) //VOREStation Edit
|
||||
send2adminchat() //VOREStation Add
|
||||
//YW EDIT START
|
||||
var/list/adm = get_admin_counts()
|
||||
@@ -291,7 +291,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
//won't bug irc
|
||||
/datum/admin_help/proc/MessageNoRecipient(msg)
|
||||
var/ref_src = "\ref[src]"
|
||||
var/chat_msg = "<span class='pm adminnotice'><span class='adminhelp'>Ticket [TicketHref("#[id]", ref_src)]</span><b>: [LinkedReplyName(ref_src)] [FullMonty(ref_src)]:</b> [msg]</span>"
|
||||
var/chat_msg = span_pm(span_adminnotice("<span class='adminhelp'>Ticket [TicketHref("#[id]", ref_src)]</span><b>: [LinkedReplyName(ref_src)] [FullMonty(ref_src)]:</b> [msg]"))
|
||||
|
||||
AddInteraction("<font color='red'>[LinkedReplyName(ref_src)]: [msg]</font>")
|
||||
//send this msg to all admins
|
||||
@@ -307,11 +307,11 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
//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>")
|
||||
to_chat(usr, span_warning("This ticket is already open."))
|
||||
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>")
|
||||
to_chat(usr, span_warning("This user already has an active ticket, cannot reopen this one."))
|
||||
return
|
||||
|
||||
statclick = new(null, src)
|
||||
@@ -330,8 +330,8 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
|
||||
AddInteraction("<font color='purple'>Reopened by [key_name_admin(usr)]</font>")
|
||||
if(initiator)
|
||||
to_chat(initiator, "<span class='filter_adminlog'>[span_purple("Ticket [TicketHref("#[id]")] was reopened by [key_name(usr,FALSE,FALSE)].")]</span>")
|
||||
var/msg = "<span class='adminhelp'>Ticket [TicketHref("#[id]")] reopened by [key_name_admin(usr)].</span>"
|
||||
to_chat(initiator, span_filter_adminlog("[span_purple("Ticket [TicketHref("#[id]")] was reopened by [key_name(usr,FALSE,FALSE)].")]"))
|
||||
var/msg = span_adminhelp("Ticket [TicketHref("#[id]")] reopened by [key_name_admin(usr)].")
|
||||
message_admins(msg)
|
||||
log_admin(msg)
|
||||
feedback_inc("ahelp_reopen")
|
||||
@@ -362,9 +362,9 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
RemoveActive()
|
||||
state = AHELP_CLOSED
|
||||
GLOB.ahelp_tickets.ListInsert(src)
|
||||
AddInteraction("<span class='filter_adminlog'><font color='red'>Closed by [key_name_admin(usr)].</font></span>")
|
||||
AddInteraction(span_filter_adminlog("<font color='red'>Closed by [key_name_admin(usr)].</font>"))
|
||||
if(initiator)
|
||||
to_chat(initiator, "<span class='filter_adminlog'>[span_red("Ticket [TicketHref("#[id]")] was closed by [key_name(usr,FALSE,FALSE)].")]</span>")
|
||||
to_chat(initiator, span_filter_adminlog("[span_red("Ticket [TicketHref("#[id]")] was closed by [key_name(usr,FALSE,FALSE)].")]"))
|
||||
if(!silent)
|
||||
feedback_inc("ahelp_close")
|
||||
var/msg = "Ticket [TicketHref("#[id]")] closed by [key_name_admin(usr)]."
|
||||
@@ -387,9 +387,9 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
state = AHELP_RESOLVED
|
||||
GLOB.ahelp_tickets.ListInsert(src)
|
||||
|
||||
AddInteraction("<span class='filter_adminlog'><font color='green'>Resolved by [key_name_admin(usr)].</font></span>")
|
||||
AddInteraction(span_filter_adminlog("<font color='green'>Resolved by [key_name_admin(usr)].</font>"))
|
||||
if(initiator)
|
||||
to_chat(initiator, "<span class='filter_adminlog'>[span_green("Ticket [TicketHref("#[id]")] was marked resolved by [key_name(usr,FALSE,FALSE)].")]</span>")
|
||||
to_chat(initiator, span_filter_adminlog("[span_green("Ticket [TicketHref("#[id]")] was marked resolved by [key_name(usr,FALSE,FALSE)].")]"))
|
||||
if(!silent)
|
||||
feedback_inc("ahelp_resolve")
|
||||
var/msg = "Ticket [TicketHref("#[id]")] resolved by [key_name_admin(usr)]"
|
||||
@@ -640,12 +640,12 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
set name = "Adminhelp"
|
||||
|
||||
if(say_disabled) //This is here to try to identify lag problems
|
||||
to_chat(usr, "<span class='danger'>Speech is currently admin-disabled.</span>")
|
||||
to_chat(usr, span_danger("Speech is currently admin-disabled."))
|
||||
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>")
|
||||
to_chat(src, span_danger("Error: Admin-PM: You cannot send adminhelps (Muted)."))
|
||||
return
|
||||
if(handle_spam_prevention(msg,MUTE_ADMINHELP))
|
||||
return
|
||||
@@ -666,10 +666,10 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
if(input == "Yes")
|
||||
if(current_ticket)
|
||||
current_ticket.MessageNoRecipient(msg)
|
||||
to_chat(usr, "<span class='pm adminnotice'>PM to-<b>Admins</b>: [msg]</span>")
|
||||
to_chat(usr, span_pm(span_adminnotice("PM to-<b>Admins</b>: [msg]")))
|
||||
return
|
||||
else
|
||||
to_chat(usr, "<span class='warning'>Ticket not found, creating new one...</span>")
|
||||
to_chat(usr, span_warning("Ticket not found, creating new one..."))
|
||||
else
|
||||
current_ticket.AddInteraction("[key_name_admin(usr)] opened a new ticket.")
|
||||
current_ticket.Close()
|
||||
|
||||
@@ -29,14 +29,14 @@ Reason: Replaced with "Tickets System"
|
||||
|
||||
//handle muting and automuting
|
||||
if(prefs.muted & MUTE_ADMINHELP)
|
||||
to_chat(usr, "<span class='danger'>Error: You cannot request spice (muted from adminhelps).</span>")
|
||||
to_chat(usr, span_danger("Error: You cannot request spice (muted from adminhelps)."))
|
||||
return
|
||||
|
||||
if(tgui_alert(usr, "Are you sure you want to request the admins spice things up for you? You accept the consequences if you do.","Spicy!",list("Yes","No")) == "Yes")
|
||||
message_admins("[ADMIN_FULLMONTY(usr)] has requested the round be spiced up a little.")
|
||||
to_chat(usr, "<span class='notice'>You have requested some more spice in your round.</span>")
|
||||
to_chat(usr, span_notice("You have requested some more spice in your round."))
|
||||
else
|
||||
to_chat(usr, "<span class='notice'>Spice request cancelled.</span>")
|
||||
to_chat(usr, span_notice("Spice request cancelled."))
|
||||
return
|
||||
|
||||
//if they requested spice, then remove spice verb temporarily to prevent spamming
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
message_admins("[key_name_admin(usr)] jumped to [key_name_admin(M)]", 1)
|
||||
feedback_add_details("admin_verb","JM") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
else
|
||||
to_chat(A, "<span class='filter_adminlog'>This mob is not located in the game world.</span>")
|
||||
to_chat(A, span_filter_adminlog("This mob is not located in the game world."))
|
||||
|
||||
/client/proc/jumptocoord(tx as num, ty as num, tz as num)
|
||||
set category = "Admin.Game" //CHOMPEdit
|
||||
@@ -92,7 +92,7 @@
|
||||
A.on_mob_jump()
|
||||
var/turf/T = locate(tx, ty, tz)
|
||||
if(!T)
|
||||
to_chat(usr, "<span class='warning'>Those coordinates are outside the boundaries of the map.</span>")
|
||||
to_chat(usr, span_warning("Those coordinates are outside the boundaries of the map."))
|
||||
return
|
||||
A.forceMove(T)
|
||||
feedback_add_details("admin_verb","JC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
@@ -220,7 +220,7 @@
|
||||
if(!tz) return
|
||||
var/turf/T = locate(tx, ty, tz)
|
||||
if(!T)
|
||||
to_chat(usr, "<span class='warning'>Those coordinates are outside the boundaries of the map.</span>")
|
||||
to_chat(usr, span_warning("Those coordinates are outside the boundaries of the map."))
|
||||
return
|
||||
if(ismob(AM))
|
||||
var/mob/M = AM
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
set category = null
|
||||
set name = "Admin PM Mob"
|
||||
if(!holder) //CHOMP Edit: Reverting this to let all staff respond to ahelps
|
||||
to_chat(src, "<span class='pm warning'>Error: Admin-PM-Context: Only administrators may use this command.</span>")
|
||||
to_chat(src, span_pm(span_warning("Error: Admin-PM-Context: Only administrators may use this command.")))
|
||||
return
|
||||
if( !ismob(M) || !M.client )
|
||||
return
|
||||
@@ -18,7 +18,7 @@
|
||||
set category = "Admin"
|
||||
set name = "Admin PM"
|
||||
if(!holder) //CHOMP Edit: Reverting this to let all staff respond to ahelps
|
||||
to_chat(src, "<span class='pm warning'>Error: Admin-PM-Panel: Only administrators may use this command.</span>")
|
||||
to_chat(src, span_pm(span_warning("Error: Admin-PM-Panel: Only administrators may use this command.")))
|
||||
return
|
||||
var/list/client/targets[0]
|
||||
for(var/client/T)
|
||||
@@ -39,7 +39,7 @@
|
||||
|
||||
/client/proc/cmd_ahelp_reply(whom)
|
||||
if(prefs.muted & MUTE_ADMINHELP)
|
||||
to_chat(src, "<span class='pm warning'>Error: Admin-PM: You are unable to use admin PM-s (muted).</span>")
|
||||
to_chat(src, span_pm(span_warning("Error: Admin-PM: You are unable to use admin PM-s (muted).")))
|
||||
return
|
||||
var/client/C
|
||||
if(istext(whom))
|
||||
@@ -50,16 +50,16 @@
|
||||
C = whom
|
||||
if(!C)
|
||||
if(holder)
|
||||
to_chat(src, "<span class='pm warning'>Error: Admin-PM: Client not found.</span>")
|
||||
to_chat(src, span_pm(span_warning("Error: Admin-PM: Client not found.")))
|
||||
return
|
||||
|
||||
var/datum/ticket/T = C.current_ticket // CHOMPedit - Ticket System
|
||||
|
||||
if(T) // CHOMPedit - Ticket System
|
||||
message_admins("<span class='pm'>[key_name_admin(src)] has started replying to [key_name(C, 0, 0)]'s admin help.</span>")
|
||||
message_admins(span_pm("[key_name_admin(src)] has started replying to [key_name(C, 0, 0)]'s admin help."))
|
||||
var/msg = tgui_input_text(src,"Message:", "Private message to [key_name(C, 0, 0)]", multiline = TRUE)
|
||||
if (!msg)
|
||||
message_admins("<span class='pm'>[key_name_admin(src)] has cancelled their reply to [key_name(C, 0, 0)]'s admin help.</span>")
|
||||
message_admins(span_pm("[key_name_admin(src)] has cancelled their reply to [key_name(C, 0, 0)]'s admin help."))
|
||||
return
|
||||
cmd_admin_pm(whom, msg, T) // CHOMPedit - Ticket System
|
||||
|
||||
@@ -67,12 +67,12 @@
|
||||
//Fetching a message if needed. src is the sender and C is the target client
|
||||
/client/proc/cmd_admin_pm(whom, msg, datum/ticket/T) // CHOMPedit - Ticket System
|
||||
if(prefs.muted & MUTE_ADMINHELP)
|
||||
to_chat(src, "<span class='pm warning'>Error: Admin-PM: You are unable to use admin PM-s (muted).</span>")
|
||||
to_chat(src, span_pm(span_warning("Error: Admin-PM: You are unable to use admin PM-s (muted).")))
|
||||
return
|
||||
|
||||
if(!holder && !current_ticket) //no ticket? https://www.youtube.com/watch?v=iHSPf6x1Fdo
|
||||
to_chat(src, "<span class='pm warning'>You can no longer reply to this ticket, please open another one by using the Adminhelp verb if need be.</span>")
|
||||
to_chat(src, "<span class='pm notice'>Message: [msg]</span>")
|
||||
to_chat(src, span_pm(span_warning("You can no longer reply to this ticket, please open another one by using the Adminhelp verb if need be.")))
|
||||
to_chat(src, span_pm(span_notice("Message: [msg]")))
|
||||
return
|
||||
|
||||
var/client/recipient
|
||||
@@ -97,14 +97,14 @@
|
||||
if(!msg)
|
||||
return
|
||||
if(holder)
|
||||
to_chat(src, "<span class='pm warning'>Error: Use the admin IRC channel, nerd.</span>")
|
||||
to_chat(src, span_pm(span_warning("Error: Use the admin IRC channel, nerd.")))
|
||||
return
|
||||
|
||||
|
||||
else
|
||||
if(!recipient)
|
||||
if(holder)
|
||||
to_chat(src, "<span class='pm warning'>Error: Admin-PM: Client not found.</span>")
|
||||
to_chat(src, span_pm(span_warning("Error: Admin-PM: Client not found.")))
|
||||
to_chat(src, msg)
|
||||
else
|
||||
current_ticket.MessageNoRecipient(msg)
|
||||
@@ -118,12 +118,12 @@
|
||||
return
|
||||
|
||||
if(prefs.muted & MUTE_ADMINHELP)
|
||||
to_chat(src, "<span class='pm warning'>Error: Admin-PM: You are unable to use admin PM-s (muted).</span>")
|
||||
to_chat(src, span_pm(span_warning("Error: Admin-PM: You are unable to use admin PM-s (muted).")))
|
||||
return
|
||||
|
||||
if(!recipient)
|
||||
if(holder)
|
||||
to_chat(src, "<span class='pm warning'>Error: Admin-PM: Client not found.</span>")
|
||||
to_chat(src, span_pm(span_warning("Error: Admin-PM: Client not found.")))
|
||||
else
|
||||
current_ticket.MessageNoRecipient(msg)
|
||||
return
|
||||
@@ -142,27 +142,27 @@
|
||||
var/keywordparsedmsg = keywords_lookup(msg)
|
||||
|
||||
if(irc)
|
||||
to_chat(src, "<span class='pm notice'>PM to-<b>Admins</b>: [rawmsg]</span>")
|
||||
admin_ticket_log(src, "<span class='pm warning'>Reply PM from-<b>[key_name(src, TRUE, TRUE)]</b> to <i>IRC</i>: [keywordparsedmsg]</span>")
|
||||
to_chat(src, span_pm(span_notice("PM to-<b>Admins</b>: [rawmsg]")))
|
||||
admin_ticket_log(src, span_pm(span_warning("Reply PM from-<b>[key_name(src, TRUE, TRUE)]</b> to <i>IRC</i>: [keywordparsedmsg]")))
|
||||
ircreplyamount--
|
||||
send2irc("Reply: [ckey]",rawmsg)
|
||||
else
|
||||
if(recipient.holder)
|
||||
if(holder) //both are admins
|
||||
to_chat(recipient, "<span class='pm warning'>Admin PM from-<b>[key_name(src, recipient, 1)]</b>: [keywordparsedmsg]</span>")
|
||||
to_chat(src, "<span class='pm notice'>Admin PM to-<b>[key_name(recipient, src, 1)]</b>: [keywordparsedmsg]</span>")
|
||||
to_chat(recipient, span_pm(span_warning("Admin PM from-<b>[key_name(src, recipient, 1)]</b>: [keywordparsedmsg]")))
|
||||
to_chat(src, span_pm(span_notice("Admin PM to-<b>[key_name(recipient, src, 1)]</b>: [keywordparsedmsg]")))
|
||||
|
||||
//omg this is dumb, just fill in both their tickets
|
||||
var/interaction_message = "<span class='pm notice'>PM from-<b>[key_name(src, recipient, 1)]</b> to-<b>[key_name(recipient, src, 1)]</b>: [keywordparsedmsg]</span>"
|
||||
var/interaction_message = span_pm(span_notice("PM from-<b>[key_name(src, recipient, 1)]</b> to-<b>[key_name(recipient, src, 1)]</b>: [keywordparsedmsg]"))
|
||||
admin_ticket_log(src, interaction_message)
|
||||
if(recipient != src) //reeee
|
||||
admin_ticket_log(recipient, interaction_message)
|
||||
|
||||
else //recipient is an admin but sender is not
|
||||
var/replymsg = "<span class='pm warning'>Reply PM from-<b>[key_name(src, recipient, 1)]</b>: [keywordparsedmsg]</span>"
|
||||
var/replymsg = span_pm(span_warning("Reply PM from-<b>[key_name(src, recipient, 1)]</b>: [keywordparsedmsg]"))
|
||||
admin_ticket_log(src, replymsg)
|
||||
to_chat(recipient, replymsg)
|
||||
to_chat(src, "<span class='pm notice'>PM to-<b>Admins</b>: [msg]</span>")
|
||||
to_chat(src, span_pm(span_notice("PM to-<b>Admins</b>: [msg]")))
|
||||
|
||||
//play the recieving admin the adminhelp sound (if they have them enabled)
|
||||
if(recipient.prefs?.read_preference(/datum/preference/toggle/holder/play_adminhelp_ping))
|
||||
@@ -173,12 +173,12 @@
|
||||
if(!recipient.current_ticket)
|
||||
new /datum/ticket(msg, recipient, TRUE, 0) // CHOMPedit - Ticket System
|
||||
|
||||
to_chat(recipient, "<span class='pm warning' size='4'><b>-- Administrator private message --</b></span>")
|
||||
to_chat(recipient, "<span class='pm warning'>Admin PM from-<b>[key_name(src, recipient, 0)]</b>: [msg]</span>")
|
||||
to_chat(recipient, "<span class='pm warning'><i>Click on the administrator's name to reply.</i></span>")
|
||||
to_chat(src, "<span class='pm notice'>Admin PM to-<b>[key_name(recipient, src, 1)]</b>: [msg]</span>")
|
||||
to_chat(recipient, span_pm(span_warning(span_huge("<b>-- Administrator private message --</b>"))))
|
||||
to_chat(recipient, span_pm(span_warning("Admin PM from-<b>[key_name(src, recipient, 0)]</b>: [msg]")))
|
||||
to_chat(recipient, span_pm(span_warning("<i>Click on the administrator's name to reply.</i>")))
|
||||
to_chat(src, span_pm(span_notice("Admin PM to-<b>[key_name(recipient, src, 1)]</b>: [msg]")))
|
||||
|
||||
admin_ticket_log(recipient, "<span class='pm notice'>PM From [key_name_admin(src)]: [keywordparsedmsg]</span>")
|
||||
admin_ticket_log(recipient, span_pm(span_notice("PM From [key_name_admin(src)]: [keywordparsedmsg]")))
|
||||
|
||||
//always play non-admin recipients the adminhelp sound
|
||||
recipient << 'sound/effects/adminhelp.ogg'
|
||||
@@ -197,7 +197,7 @@
|
||||
return
|
||||
|
||||
else //neither are admins
|
||||
to_chat(src, "<span class='pm warning'>Error: Admin-PM: Non-admin to non-admin PM communication is forbidden.</span>")
|
||||
to_chat(src, span_pm(span_warning("Error: Admin-PM: Non-admin to non-admin PM communication is forbidden.")))
|
||||
return
|
||||
|
||||
if(irc)
|
||||
@@ -205,7 +205,7 @@
|
||||
for(var/client/X in GLOB.admins)
|
||||
if(!check_rights(R_ADMIN|R_SERVER, 0, X)) //CHOMPEdit
|
||||
continue
|
||||
to_chat(X, "<span class='pm notice'><B>PM: [key_name(src, X, 0)]->IRC:</B> [keywordparsedmsg]</span>")
|
||||
to_chat(X, span_pm(span_notice("<B>PM: [key_name(src, X, 0)]->IRC:</B> [keywordparsedmsg]")))
|
||||
else
|
||||
log_admin("PM: [key_name(src)]->[key_name(recipient)]: [rawmsg]")
|
||||
//we don't use message_admins here because the sender/receiver might get it too
|
||||
@@ -213,7 +213,7 @@
|
||||
if(!check_rights(R_ADMIN|R_SERVER, 0, X)) //CHOMPEdit
|
||||
continue
|
||||
if(X.key!=key && X.key!=recipient.key) //check client/X is an admin and isn't the sender or recipient
|
||||
to_chat(X, "<span class='pm notice'><B>PM: [key_name(src, X, 0)]->[key_name(recipient, X, 0)]:</B> [keywordparsedmsg]</span>" )
|
||||
to_chat(X, span_pm(span_notice("<B>PM: [key_name(src, X, 0)]->[key_name(recipient, X, 0)]:</B> [keywordparsedmsg]")))
|
||||
|
||||
/proc/IrcPm(target,msg,sender)
|
||||
var/client/C = GLOB.directory[target]
|
||||
@@ -262,11 +262,11 @@
|
||||
message_admins("IRC message from [sender] to [key_name_admin(C)] : [msg]")
|
||||
log_admin("IRC PM: [sender] -> [key_name(C)] : [msg]")
|
||||
|
||||
to_chat(C, "<span class='pm warning'><font size='4'><b>-- Administrator private message --</b></font></span>")
|
||||
to_chat(C, "<span class='pm warning'>Admin PM from-<b><a href='?priv_msg=[stealthkey]'>[adminname]</A></b>: [msg]</span>")
|
||||
to_chat(C, "<span class='pm warning'><i>Click on the administrator's name to reply.</i></span>")
|
||||
to_chat(C, span_pm(span_warning(span_huge("<b>-- Administrator private message --</b>"))))
|
||||
to_chat(C, span_pm(span_warning("Admin PM from-<b><a href='?priv_msg=[stealthkey]'>[adminname]</A></b>: [msg]")))
|
||||
to_chat(C, span_pm(span_warning("<i>Click on the administrator's name to reply.</i>")))
|
||||
|
||||
admin_ticket_log(C, "<span class='pm notice'>PM From [irc_tagged]: [msg]</span>")
|
||||
admin_ticket_log(C, span_pm(span_notice("PM From [irc_tagged]: [msg]")))
|
||||
|
||||
window_flash(C)
|
||||
//always play non-admin recipients the adminhelp sound
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
for(var/client/C in GLOB.admins)
|
||||
if(check_rights(R_ADMIN, 0, C))
|
||||
to_chat(C, "<span class='admin_channel'>" + create_text_tag("admin", "ADMIN:", C) + " <span class='name'>[key_name(usr, 1)]</span>([admin_jump_link(mob, src)]): <span class='message'>[msg]</span></span>")
|
||||
to_chat(C, span_admin_channel("" + create_text_tag("admin", "ADMIN:", C) + " <span class='name'>[key_name(usr, 1)]</span>([admin_jump_link(mob, src)]): <span class='message'>[msg]</span>"))
|
||||
|
||||
feedback_add_details("admin_verb","M") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -33,10 +33,10 @@
|
||||
|
||||
var/sender_name = key_name(usr, 1)
|
||||
if(check_rights(R_ADMIN, 0))
|
||||
sender_name = "<span class='admin'>[sender_name]</span>"
|
||||
sender_name = span_admin("[sender_name]")
|
||||
for(var/client/C in GLOB.admins)
|
||||
if(check_rights(R_ADMIN|R_MOD|R_SERVER)) //VOREStation Edit
|
||||
to_chat(C, "<span class='mod_channel'>" + create_text_tag("mod", "MOD:", C) + " <span class='name'>[sender_name]</span>([admin_jump_link(mob, C.holder)]): <span class='message'>[msg]</span></span>")
|
||||
to_chat(C, span_mod_channel("" + create_text_tag("mod", "MOD:", C) + " <span class='name'>[sender_name]</span>([admin_jump_link(mob, C.holder)]): <span class='message'>[msg]</span>"))
|
||||
|
||||
feedback_add_details("admin_verb","MS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -56,8 +56,8 @@
|
||||
|
||||
var/sender_name = key_name(usr, 1)
|
||||
if(check_rights(R_ADMIN, 0))
|
||||
sender_name = "<span class='admin'>[sender_name]</span>"
|
||||
sender_name = span_admin("[sender_name]")
|
||||
for(var/client/C in GLOB.admins)
|
||||
to_chat(C, "<span class='event_channel'>" + create_text_tag("event", "EVENT:", C) + " <span class='name'>[sender_name]</span>([admin_jump_link(mob, C.holder)]): <span class='message'>[msg]</span></span>")
|
||||
to_chat(C, span_event_channel("" + create_text_tag("event", "EVENT:", C) + " <span class='name'>[sender_name]</span>([admin_jump_link(mob, C.holder)]): <span class='message'>[msg]</span>"))
|
||||
|
||||
feedback_add_details("admin_verb","GS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
var/is_antag = usr.mind && usr.mind.special_role
|
||||
|
||||
if(!is_antag && !is_admin) // Non-antagonists and non-admins have no business using this.
|
||||
to_chat(usr, "<span class='warning'>Sorry, but only certain antagonists or administrators can use this verb.</span>")
|
||||
to_chat(usr, span_warning("Sorry, but only certain antagonists or administrators can use this verb."))
|
||||
return
|
||||
|
||||
else if(is_antag && !is_admin) // Is an antag, and not an admin, meaning we need to check if their antag type allows AOOC.
|
||||
var/datum/antagonist/A = get_antag_data(usr.mind.special_role)
|
||||
if(!A || !A.can_speak_aooc || !A.can_hear_aooc)
|
||||
to_chat(usr, "<span class='warning'>Sorry, but your antagonist type is not allowed to speak in AOOC.</span>")
|
||||
to_chat(usr, span_warning("Sorry, but your antagonist type is not allowed to speak in AOOC."))
|
||||
return
|
||||
|
||||
msg = sanitize(msg)
|
||||
@@ -31,12 +31,12 @@
|
||||
|
||||
for(var/mob/M in mob_list)
|
||||
if(check_rights(R_ADMIN|R_MOD|R_EVENT, 0, M)) // Staff can see AOOC unconditionally, and with more details.
|
||||
to_chat(M, "<span class='ooc'><span class='aooc'>[create_text_tag("aooc", "Antag-OOC:", M.client)] <EM>[get_options_bar(src, 0, 1, 1)]([admin_jump_link(usr, M.client.holder)]):</EM> <span class='message'>[msg]</span></span></span>")
|
||||
to_chat(M, span_ooc(span_aooc("[create_text_tag("aooc", "Antag-OOC:", M.client)] <EM>[get_options_bar(src, 0, 1, 1)]([admin_jump_link(usr, M.client.holder)]):</EM> <span class='message'>[msg]</span>")))
|
||||
else if(M.client) // Players can only see AOOC if observing, or if they are an antag type allowed to use AOOC.
|
||||
var/datum/antagonist/A = null
|
||||
if(M.mind) // Observers don't have minds, but they should still see AOOC.
|
||||
A = get_antag_data(M.mind.special_role)
|
||||
if((M.mind && M.mind.special_role && A && A.can_hear_aooc) || isobserver(M)) // Antags must have their type be allowed to AOOC to see AOOC. This prevents, say, ERT from seeing AOOC.
|
||||
to_chat(M, "<span class='ooc'><span class='aooc'>[create_text_tag("aooc", "Antag-OOC:", M.client)] <EM>[player_display]:</EM> <span class='message'>[msg]</span></span></span>")
|
||||
to_chat(M, span_ooc(span_aooc("[create_text_tag("aooc", "Antag-OOC:", M.client)] <EM>[player_display]:</EM> <span class='message'>[msg]</span>")))
|
||||
|
||||
log_aooc(msg,src)
|
||||
|
||||
@@ -14,17 +14,17 @@
|
||||
//all plumbing - yes, some things might get stated twice, doesn't matter.
|
||||
for (var/obj/machinery/atmospherics/plumbing in machines)
|
||||
if (plumbing.nodealert)
|
||||
to_chat(usr, "<span class='filter_adminlog warning'>Unconnected [plumbing.name] located at [plumbing.x],[plumbing.y],[plumbing.z] ([get_area(plumbing.loc)])</span>")
|
||||
to_chat(usr, span_filter_adminlog(span_warning("Unconnected [plumbing.name] located at [plumbing.x],[plumbing.y],[plumbing.z] ([get_area(plumbing.loc)])")))
|
||||
|
||||
//Manifolds
|
||||
for (var/obj/machinery/atmospherics/pipe/manifold/pipe in machines)
|
||||
if (!pipe.node1 || !pipe.node2 || !pipe.node3)
|
||||
to_chat(usr, "<span class='filter_adminlog warning'>Unconnected [pipe.name] located at [pipe.x],[pipe.y],[pipe.z] ([get_area(pipe.loc)])</span>")
|
||||
to_chat(usr, span_filter_adminlog(span_warning("Unconnected [pipe.name] located at [pipe.x],[pipe.y],[pipe.z] ([get_area(pipe.loc)])")))
|
||||
|
||||
//Pipes
|
||||
for (var/obj/machinery/atmospherics/pipe/simple/pipe in machines)
|
||||
if (!pipe.node1 || !pipe.node2)
|
||||
to_chat(usr, "<span class='filter_adminlog warning'>Unconnected [pipe.name] located at [pipe.x],[pipe.y],[pipe.z] ([get_area(pipe.loc)])</span>")
|
||||
to_chat(usr, span_filter_adminlog(span_warning("Unconnected [pipe.name] located at [pipe.x],[pipe.y],[pipe.z] ([get_area(pipe.loc)])")))
|
||||
|
||||
to_chat(usr, "Checking for overlapping pipes...")
|
||||
next_turf:
|
||||
@@ -36,7 +36,7 @@
|
||||
for(var/connect_type in pipe.connect_types)
|
||||
connect_types[connect_type] += 1
|
||||
if(connect_types[1] > 1 || connect_types[2] > 1 || connect_types[3] > 1)
|
||||
to_chat(usr, "<span class='filter_adminlog warning'>Overlapping pipe ([pipe.name]) located at [T.x],[T.y],[T.z] ([get_area(T)])</span>")
|
||||
to_chat(usr, span_filter_adminlog(span_warning("Overlapping pipe ([pipe.name]) located at [T.x],[T.y],[T.z] ([get_area(T)])")))
|
||||
continue next_turf
|
||||
to_chat(usr, "Done")
|
||||
|
||||
@@ -52,9 +52,9 @@
|
||||
if (!PN.nodes || !PN.nodes.len)
|
||||
if(PN.cables && (PN.cables.len > 1))
|
||||
var/obj/structure/cable/C = PN.cables[1]
|
||||
to_chat(usr, "<span class='filter_adminlog'>Powernet with no nodes! (number [PN.number]) - example cable at [C.x], [C.y], [C.z] in area [get_area(C.loc)]</span>")
|
||||
to_chat(usr, span_filter_adminlog("Powernet with no nodes! (number [PN.number]) - example cable at [C.x], [C.y], [C.z] in area [get_area(C.loc)]"))
|
||||
|
||||
if (!PN.cables || (PN.cables.len < 10))
|
||||
if(PN.cables && (PN.cables.len > 1))
|
||||
var/obj/structure/cable/C = PN.cables[1]
|
||||
to_chat(usr, "<span class='filter_adminlog'>Powernet with fewer than 10 cables! (number [PN.number]) - example cable at [C.x], [C.y], [C.z] in area [get_area(C.loc)]</span>")
|
||||
to_chat(usr, span_filter_adminlog("Powernet with fewer than 10 cables! (number [PN.number]) - example cable at [C.x], [C.y], [C.z] in area [get_area(C.loc)]"))
|
||||
|
||||
@@ -301,7 +301,7 @@
|
||||
area_enabled = 1
|
||||
area_name = tgui_input_text(usr, "New area name", "Room Buildmode", max_length = MAX_NAME_LEN)
|
||||
if(isnull(area_name))
|
||||
to_chat(usr, "<span class='notice'>You must enter a non-null name.</span>")
|
||||
to_chat(usr, span_notice("You must enter a non-null name."))
|
||||
area_enabled = 0
|
||||
return
|
||||
area_name = sanitize(area_name,MAX_NAME_LEN)
|
||||
@@ -418,7 +418,7 @@ CHOMP Remove end */
|
||||
qdel(object)
|
||||
else if(pa.Find("ctrl"))
|
||||
holder.buildmode.objholder = object.type
|
||||
to_chat(user, "<span class='notice'>[object]([object.type]) copied to buildmode.</span>")
|
||||
to_chat(user, span_notice("[object]([object.type]) copied to buildmode."))
|
||||
if(pa.Find("middle"))
|
||||
holder.buildmode.objholder = text2path("[object.type]")
|
||||
if(holder.buildmode.objsay)
|
||||
@@ -430,13 +430,13 @@ CHOMP Remove end */
|
||||
log_admin("[key_name(usr)] modified [object.name]'s [holder.buildmode.varholder] to [holder.buildmode.valueholder]")
|
||||
object.vars[holder.buildmode.varholder] = holder.buildmode.valueholder
|
||||
else
|
||||
to_chat(user, "<span class='danger'>[initial(object.name)] does not have a var called '[holder.buildmode.varholder]'</span>")
|
||||
to_chat(user, span_danger("[initial(object.name)] does not have a var called '[holder.buildmode.varholder]'"))
|
||||
if(pa.Find("right"))
|
||||
if(object.vars.Find(holder.buildmode.varholder))
|
||||
log_admin("[key_name(usr)] modified [object.name]'s [holder.buildmode.varholder] to [holder.buildmode.valueholder]")
|
||||
object.vars[holder.buildmode.varholder] = initial(object.vars[holder.buildmode.varholder])
|
||||
else
|
||||
to_chat(user, "<span class='danger'>[initial(object.name)] does not have a var called '[holder.buildmode.varholder]'</span>")
|
||||
to_chat(user, span_danger("[initial(object.name)] does not have a var called '[holder.buildmode.varholder]'"))
|
||||
|
||||
if(BUILDMODE_THROW)
|
||||
if(pa.Find("left"))
|
||||
@@ -450,19 +450,19 @@ CHOMP Remove end */
|
||||
if(BUILDMODE_ROOM)
|
||||
if(pa.Find("left"))
|
||||
holder.buildmode.coordA = get_turf(object)
|
||||
to_chat(user, "<span class='notice'>Defined [object] ([object.type]) as point A.</span>")
|
||||
to_chat(user, span_notice("Defined [object] ([object.type]) as point A."))
|
||||
|
||||
if(pa.Find("right"))
|
||||
holder.buildmode.coordB = get_turf(object)
|
||||
to_chat(user, "<span class='notice'>Defined [object] ([object.type]) as point B.</span>")
|
||||
to_chat(user, span_notice("Defined [object] ([object.type]) as point B."))
|
||||
|
||||
if(holder.buildmode.coordA && holder.buildmode.coordB)
|
||||
if(isnull(holder.buildmode.area_name))
|
||||
to_chat(user, "<span class='notice'>ERROR: Insert area name before use.</span>")
|
||||
to_chat(user, span_notice("ERROR: Insert area name before use."))
|
||||
holder.buildmode.coordA = null
|
||||
holder.buildmode.coordB = null
|
||||
return
|
||||
to_chat(user, "<span class='notice'>A and B set, creating rectangle.</span>")
|
||||
to_chat(user, span_notice("A and B set, creating rectangle."))
|
||||
holder.buildmode.make_rectangle(
|
||||
holder.buildmode.coordA,
|
||||
holder.buildmode.coordB,
|
||||
@@ -476,14 +476,14 @@ CHOMP Remove end */
|
||||
if(BUILDMODE_LADDER)
|
||||
if(pa.Find("left"))
|
||||
holder.buildmode.coordA = get_turf(object)
|
||||
to_chat(user, "<span class='notice'>Defined [object] ([object.type]) as upper ladder location.</span>")
|
||||
to_chat(user, span_notice("Defined [object] ([object.type]) as upper ladder location."))
|
||||
|
||||
if(pa.Find("right"))
|
||||
holder.buildmode.coordB = get_turf(object)
|
||||
to_chat(user, "<span class='notice'>Defined [object] ([object.type]) as lower ladder location.</span>")
|
||||
to_chat(user, span_notice("Defined [object] ([object.type]) as lower ladder location."))
|
||||
|
||||
if(holder.buildmode.coordA && holder.buildmode.coordB)
|
||||
to_chat(user, "<span class='notice'>Ladder locations set, building ladders.</span>")
|
||||
to_chat(user, span_notice("Ladder locations set, building ladders."))
|
||||
var/obj/structure/ladder/A = new /obj/structure/ladder/up(holder.buildmode.coordA)
|
||||
var/obj/structure/ladder/B = new /obj/structure/ladder(holder.buildmode.coordB)
|
||||
A.target_up = B
|
||||
@@ -655,7 +655,7 @@ CHOMP Remove end */
|
||||
|
||||
if(BUILDMODE_DROP)
|
||||
if(ispath(holder.buildmode.objholder,/turf))
|
||||
to_chat(user, "<span class='warning'>Cannot use turfs with this mode.</span>")
|
||||
to_chat(user, span_warning("Cannot use turfs with this mode."))
|
||||
return
|
||||
if(pa.Find("left") && !pa.Find("ctrl"))
|
||||
if(ispath(holder.buildmode.objholder))
|
||||
@@ -667,7 +667,7 @@ CHOMP Remove end */
|
||||
FE.crushing = TRUE
|
||||
else if(pa.Find("ctrl"))
|
||||
holder.buildmode.objholder = object.type
|
||||
to_chat(user, "<span class='notice'>[object]([object.type]) copied to buildmode.</span>")
|
||||
to_chat(user, span_notice("[object]([object.type]) copied to buildmode."))
|
||||
if(pa.Find("middle"))
|
||||
holder.buildmode.objholder = text2path("[object.type]")
|
||||
if(holder.buildmode.objsay)
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
if(!H) return
|
||||
|
||||
if(!H.client)
|
||||
to_chat(usr, "<span class='filter_arning'> Only mobs with clients can alter their own appearance.</span>")
|
||||
to_chat(usr, span_filter_warning(" Only mobs with clients can alter their own appearance."))
|
||||
return
|
||||
var/datum/gender/T = gender_datums[H.get_visible_gender()]
|
||||
switch(tgui_alert(usr, "Do you wish for [H] to be allowed to select non-whitelisted races?","Alter Mob Appearance","Yes","No","Cancel"))
|
||||
@@ -44,7 +44,7 @@
|
||||
var/mob/living/carbon/human/M = tgui_input_list(usr, "Select mob.", "Edit Appearance", human_mob_list)
|
||||
|
||||
if(!istype(M, /mob/living/carbon/human))
|
||||
to_chat(usr, "<span class='warning'>You can only do this to humans!</span>")
|
||||
to_chat(usr, span_warning("You can only do this to humans!"))
|
||||
return
|
||||
if(tgui_alert(usr, "Are you sure you wish to edit this mob's appearance? Skrell, Unathi, Tajaran can result in unintended consequences.","Danger!",list("Yes","No")) != "Yes")
|
||||
return
|
||||
|
||||
@@ -19,9 +19,9 @@
|
||||
|
||||
custom_event_msg = input
|
||||
|
||||
to_world("<h1 class='alert'>Custom Event</h1>")
|
||||
to_world("<h2 class='alert'>A custom event is starting. OOC Info:</h2>")
|
||||
to_world("<span class='alert'>[custom_event_msg]</span>")
|
||||
to_world("<h1>[span_alert("Custom Event")]</h1>")
|
||||
to_world("<h2>[span_alert("A custom event is starting. OOC Info:")]</h2>")
|
||||
to_world(span_alert("[custom_event_msg]"))
|
||||
to_world("<br>")
|
||||
|
||||
SSwebhooks.send(
|
||||
@@ -37,10 +37,10 @@
|
||||
set name = "Custom Event Info"
|
||||
|
||||
if(!custom_event_msg || custom_event_msg == "")
|
||||
to_chat(src, "<span class='filter_notice'>There currently is no known custom event taking place.</span>")
|
||||
to_chat(src, "<span class='filter_notice'>Keep in mind: it is possible that an admin has not properly set this.</span>")
|
||||
to_chat(src, span_filter_notice("There currently is no known custom event taking place."))
|
||||
to_chat(src, span_filter_notice("Keep in mind: it is possible that an admin has not properly set this."))
|
||||
return
|
||||
|
||||
to_chat(src, "<h1 class='filter_notice alert'>Custom Event</h1>")
|
||||
to_chat(src, "<h2 class='filter_notice alert'>A custom event is taking place. OOC Info:</h2>")
|
||||
to_chat(src, "<span class='filter_notice alert'>[custom_event_msg]<br></span>")
|
||||
to_chat(src, "<h1>[span_filter_notice(span_alert("Custom Event"))]</h1>")
|
||||
to_chat(src, "<h2>[span_filter_notice(span_alert("A custom event is taking place. OOC Info:"))]</h2>")
|
||||
to_chat(src, span_filter_notice(span_alert("[custom_event_msg]<br>")))
|
||||
|
||||
@@ -8,11 +8,11 @@
|
||||
if(!src.mob)
|
||||
return
|
||||
if(prefs.muted & MUTE_DEADCHAT)
|
||||
to_chat(src, "<span class='warning'>You cannot send DSAY messages (muted).</span>")
|
||||
to_chat(src, span_warning("You cannot send DSAY messages (muted)."))
|
||||
return
|
||||
|
||||
if(!prefs?.read_preference(/datum/preference/toggle/show_dsay))
|
||||
to_chat(src, "<span class='warning'>You have deadchat muted.</span>")
|
||||
to_chat(src, span_warning("You have deadchat muted."))
|
||||
return
|
||||
|
||||
if (src.handle_spam_prevention(msg,MUTE_DEADCHAT))
|
||||
@@ -26,6 +26,6 @@
|
||||
if (!msg)
|
||||
return
|
||||
|
||||
say_dead_direct("<span class='name'>[stafftype]([src.holder.fakekey ? src.holder.fakekey : src.key])</span> says, <span class='message'>\"[msg]\"</span>")
|
||||
say_dead_direct(span_name("[stafftype]([src.holder.fakekey ? src.holder.fakekey : src.key])</span> says, <span class='message'>\"[msg]\""))
|
||||
|
||||
feedback_add_details("admin_verb","D") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
user = usr
|
||||
I = user.get_active_hand()
|
||||
if(!I || !istype(I))
|
||||
to_chat(user, "<span class='warning'>You need to have something in your active hand, to use this verb.</span>")
|
||||
to_chat(user, span_warning("You need to have something in your active hand, to use this verb."))
|
||||
return
|
||||
var/weapon_attack_speed = user.get_attack_speed(I) / 10
|
||||
var/weapon_damage = I.force
|
||||
@@ -52,24 +52,24 @@
|
||||
P = ammo.BB
|
||||
|
||||
else
|
||||
to_chat(user, "<span class='warning'>DPS calculation by this verb is not supported for \the [G]'s type. Energy or Ballistic only, sorry.</span>")
|
||||
to_chat(user, span_warning("DPS calculation by this verb is not supported for \the [G]'s type. Energy or Ballistic only, sorry."))
|
||||
|
||||
weapon_damage = P.damage
|
||||
weapon_attack_speed = G.fire_delay / 10
|
||||
qdel(P)
|
||||
|
||||
var/DPS = weapon_damage / weapon_attack_speed
|
||||
to_chat(user, "<span class='notice'>Damage: [weapon_damage][modified_damage_percent != 1 ? " (Modified by [modified_damage_percent*100]%)":""]</span>")
|
||||
to_chat(user, "<span class='notice'>Attack Speed: [weapon_attack_speed]/s</span>")
|
||||
to_chat(user, "<span class='notice'>\The [I] does <b>[DPS]</b> damage per second.</span>")
|
||||
to_chat(user, span_notice("Damage: [weapon_damage][modified_damage_percent != 1 ? " (Modified by [modified_damage_percent*100]%)":""]"))
|
||||
to_chat(user, span_notice("Attack Speed: [weapon_attack_speed]/s"))
|
||||
to_chat(user, span_notice("\The [I] does <b>[DPS]</b> damage per second."))
|
||||
if(DPS > 0)
|
||||
to_chat(user, "<span class='notice'>At your maximum health ([user.getMaxHealth()]), it would take approximately;</span>")
|
||||
to_chat(user, "<span class='notice'>[(user.getMaxHealth() - CONFIG_GET(number/health_threshold_softcrit)) / DPS] seconds to softcrit you. ([CONFIG_GET(number/health_threshold_softcrit)] health)</span>") // CHOMPEdit
|
||||
to_chat(user, "<span class='notice'>[(user.getMaxHealth() - CONFIG_GET(number/health_threshold_crit)) / DPS] seconds to hardcrit you. ([CONFIG_GET(number/health_threshold_crit)] health)</span>") // CHOMPEdit
|
||||
to_chat(user, "<span class='notice'>[(user.getMaxHealth() - CONFIG_GET(number/health_threshold_dead)) / DPS] seconds to kill you. ([CONFIG_GET(number/health_threshold_dead)] health)</span>") // CHOMPEdit
|
||||
to_chat(user, span_notice("At your maximum health ([user.getMaxHealth()]), it would take approximately;"))
|
||||
to_chat(user, span_notice("[(user.getMaxHealth() - CONFIG_GET(number/health_threshold_softcrit)) / DPS] seconds to softcrit you. ([CONFIG_GET(number/health_threshold_softcrit)] health)")) // CHOMPEdit
|
||||
to_chat(user, span_notice("[(user.getMaxHealth() - CONFIG_GET(number/health_threshold_crit)) / DPS] seconds to hardcrit you. ([CONFIG_GET(number/health_threshold_crit)] health)")) // CHOMPEdit
|
||||
to_chat(user, span_notice("[(user.getMaxHealth() - CONFIG_GET(number/health_threshold_dead)) / DPS] seconds to kill you. ([CONFIG_GET(number/health_threshold_dead)] health)")) // CHOMPEdit
|
||||
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You need to be a living mob, with hands, and for an object to be in your active hand, to use this verb.</span>")
|
||||
to_chat(user, span_warning("You need to be a living mob, with hands, and for an object to be in your active hand, to use this verb."))
|
||||
return
|
||||
|
||||
/client/proc/Cell()
|
||||
@@ -173,7 +173,7 @@
|
||||
M:Alienize()
|
||||
feedback_add_details("admin_verb","MKAL") //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.")
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] made [key_name(M)] into an alien.</span>", 1)
|
||||
message_admins(span_notice("[key_name_admin(usr)] made [key_name(M)] into an alien."), 1)
|
||||
else
|
||||
tgui_alert_async(usr, "Invalid mob")
|
||||
|
||||
|
||||
@@ -14,15 +14,15 @@
|
||||
return
|
||||
|
||||
if(!istype(H))
|
||||
to_chat(usr,"<span class='warning'>That mob type ([H.type]) doesn't support NIFs, sorry.</span>")
|
||||
to_chat(usr,span_warning("That mob type ([H.type]) doesn't support NIFs, sorry."))
|
||||
return
|
||||
|
||||
if(!H.get_organ(BP_HEAD))
|
||||
to_chat(usr,"<span class='warning'>Target is unsuitable.</span>")
|
||||
to_chat(usr,span_warning("Target is unsuitable."))
|
||||
return
|
||||
|
||||
if(H.nif)
|
||||
to_chat(usr,"<span class='warning'>Target already has a NIF.</span>")
|
||||
to_chat(usr,span_warning("Target already has a NIF."))
|
||||
return
|
||||
|
||||
if(H.species.flags & NO_SCAN)
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
var/new_fps = round(tgui_input_number(usr, "Sets game frames-per-second. Can potentially break the game (default: [CONFIG_GET(number/fps)])", "FPS", world.fps, round(CONFIG_GET(number/fps) * 1.5))) // CHOMPEdit
|
||||
if(new_fps <= 0)
|
||||
to_chat(src, "<span class='danger'>Error: set_server_fps(): Invalid world.fps value. No changes made.</span>")
|
||||
to_chat(src, span_danger("Error: set_server_fps(): Invalid world.fps value. No changes made."))
|
||||
return
|
||||
if(new_fps > CONFIG_GET(number/fps) * 1.5) // CHOMPEdit
|
||||
if(tgui_alert(src, "You are setting fps to a high value:\n\t[new_fps] frames-per-second\n\tconfig.fps = [CONFIG_GET(number/fps)]", "Warning!", list("Confirm", "ABORT-ABORT-ABORT")) != "Confirm") // CHOMPEdit
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
return
|
||||
|
||||
if(template.load(T, centered = TRUE, orientation=orientation))
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] has placed a map template ([template.name]).</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] has placed a map template ([template.name])."))
|
||||
else
|
||||
to_chat(usr, "Failed to place map")
|
||||
if(usr)
|
||||
@@ -63,7 +63,7 @@
|
||||
|
||||
if(tgui_alert(usr,"Confirm map load.", "Template Confirm",list("No","Yes")) == "Yes")
|
||||
if(template.load_new_z(orientation=orientation))
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] has placed a map template ([template.name]) on Z level [world.maxz].</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] has placed a map template ([template.name]) on Z level [world.maxz]."))
|
||||
else
|
||||
to_chat(usr, "Failed to place map")
|
||||
|
||||
@@ -83,6 +83,6 @@
|
||||
if(M.preload_size(map))
|
||||
to_chat(usr, "Map template '[map]' ready to place ([M.width]x[M.height])")
|
||||
SSmapping.map_templates[M.name] = M
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] has uploaded a map template ([map])</span>")
|
||||
message_admins(span_adminnotice("[key_name_admin(usr)] has uploaded a map template ([map])"))
|
||||
else
|
||||
to_chat(usr, "Map template '[map]' failed to load properly")
|
||||
|
||||
@@ -20,11 +20,11 @@
|
||||
if(tgui_alert(usr, "This robot has not yet selected a module. Would you like to toggle combat module override?","Confirm",list("Yes","No"))!="Yes")
|
||||
continue
|
||||
target.crisis_override = !target.crisis_override
|
||||
to_chat(usr, "<span class='danger'>You [target.crisis_override? "enabled":"disabled"] [target]'s combat module overwrite.</span>")
|
||||
to_chat(usr, span_danger("You [target.crisis_override? "enabled":"disabled"] [target]'s combat module overwrite."))
|
||||
continue
|
||||
if(MODIFIY_ROBOT_LIMIT_MODULES_ADD)
|
||||
if(target.restrict_modules_to.len)
|
||||
to_chat(usr, "<span class='warning'>[target]'s modules are already restricted. For details you can use the remove verb to show all active restrictions.</span>")
|
||||
to_chat(usr, span_warning("[target]'s modules are already restricted. For details you can use the remove verb to show all active restrictions."))
|
||||
var/list/possible_options = list()
|
||||
for(var/entry in robot_modules)
|
||||
if(!target.restrict_modules_to.Find(entry))
|
||||
@@ -35,16 +35,16 @@
|
||||
break
|
||||
possible_options -= selected_type
|
||||
target.restrict_modules_to += selected_type
|
||||
to_chat(usr, "<span class='danger'>You added [selected_type] to [target]'s possible modules list.</span>")
|
||||
to_chat(usr, span_danger("You added [selected_type] to [target]'s possible modules list."))
|
||||
continue
|
||||
if(MODIFIY_ROBOT_LIMIT_MODULES_REMOVE)
|
||||
while(TRUE)
|
||||
var/selected_type = tgui_input_list(usr, "Please select the module type to remove. Removing all module types here will allow default station module selection.", "Module types", target.restrict_modules_to)
|
||||
if(!selected_type || selected_type == "Cancel")
|
||||
to_chat(usr, "<span class='danger'>[target] uses the default module list without special restrictions.</span>")
|
||||
to_chat(usr, span_danger("[target] uses the default module list without special restrictions."))
|
||||
break
|
||||
target.restrict_modules_to -= selected_type
|
||||
to_chat(usr, "<span class='danger'>You removed [selected_type] from [target]'s possible modules list.</span>")
|
||||
to_chat(usr, span_danger("You removed [selected_type] from [target]'s possible modules list."))
|
||||
continue
|
||||
|
||||
if(!target.module.modules)
|
||||
@@ -59,7 +59,7 @@
|
||||
return
|
||||
|
||||
if(!target.module || !target.module.modules)
|
||||
to_chat(usr, "<span class='danger'>[target] was recently reset, you must wait until module selection has been completed before continuing modifying.</span>")
|
||||
to_chat(usr, span_danger("[target] was recently reset, you must wait until module selection has been completed before continuing modifying."))
|
||||
continue
|
||||
|
||||
log_and_message_admins("[key_name(src)] has used MODIFYROBOT ([modification_choice]) on [key_name(target)].")
|
||||
@@ -93,7 +93,7 @@
|
||||
spawn(0) //ChompEDIT Must be after to allow the movement to finish
|
||||
SEND_SIGNAL(add_item, COMSIG_OBSERVER_MOVED)//ChompEDIT - report the movement since setting loc doesn't call Move or Moved
|
||||
target.hud_used.update_robot_modules_display()
|
||||
to_chat(usr, "<span class='danger'>You added \"[add_item]\" to [target].</span>")
|
||||
to_chat(usr, span_danger("You added \"[add_item]\" to [target]."))
|
||||
if(istype(add_item, /obj/item/stack/))
|
||||
var/obj/item/stack/item_with_synth = add_item
|
||||
for(var/synth in item_with_synth.synths)
|
||||
@@ -141,7 +141,7 @@
|
||||
var/selected_module_module = tgui_input_list(usr, "Please select the module to remove", "Modules", active_modules)
|
||||
if(!istype(selected_module_module, /obj/item/))
|
||||
break
|
||||
to_chat(usr, "<span class='danger'>You removed \"[selected_module_module]\" from [target]</span>")
|
||||
to_chat(usr, span_danger("You removed \"[selected_module_module]\" from [target]"))
|
||||
target.uneq_all()
|
||||
target.hud_used.update_robot_modules_display(TRUE)
|
||||
target.module.emag.Remove(selected_module_module)
|
||||
@@ -172,12 +172,12 @@
|
||||
if(istype(U, /obj/item/borg/upgrade/restricted))
|
||||
target.module.supported_upgrades |= new_upgrade
|
||||
if(U.action(target))
|
||||
to_chat(usr, "<span class='danger'>You apply the [U] to [target]!</span>")
|
||||
to_chat(usr, span_danger("You apply the [U] to [target]!"))
|
||||
usr.drop_item()
|
||||
U.loc = target
|
||||
target.hud_used.update_robot_modules_display()
|
||||
else
|
||||
to_chat(usr, "<span class='danger'>Upgrade error!</span>")
|
||||
to_chat(usr, span_danger("Upgrade error!"))
|
||||
if(selected_module_upgrade == "Proto-Kinetic Accelerator")
|
||||
var/list/modkits = list()
|
||||
for(var/modkit in typesof(/obj/item/borg/upgrade/modkit))
|
||||
@@ -193,7 +193,7 @@
|
||||
var/obj/item/borg/upgrade/modkit/M = new new_modkit(src)
|
||||
var/obj/item/gun/energy/kinetic_accelerator/kin = locate() in target.module.modules
|
||||
if(kin.get_remaining_mod_capacity() >= M.cost)
|
||||
to_chat(usr, "<span class='danger'>You installed the [M] into the [kin], [capacity]% remaining!</span>")
|
||||
to_chat(usr, span_danger("You installed the [M] into the [kin], [capacity]% remaining!"))
|
||||
modkits.Remove(selected_ka_upgrade)
|
||||
M.install(kin, target)
|
||||
capacity = kin.get_remaining_mod_capacity()
|
||||
@@ -243,7 +243,7 @@
|
||||
target.radio.channels[selected_radio_channel] += target.module.channels[selected_radio_channel]
|
||||
target.radio.secure_radio_connections[selected_radio_channel] += radio_controller.add_object(target.radio, radiochannels[selected_radio_channel], RADIO_CHAT)
|
||||
available_channels -= selected_radio_channel
|
||||
to_chat(usr, "<span class='danger'>You added \"[selected_radio_channel]\" channel to [target].</span>")
|
||||
to_chat(usr, span_danger("You added \"[selected_radio_channel]\" channel to [target]."))
|
||||
if(MODIFIY_ROBOT_RADIOC_REMOVE)
|
||||
while(TRUE)
|
||||
var/selected_radio_channel = tgui_input_list(usr, "Please select the radio channel to remove", "Channels", target.radio.channels)
|
||||
@@ -261,7 +261,7 @@
|
||||
target.radio.channels[n_chan] -= target.module.channels[n_chan]
|
||||
radio_controller.remove_object(target.radio, radiochannels[selected_radio_channel])
|
||||
target.radio.secure_radio_connections -= selected_radio_channel
|
||||
to_chat(usr, "<span class='danger'>You removed \"[selected_radio_channel]\" channel from [target].</span>")
|
||||
to_chat(usr, span_danger("You removed \"[selected_radio_channel]\" channel from [target]."))
|
||||
if(MODIFIY_ROBOT_COMP_ADD)
|
||||
while(TRUE)
|
||||
var/selected_component = tgui_input_list(usr, "Please select the component to add or replace", "Component", target.components)
|
||||
@@ -289,7 +289,7 @@
|
||||
var/new_power_cell = cell_names[capitalize(selected_cell)]
|
||||
target.cell = new new_power_cell(target)
|
||||
C.wrapped = target.cell
|
||||
to_chat(usr, "<span class='danger'>You replaced \"[C]\" on [target] with \"[selected_cell]\".</span>")
|
||||
to_chat(usr, span_danger("You replaced \"[C]\" on [target] with \"[selected_cell]\"."))
|
||||
if("diagnosis unit")
|
||||
C.wrapped = new /obj/item/robot_parts/robot_component/diagnosis_unit(target)
|
||||
if("camera")
|
||||
@@ -301,7 +301,7 @@
|
||||
C.install()
|
||||
C.installed = 1
|
||||
if(selected_component != "power cell")
|
||||
to_chat(usr, "<span class='danger'>You repplaced \"[C]\" on [target].</span>")
|
||||
to_chat(usr, span_danger("You repplaced \"[C]\" on [target]."))
|
||||
if(MODIFIY_ROBOT_COMP_REMOVE)
|
||||
while(TRUE)
|
||||
var/selected_component = tgui_input_list(usr, "Please select the component to remove", "Component", target.components)
|
||||
@@ -315,7 +315,7 @@
|
||||
C.wrapped = null
|
||||
if(selected_component == "power cell")
|
||||
target.cell = null
|
||||
to_chat(usr, "<span class='danger'>You removed \"[C]\" from [target]</span>")
|
||||
to_chat(usr, span_danger("You removed \"[C]\" from [target]"))
|
||||
if(MODIFIY_ROBOT_SWAP_MODULE)
|
||||
var/selected_module = tgui_input_list(usr, "Which Module would you like to use?", "Module", robot_modules)
|
||||
if(!selected_module || selected_module == "Cancel")
|
||||
@@ -337,10 +337,10 @@
|
||||
if(tgui_alert(usr, "Are you sure that you want to reset the entire module?","Confirm",list("Yes","No"))!="Yes")
|
||||
continue
|
||||
target.module_reset(FALSE)
|
||||
to_chat(usr, "<span class='danger'>You resetted [target]'s module selection.</span>")
|
||||
to_chat(usr, span_danger("You resetted [target]'s module selection."))
|
||||
if(MODIFIY_ROBOT_TOGGLE_ERT)
|
||||
target.crisis_override = !target.crisis_override
|
||||
to_chat(usr, "<span class='danger'>You [target.crisis_override? "enabled":"disabled"] [target]'s combat module overwrite.</span>")
|
||||
to_chat(usr, span_danger("You [target.crisis_override? "enabled":"disabled"] [target]'s combat module overwrite."))
|
||||
if(tgui_alert(usr, "Do you want to reset the module as well to allow selection?","Confirm",list("Yes","No"))!="Yes")
|
||||
continue
|
||||
target.module_reset(FALSE)
|
||||
@@ -350,17 +350,17 @@
|
||||
if(access_synth in card.GetAccess())
|
||||
card.access -= get_all_station_access()
|
||||
card.access -= access_synth
|
||||
to_chat(usr, "<span class='danger'>You revoke station access from [target].</span>")
|
||||
to_chat(usr, span_danger("You revoke station access from [target]."))
|
||||
else
|
||||
card.access |= get_all_station_access()
|
||||
card.access |= access_synth
|
||||
to_chat(usr, "<span class='danger'>You grant station access to [target].</span>")
|
||||
to_chat(usr, span_danger("You grant station access to [target]."))
|
||||
if(MODIFIY_ROBOT_TOGGLE_CENT_ACCESS)
|
||||
if(target?.idcard?.GetAccess())
|
||||
var/obj/item/card/id/synthetic/card = target.idcard
|
||||
if(access_cent_specops in card.GetAccess())
|
||||
card.access -= get_all_centcom_access()
|
||||
to_chat(usr, "<span class='danger'>You revoke central access from [target].</span>")
|
||||
to_chat(usr, span_danger("You revoke central access from [target]."))
|
||||
else
|
||||
card.access |= get_all_centcom_access()
|
||||
to_chat(usr, "<span class='danger'>You grant central access to [target].</span>")
|
||||
to_chat(usr, span_danger("You grant central access to [target]."))
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
return
|
||||
|
||||
if (!CONFIG_GET(flag/sql_enabled)) // CHOMPEdit
|
||||
to_chat(usr, "<span class='adminnotice'>The Database is not enabled!</span>")
|
||||
to_chat(usr, span_adminnotice("The Database is not enabled!"))
|
||||
return
|
||||
|
||||
CONFIG_SET(flag/panic_bunker, !CONFIG_GET(flag/panic_bunker)) // CHOMPEdit
|
||||
|
||||
@@ -34,7 +34,7 @@ var/list/sounds_cache = list()
|
||||
return
|
||||
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
|
||||
|
||||
@@ -121,7 +121,7 @@ var/list/sounds_cache = list()
|
||||
return
|
||||
var/ytdl = CONFIG_GET(string/invoke_youtubedl) // CHOMPEdit
|
||||
if(!ytdl)
|
||||
to_chat(user, "<span class='boldwarning'>Youtube-dl was not configured, action unavailable</span>", confidential = TRUE) //Check config.txt for the INVOKE_YOUTUBEDL value
|
||||
to_chat(user, span_boldwarning("Youtube-dl was not configured, action unavailable"), confidential = TRUE) //Check config.txt for the INVOKE_YOUTUBEDL value
|
||||
return
|
||||
var/web_sound_url = ""
|
||||
var/stop_web_sounds = FALSE
|
||||
@@ -134,15 +134,15 @@ var/list/sounds_cache = list()
|
||||
var/stdout = output[SHELLEO_STDOUT]
|
||||
var/stderr = output[SHELLEO_STDERR]
|
||||
if(errorlevel)
|
||||
to_chat(user, "<span class='boldwarning'>Youtube-dl URL retrieval FAILED:</span>", confidential = TRUE)
|
||||
to_chat(user, "<span class='warning'>[stderr]</span>", confidential = TRUE)
|
||||
to_chat(user, span_boldwarning("Youtube-dl URL retrieval FAILED:"), confidential = TRUE)
|
||||
to_chat(user, span_warning("[stderr]"), confidential = TRUE)
|
||||
return
|
||||
var/list/data
|
||||
try
|
||||
data = json_decode(stdout)
|
||||
catch(var/exception/e)
|
||||
to_chat(user, "<span class='boldwarning'>Youtube-dl JSON parsing FAILED:</span>", confidential = TRUE)
|
||||
to_chat(user, "<span class='warning'>[e]: [stdout]</span>", confidential = TRUE)
|
||||
to_chat(user, span_boldwarning("Youtube-dl JSON parsing FAILED:"), confidential = TRUE)
|
||||
to_chat(user, span_warning("[e]: [stdout]"), confidential = TRUE)
|
||||
return
|
||||
if (data["url"])
|
||||
web_sound_url = data["url"]
|
||||
@@ -175,16 +175,16 @@ var/list/sounds_cache = list()
|
||||
switch(anon)
|
||||
if("Yes")
|
||||
if(res == "Yes")
|
||||
to_chat(world, "<span class='boldannounce'>[user.key] played: [webpage_url]</span>", confidential = TRUE)
|
||||
to_chat(world, span_boldannounce("[user.key] played: [webpage_url]"), confidential = TRUE)
|
||||
else
|
||||
to_chat(world, "<span class='boldannounce'>[user.key] played a sound</span>", confidential = TRUE)
|
||||
to_chat(world, span_boldannounce("[user.key] played a sound"), confidential = TRUE)
|
||||
if("No")
|
||||
if(res == "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", null)
|
||||
return
|
||||
if(credit)
|
||||
to_chat(world, "<span class='boldannounce'>[credit]</span>", confidential = TRUE)
|
||||
to_chat(world, span_boldannounce("[credit]"), confidential = TRUE)
|
||||
//SSblackbox.record_feedback("nested tally", "played_url", 1, list("[user.ckey]", "[input]"))
|
||||
log_admin("[key_name(user)] played web sound: [input]")
|
||||
message_admins("[key_name(user)] played web sound: [input]")
|
||||
@@ -197,7 +197,7 @@ var/list/sounds_cache = list()
|
||||
stop_web_sounds = TRUE
|
||||
if(web_sound_url && !findtext(web_sound_url, GLOB.is_http_protocol))
|
||||
tgui_alert(user, "The media provider returned a content URL that isn't using the HTTP or HTTPS protocol. This is a security risk and the sound will not be played.", "Security Risk", list("OK"))
|
||||
to_chat(user, "<span class='boldwarning'>BLOCKED: Content URL not using HTTP(S) Protocol!</span>", confidential = TRUE)
|
||||
to_chat(user, span_boldwarning("BLOCKED: Content URL not using HTTP(S) Protocol!"), confidential = TRUE)
|
||||
|
||||
return
|
||||
if(web_sound_url || stop_web_sounds)
|
||||
@@ -222,7 +222,7 @@ var/list/sounds_cache = list()
|
||||
|
||||
var/ytdl = CONFIG_GET(string/invoke_youtubedl) // CHOMPEdit
|
||||
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
|
||||
|
||||
if(S_TIMER_COOLDOWN_TIMELEFT(SStimer, COOLDOWN_INTERNET_SOUND))
|
||||
@@ -235,8 +235,8 @@ var/list/sounds_cache = list()
|
||||
if(length(web_sound_input))
|
||||
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
|
||||
web_sound(usr, web_sound_input)
|
||||
else
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
return
|
||||
|
||||
var/icon/cross = icon('icons/obj/storage.dmi',"bible")
|
||||
var/msg = "<span class='filter_pray'>" + span_blue("[icon2html(cross, GLOB.admins)] <b>" + span_purple("PRAY: ") + "[key_name(src, 1)] [ADMIN_QUE(src)] [ADMIN_PP(src)] [ADMIN_VV(src)] [ADMIN_SM(src)] ([admin_jump_link(src, src)]) [ADMIN_CA(src)] [ADMIN_SC(src)] [ADMIN_SMITE(src)]:</b> [raw_msg]") + "</span>"
|
||||
var/msg = span_filter_pray(span_blue("[icon2html(cross, GLOB.admins)] <b>" + span_purple("PRAY: ") + "[key_name(src, 1)] [ADMIN_QUE(src)] [ADMIN_PP(src)] [ADMIN_VV(src)] [ADMIN_SM(src)] ([admin_jump_link(src, src)]) [ADMIN_CA(src)] [ADMIN_SC(src)] [ADMIN_SMITE(src)]:</b> [raw_msg]"))
|
||||
|
||||
for(var/client/C in GLOB.admins)
|
||||
if(!check_rights(R_ADMIN|R_EVENT, 0, C)) //CHOMPEdit
|
||||
|
||||
@@ -101,7 +101,7 @@
|
||||
to_chat(M, "<B>You hear a voice in your head...</B> <i>[msg]</i>")
|
||||
|
||||
log_admin("SubtlePM: [key_name(usr)] -> [key_name(M)] : [msg]")
|
||||
msg = "<span class='pm adminnotice'><b> SubtleMessage: [key_name_admin(usr)] -> [key_name_admin(M)] :</b> [msg]</span>"
|
||||
msg = span_pm(span_adminnotice("<b> SubtleMessage: [key_name_admin(usr)] -> [key_name_admin(M)] :</b> [msg]"))
|
||||
message_admins(msg)
|
||||
admin_ticket_log(M, msg)
|
||||
feedback_add_details("admin_verb","SMS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
@@ -149,7 +149,7 @@
|
||||
|
||||
to_chat(M, msg)
|
||||
log_admin("DirectNarrate: [key_name(usr)] to ([M.name]/[M.key]): [msg]")
|
||||
msg = "<span class='pm adminnotice'><b> DirectNarrate: [key_name(usr)] to ([M.name]/[M.key]):</b> [msg]<BR></span>"
|
||||
msg = span_pm(span_adminnotice("<b> DirectNarrate: [key_name(usr)] to ([M.name]/[M.key]):</b> [msg]<BR>"))
|
||||
message_admins(msg)
|
||||
admin_ticket_log(M, msg)
|
||||
feedback_add_details("admin_verb","DIRN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
@@ -208,7 +208,7 @@
|
||||
M.client.prefs.muted |= mute_type
|
||||
log_admin("SPAM AUTOMUTE: [muteunmute] [key_name(M)] from [mute_string]")
|
||||
message_admins("SPAM AUTOMUTE: [muteunmute] [key_name_admin(M)] from [mute_string].", 1)
|
||||
to_chat(M, "<span class='alert'>You have been [muteunmute] from [mute_string] by the SPAM AUTOMUTE system. Contact an admin.</span>")
|
||||
to_chat(M, span_alert("You have been [muteunmute] from [mute_string] by the SPAM AUTOMUTE system. Contact an admin."))
|
||||
feedback_add_details("admin_verb","AUTOMUTE") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
return
|
||||
|
||||
@@ -298,15 +298,15 @@ Ccomp's first proc.
|
||||
for(var/client/C as anything in GLOB.clients)
|
||||
if(C.ckey == target)
|
||||
found_client = C
|
||||
to_chat(C, "<span class='notice'><B>You may now respawn. You should roleplay as if you learned nothing about the round during your time with the dead.</B></span>")
|
||||
to_chat(C, span_notice("<B>You may now respawn. You should roleplay as if you learned nothing about the round during your time with the dead.</B>"))
|
||||
if(isobserver(C.mob))
|
||||
var/mob/observer/dead/G = C.mob
|
||||
G.can_reenter_corpse = 1
|
||||
to_chat(C, "<span class='notice'><B>You can also re-enter your corpse, if you still have one!</B></span>")
|
||||
to_chat(C, span_notice("<B>You can also re-enter your corpse, if you still have one!</B>"))
|
||||
break
|
||||
|
||||
if(!found_client)
|
||||
to_chat(src, "<span class='notice'>The associated client didn't appear to be connected, so they couldn't be notified, but they can now respawn if they reconnect.</span>")
|
||||
to_chat(src, span_notice("The associated client didn't appear to be connected, so they couldn't be notified, but they can now respawn if they reconnect."))
|
||||
|
||||
log_admin("[key_name(usr)] allowed [found_client ? key_name(found_client) : target] to bypass the respawn time limit")
|
||||
message_admins("Admin [key_name_admin(usr)] allowed [found_client ? key_name_admin(found_client) : target] to bypass the respawn time limit", 1)
|
||||
@@ -638,7 +638,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
M.revive()
|
||||
|
||||
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)
|
||||
else
|
||||
|
||||
@@ -16,9 +16,9 @@
|
||||
var/very_big = is_extreme_size(size_multiplier)
|
||||
|
||||
if(very_big && can_be_big) // made an extreme size in an area that allows it, don't assume adminbuse
|
||||
to_chat(src,"<span class='warning'>[L] will lose this size upon moving into an area where this size is not allowed.</span>")
|
||||
to_chat(src,span_warning("[L] will lose this size upon moving into an area where this size is not allowed."))
|
||||
else if(very_big) // made an extreme size in an area that doesn't allow it, assume adminbuse
|
||||
to_chat(src,"<span class='warning'>[L] will retain this normally unallowed size outside this area.</span>")
|
||||
to_chat(src,span_warning("[L] will retain this normally unallowed size outside this area."))
|
||||
|
||||
L.resize(size_multiplier, animate = TRUE, uncapped = TRUE, ignore_prefs = TRUE)
|
||||
|
||||
|
||||
@@ -37,13 +37,13 @@
|
||||
if(SMITE_SPONTANEOUSCOMBUSTION)
|
||||
target.adjust_fire_stacks(10)
|
||||
target.IgniteMob()
|
||||
target.visible_message("<span class='danger'>[target] bursts into flames!</span>")
|
||||
target.visible_message(span_danger("[target] bursts into flames!"))
|
||||
|
||||
if(SMITE_LIGHTNINGBOLT)
|
||||
var/turf/T = get_step(get_step(target, NORTH), NORTH)
|
||||
T.Beam(target, icon_state="lightning[rand(1,12)]", time = 5)
|
||||
target.electrocute_act(75,def_zone = BP_HEAD)
|
||||
target.visible_message("<span class='danger'>[target] is struck by lightning!</span>")
|
||||
target.visible_message(span_danger("[target] is struck by lightning!"))
|
||||
|
||||
if(SMITE_SHADEKIN_ATTACK)
|
||||
var/turf/Tt = get_turf(target) //Turf for target
|
||||
@@ -140,7 +140,7 @@
|
||||
shadekin.ckey = ckey
|
||||
|
||||
else //Permakin'd
|
||||
to_chat(target,"<span class='danger'>You're carried off into The Dark by the [shadekin]. Who knows if you'll find your way back?</span>")
|
||||
to_chat(target,span_danger("You're carried off into The Dark by the [shadekin]. Who knows if you'll find your way back?"))
|
||||
target.ghostize()
|
||||
qdel(target)
|
||||
qdel(shadekin)
|
||||
@@ -166,7 +166,7 @@
|
||||
if(SMITE_PEPPERNADE)
|
||||
var/obj/item/grenade/chem_grenade/teargas/grenade = new /obj/item/grenade/chem_grenade/teargas
|
||||
grenade.loc = target.loc
|
||||
to_chat(target,"<span class='warning'>GRENADE?!</span>")
|
||||
to_chat(target,span_warning("GRENADE?!"))
|
||||
grenade.detonate()
|
||||
|
||||
if(SMITE_SPICEREQUEST)
|
||||
@@ -240,11 +240,11 @@ var/redspace_abduction_z
|
||||
|
||||
/proc/redspace_abduction(mob/living/target, user)
|
||||
if(redspace_abduction_z < 0)
|
||||
to_chat(user,"<span class='warning'>The abduction z-level is already being created. Please wait.</span>")
|
||||
to_chat(user,span_warning("The abduction z-level is already being created. Please wait."))
|
||||
return
|
||||
if(!redspace_abduction_z)
|
||||
redspace_abduction_z = -1
|
||||
to_chat(user,"<span class='warning'>This is the first use of the verb this shift, it will take a minute to configure the abduction z-level. It will be z[world.maxz+1].</span>")
|
||||
to_chat(user,span_warning("This is the first use of the verb this shift, it will take a minute to configure the abduction z-level. It will be z[world.maxz+1]."))
|
||||
var/z = ++world.maxz
|
||||
world.max_z_changed()
|
||||
for(var/x = 1 to world.maxx)
|
||||
@@ -262,8 +262,8 @@ var/redspace_abduction_z
|
||||
var/size_of_square = 26
|
||||
var/halfbox = round(size_of_square*0.5)
|
||||
target.transforming = TRUE
|
||||
to_chat(target,"<span class='danger'>You feel a strange tug, deep inside. You're frozen in momentarily...</span>")
|
||||
to_chat(user,"<span class='notice'>Beginning vis_contents copy to abduction site, player mob is frozen.</span>")
|
||||
to_chat(target,span_danger("You feel a strange tug, deep inside. You're frozen in momentarily..."))
|
||||
to_chat(user,span_notice("Beginning vis_contents copy to abduction site, player mob is frozen."))
|
||||
sleep(1 SECOND)
|
||||
//Lower left corner of a working box
|
||||
var/llc_x = max(0,halfbox-target.x) + min(target.x+halfbox, world.maxx) - size_of_square
|
||||
@@ -314,14 +314,14 @@ var/redspace_abduction_z
|
||||
T.vis_contents.Cut()
|
||||
|
||||
target.forceMove(locate(target.x,target.y,redspace_abduction_z))
|
||||
to_chat(target,"<span class='danger'>The tug relaxes, but everything around you looks... slightly off.</span>")
|
||||
to_chat(user,"<span class='notice'>The mob has been moved. ([admin_jump_link(target,usr.client.holder)])</span>")
|
||||
to_chat(target,span_danger("The tug relaxes, but everything around you looks... slightly off."))
|
||||
to_chat(user,span_notice("The mob has been moved. ([admin_jump_link(target,usr.client.holder)])"))
|
||||
|
||||
target.transforming = FALSE
|
||||
|
||||
/proc/fake_autosave(var/mob/living/target, var/client/user, var/wide)
|
||||
if(!istype(target) || !target.client)
|
||||
to_chat(user, "<span class='warning'>Skipping [target] because they are not a /mob/living or have no client.</span>")
|
||||
to_chat(user, span_warning("Skipping [target] because they are not a /mob/living or have no client."))
|
||||
return
|
||||
|
||||
if(wide)
|
||||
|
||||
@@ -178,7 +178,7 @@
|
||||
if(!user)
|
||||
return FALSE
|
||||
if(!(var_to_edit in vars))
|
||||
to_chat(user, "<span class='warning'>\The [src] does not have a var '[var_to_edit]'</span>")
|
||||
to_chat(user, span_warning("\The [src] does not have a var '[var_to_edit]'"))
|
||||
return FALSE
|
||||
if(var_to_edit in VV_static())
|
||||
return FALSE
|
||||
|
||||
@@ -261,7 +261,7 @@
|
||||
to_chat(usr, "No objects of this type exist")
|
||||
return
|
||||
log_admin("[key_name(usr)] deleted all objects of type [O_type] ([i] objects deleted) ")
|
||||
message_admins("<span class='notice'>[key_name(usr)] deleted all objects of type [O_type] ([i] objects deleted) </span>")
|
||||
message_admins(span_notice("[key_name(usr)] deleted all objects of type [O_type] ([i] objects deleted) "))
|
||||
if("Type and subtypes")
|
||||
var/i = 0
|
||||
for(var/obj/Obj in world)
|
||||
@@ -273,7 +273,7 @@
|
||||
to_chat(usr, "No objects of this type exist")
|
||||
return
|
||||
log_admin("[key_name(usr)] deleted all objects of type or subtype of [O_type] ([i] objects deleted) ")
|
||||
message_admins("<span class='notice'>[key_name(usr)] deleted all objects of type or subtype of [O_type] ([i] objects deleted) </span>")
|
||||
message_admins(span_notice("[key_name(usr)] deleted all objects of type or subtype of [O_type] ([i] objects deleted) "))
|
||||
else if(href_list["fakepdapropconvo"])
|
||||
if(!check_rights(R_FUN)) return
|
||||
|
||||
@@ -564,7 +564,7 @@
|
||||
|
||||
if(amount != 0)
|
||||
log_admin("[key_name(usr)] dealt [amount] amount of [Text] damage to [L]")
|
||||
message_admins("<span class='notice'>[key_name(usr)] dealt [amount] amount of [Text] damage to [L]</span>")
|
||||
message_admins(span_notice("[key_name(usr)] dealt [amount] amount of [Text] damage to [L]"))
|
||||
href_list["datumrefresh"] = href_list["mobToDamage"]
|
||||
else if(href_list["expose"])
|
||||
if(!check_rights(R_ADMIN, FALSE))
|
||||
@@ -582,7 +582,7 @@
|
||||
if (prompt != "Yes")
|
||||
return
|
||||
if(!thing)
|
||||
to_chat(usr, "<span class='warning'>The object you tried to expose to [C] no longer exists (GC'd)</span>")
|
||||
to_chat(usr, span_warning("The object you tried to expose to [C] no longer exists (GC'd)"))
|
||||
return
|
||||
message_admins("[key_name_admin(usr)] Showed [key_name_admin(C)] a <a href='?_src_=vars;[HrefToken(TRUE)];datumrefresh=\ref[thing]'>VV window</a>")
|
||||
log_admin("Admin [key_name(usr)] Showed [key_name(C)] a VV window of a [src]")
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
var/static/cookieoffset = rand(1, 9999) //to force cookies to reset after the round.
|
||||
|
||||
if(!usr.client || !usr.client.holder) //The usr vs src abuse in this proc is intentional and must not be changed
|
||||
to_chat(usr, "<span class='danger'>You need to be an administrator to access this.</span>")
|
||||
to_chat(usr, span_danger("You need to be an administrator to access this."))
|
||||
return
|
||||
|
||||
if(!D)
|
||||
|
||||
Reference in New Issue
Block a user