Vertically Stacked Dimensions

Vertically Stacked Dimensions

1M Downloads

Crash on entity colliding with portal block after upgrade from 0.0.5 to 0.1.3

CplPibald opened this issue ยท 4 comments

commented

Dedicated server running forge-1.12.2-14.23.5.2808. Existing world using VerticalDimensionStack-1.12.2-0.0.5 and CD4017BE_lib-1.12.2-6.3.3.

Crash occurs immediately on updating mods to VerticalDimensionStack-1.12.2-0.1.3 and CD4017BE_lib-1.12.2-6.3.4:

Every time an entity falls into the "void", console displays the following crash:

[Server thread/FATAL] [minecraft/MinecraftServer]: Error executing task
java.util.concurrent.ExecutionException: net.minecraft.util.ReportedException: Colliding entity with block
        at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:1.8.0_181]
        at java.util.concurrent.FutureTask.get(FutureTask.java:192) ~[?:1.8.0_181]
        at net.minecraft.util.Util.func_181617_a(SourceFile:47) [h.class:?]
        at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:723) [MinecraftServer.class:?]
        at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:397) [nz.class:?]
        at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:668) [MinecraftServer.class:?]
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526) [MinecraftServer.class:?]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_181]
Caused by: net.minecraft.util.ReportedException: Colliding entity with block
        at net.minecraft.entity.Entity.func_70091_d(Entity.java:971) ~[vg.class:?]
        at net.minecraft.network.NetHandlerPlayServer.func_147347_a(NetHandlerPlayServer.java:545) ~[pa.class:?]
        at net.minecraft.network.play.client.CPacketPlayer.func_148833_a(SourceFile:126) ~[lk.class:?]
        at net.minecraft.network.play.client.CPacketPlayer$Position.func_148833_a(SourceFile:57) ~[lk$a.class:?]
        at net.minecraft.network.PacketThreadUtil$1.run(SourceFile:13) ~[hv$1.class:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_181]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_181]
        at net.minecraft.util.Util.func_181617_a(SourceFile:46) ~[h.class:?]
        ... 5 more
Caused by: java.lang.NullPointerException
        at cd4017be.dimstack.core.PortalConfiguration.getAdjacentPos(PortalConfiguration.java:322) ~[PortalConfiguration.class:?]
        at cd4017be.dimstack.core.PortalConfiguration.getAdjacentPos(PortalConfiguration.java:309) ~[PortalConfiguration.class:?]
        at cd4017be.dimstack.block.Portal.func_180634_a(Portal.java:247) ~[Portal.class:?]
        at net.minecraft.entity.Entity.func_145775_I(Entity.java:1044) ~[vg.class:?]
        at net.minecraft.entity.Entity.func_70091_d(Entity.java:964) ~[vg.class:?]
        at net.minecraft.network.NetHandlerPlayServer.func_147347_a(NetHandlerPlayServer.java:545) ~[pa.class:?]
        at net.minecraft.network.play.client.CPacketPlayer.func_148833_a(SourceFile:126) ~[lk.class:?]
        at net.minecraft.network.play.client.CPacketPlayer$Position.func_148833_a(SourceFile:57) ~[lk$a.class:?]
        at net.minecraft.network.PacketThreadUtil$1.run(SourceFile:13) ~[hv$1.class:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_181]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_181]
        at net.minecraft.util.Util.func_181617_a(SourceFile:46) ~[h.class:?]
        ... 5 more

Other loaded terrain/dimension mods: justenoughdimensions-1.12.2-1.6.0-dev.20190112.002003, SkyLandsForge-1.12.2_0.2, Botaniar1.10-360 (with GoG), Quark-r1.5-140

commented

I just realized that the exception isn't the same as in the crash report. The following excerpt is from the crash log itself. Let me know if you want a pastebin with the whole report.

Description: Exception in server tick loop

net.minecraftforge.fml.common.LoaderExceptionModCrash: Caught exception from Vertically Stacked Dimensions (dimstack)
Caused by: java.lang.ClassCastException: net.minecraft.nbt.NBTTagList cannot be cast to net.minecraft.nbt.NBTTagCompound
        at cd4017be.dimstack.api.TerrainGeneration.deserializeNBT(TerrainGeneration.java:71)
        at cd4017be.dimstack.core.Dimensionstack.loadSettings(Dimensionstack.java:89)
        at cd4017be.dimstack.core.Dimensionstack.load(Dimensionstack.java:129)
        at cd4017be.dimstack.core.Dimensionstack.loadWorldSettings(Dimensionstack.java:195)
        at cd4017be.dimstack.Main.serverStart(Main.java:65)
commented

About the crash report:
Did you really update the mod and not downgrade it instead? Because the line numbers in your crash report match to the 0.0.5 version and not 0.1.3 also does the type of crash rather indicate a downgrade. Or that is just an older crash report, completely unrelated to your current problem.

About the log error:
This is caused by a combination of: the adjacent dimension for the portal not being defined (probably due to changed dimension stack configuration) and mistakes on my side in the code that was supposed to deal with such a situation (I'll fix that).

If you want to recover that world

  1. make a world backup if you haven't already
  2. [not strictly necessary but eventually safer] wait for me to release the fix
  3. make sure to actually have the newest version of this mod installed
  4. delete the dimensionstack.dat file in that world's save folder
  5. modify the config script to have the same dimension stack settings your world had before the update.
    The old settings are probably still in verticallyStackedDimensions.rcp.oldin the config folder (copy the relevant parts)
  6. launch the server.

Generally there is only backwards compatibility between release versions but not for the beta versions listed on curse forge (which is why they were tagged as beta).
And if you want to be safe with config script changes during mod updates, set the VERSION variable to infinity /0 (or something big) so it will never be overriden.

commented

I apologize. I was confused about the timing. Here is the timeline:

  1. Server was running on 0.0.5 with four stacked dimensions.

  2. Upgrade from 0.0.5 to 0.1.3 and restart server. Connect client. Full crash reports start generating in the server log (I assume one for each entity that falls into the void). These crash reports point to the NullPointerException in getAdjacentPos@322. I can get you the text of the report if you need. However, these crashes didn't take down the server so it didn't get generated in crash-reports folder (sorry, that's why I missed it).

  3. I roll back to 0.0.5 and restart the server. This generates the crash report in my comment above.

  4. I roll forward again to 0.1.3 and restart. This generates the exception in my original message at top.

I did not edit or modify the dimension stack configuration during this process. I guess that the world corruption happened in my attempt to roll back, but that doesn't explain how the adjacent dimension suddenly stopped existing after an update to 0.1.3.

Thanks for taking the time to look into this.

commented

Nevermind, I realize what happened now. On upgrade, the configuration was (intentionally) reset to defaults, and the defaults do not contain the dimension that was throwing the error. I should have read the fine print. Again, thank you for this mod.