You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Minecraft Forge 1.12.2 自定义物品纹理无法加载问题求助

Minecraft 1.12.2 Forge自定义物品纹理加载失败修复

你的代码和资源结构存在4处核心错误,按以下步骤修复即可正常加载纹理:

1. 修正资源文件存放路径与格式

当前纹理文件的位置和后缀完全错误:

  • 错误配置:纹理被存为src/main/resources/assets/hdo/textures/items.json
  • 修复要求:
    • 在assets/hdo/textures/目录下新建名为items的文件夹
    • 将物品纹理PNG文件重命名为coca.png,放入上述新建的items文件夹,最终正确路径为src/main/resources/assets/hdo/textures/items/coca.png
    • 确保PNG纹理尺寸为2的整数次幂(如16x16、32x32),不符合尺寸要求的纹理会被Forge直接忽略。

2. 修正物品模型JSON的纹理路径

当前模型文件内的纹理路径多写了一个斜杠,修改coca.json内容如下:

{
  "parent": "item/generated",
  "textures": {
    "layer0": "hdo:items/coca"
  }
}

注意:Minecraft资源定位格式为[modid]:[路径],域和路径之间仅用单个冒号分隔,不要额外加斜杠。

3. 补全物品初始化与注册逻辑

现有代码存在逻辑断层:ModItems类的init()方法从未被调用,会直接触发空指针异常,同时自定义物品根本没有被实例化、注册进游戏。
修复步骤:

  • 在CommonProxy类的preinit()方法中添加初始化调用,保证双端都能完成物品初始化:
public class CommonProxy {
    public void preinit()
    {
        ModItems.INSTANCE.init();
    }

    public void init() {}
    public void postinit() {}
}
  • 检查你主类中注册的RegisteringEvent类,必须添加物品注册事件的监听逻辑(如果缺失请补上):
@SubscribeEvent
public void registerItems(RegistryEvent.Register<Item> event) {
    event.getRegistry().register(ModItems.coca);
}

4. 校验MODID一致性

检查Reference类中MODID常量的取值,必须和assets下的模组资源文件夹名、模型JSON里的资源域完全一致,即严格等于全小写的hdo,任何大小写差异、多余字符都会导致资源定位失败。


内容的提问来源于stack exchange,提问作者DouFut

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 05:00:45