Jump to content

[1.12] Crash when Registering ItemBlock (I promise I set the registry name)


Recommended Posts

Posted

Hello everyone,


I am having an interesting crash that I can't seem to track down, that seems to relate to either my ItemBlock registration, or my creative tab. I however lean towards my ItemBlock registration, as I do not get the crash when I comment out the ItemBlock registration, and I still get the crash with my Creative tab commented out. Any help would be greatly appreciated.

 

Thank you in advance for your time!

GitHub with Codehttps://github.com/Joshj5hawk/FirstMod

Crash Log

[23:16:07] [main/INFO] [STDOUT]: [net.minecraft.init.Bootstrap:printToSYSOUT:629]: ---- Minecraft Crash Report ----
// Shall we play a game?

Time: 7/9/19 11:16 PM
Description: Initializing game

java.lang.NullPointerException: Initializing game
    at net.minecraft.item.ItemBlock.getCreativeTab(ItemBlock.java:155)
    at net.minecraft.item.Item.getCreativeTabs(Item.java:821)
    at net.minecraft.item.Item.isInCreativeTab(Item.java:539)
    at net.minecraft.item.ItemBlock.getSubItems(ItemBlock.java:163)
    at net.minecraft.client.Minecraft.populateSearchTreeManager(Minecraft.java:631)
    at net.minecraft.client.Minecraft.init(Minecraft.java:570)
    at net.minecraft.client.Minecraft.run(Minecraft.java:416)
    at net.minecraft.client.main.Main.main(Main.java:118)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
    at GradleStart.main(GradleStart.java:25)


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Thread: Client thread
Stacktrace:
    at net.minecraft.item.ItemBlock.getCreativeTab(ItemBlock.java:155)
    at net.minecraft.item.Item.getCreativeTabs(Item.java:821)
    at net.minecraft.item.Item.isInCreativeTab(Item.java:539)
    at net.minecraft.item.ItemBlock.getSubItems(ItemBlock.java:163)
    at net.minecraft.client.Minecraft.populateSearchTreeManager(Minecraft.java:631)
    at net.minecraft.client.Minecraft.init(Minecraft.java:570)

-- Initialization --
Details:
Stacktrace:
    at net.minecraft.client.Minecraft.run(Minecraft.java:416)
    at net.minecraft.client.main.Main.main(Main.java:118)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
    at GradleStart.main(GradleStart.java:25)

-- System Details --
Details:
    Minecraft Version: 1.12.2
    Operating System: Windows 10 (amd64) version 10.0
    Java Version: 1.8.0_211, Oracle Corporation
    Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
    Memory: 757398200 bytes (722 MB) / 1245708288 bytes (1188 MB) up to 3801088000 bytes (3625 MB)
    JVM Flags: 0 total; 
    IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
    FML: MCP 9.42 Powered by Forge 14.23.5.2775 10 mods loaded, 10 mods active
    States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored

    | State | ID           | Version      | Source                                             | Signature |
    |:----- |:------------ |:------------ |:-------------------------------------------------- |:--------- |
    | UCH   | minecraft    | 1.12.2       | minecraft.jar                                      | None      |
    | UCH   | mcp          | 9.42         | minecraft.jar                                      | None      |
    | UCH   | FML          | 8.0.99.99    | forgeSrc-1.12.2-14.23.5.2775-PROJECT(FirstMod).jar | None      |
    | UCH   | forge        | 14.23.5.2775 | forgeSrc-1.12.2-14.23.5.2775-PROJECT(FirstMod).jar | None      |
    | UCH   | pixelmon     | 2.7.0        | PixelmonGenerations-1.12.2-2.7.0.jar               | None      |
    | UCH   | jei          | 4.13.1.222   | jei_1.12.2-4.13.1.222.jar                          | None      |
    | UCH   | redstoneflux | 2.0.0        | RedstoneFlux-1.12-2.0.0.1.jar                      | None      |
    | UCH   | theoneprobe  | 1.4.14       | TheOneProbe-1.12-1.12-1.4.14-7.jar                 | None      |
    | UCH   | intwheel     | 1.2.7        | intwheel-1.12-1.2.7.jar                            | None      |
    | UCH   | firstmod     | 0.0.1        | firstmod-0.0.1.jar                                 | None      |

    Loaded coremods (and transformers): 
    GL info: ' Vendor: 'NVIDIA Corporation' Version: '4.6.0 NVIDIA 419.17' Renderer: 'GeForce GTX 1070/PCIe/SSE2'
    Launched Version: 1.12.2
    LWJGL: 2.9.4
    OpenGL: GeForce GTX 1070/PCIe/SSE2 GL version 4.6.0 NVIDIA 419.17, NVIDIA Corporation
    GL Caps: Using GL 1.3 multitexturing.
Using GL 1.3 texture combiners.
Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.
Shaders are available because OpenGL 2.1 is supported.
VBOs are available because OpenGL 1.5 is supported.

    Using VBOs: Yes
    Is Modded: Definitely; Client brand changed to 'fml,forge'
    Type: Client (map_client.txt)
    Resource Packs: 
    Current Language: English (US)
    Profiler Position: N/A (disabled)
    CPU: 8x Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz
