9
0
mirror of https://github.com/Winds-Studio/Leaf.git synced 2025-12-22 16:39:22 +00:00

Some server patches work

This commit is contained in:
Dreeam
2024-06-21 18:11:26 +08:00
parent 6004e01adf
commit 11cbe4af4c
21 changed files with 1837 additions and 2056 deletions

View File

@@ -1,6 +1,6 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Github Actions <no-reply@github.com> From: Github Actions <no-reply@github.com>
Date: Sun, 21 Jan 2024 08:34:10 -0500 Date: Fri, 21 Jun 2024 03:34:00 +0000
Subject: [PATCH] Purpur generated-api Changes Subject: [PATCH] Purpur generated-api Changes
Original license: MIT Original license: MIT

View File

@@ -120,23 +120,37 @@ index 2596e0ee4df5b96f181e28a742ef345981fc97e3..023016de1732f0b299428ec0544128cc
@Override @Override
diff --git a/src/main/java/net/minecraft/CrashReport.java b/src/main/java/net/minecraft/CrashReport.java diff --git a/src/main/java/net/minecraft/CrashReport.java b/src/main/java/net/minecraft/CrashReport.java
index b24265573fdef5d9a964bcd76146f34542c420cf..ae219897f0085b758dcc1b0ad4893336336e6a49 100644 index b24265573fdef5d9a964bcd76146f34542c420cf..aa25fd3ee043003f359b2c67a6d0f6700a0ef893 100644
--- a/src/main/java/net/minecraft/CrashReport.java --- a/src/main/java/net/minecraft/CrashReport.java
+++ b/src/main/java/net/minecraft/CrashReport.java +++ b/src/main/java/net/minecraft/CrashReport.java
@@ -125,6 +125,11 @@ public class CrashReport { @@ -32,6 +32,7 @@ public class CrashReport {
StringBuilder stringbuilder = new StringBuilder(); private boolean trackingStackTrace = true;
private StackTraceElement[] uncategorizedStackTrace = new StackTraceElement[0];
private final SystemReport systemReport = new SystemReport();
+ private List<String> extraInfo = List.of("", "DO NOT REPORT THIS TO PAPER OR GALE! REPORT TO LEAF INSTEAD!", ""); // Leaf - Purpur
type.appendHeader(stringbuilder, extraInfo); public CrashReport(String message, Throwable cause) {
+ // Leaf start - Purpur io.papermc.paper.util.StacktraceDeobfuscator.INSTANCE.deobfuscateThrowable(cause); // Paper
+ stringbuilder.append("// "); @@ -144,7 +145,7 @@ public class CrashReport {
+ stringbuilder.append("// DO NOT REPORT THIS TO PAPER OR GALE! REPORT TO LEAF INSTEAD!"); }
+ // Leaf end - Purpur
+ stringbuilder.append("// "); public String getFriendlyReport(ReportType type) {
stringbuilder.append("Time: "); - return this.getFriendlyReport(type, List.of());
stringbuilder.append(CrashReport.DATE_TIME_FORMATTER.format(ZonedDateTime.now())); + return this.getFriendlyReport(type, extraInfo); // Leaf - Purpur
stringbuilder.append("\n"); }
@Nullable
@@ -191,7 +192,7 @@ public class CrashReport {
}
public boolean saveToFile(Path path, ReportType type) {
- return this.saveToFile(path, type, List.of());
+ return this.saveToFile(path, type, extraInfo); // Leaf - Purpur
}
public SystemReport getSystemReport() {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 25d1b4512f81802c658a5e0a03c8212ad69ac04e..f583b65fcb3f93e701bf1af0da9a1f975a216750 100644 index 25d1b4512f81802c658a5e0a03c8212ad69ac04e..44a9ed9f06818f8bcf4caf673c4e6b02f6ed924e 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -956,7 +956,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -956,7 +956,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -144,10 +158,36 @@ index 25d1b4512f81802c658a5e0a03c8212ad69ac04e..f583b65fcb3f93e701bf1af0da9a1f97
but we do want people to report thread issues to Gale. but we do want people to report thread issues to Gale.
*/ */
- MinecraftServer.LOGGER.info("Stopping main thread (Ignore any thread death message you see! - DO NOT REPORT THREAD DEATH TO PAPER - If you think this is a Gale bug, please report it at https://github.com/GaleMC/Gale/issues)"); - MinecraftServer.LOGGER.info("Stopping main thread (Ignore any thread death message you see! - DO NOT REPORT THREAD DEATH TO PAPER - If you think this is a Gale bug, please report it at https://github.com/GaleMC/Gale/issues)");
+ MinecraftServer.LOGGER.info("Stopping main thread (Ignore any thread death message you see! - DO NOT REPORT THREAD DEATH TO PAPER - If you think this is a Leaf bug, please report it at https://github.com/Winds-Studio/Leaf/issues )"); // Leaf + MinecraftServer.LOGGER.info("Stopping main thread (Ignore any thread death message you see! - DO NOT REPORT THREAD DEATH TO PAPER - If you think this is a Leaf bug, please report it at https://github.com/Winds-Studio/Leaf/issues)"); // Leaf
// Gale end - branding changes // Gale end - branding changes
while (this.getRunningThread().isAlive()) { while (this.getRunningThread().isAlive()) {
this.getRunningThread().stop(); this.getRunningThread().stop();
diff --git a/src/main/java/net/minecraft/world/damagesource/DamageSource.java b/src/main/java/net/minecraft/world/damagesource/DamageSource.java
index 4d037e899e0b5548be406ad55acd2062603b7da1..379b36944ddb149e2f48221aa39ad090bbd2faeb 100644
--- a/src/main/java/net/minecraft/world/damagesource/DamageSource.java
+++ b/src/main/java/net/minecraft/world/damagesource/DamageSource.java
@@ -67,7 +67,7 @@ public class DamageSource {
public DamageSource customEventDamager(Entity entity) {
if (this.directEntity != null) {
- throw new IllegalStateException("Cannot set custom event damager when direct entity is already set (report a bug to Paper, if you think this is a Gale bug, please report it at https://github.com/GaleMC/Gale/issues)"); // Gale - branding changes
+ throw new IllegalStateException("Cannot set custom event damager when direct entity is already set (report a bug to Paper, if you think this is a Leaf bug, please report it at https://github.com/Winds-Studio/Leaf/issues)"); // Gale - branding changes // Leaf
}
DamageSource damageSource = this.cloneInstance();
damageSource.customEventDamager = entity;
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 b797ca4b68d110bbf64eac4ae422a7bc8bce145a..e8f0f0e2b3afd305afb6cf4d41f4fc31bf2bc68d 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
@@ -151,7 +151,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
We do not want people to report thread issues to Paper,
but we do want people to report thread issues to Gale.
*/
- 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 OR GALE - You may ask for help on Discord, but do not file an issue. These error messages can not be removed. - If you think this is a Gale bug, please report it at https://github.com/GaleMC/Gale/issues)");
+ 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 OR LEAF - You may ask for help on Discord, but do not file an issue. These error messages can not be removed. - If you think this is a Leaf bug, please report it at https://github.com/Winds-Studio/Leaf/issues)"); // Leaf
// Gale end - branding changes
}
diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
index 79192e3a0f27d48f35c0378b58e587212ed2c305..006adb2adb27c497ede69f87e78bc3e34499cbf8 100644 index 79192e3a0f27d48f35c0378b58e587212ed2c305..006adb2adb27c497ede69f87e78bc3e34499cbf8 100644
--- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java --- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java

View File

@@ -27,10 +27,10 @@ index e94224ed280247ee69dfdff8dc960f2b8729be33..5b9725a9a81c0850dc2809c150529e5f
for (Component component : formatProviders(spigotPlugins, sender)) { // Purpur for (Component component : formatProviders(spigotPlugins, sender)) { // Purpur
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 7bba8f957d7b4cbe80000bdd39793ce600201496..1f166b48af314ee85239ae39358a47fb0e6d423c 100644 index b5fd90764d954acd0381cf42c38d5015c200b886..6a652ed876128addfef881903272fc9a891b13b6 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -293,7 +293,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -300,7 +300,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public static final int TICK_TIME = 1000000000 / MinecraftServer.TPS; public static final int TICK_TIME = 1000000000 / MinecraftServer.TPS;
private static final int SAMPLE_INTERVAL = 20; // Paper - improve server tick loop private static final int SAMPLE_INTERVAL = 20; // Paper - improve server tick loop
@Deprecated(forRemoval = true) // Paper @Deprecated(forRemoval = true) // Paper
@@ -39,16 +39,16 @@ index 7bba8f957d7b4cbe80000bdd39793ce600201496..1f166b48af314ee85239ae39358a47fb
// Spigot end // Spigot end
public final io.papermc.paper.configuration.PaperConfigurations paperConfigurations; // Paper - add paper configuration files public final io.papermc.paper.configuration.PaperConfigurations paperConfigurations; // Paper - add paper configuration files
public final GaleConfigurations galeConfigurations; // Gale - Gale configuration public final GaleConfigurations galeConfigurations; // Gale - Gale configuration
@@ -306,7 +306,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -312,6 +312,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public volatile Thread shutdownThread; // Paper
public volatile boolean abnormalExit = false; // Paper public volatile boolean abnormalExit = false; // Paper
public static final long SERVER_INIT = System.nanoTime(); // Paper - Lag compensation
- public gg.pufferfish.pufferfish.util.AsyncExecutor mobSpawnExecutor = new gg.pufferfish.pufferfish.util.AsyncExecutor("MobSpawning"); // Pufferfish - optimize mob spawning
+ public gg.pufferfish.pufferfish.util.AsyncExecutor mobSpawnExecutor = new gg.pufferfish.pufferfish.util.AsyncExecutor("pufferfish-async-mob-spawning"); // Pufferfish - optimize mob spawning // Leaf - Unify thread name
+ //public gg.pufferfish.pufferfish.util.AsyncExecutor mobSpawnExecutor = new gg.pufferfish.pufferfish.util.AsyncExecutor("pufferfish-async-mob-spawning"); // Pufferfish - optimize mob spawning // Leaf - Unify thread name // Dreeam TODO
+
public static <S extends MinecraftServer> S spin(Function<Thread, S> serverFactory) { public static <S extends MinecraftServer> S spin(Function<Thread, S> serverFactory) {
AtomicReference<S> atomicreference = new AtomicReference(); AtomicReference<S> atomicreference = new AtomicReference();
@@ -974,6 +974,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa Thread thread = new io.papermc.paper.util.TickThread(() -> { // Paper - rewrite chunk system
@@ -982,6 +984,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
LOGGER.error("[UPnP] Failed to close port {}", this.getPort()); LOGGER.error("[UPnP] Failed to close port {}", this.getPort());
} }
} }
@@ -56,7 +56,7 @@ index 7bba8f957d7b4cbe80000bdd39793ce600201496..1f166b48af314ee85239ae39358a47fb
// CraftBukkit start // CraftBukkit start
if (this.server != null) { if (this.server != null) {
this.server.disablePlugins(); this.server.disablePlugins();
@@ -1228,9 +1229,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1241,9 +1244,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
tps15.add(currentTps, diff); tps15.add(currentTps, diff);
// Backwards compat with bad plugins // Backwards compat with bad plugins
@@ -86,11 +86,11 @@ index 096c89bd01cec2abd151bf6fffc4847d1bcd548f..cd0a8a6a1be75cab8bbb8ee3ac17bb73
this.values[this.vp++ & 0xFF] = (int)(l * 100L / Runtime.getRuntime().maxMemory()); this.values[this.vp++ & 0xFF] = (int)(l * 100L / Runtime.getRuntime().maxMemory());
this.repaint(); this.repaint();
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
index 4242f2c048a4d1045d4d70680767d943dadf1698..360e1df4574c8257ff52b4a38a26314c0ec1a05e 100644 index 8367edebdfa2f022bcda1ec2b0e7881285d8bb9c..e1d2c90295580e130c7f317fa1164c395caea85f 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
@@ -540,7 +540,7 @@ public class ServerChunkCache extends ChunkSource { @@ -458,7 +458,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
//this.lastSpawnState = spawnercreature_d; // Pufferfish - this is managed asynchronously this.lastSpawnState = spawnercreature_d;
// Gale start - MultiPaper - skip unnecessary mob spawning computations // Gale start - MultiPaper - skip unnecessary mob spawning computations
} else { } else {
- spawnercreature_d = null; - spawnercreature_d = null;
@@ -99,10 +99,10 @@ index 4242f2c048a4d1045d4d70680767d943dadf1698..360e1df4574c8257ff52b4a38a26314c
// Gale end - MultiPaper - skip unnecessary mob spawning computations // Gale end - MultiPaper - skip unnecessary mob spawning computations
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index b9d9ef327753272a537bebccc54d9fbc16ed3bdc..f8d11853af6bfc08d1bd8a0f537fd5760bfc04be 100644 index 188030bc6f8d243c2b834a18fa154d50803743e8..528e6e37b5552fe8179b472ec5fbbb90fa1b7b5b 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java --- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -843,7 +843,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -657,7 +657,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
int i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE); int i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE);
long j; long j;
@@ -112,23 +112,23 @@ index b9d9ef327753272a537bebccc54d9fbc16ed3bdc..f8d11853af6bfc08d1bd8a0f537fd576
j = this.levelData.getDayTime() + 24000L; j = this.levelData.getDayTime() + 24000L;
TimeSkipEvent event = new TimeSkipEvent(this.getWorld(), TimeSkipEvent.SkipReason.NIGHT_SKIP, (j - j % 24000L) - this.getDayTime()); TimeSkipEvent event = new TimeSkipEvent(this.getWorld(), TimeSkipEvent.SkipReason.NIGHT_SKIP, (j - j % 24000L) - this.getDayTime());
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 2afa65c3c8ee8e502fa473bf0b485a02b32989f7..0fafe65e9f0ee85469d80a1033078b20a7abbfcf 100644 index d05aa2a4a88d6c160abf1f10eeb8f1485070a9d4..43b13836406ac6a7f26317f029225e6b2c9f2ea8 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -567,13 +567,29 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -542,13 +542,29 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
} // Purpur end
// Purpur start - copied from Mob // Purpur start - copied from Mob - API for any mob to burn daylight
+ // Gale start - JettPack - optimize sun burn tick - cache eye blockpos + // Gale start - JettPack - optimize sun burn tick - cache eye blockpos - copied from Mob#isSunBurnTick
+ private BlockPos cached_eye_blockpos; + private BlockPos cached_eye_blockpos;
+ private int cached_position_hashcode; + private int cached_position_hashcode;
+ // Gale end - JettPack - optimize sun burn tick - cache eye blockpos + // Gale end - JettPack - optimize sun burn tick - cache eye blockpos - copied from Mob#isSunBurnTick
+ +
public boolean isSunBurnTick() { public boolean isSunBurnTick() {
if (this.level().isDay() && !this.level().isClientSide) { if (this.level().isDay() && !this.level().isClientSide) {
- float f = this.getLightLevelDependentMagicValue(); - float f = this.getLightLevelDependentMagicValue();
- BlockPos blockposition = BlockPos.containing(this.getX(), this.getEyeY(), this.getZ()); - BlockPos blockposition = BlockPos.containing(this.getX(), this.getEyeY(), this.getZ());
+ // Gale start - JettPack - optimize sun burn tick - optimizations and cache eye blockpos + // Gale start - JettPack - optimize sun burn tick - optimizations and cache eye blockpos - copied from Mob#isSunBurnTick
+ int positionHashCode = this.position.hashCode(); + int positionHashCode = this.position.hashCode();
+ if (this.cached_position_hashcode != positionHashCode) { + if (this.cached_position_hashcode != positionHashCode) {
+ this.cached_eye_blockpos = BlockPos.containing(this.getX(), this.getEyeY(), this.getZ()); + this.cached_eye_blockpos = BlockPos.containing(this.getX(), this.getEyeY(), this.getZ());
@@ -140,15 +140,15 @@ index 2afa65c3c8ee8e502fa473bf0b485a02b32989f7..0fafe65e9f0ee85469d80a1033078b20
+ // Check brightness first + // Check brightness first
+ if (f <= 0.5F) return false; + if (f <= 0.5F) return false;
+ if (this.random.nextFloat() * 30.0F >= (f - 0.4F) * 2.0F) return false; + if (this.random.nextFloat() * 30.0F >= (f - 0.4F) * 2.0F) return false;
+ // Gale end - JettPack - optimize sun burn tick - optimizations and cache eye blockpos + // Gale end - JettPack - optimize sun burn tick - optimizations and cache eye blockpos - copied from Mob#isSunBurnTick
boolean flag = this.isInWaterRainOrBubble() || this.isInPowderSnow || this.wasInPowderSnow; boolean flag = this.isInWaterRainOrBubble() || this.isInPowderSnow || this.wasInPowderSnow;
- if (f > 0.5F && this.random.nextFloat() * 30.0F < (f - 0.4F) * 2.0F && !flag && this.level().canSeeSky(blockposition)) { - if (f > 0.5F && this.random.nextFloat() * 30.0F < (f - 0.4F) * 2.0F && !flag && this.level().canSeeSky(blockposition)) {
+ if (!flag && this.level().canSeeSky(this.cached_eye_blockpos)) { // Gale - JettPack - optimize sun burn tick - optimizations and cache eye blockpos + if (!flag && this.level().canSeeSky(this.cached_eye_blockpos)) { // Gale - JettPack - optimize sun burn tick - optimizations and cache eye blockpos - copied from Mob#isSunBurnTick
return true; return true;
} }
} }
@@ -890,7 +906,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -853,7 +869,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
public void tick() { public void tick() {
// Pufferfish start - entity TTL // Pufferfish start - entity TTL
if (type != EntityType.PLAYER && type.ttl >= 0 && this.tickCount >= type.ttl) { if (type != EntityType.PLAYER && type.ttl >= 0 && this.tickCount >= type.ttl) {
@@ -158,10 +158,10 @@ index 2afa65c3c8ee8e502fa473bf0b485a02b32989f7..0fafe65e9f0ee85469d80a1033078b20
} }
// Pufferfish end - entity TTL // Pufferfish end - entity TTL
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 1b092cdccba089684301266a90fe715a55a6f4f8..fa773a29ec77f277546e418aab9b06ccd9567a8f 100644 index a0609bce7035188b48a0f84ebf79ebc5682c94d8..a9c2e9d9b3bb63e8cbbe66994c960aca7303066b 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1068,17 +1068,19 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -1043,17 +1043,19 @@ public abstract class LivingEntity extends Entity implements Attackable {
if (entity != null) { if (entity != null) {
EntityType<?> entitytypes = entity.getType(); EntityType<?> entitytypes = entity.getType();
@@ -186,10 +186,10 @@ index 1b092cdccba089684301266a90fe715a55a6f4f8..fa773a29ec77f277546e418aab9b06cc
// Purpur start // Purpur start
if (entity instanceof LivingEntity entityliving) { if (entity instanceof LivingEntity entityliving) {
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 42ba2c7b037aaea4ae16dec8bc1413a15fbb8317..2e030baabb57de26dcc7340430f0ae0a3a5c1f9f 100644 index 2b4e65eee6fd2ce620238beca649a7f39ca3b2f1..4e5dbee1f43b4114a07adab3c3ddc2b9be53ca9c 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java --- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -746,7 +746,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti @@ -707,7 +707,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
@Override @Override
public void aiStep() { public void aiStep() {
super.aiStep(); super.aiStep();
@@ -198,9 +198,9 @@ index 42ba2c7b037aaea4ae16dec8bc1413a15fbb8317..2e030baabb57de26dcc7340430f0ae0a
Vec3i baseblockposition = this.getPickupReach(); Vec3i baseblockposition = this.getPickupReach();
List<ItemEntity> list = this.level().getEntitiesOfClass(ItemEntity.class, this.getBoundingBox().inflate((double) baseblockposition.getX(), (double) baseblockposition.getY(), (double) baseblockposition.getZ())); List<ItemEntity> list = this.level().getEntitiesOfClass(ItemEntity.class, this.getBoundingBox().inflate((double) baseblockposition.getX(), (double) baseblockposition.getY(), (double) baseblockposition.getZ()));
Iterator iterator = list.iterator(); Iterator iterator = list.iterator();
@@ -1859,11 +1859,6 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti @@ -1760,11 +1760,6 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
return flag;
} protected void playAttackSound() {}
- // Gale start - JettPack - optimize sun burn tick - cache eye blockpos - // Gale start - JettPack - optimize sun burn tick - cache eye blockpos
- private BlockPos cached_eye_blockpos; - private BlockPos cached_eye_blockpos;
@@ -208,50 +208,50 @@ index 42ba2c7b037aaea4ae16dec8bc1413a15fbb8317..2e030baabb57de26dcc7340430f0ae0a
- // Gale end - JettPack - optimize sun burn tick - cache eye blockpos - // Gale end - JettPack - optimize sun burn tick - cache eye blockpos
- -
public boolean isSunBurnTick() { public boolean isSunBurnTick() {
// Purpur - implemented in Entity - API for any mob to burn daylight
return super.isSunBurnTick(); return super.isSunBurnTick();
}
diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/TradeWithVillager.java b/src/main/java/net/minecraft/world/entity/ai/behavior/TradeWithVillager.java diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/TradeWithVillager.java b/src/main/java/net/minecraft/world/entity/ai/behavior/TradeWithVillager.java
index 7db823e9edd70808c5629f0a7efd84fe40f42dd9..833858eacaf5ba788cb9f08a939379f0ff04b2cb 100644 index b1544e028d5a9b84b944e1fb5a12bb163067fb54..5bbbfc414762c4c3b867bba099f06c76131f6984 100644
--- a/src/main/java/net/minecraft/world/entity/ai/behavior/TradeWithVillager.java --- a/src/main/java/net/minecraft/world/entity/ai/behavior/TradeWithVillager.java
+++ b/src/main/java/net/minecraft/world/entity/ai/behavior/TradeWithVillager.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/TradeWithVillager.java
@@ -20,6 +20,7 @@ import org.jetbrains.annotations.Nullable; @@ -18,6 +18,7 @@ import net.minecraft.world.item.Items;
public class TradeWithVillager extends Behavior<Villager> {
// Gale start - optimize villager data storage
private static final Item[] WHEAT_SINGLETON_ARRAY = {Items.WHEAT};
+ private static final Item[] NETHER_WART_SINGLETON_ARRAY = {Items.NETHER_WART}; // Leaf - sync with Gale's Optimize-villager-data-storage.patch
private @NotNull Item @Nullable [] trades = null;
// Gale end - optimize villager data storage
@@ -65,7 +66,7 @@ public class TradeWithVillager extends Behavior<Villager> { public class TradeWithVillager extends Behavior<Villager> {
private Set<Item> trades = ImmutableSet.of();
+ //private static final Item[] NETHER_WART_SINGLETON_ARRAY = {Items.NETHER_WART}; // Leaf - sync with Gale's Optimize-villager-data-storage.patch // TODO
public TradeWithVillager() {
super(
@@ -61,7 +62,8 @@ public class TradeWithVillager extends Behavior<Villager> {
// Purpur start // Purpur start
if (world.purpurConfig.villagerClericsFarmWarts && world.purpurConfig.villagerClericFarmersThrowWarts && entity.getVillagerData().getProfession() == VillagerProfession.CLERIC && entity.getInventory().countItem(Items.NETHER_WART) > Items.NETHER_WART.getDefaultMaxStackSize() / 2) { if (world.purpurConfig.villagerClericsFarmWarts && world.purpurConfig.villagerClericFarmersThrowWarts && entity.getVillagerData().getProfession() == VillagerProfession.CLERIC && entity.getInventory().countItem(Items.NETHER_WART) > Items.NETHER_WART.getDefaultMaxStackSize() / 2) {
- throwHalfStack(entity, ImmutableSet.of(Items.NETHER_WART), villager); - throwHalfStack(entity, ImmutableSet.of(Items.NETHER_WART), villager);
+ throwHalfStack(entity, NETHER_WART_SINGLETON_ARRAY, villager); // Leaf - sync with Gale's Optimize-villager-data-storage.patch + throwHalfStack(entity, ImmutableSet.of(Items.NETHER_WART), villager); // TODO
+ //throwHalfStack(entity, NETHER_WART_SINGLETON_ARRAY, villager); // Leaf - sync with Gale's Optimize-villager-data-storage.patch // TODO
} }
// Purpur end // Purpur end
diff --git a/src/main/java/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java b/src/main/java/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java diff --git a/src/main/java/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java b/src/main/java/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java
index 9419f230910d0338fc4ac6e2e7b749ee7d5ee362..2fe25397526c77c3b6b5e96d71d3681c6e26a54e 100644 index d548d1b2686667d809f363cd0ae4444bc3918bf2..c3519eb6b28d180c9a5bf673037f1c4324ba5685 100644
--- a/src/main/java/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java --- a/src/main/java/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java
+++ b/src/main/java/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java +++ b/src/main/java/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java
@@ -24,19 +24,15 @@ public class SecondaryPoiSensor extends Sensor<Villager> { @@ -22,19 +22,15 @@ public class SecondaryPoiSensor extends Sensor<Villager> {
@Override @Override
protected void doTick(ServerLevel world, Villager entity) { protected void doTick(ServerLevel world, Villager entity) {
- // Gale start - Lithium - skip secondary POI sensor if absent + // Purpur start - make sure clerics don't wander to soul sand when the option is off
- var secondaryPoi = entity.getVillagerData().getProfession().secondaryPoi(); // Gale start - Lithium - skip secondary POI sensor if absent
- if (secondaryPoi == null) { // Gale - optimize villager data storage var secondaryPoi = entity.getVillagerData().getProfession().secondaryPoi();
- if (secondaryPoi.isEmpty()) {
- entity.getBrain().eraseMemory(MemoryModuleType.SECONDARY_JOB_SITE); - entity.getBrain().eraseMemory(MemoryModuleType.SECONDARY_JOB_SITE);
- return; - return;
- } - }
- // Gale end - Lithium - skip secondary POI sensor if absent - // Gale end - Lithium - skip secondary POI sensor if absent
// Purpur start - make sure clerics don't wander to soul sand when the option is off - // Purpur start - make sure clerics don't wander to soul sand when the option is off
Brain<?> brain = entity.getBrain(); Brain<?> brain = entity.getBrain();
- if (!world.purpurConfig.villagerClericsFarmWarts && entity.getVillagerData().getProfession() == net.minecraft.world.entity.npc.VillagerProfession.CLERIC) { - if (!world.purpurConfig.villagerClericsFarmWarts && entity.getVillagerData().getProfession() == net.minecraft.world.entity.npc.VillagerProfession.CLERIC) {
+ // Gale start - Lithium - skip secondary POI sensor if absent + if (secondaryPoi.isEmpty() || (!world.purpurConfig.villagerClericsFarmWarts && entity.getVillagerData().getProfession() == net.minecraft.world.entity.npc.VillagerProfession.CLERIC)) {
+ var secondaryPoi = entity.getVillagerData().getProfession().secondaryPoi();
+ if (secondaryPoi == null || (!world.purpurConfig.villagerClericsFarmWarts && entity.getVillagerData().getProfession() == net.minecraft.world.entity.npc.VillagerProfession.CLERIC)) { // Gale - optimize villager data storage
brain.eraseMemory(MemoryModuleType.SECONDARY_JOB_SITE); brain.eraseMemory(MemoryModuleType.SECONDARY_JOB_SITE);
return; return;
} }
@@ -260,10 +260,10 @@ index 9419f230910d0338fc4ac6e2e7b749ee7d5ee362..2fe25397526c77c3b6b5e96d71d3681c
ResourceKey<Level> resourceKey = world.dimension(); ResourceKey<Level> resourceKey = world.dimension();
BlockPos blockPos = entity.blockPosition(); BlockPos blockPos = entity.blockPosition();
diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
index 92521cbedcf89a855f10a3401933acaf84bc3f98..0bd72f76a65b6248f4e700877b2bda702f9590df 100644 index ad1ec2578fa428baa6b172c44b6c17e52daa5792..e2ac7e911eb2f46479a9666135894acad0649103 100644
--- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java --- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
+++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
@@ -680,7 +680,7 @@ public class ArmorStand extends LivingEntity { @@ -687,7 +687,7 @@ public class ArmorStand extends LivingEntity {
@Override @Override
public void tick() { public void tick() {
@@ -273,7 +273,7 @@ index 92521cbedcf89a855f10a3401933acaf84bc3f98..0bd72f76a65b6248f4e700877b2bda70
if (!this.canTick) { if (!this.canTick) {
if (this.noTickPoseDirty) { if (this.noTickPoseDirty) {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Blaze.java b/src/main/java/net/minecraft/world/entity/monster/Blaze.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Blaze.java b/src/main/java/net/minecraft/world/entity/monster/Blaze.java
index 27db17e19dd95e99f7bd67747eba3c3072b48ed5..4c87fa47a97a75a270a0f1332ee6aea69f9cf9c5 100644 index 1e1824eb80696452951cdbbdacad952ae0a7482b..b38110d4f01cae6746ccd38b5ae047cff8763d65 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Blaze.java --- a/src/main/java/net/minecraft/world/entity/monster/Blaze.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Blaze.java +++ b/src/main/java/net/minecraft/world/entity/monster/Blaze.java
@@ -72,7 +72,6 @@ public class Blaze extends Monster { @@ -72,7 +72,6 @@ public class Blaze extends Monster {
@@ -293,7 +293,7 @@ index 27db17e19dd95e99f7bd67747eba3c3072b48ed5..4c87fa47a97a75a270a0f1332ee6aea6
@Override @Override
protected void registerGoals() { protected void registerGoals() {
diff --git a/src/main/java/net/minecraft/world/entity/npc/VillagerProfession.java b/src/main/java/net/minecraft/world/entity/npc/VillagerProfession.java diff --git a/src/main/java/net/minecraft/world/entity/npc/VillagerProfession.java b/src/main/java/net/minecraft/world/entity/npc/VillagerProfession.java
index 8f36f113e8eb3236ce53ad9cce320c3d6253d248..ebe79d9ad2934b53085c8a720fdfca0a6eda05ca 100644 index 3ca83269311cbc18c9ef3ce62cff6a2d4dc0a683..a636ab87d21c67b152b40b77e62fa8043ca4211e 100644
--- a/src/main/java/net/minecraft/world/entity/npc/VillagerProfession.java --- a/src/main/java/net/minecraft/world/entity/npc/VillagerProfession.java
+++ b/src/main/java/net/minecraft/world/entity/npc/VillagerProfession.java +++ b/src/main/java/net/minecraft/world/entity/npc/VillagerProfession.java
@@ -31,7 +31,7 @@ public record VillagerProfession( @@ -31,7 +31,7 @@ public record VillagerProfession(
@@ -306,10 +306,10 @@ index 8f36f113e8eb3236ce53ad9cce320c3d6253d248..ebe79d9ad2934b53085c8a720fdfca0a
"farmer", "farmer",
PoiTypes.FARMER, PoiTypes.FARMER,
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
index 330d6badfbd096e4aec873dcb419df7975cb60a3..abb950417bf5db30f37e50605e897150bba67352 100644 index 4275eb588114522d337f39c6f3503cd9d4be92e9..7a9757689e7e32e8e07802aad73af2bc7b840b0a 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java --- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java +++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
@@ -71,7 +71,7 @@ public abstract class Projectile extends Entity implements TraceableEntity { @@ -77,7 +77,7 @@ public abstract class Projectile extends Entity implements TraceableEntity {
int maxChunkLoadsPerProjectile = maxProjectileChunkLoadsConfig.perProjectile.max; int maxChunkLoadsPerProjectile = maxProjectileChunkLoadsConfig.perProjectile.max;
if (maxChunkLoadsPerProjectile >= 0 && this.chunksLoadedByProjectile >= maxChunkLoadsPerProjectile) { if (maxChunkLoadsPerProjectile >= 0 && this.chunksLoadedByProjectile >= maxChunkLoadsPerProjectile) {
if (maxProjectileChunkLoadsConfig.perProjectile.removeFromWorldAfterReachLimit) { if (maxProjectileChunkLoadsConfig.perProjectile.removeFromWorldAfterReachLimit) {
@@ -319,7 +319,7 @@ index 330d6badfbd096e4aec873dcb419df7975cb60a3..abb950417bf5db30f37e50605e897150
this.setDeltaMovement(0, this.getDeltaMovement().y, 0); this.setDeltaMovement(0, this.getDeltaMovement().y, 0);
} }
diff --git a/src/main/java/org/galemc/gale/version/AbstractPaperVersionFetcher.java b/src/main/java/org/galemc/gale/version/AbstractPaperVersionFetcher.java diff --git a/src/main/java/org/galemc/gale/version/AbstractPaperVersionFetcher.java b/src/main/java/org/galemc/gale/version/AbstractPaperVersionFetcher.java
index 75af21644eaf78abdebd722b671f3c47aa083a25..21d71db5ef632ae685c0a852fda54b8d6be183ee 100644 index 75af21644eaf78abdebd722b671f3c47aa083a25..c55757f0a24a0b5c06333070f5875e7d8a0f7777 100644
--- a/src/main/java/org/galemc/gale/version/AbstractPaperVersionFetcher.java --- a/src/main/java/org/galemc/gale/version/AbstractPaperVersionFetcher.java
+++ b/src/main/java/org/galemc/gale/version/AbstractPaperVersionFetcher.java +++ b/src/main/java/org/galemc/gale/version/AbstractPaperVersionFetcher.java
@@ -101,10 +101,10 @@ public abstract class AbstractPaperVersionFetcher implements VersionFetcher { @@ -101,10 +101,10 @@ public abstract class AbstractPaperVersionFetcher implements VersionFetcher {
@@ -337,3 +337,11 @@ index 75af21644eaf78abdebd722b671f3c47aa083a25..21d71db5ef632ae685c0a852fda54b8d
.append(Component.newline()) .append(Component.newline())
.append(text("Download the new version at: ") .append(text("Download the new version at: ")
.append(text(this.downloadPage, NamedTextColor.GOLD) // Gale - branding changes - version fetcher .append(text(this.downloadPage, NamedTextColor.GOLD) // Gale - branding changes - version fetcher
@@ -149,6 +149,6 @@ public abstract class AbstractPaperVersionFetcher implements VersionFetcher {
return null;
}
- return text("Previous version: " + oldVersion, NamedTextColor.GRAY, TextDecoration.ITALIC);
+ return text("Previous: " + oldVersion, NamedTextColor.GRAY, TextDecoration.ITALIC); // Purpur
}
}

View File

@@ -7,10 +7,10 @@ Original license: MIT
Original project: https://github.com/PurpurMC/Purpur Original project: https://github.com/PurpurMC/Purpur
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index ede6cd55688e573e003a6568100b18d5e620f878..9b18c076cabdbfc4b266fa605f38e2ad375e8271 100644 index 6a652ed876128addfef881903272fc9a891b13b6..12f41f1bc9ea5f5be7e32236aae380f633abee0e 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1919,7 +1919,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1868,7 +1868,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@DontObfuscate @DontObfuscate
public String getServerModName() { public String getServerModName() {

View File

@@ -7,10 +7,10 @@ Completely remove the Timings, since it wastes too much performance. Use Spark i
diff --git a/src/main/java/co/aikar/timings/MinecraftTimings.java b/src/main/java/co/aikar/timings/MinecraftTimings.java diff --git a/src/main/java/co/aikar/timings/MinecraftTimings.java b/src/main/java/co/aikar/timings/MinecraftTimings.java
deleted file mode 100644 deleted file mode 100644
index 4b467f1af93452d13829f756d55dee18b8889d40..0000000000000000000000000000000000000000 index 6b3cde6d4d1e63bec01f502f2027ee9fddac08aa..0000000000000000000000000000000000000000
--- a/src/main/java/co/aikar/timings/MinecraftTimings.java --- a/src/main/java/co/aikar/timings/MinecraftTimings.java
+++ /dev/null +++ /dev/null
@@ -1,181 +0,0 @@ @@ -1,178 +0,0 @@
-package co.aikar.timings; -package co.aikar.timings;
- -
-import com.google.common.collect.MapMaker; -import com.google.common.collect.MapMaker;
@@ -60,9 +60,6 @@ index 4b467f1af93452d13829f756d55dee18b8889d40..00000000000000000000000000000000
- public static final Timing antiXrayUpdateTimer = Timings.ofSafe("anti-xray - update"); - public static final Timing antiXrayUpdateTimer = Timings.ofSafe("anti-xray - update");
- public static final Timing antiXrayObfuscateTimer = Timings.ofSafe("anti-xray - obfuscate"); - public static final Timing antiXrayObfuscateTimer = Timings.ofSafe("anti-xray - obfuscate");
- public static final Timing scoreboardScoreSearch = Timings.ofSafe("Scoreboard score search"); // Paper - add timings for scoreboard search - public static final Timing scoreboardScoreSearch = Timings.ofSafe("Scoreboard score search"); // Paper - add timings for scoreboard search
- public static final Timing distanceManagerTick = Timings.ofSafe("Distance Manager Tick"); // Paper - add timings for distance manager
-
- public static final Timing midTickChunkTasks = Timings.ofSafe("Mid Tick Chunk Tasks");
- -
- private static final Map<Class<?>, String> taskNameCache = new MapMaker().weakKeys().makeMap(); - private static final Map<Class<?>, String> taskNameCache = new MapMaker().weakKeys().makeMap();
- -
@@ -650,10 +647,10 @@ index 429cff43a9f0c74161fdab857f5d45771f774ac2..00000000000000000000000000000000
-} -}
diff --git a/src/main/java/co/aikar/timings/WorldTimingsHandler.java b/src/main/java/co/aikar/timings/WorldTimingsHandler.java diff --git a/src/main/java/co/aikar/timings/WorldTimingsHandler.java b/src/main/java/co/aikar/timings/WorldTimingsHandler.java
deleted file mode 100644 deleted file mode 100644
index 22687667ec69a954261e55e59261286ac1b8b8cd..0000000000000000000000000000000000000000 index 2f0d9b953802dee821cfde82d22b0567cce8ee91..0000000000000000000000000000000000000000
--- a/src/main/java/co/aikar/timings/WorldTimingsHandler.java --- a/src/main/java/co/aikar/timings/WorldTimingsHandler.java
+++ /dev/null +++ /dev/null
@@ -1,140 +0,0 @@ @@ -1,120 +0,0 @@
-package co.aikar.timings; -package co.aikar.timings;
- -
-import net.minecraft.server.level.ServerLevel; -import net.minecraft.server.level.ServerLevel;
@@ -715,16 +712,6 @@ index 22687667ec69a954261e55e59261286ac1b8b8cd..00000000000000000000000000000000
- -
- public final Timing miscMobSpawning; - public final Timing miscMobSpawning;
- -
- public final Timing poiUnload;
- public final Timing chunkUnload;
- public final Timing poiSaveDataSerialization;
- public final Timing chunkSave;
- public final Timing chunkSaveDataSerialization;
- public final Timing chunkSaveIOWait;
- public final Timing chunkUnloadPrepareSave;
- public final Timing chunkUnloadPOISerialization;
- public final Timing chunkUnloadDataSave;
-
- public WorldTimingsHandler(Level server) { - public WorldTimingsHandler(Level server) {
- String name = ((PrimaryLevelData) server.getLevelData()).getLevelName() + " - "; - String name = ((PrimaryLevelData) server.getLevelData()).getLevelName() + " - ";
- -
@@ -778,56 +765,12 @@ index 22687667ec69a954261e55e59261286ac1b8b8cd..00000000000000000000000000000000
- -
- -
- miscMobSpawning = Timings.ofSafe(name + "Mob spawning - Misc"); - miscMobSpawning = Timings.ofSafe(name + "Mob spawning - Misc");
-
- poiUnload = Timings.ofSafe(name + "Chunk unload - POI");
- chunkUnload = Timings.ofSafe(name + "Chunk unload - Chunk");
- poiSaveDataSerialization = Timings.ofSafe(name + "Chunk save - POI Data serialization");
- chunkSave = Timings.ofSafe(name + "Chunk save - Chunk");
- chunkSaveDataSerialization = Timings.ofSafe(name + "Chunk save - Chunk Data serialization");
- chunkSaveIOWait = Timings.ofSafe(name + "Chunk save - Chunk IO Wait");
- chunkUnloadPrepareSave = Timings.ofSafe(name + "Chunk unload - Async Save Prepare");
- chunkUnloadPOISerialization = Timings.ofSafe(name + "Chunk unload - POI Data Serialization");
- chunkUnloadDataSave = Timings.ofSafe(name + "Chunk unload - Data Serialization");
- } - }
- -
- public static Timing getTickList(ServerLevel worldserver, String timingsType) { - public static Timing getTickList(ServerLevel worldserver, String timingsType) {
- return Timings.ofSafe(((PrimaryLevelData) worldserver.getLevelData()).getLevelName() + " - Scheduled " + timingsType); - return Timings.ofSafe(((PrimaryLevelData) worldserver.getLevelData()).getLevelName() + " - Scheduled " + timingsType);
- } - }
-} -}
diff --git a/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java b/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java
index 6bc7c6f16a1649fc9e24e7cf90fca401e5bd4875..5b446e6ac151f99f64f0c442d0b40b5e251bc4c4 100644
--- a/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java
+++ b/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java
@@ -1316,9 +1316,7 @@ public final class ChunkHolderManager {
}
public boolean processTicketUpdates() {
- co.aikar.timings.MinecraftTimings.distanceManagerTick.startTiming(); try { // Paper - add timings for distance manager
return this.processTicketUpdates(true, true, null);
- } finally { co.aikar.timings.MinecraftTimings.distanceManagerTick.stopTiming(); } // Paper - add timings for distance manager
}
private static final ThreadLocal<List<ChunkProgressionTask>> CURRENT_TICKET_UPDATE_SCHEDULING = new ThreadLocal<>();
diff --git a/src/main/java/io/papermc/paper/chunk/system/scheduling/NewChunkHolder.java b/src/main/java/io/papermc/paper/chunk/system/scheduling/NewChunkHolder.java
index 56b07a3306e5735816c8d89601b519cb0db6379a..524d9f0e2cc9a840fdf74bfa98537b5c8d572961 100644
--- a/src/main/java/io/papermc/paper/chunk/system/scheduling/NewChunkHolder.java
+++ b/src/main/java/io/papermc/paper/chunk/system/scheduling/NewChunkHolder.java
@@ -1779,7 +1779,6 @@ public final class NewChunkHolder {
boolean canSavePOI = !(chunk instanceof LevelChunk levelChunk && levelChunk.mustNotSave) && (poi != null && poi.isDirty());
boolean canSaveEntities = entities != null;
- try (co.aikar.timings.Timing ignored = this.world.timings.chunkSave.startTiming()) { // Paper
if (canSaveChunk) {
canSaveChunk = this.saveChunk(chunk, unloading);
}
@@ -1793,7 +1792,6 @@ public final class NewChunkHolder {
this.lastEntityUnload = null;
}
}
- }
return executedUnloadTask | canSaveChunk | canSaveEntities | canSavePOI ? new SaveStat(executedUnloadTask || canSaveChunk, canSaveEntities, canSavePOI): null;
}
diff --git a/src/main/java/io/papermc/paper/command/brigadier/bukkit/BukkitCommandNode.java b/src/main/java/io/papermc/paper/command/brigadier/bukkit/BukkitCommandNode.java diff --git a/src/main/java/io/papermc/paper/command/brigadier/bukkit/BukkitCommandNode.java b/src/main/java/io/papermc/paper/command/brigadier/bukkit/BukkitCommandNode.java
index 0c3c82b28e581286b798ee58ca4193efc2faff4a..5a2a4f69995f23e799370c05f28f9353aa1a1d39 100644 index 0c3c82b28e581286b798ee58ca4193efc2faff4a..5a2a4f69995f23e799370c05f28f9353aa1a1d39 100644
--- a/src/main/java/io/papermc/paper/command/brigadier/bukkit/BukkitCommandNode.java --- a/src/main/java/io/papermc/paper/command/brigadier/bukkit/BukkitCommandNode.java
@@ -858,7 +801,7 @@ index 0c3c82b28e581286b798ee58ca4193efc2faff4a..5a2a4f69995f23e799370c05f28f9353
// return true as command was handled // return true as command was handled
return 1; return 1;
diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java
index e246171b3eb3b8d8caab2c2535f305e8af2f3701..f6dd905176605228cbd6673ca2f77431a48248ad 100644 index 4a215cec69f8fe81d55b497c0b5ff98d03f235ae..726d5cc3422368e7a2bbdb8fce7484da30e24174 100644
--- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java --- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java
+++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java +++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java
@@ -1,6 +1,5 @@ @@ -1,6 +1,5 @@
@@ -950,11 +893,11 @@ index 097500a59336db1bbfffcd1aa4cff7a8586e46ec..f06076864582ed153c6154fd7f3e9101
@Override @Override
diff --git a/src/main/java/net/minecraft/network/protocol/PacketUtils.java b/src/main/java/net/minecraft/network/protocol/PacketUtils.java diff --git a/src/main/java/net/minecraft/network/protocol/PacketUtils.java b/src/main/java/net/minecraft/network/protocol/PacketUtils.java
index 57e76b53e5e314c3e6b8856010f7a84188121582..d6daa27a8d7aca00b181e90d789f4249e8437d29 100644 index d0d36a57ec4896bcb74970f8fb24d8f3e17db133..f7197f1347251a37dd0f6d9ffa2f09bc3a4e1233 100644
--- a/src/main/java/net/minecraft/network/protocol/PacketUtils.java --- a/src/main/java/net/minecraft/network/protocol/PacketUtils.java
+++ b/src/main/java/net/minecraft/network/protocol/PacketUtils.java +++ b/src/main/java/net/minecraft/network/protocol/PacketUtils.java
@@ -50,8 +50,7 @@ public class PacketUtils { @@ -31,8 +31,7 @@ public class PacketUtils {
try { // Paper - detailed watchdog information engine.executeIfPossible(() -> {
if (listener instanceof ServerCommonPacketListenerImpl serverCommonPacketListener && serverCommonPacketListener.processedDisconnect) return; // CraftBukkit - Don't handle sync packets for kicked players if (listener instanceof ServerCommonPacketListenerImpl serverCommonPacketListener && serverCommonPacketListener.processedDisconnect) return; // CraftBukkit - Don't handle sync packets for kicked players
if (listener.shouldHandleMessage(packet)) { if (listener.shouldHandleMessage(packet)) {
- co.aikar.timings.Timing timing = co.aikar.timings.MinecraftTimings.getPacketTiming(packet); // Paper - timings - co.aikar.timings.Timing timing = co.aikar.timings.MinecraftTimings.getPacketTiming(packet); // Paper - timings
@@ -964,19 +907,19 @@ index 57e76b53e5e314c3e6b8856010f7a84188121582..d6daa27a8d7aca00b181e90d789f4249
} catch (Exception exception) { } catch (Exception exception) {
if (exception instanceof ReportedException) { if (exception instanceof ReportedException) {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 5bf2d1cca0661ff35533c41e84e4f387f1a18af8..03a787c9bafee3a6b300703cf05a6a65bd4e9c03 100644 index 12f41f1bc9ea5f5be7e32236aae380f633abee0e..0eac388d53d65d6dbd6900040be4d661cc799765 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -181,8 +181,6 @@ import org.bukkit.craftbukkit.CraftRegistry; @@ -187,8 +187,6 @@ import org.bukkit.craftbukkit.CraftRegistry;
import org.bukkit.event.server.ServerLoadEvent; import org.bukkit.event.server.ServerLoadEvent;
// CraftBukkit end // CraftBukkit end
-import co.aikar.timings.MinecraftTimings; // Paper -import co.aikar.timings.MinecraftTimings; // Paper
- -
public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTask> implements ServerInfo, CommandSource, AutoCloseable { public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTask> implements ServerInfo, ChunkIOErrorReporter, CommandSource, AutoCloseable, ca.spottedleaf.moonrise.patches.chunk_system.server.ChunkSystemMinecraftServer { // Paper - rewrite chunk system
public static final int SERVER_THREAD_PRIORITY = Integer.getInteger("gale.thread.priority.server", -1); // Gale - server thread priority environment variable public static final int SERVER_THREAD_PRIORITY = Integer.getInteger("gale.thread.priority.server", -1); // Gale - server thread priority environment variable
@@ -965,7 +963,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -975,7 +973,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
MinecraftServer.LOGGER.info("Stopping server"); MinecraftServer.LOGGER.info("Stopping server");
Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - Perf: Async command map building; Shutdown and don't bother finishing Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - Perf: Async command map building; Shutdown and don't bother finishing
@@ -984,7 +927,7 @@ index 5bf2d1cca0661ff35533c41e84e4f387f1a18af8..03a787c9bafee3a6b300703cf05a6a65
// Purpur start // Purpur start
if (upnp) { if (upnp) {
if (dev.omega24.upnp4j.UPnP4J.close(this.getPort(), dev.omega24.upnp4j.util.Protocol.TCP)) { if (dev.omega24.upnp4j.UPnP4J.close(this.getPort(), dev.omega24.upnp4j.util.Protocol.TCP)) {
@@ -1396,7 +1393,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1434,7 +1431,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} }
protected void waitUntilNextTick() { protected void waitUntilNextTick() {
@@ -992,26 +935,7 @@ index 5bf2d1cca0661ff35533c41e84e4f387f1a18af8..03a787c9bafee3a6b300703cf05a6a65
long tickOversleepStart = System.nanoTime(); // Gale - YAPFA - last tick time long tickOversleepStart = System.nanoTime(); // Gale - YAPFA - last tick time
this.managedBlock(() -> { this.managedBlock(() -> {
return !this.canSleepForTickNoOversleep(); // Paper - move oversleep into full server tick return !this.canSleepForTickNoOversleep(); // Paper - move oversleep into full server tick
@@ -1477,8 +1473,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1545,15 +1541,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
return;
}
- co.aikar.timings.MinecraftTimings.midTickChunkTasks.startTiming();
- try {
for (;;) {
boolean moreTasks = this.tickMidTickTasks();
long currTime = System.nanoTime();
@@ -1503,9 +1497,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
return;
}
}
- } finally {
- co.aikar.timings.MinecraftTimings.midTickChunkTasks.stopTiming();
- }
}
// Paper end - execute chunk tasks mid tick
@@ -1578,15 +1569,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} }
public void tickServer(BooleanSupplier shouldKeepTicking) { public void tickServer(BooleanSupplier shouldKeepTicking) {
@@ -1029,9 +953,9 @@ index 5bf2d1cca0661ff35533c41e84e4f387f1a18af8..03a787c9bafee3a6b300703cf05a6a65
// Paper end // Paper end
new com.destroystokyo.paper.event.server.ServerTickStartEvent(this.tickCount+1).callEvent(); // Paper - Server Tick Events new com.destroystokyo.paper.event.server.ServerTickStartEvent(this.tickCount+1).callEvent(); // Paper - Server Tick Events
@@ -1620,11 +1610,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1575,11 +1570,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
MinecraftServer.LOGGER.debug("Autosave finished");
} }
// Paper end - Incremental chunk and player saving
io.papermc.paper.util.CachedLists.reset(); // Paper io.papermc.paper.util.CachedLists.reset(); // Paper
- // Paper start - move executeAll() into full server tick timing - // Paper start - move executeAll() into full server tick timing
- try (co.aikar.timings.Timing ignored = MinecraftTimings.processTasksTimer.startTiming()) { - try (co.aikar.timings.Timing ignored = MinecraftTimings.processTasksTimer.startTiming()) {
@@ -1042,7 +966,7 @@ index 5bf2d1cca0661ff35533c41e84e4f387f1a18af8..03a787c9bafee3a6b300703cf05a6a65
// Paper start - Server Tick Events // Paper start - Server Tick Events
long endTime = System.nanoTime(); long endTime = System.nanoTime();
long remaining = (TICK_TIME - (endTime - lastTick)) - catchupTime; long remaining = (TICK_TIME - (endTime - lastTick)) - catchupTime;
@@ -1644,7 +1630,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1599,7 +1590,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// Paper end - Add tick times API and /mspt command // Paper end - Add tick times API and /mspt command
this.logTickMethodTime(i); this.logTickMethodTime(i);
org.spigotmc.WatchdogThread.tick(); // Spigot org.spigotmc.WatchdogThread.tick(); // Spigot
@@ -1050,7 +974,7 @@ index 5bf2d1cca0661ff35533c41e84e4f387f1a18af8..03a787c9bafee3a6b300703cf05a6a65
} }
private void logTickMethodTime(long tickStartTime) { private void logTickMethodTime(long tickStartTime) {
@@ -1715,9 +1700,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1670,9 +1660,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.getPlayerList().getPlayers().forEach((entityplayer) -> { this.getPlayerList().getPlayers().forEach((entityplayer) -> {
entityplayer.connection.suspendFlushing(); entityplayer.connection.suspendFlushing();
}); });
@@ -1060,7 +984,7 @@ index 5bf2d1cca0661ff35533c41e84e4f387f1a18af8..03a787c9bafee3a6b300703cf05a6a65
// Paper start - Folia scheduler API // Paper start - Folia scheduler API
((io.papermc.paper.threadedregions.scheduler.FoliaGlobalRegionScheduler) Bukkit.getGlobalRegionScheduler()).tick(); ((io.papermc.paper.threadedregions.scheduler.FoliaGlobalRegionScheduler) Bukkit.getGlobalRegionScheduler()).tick();
getAllLevels().forEach(level -> { getAllLevels().forEach(level -> {
@@ -1733,20 +1716,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1688,20 +1676,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}); });
// Paper end - Folia scheduler API // Paper end - Folia scheduler API
io.papermc.paper.adventure.providers.ClickCallbackProviderImpl.CALLBACK_MANAGER.handleQueue(this.tickCount); // Paper io.papermc.paper.adventure.providers.ClickCallbackProviderImpl.CALLBACK_MANAGER.handleQueue(this.tickCount); // Paper
@@ -1081,7 +1005,7 @@ index 5bf2d1cca0661ff35533c41e84e4f387f1a18af8..03a787c9bafee3a6b300703cf05a6a65
// Send time updates to everyone, it will get the right time from the world the player is in. // Send time updates to everyone, it will get the right time from the world the player is in.
// Paper start - Perf: Optimize time updates // Paper start - Perf: Optimize time updates
for (final ServerLevel level : this.getAllLevels()) { for (final ServerLevel level : this.getAllLevels()) {
@@ -1766,7 +1744,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1721,7 +1704,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} }
} }
// Paper end - Perf: Optimize time updates // Paper end - Perf: Optimize time updates
@@ -1089,22 +1013,17 @@ index 5bf2d1cca0661ff35533c41e84e4f387f1a18af8..03a787c9bafee3a6b300703cf05a6a65
this.isIteratingOverLevels = true; // Paper - Throw exception on world create while being ticked this.isIteratingOverLevels = true; // Paper - Throw exception on world create while being ticked
Iterator iterator = this.getAllLevels().iterator(); // Paper - Throw exception on world create while being ticked; move down Iterator iterator = this.getAllLevels().iterator(); // Paper - Throw exception on world create while being ticked; move down
@@ -1785,14 +1762,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1739,9 +1721,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// CraftBukkit end */ // CraftBukkit end */
try { try {
- worldserver.timings.doTick.startTiming(); // Spigot - worldserver.timings.doTick.startTiming(); // Spigot
worldserver.tick(shouldKeepTicking); worldserver.tick(shouldKeepTicking);
// Paper start
for (final io.papermc.paper.chunk.SingleThreadChunkRegionManager regionManager : worldserver.getChunkSource().chunkMap.regionManagers) {
regionManager.recalculateRegions();
}
// Paper end
- worldserver.timings.doTick.stopTiming(); // Spigot - worldserver.timings.doTick.stopTiming(); // Spigot
} catch (Throwable throwable) { } catch (Throwable throwable) {
CrashReport crashreport = CrashReport.forThrowable(throwable, "Exception ticking world"); CrashReport crashreport = CrashReport.forThrowable(throwable, "Exception ticking world");
@@ -1804,21 +1779,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1753,21 +1733,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} }
this.isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked this.isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
@@ -1127,10 +1046,10 @@ index 5bf2d1cca0661ff35533c41e84e4f387f1a18af8..03a787c9bafee3a6b300703cf05a6a65
iterator = this.playerList.getPlayers().iterator(); iterator = this.playerList.getPlayers().iterator();
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 62379ebae3e6972f88742ff29f607a99879f567d..ee99b0e74abc6447937b1af627c10ffbeeb9e0c0 100644 index ca31ceb08099324df560bfc4f7888a509ad75307..b38470108f0842ee65cb55ff7e376105cc7ba2f6 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -62,7 +62,6 @@ import org.apache.logging.log4j.Level; @@ -69,7 +69,6 @@ import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.io.IoBuilder; import org.apache.logging.log4j.io.IoBuilder;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@@ -1138,7 +1057,7 @@ index 62379ebae3e6972f88742ff29f607a99879f567d..ee99b0e74abc6447937b1af627c10ffb
import org.bukkit.craftbukkit.util.TerminalCompletionHandler; import org.bukkit.craftbukkit.util.TerminalCompletionHandler;
import org.bukkit.craftbukkit.util.TerminalConsoleWriterThread; import org.bukkit.craftbukkit.util.TerminalConsoleWriterThread;
import org.bukkit.event.server.ServerCommandEvent; import org.bukkit.event.server.ServerCommandEvent;
@@ -553,7 +552,6 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -560,7 +559,6 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
} }
public void handleConsoleInputs() { public void handleConsoleInputs() {
@@ -1146,7 +1065,7 @@ index 62379ebae3e6972f88742ff29f607a99879f567d..ee99b0e74abc6447937b1af627c10ffb
// Paper start - Perf: use proper queue // Paper start - Perf: use proper queue
ConsoleInput servercommand; ConsoleInput servercommand;
while ((servercommand = this.serverCommandQueue.poll()) != null) { while ((servercommand = this.serverCommandQueue.poll()) != null) {
@@ -569,8 +567,6 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -576,8 +574,6 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
this.server.dispatchServerCommand(this.console, servercommand); this.server.dispatchServerCommand(this.console, servercommand);
// CraftBukkit end // CraftBukkit end
} }
@@ -1155,7 +1074,7 @@ index 62379ebae3e6972f88742ff29f607a99879f567d..ee99b0e74abc6447937b1af627c10ffb
} }
@Override @Override
@@ -842,23 +838,9 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -849,23 +845,9 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
if (event.isCancelled()) { if (event.isCancelled()) {
return; return;
} }
@@ -1180,7 +1099,7 @@ index 62379ebae3e6972f88742ff29f607a99879f567d..ee99b0e74abc6447937b1af627c10ffb
// Paper start // Paper start
if (waitableArray[0] != null) { if (waitableArray[0] != null) {
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
index 54c3e32c7ae869d55408d77ea2aa1635f980a39b..1dc4ccbd999964eee18a420c8166e1a8b5f9a3a0 100644 index 79057c2db0e6163f2d5466f50716a4ce230bfdf2..55ae1991316e5e67159c5babbc501190919dde1e 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java --- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -1,6 +1,5 @@ @@ -1,6 +1,5 @@
@@ -1190,47 +1109,7 @@ index 54c3e32c7ae869d55408d77ea2aa1635f980a39b..1dc4ccbd999964eee18a420c8166e1a8
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableList.Builder; import com.google.common.collect.ImmutableList.Builder;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
@@ -541,13 +540,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -950,7 +949,6 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
}
protected void tick(BooleanSupplier shouldKeepTicking) {
- try (Timing ignored = this.level.timings.poiUnload.startTiming()) { // Paper
this.poiManager.tick(shouldKeepTicking);
- } // Paper
if (!this.level.noSave()) {
- try (Timing ignored = this.level.timings.chunkUnload.startTiming()) { // Paper
this.processUnloads(shouldKeepTicking);
- } // Paper
}
}
@@ -1151,25 +1146,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
// Paper start - optimised tracker
private final void processTrackQueue() {
- this.level.timings.tracker1.startTiming();
- try {
for (TrackedEntity tracker : this.entityMap.values()) {
// update tracker entry
tracker.updatePlayers(tracker.entity.getPlayersInTrackRange());
}
- } finally {
- this.level.timings.tracker1.stopTiming();
- }
-
- this.level.timings.tracker2.startTiming();
- try {
for (TrackedEntity tracker : this.entityMap.values()) {
tracker.serverEntity.sendChanges();
}
- } finally {
- this.level.timings.tracker2.stopTiming();
- }
}
// Paper end - optimised tracker
@@ -1183,7 +1167,6 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
List<ServerPlayer> list = Lists.newArrayList(); List<ServerPlayer> list = Lists.newArrayList();
List<ServerPlayer> list1 = this.level.players(); List<ServerPlayer> list1 = this.level.players();
ObjectIterator objectiterator = this.entityMap.values().iterator(); ObjectIterator objectiterator = this.entityMap.values().iterator();
@@ -1238,7 +1117,7 @@ index 54c3e32c7ae869d55408d77ea2aa1635f980a39b..1dc4ccbd999964eee18a420c8166e1a8
ChunkMap.TrackedEntity playerchunkmap_entitytracker; ChunkMap.TrackedEntity playerchunkmap_entitytracker;
@@ -1208,17 +1191,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -975,17 +973,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
playerchunkmap_entitytracker.serverEntity.sendChanges(); playerchunkmap_entitytracker.serverEntity.sendChanges();
} }
} }
@@ -1257,39 +1136,37 @@ index 54c3e32c7ae869d55408d77ea2aa1635f980a39b..1dc4ccbd999964eee18a420c8166e1a8
} }
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
index 360e1df4574c8257ff52b4a38a26314c0ec1a05e..9115054c05d261dd959e1f1f091c9b96c6a01a79 100644 index e1d2c90295580e130c7f317fa1164c395caea85f..121db0c3b0416e43a7cac8e33d498bbe6765602f 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
@@ -272,10 +272,8 @@ public class ServerChunkCache extends ChunkSource { @@ -355,12 +355,25 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
if (!completablefuture.isDone()) { // Paper }
io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.pushChunkWait(this.level, x1, z1); // Paper - rewrite chunk system
com.destroystokyo.paper.io.SyncLoadFinder.logSyncLoad(this.level, x, z); // Paper - Add debug for sync chunk loads
- this.level.timings.syncChunkLoad.startTiming(); // Paper
chunkproviderserver_b.managedBlock(completablefuture::isDone);
io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.popChunkWait(); // Paper - rewrite chunk system
- this.level.timings.syncChunkLoad.stopTiming(); // Paper
} // Paper
ChunkResult<ChunkAccess> chunkresult = (ChunkResult) completablefuture.join();
ChunkAccess ichunkaccess1 = (ChunkAccess) chunkresult.orElse(null); // CraftBukkit - decompile error
@@ -423,17 +421,13 @@ public class ServerChunkCache extends ChunkSource {
public void save(boolean flush) { public void save(boolean flush) {
this.runDistanceManagerUpdates(); +<<<<<<< HEAD
- try (co.aikar.timings.Timing timed = level.timings.chunkSaveData.startTiming()) { // Paper - Timings // Paper - rewrite chunk system
try (co.aikar.timings.Timing timed = level.timings.chunkSaveData.startTiming()) { // Paper - Timings
+=======
+ this.runDistanceManagerUpdates();
+>>>>>>> Remove Timings
this.chunkMap.saveAllChunks(flush); this.chunkMap.saveAllChunks(flush);
- } // Paper - Timings - } // Paper - Timings
} }
// Paper start - Incremental chunk and player saving; duplicate save, but call incremental +<<<<<<< HEAD
public void saveIncrementally() { +=======
this.runDistanceManagerUpdates(); + // Paper start - Incremental chunk and player saving; duplicate save, but call incremental
- try (co.aikar.timings.Timing timed = level.timings.chunkSaveData.startTiming()) { // Paper - Timings + public void saveIncrementally() {
this.chunkMap.saveIncrementally(); + this.runDistanceManagerUpdates();
- } // Paper - Timings + this.chunkMap.saveIncrementally();
} + }
// Paper end - Incremental chunk and player saving + // Paper end - Incremental chunk and player saving
+
@@ -466,24 +460,18 @@ public class ServerChunkCache extends ChunkSource { +>>>>>>> Remove Timings
@Override
public void close() throws IOException {
// CraftBukkit start
@@ -382,24 +395,23 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
@Override @Override
public void tick(BooleanSupplier shouldKeepTicking, boolean tickChunks) { public void tick(BooleanSupplier shouldKeepTicking, boolean tickChunks) {
@@ -1301,8 +1178,12 @@ index 360e1df4574c8257ff52b4a38a26314c0ec1a05e..9115054c05d261dd959e1f1f091c9b96
this.runDistanceManagerUpdates(); this.runDistanceManagerUpdates();
- this.level.timings.doChunkMap.stopTiming(); // Spigot - this.level.timings.doChunkMap.stopTiming(); // Spigot
if (tickChunks) { if (tickChunks) {
- this.level.timings.chunks.startTiming(); // Paper - timings +<<<<<<< HEAD
this.chunkMap.level.playerChunkLoader.tick(); // Paper - replace player chunk loader - this is mostly required to account for view distance changes this.level.timings.chunks.startTiming(); // Paper - timings
((ca.spottedleaf.moonrise.patches.chunk_system.level.ChunkSystemServerLevel)this.level).moonrise$getPlayerChunkLoader().tick(); // Paper - rewrite chunk system
+=======
+ this.chunkMap.level.playerChunkLoader.tick(); // Paper - replace player chunk loader - this is mostly required to account for view distance changes
+>>>>>>> Remove Timings
this.tickChunks(); this.tickChunks();
- this.level.timings.chunks.stopTiming(); // Paper - timings - this.level.timings.chunks.stopTiming(); // Paper - timings
this.chunkMap.tick(); this.chunkMap.tick();
@@ -1314,16 +1195,20 @@ index 360e1df4574c8257ff52b4a38a26314c0ec1a05e..9115054c05d261dd959e1f1f091c9b96
this.clearCache(); this.clearCache();
} }
@@ -493,8 +481,6 @@ public class ServerChunkCache extends ChunkSource { @@ -409,9 +421,12 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
this.lastInhabitedUpdate = i; this.lastInhabitedUpdate = i;
if (!this.level.isDebug()) { if (!this.level.isDebug()) {
- // Paper - optimise chunk tick iteration +<<<<<<< HEAD
- if (this.level.getServer().tickRateManager().runsNormally()) this.level.timings.chunkTicks.startTiming(); // Paper List<ServerChunkCache.ChunkAndHolder> list = Lists.newArrayListWithCapacity(this.chunkMap.size());
Iterator iterator = this.chunkMap.getChunks().iterator();
if (this.level.getServer().tickRateManager().runsNormally()) this.level.timings.chunkTicks.startTiming(); // Paper
+=======
+>>>>>>> Remove Timings
// Paper - optimise chunk tick iteration while (iterator.hasNext()) {
ChunkHolder playerchunk = (ChunkHolder) iterator.next();
@@ -506,7 +492,6 @@ public class ServerChunkCache extends ChunkSource { @@ -429,7 +444,6 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
boolean flagAndHasNaturalSpawn = flag && this.anySpawnCategoryIsSpawnedThisTick(); boolean flagAndHasNaturalSpawn = flag && this.anySpawnCategoryIsSpawnedThisTick();
if (flagAndHasNaturalSpawn) { if (flagAndHasNaturalSpawn) {
// Gale end - MultiPaper - skip unnecessary mob spawning computations // Gale end - MultiPaper - skip unnecessary mob spawning computations
@@ -1331,19 +1216,29 @@ index 360e1df4574c8257ff52b4a38a26314c0ec1a05e..9115054c05d261dd959e1f1f091c9b96
int k = this.distanceManager.getNaturalSpawnChunkCount(); int k = this.distanceManager.getNaturalSpawnChunkCount();
// Paper start - Optional per player mob spawns // Paper start - Optional per player mob spawns
int naturalSpawnChunkCount = k; int naturalSpawnChunkCount = k;
@@ -535,7 +520,6 @@ public class ServerChunkCache extends ChunkSource { @@ -453,7 +467,6 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
// Pufferfish end spawnercreature_d = NaturalSpawner.createState(naturalSpawnChunkCount, this.level.getAllEntities(), this::getFullChunk, !this.level.paperConfig().entities.spawning.perPlayerMobSpawns ? new LocalMobCapCalculator(this.chunkMap) : null, false);
} }
// Paper end - Optional per player mob spawns // Paper end - Optional per player mob spawns
- this.level.timings.countNaturalMobs.stopTiming(); // Paper - timings - this.level.timings.countNaturalMobs.stopTiming(); // Paper - timings
//this.lastSpawnState = spawnercreature_d; // Pufferfish - this is managed asynchronously this.lastSpawnState = spawnercreature_d;
// Gale start - MultiPaper - skip unnecessary mob spawning computations // Gale start - MultiPaper - skip unnecessary mob spawning computations
@@ -647,17 +631,13 @@ public class ServerChunkCache extends ChunkSource { @@ -492,20 +505,79 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
}
} }
} }
// Paper end - optimise chunk tick iteration +<<<<<<< HEAD
- this.level.timings.chunkTicks.stopTiming(); // Paper this.level.timings.chunkTicks.stopTiming(); // Paper
+=======
+ // Paper start - optimise chunk tick iteration
+ } finally {
+ if (chunkIterator instanceof io.papermc.paper.util.maplist.IteratorSafeOrderedReferenceSet.Iterator safeIterator) {
+ safeIterator.finishedIterating();
+ }
+ }
+ // Paper end - optimise chunk tick iteration
+>>>>>>> Remove Timings
if (flag) { if (flag) {
- try (co.aikar.timings.Timing ignored = this.level.timings.miscMobSpawning.startTiming()) { // Paper - timings - try (co.aikar.timings.Timing ignored = this.level.timings.miscMobSpawning.startTiming()) { // Paper - timings
@@ -1352,21 +1247,67 @@ index 360e1df4574c8257ff52b4a38a26314c0ec1a05e..9115054c05d261dd959e1f1f091c9b96
} }
} }
// Paper - optimise chunk tick iteration +<<<<<<< HEAD
- this.level.timings.broadcastChunkUpdates.startTiming(); // Paper - timing list.forEach((chunkproviderserver_a1) -> {
// Paper start - optimise chunk tick iteration this.level.timings.broadcastChunkUpdates.startTiming(); // Paper - timing
if (!this.chunkMap.needsChangeBroadcasting.isEmpty()) { chunkproviderserver_a1.holder.broadcastChanges(chunkproviderserver_a1.chunk);
it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet<ChunkHolder> copy = this.chunkMap.needsChangeBroadcasting.clone(); this.level.timings.broadcastChunkUpdates.stopTiming(); // Paper - timing
@@ -671,7 +651,6 @@ public class ServerChunkCache extends ChunkSource { });
} +=======
} + // Paper - optimise chunk tick iteration
// Paper end - optimise chunk tick iteration + // Paper start - optimise chunk tick iteration
- this.level.timings.broadcastChunkUpdates.stopTiming(); // Paper - timing + if (!this.chunkMap.needsChangeBroadcasting.isEmpty()) {
// Paper - optimise chunk tick iteration + it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet<ChunkHolder> copy = this.chunkMap.needsChangeBroadcasting.clone();
+ this.chunkMap.needsChangeBroadcasting.clear();
+ for (ChunkHolder holder : copy) {
+ holder.broadcastChanges(holder.getFullChunkNowUnchecked()); // LevelChunks are NEVER unloaded
+ if (holder.needsBroadcastChanges()) {
+ // I DON'T want to KNOW what DUMB plugins might be doing.
+ this.chunkMap.needsChangeBroadcasting.add(holder);
+ }
+ }
+ }
+ // Paper end - optimise chunk tick iteration
+ // Paper - optimise chunk tick iteration
+ }
+
+ // Pufferfish start - optimize mob spawning
+ if (org.dreeam.leaf.config.modules.async.AsyncMobSpawning.enabled) {
+ for (ServerPlayer player : this.level.players) {
+ // Paper start - per player mob spawning backoff
+ for (int ii = 0; ii < ServerPlayer.MOBCATEGORY_TOTAL_ENUMS; ii++) {
+ player.mobCounts[ii] = 0;
+
+ int newBackoff = player.mobBackoffCounts[ii] - 1; // TODO make configurable bleed // TODO use nonlinear algorithm?
+ if (newBackoff < 0) {
+ newBackoff = 0;
+ }
+ player.mobBackoffCounts[ii] = newBackoff;
+ }
+ // Paper end - per player mob spawning backoff
+ }
+ if (firstRunSpawnCounts) {
+ firstRunSpawnCounts = false;
+ _pufferfish_spawnCountsReady.set(true);
+ }
+ if (_pufferfish_spawnCountsReady.getAndSet(false)) {
+ net.minecraft.server.MinecraftServer.getServer().mobSpawnExecutor.submit(() -> {
+ int mapped = distanceManager.getNaturalSpawnChunkCount();
+ io.papermc.paper.util.maplist.IteratorSafeOrderedReferenceSet.Iterator<Entity> objectiterator =
+ level.entityTickList.entities.iterator(io.papermc.paper.util.maplist.IteratorSafeOrderedReferenceSet.ITERATOR_FLAG_SEE_ADDITIONS);
+ gg.pufferfish.pufferfish.util.IterableWrapper<Entity> wrappedIterator =
+ new gg.pufferfish.pufferfish.util.IterableWrapper<>(objectiterator);
+ lastSpawnState = NaturalSpawner.createState(mapped, wrappedIterator, this::getFullChunk, null, true);
+ objectiterator.finishedIterating();
+ _pufferfish_spawnCountsReady.set(true);
+ });
+ }
+>>>>>>> Remove Timings
} }
}
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index f8d11853af6bfc08d1bd8a0f537fd5760bfc04be..e354a9c72ec61896d9752d804517e57a412daea5 100644 index 528e6e37b5552fe8179b472ec5fbbb90fa1b7b5b..4fea04aaf08c8a8e7bbb2add980f28fca08dd97f 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java --- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -1,7 +1,6 @@ @@ -1,7 +1,6 @@
@@ -1377,7 +1318,7 @@ index f8d11853af6bfc08d1bd8a0f537fd5760bfc04be..e354a9c72ec61896d9752d804517e57a
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.mojang.datafixers.DataFixer; import com.mojang.datafixers.DataFixer;
import com.mojang.datafixers.util.Pair; import com.mojang.datafixers.util.Pair;
@@ -868,27 +867,19 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -682,27 +681,19 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
this.tickTime(); this.tickTime();
} }
@@ -1405,7 +1346,7 @@ index f8d11853af6bfc08d1bd8a0f537fd5760bfc04be..e354a9c72ec61896d9752d804517e57a
} }
this.handlingTick = false; this.handlingTick = false;
@@ -899,13 +890,11 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -713,13 +704,11 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
} }
if (flag1 || this.emptyTime++ < 300) { if (flag1 || this.emptyTime++ < 300) {
@@ -1419,7 +1360,7 @@ index f8d11853af6bfc08d1bd8a0f537fd5760bfc04be..e354a9c72ec61896d9752d804517e57a
this.entityTickList.forEach((entity) -> { this.entityTickList.forEach((entity) -> {
entity.activatedPriorityReset = false; // Pufferfish - DAB entity.activatedPriorityReset = false; // Pufferfish - DAB
if (!entity.isRemoved()) { if (!entity.isRemoved()) {
@@ -942,8 +931,6 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -743,8 +732,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
} }
} }
}); });
@@ -1428,27 +1369,27 @@ index f8d11853af6bfc08d1bd8a0f537fd5760bfc04be..e354a9c72ec61896d9752d804517e57a
this.tickBlockEntities(); this.tickBlockEntities();
} }
@@ -1077,7 +1064,6 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -869,7 +856,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
} }
} // Paper - Option to disable ice and snow } // Paper - Option to disable ice and snow
- timings.chunkTicksBlocks.startTiming(); // Paper - timings.chunkTicksBlocks.startTiming(); // Paper
if (randomTickSpeed > 0) { if (randomTickSpeed > 0) {
// Paper start - optimize random block ticking LevelChunkSection[] achunksection = chunk.getSections();
LevelChunkSection[] sections = chunk.getSections();
@@ -1110,8 +1096,6 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -899,8 +885,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
}
} }
} }
// Paper end - optimise random block ticking
- -
- timings.chunkTicksBlocks.stopTiming(); // Paper - timings.chunkTicksBlocks.stopTiming(); // Paper
} }
@VisibleForTesting @VisibleForTesting
@@ -1441,31 +1425,21 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1200,31 +1184,21 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
currentlyTickingEntity.lazySet(entity); }
}
// Paper end - log detailed entity tick information public void tickNonPassenger(Entity entity) {
- ++TimingHistory.entityTicks; // Paper - timings - ++TimingHistory.entityTicks; // Paper - timings
// Spigot start // Spigot start
- co.aikar.timings.Timing timer; // Paper - co.aikar.timings.Timing timer; // Paper
@@ -1477,15 +1418,16 @@ index f8d11853af6bfc08d1bd8a0f537fd5760bfc04be..e354a9c72ec61896d9752d804517e57a
Iterator iterator = entity.getPassengers().iterator(); Iterator iterator = entity.getPassengers().iterator();
while (iterator.hasNext()) { while (iterator.hasNext()) {
@@ -1473,7 +1447,6 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1232,8 +1206,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
this.tickPassenger(entity, entity1); this.tickPassenger(entity, entity1);
} }
- // } finally { timer.stopTiming(); } // Paper - timings - move up - // } finally { timer.stopTiming(); } // Paper - timings - move up
// Paper start - log detailed entity tick information -
} finally { }
if (currentlyTickingEntity.get() == entity) {
@@ -1488,9 +1461,6 @@ public class ServerLevel extends Level implements WorldGenLevel { private void tickPassenger(Entity vehicle, Entity passenger) {
@@ -1241,9 +1213,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
if (passenger instanceof Player || this.entityTickList.contains(passenger)) { if (passenger instanceof Player || this.entityTickList.contains(passenger)) {
// Paper - EAR 2 // Paper - EAR 2
final boolean isActive = org.spigotmc.ActivationRange.checkIfActive(passenger); final boolean isActive = org.spigotmc.ActivationRange.checkIfActive(passenger);
@@ -1494,8 +1436,8 @@ index f8d11853af6bfc08d1bd8a0f537fd5760bfc04be..e354a9c72ec61896d9752d804517e57a
- // Paper end - // Paper end
passenger.setOldPosAndRot(); passenger.setOldPosAndRot();
++passenger.tickCount; ++passenger.tickCount;
// Paper start - EAR 2
@@ -1511,8 +1481,6 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1265,8 +1234,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
this.tickPassenger(passenger, entity2); this.tickPassenger(passenger, entity2);
} }
@@ -1504,30 +1446,7 @@ index f8d11853af6bfc08d1bd8a0f537fd5760bfc04be..e354a9c72ec61896d9752d804517e57a
} }
} else { } else {
passenger.stopRiding(); passenger.stopRiding();
@@ -1532,14 +1500,11 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1288,7 +1255,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(getWorld()));
}
- try (co.aikar.timings.Timing ignored = this.timings.worldSave.startTiming()) {
if (doFull) {
this.saveLevelData(true); // Paper - Write SavedData IO async
}
- this.timings.worldSaveChunks.startTiming(); // Paper
if (!this.noSave()) chunkproviderserver.saveIncrementally();
- this.timings.worldSaveChunks.stopTiming(); // Paper
// Copied from save()
// CraftBukkit start - moved from MinecraftServer.saveChunks
@@ -1551,7 +1516,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.convertable.saveDataTag(this.server.registryAccess(), this.serverLevelData, this.server.getPlayerList().getSingleplayerData());
}
// CraftBukkit end
- }
}
// Paper end - Incremental chunk and player saving
@@ -1565,7 +1529,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
if (!savingDisabled) { if (!savingDisabled) {
org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(this.getWorld())); // CraftBukkit org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(this.getWorld())); // CraftBukkit
@@ -1535,20 +1454,18 @@ index f8d11853af6bfc08d1bd8a0f537fd5760bfc04be..e354a9c72ec61896d9752d804517e57a
if (progressListener != null) { if (progressListener != null) {
progressListener.progressStartNoAbort(Component.translatable("menu.savingLevel")); progressListener.progressStartNoAbort(Component.translatable("menu.savingLevel"));
} }
@@ -1575,11 +1538,8 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1298,9 +1264,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
progressListener.progressStage(Component.translatable("menu.savingChunks")); progressListener.progressStage(Component.translatable("menu.savingChunks"));
} }
- timings.worldSaveChunks.startTiming(); // Paper - timings.worldSaveChunks.startTiming(); // Paper
if (!close) chunkproviderserver.save(flush); // Paper - rewrite chunk system if (!close) { chunkproviderserver.save(flush); } // Paper - add close param
if (close) chunkproviderserver.close(true); // Paper - rewrite chunk system
- timings.worldSaveChunks.stopTiming(); // Paper - timings.worldSaveChunks.stopTiming(); // Paper
- }// Paper }// Paper
// Paper - rewrite chunk system - entity saving moved into ChunkHolder // Paper - rewrite chunk system
} else if (close) { chunkproviderserver.close(false); } // Paper - rewrite chunk system
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index ce4763458258bd5685d3ec02278b6ed829ebf705..9250db41e26d2ffa96146782e898165591f9e819 100644 index d2153c3e909e7e75529ce6e41d649bf54b48752b..33fd3c88f84a5d6f7f7c0212f364a83870c88fc7 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java --- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1,6 +1,5 @@ @@ -1,6 +1,5 @@
@@ -1558,24 +1475,20 @@ index ce4763458258bd5685d3ec02278b6ed829ebf705..9250db41e26d2ffa96146782e8981655
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
@@ -1337,7 +1336,6 @@ public abstract class PlayerList { @@ -1282,11 +1281,9 @@ public abstract class PlayerList {
public void saveAll(int interval) { public void saveAll() {
io.papermc.paper.util.MCUtil.ensureMain("Save Players" , () -> { // Paper - Ensure main io.papermc.paper.util.MCUtil.ensureMain("Save Players" , () -> { // Paper - Ensure main
- MinecraftTimings.savePlayers.startTiming(); // Paper - MinecraftTimings.savePlayers.startTiming(); // Paper
int numSaved = 0;
long now = MinecraftServer.currentTick;
for (int i = 0; i < this.players.size(); ++i) { for (int i = 0; i < this.players.size(); ++i) {
@@ -1348,7 +1346,6 @@ public abstract class PlayerList { this.save(this.players.get(i));
}
// Paper end - Incremental chunk and player saving
} }
- MinecraftTimings.savePlayers.stopTiming(); // Paper - MinecraftTimings.savePlayers.stopTiming(); // Paper
return null; }); // Paper - ensure main return null; }); // Paper - ensure main
} }
diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java
index 32a1b5a1d01fd4dc603a76fde259f3a0d4749fad..4714cbf21f4edb41ee07c7eac180a6806afb7e9e 100644 index d3de0362dd1ef3954d05c4d8fa56a25edfe1bb2b..6ac3dfab99cfb0b51c81cc20e71da1261a8c567c 100644
--- a/src/main/java/net/minecraft/world/entity/EntityType.java --- a/src/main/java/net/minecraft/world/entity/EntityType.java
+++ b/src/main/java/net/minecraft/world/entity/EntityType.java +++ b/src/main/java/net/minecraft/world/entity/EntityType.java
@@ -356,10 +356,6 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT @@ -356,10 +356,6 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
@@ -1715,10 +1628,10 @@ index 85b4b24361e785acf75571ff98f924c00ae80748..ac67dd7a30616fe70f73426e332972b7
} }
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 8be636ef55f8f2cb0ed1edad42156b742281b044..e77db67592e13a06133cafb364f227686fcc336b 100644 index e86c8972de653252ae14a8d483941bda69913884..395ccbe442e9c57d11f3f7dc4381b8f6458ad392 100644
--- a/src/main/java/net/minecraft/world/level/Level.java --- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -177,7 +177,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -176,7 +176,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
public final com.destroystokyo.paper.antixray.ChunkPacketBlockController chunkPacketBlockController; // Paper - Anti-Xray public final com.destroystokyo.paper.antixray.ChunkPacketBlockController chunkPacketBlockController; // Paper - Anti-Xray
public final org.purpurmc.purpur.PurpurWorldConfig purpurConfig; // Purpur public final org.purpurmc.purpur.PurpurWorldConfig purpurConfig; // Purpur
@@ -1726,15 +1639,15 @@ index 8be636ef55f8f2cb0ed1edad42156b742281b044..e77db67592e13a06133cafb364f22768
public static BlockPos lastPhysicsProblem; // Spigot public static BlockPos lastPhysicsProblem; // Spigot
private org.spigotmc.TickLimiter entityLimiter; private org.spigotmc.TickLimiter entityLimiter;
private org.spigotmc.TickLimiter tileLimiter; private org.spigotmc.TickLimiter tileLimiter;
@@ -353,7 +352,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -400,7 +399,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
public void onBorderSetDamageSafeZOne(WorldBorder border, double safeZoneRadius) {} public void onBorderSetDamageSafeZOne(WorldBorder border, double safeZoneRadius) {}
}); });
// CraftBukkit end // CraftBukkit end
- this.timings = new co.aikar.timings.WorldTimingsHandler(this); // Paper - code below can generate new world and access timings - this.timings = new co.aikar.timings.WorldTimingsHandler(this); // Paper - code below can generate new world and access timings
this.entityLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.entityMaxTickTime); this.entityLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.entityMaxTickTime);
this.tileLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.tileMaxTickTime); this.tileLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.tileMaxTickTime);
this.chunkPacketBlockController = this.paperConfig().anticheat.antiXray.enabled ? new com.destroystokyo.paper.antixray.ChunkPacketBlockControllerAntiXray(this, executor) : com.destroystokyo.paper.antixray.ChunkPacketBlockController.NO_OPERATION_INSTANCE; // Paper - Anti-Xray this.entityLookup = new ca.spottedleaf.moonrise.patches.chunk_system.level.entity.dfl.DefaultEntityLookup(this); // Paper - rewrite chunk system
@@ -1318,15 +1316,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -999,15 +997,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
} }
protected void tickBlockEntities() { protected void tickBlockEntities() {
@@ -1750,7 +1663,7 @@ index 8be636ef55f8f2cb0ed1edad42156b742281b044..e77db67592e13a06133cafb364f22768
// Spigot start // Spigot start
// Iterator<TickingBlockEntity> iterator = this.blockEntityTickers.iterator(); // Iterator<TickingBlockEntity> iterator = this.blockEntityTickers.iterator();
boolean flag = this.tickRateManager().runsNormally(); boolean flag = this.tickRateManager().runsNormally();
@@ -1355,9 +1350,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -1031,9 +1026,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
} }
this.blockEntityTickers.removeAll(toRemove); // Paper - Fix MC-117075 this.blockEntityTickers.removeAll(toRemove); // Paper - Fix MC-117075
@@ -1761,7 +1674,7 @@ index 8be636ef55f8f2cb0ed1edad42156b742281b044..e77db67592e13a06133cafb364f22768
} }
diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
index 27fccd091535f7587aaaa1621361dc1835381b89..885d7c9ef96dd3c7576c28606e5ab83d2a75de71 100644 index d490429ddbb8cd82aeda5e03540075c9167b095e..d556089907bb695a9d87df1961ef0b0ae4382cad 100644
--- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java --- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java
+++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java +++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
@@ -127,7 +127,6 @@ public final class NaturalSpawner { @@ -127,7 +127,6 @@ public final class NaturalSpawner {
@@ -1782,10 +1695,10 @@ index 27fccd091535f7587aaaa1621361dc1835381b89..885d7c9ef96dd3c7576c28606e5ab83d
// Paper start - Add mobcaps commands // Paper start - Add mobcaps commands
diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java
index 14aaabb6b9595847358f65ff01c81b179d9548ea..3dc9f10f00dd982ca28a66b364e5088c3413d5ef 100644 index dcfe68a51067b35057ef14813f57e7d91a0f84b6..78c3dabea3dd08ed1f4212375e8ef20e904a9d3a 100644
--- a/src/main/java/net/minecraft/world/level/block/Block.java --- a/src/main/java/net/minecraft/world/level/block/Block.java
+++ b/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java
@@ -107,13 +107,6 @@ public class Block extends BlockBehaviour implements ItemLike { @@ -106,13 +106,6 @@ public class Block extends BlockBehaviour implements ItemLike {
this != Blocks.STRUCTURE_BLOCK && this != Blocks.STRUCTURE_BLOCK &&
this != Blocks.JIGSAW; this != Blocks.JIGSAW;
} }
@@ -1819,18 +1732,18 @@ index cd0e43f4c53a746dd6183a8406269f9b11ad3571..54657ac895fb2fa9c58910d5421f0082
private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry(); private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry();
public CraftPersistentDataContainer persistentDataContainer; public CraftPersistentDataContainer persistentDataContainer;
diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
index f2a1787ba10bcb67ad5a2a36165bac55ea7f0a3e..184b69dc39749734f8176d3f3c2bf9f690a099f0 100644 index 5752576087e5ff411ff8c89fde7a761083945c23..95f306d6d896e6aa4ada7ee20880ed862e0e48d8 100644
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
@@ -792,7 +792,6 @@ public class LevelChunk extends ChunkAccess { @@ -622,7 +622,6 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
this.chunkHolder.getEntityChunk().callEntitiesLoadEvent(); // Paper - rewrite chunk system ((ca.spottedleaf.moonrise.patches.chunk_system.level.ChunkSystemServerLevel)this.level).moonrise$getChunkTaskScheduler().chunkHolderManager.getChunkHolder(this.locX, this.locZ).getEntityChunk().callEntitiesLoadEvent(); // Paper - rewrite chunk system
if (this.needsDecoration) { if (this.needsDecoration) {
- try (co.aikar.timings.Timing ignored = this.level.timings.chunkLoadPopulate.startTiming()) { // Paper - try (co.aikar.timings.Timing ignored = this.level.timings.chunkLoadPopulate.startTiming()) { // Paper
this.needsDecoration = false; this.needsDecoration = false;
java.util.Random random = new java.util.Random(); java.util.Random random = new java.util.Random();
random.setSeed(this.level.getSeed()); random.setSeed(this.level.getSeed());
@@ -812,7 +811,6 @@ public class LevelChunk extends ChunkAccess { @@ -642,7 +641,6 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
} }
} }
server.getPluginManager().callEvent(new org.bukkit.event.world.ChunkPopulateEvent(bukkitChunk)); server.getPluginManager().callEvent(new org.bukkit.event.world.ChunkPopulateEvent(bukkitChunk));
@@ -1838,7 +1751,7 @@ index f2a1787ba10bcb67ad5a2a36165bac55ea7f0a3e..184b69dc39749734f8176d3f3c2bf9f6
} }
} }
} }
@@ -1165,7 +1163,6 @@ public class LevelChunk extends ChunkAccess { @@ -979,7 +977,6 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
if (LevelChunk.this.isTicking(blockposition)) { if (LevelChunk.this.isTicking(blockposition)) {
try { try {
@@ -1846,8 +1759,8 @@ index f2a1787ba10bcb67ad5a2a36165bac55ea7f0a3e..184b69dc39749734f8176d3f3c2bf9f6
BlockState iblockdata = LevelChunk.this.getBlockState(blockposition); BlockState iblockdata = LevelChunk.this.getBlockState(blockposition);
if (this.blockEntity.getType().isValid(iblockdata)) { if (this.blockEntity.getType().isValid(iblockdata)) {
@@ -1188,14 +1185,9 @@ public class LevelChunk extends ChunkAccess { @@ -1002,14 +999,9 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
net.minecraft.world.level.chunk.LevelChunk.this.level.getCraftServer().getPluginManager().callEvent(new com.destroystokyo.paper.event.server.ServerExceptionEvent(new ServerInternalException(msg, throwable))); // Paper - ServerExceptionEvent net.minecraft.world.level.chunk.LevelChunk.this.level.getCraftServer().getPluginManager().callEvent(new com.destroystokyo.paper.event.server.ServerExceptionEvent(new com.destroystokyo.paper.exception.ServerInternalException(msg, throwable))); // Paper - ServerExceptionEvent
LevelChunk.this.removeBlockEntity(this.getPos()); LevelChunk.this.removeBlockEntity(this.getPos());
// Paper end - Prevent block entity and entity crashes // Paper end - Prevent block entity and entity crashes
- // Spigot start - // Spigot start
@@ -1862,10 +1775,10 @@ index f2a1787ba10bcb67ad5a2a36165bac55ea7f0a3e..184b69dc39749734f8176d3f3c2bf9f6
@Override @Override
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 0523fef009b23eb801acfb6bcc45c02dfbef1833..c8e424d6646f782c8fbd97c1e699115304983533 100644 index d10c10907cefc06afff7e0f4c4cbbca352410c25..ec341e053e8eb539d4401161245039c90609138c 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -474,7 +474,6 @@ public final class CraftServer implements Server { @@ -477,7 +477,6 @@ public final class CraftServer implements Server {
this.saveCommandsConfig(); this.saveCommandsConfig();
this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*"); this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*");
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions"); this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
@@ -1873,19 +1786,6 @@ index 0523fef009b23eb801acfb6bcc45c02dfbef1833..c8e424d6646f782c8fbd97c1e6991153
this.overrideSpawnLimits(); this.overrideSpawnLimits();
console.autosavePeriod = this.configuration.getInt("ticks-per.autosave"); console.autosavePeriod = this.configuration.getInt("ticks-per.autosave");
this.warningState = WarningState.value(this.configuration.getString("settings.deprecated-verbose")); this.warningState = WarningState.value(this.configuration.getString("settings.deprecated-verbose"));
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index 9f873c07bec896b6c91b306efa51e0f07da1c6a8..ce3572f8044d7a4732d9411a622be79c48da1346 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -375,8 +375,6 @@ public class Main {
tryPreloadClass("org.jline.terminal.impl.MouseSupport");
tryPreloadClass("org.jline.terminal.impl.MouseSupport$1");
tryPreloadClass("org.jline.terminal.Terminal$MouseTracking");
- tryPreloadClass("co.aikar.timings.TimingHistory");
- tryPreloadClass("co.aikar.timings.TimingHistory$MinuteReport");
tryPreloadClass("io.netty.channel.AbstractChannelHandlerContext");
tryPreloadClass("io.netty.channel.AbstractChannelHandlerContext$11");
tryPreloadClass("io.netty.channel.AbstractChannelHandlerContext$12");
diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
index 006adb2adb27c497ede69f87e78bc3e34499cbf8..4ee1c3461d21feab3a54e76a7c2ab80b6ea2ab38 100644 index 006adb2adb27c497ede69f87e78bc3e34499cbf8..4ee1c3461d21feab3a54e76a7c2ab80b6ea2ab38 100644
--- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java --- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
@@ -2027,7 +1927,7 @@ index b3e1adeb932da9b3bed16acd94e2f16da48a7c72..e9798517b9211c50a20ea5c69603aab3
} }
} }
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
index 2918b61675e16a0dd023d3ca10f232c4675bf4b0..c8dc6333cddbf25c8211be6d24ce39f5ee64b70a 100644 index 4250752a95301271f09590f0140f821a0090811a..cbb510df86d7470520a007cba3b915bf0f8b6c67 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -219,9 +219,7 @@ public final class CraftMagicNumbers implements UnsafeValues { @@ -219,9 +219,7 @@ public final class CraftMagicNumbers implements UnsafeValues {
@@ -2051,10 +1951,10 @@ index 2918b61675e16a0dd023d3ca10f232c4675bf4b0..c8dc6333cddbf25c8211be6d24ce39f5
@Override @Override
diff --git a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java diff --git a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java
index b4cca06a583fbb7918237de256f43ee61fd8ec6c..dd4a5f610e6e84a73051a8ed46e1961804356ca3 100644 index 9b82eb1cc56e3151ecbd526bb1064ab7ef32186b..f34d71d9e7fccb4b661475101b2c79144c65517d 100644
--- a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java --- a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java
+++ b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java +++ b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java
@@ -80,41 +80,6 @@ public class GaleGlobalConfiguration extends ConfigurationPart { @@ -66,41 +66,6 @@ public class GaleGlobalConfiguration extends ConfigurationPart {
public int premiumAccountSlowLoginTimeout = -1; // Gale - make slow login timeout configurable public int premiumAccountSlowLoginTimeout = -1; // Gale - make slow login timeout configurable
public boolean ignoreNullLegacyStructureData = false; // Gale - MultiPaper - ignore null legacy structure data public boolean ignoreNullLegacyStructureData = false; // Gale - MultiPaper - ignore null legacy structure data
@@ -2257,7 +2157,7 @@ index 139d946346594d2a59a8b2930c4eae794c880dbc..00000000000000000000000000000000
- -
-} -}
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
index 638bed116e4c36974b6096524f3f878a1ecb89c5..37e35606e3f47325db4da5deeff02aad9d541e87 100644 index bfd1999476debbd9798d51b2931dfa7e770a6e1f..87a815a942d15f2c1faf1f986bba864f9eea1351 100644
--- a/src/main/java/org/spigotmc/ActivationRange.java --- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -34,7 +34,6 @@ import net.minecraft.world.entity.projectile.FireworkRocketEntity; @@ -34,7 +34,6 @@ import net.minecraft.world.entity.projectile.FireworkRocketEntity;
@@ -2268,7 +2168,7 @@ index 638bed116e4c36974b6096524f3f878a1ecb89c5..37e35606e3f47325db4da5deeff02aad
import net.minecraft.world.entity.schedule.Activity; import net.minecraft.world.entity.schedule.Activity;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.AABB;
@@ -185,7 +184,6 @@ public class ActivationRange @@ -181,7 +180,6 @@ public class ActivationRange
*/ */
public static void activateEntities(Level world) public static void activateEntities(Level world)
{ {
@@ -2276,7 +2176,7 @@ index 638bed116e4c36974b6096524f3f878a1ecb89c5..37e35606e3f47325db4da5deeff02aad
final int miscActivationRange = world.spigotConfig.miscActivationRange; final int miscActivationRange = world.spigotConfig.miscActivationRange;
final int raiderActivationRange = world.spigotConfig.raiderActivationRange; final int raiderActivationRange = world.spigotConfig.raiderActivationRange;
final int animalActivationRange = world.spigotConfig.animalActivationRange; final int animalActivationRange = world.spigotConfig.animalActivationRange;
@@ -264,7 +262,6 @@ public class ActivationRange @@ -261,7 +259,6 @@ public class ActivationRange
} }
// Paper end // Paper end
} }

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Bump Dependencies
diff --git a/build.gradle.kts b/build.gradle.kts diff --git a/build.gradle.kts b/build.gradle.kts
index 59b84e4c4566e0185c6f7b002374e51c8415cad9..1d520295a7da79c6952ed950765647e2caf4315b 100644 index 397d93b63e412abb96cc8366c51c3927d760afb8..d6a307d6f949348559d3dc3e9bc6a8f98c8ac4f4 100644
--- a/build.gradle.kts --- a/build.gradle.kts
+++ b/build.gradle.kts +++ b/build.gradle.kts
@@ -25,7 +25,7 @@ dependencies { @@ -25,7 +25,7 @@ dependencies {
@@ -17,7 +17,7 @@ index 59b84e4c4566e0185c6f7b002374e51c8415cad9..1d520295a7da79c6952ed950765647e2
implementation("net.minecrell:terminalconsoleappender:1.3.0") implementation("net.minecrell:terminalconsoleappender:1.3.0")
implementation("net.kyori:adventure-text-serializer-ansi:4.17.0") // Keep in sync with adventureVersion from Paper-API build file implementation("net.kyori:adventure-text-serializer-ansi:4.17.0") // Keep in sync with adventureVersion from Paper-API build file
/* /*
@@ -34,28 +34,32 @@ dependencies { @@ -34,33 +34,43 @@ dependencies {
all its classes to check if they are plugins. all its classes to check if they are plugins.
Scanning takes about 1-2 seconds so adding this speeds up the server start. Scanning takes about 1-2 seconds so adding this speeds up the server start.
*/ */
@@ -37,10 +37,9 @@ index 59b84e4c4566e0185c6f7b002374e51c8415cad9..1d520295a7da79c6952ed950765647e2
implementation("org.ow2.asm:asm-commons:9.7") implementation("org.ow2.asm:asm-commons:9.7")
implementation("org.spongepowered:configurate-yaml:4.2.0-SNAPSHOT") // Paper - config files implementation("org.spongepowered:configurate-yaml:4.2.0-SNAPSHOT") // Paper - config files
implementation("commons-lang:commons-lang:2.6") implementation("commons-lang:commons-lang:2.6")
runtimeOnly("org.xerial:sqlite-jdbc:3.45.3.0") runtimeOnly("org.xerial:sqlite-jdbc:3.46.0.0")
- runtimeOnly("com.mysql:mysql-connector-j:8.3.0") runtimeOnly("com.mysql:mysql-connector-j:8.4.0")
- runtimeOnly("com.lmax:disruptor:3.4.4") // Paper - runtimeOnly("com.lmax:disruptor:3.4.4") // Paper
+ runtimeOnly("com.mysql:mysql-connector-j:8.4.0") // Leaf - Bump Dependencies
+ runtimeOnly("com.lmax:disruptor:3.4.4") // Paper // Leaf - Bump Dependencies - Waiting Log4j 3.x to support disruptor 4.0.0 + runtimeOnly("com.lmax:disruptor:3.4.4") // Paper // Leaf - Bump Dependencies - Waiting Log4j 3.x to support disruptor 4.0.0
// Paper start - Use Velocity cipher // Paper start - Use Velocity cipher
- implementation("com.velocitypowered:velocity-native:3.1.2-SNAPSHOT") { - implementation("com.velocitypowered:velocity-native:3.1.2-SNAPSHOT") {
@@ -58,14 +57,14 @@ index 59b84e4c4566e0185c6f7b002374e51c8415cad9..1d520295a7da79c6952ed950765647e2
+ runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.20") + runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.20")
+ // Leaf end + // Leaf end
// Purpur start
implementation("org.mozilla:rhino-runtime:1.7.15")
@@ -63,10 +67,10 @@ dependencies {
implementation("dev.omega24:upnp4j:1.0")
// Purpur end
- testImplementation("io.github.classgraph:classgraph:4.8.47") // Paper - mob goal test - testImplementation("io.github.classgraph:classgraph:4.8.47") // Paper - mob goal test
- testImplementation("org.junit.jupiter:junit-jupiter:5.10.2") - testImplementation("org.junit.jupiter:junit-jupiter:5.10.2")
+ // Purpur start
+ implementation("org.mozilla:rhino-runtime:1.7.15")
+ implementation("org.mozilla:rhino-engine:1.7.15")
+ implementation("dev.omega24:upnp4j:1.0")
+ // Purpur end
+
+ testImplementation("io.github.classgraph:classgraph:4.8.173") // Paper - mob goal test // Leaf - Bump Dependencies + testImplementation("io.github.classgraph:classgraph:4.8.173") // Paper - mob goal test // Leaf - Bump Dependencies
+ testImplementation("org.junit.jupiter:junit-jupiter:5.11.0-M2") // Leaf - Bump Dependencies + testImplementation("org.junit.jupiter:junit-jupiter:5.11.0-M2") // Leaf - Bump Dependencies
testImplementation("org.hamcrest:hamcrest:2.2") testImplementation("org.hamcrest:hamcrest:2.2")
@@ -74,7 +73,7 @@ index 59b84e4c4566e0185c6f7b002374e51c8415cad9..1d520295a7da79c6952ed950765647e2
testImplementation("org.ow2.asm:asm-tree:9.7") testImplementation("org.ow2.asm:asm-tree:9.7")
testImplementation("org.junit-pioneer:junit-pioneer:2.2.0") // Paper - CartesianTest testImplementation("org.junit-pioneer:junit-pioneer:2.2.0") // Paper - CartesianTest
implementation("net.neoforged:srgutils:1.0.9") // Paper - mappings handling implementation("net.neoforged:srgutils:1.0.9") // Paper - mappings handling
@@ -77,6 +81,8 @@ dependencies { @@ -71,6 +81,8 @@ dependencies {
implementation("io.papermc:reflection-rewriter-runtime:$reflectionRewriterVersion") implementation("io.papermc:reflection-rewriter-runtime:$reflectionRewriterVersion")
implementation("io.papermc:reflection-rewriter-proxy-generator:$reflectionRewriterVersion") implementation("io.papermc:reflection-rewriter-proxy-generator:$reflectionRewriterVersion")
// Paper end - Remap reflection // Paper end - Remap reflection
@@ -83,7 +82,7 @@ index 59b84e4c4566e0185c6f7b002374e51c8415cad9..1d520295a7da79c6952ed950765647e2
} }
paperweight { paperweight {
@@ -270,3 +276,8 @@ sourceSets { @@ -264,3 +276,8 @@ sourceSets {
} }
} }
// Gale end - package license into jar // Gale end - package license into jar

View File

@@ -5,19 +5,19 @@ Subject: [PATCH] Remove vanilla username check
diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
index 52c5ce7339029d7cc3bb1164131a9f96598760c0..1d496b2efc44065e91b4d612e17f38382489e876 100644 index 80fdfc08e57ff3d524956aa9651bfe3cba3efc7b..00d8b8d4d2d1c73c4eeeaa9483cca2999df65a54 100644
--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
@@ -181,7 +181,8 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, @@ -181,7 +181,8 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
// Gale start - JettPack - reduce array allocations public void handleHello(ServerboundHelloPacket packet) {
Validate.validState(this.state == ServerLoginPacketListenerImpl.State.HELLO, "Unexpected hello packet", ArrayConstants.emptyObjectArray); Validate.validState(this.state == ServerLoginPacketListenerImpl.State.HELLO, "Unexpected hello packet", new Object[0]);
// Paper start - Validate usernames // Paper start - Validate usernames
- if (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode() - if (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode()
+ if (!org.dreeam.leaf.config.modules.misc.RemoveVanillaUsernameCheck.enabled // Leaf - Remove Vanilla username check + if (!org.dreeam.leaf.config.modules.misc.RemoveVanillaUsernameCheck.enabled // Leaf - Remove Vanilla username check
+ && io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode() + && io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode()
&& io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.performUsernameValidation && io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.performUsernameValidation
&& !this.iKnowThisMayNotBeTheBestIdeaButPleaseDisableUsernameValidation) { && !this.iKnowThisMayNotBeTheBestIdeaButPleaseDisableUsernameValidation) {
Validate.validState(StringUtil.isReasonablePlayerName(packet.name()), "Invalid characters in username", ArrayConstants.emptyObjectArray); Validate.validState(StringUtil.isReasonablePlayerName(packet.name()), "Invalid characters in username", new Object[0]);
diff --git a/src/main/java/org/dreeam/leaf/config/modules/misc/RemoveVanillaUsernameCheck.java b/src/main/java/org/dreeam/leaf/config/modules/misc/RemoveVanillaUsernameCheck.java diff --git a/src/main/java/org/dreeam/leaf/config/modules/misc/RemoveVanillaUsernameCheck.java b/src/main/java/org/dreeam/leaf/config/modules/misc/RemoveVanillaUsernameCheck.java
new file mode 100644 new file mode 100644
index 0000000000000000000000000000000000000000..2dcdf5adff80f63499e6d160ff24313653cfb315 index 0000000000000000000000000000000000000000..2dcdf5adff80f63499e6d160ff24313653cfb315

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Remove Spigot Check for Broken BungeeCord Configurations
diff --git a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java
index 8e90f35218e66690359dac35828a1485a77f34c1..a544a93deccdff9c7fe6b8cca9650ce8c2a69a7d 100644 index a1e39d4476e932da3d4e0c363ce22eb5be2b8e6c..e4911a420c81a371142f556584cc05a4f76334e1 100644
--- a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java
@@ -181,7 +181,7 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL @@ -179,7 +179,7 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL
{ {
this.connection.spoofedProfile = ServerHandshakePacketListenerImpl.gson.fromJson(split[3], com.mojang.authlib.properties.Property[].class); this.connection.spoofedProfile = ServerHandshakePacketListenerImpl.gson.fromJson(split[3], com.mojang.authlib.properties.Property[].class);
} }

View File

@@ -7,10 +7,10 @@ This Check is added in 1.17.x -> 1.18.x that updated by Mojang.
By removing this check, it gives ability for hackers to use some modules of hack clients. By removing this check, it gives ability for hackers to use some modules of hack clients.
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index c53e01260b4ca6f637b3d55798cda4cab822b5fe..d107cd93a6d43f060a7bcfc4a3ee0c82c51bc9b9 100644 index dc4a4d7de838d8756b0f5cbbc149b1d5cd2b4dd6..e26963501b7608097fc1be8f2c9530b082f2c0ec 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2008,7 +2008,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1948,7 +1948,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
Vec3 vec3d1 = vec3d.subtract(Vec3.atCenterOf(blockposition)); Vec3 vec3d1 = vec3d.subtract(Vec3.atCenterOf(blockposition));
double d0 = 1.0000001D; double d0 = 1.0000001D;

View File

@@ -7,10 +7,10 @@ Original license: MIT
Original project: https://github.com/KeYiMC/KeYi Original project: https://github.com/KeYiMC/KeYi
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index aac21ff5418f76b0d06b6a49a4021bde194cf1da..20cf62169210ba0a5de45ed68e3453cc63a07102 100644 index 41863584c3a85068b807a5aeb93c3da70f133b47..7a7a2acca5980ab3d79346f47e4153dd6c98939b 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -3626,4 +3626,27 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -3647,4 +3647,27 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().connection.send(new net.minecraft.network.protocol.game.ClientboundPlayerCombatKillPacket(getEntityId(), io.papermc.paper.adventure.PaperAdventure.asVanilla(message))); this.getHandle().connection.send(new net.minecraft.network.protocol.game.ClientboundPlayerCombatKillPacket(getEntityId(), io.papermc.paper.adventure.PaperAdventure.asVanilla(message)));
} }
// Purpur end // Purpur end

View File

@@ -7,10 +7,10 @@ Original license: MIT
Original project: https://github.com/KeYiMC/KeYi Original project: https://github.com/KeYiMC/KeYi
diff --git a/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java diff --git a/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java
index 758cc7862121e7c27db5e087f816aab566320162..c3c9fc0d126e3f258fa8f06901fb3cac0d0ab289 100644 index 76718d966a326ba82a92217a9f0fdf5b17f9d643..46254b2f500ad9bec248cd057c87bc729c592ee0 100644
--- a/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java --- a/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java
+++ b/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java +++ b/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java
@@ -137,7 +137,7 @@ public class GaleWorldConfiguration extends ConfigurationPart { @@ -136,7 +136,7 @@ public class GaleWorldConfiguration extends ConfigurationPart {
public boolean loadPortalDestinationChunkBeforeEntityTeleport = false; // Gale - MultiPaper - load portal destination chunk before entity teleport public boolean loadPortalDestinationChunkBeforeEntityTeleport = false; // Gale - MultiPaper - load portal destination chunk before entity teleport
} }

View File

@@ -7,10 +7,10 @@ Original license: MIT
Original project: https://github.com/KeYiMC/KeYi Original project: https://github.com/KeYiMC/KeYi
diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
index e380d1ea5b3dd6e91e79f6d7bd5d980a2c32315a..18d1be51ca12c3ccac5a5130667c47c1f1235935 100644 index f096a9023fe0b54160e957dd5c6baa489ed0c410..7db0a4b53f27622ad2fd85a451613fc83ea87052 100644
--- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
+++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
@@ -356,7 +356,7 @@ public class ItemEntity extends Entity implements TraceableEntity { @@ -357,7 +357,7 @@ public class ItemEntity extends Entity implements TraceableEntity {
ItemStack itemstack1 = other.getItem(); ItemStack itemstack1 = other.getItem();
if (Objects.equals(this.target, other.target) && ItemEntity.areMergable(itemstack, itemstack1)) { if (Objects.equals(this.target, other.target) && ItemEntity.areMergable(itemstack, itemstack1)) {

View File

@@ -11,15 +11,15 @@ This is a fully vanilla optimization. Improves: [Blast]Furnace/Campfire/Smoker/S
This was mostly made for the auto crafting table, since the performance boost is much more visible while using that mod This was mostly made for the auto crafting table, since the performance boost is much more visible while using that mod
diff --git a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java diff --git a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java
index a31326e24cb68472c81cd781c5e3041772712862..0662e7afca15cab700dc61fe7de1d62eed27405d 100644 index de7c77c1b25680ecc65f0f43f2391aff269a974f..fa0eccdb5f0b6a7bc1426d32a245095e7846b175 100644
--- a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java --- a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java
+++ b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java +++ b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java
@@ -132,7 +132,7 @@ public class RecipeManager extends SimpleJsonResourceReloadListener { @@ -128,7 +128,7 @@ public class RecipeManager extends SimpleJsonResourceReloadListener {
} }
public <C extends Container, T extends Recipe<C>> List<RecipeHolder<T>> getAllRecipesFor(RecipeType<T> type) { public <I extends RecipeInput, T extends Recipe<I>> List<RecipeHolder<T>> getAllRecipesFor(RecipeType<T> type) {
- return List.copyOf(this.byType(type)); - return List.copyOf(this.byType(type));
+ return new java.util.ArrayList<>(this.byType(type)); // Leaf - Carpet-Fixes + return new java.util.ArrayList<>(this.byType(type)); // Leaf - Carpet-Fixes
} }
public <C extends Container, T extends Recipe<C>> List<RecipeHolder<T>> getRecipesFor(RecipeType<T> type, C inventory, Level world) { public <I extends RecipeInput, T extends Recipe<I>> List<RecipeHolder<T>> getRecipesFor(RecipeType<T> type, I input, Level world) {

View File

@@ -8,10 +8,10 @@ Original license: GPL v3
Original project: https://github.com/Akarin-project/Akarin Original project: https://github.com/Akarin-project/Akarin
diff --git a/src/main/java/net/minecraft/server/players/StoredUserList.java b/src/main/java/net/minecraft/server/players/StoredUserList.java diff --git a/src/main/java/net/minecraft/server/players/StoredUserList.java b/src/main/java/net/minecraft/server/players/StoredUserList.java
index 1516232f116f1d48fe383d8c05c7dcc63b38f96a..523255345df9f4d84c5fa514de42620c4605d446 100644 index c038da20b76c0b7b1c18471b20be01e849d29f3a..44b9c8a7c3cd22c0c0e148744e4096d7330f4f34 100644
--- a/src/main/java/net/minecraft/server/players/StoredUserList.java --- a/src/main/java/net/minecraft/server/players/StoredUserList.java
+++ b/src/main/java/net/minecraft/server/players/StoredUserList.java +++ b/src/main/java/net/minecraft/server/players/StoredUserList.java
@@ -104,6 +104,7 @@ public abstract class StoredUserList<K, V extends StoredUserEntry<K>> { @@ -103,6 +103,7 @@ public abstract class StoredUserList<K, V extends StoredUserEntry<K>> {
} }
public void save() throws IOException { public void save() throws IOException {
@@ -19,7 +19,7 @@ index 1516232f116f1d48fe383d8c05c7dcc63b38f96a..523255345df9f4d84c5fa514de42620c
this.removeExpired(); // Paper - remove expired values before saving this.removeExpired(); // Paper - remove expired values before saving
JsonArray jsonarray = new JsonArray(); JsonArray jsonarray = new JsonArray();
Stream<JsonObject> stream = this.map.values().stream().map((jsonlistentry) -> { // CraftBukkit - decompile error Stream<JsonObject> stream = this.map.values().stream().map((jsonlistentry) -> { // CraftBukkit - decompile error
@@ -115,6 +116,8 @@ public abstract class StoredUserList<K, V extends StoredUserEntry<K>> { @@ -114,6 +115,8 @@ public abstract class StoredUserList<K, V extends StoredUserEntry<K>> {
Objects.requireNonNull(jsonarray); Objects.requireNonNull(jsonarray);
stream.forEach(jsonarray::add); stream.forEach(jsonarray::add);
@@ -28,7 +28,7 @@ index 1516232f116f1d48fe383d8c05c7dcc63b38f96a..523255345df9f4d84c5fa514de42620c
BufferedWriter bufferedwriter = Files.newWriter(this.file, StandardCharsets.UTF_8); BufferedWriter bufferedwriter = Files.newWriter(this.file, StandardCharsets.UTF_8);
try { try {
@@ -135,6 +138,13 @@ public abstract class StoredUserList<K, V extends StoredUserEntry<K>> { @@ -134,6 +137,13 @@ public abstract class StoredUserList<K, V extends StoredUserEntry<K>> {
bufferedwriter.close(); bufferedwriter.close();
} }

View File

@@ -7,39 +7,39 @@ Original license: MIT
Original project: https://github.com/Cryptite/Slice Original project: https://github.com/Cryptite/Slice
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index fd3f177012d82fe774069b4c53f7efef3e9b991f..9b97d5ca67c0e53f318a54465708e21ae906e994 100644 index d573ae3fee994614bcc6c699bcbe8210874ca414..30f984553e823b3c928b0e2181baf5d2058c2d84 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -303,6 +303,7 @@ public class ServerPlayer extends Player { @@ -306,6 +306,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple
private boolean tpsBar = false; // Purpur private boolean tpsBar = false; // Purpur
private boolean compassBar = false; // Purpur private boolean compassBar = false; // Purpur
private boolean ramBar = false; // Purpur private boolean ramBar = false; // Purpur
+ public boolean smoothWorldTeleport; // Slice + public boolean smoothWorldTeleport; // Slice
// Paper start - replace player chunk loader // Paper start - rewrite chunk system
private final java.util.concurrent.atomic.AtomicReference<io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances> viewDistances = new java.util.concurrent.atomic.AtomicReference<>(new io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances(-1, -1, -1)); private ca.spottedleaf.moonrise.patches.chunk_system.player.RegionizedPlayerChunkLoader.PlayerChunkLoaderData chunkLoader;
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 9250db41e26d2ffa96146782e898165591f9e819..2e98c6598e589b498991c745058db3c0efb9cbf6 100644 index 33fd3c88f84a5d6f7f7c0212f364a83870c88fc7..360b52002fe8bc9dd27a4fe3831ed6f5dfe8d6c6 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java --- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -969,10 +969,10 @@ public abstract class PlayerList { @@ -898,10 +898,10 @@ public abstract class PlayerList {
ServerLevel worldserver2 = entityplayer1.serverLevel(); ServerLevel worldserver1 = entityplayer1.serverLevel();
LevelData worlddata = worldserver2.getLevelData(); LevelData worlddata = worldserver1.getLevelData();
- entityplayer1.connection.send(new ClientboundRespawnPacket(entityplayer1.createCommonSpawnInfo(worldserver2), (byte) i)); - entityplayer1.connection.send(new ClientboundRespawnPacket(entityplayer1.createCommonSpawnInfo(worldserver1), (byte) i));
+ if (!entityplayer.smoothWorldTeleport) entityplayer1.connection.send(new ClientboundRespawnPacket(entityplayer1.createCommonSpawnInfo(worldserver2), (byte) i)); // Slice + if (!entityplayer.smoothWorldTeleport) entityplayer1.connection.send(new ClientboundRespawnPacket(entityplayer1.createCommonSpawnInfo(worldserver1), (byte) i)); // Slice
entityplayer1.connection.send(new ClientboundSetChunkCacheRadiusPacket(worldserver1.getWorld().getSendViewDistance())); // Spigot // Paper - replace old player chunk management entityplayer1.connection.send(new ClientboundSetChunkCacheRadiusPacket(worldserver1.spigotConfig.viewDistance)); // Spigot
entityplayer1.connection.send(new ClientboundSetSimulationDistancePacket(worldserver1.getWorld().getSimulationDistance())); // Spigot // Paper - replace old player chunk management entityplayer1.connection.send(new ClientboundSetSimulationDistancePacket(worldserver1.spigotConfig.simulationDistance)); // Spigot
- entityplayer1.connection.teleport(CraftLocation.toBukkit(entityplayer1.position(), worldserver2.getWorld(), entityplayer1.getYRot(), entityplayer1.getXRot())); // CraftBukkit - entityplayer1.connection.teleport(CraftLocation.toBukkit(entityplayer1.position(), worldserver1.getWorld(), entityplayer1.getYRot(), entityplayer1.getXRot())); // CraftBukkit
+ if (!entityplayer.smoothWorldTeleport) entityplayer1.connection.teleport(CraftLocation.toBukkit(entityplayer1.position(), worldserver2.getWorld(), entityplayer1.getYRot(), entityplayer1.getXRot())); // CraftBukkit // Slice + if (!entityplayer.smoothWorldTeleport) entityplayer1.connection.teleport(CraftLocation.toBukkit(entityplayer1.position(), worldserver1.getWorld(), entityplayer1.getYRot(), entityplayer1.getXRot())); // CraftBukkit // Slice
entityplayer1.connection.send(new ClientboundSetDefaultSpawnPositionPacket(worldserver1.getSharedSpawnPos(), worldserver1.getSharedSpawnAngle())); entityplayer1.connection.send(new ClientboundSetDefaultSpawnPositionPacket(worldserver.getSharedSpawnPos(), worldserver.getSharedSpawnAngle()));
entityplayer1.connection.send(new ClientboundChangeDifficultyPacket(worlddata.getDifficulty(), worlddata.isDifficultyLocked())); entityplayer1.connection.send(new ClientboundChangeDifficultyPacket(worlddata.getDifficulty(), worlddata.isDifficultyLocked()));
entityplayer1.connection.send(new ClientboundSetExperiencePacket(entityplayer1.experienceProgress, entityplayer1.totalExperience, entityplayer1.experienceLevel)); entityplayer1.connection.send(new ClientboundSetExperiencePacket(entityplayer1.experienceProgress, entityplayer1.totalExperience, entityplayer1.experienceLevel));
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 20cf62169210ba0a5de45ed68e3453cc63a07102..581ef3deffeb66d5d06951e6eadffb05b26a50c4 100644 index 7a7a2acca5980ab3d79346f47e4153dd6c98939b..cf85b3af38258fa34e8f67d1f002a521cc59c81b 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1348,6 +1348,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -1361,6 +1361,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
// Paper end // Paper end
} }

View File

@@ -7,34 +7,33 @@ Original license: GPLv3
Original project: https://github.com/ProjectEdenGG/Parchment Original project: https://github.com/ProjectEdenGG/Parchment
diff --git a/src/main/java/io/papermc/paper/command/subcommands/FixLightCommand.java b/src/main/java/io/papermc/paper/command/subcommands/FixLightCommand.java diff --git a/src/main/java/io/papermc/paper/command/subcommands/FixLightCommand.java b/src/main/java/io/papermc/paper/command/subcommands/FixLightCommand.java
index 56524cbe4303901007e1e7fb3703a19efbf79ae7..e461c736e9f386fd7b6c96757f827bec361b78d8 100644 index 85950a1aa732ab8c01ad28bec9e0de140e1a172e..8e8d1a38290c2dc3f88deda64d050e89273a5b89 100644
--- a/src/main/java/io/papermc/paper/command/subcommands/FixLightCommand.java --- a/src/main/java/io/papermc/paper/command/subcommands/FixLightCommand.java
+++ b/src/main/java/io/papermc/paper/command/subcommands/FixLightCommand.java +++ b/src/main/java/io/papermc/paper/command/subcommands/FixLightCommand.java
@@ -87,18 +87,21 @@ public final class FixLightCommand implements PaperSubcommand { @@ -95,17 +95,20 @@ public final class FixLightCommand implements PaperSubcommand {
lightengine.relight(chunks, ((StarLightLightingProvider)lightengine).starlight$serverRelightChunks(chunks,
(final ChunkPos chunkPos) -> { (final ChunkPos chunkPos) -> {
++relitChunks[0]; ++relitChunks[0];
- sender.getBukkitEntity().sendMessage(text().color(DARK_AQUA).append( - sender.getBukkitEntity().sendMessage(text().color(DARK_AQUA).append(
- text("Relit chunk ", BLUE), text(chunkPos.toString()), - text("Relit chunk ", BLUE), text(chunkPos.toString()),
- text(", progress: ", BLUE), text((int) (Math.round(100.0 * (double) (relitChunks[0]) / (double) pending[0])) + "%") - text(", progress: ", BLUE), text(ONE_DECIMAL_PLACES.get().format(100.0 * (double) (relitChunks[0]) / (double) pending[0]) + "%")
- )); - ));
+ sender.getBukkitEntity().sendActionBar(text().color(DARK_AQUA).append( + sender.getBukkitEntity().sendActionBar(text().color(DARK_AQUA).append(
+ text("Relighting Chunks: ", DARK_AQUA), text(chunkPos.toString()), + text("Relighting Chunks: ", DARK_AQUA), text(chunkPos.toString()),
+ text(" " + relitChunks[0], net.kyori.adventure.text.format.NamedTextColor.YELLOW), + text(" " + relitChunks[0], net.kyori.adventure.text.format.NamedTextColor.YELLOW),
+ text("/", DARK_AQUA), + text("/", DARK_AQUA),
+ text(pending[0] + " ", net.kyori.adventure.text.format.NamedTextColor.YELLOW), + text(pending[0] + " ", net.kyori.adventure.text.format.NamedTextColor.YELLOW),
+ text("(" + (int) (Math.round(100.0 * (double) (relitChunks[0]) / (double) pending[0])) + "%)", net.kyori.adventure.text.format.NamedTextColor.YELLOW) + text("(" + ONE_DECIMAL_PLACES.get().format(100.0 * (double) (relitChunks[0]) / (double) pending[0]) + "%)", net.kyori.adventure.text.format.NamedTextColor.YELLOW)
+ )); // Leaf - Parchment - Make FixLight use action bar + )); // Leaf - Parchment - Make FixLight use action bar
}, },
(final int totalRelit) -> { (final int totalRelit) -> {
final long end = System.nanoTime(); final long end = System.nanoTime();
final long diff = Math.round(1.0e-6 * (end - start));
sender.getBukkitEntity().sendMessage(text().color(DARK_AQUA).append( sender.getBukkitEntity().sendMessage(text().color(DARK_AQUA).append(
- text("Relit ", BLUE), text(totalRelit), - text("Relit ", BLUE), text(totalRelit),
- text(" chunks. Took ", BLUE), text(diff + "ms") - text(" chunks. Took ", BLUE), text(ONE_DECIMAL_PLACES.get().format(1.0e-6 * (end - start)) + "ms")
- )); - ));
+ text("Relit ", DARK_AQUA), text(totalRelit, net.kyori.adventure.text.format.NamedTextColor.YELLOW), + text("Relit ", DARK_AQUA), text(totalRelit, net.kyori.adventure.text.format.NamedTextColor.YELLOW),
+ text(" chunks. Took ", DARK_AQUA), text(diff + "ms", net.kyori.adventure.text.format.NamedTextColor.YELLOW) + text(" chunks. Took ", DARK_AQUA), text(ONE_DECIMAL_PLACES.get().format(1.0e-6 * (end - start)) + "ms", net.kyori.adventure.text.format.NamedTextColor.YELLOW)
+ )); // Leaf - Parchment - Make FixLight use action bar + )); // Leaf - Parchment - Make FixLight use action bar
if (done != null) { if (done != null) {
done.run(); done.run();