pc: fix legacy data pointing at things that do not exist, 1.7 - 1.16.5 - #1319
Pix3lPirat3 wants to merge 2 commits into
Conversation
1.7 used the 1.8 recipe file, so 23 recipes and 5 variants referenced 1.8-only items; it now has its own recipes.json. The 1.8 door recipes were keyed one id too low (426 is not an item), so spruce, birch, jungle, acacia and dark oak doors moved to 427-431. 1.11 items.json lacked iron_nugget (452), which 1.11.2 and the 1.12 snapshots served from that directory craft. 1.13 and 1.13.2 entities.json still carried the pre-flattening object table (28 entries duplicating registry ids 1-94), removed. Wooden tools in 1.13-1.15.2 listed crimson_planks, warped_planks and blackstone as repair materials before those existed. bamboo and bamboo_sapling had material UNKNOWN_MATERIAL in 1.14-1.16.5: bamboo takes the plant table (axe speeds, sword 1.5) that the vanilla axe applies to Material.BAMBOO, the sapling is default like 1.17+.
rom1504
left a comment
There was a problem hiding this comment.
Astra agent review — AI-generated, not manually written by the maintainer.
Found two introduced version/namespace regressions and one incomplete historical recipe repair. Each finding was checked against the actual data consumer and independent protocol/game evidence.
Skills used: prismarine-protocol-data-review traced aliases and ID namespaces; prismarine-item-inventory-review checked recipe outputs; prismarine-architecture-review checked the shared API; prismarine-review checked prior feedback and the baseline.
| { | ||
| "id": 1, | ||
| "internalId": 1, | ||
| "name": "boat", |
There was a problem hiding this comment.
Astra agent review — AI-generated, not manually written by the maintainer.
Please retain the separate object-ID entries in both 1.13 and 1.13.2. Those versions still use a distinct object namespace for spawn_entity; the registry IDs do not replace it until the later protocol transition. For example, object ID 1 means boat, whereas registry ID 1 here means armor stand. ViaVersion's 1.13.2→1.14 translator explicitly resolves the byte through EntityTypes1_13.ObjectType before converting it to the newer registry ID.
Using the actual Node data loader on the base and candidate files, objects goes from 28 entries to zero in both versions; objects[1] becomes undefined and entities[1] changes from boat to armor stand. These are supported packet/model lookups, not redundant records. Any uniqueness validation needs to distinguish the two namespaces for these versions too.
Skills used: prismarine-protocol-data-review distinguished wire object IDs from registry IDs and exercised the production indexer; prismarine-architecture-review checked the shared data API; prismarine-review checked the exact diff and previous feedback.
| { | ||
| "id": 452, | ||
| "displayName": "Iron Nugget", | ||
| "name": "iron_nugget", |
There was a problem hiding this comment.
Astra agent review — AI-generated, not manually written by the maintainer.
Please split the item data at the supported patch-version boundary rather than adding this to the shared 1.11 table. dataPaths still routes 1.11 itself, 1.11.2 and the listed 1.12 snapshots to pc/1.11/items.json, so the repair now makes items[452] / itemsByName.iron_nugget exist on 1.11 as well.
I checked SHA1-verified official server jars: 1.11 has no iron-nugget item, while 1.11.2's item-registration bytecode explicitly registers 452, "iron_nugget". Keep the 1.11 list unchanged and route 1.11.2 and the applicable later versions to a list containing the nugget. This preserves the missing-item fix without backporting the item into an earlier game version.
Skills used: prismarine-protocol-data-review traced all aliases of the edited category and checked official version-specific data; prismarine-review distinguished a new regression from the missing 1.11.2 entry being repaired.
| "effects": "pc/1.7", | ||
| "items": "pc/1.7", | ||
| "recipes": "pc/1.8", | ||
| "recipes": "pc/1.7", |
There was a problem hiding this comment.
Astra agent review — AI-generated, not manually written by the maintainer.
The dedicated 1.7 file still carries a few 1.8 recipes/quantities, so the historical-version repair is incomplete. It retains slime block output 165, iron trapdoor output 167, and slimeballs 341 made from block 165; neither block exists in the official 1.7.10 registry. It also retains output count 3 for wooden door 324 and iron door 330, whereas the official 1.7.10 crafting-registration bytecode constructs one door for each recipe.
These errors were already present through the old 1.8 alias; I am not calling them new runtime regressions. They are now copied into the new version-specific source introduced to remove exactly this mismatch. Please remove those three recipes and correct both door counts before treating this file as 1.7 data. Do not use the current 1.7 block table alone as the existence oracle: it also contains inherited later-version entries. The official 1.7.10 server artifact provides the version-specific registry and crafting evidence used here.
Skills used: prismarine-protocol-data-review checked historical source provenance instead of validating one contaminated table against another; prismarine-item-inventory-review checked craft result quantities and actual recipe-model loading; prismarine-review separated inherited errors from new regressions.
|
All three findings addressed in 14865f8:
Cross-file consistency test (with the #1320 fixes): 674 passing, 107 pending, 0 unexpected failures. |
|
(cross-ref) The loot producer fix for #1312 landed in PrismarineJS/prismarine-loottable#15 (additive set_count handling). |
rom1504
left a comment
There was a problem hiding this comment.
Astra agent review — AI-generated, not manually written by the maintainer.
Verified 14865f8: all three findings from my earlier review are fixed. The production Node loader again exposes 28 objects in both 1.13 and 1.13.2 (objects[1] is boat, while mobs[1] is armor stand). The item-category split keeps iron nuggets absent on 1.11 and present on 1.11.2 and the three routed snapshots. The dedicated 1.7 recipe file removes the three later crafts and gives both door recipes one output, matching the previously checked official game evidence.
The 12 changed data files pass their schemas. I also rechecked the retained door-key, repair-material and bamboo changes against the full diff. I have no remaining blocker from this review; this looks ready for maintainer merge review.
Skills: prismarine-review checked the updated head and prior feedback; prismarine-protocol-data-review checked version-selected data against native sources and consumer behavior. prismarine-item-inventory-review checked historical recipe outputs and the supported patch boundary.
1.7 used the 1.8 recipe file, so 23 recipes and 5 variants referenced 1.8-only items; it now has its own recipes.json. The 1.8 door recipes were keyed one id too low (426 is not an item), so spruce, birch, jungle, acacia and dark oak doors moved to 427-431. 1.11 items.json lacked iron_nugget (452), which 1.11.2 and the 1.12 snapshots served from that directory craft. 1.13 and 1.13.2 entities.json still carried the pre-flattening object table (28 entries duplicating registry ids 1-94), removed. Wooden tools in 1.13-1.15.2 listed crimson_planks, warped_planks and blackstone as repair materials before those existed. bamboo and bamboo_sapling had material UNKNOWN_MATERIAL in 1.14-1.16.5: bamboo takes the plant table (axe speeds, sword 1.5) that the vanilla axe applies to Material.BAMBOO, the sapling is default like 1.17+.