bihuo120
本人第一次学习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 设置了贴图也不生效,还是黑紫块,已尝试根据多个教程重写仍无法解决,所有只能求助各位大佬
以下是各个文件的路径


以下是物品类:
  1. package city.lind.modtest01.items;

  2. import city.lind.modtest01.ModTest01;
  3. import net.minecraft.creativetab.CreativeTabs;
  4. import net.minecraft.init.Items;
  5. import net.minecraft.item.Item;
  6. import net.minecraft.item.ItemStack;
  7. import net.minecraftforge.event.RegistryEvent;
  8. import net.minecraftforge.fml.common.Mod;
  9. import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;

  10. @Mod.EventBusSubscriber(modid = ModTest01.MOD_ID)
  11. public final class ModItems {
  12.     public static Item MyOneItem;

  13.     /**
  14.      * 自动注册调用事件
  15.      * @param event
  16.      */
  17.     @SubscribeEvent
  18.     public static void registerItem(RegistryEvent.Register<Item> event)
  19.     {
  20.         /**
  21.          * 注意 setRegistryName 调用。
  22.          * 每一个物品都对应唯一一个注册名,用于和其他物品区分开来。这个注册名不能含有大写字母。
  23.          * 此方法返回被注册的 Item 对象。
  24.          * 把注册的物品放入 EXAMPLE_CREATIVE_TAB 这个创造物品选项栏
  25.          */
  26.         event.getRegistry().register(
  27.                 MyOneItem = new Item()
  28.                         //
  29.                         .setCreativeTab(EXAMPLE_CREATIVE_TAB)
  30.                         /**
  31.                          * 注意此名字和 registry name 不是一个概念。
  32.                          * 这个名字仅用于国际化支持。
  33.                          * 这个方法也返回 Item。
  34.                          */
  35.                         .setTranslationKey("mod_test01.ont_item")
  36.                         .setRegistryName("modtest01:ont_item")
  37.         );

  38.     }

  39.     /**
  40.      * 我们需要一个 CreativeTabs 的实例,当然那个类下面就有原版的 10 个,可以直接拿来用,
  41.      * 但是你不觉得有一个自己的更方便吗……
  42.      * 一般是使用匿名内部类,就像这样。
  43.      */
  44.     public static final CreativeTabs EXAMPLE_CREATIVE_TAB = new CreativeTabs("example_tab") {
  45.         @Override
  46.         public ItemStack createIcon() {
  47.             return new ItemStack(Items.DIAMOND);
  48.         }
  49.     };
  50. }
复制代码
以下是en_us.lang


以下是主类(代码都是创建项目时自动生成的)
  1. package city.lind.modtest01;

  2. import net.minecraft.block.Block;
  3. import net.minecraft.item.Item;
  4. import net.minecraftforge.event.RegistryEvent;
  5. import net.minecraftforge.fml.common.event.FMLInitializationEvent;
  6. import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
  7. import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
  8. import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
  9. import net.minecraftforge.fml.common.Mod;
  10. import net.minecraftforge.fml.common.registry.GameRegistry;

  11. @Mod(
  12.         modid = ModTest01.MOD_ID,
  13.         name = ModTest01.MOD_NAME,
  14.         version = ModTest01.VERSION
  15. )
  16. public class ModTest01 {

  17.     public static final String MOD_ID = "mod_test01";
  18.     public static final String MOD_NAME = "mod_test01";
  19.     public static final String VERSION = "1.0-SNAPSHOT";

  20.     /** This is the instance of your mod as created by Forge. It will never be null. */
  21.     @Mod.Instance(MOD_ID)
  22.     public static ModTest01 INSTANCE;

  23.     @Mod.EventHandler
  24.     public void preinit(FMLPreInitializationEvent event) {
  25.         System.out.println("正在开启······");
  26.     }

  27.     @Mod.EventHandler
  28.     public void init(FMLInitializationEvent event) {

  29.     }

  30.     @Mod.EventHandler
  31.     public void postinit(FMLPostInitializationEvent event) {

  32.     }

  33.     @GameRegistry.ObjectHolder(MOD_ID)
  34.     public static class Blocks {
  35.     }

  36.     @GameRegistry.ObjectHolder(MOD_ID)
  37.     public static class Items {
  38.     }

  39.     @Mod.EventBusSubscriber
  40.     public static class ObjectRegistryHandler {
  41.        @SubscribeEvent
  42.        public static void addItems(RegistryEvent.Register<Item> event) {
  43.        }
  44.        @SubscribeEvent
  45.        public static void addBlocks(RegistryEvent.Register<Block> event) {
  46.        }
  47.     }
  48. }
复制代码
以下是开启游戏时的物品



洞穴夜莺
这可能不是你的锅,这是idea一个不会复制资源文件的bug
试试用gradle启动还有没有这个现象

3TUSK
https://www.mcbbs.net/forum.php?mod=viewthread&tid=878045
请尝试按本贴2楼中的描述进行操作

耗子
请手动为物品指定模型路径:https://harbinger.covertdragon.team/chapter-11/baked/

vvvbbbcz
在1.12及以下版本中,模型需要另外注册(即指定模型位置),其次setTranslationKey方法不必要加。而setRegistryName里不用带上modid

第一页 上一页 下一页 最后一页