Podshot / MCEdit-Unified

Combined MCEdit & Pymclevel repository.
http://podshot.github.io/MCEdit-Unified/
ISC License
483 stars 109 forks source link

"corrupted compressed block contents" when opening Bedrock world #959

Open ahigerd opened 5 years ago

ahigerd commented 5 years ago

Description of Issue:

Loading my Bedrock world fails with the error "corrupted compressed block contents".

MCEdit Version:

git 568c01d0 (1.6.0.0)

Minecraft Version the world was last opened in:

Bedrock beta 1.8.0.14

Operating System:

macOS 10.13.6

A screenshot or full text of the error from the console:

(master) MacBook-Pro:MCEdit-Unified coda$ python mcedit.py --debug-pe --debug-pe
Running in fixed mode. Support files are in your App Support Folder (Available from the main menu of MCEdit)
pygame 1.9.4
Hello from the pygame community. https://www.pygame.org/contribute.html
Splash load...
[ ****** ] ~~~~~~~~~~ Starting MCEdit-Unified v1.6.0.0
[   ERROR][          pymclevel.nbt.py:703]:Failed to import Cythonized nbt file. Running on (very slow) pure-python nbt fallback.
[   ERROR][          pymclevel.nbt.py:704]:(Did you forget to run 'setup.py build_ext --inplace'?)
[   ERROR][          pymclevel.nbt.py:705]:cannot import name TAG_Long_Array
Game Version: Unknown : Unknown
/var/folders/9c/qz7q1_lj73qbd9c9vbmk_xl00000gn/T
[ WARNING][            mcplatform.py:1260]:Initializing window management...
Minecraft_Server.jar storage initialized.
Each server is stored in a subdirectory of /Users/coda/Library/Application Support/pymclevel/ServerJarStorage named with the server's version number
Cached servers:  []
/Users/coda/MCEdit-Unified/toolicons/session_good.png
*** MCEDIT DEBUG: file_dialog: /Users/coda/MCEdit-Unified/albow/file_dialogs.pyc
*** MCEDIT DEBUG: directory: /Users/coda/MCEdit-Unified/albow
*** MCEDIT DEBUG: current directory: /Users/coda/MCEdit-Unified
[   ERROR][                  root.py:1332]:Wasn't able to open a file {file => /var/folders/9c/qz7q1_lj73qbd9c9vbmk_xl00000gn/T/mcworld_jmsXSX/level.dat}
Traceback (most recent call last):
  File "/Users/coda/MCEdit-Unified/leveleditor.py", line 1329, in loadFile
    level = pymclevel.fromFile(filename)
  File "/Users/coda/MCEdit-Unified/pymclevel/mclevel.py", line 226, in fromFile
    return PocketLeveldbWorld(filename)
  File "/Users/coda/MCEdit-Unified/pymclevel/leveldbpocket.py", line 886, in __init__
    self.worldFile = PocketLeveldbDatabase(filename, self, create=create, world_version=self.world_version, dat_world_version=self.dat_world_version)
  File "/Users/coda/MCEdit-Unified/pymclevel/leveldbpocket.py", line 303, in __init__
    it.SeekToFirst()
  File "/Users/coda/MCEdit-Unified/pymclevel/leveldb.py", line 327, in SeekToFirst
    self._impl.SeekToFirst()
  File "/Users/coda/MCEdit-Unified/pymclevel/leveldb.py", line 971, in SeekToFirst
    self._checkError()
  File "/Users/coda/MCEdit-Unified/pymclevel/leveldb.py", line 988, in _checkError
    _checkError(error)
  File "/Users/coda/MCEdit-Unified/pymclevel/leveldb.py", line 935, in _checkError
    raise _err(message)
ZipCompressionError: Corruption: corrupted compressed block contents

Contents of dump_pe.txt:

Binary world version: '\x08'; compressor: (4, 2)
Binary world version: '\x08'; compressor: (4,)
Binary world version: '\x08'; compressor: (2,)

How to reproduce:

I installed MCEdit-Unified from source and followed the instructions to copy the _nbt.so into place from the last binary distribution.

I exported my world from the Windows 10 version of Minecraft, copied the .mcworld file over to my Mac (since that's where my development stuff is), and attempted to load the file.

I don't mind uploading the world somewhere if needed, but it's 86MB.

gentlegiantJGC commented 5 years ago

See if you can reproduce this on a smaller world and send that. It might just be that we need to update the leveldb.dll

servel333 commented 5 years ago

Same error here.

MCEdit Unified for Java 1.12 and Bedrock v1.5.6.0

Running in fixed mode. Support files are in your Documents folder.
Splash load...
[ ****** ] ~~~~~~~~~~ Starting MCEdit-Unified v1.5.6.0
ERROR: The system was unable to find the specified registry key or value.
[ WARNING][            mcplatform.py:1276]:Initializing window management...
Minecraft_Server.jar storage initialized.
Each server is stored in a subdirectory of C:\Users\...\OneDrive\Documents\MCEdit\ServerJarStorage named with the server's version number
Cached servers:  []
[   ERROR][pymclevel.leveldbpocket.py:194]:Error while opening world database from C:\Users\...\Downloads\... (Corruption: corrupted compressed block contents)
[   ERROR][                  root.py:1190]:Wasn't able to open a file {file => C:\Users\...\Downloads\...\level.dat}
Traceback (most recent call last):
  File "leveleditor.py", line 1187, in loadFile
  File "pymclevel\mclevel.py", line 226, in fromFile
    return PocketLeveldbWorld(filename)
  File "pymclevel\leveldbpocket.py", line 447, in __init__
    self.worldFile = PocketLeveldbDatabase(filename, create=create)
  File "pymclevel\leveldbpocket.py", line 200, in __init__
    leveldb_mcpe.RepairWrapper(os.path.join(path, 'db'))
ArgumentError: Python argument types in
    RepairWrapper.__init__(RepairWrapper, unicode)
did not match C++ signature:
    __init__(struct _object * __ptr64, struct _object * __ptr64, struct _object * __ptr64)
gentlegiantJGC commented 5 years ago

MCEdit 1.5 is not compatible with Bedrock worlds. This is a different issue

servel333 commented 5 years ago

I thought the whole thing with unified was that it was compatible... Am I missing something?

gentlegiantJGC commented 5 years ago

MCEdit 1.6 is but 1.5 was released before Bedrock existed

servel333 commented 5 years ago

I see on the website that 1.5 is the latest. Is there a release for 1.6 somewhere else, or is it unreleased?

gentlegiantJGC commented 5 years ago

It is a beta on the website. Bottom right of the top box

servel333 commented 5 years ago

It took a minute, but I see the download for MCEdit-Unified 1.6.0.53-testing.

Thanks for the help!

servel333 commented 5 years ago

That worked. It looks like it doesn't support some of the new blocks, but it is working and that's what I needed. Thanks again.