I think even I can help here so I will try
so basically to make everything simpler for you
First you want a registry_handler which registers the items through Forge( no not the textures just the item "unlocalizedname" and "registryName") and it should look something similar to this
@EventBusSubscriber
public class RegistryHandler {
@SubscribeEvent //for @SubscribeEvent you would have to register your class BUT because of the @EventbusSubscriber you don't have to if i am correct
public static void registerItemsasdasd(Register<Item> event) {
final Item[] items = {
new ItemBasic("BasicStar","basic_star_item"), //the item that you are making (you have the same class in your git so this should be ok
};
event.getRegistry().registerAll(items); //this will use the register to tell the game that this thing even exceists
}
}
Then if you registered your items you need some way to tell that you want a model or picture or whatever for your item so you do this
@EventBusSubscriber(Side.CLIENT)
public class ModelRegistryHandler {
@SubscribeEvent
public static void registerModels(ModelRegistryEvent event) {
registerModel(TutorialItems.BASIC_STAR_ITEM); //here comes the problem. You need a reference for your item(basically you could use just a "registryName" without getting the item reference but you will need later anyways
}
private static void registerModel(Item item) {
ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(item.getRegistryName(), "inventory"));
}
}
To get your item reference one way is to do this:
@ObjectHolder(MainModpls.MODID)
public class TutorialItems {
public static final Item BASIC_STAR_ITEM = null;
//This will just simply look through items thats in the namespace of MainModpls.MODID and if it finds a match it fills the value of your variable in more easier way: you I constructed the basicItem with the registryName=basic_star_item(small letters and theese things _ ) and if it finds that name here with CAPITALS then it sets the value
}
To be honest if you implement theese things it should work just be aware from here for the "picture" of your item it will look for a .json file in: assets.yourMODID.models.item.registryNameofyouritem.json
json contains this:
{
"parent": "item/generated",
"textures": {
"layer0": "yourMODID:items/name_of_the_picture_without_the_.png_at_the_and"
}
}
and it looks for the picture which is .png here:
assets.yourMODID.textures.items.yourpicture.png
YES ITEMS NOT ITEM AND IN MODELS YES ITEM NOT ITEMS
I hope from here you can decode what jumps to where and what happens cause I am sure nobody will give a more detailed explanation here