Add pc tags data extracted from the vanilla server jar (1.13-26.1) - #1308
Open
Pix3lPirat3 wants to merge 1 commit into
Open
Pix3lPirat3 wants to merge 1 commit into
Pix3lPirat3 wants to merge 1 commit into
Conversation
Add tools/js/extractPcTags.js, which reads data/minecraft/tags from the official server jar (sha1-verified from the Mojang manifest) and writes data/pc/<version>/tags.json with #tag references resolved, everything sorted and registries namespaced. Generate it for every pc release from 1.13 to 26.1; identical versions share a directory through dataPaths.
This was referenced Sep 18, 2026
|
I checked all 46 mapped versions against the official server-jar contents using an independent extractor; the tag sets and members match. |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add tools/js/extractPcTags.js, which reads data/minecraft/tags from the official server jar (sha1-verified from the Mojang manifest) and writes data/pc//tags.json with #tag references resolved, everything sorted and registries namespaced. Generate it for every pc release from 1.13 to 26.1; identical versions share a directory through dataPaths.
Implements the tags direction from #412 and answers the backport question (PrismarineJS/minecraft-data-generator#56, #1080): tags are plain datapack JSON inside every server jar since 1.13, so they need no generator and no mappings.
tools/js/extractPcTags.js(dependency-free) reads them from the official jar - sha1-verified download from the Mojang manifest, cached in the OS temp dir — resolves#tagreferences, and writesdata/pc/<version>/tags.json; identical versions share a directory throughdataPaths, as other data does.node extractPcTags.js --allregenerates everything in about two minutes with cached jars.Data:
27 files covering all 46 pc releases (and pre/rc aliases) from 1.13 to 26.1. Weekly snapshots are excluded because their
blocks.jsonaliases unrelated versions. Base datapack only. Registry keys, tag keys and members are namespaced and sorted; empty registries are omitted; every registry in the jar is emitted (block, item, fluid, entity_type from 1.13, growing to twenty on 26.1 includingworldgen/*).Format follows #1194's
tags_schema.json, included verbatim (by @VasilisDragon) with its one-linetest.jsallowlist change so CI validates the data; #1194 remains the home for the audit and schema tests, and I'll rebase onto it if it lands first. Note #1080's file uses bare registry keys in registry order and does not pass that audit;pc/1.21.8/tags.jsonhere has identical tag and member sets to it (sorted), so it supersedes #1080.Verification: all 46 versions pass the schema and #1194's
auditTagDocumentin official mode with block/item/entity_type/biome/enchantment members from each version's own data - no dangling members.npm testpasses.1.16and1.16.1aliaspc/1.16-rc1because the rc precedes the release and is identical; say if a release directory is preferred.What consumers get:
mineable/*andneeds_*_toolfrom 1.17,incorrect_for_*_toolfrom 1.20.5 - the dataprismarine-blockneeds to compute dig time withoutmaterials.json(#987, #1307). Follow-ups: PrismarineJS/node-minecraft-data#457 to exposemcData.tags, then a prismarine-blockdigTime()that reads tags withmaterials.jsonas the pre-1.17 fallback.