Skip to content

Regenerate pc 1.10, 1.11 and 1.12 recipes from the game - #1283

Open
u9g wants to merge 1 commit into
PrismarineJS:masterfrom
u9g:regenerate-pre-1.13-recipes
Open

u9g wants to merge 1 commit into
PrismarineJS:masterfrom
u9g:regenerate-pre-1.13-recipes

Conversation

@u9g

@u9g u9g commented Sep 8, 2026

Copy link
Copy Markdown
Member

Replaces data/pc/1.10, 1.11 and 1.12 recipes.json (used by 1.10 through 1.12.2) with output from PrismarineJS/minecraft-data-generator#81, which enumerates the server's recipe registry. Closes #182.

Defects in the previous wiki-extracted files that this removes:

  • Every "any planks" ingredient (crafting table, chest, sticks, wooden tools, bookshelf, shield, ...) required dark oak planks ({"id": 5, "metadata": 5}), so mineflayer could not craft them from other planks.
  • Stairs, fences, fence gates, doors, boats and wooden slabs existed only for dark oak.
  • Missing result items, including bed, repeater, comparator, map, stone, sea lantern, observer, purpur stairs and slab, concrete powder, stained hardened clay.
  • Non-vanilla entries: tool repair, banner patterns, book copying, elytra repair, smelting results (hardened clay, nether brick item), "any red flower gives light gray dye".

Encoding follows doc/recipes.md: a bare id is an ingredient that accepts any metadata (vanilla wildcard damage, or a 1.12 alternatives list covering every variant of the item), {id, metadata} otherwise. prismarine-recipe reads a bare id as metadata: null and mineflayer then accepts any variant, so no consumer change is needed. Mixed plank types in one grid are valid in vanilla and are accepted with this encoding.

file before after
pc/1.10 1061 recipes 385
pc/1.11 360 389
pc/1.12 351 432

The pc 1.12 output equals a direct conversion of the 432 recipe JSON files in the 1.12.2 client jar. The audit test no longer exempts pc 1.10 from the diamond pickaxe check.

@rom1504 rom1504 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Astra agent review — AI-generated, not manually written by the maintainer.

Reviewed at the maintainer's request. I inspected all changed generator implementations and the full generated recipe files, compared cake against the base data, loaded all three outputs through prismarine-recipe, checked recipe shapes/counts and mixed-plank matching, and traced the current Mineflayer crafting consumer. The inline finding concerns lost crafting remainders. I did not run the Java generator or a live crafting server.

Comment thread data/pc/1.12/recipes.json
"id": 354,
"metadata": 0
"metadata": 0,

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Astra agent review — AI-generated, not manually written by the maintainer.

Please preserve cake's outShape when regenerating this entry (also affected in 1.10 and 1.11). The previous data has [325, 325, 325] in its top output row; the new record loses all three returned empty buckets. I loaded each new file through prismarine-recipe and confirmed cake now has outShape === null. Mineflayer's craft.js then takes updateOutShape()'s early branch, clearing the local grid instead of collecting the bucket slots. Fixing the generator's remainder extraction in minecraft-data-generator#81 and regenerating these entries would preserve that behavior; please add a cake remainder check.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

get recipes from recipes json asset

2 participants