Мод для Minecraft не регистрирует мой предмет - PullRequest
0 голосов
/ 08 ноября 2019

Я создаю мод для Minecraft и пытаюсь зарегистрировать новый предмет, но это не так (или, по крайней мере, кажется, что нет). Что мне нужно исправить в коде?

ПРИМЕЧАНИЕ. Полный код можно найти по адресу https://github.com/LoboMetalurgico/allonsy_mod/

Класс ModItems

public class ModItems {
    public static final List<Item> ITEMS = new ArrayList<Item>();

    public static final Item ruby = new ItemBase("ruby");
}

Интерфейс IHasModel

public interface IHasModel {
    public void registerModels();
}

Класс CommomProxy

public class CommomProxy {
    public void registerItemRenderer(Item item, int meta, String id){

    }
}

Класс ClientProxy

public class ClientProxy  extends CommomProxy {
    public void registerItemRenderer(Item item, int meta, String id){
        ModelLoader.setCustomModelResourceLocation(item, meta, new ModelResourceLocation(item.getRegistryName(), id));
    }
}

Класс ItemBase

public class ItemBase extends Item implements IHasModel {

    public ItemBase(String name){
        setUnlocalizedName(name);
        setRegistryName(name);
        setCreativeTab(CreativeTabs.MATERIALS);

        ModItems.ITEMS.add(this);
    }

    @Override
    public void registerModels() {
        AllonsyMod.proxy.registerItemRenderer(this, 0, "inventory");
    }
}

Класс RegistryHandler

@EventBusSubscriber
public class RegistryHandler {
    @SubscribeEvent
    public static void onItemRegister(RegistryEvent.Register<Item> event){
        event.getRegistry().registerAll(ModItems.ITEMS.toArray(new Item[0]));
    }
    @SubscribeEvent
    public static void onModelRegister(ModelRegistryEvent event){
        for(Item item : ModItems.ITEMS){
            if(item instanceof IHasModel){
                ((IHasModel)item).registerModels();
            }
        }
    }
}
...