From 7b00d35a77bd9092bee7d8dfe32326cbd3f8910e Mon Sep 17 00:00:00 2001
From: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>
Date: Fri, 16 Feb 2024 02:42:03 +0100
Subject: [PATCH] asdfa (#18422)
---
code/game/atoms.dm | 8 ++-
code/game/machinery/doors/door.dm | 2 +-
code/modules/admin/admin_verbs.dm | 4 --
code/modules/admin/verbs/getlogs.dm | 58 ++++---------------
code/modules/mob/living/carbon/human/human.dm | 21 +++----
html/changelogs/fluffyghost-bugfixes.yml | 46 +++++++++++++++
6 files changed, 75 insertions(+), 64 deletions(-)
create mode 100644 html/changelogs/fluffyghost-bugfixes.yml
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index e61605137fe..21f43104c75 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -595,7 +595,13 @@
if(toxvomit)
this.icon_state = "vomittox_[pick(1,4)]"
-/mob/living/proc/handle_additional_vomit_reagents(var/obj/effect/decal/cleanable/vomit/vomit)
+/mob/living/proc/handle_additional_vomit_reagents(obj/effect/decal/cleanable/vomit/vomit)
+ SHOULD_NOT_SLEEP(TRUE)
+ SHOULD_CALL_PARENT(TRUE)
+
+ if(!istype(vomit))
+ return
+
vomit.reagents.add_reagent(/singleton/reagent/acid/stomach, 5)
/atom/proc/clean_blood()
diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm
index dead21d345b..f37d4e215f2 100644
--- a/code/game/machinery/doors/door.dm
+++ b/code/game/machinery/doors/door.dm
@@ -509,7 +509,7 @@
set_opacity(0)
operating = FALSE
- if(autoclose)
+ if(autoclose && !QDELETED(src))
close_door_in(next_close_time())
return 1
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index 143da660c88..7c8c0c554a3 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -28,9 +28,7 @@ var/list/admin_verbs_admin = list(
/client/proc/cmd_admin_delete, /*delete an instance/object/mob/etc*/
/client/proc/cmd_admin_check_contents, /*displays the contents of an instance*/
/datum/admins/proc/access_news_network, /*allows access of newscasters*/
- /client/proc/giveruntimelog, /*allows us to give access to runtime logs to somebody*/
/client/proc/getserverlog, /*allows us to fetch server logs (diary) for other days*/
- /client/proc/view_signal_log, /*allows admins to check the log of signaler uses*/
/client/proc/jumptocoord, /*we ghost and jump to a coordinate*/
/client/proc/jumptozlevel,
/client/proc/jumptoshuttle,
@@ -393,7 +391,6 @@ var/list/admin_verbs_hideable = list(
/datum/admins/proc/ccannoucment,
/client/proc/cmd_display_init_log,
/client/proc/getruntimelog,
- /client/proc/giveruntimelog,
/client/proc/toggledebuglogs,
/client/proc/getserverlog,
/client/proc/view_chemical_reaction_logs,
@@ -467,7 +464,6 @@ var/list/admin_verbs_dev = list( //will need to be altered - Ryan784
/client/proc/debug_variables,
/client/proc/dsay,
/client/proc/getruntimelog,
- /client/proc/giveruntimelog,
/client/proc/hide_most_verbs,
/client/proc/kill_air,
/client/proc/kill_airgroup,
diff --git a/code/modules/admin/verbs/getlogs.dm b/code/modules/admin/verbs/getlogs.dm
index d59605e4967..769e68fc2f3 100644
--- a/code/modules/admin/verbs/getlogs.dm
+++ b/code/modules/admin/verbs/getlogs.dm
@@ -13,40 +13,15 @@
codebase for the entire /TG/station commuity a TONNE easier :3 Thanks for your help!
*/
-
-//This proc allows Game Masters to grant a client access to the .getruntimelog verb
-//Permissions expire at the end of each round.
-//Runtimes can be used to meta or spot game-crashing exploits so it's advised to only grant coders that
-//you trust access. Also, it may be wise to ensure that they are not going to play in the current round.
-/client/proc/giveruntimelog()
- set name = ".giveruntimelog"
- set desc = "Give somebody access to any session logfiles saved to the /log/runtime/ folder."
- set category = null
-
- if(!src.holder)
- to_chat(src, "Only Admins may use this command.")
- return
-
- var/client/target = input(src,"Choose somebody to grant access to the server's runtime logs (permissions expire at the end of each round):","Grant Permissions",null) as null|anything in GLOB.clients
- if(!istype(target,/client))
- to_chat(src, "Error: giveruntimelog(): Client not found.")
- return
-
- add_verb(target, /client/proc/getruntimelog)
- to_chat(target, "You have been granted access to runtime logs. Please use them responsibly or risk being banned.")
- return
-
-
-//This proc allows download of runtime logs saved within the data/logs/ folder by dreamdeamon.
-//It works similarly to show-server-log.
+/**
+ * Allows a client that has this proc to download the runtime logs of the current round
+ */
/client/proc/getruntimelog()
set name = ".getruntimelog"
set desc = "Retrieve any session logfiles saved by dreamdeamon."
set category = null
- var/path = browse_files("data/logs/_runtime/")
- if(!path)
- return
+ var/path = LOGPATH(GLOB.config.logfiles["world_runtime_log"])
if(file_spam_check())
return
@@ -54,17 +29,21 @@
message_admins("[key_name_admin(src)] accessed file: [path]")
src << run( file(path) )
to_chat(src, "Attempting to send file, this may take a fair few minutes if the file is very large.")
- return
//This proc allows download of past server logs saved within the data/logs/ folder.
//It works similarly to show-server-log.
+/**
+ * Allows a client that has this proc the download of a log file of the active round
+ *
+ * Assigned only to admins currently
+ */
/client/proc/getserverlog()
set name = ".getserverlog"
set desc = "Fetch logfiles from data/logs"
set category = null
- var/path = browse_files("data/logs/")
+ var/path = browse_files(LOGPATH("")) //Prompt for which file to download, understands subfolders from files
if(!path)
return
@@ -74,20 +53,3 @@
message_admins("[key_name_admin(src)] accessed file: [path]")
src << run( file(path) )
to_chat(src, "Attempting to send file, this may take a fair few minutes if the file is very large.")
- return
-
-
-//Other log stuff put here for the sake of organisation
-
-/client/proc/view_signal_log()
- set name = "View Signaler Log"
- set desc = "Use this to view who sent signaler signals to things."
- set category = "Admin"
-
- var/text_signal_log = ""
- for(var/log in GLOB.signal_log)
- text_signal_log += "[log]
"
-
- var/datum/browser/signal_win = new(usr, "signallog", "Signal Log", 550, 500)
- signal_win.set_content(text_signal_log)
- signal_win.open()
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index c34e38b9382..cc25751b280 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -957,16 +957,17 @@
if((species.gluttonous & GLUT_PROJECTILE_VOMIT) && !vomitReceptacle)
M.throw_at(get_edge_target_turf(src,dir),7,7,src)
- if(stomach.ingested.total_volume)
- stomach.ingested.trans_to_obj(splat, min(15, stomach.ingested.total_volume))
- for(var/obj/item/organ/internal/parasite/P in src.internal_organs)
- if(P)
- if(P.egg && (P.stage == P.max_stage))
- splat.reagents.add_reagent(P.egg, 2)
- handle_additional_vomit_reagents(splat)
- splat.update_icon()
+ if(istype(splat))
+ if(stomach.ingested.total_volume)
+ stomach.ingested.trans_to_obj(splat, min(15, stomach.ingested.total_volume))
+ for(var/obj/item/organ/internal/parasite/P in src.internal_organs)
+ if(P)
+ if(P.egg && (P.stage == P.max_stage))
+ splat.reagents.add_reagent(P.egg, 2)
+ handle_additional_vomit_reagents(splat)
+ splat.update_icon()
- playsound(get_turf(src), 'sound/effects/splat.ogg', 50, 1)
+ playsound(get_turf(src), 'sound/effects/splat.ogg', 50, 1)
/mob/living/carbon/human/proc/vomit(var/timevomit = 1, var/level = 3, var/deliberate = FALSE)
@@ -1003,7 +1004,7 @@
lastpuke = FALSE
// A damaged stomach can put blood in your vomit.
-/mob/living/carbon/human/handle_additional_vomit_reagents(var/obj/effect/decal/cleanable/vomit/vomit)
+/mob/living/carbon/human/handle_additional_vomit_reagents(obj/effect/decal/cleanable/vomit/vomit)
..()
if(should_have_organ(BP_STOMACH))
var/obj/item/organ/internal/stomach/stomach = internal_organs_by_name[BP_STOMACH]
diff --git a/html/changelogs/fluffyghost-bugfixes.yml b/html/changelogs/fluffyghost-bugfixes.yml
new file mode 100644
index 00000000000..0afcf234b56
--- /dev/null
+++ b/html/changelogs/fluffyghost-bugfixes.yml
@@ -0,0 +1,46 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# wip (For works in progress)
+# tweak
+# soundadd
+# sounddel
+# rscadd (general adding of nice things)
+# rscdel (general deleting of nice things)
+# imageadd
+# imagedel
+# maptweak
+# spellcheck (typo fixes)
+# experiment
+# balance
+# admin
+# backend
+# security
+# refactor
+#################################
+
+# Your name.
+author: FluffyGhost
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
+# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - bugfix: "Resolved a runtime on QDEL'd doors that tries to register a closing timer."
+ - bugfix: "Resolved a runtime on vomit decal ending on space atoms and having access to the reagents attempted."
+ - backend: "SDMM markings on handle_additional_vomit_reagents proc."
+ - bugfix: "Fixed log grabbing procs for the relevant clients."
+ - rscdel: "Removed runtime log access granting proc, noone uses it."
+ - rscdel: "Removed signals log browser proc, noone used it ever."