mojira.dev
MC-103403

Recipes for 9 items to make a block actually have 81 items internally

There is a class (net.minecraft.item.crafting.RecipesIngots) which creates recipes for the gold block, iron block, etc. and the reverse recipes like one gold block equals 9 gold ingots and so on.

The array storing the combinations is for the reverse recipes and therefor uses for the ingots a count of 9. The problem is that it uses the same ingredients to create the recipe for the block and therefor each item in the block recipe has a count of 9 resulting in 9 * 9 required items. This cannot be seen in vanilla gameplay because the method net.minecraft.item.crafting.ShapedRecipes.checkMatch(InventoryCrafting, int, int, boolean) currently only checks item and meta data but not count. However, it will very likely cause problems in the future when this is changed and already causes problems for mods which display crafting recipes.

This could be fixed by having the method net.minecraft.item.crafting.RecipesIngots.addRecipes(CraftingManager) make a copy of the ingot and set its count to 1 when adding the block recipes.

Comments 20

Please do not mark unreleased versions as affected.
You don't have access to them yet.

This bot is an idiot since everybody has access to the unreleased versions trough prereleases or snapshots.

No, how can you access a unreleased version aka, one you cannot play.

FVbico, has Arisa ever told one of the dev that message when they work on an update or has it been programmed to ignore the devs?

No, because Devs don't report bugs.

You selected "Future Version 1.10.1+", 1.10.1 doesn't exist yet, only the devs have it, you don't, what you have is 1.10, not 1.10.1. You cannot mark unreleased versions as affected on this tracker. That's it. End of the line.

10 more comments

Confirmed in 16w44a

ahl.class

public class ahl
{
    private final Object[][] a;
    
    public ahl() {
        this.a = new Object[][] { { als.R, new afh(afj.n, 9) }, { als.S, new afh(afj.m, 9) }, { als.ah, new afh(afj.l, 9) }, { als.bT, new afh(afj.bZ, 9) }, { als.y, new afh(afj.be, 9, aek.l.b()) }, { als.cn, new afh(afj.aF, 9) }, { als.cA, new afh(afj.k, 9, 0) }, { als.cx, new afh(afj.R, 9) }, { als.cE, new afh(afj.aU, 9) } };
    }
    
    public void a(final ahn \u2603) {
        for (final Object[] array : this.a) {
            final alr \u26032 = (alr)array[0];
            final afh \u26033 = (afh)array[1];
            \u2603.a(new afh(\u26032), "###", "###", "###", '#', \u26033);
            \u2603.a(\u26033, "#", '#', \u26032);
        }
        \u2603.a(new afh(afj.n), "###", "###", "###", '#', afj.bF);
        \u2603.a(new afh(afj.bF, 9), "#", '#', afj.n);
    }
}

Changed confirmation status to "Confirmed" because I can confirm that with MCP

Changed the description to explain the reason and a possible fix.

Is this still the case in 1.12 with data driven recipes?

This was fixed in 1.12 during the move to data driven recipes.

mezz

(Unassigned)

Confirmed

block, count, crafting, crafting-recipe, ingot

Minecraft 1.9.4, Minecraft 1.10, Minecraft 1.10.2, Minecraft 16w42a, Minecraft 16w43a, Minecraft 16w44a, Minecraft 1.11.2

Minecraft 1.12

Retrieved