Jump to content

Help Creating a Custom Machine [1.12.2]


Distinct Soul

Recommended Posts

  • 3 weeks later...
  • 3 weeks later...

Ok, so I've done a few changes to my mod, and I no longer have errors for my classes. However, the problem now relates to the fact that when I run my Minecraft, it crashes and says this:

 

java.lang.IllegalStateException: The ObjectHolder annotation cannot apply to a field that does not map to a registry. Ensure the registry was created during the RegistryEvent.NewRegistry event. (found : net.minecraft.creativetab.CreativeTabs at java.lang.reflect.Field.SOUL_FORGERY)

 

Here's my ClientEventSubscriber if it helps:
 

@Mod.EventBusSubscriber(modid = Main.MODID, value = CLIENT)
public final class ClientEventSubscriber {
	
	private static final Logger LOGGER = LogManager.getLogger();
	private static final String DEFAULT_VARIANT = "normal";
	
	@SubscribeEvent
	public static void onRegisterModelsEvent(@Nonnull final ModelRegistryEvent event) {
		
		ForgeRegistries.BLOCKS.getValuesCollection().stream()
						.filter(block -> block.getRegistryName().getNamespace().equals(Main.MODID))
						.forEach(ClientEventSubscriber::registerItemBlockModel);
		
		registerItemBlockModel(ModBlocks.IGRIAN_ORE);
		registerItemBlockModel(ModBlocks.SHARD_FUSER);
		
		registerItemModel(ModItems.IGRIAN_INGOT);
		registerItemModel(ModItems.IGRIAN_SHARDS);
		registerItemModel(ModItems.TAINTED_SOUL);
		registerItemModel(ModItems.IGRIAN_SWORD);
		
		LOGGER.debug("Registered models");
	}
	
	private static void registerItemModel(@Nonnull final Item item) {
		Preconditions.checkNotNull(item, "Item cannot be null!");
		final ResourceLocation registryName = item.getRegistryName();
		Preconditions.checkNotNull(registryName, "Item Registry Name cannot be null!");
		ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(item.getRegistryName(), DEFAULT_VARIANT));
	}

	private static void registerItemBlockModel(@Nonnull final Block block) {
		Preconditions.checkNotNull(block, "Block cannot be null!");
		final ResourceLocation registryName = block.getRegistryName();
		Preconditions.checkNotNull(registryName, "Block Registry Name cannot be null!");
		ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(block), 0, new ModelResourceLocation(block.getRegistryName(), DEFAULT_VARIANT));
	}
	
	@SubscribeEvent
	public static void onTextureStitchEvent(@Nonnull final TextureStitchEvent event) {
		// Register texture for Shard Fuser
		final ResourceLocation registryName = ModBlocks.SHARD_FUSER.getRegistryName();
		event.getMap().registerSprite(new ResourceLocation(registryName.getNamespace(), "block/" + registryName.getPath()));
	}
}

 

I'm not really sure what other things to give to help solve this problem.

Edited by Distinct Soul
Link to comment
Share on other sites

I did and that's why I sent that because it had to do with registering stuff, which I thought the error was talking about, as it was talking about the registry and registry events. If I didn't I would of just said: "My game crashed. Please help." and not even send anything other than the crash report. At least now that I know that it's more specifically targeted at the @ObjectHolder annotation.

 

From that, all I can think of that might help is sending classes which contain the '@ObjectHolder' annotation.

@ObjectHolder(Main.MODID)
public class ModBlocks {
	
	// Blocks
	public static final BlockBase IGRIAN_ORE = null;
	public static final BlockBase SHARD_FUSER = null;
}
@ObjectHolder (Main.MODID)
public class ModItems {
	
	// Creative Tabs
	public static final CreativeTabs SOUL_FORGERY = new CreativeTabs("soul_forgery") {

		@Override
		public ItemStack createIcon() {
			return new ItemStack(IGRIAN_INGOT);
		}
	};
	
