Inactive [ADMIN] Chunkster

Discussion in 'Bukkit Tools' started by XeonProductions, Mar 12, 2011.

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

    XeonProductions

    Chunkster v0.3

    Chunk pointer/map repair utility for region files.

    DISCLAIMER!
    • I am not responsible for any files corrupted/destroyed by this software.
    • It's up to you to MAKE A BACKUP OF YOUR WORLD FILES FIRST before running this utility.
    Description:

    • Use this utility if you are encountering frequent chunk errors in the error log. This utility salvages the good chunks and rebuilds the region files from scratch.
    Have a world Chunkster can't fix?
    • Upload the error log somewhere like pastebin, i'm not fixing anyones maps anymore though because of the large volume of people who send me their broken maps without even first attempting to use Chunkster.
    Update Log:
    • 0.1
      • Initial release
    • 0.2
      • Major changes to the code.
      • Chunkster now rebuilds the region files rather than then attempting to salvage the existing file. I'm hoping this will help resolve some of the nastier chunk errors with regards to incomplete/corrupted chunks.
      • Added the ability to remove various entities from the chunks that could be causing problems (mobs, projectiles, vehicles, dropped items, and experience orbs).
      • If you fail to include the world path Chunkster will attempt to scan the local directory for worlds. It will then ask you if you want to scan that world.
      • Hopefully fixed that pesky command-line problem.
    • 0.3
      • Found a bug that kind of made Chunkster worthless... hopefully it finds misplaced chunks like its supposed to now. Pretend Chunkster 0.2 never happened... :(
    Requirements:

    • Using the region file format.
    • Java Runtime Environment installed.
    • Have some basic knowledge of how to use the command-line or shell.
    Download:

    Instructions:

    • The compiled jar is in the "dist/" folder, simply put Chunkster in your
      server folder and specify the path to your world name, then run the following.

      HTML:
      Usage: java -jar Chunkster.jar [options ..] <world directory>
              Options:
                     --remove-mobs: removes mobs, monsters, creepers, skeletons, spiders, etc.
                     --remove-projectiles: removes arrows, snowballs, eggs, etc.
                     --remove-dropped-items: removes dropped items.
                     --remove-experience-orbs: removes experience orbs.
                     --remove-vehicles: removes boats and minecarts
      You might need to put the path to the world directory in quotes

      If all goes well, you should see it rebuilding the region files and weeding out the bad chunks/region files.
     
  2. Offline

    FDInoff

    I'm not sure if i'm doing this correctly but i had to use "java -jar Chunkster.jar <filler> <world directory>" to get this program to run.

    If I use "java -jar Chunkster.jar <world directory>" your exitUsage() method gets called.

    I am running Mac OS 10.6 if that helps.

    Thanks for all the hard work you put into this.
     
  3. Offline

    XeonProductions

    Hmmm, I thought the jar file name was part of the arguments. I'm not the best with java. I'll fix that now.
     
  4. Offline

    FDInoff

    Suggestion:

    Can you add a print at the end of the check that says how many bad chunks it found

    Edit:

    Also if the program doesn't find a regions directory could it look for a <world directory>/DIM-1/regions folder? I think that the nether is stored in that directory instead of the normal regions one.
     
  5. Offline

    XeonProductions

    Right not it doesn't check the nether for duplicate pointers because I think this problem is localized to converted maps. However I did have plans to make this a multifunctional utility for maps, so i might add that in.
     
  6. Offline

    enkryptor

    Got an odd exception with it:
    Code:
    [Chunkster] Bad chunk pointer found! expected chunk at [x=3 z=22] got [x=17 z=-16]
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -495
            at chunkster.RegionFile.getOffset(RegionFile.java:354)
            at chunkster.Chunkster.scanRegionPointers(Chunkster.java:89)
            at chunkster.Chunkster.scan(Chunkster.java:48)
            at chunkster.Chunkster.main(Chunkster.java:27)
    
     
  7. Offline

    XeonProductions

    Would you be able to upload the region file that error occurred in?
     
  8. Offline

    PatrickFreed

    does this fix the problem where chunks regenerate?
     
  9. Offline

    enkryptor

    I'm not sure how do identify the exact region file so I've uploaded the whole world — <Edit by Moderator: Redacted mediafire url>
     
    Last edited by a moderator: Dec 14, 2016
  10. Offline

    XeonProductions

     
    Last edited by a moderator: Dec 14, 2016
  11. Offline

    hitandrun160

    If this works, i love you. Thanks.

    Will post results later!
     
  12. Offline

    enkryptor

    Well, it did something:
    Code:
    [Chunkster] Scanning region file x=0 z=0 file=r.0.0.mcr
    [Chunkster] Bad chunk pointer found! expected chunk at [x=3 z=22] got [x=17 z=-16]
    [Chunkster] Chunk is out of bounds.
    [Chunkster] Setting bad chunk pointer to null (it should regenerate a new chunk in its place).
    I'll see how that affected the problem a bit later.
     
  13. Offline

    Iqualfragile

    well, i am runing bukkit with ubuntu.
    i am getting the following error in masses.

    Code:
    18:36:35 [INFO] Chunk (-1, 4) stored at  (-7, 8)
    18:36:35 [INFO] net.minecraft.server.Chunk
    18:36:35 [SCHWERWIEGEND] java.lang.Throwable
    18:36:35 [SCHWERWIEGEND]     at net.minecraft.server.ChunkProviderServer.b(ChunkProviderServer.java:117)
    18:36:35 [SCHWERWIEGEND]     at net.minecraft.server.World.c(World.java:202)
    18:36:35 [SCHWERWIEGEND]     at net.minecraft.server.ChunkCache.<init>(SourceFile:28)
    18:36:35 [SCHWERWIEGEND]     at net.minecraft.server.World.a(World.java:1666)
    18:36:35 [SCHWERWIEGEND]     at net.minecraft.server.EntityCreature.c_(EntityCreature.java:92)
    18:36:35 [SCHWERWIEGEND]     at net.minecraft.server.EntityLiving.q(EntityLiving.java:649)
    18:36:35 [SCHWERWIEGEND]     at net.minecraft.server.EntityMonster.q(EntityMonster.java:30)
    18:36:35 [SCHWERWIEGEND]     at net.minecraft.server.EntityZombie.q(EntityZombie.java:35)
    18:36:35 [SCHWERWIEGEND]     at net.minecraft.server.EntityPigZombie.q(EntityPigZombie.java:54)
    18:36:35 [SCHWERWIEGEND]     at net.minecraft.server.EntityLiving.f_(EntityLiving.java:231)
    18:36:35 [SCHWERWIEGEND]     at net.minecraft.server.EntityMonster.f_(EntityMonster.java:34)
    18:36:35 [SCHWERWIEGEND]     at net.minecraft.server.EntityPigZombie.f_(EntityPigZombie.java:32)
    18:36:35 [SCHWERWIEGEND]     at net.minecraft.server.World.a(World.java:1011)
    18:36:35 [SCHWERWIEGEND]     at net.minecraft.server.WorldServer.a(WorldServer.java:53)
    18:36:35 [SCHWERWIEGEND]     at net.minecraft.server.World.f(World.java:993)
    18:36:35 [SCHWERWIEGEND]     at net.minecraft.server.World.d(World.java:970)
    18:36:35 [SCHWERWIEGEND]     at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:354)
    18:36:35 [SCHWERWIEGEND]     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:272)
    18:36:35 [SCHWERWIEGEND]     at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    
    when i start your tool, i get the following output

    Code:
    [Chunkster] Starting scan...
    [Chunkster] REGION LOAD /home/yannik/Server/mcs/19723/region/r.-1.0.mcr
    [Chunkster] Scanning region file x=-1 z=0 file=r.-1.0.mcr
    [Chunkster] REGION LOAD /home/yannik/Server/mcs/19723/region/r.-1.-1.mcr
    [Chunkster] Scanning region file x=-1 z=-1 file=r.-1.-1.mcr
    [Chunkster] REGION LOAD /home/yannik/Server/mcs/19723/region/r.-2.-1.mcr
    [Chunkster] Scanning region file x=-2 z=-1 file=r.-2.-1.mcr
    [Chunkster] REGION LOAD /home/yannik/Server/mcs/19723/region/r.1.0.mcr
    [Chunkster] Scanning region file x=1 z=0 file=r.1.0.mcr
    [Chunkster] REGION LOAD /home/yannik/Server/mcs/19723/region/r.0.-2.mcr
    [Chunkster] Scanning region file x=0 z=-2 file=r.0.-2.mcr
    [Chunkster] REGION LOAD /home/yannik/Server/mcs/19723/region/r.-2.0.mcr
    [Chunkster] Scanning region file x=-2 z=0 file=r.-2.0.mcr
    [Chunkster] REGION LOAD /home/yannik/Server/mcs/19723/region/r.0.0.mcr
    [Chunkster] Scanning region file x=0 z=0 file=r.0.0.mcr
    [Chunkster] REGION LOAD /home/yannik/Server/mcs/19723/region/r.1.-1.mcr
    [Chunkster] Scanning region file x=1 z=-1 file=r.1.-1.mcr
    [Chunkster] REGION LOAD /home/yannik/Server/mcs/19723/region/r.0.-1.mcr
    [Chunkster] Scanning region file x=0 z=-1 file=r.0.-1.mcr
    [Chunkster] REGION LOAD /home/yannik/Server/mcs/19723/region/r.-1.-2.mcr
    [Chunkster] Scanning region file x=-1 z=-2 file=r.-1.-2.mcr
    
    and nothing changed.
     
  14. Offline

    Dope

    OMG it worked!
    Thank you so much!!

    My map got corrupted when I got a blue screen yesterday and got a corrupted chunk.
    Wasted my whole evening trying to find a fix and thanks to you I did!

    Got a funny scene though, when i started the server up again with the map, a LOT of black sheep spawned at the same chunk. I lol'd.

    Anyways,

    Thank you so much!
     
  15. Offline

    sk8r2k11

    We love you -
    From UMC Server u saved our world from certain doom :D

    <3
     
  16. Offline

    ks07

    As sk8r has rightly said, thanks a bunch for this utility. Managed to save our server world from a 6 hour rollback! [​IMG] Much appreciated!
     
  17. Offline

    Johannes13

    UMC member thank you :)
     
  18. Offline

    XeonProductions

    I'm glad this tool could be of some use to other people. I'm planning on adding some more header verification, data verification, and maybe some chunk deleting/importing/exporting options.
     
  19. Offline

    Pr4w

    Looks promising ! Added this to my favorites, I'll be trying it tomorrow, I'll tell you how it goes ! :)
     
  20. Offline

    trivials

    I will try it tomorrow :)
     
  21. Offline

    SpiiderPig

    My Server Log got spammed with one wrong Chunk error Message over and over. After using Chunkster the bad chunk got replaced with a new generated one which i replaced afterwards with the chunk out of an older backup and its working like a charm.

    Thanks a lot for making that fantastic tool :)
     
  22. Offline

    Pr4w

    Worked a wonder, this deserves to be bumped ! Fantastic tool !
     
  23. I wanna make love to you - you saved one day of work of my players, thanks in their name!
     
    TruffleDucks likes this.
  24. Offline

    Iqualfragile

    i am just going to repeat what i posted before:
    i am getting the "Chunk (*,*) stored at (*,*)" -error
    and this tool does not change anything about it.
    please help me, my server.log file is about 1gb, and it is imposible to see anything in the console besides anoying errors.
    i have postet the error before ^
    and i have posted the output ouf your tool
    but, as i said, noting changes.
    can you help me?
    i can send you my world files, if you want them.

    ps: i hate .mcr, it makes it nearly imposible to delete an single chunk manualy.
     
  25. Offline

    XeonProductions

    Are you sure you're even running it on the correct world? Do you have nether enabled?
     
  26. Offline

    brendon1555

    Thanks you so much! You just saved my server from certain doom. :)
     
  27. Offline

    inviktus

    Code:
    [Chunkster] Scanning region file x=-1 z=0 file=r.-1.0.mcr
    java.util.zip.ZipException: incorrect data check
            at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:164)
            at java.io.DataInputStream.readFully(DataInputStream.java:195)
            at java.io.DataInputStream.readFully(DataInputStream.java:169)
            at chunkster.NBTTagByteArray.readTagContents(NBTTagByteArray.java:22)
            at chunkster.NBTBase.readTag(NBTBase.java:37)
            at chunkster.NBTTagCompound.readTagContents(NBTTagCompound.java:26)
            at chunkster.NBTBase.readTag(NBTBase.java:37)
            at chunkster.NBTTagCompound.readTagContents(NBTTagCompound.java:26)
            at chunkster.NBTBase.readTag(NBTBase.java:37)
            at chunkster.NBTCompressionUtility.readRootTagCompound(NBTCompressionUtility.java:29)
            at chunkster.Chunkster.scanRegionPointers(Chunkster.java:79)
            at chunkster.Chunkster.scan(Chunkster.java:48)
            at chunkster.Chunkster.main(Chunkster.java:27)
    
    
    I get this when I run chunkster.

    A few details..
    I was originally getting loads of bad chunk error spam, and the server "hung" a few seconds after I started
    the world. After running chunkster, this was resolved, but there are a few that it was unable to fix due to
    the above error. Now when somebody enters the remaining bad chunks that chunkster couldn't
    fix, it hangs again.

    Hope you can help, I am facing the loss of a lot of progress if this cannot be resolved :\

    There was also one chunk that chunkster reported "unknown version" for.

    The error I get on the console when somebody enters those areas is:

    Code:
    01:13:39 [SEVERE] java.lang.ArrayIndexOutOfBoundsException: -71
    01:13:39 [SEVERE]       at net.minecraft.server.World.h(World.java:1508)
    01:13:39 [SEVERE]       at net.minecraft.server.World.g(World.java:1440)
    01:13:39 [SEVERE]       at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:348)
    01:13:39 [SEVERE]       at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:272)
    01:13:39 [SEVERE]       at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    01:13:39 [SEVERE] Unexpected exception
    java.lang.ArrayIndexOutOfBoundsException: -71
            at net.minecraft.server.World.h(World.java:1508)
            at net.minecraft.server.World.g(World.java:1440)
            at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:348)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:272)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    
     
  28. Offline

    Iqualfragile

    yes and yes, but this isn't the netherworld
     
  29. Offline

    HungryBagel

    Just wanted to express my gratitude for this program. It saved me so much frustration and lines and lines of errors, and overall saved my precious world.
     
    lloyd menzies likes this.
  30. Offline

    ledhead900

    ^^ what he said, you have my thanks!
     
Thread Status:
Not open for further replies.

Share This Page