mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-20 18:07:43 +01:00
Updated Upstream (Paper)
Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@aabf676 Prevent unloading worlds with pending player logins
This commit is contained in:
@@ -286,7 +286,7 @@ index 7875606264dc7bc2c4a0e8dfacecf07427c1d5a1..5a5c5a366e1156e1233efc04d0c0a605
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
index b9d4878dd629886c4ef3e29ff1b729571d81d785..dbc32731718eed3aa749b811feebe2664bf142ed 100644
|
||||
index 9acfb1a0b15a304401ad3e5e8dfb869b15bf787a..01a6751f096eec3e7b2f854550fd812dabb52a90 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
@@ -1002,15 +1002,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
@@ -591,10 +591,10 @@ index 378cc1f9e19eb9b18037ab8af92f65897e15a405..de4b8001ff0ddb1603fcca2b6829bb55
|
||||
// Paper end - use set of chunks requiring updates, rather than iterating every single one loaded
|
||||
// Paper start - controlled flush for entity tracker packets
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
index 014862d564726b64989df37957ba2b6b7ae81973..625a3af718ab3b256c43547bd91621f8c70b3bbd 100644
|
||||
index fdc9de253ae6d20b4df71fd6e6c1bb98ec753abf..5a800731927ca20e95fbcd0e8b94999e52642a8e 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -649,7 +649,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -652,7 +652,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
this.updateSkyBrightness();
|
||||
this.tickTime();
|
||||
gameprofilerfiller.popPush("tickPending");
|
||||
@@ -603,7 +603,7 @@ index 014862d564726b64989df37957ba2b6b7ae81973..625a3af718ab3b256c43547bd91621f8
|
||||
if (!this.isDebug()) {
|
||||
j = this.getGameTime();
|
||||
gameprofilerfiller.push("blockTicks");
|
||||
@@ -658,20 +658,20 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -661,20 +661,20 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
this.fluidTicks.tick(j, 65536, this::tickFluid);
|
||||
gameprofilerfiller.pop();
|
||||
}
|
||||
@@ -631,7 +631,7 @@ index 014862d564726b64989df37957ba2b6b7ae81973..625a3af718ab3b256c43547bd91621f8
|
||||
this.handlingTick = false;
|
||||
gameprofilerfiller.pop();
|
||||
boolean flag = true || !this.players.isEmpty() || !this.getForcedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players
|
||||
@@ -682,7 +682,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -685,7 +685,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
|
||||
if (flag || this.emptyTime++ < 300) {
|
||||
gameprofilerfiller.push("entities");
|
||||
@@ -640,7 +640,7 @@ index 014862d564726b64989df37957ba2b6b7ae81973..625a3af718ab3b256c43547bd91621f8
|
||||
if (this.dragonFight != null) {
|
||||
gameprofilerfiller.push("dragonFight");
|
||||
this.dragonFight.tick();
|
||||
@@ -690,7 +690,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -693,7 +693,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
}
|
||||
|
||||
org.spigotmc.ActivationRange.activateEntities(this); // Spigot
|
||||
@@ -649,7 +649,7 @@ index 014862d564726b64989df37957ba2b6b7ae81973..625a3af718ab3b256c43547bd91621f8
|
||||
this.entityTickList.forEach((entity) -> {
|
||||
if (!entity.isRemoved()) {
|
||||
if (false && this.shouldDiscardEntity(entity)) { // CraftBukkit - We prevent spawning in general, so this butchering is not needed
|
||||
@@ -730,8 +730,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -733,8 +733,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -660,7 +660,7 @@ index 014862d564726b64989df37957ba2b6b7ae81973..625a3af718ab3b256c43547bd91621f8
|
||||
gameprofilerfiller.pop();
|
||||
this.tickBlockEntities();
|
||||
}
|
||||
@@ -893,7 +893,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -896,7 +896,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
|
||||
// Paper start - optimise random block ticking
|
||||
gameprofilerfiller.popPush("randomTick");
|
||||
@@ -669,7 +669,7 @@ index 014862d564726b64989df37957ba2b6b7ae81973..625a3af718ab3b256c43547bd91621f8
|
||||
if (randomTickSpeed > 0) {
|
||||
LevelChunkSection[] sections = chunk.getSections();
|
||||
int minSection = io.papermc.paper.util.WorldUtil.getMinSection(this);
|
||||
@@ -927,7 +927,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -930,7 +930,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
}
|
||||
}
|
||||
// Paper end - optimise random block ticking
|
||||
@@ -678,7 +678,7 @@ index 014862d564726b64989df37957ba2b6b7ae81973..625a3af718ab3b256c43547bd91621f8
|
||||
gameprofilerfiller.pop();
|
||||
}
|
||||
|
||||
@@ -1221,8 +1221,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -1224,8 +1224,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
// Spigot end
|
||||
// Paper start- timings
|
||||
final boolean isActive = org.spigotmc.ActivationRange.checkIfActive(entity);
|
||||
@@ -689,7 +689,7 @@ index 014862d564726b64989df37957ba2b6b7ae81973..625a3af718ab3b256c43547bd91621f8
|
||||
// Paper end - timings
|
||||
entity.setOldPosAndRot();
|
||||
ProfilerFiller gameprofilerfiller = this.getProfiler();
|
||||
@@ -1238,7 +1238,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -1241,7 +1241,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
entity.postTick(); // CraftBukkit
|
||||
} else { entity.inactiveTick(); } // Paper - EAR 2
|
||||
this.getProfiler().pop();
|
||||
@@ -698,7 +698,7 @@ index 014862d564726b64989df37957ba2b6b7ae81973..625a3af718ab3b256c43547bd91621f8
|
||||
Iterator iterator = entity.getPassengers().iterator();
|
||||
|
||||
while (iterator.hasNext()) {
|
||||
@@ -1261,8 +1261,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -1264,8 +1264,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
if (passenger instanceof Player || this.entityTickList.contains(passenger)) {
|
||||
// Paper - EAR 2
|
||||
final boolean isActive = org.spigotmc.ActivationRange.checkIfActive(passenger);
|
||||
@@ -709,7 +709,7 @@ index 014862d564726b64989df37957ba2b6b7ae81973..625a3af718ab3b256c43547bd91621f8
|
||||
// Paper end
|
||||
passenger.setOldPosAndRot();
|
||||
++passenger.tickCount;
|
||||
@@ -1292,7 +1292,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -1295,7 +1295,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
this.tickPassenger(passenger, entity2);
|
||||
}
|
||||
|
||||
@@ -718,7 +718,7 @@ index 014862d564726b64989df37957ba2b6b7ae81973..625a3af718ab3b256c43547bd91621f8
|
||||
}
|
||||
} else {
|
||||
passenger.stopRiding();
|
||||
@@ -1312,14 +1312,14 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -1315,14 +1315,14 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(getWorld()));
|
||||
}
|
||||
|
||||
@@ -736,7 +736,7 @@ index 014862d564726b64989df37957ba2b6b7ae81973..625a3af718ab3b256c43547bd91621f8
|
||||
|
||||
// Copied from save()
|
||||
// CraftBukkit start - moved from MinecraftServer.saveChunks
|
||||
@@ -1331,7 +1331,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -1334,7 +1334,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
this.convertable.saveDataTag(this.server.registryHolder, this.serverLevelData, this.server.getPlayerList().getSingleplayerData());
|
||||
}
|
||||
// CraftBukkit end
|
||||
@@ -745,7 +745,7 @@ index 014862d564726b64989df37957ba2b6b7ae81973..625a3af718ab3b256c43547bd91621f8
|
||||
}
|
||||
// Paper end
|
||||
|
||||
@@ -1340,7 +1340,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -1343,7 +1343,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
|
||||
if (!savingDisabled) {
|
||||
org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(getWorld())); // CraftBukkit
|
||||
@@ -754,7 +754,7 @@ index 014862d564726b64989df37957ba2b6b7ae81973..625a3af718ab3b256c43547bd91621f8
|
||||
if (progressListener != null) {
|
||||
progressListener.progressStartNoAbort(Component.translatable("menu.savingLevel"));
|
||||
}
|
||||
@@ -1350,10 +1350,10 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -1353,10 +1353,10 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
progressListener.progressStage(Component.translatable("menu.savingChunks"));
|
||||
}
|
||||
|
||||
@@ -800,10 +800,10 @@ index cf24035eb1d145c2118d3ee57527f7cf9d2246fc..9dbd5c2e7d0c9bb26556ce32ced4c43a
|
||||
}
|
||||
// CraftBukkit end
|
||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
index ee47c75137352c326a07c6e2b7eb3a35aee5f309..126afed7461d43906dbc84c798df180380288bc6 100644
|
||||
index a6fe2e75b3c21a420432f33c9f5666fc558a06d1..cc09274fb3c3068ecd56e4c3c280b4fc876e628f 100644
|
||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
@@ -1281,7 +1281,7 @@ public abstract class PlayerList {
|
||||
@@ -1283,7 +1283,7 @@ public abstract class PlayerList {
|
||||
|
||||
public void saveAll(int interval) {
|
||||
net.minecraft.server.MCUtil.ensureMain("Save Players" , () -> { // Paper - Ensure main
|
||||
@@ -812,7 +812,7 @@ index ee47c75137352c326a07c6e2b7eb3a35aee5f309..126afed7461d43906dbc84c798df1803
|
||||
int numSaved = 0;
|
||||
long now = MinecraftServer.currentTick;
|
||||
for (int i = 0; i < this.players.size(); ++i) {
|
||||
@@ -1292,7 +1292,7 @@ public abstract class PlayerList {
|
||||
@@ -1294,7 +1294,7 @@ public abstract class PlayerList {
|
||||
}
|
||||
// Paper end
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user