我正在尝试制作一个mod,但是遇到了这个问题。当我尝试创建手工配方时,它会使我的游戏崩溃。我真的不确定为什么。我尝试使用
Items.COOKED_BEEF也尝试了Item.cooked_beef。我导入了我需要的所有内容,但仍然无法正常工作。

package Nedas60.TestMod.init;

import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.common.registry.GameRegistry;

public class ModCrafting {

    public static void register() {
        ItemStack diamond  = new ItemStack(Items.DIAMOND);
        ItemStack beef  = new ItemStack(Items.COOKED_BEEF);
        ItemStack DmdBeef = new ItemStack(ModItems.DiamondBeef);

        GameRegistry.addShapedRecipe(DmdBeef, diamond, beef);
    }
}


Eclipse表示这里一切都很好。使用小写字母Items.cooked_beef不起作用。问题是什么?

错误日志:http://pastebin.com/7nmk2tfr

最佳答案

您正在尝试添加形状的配方而不定义形状。您应该使用无形状的配方,或者使用1-3个字符串(每个字符串中包含1-3个字符)来设置配方形状(每行1个字符串,行中每个正方形1个字符)。

成型食谱的一些示例:
//diamond above beefGameRegistry.addShapedRecipe(DmdBeef, "D", "B", 'D', diamond, 'B', beef);

//diamond on the left of beefGameRegistry.addShapedRecipe(DmdBeef, "DB", 'D', diamond, 'B', beef);

//diamond on the left of beef, with a blank space to the left, and 2 blank rows beneath itGameRegistry.addShapedRecipe(DmdBeef, "ADB", "AAA", "AAA", 'D', diamond, 'B', beef);

在伪造文档站点上,还有更多的教程和示例,minecraftforums和只是谷歌搜索将显示更多。

您使用的字符并不重要,例如,对于菱形,您可以使用“ @”。未指定的任何字符(例如上一个示例中的“ A”)都必须为空白。如果未指定所有9个字符,则可以将其以正确的格式放置在网格中的任何位置。

顺便说一句,标准的Java惯例是使变量以小写字母开头(DmdBeef应该为dmdBeef)。

08-05 16:10