PaperMC / Starlight

Rewrites the light engine to fix lighting performance and lighting errors
Other
1.27k stars 135 forks source link

[Fabric 1.19] Starlight cause losses of world data #150

Closed JereW333 closed 2 years ago

JereW333 commented 2 years ago

Context : I tried to switch from a 1.18.2 Paper server to a 1.19 Fabric server. I had a fully functional fabric server where I tested the mods used. When I transferred my world data from one to another, only the entities was correctly placed in the world, none of the players modifications were correct.

How I found the bug ? : I create a new server from scratch and then add the mods I want one at a time to test their impact. It was when Starlight was added that I lost the block modifications data.

Mods used :

Spottedleaf commented 2 years ago

I need logs and steps to how you transferred the world, what dimensions were lost, etc Bukkit and vanilla do not have the same layout format, so it's possible if transferred incorrectly you will "lose" end/nether dimensions

JereW333 commented 2 years ago

I cannot really provide logs because there is no error showing inside the console. But my world data are incorrect due to the lack of blocks placed by players. It was as the world was again generated from seed : in place of a beautiful city, there was the originals mountains with all entities we placed suffocating in walls (villagers, wolfs, etc...). The dimension were data were lost is The Overworld. And I knew about the differences between end/nether in the type of servers. I did the correct manipulation, as explain in the paper documentation (chapter on the switch between different types of servers)

Spottedleaf commented 2 years ago

Unfortunately I can produce this locally, but I can't do anything about it. You're using an outdated build of starlight, which is the cause. Why has it happened? I don't know. I am now investigating, as there were no significant code changes in the light data handling and the lack of errors is worrying.

JereW333 commented 2 years ago

Oh I didn't know it was an outdated build, I downloaded the last one at the time on modrinth. But now that I checked, yep I was using an outdated one... I will try with the latest version.

JereW333 commented 2 years ago

Ok so it works with the last version. Thank you for your help and good luck finding the source of this bug !

Spottedleaf commented 2 years ago

It appears the problem was because the kind of exceptions starlight catches wasn't the one that blew up when loading your old world data. In fact, it should have (and will) blow up on 1.19 regardless of what world data you put in there. Unfortunately for me, when I tested 1.18 starlight on 1.19 I did in a dev environment - where the exception wouldn't occur. So I thought it would have possibly just resulted in light data loss. Specifically, the problem was that a method mapping had changed during the update (big surprise) and the old starlight code was trying to call a method that didn't exist. Unfortunately for all of us, the vanilla chunk system is awful and will not log this error.

Spottedleaf commented 2 years ago

Resolved in starlight 1.1.1 ae22326fe24c21129236aa0945e1bb5dbd96358c