Podshot / MCEdit-Unified

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

Missing Huge Sections Of Older Maps #542

Open EvilSupahFly opened 9 years ago

EvilSupahFly commented 9 years ago

I have some single player maps that I haven't used since 2012/2013 that had things I wanted to put in some newer maps. So I loaded the old maps in the editor with the intention of saving the desired things as schematics, but I'm finding out there are radically large areas of these maps missing and I don't know if it's Minecraft or MCEdit. (See first screenshot below for an example where I used MLG with the 1.8.8 server to attempt to repair the map and restore the square shape, which is why it looks spotty in the middle, but that didn't seem to work so well).

This map was originally perfectly square but MCEdit seems to disagree. I've loaded upwards of fourteen old worlds from 2012 through early 2014 and they all come up in MCEdit missing tremendous amounts of area, including a lot of player structures.

I looked in the world folders and there's a lot of .MCA files for such apparently small worlds, but I don't know how to correlate the .MCA files to specific X/Z locations within Minecraft or MCEdit, so I don't know if the worlds are corrupted or if MCEdit is being funny.

Running MCEdit v1.4.0.1 on Ubuntu Linux (see secondary screenshot below).

screenshot from 2015-12-06 13 52 08 screenshot from 2015-12-05 17 55 35

Podshot commented 9 years ago

What version were these maps ran in before you opened them in MCEdit?

EvilSupahFly commented 9 years ago

Various 1.4 through 1.7 versions On Dec 6, 2015 3:51 PM, "Podshot" notifications@github.com wrote:

What version were these maps ran in before you opened them in MCEdit?

— Reply to this email directly or view it on GitHub https://github.com/Khroki/MCEdit-Unified/issues/542#issuecomment-162346507 .

LaChal commented 8 years ago

The actual MCEdit version does'nt fully support old map formats.

Trying with older MCEdit version may solve your issue. You can also try to open the concerned saves in a recent version of Minecraft. Anyway, make backups before!

EvilSupahFly commented 8 years ago

I assumed the Anvil format hadn't changed since it was implemented making everything technically readable in MCEdit. Was I wrong? On Dec 7, 2015 4:33 PM, "LaChal" notifications@github.com wrote:

The actual MCEdit version does'nt fully support old map formats.

Trying with older MCEdit version may solve your issue. You can also try to open the concerned saves in a recent version of Minecraft. Anyway, make backups before!

— Reply to this email directly or view it on GitHub https://github.com/Khroki/MCEdit-Unified/issues/542#issuecomment-162670468 .

Podshot commented 8 years ago

We haven't been aware of any changes to the Anvil format, if there was, we haven't adapted to them. Could you send us the worlds that have this problem?

Khroki commented 8 years ago

It is possible some of the changes such as how containers/paintings/frames are stored could have some effect, but yeah we can't say for sure without seeing one of the maps.

EvilSupahFly commented 8 years ago

Soon as I get Internet working again, without using my phone as a hotspot, I'll have a couple for you. On Dec 8, 2015 3:33 PM, "Khroki" notifications@github.com wrote:

It is possible some of the changes such as how containers/paintings/frames are stored could have some effect, but yeah we can't say for sure without seeing one of the maps.

— Reply to this email directly or view it on GitHub https://github.com/Khroki/MCEdit-Unified/issues/542#issuecomment-163009275 .

Khroki commented 8 years ago

Excellent, let us know.

EvilSupahFly commented 8 years ago

I have been successful loading these troublesome worlds in Minecraft first, then loading them in the editor, so I made a little tool to do them all, and it's seems to be working so far (been running for 12 hours now, but no problems encountered in any of the updated worlds):

#!/bin/bash
clear
SRVPRP="server.properties"
LN="level-name="

# create an array of all the dir inside ~/.minecraft/saves/, and run MLG on them
arr=(~/.minecraft/saves/*)

# iterate through array using a counter, then run MLG on each item in the array sequentially
for ((i=0; i<${#arr[@]}; i++)); do
    for MCSAVE in "${arr[@]}"; do
        echo Located $MCSAVE
        case $MCSAVE in
            #remove items from the array that are not Minecraft saves
            crash-reports|logs|MinecraftLandGenerator|resourcepacks|MinecraftLandGenerator.jar|minecraft_server.jar|banned-ips.json|banned-players.json|ops.json|usercache.json|whitelist.json|banned-ips.txt.converted|banned-players.txt.converted|eula.txt|MinecraftLandGenerator.conf|MLG-BuildID|server.properties)
                echo "Skipping $MCSAVE - Not a Minecraft Save"
                ;;
            *)
                # Remove the old server.properties and create a new one for the current world in the array
                if [ -e $SRVPRP ]
                then
                    echo "Removing old $SRVPRP"
                    rm $SRVPRP
                fi
                echo "Creating new $SRVPRP for $MCSAVE..."
                echo "#Minecraft server properties
spawn-protection=1
max-tick-time=60000
server-name=
generator-settings=
force-gamemode=true
allow-nether=true
gamemode=1
broadcast-console-to-ops=true
enable-query=false
player-idle-timeout=0
difficulty=1
spawn-monsters=true
op-permission-level=4
resource-pack-hash=
announce-player-achievements=true
pvp=true
grow-trees=true
snooper-enabled=true
level-type=AMPLIFIED
hardcore=false
enable-command-block=true
max-players=20
network-compression-threshold=256
max-world-size=462250
server-port=25565
verify-names=false
server-ip=
spawn-npcs=true
allow-flight=true
view-distance=15
resource-pack=
spawn-animals=true
white-list=false
generate-structures=true
online-mode=false
max-build-height=256
level-seed=seann
use-native-transport=true
enable-rcon=false
motd=The Greatest Server Ever
$LN$MCSAVE" >>$SRVPRP
                # add the current world to the last line then run MLG on it because MLG calls the 1.8.8
                # server which converts the world then adds the minimum allowable area in a square
                java -jar MinecraftLandGenerator.jar 1000 1000 -x0 -z0
        esac
    done
done

As far as I can tell, something seems to have changed between 1.4 and 1.8, but I don't know what as all my converted worlds (so far) are loading properly in MCE.

Khroki commented 8 years ago

That kind of confirms it's our lack of support for both the old and new style of paintings/frames rotation data since that's the only major change, so if that's added this will be fixed.

EvilSupahFly commented 8 years ago

Well, my "fix" worked on some, but not others. My "Underwater NPC Village" is one example where I'm missing a few hundred chunks in MCE v1.5. The world is zipped and available from my DropBox.

I also get this error when loading this specific world in MCE:

/home/seann/.minecraft/saves/Underwater NPC Village
[   ERROR][                   root.py:432]:Failed to load file /home/seann/.minecraft/saves/Underwater NPC Village 3/level.dat: KeyError('pop from an empty set',)

And, since I see the "Java Version" tag was added, here's what I'm running:

seann@black-beast:~ $ java -version
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)
Khroki commented 8 years ago

Thanks for the world, that should help track it down. Also the java version tag just means it's standard minecraft and not the windows 10 or pocket edition versions we're dealing with.