From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: mja00 Date: Mon, 12 Aug 2024 06:27:15 -0400 Subject: [PATCH] Add skipping world symlink scan In worlds that are extremely large (greater than 1TB), it can take an insanely long time to walk the entire world for symlinks. This patch adds a system property to disable the symlink scan, which can be used to speed up world loading. diff --git a/src/main/java/net/minecraft/world/level/storage/LevelStorageSource.java b/src/main/java/net/minecraft/world/level/storage/LevelStorageSource.java index 427ee4d6f12a7abd8da0c65e0b9081b25824df40..85ba843ce7e1f62971e736fa2cc028c47b274ce4 100644 --- a/src/main/java/net/minecraft/world/level/storage/LevelStorageSource.java +++ b/src/main/java/net/minecraft/world/level/storage/LevelStorageSource.java @@ -420,7 +420,7 @@ public class LevelStorageSource { public LevelStorageSource.LevelStorageAccess validateAndCreateAccess(String s, ResourceKey dimensionType) throws IOException, ContentValidationException { // CraftBukkit Path path = this.getLevelPath(s); - List list = this.worldDirValidator.validateDirectory(path, true); + List list = Boolean.getBoolean("paper.disableWorldSymlinkValidation") ? List.of() : this.worldDirValidator.validateDirectory(path, true); // Paper - add skipping of symlinks scan if (!list.isEmpty()) { throw new ContentValidationException(path, list);