diff --git a/src/main/java/ru/windcorp/progressia/test/TestWorldDiskIO.java b/src/main/java/ru/windcorp/progressia/test/TestWorldDiskIO.java index 842e7c1..8bed37a 100644 --- a/src/main/java/ru/windcorp/progressia/test/TestWorldDiskIO.java +++ b/src/main/java/ru/windcorp/progressia/test/TestWorldDiskIO.java @@ -238,30 +238,41 @@ public class TestWorldDiskIO { if (sectorLength == 0) { int outputLen = (int) output.length(); - offset = (int) (outputLen-fullOffset)/sectorSize; + offset = (int) (outputLen-fullOffset)/sectorSize+1; output.seek(shortOffset); output.writeInt(offset<<8); + output.seek(outputLen); + while (output.length()> 8; input.skipNBytes(fullOffset-shortOffset-offsetBytes-1); input.skipNBytes(sectorSize*offset); input.mark(sectorSize*sectorLength); - ChunkData chunk = ChunkIO.load(world, chunkPos, input, IOContext.SAVE); - readGenerationHint(chunk, input, server); + DataInputStream trueInput = new DataInputStream( + new InflaterInputStream(input)); + ChunkData chunk = ChunkIO.load(world, chunkPos, trueInput, IOContext.SAVE); + readGenerationHint(chunk, trueInput, server); return chunk; } }