	// Materials
	public static final ToolMaterial MATERIAL_IGRIAN = EnumHelper.addToolMaterial("material_igrian", 4, 1600, 9.0F, 5.0F, 10);
	
	// Items
	public static final ItemBase TAINTED_SOUL = null;
	public static final ItemBase IGRIAN_SHARDS = null;
	public static final ItemBase IGRIAN_INGOT = null;
	
	// Tools
	public static final ItemSword IGRIAN_SWORD = new ToolSword(MATERIAL_IGRIAN);
	
}

 

Link to comment
Share on other sites

The error is telling you that you are applying the @ObjectHolder annotation to a field that does not correspond to a registry, namely one of type CreativeTabs. If you annotate the class with @ObjectHolder like you have done, it will try to use all of the fields in there as object holders, regardless of their type, so it is trying to use SOUL_FORGERY as an object holder. You can get around this by either having only the things you want as object holders in that class and moving the others, or by annotating each field instead of the whole class (see this link).

Link to comment
Share on other sites

  • 1 month later...
14 minutes ago, Distinct Soul said:

Now when I do that it says 'Item cannot be null'; but I thought that was part of the purpose of my EventSubscriber class. Or one of my other classes at least.

That is not what the EventSubscriber class does. If you have a problem with something being null (or any other error), you have to include the code and the log so that we can even begin to help you.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

Alright, so this is the class I just updated:

public class ModItems {
	
	@SubscribeEvent
	public void registerItems(RegistryEvent.Register<Item> event) {
	    event.getRegistry().registerAll(TAINTED_SOUL, IGRIAN_SHARDS, IGRIAN_INGOT, IGRIAN_SWORD);
	}
	
	// Creative Tabs
	public static final CreativeTabs SOUL_FORGERY = new CreativeTabs("soul_forgery") {

		@Override
		public ItemStack createIcon() {
			return new ItemStack(IGRIAN_INGOT);
		}
	};
	
	// Materials
	public static final ToolMaterial MATERIAL_IGRIAN = EnumHelper.addToolMaterial("material_igrian", 4, 1600, 9.0F, 5.0F, 10);
	
	// Items
	public static final ItemBase TAINTED_SOUL = null;
	public static final ItemBase IGRIAN_SHARDS = null;
	public static final ItemBase IGRIAN_INGOT = null;
	
	// Tools
	public static final ItemSword IGRIAN_SWORD = new ToolSword(MATERIAL_IGRIAN);
	
}

(Added the 'registerItems' event at the top, and removed the '@ObjectHolder' annotation that I believe was causing the previous crash)

 

The class that I now believe relates to the current crash, which in the crash log references line 52 and 43 of:

@Mod.EventBusSubscriber(modid = Main.MODID, value = CLIENT)
public final class ClientEventSubscriber {
	
	private static final Logger LOGGER = LogManager.getLogger();
	private static final String DEFAULT_VARIANT = "normal";
	
	@SubscribeEvent
	public static void onRegisterModelsEvent(@Nonnull final ModelRegistryEvent event) {
		
		ForgeRegistries.BLOCKS.getValuesCollection().stream()
						.filter(block -> block.getRegistryName().getNamespace().equals(Main.MODID))
						.forEach(ClientEventSubscriber::registerItemBlockModel);
		
		registerItemBlockModel(ModBlocks.IGRIAN_ORE);
		registerItemBlockModel(ModBlocks.SHARD_FUSER);
		
		registerItemModel(ModItems.IGRIAN_INGOT);
		registerItemModel(ModItems.IGRIAN_SHARDS);
		registerItemModel(ModItems.TAINTED_SOUL);
		registerItemModel(ModItems.IGRIAN_SWORD);
		
		LOGGER.debug("Registered models");
	}
	
