9
0
mirror of https://github.com/BX-Team/DivineMC.git synced 2025-12-22 16:29:23 +00:00

Updated Upstream (Purpur)

Upstream has released updates that appear to apply and compile correctly

Purpur Changes:
PurpurMC/Purpur@236b06a Updated Upstream (Paper & Pufferfish)
This commit is contained in:
NONPLAYT
2024-01-23 00:40:22 +03:00
parent bb8340d63a
commit 78281549a3
8 changed files with 59 additions and 57 deletions

View File

@@ -1,7 +1,7 @@
group = gq.bxteam.divinemc
version = 1.20.4-R0.1-SNAPSHOT
purpurRef = 3d52f066c1bf1fc61d86164993fd7cac94ca5dce
purpurRef = 236b06a2a30dd4dc3850251d902b1a790c130366
org.gradle.caching = true
org.gradle.parallel = true

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Divine Branding
diff --git a/build.gradle.kts b/build.gradle.kts
index 5b8a28969451b12c4fc66976afd052ffa5805932..7aeb4fa6a8342b81558c657120504848c5e32775 100644
index 0c92d10f334f82d196e065c0811d0c1f48887377..6964b6235bed4455b85aa69cef0049a769c5daad 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -14,7 +14,7 @@ val alsoShade: Configuration by configurations.creating
@@ -27,7 +27,7 @@ index 5b8a28969451b12c4fc66976afd052ffa5805932..7aeb4fa6a8342b81558c657120504848
"Specification-Title" to "Bukkit",
"Specification-Version" to project.version,
diff --git a/src/main/java/com/destroystokyo/paper/Metrics.java b/src/main/java/com/destroystokyo/paper/Metrics.java
index 8cde30544e14f8fc2dac32966ae3c21f8cf3a551..ad62e0b7deb141d22be4f19ea30f61440b192af2 100644
index 8cde30544e14f8fc2dac32966ae3c21f8cf3a551..8b06174a9c42ea1d5a1cc5a423a0d6f7304a06c4 100644
--- a/src/main/java/com/destroystokyo/paper/Metrics.java
+++ b/src/main/java/com/destroystokyo/paper/Metrics.java
@@ -3,6 +3,7 @@ package com.destroystokyo.paper;
@@ -154,7 +154,7 @@ index 3cb56595822799926a8141e60a42f5d1edfc6de5..05478a1ea04ec0396bc8c97090edef4a
.completer(new ConsoleCommandCompleter(this.server))
.option(LineReader.Option.COMPLETE_IN_WORD, true);
diff --git a/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java b/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java
index 64e12201e164f4dc8070711605dcfcb6e56421f6..ad5c7d2f133834fd587ab0b8b5835313b52e6fa2 100644
index 7f07ffab0835d45d4d170fe171d7fa996d5913d9..fde3e7ef352474566e7259555a5f8ffb2272e98b 100644
--- a/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java
+++ b/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java
@@ -56,7 +56,7 @@ public class MinecraftServerGui extends JComponent {
@@ -170,10 +170,10 @@ index 64e12201e164f4dc8070711605dcfcb6e56421f6..ad5c7d2f133834fd587ab0b8b5835313
jframe.pack();
jframe.setLocationRelativeTo((Component) null);
jframe.setVisible(true);
- jframe.setName("Purpur Minecraft server"); // Paper // Purpur
+ jframe.setName("DivineMC Minecraft server"); // Paper // Purpur // DivineMC
- jframe.setName("Purpur Minecraft server"); // Paper - Improve ServerGUI // Purpur
+ jframe.setName("DivineMC Minecraft server"); // Paper - Improve ServerGUI // Purpur // DivineMC
// Paper start - Add logo as frame image
// Paper start - Improve ServerGUI
try {
@@ -76,7 +76,7 @@ public class MinecraftServerGui extends JComponent {
jframe.addWindowListener(new WindowAdapter() {
@@ -185,7 +185,7 @@ index 64e12201e164f4dc8070711605dcfcb6e56421f6..ad5c7d2f133834fd587ab0b8b5835313
servergui.runFinalizers();
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index fd754fc9ff313421d221eea8d21fbde98be24914..ddf481ef8e70a4441e33d26b8acb8f618096c017 100644
index 679f7874931bf068da800a8e8aa68285971b6996..173a17db3a1ab2582b645077013df91981685755 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -264,7 +264,7 @@ import javax.annotation.Nullable; // Paper

View File

@@ -326,7 +326,7 @@ index 0000000000000000000000000000000000000000..5d16d2250bae9c982a0af9ad2580a635
+}
\ No newline at end of file
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 7cc19060c24ad191b7dca779a18fbfbb65763189..eb301cf5e68914980829b1d3c72163ddf337958d 100644
index 043a48d8c90e2e008b06fb5a643378a0fa948aaa..3f29a112c781790577d2857aee18c66ff3593673 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -235,6 +235,16 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -347,7 +347,7 @@ index 7cc19060c24ad191b7dca779a18fbfbb65763189..eb301cf5e68914980829b1d3c72163dd
this.setFlightAllowed(dedicatedserverproperties.allowFlight);
this.setMotd(dedicatedserverproperties.motd);
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index b58402221840a9e72b30a31d884b0fb2d86883fd..bc0590fd38837cf6be67d56e5e00078ce0c6f11b 100644
index f638224f8ae018030fa00962cd3c75fc31ab2488..25e0eb83fbec9c4a7a2f822e652b16431c6be7e3 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -15,6 +15,8 @@ import java.util.function.Consumer;
@@ -359,7 +359,7 @@ index b58402221840a9e72b30a31d884b0fb2d86883fd..bc0590fd38837cf6be67d56e5e00078c
import net.minecraft.CrashReport;
import net.minecraft.CrashReportCategory;
import net.minecraft.ReportedException;
@@ -180,6 +182,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -179,6 +181,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
public final com.destroystokyo.paper.antixray.ChunkPacketBlockController chunkPacketBlockController; // Paper - Anti-Xray
public final org.purpurmc.purpur.PurpurWorldConfig purpurConfig; // Purpur
@@ -367,7 +367,7 @@ index b58402221840a9e72b30a31d884b0fb2d86883fd..bc0590fd38837cf6be67d56e5e00078c
public final co.aikar.timings.WorldTimingsHandler timings; // Paper
public static BlockPos lastPhysicsProblem; // Spigot
private org.spigotmc.TickLimiter entityLimiter;
@@ -263,6 +266,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -262,6 +265,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
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.purpurConfig = new org.purpurmc.purpur.PurpurWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), env); // Purpur
@@ -376,7 +376,7 @@ index b58402221840a9e72b30a31d884b0fb2d86883fd..bc0590fd38837cf6be67d56e5e00078c
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 ddf481ef8e70a4441e33d26b8acb8f618096c017..ce842043c0f69e4a090f0a170fcffa1f51e1895c 100644
index 173a17db3a1ab2582b645077013df91981685755..faec95807f8a2fb3c6e3481584fffef30ac5825e 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -14,6 +14,7 @@ import com.mojang.brigadier.tree.CommandNode;
@@ -426,7 +426,7 @@ index ddf481ef8e70a4441e33d26b8acb8f618096c017..ce842043c0f69e4a090f0a170fcffa1f
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 c7f8f85ad6cb76413275ebe64385a3ec7051257e..3cf225840194eedeadc40f5b370ff51c7ea0c89a 100644
index 3511c7361e2287bb47a74aa3426234b0054c405d..0ce1640e9b1dc2fb64e3c816eda4709956d19ea5 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -188,6 +188,14 @@ public class Main {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Fix entity serialization
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 93e558e1cfcdee33abf6f1c57e4cf47c7f53f750..c83c3ceebe2c6fd0d6645a604a8e2a35e6ac3ac0 100644
index f10933fc78cbb0ead042c1870d93d0447f640896..28a22466a155364816dc70d9d4d94fbaaa8551d1 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2342,15 +2342,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -2341,15 +2341,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
}
}
@@ -20,12 +20,12 @@ index 93e558e1cfcdee33abf6f1c57e4cf47c7f53f750..c83c3ceebe2c6fd0d6645a604a8e2a35
- this.passengers = ImmutableList.copyOf(pass);
- return result;
- }
- // Paper end
- // Paper end - Entity serialization api
public boolean save(CompoundTag nbt) {
return this.isPassenger() ? false : this.saveAsPassenger(nbt);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
index 6eeebfaf577263316f3562a8f968310acd616763..af3407902e010b6cfe88751634e2c2fafbc23e04 100644
index 2331190c476a2bfe3797aa61a4a792a9cc42ff59..0a713160ff0a0708c5bc4d578d265dbf7922dc07 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -508,8 +508,13 @@ public final class CraftMagicNumbers implements UnsafeValues {

View File

@@ -7,10 +7,10 @@ Original code by Titaniumtown, modified by NONPLAYT
You can find the original code on https://gitlab.com/Titaniumtown/JettPack
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 20f760e678b3b9c5d5b2184f5b92f05932fb1256..8bd3c55dab2f637ad3e0b3043e560ac62a052cdd 100644
index 25e0eb83fbec9c4a7a2f822e652b16431c6be7e3..ecd6694dd34dbade5386cd1c244327a6fc4ef9ef 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -185,8 +185,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -184,8 +184,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
public final gq.bxteam.divinemc.configuration.DivineWorldConfig divinemcConfig; // DivineMC
public final co.aikar.timings.WorldTimingsHandler timings; // Paper
public static BlockPos lastPhysicsProblem; // Spigot
@@ -19,7 +19,7 @@ index 20f760e678b3b9c5d5b2184f5b92f05932fb1256..8bd3c55dab2f637ad3e0b3043e560ac6
private int tileTickPosition;
public final Map<Explosion.CacheKey, Float> explosionDensityCache = new HashMap<>(); // Paper - Optimize explosions
public java.util.ArrayDeque<net.minecraft.world.level.block.RedstoneTorchBlock.Toggle> redstoneUpdateInfos; // Paper - Move from Map in BlockRedstoneTorch to here
@@ -349,8 +347,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -348,8 +346,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
// CraftBukkit end
this.timings = new co.aikar.timings.WorldTimingsHandler(this); // Paper - code below can generate new world and access timings
this.keepSpawnInMemory = this.paperConfig().spawn.keepSpawnLoaded; // Paper

View File

@@ -7,10 +7,10 @@ Original post on Mojira: https://bugs.mojang.com/browse/MC-2025
Fix taken from Reddit: https://redd.it/8pgd4q
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index c83c3ceebe2c6fd0d6645a604a8e2a35e6ac3ac0..7213d7ad92f42bf8b35f388a6d56e80bcc4a0858 100644
index 28a22466a155364816dc70d9d4d94fbaaa8551d1..0216c91bba40f4f3ae4103ec856b65a4bd27e015 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2508,6 +2508,17 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -2507,6 +2507,17 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
nbttagcompound.putBoolean("Purpur.FireImmune", immuneToFire);
}
// Purpur end
@@ -28,7 +28,7 @@ index c83c3ceebe2c6fd0d6645a604a8e2a35e6ac3ac0..7213d7ad92f42bf8b35f388a6d56e80b
return nbttagcompound;
} catch (Throwable throwable) {
CrashReport crashreport = CrashReport.forThrowable(throwable, "Saving entity NBT");
@@ -2585,6 +2596,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -2584,6 +2595,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
this.reapplyPosition();
}

