本人第一次学习mod开发,本版为1.12.2-2855,使用开发工具IDEA 2020.3,尝试了各种教程,都卡在创建第一个物品的本地化名称这里无法更改,已经在en_us.lang 加入了item.mod_test01.ont_item.name=One Item 却仍然无法生效,在游戏中显示的名称仍是[size=13.0667px]item.mod_test01.ont_item.name 设置了贴图也不生效,还是黑紫块,已尝试根据多个教程重写仍无法解决,所有只能求助各位大佬
以下是各个文件的路径
以下是物品类:
复制代码以下是en_us.lang
以下是主类(代码都是创建项目时自动生成的)
复制代码以下是开启游戏时的物品
以下是各个文件的路径

以下是物品类:
- package city.lind.modtest01.items;
- import city.lind.modtest01.ModTest01;
- import net.minecraft.creativetab.CreativeTabs;
- import net.minecraft.init.Items;
- import net.minecraft.item.Item;
- import net.minecraft.item.ItemStack;
- import net.minecraftforge.event.RegistryEvent;
- import net.minecraftforge.fml.common.Mod;
- import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
- @Mod.EventBusSubscriber(modid = ModTest01.MOD_ID)
- public final class ModItems {
- public static Item MyOneItem;
- /**
- * 自动注册调用事件
- * @param event
- */
- @SubscribeEvent
- public static void registerItem(RegistryEvent.Register<Item> event)
- {
- /**
- * 注意 setRegistryName 调用。
- * 每一个物品都对应唯一一个注册名,用于和其他物品区分开来。这个注册名不能含有大写字母。
- * 此方法返回被注册的 Item 对象。
- * 把注册的物品放入 EXAMPLE_CREATIVE_TAB 这个创造物品选项栏
- */
- event.getRegistry().register(
- MyOneItem = new Item()
- //
- .setCreativeTab(EXAMPLE_CREATIVE_TAB)
- /**
- * 注意此名字和 registry name 不是一个概念。
- * 这个名字仅用于国际化支持。
- * 这个方法也返回 Item。
- */
- .setTranslationKey("mod_test01.ont_item")
- .setRegistryName("modtest01:ont_item")
- );
- }
- /**
- * 我们需要一个 CreativeTabs 的实例,当然那个类下面就有原版的 10 个,可以直接拿来用,
- * 但是你不觉得有一个自己的更方便吗……
- * 一般是使用匿名内部类,就像这样。
- */
- public static final CreativeTabs EXAMPLE_CREATIVE_TAB = new CreativeTabs("example_tab") {
- @Override
- public ItemStack createIcon() {
- return new ItemStack(Items.DIAMOND);
- }
- };
- }

以下是主类(代码都是创建项目时自动生成的)
- package city.lind.modtest01;
- import net.minecraft.block.Block;
- import net.minecraft.item.Item;
- import net.minecraftforge.event.RegistryEvent;
- import net.minecraftforge.fml.common.event.FMLInitializationEvent;
- import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
- import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
- import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
- import net.minecraftforge.fml.common.Mod;
- import net.minecraftforge.fml.common.registry.GameRegistry;
- @Mod(
- modid = ModTest01.MOD_ID,
- name = ModTest01.MOD_NAME,
- version = ModTest01.VERSION
- )
- public class ModTest01 {
- public static final String MOD_ID = "mod_test01";
- public static final String MOD_NAME = "mod_test01";
- public static final String VERSION = "1.0-SNAPSHOT";
- /** This is the instance of your mod as created by Forge. It will never be null. */
- @Mod.Instance(MOD_ID)
- public static ModTest01 INSTANCE;
- @Mod.EventHandler
- public void preinit(FMLPreInitializationEvent event) {
- System.out.println("正在开启······");
- }
- @Mod.EventHandler
- public void init(FMLInitializationEvent event) {
- }
- @Mod.EventHandler
- public void postinit(FMLPostInitializationEvent event) {
- }
- @GameRegistry.ObjectHolder(MOD_ID)
- public static class Blocks {
- }
- @GameRegistry.ObjectHolder(MOD_ID)
- public static class Items {
- }
- @Mod.EventBusSubscriber
- public static class ObjectRegistryHandler {
- @SubscribeEvent
- public static void addItems(RegistryEvent.Register<Item> event) {
- }
- @SubscribeEvent
- public static void addBlocks(RegistryEvent.Register<Block> event) {
- }
- }
- }

这可能不是你的锅,这是idea一个不会复制资源文件的bug
试试用gradle启动还有没有这个现象
试试用gradle启动还有没有这个现象
https://www.mcbbs.net/forum.php?mod=viewthread&tid=878045
请尝试按本贴2楼中的描述进行操作
请尝试按本贴2楼中的描述进行操作
在1.12及以下版本中,模型需要另外注册(即指定模型位置),其次setTranslationKey方法不必要加。而setRegistryName里不用带上modid