	private static void registerItemModel(@Nonnull final Item item) {
		Preconditions.checkNotNull(item, "Item cannot be null!");
		final ResourceLocation registryName = item.getRegistryName();
		Preconditions.checkNotNull(registryName, "Item Registry Name cannot be null!");
		ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(item.getRegistryName(), DEFAULT_VARIANT));
	}

	private static void registerItemBlockModel(@Nonnull final Block block) {
		Preconditions.checkNotNull(block, "Block cannot be null!");
		final ResourceLocation registryName = block.getRegistryName();
		Preconditions.checkNotNull(registryName, "Block Registry Name cannot be null!");
		ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(block), 0, new ModelResourceLocation(block.getRegistryName(), DEFAULT_VARIANT));
	}
	
	@SubscribeEvent
	public static void onTextureStitchEvent(@Nonnull final TextureStitchEvent event) {
		// Register texture for Shard Fuser
		final ResourceLocation registryName = ModBlocks.SHARD_FUSER.getRegistryName();
		event.getMap().registerSprite(new ResourceLocation(registryName.getNamespace(), "block/" + registryName.getPath()));
	}
}

 

And this is the error log:

Spoiler

---- Minecraft Crash Report ----
// My bad.

Time: 7/24/19 4:29 PM
Description: Initializing game

java.lang.NullPointerException: Item cannot be null!
    at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:787)
    at com.distinctsoul.soulforgery.client.ClientEventSubscriber.registerItemModel(ClientEventSubscriber.java:52)
    at com.distinctsoul.soulforgery.client.ClientEventSubscriber.onRegisterModelsEvent(ClientEventSubscriber.java:43)
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_5_ClientEventSubscriber_onRegisterModelsEvent_ModelRegistryEvent.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.fml.client.FMLClientHandler.fireSidedRegistryEvents(FMLClientHandler.java:1096)
    at net.minecraftforge.fml.common.FMLCommonHandler.fireSidedRegistryEvents(FMLCommonHandler.java:758)
    at net.minecraftforge.fml.common.Loader.preinitializeMods(Loader.java:605)
    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)
    at net.minecraft.client.main.Main.main(Main.java:118)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    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(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    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 com.google.common.base.Preconditions.checkNotNull(Preconditions.java:787)
    at com.distinctsoul.soulforgery.client.ClientEventSubscriber.registerItemModel(ClientEventSubscriber.java:52)
    at com.distinctsoul.soulforgery.client.ClientEventSubscriber.onRegisterModelsEvent(ClientEventSubscriber.java:43)
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_5_ClientEventSubscriber_onRegisterModelsEvent_ModelRegistryEvent.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.fml.client.FMLClientHandler.fireSidedRegistryEvents(FMLClientHandler.java:1096)
    at net.minecraftforge.fml.common.FMLCommonHandler.fireSidedRegistryEvents(FMLCommonHandler.java:758)
    at net.minecraftforge.fml.common.Loader.preinitializeMods(Loader.java:605)
    at net.minecraftforge.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:270)
    at net.minecraft.client.Minecraft.init(Minecraft.java:513)

