From badf12800c0d3ba5aca3eeb0cb618f66191f1277 Mon Sep 17 00:00:00 2001 From: Will <7099514+Willburd@users.noreply.github.com> Date: Fri, 6 Feb 2026 09:39:30 -0500 Subject: [PATCH] Forbid ReagentIDs As Reagent Names (#19145) * forbid this * pitcher nectar fix * illegal ids * oop * these * forbid that too * do it right --- code/modules/reagents/reagents/other.dm | 2 +- code/modules/unit_tests/reagent_tests.dm | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/code/modules/reagents/reagents/other.dm b/code/modules/reagents/reagents/other.dm index 8c7426b103a..7ac38c5fc0f 100644 --- a/code/modules/reagents/reagents/other.dm +++ b/code/modules/reagents/reagents/other.dm @@ -898,7 +898,7 @@ industrial_use = REFINERYEXPORT_REASON_PRECURSOR /datum/reagent/nutriment/pitcher_nectar //Pitcher plant reagent, doubles plant growth speed. - name = REAGENT_ID_PITCHERNECTAR + name = REAGENT_PITCHERNECTAR id = REAGENT_ID_PITCHERNECTAR description = "An odd, sticky slurry which promotes rapid plant growth." taste_description = "pineapple" diff --git a/code/modules/unit_tests/reagent_tests.dm b/code/modules/unit_tests/reagent_tests.dm index 34ac2d3bdd0..f8a4ea4d9bc 100644 --- a/code/modules/unit_tests/reagent_tests.dm +++ b/code/modules/unit_tests/reagent_tests.dm @@ -10,6 +10,8 @@ /datum/unit_test/reagent_shall_have_unique_name_and_id/Run() var/collection_name = list() var/collection_id = list() + var/regex/name_legal = regex(@"[_\t\r\n]") + var/regex/id_legal = regex(@"[\s\t\r\n]") for(var/Rpath in subtypesof(/datum/reagent)) var/datum/reagent/R = new Rpath() @@ -21,6 +23,9 @@ TEST_ASSERT_NOTEQUAL(R.id, REAGENT_ID_DEVELOPER_WARNING, "[Rpath]: Reagents - reagent ID not set.") TEST_ASSERT_NOTEQUAL(R.description, REAGENT_DESC_DEVELOPER_WARNING, "[Rpath]: Reagents - reagent description unset.") + TEST_ASSERT(!name_legal.Find(R.name), "[Rpath]: Reagents - reagent name contains illegal characters: [R.name].") + TEST_ASSERT(!id_legal.Find(R.id), "[Rpath]: Reagents - reagent id contains illegal characters or spaces: [R.id].") + TEST_ASSERT(R.id != "", "[Rpath]: Reagents - reagent ID blank.") TEST_ASSERT_EQUAL(R.id, lowertext(R.id), "[Rpath]: Reagents - Reagent ID must be all lowercase.")