[background=rgb(252, 252, 255)]What is VoidChunk?[/background]
Voidchunk is a new map decorruption tool that started from the server 'Minesworn' having a lighting corruption, which yes, does exist, and me being asked by the owner to fix it. This is the outcome, and I hope it becomes one of the best map decorruption tools to date =). Anyways, this is the error they got: [/background]
Code:
2012-10-04 17:03:08 [SEVERE] java.lang.ArrayIndexOutOfBoundsException: 1964
2012-10-04 17:03:08 [SEVERE] at net.minecraft.server.NibbleArray.a(SourceFile:28)
2012-10-04 17:03:08 [SEVERE] at net.minecraft.server.ChunkSection.c(ChunkSection.java:102)
2012-10-04 17:03:08 [SEVERE] at net.minecraft.server.Chunk.getBrightness(Chunk.java:484)
2012-10-04 17:03:08 [SEVERE] at net.minecraft.server.World.b(World.java:547)
2012-10-04 17:03:08 [SEVERE] at net.minecraft.server.EntityMonster.o(EntityMonster.java:99)
2012-10-04 17:03:08 [SEVERE] at net.minecraft.server.EntityMonster.canSpawn(EntityMonster.java:117)
2012-10-04 17:03:08 [SEVERE] at net.minecraft.server.SpawnerCreature.spawnEntities(SpawnerCreature.java:152)
2012-10-04 17:03:08 [SEVERE] at net.minecraft.server.WorldServer.doTick(WorldServer.java:155)
2012-10-04 17:03:08 [SEVERE] at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:557)
2012-10-04 17:03:08 [SEVERE] at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:213)
2012-10-04 17:03:08 [SEVERE] at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:473)
2012-10-04 17:03:08 [SEVERE] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:405)
2012-10-04 17:03:08 [SEVERE] at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
2012-10-04 17:03:08 [SEVERE] Encountered an unexpected exception ArrayIndexOutOfBoundsException
java.lang.ArrayIndexOutOfBoundsException: 1964
at net.minecraft.server.NibbleArray.a(SourceFile:28)
at net.minecraft.server.ChunkSection.c(ChunkSection.java:102)
at net.minecraft.server.Chunk.getBrightness(Chunk.java:484)
at net.minecraft.server.World.b(World.java:547)
at net.minecraft.server.EntityMonster.o(EntityMonster.java:99)
at net.minecraft.server.EntityMonster.canSpawn(EntityMonster.java:117)
at net.minecraft.server.SpawnerCreature.spawnEntities(SpawnerCreature.java:152)
at net.minecraft.server.WorldServer.doTick(WorldServer.java:155)
at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:557)
at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:213)
at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:473)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:405)
at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
[background=rgb(252, 252, 255)]After looking into this, I discovered that there appeared to be some form of lighting corruption due to a piece of the region files not saving the lighting data completely. What voidchunk does for this is it goes through the region files and finds the missing lighting data, and replaces it with what should be there! This has helped Minesworn and their server has been up for quite a while now without crashes that used to happen every 5 minutes with that corruption.[/background]
[background=rgb(252, 252, 255)]tl;dr: VoidChunk is a new tool in the area of map decorruption, targeting the common areas of corruption, and those not so common, such as lighting corruption.[/background]
[background=rgb(252, 252, 255)]How to use VoidChunk[/background]
[background=rgb(252, 252, 255)]Glad you asked! VoidChunk is very simple to use! No more complex command line arguments, it is all done in the app. The app lets you choose what world to scan (specify the location), then what to scan it for. After that, it does all of the work for you. Let it run while you go eat dinner, go for a bike ride, go to school, or anything else. It will do it's job and then you can check back later when it is done. After that, you can look through the log file for the specific words stated below that will signify corruption was found. (Or, both of the following things will happen: At the end it will give data saying how many chunks were corrupted and fixed, how many entities removed, etc. We also plan to add verbose logging to get rid of the clog caused by the normal logging.) [/background]
[background=rgb(252, 252, 255)]VoidChunk is a constant work in progress, so it is recommended to make sure you back up your world even if you are using a stable build. If you don't back up your world, we are not responsible for what happens to it. At the moment, VoidChunk is still in the process of being expanded, so there isn't a download link yet, however if you would like to test dev builds please feel free to contact me.[/background]
[background=rgb(252, 252, 255)]Minesworn server - Server.minesworn.com - For giving the idea of voidchunk and allowing me to test the first version related to lighting decorruption on their server.[/background] [background=rgb(252, 252, 255)]Mojang's anvil world converter code - Well, I had to get the nbt tag library stuff from somewhere! [/background]
[background=rgb(252, 252, 255)]What is VoidChunk?[/background]
Voidchunk is a new map decorruption tool that started from the server 'Minesworn' having a lighting corruption, which yes, does exist, and me being asked by the owner to fix it. This is the outcome, and I hope it becomes one of the best map decorruption tools to date =). Anyways, this is the error they got: [/background]
[background=rgb(252, 252, 255)]After looking into this, I discovered that there appeared to be some form of lighting corruption due to a piece of the region files not saving the lighting data completely. What voidchunk does for this is it goes through the region files and finds the missing lighting data, and replaces it with what should be there! This has helped Minesworn and their server has been up for quite a while now without crashes that used to happen every 5 minutes with that corruption.[/background]
[background=rgb(252, 252, 255)]tl;dr: VoidChunk is a new tool in the area of map decorruption, targeting the common areas of corruption, and those not so common, such as lighting corruption.[/background]
[background=rgb(252, 252, 255)]How to use VoidChunk[/background]
[background=rgb(252, 252, 255)]Glad you asked! VoidChunk is very simple to use! No more complex command line arguments, it is all done in the app. The app lets you choose what world to scan (specify the location), then what to scan it for. After that, it does all of the work for you. Let it run while you go eat dinner, go for a bike ride, go to school, or anything else. It will do it's job and then you can check back later when it is done. After that, you can look through the log file for the specific words stated below that will signify corruption was found. (Or, both of the following things will happen: At the end it will give data saying how many chunks were corrupted and fixed, how many entities removed, etc. We also plan to add verbose logging to get rid of the clog caused by the normal logging.) [/background]
[background=rgb(252, 252, 255)]Words to search for:[/background]
[background=rgb(252, 252, 255)]Lighting corruption scan: 'Corrupted chunk'[/background]
[background=rgb(252, 252, 255)]Other information:[/background]
[background=rgb(252, 252, 255)]VoidChunk is a constant work in progress, so it is recommended to make sure you back up your world even if you are using a stable build. If you don't back up your world, we are not responsible for what happens to it. At the moment, VoidChunk is still in the process of being expanded, so there isn't a download link yet, however if you would like to test dev builds please feel free to contact me.[/background]
[background=rgb(252, 252, 255)]Credits:[/background]
[background=rgb(252, 252, 255)]Minesworn server - Server.minesworn.com - For giving the idea of voidchunk and allowing me to test the first version related to lighting decorruption on their server.[/background]
[background=rgb(252, 252, 255)]Mojang's anvil world converter code - Well, I had to get the nbt tag library stuff from somewhere! [/background]
[background=rgb(252, 252, 255)]Todo:[/background]