Inactive [ADMIN] Chunkster

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

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

    XeonProductions

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    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:
      1. Usage: java -jar Chunkster.jar [options ..] <world directory>
      2.         Options:
      3.                --remove-mobs: removes mobs, monsters, creepers, skeletons, spiders, etc.
      4.                --remove-projectiles: removes arrows, snowballs, eggs, etc.
      5.                --remove-dropped-items: removes dropped items.
      6.                --remove-experience-orbs: removes experience orbs.
      7.                --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

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    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

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    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

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    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

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    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

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Got an odd exception with it:
    Code (Text):
    1. [Chunkster] Bad chunk pointer found! expected chunk at [x=3 z=22] got [x=17 z=-16]
    2. Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -495
    3.         at chunkster.RegionFile.getOffset(RegionFile.java:354)
    4.         at chunkster.Chunkster.scanRegionPointers(Chunkster.java:89)
    5.         at chunkster.Chunkster.scan(Chunkster.java:48)
    6.         at chunkster.Chunkster.main(Chunkster.java:27)
    7.  
     
  7. Offline

    XeonProductions

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Would you be able to upload the region file that error occurred in?
     
  8. Offline

    PatrickFreed

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    does this fix the problem where chunks regenerate?
     
  9. Offline

    enkryptor

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    I'm not sure how do identify the exact region file so I've uploaded the whole world — http://www.mediafire.com/?jfodfq45ocdb085
     
  10. Offline

    XeonProductions

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Alright, I've fixed the bug. The bad chunk should get deleted now. Re-download the program.
     
  11. Offline

    hitandrun160

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    If this works, i love you. Thanks.

    Will post results later!
     
  12. Offline

    enkryptor

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Well, it did something:
    Code (Text):
    1. [Chunkster] Scanning region file x=0 z=0 file=r.0.0.mcr
    2. [Chunkster] Bad chunk pointer found! expected chunk at [x=3 z=22] got [x=17 z=-16]
    3. [Chunkster] Chunk is out of bounds.
    4. [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

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    well, i am runing bukkit with ubuntu.
    i am getting the following error in masses.

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

    Code (Text):
    1.  
    2. [Chunkster] Starting scan...
    3. [Chunkster] REGION LOAD /home/yannik/Server/mcs/19723/region/r.-1.0.mcr
    4. [Chunkster] Scanning region file x=-1 z=0 file=r.-1.0.mcr
    5. [Chunkster] REGION LOAD /home/yannik/Server/mcs/19723/region/r.-1.-1.mcr
    6. [Chunkster] Scanning region file x=-1 z=-1 file=r.-1.-1.mcr
    7. [Chunkster] REGION LOAD /home/yannik/Server/mcs/19723/region/r.-2.-1.mcr
    8. [Chunkster] Scanning region file x=-2 z=-1 file=r.-2.-1.mcr
    9. [Chunkster] REGION LOAD /home/yannik/Server/mcs/19723/region/r.1.0.mcr
    10. [Chunkster] Scanning region file x=1 z=0 file=r.1.0.mcr
    11. [Chunkster] REGION LOAD /home/yannik/Server/mcs/19723/region/r.0.-2.mcr
    12. [Chunkster] Scanning region file x=0 z=-2 file=r.0.-2.mcr
    13. [Chunkster] REGION LOAD /home/yannik/Server/mcs/19723/region/r.-2.0.mcr
    14. [Chunkster] Scanning region file x=-2 z=0 file=r.-2.0.mcr
    15. [Chunkster] REGION LOAD /home/yannik/Server/mcs/19723/region/r.0.0.mcr
    16. [Chunkster] Scanning region file x=0 z=0 file=r.0.0.mcr
    17. [Chunkster] REGION LOAD /home/yannik/Server/mcs/19723/region/r.1.-1.mcr
    18. [Chunkster] Scanning region file x=1 z=-1 file=r.1.-1.mcr
    19. [Chunkster] REGION LOAD /home/yannik/Server/mcs/19723/region/r.0.-1.mcr
    20. [Chunkster] Scanning region file x=0 z=-1 file=r.0.-1.mcr
    21. [Chunkster] REGION LOAD /home/yannik/Server/mcs/19723/region/r.-1.-2.mcr
    22. [Chunkster] Scanning region file x=-1 z=-2 file=r.-1.-2.mcr
    23.  
    and nothing changed.
     
  14. Offline

    Dope

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    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

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    We love you -
    From UMC Server u saved our world from certain doom :D

    <3
     
  16. Offline

    ks07

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    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

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    UMC member thank you :)
     
  18. Offline

    XeonProductions

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    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

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Looks promising ! Added this to my favorites, I'll be trying it tomorrow, I'll tell you how it goes ! :)
     
  20. Offline

    trivials

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    I will try it tomorrow :)
     
  21. Offline

    SpiiderPig

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    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

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Worked a wonder, this deserves to be bumped ! Fantastic tool !
     
  23. Offline

    PierreW

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    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

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    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

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Are you sure you're even running it on the correct world? Do you have nether enabled?
     
  26. Offline

    brendon1555

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Thanks you so much! You just saved my server from certain doom. :)
     
  27. Offline

    inviktus

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Code (Text):
    1. [Chunkster] Scanning region file x=-1 z=0 file=r.-1.0.mcr
    2. java.util.zip.ZipException: incorrect data check
    3.         at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:164)
    4.         at java.io.DataInputStream.readFully(DataInputStream.java:195)
    5.         at java.io.DataInputStream.readFully(DataInputStream.java:169)
    6.         at chunkster.NBTTagByteArray.readTagContents(NBTTagByteArray.java:22)
    7.         at chunkster.NBTBase.readTag(NBTBase.java:37)
    8.         at chunkster.NBTTagCompound.readTagContents(NBTTagCompound.java:26)
    9.         at chunkster.NBTBase.readTag(NBTBase.java:37)
    10.         at chunkster.NBTTagCompound.readTagContents(NBTTagCompound.java:26)
    11.         at chunkster.NBTBase.readTag(NBTBase.java:37)
    12.         at chunkster.NBTCompressionUtility.readRootTagCompound(NBTCompressionUtility.java:29)
    13.         at chunkster.Chunkster.scanRegionPointers(Chunkster.java:79)
    14.         at chunkster.Chunkster.scan(Chunkster.java:48)
    15.         at chunkster.Chunkster.main(Chunkster.java:27)
    16.  
    17.  
    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 (Text):
    1. 01:13:39 [SEVERE] java.lang.ArrayIndexOutOfBoundsException: -71
    2. 01:13:39 [SEVERE]       at net.minecraft.server.World.h(World.java:1508)
    3. 01:13:39 [SEVERE]       at net.minecraft.server.World.g(World.java:1440)
    4. 01:13:39 [SEVERE]       at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:348)
    5. 01:13:39 [SEVERE]       at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:272)
    6. 01:13:39 [SEVERE]       at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    7. 01:13:39 [SEVERE] Unexpected exception
    8. java.lang.ArrayIndexOutOfBoundsException: -71
    9.         at net.minecraft.server.World.h(World.java:1508)
    10.         at net.minecraft.server.World.g(World.java:1440)
    11.         at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:348)
    12.         at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:272)
    13.         at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    14.  
     
  28. Offline

    Iqualfragile

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    yes and yes, but this isn't the netherworld
     
  29. Offline

    HungryBagel

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    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

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    ^^ what he said, you have my thanks!
     
Thread Status:
Not open for further replies.

Share This Page