Updated Upstream (Paper)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@484d6bf [ci skip] Move some disruptive patches back
PaperMC/Paper@52619e7 [ci skip] Add more patch identifying comments
PaperMC/Paper@e660379 [ci skip] Move some disruptive patches back
PaperMC/Paper@c57d1aa Move diffs around to compile without later ones applied
PaperMC/Paper@581b101 Add world to Entity AddTo/RemoveFrom Events (#10183)
PaperMC/Paper@24dc2bf Add BlockStateMeta#clearBlockState (#10160)
PaperMC/Paper@76da4bc Expose LootTable of DecoratedPot (#10023)
PaperMC/Paper@11645e3 [ci skip] (Mostly) finish adding identifying patch comments
PaperMC/Paper@51bef80 [ci skip] Remove removed patches
PaperMC/Paper@ad2cf68 [ci skip] Move chunk system patch back a bit
PaperMC/Paper@d405ff1 [ci skip] Fixup last commit
PaperMC/Paper@a4a08b7 [ci skip] Move chunk system patch a bit back
PaperMC/Paper@b700460 Convert average tick value in the GUI to the correct granularity
PaperMC/Paper@1831240 [ci skip] Move chunk system patch back
This commit is contained in:
granny
2024-01-25 01:07:43 -08:00
parent 11391a2b82
commit 8ac38d927f
63 changed files with 422 additions and 432 deletions

View File

@@ -2,7 +2,7 @@ group = org.purpurmc.purpur
version = 1.20.4-R0.1-SNAPSHOT version = 1.20.4-R0.1-SNAPSHOT
mcVersion = 1.20.4 mcVersion = 1.20.4
paperCommit = 25013d997057eb89471d285db2a4b40acde6272d paperCommit = 1831240d1c48086fc0199584787cd2013d4d4b5f
org.gradle.caching = true org.gradle.caching = true
org.gradle.parallel = true org.gradle.parallel = true

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Purpur client support
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index ae61a39b25267b84fe0b8766e4b12d9b24b44ded..515f1d5d6a5674e5667d61651f27ca6bb6823ad5 100644 index 815631a6157b87a9ead270fe0b11ac3892a3fbf4..f6f3493163fdc145973d1417b5cd4c4f5dddbf8b 100644
--- a/src/main/java/org/bukkit/entity/Player.java --- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java
@@ -3574,4 +3574,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @@ -3578,4 +3578,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@Override @Override
Spigot spigot(); Spigot spigot();
// Spigot end // Spigot end

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] AFK API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 515f1d5d6a5674e5667d61651f27ca6bb6823ad5..65dfe7600a7aa7e7cc30915f04f39fde2afba688 100644 index f6f3493163fdc145973d1417b5cd4c4f5dddbf8b..63b2f4dc478397ccadc61f8538914ff3eff808cd 100644
--- a/src/main/java/org/bukkit/entity/Player.java --- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java
@@ -3582,5 +3582,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @@ -3586,5 +3586,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @return True if Player uses Purpur Client * @return True if Player uses Purpur Client
*/ */
public boolean usesPurpurClient(); public boolean usesPurpurClient();

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Debug Marker API
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index 610887890529db62887174a10e1687ea1883fafa..109304f8064ab2fab57f9c0f1745e446e6748b3d 100644 index ab6c060717c01ff6d6a6153c29f2f7aa4f3a0588..2bb2b9ba757d18510e3f45304cfbb56c28113ed7 100644
--- a/src/main/java/org/bukkit/Bukkit.java --- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java
@@ -2880,5 +2880,89 @@ public final class Bukkit { @@ -2880,5 +2880,89 @@ public final class Bukkit {
@@ -179,7 +179,7 @@ index c001488119c64f9ee2babce29a8ff9f86aec9bfb..529fb1beadefc79ce6bf5755d5223301
// Purpur end // Purpur end
} }
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index 8368b34d071f4f2c687e753ae52de4c03e3ac9f9..eea802fbee51e919595f6501161bf2fd58d6a1c1 100644 index 87ab8d4d5f6311c88572fa9a5536aca991e2e86b..3d4481ea5328735357a7c60c99e5b3a073e7aa0f 100644
--- a/src/main/java/org/bukkit/World.java --- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java
@@ -4180,6 +4180,76 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient @@ -4180,6 +4180,76 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
@@ -260,10 +260,10 @@ index 8368b34d071f4f2c687e753ae52de4c03e3ac9f9..eea802fbee51e919595f6501161bf2fd
/** /**
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 65dfe7600a7aa7e7cc30915f04f39fde2afba688..73415adcdd161b3b3b79be14967f805df2733030 100644 index 63b2f4dc478397ccadc61f8538914ff3eff808cd..05dd1b62940920883c8709ea36a29e9f4574caa0 100644
--- a/src/main/java/org/bukkit/entity/Player.java --- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java
@@ -3602,5 +3602,75 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @@ -3606,5 +3606,75 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @deprecated Use {@link #resetIdleDuration()} instead * @deprecated Use {@link #resetIdleDuration()} instead
*/ */
void resetIdleTimer(); void resetIdleTimer();

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add death screen API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 73415adcdd161b3b3b79be14967f805df2733030..3aa79be25d63f704170baaf799482ccdde6a2830 100644 index 05dd1b62940920883c8709ea36a29e9f4574caa0..48ef9837cc26313e76678555d7187eb3b9c8e4d7 100644
--- a/src/main/java/org/bukkit/entity/Player.java --- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java
@@ -3672,5 +3672,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @@ -3676,5 +3676,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* Clears all debug block highlights * Clears all debug block highlights
*/ */
void clearBlockHighlights(); void clearBlockHighlights();

View File

@@ -86,10 +86,10 @@ index 376e8983fdfdbb6c3e5fd8ad0f6a05e655b622bf..658e9b4590a82d179907feea04e129fd
+ classpath(sourceSets.main.map { it.runtimeClasspath }) + classpath(sourceSets.main.map { it.runtimeClasspath })
} }
diff --git a/src/main/java/co/aikar/timings/TimingsExport.java b/src/main/java/co/aikar/timings/TimingsExport.java diff --git a/src/main/java/co/aikar/timings/TimingsExport.java b/src/main/java/co/aikar/timings/TimingsExport.java
index a2f71a6d1a9e98133dff6cd0f625da9435a8af14..ff940e43ca35094bbcae6c7d471d3c4aeb7c1727 100644 index 7620c72a4c243cbeea245203ce03a97cbfa7d922..b35a9f4c5f8960864c402ede8a51fb5ab9c4fcc0 100644
--- a/src/main/java/co/aikar/timings/TimingsExport.java --- a/src/main/java/co/aikar/timings/TimingsExport.java
+++ b/src/main/java/co/aikar/timings/TimingsExport.java +++ b/src/main/java/co/aikar/timings/TimingsExport.java
@@ -242,7 +242,8 @@ public class TimingsExport extends Thread { @@ -240,7 +240,8 @@ public class TimingsExport extends Thread {
parent.put("config", createObject( parent.put("config", createObject(
pair("spigot", mapAsJSON(Bukkit.spigot().getSpigotConfig(), null)), pair("spigot", mapAsJSON(Bukkit.spigot().getSpigotConfig(), null)),
pair("bukkit", mapAsJSON(Bukkit.spigot().getBukkitConfig(), null)), pair("bukkit", mapAsJSON(Bukkit.spigot().getBukkitConfig(), null)),
@@ -1497,19 +1497,19 @@ index ba12919c3f9aec34a9e64993b143ae92be5eb172..9efeab9078e2d08903e482718b840797
} else { } else {
this.lastTimeStamp = body.timeStamp(); this.lastTimeStamp = body.timeStamp();
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 49ab2773658a2c6fababa316707762a8e2b19c58..9e632e6d865a802119aa70a2f393d3cab46e9aae 100644 index 23d2264dfc4f763a7198eb543e7f86a5a5aa85c3..c51485db18db179be33b4416debbc30c93bdf5c2 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
@@ -314,6 +314,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -312,6 +312,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// Paper start - lag compensation public volatile boolean abnormalExit = false; // Paper
public static final long SERVER_INIT = System.nanoTime(); public static final long SERVER_INIT = System.nanoTime(); // Paper - Lag compensation
// Paper end - 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("MobSpawning"); // Pufferfish - optimize mob spawning
+
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();
@@ -1217,6 +1219,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa Thread thread = new io.papermc.paper.util.TickThread(() -> { // Paper - rewrite chunk system
@@ -1214,6 +1216,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.profiler.popPush("nextTickWait"); this.profiler.popPush("nextTickWait");
this.mayHaveDelayedTasks = true; this.mayHaveDelayedTasks = true;
this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + i, this.nextTickTimeNanos); this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + i, this.nextTickTimeNanos);
@@ -1522,16 +1522,16 @@ index 49ab2773658a2c6fababa316707762a8e2b19c58..9e632e6d865a802119aa70a2f393d3ca
this.waitUntilNextTick(); this.waitUntilNextTick();
if (flag) { if (flag) {
this.tickRateManager.endTickWork(); this.tickRateManager.endTickWork();
@@ -1852,7 +1860,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1850,7 +1858,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@DontObfuscate @DontObfuscate
public String getServerModName() { public String getServerModName() {
- return "Paper"; // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla! - return "Paper"; // Paper
+ return "Pufferfish"; // Pufferfish - Pufferfish > // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla! + return "Pufferfish"; // Pufferfish - Pufferfish > // Paper
} }
public SystemReport fillSystemReport(SystemReport details) { public SystemReport fillSystemReport(SystemReport details) {
@@ -2439,6 +2447,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -2437,6 +2445,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} }
public ProfilerFiller getProfiler() { public ProfilerFiller getProfiler() {
@@ -1561,7 +1561,7 @@ index 6de6dad36203479677a29ad61e21bc369d4e5513..c5f92c80d7ca1e1c7f5b9304a5a1173e
} }
} }
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 424de333bf4fc5632410c689d9b17b2eab3371c4..b72969b3bc4319387e3946ea01c5b05acd8a87cb 100644 index 5a7278b093e37b95fb005ad5cc3cac90ac36f8fb..28d05b46952397bb664a1c8dae71816cafee89ce 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
@@ -243,7 +243,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -243,7 +243,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -1573,7 +1573,7 @@ index 424de333bf4fc5632410c689d9b17b2eab3371c4..b72969b3bc4319387e3946ea01c5b05a
// Paper end - optimise chunk tick iteration // Paper end - optimise chunk tick iteration
public ChunkMap(ServerLevel world, LevelStorageSource.LevelStorageAccess session, DataFixer dataFixer, StructureTemplateManager structureTemplateManager, Executor executor, BlockableEventLoop<Runnable> mainThreadExecutor, LightChunkGetter chunkProvider, ChunkGenerator chunkGenerator, ChunkProgressListener worldGenerationProgressListener, ChunkStatusUpdateListener chunkStatusChangeListener, Supplier<DimensionDataStorage> persistentStateManagerFactory, int viewDistance, boolean dsync) { public ChunkMap(ServerLevel world, LevelStorageSource.LevelStorageAccess session, DataFixer dataFixer, StructureTemplateManager structureTemplateManager, Executor executor, BlockableEventLoop<Runnable> mainThreadExecutor, LightChunkGetter chunkProvider, ChunkGenerator chunkGenerator, ChunkProgressListener worldGenerationProgressListener, ChunkStatusUpdateListener chunkStatusChangeListener, Supplier<DimensionDataStorage> persistentStateManagerFactory, int viewDistance, boolean dsync) {
@@ -1458,8 +1458,28 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -1448,8 +1448,28 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
return ChunkMap.this.level.getServer().getScaledTrackingDistance(initialDistance); return ChunkMap.this.level.getServer().getScaledTrackingDistance(initialDistance);
} }
@@ -1602,7 +1602,7 @@ index 424de333bf4fc5632410c689d9b17b2eab3371c4..b72969b3bc4319387e3946ea01c5b05a
Iterator iterator = this.entity.getIndirectPassengers().iterator(); Iterator iterator = this.entity.getIndirectPassengers().iterator();
while (iterator.hasNext()) { while (iterator.hasNext()) {
@@ -1471,6 +1491,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -1461,6 +1481,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
i = j; i = j;
} }
} }
@@ -1613,20 +1613,20 @@ index 424de333bf4fc5632410c689d9b17b2eab3371c4..b72969b3bc4319387e3946ea01c5b05a
return this.scaledRange(i); return this.scaledRange(i);
} }
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 77a2458b8acb21c64676934cd8d6b05ef6351c10..ad8e79c72841ff80f8af3580d2cdb89c13f6d688 100644 index 366c0c9b45a819f7f94ebe3e49b8ab7f9edf9ce7..097f6eb96c2df203565a0c50aba6221e67a7e026 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
@@ -73,6 +73,9 @@ public class ServerChunkCache extends ChunkSource { @@ -77,6 +77,9 @@ public class ServerChunkCache extends ChunkSource {
final it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap<LevelChunk> loadedChunkMap = new it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap<>(8192, 0.5f);
private final LevelChunk[] lastLoadedChunks = new LevelChunk[4 * 4]; private final LevelChunk[] lastLoadedChunks = new LevelChunk[4 * 4];
+ // Paper end
+ public boolean firstRunSpawnCounts = true; // Pufferfish + public boolean firstRunSpawnCounts = true; // Pufferfish
+ public final java.util.concurrent.atomic.AtomicBoolean _pufferfish_spawnCountsReady = new java.util.concurrent.atomic.AtomicBoolean(false); // Pufferfish - optimize countmobs + public final java.util.concurrent.atomic.AtomicBoolean _pufferfish_spawnCountsReady = new java.util.concurrent.atomic.AtomicBoolean(false); // Pufferfish - optimize countmobs
+
private static int getChunkCacheKey(int x, int z) { public ServerChunkCache(ServerLevel world, LevelStorageSource.LevelStorageAccess session, DataFixer dataFixer, StructureTemplateManager structureTemplateManager, Executor workerExecutor, ChunkGenerator chunkGenerator, int viewDistance, int simulationDistance, boolean dsync, ChunkProgressListener worldGenerationProgressListener, ChunkStatusUpdateListener chunkStatusChangeListener, Supplier<DimensionDataStorage> persistentStateManagerFactory) {
return x & 3 | ((z & 3) << 2); this.level = world;
@@ -528,6 +531,7 @@ public class ServerChunkCache extends ChunkSource { this.mainThreadProcessor = new ServerChunkCache.MainThreadExecutor(world);
@@ -513,6 +516,7 @@ public class ServerChunkCache extends ChunkSource {
// Paper - optimise chunk tick iteration // Paper - optimise chunk tick iteration
@@ -1634,7 +1634,7 @@ index 77a2458b8acb21c64676934cd8d6b05ef6351c10..ad8e79c72841ff80f8af3580d2cdb89c
if (this.level.getServer().tickRateManager().runsNormally()) { if (this.level.getServer().tickRateManager().runsNormally()) {
gameprofilerfiller.popPush("naturalSpawnCount"); gameprofilerfiller.popPush("naturalSpawnCount");
this.level.timings.countNaturalMobs.startTiming(); // Paper - timings this.level.timings.countNaturalMobs.startTiming(); // Paper - timings
@@ -536,6 +540,7 @@ public class ServerChunkCache extends ChunkSource { @@ -521,6 +525,7 @@ public class ServerChunkCache extends ChunkSource {
int naturalSpawnChunkCount = k; int naturalSpawnChunkCount = k;
NaturalSpawner.SpawnState spawnercreature_d; // moved down NaturalSpawner.SpawnState spawnercreature_d; // moved down
if ((this.spawnFriendlies || this.spawnEnemies) && this.level.paperConfig().entities.spawning.perPlayerMobSpawns) { // don't count mobs when animals and monsters are disabled if ((this.spawnFriendlies || this.spawnEnemies) && this.level.paperConfig().entities.spawning.perPlayerMobSpawns) { // don't count mobs when animals and monsters are disabled
@@ -1642,7 +1642,7 @@ index 77a2458b8acb21c64676934cd8d6b05ef6351c10..ad8e79c72841ff80f8af3580d2cdb89c
// re-set mob counts // re-set mob counts
for (ServerPlayer player : this.level.players) { for (ServerPlayer player : this.level.players) {
// Paper start - per player mob spawning backoff // Paper start - per player mob spawning backoff
@@ -550,14 +555,18 @@ public class ServerChunkCache extends ChunkSource { @@ -535,14 +540,18 @@ public class ServerChunkCache extends ChunkSource {
} }
// Paper end - per player mob spawning backoff // Paper end - per player mob spawning backoff
} }
@@ -1664,7 +1664,7 @@ index 77a2458b8acb21c64676934cd8d6b05ef6351c10..ad8e79c72841ff80f8af3580d2cdb89c
gameprofilerfiller.popPush("spawnAndTick"); gameprofilerfiller.popPush("spawnAndTick");
boolean flag = this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && !this.level.players().isEmpty(); // CraftBukkit boolean flag = this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && !this.level.players().isEmpty(); // CraftBukkit
@@ -647,8 +656,8 @@ public class ServerChunkCache extends ChunkSource { @@ -632,8 +641,8 @@ public class ServerChunkCache extends ChunkSource {
if (tick && chunk1.chunkStatus.isOrAfter(net.minecraft.server.level.FullChunkStatus.ENTITY_TICKING)) { if (tick && chunk1.chunkStatus.isOrAfter(net.minecraft.server.level.FullChunkStatus.ENTITY_TICKING)) {
// Paper end - optimise chunk tick iteration // Paper end - optimise chunk tick iteration
chunk1.incrementInhabitedTime(j); chunk1.incrementInhabitedTime(j);
@@ -1675,7 +1675,7 @@ index 77a2458b8acb21c64676934cd8d6b05ef6351c10..ad8e79c72841ff80f8af3580d2cdb89c
} }
if (true || this.level.shouldTickBlocksAt(chunkcoordintpair.toLong())) { // Paper - optimise chunk tick iteration if (true || this.level.shouldTickBlocksAt(chunkcoordintpair.toLong())) { // Paper - optimise chunk tick iteration
@@ -695,6 +704,40 @@ public class ServerChunkCache extends ChunkSource { @@ -680,6 +689,40 @@ public class ServerChunkCache extends ChunkSource {
gameprofilerfiller.pop(); gameprofilerfiller.pop();
gameprofilerfiller.pop(); gameprofilerfiller.pop();
} }
@@ -1717,7 +1717,7 @@ index 77a2458b8acb21c64676934cd8d6b05ef6351c10..ad8e79c72841ff80f8af3580d2cdb89c
private void getFullChunk(long pos, Consumer<LevelChunk> chunkConsumer) { private void getFullChunk(long pos, Consumer<LevelChunk> chunkConsumer) {
diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java
index ae188ae314336d971303023c7b7b8ecf32bae253..79914528f6d255355284b04253218a7c4dec1ead 100644 index 529ab44baaf573b97cf7e89560c548642733188f..db55ad9aaabfa1ea998754f3ac352d1698936696 100644
--- a/src/main/java/net/minecraft/server/level/ServerEntity.java --- a/src/main/java/net/minecraft/server/level/ServerEntity.java
+++ b/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java
@@ -183,7 +183,8 @@ public class ServerEntity { @@ -183,7 +183,8 @@ public class ServerEntity {
@@ -1739,7 +1739,7 @@ index ae188ae314336d971303023c7b7b8ecf32bae253..79914528f6d255355284b04253218a7c
this.wasOnGround = this.entity.onGround(); this.wasOnGround = this.entity.onGround();
this.teleportDelay = 0; this.teleportDelay = 0;
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 fa203e66887f5db1083728166e2f81ea4f656bd7..6c4a30779346985a7423286965bcc6446a777785 100644 index 6934e9dac0d69c043b73b7c46d59f2d39b37c67f..dbe612427b894df9da1335b94163ba9b89b090c0 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
@@ -894,6 +894,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -894,6 +894,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1789,13 +1789,13 @@ index fa203e66887f5db1083728166e2f81ea4f656bd7..6c4a30779346985a7423286965bcc644
gameprofilerfiller.push("thunder"); gameprofilerfiller.push("thunder");
final BlockPos.MutableBlockPos blockposition = this.chunkTickMutablePosition; // Paper - use mutable to reduce allocation rate, final to force compile fail on change final BlockPos.MutableBlockPos blockposition = this.chunkTickMutablePosition; // Paper - use mutable to reduce allocation rate, final to force compile fail on change
- if (!this.paperConfig().environment.disableThunder && flag && this.isThundering() && this.spigotConfig.thunderChance > 0 && this.random.nextInt(this.spigotConfig.thunderChance) == 0) { // Spigot // Paper - disable thunder - if (!this.paperConfig().environment.disableThunder && flag && this.isThundering() && this.spigotConfig.thunderChance > 0 && this.random.nextInt(this.spigotConfig.thunderChance) == 0) { // Spigot // Paper - Option to disable thunder
+ if (!this.paperConfig().environment.disableThunder && flag && this.isThundering() && this.spigotConfig.thunderChance > 0 && /*this.random.nextInt(this.spigotConfig.thunderChance) == 0 &&*/ chunk.shouldDoLightning(this.random)) { // Spigot // Paper - disable thunder // Pufferfish - replace random with shouldDoLightning + if (!this.paperConfig().environment.disableThunder && flag && this.isThundering() && this.spigotConfig.thunderChance > 0 && /*this.random.nextInt(this.spigotConfig.thunderChance) == 0 &&*/ chunk.shouldDoLightning(this.random)) { // Spigot // Paper - Option to disable thunder // Pufferfish - replace random with shouldDoLightning
blockposition.set(this.findLightningTargetAround(this.getBlockRandomPos(j, 0, k, 15))); // Paper blockposition.set(this.findLightningTargetAround(this.getBlockRandomPos(j, 0, k, 15))); // Paper
if (this.isRainingAt(blockposition)) { if (this.isRainingAt(blockposition)) {
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 42b433d9461d0912b39542263684323369469ac0..79701158989205af7b70ab5d312c1d3fa27c6cd2 100644 index 6f9ec543185b6f68bb1eaa61a7ebea9d866d688f..7b74541d648de48579221945e4bab963882cc1f2 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
@@ -1121,6 +1121,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1121,6 +1121,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -1919,7 +1919,7 @@ index d6cbe98e67fdbf8db46338a88ab1356dd63b50a3..20dd3a63b2f955b05a75eb240e33ae4c
int LARGE_MAX_STACK_SIZE = 64; int LARGE_MAX_STACK_SIZE = 64;
int DEFAULT_DISTANCE_LIMIT = 8; int DEFAULT_DISTANCE_LIMIT = 8;
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 554fc0d4e791a98a46216714f0fb07e178ddabe4..8328fb75f117a523301ed31b79fbee33ca82cbad 100644 index 2c06f3ebf7e1069727387bfc60db30c958c14b5a..00b26925b9e0ef7290f904273da875603b6ce11b 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
@@ -308,7 +308,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -308,7 +308,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -1931,10 +1931,10 @@ index 554fc0d4e791a98a46216714f0fb07e178ddabe4..8328fb75f117a523301ed31b79fbee33
private ChunkPos chunkPosition; private ChunkPos chunkPosition;
private Vec3 deltaMovement; private Vec3 deltaMovement;
private float yRot; private float yRot;
@@ -439,6 +439,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -501,6 +501,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return this.originWorld; return chunkMap.playerEntityTrackerTrackMaps[type.ordinal()].getObjectsInRange(MCUtil.getCoordinateKey(this));
} }
// Paper end // Paper end - optimise entity tracking
+ // Pufferfish start + // Pufferfish start
+ public boolean activatedPriorityReset = false; // DAB + public boolean activatedPriorityReset = false; // DAB
+ public int activatedPriority = gg.pufferfish.pufferfish.PufferfishConfig.maximumActivationPrio; // golf score + public int activatedPriority = gg.pufferfish.pufferfish.PufferfishConfig.maximumActivationPrio; // golf score
@@ -1957,7 +1957,7 @@ index 554fc0d4e791a98a46216714f0fb07e178ddabe4..8328fb75f117a523301ed31b79fbee33
this.baseTick(); this.baseTick();
} }
@@ -4407,16 +4419,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -4402,16 +4414,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
} }
public boolean updateFluidHeightAndDoFluidPushing(TagKey<Fluid> tag, double speed) { public boolean updateFluidHeightAndDoFluidPushing(TagKey<Fluid> tag, double speed) {
@@ -1983,7 +1983,7 @@ index 554fc0d4e791a98a46216714f0fb07e178ddabe4..8328fb75f117a523301ed31b79fbee33
double d1 = 0.0D; double d1 = 0.0D;
boolean flag = this.isPushedByFluid(); boolean flag = this.isPushedByFluid();
boolean flag1 = false; boolean flag1 = false;
@@ -4424,14 +4438,61 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -4419,14 +4433,61 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
int k1 = 0; int k1 = 0;
BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos(); BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos();
@@ -2051,7 +2051,7 @@ index 554fc0d4e791a98a46216714f0fb07e178ddabe4..8328fb75f117a523301ed31b79fbee33
if (d2 >= axisalignedbb.minY) { if (d2 >= axisalignedbb.minY) {
flag1 = true; flag1 = true;
@@ -4453,9 +4514,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -4448,9 +4509,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
// CraftBukkit end // CraftBukkit end
} }
} }
@@ -2078,7 +2078,7 @@ index edc723ea5ca3a325106e7af38c60dbf9f0f5fb77..ab6cd363231a668c9b16df825a72d320
private String descriptionId; private String descriptionId;
@Nullable @Nullable
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 ca1900d29a86b9b39078da39b071950128c08c23..47d9d45a5244ea991bedd16ff9ef0a40128b0258 100644 index 6071451339080bbdd98fb634791a56988984c8bc..5641bc7f50cef7819ddaeb76a4a4f9c80f473d31 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
@@ -142,7 +142,6 @@ import org.bukkit.event.entity.EntityTeleportEvent; @@ -142,7 +142,6 @@ import org.bukkit.event.entity.EntityTeleportEvent;
@@ -2140,7 +2140,7 @@ index ca1900d29a86b9b39078da39b071950128c08c23..47d9d45a5244ea991bedd16ff9ef0a40
if (this.isSpectator()) { if (this.isSpectator()) {
return false; return false;
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 22506c5c823c65e65034a962312c1dbd44356e23..4e5038e3cb6644e14d4b0022444386c50c827d0b 100644 index 24629412d2b4acaa81788ce70412b03387cc777c..a181a298334212847166409a2121476ba5871cb2 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
@@ -221,14 +221,16 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -221,14 +221,16 @@ public abstract class Mob extends LivingEntity implements Targeting {
@@ -2231,7 +2231,7 @@ index 646d9a121d908a2fc3e4e302484dd5cd1bfc6804..e546ecdccde352502e26a8668eaaafe0
} }
diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java b/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java b/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java
index b738ee2d3801fadfd09313f05ae24593e56b0ec6..1635818fc4b1788c0d397085239df6dd75b210ab 100644 index 676f5485a4ca9252e911213dcda8d51776b637b6..2d63ee8fef87264d4b61290effa6ba86a787aa61 100644
--- a/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java --- a/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java
+++ b/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java +++ b/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java
@@ -53,9 +53,12 @@ public class GoalSelector { @@ -53,9 +53,12 @@ public class GoalSelector {
@@ -2701,18 +2701,18 @@ index 27b0a79f7a7c47047216aae42944bac2a2151181..a097cfc528f709c80575f35483b68783
autorecipestackmanager.initialize(this); // Paper - better exact choice recipes autorecipestackmanager.initialize(this); // Paper - better exact choice recipes
int i = 0; int i = 0;
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 ae42d5b3dea423a144056c64337af213609923d4..6ee7286797da79a3d47a85b1a4b7139804571969 100644 index b33bb001a48788e727e2f01788a6163024121bf3..763fe7d1e8334441a5db2285bd4424d165e1c945 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
@@ -211,6 +211,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -212,6 +212,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
// Paper end - Use getChunkIfLoadedImmediately
public abstract ResourceKey<LevelStem> getTypeKey(); public abstract ResourceKey<LevelStem> getTypeKey();
+
+ protected final io.papermc.paper.util.math.ThreadUnsafeRandom randomTickRandom = new io.papermc.paper.util.math.ThreadUnsafeRandom(java.util.concurrent.ThreadLocalRandom.current().nextLong()); public net.minecraft.util.RandomSource getThreadUnsafeRandom() { return this.randomTickRandom; } // Pufferfish - move thread unsafe random initialization // Pufferfish - getter
+ protected final io.papermc.paper.util.math.ThreadUnsafeRandom randomTickRandom = new io.papermc.paper.util.math.ThreadUnsafeRandom(java.util.concurrent.ThreadLocalRandom.current().nextLong()); public net.minecraft.util.RandomSource getThreadUnsafeRandom() { return this.randomTickRandom; } // Pufferfish - move thread unsafe random initialization // Pufferfish - getter
+
protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, RegistryAccess iregistrycustom, Holder<DimensionType> holder, Supplier<ProfilerFiller> supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function<org.spigotmc.SpigotWorldConfig, io.papermc.paper.configuration.WorldConfiguration> paperWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - create paper world config; Async-Anti-Xray: Pass executor protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, RegistryAccess iregistrycustom, Holder<DimensionType> holder, Supplier<ProfilerFiller> supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function<org.spigotmc.SpigotWorldConfig, io.papermc.paper.configuration.WorldConfiguration> paperWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - create paper world config; Async-Anti-Xray: Pass executor
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config
@@ -1317,13 +1319,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -1317,13 +1319,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
try { try {
tickConsumer.accept(entity); tickConsumer.accept(entity);
@@ -2720,13 +2720,13 @@ index ae42d5b3dea423a144056c64337af213609923d4..6ee7286797da79a3d47a85b1a4b71398
- } catch (Throwable throwable) { - } catch (Throwable throwable) {
+ } catch (Throwable throwable) { // Pufferfish - diff on change ServerLevel.tick + } catch (Throwable throwable) { // Pufferfish - diff on change ServerLevel.tick
if (throwable instanceof ThreadDeath) throw throwable; // Paper if (throwable instanceof ThreadDeath) throw throwable; // Paper
// Paper start - Prevent tile entity and entity crashes // Paper start - Prevent block entity and entity crashes
final String msg = String.format("Entity threw exception at %s:%s,%s,%s", entity.level().getWorld().getName(), entity.getX(), entity.getY(), entity.getZ()); final String msg = String.format("Entity threw exception at %s:%s,%s,%s", entity.level().getWorld().getName(), entity.getX(), entity.getY(), entity.getZ());
MinecraftServer.LOGGER.error(msg, throwable); MinecraftServer.LOGGER.error(msg, throwable);
getCraftServer().getPluginManager().callEvent(new ServerExceptionEvent(new ServerInternalException(msg, throwable))); getCraftServer().getPluginManager().callEvent(new ServerExceptionEvent(new ServerInternalException(msg, throwable))); // Paper - ServerExceptionEvent
- entity.discard(); - entity.discard();
+ entity.discard(); // Pufferfish - diff on change ServerLevel.tick + entity.discard(); // Pufferfish - diff on change ServerLevel.tick
// Paper end // Paper end - Prevent block entity and entity crashes
} }
} }
@@ -1797,6 +1799,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -1797,6 +1799,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -2738,7 +2738,7 @@ index ae42d5b3dea423a144056c64337af213609923d4..6ee7286797da79a3d47a85b1a4b71398
} }
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 1712bd7c3a9b515c7bf8909f7392a385ef243ff9..00b965de947cb13a178061278d1ffa4342e8e065 100644 index 17e9f3a30e287faf210e08dc7eb177a70f049f43..96fc603c2fccc1d9610248b2116d35696bc65e4e 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
@@ -429,12 +429,12 @@ public final class NaturalSpawner { @@ -429,12 +429,12 @@ public final class NaturalSpawner {
@@ -3000,7 +3000,7 @@ index a94300a457b25f0e33a8eeabba6dd5720ca9ab1e..b41635dd0569ff7df909df492d3e850a
} }
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 d85ed706703e50f76df8db414827ccd41a5985d9..177673cc19cd70f60bb489cb2e74b39fbb8f8d24 100644 index 6ec3fc801453fd54c25b642e6fa71c19b463311d..922191159fadf8e89646d7299aadee4aa851f71a 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
@@ -86,6 +86,18 @@ public class LevelChunk extends ChunkAccess { @@ -86,6 +86,18 @@ public class LevelChunk extends ChunkAccess {
@@ -3032,7 +3032,7 @@ index d85ed706703e50f76df8db414827ccd41a5985d9..177673cc19cd70f60bb489cb2e74b39f
// CraftBukkit start // CraftBukkit start
diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java
index b10c652f53edfbf29f28b047d3b3c8edca21bc56..0806ec65a6c4e0518be01db9af2dd118d73da98d 100644 index 796bbef3544e06b8e7aac7e8ac5f740a2613f4bd..2422ca3ffc6ab7178cacf933b8013f85e7de4bd9 100644
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java
@@ -25,6 +25,7 @@ public class LevelChunkSection { @@ -25,6 +25,7 @@ public class LevelChunkSection {
@@ -3273,7 +3273,7 @@ index ebe65474a4a05ff1637d7f37ebcfe690af59def5..42142c512b12e5b269c19f1e821c50e7
@Nullable @Nullable
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 28b02fee73a3ab604f6921800a7ede59e2e6f414..a6b8e768edacd1600992af5fd0a4562f1420b568 100644 index 25f41119bcc19bab7cd2fdb044147b3f78a8ef1c..5b01cd1b9a07fc8600fddb9d9e0aea3ac5a288f0 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
@@ -264,7 +264,7 @@ import javax.annotation.Nullable; // Paper @@ -264,7 +264,7 @@ import javax.annotation.Nullable; // Paper
@@ -3336,7 +3336,7 @@ index 774556a62eb240da42e84db4502e2ed43495be17..80553face9c70c2a3d897681e7761df8
if (stream != null) { if (stream != null) {
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 fafc8b84d6b6368c70b8eedfdb4c3a9deace9c26..a69814d3a6214af734d670fe5545518a5f8a8dc5 100644 index c39894e824334f1dc52e0466cf9d84f7e219be70..41cddf7e42f0e8f80973e482a95e55d3bd19f659 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
@@ -38,6 +38,10 @@ import co.aikar.timings.MinecraftTimings; @@ -38,6 +38,10 @@ import co.aikar.timings.MinecraftTimings;
@@ -3350,7 +3350,7 @@ index fafc8b84d6b6368c70b8eedfdb4c3a9deace9c26..a69814d3a6214af734d670fe5545518a
public class ActivationRange public class ActivationRange
{ {
@@ -222,6 +226,25 @@ public class ActivationRange @@ -221,6 +225,25 @@ public class ActivationRange
} }
// Paper end - Configurable marker ticking // Paper end - Configurable marker ticking
ActivationRange.activateEntity(entity); ActivationRange.activateEntity(entity);
@@ -3376,7 +3376,7 @@ index fafc8b84d6b6368c70b8eedfdb4c3a9deace9c26..a69814d3a6214af734d670fe5545518a
} }
// Paper end // Paper end
} }
@@ -238,12 +261,12 @@ public class ActivationRange @@ -237,12 +260,12 @@ public class ActivationRange
if ( MinecraftServer.currentTick > entity.activatedTick ) if ( MinecraftServer.currentTick > entity.activatedTick )
{ {
if ( entity.defaultActivationState ) if ( entity.defaultActivationState )
@@ -3391,7 +3391,7 @@ index fafc8b84d6b6368c70b8eedfdb4c3a9deace9c26..a69814d3a6214af734d670fe5545518a
entity.activatedTick = MinecraftServer.currentTick; entity.activatedTick = MinecraftServer.currentTick;
} }
} }
@@ -297,7 +320,7 @@ public class ActivationRange @@ -296,7 +319,7 @@ public class ActivationRange
if ( entity instanceof LivingEntity ) if ( entity instanceof LivingEntity )
{ {
LivingEntity living = (LivingEntity) entity; LivingEntity living = (LivingEntity) entity;

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Rebrand
diff --git a/build.gradle.kts b/build.gradle.kts diff --git a/build.gradle.kts b/build.gradle.kts
index fd785a79b1708aadd760f5b62d49d4d4e55e9938..4bdf291e2e2d96ea7385ae667983f1731baa176a 100644 index 658e9b4590a82d179907feea04e129fdba9a2f42..f253b340d75302fda8e59a2ad113f652c2417869 100644
--- a/build.gradle.kts --- a/build.gradle.kts
+++ b/build.gradle.kts +++ b/build.gradle.kts
@@ -13,12 +13,12 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) { @@ -13,12 +13,12 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) {
@@ -177,10 +177,10 @@ index e047dee632022abfe05865d1e71838be8d5d053a..888e31a0454888c36cb27602a28619f1
stringbuilder.append(CrashReport.getErrorComment()); stringbuilder.append(CrashReport.getErrorComment());
stringbuilder.append("\n\n"); stringbuilder.append("\n\n");
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 1343649cd77a42dd502747581050b401840a6efe..de0f93e1a85754051315653f707b95753ff7dc70 100644 index c51485db18db179be33b4416debbc30c93bdf5c2..3c2eb7eeff23cd2b93105518a5cfbfb39565b845 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 @@ -953,7 +953,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
shutdownThread = Thread.currentThread(); shutdownThread = Thread.currentThread();
org.spigotmc.WatchdogThread.doStop(); // Paper org.spigotmc.WatchdogThread.doStop(); // Paper
if (!isSameThread()) { if (!isSameThread()) {
@@ -189,17 +189,17 @@ index 1343649cd77a42dd502747581050b401840a6efe..de0f93e1a85754051315653f707b9575
while (this.getRunningThread().isAlive()) { while (this.getRunningThread().isAlive()) {
this.getRunningThread().stop(); this.getRunningThread().stop();
try { try {
@@ -1860,7 +1860,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1858,7 +1858,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@DontObfuscate @DontObfuscate
public String getServerModName() { public String getServerModName() {
- return "Pufferfish"; // Pufferfish - Pufferfish > // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla! - return "Pufferfish"; // Pufferfish - Pufferfish > // Paper
+ return "Purpur"; // Purpur - Purpur > // Pufferfish - Pufferfish > // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla! + return "Purpur"; // Purpur - Purpur > // Pufferfish - Pufferfish > // Paper
} }
public SystemReport fillSystemReport(SystemReport details) { public SystemReport fillSystemReport(SystemReport details) {
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 cfc41926305441cb36ed67a8cb7e327cd80ff301..63a27079bae650672c027443ff4dc8d4e21a4d06 100644 index 5b01cd1b9a07fc8600fddb9d9e0aea3ac5a288f0..b8e578330ad7953f013767c7ff040fee468ce5a5 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
@@ -264,7 +264,7 @@ import javax.annotation.Nullable; // Paper @@ -264,7 +264,7 @@ import javax.annotation.Nullable; // Paper
@@ -239,7 +239,7 @@ index 4e56018b64d11f76c8da43fd8f85c6de72204e36..9607675e6c5bff2183c4420d11fc63ee
@Override @Override
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
index 1f1ef68a9a449a4a90c284f34a397ab4b6d905f6..1b75b8286f6203a7268746b5a487d6f089405127 100644 index 4afc1c9d2a7638e84a55fe30932dc36db465c31a..ea966037755ba552dc6cf2f4792e9d23f0e77b1c 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
@@ -915,7 +915,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { @@ -915,7 +915,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@@ -265,7 +265,7 @@ index 700932b65e4fda560d684b0aa079bcee3923f73e..d1b1bc4845fc9519fc892e962c3e7d89
// (async tasks must live with race-conditions if they attempt to cancel between these few lines of code) // (async tasks must live with race-conditions if they attempt to cancel between these few lines of code)
} }
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 c909efd2060dc95bd3ecb8c9fec36a1e69a642ff..6eeebfaf577263316f3562a8f968310acd616763 100644 index 2338ba106c19c3e61d1a2088cc51d0744432666d..2331190c476a2bfe3797aa61a4a792a9cc42ff59 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
@@ -482,7 +482,7 @@ public final class CraftMagicNumbers implements UnsafeValues { @@ -482,7 +482,7 @@ public final class CraftMagicNumbers implements UnsafeValues {
@@ -291,7 +291,7 @@ index 80553face9c70c2a3d897681e7761df85b22d464..99597258e8e88cd9e2c901c4ac3ff7fa
if (stream != null) { if (stream != null) {
diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java
index 40dcdf6885e99b26283a9ea2bd4d4bf6ec358e71..5fc8cc40ab627eba0b2110c73d31af213a935733 100644 index 9e638f72f180ff5ef63ec3dd6cf548c53f7bd4a5..f7296691cb4af7814de1520347b307ff209082e4 100644
--- a/src/main/java/org/spigotmc/WatchdogThread.java --- a/src/main/java/org/spigotmc/WatchdogThread.java
+++ b/src/main/java/org/spigotmc/WatchdogThread.java +++ b/src/main/java/org/spigotmc/WatchdogThread.java
@@ -96,7 +96,7 @@ public final class WatchdogThread extends io.papermc.paper.util.TickThread // Pa @@ -96,7 +96,7 @@ public final class WatchdogThread extends io.papermc.paper.util.TickThread // Pa
@@ -321,7 +321,7 @@ index 40dcdf6885e99b26283a9ea2bd4d4bf6ec358e71..5fc8cc40ab627eba0b2110c73d31af21
// //
if ( net.minecraft.world.level.Level.lastPhysicsProblem != null ) if ( net.minecraft.world.level.Level.lastPhysicsProblem != null )
{ {
@@ -185,12 +185,12 @@ public final class WatchdogThread extends io.papermc.paper.util.TickThread // Pa @@ -184,12 +184,12 @@ public final class WatchdogThread extends io.papermc.paper.util.TickThread // Pa
// Paper end // Paper end
} else } else
{ {
@@ -333,10 +333,10 @@ index 40dcdf6885e99b26283a9ea2bd4d4bf6ec358e71..5fc8cc40ab627eba0b2110c73d31af21
log.log( Level.SEVERE, "------------------------------" ); log.log( Level.SEVERE, "------------------------------" );
- log.log( Level.SEVERE, "Server thread dump (Look for plugins here before reporting to Paper!):" ); // Paper - log.log( Level.SEVERE, "Server thread dump (Look for plugins here before reporting to Paper!):" ); // Paper
+ log.log( Level.SEVERE, "Server thread dump (Look for plugins here before reporting to Purpur!):" ); // Paper // Purpur + log.log( Level.SEVERE, "Server thread dump (Look for plugins here before reporting to Purpur!):" ); // Paper // Purpur
io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.dumpAllChunkLoadInfo(isLongTimeout); // Paper // Paper - rewrite chunk system io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.dumpAllChunkLoadInfo(isLongTimeout); // Paper - rewrite chunk system
this.dumpTickingInfo(); // Paper - log detailed tick information this.dumpTickingInfo(); // Paper - log detailed tick information
WatchdogThread.dumpThread( ManagementFactory.getThreadMXBean().getThreadInfo( MinecraftServer.getServer().serverThread.getId(), Integer.MAX_VALUE ), log ); WatchdogThread.dumpThread( ManagementFactory.getThreadMXBean().getThreadInfo( MinecraftServer.getServer().serverThread.getId(), Integer.MAX_VALUE ), log );
@@ -206,7 +206,7 @@ public final class WatchdogThread extends io.papermc.paper.util.TickThread // Pa @@ -205,7 +205,7 @@ public final class WatchdogThread extends io.papermc.paper.util.TickThread // Pa
WatchdogThread.dumpThread( thread, log ); WatchdogThread.dumpThread( thread, log );
} }
} else { } else {

View File

@@ -40,7 +40,7 @@ index ad368b58005b6b0453b709c2ef0ea23bca53d34a..2dac1ec1daf4084f33ead33d5128d295
"This can improve performance by a few percent, but has minor gameplay implications."); "This can improve performance by a few percent, but has minor gameplay implications.");
} }
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 e387de54c9786711272f0ec3f8d312e472a9c4ea..e0f1f23bcf4f59cffa98ea1c70f774fd787dae08 100644 index dbe612427b894df9da1335b94163ba9b89b090c0..0982d44b9dd30c13d9d879095cc9a839bbda8bdc 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
@@ -992,7 +992,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -992,7 +992,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -53,22 +53,20 @@ index e387de54c9786711272f0ec3f8d312e472a9c4ea..e0f1f23bcf4f59cffa98ea1c70f774fd
private int currentIceAndSnowTick = 0; protected void resetIceAndSnowTick() { this.currentIceAndSnowTick = this.randomTickRandom.nextInt(16); } // Pufferfish private int currentIceAndSnowTick = 0; protected void resetIceAndSnowTick() { this.currentIceAndSnowTick = this.randomTickRandom.nextInt(16); } // Pufferfish
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 4f568184557d21b44569a9a16456962ee983101b..aa6c3df047e97bde3c352caae7eb3c09e2f45978 100644 index 763fe7d1e8334441a5db2285bd4424d165e1c945..b923bdd07d81e09d69f1cbd6f6389ab34e9c427d 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
@@ -211,8 +211,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -212,7 +212,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
// Paper end - Use getChunkIfLoadedImmediately
public abstract ResourceKey<LevelStem> getTypeKey(); public abstract ResourceKey<LevelStem> getTypeKey();
-
- protected final io.papermc.paper.util.math.ThreadUnsafeRandom randomTickRandom = new io.papermc.paper.util.math.ThreadUnsafeRandom(java.util.concurrent.ThreadLocalRandom.current().nextLong()); public net.minecraft.util.RandomSource getThreadUnsafeRandom() { return this.randomTickRandom; } // Pufferfish - move thread unsafe random initialization // Pufferfish - getter - protected final io.papermc.paper.util.math.ThreadUnsafeRandom randomTickRandom = new io.papermc.paper.util.math.ThreadUnsafeRandom(java.util.concurrent.ThreadLocalRandom.current().nextLong()); public net.minecraft.util.RandomSource getThreadUnsafeRandom() { return this.randomTickRandom; } // Pufferfish - move thread unsafe random initialization // Pufferfish - getter
+
+ //protected final io.papermc.paper.util.math.ThreadUnsafeRandom randomTickRandom = new io.papermc.paper.util.math.ThreadUnsafeRandom(java.util.concurrent.ThreadLocalRandom.current().nextLong()); public net.minecraft.util.RandomSource getThreadUnsafeRandom() { return this.randomTickRandom; } // Pufferfish - move thread unsafe random initialization // Pufferfish - getter // Purpur - dont break ABI + //protected final io.papermc.paper.util.math.ThreadUnsafeRandom randomTickRandom = new io.papermc.paper.util.math.ThreadUnsafeRandom(java.util.concurrent.ThreadLocalRandom.current().nextLong()); public net.minecraft.util.RandomSource getThreadUnsafeRandom() { return this.randomTickRandom; } // Pufferfish - move thread unsafe random initialization // Pufferfish - getter // Purpur - dont break ABI
protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, RegistryAccess iregistrycustom, Holder<DimensionType> holder, Supplier<ProfilerFiller> supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function<org.spigotmc.SpigotWorldConfig, io.papermc.paper.configuration.WorldConfiguration> paperWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - create paper world config; Async-Anti-Xray: Pass executor protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, RegistryAccess iregistrycustom, Holder<DimensionType> holder, Supplier<ProfilerFiller> supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function<org.spigotmc.SpigotWorldConfig, io.papermc.paper.configuration.WorldConfiguration> paperWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - create paper world config; Async-Anti-Xray: Pass executor
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot
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 177673cc19cd70f60bb489cb2e74b39fbb8f8d24..c3fb622845770bcee9ddd6ebbeee174b06ee16eb 100644 index 922191159fadf8e89646d7299aadee4aa851f71a..5fab6909bd2ee303f49b7e667617bcae608e82d7 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
@@ -122,7 +122,7 @@ public class LevelChunk extends ChunkAccess { @@ -122,7 +122,7 @@ public class LevelChunk extends ChunkAccess {

View File

@@ -37,7 +37,7 @@ index 692c962193cf9fcc6801fc93f3220bdc673d527b..8cde30544e14f8fc2dac32966ae3c21f
metrics.addCustomChart(new Metrics.DrilldownPie("java_version", () -> { metrics.addCustomChart(new Metrics.DrilldownPie("java_version", () -> {
Map<String, Map<String, Integer>> map = new HashMap<>(); Map<String, Map<String, Integer>> map = new HashMap<>();
diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java
index 623403c56d79e29421f340e97c05488efaf1893d..d7333193b20fc6d9a4aaa0ef00a2a66655250081 100644 index f341813e9713e39bfe142ca34b751de3d8efd25b..b0d96ae08959cdca9177eb875faa99f4a8e92632 100644
--- a/src/main/java/net/minecraft/commands/CommandSourceStack.java --- a/src/main/java/net/minecraft/commands/CommandSourceStack.java
+++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java +++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java
@@ -335,6 +335,30 @@ public class CommandSourceStack implements ExecutionCommandSource<CommandSourceS @@ -335,6 +335,30 @@ public class CommandSourceStack implements ExecutionCommandSource<CommandSourceS
@@ -92,7 +92,7 @@ index c5f92c80d7ca1e1c7f5b9304a5a1173ebfd9c269..1fbfe61b3d7fc372f044d2e9f3500d66
io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // Paper - init PaperBrigadierProvider io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // Paper - init PaperBrigadierProvider
gg.pufferfish.pufferfish.PufferfishConfig.load(); // Pufferfish gg.pufferfish.pufferfish.PufferfishConfig.load(); // Pufferfish
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 aa6c3df047e97bde3c352caae7eb3c09e2f45978..5b5ac2d194cb9377f5ea3441505aefd3f7dbce8b 100644 index b923bdd07d81e09d69f1cbd6f6389ab34e9c427d..5b4a47e3078a8bf0533228af14c1a1031ec3ae69 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
@@ -178,6 +178,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -178,6 +178,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -112,7 +112,7 @@ index aa6c3df047e97bde3c352caae7eb3c09e2f45978..5b5ac2d194cb9377f5ea3441505aefd3
this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env); this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 0d37bde27beaa2d6730bb9f82d4b686f6f60e40b..5248e951e1307c2e019db276dcc80d9d41693fb0 100644 index b8e578330ad7953f013767c7ff040fee468ce5a5..f4452341be3572129dc8c59bb511ef199ff31938 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
@@ -1037,6 +1037,7 @@ public final class CraftServer implements Server { @@ -1037,6 +1037,7 @@ public final class CraftServer implements Server {
@@ -139,7 +139,7 @@ index 0d37bde27beaa2d6730bb9f82d4b686f6f60e40b..5248e951e1307c2e019db276dcc80d9d
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");
@@ -3015,6 +3018,18 @@ public final class CraftServer implements Server { @@ -3003,6 +3006,18 @@ public final class CraftServer implements Server {
return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console); return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console);
} }
@@ -159,7 +159,7 @@ index 0d37bde27beaa2d6730bb9f82d4b686f6f60e40b..5248e951e1307c2e019db276dcc80d9d
public void restart() { public void restart() {
org.spigotmc.RestartCommand.restart(); org.spigotmc.RestartCommand.restart();
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index 62d9737a8d36d4863ffd7853ba290ef83c759687..bc001869b10fa497d3473f7e45a2a7120e61f87e 100644 index ce341f42b3a5e17fb6d1f7de8057e73137ae2a6e..8576ae1f811bdb7fb4f356bcce2e29181838d8ce 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java --- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -174,6 +174,14 @@ public class Main { @@ -174,6 +174,14 @@ public class Main {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Purpur client support
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 4a0df97430cf025d1e830f681ef791ecec985102..bd79e92fae8606635cf2dc4f4e4e6fd847362252 100644 index 0dba30c41affafe7b1d585b515925043b37712fa..3d78fbb7cef37c3d108ef9da1b76ffa13aa2f6fd 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
@@ -281,6 +281,7 @@ public class ServerPlayer extends Player { @@ -281,6 +281,7 @@ public class ServerPlayer extends Player {
@@ -43,13 +43,13 @@ index 0306771b8f90dcdd77f151c19c6c2d75c41f8feb..34559eae0ea3f88d7b9a3c9e4a2350c4
try { try {
String channels = payload.toString(com.google.common.base.Charsets.UTF_8); String channels = payload.toString(com.google.common.base.Charsets.UTF_8);
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 b8d3398b349d9294de6b8a8594b054d3c84dbe0a..4ab63267c4ec808d3daf94478a1425b5aa70b75f 100644 index 5c1e016de183933c5458deaae257b978e6350307..8de8452b93833dbfe9e69b2b269264c0aa167e52 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
@@ -3373,4 +3373,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -3361,4 +3361,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.spigot; public void setSendViewDistance(final int viewDistance) {
this.getHandle().setSendViewDistance(viewDistance);
} }
// Spigot end
+ +
+ // Purpur start + // Purpur start
+ @Override + @Override

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Component related conveniences
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 0b90e6810ec549471fad70406f2f054897c1eb24..a1dff77b662f178bd42c0d232ecea1ca2cc4f6d3 100644 index 3d78fbb7cef37c3d108ef9da1b76ffa13aa2f6fd..6c3e5ad96ff1c33181663d89c3c227e1a96e4912 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
@@ -1884,6 +1884,26 @@ public class ServerPlayer extends Player { @@ -1884,6 +1884,26 @@ public class ServerPlayer extends Player {
@@ -36,10 +36,10 @@ index 0b90e6810ec549471fad70406f2f054897c1eb24..a1dff77b662f178bd42c0d232ecea1ca
public void displayClientMessage(Component message, boolean overlay) { public void displayClientMessage(Component message, boolean overlay) {
this.sendSystemMessage(message, overlay); this.sendSystemMessage(message, overlay);
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 1c89b95ac40120ee970da0f06fd7fff36eb55e61..2a4b63ead77cf6117b1ebefe9d9dbd6c73ed4d95 100644 index e0ee45036b9bf14a6e2013fe291cde0402b85b1f..5eedc109e84a8e059ccacf43fc2a8d8475ee3543 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
@@ -1064,6 +1064,20 @@ public abstract class PlayerList { @@ -1063,6 +1063,20 @@ public abstract class PlayerList {
} }
// CraftBukkit end // CraftBukkit end
@@ -81,10 +81,10 @@ index fc6903b20a6e084729306fc960a6fc80e094f76c..dad8d358e60902eb186cbc5686219f66
return this.type().msgId(); return this.type().msgId();
} }
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 7a50a1fe485de232abb9d626e8001eee78a33b1b..59ec8a66c76bea89f14aa19f61c03571a00c7e4f 100644 index 00b26925b9e0ef7290f904273da875603b6ce11b..b8236e91b4bf204e728cba13c95292329f0058e9 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
@@ -4138,6 +4138,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -4136,6 +4136,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return SlotAccess.NULL; return SlotAccess.NULL;
} }

View File

@@ -22,11 +22,11 @@ index e17fa30966dea2836fb791becd032fc7d5cc2611..dd06323731533fb9b1b25a56844a4e39
super(x, y, z); super(x, y, z);
} }
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 3506a1ff01fab1dc7f99c219e23c3b0b9e5a5565..21a23f1c5d644a1212269d77dc598925f86e0598 100644 index 3c2eb7eeff23cd2b93105518a5cfbfb39565b845..db9267ce8da952397398a077cc65e72dc9909719 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
@@ -1700,6 +1700,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1698,6 +1698,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
worldserver.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper worldserver.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - BlockPhysicsEvent
net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = worldserver.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = worldserver.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers
worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent
+ worldserver.hasRidableMoveEvent = org.purpurmc.purpur.event.entity.RidableMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Purpur + worldserver.hasRidableMoveEvent = org.purpurmc.purpur.event.entity.RidableMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Purpur
@@ -34,19 +34,19 @@ index 3506a1ff01fab1dc7f99c219e23c3b0b9e5a5565..21a23f1c5d644a1212269d77dc598925
this.profiler.push(() -> { this.profiler.push(() -> {
return worldserver + " " + worldserver.dimension().location(); return worldserver + " " + worldserver.dimension().location();
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 e8784caa72af2bf27988c393d5f66aa79401a9bf..5a5eece4393aba0902a94f94c10172ddda53776c 100644 index 0982d44b9dd30c13d9d879095cc9a839bbda8bdc..cdc17904cdf3d6669503e09debfbb156a80f0020 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
@@ -224,6 +224,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -224,6 +224,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
public boolean hasPhysicsEvent = true; // Paper public boolean hasPhysicsEvent = true; // Paper - BlockPhysicsEvent
public boolean hasEntityMoveEvent; // Paper - Add EntityMoveEvent public boolean hasEntityMoveEvent; // Paper - Add EntityMoveEvent
private final alternate.current.wire.WireHandler wireHandler = new alternate.current.wire.WireHandler(this); // Paper - optimize redstone (Alternate Current) private final alternate.current.wire.WireHandler wireHandler = new alternate.current.wire.WireHandler(this); // Paper - optimize redstone (Alternate Current)
+ public boolean hasRidableMoveEvent = false; // Purpur + public boolean hasRidableMoveEvent = false; // Purpur
@Override public LevelChunk getChunkIfLoaded(int x, int z) { // Paper - this was added in world too but keeping here for NMS ABI public LevelChunk getChunkIfLoaded(int x, int z) {
return this.chunkSource.getChunkAtIfLoadedImmediately(x, z); // Paper - Use getChunkIfLoadedImmediately return this.chunkSource.getChunkAtIfLoadedImmediately(x, z); // Paper - Use getChunkIfLoadedImmediately
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 47b98effff238fd238da85eef6a108e3dfff98e8..936224e1884f7f7d03d51c2cce3599a78d174b80 100644 index 6c3e5ad96ff1c33181663d89c3c227e1a96e4912..62fd29f19b93f07a87377f26d9e5b169b9d80f4f 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
@@ -763,6 +763,15 @@ public class ServerPlayer extends Player { @@ -763,6 +763,15 @@ public class ServerPlayer extends Player {
@@ -66,7 +66,7 @@ index 47b98effff238fd238da85eef6a108e3dfff98e8..936224e1884f7f7d03d51c2cce3599a7
public void doTick() { public void doTick() {
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 79701158989205af7b70ab5d312c1d3fa27c6cd2..4326b324ff5c815b38211fe24cb5f05b974c3200 100644 index 7b74541d648de48579221945e4bab963882cc1f2..564ad357c3f85c3018b51e592474722f9f92bf35 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
@@ -2704,6 +2704,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -2704,6 +2704,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -79,7 +79,7 @@ index 79701158989205af7b70ab5d312c1d3fa27c6cd2..4326b324ff5c815b38211fe24cb5f05b
if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) { if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) {
entity.getEntityData().resendPossiblyDesyncedEntity(player); // Paper - The entire mob gets deleted, so resend it. entity.getEntityData().resendPossiblyDesyncedEntity(player); // Paper - The entire mob gets deleted, so resend it.
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 4f74874821683127265da4d9b2b7cba69e475576..3bb76702a36b3ee638779b5d83093965b42341ce 100644 index b8236e91b4bf204e728cba13c95292329f0058e9..fcc95eaaa8f9160f8a3c2391f6d23c27266c3771 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
@@ -378,7 +378,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -378,7 +378,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -91,7 +91,7 @@ index 4f74874821683127265da4d9b2b7cba69e475576..3bb76702a36b3ee638779b5d83093965
private float eyeHeight; private float eyeHeight;
public boolean isInPowderSnow; public boolean isInPowderSnow;
public boolean wasInPowderSnow; public boolean wasInPowderSnow;
@@ -3012,6 +3012,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -3010,6 +3010,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
this.passengers = ImmutableList.copyOf(list); this.passengers = ImmutableList.copyOf(list);
} }
@@ -105,7 +105,7 @@ index 4f74874821683127265da4d9b2b7cba69e475576..3bb76702a36b3ee638779b5d83093965
this.gameEvent(GameEvent.ENTITY_MOUNT, passenger); this.gameEvent(GameEvent.ENTITY_MOUNT, passenger);
} }
} }
@@ -3051,6 +3058,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -3049,6 +3056,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return false; return false;
} }
// CraftBukkit end // CraftBukkit end
@@ -120,7 +120,7 @@ index 4f74874821683127265da4d9b2b7cba69e475576..3bb76702a36b3ee638779b5d83093965
if (this.passengers.size() == 1 && this.passengers.get(0) == entity) { if (this.passengers.size() == 1 && this.passengers.get(0) == entity) {
this.passengers = ImmutableList.of(); this.passengers = ImmutableList.of();
} else { } else {
@@ -4992,4 +5007,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -4987,4 +5002,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return ((net.minecraft.server.level.ServerChunkCache) level.getChunkSource()).isPositionTicking(this); return ((net.minecraft.server.level.ServerChunkCache) level.getChunkSource()).isPositionTicking(this);
} }
// Paper end - Expose entity id counter // Paper end - Expose entity id counter
@@ -190,7 +190,7 @@ index 1bb8b6e91c44cd13411d96d749fa64835c75a267..75c278b67ad2b78766efd8f89c4c2ca7
protected ParticleOptions getInkParticle() { protected ParticleOptions getInkParticle() {
return ParticleTypes.GLOW_SQUID_INK; return ParticleTypes.GLOW_SQUID_INK;
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 47d9d45a5244ea991bedd16ff9ef0a40128b0258..a47e0b6b1650ae88fcbdc2f12c1b00ad94f29f85 100644 index 5641bc7f50cef7819ddaeb76a4a4f9c80f473d31..5e663a0d0c4fe1f32ac3483b86c085ec2205b3dc 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
@@ -217,9 +217,9 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -217,9 +217,9 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -268,7 +268,7 @@ index 47d9d45a5244ea991bedd16ff9ef0a40128b0258..a47e0b6b1650ae88fcbdc2f12c1b00ad
// Paper end - Add EntityMoveEvent // Paper end - Add EntityMoveEvent
if (!this.level().isClientSide && this.isSensitiveToWater() && this.isInWaterRainOrBubble()) { if (!this.level().isClientSide && this.isSensitiveToWater() && this.isInWaterRainOrBubble()) {
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 4e5038e3cb6644e14d4b0022444386c50c827d0b..f6261b43cad2c97e08788c27d0bdc1d8a42bd4d5 100644 index a181a298334212847166409a2121476ba5871cb2..76729680ea74eedd648eeaafbdfed4ee817b5675 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
@@ -148,8 +148,8 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -148,8 +148,8 @@ public abstract class Mob extends LivingEntity implements Targeting {
@@ -1912,7 +1912,7 @@ index b5d6857eaf2bed14adcb5f5e80d91b44eb8b0dcc..bc57978d89db43e97a38ea56c3541e8f
} }
diff --git a/src/main/java/net/minecraft/world/entity/animal/Squid.java b/src/main/java/net/minecraft/world/entity/animal/Squid.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Squid.java b/src/main/java/net/minecraft/world/entity/animal/Squid.java
index f60c4cd0543fd5d50fa7e2c1a9e8381227adb540..7fa03dbc442942b70f374096e346d54089d8f0a0 100644 index 4f32597c7af34d599f6658fe4962d41624e60419..0ee9d5eeabb0352d0a92fa0106b7a3a834a9c146 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Squid.java --- a/src/main/java/net/minecraft/world/entity/animal/Squid.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Squid.java +++ b/src/main/java/net/minecraft/world/entity/animal/Squid.java
@@ -48,9 +48,32 @@ public class Squid extends WaterAnimal { @@ -48,9 +48,32 @@ public class Squid extends WaterAnimal {
@@ -4251,7 +4251,7 @@ index 92974452d8f63fde8524cfac305ee2ef5212f840..3568c4b7ecfa250bbeb1799685b487df
protected void defineSynchedData() { protected void defineSynchedData() {
super.defineSynchedData(); super.defineSynchedData();
diff --git a/src/main/java/net/minecraft/world/entity/monster/Slime.java b/src/main/java/net/minecraft/world/entity/monster/Slime.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Slime.java b/src/main/java/net/minecraft/world/entity/monster/Slime.java
index 2e59a32aa8afe45641a319b1a6c347ee944398a8..01416cef059e4b8d82a0676a0ced19a325a47ace 100644 index 2502cb476032c6a247132ce2e427721d6c9f8ce4..23ed3890fd5a5786c1d251b926cb386b16f8b4f9 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Slime.java --- a/src/main/java/net/minecraft/world/entity/monster/Slime.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Slime.java +++ b/src/main/java/net/minecraft/world/entity/monster/Slime.java
@@ -61,6 +61,7 @@ public class Slime extends Mob implements Enemy { @@ -61,6 +61,7 @@ public class Slime extends Mob implements Enemy {
@@ -4381,7 +4381,7 @@ index 2e59a32aa8afe45641a319b1a6c347ee944398a8..01416cef059e4b8d82a0676a0ced19a3
} }
diff --git a/src/main/java/net/minecraft/world/entity/monster/Spider.java b/src/main/java/net/minecraft/world/entity/monster/Spider.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Spider.java b/src/main/java/net/minecraft/world/entity/monster/Spider.java
index 0c68ed759421d6bce4435399f1b4980510081cac..8133ff59a1dba12542c7b582381433267ca18ce5 100644 index 7618364e5373fe17cfe45a5a4ee9ab25e591581c..dd1a6fc505ce2214903dbe703bcabe7d264fbe90 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Spider.java --- a/src/main/java/net/minecraft/world/entity/monster/Spider.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Spider.java +++ b/src/main/java/net/minecraft/world/entity/monster/Spider.java
@@ -53,14 +53,33 @@ public class Spider extends Monster { @@ -53,14 +53,33 @@ public class Spider extends Monster {
@@ -4746,7 +4746,7 @@ index 11275a9ec6faa69c9f054683cb47312e443ba883..dc29e875c1e184c1c4553c127bb8c86d
this.level().getProfiler().pop(); this.level().getProfiler().pop();
this.updateActivity(); this.updateActivity();
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
index 3fa43be16cc8d35622c269db37875b4bd0a09405..aa6533c40b73bc72a4906f0533f13e74e58c091a 100644 index 5c40e994007dbf46ebc12c1e6a6ca90379471b74..3be3e46408b2d43f2cbb27b516be8c466ab0ed79 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
@@ -107,11 +107,30 @@ public class Zombie extends Monster { @@ -107,11 +107,30 @@ public class Zombie extends Monster {
@@ -5114,10 +5114,10 @@ index 1c89f20debfad9807c90a21cc336d5790294ebce..3782209c6d3408393e91ffe64976a15c
this.setTradingPlayer(player); this.setTradingPlayer(player);
this.openTradingScreen(player, this.getDisplayName(), 1); this.openTradingScreen(player, this.getDisplayName(), 1);
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index 35869e655a7488f7b5868895287b8045b03f2d63..1662bff77da2acae9661f1a083e048d5626189f7 100644 index 44a17a8e763455e834dcf488044a0f4907ce346e..16e90cc84433a0cdabcf3fec8d9734d074b73c71 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java --- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -194,6 +194,19 @@ public abstract class Player extends LivingEntity { @@ -192,6 +192,19 @@ public abstract class Player extends LivingEntity {
} }
// CraftBukkit end // CraftBukkit end
@@ -5172,7 +5172,7 @@ index 78dd3365dc4d1265fc2102f740d75a384f5df5c5..4a2331c22a022881d66bcfd4134b0ffe
public boolean isPickable() { public boolean isPickable() {
return false; return false;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index f16ac1d640fc97f348c244d4ea86e3278b30ae19..6f7be7d29b4654d463299c62b8a01696ca187eb2 100644 index 8698104e3eb98e2cc5da5de87a8f538860c1d91d..39ae3335866669be54f31ee6cd10d41bc70b193c 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -1227,4 +1227,27 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { @@ -1227,4 +1227,27 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Barrels and enderchests 6 rows
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 2a4b63ead77cf6117b1ebefe9d9dbd6c73ed4d95..9cc88489e9545b6d2de410d702a8395ccf101f89 100644 index 5eedc109e84a8e059ccacf43fc2a8d8475ee3543..2b65d30a143fdc2af635125901f2aba8fdc8c4a7 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
@@ -1189,6 +1189,27 @@ public abstract class PlayerList { @@ -1188,6 +1188,27 @@ public abstract class PlayerList {
player.getBukkitEntity().recalculatePermissions(); // CraftBukkit player.getBukkitEntity().recalculatePermissions(); // CraftBukkit
this.server.getCommands().sendCommands(player); this.server.getCommands().sendCommands(player);
} // Paper - Add sendOpLevel API } // Paper - Add sendOpLevel API
@@ -37,13 +37,13 @@ index 2a4b63ead77cf6117b1ebefe9d9dbd6c73ed4d95..9cc88489e9545b6d2de410d702a8395c
public boolean isWhiteListed(GameProfile profile) { public boolean isWhiteListed(GameProfile profile) {
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index b33f63016fc2818b0a6a05107e435e1c9be3ca97..1f7022c086c88d9a7b8672ede2a5a14f85999461 100644 index 16e90cc84433a0cdabcf3fec8d9734d074b73c71..9d3e681faa5639b540e8c9b68dc9098ace3ecf03 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java --- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -183,6 +183,7 @@ public abstract class Player extends LivingEntity { @@ -181,6 +181,7 @@ public abstract class Player extends LivingEntity {
public boolean affectsSpawning = true; public float hurtDir; // Paper - protected -> public
public boolean affectsSpawning = true; // Paper - Affects Spawning API
public net.kyori.adventure.util.TriState flyingFallDamage = net.kyori.adventure.util.TriState.NOT_SET; // Paper - flying fall damage public net.kyori.adventure.util.TriState flyingFallDamage = net.kyori.adventure.util.TriState.NOT_SET; // Paper - flying fall damage
// Paper end
+ public int sixRowEnderchestSlotCount = -1; // Purpur + public int sixRowEnderchestSlotCount = -1; // Purpur
// CraftBukkit start // CraftBukkit start

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] AFK API
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 936224e1884f7f7d03d51c2cce3599a78d174b80..ae60a3ba8a482cbae6905e66cfbb034c298a25e2 100644 index 62fd29f19b93f07a87377f26d9e5b169b9d80f4f..e4f36920d54688b515b86ada943765d460361889 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
@@ -2234,8 +2234,68 @@ public class ServerPlayer extends Player { @@ -2234,8 +2234,68 @@ public class ServerPlayer extends Player {
@@ -78,7 +78,7 @@ index 936224e1884f7f7d03d51c2cce3599a78d174b80..ae60a3ba8a482cbae6905e66cfbb034c
return this.stats; return this.stats;
} }
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 4326b324ff5c815b38211fe24cb5f05b974c3200..1c14341cff817e66d982d306f5e51248bca7ec19 100644 index 564ad357c3f85c3018b51e592474722f9f92bf35..466df3f098688d42320127273c07219cc3673258 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
@@ -325,6 +325,20 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -325,6 +325,20 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -165,7 +165,7 @@ index 823efad652d8ff9e96b99375b102fef6f017716e..caa8a69bde0c212c36dd990a67836ac2
} }
// CraftBukkit start // CraftBukkit start
diff --git a/src/main/java/net/minecraft/world/entity/EntitySelector.java b/src/main/java/net/minecraft/world/entity/EntitySelector.java diff --git a/src/main/java/net/minecraft/world/entity/EntitySelector.java b/src/main/java/net/minecraft/world/entity/EntitySelector.java
index b350d41a724048af06f9aa9bbef039d3d719c3a8..4f25d52e70752d56c0c03d437651638ac57fa576 100644 index d8cc5614502db7025349e085381b6b32ad32296a..f1b9e83206cc67e6ef29ebe088351b0aaa5eb349 100644
--- a/src/main/java/net/minecraft/world/entity/EntitySelector.java --- a/src/main/java/net/minecraft/world/entity/EntitySelector.java
+++ b/src/main/java/net/minecraft/world/entity/EntitySelector.java +++ b/src/main/java/net/minecraft/world/entity/EntitySelector.java
@@ -40,6 +40,7 @@ public final class EntitySelector { @@ -40,6 +40,7 @@ public final class EntitySelector {
@@ -175,7 +175,7 @@ index b350d41a724048af06f9aa9bbef039d3d719c3a8..4f25d52e70752d56c0c03d437651638a
+ public static Predicate<Player> notAfk = (player) -> !player.isAfk(); // Purpur + public static Predicate<Player> notAfk = (player) -> !player.isAfk(); // Purpur
private EntitySelector() {} private EntitySelector() {}
// Paper start // Paper start - Affects Spawning API
diff --git a/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java b/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java diff --git a/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java b/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java
index 3c4f4af85a3f2d4f9f52827164e63727b916c33a..aa4dec55c1d4cd9796587ea3a3343131a4d2f0a4 100644 index 3c4f4af85a3f2d4f9f52827164e63727b916c33a..aa4dec55c1d4cd9796587ea3a3343131a4d2f0a4 100644
--- a/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java --- a/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java
@@ -192,10 +192,10 @@ index 3c4f4af85a3f2d4f9f52827164e63727b916c33a..aa4dec55c1d4cd9796587ea3a3343131
if (baseEntity == null) { if (baseEntity == null) {
if (this.isCombat && (!targetEntity.canBeSeenAsEnemy() || targetEntity.level().getDifficulty() == Difficulty.PEACEFUL)) { if (this.isCombat && (!targetEntity.canBeSeenAsEnemy() || targetEntity.level().getDifficulty() == Difficulty.PEACEFUL)) {
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index 45a5e6d8a77d820674a7c27867cfbb373c0be860..ad17b7e61b882acefb6ea6fd769244c5c028f5ec 100644 index 9d3e681faa5639b540e8c9b68dc9098ace3ecf03..dac631ffd190829e299ab30415ade7c06f70f4c3 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java --- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -189,6 +189,13 @@ public abstract class Player extends LivingEntity { @@ -187,6 +187,13 @@ public abstract class Player extends LivingEntity {
public boolean fauxSleeping; public boolean fauxSleeping;
public int oldLevel = -1; public int oldLevel = -1;
@@ -210,7 +210,7 @@ index 45a5e6d8a77d820674a7c27867cfbb373c0be860..ad17b7e61b882acefb6ea6fd769244c5
public CraftHumanEntity getBukkitEntity() { public CraftHumanEntity getBukkitEntity() {
return (CraftHumanEntity) super.getBukkitEntity(); return (CraftHumanEntity) super.getBukkitEntity();
diff --git a/src/main/java/net/minecraft/world/level/EntityGetter.java b/src/main/java/net/minecraft/world/level/EntityGetter.java diff --git a/src/main/java/net/minecraft/world/level/EntityGetter.java b/src/main/java/net/minecraft/world/level/EntityGetter.java
index ff0b7b9e4ae3aa0c170d05bc51fd7ff26e7531ee..53d4000593d4c79de8e8ab04bfd614b7ee0ad7a5 100644 index ed84c87a3f76bc0254c1abb189e6b8b808823465..5bc68b1ef33f297e9a4b1bdd7d69f86a46ad6fbd 100644
--- a/src/main/java/net/minecraft/world/level/EntityGetter.java --- a/src/main/java/net/minecraft/world/level/EntityGetter.java
+++ b/src/main/java/net/minecraft/world/level/EntityGetter.java +++ b/src/main/java/net/minecraft/world/level/EntityGetter.java
@@ -191,7 +191,7 @@ public interface EntityGetter { @@ -191,7 +191,7 @@ public interface EntityGetter {
@@ -223,10 +223,10 @@ index ff0b7b9e4ae3aa0c170d05bc51fd7ff26e7531ee..53d4000593d4c79de8e8ab04bfd614b7
if (range < 0.0D || d < range * range) { if (range < 0.0D || d < range * range) {
return true; return true;
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 4ab63267c4ec808d3daf94478a1425b5aa70b75f..833d20484c3bd5b59fff64141f2aa352742a3d5f 100644 index 8de8452b93833dbfe9e69b2b269264c0aa167e52..84ab7296ca213ccc2d8983b6a4417993cbed70b5 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
@@ -524,10 +524,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -482,10 +482,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override @Override
public void setPlayerListName(String name) { public void setPlayerListName(String name) {
@@ -243,7 +243,7 @@ index 4ab63267c4ec808d3daf94478a1425b5aa70b75f..833d20484c3bd5b59fff64141f2aa352
for (ServerPlayer player : (List<ServerPlayer>) this.server.getHandle().players) { for (ServerPlayer player : (List<ServerPlayer>) this.server.getHandle().players) {
if (player.getBukkitEntity().canSee(this)) { if (player.getBukkitEntity().canSee(this)) {
player.connection.send(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME, this.getHandle())); player.connection.send(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME, this.getHandle()));
@@ -3379,5 +3384,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -3367,5 +3372,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public boolean usesPurpurClient() { public boolean usesPurpurClient() {
return getHandle().purpurClient; return getHandle().purpurClient;
} }
@@ -317,7 +317,7 @@ index e248395ad5f5f012aeefecf367d54f90cade0996..70f53ccb22de2c05c9ead68f8bd29d0b
public boolean untamedTamablesAreRidable = true; public boolean untamedTamablesAreRidable = true;
public boolean useNightVisionWhenRiding = false; public boolean useNightVisionWhenRiding = false;
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 a69814d3a6214af734d670fe5545518a5f8a8dc5..a2227d7148910631c9cec73aef2c24e223385963 100644 index 41cddf7e42f0e8f80973e482a95e55d3bd19f659..b73bb349aed01a96515e5d4d7fe67d28bd80189f 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
@@ -203,6 +203,7 @@ public class ActivationRange @@ -203,6 +203,7 @@ public class ActivationRange

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Bring back server name
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java
index 1643186bcb2caf5d29fd551afd35830726dbb80a..d53e0b67d847dfec2f4b118b5ca3f0ed1dc29ad6 100644 index bab2471616404821671264ccefd729cab8d0bf58..ae75edfaa9e4c72f11fbb7ffc66294be47c206cc 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java
@@ -57,6 +57,7 @@ public class DedicatedServerProperties extends Settings<DedicatedServerPropertie @@ -57,6 +57,7 @@ public class DedicatedServerProperties extends Settings<DedicatedServerPropertie
@@ -17,10 +17,10 @@ index 1643186bcb2caf5d29fd551afd35830726dbb80a..d53e0b67d847dfec2f4b118b5ca3f0ed
public final boolean spawnNpcs = this.get("spawn-npcs", true); public final boolean spawnNpcs = this.get("spawn-npcs", true);
public final boolean pvp = this.get("pvp", true); public final boolean pvp = this.get("pvp", true);
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 d1776bb7309b6e35115ab39e31d4bf4b96e5e28b..a52feda7ecf3314b04c9c43c91d3481b52df50e3 100644 index f4452341be3572129dc8c59bb511ef199ff31938..d98ed16ce24fb82dff5bdccb33fb7936408b8634 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
@@ -3252,4 +3252,11 @@ public final class CraftServer implements Server { @@ -3249,4 +3249,11 @@ public final class CraftServer implements Server {
} }
// Paper end // Paper end

View File

@@ -5,15 +5,15 @@ Subject: [PATCH] Configurable server mod name
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 41918e5fe6d55749204a9207efe305e2f1369d9c..4d5b840844bd125940d8db4e71f2000eb66e52a7 100644 index db9267ce8da952397398a077cc65e72dc9909719..979acf21f88bf6248404dcdd1b20d3c0ab8dcde4 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
@@ -1861,7 +1861,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1859,7 +1859,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@DontObfuscate @DontObfuscate
public String getServerModName() { public String getServerModName() {
- return "Purpur"; // Purpur - Purpur > // Pufferfish - Pufferfish > // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla! - return "Purpur"; // Purpur - Purpur > // Pufferfish - Pufferfish > // Paper
+ return org.purpurmc.purpur.PurpurConfig.serverModName; // Purpur - Purpur > // Pufferfish - Pufferfish > // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla! + return org.purpurmc.purpur.PurpurConfig.serverModName; // Purpur - Purpur > // Pufferfish - Pufferfish > // Paper
} }
public SystemReport fillSystemReport(SystemReport details) { public SystemReport fillSystemReport(SystemReport details) {

View File

@@ -5,18 +5,18 @@ Subject: [PATCH] Lagging threshold
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 8955a2537744658164175120e30feb7088e1f6cc..0dbd0e67e236059ef960c5b88b9eb4ac40008298 100644 index 979acf21f88bf6248404dcdd1b20d3c0ab8dcde4..fef2374ac572361a40f86311ed0879830f031040 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
@@ -307,6 +307,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -307,6 +307,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// 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 static long currentTickLong = 0L; // Paper - track current tick as a long public static long currentTickLong = 0L; // Paper - track current tick as a long
public boolean isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
+ public boolean lagging = false; // Purpur + public boolean lagging = false; // Purpur
public volatile Thread shutdownThread; // Paper public volatile Thread shutdownThread; // Paper
public volatile boolean abnormalExit = false; // Paper public volatile boolean abnormalExit = false; // Paper
@@ -1197,6 +1198,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1194,6 +1195,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.recentTps[1] = tps5.getAverage(); this.recentTps[1] = tps5.getAverage();
this.recentTps[2] = tps15.getAverage(); this.recentTps[2] = tps15.getAverage();
// Paper end // Paper end
@@ -25,10 +25,10 @@ index 8955a2537744658164175120e30feb7088e1f6cc..0dbd0e67e236059ef960c5b88b9eb4ac
} else curTime = Util.getNanos(); // Paper } else curTime = Util.getNanos(); // Paper
// Spigot end // Spigot end
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 a52feda7ecf3314b04c9c43c91d3481b52df50e3..958c7f58d253df363e9657f5cd3f4a35aa68e672 100644 index d98ed16ce24fb82dff5bdccb33fb7936408b8634..5c30c63c2af21b75e3b785e9f024526baa7dbaa2 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
@@ -3258,5 +3258,10 @@ public final class CraftServer implements Server { @@ -3255,5 +3255,10 @@ public final class CraftServer implements Server {
public String getServerName() { public String getServerName() {
return this.getProperties().serverName; return this.getProperties().serverName;
} }

View File

@@ -5,11 +5,11 @@ Subject: [PATCH] Zombie horse naturally spawn
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 a129e8ef37fef6fa289e6457b68a221947ef0348..a89a84f0955c5f3bee8abf529b585f04d5349de2 100644 index cdc17904cdf3d6669503e09debfbb156a80f0020..0ae833018867b9f347fa8261898ec7353368ba4e 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
@@ -1016,10 +1016,18 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1016,10 +1016,18 @@ public class ServerLevel extends Level implements WorldGenLevel {
boolean flag1 = this.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.getEffectiveDifficulty() * this.paperConfig().entities.spawning.skeletonHorseThunderSpawnChance.or(0.01D) && !this.getBlockState(blockposition.below()).is(Blocks.LIGHTNING_ROD); // Paper boolean flag1 = this.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.getEffectiveDifficulty() * this.paperConfig().entities.spawning.skeletonHorseThunderSpawnChance.or(0.01D) && !this.getBlockState(blockposition.below()).is(Blocks.LIGHTNING_ROD); // Paper - Configurable spawn chances for skeleton horses
if (flag1) { if (flag1) {
- SkeletonHorse entityhorseskeleton = (SkeletonHorse) EntityType.SKELETON_HORSE.create(this); - SkeletonHorse entityhorseskeleton = (SkeletonHorse) EntityType.SKELETON_HORSE.create(this);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add permission for F3+N debug
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 04ac541f71bac6c8d26a92b61fd25574a49bbc1c..0ced4627e0374d7e9fcbff256505b190021efd3f 100644 index 2b65d30a143fdc2af635125901f2aba8fdc8c4a7..77f69ea078975f2e74a07526e4ed8c7eb742c05b 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
@@ -1181,6 +1181,7 @@ public abstract class PlayerList { @@ -1180,6 +1180,7 @@ public abstract class PlayerList {
} else { } else {
b0 = (byte) (24 + permissionLevel); b0 = (byte) (24 + permissionLevel);
} }

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable TPS Catchup
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 c5ee8232e13ae837e2f40fbf07ed1002a4c4a620..5dc1216684146dc34fd21eaf829aa59f11efac0c 100644 index fef2374ac572361a40f86311ed0879830f031040..73d7385c00f41075b00e68d3b44c56501c47a6a5 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
@@ -1222,11 +1222,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1219,11 +1219,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.mayHaveDelayedTasks = true; this.mayHaveDelayedTasks = true;
this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + i, this.nextTickTimeNanos); this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + i, this.nextTickTimeNanos);
// Pufferfish start - tps catchup // Pufferfish start - tps catchup

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add player death exp control options
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index 27d5b180d0b9acd883726c07b5507e09509c6ba1..783f3fa87c2142a6e220dd4e199040b671954b15 100644 index dac631ffd190829e299ab30415ade7c06f70f4c3..346b4027006d5cde97ec5bc4599635b145a76de1 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java --- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -1935,9 +1935,19 @@ public abstract class Player extends LivingEntity { @@ -1933,9 +1933,19 @@ public abstract class Player extends LivingEntity {
@Override @Override
public int getExperienceReward() { public int getExperienceReward() {
if (!this.level().getGameRules().getBoolean(GameRules.RULE_KEEPINVENTORY) && !this.isSpectator()) { if (!this.level().getGameRules().getBoolean(GameRules.RULE_KEEPINVENTORY) && !this.isSpectator()) {
@@ -32,7 +32,7 @@ index 27d5b180d0b9acd883726c07b5507e09509c6ba1..783f3fa87c2142a6e220dd4e199040b6
return 0; return 0;
} }
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 021a25e23103f789361f6263df52436fa4b0adfe..b6254ebac4140c1d3887a4307304d4a8f7d1b6a2 100644 index f8350126625341c4defc9a5d47f8ed42875c0241..f83d25ca31593e39fc64f292f0c6daaeac01d713 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -171,6 +171,8 @@ public class PurpurWorldConfig { @@ -171,6 +171,8 @@ public class PurpurWorldConfig {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Configurable void damage height and damage
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 7ca03d221e33cec1df99b6dcd60fcdd401530938..9f354cbc17e66c425a274b00f15e6cf51cdb2cee 100644 index c4e3a662374ca1695c8e66d74a7a625664c160d7..605c15bb3ca7f4c13a7c869ccd61961d5e01937e 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
@@ -902,7 +902,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -902,7 +902,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -16,9 +16,9 @@ index 7ca03d221e33cec1df99b6dcd60fcdd401530938..9f354cbc17e66c425a274b00f15e6cf5
+ if (this.getY() < (double) (this.level.getMinBuildHeight() + level().purpurConfig.voidDamageHeight) || (this.level.getWorld().getEnvironment() == org.bukkit.World.Environment.NETHER // Purpur + if (this.getY() < (double) (this.level.getMinBuildHeight() + level().purpurConfig.voidDamageHeight) || (this.level.getWorld().getEnvironment() == org.bukkit.World.Environment.NETHER // Purpur
&& this.level.paperConfig().environment.netherCeilingVoidDamageHeight.test(v -> this.getY() >= v) && this.level.paperConfig().environment.netherCeilingVoidDamageHeight.test(v -> this.getY() >= v)
&& (!(this instanceof Player player) || !player.getAbilities().invulnerable))) { && (!(this instanceof Player player) || !player.getAbilities().invulnerable))) {
// Paper end // Paper end - Configurable nether ceiling damage
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 c27e254d42697f028f3aca902bcb58ba33f95ce4..d668fd41d2bc2ab6a782cf5415507cbd83754c18 100644 index b1e6a65769d0915712571214f82f225437b02706..f4c1fd338dc1f37859eb13b5c9e9dae52aac0218 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
@@ -2541,7 +2541,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -2541,7 +2541,7 @@ public abstract class LivingEntity extends Entity implements Attackable {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add canSaveToDisk to Entity
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 9f354cbc17e66c425a274b00f15e6cf51cdb2cee..96e79ca690a3951dd24601673703f914465c48a3 100644 index 605c15bb3ca7f4c13a7c869ccd61961d5e01937e..2dcfcc740aab2fe069aff01bff37c1c310203998 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
@@ -498,6 +498,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -560,6 +560,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return false; return false;
} }

View File

@@ -5,32 +5,23 @@ Subject: [PATCH] Add 5 second tps average in /tps
diff --git a/src/main/java/com/destroystokyo/paper/gui/RAMDetails.java b/src/main/java/com/destroystokyo/paper/gui/RAMDetails.java diff --git a/src/main/java/com/destroystokyo/paper/gui/RAMDetails.java b/src/main/java/com/destroystokyo/paper/gui/RAMDetails.java
index 066b9e4c4f0e7773548eda045cdd1ca8445221d2..92eaba96135ccddb7d682dab7e82cde9318a48ef 100644 index 039a86034928a5eb7aaa2d7ca76a7bddcca346bd..308f67d0616e2d6bb135258f1fda53ccdee01430 100644
--- a/src/main/java/com/destroystokyo/paper/gui/RAMDetails.java --- a/src/main/java/com/destroystokyo/paper/gui/RAMDetails.java
+++ b/src/main/java/com/destroystokyo/paper/gui/RAMDetails.java +++ b/src/main/java/com/destroystokyo/paper/gui/RAMDetails.java
@@ -58,7 +58,7 @@ public class RAMDetails extends JList<String> { @@ -68,7 +68,7 @@ public class RAMDetails extends JList<String> {
GraphData data = RAMGraph.DATA.peekLast();
Vector<String> vector = new Vector<>();
- double[] tps = new double[] {server.tps1.getAverage(), server.tps5.getAverage(), server.tps15.getAverage()};
+ double[] tps = new double[] {server.tps5s.getAverage(), server.tps1.getAverage(), server.tps5.getAverage(), server.tps15.getAverage()}; // Purpur
String[] tpsAvg = new String[tps.length];
for ( int g = 0; g < tps.length; g++) {
@@ -67,7 +67,7 @@ public class RAMDetails extends JList<String> {
vector.add("Memory use: " + (data.getUsedMem() / 1024L / 1024L) + " mb (" + (data.getFree() * 100L / data.getMax()) + "% free)"); vector.add("Memory use: " + (data.getUsedMem() / 1024L / 1024L) + " mb (" + (data.getFree() * 100L / data.getMax()) + "% free)");
vector.add("Heap: " + (data.getTotal() / 1024L / 1024L) + " / " + (data.getMax() / 1024L / 1024L) + " mb"); vector.add("Heap: " + (data.getTotal() / 1024L / 1024L) + " / " + (data.getMax() / 1024L / 1024L) + " mb");
vector.add("Avg tick: " + DECIMAL_FORMAT.format(this.getAverage(server.getTickTimesNanos())) + " ms"); vector.add("Avg tick: " + DECIMAL_FORMAT.format((double)this.server.getAverageTickTimeNanos() / (double) TimeUtil.NANOSECONDS_PER_MILLISECOND) + " ms");
- vector.add("TPS from last 1m, 5m, 15m: " + String.join(", ", tpsAvg)); - vector.add("TPS from last 1m, 5m, 15m: " + String.join(", ", tpsAvg));
+ vector.add("TPS from last 5s, 1m, 5m, 15m: " + String.join(", ", tpsAvg)); // Purpur + vector.add("TPS from last 5s, 1m, 5m, 15m: " + String.join(", ", tpsAvg)); // Purpur
setListData(vector); setListData(vector);
} }
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 830d02bfb5fc84079fc70d59919a9547e4cf2874..56e5c6ff88b6037f725020ac381d6ae473c059a4 100644 index 73d7385c00f41075b00e68d3b44c56501c47a6a5..cc17176b4019a99e8322942a33cb66a0ea93735a 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
@@ -303,7 +303,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -302,7 +302,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public static final int TPS = 20; public static final int TPS = 20;
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 private static final int SAMPLE_INTERVAL = 20; // Paper
@@ -39,7 +30,7 @@ index 830d02bfb5fc84079fc70d59919a9547e4cf2874..56e5c6ff88b6037f725020ac381d6ae4
// 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 static long currentTickLong = 0L; // Paper - track current tick as a long public static long currentTickLong = 0L; // Paper - track current tick as a long
@@ -1080,6 +1080,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1077,6 +1077,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
private static final long MAX_CATCHUP_BUFFER = TICK_TIME * TPS * 60L; private static final long MAX_CATCHUP_BUFFER = TICK_TIME * TPS * 60L;
private long lastTick = 0; private long lastTick = 0;
private long catchupTime = 0; private long catchupTime = 0;
@@ -47,7 +38,7 @@ index 830d02bfb5fc84079fc70d59919a9547e4cf2874..56e5c6ff88b6037f725020ac381d6ae4
public final RollingAverage tps1 = new RollingAverage(60); public final RollingAverage tps1 = new RollingAverage(60);
public final RollingAverage tps5 = new RollingAverage(60 * 5); public final RollingAverage tps5 = new RollingAverage(60 * 5);
public final RollingAverage tps15 = new RollingAverage(60 * 15); public final RollingAverage tps15 = new RollingAverage(60 * 15);
@@ -1190,13 +1191,17 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1187,13 +1188,17 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
curTime = Util.getNanos(); curTime = Util.getNanos();
final long diff = curTime - tickSection; final long diff = curTime - tickSection;
java.math.BigDecimal currentTps = TPS_BASE.divide(new java.math.BigDecimal(diff), 30, java.math.RoundingMode.HALF_UP); java.math.BigDecimal currentTps = TPS_BASE.divide(new java.math.BigDecimal(diff), 30, java.math.RoundingMode.HALF_UP);
@@ -68,20 +59,33 @@ index 830d02bfb5fc84079fc70d59919a9547e4cf2874..56e5c6ff88b6037f725020ac381d6ae4
// Paper end // Paper end
lagging = recentTps[0] < org.purpurmc.purpur.PurpurConfig.laggingThreshold; // Purpur lagging = recentTps[0] < org.purpurmc.purpur.PurpurConfig.laggingThreshold; // Purpur
tickSection = curTime; tickSection = curTime;
diff --git a/src/main/java/net/minecraft/server/gui/StatsComponent.java b/src/main/java/net/minecraft/server/gui/StatsComponent.java
index 38fe7e5014332f45e41a3d5d91c28dd0acfdc3b0..479657ddef21f0279b361117b82549f7105be416 100644
--- a/src/main/java/net/minecraft/server/gui/StatsComponent.java
+++ b/src/main/java/net/minecraft/server/gui/StatsComponent.java
@@ -45,7 +45,7 @@ public class StatsComponent extends JComponent {
}
this.msgs[0] = "Memory use: " + l / 1024L / 1024L + " mb (" + Runtime.getRuntime().freeMemory() * 100L / Runtime.getRuntime().maxMemory() + "% free)";
this.msgs[1] = "Avg tick: " + DECIMAL_FORMAT.format((double)this.server.getAverageTickTimeNanos() / (double)TimeUtil.NANOSECONDS_PER_MILLISECOND) + " ms";
- this.msgs[2] = "TPS from last 1m, 5m, 15m: " + String.join(", ", tpsAvg);
+ this.msgs[2] = "TPS from last 5s, 1m, 5m, 15m: " + String.join(", ", tpsAvg); // Purpur
// Paper end - Improve ServerGUI
this.values[this.vp++ & 255] = (int)(l * 100L / Runtime.getRuntime().maxMemory());
this.repaint();
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 958c7f58d253df363e9657f5cd3f4a35aa68e672..a675368062510a699ef18fb8064f0909930618d5 100644 index 5c30c63c2af21b75e3b785e9f024526baa7dbaa2..555cffaf05116c7c0a3071c83221d10710be62e8 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
@@ -2972,6 +2972,7 @@ public final class CraftServer implements Server { @@ -3047,6 +3047,7 @@ public final class CraftServer implements Server {
@Override @Override
public double[] getTPS() { public double[] getTPS() {
return new double[] { return new double[] {
+ net.minecraft.server.MinecraftServer.getServer().tps5s.getAverage(), // Purpur + net.minecraft.server.MinecraftServer.getServer().tps5s.getAverage(), // Purpur
net.minecraft.server.MinecraftServer.getServer().tps1.getAverage(), net.minecraft.server.MinecraftServer.getServer().tps1.getAverage(),
net.minecraft.server.MinecraftServer.getServer().tps5.getAverage(), net.minecraft.server.MinecraftServer.getServer().tps5.getAverage(),
net.minecraft.server.MinecraftServer.getServer().tps15.getAverage() net.minecraft.server.MinecraftServer.getServer().tps15.getAverage()
diff --git a/src/main/java/org/spigotmc/TicksPerSecondCommand.java b/src/main/java/org/spigotmc/TicksPerSecondCommand.java diff --git a/src/main/java/org/spigotmc/TicksPerSecondCommand.java b/src/main/java/org/spigotmc/TicksPerSecondCommand.java
index 9eb2823cc8f83bad2626fc77578b0162d9ed5782..5da1ef6d90c6a5bd047e971bcc56d786239c6fd8 100644 index 9eb2823cc8f83bad2626fc77578b0162d9ed5782..f144a08e88f8268b84eb188a36bf470457f59958 100644
--- a/src/main/java/org/spigotmc/TicksPerSecondCommand.java --- a/src/main/java/org/spigotmc/TicksPerSecondCommand.java
+++ b/src/main/java/org/spigotmc/TicksPerSecondCommand.java +++ b/src/main/java/org/spigotmc/TicksPerSecondCommand.java
@@ -39,7 +39,7 @@ public class TicksPerSecondCommand extends Command @@ -39,7 +39,7 @@ public class TicksPerSecondCommand extends Command
@@ -89,7 +93,7 @@ index 9eb2823cc8f83bad2626fc77578b0162d9ed5782..5da1ef6d90c6a5bd047e971bcc56d786
net.kyori.adventure.text.TextComponent.Builder builder = net.kyori.adventure.text.Component.text(); net.kyori.adventure.text.TextComponent.Builder builder = net.kyori.adventure.text.Component.text();
- builder.append(net.kyori.adventure.text.Component.text("TPS from last 1m, 5m, 15m: ", net.kyori.adventure.text.format.NamedTextColor.GOLD)); - builder.append(net.kyori.adventure.text.Component.text("TPS from last 1m, 5m, 15m: ", net.kyori.adventure.text.format.NamedTextColor.GOLD));
+ builder.append(net.kyori.adventure.text.Component.text("TPS from last 5s, 1m, 5m, 15m: ", net.kyori.adventure.text.format.NamedTextColor.GOLD)); + builder.append(net.kyori.adventure.text.Component.text("TPS from last 5s, 1m, 5m, 15m: ", net.kyori.adventure.text.format.NamedTextColor.GOLD)); // Purpur
builder.append(net.kyori.adventure.text.Component.join(net.kyori.adventure.text.JoinConfiguration.commas(true), tpsAvg)); builder.append(net.kyori.adventure.text.Component.join(net.kyori.adventure.text.JoinConfiguration.commas(true), tpsAvg));
sender.sendMessage(builder.asComponent()); sender.sendMessage(builder.asComponent());
if (args.length > 0 && args[0].equals("mem") && sender.hasPermission("bukkit.command.tpsmemory")) { if (args.length > 0 && args[0].equals("mem") && sender.hasPermission("bukkit.command.tpsmemory")) {

View File

@@ -5,15 +5,15 @@ Subject: [PATCH] Item entity immunities
diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java
index 79914528f6d255355284b04253218a7c4dec1ead..2568b4ad72a7b99484aaa048257a3b5465b63b9d 100644 index db55ad9aaabfa1ea998754f3ac352d1698936696..04b98e23eed926d8473cc2464e04a5b9f18f1140 100644
--- a/src/main/java/net/minecraft/server/level/ServerEntity.java --- a/src/main/java/net/minecraft/server/level/ServerEntity.java
+++ b/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java
@@ -73,7 +73,7 @@ public class ServerEntity { @@ -73,7 +73,7 @@ public class ServerEntity {
@Nullable @Nullable
private List<SynchedEntityData.DataValue<?>> trackedDataValues; private List<SynchedEntityData.DataValue<?>> trackedDataValues;
// CraftBukkit start // CraftBukkit start
- final Set<ServerPlayerConnection> trackedPlayers; // Paper - private -> package - private final Set<ServerPlayerConnection> trackedPlayers;
+ public final Set<ServerPlayerConnection> trackedPlayers; // Paper - private -> package // Purpur - package -> public + public final Set<ServerPlayerConnection> trackedPlayers; // Purpur - private -> public
public ServerEntity(ServerLevel worldserver, Entity entity, int i, boolean flag, Consumer<Packet<?>> consumer, Set<ServerPlayerConnection> trackedPlayers) { public ServerEntity(ServerLevel worldserver, Entity entity, int i, boolean flag, Consumer<Packet<?>> consumer, Set<ServerPlayerConnection> trackedPlayers) {
this.trackedPlayers = trackedPlayers; this.trackedPlayers = trackedPlayers;

View File

@@ -27,10 +27,10 @@ index 6371f326fc86cfc53e39bf8ed13b646f7705fbbc..3dec0c5fc8dece5341634eaf8e94fe19
return true; return true;
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 4325d7e8da1e1051b0525897736f1bca83eb7f6a..85411279ca52e0b3e499fffe4b08cb2ab1c3aaf6 100644 index 5b4a47e3078a8bf0533228af14c1a1031ec3ae69..6fc02fab7c0eda20abe8274e8b891f95d2c70b62 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
@@ -1912,4 +1912,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -1911,4 +1911,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
return null; return null;
} }
// Paper end - optimize redstone (Alternate Current) // Paper end - optimize redstone (Alternate Current)

View File

@@ -25,7 +25,7 @@ index e813fa037ca17bec29db916eac882cbfab432e56..c87c7feb140864771cbef3dcee1f8931
public boolean spiderRidable = false; public boolean spiderRidable = false;
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 08b266efbefc45e9b08b2c03a36441a8c7564197..e7c384a8bf16de5132245c24226fff22f5c38585 100644 index b73bb349aed01a96515e5d4d7fe67d28bd80189f..f9e3f4e15719ed9284ec315b8a1ef63dc242e009 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
@@ -15,6 +15,7 @@ import net.minecraft.world.entity.ambient.AmbientCreature; @@ -15,6 +15,7 @@ import net.minecraft.world.entity.ambient.AmbientCreature;
@@ -36,7 +36,7 @@ index 08b266efbefc45e9b08b2c03a36441a8c7564197..e7c384a8bf16de5132245c24226fff22
import net.minecraft.world.entity.animal.WaterAnimal; import net.minecraft.world.entity.animal.WaterAnimal;
import net.minecraft.world.entity.animal.horse.Llama; import net.minecraft.world.entity.animal.horse.Llama;
import net.minecraft.world.entity.boss.EnderDragonPart; import net.minecraft.world.entity.boss.EnderDragonPart;
@@ -402,6 +403,7 @@ public class ActivationRange @@ -401,6 +402,7 @@ public class ActivationRange
*/ */
public static boolean checkIfActive(Entity entity) public static boolean checkIfActive(Entity entity)
{ {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Stop squids floating on top of water
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 96e79ca690a3951dd24601673703f914465c48a3..46dfa64da35505ca8be525d0eca0e2840840f776 100644 index 2dcfcc740aab2fe069aff01bff37c1c310203998..28e2c99a757b75a0939fe50516592358eff8f719 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
@@ -4451,6 +4451,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -4446,6 +4446,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
this.yRotO = this.getYRot(); this.yRotO = this.getYRot();
} }
@@ -22,7 +22,7 @@ index 96e79ca690a3951dd24601673703f914465c48a3..46dfa64da35505ca8be525d0eca0e284
if (false && this.touchingUnloadedChunk()) { // Pufferfish - cost of a lookup here is the same cost as below, so skip if (false && this.touchingUnloadedChunk()) { // Pufferfish - cost of a lookup here is the same cost as below, so skip
return false; return false;
diff --git a/src/main/java/net/minecraft/world/entity/animal/Squid.java b/src/main/java/net/minecraft/world/entity/animal/Squid.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Squid.java b/src/main/java/net/minecraft/world/entity/animal/Squid.java
index 913b66be2111da862e706d4978825c64cfe8b00b..f68c18b6645981126329b58379946308bbb8ccf8 100644 index f9db04ee35928d76dc504808a2acfca85295a6e6..59423504642953397b77ee8c9dca7aa4b3ef2f74 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Squid.java --- a/src/main/java/net/minecraft/world/entity/animal/Squid.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Squid.java +++ b/src/main/java/net/minecraft/world/entity/animal/Squid.java
@@ -75,6 +75,12 @@ public class Squid extends WaterAnimal { @@ -75,6 +75,12 @@ public class Squid extends WaterAnimal {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Entities can use portals configuration
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 46dfa64da35505ca8be525d0eca0e2840840f776..cc7cdb842df3a9d9cb9dc86b589c9893e06577ce 100644 index 28e2c99a757b75a0939fe50516592358eff8f719..cdf8c8a571edfa1a54bbcb2e11d69536e7df61bf 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
@@ -3152,7 +3152,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -3150,7 +3150,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
public void handleInsidePortal(BlockPos pos) { public void handleInsidePortal(BlockPos pos) {
if (this.isOnPortalCooldown()) { if (this.isOnPortalCooldown()) {
this.setPortalCooldown(); this.setPortalCooldown();
@@ -17,7 +17,7 @@ index 46dfa64da35505ca8be525d0eca0e2840840f776..cc7cdb842df3a9d9cb9dc86b589c9893
if (!this.level().isClientSide && !pos.equals(this.portalEntrancePos)) { if (!this.level().isClientSide && !pos.equals(this.portalEntrancePos)) {
this.portalEntrancePos = pos.immutable(); this.portalEntrancePos = pos.immutable();
} }
@@ -3859,7 +3859,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -3857,7 +3857,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
} }
public boolean canChangeDimensions() { public boolean canChangeDimensions() {

View File

@@ -18,10 +18,10 @@ index 9ec6145fe04ec64bbee8ec6a837719caebdbc6f5..358d610ad020cada1bb83e393deeeaae
public ClientboundSetTimePacket(long time, long timeOfDay, boolean doDaylightCycle) { public ClientboundSetTimePacket(long time, long timeOfDay, boolean doDaylightCycle) {
this.gameTime = time; this.gameTime = time;
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 6dda652c76130b477b3d47bc53761a36ef55c1d7..dde0affb3b966ea3160a9f28b2921d128b6c1b92 100644 index cc17176b4019a99e8322942a33cb66a0ea93735a..d4f1151dd15c608194b6b6f7e7987b74a3928b50 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
@@ -1693,7 +1693,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1691,7 +1691,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
long worldTime = level.getGameTime(); long worldTime = level.getGameTime();
final ClientboundSetTimePacket worldPacket = new ClientboundSetTimePacket(worldTime, dayTime, doDaylight); final ClientboundSetTimePacket worldPacket = new ClientboundSetTimePacket(worldTime, dayTime, doDaylight);
for (Player entityhuman : level.players()) { for (Player entityhuman : level.players()) {
@@ -31,7 +31,7 @@ index 6dda652c76130b477b3d47bc53761a36ef55c1d7..dde0affb3b966ea3160a9f28b2921d12
} }
ServerPlayer entityplayer = (ServerPlayer) entityhuman; ServerPlayer entityplayer = (ServerPlayer) entityhuman;
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 cd54fd87fc48ee0423263c4365ac7660a9ece741..d92c809cb8dff4d146e98f20daf286180f0c43a6 100644 index 3319939e53dec5a429be20c3612599f731e6a82c..6d01f9e5e1ea4f01ff9a3e54aa97be6919e3d1fc 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
@@ -215,6 +215,8 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -215,6 +215,8 @@ public class ServerLevel extends Level implements WorldGenLevel {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Implement TPSBar
diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java
index 2b270820c0af7fdda7c4bf9edf48522611b2a454..f22d8b0ba80ada0d9f75b621b6a64914ad95567a 100644 index 27b3093aba19e457c7b83dd42dce4e546761644b..9c335df92b0a6c7705c9def89ba5c320d2c8ed03 100644
--- a/src/main/java/net/minecraft/commands/Commands.java --- a/src/main/java/net/minecraft/commands/Commands.java
+++ b/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java
@@ -253,6 +253,7 @@ public class Commands { @@ -253,6 +253,7 @@ public class Commands {
@@ -17,10 +17,10 @@ index 2b270820c0af7fdda7c4bf9edf48522611b2a454..f22d8b0ba80ada0d9f75b621b6a64914
if (environment.includeIntegrated) { if (environment.includeIntegrated) {
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 dde0affb3b966ea3160a9f28b2921d128b6c1b92..5b635c649c320e0b2d0ff30154f97270390cd440 100644 index d4f1151dd15c608194b6b6f7e7987b74a3928b50..efba2fa31b8f4b7dfe15a36ab8366d3267971a5d 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
@@ -1054,6 +1054,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1051,6 +1051,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.safeShutdown(waitForShutdown, false); this.safeShutdown(waitForShutdown, false);
} }
public void safeShutdown(boolean waitForShutdown, boolean isRestarting) { public void safeShutdown(boolean waitForShutdown, boolean isRestarting) {
@@ -41,7 +41,7 @@ index 1fbfe61b3d7fc372f044d2e9f3500d6665209973..18ec329505b0e1e76f5967ca6b298ed2
} }
} }
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 af883d6cccb83e50268fb264f929a6f69874201c..58b531c14c36bec725891c899b3f3586b5c11d9e 100644 index 2645b8366989f833628f4716e928926a2a3a039d..485fa2fecb3d83635757319d70cd8e90f95807c0 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
@@ -282,6 +282,7 @@ public class ServerPlayer extends Player { @@ -282,6 +282,7 @@ public class ServerPlayer extends Player {
@@ -83,18 +83,18 @@ index af883d6cccb83e50268fb264f929a6f69874201c..58b531c14c36bec725891c899b3f3586
// Purpur end // Purpur end
} }
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 a0db3194bc30160f349ae6319ce0faf845a40b51..18f59fcca1b905f20e2e4845864b7be67ec84efc 100644 index 77f69ea078975f2e74a07526e4ed8c7eb742c05b..1f17abac0d9ae19b2d3a5c28a19a6e8a69b6e380 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
@@ -486,6 +486,7 @@ public abstract class PlayerList { @@ -486,6 +486,7 @@ public abstract class PlayerList {
scoreboard.addPlayerToTeam(player.getScoreboardName(), collideRuleTeam); scoreboard.addPlayerToTeam(player.getScoreboardName(), collideRuleTeam);
} }
// Paper end // Paper end - Configurable player collision
+ org.purpurmc.purpur.task.BossBarTask.addToAll(player); // Purpur + org.purpurmc.purpur.task.BossBarTask.addToAll(player); // Purpur
// CraftBukkit - Moved from above, added world
PlayerList.LOGGER.info("{}[{}] logged in with entity id {} at ([{}]{}, {}, {})", player.getName().getString(), s1, player.getId(), worldserver1.serverLevelData.getLevelName(), player.getX(), player.getY(), player.getZ()); PlayerList.LOGGER.info("{}[{}] logged in with entity id {} at ([{}]{}, {}, {})", player.getName().getString(), s1, player.getId(), worldserver1.serverLevelData.getLevelName(), player.getX(), player.getY(), player.getZ());
} }
@@ -599,6 +600,7 @@ public abstract class PlayerList {
@@ -598,6 +599,7 @@ public abstract class PlayerList {
} }
public net.kyori.adventure.text.Component remove(ServerPlayer entityplayer, net.kyori.adventure.text.Component leaveMessage) { public net.kyori.adventure.text.Component remove(ServerPlayer entityplayer, net.kyori.adventure.text.Component leaveMessage) {
// Paper end - Fix kick event leave message not being sent // Paper end - Fix kick event leave message not being sent

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Full netherite armor grants fire resistance
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index fad32d590828fe2f9acec80c76a452c1fd7f4005..2cd998414287b3bc2412c0bbd2f6244e7fedb331 100644 index 346b4027006d5cde97ec5bc4599635b145a76de1..7126eab84084620661c1fd3c3311ac24fbcfad09 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java --- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -367,6 +367,16 @@ public abstract class Player extends LivingEntity { @@ -365,6 +365,16 @@ public abstract class Player extends LivingEntity {
this.addEffect(new MobEffectInstance(MobEffects.WATER_BREATHING, 200, 0, false, false, true), org.bukkit.event.entity.EntityPotionEffectEvent.Cause.TURTLE_HELMET); // CraftBukkit this.addEffect(new MobEffectInstance(MobEffects.WATER_BREATHING, 200, 0, false, false, true), org.bukkit.event.entity.EntityPotionEffectEvent.Cause.TURTLE_HELMET); // CraftBukkit
} }
@@ -26,7 +26,7 @@ index fad32d590828fe2f9acec80c76a452c1fd7f4005..2cd998414287b3bc2412c0bbd2f6244e
protected ItemCooldowns createItemCooldowns() { protected ItemCooldowns createItemCooldowns() {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 810745ee8b2f3dedf50533e31000ed29c2929718..88609510c379d0e7d94f3d821f828ed0313a9fe3 100644 index 7cb9381590a24f24099b8ad87f094b1f73f1e624..fb8d380b90338b91c7481b4c3242ab3336e32370 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -295,6 +295,19 @@ public class PurpurWorldConfig { @@ -295,6 +295,19 @@ public class PurpurWorldConfig {

View File

@@ -74,7 +74,7 @@ index f5f464e69bfb00f5ea493d109bdd96e459fcad46..c3d25a26883f7cbe7106c2f3415af0b1
blockEntity.teleportCooldown = 100; blockEntity.teleportCooldown = 100;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index 6f7be7d29b4654d463299c62b8a01696ca187eb2..c3880875f5148d869d7e067fe78cbd1b9492b501 100644 index 39ae3335866669be54f31ee6cd10d41bc70b193c..a260e3768892dcf7ddd955cf8753d4d19cd2e8d3 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -252,6 +252,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { @@ -252,6 +252,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -89,10 +89,10 @@ index 6f7be7d29b4654d463299c62b8a01696ca187eb2..c3880875f5148d869d7e067fe78cbd1b
} }
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 833d20484c3bd5b59fff64141f2aa352742a3d5f..9cf6f19312242d3efac0b689cc8b31b9256694f0 100644 index 84ab7296ca213ccc2d8983b6a4417993cbed70b5..4efb8e47a29249cbca52b637d6f721cf2a9afcfb 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
@@ -1368,6 +1368,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -1326,6 +1326,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
} }
if (entity.isVehicle() && !ignorePassengers) { // Paper - Teleport API if (entity.isVehicle() && !ignorePassengers) { // Paper - Teleport API

View File

@@ -17,10 +17,10 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
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 cc7cdb842df3a9d9cb9dc86b589c9893e06577ce..7e92c7a9c5792cb0d4c6c4370449aa0cf36d7dc5 100644 index cdf8c8a571edfa1a54bbcb2e11d69536e7df61bf..72a81ccb270e9cb23bd8324fe4f6d4cea22a0105 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
@@ -1875,7 +1875,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -1876,7 +1876,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return this.isInWater() || flag; return this.isInWater() || flag;
} }

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Fix stuck in portals
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 58b531c14c36bec725891c899b3f3586b5c11d9e..921738689a367c231e99eff6bc9fc305ebb31012 100644 index 485fa2fecb3d83635757319d70cd8e90f95807c0..3c41a23964b115145d6b14930444f16c85769634 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
@@ -1271,6 +1271,7 @@ public class ServerPlayer extends Player { @@ -1271,6 +1271,7 @@ public class ServerPlayer extends Player {
@@ -17,10 +17,10 @@ index 58b531c14c36bec725891c899b3f3586b5c11d9e..921738689a367c231e99eff6bc9fc305
// CraftBukkit end // CraftBukkit end
this.setServerLevel(worldserver); this.setServerLevel(worldserver);
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 7e92c7a9c5792cb0d4c6c4370449aa0cf36d7dc5..a040e92c3b3700461e630cd5299ff6c7400c273f 100644 index 72a81ccb270e9cb23bd8324fe4f6d4cea22a0105..dcbb4d08a365ac5a697d6d69984b916fbc5abcd9 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
@@ -3149,12 +3149,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -3147,12 +3147,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return Vec3.directionFromRotation(this.getRotationVector()); return Vec3.directionFromRotation(this.getRotationVector());
} }

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Drowning Settings
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 a040e92c3b3700461e630cd5299ff6c7400c273f..1bb50f182fa6274cb0c631e0d4e79288443b3a53 100644 index dcbb4d08a365ac5a697d6d69984b916fbc5abcd9..ae97146bf8e86a4be1b5d33f2956b28a2ed50359 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
@@ -3398,7 +3398,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -3396,7 +3396,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
} }
public int getMaxAirSupply() { public int getMaxAirSupply() {
@@ -18,7 +18,7 @@ index a040e92c3b3700461e630cd5299ff6c7400c273f..1bb50f182fa6274cb0c631e0d4e79288
public int getAirSupply() { public int getAirSupply() {
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 06a647ae44423e14f4266c9cc25ff78ee16bc3c8..95a004d6b0581cf9aa6805f08a34a04baefef8fa 100644 index a64a41c521aea5f90fcfe72dc24ae5261c5f0b6d..be5c0141d40864bbf7338f2f5b389ec8ea41e4a8 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
@@ -438,7 +438,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -438,7 +438,7 @@ public abstract class LivingEntity extends Entity implements Attackable {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add config change multiplier critical damage value
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index a48467ed99653dfb5b953baebdc947dea6fb0481..3020992f10d6fc547ab0ea431383cdcb1322eaa6 100644 index 7126eab84084620661c1fd3c3311ac24fbcfad09..63ab4eaf21d69ab40ea4d659322b429cb640db60 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java --- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -1314,7 +1314,7 @@ public abstract class Player extends LivingEntity { @@ -1312,7 +1312,7 @@ public abstract class Player extends LivingEntity {
flag2 = flag2 && !this.level().paperConfig().entities.behavior.disablePlayerCrits; // Paper - Toggleable player crits flag2 = flag2 && !this.level().paperConfig().entities.behavior.disablePlayerCrits; // Paper - Toggleable player crits
flag2 = flag2 && !this.isSprinting(); flag2 = flag2 && !this.isSprinting();
if (flag2) { if (flag2) {

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] API for any mob to burn daylight
Co-authored by: Encode42 <me@encode42.dev> Co-authored by: Encode42 <me@encode42.dev>
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 1bb50f182fa6274cb0c631e0d4e79288443b3a53..ac0fc8b7184ba1b6d40261cc15d81a7936f728d4 100644 index ae97146bf8e86a4be1b5d33f2956b28a2ed50359..db3bdc0699143b9634226c1c371955ec4ac735c8 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
@@ -502,6 +502,21 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -564,6 +564,21 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return true; return true;
} }
@@ -32,7 +32,7 @@ index 1bb50f182fa6274cb0c631e0d4e79288443b3a53..ac0fc8b7184ba1b6d40261cc15d81a79
return this.hardCollides; return this.hardCollides;
} }
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 d72838fe8a0a9540750bfc3a26202e93493c98f3..6eb7a1398d1ce63ec6c11d9865f4c16b51c361de 100644 index d2b1d362a0187a6eefa9d2a1d47971b783c252b7..6ba0fbaba03d9b7dede1b869f004bb020d25c885 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
@@ -262,6 +262,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -262,6 +262,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -92,7 +92,7 @@ index d72838fe8a0a9540750bfc3a26202e93493c98f3..6eb7a1398d1ce63ec6c11d9865f4c16b
public boolean isSensitiveToWater() { public boolean isSensitiveToWater() {
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 4383b2555cb416fce7b62b046211dbc3e8c75601..c029752141efbc48005dae0e3c1a071ba039b3a7 100644 index de8c9905e4fec3d77501871ae3041860f1ce2e50..2cf0d698b341d418d0ac4760f95e3ea52c193098 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
@@ -1758,17 +1758,7 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -1758,17 +1758,7 @@ public abstract class Mob extends LivingEntity implements Targeting {
@@ -278,7 +278,7 @@ index 637b229817f9f2c3ad224f300b56a6bee4c8a341..bcb1912ea218fbb4b849ab84a7025202
// Paper end // Paper end
private static enum AttackPhase { private static enum AttackPhase {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
index edc47e077fe44d1b817b791ddde86e052a5bf831..2dad874c0a425cf2d0a385b6061ab79d81b82c86 100644 index 94b92c6e588f871d4b0d86bb8f860a99e473a4ea..e568d014f577ab705645152446156dc04895b3bf 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
@@ -96,11 +96,12 @@ public class Zombie extends Monster { @@ -96,11 +96,12 @@ public class Zombie extends Monster {
@@ -354,7 +354,7 @@ index edc47e077fe44d1b817b791ddde86e052a5bf831..2dad874c0a425cf2d0a385b6061ab79d
// Paper end - Add more Zombie API // Paper end - Add more Zombie API
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index c3880875f5148d869d7e067fe78cbd1b9492b501..2ef6dc2390ed622eda284e3b4c85ec64e057c981 100644 index a260e3768892dcf7ddd955cf8753d4d19cd2e8d3..9304a2d06400dfa244ddb4d9591de988b334c3cf 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -83,6 +83,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { @@ -83,6 +83,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add toggle for sand duping fix
diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
index 45c07733f03b5c11f6d8e820f65dc950c70d9a67..8e9ab1335626493b8d74f71f643565c0e65af94c 100644 index 9daf8aa557d9f4fdbcc138a47892ea5a061dd877..3a25741693a8fd08ac4308da3f178155c28bf46b 100644
--- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
+++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
@@ -133,7 +133,7 @@ public class FallingBlockEntity extends Entity { @@ -133,7 +133,7 @@ public class FallingBlockEntity extends Entity {
@@ -17,9 +17,9 @@ index 45c07733f03b5c11f6d8e820f65dc950c70d9a67..8e9ab1335626493b8d74f71f643565c0
return; return;
} }
// Paper end - fix sand duping // Paper end - fix sand duping
@@ -150,7 +150,7 @@ public class FallingBlockEntity extends Entity { @@ -149,7 +149,7 @@ public class FallingBlockEntity extends Entity {
this.move(MoverType.SELF, this.getDeltaMovement());
this.move(MoverType.SELF, this.getDeltaMovement());
// Paper start - fix sand duping // Paper start - fix sand duping
- if (this.isRemoved()) { - if (this.isRemoved()) {
+ if (this.level().purpurConfig.fixSandDuping && this.isRemoved()) { // Purpur + if (this.level().purpurConfig.fixSandDuping && this.isRemoved()) { // Purpur
@@ -27,7 +27,7 @@ index 45c07733f03b5c11f6d8e820f65dc950c70d9a67..8e9ab1335626493b8d74f71f643565c0
} }
// Paper end - fix sand duping // Paper end - fix sand duping
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index fca69da24c29c9215529e5a203d7ab282ec4b7f7..7f69260fc1286c243ecc46311e1188a465f9d481 100644 index 072387303cf013876e6d13ccd6646e7f197bf7ac..77fa5b91ac5a65d2dce6195214c39dbff4aa6c8b 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -683,6 +683,11 @@ public class PurpurWorldConfig { @@ -683,6 +683,11 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add toggle for end portal safe teleporting
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 ac0fc8b7184ba1b6d40261cc15d81a7936f728d4..57376b7c0d281a7950a69348b5aa869e89719232 100644 index db3bdc0699143b9634226c1c371955ec4ac735c8..5bdafc37deac75cf6e332ba1094e375031713ca4 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
@@ -3223,7 +3223,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -3221,7 +3221,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
} }
this.processPortalCooldown(); this.processPortalCooldown();

View File

@@ -6,18 +6,18 @@ Subject: [PATCH] Burp delay, burp after eating food fills hunger bar
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index 5260138c46ca499369ff9a1c4acccb594d2c431a..cbfa65a50cb07e825b62493668764ce9f2c4a3fd 100644 index 63ab4eaf21d69ab40ea4d659322b429cb640db60..59a6836778ee11c66455c29a4dbbe94d6940c812 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java --- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -184,6 +184,7 @@ public abstract class Player extends LivingEntity { @@ -182,6 +182,7 @@ public abstract class Player extends LivingEntity {
public boolean affectsSpawning = true; // Paper - Affects Spawning API
public net.kyori.adventure.util.TriState flyingFallDamage = net.kyori.adventure.util.TriState.NOT_SET; // Paper - flying fall damage public net.kyori.adventure.util.TriState flyingFallDamage = net.kyori.adventure.util.TriState.NOT_SET; // Paper - flying fall damage
// Paper end
public int sixRowEnderchestSlotCount = -1; // Purpur public int sixRowEnderchestSlotCount = -1; // Purpur
+ public int burpDelay = 0; // Purpur + public int burpDelay = 0; // Purpur
// CraftBukkit start // CraftBukkit start
public boolean fauxSleeping; public boolean fauxSleeping;
@@ -259,6 +260,12 @@ public abstract class Player extends LivingEntity { @@ -257,6 +258,12 @@ public abstract class Player extends LivingEntity {
@Override @Override
public void tick() { public void tick() {
@@ -30,7 +30,7 @@ index 5260138c46ca499369ff9a1c4acccb594d2c431a..cbfa65a50cb07e825b62493668764ce9
this.noPhysics = this.isSpectator(); this.noPhysics = this.isSpectator();
if (this.isSpectator()) { if (this.isSpectator()) {
this.setOnGround(false); this.setOnGround(false);
@@ -2313,7 +2320,7 @@ public abstract class Player extends LivingEntity { @@ -2311,7 +2318,7 @@ public abstract class Player extends LivingEntity {
public ItemStack eat(Level world, ItemStack stack) { public ItemStack eat(Level world, ItemStack stack) {
this.getFoodData().eat(stack.getItem(), stack); this.getFoodData().eat(stack.getItem(), stack);
this.awardStat(Stats.ITEM_USED.get(stack.getItem())); this.awardStat(Stats.ITEM_USED.get(stack.getItem()));

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Allow player join full server by permission
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 61a34f3e49b21254984011bc470d72c86d55dba1..0d75ccbf6c5cacd9ce2355d4dca2b1290a8da39f 100644 index 1f17abac0d9ae19b2d3a5c28a19a6e8a69b6e380..d1afad129159d5ce7cf9530a7dfb6ed5b4fa25f3 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
@@ -755,7 +755,7 @@ public abstract class PlayerList { @@ -754,7 +754,7 @@ public abstract class PlayerList {
event.disallow(PlayerLoginEvent.Result.KICK_BANNED, io.papermc.paper.adventure.PaperAdventure.asAdventure(ichatmutablecomponent)); // Paper - Adventure event.disallow(PlayerLoginEvent.Result.KICK_BANNED, io.papermc.paper.adventure.PaperAdventure.asAdventure(ichatmutablecomponent)); // Paper - Adventure
} else { } else {
// return this.players.size() >= this.maxPlayers && !this.canBypassPlayerLimit(gameprofile) ? IChatBaseComponent.translatable("multiplayer.disconnect.server_full") : null; // return this.players.size() >= this.maxPlayers && !this.canBypassPlayerLimit(gameprofile) ? IChatBaseComponent.translatable("multiplayer.disconnect.server_full") : null;

View File

@@ -5,18 +5,18 @@ Subject: [PATCH] Add portal permission bypass
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index 5631240aed1c032faeb291358e40180f8aa40e49..952bf54a96f3ee84059f13c5821af2cfafa05c60 100644 index 59a6836778ee11c66455c29a4dbbe94d6940c812..f0e910a738d71a7759f41e6294e16db256c9c641 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java --- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -185,6 +185,7 @@ public abstract class Player extends LivingEntity { @@ -183,6 +183,7 @@ public abstract class Player extends LivingEntity {
// Paper end public net.kyori.adventure.util.TriState flyingFallDamage = net.kyori.adventure.util.TriState.NOT_SET; // Paper - flying fall damage
public int sixRowEnderchestSlotCount = -1; // Purpur public int sixRowEnderchestSlotCount = -1; // Purpur
public int burpDelay = 0; // Purpur public int burpDelay = 0; // Purpur
+ public boolean canPortalInstant = false; // Purpur + public boolean canPortalInstant = false; // Purpur
// CraftBukkit start // CraftBukkit start
public boolean fauxSleeping; public boolean fauxSleeping;
@@ -474,7 +475,7 @@ public abstract class Player extends LivingEntity { @@ -472,7 +473,7 @@ public abstract class Player extends LivingEntity {
@Override @Override
public int getPortalWaitTime() { public int getPortalWaitTime() {
@@ -26,7 +26,7 @@ index 5631240aed1c032faeb291358e40180f8aa40e49..952bf54a96f3ee84059f13c5821af2cf
@Override @Override
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
index c3dbcb317b7d366feb31f707ad1199c60169f07f..0a14e5d9922836d42a03b496023e76c98fccd824 100644 index acbb64010cd59668aa1bcb52ff1220789cadb1d3..6c2e91b986099027d83aba85f14ae69cbc358348 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
@@ -266,6 +266,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { @@ -266,6 +266,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add uptime command
diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java
index 77cced190bd287ff3f5bc8697f16b333da0bc786..bf51f5e414ab45e33efa4057ab251120290b43e1 100644 index 9c335df92b0a6c7705c9def89ba5c320d2c8ed03..c2b8a653b01aa3e0856afa3e96555f5e8f0e81bd 100644
--- a/src/main/java/net/minecraft/commands/Commands.java --- a/src/main/java/net/minecraft/commands/Commands.java
+++ b/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java
@@ -253,6 +253,7 @@ public class Commands { @@ -253,6 +253,7 @@ public class Commands {
@@ -17,12 +17,12 @@ index 77cced190bd287ff3f5bc8697f16b333da0bc786..bf51f5e414ab45e33efa4057ab251120
} }
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 fb3b7f0d6e1577f4bba4589dc454ed6d064bd49f..60d2f483de06ca661aad809425d8b52397273732 100644 index efba2fa31b8f4b7dfe15a36ab8366d3267971a5d..1c5955a5ca94c55f573ba8a4cdc81308a4357fe6 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
@@ -294,6 +294,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -293,6 +293,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public OptionSet options;
public org.bukkit.command.ConsoleCommandSender console; public org.bukkit.command.ConsoleCommandSender console;
//public ConsoleReader reader; // Paper
public static int currentTick = 0; // Paper - Further improve tick loop public static int currentTick = 0; // Paper - Further improve tick loop
+ public static final long startTimeMillis = System.currentTimeMillis(); + public static final long startTimeMillis = System.currentTimeMillis();
public java.util.Queue<Runnable> processQueue = new java.util.concurrent.ConcurrentLinkedQueue<Runnable>(); public java.util.Queue<Runnable> processQueue = new java.util.concurrent.ConcurrentLinkedQueue<Runnable>();

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Player ridable in water option
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index f262fc2069895b302073c09a58412b9e980e6660..dca769857dbf045bf2184f7761e9a09933858b51 100644 index f0e910a738d71a7759f41e6294e16db256c9c641..712d4a9cae11f75ffce45c912bf14ff92fe4735e 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java --- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -2041,6 +2041,11 @@ public abstract class Player extends LivingEntity { @@ -2039,6 +2039,11 @@ public abstract class Player extends LivingEntity {
return this.inventory.armor; return this.inventory.armor;
} }
@@ -21,7 +21,7 @@ index f262fc2069895b302073c09a58412b9e980e6660..dca769857dbf045bf2184f7761e9a099
if (!this.isPassenger() && this.onGround() && !this.isInWater() && !this.isInPowderSnow) { if (!this.isPassenger() && this.onGround() && !this.isInWater() && !this.isInPowderSnow) {
if (this.getShoulderEntityLeft().isEmpty()) { if (this.getShoulderEntityLeft().isEmpty()) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 8bbc9eea77aa96ebd20c5901c03b35e66e79ce63..b2c7777ce1e8492d875c2575685d7668093c8eda 100644 index 34360b9ed30b20159a6174ef5fc64c415b661f53..14164ef2a4204886c279897b89aca6e071005870 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -394,6 +394,7 @@ public class PurpurWorldConfig { @@ -394,6 +394,7 @@ public class PurpurWorldConfig {

View File

@@ -223,10 +223,10 @@ index 2bbc39c257965ad91ee360cdfcd3538a0f041c7e..91fbc0cfc84045e32a4ee16fba8164de
+ // Purpur end - OfflinePlayer API + // Purpur end - OfflinePlayer API
} }
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 c7f3072ad6e54b55e896c8d99a16da9849fa8d3b..9306facdc8aa56674f896fa3ab3d2b54dc5a2f4b 100644 index 4efb8e47a29249cbca52b637d6f721cf2a9afcfb..b2b000ab47897f9d8f47840ae95ef2db478f808c 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
@@ -2646,6 +2646,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -2604,6 +2604,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.getHandle().getAbilities().walkingSpeed * 2f; return this.getHandle().getAbilities().walkingSpeed * 2f;
} }

View File

@@ -51,10 +51,10 @@ index acfacda5001ef188acfef8ac0d319d66ce1883fb..1d179e9485df78657ce67ab7ca4c4b1b
private int maxStack = MAX_STACK; private int maxStack = MAX_STACK;
public List<HumanEntity> transaction = new java.util.ArrayList<HumanEntity>(); public List<HumanEntity> transaction = new java.util.ArrayList<HumanEntity>();
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 acf930d1d30e924177e49cde6d41a3ada1f16e5d..c1d1d5b561470e3ff1b75b41d83116ae05bef19e 100644 index 555cffaf05116c7c0a3071c83221d10710be62e8..4e8ff16b5ca3cd2ddf2a44c7cd625fbf2311706d 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
@@ -1573,6 +1573,19 @@ public final class CraftServer implements Server { @@ -1572,6 +1572,19 @@ public final class CraftServer implements Server {
return true; return true;
} }

View File

@@ -5,18 +5,18 @@ Subject: [PATCH] UPnP Port Forwarding
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 2eb14b686effe22721b377c55f5dede050ddd616..dec396d4d8b603d1d5282d9273c0258964b27389 100644 index 1c5955a5ca94c55f573ba8a4cdc81308a4357fe6..8934a7a211ea8dff1eff4fa2f7597b03a834e22d 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
@@ -309,6 +309,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -309,6 +309,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public final io.papermc.paper.configuration.PaperConfigurations paperConfigurations; // Paper - add paper configuration files
public static long currentTickLong = 0L; // Paper - track current tick as a long public static long currentTickLong = 0L; // Paper - track current tick as a long
public boolean isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
public boolean lagging = false; // Purpur public boolean lagging = false; // Purpur
+ protected boolean upnp = false; // Purpur + protected boolean upnp = false; // Purpur
public volatile Thread shutdownThread; // Paper public volatile Thread shutdownThread; // Paper
public volatile boolean abnormalExit = false; // Paper public volatile boolean abnormalExit = false; // Paper
@@ -975,6 +976,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -972,6 +973,14 @@ 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
MinecraftTimings.stopServer(); // Paper MinecraftTimings.stopServer(); // Paper

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable valid characters for usernames
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index 51b49813ba1c2cae1dff5738bb43cedfbcfbc17f..2f590981a2d16377400ee6bbdeeb452daf42fc87 100644 index 712d4a9cae11f75ffce45c912bf14ff92fe4735e..6e697e132bd654dd7c8a4170648bfd4aaedc47a4 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java --- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -2420,6 +2420,7 @@ public abstract class Player extends LivingEntity { @@ -2418,6 +2418,7 @@ public abstract class Player extends LivingEntity {
} }
public static boolean isValidUsername(String name) { public static boolean isValidUsername(String name) {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Give bee counts in beehives to Purpur clients
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 dec396d4d8b603d1d5282d9273c0258964b27389..d0391cfb2476ce6d045883bc99907d1c7ceb97ec 100644 index 8934a7a211ea8dff1eff4fa2f7597b03a834e22d..6ba1ab3b5593d740e02b6314c9a599a0ef5120a1 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
@@ -1065,6 +1065,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1062,6 +1062,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} }
public void safeShutdown(boolean waitForShutdown, boolean isRestarting) { public void safeShutdown(boolean waitForShutdown, boolean isRestarting) {
org.purpurmc.purpur.task.BossBarTask.stopAll(); // Purpur org.purpurmc.purpur.task.BossBarTask.stopAll(); // Purpur

View File

@@ -22,10 +22,10 @@ index 673b3aee680bb8a2d20f96be661d5fa9c61f4ce3..19144edcc449dc2f992228612340cf21
int i = this.repairPlayerItems(player, this.value); int i = this.repairPlayerItems(player, this.value);
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index 0331e20162771510033d0bba3e37dcf59e48512d..3869c9dab4f33e5b3157cd8470c1ba9d16fb47b6 100644 index 6e697e132bd654dd7c8a4170648bfd4aaedc47a4..208189cec91b298b5843473f065c5372ef67f20d 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java --- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -631,7 +631,7 @@ public abstract class Player extends LivingEntity { @@ -629,7 +629,7 @@ public abstract class Player extends LivingEntity {
while (iterator.hasNext()) { while (iterator.hasNext()) {
Entity entity = (Entity) iterator.next(); Entity entity = (Entity) iterator.next();

View File

@@ -18,7 +18,7 @@ index 9e3608650c44ef5fa724c3aea86603d7bd02429c..8c2c515f1b5f56bf1d6cf0c35d4f0fa7
// Purpur end // Purpur end
return damageSource.getLocalizedDeathMessage(this.mob); return damageSource.getLocalizedDeathMessage(this.mob);
diff --git a/src/main/java/net/minecraft/world/damagesource/DamageSource.java b/src/main/java/net/minecraft/world/damagesource/DamageSource.java diff --git a/src/main/java/net/minecraft/world/damagesource/DamageSource.java b/src/main/java/net/minecraft/world/damagesource/DamageSource.java
index 33210bc66dcc5fdf03fbf438ce8734b31c4e7975..fc1fb63ee0e28b8d1f065bfad716b465cde5a69f 100644 index 189664637d3d73b141c84823f0099bcda9b607e3..6248b4abae009540b6cc5dd006785d459f565f83 100644
--- a/src/main/java/net/minecraft/world/damagesource/DamageSource.java --- a/src/main/java/net/minecraft/world/damagesource/DamageSource.java
+++ b/src/main/java/net/minecraft/world/damagesource/DamageSource.java +++ b/src/main/java/net/minecraft/world/damagesource/DamageSource.java
@@ -56,6 +56,8 @@ public class DamageSource { @@ -56,6 +56,8 @@ public class DamageSource {
@@ -31,7 +31,7 @@ index 33210bc66dcc5fdf03fbf438ce8734b31c4e7975..fc1fb63ee0e28b8d1f065bfad716b465
return "DamageSource (" + this.type().msgId() + ")"; return "DamageSource (" + this.type().msgId() + ")";
} }
diff --git a/src/main/java/net/minecraft/world/damagesource/DamageSources.java b/src/main/java/net/minecraft/world/damagesource/DamageSources.java diff --git a/src/main/java/net/minecraft/world/damagesource/DamageSources.java b/src/main/java/net/minecraft/world/damagesource/DamageSources.java
index 813916852774d6482791989252ecb67b945a8f84..4a5d2e263d2bbee96bde7012d3385fa33860bc1b 100644 index 6a7fe56485f0da9094c816f9fd5aacf7e5946730..530a180a607636265c1b1244f05a772f7adfe7b6 100644
--- a/src/main/java/net/minecraft/world/damagesource/DamageSources.java --- a/src/main/java/net/minecraft/world/damagesource/DamageSources.java
+++ b/src/main/java/net/minecraft/world/damagesource/DamageSources.java +++ b/src/main/java/net/minecraft/world/damagesource/DamageSources.java
@@ -273,5 +273,11 @@ public class DamageSources { @@ -273,5 +273,11 @@ public class DamageSources {
@@ -68,13 +68,13 @@ index 77ae7b8ab24935d046cce1f8f7f476310876f9df..b683f3c2fcd37b17a732802738cd14be
+ // Purpur end + // Purpur end
} }
diff --git a/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java b/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java diff --git a/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java b/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java
index 7702cd386247c1a850bb22ccf8c0724d5bec1020..29ec2f9a35dd73e8a6adf2e4edcfe543270520d8 100644 index 0dc05919dfbbf73230505fcdc25d949b1602801c..996bd26e95e766ce4ca7e61d060881feb9dd4a89 100644
--- a/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java --- a/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java
+++ b/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java +++ b/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java
@@ -471,7 +471,7 @@ public class WalkNodeEvaluator extends NodeEvaluator { @@ -471,7 +471,7 @@ public class WalkNodeEvaluator extends NodeEvaluator {
return BlockPathTypes.BLOCKED; return BlockPathTypes.BLOCKED;
} else { } else {
// Paper end // Paper end - Do not load chunks during pathfinding
- if (blockState.is(Blocks.CACTUS) || blockState.is(Blocks.SWEET_BERRY_BUSH)) { - if (blockState.is(Blocks.CACTUS) || blockState.is(Blocks.SWEET_BERRY_BUSH)) {
+ if (blockState.is(Blocks.CACTUS) || blockState.is(Blocks.SWEET_BERRY_BUSH) || blockState.is(Blocks.STONECUTTER)) { // Purpur + if (blockState.is(Blocks.CACTUS) || blockState.is(Blocks.SWEET_BERRY_BUSH) || blockState.is(Blocks.STONECUTTER)) { // Purpur
return BlockPathTypes.DANGER_OTHER; return BlockPathTypes.DANGER_OTHER;

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add local difficulty api
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 38d842bc0fb7d9c39a3673983a643248e9563fe2..8af705619e8a784c6128d7ff4838eeae56e59821 100644 index b27e965005b64c817588b75d467913c27ab1e31b..354ef8d61668e5532f60034291bf8f0374f8ac52 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -2415,6 +2415,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { @@ -2373,6 +2373,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return (this.getHandle().getDragonFight() == null) ? null : new CraftDragonBattle(this.getHandle().getDragonFight()); return (this.getHandle().getDragonFight() == null) ? null : new CraftDragonBattle(this.getHandle().getDragonFight());
} }

View File

@@ -7,28 +7,28 @@ Paper patches RNG maniplulation by using a shared (and locked) random source.
This comes with a performance gain, but technical players may prefer the ability to manipulate RNG. This comes with a performance gain, but technical players may prefer the ability to manipulate RNG.
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 57376b7c0d281a7950a69348b5aa869e89719232..376acce7e0fd5dedfdf10fa94ced41bc473b7815 100644 index 5bdafc37deac75cf6e332ba1094e375031713ca4..e0929385a6b218ea654f552bed531f116d629274 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
@@ -599,7 +599,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -599,7 +599,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
this.bb = Entity.INITIAL_AABB; this.bb = Entity.INITIAL_AABB;
this.stuckSpeedMultiplier = Vec3.ZERO; this.stuckSpeedMultiplier = Vec3.ZERO;
this.nextStep = 1.0F; this.nextStep = 1.0F;
- this.random = SHARED_RANDOM; // Paper - this.random = SHARED_RANDOM; // Paper - Share random for entities to make them more random
+ this.random = world == null || world.purpurConfig.entitySharedRandom ? SHARED_RANDOM : RandomSource.create(); // Paper // Purpur + this.random = world == null || world.purpurConfig.entitySharedRandom ? SHARED_RANDOM : RandomSource.create(); // Paper - Share random for entities to make them more random // Purpur
this.remainingFireTicks = -this.getFireImmuneTicks(); this.remainingFireTicks = -this.getFireImmuneTicks();
this.fluidHeight = new Object2DoubleArrayMap(2); this.fluidHeight = new Object2DoubleArrayMap(2);
this.fluidOnEyes = new HashSet(); this.fluidOnEyes = new HashSet();
diff --git a/src/main/java/net/minecraft/world/entity/animal/Squid.java b/src/main/java/net/minecraft/world/entity/animal/Squid.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Squid.java b/src/main/java/net/minecraft/world/entity/animal/Squid.java
index 88c238e492b1081d1a64a3b6f05d7baa17e5d8c9..dd7f2beabf0edad4143ac2365ac04a22edf1f75e 100644 index 2ec8a55650beff50676759617896da2db09dddc0..cba0823bfd10a3e7fd3a7548b9cc11a77ce07ce7 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Squid.java --- a/src/main/java/net/minecraft/world/entity/animal/Squid.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Squid.java +++ b/src/main/java/net/minecraft/world/entity/animal/Squid.java
@@ -44,7 +44,7 @@ public class Squid extends WaterAnimal { @@ -44,7 +44,7 @@ public class Squid extends WaterAnimal {
public Squid(EntityType<? extends Squid> type, Level world) { public Squid(EntityType<? extends Squid> type, Level world) {
super(type, world); super(type, world);
- //this.random.setSeed((long)this.getId()); // Paper - we set the random to shared, do not clobber the seed - //this.random.setSeed((long)this.getId()); // Paper - Share random for entities to make them more random
+ if (!world.purpurConfig.entitySharedRandom) this.random.setSeed((long) this.getId()); // Paper - we set the random to shared, do not clobber the seed // Purpur + if (!world.purpurConfig.entitySharedRandom) this.random.setSeed((long) this.getId()); // Paper - Share random for entities to make them more random // Purpur
this.tentacleSpeed = 1.0F / (this.random.nextFloat() + 1.0F) * 0.2F; this.tentacleSpeed = 1.0F / (this.random.nextFloat() + 1.0F) * 0.2F;
} }

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Allow custom ChatDecorators
Requires NMS to utilize. I'll write an API for this once our upstreams calm down with the changes. Requires NMS to utilize. I'll write an API for this once our upstreams calm down with the changes.
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 b254f5be452fd9a8661124645551a1aa0c5ef23e..6cfdb98969b1461912c857b6b8ae38f532f3bc9e 100644 index 6ba1ab3b5593d740e02b6314c9a599a0ef5120a1..add9d9900908ea8ee7787f38d37d8626840d4a6b 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
@@ -2845,6 +2845,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -2843,6 +2843,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
new com.google.common.util.concurrent.ThreadFactoryBuilder().setDaemon(true).setNameFormat("Async Chat Thread - #%d").setUncaughtExceptionHandler(new net.minecraft.DefaultUncaughtExceptionHandlerWithName(net.minecraft.server.MinecraftServer.LOGGER)).build()); // Paper new com.google.common.util.concurrent.ThreadFactoryBuilder().setDaemon(true).setNameFormat("Async Chat Thread - #%d").setUncaughtExceptionHandler(new net.minecraft.DefaultUncaughtExceptionHandlerWithName(net.minecraft.server.MinecraftServer.LOGGER)).build()); // Paper
public ChatDecorator getChatDecorator() { public ChatDecorator getChatDecorator() {

View File

@@ -56,10 +56,10 @@ index 3e2d5dcd62775b6ed7c0ce0ba51a71b635b1d644..166cd0f8e72189d10e56cd7bc095409a
} catch (Exception exception) { } catch (Exception exception) {
label25: label25:
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 18e69effb48634dfc28061b5e0a669a8bb5ba002..1169088d9aa970e834ddfb43bf3be35ead16f96e 100644 index add9d9900908ea8ee7787f38d37d8626840d4a6b..22659bfb081a022ed0f7ffb67293e3584ba7fff4 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
@@ -1427,7 +1427,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1425,7 +1425,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
return; return;
} }
@@ -68,7 +68,7 @@ index 18e69effb48634dfc28061b5e0a669a8bb5ba002..1169088d9aa970e834ddfb43bf3be35e
try { try {
for (;;) { for (;;) {
boolean moreTasks = this.tickMidTickTasks(); boolean moreTasks = this.tickMidTickTasks();
@@ -1454,7 +1454,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1452,7 +1452,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} }
} }
} finally { } finally {
@@ -77,7 +77,7 @@ index 18e69effb48634dfc28061b5e0a669a8bb5ba002..1169088d9aa970e834ddfb43bf3be35e
} }
} }
// Paper end - execute chunk tasks mid tick // Paper end - execute chunk tasks mid tick
@@ -1529,15 +1529,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1527,15 +1527,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} }
public void tickServer(BooleanSupplier shouldKeepTicking) { public void tickServer(BooleanSupplier shouldKeepTicking) {
@@ -96,7 +96,7 @@ index 18e69effb48634dfc28061b5e0a669a8bb5ba002..1169088d9aa970e834ddfb43bf3be35e
// 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
@@ -1574,9 +1574,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1572,9 +1572,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// Paper end - Incremental chunk and player saving // 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
@@ -108,7 +108,7 @@ index 18e69effb48634dfc28061b5e0a669a8bb5ba002..1169088d9aa970e834ddfb43bf3be35e
// Paper end // Paper end
// Paper start - Server Tick Events // Paper start - Server Tick Events
long endTime = System.nanoTime(); long endTime = System.nanoTime();
@@ -1601,7 +1601,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1599,7 +1599,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.logTickTime(l - i); this.logTickTime(l - i);
this.profiler.pop(); this.profiler.pop();
org.spigotmc.WatchdogThread.tick(); // Spigot org.spigotmc.WatchdogThread.tick(); // Spigot
@@ -117,7 +117,7 @@ index 18e69effb48634dfc28061b5e0a669a8bb5ba002..1169088d9aa970e834ddfb43bf3be35e
} }
private int computeNextAutosaveInterval() { private int computeNextAutosaveInterval() {
@@ -1663,9 +1663,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1661,9 +1661,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.getPlayerList().getPlayers().forEach((entityplayer) -> { this.getPlayerList().getPlayers().forEach((entityplayer) -> {
entityplayer.connection.suspendFlushing(); entityplayer.connection.suspendFlushing();
}); });
@@ -129,7 +129,7 @@ index 18e69effb48634dfc28061b5e0a669a8bb5ba002..1169088d9aa970e834ddfb43bf3be35e
// 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 -> {
@@ -1682,21 +1682,21 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1680,21 +1680,21 @@ 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
this.profiler.push("commandFunctions"); this.profiler.push("commandFunctions");
@@ -156,7 +156,7 @@ index 18e69effb48634dfc28061b5e0a669a8bb5ba002..1169088d9aa970e834ddfb43bf3be35e
// 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()) {
@@ -1716,7 +1716,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1714,7 +1714,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} }
} }
// Paper end - Perf: Optimize time updates // Paper end - Perf: Optimize time updates
@@ -165,7 +165,7 @@ index 18e69effb48634dfc28061b5e0a669a8bb5ba002..1169088d9aa970e834ddfb43bf3be35e
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
@@ -1742,14 +1742,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1740,14 +1740,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.profiler.push("tick"); this.profiler.push("tick");
try { try {
@@ -182,7 +182,7 @@ index 18e69effb48634dfc28061b5e0a669a8bb5ba002..1169088d9aa970e834ddfb43bf3be35e
} catch (Throwable throwable) { } catch (Throwable throwable) {
CrashReport crashreport = CrashReport.forThrowable(throwable, "Exception ticking world"); CrashReport crashreport = CrashReport.forThrowable(throwable, "Exception ticking world");
@@ -1764,24 +1764,24 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1762,24 +1762,24 @@ 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
this.profiler.popPush("connection"); this.profiler.popPush("connection");
@@ -236,10 +236,10 @@ index 5a4446c09ef016e9dfb16438089a6880f7da68d8..ef08907f151c660d6c069b276f9291e6
@Override @Override
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 b72969b3bc4319387e3946ea01c5b05acd8a87cb..18a42d8c8c038cb94e06909d96d05e0627c512a7 100644 index 28d05b46952397bb664a1c8dae71816cafee89ce..c6c4d6cf59742b555af5469eaf751ebef753e249 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
@@ -547,15 +547,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -540,15 +540,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
protected void tick(BooleanSupplier shouldKeepTicking) { protected void tick(BooleanSupplier shouldKeepTicking) {
ProfilerFiller gameprofilerfiller = this.level.getProfiler(); ProfilerFiller gameprofilerfiller = this.level.getProfiler();
@@ -259,7 +259,7 @@ index b72969b3bc4319387e3946ea01c5b05acd8a87cb..18a42d8c8c038cb94e06909d96d05e06
} }
gameprofilerfiller.pop(); gameprofilerfiller.pop();
@@ -1151,24 +1151,24 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -1141,24 +1141,24 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
// Paper start - optimised tracker // Paper start - optimised tracker
private final void processTrackQueue() { private final void processTrackQueue() {
@@ -288,7 +288,7 @@ index b72969b3bc4319387e3946ea01c5b05acd8a87cb..18a42d8c8c038cb94e06909d96d05e06
} }
} }
// Paper end - optimised tracker // Paper end - optimised tracker
@@ -1183,7 +1183,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -1173,7 +1173,7 @@ 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();
@@ -297,7 +297,7 @@ index b72969b3bc4319387e3946ea01c5b05acd8a87cb..18a42d8c8c038cb94e06909d96d05e06
ChunkMap.TrackedEntity playerchunkmap_entitytracker; ChunkMap.TrackedEntity playerchunkmap_entitytracker;
@@ -1208,17 +1208,17 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -1198,17 +1198,17 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
playerchunkmap_entitytracker.serverEntity.sendChanges(); playerchunkmap_entitytracker.serverEntity.sendChanges();
} }
} }
@@ -319,23 +319,23 @@ index b72969b3bc4319387e3946ea01c5b05acd8a87cb..18a42d8c8c038cb94e06909d96d05e06
} }
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 ad8e79c72841ff80f8af3580d2cdb89c13f6d688..e828f3d14af21318a716b9eba4b9bf80e377b073 100644 index 097f6eb96c2df203565a0c50aba6221e67a7e026..13ba576ad447a8bbc0712126ec86524f5bbd9a6d 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
@@ -296,10 +296,10 @@ public class ServerChunkCache extends ChunkSource { @@ -281,10 +281,10 @@ public class ServerChunkCache extends ChunkSource {
if (!completablefuture.isDone()) { // Paper
io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.pushChunkWait(this.level, x1, z1); // Paper - rewrite chunk system io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.pushChunkWait(this.level, x1, z1); // Paper - rewrite chunk system
// Paper end com.destroystokyo.paper.io.SyncLoadFinder.logSyncLoad(this.level, x, z); // Paper - Add debug for sync chunk loads
com.destroystokyo.paper.io.SyncLoadFinder.logSyncLoad(this.level, x1, z1); // Paper - Add debug for sync chunk loads
- this.level.timings.syncChunkLoad.startTiming(); // Paper - this.level.timings.syncChunkLoad.startTiming(); // Paper
+ //this.level.timings.syncChunkLoad.startTiming(); // Paper // Purpur + //this.level.timings.syncChunkLoad.startTiming(); // Paper // Purpur
chunkproviderserver_b.managedBlock(completablefuture::isDone); chunkproviderserver_b.managedBlock(completablefuture::isDone);
io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.popChunkWait(); // Paper - async chunk debug // Paper - rewrite chunk system io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.popChunkWait(); // Paper - rewrite chunk system
- this.level.timings.syncChunkLoad.stopTiming(); // Paper - this.level.timings.syncChunkLoad.stopTiming(); // Paper
+ //this.level.timings.syncChunkLoad.stopTiming(); // Paper // Purpur + //this.level.timings.syncChunkLoad.stopTiming(); // Paper // Purpur
} // Paper } // Paper
ichunkaccess = (ChunkAccess) ((Either) completablefuture.join()).map((ichunkaccess1) -> { ichunkaccess = (ChunkAccess) ((Either) completablefuture.join()).map((ichunkaccess1) -> {
return ichunkaccess1; return ichunkaccess1;
@@ -448,17 +448,17 @@ public class ServerChunkCache extends ChunkSource { @@ -433,17 +433,17 @@ public class ServerChunkCache extends ChunkSource {
public void save(boolean flush) { public void save(boolean flush) {
this.runDistanceManagerUpdates(); this.runDistanceManagerUpdates();
@@ -357,7 +357,7 @@ index ad8e79c72841ff80f8af3580d2cdb89c13f6d688..e828f3d14af21318a716b9eba4b9bf80
} }
// Paper end - Incremental chunk and player saving // Paper end - Incremental chunk and player saving
@@ -495,23 +495,23 @@ public class ServerChunkCache extends ChunkSource { @@ -480,23 +480,23 @@ public class ServerChunkCache extends ChunkSource {
@Override @Override
public void tick(BooleanSupplier shouldKeepTicking, boolean tickChunks) { public void tick(BooleanSupplier shouldKeepTicking, boolean tickChunks) {
this.level.getProfiler().push("purge"); this.level.getProfiler().push("purge");
@@ -387,7 +387,7 @@ index ad8e79c72841ff80f8af3580d2cdb89c13f6d688..e828f3d14af21318a716b9eba4b9bf80
this.level.getProfiler().pop(); this.level.getProfiler().pop();
this.clearCache(); this.clearCache();
} }
@@ -527,14 +527,14 @@ public class ServerChunkCache extends ChunkSource { @@ -512,14 +512,14 @@ public class ServerChunkCache extends ChunkSource {
gameprofilerfiller.push("pollingChunks"); gameprofilerfiller.push("pollingChunks");
gameprofilerfiller.push("filteringLoadedChunks"); gameprofilerfiller.push("filteringLoadedChunks");
// Paper - optimise chunk tick iteration // Paper - optimise chunk tick iteration
@@ -404,7 +404,7 @@ index ad8e79c72841ff80f8af3580d2cdb89c13f6d688..e828f3d14af21318a716b9eba4b9bf80
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;
@@ -564,7 +564,7 @@ public class ServerChunkCache extends ChunkSource { @@ -549,7 +549,7 @@ public class ServerChunkCache extends ChunkSource {
// Pufferfish end // Pufferfish end
} }
// Paper end - Optional per player mob spawns // Paper end - Optional per player mob spawns
@@ -413,7 +413,7 @@ index ad8e79c72841ff80f8af3580d2cdb89c13f6d688..e828f3d14af21318a716b9eba4b9bf80
// this.lastSpawnState = spawnercreature_d; // Pufferfish - this is managed asynchronously // this.lastSpawnState = spawnercreature_d; // Pufferfish - this is managed asynchronously
gameprofilerfiller.popPush("spawnAndTick"); gameprofilerfiller.popPush("spawnAndTick");
@@ -673,19 +673,19 @@ public class ServerChunkCache extends ChunkSource { @@ -658,19 +658,19 @@ public class ServerChunkCache extends ChunkSource {
} }
} }
// Paper end - optimise chunk tick iteration // Paper end - optimise chunk tick iteration
@@ -437,7 +437,7 @@ index ad8e79c72841ff80f8af3580d2cdb89c13f6d688..e828f3d14af21318a716b9eba4b9bf80
// Paper start - optimise chunk tick iteration // Paper start - optimise chunk tick iteration
if (!this.chunkMap.needsChangeBroadcasting.isEmpty()) { if (!this.chunkMap.needsChangeBroadcasting.isEmpty()) {
it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet<ChunkHolder> copy = this.chunkMap.needsChangeBroadcasting.clone(); it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet<ChunkHolder> copy = this.chunkMap.needsChangeBroadcasting.clone();
@@ -699,7 +699,7 @@ public class ServerChunkCache extends ChunkSource { @@ -684,7 +684,7 @@ public class ServerChunkCache extends ChunkSource {
} }
} }
// Paper end - optimise chunk tick iteration // Paper end - optimise chunk tick iteration
@@ -447,7 +447,7 @@ index ad8e79c72841ff80f8af3580d2cdb89c13f6d688..e828f3d14af21318a716b9eba4b9bf80
gameprofilerfiller.pop(); gameprofilerfiller.pop();
gameprofilerfiller.pop(); gameprofilerfiller.pop();
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 979448b2260484375c70cb83d65be25914a2ab76..11a457103c59d230617e404b5523691ea493da96 100644 index 009d077f979d5ae85b359f3829038015af347429..b4b256721b7a5d25deec717123501a163fcfd8fe 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
@@ -866,7 +866,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -866,7 +866,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -521,7 +521,7 @@ index 979448b2260484375c70cb83d65be25914a2ab76..11a457103c59d230617e404b5523691e
this.tickBlockEntities(); this.tickBlockEntities();
} }
@@ -1099,7 +1099,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1099,7 +1099,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
} // Paper } // Paper - Option to disable ice and snow
gameprofilerfiller.popPush("tickBlocks"); gameprofilerfiller.popPush("tickBlocks");
- timings.chunkTicksBlocks.startTiming(); // Paper - timings.chunkTicksBlocks.startTiming(); // Paper
@@ -630,7 +630,7 @@ index 979448b2260484375c70cb83d65be25914a2ab76..11a457103c59d230617e404b5523691e
} else if (close) { chunkproviderserver.close(false); } // Paper - rewrite chunk system } else if (close) { chunkproviderserver.close(false); } // Paper - rewrite chunk system
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 962dd813a9422ae14f7a149c605c7df4fee61f91..ecd94a7927da0f7a048c6628a9edb01d39ee2ba7 100644 index 7ac11a52e88248de227ab7b85260be9ed5654739..de61e915475a1b3b6faba16673ac1f271527a1b4 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
@@ -2442,7 +2442,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -2442,7 +2442,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -661,10 +661,10 @@ index 962dd813a9422ae14f7a149c605c7df4fee61f91..ecd94a7927da0f7a048c6628a9edb01d
} }
// CraftBukkit end // CraftBukkit end
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 10723caec1b099596607d23c8a32691765803181..061bdd934f31c9e1d9a37f7831eb1f19d0e46805 100644 index d1afad129159d5ce7cf9530a7dfb6ed5b4fa25f3..b230739cf929c8f2b51a812fffe54be343ce3e05 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
@@ -1274,7 +1274,7 @@ public abstract class PlayerList { @@ -1273,7 +1273,7 @@ public abstract class PlayerList {
public void saveAll(int interval) { public void saveAll(int interval) {
io.papermc.paper.util.MCUtil.ensureMain("Save Players" , () -> { // Paper - Ensure main io.papermc.paper.util.MCUtil.ensureMain("Save Players" , () -> { // Paper - Ensure main
@@ -673,7 +673,7 @@ index 10723caec1b099596607d23c8a32691765803181..061bdd934f31c9e1d9a37f7831eb1f19
int numSaved = 0; int numSaved = 0;
long now = MinecraftServer.currentTick; long now = MinecraftServer.currentTick;
for (int i = 0; i < this.players.size(); ++i) { for (int i = 0; i < this.players.size(); ++i) {
@@ -1285,7 +1285,7 @@ public abstract class PlayerList { @@ -1284,7 +1284,7 @@ public abstract class PlayerList {
} }
// Paper end - Incremental chunk and player saving // Paper end - Incremental chunk and player saving
} }
@@ -732,7 +732,7 @@ index fcdb9bde8e1605e30dde3e580491522d4b62cdc0..7094701d213c73ba47ace806962244c1
} }
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 cf9b76f596409803904f53b8d8fb90888d5fcb95..061a546ff8421d16fa37cf2337cded4bdfc943f3 100644 index af6def325c97b5a71a671a401d02c1f43b8acd96..ef8b596a02970c514fc6e5e0fb7ded76d82240ac 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
@@ -1317,15 +1317,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -1317,15 +1317,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -764,7 +764,7 @@ index cf9b76f596409803904f53b8d8fb90888d5fcb95..061a546ff8421d16fa37cf2337cded4b
co.aikar.timings.TimingHistory.tileEntityTicks += this.blockEntityTickers.size(); // Paper co.aikar.timings.TimingHistory.tileEntityTicks += this.blockEntityTickers.size(); // Paper
gameprofilerfiller.pop(); gameprofilerfiller.pop();
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 00b965de947cb13a178061278d1ffa4342e8e065..f2f778d876703c06e0d1bfd7a35adde35abe4939 100644 index 96fc603c2fccc1d9610248b2116d35696bc65e4e..3d99667fa297ea15c5d3a0526a846ce177a5037a 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
@@ -133,7 +133,7 @@ public final class NaturalSpawner { @@ -133,7 +133,7 @@ public final class NaturalSpawner {
@@ -786,7 +786,7 @@ index 00b965de947cb13a178061278d1ffa4342e8e065..f2f778d876703c06e0d1bfd7a35adde3
} }
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 c3fb622845770bcee9ddd6ebbeee174b06ee16eb..134d2d56af71aceb1ca33d7bb708124655c5d319 100644 index 5fab6909bd2ee303f49b7e667617bcae608e82d7..8c0df10efd59594c63cca2a1c22386acf17e5299 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
@@ -799,7 +799,7 @@ public class LevelChunk extends ChunkAccess { @@ -799,7 +799,7 @@ public class LevelChunk extends ChunkAccess {
@@ -817,7 +817,7 @@ index c3fb622845770bcee9ddd6ebbeee174b06ee16eb..134d2d56af71aceb1ca33d7bb7081246
if (this.blockEntity.getType().isValid(iblockdata)) { if (this.blockEntity.getType().isValid(iblockdata)) {
@@ -1199,7 +1199,7 @@ public class LevelChunk extends ChunkAccess { @@ -1199,7 +1199,7 @@ public class LevelChunk extends ChunkAccess {
// Paper end // Paper end - Prevent block entity and entity crashes
// Spigot start // Spigot start
} finally { } finally {
- this.blockEntity.tickTimer.stopTiming(); - this.blockEntity.tickTimer.stopTiming();
@@ -903,7 +903,7 @@ index b3e1adeb932da9b3bed16acd94e2f16da48a7c72..d3ec817e95628f1fc8be4a29c9a0f13c
// Paper end - add timings for scoreboard search // Paper end - add timings for scoreboard search
} }
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 1085d90f6db968760a52f9d00a25299618264c5f..9113c8ebff5e71f859a19f024969582052c57546 100644 index f9e3f4e15719ed9284ec315b8a1ef63dc242e009..2e9aed328e576abbe216fdb2071c13421e6645b8 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
@@ -170,7 +170,7 @@ public class ActivationRange @@ -170,7 +170,7 @@ public class ActivationRange
@@ -915,7 +915,7 @@ index 1085d90f6db968760a52f9d00a25299618264c5f..9113c8ebff5e71f859a19f0249695820
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;
@@ -250,7 +250,7 @@ public class ActivationRange @@ -249,7 +249,7 @@ public class ActivationRange
} }
// Paper end // Paper end
} }

View File

@@ -89,10 +89,10 @@ index 821dc4aeaf48460000682604fba51b340b9738e7..3aa2ce6a2a3d3cdfc372a60419a09f49
} }
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 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8fd7811642 100644 index 22659bfb081a022ed0f7ffb67293e3584ba7fff4..101c57df8b77827b78dd5423715f784da645b38e 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
@@ -344,13 +344,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -341,13 +341,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public MinecraftServer(OptionSet options, WorldLoader.DataLoadContext worldLoader, Thread thread, LevelStorageSource.LevelStorageAccess convertable_conversionsession, PackRepository resourcepackrepository, WorldStem worldstem, Proxy proxy, DataFixer datafixer, Services services, ChunkProgressListenerFactory worldloadlistenerfactory) { public MinecraftServer(OptionSet options, WorldLoader.DataLoadContext worldLoader, Thread thread, LevelStorageSource.LevelStorageAccess convertable_conversionsession, PackRepository resourcepackrepository, WorldStem worldstem, Proxy proxy, DataFixer datafixer, Services services, ChunkProgressListenerFactory worldloadlistenerfactory) {
super("Server"); super("Server");
SERVER = this; // Paper - better singleton SERVER = this; // Paper - better singleton
@@ -112,7 +112,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
this.random = RandomSource.create(); this.random = RandomSource.create();
this.port = -1; this.port = -1;
this.levels = Maps.newLinkedHashMap(); this.levels = Maps.newLinkedHashMap();
@@ -969,9 +969,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -966,9 +966,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} }
// Paper end // Paper end
// CraftBukkit end // CraftBukkit end
@@ -124,7 +124,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
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
@@ -1222,20 +1222,20 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1219,20 +1219,20 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
boolean flag = i == 0L; boolean flag = i == 0L;
@@ -150,7 +150,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
this.mayHaveDelayedTasks = true; this.mayHaveDelayedTasks = true;
this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + i, this.nextTickTimeNanos); this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + i, this.nextTickTimeNanos);
// Pufferfish start - tps catchup // Pufferfish start - tps catchup
@@ -1256,8 +1256,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1253,8 +1253,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.tickRateManager.endTickWork(); this.tickRateManager.endTickWork();
} }
@@ -161,7 +161,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
this.isReady = true; this.isReady = true;
JvmProfiler.INSTANCE.onServerTick(this.smoothedTickTimeMillis); JvmProfiler.INSTANCE.onServerTick(this.smoothedTickTimeMillis);
} }
@@ -1482,7 +1482,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1480,7 +1480,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} }
public void doRunTask(TickTask ticktask) { // CraftBukkit - decompile error public void doRunTask(TickTask ticktask) { // CraftBukkit - decompile error
@@ -170,7 +170,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
super.doRunTask(ticktask); super.doRunTask(ticktask);
} }
@@ -1555,7 +1555,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1553,7 +1553,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
if (playerSaveInterval < 0) { if (playerSaveInterval < 0) {
playerSaveInterval = autosavePeriod; playerSaveInterval = autosavePeriod;
} }
@@ -179,7 +179,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
final boolean fullSave = autosavePeriod > 0 && this.tickCount % autosavePeriod == 0; final boolean fullSave = autosavePeriod > 0 && this.tickCount % autosavePeriod == 0;
try { try {
this.isSaving = true; this.isSaving = true;
@@ -1570,7 +1570,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1568,7 +1568,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} finally { } finally {
this.isSaving = false; this.isSaving = false;
} }
@@ -188,7 +188,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
// Paper end - Incremental chunk and player saving // 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
@@ -1583,7 +1583,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1581,7 +1581,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
long remaining = (TICK_TIME - (endTime - lastTick)) - catchupTime; long remaining = (TICK_TIME - (endTime - lastTick)) - catchupTime;
new com.destroystokyo.paper.event.server.ServerTickEndEvent(this.tickCount, ((double)(endTime - lastTick) / 1000000D), remaining).callEvent(); new com.destroystokyo.paper.event.server.ServerTickEndEvent(this.tickCount, ((double)(endTime - lastTick) / 1000000D), remaining).callEvent();
// Paper end - Server Tick Events // Paper end - Server Tick Events
@@ -197,7 +197,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
long j = Util.getNanos() - i; long j = Util.getNanos() - i;
int k = this.tickCount % 100; int k = this.tickCount % 100;
@@ -1599,7 +1599,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1597,7 +1597,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
tickTimes60s.add(this.tickCount, j); tickTimes60s.add(this.tickCount, j);
// Paper end - Add tick times API and /mspt command // Paper end - Add tick times API and /mspt command
this.logTickTime(l - i); this.logTickTime(l - i);
@@ -206,7 +206,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
org.spigotmc.WatchdogThread.tick(); // Spigot org.spigotmc.WatchdogThread.tick(); // Spigot
//co.aikar.timings.TimingsManager.FULL_SERVER_TICK.stopTiming(); // Paper // Purpur //co.aikar.timings.TimingsManager.FULL_SERVER_TICK.stopTiming(); // Paper // Purpur
} }
@@ -1681,11 +1681,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1679,11 +1679,11 @@ 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
@@ -220,7 +220,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
//Iterator iterator = this.getAllLevels().iterator(); // Paper - Throw exception on world create while being ticked; moved down //Iterator iterator = this.getAllLevels().iterator(); // Paper - Throw exception on world create while being ticked; moved down
// CraftBukkit start // CraftBukkit start
@@ -1728,18 +1728,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1726,18 +1726,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent
worldserver.hasRidableMoveEvent = org.purpurmc.purpur.event.entity.RidableMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Purpur worldserver.hasRidableMoveEvent = org.purpurmc.purpur.event.entity.RidableMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Purpur
@@ -244,7 +244,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
try { try {
//worldserver.timings.doTick.startTiming(); // Spigot // Purpur //worldserver.timings.doTick.startTiming(); // Spigot // Purpur
@@ -1757,17 +1757,17 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1755,17 +1755,17 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
throw new ReportedException(crashreport); throw new ReportedException(crashreport);
} }
@@ -266,7 +266,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
//MinecraftTimings.playerListTimer.startTiming(); // Spigot // Paper // Purpur //MinecraftTimings.playerListTimer.startTiming(); // Spigot // Paper // Purpur
this.playerList.tick(); this.playerList.tick();
//MinecraftTimings.playerListTimer.stopTiming(); // Spigot // Paper // Purpur //MinecraftTimings.playerListTimer.stopTiming(); // Spigot // Paper // Purpur
@@ -1775,7 +1775,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1773,7 +1773,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
GameTestTicker.SINGLETON.tick(); GameTestTicker.SINGLETON.tick();
} }
@@ -275,7 +275,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
//MinecraftTimings.tickablesTimer.startTiming(); // Spigot // Paper // Purpur //MinecraftTimings.tickablesTimer.startTiming(); // Spigot // Paper // Purpur
for (int i = 0; i < this.tickables.size(); ++i) { for (int i = 0; i < this.tickables.size(); ++i) {
@@ -1783,7 +1783,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1781,7 +1781,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} }
//MinecraftTimings.tickablesTimer.stopTiming(); // Spigot // Paper // Purpur //MinecraftTimings.tickablesTimer.stopTiming(); // Spigot // Paper // Purpur
@@ -284,7 +284,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
iterator = this.playerList.getPlayers().iterator(); iterator = this.playerList.getPlayers().iterator();
while (iterator.hasNext()) { while (iterator.hasNext()) {
@@ -1793,7 +1793,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1791,7 +1791,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
entityplayer.connection.resumeFlushing(); entityplayer.connection.resumeFlushing();
} }
@@ -293,7 +293,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
} }
private void synchronizeTime(ServerLevel world) { private void synchronizeTime(ServerLevel world) {
@@ -1801,7 +1801,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1799,7 +1799,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} }
public void forceTimeSynchronization() { public void forceTimeSynchronization() {
@@ -302,7 +302,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
Iterator iterator = this.getAllLevels().iterator(); Iterator iterator = this.getAllLevels().iterator();
while (iterator.hasNext()) { while (iterator.hasNext()) {
@@ -1810,7 +1810,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1808,7 +1808,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.synchronizeTime(worldserver); this.synchronizeTime(worldserver);
} }
@@ -311,7 +311,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
} }
public boolean isNetherEnabled() { public boolean isNetherEnabled() {
@@ -2474,7 +2474,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -2472,7 +2472,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} }
public ProfilerFiller getProfiler() { public ProfilerFiller getProfiler() {
@@ -320,7 +320,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
return this.profiler; return this.profiler;
} }
@@ -2714,7 +2714,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -2712,7 +2712,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// CraftBukkit end // CraftBukkit end
private void startMetricsRecordingTick() { private void startMetricsRecordingTick() {
@@ -329,7 +329,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
this.metricsRecorder = ActiveMetricsRecorder.createStarted(new ServerMetricsSamplersProvider(Util.timeSource, this.isDedicatedServer()), Util.timeSource, Util.ioPool(), new MetricsPersister("server"), this.onMetricsRecordingStopped, (path) -> { this.metricsRecorder = ActiveMetricsRecorder.createStarted(new ServerMetricsSamplersProvider(Util.timeSource, this.isDedicatedServer()), Util.timeSource, Util.ioPool(), new MetricsPersister("server"), this.onMetricsRecordingStopped, (path) -> {
this.executeBlocking(() -> { this.executeBlocking(() -> {
this.saveDebugReport(path.resolve("server")); this.saveDebugReport(path.resolve("server"));
@@ -2724,40 +2724,40 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -2722,40 +2722,40 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.willStartRecordingMetrics = false; this.willStartRecordingMetrics = false;
} }
@@ -382,7 +382,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
} }
public Path getWorldPath(LevelResource worldSavePath) { public Path getWorldPath(LevelResource worldSavePath) {
@@ -2806,15 +2806,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -2804,15 +2804,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} }
public boolean isTimeProfilerRunning() { public boolean isTimeProfilerRunning() {
@@ -448,10 +448,10 @@ index df0c15f6b5b2224d53e4f8fad42b9a1e5f33dc25..5dd0dcb47211cec69189115bf4eab1df
} }
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 18a42d8c8c038cb94e06909d96d05e0627c512a7..206808a14c03b36c7974dea7c3d0bfda38cabfcd 100644 index c6c4d6cf59742b555af5469eaf751ebef753e249..06554a000da1f6ba7360fa907deeead7341b09ea 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
@@ -545,20 +545,20 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -538,20 +538,20 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
} }
protected void tick(BooleanSupplier shouldKeepTicking) { protected void tick(BooleanSupplier shouldKeepTicking) {
@@ -477,19 +477,10 @@ index 18a42d8c8c038cb94e06909d96d05e0627c512a7..206808a14c03b36c7974dea7c3d0bfda
public boolean hasWork() { public boolean hasWork() {
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 e828f3d14af21318a716b9eba4b9bf80e377b073..a5067485fb6683e3255681a9c5a6df86c90ce0fa 100644 index 13ba576ad447a8bbc0712126ec86524f5bbd9a6d..897ad16faffcf10a352a49c87d1d5f44f59d5491 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
@@ -73,7 +73,7 @@ public class ServerChunkCache extends ChunkSource { @@ -264,16 +264,16 @@ public class ServerChunkCache extends ChunkSource {
final it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap<LevelChunk> loadedChunkMap = new it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap<>(8192, 0.5f);
private final LevelChunk[] lastLoadedChunks = new LevelChunk[4 * 4];
-
+
public boolean firstRunSpawnCounts = true; // Pufferfish
public final java.util.concurrent.atomic.AtomicBoolean _pufferfish_spawnCountsReady = new java.util.concurrent.atomic.AtomicBoolean(false); // Pufferfish - optimize countmobs
@@ -277,16 +277,16 @@ public class ServerChunkCache extends ChunkSource {
return ifLoaded; return ifLoaded;
} }
// Paper end - Perf: Optimise getChunkAt calls for loaded chunks // Paper end - Perf: Optimise getChunkAt calls for loaded chunks
@@ -509,7 +500,7 @@ index e828f3d14af21318a716b9eba4b9bf80e377b073..a5067485fb6683e3255681a9c5a6df86
CompletableFuture<Either<ChunkAccess, ChunkHolder.ChunkLoadingFailure>> completablefuture = this.getChunkFutureMainThread(x, z, leastStatus, create, true); // Paper CompletableFuture<Either<ChunkAccess, ChunkHolder.ChunkLoadingFailure>> completablefuture = this.getChunkFutureMainThread(x, z, leastStatus, create, true); // Paper
ServerChunkCache.MainThreadExecutor chunkproviderserver_b = this.mainThreadProcessor; ServerChunkCache.MainThreadExecutor chunkproviderserver_b = this.mainThreadProcessor;
@@ -482,24 +482,24 @@ public class ServerChunkCache extends ChunkSource { @@ -467,24 +467,24 @@ public class ServerChunkCache extends ChunkSource {
// CraftBukkit start - modelled on below // CraftBukkit start - modelled on below
public void purgeUnload() { public void purgeUnload() {
if (true) return; // Paper - tickets will be removed later, this behavior isn't really well accounted for by the chunk system if (true) return; // Paper - tickets will be removed later, this behavior isn't really well accounted for by the chunk system
@@ -539,7 +530,7 @@ index e828f3d14af21318a716b9eba4b9bf80e377b073..a5067485fb6683e3255681a9c5a6df86
if (tickChunks) { if (tickChunks) {
//this.level.timings.chunks.startTiming(); // Paper - timings // Purpur //this.level.timings.chunks.startTiming(); // Paper - timings // Purpur
this.chunkMap.level.playerChunkLoader.tick(); // Paper - replace player chunk loader - this is mostly required to account for view distance changes this.chunkMap.level.playerChunkLoader.tick(); // Paper - replace player chunk loader - this is mostly required to account for view distance changes
@@ -509,10 +509,10 @@ public class ServerChunkCache extends ChunkSource { @@ -494,10 +494,10 @@ public class ServerChunkCache extends ChunkSource {
} }
//this.level.timings.doChunkUnload.startTiming(); // Spigot // Purpur //this.level.timings.doChunkUnload.startTiming(); // Spigot // Purpur
@@ -552,7 +543,7 @@ index e828f3d14af21318a716b9eba4b9bf80e377b073..a5067485fb6683e3255681a9c5a6df86
this.clearCache(); this.clearCache();
} }
@@ -522,10 +522,10 @@ public class ServerChunkCache extends ChunkSource { @@ -507,10 +507,10 @@ public class ServerChunkCache extends ChunkSource {
this.lastInhabitedUpdate = i; this.lastInhabitedUpdate = i;
if (!this.level.isDebug()) { if (!this.level.isDebug()) {
@@ -566,7 +557,7 @@ index e828f3d14af21318a716b9eba4b9bf80e377b073..a5067485fb6683e3255681a9c5a6df86
// Paper - optimise chunk tick iteration // Paper - optimise chunk tick iteration
//if (this.level.getServer().tickRateManager().runsNormally()) this.level.timings.chunkTicks.startTiming(); // Paper // Purpur //if (this.level.getServer().tickRateManager().runsNormally()) this.level.timings.chunkTicks.startTiming(); // Paper // Purpur
@@ -533,7 +533,7 @@ public class ServerChunkCache extends ChunkSource { @@ -518,7 +518,7 @@ public class ServerChunkCache extends ChunkSource {
this.level.resetIceAndSnowTick(); // Pufferfish - reset ice & snow tick random this.level.resetIceAndSnowTick(); // Pufferfish - reset ice & snow tick random
if (this.level.getServer().tickRateManager().runsNormally()) { if (this.level.getServer().tickRateManager().runsNormally()) {
@@ -575,7 +566,7 @@ index e828f3d14af21318a716b9eba4b9bf80e377b073..a5067485fb6683e3255681a9c5a6df86
//this.level.timings.countNaturalMobs.startTiming(); // Paper - timings // Purpur //this.level.timings.countNaturalMobs.startTiming(); // Paper - timings // Purpur
int k = this.distanceManager.getNaturalSpawnChunkCount(); int k = this.distanceManager.getNaturalSpawnChunkCount();
// Paper start - Optional per player mob spawns // Paper start - Optional per player mob spawns
@@ -567,7 +567,7 @@ public class ServerChunkCache extends ChunkSource { @@ -552,7 +552,7 @@ public class ServerChunkCache extends ChunkSource {
// this.level.timings.countNaturalMobs.stopTiming(); // Paper - timings // Purpur // this.level.timings.countNaturalMobs.stopTiming(); // Paper - timings // Purpur
// this.lastSpawnState = spawnercreature_d; // Pufferfish - this is managed asynchronously // this.lastSpawnState = spawnercreature_d; // Pufferfish - this is managed asynchronously
@@ -584,7 +575,7 @@ index e828f3d14af21318a716b9eba4b9bf80e377b073..a5067485fb6683e3255681a9c5a6df86
boolean flag = this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && !this.level.players().isEmpty(); // CraftBukkit boolean flag = this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && !this.level.players().isEmpty(); // CraftBukkit
// Paper start - optimise chunk tick iteration // Paper start - optimise chunk tick iteration
@@ -675,7 +675,7 @@ public class ServerChunkCache extends ChunkSource { @@ -660,7 +660,7 @@ public class ServerChunkCache extends ChunkSource {
// Paper end - optimise chunk tick iteration // Paper end - optimise chunk tick iteration
// this.level.timings.chunkTicks.stopTiming(); // Paper // Purpur // this.level.timings.chunkTicks.stopTiming(); // Paper // Purpur
@@ -593,7 +584,7 @@ index e828f3d14af21318a716b9eba4b9bf80e377b073..a5067485fb6683e3255681a9c5a6df86
if (flag) { if (flag) {
//try (co.aikar.timings.Timing ignored = this.level.timings.miscMobSpawning.startTiming()) { // Paper - timings // Purpur //try (co.aikar.timings.Timing ignored = this.level.timings.miscMobSpawning.startTiming()) { // Paper - timings // Purpur
this.level.tickCustomSpawners(this.spawnEnemies, this.spawnFriendlies); this.level.tickCustomSpawners(this.spawnEnemies, this.spawnFriendlies);
@@ -683,7 +683,7 @@ public class ServerChunkCache extends ChunkSource { @@ -668,7 +668,7 @@ public class ServerChunkCache extends ChunkSource {
} }
} }
@@ -602,7 +593,7 @@ index e828f3d14af21318a716b9eba4b9bf80e377b073..a5067485fb6683e3255681a9c5a6df86
// Paper - optimise chunk tick iteration // Paper - optimise chunk tick iteration
//this.level.timings.broadcastChunkUpdates.startTiming(); // Paper - timing // Purpur //this.level.timings.broadcastChunkUpdates.startTiming(); // Paper - timing // Purpur
// Paper start - optimise chunk tick iteration // Paper start - optimise chunk tick iteration
@@ -701,10 +701,10 @@ public class ServerChunkCache extends ChunkSource { @@ -686,8 +686,8 @@ public class ServerChunkCache extends ChunkSource {
// Paper end - optimise chunk tick iteration // Paper end - optimise chunk tick iteration
//this.level.timings.broadcastChunkUpdates.stopTiming(); // Paper - timing // Purpur //this.level.timings.broadcastChunkUpdates.stopTiming(); // Paper - timing // Purpur
// Paper - optimise chunk tick iteration // Paper - optimise chunk tick iteration
@@ -611,12 +602,9 @@ index e828f3d14af21318a716b9eba4b9bf80e377b073..a5067485fb6683e3255681a9c5a6df86
+ //gameprofilerfiller.pop(); // Purpur + //gameprofilerfiller.pop(); // Purpur
+ //gameprofilerfiller.pop(); // Purpur + //gameprofilerfiller.pop(); // Purpur
} }
-
+
// Pufferfish start - optimize mob spawning // Pufferfish start - optimize mob spawning
if (gg.pufferfish.pufferfish.PufferfishConfig.enableAsyncMobSpawning) { @@ -893,7 +893,7 @@ public class ServerChunkCache extends ChunkSource {
for (ServerPlayer player : this.level.players) {
@@ -908,7 +908,7 @@ public class ServerChunkCache extends ChunkSource {
@Override @Override
protected void doRunTask(Runnable task) { protected void doRunTask(Runnable task) {
@@ -626,7 +614,7 @@ index e828f3d14af21318a716b9eba4b9bf80e377b073..a5067485fb6683e3255681a9c5a6df86
} }
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 11a457103c59d230617e404b5523691ea493da96..587899c4fc3257436f05d08b548016d216d32774 100644 index b4b256721b7a5d25deec717123501a163fcfd8fe..75b3de5c1e26815aa04dba3f09f2ef7807767154 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
@@ -824,16 +824,16 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -824,16 +824,16 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -768,7 +756,7 @@ index 11a457103c59d230617e404b5523691ea493da96..587899c4fc3257436f05d08b548016d2
+ //gameprofilerfiller.push("thunder"); // Purpur + //gameprofilerfiller.push("thunder"); // Purpur
final BlockPos.MutableBlockPos blockposition = this.chunkTickMutablePosition; // Paper - use mutable to reduce allocation rate, final to force compile fail on change final BlockPos.MutableBlockPos blockposition = this.chunkTickMutablePosition; // Paper - use mutable to reduce allocation rate, final to force compile fail on change
if (!this.paperConfig().environment.disableThunder && flag && this.isThundering() && this.spigotConfig.thunderChance > 0 && /*this.random.nextInt(this.spigotConfig.thunderChance) == 0 &&*/ chunk.shouldDoLightning(this.random)) { // Spigot // Paper - disable thunder // Pufferfish - replace random with shouldDoLightning if (!this.paperConfig().environment.disableThunder && flag && this.isThundering() && this.spigotConfig.thunderChance > 0 && /*this.random.nextInt(this.spigotConfig.thunderChance) == 0 &&*/ chunk.shouldDoLightning(this.random)) { // Spigot // Paper - Option to disable thunder // Pufferfish - replace random with shouldDoLightning
@@ -1085,7 +1084,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1085,7 +1084,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
} }
} }
@@ -776,11 +764,11 @@ index 11a457103c59d230617e404b5523691ea493da96..587899c4fc3257436f05d08b548016d2
- gameprofilerfiller.popPush("iceandsnow"); - gameprofilerfiller.popPush("iceandsnow");
+ //gameprofilerfiller.popPush("iceandsnow"); // Purpur + //gameprofilerfiller.popPush("iceandsnow"); // Purpur
if (!this.paperConfig().environment.disableIceAndSnow) { // Paper if (!this.paperConfig().environment.disableIceAndSnow) { // Paper - Option to disable ice and snow
for (int l = 0; l < randomTickSpeed; ++l) { for (int l = 0; l < randomTickSpeed; ++l) {
@@ -1098,7 +1097,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1098,7 +1097,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
} }
} // Paper } // Paper - Option to disable ice and snow
- gameprofilerfiller.popPush("tickBlocks"); - gameprofilerfiller.popPush("tickBlocks");
+ //gameprofilerfiller.popPush("tickBlocks"); // Purpur + //gameprofilerfiller.popPush("tickBlocks"); // Purpur
@@ -848,7 +836,7 @@ index 11a457103c59d230617e404b5523691ea493da96..587899c4fc3257436f05d08b548016d2
while (iterator.hasNext()) { while (iterator.hasNext()) {
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 161e24ca04c0aae21ee34e79baca6af0a356185a..52be525a4fdaa7d222ba5ab4a6a8d6ccf938a7b1 100644 index 620b7937b03ba178b3fc70b542962b12ce0d3bac..a3b3d85ff56a050219d2997955d088724132e988 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
@@ -1240,7 +1240,7 @@ public class ServerPlayer extends Player { @@ -1240,7 +1240,7 @@ public class ServerPlayer extends Player {
@@ -1107,7 +1095,7 @@ index 2e6e8eac987c4ef6b2dcd3de592d8a51d2b29792..863343a87fe34d72f04af89d75268b47
}; };
} }
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 d3134fe3c14a4fe153cea6b17a3764bfc891620a..dfc36d46bc6b5a4fc5d48f54ddc9114161128c5a 100644 index e0929385a6b218ea654f552bed531f116d629274..b60796b736d2992a192b58b98a2becbf9f5ac9d1 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
@@ -851,7 +851,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -851,7 +851,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -1128,7 +1116,7 @@ index d3134fe3c14a4fe153cea6b17a3764bfc891620a..dfc36d46bc6b5a4fc5d48f54ddc91141
} }
public void setSharedFlagOnFire(boolean onFire) { public void setSharedFlagOnFire(boolean onFire) {
@@ -1131,7 +1131,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -1132,7 +1132,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
} }
} }
@@ -1137,7 +1125,7 @@ index d3134fe3c14a4fe153cea6b17a3764bfc891620a..dfc36d46bc6b5a4fc5d48f54ddc91141
if (this.stuckSpeedMultiplier.lengthSqr() > 1.0E-7D) { if (this.stuckSpeedMultiplier.lengthSqr() > 1.0E-7D) {
movement = movement.multiply(this.stuckSpeedMultiplier); movement = movement.multiply(this.stuckSpeedMultiplier);
this.stuckSpeedMultiplier = Vec3.ZERO; this.stuckSpeedMultiplier = Vec3.ZERO;
@@ -1140,7 +1140,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -1141,7 +1141,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
// Paper start - ignore movement changes while inactive. // Paper start - ignore movement changes while inactive.
if (isTemporarilyActive && !(this instanceof ItemEntity || this instanceof net.minecraft.world.entity.vehicle.AbstractMinecart) && movement == getDeltaMovement() && movementType == MoverType.SELF) { if (isTemporarilyActive && !(this instanceof ItemEntity || this instanceof net.minecraft.world.entity.vehicle.AbstractMinecart) && movement == getDeltaMovement() && movementType == MoverType.SELF) {
setDeltaMovement(Vec3.ZERO); setDeltaMovement(Vec3.ZERO);
@@ -1146,7 +1134,7 @@ index d3134fe3c14a4fe153cea6b17a3764bfc891620a..dfc36d46bc6b5a4fc5d48f54ddc91141
return; return;
} }
// Paper end // Paper end
@@ -1161,8 +1161,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -1162,8 +1162,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
this.setPos(this.getX() + vec3d1.x, this.getY() + vec3d1.y, this.getZ() + vec3d1.z); this.setPos(this.getX() + vec3d1.x, this.getY() + vec3d1.y, this.getZ() + vec3d1.z);
} }
@@ -1157,7 +1145,7 @@ index d3134fe3c14a4fe153cea6b17a3764bfc891620a..dfc36d46bc6b5a4fc5d48f54ddc91141
boolean flag = !Mth.equal(movement.x, vec3d1.x); boolean flag = !Mth.equal(movement.x, vec3d1.x);
boolean flag1 = !Mth.equal(movement.z, vec3d1.z); boolean flag1 = !Mth.equal(movement.z, vec3d1.z);
@@ -1181,7 +1181,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -1182,7 +1182,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
this.checkFallDamage(vec3d1.y, this.onGround(), iblockdata, blockposition); this.checkFallDamage(vec3d1.y, this.onGround(), iblockdata, blockposition);
if (this.isRemoved()) { if (this.isRemoved()) {
@@ -1166,7 +1154,7 @@ index d3134fe3c14a4fe153cea6b17a3764bfc891620a..dfc36d46bc6b5a4fc5d48f54ddc91141
} else { } else {
if (this.horizontalCollision) { if (this.horizontalCollision) {
Vec3 vec3d2 = this.getDeltaMovement(); Vec3 vec3d2 = this.getDeltaMovement();
@@ -1319,7 +1319,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -1320,7 +1320,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
this.setRemainingFireTicks(-this.getFireImmuneTicks()); this.setRemainingFireTicks(-this.getFireImmuneTicks());
} }
@@ -1175,7 +1163,7 @@ index d3134fe3c14a4fe153cea6b17a3764bfc891620a..dfc36d46bc6b5a4fc5d48f54ddc91141
} }
} }
// Paper start - detailed watchdog information // Paper start - detailed watchdog information
@@ -3190,7 +3190,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -3188,7 +3188,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
ServerLevel worldserver1 = minecraftserver.getLevel(resourcekey); ServerLevel worldserver1 = minecraftserver.getLevel(resourcekey);
if (true && !this.isPassenger() && this.portalTime++ >= i) { // CraftBukkit if (true && !this.isPassenger() && this.portalTime++ >= i) { // CraftBukkit
@@ -1184,7 +1172,7 @@ index d3134fe3c14a4fe153cea6b17a3764bfc891620a..dfc36d46bc6b5a4fc5d48f54ddc91141
this.portalTime = i; this.portalTime = i;
// Paper start - Add EntityPortalReadyEvent // Paper start - Add EntityPortalReadyEvent
io.papermc.paper.event.entity.EntityPortalReadyEvent event = new io.papermc.paper.event.entity.EntityPortalReadyEvent(this.getBukkitEntity(), worldserver1 == null ? null : worldserver1.getWorld(), org.bukkit.PortalType.NETHER); io.papermc.paper.event.entity.EntityPortalReadyEvent event = new io.papermc.paper.event.entity.EntityPortalReadyEvent(this.getBukkitEntity(), worldserver1 == null ? null : worldserver1.getWorld(), org.bukkit.PortalType.NETHER);
@@ -3208,7 +3208,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -3206,7 +3206,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
} }
} // Paper - Add EntityPortalReadyEvent } // Paper - Add EntityPortalReadyEvent
// CraftBukkit end // CraftBukkit end
@@ -1193,7 +1181,7 @@ index d3134fe3c14a4fe153cea6b17a3764bfc891620a..dfc36d46bc6b5a4fc5d48f54ddc91141
} }
this.isInsidePortal = false; this.isInsidePortal = false;
@@ -3683,14 +3683,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -3681,14 +3681,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
} }
// Paper end - Fix item duplication and teleport issues // Paper end - Fix item duplication and teleport issues
if (this.level() instanceof ServerLevel && !this.isRemoved()) { if (this.level() instanceof ServerLevel && !this.isRemoved()) {
@@ -1210,7 +1198,7 @@ index d3134fe3c14a4fe153cea6b17a3764bfc891620a..dfc36d46bc6b5a4fc5d48f54ddc91141
PortalInfo shapedetectorshape = (location == null) ? this.findDimensionEntryPoint(worldserver) : new PortalInfo(new Vec3(location.x(), location.y(), location.z()), Vec3.ZERO, this.yRot, this.xRot, worldserver, null); // CraftBukkit PortalInfo shapedetectorshape = (location == null) ? this.findDimensionEntryPoint(worldserver) : new PortalInfo(new Vec3(location.x(), location.y(), location.z()), Vec3.ZERO, this.yRot, this.xRot, worldserver, null); // CraftBukkit
if (shapedetectorshape == null) { if (shapedetectorshape == null) {
@@ -3729,7 +3729,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -3727,7 +3727,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
this.unRide(); this.unRide();
// CraftBukkit end // CraftBukkit end
@@ -1219,7 +1207,7 @@ index d3134fe3c14a4fe153cea6b17a3764bfc891620a..dfc36d46bc6b5a4fc5d48f54ddc91141
// Paper start - Fix item duplication and teleport issues // Paper start - Fix item duplication and teleport issues
if (this instanceof Mob) { if (this instanceof Mob) {
((Mob) this).dropLeash(true, true); // Paper drop lead ((Mob) this).dropLeash(true, true); // Paper drop lead
@@ -3756,10 +3756,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -3754,10 +3754,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
} }
this.removeAfterChangingDimensions(); this.removeAfterChangingDimensions();
@@ -1233,7 +1221,7 @@ index d3134fe3c14a4fe153cea6b17a3764bfc891620a..dfc36d46bc6b5a4fc5d48f54ddc91141
} }
} else { } else {
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 fae05c2ca9f1cf090de3f162c7067b0ccfbaec14..18ab2de61fe749e82c8eec328d2696214339bd19 100644 index 87c4e2ef041238f84a00f2b032ed10c3f250eb0d..66abff00db43413b07d51d48654eab7be821bc93 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
@@ -409,7 +409,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -409,7 +409,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -1344,7 +1332,7 @@ index fae05c2ca9f1cf090de3f162c7067b0ccfbaec14..18ab2de61fe749e82c8eec328d269621
// Purpur start // Purpur start
if (this.xo != this.getX() || this.yo != this.getY() || this.zo != this.getZ() || this.yRotO != this.getYRot() || this.xRotO != this.getXRot()) { if (this.xo != this.getX() || this.yo != this.getY() || this.zo != this.getZ() || this.yRotO != this.getYRot() || this.xRotO != this.getXRot()) {
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 9e5b7702780709b59f0f302a5ec60e62ac13fd5c..b8948e2b8390f7b670766d2453a01483c32d854c 100644 index 2cf0d698b341d418d0ac4760f95e3ea52c193098..11062e250657cb839ca046d6c224647915d3ee7b 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
@@ -367,13 +367,13 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -367,13 +367,13 @@ public abstract class Mob extends LivingEntity implements Targeting {
@@ -1384,7 +1372,7 @@ index 9e5b7702780709b59f0f302a5ec60e62ac13fd5c..b8948e2b8390f7b670766d2453a01483
@@ -936,46 +936,46 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -936,46 +936,46 @@ public abstract class Mob extends LivingEntity implements Targeting {
return; return;
} }
// Paper end // Paper end - Allow nerfed mobs to jump and float
- this.level().getProfiler().push("sensing"); - this.level().getProfiler().push("sensing");
+ //this.level().getProfiler().push("sensing"); // Purpur + //this.level().getProfiler().push("sensing"); // Purpur
this.sensing.tick(); this.sensing.tick();
@@ -1449,7 +1437,7 @@ index 9e5b7702780709b59f0f302a5ec60e62ac13fd5c..b8948e2b8390f7b670766d2453a01483
} }
diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java b/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java b/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java
index 1635818fc4b1788c0d397085239df6dd75b210ab..02978315bc2b828cc603ce7478408f3f82c249c2 100644 index 2d63ee8fef87264d4b61290effa6ba86a787aa61..bb068bffc9e2f035dee90276156129ce750a7cd7 100644
--- a/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java --- a/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java
+++ b/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java +++ b/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java
@@ -105,8 +105,8 @@ public class GoalSelector { @@ -105,8 +105,8 @@ public class GoalSelector {
@@ -1501,13 +1489,13 @@ index 1635818fc4b1788c0d397085239df6dd75b210ab..02978315bc2b828cc603ce7478408f3f
public Set<WrappedGoal> getAvailableGoals() { public Set<WrappedGoal> getAvailableGoals() {
diff --git a/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java b/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java diff --git a/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java b/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java
index a9922074b6aa6a9898615385bb11d2a758662970..9ffbe784a0d45b494f29ab1555841b4be9f58128 100644 index a04fb58c29b462e20ed0b702cef478e3985b7cd2..43699f94dd0fd97513242fcdbc4ec4d0dc260f8e 100644
--- a/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java --- a/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java
+++ b/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java +++ b/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java
@@ -172,12 +172,12 @@ public abstract class PathNavigation { @@ -173,12 +173,12 @@ public abstract class PathNavigation {
} }
} }
// Paper end // Paper end - EntityPathfindEvent
- this.level.getProfiler().push("pathfind"); - this.level.getProfiler().push("pathfind");
+ //this.level.getProfiler().push("pathfind"); // Purpur + //this.level.getProfiler().push("pathfind"); // Purpur
BlockPos blockPos = useHeadPos ? this.mob.blockPosition().above() : this.mob.blockPosition(); BlockPos blockPos = useHeadPos ? this.mob.blockPosition().above() : this.mob.blockPosition();
@@ -1811,7 +1799,7 @@ index ceda40e0246830155d13f36073b0ba45a5146de6..795a91cf05dc4f5fba84eaa501e8163f
this.assignProfessionWhenSpawned = false; this.assignProfessionWhenSpawned = false;
} }
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
index 1fa02130dcb65b3109fde0cb612b538b1c4cd4cb..353ee2d2ea86ba98052acb2edb5d0b3d9393f3ca 100644 index 28ef910885dbd48965fba6f08cec412697b1b7f0..02dae407069a0200e271cc9c6f3ec6ff80f79025 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java --- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -659,7 +659,7 @@ public class Explosion { @@ -659,7 +659,7 @@ public class Explosion {
@@ -1833,7 +1821,7 @@ index 1fa02130dcb65b3109fde0cb612b538b1c4cd4cb..353ee2d2ea86ba98052acb2edb5d0b3d
if (this.fire) { if (this.fire) {
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 061a546ff8421d16fa37cf2337cded4bdfc943f3..2cdee8e0f0af1f8c6d8551fd5ee6f87d94de31a8 100644 index ef8b596a02970c514fc6e5e0fb7ded76d82240ac..4779fd92a88c3d485ab3282ab63158f0894f7896 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
@@ -1314,9 +1314,9 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -1314,9 +1314,9 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -1885,7 +1873,7 @@ index 061a546ff8421d16fa37cf2337cded4bdfc943f3..2cdee8e0f0af1f8c6d8551fd5ee6f87d
} }
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 f2f778d876703c06e0d1bfd7a35adde35abe4939..edc3676c4da974be4b628e2b3baae99679e9b2c1 100644 index 3d99667fa297ea15c5d3a0526a846ce177a5037a..a0ab8be389a175b5e6c42798650a06882a7b3886 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
@@ -132,7 +132,7 @@ public final class NaturalSpawner { @@ -132,7 +132,7 @@ public final class NaturalSpawner {
@@ -1907,7 +1895,7 @@ index f2f778d876703c06e0d1bfd7a35adde35abe4939..edc3676c4da974be4b628e2b3baae996
// Paper start - Add mobcaps commands // Paper start - Add mobcaps commands
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 134d2d56af71aceb1ca33d7bb708124655c5d319..f782fee9243129d0990777dcd2d74735ceb5e64e 100644 index 8c0df10efd59594c63cca2a1c22386acf17e5299..1b49ecbf8fdbe8b734f8ca5191dc9ed70aa66af7 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
@@ -457,11 +457,11 @@ public class LevelChunk extends ChunkAccess { @@ -457,11 +457,11 @@ public class LevelChunk extends ChunkAccess {
@@ -1945,7 +1933,7 @@ index 134d2d56af71aceb1ca33d7bb708124655c5d319..f782fee9243129d0990777dcd2d74735
+ //gameprofilerfiller.pop(); + //gameprofilerfiller.pop();
} catch (Throwable throwable) { } catch (Throwable throwable) {
if (throwable instanceof ThreadDeath) throw throwable; // Paper if (throwable instanceof ThreadDeath) throw throwable; // Paper
// Paper start - Prevent tile entity and entity crashes // Paper start - Prevent block entity and entity crashes
diff --git a/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java b/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java diff --git a/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java b/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java
index eb18494bd7257fa5eb00dea16cf4d5667b796f2b..f039d6109ee6f55542adc8f30476ba9a9e4974bf 100644 index eb18494bd7257fa5eb00dea16cf4d5667b796f2b..f039d6109ee6f55542adc8f30476ba9a9e4974bf 100644
--- a/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java --- a/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Debug Marker API
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 866d49ef3de9e9629b00b3dc0515ab089ab47908..067164b3698bcb89ae2f8d09cb7009108a999670 100644 index 4e8ff16b5ca3cd2ddf2a44c7cd625fbf2311706d..b2d990fda0c144a837ac3c2118da15a77885edcf 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
@@ -1584,6 +1584,42 @@ public final class CraftServer implements Server { @@ -1583,6 +1583,42 @@ public final class CraftServer implements Server {
public void removeFuel(org.bukkit.Material material) { public void removeFuel(org.bukkit.Material material) {
net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity.removeFuel(net.minecraft.world.item.ItemStack.fromBukkitCopy(new ItemStack(material))); net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity.removeFuel(net.minecraft.world.item.ItemStack.fromBukkitCopy(new ItemStack(material)));
} }
@@ -52,10 +52,10 @@ index 866d49ef3de9e9629b00b3dc0515ab089ab47908..067164b3698bcb89ae2f8d09cb700910
@Override @Override
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 8af705619e8a784c6128d7ff4838eeae56e59821..f6c6cd92e1eff044abefa6ca74477d361f4434ec 100644 index 354ef8d61668e5532f60034291bf8f0374f8ac52..7a2e6d1c4b1d553c172f7d704036e3dfb39228a7 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -2419,6 +2419,42 @@ public class CraftWorld extends CraftRegionAccessor implements World { @@ -2377,6 +2377,42 @@ public class CraftWorld extends CraftRegionAccessor implements World {
public float getLocalDifficultyAt(Location location) { public float getLocalDifficultyAt(Location location) {
return getHandle().getCurrentDifficultyAt(io.papermc.paper.util.MCUtil.toBlockPosition(location)).getEffectiveDifficulty(); return getHandle().getCurrentDifficultyAt(io.papermc.paper.util.MCUtil.toBlockPosition(location)).getEffectiveDifficulty();
} }
@@ -99,10 +99,10 @@ index 8af705619e8a784c6128d7ff4838eeae56e59821..f6c6cd92e1eff044abefa6ca74477d36
@Override @Override
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 9306facdc8aa56674f896fa3ab3d2b54dc5a2f4b..e3c2279c0096976b9b8a574b731fad7bfa6f770f 100644 index b2b000ab47897f9d8f47840ae95ef2db478f808c..b33bae43348925a0f4f9ca22839084b435e44b00 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
@@ -3425,5 +3425,43 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -3413,5 +3413,43 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void resetIdleTimer() { public void resetIdleTimer() {
getHandle().resetLastActionTime(); getHandle().resetLastActionTime();
} }

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add death screen API
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 e3c2279c0096976b9b8a574b731fad7bfa6f770f..8c90eddd40c8ab2f4d727e3c7d9b6312d57bf277 100644 index b33bae43348925a0f4f9ca22839084b435e44b00..137595efe9e828810cf1f006027ac96606ad8821 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
@@ -3463,5 +3463,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -3451,5 +3451,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
if (this.getHandle().connection == null) return; if (this.getHandle().connection == null) return;
this.getHandle().connection.send(new net.minecraft.network.protocol.common.ClientboundCustomPayloadPacket(new net.minecraft.network.protocol.common.custom.GameTestClearMarkersDebugPayload())); this.getHandle().connection.send(new net.minecraft.network.protocol.common.ClientboundCustomPayloadPacket(new net.minecraft.network.protocol.common.custom.GameTestClearMarkersDebugPayload()));
} }

View File

@@ -36,10 +36,10 @@ index b863249ff7e13cf4939c8961601f0564c62fd661..bdcfd80f937c34956911373905d66424
this.writeId(BuiltInRegistries.ITEM, item); this.writeId(BuiltInRegistries.ITEM, item);
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 9424b1383681b9f875af1a4245a58b8fd7811642..fb260519d6546392a3fce8fcc1f80884cce0fabe 100644 index 101c57df8b77827b78dd5423715f784da645b38e..09a290feb90751f3630fd23346c2cc8900fc841a 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
@@ -1719,6 +1719,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1717,6 +1717,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
//MinecraftTimings.timeUpdateTimer.stopTiming(); // Spigot // Paper // Purpur //MinecraftTimings.timeUpdateTimer.stopTiming(); // Spigot // Paper // Purpur
this.isIteratingOverLevels = true; // Paper - Throw exception on world create while being ticked this.isIteratingOverLevels = true; // Paper - Throw exception on world create while being ticked
@@ -48,7 +48,7 @@ index 9424b1383681b9f875af1a4245a58b8fd7811642..fb260519d6546392a3fce8fcc1f80884
while (iterator.hasNext()) { while (iterator.hasNext()) {
ServerLevel worldserver = (ServerLevel) iterator.next(); ServerLevel worldserver = (ServerLevel) iterator.next();
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 651afbf1334da2a072c03636e84362a5f88a809a..af592c7c82471d75381d77e43c8f81b525df217d 100644 index 218a6f27986f2e7282ccb1ad9fdc6f8a2ccbb5c5..a56628fb04ccd5a2df4cb98bb4054f0024bf3a06 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
@@ -3362,6 +3362,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -3362,6 +3362,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Fire Immunity API
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 805991ef816ad5ae82ed26781ec265173a8f192c..66e99e9aceb1c44ecfdecea992bead1e1c42cbed 100644 index b60796b736d2992a192b58b98a2becbf9f5ac9d1..a0281bf4610452b54ca01dc31be01367efc54c76 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
@@ -423,6 +423,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -423,6 +423,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -16,7 +16,7 @@ index 805991ef816ad5ae82ed26781ec265173a8f192c..66e99e9aceb1c44ecfdecea992bead1e
public void setOrigin(@javax.annotation.Nonnull Location location) { public void setOrigin(@javax.annotation.Nonnull Location location) {
this.origin = location.toVector(); this.origin = location.toVector();
@@ -1817,7 +1818,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -1818,7 +1819,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
} }
public boolean fireImmune() { public boolean fireImmune() {
@@ -25,7 +25,7 @@ index 805991ef816ad5ae82ed26781ec265173a8f192c..66e99e9aceb1c44ecfdecea992bead1e
} }
public boolean causeFallDamage(float fallDistance, float damageMultiplier, DamageSource damageSource) { public boolean causeFallDamage(float fallDistance, float damageMultiplier, DamageSource damageSource) {
@@ -2509,6 +2510,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -2507,6 +2508,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
nbttagcompound.putBoolean("Paper.FreezeLock", true); nbttagcompound.putBoolean("Paper.FreezeLock", true);
} }
// Paper end // Paper end
@@ -37,7 +37,7 @@ index 805991ef816ad5ae82ed26781ec265173a8f192c..66e99e9aceb1c44ecfdecea992bead1e
return nbttagcompound; return nbttagcompound;
} catch (Throwable throwable) { } catch (Throwable throwable) {
CrashReport crashreport = CrashReport.forThrowable(throwable, "Saving entity NBT"); CrashReport crashreport = CrashReport.forThrowable(throwable, "Saving entity NBT");
@@ -2656,6 +2662,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -2654,6 +2660,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
freezeLocked = nbt.getBoolean("Paper.FreezeLock"); freezeLocked = nbt.getBoolean("Paper.FreezeLock");
} }
// Paper end // Paper end
@@ -50,7 +50,7 @@ index 805991ef816ad5ae82ed26781ec265173a8f192c..66e99e9aceb1c44ecfdecea992bead1e
} catch (Throwable throwable) { } catch (Throwable throwable) {
CrashReport crashreport = CrashReport.forThrowable(throwable, "Loading entity NBT"); CrashReport crashreport = CrashReport.forThrowable(throwable, "Loading entity NBT");
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index 2ef6dc2390ed622eda284e3b4c85ec64e057c981..6a24595db93c834955df3a5566705b1c5066acc6 100644 index 9304a2d06400dfa244ddb4d9591de988b334c3cf..aa6872290bcab8d7dc58f5714f5f5d4289759880 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -83,6 +83,16 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { @@ -83,6 +83,16 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {

View File

@@ -5,13 +5,13 @@ Subject: [PATCH] Add option to teleport to spawn on nether ceiling damage
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 66e99e9aceb1c44ecfdecea992bead1e1c42cbed..f10933fc78cbb0ead042c1870d93d0447f640896 100644 index a0281bf4610452b54ca01dc31be01367efc54c76..e3322c3263280a8e206af7a84db3518ef0916439 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
@@ -926,6 +926,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -926,6 +926,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
&& this.level.paperConfig().environment.netherCeilingVoidDamageHeight.test(v -> this.getY() >= v) && this.level.paperConfig().environment.netherCeilingVoidDamageHeight.test(v -> this.getY() >= v)
&& (!(this instanceof Player player) || !player.getAbilities().invulnerable))) { && (!(this instanceof Player player) || !player.getAbilities().invulnerable))) {
// Paper end // Paper end - Configurable nether ceiling damage
+ if (this.level().purpurConfig.teleportOnNetherCeilingDamage && this.level.getWorld().getEnvironment() == org.bukkit.World.Environment.NETHER && this instanceof ServerPlayer player) player.teleport(io.papermc.paper.util.MCUtil.toLocation(this.level, this.level.getSharedSpawnPos())); else // Purpur + if (this.level().purpurConfig.teleportOnNetherCeilingDamage && this.level.getWorld().getEnvironment() == org.bukkit.World.Environment.NETHER && this instanceof ServerPlayer player) player.teleport(io.papermc.paper.util.MCUtil.toLocation(this.level, this.level.getSharedSpawnPos())); else // Purpur
this.onBelowWorld(); this.onBelowWorld();
} }

View File

@@ -8,13 +8,13 @@ Shears can now defuse TNT. Each world can have a configured chance for the TNT t
By default the option is disabled to avoid breaking any possible vanilla mechanics. By default the option is disabled to avoid breaking any possible vanilla mechanics.
diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
index c3e47426382296d650fa00ce0bc1a82bf23c7877..dfc3e9d2611ce418ac6f6cc5a23bb74415007713 100644 index cd7b955754b809826048b80723e2e9055b373a4a..b929bef749397797203eb6fb7a7e817d90ec310c 100644
--- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java --- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
+++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java +++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
@@ -207,4 +207,29 @@ public class PrimedTnt extends Entity implements TraceableEntity { @@ -199,4 +199,29 @@ public class PrimedTnt extends Entity implements TraceableEntity {
return !level().paperConfig().fixes.preventTntFromMovingInWater && super.isPushedByFluid(); return !level().paperConfig().fixes.preventTntFromMovingInWater && super.isPushedByFluid();
} }
// Paper end // Paper end - Option to prevent TNT from moving in water
+ // Purpur start - Shears can defuse TNT + // Purpur start - Shears can defuse TNT
+ @Override + @Override
+ public net.minecraft.world.InteractionResult interact(net.minecraft.world.entity.player.Player player, net.minecraft.world.InteractionHand hand) { + public net.minecraft.world.InteractionResult interact(net.minecraft.world.entity.player.Player player, net.minecraft.world.InteractionHand hand) {