当前位置: 首页 > 知识库问答 >
问题:

在minecraft mod中无法使用的物品-minecraft Forge mod开发[编辑:已修复]

曾航
2023-03-14

我已经开始做一个mod,它没有注册为一个项目。当我输入/give Fidojj222 fcm:fuel_canister时,它应该给我该项目,但它说它不存在!我使用eclipse作为我的IDE,我怀疑当我将它编译到一个JAR中时可能会出现这样的警告:

JAR export finished with warnings. See details for additional information.
Can not export external class folder at 'C:\Users\J.J\.gradle\caches\minecraft\net\minecraftforge\forge\1.8-11.14.3.1450\start'.

如果那是问题所在,那我该如何解决呢?如果没有,下面是我的代码:

package com.fidojj222.carsmod;

import com.fidojj222.carsmod.init.CarsItems;
import com.fidojj222.carsmod.proxy.CommonProxy;

import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.SidedProxy;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;

@Mod(modid = Reference.MOD_ID, name = Reference.MOD_NAME, version =     Reference.VERSION)
public class CarsMod {

    @SidedProxy(clientSide = Reference.CLIENT_PROXY_CLASS, serverSide =             Reference.SERVER_PROXY_CLASS)
    public static CommonProxy proxy;

    public void PreInit(FMLPreInitializationEvent event){
        CarsItems.init();
        CarsItems.register();
    }

    public void Init(FMLInitializationEvent event){
        proxy.registerRenders();
    }

    public void PostInit(FMLPostInitializationEvent event){

    }
}

reference.java:

package com.fidojj222.carsmod;

public class Reference {
    public static final String MOD_ID = "fcm";
    public static final String MOD_NAME = "Fidojj222\'s Cars Mod";
    public static final String VERSION = "1.0";
    public static final String CLIENT_PROXY_CLASS = "com.fidojj222.carsmod.proxy.ClientProxy";
    public static final String SERVER_PROXY_CLASS = "com.fidojj222.carsmod.proxy.CommonProxy";
}

carsitems.java:

package com.fidojj222.carsmod.init;

import com.fidojj222.carsmod.Reference;

import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraftforge.fml.common.registry.GameRegistry;

public class CarsItems {
    public static Item fuel_canister;

    public static void init(){
        fuel_canister = new Item().setUnlocalizedName("fuel_canister");
    }

    public static void register(){
        GameRegistry.registerItem(fuel_canister, fuel_canister.getUnlocalizedName().substring(5));
    }

    public static void registerRenders(){
        registerRender(fuel_canister);
    }

    public static void registerRender(Item item){
            Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(Reference.MOD_ID + ":" + item.getUnlocalizedName().substring(5), "inventory"));
    }
}

commonProxy.java:

package com.fidojj222.carsmod.proxy;

public class CommonProxy {
    public void registerRenders(){

    }
}
package com.fidojj222.carsmod.proxy;

import com.fidojj222.carsmod.init.CarsItems;

public class ClientProxy extends CommonProxy {
    @Override
    public void registerRenders(){
        CarsItems.registerRenders();
    }
}

共有1个答案

强硕
2023-03-14

你说不展示是什么意思?在创意搜索菜单中根本找不到这个项目,或者它是一个没有纹理的(紫色/黑色方格)块?

如果是无纹理的,你需要确保做到这2件事:

  1. 确保您已安装了此纹理src/main/resources/assets/fcm/textures/items/fuel_canister.png它需要是16x16像素。
  2. 在src/main/resources/assets/fcm/models/item/fuel_canister.json中创建一个fuel_canister.json文件,该文件定义了如何在Game中呈现图像。

该文件的内容应为

{
  "parent": "builtin/generated",
  "textures":{
      "layer0":"fcm:items/fuel_canister"
  },
  "display":{
      "thirdperson":{
          "rotation":[-90, 0, 0],
          "translation":[0, 1, -3],
          "scale":[0.55,0.55,0.55]
      },
      "firstperson":{
          "rotation":[0,-135,25],
          "translation":[0,4,2],
        "scale":[1.7,1.7,1.7]
      }
  }
}
 类似资料:
  • 订阅号-群发消息-已发送及留言-编辑-保存 备注:只可修改正文,不支持修改标题、封面、摘要。

  • 问题内容: 我有一个学生卡SVG,其中有名称,id和其他字段,我想通过Java编辑,因为用户使用GUI输入了它们。 我已经使用Batik成功解析了SVG,但是打开它时看不到在SVG文件中所做的更改。 当我使用以下命令打印出SVG元素的值之一时 它已更改,但是当我在记事本中打开SVG时是相同的。 SVG 其他更新:解决了 问题答案: 似乎您在这里没有使用任何特定的SVG功能,只是一些常规XML解析。

  • 我正在构建一个简单的模块,我需要实时捕获后台数量修改事件(针对产品或变化),并将新数量发送到外部API。 我在纠结用哪个钩子去获取实际的用户插入量,而不是“以前”的产品量。 如果我在我的模块中的hookActionProductUpdate中使用静态方法StockAvailable::getQuantityAvailableByProduct,我得到的是原始产品数量,而不是新产品数量,可能是因为在

  • 问题内容: 首先:很抱歉,我无法提供SSCCE。我试图在一个小项目上重现此问题,但是没有成功,或者我应该说成功,因为它在那里工作! 所以这是我的问题:我有一个可编辑的JCombobox,它应通过单击编辑器组件来监听焦点事件。但事实并非如此。 这是我附加侦听器的代码段: 我已经尝试删除组合框上的所有其他侦听器,删除观察者模式,保护组合框并将侦听器附加到每个孩子上,… 是否有调试事件的好方法? 可以在

  • 地物编辑 地物编辑指对点、线、面等几何对象进行编辑设置,如线型、颜色、线宽等。如果没有自定义设置几何图形的样式,交互控件也会用默认样式进行绘制。 //实例化地物编辑参数类 var addFeatureParams = new SuperMap.EditFeaturesParameters({ features: pointFeature, dataSourceName: "Worl

  • 我正在开发一个springboot项目,使用Thymeleaf作为模板引擎。我使用Eclipse STS IDE,在那里我运行项目。 如果我从EclipseST内部更改模板(.html)上的某些内容,我将在视图上看到更改,但如果我使用其他编辑器(例如TextMate或方括号),则不会得到更改。 简而言之,如何从另一个编辑器(Eclipse STS外部)开发html模板?