[23:16:07] [main/INFO] [STDOUT]: [net.minecraft.init.Bootstrap:printToSYSOUT:629]: #@!@# Game crashed! Crash report saved to: #@!@# D:\MinecraftModding\FirstMod\run\.\crash-reports\crash-2019-07-09_23.16.07-client.txt
AL lib: (EE) alc_cleanup: 1 device not closed
:runClient FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':runClient'.
> Process 'command 'C:\Program Files\Java\jdk1.8.0_211\bin\java.exe'' finished with non-zero exit value -1

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 22.016 secs
Process 'command 'C:\Program Files\Java\jdk1.8.0_211\bin\java.exe'' finished with non-zero exit value -1
11:16:07 PM: Task execution finished 'runClient'.

 (I bet I'm overlooking something stupid and I'm not actually setting the registry name :( )

Posted

I have a link to my git repo in the OP, But I suppose relevant files are here

PoweredAnvil.java

package joshj5hawk.firstmod.poweredAnvil;

import joshj5hawk.firstmod.FirstMod;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.util.ResourceLocation;

public class PoweredAnvil extends Block
{
    public static final ResourceLocation POWEREDANVIL = new ResourceLocation(FirstMod.MODID, "poweredanvil");

    public PoweredAnvil()
    {
        super(Material.IRON);
        setRegistryName(POWEREDANVIL);
        setUnlocalizedName(FirstMod.MODID + ".poweredanvil");
        setHarvestLevel("pickaxe", 1);
        setCreativeTab(FirstMod.tabFirstMod);
    }
}

CommonProxy.java
 

package joshj5hawk.firstmod.proxy;

import joshj5hawk.firstmod.FirstMod;
import joshj5hawk.firstmod.ModBlocks;
import joshj5hawk.firstmod.poweredAnvil.PoweredAnvil;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;

@Mod.EventBusSubscriber
public class CommonProxy
{
    public void preInit(FMLPreInitializationEvent event)
    {

    }

    public void init(FMLInitializationEvent event)
    {

    }

    public void postInit(FMLPostInitializationEvent event)
    {

    }

    @SubscribeEvent
    public static void registerBlocks(RegistryEvent.Register<Block> event)
    {
        event.getRegistry().register(new PoweredAnvil());
    }

    @SubscribeEvent
    public static void registerItems(RegistryEvent.Register<Item> event)
    {
        event.getRegistry().register(new ItemBlock(ModBlocks.poweredAnvil).setRegistryName(new ResourceLocation(FirstMod.MODID, "poweredanvil")));
    }
}

FirstMod.java (Main mod class)
 

package joshj5hawk.firstmod;

import joshj5hawk.firstmod.proxy.CommonProxy;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.SidedProxy;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import org.apache.logging.log4j.Logger;

@Mod(modid = FirstMod.MODID, name = FirstMod.MODNAME, version = FirstMod.MODVERSION, dependencies = "required:pixelmon@[2.7.0]", useMetadata = true)
public class FirstMod
{
    public static final String MODID = "firstmod";
    public static final String MODNAME = "First Mod";
    public static final String MODVERSION = "0.0.1";


    @SidedProxy(clientSide = "joshj5hawk.firstmod.proxy.ClientProxy", serverSide = "joshj5hawk.firstmod.proxy.ServerProxy")
    public static CommonProxy proxy;


    @Mod.Instance
    public static FirstMod instance;

    public static Logger logger;

    @Mod.EventHandler
    public void preInit(FMLPreInitializationEvent event)
    {
        logger = event.getModLog();
        proxy.preInit(event);
    }

    @Mod.EventHandler
    public void init(FMLInitializationEvent event)
    {
        proxy.init(event);
    }

    @Mod.EventHandler
    public void postInit(FMLPostInitializationEvent event)
    {
        proxy.postInit(event);
    }

    public static CreativeTabs tabFirstMod = new CreativeTabs("FirstMod")
    {
        @Override
        public ItemStack getTabIconItem()
        {
            return new ItemStack(new ItemBlock(ModBlocks.poweredAnvil));
        }
    };

}

ModBlocks.java
 

package joshj5hawk.firstmod;

import joshj5hawk.firstmod.poweredAnvil.PoweredAnvil;
import net.minecraftforge.fml.common.registry.GameRegistry;

public class ModBlocks
{
    @GameRegistry.ObjectHolder("mymod:poweredanvil")
    public static PoweredAnvil poweredAnvil;
}

 

Posted
Just now, ProPane865 said:

just realized that XD

Thanks for attempting to help, it means a lot :) I see you helping out like, everyone right now lol. Keep up the good work.

  • Like 1
Posted
Just now, JoshJ5Hawk said:

Thanks for attempting to help, it means a lot :) I see you helping out like, everyone right now lol. Keep up the good work.

Thx dude, really means a lot to me

Posted

I suppose I'll ask this while its here instead of making a new post, semi related I guess. Does anything that I've shown jump out and say "This is why your textures aren't loading"?

Posted (edited)
1 hour ago, JoshJ5Hawk said:

