Immersive Engineering

Immersive Engineering

134M Downloads

[1.16.1] Method public void on Forge-32.0.97

johnvilsack opened this issue ยท 5 comments

commented

Game will not load due to Method public void issue.

Forge 32.0.97
IE 0.16-109
No other mods needed to recreate issue

Log pastebin: https://pastebin.com/H96PJ6v0

commented

Can confirm, I have the same issue on Forge 32.0.97 and ImmersiveEngineering 0.16-109. See
here in latest.log

commented

The issue isn't "method public void", the issue is

Method public void blusunrize.immersiveengineering.common.world.IEWorldGen.chunkDataSave(net.minecraftforge.event.world.ChunkDataEvent$Save) has @SubscribeEvent annotation, but takes an argument that is not a subtype of the base type interface net.minecraftforge.fml.event.lifecycle.IModBusEvent: class net.minecraftforge.event.world.ChunkDataEvent$Save

Broken down, it's saying that the method chunkDataSave (which is declared as public accessibility and void return type in the class blusunrize.immersiveengineering.common.world.IEWorldGen) is annotated with @SubscribeEvent but the argument it takes (type net.minecraftforge.event.world.ChunkDataEvent$Save) doesn't extend the right interface (net.minecraftforge.fml.event.lifecycle.IModBusEvent) so Forge is throwing an exception.

A better, more descriptive (and accurate) title for this issue would be something like "event subscription throwing exception on argument type" maybe. I thought "method public void" was something about a bad accessibility or return type keyword, possibly relating to ASM transformation, but it's actually about a bad annotation / method argument.

commented

The issue isn't "method public void", the issue is

Method public void blusunrize.immersiveengineering.common.world.IEWorldGen.chunkDataSave(net.minecraftforge.event.world.ChunkDataEvent$Save) has @SubscribeEvent annotation, but takes an argument that is not a subtype of the base type interface net.minecraftforge.fml.event.lifecycle.IModBusEvent: class net.minecraftforge.event.world.ChunkDataEvent$Save

Broken down, it's saying that the method chunkDataSave (which is declared as public accessibility and void return type in the class blusunrize.immersiveengineering.common.world.IEWorldGen) is annotated with @SubscribeEvent but the argument it takes (type net.minecraftforge.event.world.ChunkDataEvent$Save) doesn't extend the right interface (net.minecraftforge.fml.event.lifecycle.IModBusEvent) so Forge is throwing an exception.

A better, more descriptive (and accurate) title for this issue would be something like "event subscription throwing exception on argument type" maybe. I thought "method public void" was something about a bad accessibility or return type keyword, possibly relating to ASM transformation, but it's actually about a bad annotation / method argument.

I'm sure this is more helpful for the devs, but I'm only quoting what the game interface told me: https://imgur.com/a/8ZXcpAp

commented

...interesting. It looks like Forge messed up their UI a little. At a guess, they're limiting it to one line of detail, and for whatever reason it won't just fill up that line with what it can... maybe it's internally trying to do line wrapping but only rendering the first.

Either way, that's also probably not of much interest to you, but I can't fault you for reporting what was shown to you!

commented

Duplicate of #4143