BrainSlugs83 / NewBiospheresMod

An update of Risugami's old Biospheres Mod for Minecraft. To avoid confusion, I've named it the *New* Biospheres Mod. :-)
Other
9 stars 8 forks source link

java.lang.NoSuchMethodError: newBiospheresMod.BlockDome.func_149751_l()Z #18

Open TheLoneWolfling opened 9 years ago

TheLoneWolfling commented 9 years ago

Version 0.85 doesn't seem to work on a standalone server:

java.lang.NoSuchMethodError: newBiospheresMod.BlockDome.func_149751_l()Z
    at newBiospheresMod.BlockDome.InitBlock(BlockDome.java:147)
    at newBiospheresMod.BlockDome.GetDomeBlock(BlockDome.java:96)
    at newBiospheresMod.BlockDome.InitalizeAllRegisteredBlocks(BlockDome.java:62)
    at newBiospheresMod.NewBiospheresMod.PostInit(NewBiospheresMod.java:52)

This is with just this mod and Minecraft Forge 10.13.2.1352. See here

BrainSlugs83 commented 9 years ago

Interesting -- I think I know how to fix this -- will take a look soon.

kb9mfd commented 8 years ago

Was this ever resolved? I am get the same error, forge 10.13.4.1448, it works fine as single player in the client but the server throws this exact error. I am using V0.85 Thanks!

EmanuelMairoll commented 8 years ago

I think I "somewhat" found the reason why this is happening, while tinkering around with the code. In 0.83 (or a bit before) the BlockDome was introduced, which copies each and every block in Minecraft to make it useable as Dome Block. To archive this, there are a lot of getters, that are called on the respective base block, to copy as many properties as possible. A few of them are actually annotated @SideOnly(Client) which is fine on Singleplayer with it's integrated Server, but (seems) to lead to a crash on a dedicated server, because, due to the annotation, said methods are just missing there. This issue is actually "somewhat" resolvable, when just commenting out all client-sided Methods and their calls. Now at least the startup of a Server with DEFAULT generator worked.

But than there was a new, (I think) independent problem, which occurred first in the commit merging the branch "BetterTerrainPopulation" by you, TheLoneWolfing (no accusations, I just want to name a rough point of time when the problem first occurred): While the internal Server works fine, the dedicated one crashes: On the Method call "populate"(BiosphereChunkProvider, line 475), the Method GetPhaseRandom (line 479) throws a NullPointerException, because seemingly one or more SphereChunks lost their masterSphere, which is required for this method. Out of curiosity I tried to catch the Exception (I just called return when the materSphere was null), and it stopped crashing. While still fine on Singleplayer, now a dedicated Server fed with the Biosphere World Generator just generates a completely void world... (I think it ironically voice COULD be that thats the reason why there are no mastherSpheres... )

Why this is happening, I've got no clue. Especially because integrated Server and dedicated Server should theoretically behave the same... BTW: Commenting out the in the first paragraph stated methods works fine in commits "Metadata fix" and below...

Phew, I think this is one of the most detailed bug reports I ever made :)

EmanuelMairoll commented 8 years ago

world.biome.getFloatRainfall() is also Client-Only, just been found out after around about 5 hours of bug fixing... dedicated to this...