diff --git a/build.gradle.kts b/build.gradle.kts index 9191b06..d07f6db 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -4,7 +4,7 @@ import org.gradle.api.tasks.testing.logging.TestLogEvent plugins { java `maven-publish` - id("io.papermc.paperweight.patcher") version "1.7.3" + id("io.papermc.paperweight.patcher") version "1.7.4" } allprojects { diff --git a/gradle.properties b/gradle.properties index 1f23fbe..b320b95 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,8 +1,8 @@ group = com.triassic.linearpaper -version = 1.21.1-R0.1-SNAPSHOT +version = 1.21.3-R0.1-SNAPSHOT -mcVersion = 1.21.1 -paperCommit = d348cb88a9fe8d19e46102c8b9febe18f746d46b +mcVersion = 1.21.3 +paperCommit = b14d336442a1928e21ad2eb28768bd0632961682 org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/api/0001-Empty-configuration.patch b/patches/api/0001-Empty-configuration.patch index cb444f7..4b727b7 100644 --- a/patches/api/0001-Empty-configuration.patch +++ b/patches/api/0001-Empty-configuration.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Empty configuration diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 5aa64ea39ebd92e5067c53cea49a8685c0b9eee4..6667f35c6cd09d1c833aed90e42d8a20430bc0ee 100644 +index 20750c09d819d62f32491db8672936b929e1098e..272b931981251ad7c6fbdaae74df12a28bb014e5 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2265,6 +2265,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2214,6 +2214,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi } // Paper end diff --git a/patches/server/0001-Rebrand.patch b/patches/server/0001-Rebrand.patch index c1888ec..0d8d93b 100644 --- a/patches/server/0001-Rebrand.patch +++ b/patches/server/0001-Rebrand.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Rebrand diff --git a/build.gradle.kts b/build.gradle.kts -index de0474b8dce58cb419c00b7614d7dd66be832a02..51b933a204491c57dcecab58d4d2807f10ec33dc 100644 +index 9966576652ed6007d2228237f292c1dc83ede485..2bb6508b73755693c812c5d6572ce5dc0cea8592 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -13,7 +13,7 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) { @@ -17,7 +17,7 @@ index de0474b8dce58cb419c00b7614d7dd66be832a02..51b933a204491c57dcecab58d4d2807f // Paper start implementation("org.jline:jline-terminal-jansi:3.21.0") implementation("net.minecrell:terminalconsoleappender:1.3.0") -@@ -85,14 +85,14 @@ tasks.jar { +@@ -81,14 +81,14 @@ tasks.jar { val gitBranch = git("rev-parse", "--abbrev-ref", "HEAD").getText().trim() // Paper attributes( "Main-Class" to "org.bukkit.craftbukkit.Main", diff --git a/patches/server/0002-Empty-configuration.patch b/patches/server/0002-Empty-configuration.patch index f9b6d0e..455eed8 100644 --- a/patches/server/0002-Empty-configuration.patch +++ b/patches/server/0002-Empty-configuration.patch @@ -302,23 +302,11 @@ index 0000000000000000000000000000000000000000..562200dd06f5c30219746be01441a7de + return value.isEmpty() ? fallback : value; + } +} -diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index dd56c8e041116ef3602a9f89c998c8208ab89b51..40287dc312332c7a72ab8aaceb2484a9e5f85e0b 100644 ---- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -@@ -227,6 +227,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface - this.paperConfigurations.initializeWorldDefaultsConfiguration(this.registryAccess()); - // Paper end - initialize global and world-defaults configuration - this.server.spark.enableEarlyIfRequested(); // Paper - spark -+ com.triassic.linearpaper.LinearConfig.init((java.io.File) this.options.valueOf("linear-settings")); // LinearPaper - // Paper start - fix converting txt to json file; convert old users earlier after PlayerList creation but before file load/save - if (this.convertOldUsers()) { - this.getProfileCache().save(false); // Paper diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 507671476c3d2d92a2fdb05be24443af27d26dcf..1c18058a53d4e40118e5bb6e561e5b18f24070ee 100644 +index 044985030607bc20a61666dee7dd2659ae4553b5..7c1490fe1a923edeac927bffa7984b434bfbfc28 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -171,6 +171,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl +@@ -172,6 +172,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl return this.paperConfig; } // Paper end - add paper world config @@ -326,27 +314,11 @@ index 507671476c3d2d92a2fdb05be24443af27d26dcf..1c18058a53d4e40118e5bb6e561e5b18 public final com.destroystokyo.paper.antixray.ChunkPacketBlockController chunkPacketBlockController; // Paper - Anti-Xray public final co.aikar.timings.WorldTimingsHandler timings; // Paper -@@ -687,6 +688,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl - protected Level(WritableLevelData worlddatamutable, ResourceKey resourcekey, RegistryAccess iregistrycustom, Holder holder, Supplier supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function paperWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - create paper world config & Anti-Xray - this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot - this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config -+ this.linearConfig = new com.triassic.linearpaper.LinearWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // LinearPaper - this.generator = gen; - this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env); - diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index c7df339aeb62ee627edaf1bb4c8474b61e357ba6..0e70ce3a8af32f9f67f652a6cee6cde3513e1cda 100644 +index a34e40e273a79a234c3d79b6ad360ce3a4d35ba3..936ad535131f17c0d4729ff1095f20b29d564360 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1072,6 +1072,7 @@ public final class CraftServer implements Server { - - org.spigotmc.SpigotConfig.init((File) this.console.options.valueOf("spigot-settings")); // Spigot - this.console.paperConfigurations.reloadConfigs(this.console); -+ com.triassic.linearpaper.LinearConfig.init((File) console.options.valueOf("linear-settings")); // LinearPaper - for (ServerLevel world : this.console.getAllLevels()) { - // world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty - world.setSpawnSettings(world.serverLevelData.getDifficulty() != Difficulty.PEACEFUL && config.spawnMonsters, config.spawnAnimals); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean)) -@@ -1087,6 +1088,7 @@ public final class CraftServer implements Server { +@@ -1088,6 +1088,7 @@ public final class CraftServer implements Server { } } world.spigotConfig.init(); // Spigot @@ -354,7 +326,7 @@ index c7df339aeb62ee627edaf1bb4c8474b61e357ba6..0e70ce3a8af32f9f67f652a6cee6cde3 } Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper -@@ -2990,6 +2992,12 @@ public final class CraftServer implements Server { +@@ -2968,6 +2969,12 @@ public final class CraftServer implements Server { return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console); } @@ -368,7 +340,7 @@ index c7df339aeb62ee627edaf1bb4c8474b61e357ba6..0e70ce3a8af32f9f67f652a6cee6cde3 public void restart() { org.spigotmc.RestartCommand.restart(); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index b3ba6bccdbb08af27916f0c611c60b2595b90164..6c23b718533daf4ba811a88f0d65420df925de9a 100644 +index a7524d3853d5b67b6385d2b74832b9267503dfe6..0d5a7feee04206f75f07f12dcf38616899232794 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -183,6 +183,14 @@ public class Main { diff --git a/patches/server/0003-Region-format-configuration.patch b/patches/server/0003-Region-format-configuration.patch index 1ee158c..2d827ee 100644 --- a/patches/server/0003-Region-format-configuration.patch +++ b/patches/server/0003-Region-format-configuration.patch @@ -88,10 +88,10 @@ index 0000000000000000000000000000000000000000..1285e3c410c9f6b5ed8c3ac11da60d1e + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 696d075ca2883f3c37e35f983c4d020e5db89d16..f75e1e6e3d68e4156fd9723aa96dba4e890b07cb 100644 +index 79f3dc4f53dce892c4756b0850352e0ca2eb95a6..90618bb54dadaf9e77ac86c5b0bd321131a077fc 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -980,10 +980,10 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop T computeForRegionFile(final int chunkX, final int chunkZ, final boolean existingOnly, final Function function) { -+ public T computeForRegionFile(final int chunkX, final int chunkZ, final boolean existingOnly, final Function function) { // LinearPaper - final RegionFileStorage cache = this.getCache(); -- final RegionFile regionFile; -+ final com.triassic.linearpaper.region.AbstractRegionFile regionFile; // LinearPaper - synchronized (cache) { - try { - if (existingOnly) { -@@ -1061,9 +1061,9 @@ public final class RegionFileIOThread extends PrioritisedQueueExecutorThread { - } - } - -- public T computeForRegionFileIfLoaded(final int chunkX, final int chunkZ, final Function function) { -+ public T computeForRegionFileIfLoaded(final int chunkX, final int chunkZ, final Function function) { // LinearPaper - final RegionFileStorage cache = this.getCache(); -- final RegionFile regionFile; -+ final com.triassic.linearpaper.region.AbstractRegionFile regionFile; // LinearPaper - - synchronized (cache) { - regionFile = ((ChunkSystemRegionFileStorage)(Object)cache).moonrise$getRegionFileIfLoaded(chunkX, chunkZ); diff --git a/src/main/java/com/triassic/linearpaper/region/AbstractRegionFile.java b/src/main/java/com/triassic/linearpaper/region/AbstractRegionFile.java new file mode 100644 index 0000000000000000000000000000000000000000..854397f73a02fbfd6668e0dc9d577cd4ee1765cb @@ -104,10 +61,10 @@ index 0000000000000000000000000000000000000000..c010b45b2aefeb1394a27b11b787ff58 + } +} diff --git a/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java b/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java -index cb39c629af1827078f35904a373d35a63fea17ff..efcd9739337624cbea00d8f134916547d2b5a231 100644 +index 622d0cbe023774d92d212f242b60b96317720835..9701e6b69b99b3ec392810f4a7000adb97f1132c 100644 --- a/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java +++ b/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java -@@ -420,7 +420,7 @@ public class WorldUpgrader { +@@ -419,7 +419,7 @@ public class WorldUpgrader implements AutoCloseable { List list1 = Lists.newArrayList(); try { @@ -116,7 +73,7 @@ index cb39c629af1827078f35904a373d35a63fea17ff..efcd9739337624cbea00d8f134916547 try { for (int i1 = 0; i1 < 32; ++i1) { -@@ -483,7 +483,7 @@ public class WorldUpgrader { +@@ -482,7 +482,7 @@ public class WorldUpgrader implements AutoCloseable { protected abstract boolean tryProcessOnePosition(T storage, ChunkPos chunkPos, ResourceKey worldKey); @@ -125,7 +82,7 @@ index cb39c629af1827078f35904a373d35a63fea17ff..efcd9739337624cbea00d8f134916547 if (WorldUpgrader.this.recreateRegionFiles) { if (this.previousWriteFuture != null) { this.previousWriteFuture.join(); -@@ -508,7 +508,7 @@ public class WorldUpgrader { +@@ -507,7 +507,7 @@ public class WorldUpgrader implements AutoCloseable { } } @@ -135,28 +92,10 @@ index cb39c629af1827078f35904a373d35a63fea17ff..efcd9739337624cbea00d8f134916547 } diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java -index 1e0439cf3f4008fa430acb90b45f5bc4cdd6d7f2..7604ae5709c9768b63a96a9defa62718defc2da4 100644 +index e9e1ab1a5be996bc648a53dc4d4123a6b966c437..0226dfda6bdcd80c8f52ad820e1881bef1574232 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java -@@ -28,7 +28,7 @@ import net.minecraft.nbt.NbtIo; // Paper - import net.minecraft.world.level.ChunkPos; - import org.slf4j.Logger; - --public class RegionFile implements AutoCloseable { -+public class RegionFile implements AutoCloseable, com.triassic.linearpaper.region.AbstractRegionFile { // LinearPaper - - private static final Logger LOGGER = LogUtils.getLogger(); - private static final int SECTOR_BYTES = 4096; -@@ -129,7 +129,7 @@ public class RegionFile implements AutoCloseable { - } - - // note: only call for CHUNK regionfiles -- boolean recalculateHeader() throws IOException { -+ public boolean recalculateHeader() throws IOException { // LinearPaper - make public - if (!this.canRecalcHeader) { - return false; - } -@@ -928,10 +928,10 @@ public class RegionFile implements AutoCloseable { +@@ -490,10 +490,10 @@ public class RegionFile implements AutoCloseable, ca.spottedleaf.moonrise.patche private static int getChunkIndex(int x, int z) { return (x & 31) + (z & 31) * 32; } @@ -169,7 +108,7 @@ index 1e0439cf3f4008fa430acb90b45f5bc4cdd6d7f2..7604ae5709c9768b63a96a9defa62718 final int offset = getChunkIndex(x, z); boolean previous = this.oversized[offset] == 1; this.oversized[offset] = (byte) (oversized ? 1 : 0); -@@ -970,7 +970,7 @@ public class RegionFile implements AutoCloseable { +@@ -532,7 +532,7 @@ public class RegionFile implements AutoCloseable, ca.spottedleaf.moonrise.patche return this.path.getParent().resolve(this.path.getFileName().toString().replaceAll("\\.mca$", "") + "_oversized_" + x + "_" + z + ".nbt"); } @@ -179,7 +118,7 @@ index 1e0439cf3f4008fa430acb90b45f5bc4cdd6d7f2..7604ae5709c9768b63a96a9defa62718 try (DataInputStream out = new DataInputStream(new java.io.BufferedInputStream(new InflaterInputStream(Files.newInputStream(file))))) { return NbtIo.read((java.io.DataInput) out); diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java -index 40689256711cc94a806ca1da346f4f62eda31526..f533d13efe1458aa421b51abb6f8604ba71c48c8 100644 +index 2d5c1b91b814316bf9f2f22bcd30adacc8970b01..dd39ab538a2b1b5998bbfb830df26316b2a718c8 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java @@ -21,7 +21,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise @@ -219,16 +158,7 @@ index 40689256711cc94a806ca1da346f4f62eda31526..f533d13efe1458aa421b51abb6f8604b this.regionCache.putAndMoveToFirst(key, ret); -@@ -143,7 +143,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise - this.isChunkData = isChunkDataFolder(this.folder); // Paper - recalculate region file headers - } - -- public RegionFile getRegionFile(ChunkPos chunkcoordintpair, boolean existingOnly) throws IOException { // CraftBukkit // Paper - public -+ public com.triassic.linearpaper.region.AbstractRegionFile getRegionFile(ChunkPos chunkcoordintpair, boolean existingOnly) throws IOException { // CraftBukkit // Paper - public // LinearPaper - // Paper start - rewrite chunk system - if (existingOnly) { - return this.moonrise$getRegionFileIfExists(chunkcoordintpair.x, chunkcoordintpair.z); -@@ -151,7 +151,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise +@@ -217,7 +217,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise synchronized (this) { final long key = ChunkPos.asLong(chunkcoordintpair.x >> REGION_SHIFT, chunkcoordintpair.z >> REGION_SHIFT); @@ -237,7 +167,7 @@ index 40689256711cc94a806ca1da346f4f62eda31526..f533d13efe1458aa421b51abb6f8604b if (ret != null) { return ret; } -@@ -166,7 +166,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise +@@ -232,7 +232,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise FileUtil.createDirectoriesSafe(this.folder); @@ -246,7 +176,7 @@ index 40689256711cc94a806ca1da346f4f62eda31526..f533d13efe1458aa421b51abb6f8604b this.regionCache.putAndMoveToFirst(key, ret); -@@ -180,7 +180,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise +@@ -246,7 +246,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise org.apache.logging.log4j.LogManager.getLogger().fatal(msg + " (" + file.toString().replaceAll(".+[\\\\/]", "") + " - " + x + "," + z + ") Go clean it up to remove this message. /minecraft:tp " + (x<<4)+" 128 "+(z<<4) + " - DO NOT REPORT THIS TO PAPER - You may ask for help on Discord, but do not file an issue. These error messages can not be removed."); } @@ -255,7 +185,7 @@ index 40689256711cc94a806ca1da346f4f62eda31526..f533d13efe1458aa421b51abb6f8604b synchronized (regionfile) { try (DataInputStream datainputstream = regionfile.getChunkDataInputStream(chunkCoordinate)) { CompoundTag oversizedData = regionfile.getOversizedData(chunkCoordinate.x, chunkCoordinate.z); -@@ -215,7 +215,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise +@@ -281,7 +281,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise @Nullable public CompoundTag read(ChunkPos pos) throws IOException { // CraftBukkit start - SPIGOT-5680: There's no good reason to preemptively create files on read, save that for writing @@ -264,7 +194,7 @@ index 40689256711cc94a806ca1da346f4f62eda31526..f533d13efe1458aa421b51abb6f8604b if (regionfile == null) { return null; } -@@ -279,7 +279,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise +@@ -332,7 +332,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise public void scanChunk(ChunkPos chunkPos, StreamTagVisitor scanner) throws IOException { // CraftBukkit start - SPIGOT-5680: There's no good reason to preemptively create files on read, save that for writing @@ -273,7 +203,7 @@ index 40689256711cc94a806ca1da346f4f62eda31526..f533d13efe1458aa421b51abb6f8604b if (regionfile == null) { return; } -@@ -309,7 +309,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise +@@ -362,7 +362,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise } public void write(ChunkPos pos, @Nullable CompoundTag nbt) throws IOException { // Paper - public @@ -282,7 +212,7 @@ index 40689256711cc94a806ca1da346f4f62eda31526..f533d13efe1458aa421b51abb6f8604b // Paper start - rewrite chunk system if (regionfile == null) { // if the RegionFile doesn't exist, no point in deleting from it -@@ -368,7 +368,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise +@@ -421,7 +421,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise // Paper start - rewrite chunk system synchronized (this) { final ExceptionCollector exceptionCollector = new ExceptionCollector<>(); @@ -291,7 +221,7 @@ index 40689256711cc94a806ca1da346f4f62eda31526..f533d13efe1458aa421b51abb6f8604b try { regionFile.close(); } catch (final IOException ex) { -@@ -385,7 +385,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise +@@ -438,7 +438,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise // Paper start - rewrite chunk system synchronized (this) { final ExceptionCollector exceptionCollector = new ExceptionCollector<>(); diff --git a/patches/server/0005-Add-Linear-region-format.patch b/patches/server/0005-Add-Linear-region-format.patch index 562c9db..aaf5aa1 100644 --- a/patches/server/0005-Add-Linear-region-format.patch +++ b/patches/server/0005-Add-Linear-region-format.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Linear region format diff --git a/build.gradle.kts b/build.gradle.kts -index 51b933a204491c57dcecab58d4d2807f10ec33dc..42347c4b732784493993479b2c3d36558d0b59bf 100644 +index 2bb6508b73755693c812c5d6572ce5dc0cea8592..cfc6a7bc0633bebf0570c1cfacdeaa073372258f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -30,6 +30,10 @@ dependencies { @@ -402,10 +402,10 @@ index 0000000000000000000000000000000000000000..f7c5b51f5ab7c3ca5cd31e62bbc599ab + } +} diff --git a/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java b/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java -index efcd9739337624cbea00d8f134916547d2b5a231..850403308847abb5d3a325133520629ebce6f0ba 100644 +index 9701e6b69b99b3ec392810f4a7000adb97f1132c..4be8c6d5b066540bbc735fa2dc476b65896fa5d3 100644 --- a/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java +++ b/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java -@@ -76,7 +76,7 @@ public class WorldUpgrader { +@@ -75,7 +75,7 @@ public class WorldUpgrader implements AutoCloseable { volatile int skipped; final Reference2FloatMap> progressMap = Reference2FloatMaps.synchronize(new Reference2FloatOpenHashMap()); volatile Component status = Component.translatable("optimizeWorld.stage.counting"); @@ -414,7 +414,7 @@ index efcd9739337624cbea00d8f134916547d2b5a231..850403308847abb5d3a325133520629e final DimensionDataStorage overworldDataStorage; public WorldUpgrader(LevelStorageSource.LevelStorageAccess session, DataFixer dataFixer, RegistryAccess dynamicRegistryManager, boolean eraseCache, boolean recreateRegionFiles) { -@@ -400,7 +400,7 @@ public class WorldUpgrader { +@@ -399,7 +399,7 @@ public class WorldUpgrader implements AutoCloseable { private static List getAllChunkPositions(RegionStorageInfo key, Path regionDirectory) { File[] afile = regionDirectory.toFile().listFiles((file, s) -> { @@ -424,22 +424,10 @@ index efcd9739337624cbea00d8f134916547d2b5a231..850403308847abb5d3a325133520629e if (afile == null) { diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java -index f533d13efe1458aa421b51abb6f8604ba71c48c8..8090df00723d54d36033f8f245f87c7c94ee81ac 100644 +index dd39ab538a2b1b5998bbfb830df26316b2a718c8..634bfab92ae2e65d60ef6381d7c4eb507215fdd4 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java -@@ -30,7 +30,10 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise - private static final int REGION_SHIFT = 5; - private static final int MAX_NON_EXISTING_CACHE = 1024 * 64; - private final it.unimi.dsi.fastutil.longs.LongLinkedOpenHashSet nonExistingRegionFiles = new it.unimi.dsi.fastutil.longs.LongLinkedOpenHashSet(MAX_NON_EXISTING_CACHE+1); -- private static String getRegionFileName(final int chunkX, final int chunkZ) { -+ // LinearPaper start - Linear region format -+ private static String getRegionFileName(final RegionStorageInfo info, final int chunkX, final int chunkZ) { -+ if (info.regionFormat().equals(com.triassic.linearpaper.region.RegionFileFormat.LINEAR)) -+ return "r." + (chunkX >> REGION_SHIFT) + "." + (chunkZ >> REGION_SHIFT) + ".linear"; - return "r." + (chunkX >> REGION_SHIFT) + "." + (chunkZ >> REGION_SHIFT) + ".mca"; - } - -@@ -87,7 +90,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise +@@ -87,7 +87,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise this.regionCache.removeLast().close(); } @@ -448,7 +436,7 @@ index f533d13efe1458aa421b51abb6f8604ba71c48c8..8090df00723d54d36033f8f245f87c7c if (!java.nio.file.Files.exists(regionPath)) { this.markNonExisting(key); -@@ -160,7 +163,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise +@@ -226,7 +226,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise this.regionCache.removeLast().close(); }