|
1 | 1 | package tc.oc.pgm.platform.modern.impl; |
2 | 2 |
|
| 3 | +import static tc.oc.pgm.util.bukkit.MiscUtils.MISC_UTILS; |
3 | 4 | import static tc.oc.pgm.util.nms.Packets.ENTITIES; |
4 | 5 | import static tc.oc.pgm.util.platform.Supports.Variant.PAPER; |
5 | 6 |
|
|
8 | 9 | import io.papermc.paper.world.PaperWorldLoader; |
9 | 10 | import io.papermc.paper.world.migration.WorldFolderMigration; |
10 | 11 | import java.io.IOException; |
11 | | -import java.nio.file.Files; |
12 | | -import java.nio.file.Path; |
13 | 12 | import java.util.ArrayList; |
14 | 13 | import java.util.List; |
15 | 14 | import java.util.OptionalLong; |
|
19 | 18 | import net.minecraft.core.Registry; |
20 | 19 | import net.minecraft.core.RegistryAccess; |
21 | 20 | import net.minecraft.core.registries.Registries; |
22 | | -import net.minecraft.nbt.NbtAccounter; |
23 | | -import net.minecraft.nbt.NbtIo; |
24 | 21 | import net.minecraft.resources.ResourceKey; |
25 | | -import net.minecraft.server.MinecraftServer; |
26 | 22 | import net.minecraft.server.TickTask; |
27 | 23 | import net.minecraft.server.WorldLoader; |
28 | 24 | import net.minecraft.server.dedicated.DedicatedServer; |
@@ -228,7 +224,8 @@ public World createWorld(@NonNull WorldCreator creator) { |
228 | 224 | } |
229 | 225 |
|
230 | 226 | // PGM: We need to read data version from level.dat pre-migration |
231 | | - int dataVersion = readDataVersion(server.getWorldContainer().toPath().resolve(name)); |
| 227 | + int dataVersion = MISC_UTILS.getWorldDataVersion( |
| 228 | + server.getWorldContainer().toPath().resolve(name).resolve("level.dat")); |
232 | 229 |
|
233 | 230 | try { |
234 | 231 | WorldFolderMigration.migrateApiWorld( |
@@ -333,21 +330,6 @@ public World createWorld(@NonNull WorldCreator creator) { |
333 | 330 | return serverLevel.getWorld(); |
334 | 331 | } |
335 | 332 |
|
336 | | - /** |
337 | | - * Read the {@code DataVersion} tag from a world folder's {@code level.dat}. Returns 0 on failure. |
338 | | - */ |
339 | | - private static int readDataVersion(Path worldFolder) { |
340 | | - Path levelDat = worldFolder.resolve("level.dat"); |
341 | | - if (!Files.exists(levelDat)) return 0; |
342 | | - try { |
343 | | - return NbtIo.readCompressed(levelDat, NbtAccounter.unlimitedHeap()) |
344 | | - .getIntOr("DataVersion", 0); |
345 | | - } catch (IOException e) { |
346 | | - MinecraftServer.LOGGER.warn("Failed to read DataVersion from {}", levelDat, e); |
347 | | - return 0; |
348 | | - } |
349 | | - } |
350 | | - |
351 | 333 | @Override |
352 | 334 | public boolean canMineBlock(BlockMaterialData blockMaterial, Player player) { |
353 | 335 | return ((ModernBlockMaterialData) blockMaterial) |
|
0 commit comments