View File

@@ -19,7 +19,7 @@ index fa7ee2b2778a26d0e466bdc05ade26a5ae0c17f4..11dc1af9f8d8ce8c0a855d14a35077f5
+ }
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 0b37acd48517d28efec716b93c33da6aa97c54f2..e2e3d5a4285760eb8b931223677411a0bdf3aa14 100644
index d7ff08767fe6b14f18386651666c42903a52ec1c..ed921885c80b7d98aae323fa60764f6d77f48fe9 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -6,6 +6,7 @@ import com.mojang.authlib.GameProfile;
@@ -30,7 +30,7 @@ index 0b37acd48517d28efec716b93c33da6aa97c54f2..e2e3d5a4285760eb8b931223677411a0
import it.unimi.dsi.fastutil.ints.Int2ObjectMap.Entry;
import it.unimi.dsi.fastutil.ints.Int2ObjectMaps;
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
@@ -2344,6 +2345,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -2339,6 +2340,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
if (this.player.isRemoved() || this.player.getChatVisibility() == ChatVisiblity.HIDDEN) { // CraftBukkit - dead men tell no tales
this.send(new ClientboundSystemChatPacket(Component.translatable("chat.disabled.options").withStyle(ChatFormatting.RED), false));
return Optional.empty();

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Implement Linear region format
diff --git a/build.gradle.kts b/build.gradle.kts
index 7aeb4fa6a8342b81558c657120504848c5e32775..571e01cd7ed706593289427fe71e04d0182ac314 100644
index 6964b6235bed4455b85aa69cef0049a769c5daad..771ac26bd2ad64ad2861881d6cb223c8cd3a0fc3 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -36,6 +36,10 @@ dependencies {
@@ -658,7 +658,7 @@ index 8a11e10b01fa012b2f98b1c193c53251e848f909..2b3c6d11421bb0f5131eeaae362ee44b
}
}
diff --git a/src/main/java/io/papermc/paper/world/ThreadedWorldUpgrader.java b/src/main/java/io/papermc/paper/world/ThreadedWorldUpgrader.java
index 513833c2ea23df5b079d157bc5cb89d5c9754c0b..b48b7d538132ad3d51d373292e36a8a10a9c0361 100644
index 9017907c0ec67a37a506f09b7e4499cef7885279..281c810237603e667ad0345a3c93e735ee531ac0 100644
--- a/src/main/java/io/papermc/paper/world/ThreadedWorldUpgrader.java
+++ b/src/main/java/io/papermc/paper/world/ThreadedWorldUpgrader.java
@@ -2,22 +2,23 @@ package io.papermc.paper.world;
@@ -706,7 +706,7 @@ index 513833c2ea23df5b079d157bc5cb89d5c9754c0b..b48b7d538132ad3d51d373292e36a8a1
long expectedChunks = (long)regionFiles.length * (32L * 32L);
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 6f94f01da0a2294f6fdc564653dde1fdbf508153..bc85de1adc8404278ac590872015137e8ac1667e 100644
index 16b5f59dd3658bb9fc5be629aa4e1bc0ce356243..d25c896247093725e594223b6667c349db1e6a45 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -887,7 +887,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -728,7 +728,7 @@ index 6f94f01da0a2294f6fdc564653dde1fdbf508153..bc85de1adc8404278ac590872015137e
return flag3;
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
index 172c7b94830c13835e48d68a039bd66e7e7622b0..2ed829da2e3bec4d16df8c341bcf9fa65b997bf2 100644
index 6e7e71c7962d43f2d4fbd218f2017557ddd53eb2..9f343fc90139812abf951a608ed51e328abcc610 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -1,31 +1,23 @@
@@ -835,7 +835,7 @@ index 172c7b94830c13835e48d68a039bd66e7e7622b0..2ed829da2e3bec4d16df8c341bcf9fa6
this.setServerViewDistance(viewDistance);
// Paper start
this.dataRegionManager = new io.papermc.paper.chunk.SingleThreadChunkRegionManager(this.level, 2, (1.0 / 3.0), 1, 6, "Data", DataRegionData::new, DataRegionSectionData::new);
@@ -886,13 +868,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -882,13 +864,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
// Paper start - chunk status cache "api"
public ChunkStatus getChunkStatusOnDiskIfCached(ChunkPos chunkPos) {
@@ -851,7 +851,7 @@ index 172c7b94830c13835e48d68a039bd66e7e7622b0..2ed829da2e3bec4d16df8c341bcf9fa6
if (regionFile == null || !regionFileCache.chunkExists(chunkPos)) {
return null;
@@ -910,7 +892,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -906,7 +888,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
}
public void updateChunkStatusOnDisk(ChunkPos chunkPos, @Nullable CompoundTag compound) throws IOException {
@@ -861,7 +861,7 @@ index 172c7b94830c13835e48d68a039bd66e7e7622b0..2ed829da2e3bec4d16df8c341bcf9fa6
regionFile.setStatus(chunkPos.x, chunkPos.z, ChunkSerializer.getStatus(compound));
}
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 1309c9e63095a0484ee0fa119a41c29ef1da3a01..120b97a9bd8f12b4c909fe42bbf3098dc3f11537 100644
index 65a60983be85707883bd330e79a8c1f03428f2c9..c9b60adbb473da99d860a2cacdf581a17c4906b7 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -6,6 +6,7 @@ import com.google.common.collect.Lists;
@@ -914,7 +914,7 @@ index 1309c9e63095a0484ee0fa119a41c29ef1da3a01..120b97a9bd8f12b4c909fe42bbf3098d
import org.bukkit.event.world.TimeSkipEvent;
// CraftBukkit end
@@ -426,9 +421,11 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -421,9 +416,11 @@ public class ServerLevel extends Level implements WorldGenLevel {
private static final class EntityRegionFileStorage extends net.minecraft.world.level.chunk.storage.RegionFileStorage {
@@ -928,7 +928,7 @@ index 1309c9e63095a0484ee0fa119a41c29ef1da3a01..120b97a9bd8f12b4c909fe42bbf3098d
protected void write(ChunkPos pos, net.minecraft.nbt.CompoundTag nbt) throws IOException {
ChunkPos nbtPos = nbt == null ? null : EntityStorage.readChunkPos(nbt);
@@ -753,7 +750,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -748,7 +745,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
// CraftBukkit end
boolean flag2 = minecraftserver.forceSynchronousWrites();
DataFixer datafixer = minecraftserver.getFixerUpper();
@@ -938,7 +938,7 @@ index 1309c9e63095a0484ee0fa119a41c29ef1da3a01..120b97a9bd8f12b4c909fe42bbf3098d
// this.entityManager = new PersistentEntitySectionManager<>(Entity.class, new ServerLevel.EntityCallbacks(), entitypersistentstorage, this.entitySliceManager); // Paper // Paper - rewrite chunk system
StructureTemplateManager structuretemplatemanager = minecraftserver.getStructureManager();
diff --git a/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java b/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java
index 47636aad5fa20d1c28d3520beb0729df9b30cf6c..33f22f2c9c80808109539fa595479dafab4a9f07 100644
index 77dd632a266f4abed30b87b7909d77857c01e316..1c7c987cf39b9341c3a0d4083a00c67bb707c15e 100644
--- a/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java
+++ b/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java
@@ -8,6 +8,9 @@ import com.google.common.collect.UnmodifiableIterator;
@@ -983,7 +983,7 @@ index 47636aad5fa20d1c28d3520beb0729df9b30cf6c..33f22f2c9c80808109539fa595479daf
}
ImmutableMap<ResourceKey<Level>, ChunkStorage> immutablemap1 = builder1.build();
@@ -235,7 +243,7 @@ public class WorldUpgrader {
@@ -241,7 +249,7 @@ public class WorldUpgrader {
File file = this.levelStorage.getDimensionPath(world).toFile();
File file1 = new File(file, "region");
File[] afile = file1.listFiles((file2, s) -> {
@@ -992,7 +992,7 @@ index 47636aad5fa20d1c28d3520beb0729df9b30cf6c..33f22f2c9c80808109539fa595479daf
});
if (afile == null) {
@@ -254,7 +262,11 @@ public class WorldUpgrader {
@@ -260,7 +268,11 @@ public class WorldUpgrader {
int l = Integer.parseInt(matcher.group(2)) << 5;
try {
@@ -1036,7 +1036,7 @@ index 12a7aaeaa8b4b788b620b1985591c3b93253ccd5..ab1d0f6b7a4d29a073798d7782777c56
}
diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java
index 8ebecb588058da174b0e0e19e54fcddfeeca1422..15658d929294f24ca8e1d2b9ef11b64c8deb1ed7 100644
index 2f7c9e0e62599688c0ed2e05444bce5040035a99..a00622c7097cf8b60cdb374151327628c0a25b39 100644
--- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java
+++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java
@@ -8,13 +8,14 @@ import java.util.Optional;
@@ -1064,13 +1064,13 @@ index 8ebecb588058da174b0e0e19e54fcddfeeca1422..15658d929294f24ca8e1d2b9ef11b64c
this.fixerUpper = dataFixer;
// Paper start - async chunk io
// remove IO worker
- this.regionFileCache = new RegionFileStorage(directory, dsync, true); // Paper - nuke IOWorker // Paper
+ this.regionFileCache = new RegionFileStorage(format, linearCompression, linearCrashOnBrokenSymlink, directory, dsync, true); // Paper - nuke IOWorker // Paper // DivineMC - Implement Linear region
- this.regionFileCache = new RegionFileStorage(directory, dsync, true); // Paper - nuke IOWorker // Paper - Attempt to recalculate regionfile header if it is corrupt
+ this.regionFileCache = new RegionFileStorage(format, linearCompression, linearCrashOnBrokenSymlink, directory, dsync, true); // Paper - nuke IOWorker // Paper - Attempt to recalculate regionfile header if it is corrupt // DivineMC - Implement Linear region
// Paper end - async chunk io
}
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 9248769e6d357f6eec68945fd7700e79b2942c41..4d9dd194d9754103579c15884f799f051402b6fb 100644
index 0761096829e2afc5f8dd88b9a693874fc2f1bb8b..d6345d440c790d0029238dd0e6885093f8a56f27 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
@@ -20,13 +20,15 @@ import java.nio.file.StandardCopyOption;
@@ -1090,11 +1090,12 @@ index 9248769e6d357f6eec68945fd7700e79b2942c41..4d9dd194d9754103579c15884f799f05
private static final Logger LOGGER = LogUtils.getLogger();
private static final int SECTOR_BYTES = 4096;
@@ -50,6 +52,16 @@ public class RegionFile implements AutoCloseable {
@@ -50,7 +52,17 @@ public class RegionFile implements AutoCloseable {
public final java.util.concurrent.locks.ReentrantLock fileLock = new java.util.concurrent.locks.ReentrantLock(); // Paper
public final Path regionFile; // Paper
+ // DivineMC start - Implement Linear region
- // Paper start - Attempt to recalculate regionfile header if it is corrupt
+ // DivineMC start - Implement Linear region // Paper - Attempt to recalculate regionfile header if it is corrupt
+ public Path getRegionFile() {
+ return this.regionFile;
+ }
@@ -1104,9 +1105,10 @@ index 9248769e6d357f6eec68945fd7700e79b2942c41..4d9dd194d9754103579c15884f799f05
+ }
+ // DivineMC end
+
// Paper start - try to recover from RegionFile header corruption
+ // Paper start - try to recover from RegionFile header corruption
private static long roundToSectors(long bytes) {
long sectors = bytes >>> 12; // 4096 = 2^12
long remainingBytes = bytes & 4095;
@@ -128,7 +140,7 @@ public class RegionFile implements AutoCloseable {
}
@@ -1140,7 +1142,7 @@ index 9248769e6d357f6eec68945fd7700e79b2942c41..4d9dd194d9754103579c15884f799f05
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 6eaeb2db0da59611501f2b1a63b5b48816a0ba48..0e61161d7d8d714bb7a7c3f68e018e867c6161a0 100644
index a25e7183da64f726773aa279707ae67941246b46..580ed1dd9b702ae7dd07454140fedccfbeedd397 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
@@ -1,5 +1,8 @@
@@ -1308,16 +1310,16 @@ index 6eaeb2db0da59611501f2b1a63b5b48816a0ba48..0e61161d7d8d714bb7a7c3f68e018e86
}
// Paper end
return regionfile1;
@@ -172,7 +218,7 @@ public class RegionFileStorage implements AutoCloseable {
@@ -156,7 +202,7 @@ public class RegionFileStorage implements AutoCloseable {
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.");
}
- private static CompoundTag readOversizedChunk(RegionFile regionfile, ChunkPos chunkCoordinate) throws IOException {
+ private static CompoundTag readOversizedChunk(AbstractRegionFile regionfile, ChunkPos chunkCoordinate) throws IOException { // DivineMC - Implement Linear region
synchronized (regionfile) {
try (DataInputStream datainputstream = regionfile.getChunkDataInputStream(chunkCoordinate)) {
CompoundTag oversizedData = regionfile.getOversizedData(chunkCoordinate.x, chunkCoordinate.z);
@@ -219,14 +265,15 @@ public class RegionFileStorage implements AutoCloseable {
@@ -191,14 +237,15 @@ public class RegionFileStorage implements AutoCloseable {
@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
@@ -1335,7 +1337,7 @@ index 6eaeb2db0da59611501f2b1a63b5b48816a0ba48..0e61161d7d8d714bb7a7c3f68e018e86
// We add the regionfile parameter to avoid the potential deadlock (on fileLock) if we went back to obtain a regionfile
// if we decide to re-read
// Paper end
@@ -236,7 +283,7 @@ public class RegionFileStorage implements AutoCloseable {
@@ -208,7 +255,7 @@ public class RegionFileStorage implements AutoCloseable {
// Paper start
if (regionfile.isOversized(pos.x, pos.z)) {
@@ -1344,7 +1346,7 @@ index 6eaeb2db0da59611501f2b1a63b5b48816a0ba48..0e61161d7d8d714bb7a7c3f68e018e86
return readOversizedChunk(regionfile, pos);
}
// Paper end
@@ -250,12 +297,12 @@ public class RegionFileStorage implements AutoCloseable {
@@ -222,12 +269,12 @@ public class RegionFileStorage implements AutoCloseable {
if (this.isChunkData) {
ChunkPos chunkPos = ChunkSerializer.getChunkCoordinate(nbttagcompound);
if (!chunkPos.equals(pos)) {
@@ -1360,7 +1362,7 @@ index 6eaeb2db0da59611501f2b1a63b5b48816a0ba48..0e61161d7d8d714bb7a7c3f68e018e86
return null;
}
}
@@ -289,13 +336,13 @@ public class RegionFileStorage implements AutoCloseable {
@@ -261,13 +308,13 @@ public class RegionFileStorage implements AutoCloseable {
return nbttagcompound;
} finally { // Paper start
@@ -1376,7 +1378,7 @@ index 6eaeb2db0da59611501f2b1a63b5b48816a0ba48..0e61161d7d8d714bb7a7c3f68e018e86
if (regionfile == null) {
return;
}
@@ -325,7 +372,7 @@ public class RegionFileStorage implements AutoCloseable {
@@ -297,7 +344,7 @@ public class RegionFileStorage implements AutoCloseable {
}
protected void write(ChunkPos pos, @Nullable CompoundTag nbt) throws IOException {
@@ -1385,7 +1387,7 @@ index 6eaeb2db0da59611501f2b1a63b5b48816a0ba48..0e61161d7d8d714bb7a7c3f68e018e86
if (nbt == null && regionfile == null) {
return;
}
@@ -375,7 +422,7 @@ public class RegionFileStorage implements AutoCloseable {
@@ -347,7 +394,7 @@ public class RegionFileStorage implements AutoCloseable {
}
// Paper end
} finally { // Paper start
@@ -1394,7 +1396,7 @@ index 6eaeb2db0da59611501f2b1a63b5b48816a0ba48..0e61161d7d8d714bb7a7c3f68e018e86
} // Paper end
}
@@ -384,7 +431,7 @@ public class RegionFileStorage implements AutoCloseable {
@@ -356,7 +403,7 @@ public class RegionFileStorage implements AutoCloseable {
ObjectIterator objectiterator = this.regionCache.values().iterator();
while (objectiterator.hasNext()) {
@@ -1403,7 +1405,7 @@ index 6eaeb2db0da59611501f2b1a63b5b48816a0ba48..0e61161d7d8d714bb7a7c3f68e018e86
try {
regionfile.close();
@@ -400,7 +447,7 @@ public class RegionFileStorage implements AutoCloseable {
@@ -372,7 +419,7 @@ public class RegionFileStorage implements AutoCloseable {
ObjectIterator objectiterator = this.regionCache.values().iterator();
while (objectiterator.hasNext()) {
@@ -1446,7 +1448,7 @@ index 4aac1979cf57300825a999c876fcf24d3170e68e..b81636c1aa5b39e1696fdf30a7e2b270
this.factory = factory;
this.fixerUpper = dataFixer;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index ae01fa8872c138afbd2d3f2b036392c3f47845c1..e586e451a6836f02e06352e5410d0bcc66b1a682 100644
index 45897c60bde16500a72efd9c926d815689af4b1c..a45410ca3aa0670e4dcd673285c0c3c7c28ddf50 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -5,7 +5,7 @@ import com.google.common.base.Predicates;