[MIRROR] JSON Logging Refactor (#11623)

Co-authored-by: Selis <12716288+ItsSelis@users.noreply.github.com>
Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
CHOMPStation2StaffMirrorBot
2025-09-14 11:05:26 -07:00
committed by GitHub
parent 272afa33c8
commit 5a62077f2c
425 changed files with 4081 additions and 2568 deletions

View File

@@ -99,11 +99,11 @@
var/more = ""
if(M)
more = "(<A href='byond://?_src_=holder;[HrefToken()];adminmoreinfo=\ref[M]'>?</a>)"
message_admins("A chemical smoke reaction has taken place in ([whereLink])[contained]. Last associated key is [print_name][more].", 0, 1)
log_game("A chemical smoke reaction has taken place in ([where])[contained]. Last associated key is [print_name].")
message_admins("A chemical smoke reaction has taken place in ([whereLink]) [contained]. Last associated key is [print_name][more].", 0, 1)
log_game("A chemical smoke reaction has taken place in ([where]) [contained]. Last associated key is [print_name].")
else
message_admins("A chemical smoke reaction has taken place in ([whereLink]). No associated key.", 0, 1)
log_game("A chemical smoke reaction has taken place in ([where])[contained]. No associated key.")
log_game("A chemical smoke reaction has taken place in ([where]) [contained]. No associated key.")
//Runs the chem smoke effect
// Spawns damage over time loop for each reagent held in the cloud.

View File

@@ -22,7 +22,8 @@
/obj/effect/gibspawner/proc/Gib(atom/location, var/datum/dna/MobDNA = null)
if(gibtypes.len != gibamounts.len || gibamounts.len != gibdirections.len)
to_world(span_filter_system(span_warning("Gib list length mismatch!")))
to_chat(world, span_filter_system(span_warning("Gib list length mismatch!")))
log_world("Gib list length mismatch!")
return
var/obj/effect/decal/cleanable/blood/gibs/gib = null

View File

@@ -117,7 +117,7 @@
if(using_map)
using_map.secret_levels |= z
else
log_error("[type] mapped in but no using_map")
log_mapping("[type] mapped in but no using_map")
/obj/effect/landmark/hidden_level
delete_me = TRUE
@@ -127,7 +127,7 @@
if(using_map)
using_map.hidden_levels |= z
else
log_error("[type] mapped in but no using_map")
log_mapping("[type] mapped in but no using_map")
/obj/effect/landmark/virtual_reality

View File

@@ -90,7 +90,7 @@ GLOBAL_LIST_EMPTY(all_beam_points)
/obj/effect/map_effect/beam_point/proc/build_beam(var/atom/beam_target)
if(!beam_target)
log_debug("[src] ([src.type] \[[x],[y],[z]\]) failed to build its beam due to not having a target.")
log_mapping("[src] ([src.type] \[[x],[y],[z]\]) failed to build its beam due to not having a target.")
return FALSE
var/datum/beam/new_beam = Beam(beam_target, beam_icon_state, beam_icon, beam_time, beam_max_distance, beam_type, beam_sleep_time)
@@ -102,11 +102,11 @@ GLOBAL_LIST_EMPTY(all_beam_points)
/obj/effect/map_effect/beam_point/proc/destroy_beam(var/datum/beam/B)
if(!B)
log_debug("[src] ([src.type] \[[x],[y],[z]\]) was asked to destroy a beam that does not exist.")
log_mapping("[src] ([src.type] \[[x],[y],[z]\]) was asked to destroy a beam that does not exist.")
return FALSE
if(!(B in my_beams))
log_debug("[src] ([src.type] \[[x],[y],[z]\]) was asked to destroy a beam it did not own.")
log_mapping("[src] ([src.type] \[[x],[y],[z]\]) was asked to destroy a beam it did not own.")
return FALSE
my_beams -= B

View File

@@ -23,7 +23,7 @@
flick("[icon_state]_erupt",src)
return TRUE
/obj/effect/temporary_effect/eruption/testing/on_eruption(var/turf/Target)
/obj/effect/temporary_effect/eruption/test/on_eruption(var/turf/Target)
flick("[icon_state]_erupt",src)
if(Target)
new /obj/effect/explosion(Target)

View File

@@ -93,18 +93,18 @@
/obj/effect/temporary_effect/pulse/snake/proc/on_enter_turf(var/turf/T)
/obj/effect/temporary_effect/pulse/snake/testing/on_leave_turf(var/turf/T)
/obj/effect/temporary_effect/pulse/snake/test/on_leave_turf(var/turf/T)
if(T)
new /obj/effect/temporary_effect/eruption/testing(T, 3 SECONDS, "#ff0000")
new /obj/effect/temporary_effect/eruption/test(T, 3 SECONDS, "#ff0000")
/obj/effect/temporary_effect/pulse/snake/testing/on_enter_turf(var/turf/T)
/obj/effect/temporary_effect/pulse/snake/test/on_enter_turf(var/turf/T)
if(T)
T.color = "#00ff00"
spawn(3 SECONDS)
T.color = initial(T.color)
/obj/effect/temporary_effect/pulse/snake/testing/hunter/pulse_loop()
/obj/effect/temporary_effect/pulse/snake/test/hunter/pulse_loop()
hunting = locate(/mob/living) in range(7, src)
..()

View File

@@ -452,7 +452,7 @@
//I personally think adding walls to an area is a big deal, so this is commented out.
//BEGIN ESOTERIC BULLSHIT
//log_debug("Origin: [origin.c_airblock(checkT)] SourceT: [sourceT.c_airblock(checkT)] 0=NB 1=AB 2=ZB, 3=B")
//to_chat(world, "Origin: [origin.c_airblock(checkT)] SourceT: [sourceT.c_airblock(checkT)] 0=NB 1=AB 2=ZB, 3=B")
/*
if(origin.c_airblock(checkT)) //If everything breaks and it doesn't want to work, turn on the above debug and check this line. C.L. 0 = not blocked.
continue

View File

@@ -381,7 +381,7 @@
if(text)
exonet.send_message(their_address, "text", text)
im_list += list(list("address" = exonet.address, "to_address" = their_address, "im" = text))
log_pda("(COMM: [src]) sent \"[text]\" to [exonet.get_atom_from_address(their_address)]", ui.user)
ui.user.log_talk("(COMM: [src]) sent \"[text]\" to [exonet.get_atom_from_address(their_address)]", LOG_PDA)
var/obj/item/communicator/comm = exonet.get_atom_from_address(their_address)
to_chat(ui.user, span_notice("[icon2html(src, ui.user.client)] Sent message to [istype(comm, /obj/item/communicator) ? comm.owner : comm.name], <b>\"[text]\"</b> (<a href='byond://?src=\ref[src];action=Reply;target=\ref[exonet.get_atom_from_address(comm.exonet.address)]'>Reply</a>)"))
for(var/mob/M in GLOB.player_list)

View File

@@ -107,7 +107,7 @@
if(message)
exonet.send_message(comm.exonet.address, "text", message)
im_list += list(list("address" = exonet.address, "to_address" = comm.exonet.address, "im" = message))
log_pda("(COMM: [src]) sent \"[message]\" to [exonet.get_atom_from_address(comm.exonet.address)]", usr)
usr.client.mob.log_talk("(COMM: [src]) sent \"[message]\" to [exonet.get_atom_from_address(comm.exonet.address)]", LOG_PDA)
to_chat(usr, span_notice("[icon2html(src,usr.client)] Sent message to [istype(comm, /obj/item/communicator) ? comm.owner : comm.name], <b>\"[message]\"</b> (<a href='byond://?src=\ref[src];action=Reply;target=\ref[exonet.get_atom_from_address(comm.exonet.address)]'>Reply</a>)"))
// Verb: text_communicator()
@@ -159,7 +159,7 @@
to_chat(src, span_notice("You have sent '[text_message]' to [chosen_communicator]."))
exonet_messages.Add(span_bold("To [chosen_communicator]:") + "<br>[text_message]")
log_pda("(DCOMM: [src]) sent \"[text_message]\" to [chosen_communicator]", src)
log_talk("(DCOMM: [src]) sent \"[text_message]\" to [chosen_communicator]", LOG_PDA)
for(var/mob/M in GLOB.player_list)
if(M.stat == DEAD && M.client?.prefs?.read_preference(/datum/preference/toggle/ghost_ears))
if(isnewplayer(M) || M.forbid_seeing_deadchat)

View File

@@ -133,3 +133,58 @@
/obj/item/encryptionkey/ent
name = "entertainment encryption key"
channels = list(CHANNEL_ENTERTAINMENT = 1)
/obj/item/encryptionkey/heads/hop
name = "head of personnel's encryption key"
icon_state = "hop_cypherkey"
channels = list(CHANNEL_SUPPLY = 1, CHANNEL_SERVICE = 1, CHANNEL_COMMAND = 1, CHANNEL_SECURITY = 1, CHANNEL_EXPLORATION = 1)
/obj/item/encryptionkey/heads/ai_integrated
name = "ai integrated encryption key"
desc = "Integrated encryption key"
icon_state = "cap_cypherkey"
channels = list(CHANNEL_COMMAND = 1, CHANNEL_SECURITY = 1, CHANNEL_ENGINEERING = 1, CHANNEL_SCIENCE = 1, CHANNEL_MEDICAL = 1, CHANNEL_SUPPLY = 1, CHANNEL_SERVICE = 1, CHANNEL_AI_PRIVATE = 1, CHANNEL_EXPLORATION = 1)
/obj/item/encryptionkey/heads/captain
name = "site manager's encryption key"
icon_state = "cap_cypherkey"
channels = list(CHANNEL_COMMAND = 1, CHANNEL_SECURITY = 1, CHANNEL_ENGINEERING = 1, CHANNEL_SCIENCE = 1, CHANNEL_MEDICAL = 1, CHANNEL_SUPPLY = 1, CHANNEL_SERVICE = 1, CHANNEL_EXPLORATION = 1)
/obj/item/encryptionkey/heads/rd
name = "research director's encryption key"
icon_state = "rd_cypherkey"
channels = list(CHANNEL_COMMAND = 1, CHANNEL_SCIENCE = 1)
/obj/item/encryptionkey/ert
channels = list(CHANNEL_RESPONSE_TEAM = 1, CHANNEL_SCIENCE = 1, CHANNEL_COMMAND = 1, CHANNEL_MEDICAL = 1, CHANNEL_ENGINEERING = 1, CHANNEL_SECURITY = 1, CHANNEL_SUPPLY = 1, CHANNEL_SERVICE = 1, CHANNEL_EXPLORATION = 1)
/obj/item/encryptionkey/omni //Literally only for the admin intercoms
channels = list(CHANNEL_MERCENARY = 1, CHANNEL_RAIDER = 1, CHANNEL_RESPONSE_TEAM = 1, CHANNEL_SCIENCE = 1, CHANNEL_COMMAND = 1, CHANNEL_MEDICAL = 1, CHANNEL_ENGINEERING = 1, CHANNEL_SECURITY = 1, CHANNEL_SUPPLY = 1, CHANNEL_SERVICE = 1, CHANNEL_EXPLORATION = 1)
/obj/item/encryptionkey/pathfinder
name = "pathfinder's encryption key"
icon_state = "com_cypherkey"
channels = list(CHANNEL_COMMAND = 1, CHANNEL_EXPLORATION = 1)
/obj/item/encryptionkey/qm
name = "quartermaster's encryption key"
icon_state = "qm_cypherkey"
channels = list(CHANNEL_COMMAND = 1, CHANNEL_SUPPLY = 1)
/obj/item/encryptionkey/pilot
name = "pilot's encryption key"
icon_state = "cypherkey"
channels = list(CHANNEL_EXPLORATION = 1)
/obj/item/encryptionkey/explorer
name = "away team's encryption key"
icon_state = "rob_cypherkey"
channels = list(CHANNEL_EXPLORATION = 1)
/obj/item/encryptionkey/sar
name = "fm's encryption key"
icon_state = "med_cypherkey"
channels = list(CHANNEL_MEDICAL = 1, CHANNEL_EXPLORATION = 1)
/obj/item/encryptionkey/talon
channels = list(CHANNEL_TALON = 1)

View File

@@ -119,3 +119,18 @@ GLOBAL_LIST_EMPTY(active_radio_jammers)
cut_overlays()
add_overlay("jammer_overlay_[overlay_percent]")
last_overlay_percent = overlay_percent
//Unlimited use, unlimited range jammer for admins. Turn it on, drop it somewhere, it works.
/obj/item/radio_jammer/admin
jam_range = 255
tick_cost = 0
/proc/is_vore_jammed(var/obj/radio)
var/atom/current = radio
while(current.loc)
if(isbelly(current.loc))
var/obj/belly/B = current.loc
if(B.mode_flags & DM_FLAG_JAMSENSORS)
return TRUE
current = current.loc
return FALSE

View File

@@ -1,14 +0,0 @@
//Unlimited use, unlimited range jammer for admins. Turn it on, drop it somewhere, it works.
/obj/item/radio_jammer/admin
jam_range = 255
tick_cost = 0
/proc/is_vore_jammed(var/obj/radio)
var/atom/current = radio
while(current.loc)
if(isbelly(current.loc))
var/obj/belly/B = current.loc
if(B.mode_flags & DM_FLAG_JAMSENSORS)
return TRUE
current = current.loc
return FALSE

View File

@@ -82,7 +82,7 @@
AIO.link_radio(src)
break
if(!bs_tx_weakref)
testing("A radio [src] at [x],[y],[z] specified bluespace prelink IDs, but the machines with corresponding IDs ([bs_tx_preload_id], [bs_rx_preload_id]) couldn't be found.")
log_mapping("A radio [src] at [x],[y],[z] specified bluespace prelink IDs, but the machines with corresponding IDs ([bs_tx_preload_id], [bs_rx_preload_id]) couldn't be found.")
if(bs_rx_preload_id)
var/found = 0
@@ -100,7 +100,7 @@
found = 1
break
if(!found)
testing("A radio [src] at [x],[y],[z] specified bluespace prelink IDs, but the machines with corresponding IDs ([bs_tx_preload_id], [bs_rx_preload_id]) couldn't be found.")
log_mapping("A radio [src] at [x],[y],[z] specified bluespace prelink IDs, but the machines with corresponding IDs ([bs_tx_preload_id], [bs_rx_preload_id]) couldn't be found.")
/obj/item/radio/Destroy()
qdel(wires)
@@ -821,3 +821,35 @@ GLOBAL_DATUM(autospeaker, /mob/living/silicon/ai/announcer)
bs_rx_preload_id = "Broadcaster A" //Recveive from a transmitter
#undef CANBROADCAST_INNERBOX
/obj/item/radio/phone
subspace_transmission = TRUE
canhear_range = 0
adhoc_fallback = TRUE
/obj/item/radio/emergency
name = "Medbay Emergency Radio Link"
icon_state = "med_walkietalkie"
frequency = MED_I_FREQ
subspace_transmission = TRUE
adhoc_fallback = TRUE
/obj/item/radio/emergency/Initialize(mapload)
. = ..()
internal_channels = GLOB.default_medbay_channels.Copy()
/obj/item/bluespaceradio/tether_prelinked
name = "bluespace radio (tether)"
handset = /obj/item/radio/bluespacehandset/linked/tether_prelinked
/obj/item/radio/bluespacehandset/linked/tether_prelinked
bs_tx_preload_id = "tether_rx" //Transmit to a receiver
bs_rx_preload_id = "tether_tx" //Recveive from a transmitter
/obj/item/bluespaceradio/talon_prelinked
name = "bluespace radio (talon)"
handset = /obj/item/radio/bluespacehandset/linked/talon_prelinked
/obj/item/radio/bluespacehandset/linked/talon_prelinked
bs_tx_preload_id = "talon_aio" //Transmit to a receiver
bs_rx_preload_id = "talon_aio" //Recveive from a transmitter

View File

@@ -1,33 +0,0 @@
/obj/item/radio/phone
subspace_transmission = TRUE
canhear_range = 0
adhoc_fallback = TRUE
/obj/item/radio/emergency
name = "Medbay Emergency Radio Link"
icon_state = "med_walkietalkie"
frequency = MED_I_FREQ
subspace_transmission = TRUE
adhoc_fallback = TRUE
/obj/item/radio/emergency/Initialize(mapload)
. = ..()
internal_channels = GLOB.default_medbay_channels.Copy()
/obj/item/bluespaceradio/tether_prelinked
name = "bluespace radio (tether)"
handset = /obj/item/radio/bluespacehandset/linked/tether_prelinked
/obj/item/radio/bluespacehandset/linked/tether_prelinked
bs_tx_preload_id = "tether_rx" //Transmit to a receiver
bs_rx_preload_id = "tether_tx" //Recveive from a transmitter
/obj/item/bluespaceradio/talon_prelinked
name = "bluespace radio (talon)"
handset = /obj/item/radio/bluespacehandset/linked/talon_prelinked
/obj/item/radio/bluespacehandset/linked/talon_prelinked
bs_tx_preload_id = "talon_aio" //Transmit to a receiver
bs_rx_preload_id = "talon_aio" //Recveive from a transmitter

View File

@@ -60,7 +60,7 @@
return
var/atom/movable/AM = WF.resolve()
if(isnull(AM))
log_debug("DEBUG: HasProximity called without reference on [src].")
log_runtime("DEBUG: HasProximity called without reference on [src].")
attached_device?.HasProximity(T, WF, old_loc)
/obj/item/transfer_valve/Moved(old_loc, direction, forced)

View File

@@ -114,5 +114,5 @@ var/datum/uplink_random_selection/all_uplink_selection = new/datum/uplink_random
/proc/debug_uplink_item_assoc_list()
for(var/key in uplink.items_assoc)
to_world("[key] - [uplink.items_assoc[key]]")
to_chat(world, "[key] - [uplink.items_assoc[key]]")
#endif

View File

@@ -22,7 +22,7 @@
PRIVATE_PROC(TRUE)
SHOULD_NOT_OVERRIDE(TRUE)
if(prob(10+extra_delay))
set_light(10, 10, "#[num2hex(rand(64,255))][num2hex(rand(64,255))][num2hex(rand(64,255))]")
set_light(10, 10, "#[num2hex(rand(64,255), 2)][num2hex(rand(64,255), 2)][num2hex(rand(64,255), 2)]")
addtimer(CALLBACK(src, PROC_REF(grenade_blast)), 10, TIMER_DELETE_ME)
/obj/item/grenade/anti_photon/proc/grenade_blast()

View File

@@ -444,7 +444,7 @@ var/list/global/tank_gauge_cache = list()
else if(pressure > TANK_RUPTURE_PRESSURE)
#ifdef FIREDBG
log_debug(span_warning("[x],[y] tank is rupturing: [pressure] kPa, integrity [integrity]"))
log_world(span_warning("[x],[y] tank is rupturing: [pressure] kPa, integrity [integrity]"))
#endif
air_contents.react()
@@ -504,7 +504,7 @@ var/list/global/tank_gauge_cache = list()
playsound(src, 'sound/effects/spray.ogg', 10, 1, -3)
leaking = 1
#ifdef FIREDBG
log_debug(span_warning("[x],[y] tank is leaking: [pressure] kPa, integrity [integrity]"))
log_world(span_warning("[x],[y] tank is leaking: [pressure] kPa, integrity [integrity]"))
#endif
@@ -662,7 +662,7 @@ var/list/global/tank_gauge_cache = list()
return
var/atom/movable/AM = WF.resolve()
if(isnull(AM))
log_debug("DEBUG: HasProximity called without reference on [src].")
log_runtime("DEBUG: HasProximity called without reference on [src].")
return
assembly?.HasProximity(T, WF, old_loc)

View File

@@ -517,7 +517,7 @@
break
if(!new_canvas)
warning("Couldn't find a canvas to match [w]x[h] of painting")
WARNING("Couldn't find a canvas to match [w]x[h] of painting")
return
new_canvas.fill_grid_from_icon(I)
@@ -559,7 +559,7 @@
return 0
if(!fexists("data/persistent/paintings/[persistence_id]/[painting["md5"]].png"))
to_chat(usr, span_warning("Chosen painting could not be loaded! Incident was logged, but no action taken at this time"))
log_debug("[usr] tried to spawn painting of list id [which_painting] in all_paintings list and associated file could not be found. \n \
log_runtime("[usr] tried to spawn painting of list id [which_painting] in all_paintings list and associated file could not be found. \n \
Painting was titled [title] by [author_ckey] of [persistence_id]")
return 0
@@ -574,7 +574,7 @@
break
if(!new_canvas)
warning("Couldn't find a canvas to match [w]x[h] of painting")
WARNING("Couldn't find a canvas to match [w]x[h] of painting")
return 0
new_canvas.fill_grid_from_icon(I)
@@ -597,7 +597,7 @@
Proceed? It will likely have over 500 entries", "Generate list?", list("Proceed!", "Cancel")) != "Proceed!")
return
log_debug("[usr] generated list of paintings from SSPersistence")
// to_chat(world, "[usr] generated list of paintings from SSPersistence")
var/list/paintings = list()
var/current = 1
for(var/entry in SSpersistence.all_paintings)

View File

@@ -174,7 +174,7 @@
if(activated) return
if(locate(/obj/structure/catwalk) in loc)
warning("Frame Spawner: A catwalk already exists at [loc.x]-[loc.y]-[loc.z]")
WARNING("Frame Spawner: A catwalk already exists at [loc.x]-[loc.y]-[loc.z]")
else
var/obj/structure/catwalk/C = new /obj/structure/catwalk(loc)
C.plated_tile = tile

View File

@@ -27,7 +27,7 @@
/obj/structure/drop_pod/proc/podfall(auto_open)
var/turf/T = get_turf(src)
if(!T)
warning("Drop pod wasn't spawned on a turf")
WARNING("Drop pod wasn't spawned on a turf")
return
moveToNullspace()

View File

@@ -16,7 +16,7 @@
for(var/obj/structure/lattice/LAT in src.loc)
if(LAT != src)
log_debug("Found multiple lattices at '[log_info_line(loc)]'") //VOREStation Edit, why was this a runtime, it's harmless
log_mapping("Found multiple lattices at '[log_info_line(loc)]'") //VOREStation Edit, why was this a runtime, it's harmless
return INITIALIZE_HINT_QDEL
icon = 'icons/obj/smoothlattice.dmi'
icon_state = "latticeblank"

View File

@@ -32,7 +32,7 @@
icon_state = "blank"
var/turf/T = loc
if(!isturf(T) || T.density || T.opacity)
warning("[src] on invalid turf [T] at [x],[y],[z]")
WARNING("[src] on invalid turf [T] at [x],[y],[z]")
return INITIALIZE_HINT_QDEL
if(!materialtype)
@@ -575,7 +575,7 @@
/obj/effect/low_wall_spawner/Initialize(mapload)
. = ..()
if(locate(/obj/effect/low_wall_spawner) in oview(0, src))
warning("Duplicate low wall spawners in [x],[y],[z]!")
WARNING("Duplicate low wall spawners in [x],[y],[z]!")
return INITIALIZE_HINT_QDEL
if(low_wall_type)