I suppose I'll ask this while its here instead of making a new post, semi related I guess. Does anything that I've shown jump out and say "This is why your textures aren't loading"?

Please post your log. No longer needed.


1. Using your proxy as the event subscriber is a bad practice, as the one and only purpose is to run code on one dedicated side. Consider using another class for item/block registration instead of the proxies.

2. (Main issue) You have to subscribe to the ModelRegistryEvent and register your items there. An example would be

ModelLoader.setCustomModelResourceLocation(yourItem, metadata, new ModelResourceLocation(yourItem.getRegistryName(), "inventory"));

 

Edited by DavidM
  • Like 1

Some tips:

Spoiler

Modder Support:

Spoiler

1. Do not follow tutorials on YouTube, especially TechnoVision (previously called Loremaster) and HarryTalks, due to their promotion of bad practice and usage of outdated code.

2. Always post your code.

3. Never copy and paste code. You won't learn anything from doing that.

4. 

Quote

Programming via Eclipse's hotfixes will get you nowhere

5. Learn to use your IDE, especially the debugger.

6.

Quote

The "picture that's worth 1000 words" only works if there's an obvious problem or a freehand red circle around it.

Support & Bug Reports:

Spoiler

1. Read the EAQ before asking for help. Remember to provide the appropriate log(s).

2. Versions below 1.11 are no longer supported due to their age. Update to a modern version of Minecraft to receive support.

 

 

Posted
41 minutes ago, DavidM said:

Please post your log. No longer needed.


1. Using your proxy as the event subscriber is a bad practice, as the one and only purpose is to run code on one dedicated side. Consider using another class for item/block registration instead of the proxies.

2. (Main issue) You have to subscribe to the ModelRegistryEvent and register your items there. An example would be


ModelLoader.setCustomModelResourceLocation(yourItem, metadata, new ModelResourceLocation(yourItem.getRegistryName(), "inventory"));

 

So I did actually add that a bit later, hopefully I called it correctly. I subscribed to it in my PoweredAnvil.java, the main class for the block itself, as such:

package joshj5hawk.firstmod.poweredAnvil;

import joshj5hawk.firstmod.FirstMod;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraftforge.fml.relauncher.Side;

public class PoweredAnvil extends Block
{
    public static final ResourceLocation POWEREDANVIL = new ResourceLocation(FirstMod.MODID, "poweredanvil");

    public PoweredAnvil()
    {
        super(Material.IRON);
        setRegistryName(new ResourceLocation(FirstMod.MODID, "poweredanvil"));
        setUnlocalizedName(FirstMod.MODID + ".poweredanvil");
        setHarvestLevel("pickaxe", 1);
        setCreativeTab(FirstMod.tabFirstMod);
    }
    @SideOnly(Side.CLIENT)
    public void initModel()
    {
        ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(this), 0, new ModelResourceLocation(getRegistryName(), "inventory"));
    }
}

And I have then called it in my ModBlocks.java
 

package joshj5hawk.firstmod;

import joshj5hawk.firstmod.poweredAnvil.PoweredAnvil;
import net.minecraftforge.fml.common.registry.GameRegistry;

public class ModBlocks
{
    @GameRegistry.ObjectHolder("firstmod:poweredanvil")
    public static PoweredAnvil poweredanvil;

    public static void initModels()
    {
        @SubscribeEvent
        poweredanvil.initModel();
    }
}

But I'm wondering if I just have a silly typo somewhere again. My block is showing up, albeit untextured and rather large in the player's hand lol, as well as the item as well. Is this the wrong place.

 

Additionally I've committed these changes to my git ( https://github.com/Joshj5hawk/FirstMod ) as well, if you can see anything else that jumps out at you. 

 

Once I get this texture bit figured out, I'll look into getting those subscriber events elsewhere. Any suggestions there? Been following along with McJty's 1.12 tuts, but I'm always willing to learn better practices


Again, I appreciate the help. The last time I wrote a mod it was for ModLoader lol

Posted

Your model registering code is not in your event subscriber for the ModelRegistryEvent, thus your code is not being called at all.

You need an event subscriber for the ModelRegistryEvent in your event subscriber bus (the CommonProxy in your case).

A typical event subscriber looks like this:

@SubscribeEvent
public static void someEventSubscriber(EventClass event) {
	// ...
}

 

Some tips:

Spoiler

Modder Support:

Spoiler

1. Do not follow tutorials on YouTube, especially TechnoVision (previously called Loremaster) and HarryTalks, due to their promotion of bad practice and usage of outdated code.

2. Always post your code.

3. Never copy and paste code. You won't learn anything from doing that.

4. 

Quote

Programming via Eclipse's hotfixes will get you nowhere

5. Learn to use your IDE, especially the debugger.

6.

Quote

The "picture that's worth 1000 words" only works if there's an obvious problem or a freehand red circle around it.

Support & Bug Reports:

Spoiler

1. Read the EAQ before asking for help. Remember to provide the appropriate log(s).

2. Versions below 1.11 are no longer supported due to their age. Update to a modern version of Minecraft to receive support.

 

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.