Проблема с созданием простого предмета.

Версия Minecraft
1.12.0

jopi

Попрошайка
1,421
30
260
Проблема с созданием простого предмета.
Пишу предмет по туториалу и начинает гореть красным .registry
в коде GameRegistry.register(rgtester, "rgtester");
Я и в классе туториала, и в главном классе писал предмет но всёравно оно горит красным...

==========
Главный класс
Java:
package ru.fxg.tooltest;

import ru.fxg.tooltest.tools.*;
import net.minecraft.item.Item;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.SidedProxy;
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;

@Mod (modid = Mood.MODID, version = Mood.VERSION)
public class Mood {

    public static final String MODID = "tooltest";
    public static final String VERSION = "0.1";

    @SidedProxy (clientSide = "ru.fxg.tooltest.ClP", serverSide = "ru.fxg.tooltest.CoP")
    public static CoP p;

    @EventHandler
    public void preInit(FMLPreInitializationEvent E)
    {
        rgtester.preInit();
        p.preInit(E);
    }
    @EventHandler
    public void init(FMLInitializationEvent E)
    {
        p.init(E);
    }
    @EventHandler
    public void postInit(FMLPostInitializationEvent E)
    {
        p.postInit(E);
    }
}
И код предмета
Java:
package ru.fxg.tooltest.tools;

import ru.fxg.tooltest.Mood;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.common.registry.GameRegistry;

public class rgtester extends Item {
    public static Item rgtest;
    public static void preInit()
    {
        rgtest = new Item().setUnlocalizedName("rgtest").setCreativeTab(CreativeTabs.MISC);
        addItems();
    }
    public static void addItems()
    {   
        addItem (rgtest, "rgtest");
    }
    public static void addRenders()
    {
        addRender(rgtest, "rgtest");
    }
    public static void addItem(Item item, String nm)
    {
        GameRegistry.register(rgtest, new ResourceLocation(Mood.MODID, nm));
    }
    public static void addRender(Item item, String nm)
    {
        Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(Mood.MODID + ":" + nm, "inventory"));
    }
}
 
Последнее редактирование:
5,018
47
783
Пару советов
1) @SidedProxy (clientSide = "ru.fxg.tooltest.ClP", serverSide = "ru.fxg.tooltest.CoP") public static CoP p;
Не делай таких сокращений, сам потом путаться будешь. А больше - остальные. Сокращения можно делать там, где очевидно что там за переменная(например, e=event). А что такое CoP ? Да что угодно! :) .
Названия классов вообще сокращать нельзя никогда до FPIE например. Пойди разберись, что я тут написал FMLPreInitializationEvent
2) Переменные должны ВСЕГДА начинаться с маленькой буквы. Если это несколько слов, то пиши с большими буквами в начале
(например. world.canSeeSky)
Код:
    @EventHandler
    public void preInit(FMLPreInitializationEvent E)
    {
        rgtester.preInit();
        p.preInit(E);
    }
 
Сверху