Added detection of McRegion-format worlds for snapshot detection.

Dieser Commit ist enthalten in:
sk89q 2011-03-09 23:51:40 -08:00
Ursprung 96e75a4cae
Commit 1d68fdd11c
6 geänderte Dateien mit 34 neuen und 1 gelöschten Zeilen

Datei anzeigen

@ -75,4 +75,11 @@ public abstract class ChunkStore {
public void close() throws IOException { public void close() throws IOException {
} }
/**
* Returns whether the chunk store is of this type.
*
* @return
*/
public abstract boolean isValid();
} }

Datei anzeigen

@ -62,4 +62,9 @@ public class FileLegacyChunkStore extends LegacyChunkStore {
throw new MissingChunkException(); throw new MissingChunkException();
} }
} }
@Override
public boolean isValid() {
return true; // Yeah, oh well
}
} }

Datei anzeigen

@ -54,4 +54,9 @@ public class FileMcRegionChunkStore extends McRegionChunkStore {
} }
} }
@Override
public boolean isValid() {
return new File(path, "region").isDirectory();
}
} }

Datei anzeigen

@ -164,4 +164,9 @@ public class TrueZipLegacyChunkStore extends LegacyChunkStore {
public void close() throws IOException { public void close() throws IOException {
zip.close(); zip.close();
} }
@Override
public boolean isValid() {
return true; // Yeah, oh well
}
} }

Datei anzeigen

@ -161,4 +161,9 @@ public class ZippedAlphaChunkStore extends LegacyChunkStore {
public void close() throws IOException { public void close() throws IOException {
zip.close(); zip.close();
} }
@Override
public boolean isValid() {
return true; // Yeah, oh well
}
} }

Datei anzeigen

@ -73,8 +73,14 @@ public class Snapshot {
throw new DataException("TrueZIP is required for .tar support"); throw new DataException("TrueZIP is required for .tar support");
} }
} else { } else {
ChunkStore chunkStore = new FileMcRegionChunkStore(file);
if (!chunkStore.isValid()) {
return new FileLegacyChunkStore(file); return new FileLegacyChunkStore(file);
} }
return chunkStore;
}
} }
/** /**