-- Initialization --
Details:
Stacktrace:
    at net.minecraft.client.Minecraft.run(Minecraft.java:421)
    at net.minecraft.client.main.Main.main(Main.java:118)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    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(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    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_181, Oracle Corporation
    Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
    Memory: 776709504 bytes (740 MB) / 1037959168 bytes (989 MB) up to 1037959168 bytes (989 MB)
    JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
    IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
    FML: MCP 9.42 Powered by Forge 14.23.3.2655 5 mods loaded, 5 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.3.2655.jar | None      |
    | UCH   | forge       | 14.23.3.2655 | forgeSrc-1.12.2-14.23.3.2655.jar | None      |
    | UCH   | soulforgery | 0.0.1        | bin                              | None      |

    Loaded coremods (and transformers): 
    GL info: ' Vendor: 'NVIDIA Corporation' Version: '4.6.0 NVIDIA 430.86' Renderer: 'GeForce GTX 1050 Ti/PCIe/SSE2'
    Launched Version: 1.12.2
    LWJGL: 2.9.4
    OpenGL: GeForce GTX 1050 Ti/PCIe/SSE2 GL version 4.6.0 NVIDIA 430.86, 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: 12x AMD Ryzen 5 1600X Six-Core Processor 

Any help would be appreciated.

Link to comment
Share on other sites

39 minutes ago, Distinct Soul said:

public static final ItemBase TAINTED_SOUL = null;

public static final ItemBase IGRIAN_SHARDS = null;

public static final ItemBase IGRIAN_INGOT = null;

You set these to null here.

 

38 minutes ago, Distinct Soul said:

event.getRegistry().registerAll(TAINTED_SOUL, IGRIAN_SHARDS, IGRIAN_INGOT, IGRIAN_SWORD);

So...you're referencing the static fields here. Which are null.

 

39 minutes ago, Distinct Soul said:

registerItemBlockModel(ModBlocks.IGRIAN_ORE);

registerItemBlockModel(ModBlocks.SHARD_FUSER);

registerItemModel(ModItems.IGRIAN_INGOT);

registerItemModel(ModItems.IGRIAN_SHARDS);

registerItemModel(ModItems.TAINTED_SOUL);

registerItemModel(ModItems.IGRIAN_SWORD);

Those references are still null.

39 minutes ago, Distinct Soul said:

return new ItemStack(IGRIAN_INGOT);

Still null.

 

I don't see where you're actually creating these items. If you are going to use @ObjectHolder to fill them with values, you can't reference these during the RegistryEvent<Item> handler because object holders are not filled until after the registry event.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

4 minutes ago, Distinct Soul said:

So what exactly should I do? I've been following Cadiboo's example as best as I can; but I've had to edit things so much I'm completely lost on what I'm supposed to do, and the right way to do it. I feel like examples would help more.

Where do you call new Item()? You have to, somewhere. Maybe it's new Ruby() or whatever, but you MUST be calling new on a class that extends Item SOMEWHERE. If you do not have this line, then you are failing to follow the examples terribly.

 

See this?

https://github.com/Cadiboo/Example-Mod/blob/1.12.2/src/main/java/io/github/cadiboo/examplemod/EventSubscriber.java#L95

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

Oh my bad, I forgot that what I had in this class:

@EventBusSubscriber (modid = Main.MODID)
public class EventSubscriber {
	
	@SubscribeEvent
	public static void registerBlocks(Register<Block> event) {
		
		final Block[] blocks = {
						new BlockBase(Material.ROCK).setRegistryName("igrian_ore").setTranslationKey(Main.MODID + "." + "igrian_ore"),
						new BlockBase(Material.ROCK).setRegistryName("shard_fuser").setTranslationKey(Main.MODID + "." + "shard_fuser"),
		};
		
		event.getRegistry().registerAll(blocks);
	}
	
	@SubscribeEvent
	public static void registerItems(Register<Item> event) {
			
			final Item[] items = {
						new ItemBase().setRegistryName("tainted_soul").setTranslationKey(Main.MODID + "." + "tainted_soul"),
						new ItemBase().setRegistryName("igrian_shards").setTranslationKey(Main.MODID + "." + "igrian_shards"),
						new ItemBase().setRegistryName("igrian_ingot").setTranslationKey(Main.MODID + "." + "igrian_ingot"),
						new ItemBase().setRegistryName("igrian_sword").setTranslationKey(Main.MODID + "." + "igrian_sword"),	
			};
			
			final Item[] itemBlocks = {
			new ItemBlock(ModBlocks.IGRIAN_ORE).setRegistryName(ModBlocks.IGRIAN_ORE.getRegistryName()),
			new ItemBlock(ModBlocks.SHARD_FUSER).setRegistryName(ModBlocks.SHARD_FUSER.getRegistryName()),
		};
			
			event.getRegistry().registerAll(items);
			event.getRegistry().registerAll(itemBlocks);
		}
	
}

 

Link to comment
Share on other sites

1 hour ago, Distinct Soul said:

(Added the 'registerItems' event at the top, and removed the '@ObjectHolder' annotation that I believe was causing the previous crash)

Since you removed it from the class you need to put it on every Item field.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

If you have this:

1 hour ago, Distinct Soul said:

	@SubscribeEvent
	public static void registerItems(Register<Item> event) {
			
			final Item[] items = {

 

Then why do you also have this:

2 hours ago, Distinct Soul said:

	@SubscribeEvent
	public void registerItems(RegistryEvent.Register<Item> event) {
	    event.getRegistry().registerAll(TAINTED_SOUL, IGRIAN_SHARDS, IGRIAN_INGOT, IGRIAN_SWORD);
	}

 

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

  • 2 weeks later...

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

15 minutes ago, Distinct Soul said:

Ngl; but I have no clue what that's asking for me to do. I get the example (I think); but that's about it.

// Instead of...
@ObjectHolder("modid")
public class ModItems {
  
  public static final Item SOME_ITEM = null;
  
}

// Do it on every field.
public class ModItems {
  
  @ObjectHolder("modid:registry_name")
  public static final Item SOME_ITEM = null;
  
}

It's not that hard.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

Alright, so now that errors been fixed; however, now I have a new error:

Spoiler

---- Minecraft Crash Report ----
// Why did you do that?

Time: 8/5/19 5:48 PM
Description: Initializing game

java.lang.NullPointerException: Initializing game
    at com.distinctsoul.soulforgery.EventSubscriber.registerItems(EventSubscriber.java:41)
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_6_EventSubscriber_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)
    at net.minecraft.client.main.Main.main(Main.java:118)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    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(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    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 com.distinctsoul.soulforgery.EventSubscriber.registerItems(EventSubscriber.java:41)
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_6_EventSubscriber_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)

-- Initialization --
Details:
Stacktrace:
    at net.minecraft.client.Minecraft.run(Minecraft.java:421)
    at net.minecraft.client.main.Main.main(Main.java:118)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    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(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    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_181, Oracle Corporation
    Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
    Memory: 813085800 bytes (775 MB) / 1037959168 bytes (989 MB) up to 1037959168 bytes (989 MB)
    JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
    IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
    FML: MCP 9.42 Powered by Forge 14.23.3.2655 5 mods loaded, 5 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.3.2655.jar | None      |
    | UCH   | forge       | 14.23.3.2655 | forgeSrc-1.12.2-14.23.3.2655.jar | None      |
    | UCH   | soulforgery | 0.0.1        | bin                              | None      |

    Loaded coremods (and transformers): 
    GL info: ' Vendor: 'NVIDIA Corporation' Version: '4.6.0 NVIDIA 430.86' Renderer: 'GeForce GTX 1050 Ti/PCIe/SSE2'
    Launched Version: 1.12.2
    LWJGL: 2.9.4
    OpenGL: GeForce GTX 1050 Ti/PCIe/SSE2 GL version 4.6.0 NVIDIA 430.86, 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: 12x AMD Ryzen 5 1600X Six-Core Processor 

I get that it's located at line 41 of my EventSubscriber class; but I have no idea what the error means.

 

Here is that class again:

@EventBusSubscriber (modid = Main.MODID)
public class EventSubscriber {
	
	@SubscribeEvent
	public static void registerBlocks(Register<Block> event) {
		
		final Block[] blocks = {
						new BlockBase(Material.ROCK).setRegistryName("igrian_ore").setTranslationKey(Main.MODID + "." + "igrian_ore"),
						new BlockBase(Material.ROCK).setRegistryName("shard_fuser").setTranslationKey(Main.MODID + "." + "shard_fuser"),
		};
		
		event.getRegistry().registerAll(blocks);
	}
	
	@SubscribeEvent
	public static void registerItems(Register<Item> event) {
			
			final Item[] items = {
						new ItemBase().setRegistryName("tainted_soul").setTranslationKey(Main.MODID + "." + "tainted_soul"),
						new ItemBase().setRegistryName("igrian_shards").setTranslationKey(Main.MODID + "." + "igrian_shards"),
						new ItemBase().setRegistryName("igrian_ingot").setTranslationKey(Main.MODID + "." + "igrian_ingot"),
						new ItemBase().setRegistryName("igrian_sword").setTranslationKey(Main.MODID + "." + "igrian_sword"),	
			};
			
			final Item[] itemBlocks = {
			new ItemBlock(ModBlocks.IGRIAN_ORE).setRegistryName(ModBlocks.IGRIAN_ORE.getRegistryName()),
			new ItemBlock(ModBlocks.SHARD_FUSER).setRegistryName(ModBlocks.SHARD_FUSER.getRegistryName()),
		};
			
			event.getRegistry().registerAll(items);
			event.getRegistry().registerAll(itemBlocks);
		}
	
}

 

Link to comment
Share on other sites

which line is line 41?

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

I hope this is what you mean, because in all my mess of trying to fix things, I don't even remember anymore:

public class BlockBase extends Block implements IHasModel {
	
	public BlockBase() {
		
		super(Material.ROCK);
		setCreativeTab(ModItems.SOUL_FORGERY);
	}
	
	@Override
	public void registerModels() {
		
		IProxy.registerItemRenderer(Item.getItemFromBlock(this), 0, "inventory");
	}

	public TileEntity createNewTileEntity(World worldIn, int meta) {
		return null;
	}
}

 

If this does not include initializing them, then I would like to know how to do it. Because I've tried looking it up, and it just makes me more confused, as it just results in me getting different errors.

Link to comment
Share on other sites

38 minutes ago, Distinct Soul said:

IHasModel

You don't need this. Remove all references to it and nuke the file. It does nothing helpful.

 

38 minutes ago, Distinct Soul said:

BlockBase

BlockBase already exists, its called Block.

 

39 minutes ago, Distinct Soul said:

	public TileEntity createNewTileEntity(World worldIn, int meta) {
		return null;
	}

So you overrode a method to...return the same thing as base?

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

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




  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Dalam dunia perjudian online yang berkembang pesat, mencari platform yang dapat memberikan kemenangan maksimal dan hasil terbaik adalah impian setiap penjudi. OLXTOTO, dengan bangga, mempersembahkan dirinya sebagai jawaban atas pencarian itu. Sebagai platform terbesar untuk kemenangan maksimal dan hasil optimal, OLXTOTO telah menciptakan gelombang besar di komunitas perjudian online. Satu dari banyak keunggulan yang dimiliki OLXTOTO adalah koleksi permainan yang luas dan beragam. Dari togel hingga slot online, dari live casino hingga permainan kartu klasik, OLXTOTO memiliki sesuatu untuk setiap pemain. Dibangun dengan teknologi terkini dan dikembangkan oleh para ahli industri, setiap permainan di platform ini dirancang untuk memberikan pengalaman yang tak tertandingi bagi para penjudi. Namun, keunggulan OLXTOTO tidak hanya terletak pada variasi permainan yang mereka tawarkan. Mereka juga menonjol karena komitmen mereka terhadap keamanan dan keadilan. Dengan sistem keamanan tingkat tinggi dan proses audit yang ketat, OLXTOTO memastikan bahwa setiap putaran permainan berjalan dengan adil dan transparan. Para pemain dapat merasa aman dan yakin bahwa pengalaman berjudi mereka di OLXTOTO tidak akan terganggu oleh masalah keamanan atau keadilan. Tak hanya itu, OLXTOTO juga terkenal karena layanan pelanggan yang luar biasa. Tim dukungan mereka selalu siap sedia untuk membantu para pemain dengan segala pertanyaan atau masalah yang mereka hadapi. Dengan respon cepat dan solusi yang efisien, OLXTOTO memastikan bahwa pengalaman berjudi para pemain tetap mulus dan menyenangkan. Dengan semua fitur dan keunggulan yang ditawarkannya, tidak mengherankan bahwa OLXTOTO telah menjadi pilihan utama bagi jutaan penjudi online di seluruh dunia. Jika Anda mencari platform yang dapat memberikan kemenangan maksimal dan hasil optimal, tidak perlu mencari lebih jauh dari OLXTOTO. Bergabunglah dengan OLXTOTO hari ini dan mulailah petualangan Anda menuju kemenangan besar dan hasil terbaik!
    • Selamat datang di OLXTOTO, situs slot gacor terpanas yang sedang booming di industri perjudian online. Jika Anda mencari pengalaman bermain yang luar biasa, maka OLXTOTO adalah tempat yang tepat untuk Anda. Dapatkan sensasi tidak biasa dengan variasi slot online terlengkap dan peluang memenangkan jackpot slot maxwin yang sering. Di sini, Anda akan merasakan keseruan yang luar biasa dalam bermain judi slot. DAFTAR OLXTOTO DISINI LOGIN OLXTOTO DISINI AKUN PRO OLXTOTO DISINI   Jackpot Slot Maxwin Sering Untuk Peluang Besar Di OLXTOTO, kami tidak hanya memberikan hadiah slot biasa, tapi juga memberikan kesempatan kepada pemain untuk memenangkan jackpot slot maxwin yang sering. Dengan demikian, Anda dapat meraih keberuntungan besar dan memenangkan ribuan rupiah sebagai hadiah jackpot slot maxwin kami. Jackpot slot maxwin merupakan peluang besar bagi para pemain judi slot untuk meraih keuntungan yang lebih besar. Dalam permainan kami, Anda tidak harus terpaku pada kemenangan biasa saja. Kami hadir dengan jackpot slot maxwin yang sering, sehingga Anda memiliki peluang yang lebih besar untuk meraih kemenangan besar dengan hadiah yang menggiurkan. Dalam permainan judi slot, pengalaman bermain bukan hanya tentang keseruan dan hiburan semata. Kami memahami bahwa para pemain juga menginginkan kesempatan untuk meraih keberuntungan besar. Oleh karena itu, OLXTOTO hadir dengan jackpot slot maxwin yang sering untuk memberikan peluang besar kepada para pemain kami. Peluang Besar Menang Jackpot Slot Maxwin Peluang menang jackpot slot maxwin di OLXTOTO sangatlah besar. Anda tidak perlu khawatir tentang batasan atau pembatasan dalam meraih jackpot tersebut. Kami ingin memberikan kesempatan kepada semua pemain kami untuk merasakan sensasi menang dalam jumlah yang luar biasa. Jackpot slot maxwin kami dibuka untuk semua pemain judi slot di OLXTOTO. Anda memiliki peluang yang sama dengan pemain lainnya untuk memenangkan hadiah jackpot yang besar. Kami percaya bahwa semua orang memiliki kesempatan untuk meraih keberuntungan besar, dan itulah mengapa kami menyediakan jackpot slot maxwin yang sering untuk memenuhi harapan dan keinginan Anda.   Kesimpulan OLXTOTO adalah situs slot gacor terbaik yang memberikan pengalaman bermain judi slot online yang tak terlupakan. Dengan variasi slot online terlengkap dan peluang memenangkan jackpot slot maxwin yang sering, OLXTOTO menjadi pilihan terbaik bagi para pemain yang mencari kesenangan dan kemenangan besar dalam perjudian online. Di samping itu, OLXTOTO juga menawarkan layanan pelanggan yang ramah dan responsif, siap membantu setiap pemain dalam mengatasi masalah teknis atau pertanyaan seputar perjudian online. Kami menjaga integritas game dan memberikan lingkungan bermain yang adil serta menjalankan kebijakan perlindungan pelanggan yang cermat. Bergabunglah dengan OLXTOTO sekarang dan nikmati pengalaman bermain slot online yang luar biasa. Jadilah bagian dari komunitas perjudian yang mengagumkan ini dan raih kesempatan untuk meraih kemenangan besar. Dapatkan akses mudah dan praktis ke situs OLXTOTO dan rasakan sensasi bermain judi slot yang tak terlupakan.  
    • OLXTOTO: Platform Maxwin dan Gacor Terbesar Sepanjang Masa Di dunia perjudian online yang begitu kompetitif, mencari platform yang dapat memberikan kemenangan maksimal (Maxwin) dan hasil terbaik (Gacor) adalah prioritas bagi para penjudi yang cerdas. Dalam upaya ini, OLXTOTO telah muncul sebagai pemain kunci yang mengubah lanskap perjudian online dengan menawarkan pengalaman tanpa tandingan.     Sejak diluncurkan, OLXTOTO telah menjadi sorotan industri perjudian online. Dikenal sebagai "Platform Maxwin dan Gacor Terbesar Sepanjang Masa", OLXTOTO telah menarik perhatian pemain dari seluruh dunia dengan reputasinya yang solid dan kinerja yang luar biasa. Salah satu fitur utama yang membedakan OLXTOTO dari pesaingnya adalah komitmen mereka untuk memberikan pengalaman berjudi yang unik dan memuaskan. Dengan koleksi game yang luas dan beragam, termasuk togel, slot online, live casino, dan banyak lagi, OLXTOTO menawarkan sesuatu untuk semua orang. Dibangun dengan teknologi terkini dan didukung oleh tim ahli yang berdedikasi, platform ini memastikan bahwa setiap pengalaman berjudi di OLXTOTO tidak hanya menghibur, tetapi juga menguntungkan. Namun, keunggulan OLXTOTO tidak hanya terletak pada permainan yang mereka tawarkan. Mereka juga terkenal karena keamanan dan keadilan yang mereka berikan kepada para pemain mereka. Dengan sistem keamanan tingkat tinggi dan audit rutin yang dilakukan oleh otoritas regulasi independen, para pemain dapat yakin bahwa setiap putaran permainan di OLXTOTO adalah adil dan transparan. Tidak hanya itu, OLXTOTO juga dikenal karena layanan pelanggan yang luar biasa. Dengan tim dukungan yang ramah dan responsif, para pemain dapat yakin bahwa setiap pertanyaan atau masalah mereka akan ditangani dengan cepat dan efisien. Dengan semua fitur dan keunggulan yang ditawarkannya, tidak mengherankan bahwa OLXTOTO telah menjadi platform pilihan bagi para penjudi online yang mencari kemenangan maksimal dan hasil terbaik. Jadi, jika Anda ingin bergabung dengan jutaan pemain yang telah merasakan keajaiban OLXTOTO, jangan ragu untuk mendaftar dan mulai bermain hari ini!  
    • OLXTOTO adalah bandar slot yang terkenal dan terpercaya di Indonesia. Mereka menawarkan berbagai jenis permainan slot yang menarik dan menghibur. Dengan tampilan yang menarik dan grafis yang berkualitas tinggi, pemain akan merasa seperti berada di kasino sungguhan. OLXTOTO juga menyediakan layanan pelanggan yang ramah dan responsif, siap membantu pemain dengan segala pertanyaan atau masalah yang mereka hadapi. Daftar =  https://surkale.me/Olxtotodotcom1
    • DAFTAR & LOGIN BIGO4D   Bigo4D adalah situs slot online yang populer dan menarik perhatian banyak pemain slot di Indonesia. Dengan berbagai game slot yang unik dan menarik, Bigo4D menjadi tempat yang ideal untuk pemula dan pahlawan slot yang berpengalaman. Dalam artikel ini, kami akan membahas tentang Bigo4D sebagai situs slot terbesar dan menarik yang saat ini banyak dijajaki oleh pemain slot online.
  • Topics

×
×
  • Create New...

Important Information

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