thedarkcolour/KotlinForForge

lateinit property value has not been initialized when registering item

joshop opened this issue · 2 comments

I have very little experience with Kotlin for Forge or Forge in general, but I'm currently attempting to make an item with custom behavior by creating an object which inherits from Item(Properties()) or whatever properties I want and then declaring, for instance, onitemRightClick. The file containing the item:

package rous.roustestmod.item

import net.minecraft.item.Item

object TestItem : Item(Properties()) {
    // implementing methods here
}

but when I try to register it (in the same way done in the modding skeleton):

val TESTITEM by REGISTRY.registerObject("test_item") {
    TestItem
}

it gives me lateinit property value has not been initialized. What am I doing wrong - is this even the intended way to register new items?

You're using an object, which cannot be initialized. You need to use a normal class.

First of all you should not be using an object for an item
If you are never initializing REGISTRY from the main mod constructor then the item is never registered and you are getting the error you see here
If you need more help join my discord server