From 8823c671d7f5e1cc28ade66eed15fa0c0ed7fe20 Mon Sep 17 00:00:00 2001 From: NotEvil Date: Thu, 16 Apr 2026 01:54:03 +0200 Subject: [PATCH] =?UTF-8?q?fix(UC-02):=20clean=20theme=20IDs=20=E2=80=94?= =?UTF-8?q?=20strip=20directory=20prefix=20and=20.json=20suffix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit RISK-003: Definition IDs were "tiedup:tiedup_room_themes/oubliette.json" instead of clean "tiedup:oubliette". Now derived from filename only. --- .../tiedup/remake/worldgen/RoomThemeReloadListener.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/tiedup/remake/worldgen/RoomThemeReloadListener.java b/src/main/java/com/tiedup/remake/worldgen/RoomThemeReloadListener.java index d135e63..6a39ea4 100644 --- a/src/main/java/com/tiedup/remake/worldgen/RoomThemeReloadListener.java +++ b/src/main/java/com/tiedup/remake/worldgen/RoomThemeReloadListener.java @@ -59,8 +59,14 @@ public class RoomThemeReloadListener ResourceLocation fileId = entry.getKey(); Resource resource = entry.getValue(); + // Derive clean ID from file path: "tiedup:tiedup_room_themes/oubliette.json" -> "tiedup:oubliette" + String cleanPath = fileId.getPath() + .replace(DIRECTORY + "/", "") + .replace(".json", ""); + ResourceLocation cleanId = new ResourceLocation(fileId.getNamespace(), cleanPath); + try (InputStream input = resource.open()) { - RoomThemeDefinition def = RoomThemeParser.parse(input, fileId); + RoomThemeDefinition def = RoomThemeParser.parse(input, cleanId); if (def != null) { // Check for duplicate IDs (fileId IS the ID for room themes)