[WIP/ADMIN] VoidChunk - The new era in map decorruption

Discussion in 'WIP and Development Status' started by VoidWhisperer, Oct 28, 2012.

Thread Status:
Not open for further replies.
  1. Offline

    VoidWhisperer

    Notice: Granted, this is not a plugin, but neither was chunkmaster.. nor chunkster :p

    Table of contents:
    1. What is VoidChunk
    2. How to use VoidChunk
    3. Other information
    4. Credits
    Download: http://www.voidchar.com/Downloads/Download.php?download=VoidChunk.zip
    Dev Build download: http://www.voidchar.com/Downloads/Download.php?download=VoidChunkDevBuild.zip

    (If the fact that it's linking to a php page annoys anyone or any bukkit staff have an issue with it, please tell me so i can fix it. -- It's only linking there so i can track download #s)
    What is VoidChunk?

    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:
    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)
    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.

    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.

    How to use VoidChunk

    BACK UP YOUR WORLD BEFOREHAND!!

    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.)

    Words to search for:
    Lighting corruption scan: 'Corrupted chunk'

    Other information:

    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.

    Dev Build information:

    Information on the latest dev build:
    I've implemented 2 things per request:

    Phantom lighting - This forces a reset of all block and skylight lighting, hopefully forcing it to recalculate and fix those ugly lighting blotches.

    General corruption - This should help with general corruption in chunks that like to stop the server -- All it does is rename the file, you may have to remove it, or you can put it up on a file hosting website, give it to me, and i can try to make something to fix it.

    Credits:

    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.
    Mojang's anvil world converter code - Well, I had to get the nbt tag library stuff from somewhere! :p

    Todo:
    • Add more types of decorruption
      • Block decorruption
      • Tnt removal
      • Lighting corruption
      • Item removal
      • Any other recommended types!
    • Get a website set up for dev builds/stable builds
    • Get some testers for dev builds and bug finders!
    Changelog:
    • V 0.0.1: This only allows for light data decorruption atm. We are working on the tnt and entity removal and that will be in v1.
    Feel free to contact me with any concerns. I am not responsible if you do not back up your map and it gets corrupted even worse by this. This is meant to fix it, but it's not perfect.

    [​IMG]
    My code help you? Like my plugins? Please contemplate donating to me! Thanks =)

    Download counter:
    [​IMG]
     
  2. Offline

    Lolmewn

    Shouldn't this be in Bukkit Tools instead of Development?
     
  3. Offline

    VoidWhisperer

    Lolmewn: I put it in both, because chunkster and chunkmaster are also in this forum =L
     
  4. Offline

    dwi

    I tried to forcely reset all lighting sources (Phantom lighting) and it did its job, but how the heck do I forcely reset all lighting emitters to light again? World is dark even when I stand near torch and I need to breake it and place again to light space up.
     
Thread Status:
Not open for further replies.

Share This Page