问题:
1.注册的物品没有识别到材质
2.已经添加lang文件但是不能识别,依然显示未本地化的名字
3.mcmod.info没有被识别到
打开游戏后idea会弹两个报错
复制代码复制代码进游戏后是这样的(他显示的名字后面怎还有个#inventory,这正常吗
环境:
复制代码代码:
Testmod
复制代码ItemDirtBall
复制代码ItemRegistryHandler
复制代码dirtball.json
复制代码zh_cn
复制代码
救救孩子吧,刚被构建环境折磨完呜呜呜呜
(如果是因为单词拼错了不要打我)
1.注册的物品没有识别到材质
2.已经添加lang文件但是不能识别,依然显示未本地化的名字
3.mcmod.info没有被识别到
打开游戏后idea会弹两个报错
- Caused by: java.io.FileNotFoundException: testmod:models/item/dirt_ball.json
- Caused by: net.minecraft.client.renderer.block.model.ModelBlockDefinition$MissingVariantException
环境:
- jdk 1.8.0_301
- forge版本 2885(1.12.2)
- gradle 4.9
- 用的idea
Testmod
- package demon.testmod;
- import net.minecraft.init.Blocks;
- import net.minecraftforge.fml.common.Mod;
- import net.minecraftforge.fml.common.Mod.EventHandler;
- import net.minecraftforge.fml.common.event.FMLInitializationEvent;
- import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
- import org.apache.logging.log4j.Logger;
- @Mod(modid = Testmod.MODID, name = Testmod.NAME, version = Testmod.VERSION)
- public class Testmod
- {
- public static final String MODID = "testmod";
- public static final String NAME = "Test Mod";
- public static final String VERSION = " 1.0";
- private static Logger logger;
- @EventHandler
- public void preInit(FMLPreInitializationEvent event)
- {
- logger = event.getModLog();
- }
- @EventHandler
- public void init(FMLInitializationEvent event)
- {
- // some example code
- logger.info("DIRT BLOCK >> {}", Blocks.DIRT.getRegistryName());
- }
- }
- package demon.testmod.item;
- import net.minecraft.item.Item;
- import demon.testmod.Testmod;
- public class ItemDirtBall extends Item
- {
- public ItemDirtBall()
- {
- this.setUnlocalizedName(Testmod.MODID+".dirtball");
- this.setRegistryName("dirt_ball");
- this.setMaxStackSize(16);
- }
- }
- package demon.testmod.item;
- import net.minecraft.client.renderer.block.model.ModelResourceLocation;
- import net.minecraft.item.Item;
- import net.minecraftforge.client.event.ModelRegistryEvent;
- import net.minecraftforge.client.model.ModelLoader;
- import net.minecraftforge.event.RegistryEvent.Register;
- import net.minecraftforge.fml.common.Mod;
- import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
- import net.minecraftforge.fml.relauncher.Side;
- import net.minecraftforge.fml.relauncher.SideOnly;
- import net.minecraftforge.registries.IForgeRegistry;
- @Mod.EventBusSubscriber
- public class ItemRegistryHandler
- {
- public static final ItemDirtBall DIRT_BALL = new ItemDirtBall();
- @SubscribeEvent
- public static void onRegistry(Register<Item> event)
- {
- IForgeRegistry<Item> registry = event.getRegistry();
- registry.register(DIRT_BALL);
- }
- @SubscribeEvent
- @SideOnly(Side.CLIENT)
- public static void onModelRegistry(ModelRegistryEvent event)
- {
- ModelLoader.setCustomModelResourceLocation(DIRT_BALL,0,new ModelResourceLocation(DIRT_BALL.getRegistryName(),"inventory"));
- }
- }
- {
- "forge_marker": 1,
- "defaults":
- {
- "model": "minecraft:builtin/generated",
- "textures": {"layer0": "testmod:items/dirt_ball"}
- },
- "variants":
- {
- "inventory": [{ "transform":"forge:default-item"}]
- }
- }
- item.testmod.dirtball.name=泥土球
救救孩子吧,刚被构建环境折磨完呜呜呜呜
(如果是因为单词拼错了不要打我)
本帖最后由 夜时秋 于 2021-8-1 00:09 编辑
如上将dirt_bal.json文件拖进item文件夹中,并将model文件夹名字改为models
复制代码以及将以上代码写到build.gradle文件末尾
如上将dirt_bal.json文件拖进item文件夹中,并将model文件夹名字改为models
- sourceSets { main { output.resourcesDir = output.classesDir } }