minetest-tools / mcimport

71 stars 22 forks source link

KeyError: 'Level' #43

Open joshlangley opened 3 months ago

joshlangley commented 3 months ago

As an enthusiastic newcomer to Minetest, I would love to bring some of my old worlds over from Minecraft. This script looks like what I'm after, but running it yields only the following error message and an exit status 1.

$ python3 mcimport.py "$HOME/Desktop/tree-world" "$HOME/.minetest/worlds/tree-world"
$HOME/mcimport/tile_entities.py:117: SyntaxWarning: invalid escape sequence '\/'
  m = re.search('\/time set (\d+)', c)
Traceback (most recent call last)::??:?? h:m:s
  File "$HOME/mcimport/mcimport.py", line 107, in <module>
    mtmap.save()
  File "$HOME/mcimport/block.py", line 455, in save
    for block in self.blocks:
  File "$HOME/mcimport/block.py", line 439, in fromMCMapBlocksIterator
    for mcblock in mcmap.getBlocksIterator():
  File "$HOME/mcimport/block.py", line 62, in getBlocksIterator
    blocks = self.getChunk(chkx, chkz).blocks
             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "$HOME/mcimport/block.py", line 45, in getChunk
    return MCChunk(chkx, chkz, self.world_path, self.ext)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "$HOME/mcimport/block.py", line 86, in __init__
    raw_data = nbt.read(udata)['']['Level']
               ~~~~~~~~~~~~~~~~~~~^^^^^^^^^
KeyError: 'Level'

Home directory redacted; substituted with $HOME.

I tried it with the shell script first, but found that iterating while debugging was faster if I just ran the python script directly, and I was getting the same result either way.

I have tried it on four different worlds and get exactly the same result. One of the worlds is from MC 1.20.6 and another is from 1.12.2, so save version doesn't seem to be related. I've linked the example (from 1.19) below. (It's too large to attach apparently.) https://www.icloud.com/iclouddrive/044AlMrcWsxo3Bi50eVQuzzHA#source-tree-world

The output folder does seem to contain some basic files, which I've attached in case it's useful. tree-world.tar.gz

Information

Thank you for your time! I really appreciate it!

stefanchirilaphoto commented 2 months ago

Same thing happened to me. :(