好的我正在學習關於如何創建Minecraft mods,它要做的事情和教育性的教程,一直想擴展我的Java知識並一直在一段時間,因爲我在大學上了一堂課。無論哪種方式,我得到以下錯誤,但我沒有看到任何問題。我不知道這個錯誤意味着什麼,更重要的是,我不知道我在做什麼,因此遵循教程。對於任何關心和使用IntelliJ IDEA 2016.3.2 IDE和Java 1.8.0_112 SDK的人,我都使用Forge 1.11。沒有類型變量的實例存在以便BlockBase確認BlockOre
基於一些閱讀,我認爲它與數據類型不匹配,但它可能只是我的IDE挑剔,或者它是Java 1.8 SDK的東西。真的失去了,所以我想我會伸出手,看看有人願意提供指導。
教程:https://shadowfacts.net/tutorials/forge-modding-111/basic-blocks/
錯誤:在ModBlocks 寄存器(T)不能被施加到 (net.maramor.tutorial.block.BlockBase) 原因:類型的變量沒有實例(S)(S )存在使得BlockBase符合BlockOre推斷變量T具有不相容界限:下界:BlockBase上界:塊,BlockOre
[BlockBase.java]
package net.maramor.tutorial.block;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.ItemBlock;
import net.maramor.tutorial.TutorialMod;
/**
* Created by Matt on 12/28/2016.
*/
public class BlockBase extends Block
{
protected String name;
public BlockBase(Material material, String name)
{
super(material);
this.name = name;
setUnlocalizedName(name);
setRegistryName(name);
}
public void registerItemModel(ItemBlock itemBlock)
{
TutorialMod.proxy.registerItemRenderer(itemBlock,0, name);
}
@Override
public BlockBase setCreativeTab(CreativeTabs tab)
{
super.setCreativeTab(tab);
return this;
}
}
[BlockOre.java]
package net.maramor.tutorial.block;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
/**
* Created by Matt on 12/28/2016.
*/
public class BlockOre extends BlockBase
{
public BlockOre(String name)
{
super(Material.ROCK, name);
setHardness(3f);
setResistance(5f);
}
@Override
public BlockBase setCreativeTab(CreativeTabs tab)
{
super.setCreativeTab(tab);
return this;
}
}
[ModBlocks.java]
package net.maramor.tutorial.block;
import net.minecraft.block.Block;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.ItemBlock;
import net.minecraftforge.fml.common.registry.GameRegistry;
/**
* Created by Matt on 12/28/2016.
*/
public class ModBlocks
{
public static BlockOre oreCopper;
public static void init()
{
oreCopper = register(new BlockOre("ore_copper").setCreativeTab(CreativeTabs.MATERIALS));
}
private static <T extends Block> T register(T block, ItemBlock itemBlock)
{
GameRegistry.register(block);
GameRegistry.register(itemBlock);
if (block instanceof BlockBase)
{
((BlockBase)block).registerItemModel(itemBlock);
}
return block;
}
private static <T extends Block> T register(T block)
{
ItemBlock itemBlock = new ItemBlock(block);
itemBlock.setRegistryName(block.getRegistryName());
return register(block, itemBlock);
}
}
我已經推出了這回;如果你有一個新的問題要問,那就提出一個新的問題。 – Makoto