Bassebombecraft

Bassebombecraft

18.5k Downloads

Register model location for book of teleport

Closed this issue ยท 1 comments

commented

Stacktrace

After #286, initialization fails with:

 java.lang.NullPointerException: Initializing game
	at bassebombecraft.proxy.ClientProxy.registerItemForRendering(ClientProxy.java:51)
	at bassebombecraft.item.book.GenericRightClickedBook.<init>(GenericRightClickedBook.java:60)
	at bassebombecraft.item.book.TeleportBook.<init>(TeleportBook.java:16)
	at bassebombecraft.item.ItemRegistryEventHandler.registerItems(ItemRegistryEventHandler.java:18)
	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_4_ItemRegistryEventHandler_registerItems_Register.invoke(.dynamic)
	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
	at net.minecraftforge.fml.common.eventhandler.EventBus$1.invoke(EventBus.java:143)
	at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:179)
	at net.minecraftforge.registries.GameData.fireRegistryEvents(GameData.java:741)
	at net.minecraftforge.fml.common.Loader.preinitializeMods(Loader.java:604)
	at net.minecraftforge.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:270)
	at net.minecraft.client.Minecraft.init(Minecraft.java:513)
	at net.minecraft.client.Minecraft.run(Minecraft.java:421)

The null pointer exception happens in the ClientProxyregisterItemForRendering() where the getItemModelMesher() returns null:

	@Override
	public void registerItemForRendering(Item item) {
		RenderItem renderItem = Minecraft.getMinecraft().getRenderItem();
		ModelResourceLocation location;
		location = new ModelResourceLocation(MODID + ":" + item.getUnlocalizedName().substring(5), "inventory");
		renderItem.getItemModelMesher().register(item, 0, location);
	}

Solution

Use the ModelRegistryEvent in 12.1:

https://suppergerrie2.com/minecraft-1-12-modding-with-forge-3-custom-item/
https://github.com/suppergerrie2/ForgeTutorial/blob/master/per%20part/part%203/src/main/java/com/suppergerrie2/tutorial/init/ModItems.java
http://www.minecraftforge.net/forum/topic/58997-112-registering-blocks-and-itemblocks-the-new-way/

Class ItemRegistryEventHandler is introduced to implement events for registration of items.

commented

Closed by commit b6fd0d2.