Updated Upstream (Paper & Pufferfish)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@5e73c55 [ci skip] Add more identifying patch comments
PaperMC/Paper@3e20d3a [ci skip] Add more identifying patch comments
PaperMC/Paper@f61ebdc Fix issue with kick event causes being passed improperly
PaperMC/Paper@106c67a [ci skip] Add more identifying patch comments
PaperMC/Paper@cc693ce [ci skip] Add more identifying patch comments, merge related patches
PaperMC/Paper@eeb6afc [ci skip] Add more identifying patch comments, merge related patches
PaperMC/Paper@1c956ab [ci skip] Add more identifying patch comments, merge related patches
PaperMC/Paper@42e88a8 [ci skip] Add more identifying patch comments
PaperMC/Paper@8e41ef4 Add visual blockdata api for primed tnt (#10146)
PaperMC/Paper@68c3297 [ci skip] Add more identifying patch comments
PaperMC/Paper@4a98986 Add back Reduce allocation of Vec3D by entity tracker patch (#10179)
PaperMC/Paper@b48d737 Async world data IO saving (#10171)
PaperMC/Paper@8d94596 [ci skip] Add more identifying patch comments
PaperMC/Paper@f7dd304 [ci skip] Add more identifying patch comments
PaperMC/Paper@98e6d20 [ci skip] Add more identifying patch comments
PaperMC/Paper@e9e0bc1 [ci skip] Add more identifying patch comments
PaperMC/Paper@d9df6bc [ci skip] Add more patch identifying comments, cleanup
PaperMC/Paper@27cabc1 [ci skip] Add more patch identifying comments

Pufferfish Changes:
pufferfish-gg/Pufferfish@8e208d3 Fix Async World Saving attribution
This commit is contained in:
granny
2024-01-21 20:41:53 -08:00
parent 3d52f066c1
commit 236b06a2a3
84 changed files with 740 additions and 851 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 = 94807a1d2e74b26b1a3154974d4024daa4c95f51 paperCommit = 27cabc19a02e054276b58bfe0a40fc0add14d25e
org.gradle.caching = true org.gradle.caching = true
org.gradle.parallel = true org.gradle.parallel = true

View File

@@ -20,7 +20,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
diff --git a/build.gradle.kts b/build.gradle.kts diff --git a/build.gradle.kts b/build.gradle.kts
index 444ff797c70b0e285d4272ea2ce3d72453c9bda5..fd785a79b1708aadd760f5b62d49d4d4e55e9938 100644 index 376e8983fdfdbb6c3e5fd8ad0f6a05e655b622bf..658e9b4590a82d179907feea04e129fdba9a2f42 100644
--- a/build.gradle.kts --- a/build.gradle.kts
+++ b/build.gradle.kts +++ b/build.gradle.kts
@@ -13,8 +13,12 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) { @@ -13,8 +13,12 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) {
@@ -625,10 +625,10 @@ index 0000000000000000000000000000000000000000..020368da69b9a492155f6de6297f7473
+} +}
diff --git a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java diff --git a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java
new file mode 100644 new file mode 100644
index 0000000000000000000000000000000000000000..61f21c0bf6658326a15b735c22001b4028b98800 index 0000000000000000000000000000000000000000..ad368b58005b6b0453b709c2ef0ea23bca53d34a
--- /dev/null --- /dev/null
+++ b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java +++ b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java
@@ -0,0 +1,315 @@ @@ -0,0 +1,301 @@
+package gg.pufferfish.pufferfish; +package gg.pufferfish.pufferfish;
+ +
+import gg.pufferfish.pufferfish.simd.SIMDDetection; +import gg.pufferfish.pufferfish.simd.SIMDDetection;
@@ -819,20 +819,6 @@ index 0000000000000000000000000000000000000000..61f21c0bf6658326a15b735c22001b40
+ "an attempt to maintain 20 TPS. This option (defaults to true per", + "an attempt to maintain 20 TPS. This option (defaults to true per",
+ "spigot/paper) can cause mobs to move fast after a lag spike."); + "spigot/paper) can cause mobs to move fast after a lag spike.");
+ } + }
+
+ public static boolean enableAsyncWorldSaving;
+ public static boolean asyncWorldSavingInitialized;
+ private static void asyncWorldSaving() {
+ boolean temp = getBoolean("enable-async-world-saving", false,
+ "Save world changes asynchronously. This is disabled by default as it is not",
+ "100% confident that this will not cause world corruption issues.");
+
+ // This prevents us from changing the value during a reload.
+ if (!asyncWorldSavingInitialized) {
+ asyncWorldSavingInitialized = true;
+ enableAsyncWorldSaving = temp;
+ }
+ }
+ +
+ public static boolean enableSuffocationOptimization; + public static boolean enableSuffocationOptimization;
+ private static void suffocationOptimization() { + private static void suffocationOptimization() {
@@ -935,13 +921,13 @@ index 0000000000000000000000000000000000000000..61f21c0bf6658326a15b735c22001b40
+ "the ender dragon whenever a player places an end crystal."); + "the ender dragon whenever a player places an end crystal.");
+ } + }
+ +
+ public static boolean disableMethodProfiler; + public static boolean disableMethodProfiler;
+ public static boolean disableOutOfOrderChat; + public static boolean disableOutOfOrderChat;
+ private static void miscSettings() { + private static void miscSettings() {
+ disableMethodProfiler = getBoolean("misc.disable-method-profiler", true); + disableMethodProfiler = getBoolean("misc.disable-method-profiler", true);
+ disableOutOfOrderChat = getBoolean("misc.disable-out-of-order-chat", false); + disableOutOfOrderChat = getBoolean("misc.disable-out-of-order-chat", false);
+ setComment("misc", "Settings for things that don't belong elsewhere"); + setComment("misc", "Settings for things that don't belong elsewhere");
+ } + }
+ +
+} +}
diff --git a/src/main/java/gg/pufferfish/pufferfish/PufferfishLogger.java b/src/main/java/gg/pufferfish/pufferfish/PufferfishLogger.java diff --git a/src/main/java/gg/pufferfish/pufferfish/PufferfishLogger.java b/src/main/java/gg/pufferfish/pufferfish/PufferfishLogger.java
@@ -1498,20 +1484,20 @@ index 200ed770b57e1a9240abf0473968d4b85cbefe3c..0acc7cfc0fb0264dd76a58f7582e79d8
public static long getCoordinateKey(final ChunkPos pair) { public static long getCoordinateKey(final ChunkPos pair) {
diff --git a/src/main/java/net/minecraft/network/chat/SignedMessageChain.java b/src/main/java/net/minecraft/network/chat/SignedMessageChain.java diff --git a/src/main/java/net/minecraft/network/chat/SignedMessageChain.java b/src/main/java/net/minecraft/network/chat/SignedMessageChain.java
index 85a8a687b1568a56e3e646b37ef78b562c1b8a82..69971b2c59e541ac4100b84c84e2972de1b44ca9 100644 index ba12919c3f9aec34a9e64993b143ae92be5eb172..9efeab9078e2d08903e482718b840797e22ab1c2 100644
--- a/src/main/java/net/minecraft/network/chat/SignedMessageChain.java --- a/src/main/java/net/minecraft/network/chat/SignedMessageChain.java
+++ b/src/main/java/net/minecraft/network/chat/SignedMessageChain.java +++ b/src/main/java/net/minecraft/network/chat/SignedMessageChain.java
@@ -38,7 +38,7 @@ public class SignedMessageChain { @@ -38,7 +38,7 @@ public class SignedMessageChain {
throw new SignedMessageChain.DecodeException(Component.translatable("chat.disabled.chain_broken"), false); // Paper - diff on change (if disconnects, need a new kick event cause) throw new SignedMessageChain.DecodeException(Component.translatable("chat.disabled.chain_broken"), false); // Paper - diff on change (if disconnects, need a new kick event cause)
} else if (playerPublicKey.data().hasExpired()) { } else if (playerPublicKey.data().hasExpired()) {
throw new SignedMessageChain.DecodeException(Component.translatable("chat.disabled.expiredProfileKey", org.bukkit.event.player.PlayerKickEvent.Cause.EXPIRED_PROFILE_PUBLIC_KEY), false); // Paper - kick event causes throw new SignedMessageChain.DecodeException(Component.translatable("chat.disabled.expiredProfileKey"), false, org.bukkit.event.player.PlayerKickEvent.Cause.EXPIRED_PROFILE_PUBLIC_KEY); // Paper - kick event causes
- } else if (body.timeStamp().isBefore(this.lastTimeStamp)) { - } else if (body.timeStamp().isBefore(this.lastTimeStamp)) {
+ } else if (!gg.pufferfish.pufferfish.PufferfishConfig.disableOutOfOrderChat && body.timeStamp().isBefore(this.lastTimeStamp)) { // Pufferfish + } else if (!gg.pufferfish.pufferfish.PufferfishConfig.disableOutOfOrderChat && body.timeStamp().isBefore(this.lastTimeStamp)) { // Pufferfish
throw new SignedMessageChain.DecodeException(Component.translatable("multiplayer.disconnect.out_of_order_chat", org.bukkit.event.player.PlayerKickEvent.Cause.OUT_OF_ORDER_CHAT), true); // Paper - kick event causes throw new SignedMessageChain.DecodeException(Component.translatable("multiplayer.disconnect.out_of_order_chat"), true, org.bukkit.event.player.PlayerKickEvent.Cause.OUT_OF_ORDER_CHAT); // Paper - kick event causes
} 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 016b7628b289fb882f3ec15dd5b0cb4e0af72edc..1343649cd77a42dd502747581050b401840a6efe 100644 index ec1197e498d0fa8d58466b8dffe46fb0683b530c..771a9c9f4c39fdfac26ee62db2a9cdcf15d9e1a6 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 @@ -314,6 +314,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1554,7 +1540,7 @@ index 016b7628b289fb882f3ec15dd5b0cb4e0af72edc..1343649cd77a42dd502747581050b401
} }
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 9d7e1b306f8c96883dbe1adbf7e77825da4cbc21..80e1dcef1eeb33f553c7d771a00d463e99e3f147 100644 index 6de6dad36203479677a29ad61e21bc369d4e5513..c5f92c80d7ca1e1c7f5b9304a5a1173ebfd9c269 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -221,6 +221,8 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -221,6 +221,8 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -1575,7 +1561,7 @@ index 9d7e1b306f8c96883dbe1adbf7e77825da4cbc21..80e1dcef1eeb33f553c7d771a00d463e
} }
} }
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 4160fff108cc83bc0a1f0a0389ab22f722d483b4..e4a6110a00c9ae78aafa13668e2ec2ea5f394b37 100644 index 639c46a7d2b35f13d2310d9ded8a92a4703f6ebb..6dfff1ce0ee0a314816a47fd9d89c609f9f3ac5c 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
@@ -1627,7 +1613,7 @@ index 4160fff108cc83bc0a1f0a0389ab22f722d483b4..e4a6110a00c9ae78aafa13668e2ec2ea
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 44ada45d9bf2d9b48e5de1c3cb1a855902f3884b..5cf74fe0214191d42e74fc104eba150a95894e0f 100644 index 77a2458b8acb21c64676934cd8d6b05ef6351c10..ad8e79c72841ff80f8af3580d2cdb89c13f6d688 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 { @@ -73,6 +73,9 @@ public class ServerChunkCache extends ChunkSource {
@@ -1640,7 +1626,7 @@ index 44ada45d9bf2d9b48e5de1c3cb1a855902f3884b..5cf74fe0214191d42e74fc104eba150a
private static int getChunkCacheKey(int x, int z) { private static int getChunkCacheKey(int x, int z) {
return x & 3 | ((z & 3) << 2); return x & 3 | ((z & 3) << 2);
@@ -521,6 +524,7 @@ public class ServerChunkCache extends ChunkSource { @@ -528,6 +531,7 @@ public class ServerChunkCache extends ChunkSource {
// Paper - optimise chunk tick iteration // Paper - optimise chunk tick iteration
@@ -1648,7 +1634,7 @@ index 44ada45d9bf2d9b48e5de1c3cb1a855902f3884b..5cf74fe0214191d42e74fc104eba150a
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
@@ -529,6 +533,7 @@ public class ServerChunkCache extends ChunkSource { @@ -536,6 +540,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
@@ -1656,7 +1642,7 @@ index 44ada45d9bf2d9b48e5de1c3cb1a855902f3884b..5cf74fe0214191d42e74fc104eba150a
// 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
@@ -543,14 +548,18 @@ public class ServerChunkCache extends ChunkSource { @@ -550,14 +555,18 @@ public class ServerChunkCache extends ChunkSource {
} }
// Paper end - per player mob spawning backoff // Paper end - per player mob spawning backoff
} }
@@ -1670,7 +1656,7 @@ index 44ada45d9bf2d9b48e5de1c3cb1a855902f3884b..5cf74fe0214191d42e74fc104eba150a
+ _pufferfish_spawnCountsReady.set(true); + _pufferfish_spawnCountsReady.set(true);
+ // Pufferfish end + // Pufferfish end
} }
// Paper end // Paper end - Optional per player mob spawns
this.level.timings.countNaturalMobs.stopTiming(); // Paper - timings this.level.timings.countNaturalMobs.stopTiming(); // Paper - timings
- this.lastSpawnState = spawnercreature_d; - this.lastSpawnState = spawnercreature_d;
@@ -1678,7 +1664,7 @@ index 44ada45d9bf2d9b48e5de1c3cb1a855902f3884b..5cf74fe0214191d42e74fc104eba150a
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
@@ -640,8 +649,8 @@ public class ServerChunkCache extends ChunkSource { @@ -647,8 +656,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);
@@ -1689,7 +1675,7 @@ index 44ada45d9bf2d9b48e5de1c3cb1a855902f3884b..5cf74fe0214191d42e74fc104eba150a
} }
if (true || this.level.shouldTickBlocksAt(chunkcoordintpair.toLong())) { // Paper - optimise chunk tick iteration if (true || this.level.shouldTickBlocksAt(chunkcoordintpair.toLong())) { // Paper - optimise chunk tick iteration
@@ -688,6 +697,40 @@ public class ServerChunkCache extends ChunkSource { @@ -695,6 +704,40 @@ public class ServerChunkCache extends ChunkSource {
gameprofilerfiller.pop(); gameprofilerfiller.pop();
gameprofilerfiller.pop(); gameprofilerfiller.pop();
} }
@@ -1731,10 +1717,10 @@ index 44ada45d9bf2d9b48e5de1c3cb1a855902f3884b..5cf74fe0214191d42e74fc104eba150a
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 b6e5a2fa247bdee2f681739a26630dff3fc6c51a..e385a62058204ba3b01ce594e7c180f9cc6cf664 100644 index ae188ae314336d971303023c7b7b8ecf32bae253..79914528f6d255355284b04253218a7c4dec1ead 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
@@ -177,7 +177,8 @@ public class ServerEntity { @@ -183,7 +183,8 @@ public class ServerEntity {
long i1 = this.positionCodec.encodeZ(vec3d); long i1 = this.positionCodec.encodeZ(vec3d);
boolean flag6 = k < -32768L || k > 32767L || l < -32768L || l > 32767L || i1 < -32768L || i1 > 32767L; boolean flag6 = k < -32768L || k > 32767L || l < -32768L || l > 32767L || i1 < -32768L || i1 > 32767L;
@@ -1744,7 +1730,7 @@ index b6e5a2fa247bdee2f681739a26630dff3fc6c51a..e385a62058204ba3b01ce594e7c180f9
if ((!flag2 || !flag3) && !(this.entity instanceof AbstractArrow)) { if ((!flag2 || !flag3) && !(this.entity instanceof AbstractArrow)) {
if (flag2) { if (flag2) {
packet1 = new ClientboundMoveEntityPacket.Pos(this.entity.getId(), (short) ((int) k), (short) ((int) l), (short) ((int) i1), this.entity.onGround()); packet1 = new ClientboundMoveEntityPacket.Pos(this.entity.getId(), (short) ((int) k), (short) ((int) l), (short) ((int) i1), this.entity.onGround());
@@ -191,6 +192,7 @@ public class ServerEntity { @@ -197,6 +198,7 @@ public class ServerEntity {
flag4 = true; flag4 = true;
flag5 = true; flag5 = true;
} }
@@ -1753,10 +1739,10 @@ index b6e5a2fa247bdee2f681739a26630dff3fc6c51a..e385a62058204ba3b01ce594e7c180f9
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 e0dae41eb94da08649cba607975798dc2ac328ad..f7215d0a67e9e024af0c040c796ebcbb4f76e885 100644 index 7a327afc8c08dfb94e66595b015887c6d0018c37..e387de54c9786711272f0ec3f8d312e472a9c4ea 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
@@ -899,6 +899,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -894,6 +894,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
org.spigotmc.ActivationRange.activateEntities(this); // Spigot org.spigotmc.ActivationRange.activateEntities(this); // Spigot
this.timings.entityTick.startTiming(); // Spigot this.timings.entityTick.startTiming(); // Spigot
this.entityTickList.forEach((entity) -> { this.entityTickList.forEach((entity) -> {
@@ -1764,7 +1750,7 @@ index e0dae41eb94da08649cba607975798dc2ac328ad..f7215d0a67e9e024af0c040c796ebcbb
if (!entity.isRemoved()) { if (!entity.isRemoved()) {
if (false && this.shouldDiscardEntity(entity)) { // CraftBukkit - We prevent spawning in general, so this butchering is not needed if (false && this.shouldDiscardEntity(entity)) { // CraftBukkit - We prevent spawning in general, so this butchering is not needed
entity.discard(); entity.discard();
@@ -918,7 +919,20 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -913,7 +914,20 @@ public class ServerLevel extends Level implements WorldGenLevel {
} }
gameprofilerfiller.push("tick"); gameprofilerfiller.push("tick");
@@ -1786,7 +1772,7 @@ index e0dae41eb94da08649cba607975798dc2ac328ad..f7215d0a67e9e024af0c040c796ebcbb
gameprofilerfiller.pop(); gameprofilerfiller.pop();
} }
} }
@@ -983,9 +997,11 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -978,9 +992,11 @@ public class ServerLevel extends Level implements WorldGenLevel {
} }
// Paper start - optimise random block ticking // Paper start - optimise random block ticking
private final BlockPos.MutableBlockPos chunkTickMutablePosition = new BlockPos.MutableBlockPos(); private final BlockPos.MutableBlockPos chunkTickMutablePosition = new BlockPos.MutableBlockPos();
@@ -1799,7 +1785,7 @@ index e0dae41eb94da08649cba607975798dc2ac328ad..f7215d0a67e9e024af0c040c796ebcbb
public void tickChunk(LevelChunk chunk, int randomTickSpeed) { public void tickChunk(LevelChunk chunk, int randomTickSpeed) {
ChunkPos chunkcoordintpair = chunk.getPos(); ChunkPos chunkcoordintpair = chunk.getPos();
boolean flag = this.isRaining(); boolean flag = this.isRaining();
@@ -996,7 +1012,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -991,7 +1007,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
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
@@ -1808,64 +1794,18 @@ index e0dae41eb94da08649cba607975798dc2ac328ad..f7215d0a67e9e024af0c040c796ebcbb
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)) {
@@ -1491,7 +1507,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
try (co.aikar.timings.Timing ignored = this.timings.worldSave.startTiming()) {
if (doFull) {
- this.saveLevelData();
+ this.saveLevelData(true); // Pufferfish
}
this.timings.worldSaveChunks.startTiming(); // Paper
@@ -1527,7 +1543,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
progressListener.progressStartNoAbort(Component.translatable("menu.savingLevel"));
}
- this.saveLevelData();
+ this.saveLevelData(!close); // Pufferfish
if (progressListener != null) {
progressListener.progressStage(Component.translatable("menu.savingChunks"));
}
@@ -1550,12 +1566,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
// CraftBukkit end
}
- private void saveLevelData() {
+ private void saveLevelData(boolean async) { // Pufferfish
if (this.dragonFight != null) {
this.serverLevelData.setEndDragonFightData(this.dragonFight.saveData()); // CraftBukkit
}
- this.getChunkSource().getDataStorage().save();
+ this.getChunkSource().getDataStorage().save(async); // Pufferfish
}
public <T extends Entity> List<? extends T> getEntities(EntityTypeTest<Entity, T> filter, Predicate<? super T> predicate) {
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 8568de90c39838e1627f286c5c3ca4b0f19002cb..04b0eb391bb524dd7af14b862d89c0f2494a8206 100644 index 5234d3dcb60d84f65621713b57bea034038af2a5..b5917417aaed74555917772650fe51485281c2ec 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
@@ -1124,6 +1124,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1121,6 +1121,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@Override @Override
public void handleEditBook(ServerboundEditBookPacket packet) { public void handleEditBook(ServerboundEditBookPacket packet) {
+ if (!gg.pufferfish.pufferfish.PufferfishConfig.enableBooks && !this.player.getBukkitEntity().hasPermission("pufferfish.usebooks")) return; // Pufferfish + if (!gg.pufferfish.pufferfish.PufferfishConfig.enableBooks && !this.player.getBukkitEntity().hasPermission("pufferfish.usebooks")) return; // Pufferfish
// Paper start // Paper start - Book size limits
if (!this.cserver.isPrimaryThread()) { if (!this.cserver.isPrimaryThread()) {
List<String> pageList = packet.getPages(); List<String> pageList = packet.getPages();
diff --git a/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java b/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java
index f2a7cb6ebed7a4b4019a09af2a025f624f6fe9c9..47636aad5fa20d1c28d3520beb0729df9b30cf6c 100644
--- a/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java
+++ b/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java
@@ -224,7 +224,7 @@ public class WorldUpgrader {
}
}
- this.overworldDataStorage.save();
+ this.overworldDataStorage.save(false); // Pufferfish
i = Util.getMillis() - i;
WorldUpgrader.LOGGER.info("World optimizaton finished after {} ms", i);
this.finished = true;
diff --git a/src/main/java/net/minecraft/world/CompoundContainer.java b/src/main/java/net/minecraft/world/CompoundContainer.java diff --git a/src/main/java/net/minecraft/world/CompoundContainer.java b/src/main/java/net/minecraft/world/CompoundContainer.java
index 241fec02e6869c638d3a160819b32173a081467b..6a8f9e8f5bf108674c47018def28906e2d0a729c 100644 index 241fec02e6869c638d3a160819b32173a081467b..6a8f9e8f5bf108674c47018def28906e2d0a729c 100644
--- a/src/main/java/net/minecraft/world/CompoundContainer.java --- a/src/main/java/net/minecraft/world/CompoundContainer.java
@@ -1979,10 +1919,10 @@ 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 14fbaef2215f7de4acb5303ad6f677b348f855d8..a8d8d261daed2ebbbea3f4f356434942997ba541 100644 index 1a19f18b5d4c42ac07e7e4f305e140954dea481b..7a50a1fe485de232abb9d626e8001eee78a33b1b 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
@@ -309,7 +309,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -308,7 +308,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
public double yo; public double yo;
public double zo; public double zo;
private Vec3 position; private Vec3 position;
@@ -1991,7 +1931,7 @@ index 14fbaef2215f7de4acb5303ad6f677b348f855d8..a8d8d261daed2ebbbea3f4f356434942
private ChunkPos chunkPosition; private ChunkPos chunkPosition;
private Vec3 deltaMovement; private Vec3 deltaMovement;
private float yRot; private float yRot;
@@ -440,6 +440,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -439,6 +439,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return this.originWorld; return this.originWorld;
} }
// Paper end // Paper end
@@ -2004,7 +1944,7 @@ index 14fbaef2215f7de4acb5303ad6f677b348f855d8..a8d8d261daed2ebbbea3f4f356434942
public float getBukkitYaw() { public float getBukkitYaw() {
return this.yRot; return this.yRot;
} }
@@ -808,6 +814,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -807,6 +813,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
} }
public void tick() { public void tick() {
@@ -2017,7 +1957,7 @@ index 14fbaef2215f7de4acb5303ad6f677b348f855d8..a8d8d261daed2ebbbea3f4f356434942
this.baseTick(); this.baseTick();
} }
@@ -4410,16 +4422,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -4407,16 +4419,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) {
@@ -2043,7 +1983,7 @@ index 14fbaef2215f7de4acb5303ad6f677b348f855d8..a8d8d261daed2ebbbea3f4f356434942
double d1 = 0.0D; double d1 = 0.0D;
boolean flag = this.isPushedByFluid(); boolean flag = this.isPushedByFluid();
boolean flag1 = false; boolean flag1 = false;
@@ -4427,14 +4441,61 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -4424,14 +4438,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();
@@ -2111,7 +2051,7 @@ index 14fbaef2215f7de4acb5303ad6f677b348f855d8..a8d8d261daed2ebbbea3f4f356434942
if (d2 >= axisalignedbb.minY) { if (d2 >= axisalignedbb.minY) {
flag1 = true; flag1 = true;
@@ -4456,9 +4517,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -4453,9 +4514,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
// CraftBukkit end // CraftBukkit end
} }
} }
@@ -2125,7 +2065,7 @@ index 14fbaef2215f7de4acb5303ad6f677b348f855d8..a8d8d261daed2ebbbea3f4f356434942
if (vec3d.length() > 0.0D) { if (vec3d.length() > 0.0D) {
if (k1 > 0) { if (k1 > 0) {
diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java
index 081937597a8984b52a1e92d4c6032c04c942116e..0ffd377dba738bd651b0c7f5ca0a0d61aaa1d82c 100644 index e52f3da3b63cc3dba59d3e874a8420dd312b5e96..f772f7c4cd41ec52bea53d619b5b953971825df0 100644
--- a/src/main/java/net/minecraft/world/entity/EntityType.java --- a/src/main/java/net/minecraft/world/entity/EntityType.java
+++ b/src/main/java/net/minecraft/world/entity/EntityType.java +++ b/src/main/java/net/minecraft/world/entity/EntityType.java
@@ -305,6 +305,8 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT @@ -305,6 +305,8 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
@@ -2138,7 +2078,7 @@ index 081937597a8984b52a1e92d4c6032c04c942116e..0ffd377dba738bd651b0c7f5ca0a0d61
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 4cbb1f5d904191e59395df0177e76e94faae764c..9b7e786d5ae6bdeeb96df6e9c4d1b24e1e856e58 100644 index 5e2f6a1cdaf83468c0db6a2cc8fefb71e6ec51d8..370033cb058a20a83f80b8e2618e419bb3fd97cf 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;
@@ -2200,7 +2140,7 @@ index 4cbb1f5d904191e59395df0177e76e94faae764c..9b7e786d5ae6bdeeb96df6e9c4d1b24e
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 0b5334004b9d0489e8465824870662b467ce321b..2f3dc569ff9cdead48aa831c96c027cc7255d609 100644 index 3ebf777811cba0cc45cfae7587b277f06adeb045..4e3d48f6af493f2cded599f51ad5d2cd07e252f2 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 {
@@ -2244,7 +2184,7 @@ index 0b5334004b9d0489e8465824870662b467ce321b..2f3dc569ff9cdead48aa831c96c027cc
this.level().getProfiler().pop(); this.level().getProfiler().pop();
} }
diff --git a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java diff --git a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java
index 7204b973c3ad9239e82355513f6d538107102e48..3087f8359b098682a345399c85395de8a15b6eed 100644 index 897d7632ecfea40890433474870dd7a5e534d8ab..683c9693754d1a87b7e8fccc757a0d0963351f60 100644
--- a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java --- a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java
+++ b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java +++ b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java
@@ -23,9 +23,11 @@ public class AttributeMap { @@ -23,9 +23,11 @@ public class AttributeMap {
@@ -2310,19 +2250,19 @@ index b738ee2d3801fadfd09313f05ae24593e56b0ec6..1635818fc4b1788c0d397085239df6dd
public boolean hasTasks() { public boolean hasTasks() {
for (WrappedGoal task : this.availableGoals) { for (WrappedGoal task : this.availableGoals) {
diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java
index 4bbc36404b396500df0d9db380cf223b5897662e..382e9d18b81bcbeb20cb3b828b66260f07a845e6 100644 index 07519c817cc6de04a98198c43a0c2b02ba3141eb..ee66be6e5aa45ec8448b6d30785a6e71200b09e3 100644
--- a/src/main/java/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java --- a/src/main/java/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java
+++ b/src/main/java/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java +++ b/src/main/java/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java
@@ -119,6 +119,7 @@ public abstract class MoveToBlockGoal extends Goal { @@ -120,6 +120,7 @@ public abstract class MoveToBlockGoal extends Goal {
for(int m = 0; m <= l; m = m > 0 ? -m : 1 - m) { for(int m = 0; m <= l; m = m > 0 ? -m : 1 - m) {
for(int n = m < l && m > -l ? l : 0; n <= l; n = n > 0 ? -n : 1 - n) { for(int n = m < l && m > -l ? l : 0; n <= l; n = n > 0 ? -n : 1 - n) {
mutableBlockPos.setWithOffset(blockPos, m, k - 1, n); mutableBlockPos.setWithOffset(blockPos, m, k - 1, n);
+ if (!this.mob.level().hasChunkAt(mutableBlockPos)) continue; // Pufferfish - if this block isn't loaded, continue + if (!this.mob.level().hasChunkAt(mutableBlockPos)) continue; // Pufferfish - if this block isn't loaded, continue
if (this.mob.isWithinRestriction(mutableBlockPos) && this.isValidTarget(this.mob.level(), mutableBlockPos)) { if (this.mob.isWithinRestriction(mutableBlockPos) && this.isValidTarget(this.mob.level(), mutableBlockPos)) {
this.blockPos = mutableBlockPos; this.blockPos = mutableBlockPos;
setTargetPosition(mutableBlockPos.immutable()); // Paper this.mob.movingTarget = mutableBlockPos == BlockPos.ZERO ? null : mutableBlockPos.immutable(); // Paper
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 c157309ac78e7af084d3acb6e8b2bcd469a39d5e..ac5e5676b194a2a99e5cf53eb89c1152cac963b8 100644 index c8a80c1b2fedff22e8a877d466062375ffb2f0d7..3c4f4af85a3f2d4f9f52827164e63727b916c33a 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
+++ b/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java +++ b/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java
@@ -75,9 +75,18 @@ public class TargetingConditions { @@ -75,9 +75,18 @@ public class TargetingConditions {
@@ -2330,7 +2270,7 @@ index c157309ac78e7af084d3acb6e8b2bcd469a39d5e..ac5e5676b194a2a99e5cf53eb89c1152
if (this.range > 0.0D) { if (this.range > 0.0D) {
- double d = this.testInvisible ? targetEntity.getVisibilityPercent(baseEntity) : 1.0D; - double d = this.testInvisible ? targetEntity.getVisibilityPercent(baseEntity) : 1.0D;
- double e = Math.max((this.useFollowRange ? this.getFollowRange(baseEntity) : this.range) * d, 2.0D); // Paper - double e = Math.max((this.useFollowRange ? this.getFollowRange(baseEntity) : this.range) * d, 2.0D); // Paper - Fix MC-145656
+ // Pufferfish start - check range before getting visibility + // Pufferfish start - check range before getting visibility
+ // d = invisibility percent, e = follow range adjusted for invisibility, f = distance + // d = invisibility percent, e = follow range adjusted for invisibility, f = distance
double f = baseEntity.distanceToSqr(targetEntity.getX(), targetEntity.getY(), targetEntity.getZ()); double f = baseEntity.distanceToSqr(targetEntity.getX(), targetEntity.getY(), targetEntity.getZ());
@@ -2347,7 +2287,7 @@ index c157309ac78e7af084d3acb6e8b2bcd469a39d5e..ac5e5676b194a2a99e5cf53eb89c1152
return false; return false;
} }
diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
index 6b614818b14ecfc8fc82b523eeb7e21fdf9bf1ba..8820905ac733a8915cc1697259b2bef14d97e471 100644 index 44fa2d4f90389f5526746bd94a2450c03340bd0b..4fba7c2f6ec363846a772ef2a63e9b3fc1037de5 100644
--- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java --- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java
+++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java +++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
@@ -241,13 +241,22 @@ public class Bat extends AmbientCreature { @@ -241,13 +241,22 @@ public class Bat extends AmbientCreature {
@@ -2391,7 +2331,7 @@ index 5ad5f22e5aa26445e5eb229958e7bf356bdd460e..d241ca4d0295f9fce39c11197bd435cf
this.level().getProfiler().pop(); this.level().getProfiler().pop();
this.level().getProfiler().push("allayActivityUpdate"); this.level().getProfiler().push("allayActivityUpdate");
diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
index 387006271c246362b0df1bfcadca7b7096660003..9158c5a507904c46a8fe2fdad9a0b6ba3a9b2460 100644 index b21e180641d17438997a80e5bcb0ec7998d24a2e..33c160994f70f71446d665e7487913437c9f9db4 100644
--- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java --- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
+++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java +++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
@@ -275,9 +275,11 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo @@ -275,9 +275,11 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
@@ -2439,7 +2379,7 @@ index 4aeab90e778629c355189dfe79c39c4b21f5f5ac..6ed4ac06c76b8d0d6e8db778cade15db
this.level().getProfiler().pop(); this.level().getProfiler().pop();
this.level().getProfiler().push("tadpoleActivityUpdate"); this.level().getProfiler().push("tadpoleActivityUpdate");
diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
index 111a244087e24f25ba8524a46a228da10cd9498a..ff12ba2b79cb2e7e0bfd0e3b58ff6cb9e770092b 100644 index 5d247ac38fe8a61603b3d934f3000bcda773142b..2e4177cfb02616ef6fa689f6d378976e39484cfb 100644
--- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java --- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
+++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java +++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
@@ -191,9 +191,11 @@ public class Goat extends Animal { @@ -191,9 +191,11 @@ public class Goat extends Animal {
@@ -2455,7 +2395,7 @@ index 111a244087e24f25ba8524a46a228da10cd9498a..ff12ba2b79cb2e7e0bfd0e3b58ff6cb9
this.level().getProfiler().pop(); this.level().getProfiler().pop();
this.level().getProfiler().push("goatActivityUpdate"); this.level().getProfiler().push("goatActivityUpdate");
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
index 68ecf0203e23cb6360d05bec18d9c1c413d84650..1f7f6e5995c00725bf66723c75620ec416e24f87 100644 index ac9eaeaf7df1e84ee588f371628c0a10784d50bc..ea8883b0661e894a466eca24bfc247ac37f40a81 100644
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -150,6 +150,13 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -150,6 +150,13 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -2473,7 +2413,7 @@ index 68ecf0203e23cb6360d05bec18d9c1c413d84650..1f7f6e5995c00725bf66723c75620ec4
protected SoundEvent getAmbientSound() { protected SoundEvent getAmbientSound() {
return SoundEvents.WITHER_AMBIENT; return SoundEvents.WITHER_AMBIENT;
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
index 30627f330536b5c89b52452981f0a960b61e4268..ebbd0031da656c4b12debbf76a347da2865d50d1 100644 index fed8a2519f6b20466f1986702baec2c0f7078dfe..ad46881a5cba388e6ceb4e0134aa377e28d5f267 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -333,11 +333,17 @@ public class EnderMan extends Monster implements NeutralMob { @@ -333,11 +333,17 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -2497,7 +2437,7 @@ index 30627f330536b5c89b52452981f0a960b61e4268..ebbd0031da656c4b12debbf76a347da2
boolean flag1 = iblockdata.getFluidState().is(FluidTags.WATER); boolean flag1 = iblockdata.getFluidState().is(FluidTags.WATER);
diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
index 4257f2282152aee09533c9a2e53018d3e49effa4..e703320717ff620a19ff76d1c10066117c9895d5 100644 index 01a2016ac82807d28ffe407b7dbb74bdbcde503e..9921b160fb21f72fbd28fe81ea66fbc3dc05f83f 100644
--- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java --- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -128,9 +128,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { @@ -128,9 +128,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
@@ -2513,7 +2453,7 @@ index 4257f2282152aee09533c9a2e53018d3e49effa4..e703320717ff620a19ff76d1c1006611
this.level().getProfiler().pop(); this.level().getProfiler().pop();
HoglinAi.updateActivity(this); HoglinAi.updateActivity(this);
diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
index 6407ddef8442fce4f310ac4babf3e3de0dd5fc9a..cfdc1650783d6855e0d4f33ec68aab48dbee09f0 100644 index a9813da7f2b248f98f22e0ad2e7842915025ec12..83d83e3f84bb6bd58761671c6cd4c8683545ff4c 100644
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java --- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
@@ -300,9 +300,11 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @@ -300,9 +300,11 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
@@ -2529,7 +2469,7 @@ index 6407ddef8442fce4f310ac4babf3e3de0dd5fc9a..cfdc1650783d6855e0d4f33ec68aab48
this.level().getProfiler().pop(); this.level().getProfiler().pop();
PiglinAi.updateActivity(this); PiglinAi.updateActivity(this);
diff --git a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java diff --git a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
index 9f1b7c629644931074293151ed58a523ca6d488c..58a7e61e02b7d72326ed4d57ee514adb63b3873c 100644 index 937f81a859953498abe73bea560c86e6560e1c33..0a151c679b0dc943598180942d6d4b3886211688 100644
--- a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java --- a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
+++ b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java +++ b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
@@ -273,11 +273,13 @@ public class Warden extends Monster implements VibrationSystem { @@ -273,11 +273,13 @@ public class Warden extends Monster implements VibrationSystem {
@@ -2547,7 +2487,7 @@ index 9f1b7c629644931074293151ed58a523ca6d488c..58a7e61e02b7d72326ed4d57ee514adb
this.level().getProfiler().pop(); this.level().getProfiler().pop();
super.customServerAiStep(); super.customServerAiStep();
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
index e12f1f11386fa723f62b51ed0cc5715c1812d2bf..1e6d61673b0e3252129c04edcfa1d7d436e8ecbe 100644 index 5c2010fb247462433bed6ae58d88a72c4e137ede..a1769d423141e2a27d7d5ac7f2b7d36c600f1b2d 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -142,6 +142,8 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -142,6 +142,8 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -2613,7 +2553,7 @@ index 309acf7bd07e38043aa81e0e686edba1136bd04c..deabb3400ee2406a8ec179a96d8cfd86
return false; return false;
} }
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
index 5b6d5c799cc8e601a01b6967917e15ba1e2db721..f0a6251cc8f612b898231e505c47fd5b2bbb4973 100644 index d6c0488618cedfa6fe47375daca4c38a8f49ccbc..2d09d39a5971615a40b33baa0991c3e432f3ca18 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java --- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java +++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
@@ -45,6 +45,36 @@ public abstract class Projectile extends Entity implements TraceableEntity { @@ -45,6 +45,36 @@ public abstract class Projectile extends Entity implements TraceableEntity {
@@ -2761,11 +2701,11 @@ 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 b05e11e6b091c7616df5a9bbef867b06cafe3dc3..2902c29cd7f0b99b84cff3664fc4ec15a383e41b 100644 index 1feca8c844c74b8f64d1a1034ae06bfd7a9c0ab2..4f568184557d21b44569a9a16456962ee983101b 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
@@ -212,6 +212,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -211,6 +211,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
// Paper end // Paper end - Use getChunkIfLoadedImmediately
public abstract ResourceKey<LevelStem> getTypeKey(); public abstract ResourceKey<LevelStem> getTypeKey();
+ +
@@ -2773,7 +2713,7 @@ index b05e11e6b091c7616df5a9bbef867b06cafe3dc3..2902c29cd7f0b99b84cff3664fc4ec15
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
@@ -1318,13 +1320,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);
MinecraftServer.getServer().executeMidTickTasks(); // Paper - execute chunk tasks mid tick MinecraftServer.getServer().executeMidTickTasks(); // Paper - execute chunk tasks mid tick
@@ -2789,7 +2729,7 @@ index b05e11e6b091c7616df5a9bbef867b06cafe3dc3..2902c29cd7f0b99b84cff3664fc4ec15
// Paper end // Paper end
} }
} }
@@ -1798,6 +1800,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -1797,6 +1799,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
} }
public ProfilerFiller getProfiler() { public ProfilerFiller getProfiler() {
@@ -2798,7 +2738,7 @@ index b05e11e6b091c7616df5a9bbef867b06cafe3dc3..2902c29cd7f0b99b84cff3664fc4ec15
} }
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 dc211c6aedc178ac50b7d05aab3662c422211cbd..3fb96de68b93e8d33bd5ab9137e5d4facc94d788 100644 index ba67c55cde0120786e6705fed96fab4b611c1c75..2c300e3769acf534ee3bed91663374eca0acf5df 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 {
@@ -2868,7 +2808,7 @@ index 4f9187d9d640618c40a2fa528f36b845017b4777..efca73d4de33028cf9df944f36e51b7b
} }
} }
diff --git a/src/main/java/net/minecraft/world/level/block/entity/ChestBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/ChestBlockEntity.java diff --git a/src/main/java/net/minecraft/world/level/block/entity/ChestBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/ChestBlockEntity.java
index a71414397bd45ee7bcacfeef0041d80dfa25f114..d66806565770cb03a21794f99e5c4b0f3040b26a 100644 index 9b1243d96e0694c62fc9e82e9be540bce0d2b3ad..3514022d898a24052c917ebf55dcef3e757d6836 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/ChestBlockEntity.java --- a/src/main/java/net/minecraft/world/level/block/entity/ChestBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/ChestBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/ChestBlockEntity.java
@@ -31,7 +31,10 @@ import org.bukkit.entity.HumanEntity; @@ -31,7 +31,10 @@ import org.bukkit.entity.HumanEntity;
@@ -2946,7 +2886,7 @@ index a71414397bd45ee7bcacfeef0041d80dfa25f114..d66806565770cb03a21794f99e5c4b0f
@Override @Override
diff --git a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java diff --git a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java
index df1c1c27b7c0065f8179d59bdb9de01dde22befa..1ddae39df4e7cb36db412ebdec8ca9d2818450a9 100644 index a61d7cd2b078fe511ff00344197b6ea11feebfb2..7041394d366e6145369d032a0a14f0478af4679f 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java --- a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java
@@ -47,7 +47,10 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen @@ -47,7 +47,10 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
@@ -3060,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 27e8ee4507460b1cc72de692b41562b9f4f13929..1afac69b5bc7055d2adb07aea4755b87b246275c 100644 index d85ed706703e50f76df8db414827ccd41a5985d9..177673cc19cd70f60bb489cb2e74b39fbb8f8d24 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 {
@@ -3092,7 +3032,7 @@ index 27e8ee4507460b1cc72de692b41562b9f4f13929..1afac69b5bc7055d2adb07aea4755b87
// 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 9da74764a91bea7822c0444b48623b23e038d3f2..37228dc74463dddcc55301489c41aa253017f2d4 100644 index 1a473187c22c4158959a3aae33a6823229c5b7a7..1df090afcbf5ac43cd03c61b154b7902eb2f3bc1 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 {
@@ -3141,7 +3081,7 @@ index 4cdfc433df67afcd455422e9baf56f167dd712ae..57fcf3910f45ce371ac2e237b277b103
private void ensureActiveIsNotIterated() { private void ensureActiveIsNotIterated() {
// Paper - replace with better logic, do not delay removals // Paper - replace with better logic, do not delay removals
diff --git a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java diff --git a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java
index e21f4c5aff3a8e97101f6efc1349fbecf326b5ea..c55f51e6db55f9fa66f53eef0e7a56af5f81d742 100644 index 6d8ff6c06af5545634f255ed17dc1e489ece2548..6411aa4ff6bd4cabb25c426fa8f4a7eedb969c03 100644
--- a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java --- a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java
+++ b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java +++ b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java
@@ -45,6 +45,8 @@ public abstract class FlowingFluid extends Fluid { @@ -45,6 +45,8 @@ public abstract class FlowingFluid extends Fluid {
@@ -3168,7 +3108,7 @@ index e21f4c5aff3a8e97101f6efc1349fbecf326b5ea..c55f51e6db55f9fa66f53eef0e7a56af
private final Map<FluidState, VoxelShape> shapes = Maps.newIdentityHashMap(); private final Map<FluidState, VoxelShape> shapes = Maps.newIdentityHashMap();
public FlowingFluid() {} public FlowingFluid() {}
@@ -252,6 +262,8 @@ public abstract class FlowingFluid extends Fluid { @@ -251,6 +261,8 @@ public abstract class FlowingFluid extends Fluid {
return false; return false;
} }
// Paper end - optimise collisions // Paper end - optimise collisions
@@ -3177,7 +3117,7 @@ index e21f4c5aff3a8e97101f6efc1349fbecf326b5ea..c55f51e6db55f9fa66f53eef0e7a56af
Object2ByteLinkedOpenHashMap object2bytelinkedopenhashmap; Object2ByteLinkedOpenHashMap object2bytelinkedopenhashmap;
if (!state.getBlock().hasDynamicShape() && !fromState.getBlock().hasDynamicShape()) { if (!state.getBlock().hasDynamicShape() && !fromState.getBlock().hasDynamicShape()) {
@@ -259,9 +271,16 @@ public abstract class FlowingFluid extends Fluid { @@ -258,9 +270,16 @@ public abstract class FlowingFluid extends Fluid {
} else { } else {
object2bytelinkedopenhashmap = null; object2bytelinkedopenhashmap = null;
} }
@@ -3194,7 +3134,7 @@ index e21f4c5aff3a8e97101f6efc1349fbecf326b5ea..c55f51e6db55f9fa66f53eef0e7a56af
if (object2bytelinkedopenhashmap != null) { if (object2bytelinkedopenhashmap != null) {
block_a = new Block.BlockStatePairKey(state, fromState, face); block_a = new Block.BlockStatePairKey(state, fromState, face);
byte b0 = object2bytelinkedopenhashmap.getAndMoveToFirst(block_a); byte b0 = object2bytelinkedopenhashmap.getAndMoveToFirst(block_a);
@@ -272,11 +291,22 @@ public abstract class FlowingFluid extends Fluid { @@ -271,11 +290,22 @@ public abstract class FlowingFluid extends Fluid {
} else { } else {
block_a = null; block_a = null;
} }
@@ -3217,7 +3157,7 @@ index e21f4c5aff3a8e97101f6efc1349fbecf326b5ea..c55f51e6db55f9fa66f53eef0e7a56af
if (object2bytelinkedopenhashmap != null) { if (object2bytelinkedopenhashmap != null) {
if (object2bytelinkedopenhashmap.size() == 200) { if (object2bytelinkedopenhashmap.size() == 200) {
object2bytelinkedopenhashmap.removeLastByte(); object2bytelinkedopenhashmap.removeLastByte();
@@ -284,6 +314,11 @@ public abstract class FlowingFluid extends Fluid { @@ -283,6 +313,11 @@ public abstract class FlowingFluid extends Fluid {
object2bytelinkedopenhashmap.putAndMoveToFirst(block_a, (byte) (flag ? 1 : 0)); object2bytelinkedopenhashmap.putAndMoveToFirst(block_a, (byte) (flag ? 1 : 0));
} }
@@ -3229,57 +3169,6 @@ index e21f4c5aff3a8e97101f6efc1349fbecf326b5ea..c55f51e6db55f9fa66f53eef0e7a56af
return flag; return flag;
} }
diff --git a/src/main/java/net/minecraft/world/level/saveddata/SavedData.java b/src/main/java/net/minecraft/world/level/saveddata/SavedData.java
index 697df9a9f050c0130246ce2b08a859965bddf184..6df6a6bd89979bcd728e2f5bec948437d6ff9498 100644
--- a/src/main/java/net/minecraft/world/level/saveddata/SavedData.java
+++ b/src/main/java/net/minecraft/world/level/saveddata/SavedData.java
@@ -29,17 +29,28 @@ public abstract class SavedData {
return this.dirty;
}
- public void save(File file) {
+ public void save(File file) { save(file, false); } // Pufferfish
+ public void save(File file, boolean async) { // Pufferfish
if (this.isDirty()) {
CompoundTag compoundTag = new CompoundTag();
compoundTag.put("data", this.save(new CompoundTag()));
NbtUtils.addCurrentDataVersion(compoundTag);
+ // Pufferfish start
+ Runnable writeRunnable = () -> {
try {
NbtIo.writeCompressed(compoundTag, file.toPath());
} catch (IOException var4) {
LOGGER.error("Could not save data {}", this, var4);
}
+ };
+
+ if (gg.pufferfish.pufferfish.PufferfishConfig.enableAsyncWorldSaving && async) {
+ net.minecraft.Util.ioPool().execute(writeRunnable);
+ } else {
+ writeRunnable.run();
+ }
+ // Pufferfish end
this.setDirty(false);
}
diff --git a/src/main/java/net/minecraft/world/level/storage/DimensionDataStorage.java b/src/main/java/net/minecraft/world/level/storage/DimensionDataStorage.java
index d051e8c1db6b5c42b8df0be54d9d48ba0e7b0077..6488a61bb05b0f2af23c77bc6df7c3014042ec5e 100644
--- a/src/main/java/net/minecraft/world/level/storage/DimensionDataStorage.java
+++ b/src/main/java/net/minecraft/world/level/storage/DimensionDataStorage.java
@@ -118,10 +118,10 @@ public class DimensionDataStorage {
return bl;
}
- public void save() {
+ public void save(boolean async) { // Pufferfish
this.cache.forEach((id, state) -> {
if (state != null) {
- state.save(this.getDataFile(id));
+ state.save(this.getDataFile(id), async); // Pufferfish
}
});
diff --git a/src/main/java/net/minecraft/world/level/storage/loot/LootParams.java b/src/main/java/net/minecraft/world/level/storage/loot/LootParams.java diff --git a/src/main/java/net/minecraft/world/level/storage/loot/LootParams.java b/src/main/java/net/minecraft/world/level/storage/loot/LootParams.java
index e43d07ccdd36f0c9f5b8e9c74cf0d87e17eec66a..8e441f7c2b2d911a0c0111aaa231fc6adae08730 100644 index e43d07ccdd36f0c9f5b8e9c74cf0d87e17eec66a..8e441f7c2b2d911a0c0111aaa231fc6adae08730 100644
--- a/src/main/java/net/minecraft/world/level/storage/loot/LootParams.java --- a/src/main/java/net/minecraft/world/level/storage/loot/LootParams.java
@@ -3384,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 9ef8f911632598fd589368cedde268c8abcad3b6..cfc41926305441cb36ed67a8cb7e327cd80ff301 100644 index d5e473d621ba09f6cf84ba9ca0e870f5ff6e02f3..8962ced18e0dac6603df54ba7d99588fae24073c 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
@@ -3407,7 +3296,7 @@ index 9ef8f911632598fd589368cedde268c8abcad3b6..cfc41926305441cb36ed67a8cb7e327c
+ } + }
} }
} }
// Paper end // Paper end - Wait for Async Tasks during shutdown
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftShapelessRecipe.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftShapelessRecipe.java diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftShapelessRecipe.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftShapelessRecipe.java
index 96d772eb02f79f8c478f5e6f065e387aa7665b18..c5ce412f321b8b4f31cc042893659e213b081f29 100644 index 96d772eb02f79f8c478f5e6f065e387aa7665b18..c5ce412f321b8b4f31cc042893659e213b081f29 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftShapelessRecipe.java --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftShapelessRecipe.java
@@ -3421,7 +3310,7 @@ index 96d772eb02f79f8c478f5e6f065e387aa7665b18..c5ce412f321b8b4f31cc042893659e21
} }
} }
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 ec2396f0e5d62b10450eaa7239a8c5479638b3c3..c909efd2060dc95bd3ecb8c9fec36a1e69a642ff 100644 index 509f8487a170f3dc84b091acf16df26e42391189..2338ba106c19c3e61d1a2088cc51d0744432666d 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 {
@@ -3447,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 2d31752478636bd21bbff5b430e5acb76b5d91c2..651063863b451d24ffe39f0a4d8db296e58ff585 100644 index fafc8b84d6b6368c70b8eedfdb4c3a9deace9c26..a69814d3a6214af734d670fe5545518a5f8a8dc5 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;
@@ -3463,7 +3352,7 @@ index 2d31752478636bd21bbff5b430e5acb76b5d91c2..651063863b451d24ffe39f0a4d8db296
{ {
@@ -222,6 +226,25 @@ public class ActivationRange @@ -222,6 +226,25 @@ public class ActivationRange
} }
// Paper end - configurable marker ticking // Paper end - Configurable marker ticking
ActivationRange.activateEntity(entity); ActivationRange.activateEntity(entity);
+ +
+ // Pufferfish start + // Pufferfish start

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Fix pufferfish issues
diff --git a/build.gradle.kts b/build.gradle.kts diff --git a/build.gradle.kts b/build.gradle.kts
index 4bdf291e2e2d96ea7385ae667983f1731baa176a..5b8a28969451b12c4fc66976afd052ffa5805932 100644 index f253b340d75302fda8e59a2ad113f652c2417869..0c92d10f334f82d196e065c0811d0c1f48887377 100644
--- a/build.gradle.kts --- a/build.gradle.kts
+++ b/build.gradle.kts +++ b/build.gradle.kts
@@ -232,5 +232,7 @@ val runtimeClasspathForRunDev = sourceSets.main.flatMap { src -> @@ -232,5 +232,7 @@ val runtimeClasspathForRunDev = sourceSets.main.flatMap { src ->
@@ -18,10 +18,10 @@ index 4bdf291e2e2d96ea7385ae667983f1731baa176a..5b8a28969451b12c4fc66976afd052ff
+ jvmArgs("-DPaper.isRunDev=true") + jvmArgs("-DPaper.isRunDev=true")
} }
diff --git a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java diff --git a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java
index 61f21c0bf6658326a15b735c22001b4028b98800..51ec029e33f8bdb1710ad36f014fa769da2db41c 100644 index ad368b58005b6b0453b709c2ef0ea23bca53d34a..2dac1ec1daf4084f33ead33d5128d2955da23ee2 100644
--- a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java --- a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java
+++ b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java +++ b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java
@@ -246,7 +246,7 @@ public class PufferfishConfig { @@ -232,7 +232,7 @@ public class PufferfishConfig {
public static int activationDistanceMod; public static int activationDistanceMod;
private static void dynamicActivationOfBrains() throws IOException { private static void dynamicActivationOfBrains() throws IOException {
@@ -30,7 +30,7 @@ index 61f21c0bf6658326a15b735c22001b4028b98800..51ec029e33f8bdb1710ad36f014fa769
startDistance = getInt("dab.start-distance", "activation-range.start-distance", 12, startDistance = getInt("dab.start-distance", "activation-range.start-distance", 12,
"This value determines how far away an entity has to be", "This value determines how far away an entity has to be",
"from the player to start being effected by DEAR."); "from the player to start being effected by DEAR.");
@@ -290,7 +290,7 @@ public class PufferfishConfig { @@ -276,7 +276,7 @@ public class PufferfishConfig {
public static boolean throttleInactiveGoalSelectorTick; public static boolean throttleInactiveGoalSelectorTick;
private static void inactiveGoalSelectorThrottle() { private static void inactiveGoalSelectorThrottle() {
@@ -40,10 +40,10 @@ index 61f21c0bf6658326a15b735c22001b4028b98800..51ec029e33f8bdb1710ad36f014fa769
"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 c80dc73d7fd7d6cf3b87d1626129273e944d6649..916fa1ecef7a73b494d14c21c4db407d9d8316d7 100644 index e387de54c9786711272f0ec3f8d312e472a9c4ea..e0f1f23bcf4f59cffa98ea1c70f774fd787dae08 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
@@ -997,7 +997,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -992,7 +992,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
} }
// Paper start - optimise random block ticking // Paper start - optimise random block ticking
private final BlockPos.MutableBlockPos chunkTickMutablePosition = new BlockPos.MutableBlockPos(); private final BlockPos.MutableBlockPos chunkTickMutablePosition = new BlockPos.MutableBlockPos();
@@ -53,11 +53,11 @@ index c80dc73d7fd7d6cf3b87d1626129273e944d6649..916fa1ecef7a73b494d14c21c4db407d
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 3bf4aa21e2ad602bf9d85d3fcd4f43e0357ef221..43729a9f1282999d5cfcffdc70aac9e8cc76c916 100644 index 4f568184557d21b44569a9a16456962ee983101b..aa6c3df047e97bde3c352caae7eb3c09e2f45978 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
@@ -212,8 +212,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -211,8 +211,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
// Paper end // Paper end - Use getChunkIfLoadedImmediately
public abstract ResourceKey<LevelStem> getTypeKey(); public abstract ResourceKey<LevelStem> getTypeKey();
- -
@@ -68,7 +68,7 @@ index 3bf4aa21e2ad602bf9d85d3fcd4f43e0357ef221..43729a9f1282999d5cfcffdc70aac9e8
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 1afac69b5bc7055d2adb07aea4755b87b246275c..76a4708464d35dd7782b1032288b52d61ee8fffc 100644 index 177673cc19cd70f60bb489cb2e74b39fbb8f8d24..c3fb622845770bcee9ddd6ebbeee174b06ee16eb 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 ec4152f7372ddad216039a489fb5d72f963b4f18..ca926baddf27536252a442bb23d0e34ac9fc08c0 100644 index 623403c56d79e29421f340e97c05488efaf1893d..d7333193b20fc6d9a4aaa0ef00a2a66655250081 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
@@ -72,11 +72,11 @@ index ec4152f7372ddad216039a489fb5d72f963b4f18..ca926baddf27536252a442bb23d0e34a
boolean flag1 = this.source.acceptsSuccess() && !this.silent; boolean flag1 = this.source.acceptsSuccess() && !this.silent;
boolean flag2 = broadcastToOps && this.source.shouldInformAdmins() && !this.silent; boolean flag2 = broadcastToOps && this.source.shouldInformAdmins() && !this.silent;
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 80e1dcef1eeb33f553c7d771a00d463e99e3f147..b00a8c2bad92ec63e97cfa9ae7624ad89d1f9268 100644 index c5f92c80d7ca1e1c7f5b9304a5a1173ebfd9c269..1fbfe61b3d7fc372f044d2e9f3500d6665209973 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -219,6 +219,15 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -219,6 +219,15 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
thread.start(); // Paper - start console thread after MinecraftServer.console & PaperConfig are initialized thread.start(); // Paper - Enhance console tab completions for brigadier commands; start console thread after MinecraftServer.console & PaperConfig are initialized
io.papermc.paper.command.PaperCommands.registerCommands(this); // Paper - setup /paper command io.papermc.paper.command.PaperCommands.registerCommands(this); // Paper - setup /paper command
com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); // Paper - start metrics com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); // Paper - start metrics
+ // Purpur start + // Purpur start
@@ -92,10 +92,10 @@ index 80e1dcef1eeb33f553c7d771a00d463e99e3f147..b00a8c2bad92ec63e97cfa9ae7624ad8
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 43729a9f1282999d5cfcffdc70aac9e8cc76c916..f528e4df3299d76d1ecc846721f34ae32c70c383 100644 index aa6c3df047e97bde3c352caae7eb3c09e2f45978..5b5ac2d194cb9377f5ea3441505aefd3f7dbce8b 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
@@ -179,6 +179,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -178,6 +178,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
// Paper end - add paper world config // Paper end - add paper world config
public final com.destroystokyo.paper.antixray.ChunkPacketBlockController chunkPacketBlockController; // Paper - Anti-Xray public final com.destroystokyo.paper.antixray.ChunkPacketBlockController chunkPacketBlockController; // Paper - Anti-Xray
@@ -103,7 +103,7 @@ index 43729a9f1282999d5cfcffdc70aac9e8cc76c916..f528e4df3299d76d1ecc846721f34ae3
public final co.aikar.timings.WorldTimingsHandler timings; // Paper public final co.aikar.timings.WorldTimingsHandler timings; // Paper
public static BlockPos lastPhysicsProblem; // Spigot public static BlockPos lastPhysicsProblem; // Spigot
private org.spigotmc.TickLimiter entityLimiter; private org.spigotmc.TickLimiter entityLimiter;
@@ -218,6 +219,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -217,6 +218,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
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 this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config
@@ -112,7 +112,7 @@ index 43729a9f1282999d5cfcffdc70aac9e8cc76c916..f528e4df3299d76d1ecc846721f34ae3
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 63a27079bae650672c027443ff4dc8d4e21a4d06..d1776bb7309b6e35115ab39e31d4bf4b96e5e28b 100644 index 0d37bde27beaa2d6730bb9f82d4b686f6f60e40b..5248e951e1307c2e019db276dcc80d9d41693fb0 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 {
@@ -159,7 +159,7 @@ index 63a27079bae650672c027443ff4dc8d4e21a4d06..d1776bb7309b6e35115ab39e31d4bf4b
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 ef8bbef6e4143b9432ee2ae2fb79e2aa2a9b84df..537fb93e1207d659d9d5375bf53981708393486a 100644 index 62d9737a8d36d4863ffd7853ba290ef83c759687..bc001869b10fa497d3473f7e45a2a7120e61f87e 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,19 +5,19 @@ 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 be05a52be037042c6158100e2ce880b8ed415d53..95240bee8f76fd651166ecabe80885ac6601c34e 100644 index 38df47d282713522b3c5784a562ff09e3151fb27..0b90e6810ec549471fad70406f2f054897c1eb24 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 {
public com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper public com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper
public @Nullable String clientBrandName = null; // Paper - Brand name public @Nullable String clientBrandName = null; // Paper - Brand support
public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - there are a lot of changes to do if we change all methods leading to the event public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - Add API for quit reason; there are a lot of changes to do if we change all methods leading to the event
+ public boolean purpurClient = false; // Purpur + public boolean purpurClient = false; // Purpur
// Paper start - replace player chunk loader // Paper start - replace player chunk loader
private final java.util.concurrent.atomic.AtomicReference<io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances> viewDistances = new java.util.concurrent.atomic.AtomicReference<>(new io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances(-1, -1, -1)); private final java.util.concurrent.atomic.AtomicReference<io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances> viewDistances = new java.util.concurrent.atomic.AtomicReference<>(new io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances(-1, -1, -1));
diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
index d28d0ef6105ddeb562ddf31ae9088739856941fc..49aaa5147b9b904fa912c1811dc66d47d2e8dada 100644 index f5f2d65d2e02b0d79352585d9d4ef588ab59dce7..fda3c2c006ffdf8743097da05e75ecc6c7d3893d 100644
--- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
@@ -56,6 +56,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack @@ -56,6 +56,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@@ -43,7 +43,7 @@ index d28d0ef6105ddeb562ddf31ae9088739856941fc..49aaa5147b9b904fa912c1811dc66d47
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 da63b4050be25dcb91d04df8c2fcc643cbb0751d..96e4f1c21e13bc673ff83279ca51c1f1467a5e6e 100644 index b8d3398b349d9294de6b8a8594b054d3c84dbe0a..4ab63267c4ec808d3daf94478a1425b5aa70b75f 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 { @@ -3373,4 +3373,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {

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 95240bee8f76fd651166ecabe80885ac6601c34e..257675e0f3d44dec2d532161713609502b2ae868 100644 index 0b90e6810ec549471fad70406f2f054897c1eb24..a1dff77b662f178bd42c0d232ecea1ca2cc4f6d3 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,7 +36,7 @@ index 95240bee8f76fd651166ecabe80885ac6601c34e..257675e0f3d44dec2d53216171360950
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 e98a455b6bca9d094d0da323bddd7b3f2c07bb23..05131b298048de6418cfa103d883039b55740dfa 100644 index 1c89b95ac40120ee970da0f06fd7fff36eb55e61..2a4b63ead77cf6117b1ebefe9d9dbd6c73ed4d95 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 { @@ -1064,6 +1064,20 @@ public abstract class PlayerList {
@@ -61,7 +61,7 @@ index e98a455b6bca9d094d0da323bddd7b3f2c07bb23..05131b298048de6418cfa103d883039b
Iterator iterator = this.players.iterator(); Iterator iterator = this.players.iterator();
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 25a5a3b949a0eb632611355e74ccd4865be108ca..14fcfd7c1d3a62833978e163f4e0d6f9b2203042 100644 index fc6903b20a6e084729306fc960a6fc80e094f76c..dad8d358e60902eb186cbc5686219f66d3babf89 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
@@ -126,6 +126,15 @@ public class DamageSource { @@ -126,6 +126,15 @@ public class DamageSource {
@@ -81,10 +81,10 @@ index 25a5a3b949a0eb632611355e74ccd4865be108ca..14fcfd7c1d3a62833978e163f4e0d6f9
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 5cbe6cb0676ac23e184e7586e2dacbbc1d5fb218..4bcd36f4767975e87ec6ed12a3c80e834e2d497b 100644 index 7a50a1fe485de232abb9d626e8001eee78a33b1b..59ec8a66c76bea89f14aa19f61c03571a00c7e4f 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
@@ -4141,6 +4141,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -4138,6 +4138,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return SlotAccess.NULL; return SlotAccess.NULL;
} }

View File

@@ -5,12 +5,12 @@ Subject: [PATCH] Ridables
diff --git a/src/main/java/net/minecraft/core/BlockPos.java b/src/main/java/net/minecraft/core/BlockPos.java diff --git a/src/main/java/net/minecraft/core/BlockPos.java b/src/main/java/net/minecraft/core/BlockPos.java
index c47aa87db42dea74a2e07ffe6015257fa337da23..fb672028548fbc3c026c3823024249e4e804be01 100644 index e17fa30966dea2836fb791becd032fc7d5cc2611..dd06323731533fb9b1b25a56844a4e39e8a1c4ea 100644
--- a/src/main/java/net/minecraft/core/BlockPos.java --- a/src/main/java/net/minecraft/core/BlockPos.java
+++ b/src/main/java/net/minecraft/core/BlockPos.java +++ b/src/main/java/net/minecraft/core/BlockPos.java
@@ -48,6 +48,12 @@ public class BlockPos extends Vec3i { @@ -48,6 +48,12 @@ public class BlockPos extends Vec3i {
private static final int X_OFFSET = 38; private static final int X_OFFSET = 38;
// Paper end // Paper end - Optimize Bit Operations by inlining
+ // Purpur start + // Purpur start
+ public BlockPos(net.minecraft.world.entity.Entity entity) { + public BlockPos(net.minecraft.world.entity.Entity entity) {
@@ -22,31 +22,31 @@ index c47aa87db42dea74a2e07ffe6015257fa337da23..fb672028548fbc3c026c3823024249e4
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 de0f93e1a85754051315653f707b95753ff7dc70..41918e5fe6d55749204a9207efe305e2f1369d9c 100644 index e83bf05132155c5ac5b57ac04c433c99d4ba77c2..a0dafd629275e2aa42edf00f5e166097e85ed394 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 @@ -1700,6 +1700,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
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 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
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 f29b3dc2243138783ba1d5ec852a8e4c2400150c..dda4a2e46e085190697adc60311abc43031bbf2e 100644 index e0f1f23bcf4f59cffa98ea1c70f774fd787dae08..a129e8ef37fef6fa289e6457b68a221947ef0348 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
public boolean hasEntityMoveEvent = false; // Paper 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
public static Throwable getAddToWorldStackTrace(Entity entity) {
final Throwable thr = new Throwable(entity + " Added to world at " + new java.util.Date()); @Override public LevelChunk getChunkIfLoaded(int x, int z) { // Paper - this was added in world too but keeping here for NMS ABI
io.papermc.paper.util.StacktraceDeobfuscator.INSTANCE.deobfuscateThrowable(thr); 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 849b4190976722179ce4b90aa2bad1dd6cfbadc7..c0b18bf97c8da4e843e08ccd39d4ef6d43295e54 100644 index a1dff77b662f178bd42c0d232ecea1ca2cc4f6d3..6c6f084fcb2e9da843365ed4eac4f1c2d7550f33 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,10 +66,10 @@ index 849b4190976722179ce4b90aa2bad1dd6cfbadc7..c0b18bf97c8da4e843e08ccd39d4ef6d
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 04b0eb391bb524dd7af14b862d89c0f2494a8206..671b5deba9eb3afddc4d0af7ce5e61c11cddd303 100644 index b5917417aaed74555917772650fe51485281c2ec..d9f34bfb22f8b3ca444002acc861eeb5bd3b69e1 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
@@ -2724,6 +2724,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -2719,6 +2719,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event); ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event);
@@ -79,10 +79,10 @@ index 04b0eb391bb524dd7af14b862d89c0f2494a8206..671b5deba9eb3afddc4d0af7ce5e61c1
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 d7e664b9b1f19eeb74b380c90d25354b3f450421..5544a0d6bb1eac588a301261dcd96701be316cc8 100644 index 59ec8a66c76bea89f14aa19f61c03571a00c7e4f..f0216a0ac90aa1c0851dea13dd2250a2560c0e17 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
@@ -379,7 +379,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -378,7 +378,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
private final Set<String> tags; private final Set<String> tags;
private final double[] pistonDeltas; private final double[] pistonDeltas;
private long pistonDeltasGameTime; private long pistonDeltasGameTime;
@@ -91,7 +91,7 @@ index d7e664b9b1f19eeb74b380c90d25354b3f450421..5544a0d6bb1eac588a301261dcd96701
private float eyeHeight; private float eyeHeight;
public boolean isInPowderSnow; public boolean isInPowderSnow;
public boolean wasInPowderSnow; public boolean wasInPowderSnow;
@@ -3013,6 +3013,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -3012,6 +3012,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 d7e664b9b1f19eeb74b380c90d25354b3f450421..5544a0d6bb1eac588a301261dcd96701
this.gameEvent(GameEvent.ENTITY_MOUNT, passenger); this.gameEvent(GameEvent.ENTITY_MOUNT, passenger);
} }
} }
@@ -3052,6 +3059,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -3051,6 +3058,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return false; return false;
} }
// CraftBukkit end // CraftBukkit end
@@ -120,10 +120,10 @@ index d7e664b9b1f19eeb74b380c90d25354b3f450421..5544a0d6bb1eac588a301261dcd96701
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 {
@@ -5000,4 +5015,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -4992,4 +5007,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 // Paper end - Expose entity id counter
+ // Purpur start + // Purpur start
+ @Nullable + @Nullable
+ private Player rider = null; + private Player rider = null;
@@ -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 9b7e786d5ae6bdeeb96df6e9c4d1b24e1e856e58..120666439f235c976ba32a02b09c239ca79cb826 100644 index 370033cb058a20a83f80b8e2618e419bb3fd97cf..b225b9823e5edf81dfc916c3817caab93927118d 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 {
@@ -226,16 +226,16 @@ index 9b7e786d5ae6bdeeb96df6e9c4d1b24e1e856e58..120666439f235c976ba32a02b09c239c
@@ -2728,7 +2729,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -2728,7 +2729,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
} }
protected long lastJumpTime = 0L; // Paper protected long lastJumpTime = 0L; // Paper - Prevent excessive velocity through repeated crits
- protected void jumpFromGround() { - protected void jumpFromGround() {
+ public void jumpFromGround() { // Purpur - protected -> public + public void jumpFromGround() { // Purpur - protected -> public
Vec3 vec3d = this.getDeltaMovement(); Vec3 vec3d = this.getDeltaMovement();
// Paper start // Paper start - Prevent excessive velocity through repeated crits
long time = System.nanoTime(); long time = System.nanoTime();
@@ -3506,8 +3507,10 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -3506,8 +3507,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.pushEntities(); this.pushEntities();
this.level().getProfiler().pop(); this.level().getProfiler().pop();
// Paper start // Paper start - Add EntityMoveEvent
- if (((ServerLevel) this.level()).hasEntityMoveEvent && !(this instanceof net.minecraft.world.entity.player.Player)) { - if (((ServerLevel) this.level()).hasEntityMoveEvent && !(this instanceof net.minecraft.world.entity.player.Player)) {
- 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()) {
+ // Purpur start + // Purpur start
@@ -265,10 +265,10 @@ index 9b7e786d5ae6bdeeb96df6e9c4d1b24e1e856e58..120666439f235c976ba32a02b09c239c
+ } + }
+ // Purpur end + // Purpur end
} }
// Paper end // 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 2f3dc569ff9cdead48aa831c96c027cc7255d609..36c49ca7632495d816fdf98e7f5ae62bbedd4e22 100644 index 4e3d48f6af493f2cded599f51ad5d2cd07e252f2..749de94a6e41d44a6041f67c7d0e2205e10a26ab 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 {
@@ -349,7 +349,7 @@ index 2f3dc569ff9cdead48aa831c96c027cc7255d609..36c49ca7632495d816fdf98e7f5ae62b
+ // Purpur end + // Purpur end
} }
diff --git a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java diff --git a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java
index 3087f8359b098682a345399c85395de8a15b6eed..6b0855cffb901dbc7dcc5fd44506275206bc9a2d 100644 index 683c9693754d1a87b7e8fccc757a0d0963351f60..c47af2c9d023aba454343bab0b43268013c8bd08 100644
--- a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java --- a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java
+++ b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java +++ b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java
@@ -24,14 +24,21 @@ public class AttributeMap { @@ -24,14 +24,21 @@ public class AttributeMap {
@@ -527,7 +527,7 @@ index 7df56705a4a0de2dc4ff7ab133fc26612c219162..384bed4505b6cabb1ae151cd2c4eb5e5
--this.lookAtCooldown; --this.lookAtCooldown;
this.getYRotD().ifPresent((yaw) -> { this.getYRotD().ifPresent((yaw) -> {
diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
index 8820905ac733a8915cc1697259b2bef14d97e471..384fa039b11fb70c2d04df447b689aef3e808968 100644 index 4fba7c2f6ec363846a772ef2a63e9b3fc1037de5..f8c2e2a7065a3ad5b306ebab3d04a12f362c2ea1 100644
--- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java --- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java
+++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java +++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
@@ -19,6 +19,7 @@ import net.minecraft.world.entity.EntityDimensions; @@ -19,6 +19,7 @@ import net.minecraft.world.entity.EntityDimensions;
@@ -679,7 +679,7 @@ index 2249fc6dd98afb8d52623b5864955fdd3b3fc042..2ccfaab0a02cf5ff9779e250fb79a75a
double d = this.wantedX - this.fish.getX(); double d = this.wantedX - this.fish.getX();
double e = this.wantedY - this.fish.getY(); double e = this.wantedY - this.fish.getY();
diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java
index a87a34b0c4c8e5d0cf079025c230b1434c919b54..8f906101afa436b891f4a751b184d6eb89668948 100644 index f9521a6e115f0c975a7885b024c99eae300b63bf..78e802a4bd994b6988ae415cf2958bb828830964 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Bee.java --- a/src/main/java/net/minecraft/world/entity/animal/Bee.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java +++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java
@@ -43,6 +43,7 @@ import net.minecraft.world.entity.EntityType; @@ -43,6 +43,7 @@ import net.minecraft.world.entity.EntityType;
@@ -695,7 +695,7 @@ index a87a34b0c4c8e5d0cf079025c230b1434c919b54..8f906101afa436b891f4a751b184d6eb
super(type, world); super(type, world);
this.remainingCooldownBeforeLocatingNewFlower = Mth.nextInt(this.random, 20, 60); this.remainingCooldownBeforeLocatingNewFlower = Mth.nextInt(this.random, 20, 60);
+ final org.purpurmc.purpur.controller.FlyingMoveControllerWASD flyingController = new org.purpurmc.purpur.controller.FlyingMoveControllerWASD(this, 0.25F, 1.0F, false); // Purpur + final org.purpurmc.purpur.controller.FlyingMoveControllerWASD flyingController = new org.purpurmc.purpur.controller.FlyingMoveControllerWASD(this, 0.25F, 1.0F, false); // Purpur
// Paper start - apply gravity to bees when they get stuck in the void, fixes MC-167279 // Paper start - Fix MC-167279
class BeeFlyingMoveControl extends FlyingMoveControl { class BeeFlyingMoveControl extends FlyingMoveControl {
public BeeFlyingMoveControl(final Mob entity, final int maxPitchChange, final boolean noGravity) { public BeeFlyingMoveControl(final Mob entity, final int maxPitchChange, final boolean noGravity) {
@@ -155,11 +157,24 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { @@ -155,11 +157,24 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
@@ -722,7 +722,7 @@ index a87a34b0c4c8e5d0cf079025c230b1434c919b54..8f906101afa436b891f4a751b184d6eb
+ // Purpur end + // Purpur end
} }
this.moveControl = new BeeFlyingMoveControl(this, 20, true); this.moveControl = new BeeFlyingMoveControl(this, 20, true);
// Paper end // Paper end - Fix MC-167279
@@ -171,6 +186,40 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { @@ -171,6 +186,40 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
this.setPathfindingMalus(BlockPathTypes.FENCE, -1.0F); this.setPathfindingMalus(BlockPathTypes.FENCE, -1.0F);
} }
@@ -801,7 +801,7 @@ index a87a34b0c4c8e5d0cf079025c230b1434c919b54..8f906101afa436b891f4a751b184d6eb
} }
diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main/java/net/minecraft/world/entity/animal/Cat.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main/java/net/minecraft/world/entity/animal/Cat.java
index de51ce9875e12961e6e549e87d76f492d2f19787..3e89e788c796fe168e43a6b78c0d6c1fc077fc78 100644 index f760ce7d9df79ef58f8963de3e901cba3e12fcaa..25636efbdb55605303e390f63276ef0bfd4929ba 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Cat.java --- a/src/main/java/net/minecraft/world/entity/animal/Cat.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java
@@ -98,6 +98,31 @@ public class Cat extends TamableAnimal implements VariantHolder<CatVariant> { @@ -98,6 +98,31 @@ public class Cat extends TamableAnimal implements VariantHolder<CatVariant> {
@@ -965,7 +965,7 @@ index 3cdd9f379c7e2d46ea47c9ef55b121c93ec0bb4a..b0cff23aa6f841ad291437964ea5bebb
// CraftBukkit end // CraftBukkit end
diff --git a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
index e555fd8ca61e1ce7a52ecd475cc3ea11dedcab08..e818cf94d0a7def1f0abc8519e3b8ff4e7918aef 100644 index 178e1e75fcd0e60a1dd2729a894df08cf4129526..2412cdb1bdaf7a558ad7235fca7ea5c74eeaad3f 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java --- a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java +++ b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
@@ -82,14 +82,82 @@ public class Dolphin extends WaterAnimal { @@ -82,14 +82,82 @@ public class Dolphin extends WaterAnimal {
@@ -1090,7 +1090,7 @@ index e555fd8ca61e1ce7a52ecd475cc3ea11dedcab08..e818cf94d0a7def1f0abc8519e3b8ff4
this.setAirSupply(this.getMaxAirSupply()); this.setAirSupply(this.getMaxAirSupply());
} else { } else {
diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java
index 3d771b137dc29579614aa4c15d12bd456cdc608a..8e1494f0f5a50dc16efebc8ab76a41d0cd355ff2 100644 index 287e52dc844c2a64dac74dad117b775f46631157..9133fc6cf8ecc5670b5c3745c882430308e7c184 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Fox.java --- a/src/main/java/net/minecraft/world/entity/animal/Fox.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java +++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java
@@ -144,6 +144,44 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> { @@ -144,6 +144,44 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
@@ -1195,7 +1195,7 @@ index 3d771b137dc29579614aa4c15d12bd456cdc608a..8e1494f0f5a50dc16efebc8ab76a41d0
} }
diff --git a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java diff --git a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
index f383928fc5b331ddf128bdcb6a23010d8fe088d3..6815d7350a82c6d32f60aa6116466ebd06a920f9 100644 index 6cfe0d6c46caa122db107c607d27a2bdcd82f7a8..cb05267fb287b9de9d1829e90d9bb9c9f4aac9f7 100644
--- a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java --- a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
+++ b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java +++ b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
@@ -66,8 +66,27 @@ public class IronGolem extends AbstractGolem implements NeutralMob { @@ -66,8 +66,27 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
@@ -1340,7 +1340,7 @@ index 4300fab61765dd224fab084d118aae7294fc9de6..66f80ec010909648278c4e74c80d3766
this.targetSelector.addGoal(1, new NearestAttackableTargetGoal<>(this, Turtle.class, 10, false, false, Turtle.BABY_ON_LAND_SELECTOR)); this.targetSelector.addGoal(1, new NearestAttackableTargetGoal<>(this, Turtle.class, 10, false, false, Turtle.BABY_ON_LAND_SELECTOR));
} }
diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java
index ead5060ae2840a0519c5bf8b4b84aa12cc41b02a..9376de7391cfdd31f3f44da9a062bf23efd43561 100644 index be554dbaa9900207753e4f67f0ba402333e21338..87a1a6ff04b40ceebded50e81aaafe67a802fa1b 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Panda.java --- a/src/main/java/net/minecraft/world/entity/animal/Panda.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java +++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java
@@ -114,6 +114,32 @@ public class Panda extends Animal { @@ -114,6 +114,32 @@ public class Panda extends Animal {
@@ -1441,7 +1441,7 @@ index ead5060ae2840a0519c5bf8b4b84aa12cc41b02a..9376de7391cfdd31f3f44da9a062bf23
} }
} }
diff --git a/src/main/java/net/minecraft/world/entity/animal/Parrot.java b/src/main/java/net/minecraft/world/entity/animal/Parrot.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Parrot.java b/src/main/java/net/minecraft/world/entity/animal/Parrot.java
index 4c34edc55fa0e136ccf49a3aef001f413274dfac..521ce86afafe329de97c0ef8e95fb503c999edda 100644 index f3f48225c2a1e4bd3d0091d1b4b7e4e150850ed2..06568c109d806a4e98b092016d0efd5b2cdfd359 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Parrot.java --- a/src/main/java/net/minecraft/world/entity/animal/Parrot.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Parrot.java +++ b/src/main/java/net/minecraft/world/entity/animal/Parrot.java
@@ -131,12 +131,68 @@ public class Parrot extends ShoulderRidingEntity implements VariantHolder<Parrot @@ -131,12 +131,68 @@ public class Parrot extends ShoulderRidingEntity implements VariantHolder<Parrot
@@ -2010,7 +2010,7 @@ index b05b560b7570e97bc234b75f26233909fcf575b3..71234b258157579d3a47064e7e299bb7
return "entity.minecraft.tropical_fish.predefined." + variant; return "entity.minecraft.tropical_fish.predefined." + variant;
} }
diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
index d8056421249c8e75e96a55ec07dce84d2bba9c5c..be0c77cd7ca3c9b9379c16b47dc5b5e354847ccf 100644 index f97bdfbd07db000845d3b791de64056c3c23f7ba..79924fabbc11664f5731524c0190a4ddf7ef53da 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java --- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java +++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
@@ -86,6 +86,23 @@ public class Turtle extends Animal { @@ -86,6 +86,23 @@ public class Turtle extends Animal {
@@ -2081,7 +2081,7 @@ index d8056421249c8e75e96a55ec07dce84d2bba9c5c..be0c77cd7ca3c9b9379c16b47dc5b5e3
this.turtle.setSpeed(Mth.lerp(0.125F, this.turtle.getSpeed(), f1)); this.turtle.setSpeed(Mth.lerp(0.125F, this.turtle.getSpeed(), f1));
this.turtle.setDeltaMovement(this.turtle.getDeltaMovement().add(0.0D, (double) this.turtle.getSpeed() * d1 * 0.1D, 0.0D)); this.turtle.setDeltaMovement(this.turtle.getDeltaMovement().add(0.0D, (double) this.turtle.getSpeed() * d1 * 0.1D, 0.0D));
diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
index eecb7511582e5e316b71fa4a4734881424be5ca7..2efa2e19485f9d959a55115ab62f985454689379 100644 index 2d20b2c1f58beb1ad8c9012d8124e476899e6be6..0c3d29e55c3c1aacbf337cc24ac220c92866b84e 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java --- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java +++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
@@ -105,9 +105,32 @@ public class Wolf extends TamableAnimal implements NeutralMob { @@ -105,9 +105,32 @@ public class Wolf extends TamableAnimal implements NeutralMob {
@@ -2193,7 +2193,7 @@ index d241ca4d0295f9fce39c11197bd435cfac7f6e54..09f796ec491f21520e1fcc454249e469
this.level().getProfiler().pop(); this.level().getProfiler().pop();
this.level().getProfiler().push("allayActivityUpdate"); this.level().getProfiler().push("allayActivityUpdate");
diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
index 9158c5a507904c46a8fe2fdad9a0b6ba3a9b2460..877c1050e4c38943f6e8c3f81fa4f2884aba5b11 100644 index 33c160994f70f71446d665e7487913437c9f9db4..a1bc178165f3481c2b4e399f0284f4482ba246c1 100644
--- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java --- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
+++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java +++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
@@ -98,6 +98,23 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo @@ -98,6 +98,23 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
@@ -2265,7 +2265,7 @@ index 9158c5a507904c46a8fe2fdad9a0b6ba3a9b2460..877c1050e4c38943f6e8c3f81fa4f288
} }
diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
index abd913079c00f335944c8eb590fd08bd518b1a10..a32535c8bb29afea3a3495796d71351603d162a2 100644 index f693d4d6a6a3c3d31c2d85ceb5b5b01366c970a1..a1a382a4cc96ff1156bbd8cbc8298e4ae6540990 100644
--- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java --- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
+++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java +++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
@@ -86,6 +86,13 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl @@ -86,6 +86,13 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl
@@ -2438,7 +2438,7 @@ index 6ed4ac06c76b8d0d6e8db778cade15dbd1e3e5f5..3103df74b7ae5a5ed841bf97794284cd
this.level().getProfiler().push("tadpoleActivityUpdate"); this.level().getProfiler().push("tadpoleActivityUpdate");
TadpoleAi.updateActivity(this); TadpoleAi.updateActivity(this);
diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
index ff12ba2b79cb2e7e0bfd0e3b58ff6cb9e770092b..fef3b7d193d20c4fdd50b38c6a0371f05165a49d 100644 index 2e4177cfb02616ef6fa689f6d378976e39484cfb..961f808caa60aba70075572161bcb91cd7201008 100644
--- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java --- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
+++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java +++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
@@ -92,6 +92,23 @@ public class Goat extends Animal { @@ -92,6 +92,23 @@ public class Goat extends Animal {
@@ -2475,7 +2475,7 @@ index ff12ba2b79cb2e7e0bfd0e3b58ff6cb9e770092b..fef3b7d193d20c4fdd50b38c6a0371f0
this.level().getProfiler().pop(); this.level().getProfiler().pop();
this.level().getProfiler().push("goatActivityUpdate"); this.level().getProfiler().push("goatActivityUpdate");
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java
index d9539f5275c4cb63910ba79aa522d9569ad35a89..dc6cda07d2ae7beb5361e3b20eb1fd073f70ad55 100644 index 815eb15086976b8f9e03bf8182d9ed50aec14720..41777079871eef2bb4d319f28c8f441d7f2607a1 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java --- a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java
@@ -149,12 +149,22 @@ public abstract class AbstractHorse extends Animal implements ContainerListener, @@ -149,12 +149,22 @@ public abstract class AbstractHorse extends Animal implements ContainerListener,
@@ -2546,7 +2546,7 @@ index 5f5dc651d570989ec1294c31a14dcfede466b80a..3e50581033e88e8eddcbd85bfa890cbe
protected void randomizeAttributes(RandomSource random) { protected void randomizeAttributes(RandomSource random) {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue((double)generateMaxHealth(random::nextInt)); this.getAttribute(Attributes.MAX_HEALTH).setBaseValue((double)generateMaxHealth(random::nextInt));
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
index 4863586b1c54192e0228342a0c36561348ebb3fb..40f2510f71608975eff411c632d6f36399130648 100644 index 6623674136b0f865d5b3d7a10d3bf05793b82f87..1c6be506804b9622c4d0094814939f894ca857df 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java --- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
@@ -78,7 +78,51 @@ public class Llama extends AbstractChestedHorse implements VariantHolder<Llama.V @@ -78,7 +78,51 @@ public class Llama extends AbstractChestedHorse implements VariantHolder<Llama.V
@@ -2726,7 +2726,7 @@ index 2f7f1f01c5e99266e66f7b8324fc94d2130ea9a4..cc19e9cc90789a5170d1cf3e004a3a45
@Override @Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java diff --git a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
index 47a5125e44cea1ece84657cdb874807f13ee824f..13096fa2032679006f4264e03fdf86a71454f3ca 100644 index 0a5b953bd8c0c7f181da4090b950e9e6524b6d61..7fb2c28b567c6c338a68bdc29d24cb652a4a15bf 100644
--- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java --- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
+++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java +++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
@@ -91,6 +91,23 @@ public class Sniffer extends Animal { @@ -91,6 +91,23 @@ public class Sniffer extends Animal {
@@ -2781,13 +2781,13 @@ index a6f3fba3b02b0b4d2a4e9e5205301c6f52d0188a..4eebfc27ded55e4d764d04f35d3e9c9e
protected void defineSynchedData() { protected void defineSynchedData() {
} }
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index a59c2d1e84c522a9b86cb86491fb987f6f70dcd0..89e3c1cf179b95efe5e0e16ce703fa0b836ba4f7 100644 index dd9800094b132954f0677eb6610fe27db4cec711..dcbb202f2da0ee507ce090c7654ca6e8ea65be33 100644
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -107,6 +107,7 @@ public class EnderDragon extends Mob implements Enemy { @@ -107,6 +107,7 @@ public class EnderDragon extends Mob implements Enemy {
@Nullable @Nullable
private BlockPos podium; private BlockPos podium;
// Paper end // Paper end - Allow changing the EnderDragon podium
+ private boolean hadRider; // Purpur + private boolean hadRider; // Purpur
public EnderDragon(EntityType<? extends EnderDragon> entitytypes, Level world) { public EnderDragon(EntityType<? extends EnderDragon> entitytypes, Level world) {
@@ -2935,7 +2935,7 @@ index a59c2d1e84c522a9b86cb86491fb987f6f70dcd0..89e3c1cf179b95efe5e0e16ce703fa0b
this.dragonFight.updateDragon(this); this.dragonFight.updateDragon(this);
} }
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
index 1f7f6e5995c00725bf66723c75620ec416e24f87..f1f95b2a22797a8b16df1276d8fcc65cbebb165a 100644 index ea8883b0661e894a466eca24bfc247ac37f40a81..6af131d0574a508bccc84b85d0e0b3b5bab6f795 100644
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -84,16 +84,30 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -84,16 +84,30 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -3116,7 +3116,7 @@ index 1f7f6e5995c00725bf66723c75620ec416e24f87..f1f95b2a22797a8b16df1276d8fcc65c
@Override @Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java diff --git a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
index a383c0c8b5c89ef1eef7d18edc3a09f749fdd310..d205578dbed88776c6704fec9500299ce1606152 100644 index 586e3e92ccc275446df6dbbff9bf010a37a9aa8f..9d259d7e2aa3e44e350eb5927314cfceaffaf3f3 100644
--- a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java --- a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
+++ b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java +++ b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
@@ -70,12 +70,14 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo @@ -70,12 +70,14 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
@@ -3247,7 +3247,7 @@ index 70d25bb45ad603095a1f5812cc396dfc5f16a1e1..562faf0257388d9c22146a418f25716c
public boolean doHurtTarget(Entity target) { public boolean doHurtTarget(Entity target) {
if (super.doHurtTarget(target)) { if (super.doHurtTarget(target)) {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
index 52eb3f6a73fa99d12d5fc75bab03e47a605c653a..7b17195c3e872822f92760c2977af3afa395b183 100644 index 51ab33d805028fb739ff9fa1a22a010e70777c1e..b3d1e3158165c940ad1081e80f5bd2dd9d0152f8 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
@@ -59,21 +59,98 @@ public class Creeper extends Monster implements PowerableMob { @@ -59,21 +59,98 @@ public class Creeper extends Monster implements PowerableMob {
@@ -3356,9 +3356,9 @@ index 52eb3f6a73fa99d12d5fc75bab03e47a605c653a..7b17195c3e872822f92760c2977af3af
+ if (!event.isIgnited()) setSwellDir(-1); // Purpur + if (!event.isIgnited()) setSwellDir(-1); // Purpur
} }
} }
// Paper end // Paper end - CreeperIgniteEvent
diff --git a/src/main/java/net/minecraft/world/entity/monster/Drowned.java b/src/main/java/net/minecraft/world/entity/monster/Drowned.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Drowned.java b/src/main/java/net/minecraft/world/entity/monster/Drowned.java
index 485d14d71fb26e6e0d00a43da040bf63d696b66a..a72609b6b98ae730aa765b57275d2e32dbbb0eb6 100644 index 01897af1e6253b987734a24c052daf2ce1314092..02141c89708a60c396dc89bc202bc2316a7e419f 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java --- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java +++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java
@@ -68,6 +68,23 @@ public class Drowned extends Zombie implements RangedAttackMob { @@ -68,6 +68,23 @@ public class Drowned extends Zombie implements RangedAttackMob {
@@ -3423,7 +3423,7 @@ index 485d14d71fb26e6e0d00a43da040bf63d696b66a..a72609b6b98ae730aa765b57275d2e32
} }
diff --git a/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java b/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java diff --git a/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java b/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java
index efc1d49c5bfea7d1674b8a9de2c8b617657eda0f..37afe706c5c453003ea96e62f376f45d7b8eb4a8 100644 index 6d4810626980ce46e02042a5660f615c58d0d5fd..dd2037d4c50e622f249406eee49add29bf261865 100644
--- a/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java --- a/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java
+++ b/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java +++ b/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java
@@ -36,6 +36,18 @@ public class ElderGuardian extends Guardian { @@ -36,6 +36,18 @@ public class ElderGuardian extends Guardian {
@@ -3446,7 +3446,7 @@ index efc1d49c5bfea7d1674b8a9de2c8b617657eda0f..37afe706c5c453003ea96e62f376f45d
return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.30000001192092896D).add(Attributes.ATTACK_DAMAGE, 8.0D).add(Attributes.MAX_HEALTH, 80.0D); return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.30000001192092896D).add(Attributes.ATTACK_DAMAGE, 8.0D).add(Attributes.MAX_HEALTH, 80.0D);
} }
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
index ebbd0031da656c4b12debbf76a347da2865d50d1..05f2b8c9813b2cdadb2aa8de445b8506ed4c2a30 100644 index ad46881a5cba388e6ceb4e0134aa377e28d5f267..8ef8894733ead4f440de1847723cdb405bee17f8 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -98,9 +98,27 @@ public class EnderMan extends Monster implements NeutralMob { @@ -98,9 +98,27 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -3818,7 +3818,7 @@ index 72b8290bebe8ed9bc3c464b30cfe5d2d664310f5..bfc6dcafe79fa3bb6e450a23e91a772b
return checkMonsterSpawnRules(type, world, spawnReason, pos, random) && (MobSpawnType.isSpawner(spawnReason) || world.canSeeSky(pos)); return checkMonsterSpawnRules(type, world, spawnReason, pos, random) && (MobSpawnType.isSpawner(spawnReason) || world.canSeeSky(pos));
} }
diff --git a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java
index 63fce7e3d9f59f36e29bc827a46396d73143bb8b..f83f09f7568c44a1165aac73f7127c5d1af0478f 100644 index fb84b35e34063075e69e00e430bc00e7c3b9d62c..4d50d10016a3b574d67bdfec5aee910cede8ffc3 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java --- a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java +++ b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java
@@ -59,10 +59,28 @@ public class Illusioner extends SpellcasterIllager implements RangedAttackMob { @@ -59,10 +59,28 @@ public class Illusioner extends SpellcasterIllager implements RangedAttackMob {
@@ -3906,7 +3906,7 @@ index 2858ea5562d06c11e5c7337a2b123f9be7a3f62e..aad51022eac584fbc058c2b25e2bf192
@Override @Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
index 5b4719dd7c3b8f93c898779f45239568f6a5fe43..34de7704ad6bf6989fb83a1e24905098d7ba0123 100644 index 187037c43ebb5b245ffa4b50163d443490668744..98ced015ceb4f68364ff5ee6f7ee1a69251dbb04 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -61,6 +61,64 @@ public class Phantom extends FlyingMob implements Enemy { @@ -61,6 +61,64 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -3989,12 +3989,12 @@ index 5b4719dd7c3b8f93c898779f45239568f6a5fe43..34de7704ad6bf6989fb83a1e24905098
@@ -146,6 +206,7 @@ public class Phantom extends FlyingMob implements Enemy { @@ -146,6 +206,7 @@ public class Phantom extends FlyingMob implements Enemy {
@Override @Override
public void aiStep() { public void aiStep() {
if (this.isAlive() && shouldBurnInDay && this.isSunBurnTick()) { // Paper - Configurable Burning if (this.isAlive() && shouldBurnInDay && this.isSunBurnTick()) { // Paper - shouldBurnInDay API
+ if (getRider() == null || !this.isControllable()) // Purpur + if (getRider() == null || !this.isControllable()) // Purpur
this.setSecondsOnFire(8); this.setSecondsOnFire(8);
} }
@@ -274,7 +335,7 @@ public class Phantom extends FlyingMob implements Enemy { @@ -273,7 +334,7 @@ public class Phantom extends FlyingMob implements Enemy {
private AttackPhase() {} private AttackPhase() {}
} }
@@ -4003,7 +4003,7 @@ index 5b4719dd7c3b8f93c898779f45239568f6a5fe43..34de7704ad6bf6989fb83a1e24905098
private float speed = 0.1F; private float speed = 0.1F;
@@ -282,8 +343,19 @@ public class Phantom extends FlyingMob implements Enemy { @@ -281,8 +342,19 @@ public class Phantom extends FlyingMob implements Enemy {
super(entity); super(entity);
} }
@@ -4024,7 +4024,7 @@ index 5b4719dd7c3b8f93c898779f45239568f6a5fe43..34de7704ad6bf6989fb83a1e24905098
if (Phantom.this.horizontalCollision) { if (Phantom.this.horizontalCollision) {
Phantom.this.setYRot(Phantom.this.getYRot() + 180.0F); Phantom.this.setYRot(Phantom.this.getYRot() + 180.0F);
this.speed = 0.1F; this.speed = 0.1F;
@@ -329,14 +401,20 @@ public class Phantom extends FlyingMob implements Enemy { @@ -328,14 +400,20 @@ public class Phantom extends FlyingMob implements Enemy {
} }
} }
@@ -4087,7 +4087,7 @@ index cec545c3baa6599d47b9cf1a4b97de8771062a22..31d204d8d81ccc30371070af3678d82d
this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true)); this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true));
this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractVillager.class, false)); this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractVillager.class, false));
diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
index 0c11d9bef8f0129c541e30ad057612e881703b24..cfa324c6a75ac83cff4ba87034677d4e9415189e 100644 index 151acc43c96b4545ce92d3d559d8e1591874b4b5..73220bd6989855ac82420219c841421612cb3f11 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java --- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java +++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
@@ -71,14 +71,39 @@ public class Ravager extends Raider { @@ -71,14 +71,39 @@ public class Ravager extends Raider {
@@ -4223,7 +4223,7 @@ index 2c60a3765d22909e73b660492410ab8456304b68..f5dda5ed4532c8572bc4f511c49377c2
this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true)); this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true));
} }
diff --git a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
index 8b818a7cb835512c4bd2ea9641d4bfd904150332..4db19589d19d1a0e488ddd0b691e81152ac236e4 100644 index 92974452d8f63fde8524cfac305ee2ef5212f840..3568c4b7ecfa250bbeb1799685b487df53537919 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java --- a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java +++ b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
@@ -26,6 +26,23 @@ public class Skeleton extends AbstractSkeleton { @@ -26,6 +26,23 @@ public class Skeleton extends AbstractSkeleton {
@@ -4251,7 +4251,7 @@ index 8b818a7cb835512c4bd2ea9641d4bfd904150332..4db19589d19d1a0e488ddd0b691e8115
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 cd964e5cded6a74cb9dcf27b4134f944764062cd..5d15c491034e2bd9c136935f5b266e2de3e85729 100644 index 2e59a32aa8afe45641a319b1a6c347ee944398a8..01416cef059e4b8d82a0676a0ced19a325a47ace 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 cd964e5cded6a74cb9dcf27b4134f944764062cd..5d15c491034e2bd9c136935f5b266e2d
} }
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 8094c133f9e934c98eee09738220bacd87a0a364..4d0ef7d73b2c4623c9df22fd971ba8c378e8f696 100644 index 0c68ed759421d6bce4435399f1b4980510081cac..8133ff59a1dba12542c7b582381433267ca18ce5 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 {
@@ -4603,7 +4603,7 @@ index 30ea3f64234fd1fda8dada3c7fb12be0730322a8..841fba3edf697647f59d0485b751c836
Vec3 vec3d1 = Vex.this.getDeltaMovement(); Vec3 vec3d1 = Vex.this.getDeltaMovement();
diff --git a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
index ad41bbbf5395ed18c2c9e1e692c7661a6e0cb98c..049e81af9d5cc746e872be9bdec80917e3137be3 100644 index a6af5ac9d09834940d3dd4c80b16450b90484edb..e5d3bf2e8934d97760eaf165a0ac930d51a3c884 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java --- a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java +++ b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
@@ -58,14 +58,33 @@ public class Vindicator extends AbstractIllager { @@ -58,14 +58,33 @@ public class Vindicator extends AbstractIllager {
@@ -4641,7 +4641,7 @@ index ad41bbbf5395ed18c2c9e1e692c7661a6e0cb98c..049e81af9d5cc746e872be9bdec80917
this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true)); this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true));
this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractVillager.class, true)); this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractVillager.class, true));
diff --git a/src/main/java/net/minecraft/world/entity/monster/Witch.java b/src/main/java/net/minecraft/world/entity/monster/Witch.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Witch.java b/src/main/java/net/minecraft/world/entity/monster/Witch.java
index 580dff41d746d9591f718081d9dfe4ac77e7eeaa..c146d16acac7d3ea380b5e3591f22491c102d7a9 100644 index 02386e7eabc6669296ce35158fa35a3c88c6b563..330974f7fcc435cd45c744cc9c8e0f1bac2305ef 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Witch.java --- a/src/main/java/net/minecraft/world/entity/monster/Witch.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Witch.java +++ b/src/main/java/net/minecraft/world/entity/monster/Witch.java
@@ -59,6 +59,23 @@ public class Witch extends Raider implements RangedAttackMob { @@ -59,6 +59,23 @@ public class Witch extends Raider implements RangedAttackMob {
@@ -4682,7 +4682,7 @@ index 580dff41d746d9591f718081d9dfe4ac77e7eeaa..c146d16acac7d3ea380b5e3591f22491
this.targetSelector.addGoal(2, this.healRaidersGoal); this.targetSelector.addGoal(2, this.healRaidersGoal);
this.targetSelector.addGoal(3, this.attackPlayersGoal); this.targetSelector.addGoal(3, this.attackPlayersGoal);
diff --git a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java diff --git a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
index 3dcd43279ce1295b37c3504ecbdaac5275df2b80..728e3c78fb17d954247cc62f05cdd970d8b5f540 100644 index 20a65c11ededcd7170704b70118da6200151fbab..4235684e533e744bb1eb90a5cc69001e43782bc2 100644
--- a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java --- a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
+++ b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java +++ b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
@@ -35,6 +35,23 @@ public class WitherSkeleton extends AbstractSkeleton { @@ -35,6 +35,23 @@ public class WitherSkeleton extends AbstractSkeleton {
@@ -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 753defa8f8b48d004a2a53b2fc322fd9c083d95e..1d5c60c08354bb64a6d671032c2e8b885ec4ca73 100644 index 3fa43be16cc8d35622c269db37875b4bd0a09405..aa6533c40b73bc72a4906f0533f13e74e58c091a 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 {
@@ -4773,7 +4773,7 @@ index 753defa8f8b48d004a2a53b2fc322fd9c083d95e..1d5c60c08354bb64a6d671032c2e8b88
@Override @Override
protected void registerGoals() { protected void registerGoals() {
+ this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur + this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
if (this.level().paperConfig().entities.behavior.zombiesTargetTurtleEggs) this.goalSelector.addGoal(4, new Zombie.ZombieAttackTurtleEggGoal(this, 1.0D, 3)); // Paper if (this.level().paperConfig().entities.behavior.zombiesTargetTurtleEggs) this.goalSelector.addGoal(4, new Zombie.ZombieAttackTurtleEggGoal(this, 1.0D, 3)); // Paper - Add zombie targets turtle egg config
this.goalSelector.addGoal(8, new LookAtPlayerGoal(this, Player.class, 8.0F)); this.goalSelector.addGoal(8, new LookAtPlayerGoal(this, Player.class, 8.0F));
this.goalSelector.addGoal(8, new RandomLookAroundGoal(this)); this.goalSelector.addGoal(8, new RandomLookAroundGoal(this));
+ this.targetSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur + this.targetSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
@@ -4809,7 +4809,7 @@ index 7de9d012e7416eaa0189b513a0972c846e93c4b6..ba391ae0f8c361fb0ffbe0b65f12a008
protected void defineSynchedData() { protected void defineSynchedData() {
super.defineSynchedData(); super.defineSynchedData();
diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
index 1afe8a8694c1fd0bf43ce3c0c36a83fda9aec141..252d2994fac423ea1fef36bdc7c09778203049cb 100644 index fbabbd0808304f5d0d12f987d00c9e43a89fb1c9..2121de85765d535effb3ef4e0c4a873238dd7576 100644
--- a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java --- a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
@@ -64,6 +64,23 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob { @@ -64,6 +64,23 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
@@ -4837,7 +4837,7 @@ index 1afe8a8694c1fd0bf43ce3c0c36a83fda9aec141..252d2994fac423ea1fef36bdc7c09778
public void setPersistentAngerTarget(@Nullable UUID angryAt) { public void setPersistentAngerTarget(@Nullable UUID angryAt) {
this.persistentAngerTarget = angryAt; this.persistentAngerTarget = angryAt;
diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
index e703320717ff620a19ff76d1c10066117c9895d5..d040198ce528293ed95adcdb17ddf0acbc5a93e0 100644 index 9921b160fb21f72fbd28fe81ea66fbc3dc05f83f..1d54077a7ebb463270a03bb17c342ced8874f4c2 100644
--- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java --- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -69,6 +69,23 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { @@ -69,6 +69,23 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
@@ -4874,7 +4874,7 @@ index e703320717ff620a19ff76d1c10066117c9895d5..d040198ce528293ed95adcdb17ddf0ac
this.level().getProfiler().pop(); this.level().getProfiler().pop();
HoglinAi.updateActivity(this); HoglinAi.updateActivity(this);
diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
index cfdc1650783d6855e0d4f33ec68aab48dbee09f0..f57d7fee1ece00aba9bc7b07dda8398e7acc73c3 100644 index 83d83e3f84bb6bd58761671c6cd4c8683545ff4c..015bb57c73c7b38622329fc3001b6369fa183cd1 100644
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java --- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
@@ -96,6 +96,23 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @@ -96,6 +96,23 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
@@ -4947,7 +4947,7 @@ index e1be4a77fae0b9120781f460079269b85c993930..2d842c0dfce1c7e7229bd42b2a92c024
this.level().getProfiler().pop(); this.level().getProfiler().pop();
PiglinBruteAi.updateActivity(this); PiglinBruteAi.updateActivity(this);
diff --git a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java diff --git a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
index 58a7e61e02b7d72326ed4d57ee514adb63b3873c..63e4688d8055cf4a8883477f7943bf63520c0693 100644 index 0a151c679b0dc943598180942d6d4b3886211688..384e7b29215cadfa40af07a183a9c9c6a5b4a80a 100644
--- a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java --- a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
+++ b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java +++ b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
@@ -123,8 +123,32 @@ public class Warden extends Monster implements VibrationSystem { @@ -123,8 +123,32 @@ public class Warden extends Monster implements VibrationSystem {
@@ -5007,7 +5007,7 @@ index 58a7e61e02b7d72326ed4d57ee514adb63b3873c..63e4688d8055cf4a8883477f7943bf63
public static void applyDarknessAround(ServerLevel world, Vec3 pos, @Nullable Entity entity, int range) { public static void applyDarknessAround(ServerLevel world, Vec3 pos, @Nullable Entity entity, int range) {
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
index 1e6d61673b0e3252129c04edcfa1d7d436e8ecbe..8102f0beb58a6055e0b21c793e913d4eae96c348 100644 index a1769d423141e2a27d7d5ac7f2b7d36c600f1b2d..6e42633cc7393d579bfd4b756a5f651a71e2f02e 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -157,6 +157,28 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -157,6 +157,28 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -5075,7 +5075,7 @@ index 1e6d61673b0e3252129c04edcfa1d7d436e8ecbe..8102f0beb58a6055e0b21c793e913d4e
this.startTrading(player); this.startTrading(player);
} }
diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
index 833563e237462ccfc1b730b8f5fb35340d0db854..2bed7b373813660139d2322dcd6b83f3015768f0 100644 index 1c89f20debfad9807c90a21cc336d5790294ebce..3782209c6d3408393e91ffe64976a15cba025843 100644
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java --- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java +++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
@@ -70,6 +70,23 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill @@ -70,6 +70,23 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
@@ -5114,7 +5114,7 @@ index 833563e237462ccfc1b730b8f5fb35340d0db854..2bed7b373813660139d2322dcd6b83f3
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 2668c3b6f752d5d8bc45f4e6e52c20cc6a36a957..19ed29dc7e4bcb9bedbb8c25174d48194132685e 100644 index 7e77383368388f6e56159892cd483513b068e402..b33f63016fc2818b0a6a05107e435e1c9be3ca97 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 { @@ -194,6 +194,19 @@ public abstract class Player extends LivingEntity {
@@ -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 1c3e1153d08b59d29b3613fc3b50a4780aa7a3ac..7c8b90444aa635cddf480d49a92a180a1bfa9c34 100644 index f16ac1d640fc97f348c244d4ea86e3278b30ae19..6f7be7d29b4654d463299c62b8a01696ca187eb2 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 {
@@ -5204,7 +5204,7 @@ index 1c3e1153d08b59d29b3613fc3b50a4780aa7a3ac..7c8b90444aa635cddf480d49a92a180a
+ // Purpur end + // Purpur end
} }
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index 55c26840957f69860816c917c16f59d02074b388..b3d8e795683ab186295902aba7d476a689ff0f3f 100644 index b9e90f589749dfc9324c4aa2062c505fbd4447bc..118483d7342117c4bc172db89df9fab391f30378 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -591,6 +591,15 @@ public class CraftEventFactory { @@ -591,6 +591,15 @@ public class CraftEventFactory {
@@ -5223,7 +5223,7 @@ index 55c26840957f69860816c917c16f59d02074b388..b3d8e795683ab186295902aba7d476a6
return event; return event;
} }
@@ -1070,6 +1079,7 @@ public class CraftEventFactory { @@ -1068,6 +1077,7 @@ public class CraftEventFactory {
damageCause = DamageCause.ENTITY_EXPLOSION; damageCause = DamageCause.ENTITY_EXPLOSION;
} }
event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), entity.getBukkitEntity(), damageCause, modifiers, modifierFunctions, source.isCritical()); // Paper - add critical damage API event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), entity.getBukkitEntity(), damageCause, modifiers, modifierFunctions, source.isCritical()); // Paper - add critical damage API
@@ -5231,7 +5231,7 @@ index 55c26840957f69860816c917c16f59d02074b388..b3d8e795683ab186295902aba7d476a6
} }
event.setCancelled(cancelled); event.setCancelled(cancelled);
@@ -1184,6 +1194,7 @@ public class CraftEventFactory { @@ -1182,6 +1192,7 @@ public class CraftEventFactory {
} else { } else {
entity.lastDamageCancelled = true; // SPIGOT-5339, SPIGOT-6252, SPIGOT-6777: Keep track if the event was canceled entity.lastDamageCancelled = true; // SPIGOT-5339, SPIGOT-6252, SPIGOT-6777: Keep track if the event was canceled
} }
@@ -5239,7 +5239,7 @@ index 55c26840957f69860816c917c16f59d02074b388..b3d8e795683ab186295902aba7d476a6
return event; return event;
} }
@@ -1247,6 +1258,7 @@ public class CraftEventFactory { @@ -1245,6 +1256,7 @@ public class CraftEventFactory {
EntityDamageEvent event; EntityDamageEvent event;
if (damager != null) { if (damager != null) {
event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), damagee.getBukkitEntity(), cause, modifiers, modifierFunctions, critical); // Paper - add critical damage API event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), damagee.getBukkitEntity(), cause, modifiers, modifierFunctions, critical); // Paper - add critical damage API

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Configurable entity base attributes
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 dae5eb42eb1da596ddbbaf525818ee9601ecdc2f..960b772977adf13c8765dd115346ca53303f7823 100644 index f0216a0ac90aa1c0851dea13dd2250a2560c0e17..036688d52541dda8d8eef6fee43823844f245124 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
@@ -159,7 +159,7 @@ import org.bukkit.plugin.PluginManager; @@ -159,7 +159,7 @@ import org.bukkit.plugin.PluginManager;
@@ -16,7 +16,7 @@ index dae5eb42eb1da596ddbbaf525818ee9601ecdc2f..960b772977adf13c8765dd115346ca53
+ public static javax.script.ScriptEngine scriptEngine = new javax.script.ScriptEngineManager().getEngineByName("rhino"); // Purpur + public static javax.script.ScriptEngine scriptEngine = new javax.script.ScriptEngineManager().getEngineByName("rhino"); // Purpur
// CraftBukkit start // CraftBukkit start
private static final int CURRENT_LEVEL = 2; private static final int CURRENT_LEVEL = 2;
public boolean preserveMotion = true; // Paper - keep initial motion on first setPositionRotation public boolean preserveMotion = true; // Paper - Fix Entity Teleportation and cancel velocity if teleported; keep initial motion on first setPositionRotation
diff --git a/src/main/java/net/minecraft/world/entity/GlowSquid.java b/src/main/java/net/minecraft/world/entity/GlowSquid.java diff --git a/src/main/java/net/minecraft/world/entity/GlowSquid.java b/src/main/java/net/minecraft/world/entity/GlowSquid.java
index 75c278b67ad2b78766efd8f89c4c2ca7eb7cdcb2..dc99e7f0e6f173c1313c0d5e9ea5dd6bdbdac169 100644 index 75c278b67ad2b78766efd8f89c4c2ca7eb7cdcb2..dc99e7f0e6f173c1313c0d5e9ea5dd6bdbdac169 100644
--- a/src/main/java/net/minecraft/world/entity/GlowSquid.java --- a/src/main/java/net/minecraft/world/entity/GlowSquid.java
@@ -34,7 +34,7 @@ index 75c278b67ad2b78766efd8f89c4c2ca7eb7cdcb2..dc99e7f0e6f173c1313c0d5e9ea5dd6b
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 bc83444129f9bd606450c8721bc0e65d3855cdb5..3b7897cc4e282b682e83109a639b987a2c78fa07 100644 index b225b9823e5edf81dfc916c3817caab93927118d..ea7cb84dab429f1a9495b05e578775ac9d94f08a 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
@@ -286,6 +286,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -286,6 +286,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -55,7 +55,7 @@ index bc83444129f9bd606450c8721bc0e65d3855cdb5..3b7897cc4e282b682e83109a639b987a
return this.brain; return this.brain;
} }
diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
index 384fa039b11fb70c2d04df447b689aef3e808968..92777e7f6c6293c5b5689cfa5f992335629d05eb 100644 index f8c2e2a7065a3ad5b306ebab3d04a12f362c2ea1..8910aaaa1fdabecec4740d6212db3114bd1197fc 100644
--- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java --- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java
+++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java +++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
@@ -268,6 +268,18 @@ public class Bat extends AmbientCreature { @@ -268,6 +268,18 @@ public class Bat extends AmbientCreature {
@@ -78,7 +78,7 @@ index 384fa039b11fb70c2d04df447b689aef3e808968..92777e7f6c6293c5b5689cfa5f992335
public void readAdditionalSaveData(CompoundTag nbt) { public void readAdditionalSaveData(CompoundTag nbt) {
super.readAdditionalSaveData(nbt); super.readAdditionalSaveData(nbt);
diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java
index 8f906101afa436b891f4a751b184d6eb89668948..9496bf72eb4cda6c2675daabe5ad82e90d12e173 100644 index 78e802a4bd994b6988ae415cf2958bb828830964..c1f71bf53dac227e6b8c6dbd88473fe79b6a2c64 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Bee.java --- a/src/main/java/net/minecraft/world/entity/animal/Bee.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java +++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java
@@ -478,6 +478,11 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { @@ -478,6 +478,11 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
@@ -94,7 +94,7 @@ index 8f906101afa436b891f4a751b184d6eb89668948..9496bf72eb4cda6c2675daabe5ad82e9
public int getRemainingPersistentAngerTime() { public int getRemainingPersistentAngerTime() {
return (Integer) this.entityData.get(Bee.DATA_REMAINING_ANGER_TIME); return (Integer) this.entityData.get(Bee.DATA_REMAINING_ANGER_TIME);
diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main/java/net/minecraft/world/entity/animal/Cat.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main/java/net/minecraft/world/entity/animal/Cat.java
index 3e89e788c796fe168e43a6b78c0d6c1fc077fc78..87642c1c2c1f39a1c2029797bab73f60c19a1080 100644 index 25636efbdb55605303e390f63276ef0bfd4929ba..83e715c9604efc9586171fd32c7cd2b339bc2349 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Cat.java --- a/src/main/java/net/minecraft/world/entity/animal/Cat.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java
@@ -123,6 +123,11 @@ public class Cat extends TamableAnimal implements VariantHolder<CatVariant> { @@ -123,6 +123,11 @@ public class Cat extends TamableAnimal implements VariantHolder<CatVariant> {
@@ -158,7 +158,7 @@ index b0cff23aa6f841ad291437964ea5bebb6395de84..f440eabffb1abe4c7370bf7badf6137a
protected void registerGoals() { protected void registerGoals() {
this.goalSelector.addGoal(0, new FloatGoal(this)); this.goalSelector.addGoal(0, new FloatGoal(this));
diff --git a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
index e818cf94d0a7def1f0abc8519e3b8ff4e7918aef..519e52b303cb9a2d4b1cae84d8436f2057003fcb 100644 index 2412cdb1bdaf7a558ad7235fca7ea5c74eeaad3f..f3a145be1970dd1e78e04b2ea0d77c6339a42fd8 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java --- a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java +++ b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
@@ -158,6 +158,11 @@ public class Dolphin extends WaterAnimal { @@ -158,6 +158,11 @@ public class Dolphin extends WaterAnimal {
@@ -174,7 +174,7 @@ index e818cf94d0a7def1f0abc8519e3b8ff4e7918aef..519e52b303cb9a2d4b1cae84d8436f20
@Override @Override
public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData entityData, @Nullable CompoundTag entityNbt) { public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData entityData, @Nullable CompoundTag entityNbt) {
diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java
index 86c7b7d3c340372a5c33f8a848a274240c0e8554..21c0431dd8abc06773b6a8ae76908a4227225326 100644 index 9133fc6cf8ecc5670b5c3745c882430308e7c184..450a0b91fdeef9a868063c9501aa531ce3f8b3b7 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Fox.java --- a/src/main/java/net/minecraft/world/entity/animal/Fox.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java +++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java
@@ -182,6 +182,11 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> { @@ -182,6 +182,11 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
@@ -190,7 +190,7 @@ index 86c7b7d3c340372a5c33f8a848a274240c0e8554..21c0431dd8abc06773b6a8ae76908a42
protected void defineSynchedData() { protected void defineSynchedData() {
super.defineSynchedData(); super.defineSynchedData();
diff --git a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java diff --git a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
index 6815d7350a82c6d32f60aa6116466ebd06a920f9..95ff109511c97d603aeaf9e73c49397a841fcbce 100644 index cb05267fb287b9de9d1829e90d9bb9c9f4aac9f7..46e28d807a72b6d302d29d65c52ab0813cd82b1a 100644
--- a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java --- a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
+++ b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java +++ b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
@@ -81,6 +81,11 @@ public class IronGolem extends AbstractGolem implements NeutralMob { @@ -81,6 +81,11 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
@@ -238,7 +238,7 @@ index 66f80ec010909648278c4e74c80d3766b9cf6c6a..14daac1a87e32e0ff0a610aef256e20c
return (Boolean) this.entityData.get(Ocelot.DATA_TRUSTING); return (Boolean) this.entityData.get(Ocelot.DATA_TRUSTING);
} }
diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java
index f944a35c97e0a63714e04393ed6f44727c3fed2b..58dc720a0003055608b784c466c0ef17b39f4408 100644 index 87a1a6ff04b40ceebded50e81aaafe67a802fa1b..846cbac0f862ec881347325dcd6db8eaedbd0e75 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Panda.java --- a/src/main/java/net/minecraft/world/entity/animal/Panda.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java +++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java
@@ -140,6 +140,12 @@ public class Panda extends Animal { @@ -140,6 +140,12 @@ public class Panda extends Animal {
@@ -267,7 +267,7 @@ index f944a35c97e0a63714e04393ed6f44727c3fed2b..58dc720a0003055608b784c466c0ef17
if (this.isLazy()) { if (this.isLazy()) {
diff --git a/src/main/java/net/minecraft/world/entity/animal/Parrot.java b/src/main/java/net/minecraft/world/entity/animal/Parrot.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Parrot.java b/src/main/java/net/minecraft/world/entity/animal/Parrot.java
index 521ce86afafe329de97c0ef8e95fb503c999edda..c3e8d3f2212a8e8d12e8d233c9d12463f8a44439 100644 index 06568c109d806a4e98b092016d0efd5b2cdfd359..9334fb348e559ee27ba38bbd51c30876206c2af4 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Parrot.java --- a/src/main/java/net/minecraft/world/entity/animal/Parrot.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Parrot.java +++ b/src/main/java/net/minecraft/world/entity/animal/Parrot.java
@@ -193,6 +193,11 @@ public class Parrot extends ShoulderRidingEntity implements VariantHolder<Parrot @@ -193,6 +193,11 @@ public class Parrot extends ShoulderRidingEntity implements VariantHolder<Parrot
@@ -427,7 +427,7 @@ index 71234b258157579d3a47064e7e299bb7fb90908f..7d02e552a27632939bb9c40a62f4e0df
return "entity.minecraft.tropical_fish.predefined." + variant; return "entity.minecraft.tropical_fish.predefined." + variant;
} }
diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
index be0c77cd7ca3c9b9379c16b47dc5b5e354847ccf..ee34cb8ee470c6ea4527ddca456d1b6d6f906f2c 100644 index 79924fabbc11664f5731524c0190a4ddf7ef53da..0687ca21827e882b1a82af5b7b16f5701d5ee2d1 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java --- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java +++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
@@ -103,6 +103,11 @@ public class Turtle extends Animal { @@ -103,6 +103,11 @@ public class Turtle extends Animal {
@@ -443,7 +443,7 @@ index be0c77cd7ca3c9b9379c16b47dc5b5e354847ccf..ee34cb8ee470c6ea4527ddca456d1b6d
this.entityData.set(Turtle.HOME_POS, pos.immutable()); // Paper - called with mutablepos... this.entityData.set(Turtle.HOME_POS, pos.immutable()); // Paper - called with mutablepos...
} }
diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
index 2efa2e19485f9d959a55115ab62f985454689379..eecdb1f1d49951cb8a294d176afd12c68fb6c3b1 100644 index 0c3d29e55c3c1aacbf337cc24ac220c92866b84e..b5c1efc1a67cdf163420b55e49baef9d78d9518f 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java --- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java +++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
@@ -127,6 +127,11 @@ public class Wolf extends TamableAnimal implements NeutralMob { @@ -127,6 +127,11 @@ public class Wolf extends TamableAnimal implements NeutralMob {
@@ -459,7 +459,7 @@ index 2efa2e19485f9d959a55115ab62f985454689379..eecdb1f1d49951cb8a294d176afd12c6
protected void registerGoals() { protected void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this)); this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
index 877c1050e4c38943f6e8c3f81fa4f2884aba5b11..c7d9c34582b52d0bb088c624bd909ad5acb248fa 100644 index a1bc178165f3481c2b4e399f0284f4482ba246c1..48b0df2acccd0d406ba05aaeb6dfbfde57cc1366 100644
--- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java --- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
+++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java +++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
@@ -115,6 +115,11 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo @@ -115,6 +115,11 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
@@ -475,7 +475,7 @@ index 877c1050e4c38943f6e8c3f81fa4f2884aba5b11..c7d9c34582b52d0bb088c624bd909ad5
public Map<String, Vector3f> getModelRotationValues() { public Map<String, Vector3f> getModelRotationValues() {
return this.modelRotationValues; return this.modelRotationValues;
diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
index 79f4a2d607a1cab694afb5cc571dbf59bc3cc7fa..3b94e5550681adaeb2a3c636d21456ae42426c47 100644 index a1a382a4cc96ff1156bbd8cbc8298e4ae6540990..aace7991c198ccfe1338625e7b64b88921cefe0c 100644
--- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java --- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
+++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java +++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
@@ -320,6 +320,23 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl @@ -320,6 +320,23 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl
@@ -503,7 +503,7 @@ index 79f4a2d607a1cab694afb5cc571dbf59bc3cc7fa..3b94e5550681adaeb2a3c636d21456ae
protected SoundEvent getAmbientSound() { protected SoundEvent getAmbientSound() {
return SoundEvents.CAMEL_AMBIENT; return SoundEvents.CAMEL_AMBIENT;
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java
index dc6cda07d2ae7beb5361e3b20eb1fd073f70ad55..b50d30a22704efade7b87d4cf5817b2068a18084 100644 index 41777079871eef2bb4d319f28c8f441d7f2607a1..24fb38499092d8cbee3818bf5c873a55465b1edb 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java --- a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java
@@ -162,6 +162,44 @@ public abstract class AbstractHorse extends Animal implements ContainerListener, @@ -162,6 +162,44 @@ public abstract class AbstractHorse extends Animal implements ContainerListener,
@@ -613,7 +613,7 @@ index 3e50581033e88e8eddcbd85bfa890cbe0b88a7e6..92339f5a07dcb6bf7eb1bce6d584464e
protected void randomizeAttributes(RandomSource random) { protected void randomizeAttributes(RandomSource random) {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue((double)generateMaxHealth(random::nextInt)); this.getAttribute(Attributes.MAX_HEALTH).setBaseValue((double)generateMaxHealth(random::nextInt));
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
index 40f2510f71608975eff411c632d6f36399130648..576b09328e956db0ed6e4ac28093429e4dcaab90 100644 index 1c6be506804b9622c4d0094814939f894ca857df..34d87ab749a62c5d897b7bc66b116a801324b6a7 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java --- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
@@ -124,6 +124,21 @@ public class Llama extends AbstractChestedHorse implements VariantHolder<Llama.V @@ -124,6 +124,21 @@ public class Llama extends AbstractChestedHorse implements VariantHolder<Llama.V
@@ -743,7 +743,7 @@ index cc19e9cc90789a5170d1cf3e004a3a452aad8b20..4835950272c2a95cbcbfe3423bb83997
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0D).add(Attributes.MOVEMENT_SPEED, (double)0.2F); return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0D).add(Attributes.MOVEMENT_SPEED, (double)0.2F);
} }
diff --git a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java diff --git a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
index 13096fa2032679006f4264e03fdf86a71454f3ca..a5fd822713b56ebb2bec51364be715570ec056bb 100644 index 7fb2c28b567c6c338a68bdc29d24cb652a4a15bf..074835d3e315eb78d318e81c5fd04e5e786e9127 100644
--- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java --- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
+++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java +++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
@@ -108,6 +108,11 @@ public class Sniffer extends Animal { @@ -108,6 +108,11 @@ public class Sniffer extends Animal {
@@ -759,7 +759,7 @@ index 13096fa2032679006f4264e03fdf86a71454f3ca..a5fd822713b56ebb2bec51364be71557
@Override @Override
protected void defineSynchedData() { protected void defineSynchedData() {
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index 89e3c1cf179b95efe5e0e16ce703fa0b836ba4f7..80e49a98c5c174096dd777674d4245ce64a8baa8 100644 index dcbb202f2da0ee507ce090c7654ca6e8ea65be33..b8c5979ac03103893bfc6d57227e083d185edbf6 100644
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -186,6 +186,11 @@ public class EnderDragon extends Mob implements Enemy { @@ -186,6 +186,11 @@ public class EnderDragon extends Mob implements Enemy {
@@ -775,7 +775,7 @@ index 89e3c1cf179b95efe5e0e16ce703fa0b836ba4f7..80e49a98c5c174096dd777674d4245ce
return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 200.0D); return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 200.0D);
} }
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
index f1f95b2a22797a8b16df1276d8fcc65cbebb165a..4f66e794ce48f3f9bc72c7afd9186ac1bdc70435 100644 index 6af131d0574a508bccc84b85d0e0b3b5bab6f795..42bfd02fc5e844367e761c98ffc62e6c236f0c03 100644
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -112,6 +112,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -112,6 +112,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -832,7 +832,7 @@ index 562faf0257388d9c22146a418f25716cef7471b8..c8bac8cb738ad96003a014b468681c43
public boolean doHurtTarget(Entity target) { public boolean doHurtTarget(Entity target) {
if (super.doHurtTarget(target)) { if (super.doHurtTarget(target)) {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
index 7b17195c3e872822f92760c2977af3afa395b183..33ba948bafc879f6e9cd28f7fe6bce85628cc463 100644 index b3d1e3158165c940ad1081e80f5bd2dd9d0152f8..e40554a64ab1f375cf77592959acd703d30ea43a 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
@@ -250,6 +250,11 @@ public class Creeper extends Monster implements PowerableMob { @@ -250,6 +250,11 @@ public class Creeper extends Monster implements PowerableMob {
@@ -848,7 +848,7 @@ index 7b17195c3e872822f92760c2977af3afa395b183..33ba948bafc879f6e9cd28f7fe6bce85
protected SoundEvent getHurtSound(DamageSource source) { protected SoundEvent getHurtSound(DamageSource source) {
return SoundEvents.CREEPER_HURT; return SoundEvents.CREEPER_HURT;
diff --git a/src/main/java/net/minecraft/world/entity/monster/Drowned.java b/src/main/java/net/minecraft/world/entity/monster/Drowned.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Drowned.java b/src/main/java/net/minecraft/world/entity/monster/Drowned.java
index a72609b6b98ae730aa765b57275d2e32dbbb0eb6..e9f14e8d207c99a60a4802b3412048cd1481b9f7 100644 index 02141c89708a60c396dc89bc202bc2316a7e419f..0d4e1c734491028dac0084bd26ed9a268fbb6751 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java --- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java +++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java
@@ -85,6 +85,16 @@ public class Drowned extends Zombie implements RangedAttackMob { @@ -85,6 +85,16 @@ public class Drowned extends Zombie implements RangedAttackMob {
@@ -869,7 +869,7 @@ index a72609b6b98ae730aa765b57275d2e32dbbb0eb6..e9f14e8d207c99a60a4802b3412048cd
protected void addBehaviourGoals() { protected void addBehaviourGoals() {
this.goalSelector.addGoal(1, new Drowned.DrownedGoToWaterGoal(this, 1.0D)); this.goalSelector.addGoal(1, new Drowned.DrownedGoToWaterGoal(this, 1.0D));
diff --git a/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java b/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java diff --git a/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java b/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java
index 37afe706c5c453003ea96e62f376f45d7b8eb4a8..971210c1199ec48f28446e75d8d796a1f3f9a734 100644 index dd2037d4c50e622f249406eee49add29bf261865..63980f518ecd00bf2fa601f65823985003111920 100644
--- a/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java --- a/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java
+++ b/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java +++ b/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java
@@ -48,6 +48,11 @@ public class ElderGuardian extends Guardian { @@ -48,6 +48,11 @@ public class ElderGuardian extends Guardian {
@@ -885,7 +885,7 @@ index 37afe706c5c453003ea96e62f376f45d7b8eb4a8..971210c1199ec48f28446e75d8d796a1
return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.30000001192092896D).add(Attributes.ATTACK_DAMAGE, 8.0D).add(Attributes.MAX_HEALTH, 80.0D); return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.30000001192092896D).add(Attributes.ATTACK_DAMAGE, 8.0D).add(Attributes.MAX_HEALTH, 80.0D);
} }
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
index 21e5102761876ceafce87fc824bf8392c354341a..ac1c9f44f2a9b7294f2999c70d7dfddb4f0c1ca2 100644 index 8ef8894733ead4f440de1847723cdb405bee17f8..fbd5e2b5e0b571fb805afd698d26a7cebf9c0c29 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -115,6 +115,11 @@ public class EnderMan extends Monster implements NeutralMob { @@ -115,6 +115,11 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -1004,7 +1004,7 @@ index bfc6dcafe79fa3bb6e450a23e91a772b41488561..4ba01ebfc93d10cd0077e32c30349afd
return checkMonsterSpawnRules(type, world, spawnReason, pos, random) && (MobSpawnType.isSpawner(spawnReason) || world.canSeeSky(pos)); return checkMonsterSpawnRules(type, world, spawnReason, pos, random) && (MobSpawnType.isSpawner(spawnReason) || world.canSeeSky(pos));
} }
diff --git a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java
index f83f09f7568c44a1165aac73f7127c5d1af0478f..0f3e6c19e55a18cde71f3cb84c1e92b433ebcb7f 100644 index 4d50d10016a3b574d67bdfec5aee910cede8ffc3..c00530db0eff302c14dd9c52d1d988cbdd93e5a1 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java --- a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java +++ b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java
@@ -76,6 +76,13 @@ public class Illusioner extends SpellcasterIllager implements RangedAttackMob { @@ -76,6 +76,13 @@ public class Illusioner extends SpellcasterIllager implements RangedAttackMob {
@@ -1053,7 +1053,7 @@ index aad51022eac584fbc058c2b25e2bf1929fccca6f..b472309f97b24f1d7b97d8b6d464c479
return Monster.createMonsterAttributes().add(Attributes.MOVEMENT_SPEED, (double)0.2F); return Monster.createMonsterAttributes().add(Attributes.MOVEMENT_SPEED, (double)0.2F);
} }
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
index 34de7704ad6bf6989fb83a1e24905098d7ba0123..8446ce22139fa2473c789cab67f4031a23f0d31d 100644 index 98ced015ceb4f68364ff5ee6f7ee1a69251dbb04..6819acda60e783ee57dd8b9b5d27bc1e105425c3 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -151,7 +151,10 @@ public class Phantom extends FlyingMob implements Enemy { @@ -151,7 +151,10 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -1107,7 +1107,7 @@ index 31d204d8d81ccc30371070af3678d82dc721618d..6a6349c7002439965422aa4979682b4c
protected void registerGoals() { protected void registerGoals() {
super.registerGoals(); super.registerGoals();
diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
index cfa324c6a75ac83cff4ba87034677d4e9415189e..28795558000d76fd255faabc79cc45600efa2c92 100644 index 73220bd6989855ac82420219c841421612cb3f11..226b44ba4cd3a08562c8cb0d79c1d880cfac34ec 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java --- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java +++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
@@ -94,6 +94,11 @@ public class Ravager extends Raider { @@ -94,6 +94,11 @@ public class Ravager extends Raider {
@@ -1155,7 +1155,7 @@ index f5dda5ed4532c8572bc4f511c49377c262efe057..1738f0a251e4cab2eb3f122e83366afb
protected void registerGoals() { protected void registerGoals() {
this.friendsGoal = new Silverfish.SilverfishWakeUpFriendsGoal(this); this.friendsGoal = new Silverfish.SilverfishWakeUpFriendsGoal(this);
diff --git a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
index 4db19589d19d1a0e488ddd0b691e81152ac236e4..6250d2bd682ce3c421aeea598cf8ec9032ac9785 100644 index 3568c4b7ecfa250bbeb1799685b487df53537919..23b385205fe8d1245e65a42b8a356f0127ca2f78 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java --- a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java +++ b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
@@ -43,6 +43,11 @@ public class Skeleton extends AbstractSkeleton { @@ -43,6 +43,11 @@ public class Skeleton extends AbstractSkeleton {
@@ -1171,7 +1171,7 @@ index 4db19589d19d1a0e488ddd0b691e81152ac236e4..6250d2bd682ce3c421aeea598cf8ec90
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 5d15c491034e2bd9c136935f5b266e2de3e85729..28ee425910a6c2412dc4b4a7f7986e479be06b88 100644 index 01416cef059e4b8d82a0676a0ced19a325a47ace..57425e062b701d3a0a5a50cb6fe904d9324be89a 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
@@ -101,6 +101,37 @@ public class Slime extends Mob implements Enemy { @@ -101,6 +101,37 @@ public class Slime extends Mob implements Enemy {
@@ -1225,7 +1225,7 @@ index 5d15c491034e2bd9c136935f5b266e2de3e85729..28ee425910a6c2412dc4b4a7f7986e47
this.setHealth(this.getMaxHealth()); this.setHealth(this.getMaxHealth());
} }
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 4d0ef7d73b2c4623c9df22fd971ba8c378e8f696..4e8d91ca426ced38ba079412ff2dbebbeb1f90b1 100644 index 8133ff59a1dba12542c7b582381433267ca18ce5..a8d82057bd3105a40b18cb9c355c164a2775db14 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
@@ -70,6 +70,11 @@ public class Spider extends Monster { @@ -70,6 +70,11 @@ public class Spider extends Monster {
@@ -1289,7 +1289,7 @@ index 841fba3edf697647f59d0485b751c83625cccc83..7b76a4dadf57d8476d4bf85e6e1861f6
protected float getStandingEyeHeight(Pose pose, EntityDimensions dimensions) { protected float getStandingEyeHeight(Pose pose, EntityDimensions dimensions) {
return dimensions.height - 0.28125F; return dimensions.height - 0.28125F;
diff --git a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
index 049e81af9d5cc746e872be9bdec80917e3137be3..fece613e9c182c6658f9df1d333a5b7e1e862218 100644 index e5d3bf2e8934d97760eaf165a0ac930d51a3c884..706458eeab0cea2fe0cdfe39717f639aa5d85608 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java --- a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java +++ b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
@@ -75,6 +75,11 @@ public class Vindicator extends AbstractIllager { @@ -75,6 +75,11 @@ public class Vindicator extends AbstractIllager {
@@ -1305,7 +1305,7 @@ index 049e81af9d5cc746e872be9bdec80917e3137be3..fece613e9c182c6658f9df1d333a5b7e
protected void registerGoals() { protected void registerGoals() {
super.registerGoals(); super.registerGoals();
diff --git a/src/main/java/net/minecraft/world/entity/monster/Witch.java b/src/main/java/net/minecraft/world/entity/monster/Witch.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Witch.java b/src/main/java/net/minecraft/world/entity/monster/Witch.java
index c146d16acac7d3ea380b5e3591f22491c102d7a9..710c6fb948407c7cc79a5a0492b7172550071e35 100644 index 330974f7fcc435cd45c744cc9c8e0f1bac2305ef..462b9f85b040e3e21be8797bdc1bb6f594634f1c 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Witch.java --- a/src/main/java/net/minecraft/world/entity/monster/Witch.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Witch.java +++ b/src/main/java/net/minecraft/world/entity/monster/Witch.java
@@ -76,6 +76,11 @@ public class Witch extends Raider implements RangedAttackMob { @@ -76,6 +76,11 @@ public class Witch extends Raider implements RangedAttackMob {
@@ -1321,7 +1321,7 @@ index c146d16acac7d3ea380b5e3591f22491c102d7a9..710c6fb948407c7cc79a5a0492b71725
protected void registerGoals() { protected void registerGoals() {
super.registerGoals(); super.registerGoals();
diff --git a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java diff --git a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
index 728e3c78fb17d954247cc62f05cdd970d8b5f540..8eb43574faef713b876d36155775fe2fa2505497 100644 index 4235684e533e744bb1eb90a5cc69001e43782bc2..afad65b86e762187d0779cfee2b0b1089066d53f 100644
--- a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java --- a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
+++ b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java +++ b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
@@ -52,6 +52,11 @@ public class WitherSkeleton extends AbstractSkeleton { @@ -52,6 +52,11 @@ public class WitherSkeleton extends AbstractSkeleton {
@@ -1353,7 +1353,7 @@ index dc29e875c1e184c1c4553c127bb8c86dddf8c5ab..1d862dd019b2d024f61cfc8956430d18
protected Brain.Provider<Zoglin> brainProvider() { protected Brain.Provider<Zoglin> brainProvider() {
return Brain.provider(MEMORY_TYPES, SENSOR_TYPES); return Brain.provider(MEMORY_TYPES, SENSOR_TYPES);
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 1d5c60c08354bb64a6d671032c2e8b885ec4ca73..f75900e33a08bd6eb13fd480fe62b49346f47bac 100644 index aa6533c40b73bc72a4906f0533f13e74e58c091a..65a22067af226751053c9df5e0771a960439f5fe 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
@@ -124,6 +124,11 @@ public class Zombie extends Monster { @@ -124,6 +124,11 @@ public class Zombie extends Monster {
@@ -1378,7 +1378,7 @@ index 1d5c60c08354bb64a6d671032c2e8b885ec4ca73..f75900e33a08bd6eb13fd480fe62b493
@Override @Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
index 3396acd9d361e05b8d7696d823c36c4fda945a23..6c96ca4bb3f94aaeaff87ae44500e87516fbf54f 100644 index ba391ae0f8c361fb0ffbe0b65f12a008c21e4676..9fb70aabb68d5d14ab15420d8677e46c399912b2 100644
--- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java --- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
+++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
@@ -99,6 +99,16 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { @@ -99,6 +99,16 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
@@ -1399,7 +1399,7 @@ index 3396acd9d361e05b8d7696d823c36c4fda945a23..6c96ca4bb3f94aaeaff87ae44500e875
protected void defineSynchedData() { protected void defineSynchedData() {
super.defineSynchedData(); super.defineSynchedData();
diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
index 252d2994fac423ea1fef36bdc7c09778203049cb..fa5fa58ee03243054a38475634a6aa67815ca77d 100644 index 2121de85765d535effb3ef4e0c4a873238dd7576..9d1d8b5a3f2bac29f8058f68e2ded4d790a50321 100644
--- a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java --- a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
@@ -81,6 +81,11 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob { @@ -81,6 +81,11 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
@@ -1424,7 +1424,7 @@ index 252d2994fac423ea1fef36bdc7c09778203049cb..fa5fa58ee03243054a38475634a6aa67
@Nullable @Nullable
diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
index d040198ce528293ed95adcdb17ddf0acbc5a93e0..22788892f7286f3fa6b40059b2bedaf0c6ec5ef3 100644 index 1d54077a7ebb463270a03bb17c342ced8874f4c2..9748b32692b14bffde1506e88149939c4ed25900 100644
--- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java --- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -86,6 +86,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { @@ -86,6 +86,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
@@ -1440,7 +1440,7 @@ index d040198ce528293ed95adcdb17ddf0acbc5a93e0..22788892f7286f3fa6b40059b2bedaf0
public boolean canBeLeashed(Player player) { public boolean canBeLeashed(Player player) {
return !this.isLeashed(); return !this.isLeashed();
diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
index f57d7fee1ece00aba9bc7b07dda8398e7acc73c3..d9b1bde3ce458b7e50f7645d07ee578d13006a0a 100644 index 015bb57c73c7b38622329fc3001b6369fa183cd1..b5e6a48192592e9bc5a7c0a2775e5d78f06cd46a 100644
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java --- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
@@ -113,6 +113,11 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @@ -113,6 +113,11 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
@@ -1472,7 +1472,7 @@ index 2d842c0dfce1c7e7229bd42b2a92c024a4162b68..04e54c241078e6cd6419a21ba1bf913f
return Monster.createMonsterAttributes().add(Attributes.MAX_HEALTH, 50.0D).add(Attributes.MOVEMENT_SPEED, (double)0.35F).add(Attributes.ATTACK_DAMAGE, 7.0D); return Monster.createMonsterAttributes().add(Attributes.MAX_HEALTH, 50.0D).add(Attributes.MOVEMENT_SPEED, (double)0.35F).add(Attributes.ATTACK_DAMAGE, 7.0D);
} }
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
index 4ae36a344143c5aed4266dfef2920ff3d83b1b48..c21b06edb9507ddf9e5a1de56164d9c187f83cab 100644 index 6e42633cc7393d579bfd4b756a5f651a71e2f02e..0d3ce8b8cc3a431ff28837179cd3e0080fe47649 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -179,6 +179,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -179,6 +179,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -1488,7 +1488,7 @@ index 4ae36a344143c5aed4266dfef2920ff3d83b1b48..c21b06edb9507ddf9e5a1de56164d9c1
public Brain<Villager> getBrain() { public Brain<Villager> getBrain() {
return (Brain<Villager>) super.getBrain(); // CraftBukkit - decompile error return (Brain<Villager>) super.getBrain(); // CraftBukkit - decompile error
diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
index 2bed7b373813660139d2322dcd6b83f3015768f0..731bf43e2685554174d7ff295b5561ecf9dd70fa 100644 index 3782209c6d3408393e91ffe64976a15cba025843..5184939949ab54504f178f86fffba4507a895568 100644
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java --- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java +++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
@@ -87,6 +87,11 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill @@ -87,6 +87,11 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill

View File

@@ -5,13 +5,13 @@ 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 1fd58b708bb1d4ea374819a1fe4decf382589c76..d67557141f9ceb7d9eff63f8bfe1025b3716dc20 100644 index 2a4b63ead77cf6117b1ebefe9d9dbd6c73ed4d95..9cc88489e9545b6d2de410d702a8395ccf101f89 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 { @@ -1189,6 +1189,27 @@ public abstract class PlayerList {
player.getBukkitEntity().recalculatePermissions(); // CraftBukkit player.getBukkitEntity().recalculatePermissions(); // CraftBukkit
this.server.getCommands().sendCommands(player); this.server.getCommands().sendCommands(player);
} // Paper } // Paper - Add sendOpLevel API
+ +
+ // Purpur start + // Purpur start
+ if (org.purpurmc.purpur.PurpurConfig.enderChestSixRows && org.purpurmc.purpur.PurpurConfig.enderChestPermissionRows) { + if (org.purpurmc.purpur.PurpurConfig.enderChestSixRows && org.purpurmc.purpur.PurpurConfig.enderChestPermissionRows) {
@@ -37,7 +37,7 @@ index 1fd58b708bb1d4ea374819a1fe4decf382589c76..d67557141f9ceb7d9eff63f8bfe1025b
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 19ed29dc7e4bcb9bedbb8c25174d48194132685e..b494e11e21e88228cb4986fb8685184913275e95 100644 index b33f63016fc2818b0a6a05107e435e1c9be3ca97..1f7022c086c88d9a7b8672ede2a5a14f85999461 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 { @@ -183,6 +183,7 @@ public abstract class Player extends LivingEntity {

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 c0b18bf97c8da4e843e08ccd39d4ef6d43295e54..23084dd2f99f893138a3b24879ed1ae3358c0b3b 100644 index 6c6f084fcb2e9da843365ed4eac4f1c2d7550f33..d561f388a2e157c7e8846d1f987e8bcabe45426e 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 c0b18bf97c8da4e843e08ccd39d4ef6d43295e54..23084dd2f99f893138a3b24879ed1ae3
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 671b5deba9eb3afddc4d0af7ce5e61c11cddd303..5c20086f0eb457568f8e091a240e7fc5e5364643 100644 index d9f34bfb22f8b3ca444002acc861eeb5bd3b69e1..7c829f26b29bb3e02248bfd8d63b600c232ebd3e 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
@@ -105,7 +105,7 @@ index 671b5deba9eb3afddc4d0af7ce5e61c11cddd303..5c20086f0eb457568f8e091a240e7fc5
@@ -392,6 +406,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -392,6 +406,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
} }
if (this.player.getLastActionTime() > 0L && this.server.getPlayerIdleTimeout() > 0 && Util.getMillis() - this.player.getLastActionTime() > (long) this.server.getPlayerIdleTimeout() * 1000L * 60L && !this.player.wonGame) { // Paper - Prevent AFK kick while watching end credits. if (this.player.getLastActionTime() > 0L && this.server.getPlayerIdleTimeout() > 0 && Util.getMillis() - this.player.getLastActionTime() > (long) this.server.getPlayerIdleTimeout() * 1000L * 60L && !this.player.wonGame) { // Paper - Prevent AFK kick while watching end credits
+ // Purpur start + // Purpur start
+ this.player.setAfk(true); + this.player.setAfk(true);
+ if (!this.player.level().purpurConfig.idleTimeoutKick || (!Boolean.parseBoolean(System.getenv("PURPUR_FORCE_IDLE_KICK")) && kickPermissionCache.getUnchecked(this.player.getBukkitEntity()))) { + if (!this.player.level().purpurConfig.idleTimeoutKick || (!Boolean.parseBoolean(System.getenv("PURPUR_FORCE_IDLE_KICK")) && kickPermissionCache.getUnchecked(this.player.getBukkitEntity()))) {
@@ -115,7 +115,7 @@ index 671b5deba9eb3afddc4d0af7ce5e61c11cddd303..5c20086f0eb457568f8e091a240e7fc5
this.player.resetLastActionTime(); // CraftBukkit - SPIGOT-854 this.player.resetLastActionTime(); // CraftBukkit - SPIGOT-854
this.disconnect(Component.translatable("multiplayer.disconnect.idling"), org.bukkit.event.player.PlayerKickEvent.Cause.IDLING); // Paper - kick event cause this.disconnect(Component.translatable("multiplayer.disconnect.idling"), org.bukkit.event.player.PlayerKickEvent.Cause.IDLING); // Paper - kick event cause
} }
@@ -642,6 +662,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -639,6 +659,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.lastYaw = to.getYaw(); this.lastYaw = to.getYaw();
this.lastPitch = to.getPitch(); this.lastPitch = to.getPitch();
@@ -124,7 +124,7 @@ index 671b5deba9eb3afddc4d0af7ce5e61c11cddd303..5c20086f0eb457568f8e091a240e7fc5
Location oldTo = to.clone(); Location oldTo = to.clone();
PlayerMoveEvent event = new PlayerMoveEvent(player, from, to); PlayerMoveEvent event = new PlayerMoveEvent(player, from, to);
this.cserver.getPluginManager().callEvent(event); this.cserver.getPluginManager().callEvent(event);
@@ -1496,7 +1518,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1491,7 +1513,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
if (!event.isAllowed()) { if (!event.isAllowed()) {
flag2 = true; // Paper - diff on change, this should be moved wrongly flag2 = true; // Paper - diff on change, this should be moved wrongly
if (event.getLogWarning()) if (event.getLogWarning())
@@ -133,7 +133,7 @@ index 671b5deba9eb3afddc4d0af7ce5e61c11cddd303..5c20086f0eb457568f8e091a240e7fc5
} }
// Paper end - Add fail move event // Paper end - Add fail move event
} }
@@ -1566,6 +1588,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1561,6 +1583,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.lastYaw = to.getYaw(); this.lastYaw = to.getYaw();
this.lastPitch = to.getPitch(); this.lastPitch = to.getPitch();
@@ -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 dbbce471c35849ea7d7ad07e9db9b7d8d85690df..5eb63d857fea0f1c4dc1e6e4c7af8ea653dc7963 100644 index b350d41a724048af06f9aa9bbef039d3d719c3a8..4f25d52e70752d56c0c03d437651638ac57fa576 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 {
@@ -177,7 +177,7 @@ index dbbce471c35849ea7d7ad07e9db9b7d8d85690df..5eb63d857fea0f1c4dc1e6e4c7af8ea6
private EntitySelector() {} private EntitySelector() {}
// Paper start // Paper start
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 ac5e5676b194a2a99e5cf53eb89c1152cac963b8..872454743f6dedc27519a13566559195c47cc9f8 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
+++ b/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java +++ b/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java
@@ -64,6 +64,10 @@ public class TargetingConditions { @@ -64,6 +64,10 @@ public class TargetingConditions {
@@ -192,7 +192,7 @@ index ac5e5676b194a2a99e5cf53eb89c1152cac963b8..872454743f6dedc27519a13566559195
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 b494e11e21e88228cb4986fb8685184913275e95..71c0a6c896b0f608bc8bc494810723242e291c32 100644 index 1f7022c086c88d9a7b8672ede2a5a14f85999461..59da5e5437fd060279584d6b16071dcd92ac9d33 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 { @@ -189,6 +189,13 @@ public abstract class Player extends LivingEntity {
@@ -223,7 +223,7 @@ 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 69f8a65a396890176e5f1106f5560a3f5589f742..d678d2f374cc10d19879a4ebfcd601f34bb5edbc 100644 index 4ab63267c4ec808d3daf94478a1425b5aa70b75f..833d20484c3bd5b59fff64141f2aa352742a3d5f 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 { @@ -524,10 +524,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -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 651063863b451d24ffe39f0a4d8db296e58ff585..9c1452a4125af81c045933fce78ceb3963b787bf 100644 index a69814d3a6214af734d670fe5545518a5f8a8dc5..a2227d7148910631c9cec73aef2c24e223385963 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

@@ -17,13 +17,13 @@ index f655e0ae4a287886d0291cd0089bad2000249d0f..fcb5965ff0a9623a8e63a4b7413ad554
} else { } else {
this.startProgress(advancementholder, advancementprogress); this.startProgress(advancementholder, advancementprogress);
diff --git a/src/main/java/net/minecraft/server/level/WorldGenRegion.java b/src/main/java/net/minecraft/server/level/WorldGenRegion.java diff --git a/src/main/java/net/minecraft/server/level/WorldGenRegion.java b/src/main/java/net/minecraft/server/level/WorldGenRegion.java
index 277c8e429481ca9763ddac9e700735d25aba78e9..3632957dfd39dc5dcb288fb86c0cadc37f1b4d27 100644 index 5ece375eaf6bcc61864997a389bb5e24625e4505..aee4ab6c7ea09006bec4a1c6df0005718c6d86bd 100644
--- a/src/main/java/net/minecraft/server/level/WorldGenRegion.java --- a/src/main/java/net/minecraft/server/level/WorldGenRegion.java
+++ b/src/main/java/net/minecraft/server/level/WorldGenRegion.java +++ b/src/main/java/net/minecraft/server/level/WorldGenRegion.java
@@ -318,6 +318,7 @@ public class WorldGenRegion implements WorldGenLevel { @@ -318,6 +318,7 @@ public class WorldGenRegion implements WorldGenLevel {
return true; return true;
} else { } else {
// Paper start // Paper start - Buffer OOB setBlock calls
+ if (!org.purpurmc.purpur.PurpurConfig.loggerSuppressSetBlockFarChunk) // Purpur + if (!org.purpurmc.purpur.PurpurConfig.loggerSuppressSetBlockFarChunk) // Purpur
if (!hasSetFarWarned) { if (!hasSetFarWarned) {
Util.logAndPauseIfInIde("Detected setBlock in a far chunk [" + i + ", " + j + "], pos: " + pos + ", status: " + this.generatingStatus + (this.currentlyGenerating == null ? "" : ", currently generating: " + (String) this.currentlyGenerating.get())); Util.logAndPauseIfInIde("Detected setBlock in a far chunk [" + i + ", " + j + "], pos: " + pos + ", status: " + this.generatingStatus + (this.currentlyGenerating == null ? "" : ", currently generating: " + (String) this.currentlyGenerating.get()));

View File

@@ -5,10 +5,10 @@ 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 e2f722b2c5f27a3dca5e8745a9b51d2abc748c22..7beac121beb299deb412419a0c329152bb4286e2 100644 index a129e8ef37fef6fa289e6457b68a221947ef0348..a89a84f0955c5f3bee8abf529b585f04d5349de2 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
@@ -1021,10 +1021,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
if (flag1) { if (flag1) {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add option to set armorstand step height
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 960b772977adf13c8765dd115346ca53303f7823..08b01dd22f4cef8e866a05f6a281afee8cd1d95e 100644 index 036688d52541dda8d8eef6fee43823844f245124..7ca03d221e33cec1df99b6dcd60fcdd401530938 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
@@ -337,7 +337,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -336,7 +336,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
public double xOld; public double xOld;
public double yOld; public double yOld;
public double zOld; public double zOld;
@@ -18,7 +18,7 @@ index 960b772977adf13c8765dd115346ca53303f7823..08b01dd22f4cef8e866a05f6a281afee
public final RandomSource random; public final RandomSource random;
public int tickCount; public int tickCount;
diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
index a9c1f99ba2461333bd154ac16e812031f234f7a6..86e6b4e52a346f4e0370d0bad48ba4643daaadd7 100644 index 94a30a0c1266bf919d1dc4ca2b19489edd54a7fa..61a2048625df012f563d3a0db567630bdfe489c3 100644
--- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java --- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
+++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
@@ -677,6 +677,7 @@ public class ArmorStand extends LivingEntity { @@ -677,6 +677,7 @@ public class ArmorStand extends LivingEntity {
@@ -26,7 +26,7 @@ index a9c1f99ba2461333bd154ac16e812031f234f7a6..86e6b4e52a346f4e0370d0bad48ba464
@Override @Override
public void tick() { public void tick() {
+ maxUpStep = level().purpurConfig.armorstandStepHeight; + maxUpStep = level().purpurConfig.armorstandStepHeight;
// Paper start // Paper start - Allow ArmorStands not to tick
if (!this.canTick) { if (!this.canTick) {
if (this.noTickPoseDirty) { if (this.noTickPoseDirty) {
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

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Allow soil to moisten from water directly under it
diff --git a/src/main/java/net/minecraft/world/level/block/FarmBlock.java b/src/main/java/net/minecraft/world/level/block/FarmBlock.java diff --git a/src/main/java/net/minecraft/world/level/block/FarmBlock.java b/src/main/java/net/minecraft/world/level/block/FarmBlock.java
index 59bbdead2ebd8965d222540c7243dde051bbcc4b..bcc864cbfb9f24ad654da1fcbf7d7c76ed494ce3 100644 index 47eb8bf604a63259c0200cada1403dc005a6cbac..4837453b2186d50da0bbcbcdc0bfe562c9f36039 100644
--- a/src/main/java/net/minecraft/world/level/block/FarmBlock.java --- a/src/main/java/net/minecraft/world/level/block/FarmBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/FarmBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FarmBlock.java
@@ -171,7 +171,7 @@ public class FarmBlock extends Block { @@ -171,7 +171,7 @@ public class FarmBlock extends Block {
@@ -14,11 +14,11 @@ index 59bbdead2ebd8965d222540c7243dde051bbcc4b..bcc864cbfb9f24ad654da1fcbf7d7c76
- return false; - return false;
+ return ((ServerLevel) world).purpurConfig.farmlandGetsMoistFromBelow && world.getFluidState(pos.relative(Direction.DOWN)).is(FluidTags.WATER); // Purpur; + return ((ServerLevel) world).purpurConfig.farmlandGetsMoistFromBelow && world.getFluidState(pos.relative(Direction.DOWN)).is(FluidTags.WATER); // Purpur;
// Paper end - Perf: remove abstract block iteration
} }
@Override
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 10572cc8cae0902a050e62e568b29b96d9c54a21..ae393a6c34e79ea3ac0f4a17792f296f18c3f06b 100644 index f9768a250a4a1543caa3aeab7e745e289d18d2e4..113d827713b409cc3093c39a56439d7c0d04e129 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
@@ -145,6 +145,11 @@ public class PurpurWorldConfig { @@ -145,6 +145,11 @@ public class PurpurWorldConfig {

View File

@@ -5,13 +5,13 @@ Subject: [PATCH] Skip events if there's no listeners
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 8fe48c6bf65db6b11fcd0674aad01d5bb8d17a5f..8572142117fbc469199a538c4624b2f064e8cb6f 100644 index 92e8aed5efd5c6f7f8baf44f4712209acd58cf83..ac63c371eb5a24bccec561826913a39c6e96694d 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
@@ -507,6 +507,7 @@ public class Commands { @@ -507,6 +507,7 @@ public class Commands {
private void runSync(ServerPlayer player, Collection<String> bukkit, RootCommandNode<SharedSuggestionProvider> rootcommandnode) { private void runSync(ServerPlayer player, Collection<String> bukkit, RootCommandNode<SharedSuggestionProvider> rootcommandnode) {
// Paper end - Async command map building // Paper end - Perf: Async command map building
new com.destroystokyo.paper.event.brigadier.AsyncPlayerSendCommandsEvent<CommandSourceStack>(player.getBukkitEntity(), (RootCommandNode) rootcommandnode, false).callEvent(); // Paper new com.destroystokyo.paper.event.brigadier.AsyncPlayerSendCommandsEvent<CommandSourceStack>(player.getBukkitEntity(), (RootCommandNode) rootcommandnode, false).callEvent(); // Paper - Brigadier API
+ if (PlayerCommandSendEvent.getHandlerList().getRegisteredListeners().length > 0) { // Purpur - skip all this crap if there's nothing listening + if (PlayerCommandSendEvent.getHandlerList().getRegisteredListeners().length > 0) { // Purpur - skip all this crap if there's nothing listening
PlayerCommandSendEvent event = new PlayerCommandSendEvent(player.getBukkitEntity(), new LinkedHashSet<>(bukkit)); PlayerCommandSendEvent event = new PlayerCommandSendEvent(player.getBukkitEntity(), new LinkedHashSet<>(bukkit));
event.getPlayer().getServer().getPluginManager().callEvent(event); event.getPlayer().getServer().getPluginManager().callEvent(event);

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Allow leashing villagers
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 f17b7e83a04a2cd738f7d708891fec2e341f3f96..a36994947d3a4f06f102bb143e44d0d7510f8338 100644 index 749de94a6e41d44a6041f67c7d0e2205e10a26ab..3cbfdb6cc09ef6fc13ecb110c751c93f93ab01bf 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
@@ -1317,6 +1317,7 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -1317,6 +1317,7 @@ public abstract class Mob extends LivingEntity implements Targeting {
@@ -14,10 +14,10 @@ index f17b7e83a04a2cd738f7d708891fec2e341f3f96..a36994947d3a4f06f102bb143e44d0d7
} else if (this.getLeashHolder() == player) { } else if (this.getLeashHolder() == player) {
+ if (hand == InteractionHand.OFF_HAND && (level().purpurConfig.villagerCanBeLeashed || level().purpurConfig.wanderingTraderCanBeLeashed) && this instanceof net.minecraft.world.entity.npc.AbstractVillager) return InteractionResult.CONSUME; // Purpur + if (hand == InteractionHand.OFF_HAND && (level().purpurConfig.villagerCanBeLeashed || level().purpurConfig.wanderingTraderCanBeLeashed) && this instanceof net.minecraft.world.entity.npc.AbstractVillager) return InteractionResult.CONSUME; // Purpur
// CraftBukkit start - fire PlayerUnleashEntityEvent // CraftBukkit start - fire PlayerUnleashEntityEvent
// Paper start - drop leash variable // Paper start - Expand EntityUnleashEvent
org.bukkit.event.player.PlayerUnleashEntityEvent event = CraftEventFactory.callPlayerUnleashEntityEvent(this, player, hand, !player.getAbilities().instabuild); org.bukkit.event.player.PlayerUnleashEntityEvent event = CraftEventFactory.callPlayerUnleashEntityEvent(this, player, hand, !player.getAbilities().instabuild);
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
index a39457752612fc0dbbb022cb7faebc73bc2ad5e5..f4ed6ae7e8f122a0a2ce7f4488b0fe1ed0c7da3d 100644 index 3a9de6da37bf12a86723f185a9cfefde123047be..1c75cbd9f998829f200c9ad679b9cd0213915607 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -185,6 +185,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -185,6 +185,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -33,7 +33,7 @@ index a39457752612fc0dbbb022cb7faebc73bc2ad5e5..f4ed6ae7e8f122a0a2ce7f4488b0fe1e
public Brain<Villager> getBrain() { public Brain<Villager> getBrain() {
return (Brain<Villager>) super.getBrain(); // CraftBukkit - decompile error return (Brain<Villager>) super.getBrain(); // CraftBukkit - decompile error
diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
index 64dd35573db3feae6507fc05086ed08c60f5ea01..ad7a32169b0decad1d3a2bd98e25b07731a33d03 100644 index 8ead6c74e598eeeccb5f24cc3d1e86f03d2fe46a..8ab868c88e37fad978ffcf151ad527e57bdf4cb5 100644
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java --- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java +++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
@@ -92,6 +92,11 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill @@ -92,6 +92,11 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Implement infinite liquids
diff --git a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java diff --git a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java
index c55f51e6db55f9fa66f53eef0e7a56af5f81d742..74688f4672936cd2ac629b9f2f404163df6730e9 100644 index 6411aa4ff6bd4cabb25c426fa8f4a7eedb969c03..0fe597d32a0e15ea67b32925c1a62e8c143ff81d 100644
--- a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java --- a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java
+++ b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java +++ b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java
@@ -228,7 +228,7 @@ public abstract class FlowingFluid extends Fluid { @@ -227,7 +227,7 @@ public abstract class FlowingFluid extends Fluid {
} }
} }
@@ -17,7 +17,7 @@ index c55f51e6db55f9fa66f53eef0e7a56af5f81d742..74688f4672936cd2ac629b9f2f404163
BlockState iblockdata2 = world.getBlockState(pos.below()); BlockState iblockdata2 = world.getBlockState(pos.below());
FluidState fluid1 = iblockdata2.getFluidState(); FluidState fluid1 = iblockdata2.getFluidState();
@@ -337,6 +337,12 @@ public abstract class FlowingFluid extends Fluid { @@ -336,6 +336,12 @@ public abstract class FlowingFluid extends Fluid {
protected abstract boolean canConvertToSource(Level world); protected abstract boolean canConvertToSource(Level world);
@@ -31,7 +31,7 @@ index c55f51e6db55f9fa66f53eef0e7a56af5f81d742..74688f4672936cd2ac629b9f2f404163
if (state.getBlock() instanceof LiquidBlockContainer) { if (state.getBlock() instanceof LiquidBlockContainer) {
((LiquidBlockContainer) state.getBlock()).placeLiquid(world, pos, state, fluidState); ((LiquidBlockContainer) state.getBlock()).placeLiquid(world, pos, state, fluidState);
diff --git a/src/main/java/net/minecraft/world/level/material/LavaFluid.java b/src/main/java/net/minecraft/world/level/material/LavaFluid.java diff --git a/src/main/java/net/minecraft/world/level/material/LavaFluid.java b/src/main/java/net/minecraft/world/level/material/LavaFluid.java
index c3f8e1e2dd89c168b8b4a15b589109db486bc8d7..2076e4b433e0a57e3ae7053c1df77e0cdc457fc9 100644 index 3bb4a9a1a6249e8ba2de237f801210e7f4fd5825..4c230136d832d50ae16ffa037b0b30ff1101b50a 100644
--- a/src/main/java/net/minecraft/world/level/material/LavaFluid.java --- a/src/main/java/net/minecraft/world/level/material/LavaFluid.java
+++ b/src/main/java/net/minecraft/world/level/material/LavaFluid.java +++ b/src/main/java/net/minecraft/world/level/material/LavaFluid.java
@@ -198,6 +198,13 @@ public abstract class LavaFluid extends FlowingFluid { @@ -198,6 +198,13 @@ public abstract class LavaFluid extends FlowingFluid {
@@ -49,7 +49,7 @@ index c3f8e1e2dd89c168b8b4a15b589109db486bc8d7..2076e4b433e0a57e3ae7053c1df77e0c
protected boolean canConvertToSource(Level world) { protected boolean canConvertToSource(Level world) {
return world.getGameRules().getBoolean(GameRules.RULE_LAVA_SOURCE_CONVERSION); return world.getGameRules().getBoolean(GameRules.RULE_LAVA_SOURCE_CONVERSION);
diff --git a/src/main/java/net/minecraft/world/level/material/WaterFluid.java b/src/main/java/net/minecraft/world/level/material/WaterFluid.java diff --git a/src/main/java/net/minecraft/world/level/material/WaterFluid.java b/src/main/java/net/minecraft/world/level/material/WaterFluid.java
index d280c98aed5262c4ce39526c917de884f25a8584..e7d9f6802520620a1dcf0938256ffe80fc72a6f0 100644 index cde93efaecd42b9081405638af3ba91cb5e184c9..c664fd77dd865037293a3e86699fd1fa6b703882 100644
--- a/src/main/java/net/minecraft/world/level/material/WaterFluid.java --- a/src/main/java/net/minecraft/world/level/material/WaterFluid.java
+++ b/src/main/java/net/minecraft/world/level/material/WaterFluid.java +++ b/src/main/java/net/minecraft/world/level/material/WaterFluid.java
@@ -64,6 +64,13 @@ public abstract class WaterFluid extends FlowingFluid { @@ -64,6 +64,13 @@ public abstract class WaterFluid extends FlowingFluid {
@@ -63,11 +63,11 @@ index d280c98aed5262c4ce39526c917de884f25a8584..e7d9f6802520620a1dcf0938256ffe80
+ } + }
+ // Purpur end + // Purpur end
+ +
// Paper start // Paper start - Add BlockBreakBlockEvent
@Override @Override
protected void beforeDestroyingBlock(LevelAccessor world, BlockPos pos, BlockState state, BlockPos source) { protected void beforeDestroyingBlock(LevelAccessor world, BlockPos pos, BlockState state, BlockPos source) {
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 5ac666f1a71770891b3b437b2d68b0c5a952358f..e1fd29d376fc52e7519d93073b3823e616cea2c1 100644 index 40a0cd68b1e35894360f0edc45bc30a5bd47622f..783c238cc0e68e52b0f20ea535a208d3bec663de 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
@@ -221,6 +221,11 @@ public class PurpurWorldConfig { @@ -221,6 +221,11 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ 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 94f5c8de371fba03debf37e36fb1c9fc9c8ce78c..f4b22c7916c79275f44079ca9796099b5e142f37 100644 index 7ca03d221e33cec1df99b6dcd60fcdd401530938..9f354cbc17e66c425a274b00f15e6cf51cdb2cee 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
@@ -903,7 +903,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -902,7 +902,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
public void checkBelowWorld() { public void checkBelowWorld() {
// Paper start - Configurable nether ceiling damage // Paper start - Configurable nether ceiling damage
@@ -18,7 +18,7 @@ index 94f5c8de371fba03debf37e36fb1c9fc9c8ce78c..f4b22c7916c79275f44079ca9796099b
&& (!(this instanceof Player player) || !player.getAbilities().invulnerable))) { && (!(this instanceof Player player) || !player.getAbilities().invulnerable))) {
// Paper end // Paper end
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 65a3949679b3d600b972eb6058af6eebc7367d6a..ae710015f2ef933fc61de4978f773e0014a80023 100644 index c27e254d42697f028f3aca902bcb58ba33f95ce4..d668fd41d2bc2ab6a782cf5415507cbd83754c18 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 b4d249de8471499f17fc61a21b9d738f7d329f38..872f88d8d3c3b7b0ce82fda15017b32280bfef4a 100644 index 9f354cbc17e66c425a274b00f15e6cf51cdb2cee..96e79ca690a3951dd24601673703f914465c48a3 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
@@ -499,6 +499,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -498,6 +498,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return false; return false;
} }
@@ -36,15 +36,15 @@ index 4a2331c22a022881d66bcfd4134b0ffe421a0633..d57ef27df0a3597416564f8723b4b986
public boolean isPickable() { public boolean isPickable() {
return false; return false;
diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java
index 060e064625969610539dbf969ce773b877a7c579..32cd9df202704cdfb8fa06aaf0e738d483054feb 100644 index 23dc37ff1f92951817864963bf93220d5aae91bb..af563ffb67c43b50555951fe1b5e4320d429a7f1 100644
--- a/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java --- a/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java
+++ b/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java
@@ -112,6 +112,7 @@ public class EntityStorage implements EntityPersistentStorage<Entity> { @@ -112,6 +112,7 @@ public class EntityStorage implements EntityPersistentStorage<Entity> {
ListTag listTag = new ListTag(); ListTag listTag = new ListTag();
final java.util.Map<net.minecraft.world.entity.EntityType<?>, Integer> savedEntityCounts = new java.util.HashMap<>(); // Paper final java.util.Map<net.minecraft.world.entity.EntityType<?>, Integer> savedEntityCounts = new java.util.HashMap<>(); // Paper - Entity load/save limit per chunk
entities.forEach((entity) -> { // diff here: use entities parameter entities.forEach((entity) -> { // diff here: use entities parameter
+ if (!entity.canSaveToDisk()) return; // Purpur + if (!entity.canSaveToDisk()) return; // Purpur
// Paper start // Paper start - Entity load/save limit per chunk
final EntityType<?> entityType = entity.getType(); final EntityType<?> entityType = entity.getType();
final int saveLimit = level.paperConfig().chunks.entityPerChunkSaveLimit.getOrDefault(entityType, -1); final int saveLimit = level.paperConfig().chunks.entityPerChunkSaveLimit.getOrDefault(entityType, -1);
diff --git a/src/main/java/org/purpurmc/purpur/entity/DolphinSpit.java b/src/main/java/org/purpurmc/purpur/entity/DolphinSpit.java diff --git a/src/main/java/org/purpurmc/purpur/entity/DolphinSpit.java b/src/main/java/org/purpurmc/purpur/entity/DolphinSpit.java

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Implement elytra settings
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 ae710015f2ef933fc61de4978f773e0014a80023..1abf3eb5a32cf67212e74be69ab008af772eb378 100644 index d668fd41d2bc2ab6a782cf5415507cbd83754c18..579f3d49c2804f1a7de687426402cdf9d950fad9 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
@@ -3567,7 +3567,16 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -3567,7 +3567,16 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -27,7 +27,7 @@ index ae710015f2ef933fc61de4978f773e0014a80023..1abf3eb5a32cf67212e74be69ab008af
}); });
} }
diff --git a/src/main/java/net/minecraft/world/item/FireworkRocketItem.java b/src/main/java/net/minecraft/world/item/FireworkRocketItem.java diff --git a/src/main/java/net/minecraft/world/item/FireworkRocketItem.java b/src/main/java/net/minecraft/world/item/FireworkRocketItem.java
index 82b0bda3e35ec2157a477e1a17b2b46baadc97d9..0fc45b1048a1c4e0dc2bd1ae0437eecbe113cf96 100644 index 0821c06a4c66edc8fcee09fc192335a588d2944b..56d7c05c93bc074f6caba51b1741f25d6f0861cd 100644
--- a/src/main/java/net/minecraft/world/item/FireworkRocketItem.java --- a/src/main/java/net/minecraft/world/item/FireworkRocketItem.java
+++ b/src/main/java/net/minecraft/world/item/FireworkRocketItem.java +++ b/src/main/java/net/minecraft/world/item/FireworkRocketItem.java
@@ -15,6 +15,7 @@ import net.minecraft.util.ByIdMap; @@ -15,6 +15,7 @@ import net.minecraft.util.ByIdMap;
@@ -54,7 +54,7 @@ index 82b0bda3e35ec2157a477e1a17b2b46baadc97d9..0fc45b1048a1c4e0dc2bd1ae0437eecb
itemStack.shrink(1); itemStack.shrink(1);
} else ((net.minecraft.server.level.ServerPlayer) user).getBukkitEntity().updateInventory(); } else ((net.minecraft.server.level.ServerPlayer) user).getBukkitEntity().updateInventory();
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
index 1d2a706a4eee7523bbe89bc18b6d9ddd80581c3a..ee621bad75053831d5c88c783fd8af6359d2c281 100644 index 65d1b22d3d3670f009308750013347a15d082e18..345ca7da64f646f1d6f0cde68269b697926cf17e 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java --- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -641,7 +641,7 @@ public final class ItemStack { @@ -641,7 +641,7 @@ public final class ItemStack {
@@ -67,7 +67,7 @@ index 1d2a706a4eee7523bbe89bc18b6d9ddd80581c3a..ee621bad75053831d5c88c783fd8af63
for (int l = 0; j > 0 && l < amount; ++l) { for (int l = 0; j > 0 && l < amount; ++l) {
@@ -696,6 +696,12 @@ public final class ItemStack { @@ -696,6 +696,12 @@ public final class ItemStack {
if (this.hurt(amount, entity.getRandom(), entity /*instanceof ServerPlayer ? (ServerPlayer) entity : null*/)) { // Paper - pass LivingEntity for EntityItemDamageEvent if (this.hurt(amount, entity.getRandom(), entity /*instanceof ServerPlayer ? (ServerPlayer) entity : null*/)) { // Paper - Add EntityDamageItemEvent
breakCallback.accept(entity); breakCallback.accept(entity);
Item item = this.getItem(); Item item = this.getItem();
+ // Purpur start + // Purpur start
@@ -80,7 +80,7 @@ index 1d2a706a4eee7523bbe89bc18b6d9ddd80581c3a..ee621bad75053831d5c88c783fd8af63
if (this.count == 1 && entity instanceof net.minecraft.world.entity.player.Player) { if (this.count == 1 && entity instanceof net.minecraft.world.entity.player.Player) {
org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerItemBreakEvent((net.minecraft.world.entity.player.Player) entity, this); org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerItemBreakEvent((net.minecraft.world.entity.player.Player) entity, this);
diff --git a/src/main/java/net/minecraft/world/item/TridentItem.java b/src/main/java/net/minecraft/world/item/TridentItem.java diff --git a/src/main/java/net/minecraft/world/item/TridentItem.java b/src/main/java/net/minecraft/world/item/TridentItem.java
index 5fab851b319847035fb1eefd0ab999de3ccc2cd8..f1d6db9382bec49f61657168fe56b06784d02cf5 100644 index fa876ddf54780728e7f3ecfe02aa8a16b8ef6f8d..75cf58919ac787b389286b41a9f0b5a945e71649 100644
--- a/src/main/java/net/minecraft/world/item/TridentItem.java --- a/src/main/java/net/minecraft/world/item/TridentItem.java
+++ b/src/main/java/net/minecraft/world/item/TridentItem.java +++ b/src/main/java/net/minecraft/world/item/TridentItem.java
@@ -131,6 +131,14 @@ public class TridentItem extends Item implements Vanishable { @@ -131,6 +131,14 @@ public class TridentItem extends Item implements Vanishable {

View File

@@ -5,7 +5,7 @@ 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 e385a62058204ba3b01ce594e7c180f9cc6cf664..92ca330bee2f58bde93c8da12a8f5c14e29de540 100644 index 79914528f6d255355284b04253218a7c4dec1ead..2568b4ad72a7b99484aaa048257a3b5465b63b9d 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 {
@@ -18,12 +18,12 @@ index e385a62058204ba3b01ce594e7c180f9cc6cf664..92ca330bee2f58bde93c8da12a8f5c14
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;
diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
index c34c698d389da29c9cfaa56cb8023e30416a14ba..7844ee584b917485ce5e490ad040c2c1d732eb1d 100644 index 635f93b4205bd11a8080fbc1db53aa2430aacb77..f4bf401f53e420a6b0635a616dce386d0ab56be7 100644
--- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
+++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
@@ -58,6 +58,12 @@ public class ItemEntity extends Entity implements TraceableEntity { @@ -58,6 +58,12 @@ public class ItemEntity extends Entity implements TraceableEntity {
public boolean canMobPickup = true; // Paper public boolean canMobPickup = true; // Paper
private int despawnRate = -1; // Paper private int despawnRate = -1; // Paper - Alternative item-despawn-rate
public net.kyori.adventure.util.TriState frictionState = net.kyori.adventure.util.TriState.NOT_SET; // Paper - Friction API public net.kyori.adventure.util.TriState frictionState = net.kyori.adventure.util.TriState.NOT_SET; // Paper - Friction API
+ // Purpur start + // Purpur start
+ public boolean immuneToCactus = false; + public boolean immuneToCactus = false;
@@ -55,7 +55,7 @@ index c34c698d389da29c9cfaa56cb8023e30416a14ba..7844ee584b917485ce5e490ad040c2c1
@@ -567,6 +582,12 @@ public class ItemEntity extends Entity implements TraceableEntity { @@ -567,6 +582,12 @@ public class ItemEntity extends Entity implements TraceableEntity {
public void setItem(ItemStack stack) { public void setItem(ItemStack stack) {
this.getEntityData().set(ItemEntity.DATA_ITEM, stack); this.getEntityData().set(ItemEntity.DATA_ITEM, stack);
this.despawnRate = this.level().paperConfig().entities.spawning.altItemDespawnRate.enabled ? this.level().paperConfig().entities.spawning.altItemDespawnRate.items.getOrDefault(stack.getItem(), this.level().spigotConfig.itemDespawnRate) : this.level().spigotConfig.itemDespawnRate; // Paper this.despawnRate = this.level().paperConfig().entities.spawning.altItemDespawnRate.enabled ? this.level().paperConfig().entities.spawning.altItemDespawnRate.items.getOrDefault(stack.getItem(), this.level().spigotConfig.itemDespawnRate) : this.level().spigotConfig.itemDespawnRate; // Paper - Alternative item-despawn-rate
+ // Purpur start + // Purpur start
+ if (level().purpurConfig.itemImmuneToCactus.contains(stack.getItem())) immuneToCactus = true; + if (level().purpurConfig.itemImmuneToCactus.contains(stack.getItem())) immuneToCactus = true;
+ if (level().purpurConfig.itemImmuneToExplosion.contains(stack.getItem())) immuneToExplosion = true; + if (level().purpurConfig.itemImmuneToExplosion.contains(stack.getItem())) immuneToExplosion = true;
@@ -66,7 +66,7 @@ index c34c698d389da29c9cfaa56cb8023e30416a14ba..7844ee584b917485ce5e490ad040c2c1
@Override @Override
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
index 81498941748d646ebe6495f4a7ce6953532144c6..14d6ff11c8b8b047ada5d308515e9d214cf77b69 100644 index 832def3c518be8d6d81e71f6022566e6179e2d17..e99007570a89eebe3c85ad549cf24286514306f8 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
@@ -151,4 +151,46 @@ public class CraftItem extends CraftEntity implements Item { @@ -151,4 +151,46 @@ public class CraftItem extends CraftEntity implements Item {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Phantoms attracted to crystals and crystals shoot phantoms
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java
index ffc5b68c4246a7111845230a75552bb15875a209..ef0098e46bda8abc456f2bb5929d874c6aeb8698 100644 index c99ab157e43fc990549fc06f5b6fb1e227014fde..4f0e1a653a117687b5b330ff424873d01f574bee 100644
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java
@@ -30,6 +30,12 @@ public class EndCrystal extends Entity { @@ -30,6 +30,12 @@ public class EndCrystal extends Entity {
@@ -21,11 +21,11 @@ index ffc5b68c4246a7111845230a75552bb15875a209..ef0098e46bda8abc456f2bb5929d874c
public EndCrystal(EntityType<? extends EndCrystal> type, Level world) { public EndCrystal(EntityType<? extends EndCrystal> type, Level world) {
super(type, world); super(type, world);
@@ -79,7 +85,50 @@ public class EndCrystal extends Entity { @@ -158,6 +164,49 @@ public class EndCrystal extends Entity {
// Paper end }
} }
+ // Purpur start + // Purpur start
+ if (level().purpurConfig.phantomAttackedByCrystalRadius <= 0 || --idleCooldown > 0) { + if (level().purpurConfig.phantomAttackedByCrystalRadius <= 0 || --idleCooldown > 0) {
+ return; // on cooldown + return; // on cooldown
+ } + }
@@ -67,13 +67,12 @@ index ffc5b68c4246a7111845230a75552bb15875a209..ef0098e46bda8abc456f2bb5929d874c
+ phantomBeamTicks = 0; + phantomBeamTicks = 0;
+ phantomDamageCooldown = 0; + phantomDamageCooldown = 0;
+ idleCooldown = 60; + idleCooldown = 60;
}
+ // Purpur end + // Purpur end
}
@Override public void setBeamTarget(@Nullable BlockPos beamTarget) {
protected void addAdditionalSaveData(CompoundTag nbt) {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
index 8446ce22139fa2473c789cab67f4031a23f0d31d..ef41a462b102981d30207299d0279fd51b433a22 100644 index 6819acda60e783ee57dd8b9b5d27bc1e105425c3..4153b621c04168f1f78c526f31a46d9b1fecf3a7 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -50,6 +50,7 @@ public class Phantom extends FlyingMob implements Enemy { @@ -50,6 +50,7 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -131,7 +130,7 @@ index 8446ce22139fa2473c789cab67f4031a23f0d31d..ef41a462b102981d30207299d0279fd5
this.targetSelector.addGoal(1, new Phantom.PhantomAttackPlayerTargetGoal()); this.targetSelector.addGoal(1, new Phantom.PhantomAttackPlayerTargetGoal());
} }
@@ -353,6 +377,124 @@ public class Phantom extends FlyingMob implements Enemy { @@ -352,6 +376,124 @@ public class Phantom extends FlyingMob implements Enemy {
private AttackPhase() {} private AttackPhase() {}
} }
@@ -257,7 +256,7 @@ index 8446ce22139fa2473c789cab67f4031a23f0d31d..ef41a462b102981d30207299d0279fd5
private float speed = 0.1F; private float speed = 0.1F;
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 5fd4129889b3006018612204bc527738a78a0d35..262c6a2b63316fda5fa98fa4fcfbc0985951f6ee 100644 index 5c83d5b665bfccd7c54c18012d4bec7d975de3f2..522ffc7b0d7a028436c385da4809070fb6095c4c 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
@@ -1065,6 +1065,9 @@ public class PurpurWorldConfig { @@ -1065,6 +1065,9 @@ public class PurpurWorldConfig {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add phantom spawning options
diff --git a/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java b/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java diff --git a/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java b/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java
index 7d7d37334321c844958ce09e77547dd61dcba6c8..e731fd6f196116f4995dc6de8ad06b1985abe22b 100644 index ed80960777b18faca2d6a99783e53daf5fa19e09..0847aef56d8608cb1403485f231f30b2527f35ab 100644
--- a/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java --- a/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java
+++ b/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java +++ b/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java
@@ -49,7 +49,7 @@ public class PhantomSpawner implements CustomSpawner { @@ -49,7 +49,7 @@ public class PhantomSpawner implements CustomSpawner {
@@ -18,7 +18,7 @@ index 7d7d37334321c844958ce09e77547dd61dcba6c8..e731fd6f196116f4995dc6de8ad06b19
} else { } else {
int i = 0; int i = 0;
@@ -61,10 +61,10 @@ public class PhantomSpawner implements CustomSpawner { @@ -61,10 +61,10 @@ public class PhantomSpawner implements CustomSpawner {
if (!entityplayer.isSpectator() && (!world.paperConfig().entities.behavior.phantomsDoNotSpawnOnCreativePlayers || !entityplayer.isCreative())) { // Paper if (!entityplayer.isSpectator() && (!world.paperConfig().entities.behavior.phantomsDoNotSpawnOnCreativePlayers || !entityplayer.isCreative())) { // Paper - Add phantom creative and insomniac controls
BlockPos blockposition = entityplayer.blockPosition(); BlockPos blockposition = entityplayer.blockPosition();
- if (!world.dimensionType().hasSkyLight() || blockposition.getY() >= world.getSeaLevel() && world.canSeeSky(blockposition)) { - if (!world.dimensionType().hasSkyLight() || blockposition.getY() >= world.getSeaLevel() && world.canSeeSky(blockposition)) {
@@ -38,7 +38,7 @@ index 7d7d37334321c844958ce09e77547dd61dcba6c8..e731fd6f196116f4995dc6de8ad06b19
+ int k = world.purpurConfig.phantomSpawnMinPerAttempt + world.random.nextInt((world.purpurConfig.phantomSpawnMaxPerAttempt < 0 ? difficultydamagescaler.getDifficulty().getId() : world.purpurConfig.phantomSpawnMaxPerAttempt - world.purpurConfig.phantomSpawnMinPerAttempt) + 1); // Purpur + int k = world.purpurConfig.phantomSpawnMinPerAttempt + world.random.nextInt((world.purpurConfig.phantomSpawnMaxPerAttempt < 0 ? difficultydamagescaler.getDifficulty().getId() : world.purpurConfig.phantomSpawnMaxPerAttempt - world.purpurConfig.phantomSpawnMinPerAttempt) + 1); // Purpur
for (int l = 0; l < k; ++l) { for (int l = 0; l < k; ++l) {
// Paper start // Paper start - PhantomPreSpawnEvent
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 522ffc7b0d7a028436c385da4809070fb6095c4c..28c92b79be65b35b691661f6d63c2f66c9a3a337 100644 index 522ffc7b0d7a028436c385da4809070fb6095c4c..28c92b79be65b35b691661f6d63c2f66c9a3a337 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add allow water in end world option
diff --git a/src/main/java/net/minecraft/world/item/BucketItem.java b/src/main/java/net/minecraft/world/item/BucketItem.java diff --git a/src/main/java/net/minecraft/world/item/BucketItem.java b/src/main/java/net/minecraft/world/item/BucketItem.java
index aa0f09a18ea781e027ea70928b30d3e93061120f..5cb8f1e13f4889792395d6b498c0ade22a33b446 100644 index 6371f326fc86cfc53e39bf8ed13b646f7705fbbc..3dec0c5fc8dece5341634eaf8e94fe1964bf4038 100644
--- a/src/main/java/net/minecraft/world/item/BucketItem.java --- a/src/main/java/net/minecraft/world/item/BucketItem.java
+++ b/src/main/java/net/minecraft/world/item/BucketItem.java +++ b/src/main/java/net/minecraft/world/item/BucketItem.java
@@ -195,7 +195,7 @@ public class BucketItem extends Item implements DispensibleContainerItem { @@ -195,7 +195,7 @@ public class BucketItem extends Item implements DispensibleContainerItem {
@@ -27,10 +27,10 @@ index aa0f09a18ea781e027ea70928b30d3e93061120f..5cb8f1e13f4889792395d6b498c0ade2
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 6ed3b2803c22ddac4234d573cecbaa5991a320d9..f0d9c35062983b0308820feee621caf6e4a6648a 100644 index 5b5ac2d194cb9377f5ea3441505aefd3f7dbce8b..1c8653222f07f5aa12639a95c13fdcdfd5dd87c0 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
@@ -1914,4 +1914,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -1913,4 +1913,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
} }
} }
// Paper end - notify observers even if grow failed // Paper end - notify observers even if grow failed
@@ -46,12 +46,12 @@ index 6ed3b2803c22ddac4234d573cecbaa5991a320d9..f0d9c35062983b0308820feee621caf6
+ // Purpur end + // Purpur end
} }
diff --git a/src/main/java/net/minecraft/world/level/block/IceBlock.java b/src/main/java/net/minecraft/world/level/block/IceBlock.java diff --git a/src/main/java/net/minecraft/world/level/block/IceBlock.java b/src/main/java/net/minecraft/world/level/block/IceBlock.java
index 9ebe74e235d425fde985a6180857dc4039ecfedf..2c21888c477b93f38adaf18abe62732b08e1c9c2 100644 index 9c8c1df5187daefb1c8098b4d4a0976c71a7bbfd..cf4c1097d54c84b309ab02e9892d1b9e39d57490 100644
--- a/src/main/java/net/minecraft/world/level/block/IceBlock.java --- a/src/main/java/net/minecraft/world/level/block/IceBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/IceBlock.java +++ b/src/main/java/net/minecraft/world/level/block/IceBlock.java
@@ -41,7 +41,7 @@ public class IceBlock extends HalfTransparentBlock { @@ -41,7 +41,7 @@ public class IceBlock extends HalfTransparentBlock {
public void afterDestroy(Level world, BlockPos pos, ItemStack tool) { public void afterDestroy(Level world, BlockPos pos, ItemStack tool) {
// Paper end // Paper end - Improve Block#breakNaturally API
if (EnchantmentHelper.getItemEnchantmentLevel(Enchantments.SILK_TOUCH, tool) == 0) { if (EnchantmentHelper.getItemEnchantmentLevel(Enchantments.SILK_TOUCH, tool) == 0) {
- if (world.dimensionType().ultraWarm()) { - if (world.dimensionType().ultraWarm()) {
+ if (world.isNether() || (world.isTheEnd() && !org.purpurmc.purpur.PurpurConfig.allowWaterPlacementInTheEnd)) { // Purpur + if (world.isNether() || (world.isTheEnd() && !org.purpurmc.purpur.PurpurConfig.allowWaterPlacementInTheEnd)) { // Purpur

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Allow color codes in books
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 534b072024d6d2f6a23b3e8fde7fe685c961d4c9..3255e7d874a397dadf7dbc3ee3f994e5f41f4900 100644 index 7c829f26b29bb3e02248bfd8d63b600c232ebd3e..063a1a979755d63bd3d099f07348c7a587adbe3d 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
@@ -1234,13 +1234,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1231,13 +1231,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
itemstack1.setTag(nbttagcompound.copy()); itemstack1.setTag(nbttagcompound.copy());
} }
@@ -28,7 +28,7 @@ index 534b072024d6d2f6a23b3e8fde7fe685c961d4c9..3255e7d874a397dadf7dbc3ee3f994e5
this.updateBookPages(pages, (s) -> { this.updateBookPages(pages, (s) -> {
return Component.Serializer.toJson(Component.literal(s)); return Component.Serializer.toJson(Component.literal(s));
@@ -1252,10 +1255,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1249,10 +1252,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
private void updateBookPages(List<FilteredText> list, UnaryOperator<String> unaryoperator, ItemStack itemstack, int slot, ItemStack handItem) { // CraftBukkit private void updateBookPages(List<FilteredText> list, UnaryOperator<String> unaryoperator, ItemStack itemstack, int slot, ItemStack handItem) { // CraftBukkit
ListTag nbttaglist = new ListTag(); ListTag nbttaglist = new ListTag();
@@ -44,7 +44,7 @@ index 534b072024d6d2f6a23b3e8fde7fe685c961d4c9..3255e7d874a397dadf7dbc3ee3f994e5
Objects.requireNonNull(nbttaglist); Objects.requireNonNull(nbttaglist);
stream.forEach(nbttaglist::add); stream.forEach(nbttaglist::add);
@@ -1265,11 +1271,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1262,11 +1268,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
for (int j = list.size(); i < j; ++i) { for (int j = list.size(); i < j; ++i) {
FilteredText filteredtext = (FilteredText) list.get(i); FilteredText filteredtext = (FilteredText) list.get(i);
@@ -58,7 +58,7 @@ index 534b072024d6d2f6a23b3e8fde7fe685c961d4c9..3255e7d874a397dadf7dbc3ee3f994e5
} }
} }
@@ -1282,6 +1288,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1279,6 +1285,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.player.getInventory().setItem(slot, CraftEventFactory.handleEditBookEvent(this.player, slot, handItem, itemstack)); // CraftBukkit // Paper - Don't ignore result (see other callsite for handleEditBookEvent) this.player.getInventory().setItem(slot, CraftEventFactory.handleEditBookEvent(this.player, slot, handItem, itemstack)); // CraftBukkit // Paper - Don't ignore result (see other callsite for handleEditBookEvent)
} }

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Entity lifespan
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 3255e7d874a397dadf7dbc3ee3f994e5f41f4900..2979e843ba65fece078a3d5ab5256d5e656f8912 100644 index 063a1a979755d63bd3d099f07348c7a587adbe3d..2cb344c02a3812225679d7392b9f557309d05010 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
@@ -2751,6 +2751,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -2746,6 +2746,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
AABB axisalignedbb = entity.getBoundingBox(); AABB axisalignedbb = entity.getBoundingBox();
if (axisalignedbb.distanceToSqr(this.player.getEyePosition()) < ServerGamePacketListenerImpl.MAX_INTERACTION_DISTANCE) { if (axisalignedbb.distanceToSqr(this.player.getEyePosition()) < ServerGamePacketListenerImpl.MAX_INTERACTION_DISTANCE) {
@@ -17,7 +17,7 @@ index 3255e7d874a397dadf7dbc3ee3f994e5f41f4900..2979e843ba65fece078a3d5ab5256d5e
private void performInteraction(InteractionHand enumhand, ServerGamePacketListenerImpl.EntityInteraction playerconnection_a, PlayerInteractEntityEvent event) { // CraftBukkit private void performInteraction(InteractionHand enumhand, ServerGamePacketListenerImpl.EntityInteraction playerconnection_a, PlayerInteractEntityEvent event) { // CraftBukkit
ItemStack itemstack = ServerGamePacketListenerImpl.this.player.getItemInHand(enumhand); ItemStack itemstack = ServerGamePacketListenerImpl.this.player.getItemInHand(enumhand);
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 bbac0cf5e2c216b6ac61e4fcd2b15d28bbf648ec..f36f0291002dae00eceee96f9f9d210ccea8da31 100644 index 8352b81387a9c558e377dee294e781d12aba45b0..53b193c0f4c1990055106b60874c24036571e951 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
@@ -136,6 +136,7 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -136,6 +136,7 @@ public abstract class Mob extends LivingEntity implements Targeting {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Phantoms burn in light
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
index ef41a462b102981d30207299d0279fd51b433a22..6849b2ad3b2db840a1af35ef069490506449c861 100644 index 4153b621c04168f1f78c526f31a46d9b1fecf3a7..fd9cb719c0380993a506bd803128cb2d7f0c37cb 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -50,6 +50,7 @@ public class Phantom extends FlyingMob implements Enemy { @@ -50,6 +50,7 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -20,17 +20,17 @@ index ef41a462b102981d30207299d0279fd51b433a22..6849b2ad3b2db840a1af35ef06949050
@Override @Override
public void aiStep() { public void aiStep() {
- if (this.isAlive() && shouldBurnInDay && this.isSunBurnTick()) { // Paper - Configurable Burning - if (this.isAlive() && shouldBurnInDay && this.isSunBurnTick()) { // Paper - shouldBurnInDay API
+ // Purpur start + // Purpur start
+ boolean burnFromDaylight = this.shouldBurnInDay && this.level().purpurConfig.phantomBurnInDaylight; + boolean burnFromDaylight = this.shouldBurnInDay && this.level().purpurConfig.phantomBurnInDaylight;
+ boolean burnFromLightSource = this.level().purpurConfig.phantomBurnInLight > 0 && this.level().getMaxLocalRawBrightness(blockPosition()) >= this.level().purpurConfig.phantomBurnInLight; + boolean burnFromLightSource = this.level().purpurConfig.phantomBurnInLight > 0 && this.level().getMaxLocalRawBrightness(blockPosition()) >= this.level().purpurConfig.phantomBurnInLight;
+ if (this.isAlive() && (burnFromDaylight || burnFromLightSource)) { // Paper - Configurable Burning + if (this.isAlive() && (burnFromDaylight || burnFromLightSource)) { // Paper - shouldBurnInDay API
+ if (getRider() == null || !this.isControllable()) + if (getRider() == null || !this.isControllable())
+ // Purpur end + // Purpur end
if (getRider() == null || !this.isControllable()) // Purpur if (getRider() == null || !this.isControllable()) // Purpur
this.setSecondsOnFire(8); this.setSecondsOnFire(8);
} }
@@ -661,6 +667,12 @@ public class Phantom extends FlyingMob implements Enemy { @@ -660,6 +666,12 @@ public class Phantom extends FlyingMob implements Enemy {
return false; return false;
} else if (!entityliving.isAlive()) { } else if (!entityliving.isAlive()) {
return false; return false;
@@ -43,7 +43,7 @@ index ef41a462b102981d30207299d0279fd51b433a22..6849b2ad3b2db840a1af35ef06949050
} else { } else {
if (entityliving instanceof Player) { if (entityliving instanceof Player) {
Player entityhuman = (Player) entityliving; Player entityhuman = (Player) entityliving;
@@ -806,6 +818,7 @@ public class Phantom extends FlyingMob implements Enemy { @@ -805,6 +817,7 @@ public class Phantom extends FlyingMob implements Enemy {
this.nextScanTick = reducedTickDelay(60); this.nextScanTick = reducedTickDelay(60);
List<Player> list = Phantom.this.level().getNearbyPlayers(this.attackTargeting, Phantom.this, Phantom.this.getBoundingBox().inflate(16.0D, 64.0D, 16.0D)); List<Player> list = Phantom.this.level().getNearbyPlayers(this.attackTargeting, Phantom.this, Phantom.this.getBoundingBox().inflate(16.0D, 64.0D, 16.0D));
@@ -52,7 +52,7 @@ index ef41a462b102981d30207299d0279fd51b433a22..6849b2ad3b2db840a1af35ef06949050
list.sort(Comparator.comparing((Entity e) -> { return e.getY(); }).reversed()); // CraftBukkit - decompile error list.sort(Comparator.comparing((Entity e) -> { return e.getY(); }).reversed()); // CraftBukkit - decompile error
Iterator iterator = list.iterator(); Iterator iterator = list.iterator();
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 3557d668d5117aaaef2fde0792b58c7e58546c22..81dd8666fd997f92972da2c6980c6ce515582fbc 100644 index c87c7feb140864771cbef3dcee1f89319c9a1f83..a0477b47563214152483423121523f836827306b 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
@@ -1123,6 +1123,9 @@ public class PurpurWorldConfig { @@ -1123,6 +1123,9 @@ public class PurpurWorldConfig {

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 667b560c5b414d174f265778038942e87d4451ef..9a790f72307e4e044a2ae9aded57025e3974c278 100644 index 96e79ca690a3951dd24601673703f914465c48a3..46dfa64da35505ca8be525d0eca0e2840840f776 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
@@ -4454,6 +4454,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -4451,6 +4451,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
this.yRotO = this.getYRot(); this.yRotO = this.getYRot();
} }

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 9a790f72307e4e044a2ae9aded57025e3974c278..efadee43018d6d22b11ed59169a89d91192af3cc 100644 index 46dfa64da35505ca8be525d0eca0e2840840f776..cc7cdb842df3a9d9cb9dc86b589c9893e06577ce 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
@@ -3153,7 +3153,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -3152,7 +3152,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,17 +17,17 @@ index 9a790f72307e4e044a2ae9aded57025e3974c278..efadee43018d6d22b11ed59169a89d91
if (!this.level().isClientSide && !pos.equals(this.portalEntrancePos)) { if (!this.level().isClientSide && !pos.equals(this.portalEntrancePos)) {
this.portalEntrancePos = pos.immutable(); this.portalEntrancePos = pos.immutable();
} }
@@ -3862,7 +3862,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -3859,7 +3859,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
} }
public boolean canChangeDimensions() { public boolean canChangeDimensions() {
- return !this.isPassenger() && !this.isVehicle() && isAlive() && valid; // Paper - return !this.isPassenger() && !this.isVehicle() && isAlive() && valid; // Paper - Fix item duplication and teleport issues
+ return !this.isPassenger() && !this.isVehicle() && isAlive() && valid && (level().purpurConfig.entitiesCanUsePortals || this instanceof ServerPlayer); // Paper // Purpur + return !this.isPassenger() && !this.isVehicle() && isAlive() && valid && (level().purpurConfig.entitiesCanUsePortals || this instanceof ServerPlayer); // Paper - Fix item duplication and teleport issues // Purpur
} }
public float getBlockExplosionResistance(Explosion explosion, BlockGetter world, BlockPos pos, BlockState blockState, FluidState fluidState, float max) { public float getBlockExplosionResistance(Explosion explosion, BlockGetter world, BlockPos pos, BlockState blockState, FluidState fluidState, float max) {
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 d6b6d112da049e26ee867d81e37baa8f7bd4cda0..6b45e9aa4575892005765af9e202c61f50d4b1b6 100644 index cb1d95f6f786df7a8825016b70c3c6b718f60358..4ffd1263f48a426e5f7a79fd266a0f445975dc2e 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
@@ -98,6 +98,7 @@ public class PurpurWorldConfig { @@ -98,6 +98,7 @@ public class PurpurWorldConfig {

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Allow toggling special MobSpawners per world
In vanilla, these are all hardcoded on for world type 0 (overworld) and hardcoded off for every other world type. Default config behaviour matches this. In vanilla, these are all hardcoded on for world type 0 (overworld) and hardcoded off for every other world type. Default config behaviour matches this.
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 7beac121beb299deb412419a0c329152bb4286e2..45de633b7547646193f6cd34b9557cd54df013f5 100644 index a89a84f0955c5f3bee8abf529b585f04d5349de2..cd54fd87fc48ee0423263c4365ac7660a9ece741 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
@@ -713,7 +713,24 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -708,7 +708,24 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.dragonParts = new Int2ObjectOpenHashMap(); this.dragonParts = new Int2ObjectOpenHashMap();
this.tickTime = flag1; this.tickTime = flag1;
this.server = minecraftserver; this.server = minecraftserver;
@@ -36,7 +36,7 @@ index 7beac121beb299deb412419a0c329152bb4286e2..45de633b7547646193f6cd34b9557cd5
ChunkGenerator chunkgenerator = worlddimension.generator(); ChunkGenerator chunkgenerator = worlddimension.generator();
// CraftBukkit start // CraftBukkit start
diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTraderSpawner.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTraderSpawner.java diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTraderSpawner.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTraderSpawner.java
index 8385eb1d60f377da94e3178ab506feefb43563fd..a5443f92786427c42092aec8350e7ab37704db7a 100644 index d7bddedb19c10f62fd1f7d3128453ad706ed16be..752b38d45d59d8b3cd492246e5aa4f378a78734d 100644
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTraderSpawner.java --- a/src/main/java/net/minecraft/world/entity/npc/WanderingTraderSpawner.java
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTraderSpawner.java +++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTraderSpawner.java
@@ -159,7 +159,17 @@ public class WanderingTraderSpawner implements CustomSpawner { @@ -159,7 +159,17 @@ public class WanderingTraderSpawner implements CustomSpawner {

View File

@@ -20,16 +20,16 @@ index cfe6a6f6bcfd7a3b29ab25f5a6745d31c18f338d..c168658d4d4ec1ddd80425e786d4435f
ignored.add("goal_selector_1"); ignored.add("goal_selector_1");
ignored.add("goal_selector_2"); ignored.add("goal_selector_2");
diff --git a/src/main/java/net/minecraft/world/entity/monster/Drowned.java b/src/main/java/net/minecraft/world/entity/monster/Drowned.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Drowned.java b/src/main/java/net/minecraft/world/entity/monster/Drowned.java
index ebfbf67d65dc5a54e9235f44ab391147c23ddd0f..162ecea875d99115cdd742524ce65ee74cc0d47e 100644 index cb9bc542ae73950c56fd883787f026d92dda4834..e6751c1a834453be66e891d7eb94bbb66f36008c 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java --- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java +++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java
@@ -120,7 +120,19 @@ public class Drowned extends Zombie implements RangedAttackMob { @@ -120,7 +120,19 @@ public class Drowned extends Zombie implements RangedAttackMob {
this.goalSelector.addGoal(7, new RandomStrollGoal(this, 1.0D)); this.goalSelector.addGoal(7, new RandomStrollGoal(this, 1.0D));
this.targetSelector.addGoal(1, (new HurtByTargetGoal(this, new Class[]{Drowned.class})).setAlertOthers(ZombifiedPiglin.class)); this.targetSelector.addGoal(1, (new HurtByTargetGoal(this, new Class[]{Drowned.class})).setAlertOthers(ZombifiedPiglin.class));
this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, 10, true, false, this::okTarget)); this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, 10, true, false, this::okTarget));
- if (this.level().spigotConfig.zombieAggressiveTowardsVillager) this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractVillager.class, false)); // Paper - if (this.level().spigotConfig.zombieAggressiveTowardsVillager) this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractVillager.class, false)); // Paper - Check drowned for villager aggression config
+ // Purpur start + // Purpur start
+ if (this.level().spigotConfig.zombieAggressiveTowardsVillager) this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractVillager.class, false) { // Spigot + if (this.level().spigotConfig.zombieAggressiveTowardsVillager) this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractVillager.class, false) { // Paper - Check drowned for villager aggression config
+ @Override + @Override
+ public boolean canUse() { + public boolean canUse() {
+ return (level().purpurConfig.zombieAggressiveTowardsVillagerWhenLagging || !level().getServer().server.isLagging()) && super.canUse(); + return (level().purpurConfig.zombieAggressiveTowardsVillagerWhenLagging || !level().getServer().server.isLagging()) && super.canUse();
@@ -45,7 +45,7 @@ index ebfbf67d65dc5a54e9235f44ab391147c23ddd0f..162ecea875d99115cdd742524ce65ee7
this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, Axolotl.class, true, false)); this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, Axolotl.class, true, false));
this.targetSelector.addGoal(5, new NearestAttackableTargetGoal<>(this, Turtle.class, 10, true, false, Turtle.BABY_ON_LAND_SELECTOR)); this.targetSelector.addGoal(5, new NearestAttackableTargetGoal<>(this, Turtle.class, 10, true, false, Turtle.BABY_ON_LAND_SELECTOR));
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 52f2d2df03314c8ddf70b240dca82cafa44c6b07..624e4007f031b5781e34f4cb6614e8c767999ee2 100644 index 9c49b930d80a97ad76f0b93cb883f832974c76fd..1bb5eb0f75dc4509377cf54054eba34e4ffd02a9 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
@@ -157,7 +157,19 @@ public class Zombie extends Monster { @@ -157,7 +157,19 @@ public class Zombie extends Monster {

View File

@@ -18,7 +18,7 @@ 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 d14a5d68ab1b03d44eec991b4e5e58769e034beb..7835f5f53cd50d87013d7a85cbe1dc771faf606d 100644 index 6dda652c76130b477b3d47bc53761a36ef55c1d7..dde0affb3b966ea3160a9f28b2921d128b6c1b92 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 @@ -1693,7 +1693,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -31,7 +31,7 @@ index d14a5d68ab1b03d44eec991b4e5e58769e034beb..7835f5f53cd50d87013d7a85cbe1dc77
} }
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 c7efa4fafca71ec9c287b6a11e5d162852bf0447..b5714ff84843859a472c8c8cb1e3f068b2433676 100644 index cd54fd87fc48ee0423263c4365ac7660a9ece741..d92c809cb8dff4d146e98f20daf286180f0c43a6 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 {
@@ -43,7 +43,7 @@ index c7efa4fafca71ec9c287b6a11e5d162852bf0447..b5714ff84843859a472c8c8cb1e3f068
private final RandomSequences randomSequences; private final RandomSequences randomSequences;
public long lastMidTickExecuteFailure; // Paper - execute chunk tasks mid tick public long lastMidTickExecuteFailure; // Paper - execute chunk tasks mid tick
@@ -792,6 +794,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -787,6 +789,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.chunkTaskScheduler = new io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler(this, io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.workerThreads); // Paper - rewrite chunk system this.chunkTaskScheduler = new io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler(this, io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.workerThreads); // Paper - rewrite chunk system
this.entityLookup = new io.papermc.paper.chunk.system.entity.EntityLookup(this, new EntityCallbacks()); // Paper - rewrite chunk system this.entityLookup = new io.papermc.paper.chunk.system.entity.EntityLookup(this, new EntityCallbacks()); // Paper - rewrite chunk system
@@ -51,7 +51,7 @@ index c7efa4fafca71ec9c287b6a11e5d162852bf0447..b5714ff84843859a472c8c8cb1e3f068
} }
// Paper start // Paper start
@@ -982,6 +985,13 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -977,6 +980,13 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.serverLevelData.setGameTime(i); this.serverLevelData.setGameTime(i);
this.serverLevelData.getScheduledEvents().tick(this.server, i); this.serverLevelData.getScheduledEvents().tick(this.server, i);
if (this.levelData.getGameRules().getBoolean(GameRules.RULE_DAYLIGHT)) { if (this.levelData.getGameRules().getBoolean(GameRules.RULE_DAYLIGHT)) {
@@ -65,7 +65,7 @@ index c7efa4fafca71ec9c287b6a11e5d162852bf0447..b5714ff84843859a472c8c8cb1e3f068
this.setDayTime(this.levelData.getDayTime() + 1L); this.setDayTime(this.levelData.getDayTime() + 1L);
} }
@@ -990,7 +1000,21 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -985,7 +995,21 @@ public class ServerLevel extends Level implements WorldGenLevel {
public void setDayTime(long timeOfDay) { public void setDayTime(long timeOfDay) {
this.serverLevelData.setDayTime(timeOfDay); this.serverLevelData.setDayTime(timeOfDay);

View File

@@ -42,10 +42,10 @@ index 081d1e38b7b1f286e138b0981aaa760e58761215..d94928a78d166dd3d836261b4f99fb4f
EntityBreedEvent entityBreedEvent = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityBreedEvent(entityageable, this, other, breeder, this.breedItem, experience); EntityBreedEvent entityBreedEvent = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityBreedEvent(entityageable, this, other, breeder, this.breedItem, experience);
if (entityBreedEvent.isCancelled()) { if (entityBreedEvent.isCancelled()) {
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 6a044ac07f69dc3e7edbc761f982479bb4aff9bd..1df81be711afc2adeb6908c86c7952580f3c8f0a 100644 index 1c8653222f07f5aa12639a95c13fdcdfd5dd87c0..29ff1ca5180aee623cd56c7310c2c0843f9a0b0a 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
@@ -197,6 +197,49 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -196,6 +196,49 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
} }
// Paper end - fix and optimise world upgrading // Paper end - fix and optimise world upgrading
@@ -95,7 +95,7 @@ index 6a044ac07f69dc3e7edbc761f982479bb4aff9bd..1df81be711afc2adeb6908c86c795258
public CraftWorld getWorld() { public CraftWorld getWorld() {
return this.world; return this.world;
} }
@@ -220,6 +263,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -219,6 +262,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
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 this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config
this.purpurConfig = new org.purpurmc.purpur.PurpurWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), env); // Purpur this.purpurConfig = new org.purpurmc.purpur.PurpurWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), env); // Purpur

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Set name visible when using a Name Tag on an Armor Stand
diff --git a/src/main/java/net/minecraft/world/item/NameTagItem.java b/src/main/java/net/minecraft/world/item/NameTagItem.java diff --git a/src/main/java/net/minecraft/world/item/NameTagItem.java b/src/main/java/net/minecraft/world/item/NameTagItem.java
index 2941c16ef486345b57ab2dfcd26f0272285d3b5a..7cc6812bf6f2ba015f65fd1fc1eaac02dd0f53e2 100644 index d12b3fb8b5e28ba4524d163878be978b1b42d019..f570ad65b746b596479c987f2fdf37d1ae94ab47 100644
--- a/src/main/java/net/minecraft/world/item/NameTagItem.java --- a/src/main/java/net/minecraft/world/item/NameTagItem.java
+++ b/src/main/java/net/minecraft/world/item/NameTagItem.java +++ b/src/main/java/net/minecraft/world/item/NameTagItem.java
@@ -20,6 +20,7 @@ public class NameTagItem extends Item { @@ -20,6 +20,7 @@ public class NameTagItem extends Item {
@@ -15,9 +15,9 @@ index 2941c16ef486345b57ab2dfcd26f0272285d3b5a..7cc6812bf6f2ba015f65fd1fc1eaac02
+ if (user.level().purpurConfig.armorstandFixNametags && entity instanceof net.minecraft.world.entity.decoration.ArmorStand) entity.setCustomNameVisible(true); // Purpur + if (user.level().purpurConfig.armorstandFixNametags && entity instanceof net.minecraft.world.entity.decoration.ArmorStand) entity.setCustomNameVisible(true); // Purpur
if (event.isPersistent() && newEntityLiving instanceof Mob) { if (event.isPersistent() && newEntityLiving instanceof Mob) {
((Mob) newEntityLiving).setPersistenceRequired(); ((Mob) newEntityLiving).setPersistenceRequired();
// Paper end // Paper end - Add PlayerNameEntityEvent
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 82d7028c1fc2ddfbb8bbcee9205375f4807c8e25..725c942c6c9b26c9fa0b3aeb65f51a34996f72d3 100644 index 2ac5c8b427e2615b7522f745d431e78ff784d90c..a2b22b2b96cc476e7ed7b804ea175833853a9495 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
@@ -98,9 +98,11 @@ public class PurpurWorldConfig { @@ -98,9 +98,11 @@ public class PurpurWorldConfig {

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 575f026c086e24663b5d38222915460923937723..77cced190bd287ff3f5bc8697f16b333da0bc786 100644 index 2b270820c0af7fdda7c4bf9edf48522611b2a454..f22d8b0ba80ada0d9f75b621b6a64914ad95567a 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,7 +17,7 @@ index 575f026c086e24663b5d38222915460923937723..77cced190bd287ff3f5bc8697f16b333
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 9de37c25f7a970326dc96a3dd4b2fddf59f404c9..fb3b7f0d6e1577f4bba4589dc454ed6d064bd49f 100644 index dde0affb3b966ea3160a9f28b2921d128b6c1b92..5b635c649c320e0b2d0ff30154f97270390cd440 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 @@ -1054,6 +1054,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -26,10 +26,10 @@ index 9de37c25f7a970326dc96a3dd4b2fddf59f404c9..fb3b7f0d6e1577f4bba4589dc454ed6d
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
this.isRestarting = isRestarting; this.isRestarting = isRestarting;
this.hasLoggedStop = true; // Paper this.hasLoggedStop = true; // Paper - Debugging
if (isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread("Server stopped"); // Paper if (isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread("Server stopped"); // Paper - Debugging
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 5ebe7e5c4f12ccb8a91a1e6a0f029d0f54b09e15..68d607dfed0130f1003951b4ac56d91b80ba09d1 100644 index 1fbfe61b3d7fc372f044d2e9f3500d6665209973..18ec329505b0e1e76f5967ca6b298ed2d1911823 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -350,6 +350,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -350,6 +350,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -41,12 +41,12 @@ index 5ebe7e5c4f12ccb8a91a1e6a0f029d0f54b09e15..68d607dfed0130f1003951b4ac56d91b
} }
} }
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 ea37e30846c496f92ceab7cee0cb19ffd82cfc0a..e7b654c1991348a7f73ca8bc950d776e4e708779 100644 index af883d6cccb83e50268fb264f929a6f69874201c..58b531c14c36bec725891c899b3f3586b5c11d9e 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 {
public @Nullable String clientBrandName = null; // Paper - Brand name public @Nullable String clientBrandName = null; // Paper - Brand support
public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - there are a lot of changes to do if we change all methods leading to the event public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - Add API for quit reason; there are a lot of changes to do if we change all methods leading to the event
public boolean purpurClient = false; // Purpur public boolean purpurClient = false; // Purpur
+ private boolean tpsBar = false; // Purpur + private boolean tpsBar = false; // Purpur
@@ -83,7 +83,7 @@ index ea37e30846c496f92ceab7cee0cb19ffd82cfc0a..e7b654c1991348a7f73ca8bc950d776e
// 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 0ced4627e0374d7e9fcbff256505b190021efd3f..3b5102017258339cda813e105dd2141b067b9f5d 100644 index a0db3194bc30160f349ae6319ce0faf845a40b51..18f59fcca1b905f20e2e4845864b7be67ec84efc 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 {
@@ -97,7 +97,7 @@ index 0ced4627e0374d7e9fcbff256505b190021efd3f..3b5102017258339cda813e105dd2141b
@@ -599,6 +600,7 @@ public abstract class PlayerList { @@ -599,6 +600,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 // Paper end - Fix kick event leave message not being sent
+ org.purpurmc.purpur.task.BossBarTask.removeFromAll(entityplayer.getBukkitEntity()); // Purpur + org.purpurmc.purpur.task.BossBarTask.removeFromAll(entityplayer.getBukkitEntity()); // Purpur
ServerLevel worldserver = entityplayer.serverLevel(); ServerLevel worldserver = entityplayer.serverLevel();

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] PlayerBookTooLargeEvent
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 2979e843ba65fece078a3d5ab5256d5e656f8912..23cc99227c802368a4bfb9e7c6eda43357dd0576 100644 index 2cb344c02a3812225679d7392b9f557309d05010..afcf996540d2482b0a1afac5b2656beb53b41619 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
@@ -1154,10 +1154,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1151,10 +1151,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
int maxBookPageSize = io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.pageMax; int maxBookPageSize = io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.pageMax;
double multiplier = Math.max(0.3D, Math.min(1D, io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.totalMultiplier)); double multiplier = Math.max(0.3D, Math.min(1D, io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.totalMultiplier));
long byteAllowed = maxBookPageSize; long byteAllowed = maxBookPageSize;
@@ -24,7 +24,7 @@ index 2979e843ba65fece078a3d5ab5256d5e656f8912..23cc99227c802368a4bfb9e7c6eda433
server.scheduleOnMain(() -> this.disconnect("Book too large!", org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION)); // Paper - kick event cause server.scheduleOnMain(() -> this.disconnect("Book too large!", org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION)); // Paper - kick event cause
return; return;
} }
@@ -1181,6 +1186,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1178,6 +1183,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
if (byteTotal > byteAllowed) { if (byteTotal > byteAllowed) {
ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send too large of a book. Book Size: " + byteTotal + " - Allowed: "+ byteAllowed + " - Pages: " + pageList.size()); ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send too large of a book. Book Size: " + byteTotal + " - Allowed: "+ byteAllowed + " - Pages: " + pageList.size());

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add mobGriefing bypass to everything affected
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 a58e5dc0b1216f7f8cfc93c7a3f967cdd3b70df0..29260e8898bb68f4bf31e0bb4b7c721eb5a94344 100644 index 43428fecf9b29cbf53ee18567ac797b9e84da6ad..e3723269a5651d02521da5cc0bca615bb3c81c61 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
@@ -1808,7 +1808,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -1808,7 +1808,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -18,7 +18,7 @@ index a58e5dc0b1216f7f8cfc93c7a3f967cdd3b70df0..29260e8898bb68f4bf31e0bb4b7c721e
BlockState iblockdata = Blocks.WITHER_ROSE.defaultBlockState(); BlockState iblockdata = Blocks.WITHER_ROSE.defaultBlockState();
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 99c8999852f05b92795bbc2f243d7220b0869858..7203384094de96ceea810b3e2da21c145c12a31d 100644 index aa9c5397361bc109d9d910b9c9510ca7394a4da4..4383b2555cb416fce7b62b046211dbc3e8c75601 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
@@ -705,7 +705,7 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -705,7 +705,7 @@ public abstract class Mob extends LivingEntity implements Targeting {
@@ -92,7 +92,7 @@ index 5580a396a56c6e0f364a5368985ee99b9e2be0a8..3facfd6eee17cb0b59425494c966e198
} else if (this.nextStartTick > 0) { } else if (this.nextStartTick > 0) {
--this.nextStartTick; --this.nextStartTick;
diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java
index 25937f3da809151bddc2d7fa058303d4f7602d65..95fcde9f1e8bb1567e117b386240c68c9a9999e8 100644 index 78558d24d0434fd6d90af81c38d8d9d03d79253f..292504cb09ac94f593fdde317030c7662f9e500c 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Fox.java --- a/src/main/java/net/minecraft/world/entity/animal/Fox.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java +++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java
@@ -1385,7 +1385,7 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> { @@ -1385,7 +1385,7 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
@@ -131,7 +131,7 @@ index 6fac5dbbbd9600e82b1dd1496680f551ab44313e..fd64a12c7f215f47d366af60882981c2
} }
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index f76a96f79e8adac39b31e8a167ef280391571bd9..d276009a7c4f641f565bfaa97774e2c55750f9bd 100644 index 277e0ef0c5dfd61ea21de7898bfe3ffdb7f7e17b..066dc828681ac665e807038d1a2afccb886c3ca6 100644
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -604,7 +604,7 @@ public class EnderDragon extends Mob implements Enemy { @@ -604,7 +604,7 @@ public class EnderDragon extends Mob implements Enemy {
@@ -144,7 +144,7 @@ index f76a96f79e8adac39b31e8a167ef280391571bd9..d276009a7c4f641f565bfaa97774e2c5
// flag1 = this.level().removeBlock(blockposition, false) || flag1; // flag1 = this.level().removeBlock(blockposition, false) || flag1;
flag1 = true; flag1 = true;
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
index 935adddc0ba26c93026b079747dd9c3e97d7421b..9acfdc58c93ec06346e717f4a0f80c6dd7f586ee 100644 index 6bc0713a8bc8ac86f1febe3414bed135c1cd5336..a655c38eccc41d97cfb6d329e104bad6d9ccbc95 100644
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -493,7 +493,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -493,7 +493,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -157,7 +157,7 @@ index 935adddc0ba26c93026b079747dd9c3e97d7421b..9acfdc58c93ec06346e717f4a0f80c6d
j = Mth.floor(this.getX()); j = Mth.floor(this.getX());
int i1 = Mth.floor(this.getZ()); int i1 = Mth.floor(this.getZ());
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
index 9fe10040e67c2679cda4254205217a363c10f883..cfcf37696e2eaf7a8341135fd5c28ad5ebccf80a 100644 index 1851cd59230447f0d2beed10846de96d497e8a04..4ed9592387531d0880ba322b07ea776cd0b05f03 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -549,7 +549,15 @@ public class EnderMan extends Monster implements NeutralMob { @@ -549,7 +549,15 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -208,7 +208,7 @@ index 30a04ea1f66fe5dbbae27a48764e4bd0f66bf0b1..a7e77eae357e0fd146f340f8c3981f1a
} else { } else {
List<Sheep> list = Evoker.this.level().getNearbyEntities(Sheep.class, this.wololoTargeting, Evoker.this, Evoker.this.getBoundingBox().inflate(16.0D, 4.0D, 16.0D)); List<Sheep> list = Evoker.this.level().getNearbyEntities(Sheep.class, this.wololoTargeting, Evoker.this, Evoker.this.getBoundingBox().inflate(16.0D, 4.0D, 16.0D));
diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
index 28795558000d76fd255faabc79cc45600efa2c92..5aa00878c4c7be4a38137a93b1a2cf1c468422ea 100644 index 226b44ba4cd3a08562c8cb0d79c1d880cfac34ec..056fa8b12368dac5d1a12962b8ee92e87e4149b3 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java --- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java +++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
@@ -176,7 +176,7 @@ public class Ravager extends Raider { @@ -176,7 +176,7 @@ public class Ravager extends Raider {
@@ -243,7 +243,7 @@ index 1738f0a251e4cab2eb3f122e83366afb02201765..49a37d294bac8205ac0a795daa300ccc
BlockPos blockposition = BlockPos.containing(this.mob.getX(), this.mob.getY() + 0.5D, this.mob.getZ()).relative(this.selectedDirection); BlockPos blockposition = BlockPos.containing(this.mob.getX(), this.mob.getY() + 0.5D, this.mob.getZ()).relative(this.selectedDirection);
BlockState iblockdata = this.mob.level().getBlockState(blockposition); BlockState iblockdata = this.mob.level().getBlockState(blockposition);
diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
index d9b1bde3ce458b7e50f7645d07ee578d13006a0a..d133820c47ecda733aa8242acdb2cd3ba0f0b677 100644 index b5e6a48192592e9bc5a7c0a2775e5d78f06cd46a..03b58860ecb72976ecce99f368d16942557236b9 100644
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java --- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
@@ -424,7 +424,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @@ -424,7 +424,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
@@ -284,7 +284,7 @@ index 6b67eec90cd0dc1b20762514eac97f75fdbdf182..2dec28091d1816e9d4c749a5155e8303
// CraftBukkit start - fire ExplosionPrimeEvent // CraftBukkit start - fire ExplosionPrimeEvent
ExplosionPrimeEvent event = new ExplosionPrimeEvent((org.bukkit.entity.Explosive) this.getBukkitEntity()); ExplosionPrimeEvent event = new ExplosionPrimeEvent((org.bukkit.entity.Explosive) this.getBukkitEntity());
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
index f0a6251cc8f612b898231e505c47fd5b2bbb4973..8e13b5d3e89e49994ad9763be7e4f35dd58a9c5e 100644 index 2d09d39a5971615a40b33baa0991c3e432f3ca18..f0c72be4a0dacad52ded87fa051b8505c1b79eae 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java --- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java +++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
@@ -334,7 +334,7 @@ public abstract class Projectile extends Entity implements TraceableEntity { @@ -334,7 +334,7 @@ public abstract class Projectile extends Entity implements TraceableEntity {
@@ -310,7 +310,7 @@ index 9d43c8520953d6fe0d0948f9dbe14e0650ee01c2..deee9fffe6981d7e728621cc799a812d
// CraftBukkit end // CraftBukkit end
} }
diff --git a/src/main/java/net/minecraft/world/entity/raid/Raider.java b/src/main/java/net/minecraft/world/entity/raid/Raider.java diff --git a/src/main/java/net/minecraft/world/entity/raid/Raider.java b/src/main/java/net/minecraft/world/entity/raid/Raider.java
index cdbc925ef61b8b439415f0a89368227890bcecb2..300411e88cdaef7e0ce280edbd5f18fa8d004a33 100644 index 226fb5c88dd43c8008c5237299ef80db9e847af7..2da00acac01e333c23f7d155594011dceeb50f64 100644
--- a/src/main/java/net/minecraft/world/entity/raid/Raider.java --- a/src/main/java/net/minecraft/world/entity/raid/Raider.java
+++ b/src/main/java/net/minecraft/world/entity/raid/Raider.java +++ b/src/main/java/net/minecraft/world/entity/raid/Raider.java
@@ -319,7 +319,7 @@ public abstract class Raider extends PatrollingMonster { @@ -319,7 +319,7 @@ public abstract class Raider extends PatrollingMonster {
@@ -323,20 +323,20 @@ index cdbc925ef61b8b439415f0a89368227890bcecb2..300411e88cdaef7e0ce280edbd5f18fa
if (this.mob.hasActiveRaid() && !this.mob.getCurrentRaid().isOver() && this.mob.canBeLeader() && !ItemStack.matches(this.mob.getItemBySlot(EquipmentSlot.HEAD), Raid.getLeaderBannerInstance())) { if (this.mob.hasActiveRaid() && !this.mob.getCurrentRaid().isOver() && this.mob.canBeLeader() && !ItemStack.matches(this.mob.getItemBySlot(EquipmentSlot.HEAD), Raid.getLeaderBannerInstance())) {
diff --git a/src/main/java/net/minecraft/world/level/block/CropBlock.java b/src/main/java/net/minecraft/world/level/block/CropBlock.java diff --git a/src/main/java/net/minecraft/world/level/block/CropBlock.java b/src/main/java/net/minecraft/world/level/block/CropBlock.java
index 9550ce8588c6aa3ba4cbbbb86912eae2b452eb01..059582e872f9f3c47187e12dbe174541aa934787 100644 index 5b96d1ae4bd8546311e986bc312b1f85883a67f4..07b148fc31aee3ce009d1d768ae16d98268339cc 100644
--- a/src/main/java/net/minecraft/world/level/block/CropBlock.java --- a/src/main/java/net/minecraft/world/level/block/CropBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/CropBlock.java +++ b/src/main/java/net/minecraft/world/level/block/CropBlock.java
@@ -179,7 +179,7 @@ public class CropBlock extends BushBlock implements BonemealableBlock { @@ -179,7 +179,7 @@ public class CropBlock extends BushBlock implements BonemealableBlock {
@Override @Override
public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) {
if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent
- if (entity instanceof Ravager && CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.AIR.defaultBlockState(), !world.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING))) { // CraftBukkit - if (entity instanceof Ravager && CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.AIR.defaultBlockState(), !world.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING))) { // CraftBukkit
+ if (entity instanceof Ravager && CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.AIR.defaultBlockState(), (!world.purpurConfig.ravagerBypassMobGriefing && !world.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)))) { // CraftBukkit // Purpur + if (entity instanceof Ravager && CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.AIR.defaultBlockState(), (!world.purpurConfig.ravagerBypassMobGriefing && !world.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)))) { // CraftBukkit // Purpur
world.destroyBlock(pos, true, entity); world.destroyBlock(pos, true, entity);
} }
diff --git a/src/main/java/net/minecraft/world/level/block/FarmBlock.java b/src/main/java/net/minecraft/world/level/block/FarmBlock.java diff --git a/src/main/java/net/minecraft/world/level/block/FarmBlock.java b/src/main/java/net/minecraft/world/level/block/FarmBlock.java
index 73310204ed1fa4d72d2ec6239bb6e29319bb97cd..bcef88bf7e9d4fa09c4ebec26464b5bfb96d865d 100644 index 386841341b59f05be0473bbfd2baf14c9b8e94c8..7f2943caa60fd8607fb525b746663a761bf1951c 100644
--- a/src/main/java/net/minecraft/world/level/block/FarmBlock.java --- a/src/main/java/net/minecraft/world/level/block/FarmBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/FarmBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FarmBlock.java
@@ -110,7 +110,7 @@ public class FarmBlock extends Block { @@ -110,7 +110,7 @@ public class FarmBlock extends Block {
@@ -349,7 +349,7 @@ index 73310204ed1fa4d72d2ec6239bb6e29319bb97cd..bcef88bf7e9d4fa09c4ebec26464b5bf
org.bukkit.event.Cancellable cancellable; org.bukkit.event.Cancellable cancellable;
if (entity instanceof Player) { if (entity instanceof Player) {
diff --git a/src/main/java/net/minecraft/world/level/block/PowderSnowBlock.java b/src/main/java/net/minecraft/world/level/block/PowderSnowBlock.java diff --git a/src/main/java/net/minecraft/world/level/block/PowderSnowBlock.java b/src/main/java/net/minecraft/world/level/block/PowderSnowBlock.java
index f579911b06b66e94e6311d970e93cca33fa089c6..2c63579226409a1823d2e8990e7ffc4250b83afb 100644 index 0dfcac8cfcbb09fe04486bff60119f7985714454..2dbf71e421156093c8bc387941eae991f5e6c957 100644
--- a/src/main/java/net/minecraft/world/level/block/PowderSnowBlock.java --- a/src/main/java/net/minecraft/world/level/block/PowderSnowBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/PowderSnowBlock.java +++ b/src/main/java/net/minecraft/world/level/block/PowderSnowBlock.java
@@ -80,7 +80,7 @@ public class PowderSnowBlock extends Block implements BucketPickup { @@ -80,7 +80,7 @@ public class PowderSnowBlock extends Block implements BucketPickup {

View File

@@ -17,12 +17,12 @@ 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/level/block/EndPortalBlock.java b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java diff --git a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java
index c82ebcac07033d887af499f81520982fbe5ed4f1..bc73d1051749339b44ff6765162ab6a76663a628 100644 index a0c1db8cfebaa0344012cc0af18d6231cdcdcbb8..a5a8bd6813b68ab2e913fc3ae30c9950c242beb3 100644
--- a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java --- a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java +++ b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java
@@ -54,6 +54,14 @@ public class EndPortalBlock extends BaseEntityBlock { @@ -54,6 +54,14 @@ public class EndPortalBlock extends BaseEntityBlock {
public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) {
if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent
if (world instanceof ServerLevel && entity.canChangeDimensions() && Shapes.joinIsNotEmpty(Shapes.create(entity.getBoundingBox().move((double) (-pos.getX()), (double) (-pos.getY()), (double) (-pos.getZ()))), state.getShape(world, pos), BooleanOp.AND)) { if (world instanceof ServerLevel && entity.canChangeDimensions() && Shapes.joinIsNotEmpty(Shapes.create(entity.getBoundingBox().move((double) (-pos.getX()), (double) (-pos.getY()), (double) (-pos.getZ()))), state.getShape(world, pos), BooleanOp.AND)) {
+ // Purpur start + // Purpur start
+ if (entity.isPassenger() || entity.isVehicle()) { + if (entity.isPassenger() || entity.isVehicle()) {
@@ -36,12 +36,12 @@ index c82ebcac07033d887af499f81520982fbe5ed4f1..bc73d1051749339b44ff6765162ab6a7
ServerLevel worldserver = ((ServerLevel) world).getServer().getLevel(resourcekey); ServerLevel worldserver = ((ServerLevel) world).getServer().getLevel(resourcekey);
diff --git a/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java b/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java diff --git a/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java b/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java
index ee998d06804e344ea9d5b84ef0074b84aaba04c2..c51ac562d642061ce60db66ae9a86eecd9d85ecb 100644 index 1b5cc5d6aa0b4313da980ce175c54145852d0db0..613df7b174ba4cb87314a631ebc7dfeda8ede58f 100644
--- a/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java --- a/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java +++ b/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java
@@ -92,6 +92,14 @@ public class NetherPortalBlock extends Block { @@ -92,6 +92,14 @@ public class NetherPortalBlock extends Block {
public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) {
if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent
if (entity.canChangeDimensions()) { if (entity.canChangeDimensions()) {
+ // Purpur start + // Purpur start
+ if (entity.isPassenger() || entity.isVehicle()) { + if (entity.isPassenger() || entity.isVehicle()) {
@@ -55,7 +55,7 @@ index ee998d06804e344ea9d5b84ef0074b84aaba04c2..c51ac562d642061ce60db66ae9a86eec
EntityPortalEnterEvent event = new EntityPortalEnterEvent(entity.getBukkitEntity(), new org.bukkit.Location(world.getWorld(), pos.getX(), pos.getY(), pos.getZ())); EntityPortalEnterEvent event = new EntityPortalEnterEvent(entity.getBukkitEntity(), new org.bukkit.Location(world.getWorld(), pos.getX(), pos.getY(), pos.getZ()));
world.getCraftServer().getPluginManager().callEvent(event); world.getCraftServer().getPluginManager().callEvent(event);
diff --git a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java diff --git a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
index 2e264b8b13df9da9163a80b3dd4345af3cff431c..7b27852682909b7d19942bbb517e6107534f61c2 100644 index f5f464e69bfb00f5ea493d109bdd96e459fcad46..c3d25a26883f7cbe7106c2f3415af0b18f534ee2 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java --- a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
@@ -178,6 +178,14 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity { @@ -178,6 +178,14 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity {
@@ -74,7 +74,7 @@ index 2e264b8b13df9da9163a80b3dd4345af3cff431c..7b27852682909b7d19942bbb517e6107
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 1c89cbf1a582604ed4be0849bd65dae5eb17f28a..98d2ef7870c921093a9dbaf0f4de77d86ef81d44 100644 index 6f7be7d29b4654d463299c62b8a01696ca187eb2..c3880875f5148d869d7e067fe78cbd1b9492b501 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,7 +89,7 @@ index 1c89cbf1a582604ed4be0849bd65dae5eb17f28a..98d2ef7870c921093a9dbaf0f4de77d8
} }
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 5f8b485ed8e0444c8c7e2a438cb65113d35bec68..df8f06c898155955fed05c0b41b8ce14b13ec920 100644 index 833d20484c3bd5b59fff64141f2aa352742a3d5f..9cf6f19312242d3efac0b689cc8b31b9256694f0 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 { @@ -1368,6 +1368,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -104,7 +104,7 @@ index 5f8b485ed8e0444c8c7e2a438cb65113d35bec68..df8f06c898155955fed05c0b41b8ce14
} }
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 647b58652a87d1d1b4b022853052ea19afa80152..68a3f2be0b4d99041dcdb9e37c0e1dbcb9c1ae87 100644 index ed61bb01ef1235df2d89bb8f173cbcda4bb65d44..5f13cfd5ebc40793242136570948a87dce867f59 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
@@ -117,6 +117,7 @@ public class PurpurWorldConfig { @@ -117,6 +117,7 @@ public class PurpurWorldConfig {

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 49770fba1b986769d44793d7fadc8b098dbe6740..645aed66d9b17a6ee30e5f329d8e29b56d48be11 100644 index cc7cdb842df3a9d9cb9dc86b589c9893e06577ce..7e92c7a9c5792cb0d4c6c4370449aa0cf36d7dc5 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
@@ -1876,7 +1876,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -1875,7 +1875,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return this.isInWater() || flag; return this.isInWater() || flag;
} }
@@ -30,18 +30,18 @@ index 49770fba1b986769d44793d7fadc8b098dbe6740..645aed66d9b17a6ee30e5f329d8e29b5
if (entity instanceof Boat) { if (entity instanceof Boat) {
diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
index 1ce5b80e5d7d50ccc50b7c862c6819a8b0e3c174..69f8fc750d37b14a88aaf41fd20890c58156809d 100644 index 728814649f8d6837586cd5400b271d25b8306e35..53f36e281e42a2bfc174f06f448f1eb85eb02aff 100644
--- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java --- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
+++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
@@ -99,10 +99,12 @@ public class ArmorStand extends LivingEntity { @@ -99,10 +99,12 @@ public class ArmorStand extends LivingEntity {
private boolean noTickPoseDirty = false; private boolean noTickPoseDirty = false;
private boolean noTickEquipmentDirty = false; private boolean noTickEquipmentDirty = false;
// Paper end // Paper end - Allow ArmorStands not to tick
+ public boolean canMovementTick = true; // Purpur + public boolean canMovementTick = true; // Purpur
public ArmorStand(EntityType<? extends ArmorStand> type, Level world) { public ArmorStand(EntityType<? extends ArmorStand> type, Level world) {
super(type, world); super(type, world);
if (world != null) this.canTick = world.paperConfig().entities.armorStands.tick; // Paper - armour stand ticking if (world != null) this.canTick = world.paperConfig().entities.armorStands.tick; // Paper - Allow ArmorStands not to tick
+ if (world != null) this.canMovementTick = world.purpurConfig.armorstandMovement; // Purpur + if (world != null) this.canMovementTick = world.purpurConfig.armorstandMovement; // Purpur
this.handItems = NonNullList.withSize(2, ItemStack.EMPTY); this.handItems = NonNullList.withSize(2, ItemStack.EMPTY);
this.armorItems = NonNullList.withSize(4, ItemStack.EMPTY); this.armorItems = NonNullList.withSize(4, ItemStack.EMPTY);

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 e7b654c1991348a7f73ca8bc950d776e4e708779..487e4ab76e255e10369f7968d73d41956e99ae66 100644 index 58b531c14c36bec725891c899b3f3586b5c11d9e..921738689a367c231e99eff6bc9fc305ebb31012 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 e7b654c1991348a7f73ca8bc950d776e4e708779..487e4ab76e255e10369f7968d73d4195
// 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 2919e79d24eecb3114d1a32991e12c39ac88f6b8..07a9f53448e6adbb45d941a72759187fefe30313 100644 index 7e92c7a9c5792cb0d4c6c4370449aa0cf36d7dc5..a040e92c3b3700461e630cd5299ff6c7400c273f 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
@@ -3150,12 +3150,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -3149,12 +3149,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return Vec3.directionFromRotation(this.getRotationVector()); return Vec3.directionFromRotation(this.getRotationVector());
} }
@@ -37,7 +37,7 @@ index 2919e79d24eecb3114d1a32991e12c39ac88f6b8..07a9f53448e6adbb45d941a72759187f
this.isInsidePortal = true; this.isInsidePortal = true;
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 08136dfa12437d4d4bf7b5d3d9404db671e6925c..7d576796981ce7b6a292499ed755d86c86bf51db 100644 index 54775a4c13dd8b03373bb1e47bb591ac0a2f82c7..cd4a14bd5d13b41d02ad68ddf31fd3648f933850 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
@@ -333,6 +333,7 @@ public class PurpurWorldConfig { @@ -333,6 +333,7 @@ public class PurpurWorldConfig {

View File

@@ -21,7 +21,7 @@ index 19f95ddb2fa9dd264947a8b0033dd7437ee66c7f..d04e48d6a0a6dc7825a3e3d4cf854e29
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/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
index 92777e7f6c6293c5b5689cfa5f992335629d05eb..39dc169eedc407284452380a883e8a2735cc46cb 100644 index 8910aaaa1fdabecec4740d6212db3114bd1197fc..3c7db09c5fbcb9d57febc937158b50634d68a082 100644
--- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java --- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java
+++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java +++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
@@ -280,6 +280,11 @@ public class Bat extends AmbientCreature { @@ -280,6 +280,11 @@ public class Bat extends AmbientCreature {
@@ -37,11 +37,11 @@ index 92777e7f6c6293c5b5689cfa5f992335629d05eb..39dc169eedc407284452380a883e8a27
public void readAdditionalSaveData(CompoundTag nbt) { public void readAdditionalSaveData(CompoundTag nbt) {
super.readAdditionalSaveData(nbt); super.readAdditionalSaveData(nbt);
diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java
index 6d3e16e9fb043d538b9c093fb79d092fce90d75a..0db5e35b8e4a186c8ef150a1b0f072e10573136e 100644 index 2b69a3e860f95d4294dda8d05126f431eb7dd5b6..52a7a8b35cf0f7b52d5de253b21f7713ab261544 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Bee.java --- a/src/main/java/net/minecraft/world/entity/animal/Bee.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java +++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java
@@ -180,7 +180,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { @@ -180,7 +180,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
// Paper end // Paper end - Fix MC-167279
this.lookControl = new Bee.BeeLookControl(this); this.lookControl = new Bee.BeeLookControl(this);
this.setPathfindingMalus(BlockPathTypes.DANGER_FIRE, -1.0F); this.setPathfindingMalus(BlockPathTypes.DANGER_FIRE, -1.0F);
- this.setPathfindingMalus(BlockPathTypes.WATER, -1.0F); - this.setPathfindingMalus(BlockPathTypes.WATER, -1.0F);
@@ -62,7 +62,7 @@ index 6d3e16e9fb043d538b9c093fb79d092fce90d75a..0db5e35b8e4a186c8ef150a1b0f072e1
public int getRemainingPersistentAngerTime() { public int getRemainingPersistentAngerTime() {
return (Integer) this.entityData.get(Bee.DATA_REMAINING_ANGER_TIME); return (Integer) this.entityData.get(Bee.DATA_REMAINING_ANGER_TIME);
diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main/java/net/minecraft/world/entity/animal/Cat.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main/java/net/minecraft/world/entity/animal/Cat.java
index fff1da136b618ca8b9256b55996dc1d01dacd7b8..9279eb3c7a8affbecba1a8b27ca0685021676f39 100644 index fba85c1a43b184ada6c1bb499997322030f59665..a4b3d724f30ccf0eddfb41d6997d0aa9b1847b7a 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Cat.java --- a/src/main/java/net/minecraft/world/entity/animal/Cat.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java
@@ -133,6 +133,11 @@ public class Cat extends TamableAnimal implements VariantHolder<CatVariant> { @@ -133,6 +133,11 @@ public class Cat extends TamableAnimal implements VariantHolder<CatVariant> {
@@ -126,7 +126,7 @@ index c501704251e5b23f697efc307ebdc906cd2e5acd..f76b0d92150fd985a8fc699f6f884527
protected void registerGoals() { protected void registerGoals() {
this.goalSelector.addGoal(0, new FloatGoal(this)); this.goalSelector.addGoal(0, new FloatGoal(this));
diff --git a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
index ff11643193495f0646de4bcf13b7f1e57731e4fb..75585a6b275fafbc5ef112d9de4926b77fcb3781 100644 index cdbe66bc89a64f8d41ea496f2da85159f48bb8c5..a5759b711d1853ac41713dd9fe11f3da5af286ef 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java --- a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java +++ b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
@@ -163,6 +163,11 @@ public class Dolphin extends WaterAnimal { @@ -163,6 +163,11 @@ public class Dolphin extends WaterAnimal {
@@ -142,7 +142,7 @@ index ff11643193495f0646de4bcf13b7f1e57731e4fb..75585a6b275fafbc5ef112d9de4926b7
@Override @Override
public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData entityData, @Nullable CompoundTag entityNbt) { public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData entityData, @Nullable CompoundTag entityNbt) {
diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java
index fc3ec667aa2b8c3fe537cda0aeddd2192c0bbedf..c8efa4029136d0cd54a5f73f003e022511cc7c8b 100644 index 292504cb09ac94f593fdde317030c7662f9e500c..9a34a59300c4ad5dfbd327aa4fd42992f73da89a 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Fox.java --- a/src/main/java/net/minecraft/world/entity/animal/Fox.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java +++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java
@@ -193,6 +193,11 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> { @@ -193,6 +193,11 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
@@ -158,7 +158,7 @@ index fc3ec667aa2b8c3fe537cda0aeddd2192c0bbedf..c8efa4029136d0cd54a5f73f003e0225
protected void defineSynchedData() { protected void defineSynchedData() {
super.defineSynchedData(); super.defineSynchedData();
diff --git a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java diff --git a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
index 95ff109511c97d603aeaf9e73c49397a841fcbce..58539d29b8e2a8c0676cc574f64e7d61613e1451 100644 index 46e28d807a72b6d302d29d65c52ab0813cd82b1a..669132fb78d3fd72f73d4c20370f0213879baeaa 100644
--- a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java --- a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
+++ b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java +++ b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
@@ -88,6 +88,11 @@ public class IronGolem extends AbstractGolem implements NeutralMob { @@ -88,6 +88,11 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
@@ -174,7 +174,7 @@ index 95ff109511c97d603aeaf9e73c49397a841fcbce..58539d29b8e2a8c0676cc574f64e7d61
protected void registerGoals() { protected void registerGoals() {
if (level().purpurConfig.ironGolemCanSwim) this.goalSelector.addGoal(0, new net.minecraft.world.entity.ai.goal.FloatGoal(this)); // Purpur if (level().purpurConfig.ironGolemCanSwim) this.goalSelector.addGoal(0, new net.minecraft.world.entity.ai.goal.FloatGoal(this)); // Purpur
diff --git a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java diff --git a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
index db0170fb22ee8424c29fc0d4f3c93c9eac79611c..7bd539ed5fea0d4db8e97722bd9bd37e6563185d 100644 index 56427c987439c2d6d5652dae0f2c0a72d4eba26e..f01d93c6f88f543b51420ceca7a4a95829368a20 100644
--- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java --- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
+++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java +++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
@@ -90,6 +90,11 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder<Mushroo @@ -90,6 +90,11 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder<Mushroo
@@ -206,7 +206,7 @@ index 3fe751839e4a1bc266b0d9508e1e3384e8f7f41e..c91ade7f4b1f04f12e38cf2c5fda1a92
return (Boolean) this.entityData.get(Ocelot.DATA_TRUSTING); return (Boolean) this.entityData.get(Ocelot.DATA_TRUSTING);
} }
diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java
index 0d5cc20029e1876b79927a89716e2ecc144791e3..20eb69e7d944b74a84570d23947e7e2a75d63f8d 100644 index fe6323d131acc3885108d18f884a4c7d6d2f4905..68e4e598af97946783f851a63adbaaa4a4ef0401 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Panda.java --- a/src/main/java/net/minecraft/world/entity/animal/Panda.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java +++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java
@@ -151,6 +151,11 @@ public class Panda extends Animal { @@ -151,6 +151,11 @@ public class Panda extends Animal {
@@ -222,7 +222,7 @@ index 0d5cc20029e1876b79927a89716e2ecc144791e3..20eb69e7d944b74a84570d23947e7e2a
public boolean canTakeItem(ItemStack stack) { public boolean canTakeItem(ItemStack stack) {
EquipmentSlot enumitemslot = Mob.getEquipmentSlotForItem(stack); EquipmentSlot enumitemslot = Mob.getEquipmentSlotForItem(stack);
diff --git a/src/main/java/net/minecraft/world/entity/animal/Parrot.java b/src/main/java/net/minecraft/world/entity/animal/Parrot.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Parrot.java b/src/main/java/net/minecraft/world/entity/animal/Parrot.java
index 1bc595bb8b475aecdb106b53472678520621fcda..1fd962ef8bd53cd29c58509952e9d47a9d7e2020 100644 index 3bb216b678eee290a9ec636fe4d8af9db687405a..a6189e785af61d1cbed2022d68312d9fa69f68a8 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Parrot.java --- a/src/main/java/net/minecraft/world/entity/animal/Parrot.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Parrot.java +++ b/src/main/java/net/minecraft/world/entity/animal/Parrot.java
@@ -203,6 +203,11 @@ public class Parrot extends ShoulderRidingEntity implements VariantHolder<Parrot @@ -203,6 +203,11 @@ public class Parrot extends ShoulderRidingEntity implements VariantHolder<Parrot
@@ -379,7 +379,7 @@ index 7d02e552a27632939bb9c40a62f4e0df7bd60bbc..b16d075581a352714f86f1b87805f24c
return "entity.minecraft.tropical_fish.predefined." + variant; return "entity.minecraft.tropical_fish.predefined." + variant;
} }
diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
index f16b2d368ca247cad5764d11efa4fe754eadc6d6..cc1ccef921e70c33e5d6acbd73d5eecc4ea99064 100644 index 20d4c1b3cf3efa79443b518ebd9a635a39b4d73b..9d9cf38f0f2ff22e220ae8c38ec824132043603f 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java --- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java +++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
@@ -113,6 +113,11 @@ public class Turtle extends Animal { @@ -113,6 +113,11 @@ public class Turtle extends Animal {
@@ -395,7 +395,7 @@ index f16b2d368ca247cad5764d11efa4fe754eadc6d6..cc1ccef921e70c33e5d6acbd73d5eecc
this.entityData.set(Turtle.HOME_POS, pos.immutable()); // Paper - called with mutablepos... this.entityData.set(Turtle.HOME_POS, pos.immutable()); // Paper - called with mutablepos...
} }
diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
index bbecb3894d0f4a24442e8833f4d828e6173287da..f79dff635b09300f8d2cff0562f71587496ed33d 100644 index 1f69252653373b8eba46fdadac2141773ec72dff..8dc0a8a7b24b874d886626fa6ba757308b0d721b 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java --- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java +++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
@@ -212,6 +212,11 @@ public class Wolf extends TamableAnimal implements NeutralMob { @@ -212,6 +212,11 @@ public class Wolf extends TamableAnimal implements NeutralMob {
@@ -411,7 +411,7 @@ index bbecb3894d0f4a24442e8833f4d828e6173287da..f79dff635b09300f8d2cff0562f71587
protected void registerGoals() { protected void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this)); this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
index 4e8f5d80949f251af2740f2e1ceee203783cc839..9d52d0f1b57565bdea0333626d8dba9c01607a30 100644 index 8bad919c44f7c4c4c524ea9ad5c8e38ab891bd08..dfc9b95b98d3811fd926c4747ec59a4a836ceb14 100644
--- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java --- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
+++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java +++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
@@ -125,6 +125,11 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo @@ -125,6 +125,11 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
@@ -427,7 +427,7 @@ index 4e8f5d80949f251af2740f2e1ceee203783cc839..9d52d0f1b57565bdea0333626d8dba9c
public Map<String, Vector3f> getModelRotationValues() { public Map<String, Vector3f> getModelRotationValues() {
return this.modelRotationValues; return this.modelRotationValues;
diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
index 93295d9683293121f2267350194f18e97b2421c2..26062173d137e26abdc452f7b2e0be0ee6dddfa3 100644 index 0282498c7375a73b6982efb02f3cf3215f4211b0..5b3126168e9406f6cbd0607b6b7cc2de4ab68b65 100644
--- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java --- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
+++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java +++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
@@ -114,6 +114,11 @@ public class Goat extends Animal { @@ -114,6 +114,11 @@ public class Goat extends Animal {
@@ -475,7 +475,7 @@ index 0251ded48eb5bdf96f0e67f6456aa15909c8a4ff..f8dbea402f723bf38d7ab3f2468d1b02
protected void randomizeAttributes(RandomSource random) { protected void randomizeAttributes(RandomSource random) {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue((double)generateMaxHealth(random::nextInt)); this.getAttribute(Attributes.MAX_HEALTH).setBaseValue((double)generateMaxHealth(random::nextInt));
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
index 6045f29c641d1958371c77701e9514d9ca44b85e..58175824dc315134b03b9dabfcae04e192af0b86 100644 index e11fc274f893d501235422839301a5128268199d..fb2b0ebd9314ab7fc911e842767bd60b1db92b96 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java --- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
@@ -145,6 +145,11 @@ public class Llama extends AbstractChestedHorse implements VariantHolder<Llama.V @@ -145,6 +145,11 @@ public class Llama extends AbstractChestedHorse implements VariantHolder<Llama.V
@@ -555,7 +555,7 @@ index aaec706b7eaa6afdf7959e6dd53cc39344bb97df..dcc1d71c2eeea48669651165868899ba
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0D).add(Attributes.MOVEMENT_SPEED, (double)0.2F); return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0D).add(Attributes.MOVEMENT_SPEED, (double)0.2F);
} }
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index f5dfcf2aefebf9faabd962d6f331de88ae26eb26..df8baf2059cdfed3f0c43496fba843b8b6819281 100644 index 066dc828681ac665e807038d1a2afccb886c3ca6..4feb8220d58474c96b57c473215ffc8efcceb35e 100644
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -191,6 +191,11 @@ public class EnderDragon extends Mob implements Enemy { @@ -191,6 +191,11 @@ public class EnderDragon extends Mob implements Enemy {
@@ -571,7 +571,7 @@ index f5dfcf2aefebf9faabd962d6f331de88ae26eb26..df8baf2059cdfed3f0c43496fba843b8
return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 200.0D); return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 200.0D);
} }
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
index 5e61463f5d25b42165813df43c30246dff8a4a7e..73930b4eea2bd632c390b79118ecafad84cfa44a 100644 index a655c38eccc41d97cfb6d329e104bad6d9ccbc95..37e02c9c1a9d26923f394cd0a3cafb5126c76325 100644
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -117,6 +117,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -117,6 +117,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -625,7 +625,7 @@ index c8bac8cb738ad96003a014b468681c43512ac4c4..5dc0b3d04bfc01cd2cb004c182798408
public boolean doHurtTarget(Entity target) { public boolean doHurtTarget(Entity target) {
if (super.doHurtTarget(target)) { if (super.doHurtTarget(target)) {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
index 54184d7641e435654e987f866162b610a9352947..63d51f6f792f951a1db5f8f7c9b359898968cd85 100644 index 160c5b72d83c5756d0c08047767b5d379e7a7dca..d340759b48741efaa31f03fb6c9ead943d2d7383 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
@@ -263,6 +263,11 @@ public class Creeper extends Monster implements PowerableMob { @@ -263,6 +263,11 @@ public class Creeper extends Monster implements PowerableMob {
@@ -641,7 +641,7 @@ index 54184d7641e435654e987f866162b610a9352947..63d51f6f792f951a1db5f8f7c9b35989
protected SoundEvent getHurtSound(DamageSource source) { protected SoundEvent getHurtSound(DamageSource source) {
return SoundEvents.CREEPER_HURT; return SoundEvents.CREEPER_HURT;
diff --git a/src/main/java/net/minecraft/world/entity/monster/Drowned.java b/src/main/java/net/minecraft/world/entity/monster/Drowned.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Drowned.java b/src/main/java/net/minecraft/world/entity/monster/Drowned.java
index 162ecea875d99115cdd742524ce65ee74cc0d47e..a315e2fc10b9d404a92971dea6a0a5fae16d8133 100644 index e6751c1a834453be66e891d7eb94bbb66f36008c..8850d8fc54d7025d323bc273a87a609baacea174 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java --- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java +++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java
@@ -95,6 +95,11 @@ public class Drowned extends Zombie implements RangedAttackMob { @@ -95,6 +95,11 @@ public class Drowned extends Zombie implements RangedAttackMob {
@@ -657,7 +657,7 @@ index 162ecea875d99115cdd742524ce65ee74cc0d47e..a315e2fc10b9d404a92971dea6a0a5fa
public boolean jockeyOnlyBaby() { public boolean jockeyOnlyBaby() {
return level().purpurConfig.drownedJockeyOnlyBaby; return level().purpurConfig.drownedJockeyOnlyBaby;
diff --git a/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java b/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java diff --git a/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java b/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java
index 971210c1199ec48f28446e75d8d796a1f3f9a734..cd1f830bf28b1c68e2b9cc7daa77f696234a22c9 100644 index 63980f518ecd00bf2fa601f65823985003111920..0defcde8fb54e61612be74cefd01b386e756b178 100644
--- a/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java --- a/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java
+++ b/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java +++ b/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java
@@ -53,6 +53,11 @@ public class ElderGuardian extends Guardian { @@ -53,6 +53,11 @@ public class ElderGuardian extends Guardian {
@@ -673,7 +673,7 @@ index 971210c1199ec48f28446e75d8d796a1f3f9a734..cd1f830bf28b1c68e2b9cc7daa77f696
return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.30000001192092896D).add(Attributes.ATTACK_DAMAGE, 8.0D).add(Attributes.MAX_HEALTH, 80.0D); return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.30000001192092896D).add(Attributes.ATTACK_DAMAGE, 8.0D).add(Attributes.MAX_HEALTH, 80.0D);
} }
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
index 51524661a62cbfe5ff7a3b7d640260e911902b23..013fd016d384f1bf94b875bc71139e0ea4e12d21 100644 index 4ed9592387531d0880ba322b07ea776cd0b05f03..a9108661e4a5c9f9d1b9fa47d088ffb80572a67e 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -95,7 +95,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -95,7 +95,7 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -791,7 +791,7 @@ index a6d827b39ce9ca13103fb2f9940974e8aaaea037..f6d6df27c2ca7a33ed3ca8e299725b6a
return checkMonsterSpawnRules(type, world, spawnReason, pos, random) && (MobSpawnType.isSpawner(spawnReason) || world.canSeeSky(pos)); return checkMonsterSpawnRules(type, world, spawnReason, pos, random) && (MobSpawnType.isSpawner(spawnReason) || world.canSeeSky(pos));
} }
diff --git a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java
index 0f3e6c19e55a18cde71f3cb84c1e92b433ebcb7f..91294d87521c884c402485b923691f9fd8985353 100644 index c00530db0eff302c14dd9c52d1d988cbdd93e5a1..43d4cea02ae94a8842cd4c1370d1b80e45d2b13c 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java --- a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java +++ b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java
@@ -83,6 +83,11 @@ public class Illusioner extends SpellcasterIllager implements RangedAttackMob { @@ -83,6 +83,11 @@ public class Illusioner extends SpellcasterIllager implements RangedAttackMob {
@@ -823,7 +823,7 @@ index b472309f97b24f1d7b97d8b6d464c479c2d602d5..e0ebc4c2d8dd718ce78d981a1d099e74
return Monster.createMonsterAttributes().add(Attributes.MOVEMENT_SPEED, (double)0.2F); return Monster.createMonsterAttributes().add(Attributes.MOVEMENT_SPEED, (double)0.2F);
} }
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
index 0f13a3f38760f1117bd545702db7a5b168d9e273..030b81dd8c52ddb300e73d792f9c4cea4e8a8d46 100644 index 2bd1fce22cf01a441f75f918e036598e8fb3ee04..637b229817f9f2c3ad224f300b56a6bee4c8a341 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -138,6 +138,11 @@ public class Phantom extends FlyingMob implements Enemy { @@ -138,6 +138,11 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -855,7 +855,7 @@ index 6a6349c7002439965422aa4979682b4ce6dfba1e..1f64dc8442de75447c17ae4fd5483345
protected void registerGoals() { protected void registerGoals() {
super.registerGoals(); super.registerGoals();
diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
index 5aa00878c4c7be4a38137a93b1a2cf1c468422ea..0992e3729fdfa945660affb7eb7efcff63f37210 100644 index 056fa8b12368dac5d1a12962b8ee92e87e4149b3..db5e55f2bca1d0706d24ebf7c0b5c2592b04f0bc 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java --- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java +++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
@@ -99,6 +99,11 @@ public class Ravager extends Raider { @@ -99,6 +99,11 @@ public class Ravager extends Raider {
@@ -903,7 +903,7 @@ index 49a37d294bac8205ac0a795daa300ccc8170c8a8..65203a502a970ffec622d91d25716f02
protected void registerGoals() { protected void registerGoals() {
this.friendsGoal = new Silverfish.SilverfishWakeUpFriendsGoal(this); this.friendsGoal = new Silverfish.SilverfishWakeUpFriendsGoal(this);
diff --git a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
index 6250d2bd682ce3c421aeea598cf8ec9032ac9785..1c7cd82540aa9566b04142c741d26b4f346073d4 100644 index 23b385205fe8d1245e65a42b8a356f0127ca2f78..eec2f8deb2675ed116939105dba60a68b05b7aac 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java --- a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java +++ b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
@@ -48,6 +48,11 @@ public class Skeleton extends AbstractSkeleton { @@ -48,6 +48,11 @@ public class Skeleton extends AbstractSkeleton {
@@ -919,7 +919,7 @@ index 6250d2bd682ce3c421aeea598cf8ec9032ac9785..1c7cd82540aa9566b04142c741d26b4f
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 28ee425910a6c2412dc4b4a7f7986e479be06b88..9363ec4aad2179274e4076c2acae577962a52d4b 100644 index 57425e062b701d3a0a5a50cb6fe904d9324be89a..e778f2ee34a42a4ffe67a6d5b8849bcf35782b74 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
@@ -75,6 +75,11 @@ public class Slime extends Mob implements Enemy { @@ -75,6 +75,11 @@ public class Slime extends Mob implements Enemy {
@@ -935,7 +935,7 @@ index 28ee425910a6c2412dc4b4a7f7986e479be06b88..9363ec4aad2179274e4076c2acae5779
public boolean dismountsUnderwater() { public boolean dismountsUnderwater() {
return level().purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level().purpurConfig.slimeRidableInWater; return level().purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level().purpurConfig.slimeRidableInWater;
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 333b064383e9ee3b075429f8cd14b4b71cec1853..93eaa95e38304a4b86cda693289f60ad4923b5b8 100644 index a8d82057bd3105a40b18cb9c355c164a2775db14..6d6f9f04fb0f4263b780271387501ca49ff3a1de 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
@@ -75,6 +75,11 @@ public class Spider extends Monster { @@ -75,6 +75,11 @@ public class Spider extends Monster {
@@ -1005,7 +1005,7 @@ index 7b76a4dadf57d8476d4bf85e6e1861f6fd122b67..e1c7398d9640506e2404686c218da986
protected float getStandingEyeHeight(Pose pose, EntityDimensions dimensions) { protected float getStandingEyeHeight(Pose pose, EntityDimensions dimensions) {
return dimensions.height - 0.28125F; return dimensions.height - 0.28125F;
diff --git a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
index a3db9c351b9cb06340458811c006d53796d96ab5..c7e995c5e639a1fb42a77edea3491682b72d32f4 100644 index 653959246bc3ede46419fd2afbd238bc33a4047e..97087016883c8b5517d06755de19c672cc3f03bd 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java --- a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java +++ b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
@@ -80,6 +80,11 @@ public class Vindicator extends AbstractIllager { @@ -80,6 +80,11 @@ public class Vindicator extends AbstractIllager {
@@ -1021,7 +1021,7 @@ index a3db9c351b9cb06340458811c006d53796d96ab5..c7e995c5e639a1fb42a77edea3491682
protected void registerGoals() { protected void registerGoals() {
super.registerGoals(); super.registerGoals();
diff --git a/src/main/java/net/minecraft/world/entity/monster/Witch.java b/src/main/java/net/minecraft/world/entity/monster/Witch.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Witch.java b/src/main/java/net/minecraft/world/entity/monster/Witch.java
index 710c6fb948407c7cc79a5a0492b7172550071e35..4b722c7b6c000c4f8156724b127c9df33f15f6db 100644 index 462b9f85b040e3e21be8797bdc1bb6f594634f1c..4ddcba100e9f58da3c399ffdddcb8b96b584096f 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Witch.java --- a/src/main/java/net/minecraft/world/entity/monster/Witch.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Witch.java +++ b/src/main/java/net/minecraft/world/entity/monster/Witch.java
@@ -81,6 +81,11 @@ public class Witch extends Raider implements RangedAttackMob { @@ -81,6 +81,11 @@ public class Witch extends Raider implements RangedAttackMob {
@@ -1037,7 +1037,7 @@ index 710c6fb948407c7cc79a5a0492b7172550071e35..4b722c7b6c000c4f8156724b127c9df3
protected void registerGoals() { protected void registerGoals() {
super.registerGoals(); super.registerGoals();
diff --git a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java diff --git a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
index 8eb43574faef713b876d36155775fe2fa2505497..87b42dff7d770cf04415301346674aad5e45081b 100644 index afad65b86e762187d0779cfee2b0b1089066d53f..986183cab6c7d48a4716440dcc764bdd88373720 100644
--- a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java --- a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
+++ b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java +++ b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
@@ -57,6 +57,11 @@ public class WitherSkeleton extends AbstractSkeleton { @@ -57,6 +57,11 @@ public class WitherSkeleton extends AbstractSkeleton {
@@ -1069,7 +1069,7 @@ index 1d862dd019b2d024f61cfc8956430d18d94b1ebf..8cd6012b00dd5b307fd76ef0fd9c2cd9
protected Brain.Provider<Zoglin> brainProvider() { protected Brain.Provider<Zoglin> brainProvider() {
return Brain.provider(MEMORY_TYPES, SENSOR_TYPES); return Brain.provider(MEMORY_TYPES, SENSOR_TYPES);
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 624e4007f031b5781e34f4cb6614e8c767999ee2..52a576a16bfeb7dc6ec97280f9a5e0f408d71e46 100644 index 1bb5eb0f75dc4509377cf54054eba34e4ffd02a9..edc47e077fe44d1b817b791ddde86e052a5bf831 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
@@ -141,6 +141,11 @@ public class Zombie extends Monster { @@ -141,6 +141,11 @@ public class Zombie extends Monster {
@@ -1085,7 +1085,7 @@ index 624e4007f031b5781e34f4cb6614e8c767999ee2..52a576a16bfeb7dc6ec97280f9a5e0f4
protected void registerGoals() { protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
index b71c47c275a3726eb5028c9524013ebc608a21ea..135ce8822ed7e3d6182755deca37a2c0531960c6 100644 index 259cbfc821b12663876ff2821635ce0ccd7e33c6..438302f6705bcf3d60f27dde279de010bd95aad4 100644
--- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java --- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
+++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
@@ -109,6 +109,11 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { @@ -109,6 +109,11 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
@@ -1101,7 +1101,7 @@ index b71c47c275a3726eb5028c9524013ebc608a21ea..135ce8822ed7e3d6182755deca37a2c0
public boolean jockeyOnlyBaby() { public boolean jockeyOnlyBaby() {
return level().purpurConfig.zombieVillagerJockeyOnlyBaby; return level().purpurConfig.zombieVillagerJockeyOnlyBaby;
diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
index b2d77117309e81db60e7e50911247793fa829755..3574a1e641d8af34a0ff7ea8dcfb08641cf6ace0 100644 index e73fb1027acd592c7e028e1797042fe38c6c04a3..e6b653c75a4c3306e06bfcadb4c4b53bccd5aad2 100644
--- a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java --- a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
@@ -86,6 +86,11 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob { @@ -86,6 +86,11 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
@@ -1117,7 +1117,7 @@ index b2d77117309e81db60e7e50911247793fa829755..3574a1e641d8af34a0ff7ea8dcfb0864
public boolean jockeyOnlyBaby() { public boolean jockeyOnlyBaby() {
return level().purpurConfig.zombifiedPiglinJockeyOnlyBaby; return level().purpurConfig.zombifiedPiglinJockeyOnlyBaby;
diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
index 80f91a11c04763c1c9ed2bd242b88b5a473560d7..d0144c99cf5c755c81fc0f9457b462c98ff3e804 100644 index fae14f6ab139e7d7a0e8625488c472f0d0c1a1e2..7a167887c40eccea4c216eb906a4a69006f72114 100644
--- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java --- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -96,6 +96,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { @@ -96,6 +96,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
@@ -1133,7 +1133,7 @@ index 80f91a11c04763c1c9ed2bd242b88b5a473560d7..d0144c99cf5c755c81fc0f9457b462c9
public boolean canBeLeashed(Player player) { public boolean canBeLeashed(Player player) {
return !this.isLeashed(); return !this.isLeashed();
diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
index d133820c47ecda733aa8242acdb2cd3ba0f0b677..e506dcf390ecb5cce8ae6993df7ec91b3ebc125e 100644 index 03b58860ecb72976ecce99f368d16942557236b9..20ecfcbe948d02bb61b8f673f5330d2f9e60c387 100644
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java --- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
@@ -118,6 +118,11 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @@ -118,6 +118,11 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
@@ -1165,7 +1165,7 @@ index 04e54c241078e6cd6419a21ba1bf913fd3b413d1..b63d87df0f48dd63c89118f91b31dc4e
return Monster.createMonsterAttributes().add(Attributes.MAX_HEALTH, 50.0D).add(Attributes.MOVEMENT_SPEED, (double)0.35F).add(Attributes.ATTACK_DAMAGE, 7.0D); return Monster.createMonsterAttributes().add(Attributes.MAX_HEALTH, 50.0D).add(Attributes.MOVEMENT_SPEED, (double)0.35F).add(Attributes.ATTACK_DAMAGE, 7.0D);
} }
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
index 833db485054338cd4a5e626b35ec050c35f15477..9ed51efc1a42a792b652e7c958c06fa5b572e4bf 100644 index b8675cb1a69f675585c040b2f47172dfe9235d08..cd59f262572df87b28b33f98a3dc667b4c5b3072 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -190,6 +190,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -190,6 +190,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -1181,7 +1181,7 @@ index 833db485054338cd4a5e626b35ec050c35f15477..9ed51efc1a42a792b652e7c958c06fa5
public Brain<Villager> getBrain() { public Brain<Villager> getBrain() {
return (Brain<Villager>) super.getBrain(); // CraftBukkit - decompile error return (Brain<Villager>) super.getBrain(); // CraftBukkit - decompile error
diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
index ad7a32169b0decad1d3a2bd98e25b07731a33d03..5a373ba4d9e404c064bc158718d02c0cd2aca548 100644 index 8ab868c88e37fad978ffcf151ad527e57bdf4cb5..027e86e504d0e4291deae0641f0e5b40686e6ccb 100644
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java --- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java +++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
@@ -97,6 +97,11 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill @@ -97,6 +97,11 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] End crystal explosion options
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java
index ef0098e46bda8abc456f2bb5929d874c6aeb8698..564d17bc460e2a04947ff9676fbf4c8b1569659c 100644 index 4f0e1a653a117687b5b330ff424873d01f574bee..9d86ce2012a93d9fb0d52dc6db796ae31d4f0e21 100644
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java
@@ -48,6 +48,22 @@ public class EndCrystal extends Entity { @@ -48,6 +48,22 @@ public class EndCrystal extends Entity {
@@ -31,7 +31,7 @@ index ef0098e46bda8abc456f2bb5929d874c6aeb8698..564d17bc460e2a04947ff9676fbf4c8b
@Override @Override
protected Entity.MovementEmission getMovementEmission() { protected Entity.MovementEmission getMovementEmission() {
return Entity.MovementEmission.NONE; return Entity.MovementEmission.NONE;
@@ -173,16 +189,18 @@ public class EndCrystal extends Entity { @@ -130,16 +146,18 @@ public class EndCrystal extends Entity {
// CraftBukkit end // CraftBukkit end
this.remove(Entity.RemovalReason.KILLED); this.remove(Entity.RemovalReason.KILLED);
if (!source.is(DamageTypeTags.IS_EXPLOSION)) { if (!source.is(DamageTypeTags.IS_EXPLOSION)) {
@@ -53,7 +53,7 @@ index ef0098e46bda8abc456f2bb5929d874c6aeb8698..564d17bc460e2a04947ff9676fbf4c8b
this.onDestroyedBy(source); this.onDestroyedBy(source);
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 bab096e2c073510f4e91ab34c4555fad966b7141..f7ca9e256524e1b080631d7cda5ed80edeeaf73b 100644 index 0d3725563f58b523482bac44134f54e13d017ce8..4d7d111a2cb6f02d3263174af9e70548be0fe971 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
@@ -464,6 +464,43 @@ public class PurpurWorldConfig { @@ -464,6 +464,43 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Dont run with scissors!
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 23cc99227c802368a4bfb9e7c6eda43357dd0576..5c933996fe4cf45e3cb072fe2573419cc2fe92af 100644 index afcf996540d2482b0a1afac5b2656beb53b41619..5f6a3fac5157f2baddff4d83ac56a01172c410d6 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
@@ -1647,6 +1647,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1642,6 +1642,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.player.resetFallDistance(); this.player.resetFallDistance();
} }
@@ -22,7 +22,7 @@ index 23cc99227c802368a4bfb9e7c6eda43357dd0576..5c933996fe4cf45e3cb072fe2573419c
this.player.checkMovementStatistics(this.player.getX() - d3, this.player.getY() - d4, this.player.getZ() - d5); this.player.checkMovementStatistics(this.player.getX() - d3, this.player.getY() - d4, this.player.getZ() - d5);
this.lastGoodX = this.player.getX(); this.lastGoodX = this.player.getX();
this.lastGoodY = this.player.getY(); this.lastGoodY = this.player.getY();
@@ -1698,6 +1705,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1693,6 +1700,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
return false; return false;
} }
// Paper end - optimise out extra getCubes // Paper end - optimise out extra getCubes
@@ -53,7 +53,7 @@ index 9c99b2e365aacb8309f29acb9025faccd2c676b3..9e3608650c44ef5fa724c3aea86603d7
} }
} }
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 14fcfd7c1d3a62833978e163f4e0d6f9b2203042..33210bc66dcc5fdf03fbf438ce8734b31c4e7975 100644 index dad8d358e60902eb186cbc5686219f66d3babf89..189664637d3d73b141c84823f0099bcda9b607e3 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
@@ -54,6 +54,8 @@ public class DamageSource { @@ -54,6 +54,8 @@ public class DamageSource {
@@ -66,7 +66,7 @@ index 14fcfd7c1d3a62833978e163f4e0d6f9b2203042..33210bc66dcc5fdf03fbf438ce8734b3
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 4604f8b38460e9113e966889a679d4547f24aff6..813916852774d6482791989252ecb67b945a8f84 100644 index f339475185645f7be30963e4f980ce81a6f7e536..6a7fe56485f0da9094c816f9fd5aacf7e5946730 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
@@ -267,4 +267,11 @@ public class DamageSources { @@ -267,4 +267,11 @@ public class DamageSources {

View File

@@ -30,7 +30,7 @@ index af4da25c9b13c114179fab3254aea5323210d7da..f9cd39a4f8ec5cdade311984d863b64f
} }
// CraftBukkit end // CraftBukkit end
diff --git a/src/main/java/net/minecraft/world/item/EnderpearlItem.java b/src/main/java/net/minecraft/world/item/EnderpearlItem.java diff --git a/src/main/java/net/minecraft/world/item/EnderpearlItem.java b/src/main/java/net/minecraft/world/item/EnderpearlItem.java
index 749ab72edc0d2e9c6f1161415ab8d59d3d6ca976..897c202c0905040072a06fdfa2032a7f9461b088 100644 index 8c8cf8705107c95d9a4eab28b5845ae13c4ffb3c..a0c2650678848416829c7185a530fcd63bb68039 100644
--- a/src/main/java/net/minecraft/world/item/EnderpearlItem.java --- a/src/main/java/net/minecraft/world/item/EnderpearlItem.java
+++ b/src/main/java/net/minecraft/world/item/EnderpearlItem.java +++ b/src/main/java/net/minecraft/world/item/EnderpearlItem.java
@@ -36,7 +36,7 @@ public class EnderpearlItem extends Item { @@ -36,7 +36,7 @@ public class EnderpearlItem extends Item {
@@ -40,10 +40,10 @@ index 749ab72edc0d2e9c6f1161415ab8d59d3d6ca976..897c202c0905040072a06fdfa2032a7f
- user.getCooldowns().addCooldown(this, 20); - user.getCooldowns().addCooldown(this, 20);
+ user.getCooldowns().addCooldown(this, user.getAbilities().instabuild ? world.purpurConfig.enderPearlCooldownCreative : world.purpurConfig.enderPearlCooldown); // Purpur + user.getCooldowns().addCooldown(this, user.getAbilities().instabuild ? world.purpurConfig.enderPearlCooldownCreative : world.purpurConfig.enderPearlCooldown); // Purpur
} else { } else {
// Paper end // Paper end - PlayerLaunchProjectileEvent
if (user instanceof net.minecraft.server.level.ServerPlayer) { if (user instanceof net.minecraft.server.level.ServerPlayer) {
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 a58369d384604e37906cc0d15aad40a9e44019da..c4c1e27efbc121f120f68a554cd5bf37443923e1 100644 index bf2ab21a5390ac0876b0c2c5e6708cc3d6c564da..3a61e40ec6dfc49413a85b059efca9a261373a7c 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
@@ -201,6 +201,10 @@ public class PurpurWorldConfig { @@ -201,6 +201,10 @@ public class PurpurWorldConfig {

View File

@@ -7,11 +7,11 @@ Prevents Enderman from becoming aggresive towards players that are wearing a Dra
Adds functionality to a useless item! Adds functionality to a useless item!
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
index cf9eb1ac36a5c9d3c73b981e1649bb23c7bfaf39..ca0269c2977b07cf77f7e0e1faa4cb16008ac74d 100644 index 3fbe607e763910f7520604d3b8b8207086ba7f90..627cbec30c15fa4d11689cb85add6ad61d58b47a 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -271,7 +271,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -271,7 +271,7 @@ public class EnderMan extends Monster implements NeutralMob {
// Paper end // Paper end - EndermanAttackPlayerEvent
ItemStack itemstack = (ItemStack) player.getInventory().armor.get(3); ItemStack itemstack = (ItemStack) player.getInventory().armor.get(3);
- if (itemstack.is(Blocks.CARVED_PUMPKIN.asItem())) { - if (itemstack.is(Blocks.CARVED_PUMPKIN.asItem())) {
@@ -20,7 +20,7 @@ index cf9eb1ac36a5c9d3c73b981e1649bb23c7bfaf39..ca0269c2977b07cf77f7e0e1faa4cb16
} else { } else {
Vec3 vec3d = player.getViewVector(1.0F).normalize(); Vec3 vec3d = player.getViewVector(1.0F).normalize();
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 f64597083c7505d27b57a0fb31d52ee347151e8a..59a46ebdf7c96d388251ad87b8420088729e94fe 100644 index 5d1dd1c3572365e2054b0848548fe736d4f21d55..414838cf7fe3796e8d829609ac126e5b9c4afd50 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
@@ -999,6 +999,8 @@ public class PurpurWorldConfig { @@ -999,6 +999,8 @@ public class PurpurWorldConfig {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Tick fluids config
diff --git a/src/main/java/net/minecraft/world/level/block/LiquidBlock.java b/src/main/java/net/minecraft/world/level/block/LiquidBlock.java diff --git a/src/main/java/net/minecraft/world/level/block/LiquidBlock.java b/src/main/java/net/minecraft/world/level/block/LiquidBlock.java
index 2bd097203f1e92d3fc343f91dc37220e09dd5066..016fe816819ab9022fd03c50427b62abbcd18b3c 100644 index 9b3dcf1a4d4cece92a629506d341f6bfe79d13d0..0ed39daf88a98f7fa887fb45d4f7c0348a607551 100644
--- a/src/main/java/net/minecraft/world/level/block/LiquidBlock.java --- a/src/main/java/net/minecraft/world/level/block/LiquidBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/LiquidBlock.java +++ b/src/main/java/net/minecraft/world/level/block/LiquidBlock.java
@@ -139,7 +139,7 @@ public class LiquidBlock extends Block implements BucketPickup { @@ -139,7 +139,7 @@ public class LiquidBlock extends Block implements BucketPickup {
@@ -14,7 +14,7 @@ index 2bd097203f1e92d3fc343f91dc37220e09dd5066..016fe816819ab9022fd03c50427b62ab
public void onPlace(BlockState state, Level world, BlockPos pos, BlockState oldState, boolean notify) { public void onPlace(BlockState state, Level world, BlockPos pos, BlockState oldState, boolean notify) {
- if (this.shouldSpreadLiquid(world, pos, state)) { - if (this.shouldSpreadLiquid(world, pos, state)) {
+ if (world.purpurConfig.tickFluids && this.shouldSpreadLiquid(world, pos, state)) { // Purpur + if (world.purpurConfig.tickFluids && this.shouldSpreadLiquid(world, pos, state)) { // Purpur
world.scheduleTick(pos, state.getFluidState().getType(), this.getFlowSpeed(world, pos)); // Paper world.scheduleTick(pos, state.getFluidState().getType(), this.getFlowSpeed(world, pos)); // Paper - Configurable speed for water flowing over lava
} }
@@ -167,7 +167,7 @@ public class LiquidBlock extends Block implements BucketPickup { @@ -167,7 +167,7 @@ public class LiquidBlock extends Block implements BucketPickup {
@@ -32,11 +32,11 @@ index 2bd097203f1e92d3fc343f91dc37220e09dd5066..016fe816819ab9022fd03c50427b62ab
public void neighborChanged(BlockState state, Level world, BlockPos pos, Block sourceBlock, BlockPos sourcePos, boolean notify) { public void neighborChanged(BlockState state, Level world, BlockPos pos, Block sourceBlock, BlockPos sourcePos, boolean notify) {
- if (this.shouldSpreadLiquid(world, pos, state)) { - if (this.shouldSpreadLiquid(world, pos, state)) {
+ if (world.purpurConfig.tickFluids && this.shouldSpreadLiquid(world, pos, state)) { // Purpur + if (world.purpurConfig.tickFluids && this.shouldSpreadLiquid(world, pos, state)) { // Purpur
world.scheduleTick(pos, state.getFluidState().getType(), this.getFlowSpeed(world, pos)); // Paper world.scheduleTick(pos, state.getFluidState().getType(), this.getFlowSpeed(world, pos)); // Paper - Configurable speed for water flowing over lava
} }
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 59a46ebdf7c96d388251ad87b8420088729e94fe..90ee419cc60748233ac8b8903ca154182bfe727d 100644 index 414838cf7fe3796e8d829609ac126e5b9c4afd50..0b60f77cfbe2247586d51999ac94f4f5cb011847 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
@@ -129,6 +129,7 @@ public class PurpurWorldConfig { @@ -129,6 +129,7 @@ public class PurpurWorldConfig {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Configurable ravager griefable blocks list
diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
index 0992e3729fdfa945660affb7eb7efcff63f37210..5e717433ef29d02669ee2e95454c69c36cbafc24 100644 index db5e55f2bca1d0706d24ebf7c0b5c2592b04f0bc..03ed7c56bb7f2d32722ebedb8eb07765ab39079a 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java --- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java +++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
@@ -191,7 +191,7 @@ public class Ravager extends Raider { @@ -191,7 +191,7 @@ public class Ravager extends Raider {
@@ -18,20 +18,20 @@ index 0992e3729fdfa945660affb7eb7efcff63f37210..5e717433ef29d02669ee2e95454c69c3
if (!CraftEventFactory.callEntityChangeBlockEvent(this, blockposition, iblockdata.getFluidState().createLegacyBlock())) { // Paper - fix wrong block state if (!CraftEventFactory.callEntityChangeBlockEvent(this, blockposition, iblockdata.getFluidState().createLegacyBlock())) { // Paper - fix wrong block state
continue; continue;
diff --git a/src/main/java/net/minecraft/world/level/block/CropBlock.java b/src/main/java/net/minecraft/world/level/block/CropBlock.java diff --git a/src/main/java/net/minecraft/world/level/block/CropBlock.java b/src/main/java/net/minecraft/world/level/block/CropBlock.java
index 059582e872f9f3c47187e12dbe174541aa934787..0e06958657201806f425990ac01a5f8acc540f3e 100644 index 07b148fc31aee3ce009d1d768ae16d98268339cc..55e28eef76d9d534037d888d85c0609052478118 100644
--- a/src/main/java/net/minecraft/world/level/block/CropBlock.java --- a/src/main/java/net/minecraft/world/level/block/CropBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/CropBlock.java +++ b/src/main/java/net/minecraft/world/level/block/CropBlock.java
@@ -179,7 +179,7 @@ public class CropBlock extends BushBlock implements BonemealableBlock { @@ -179,7 +179,7 @@ public class CropBlock extends BushBlock implements BonemealableBlock {
@Override @Override
public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) {
if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent
- if (entity instanceof Ravager && CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.AIR.defaultBlockState(), (!world.purpurConfig.ravagerBypassMobGriefing && !world.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)))) { // CraftBukkit // Purpur - if (entity instanceof Ravager && CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.AIR.defaultBlockState(), (!world.purpurConfig.ravagerBypassMobGriefing && !world.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)))) { // CraftBukkit // Purpur
+ if (entity instanceof Ravager && world.purpurConfig.ravagerGriefableBlocks.contains(world.getBlockState(pos).getBlock()) && CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.AIR.defaultBlockState(), (!world.purpurConfig.ravagerBypassMobGriefing && !world.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)))) { // CraftBukkit // Purpur + if (entity instanceof Ravager && world.purpurConfig.ravagerGriefableBlocks.contains(world.getBlockState(pos).getBlock()) && CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.AIR.defaultBlockState(), (!world.purpurConfig.ravagerBypassMobGriefing && !world.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)))) { // CraftBukkit // Purpur
world.destroyBlock(pos, true, entity); world.destroyBlock(pos, true, entity);
} }
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 44b98e5030bef02ab05a9686fdfc711fa78ec072..a855bb2e4f04a64e47611b20342e1eb484f6bf22 100644 index b9903d3794fc5f25f5be2e3ebd2c4b7188a507d9..70b740ae9efc960266900a1c5b1d478d1794f5eb 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
@@ -1703,6 +1703,7 @@ public class PurpurWorldConfig { @@ -1703,6 +1703,7 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Config for skipping night
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 586a46dc9f9e65e1f88bcfefc2f4e59d9cda55e9..3bce997b0fe372fd4bf172a879bce80996246278 100644 index d92c809cb8dff4d146e98f20daf286180f0c43a6..5af5a22e725bdae1cc15702b37982f585c46286f 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
@@ -845,7 +845,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -840,7 +840,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
int i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE); int i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE);
long j; long j;

View File

@@ -5,15 +5,15 @@ Subject: [PATCH] Allow infinity on crossbows
diff --git a/src/main/java/net/minecraft/world/item/CrossbowItem.java b/src/main/java/net/minecraft/world/item/CrossbowItem.java diff --git a/src/main/java/net/minecraft/world/item/CrossbowItem.java b/src/main/java/net/minecraft/world/item/CrossbowItem.java
index eede02c3f125d230af537bb67bebed9b88f7d1b4..1ae5e17b95d994d69b060fc06c0a807c40a90f17 100644 index 06689ee8799079510a1a4e7b68029b9629e318fb..fdf9972bb9374789b063d191d9d419cca5975b23 100644
--- a/src/main/java/net/minecraft/world/item/CrossbowItem.java --- a/src/main/java/net/minecraft/world/item/CrossbowItem.java
+++ b/src/main/java/net/minecraft/world/item/CrossbowItem.java +++ b/src/main/java/net/minecraft/world/item/CrossbowItem.java
@@ -114,7 +114,7 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable { @@ -114,7 +114,7 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable {
// Paper end // Paper end - Add EntityLoadCrossbowEvent
int i = EnchantmentHelper.getItemEnchantmentLevel(Enchantments.MULTISHOT, crossbow); int i = EnchantmentHelper.getItemEnchantmentLevel(Enchantments.MULTISHOT, crossbow);
int j = i == 0 ? 1 : 3; int j = i == 0 ? 1 : 3;
- boolean flag = !consume || shooter instanceof Player && ((Player) shooter).getAbilities().instabuild; // Paper - add consume - boolean flag = !consume || shooter instanceof Player && ((Player) shooter).getAbilities().instabuild; // Paper - Add EntityLoadCrossbowEvent
+ boolean flag = !consume || shooter instanceof Player && ((Player) shooter).getAbilities().instabuild || (org.purpurmc.purpur.PurpurConfig.allowCrossbowInfinity && EnchantmentHelper.getItemEnchantmentLevel(Enchantments.INFINITY_ARROWS, crossbow) > 0); // Paper - add consume // Purpur + boolean flag = !consume || shooter instanceof Player && ((Player) shooter).getAbilities().instabuild || (org.purpurmc.purpur.PurpurConfig.allowCrossbowInfinity && EnchantmentHelper.getItemEnchantmentLevel(Enchantments.INFINITY_ARROWS, crossbow) > 0); // Paper - Add EntityLoadCrossbowEvent // Purpur
ItemStack itemstack1 = shooter.getProjectile(crossbow); ItemStack itemstack1 = shooter.getProjectile(crossbow);
ItemStack itemstack2 = itemstack1.copy(); ItemStack itemstack2 = itemstack1.copy();
@@ -65,7 +65,7 @@ index 246516e67db0b8b197b287c067d5a0163d8bde22..859435f747ceef860cb4e9e825a7353e
public abstract boolean canEnchant(Item item); public abstract boolean canEnchant(Item item);
diff --git a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java diff --git a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java
index 4daf2c54c7127e8e091ffc49362f288594956143..f81faaf6d69b09f635d71491303fca1d494001c5 100644 index 92465b2a9f1483be76004c9f80a1fe15913b3b8b..37688a6908bbad7455ee2c26bba91f282859d272 100644
--- a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java --- a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java
+++ b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java +++ b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java
@@ -80,6 +80,7 @@ public class CraftEnchantment extends Enchantment { @@ -80,6 +80,7 @@ public class CraftEnchantment extends Enchantment {

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 07a9f53448e6adbb45d941a72759187fefe30313..9c4c5aa169b4a9943a096ad84d0bd66fad15c55d 100644 index a040e92c3b3700461e630cd5299ff6c7400c273f..1bb50f182fa6274cb0c631e0d4e79288443b3a53 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
@@ -3399,7 +3399,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -3398,7 +3398,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
} }
public int getMaxAirSupply() { public int getMaxAirSupply() {
@@ -18,7 +18,7 @@ index 07a9f53448e6adbb45d941a72759187fefe30313..9c4c5aa169b4a9943a096ad84d0bd66f
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 4ba269d7c63a8e2df498a5ab7253c3a9fbc44103..385bc1cb2c1b00e80ecfcb0a59a24670407af5cd 100644 index 06a647ae44423e14f4266c9cc25ff78ee16bc3c8..95a004d6b0581cf9aa6805f08a34a04baefef8fa 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 {
@@ -40,7 +40,7 @@ index 4ba269d7c63a8e2df498a5ab7253c3a9fbc44103..385bc1cb2c1b00e80ecfcb0a59a24670
} }
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 fce3d4c4af444860c72b5058fcd7276838299f89..d002bc3c3a99253a990aac0ae117de078475d144 100644 index 9aa6a3f69afb0fd70ac60ca0d50d564dd7d3fe54..91f224d89bf1af363162e0a39ca61a440bc07b96 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
@@ -164,6 +164,15 @@ public class PurpurWorldConfig { @@ -164,6 +164,15 @@ public class PurpurWorldConfig {

View File

@@ -5,11 +5,11 @@ Subject: [PATCH] Break individual slabs when sneaking
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
index ecf0b6f30d5791f6c7097d352eafa8ecbcdf4aa8..5de06447de2ab2c45debf314aecd39722d4a7af6 100644 index 4a7134c6da15bd69f7d4e3ffe452e5915abb738e..587bf8027765ab678ea15a24e7953f81dd4e6d64 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -397,6 +397,7 @@ public class ServerPlayerGameMode { @@ -397,6 +397,7 @@ public class ServerPlayerGameMode {
} else {capturedBlockEntity = true;} // Paper end } else {capturedBlockEntity = true;} // Paper - Send block entities after destroy prediction
return false; return false;
} }
+ if (this.player.level().purpurConfig.slabHalfBreak && this.player.isShiftKeyDown() && iblockdata.getBlock() instanceof net.minecraft.world.level.block.SlabBlock && ((net.minecraft.world.level.block.SlabBlock) iblockdata.getBlock()).halfBreak(iblockdata, pos, this.player)) return true; // Purpur + if (this.player.level().purpurConfig.slabHalfBreak && this.player.isShiftKeyDown() && iblockdata.getBlock() instanceof net.minecraft.world.level.block.SlabBlock && ((net.minecraft.world.level.block.SlabBlock) iblockdata.getBlock()).halfBreak(iblockdata, pos, this.player)) return true; // Purpur
@@ -47,7 +47,7 @@ index adc7eba4bb5e8f7c507a16cdbd7497338a7658cf..512c528e0f2f3aa0da0253698a018941
+ // Purpur end + // Purpur end
} }
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 d002bc3c3a99253a990aac0ae117de078475d144..0f13f4727ee854fa66df7ec9f49d33622a05e252 100644 index 91f224d89bf1af363162e0a39ca61a440bc07b96..1df92111b03b3cb56989dfe17e4c5597c7988c46 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
@@ -600,6 +600,11 @@ public class PurpurWorldConfig { @@ -600,6 +600,11 @@ public class PurpurWorldConfig {

View File

@@ -18,7 +18,7 @@ index 33df0ca406dc8321b76b393f317bbd1c8ebe6366..220513d3fd5645322886522ea4f6b8c5
entityarrow.setCritArrow(true); entityarrow.setCritArrow(true);
} }
diff --git a/src/main/java/net/minecraft/world/item/CrossbowItem.java b/src/main/java/net/minecraft/world/item/CrossbowItem.java diff --git a/src/main/java/net/minecraft/world/item/CrossbowItem.java b/src/main/java/net/minecraft/world/item/CrossbowItem.java
index 1ae5e17b95d994d69b060fc06c0a807c40a90f17..0a0f19f73a6a4e5aece7c17089dc4d31ed2a5299 100644 index fdf9972bb9374789b063d191d9d419cca5975b23..b112845e94d354bbadff67673ea0b4939672bd3e 100644
--- a/src/main/java/net/minecraft/world/item/CrossbowItem.java --- a/src/main/java/net/minecraft/world/item/CrossbowItem.java
+++ b/src/main/java/net/minecraft/world/item/CrossbowItem.java +++ b/src/main/java/net/minecraft/world/item/CrossbowItem.java
@@ -64,7 +64,7 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable { @@ -64,7 +64,7 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable {
@@ -31,7 +31,7 @@ index 1ae5e17b95d994d69b060fc06c0a807c40a90f17..0a0f19f73a6a4e5aece7c17089dc4d31
return InteractionResultHolder.consume(itemstack); return InteractionResultHolder.consume(itemstack);
} else if (!user.getProjectile(itemstack).isEmpty()) { } else if (!user.getProjectile(itemstack).isEmpty()) {
diff --git a/src/main/java/net/minecraft/world/item/EggItem.java b/src/main/java/net/minecraft/world/item/EggItem.java diff --git a/src/main/java/net/minecraft/world/item/EggItem.java b/src/main/java/net/minecraft/world/item/EggItem.java
index 58cb992c5defec2f092755cbde661ff10f38bf9d..52f48681407d23f0925f4c9c072d5f0a2a6b1778 100644 index a3bd507793994e9cc87a956871a8afbb8ca9460d..ef2197a23aef0a4215fae09bd4618e449e14c64e 100644
--- a/src/main/java/net/minecraft/world/item/EggItem.java --- a/src/main/java/net/minecraft/world/item/EggItem.java
+++ b/src/main/java/net/minecraft/world/item/EggItem.java +++ b/src/main/java/net/minecraft/world/item/EggItem.java
@@ -24,7 +24,7 @@ public class EggItem extends Item { @@ -24,7 +24,7 @@ public class EggItem extends Item {
@@ -40,11 +40,11 @@ index 58cb992c5defec2f092755cbde661ff10f38bf9d..52f48681407d23f0925f4c9c072d5f0a
entityegg.setItem(itemstack); entityegg.setItem(itemstack);
- entityegg.shootFromRotation(user, user.getXRot(), user.getYRot(), 0.0F, 1.5F, 1.0F); - entityegg.shootFromRotation(user, user.getXRot(), user.getYRot(), 0.0F, 1.5F, 1.0F);
+ entityegg.shootFromRotation(user, user.getXRot(), user.getYRot(), 0.0F, 1.5F, (float) world.purpurConfig.eggProjectileOffset); // Purpur + entityegg.shootFromRotation(user, user.getXRot(), user.getYRot(), 0.0F, 1.5F, (float) world.purpurConfig.eggProjectileOffset); // Purpur
// Paper start // Paper start - PlayerLaunchProjectileEvent
com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent event = new com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent((org.bukkit.entity.Player) user.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemstack), (org.bukkit.entity.Projectile) entityegg.getBukkitEntity()); com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent event = new com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent((org.bukkit.entity.Player) user.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemstack), (org.bukkit.entity.Projectile) entityegg.getBukkitEntity());
if (event.callEvent() && world.addFreshEntity(entityegg)) { if (event.callEvent() && world.addFreshEntity(entityegg)) {
diff --git a/src/main/java/net/minecraft/world/item/EnderpearlItem.java b/src/main/java/net/minecraft/world/item/EnderpearlItem.java diff --git a/src/main/java/net/minecraft/world/item/EnderpearlItem.java b/src/main/java/net/minecraft/world/item/EnderpearlItem.java
index 897c202c0905040072a06fdfa2032a7f9461b088..6b27d98d06b163243bb0e1bb979aad03f48d7770 100644 index a0c2650678848416829c7185a530fcd63bb68039..8031e38c66468676b3b4a7443d6678eec6b1e8a4 100644
--- a/src/main/java/net/minecraft/world/item/EnderpearlItem.java --- a/src/main/java/net/minecraft/world/item/EnderpearlItem.java
+++ b/src/main/java/net/minecraft/world/item/EnderpearlItem.java +++ b/src/main/java/net/minecraft/world/item/EnderpearlItem.java
@@ -24,7 +24,7 @@ public class EnderpearlItem extends Item { @@ -24,7 +24,7 @@ public class EnderpearlItem extends Item {
@@ -53,11 +53,11 @@ index 897c202c0905040072a06fdfa2032a7f9461b088..6b27d98d06b163243bb0e1bb979aad03
entityenderpearl.setItem(itemstack); entityenderpearl.setItem(itemstack);
- entityenderpearl.shootFromRotation(user, user.getXRot(), user.getYRot(), 0.0F, 1.5F, 1.0F); - entityenderpearl.shootFromRotation(user, user.getXRot(), user.getYRot(), 0.0F, 1.5F, 1.0F);
+ entityenderpearl.shootFromRotation(user, user.getXRot(), user.getYRot(), 0.0F, 1.5F, (float) world.purpurConfig.enderPearlProjectileOffset); // Purpur + entityenderpearl.shootFromRotation(user, user.getXRot(), user.getYRot(), 0.0F, 1.5F, (float) world.purpurConfig.enderPearlProjectileOffset); // Purpur
// Paper start // Paper start - PlayerLaunchProjectileEvent
com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent event = new com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent((org.bukkit.entity.Player) user.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemstack), (org.bukkit.entity.Projectile) entityenderpearl.getBukkitEntity()); com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent event = new com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent((org.bukkit.entity.Player) user.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemstack), (org.bukkit.entity.Projectile) entityenderpearl.getBukkitEntity());
if (event.callEvent() && world.addFreshEntity(entityenderpearl)) { if (event.callEvent() && world.addFreshEntity(entityenderpearl)) {
diff --git a/src/main/java/net/minecraft/world/item/SnowballItem.java b/src/main/java/net/minecraft/world/item/SnowballItem.java diff --git a/src/main/java/net/minecraft/world/item/SnowballItem.java b/src/main/java/net/minecraft/world/item/SnowballItem.java
index ef3f90a5bcdd7b9815a4053cff166f9d2552f55d..e7e5e1cc92f56e3daba8fa09c59188febec5e8f2 100644 index bc8186a5bc3a98b35fad570729dd4ba52efab238..caab0c1e2bc5696080750797cbf1c93f57799f7d 100644
--- a/src/main/java/net/minecraft/world/item/SnowballItem.java --- a/src/main/java/net/minecraft/world/item/SnowballItem.java
+++ b/src/main/java/net/minecraft/world/item/SnowballItem.java +++ b/src/main/java/net/minecraft/world/item/SnowballItem.java
@@ -25,7 +25,7 @@ public class SnowballItem extends Item { @@ -25,7 +25,7 @@ public class SnowballItem extends Item {
@@ -66,11 +66,11 @@ index ef3f90a5bcdd7b9815a4053cff166f9d2552f55d..e7e5e1cc92f56e3daba8fa09c59188fe
entitysnowball.setItem(itemstack); entitysnowball.setItem(itemstack);
- entitysnowball.shootFromRotation(user, user.getXRot(), user.getYRot(), 0.0F, 1.5F, 1.0F); - entitysnowball.shootFromRotation(user, user.getXRot(), user.getYRot(), 0.0F, 1.5F, 1.0F);
+ entitysnowball.shootFromRotation(user, user.getXRot(), user.getYRot(), 0.0F, 1.5F, (float) world.purpurConfig.snowballProjectileOffset); // Purpur + entitysnowball.shootFromRotation(user, user.getXRot(), user.getYRot(), 0.0F, 1.5F, (float) world.purpurConfig.snowballProjectileOffset); // Purpur
// Paper start // Paper start - PlayerLaunchProjectileEvent
com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent event = new com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent((org.bukkit.entity.Player) user.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemstack), (org.bukkit.entity.Projectile) entitysnowball.getBukkitEntity()); com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent event = new com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent((org.bukkit.entity.Player) user.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemstack), (org.bukkit.entity.Projectile) entitysnowball.getBukkitEntity());
if (event.callEvent() && world.addFreshEntity(entitysnowball)) { if (event.callEvent() && world.addFreshEntity(entitysnowball)) {
diff --git a/src/main/java/net/minecraft/world/item/ThrowablePotionItem.java b/src/main/java/net/minecraft/world/item/ThrowablePotionItem.java diff --git a/src/main/java/net/minecraft/world/item/ThrowablePotionItem.java b/src/main/java/net/minecraft/world/item/ThrowablePotionItem.java
index de5bdceb4c8578fb972a2fd5ee0dfdae509e46dc..bcf63ccb6e679cb97d658780b2663aafa3568bcb 100644 index f47f793c62a919fb65c081ddb82d597a978d3b20..3bbb44ae3da68afbd6012df68dee277a7dbf98c0 100644
--- a/src/main/java/net/minecraft/world/item/ThrowablePotionItem.java --- a/src/main/java/net/minecraft/world/item/ThrowablePotionItem.java
+++ b/src/main/java/net/minecraft/world/item/ThrowablePotionItem.java +++ b/src/main/java/net/minecraft/world/item/ThrowablePotionItem.java
@@ -18,7 +18,7 @@ public class ThrowablePotionItem extends PotionItem { @@ -18,7 +18,7 @@ public class ThrowablePotionItem extends PotionItem {
@@ -79,11 +79,11 @@ index de5bdceb4c8578fb972a2fd5ee0dfdae509e46dc..bcf63ccb6e679cb97d658780b2663aaf
thrownPotion.setItem(itemStack); thrownPotion.setItem(itemStack);
- thrownPotion.shootFromRotation(user, user.getXRot(), user.getYRot(), -20.0F, 0.5F, 1.0F); - thrownPotion.shootFromRotation(user, user.getXRot(), user.getYRot(), -20.0F, 0.5F, 1.0F);
+ thrownPotion.shootFromRotation(user, user.getXRot(), user.getYRot(), -20.0F, 0.5F, (float) world.purpurConfig.throwablePotionProjectileOffset); // Purpur + thrownPotion.shootFromRotation(user, user.getXRot(), user.getYRot(), -20.0F, 0.5F, (float) world.purpurConfig.throwablePotionProjectileOffset); // Purpur
// Paper start // Paper start - PlayerLaunchProjectileEvent
com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent event = new com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent((org.bukkit.entity.Player) user.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemStack), (org.bukkit.entity.Projectile) thrownPotion.getBukkitEntity()); com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent event = new com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent((org.bukkit.entity.Player) user.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemStack), (org.bukkit.entity.Projectile) thrownPotion.getBukkitEntity());
if (event.callEvent() && world.addFreshEntity(thrownPotion)) { if (event.callEvent() && world.addFreshEntity(thrownPotion)) {
diff --git a/src/main/java/net/minecraft/world/item/TridentItem.java b/src/main/java/net/minecraft/world/item/TridentItem.java diff --git a/src/main/java/net/minecraft/world/item/TridentItem.java b/src/main/java/net/minecraft/world/item/TridentItem.java
index f1d6db9382bec49f61657168fe56b06784d02cf5..07695068fafd170ca88ad109d83dea93c387d794 100644 index 75cf58919ac787b389286b41a9f0b5a945e71649..3f922008f928ed077e9ddfd4384ed7bbf7cb293d 100644
--- a/src/main/java/net/minecraft/world/item/TridentItem.java --- a/src/main/java/net/minecraft/world/item/TridentItem.java
+++ b/src/main/java/net/minecraft/world/item/TridentItem.java +++ b/src/main/java/net/minecraft/world/item/TridentItem.java
@@ -77,7 +77,7 @@ public class TridentItem extends Item implements Vanishable { @@ -77,7 +77,7 @@ public class TridentItem extends Item implements Vanishable {
@@ -96,7 +96,7 @@ index f1d6db9382bec49f61657168fe56b06784d02cf5..07695068fafd170ca88ad109d83dea93
entitythrowntrident.pickup = AbstractArrow.Pickup.CREATIVE_ONLY; entitythrowntrident.pickup = AbstractArrow.Pickup.CREATIVE_ONLY;
} }
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 ff6c402f69072ffa781593a28fc7fa0637e7e612..bdac4ecd881b9469a319275f9c0f074ccffe48c2 100644 index 1de0fbb72819f6de3897d9c165e2f07c3b9a5280..88dd3e74675886789abc29b65bd2931a50c0a9c1 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
@@ -422,6 +422,23 @@ public class PurpurWorldConfig { @@ -422,6 +422,23 @@ public class PurpurWorldConfig {

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 6fd094b30b0d8eee70674283ff6523133ee322ba..cc7c2463ef24b44f44575f245a27c5439c0b9be8 100644 index 1bb50f182fa6274cb0c631e0d4e79288443b3a53..ac0fc8b7184ba1b6d40261cc15d81a7936f728d4 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
@@ -503,6 +503,21 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -502,6 +502,21 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return true; return true;
} }
@@ -32,7 +32,7 @@ index 6fd094b30b0d8eee70674283ff6523133ee322ba..cc7c2463ef24b44f44575f245a27c543
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 4154eb08be0d6492cfba931761671a6384390d1b..338e9bef962f9090070a9c76e565c6aeab66975e 100644 index d72838fe8a0a9540750bfc3a26202e93493c98f3..6eb7a1398d1ce63ec6c11d9865f4c16b51c361de 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 4154eb08be0d6492cfba931761671a6384390d1b..338e9bef962f9090070a9c76e565c6ae
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 7203384094de96ceea810b3e2da21c145c12a31d..9caee3db19fa76e8e311ead8f892d0f8bebfe6b2 100644 index 4383b2555cb416fce7b62b046211dbc3e8c75601..c029752141efbc48005dae0e3c1a071ba039b3a7 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 {
@@ -115,7 +115,7 @@ index 7203384094de96ceea810b3e2da21c145c12a31d..9caee3db19fa76e8e311ead8f892d0f8
@Override @Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java diff --git a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
index d205578dbed88776c6704fec9500299ce1606152..30fae50f81ec09707b0cb3ed469ae11695fbb540 100644 index 9d259d7e2aa3e44e350eb5927314cfceaffaf3f3..3f9e81c0bdd85bec24a1209ad3fd3dc43d988a4f 100644
--- a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java --- a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
+++ b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java +++ b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
@@ -66,6 +66,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo @@ -66,6 +66,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
@@ -129,16 +129,16 @@ index d205578dbed88776c6704fec9500299ce1606152..30fae50f81ec09707b0cb3ed469ae116
@@ -101,35 +102,14 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo @@ -101,35 +102,14 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
} }
// Paper start // Paper start - shouldBurnInDay API
- private boolean shouldBurnInDay = true; - private boolean shouldBurnInDay = true;
+ // private boolean shouldBurnInDay = true; // Purpur - moved to LivingEntity - keep methods for ABI compatibility + // private boolean shouldBurnInDay = true; // Purpur - moved to LivingEntity - keep methods for ABI compatibility
public boolean shouldBurnInDay() { return shouldBurnInDay; } public boolean shouldBurnInDay() { return shouldBurnInDay; }
public void setShouldBurnInDay(boolean shouldBurnInDay) { this.shouldBurnInDay = shouldBurnInDay; } public void setShouldBurnInDay(boolean shouldBurnInDay) { this.shouldBurnInDay = shouldBurnInDay; }
// Paper end // Paper end - shouldBurnInDay API
@Override @Override
public void aiStep() { public void aiStep() {
- boolean flag = shouldBurnInDay && this.isSunBurnTick(); // Paper - Configurable Burning - boolean flag = shouldBurnInDay && this.isSunBurnTick(); // Paper - shouldBurnInDay API
- -
- if (flag) { - if (flag) {
- ItemStack itemstack = this.getItemBySlot(EquipmentSlot.HEAD); - ItemStack itemstack = this.getItemBySlot(EquipmentSlot.HEAD);
@@ -174,12 +174,12 @@ index d205578dbed88776c6704fec9500299ce1606152..30fae50f81ec09707b0cb3ed469ae116
@@ -238,7 +217,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo @@ -238,7 +217,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
this.reassessWeaponGoal(); this.reassessWeaponGoal();
// Paper start // Paper start - shouldBurnInDay API
if (nbt.contains("Paper.ShouldBurnInDay")) { if (nbt.contains("Paper.ShouldBurnInDay")) {
- this.shouldBurnInDay = nbt.getBoolean("Paper.ShouldBurnInDay"); - this.shouldBurnInDay = nbt.getBoolean("Paper.ShouldBurnInDay");
+ // this.shouldBurnInDay = nbt.getBoolean("Paper.ShouldBurnInDay"); // Purpur - implemented in LivingEntity + // this.shouldBurnInDay = nbt.getBoolean("Paper.ShouldBurnInDay"); // Purpur - implemented in LivingEntity
} }
// Paper end // Paper end - shouldBurnInDay API
} }
@@ -247,7 +226,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo @@ -247,7 +226,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
@Override @Override
@@ -188,7 +188,7 @@ index d205578dbed88776c6704fec9500299ce1606152..30fae50f81ec09707b0cb3ed469ae116
- nbt.putBoolean("Paper.ShouldBurnInDay", this.shouldBurnInDay); - nbt.putBoolean("Paper.ShouldBurnInDay", this.shouldBurnInDay);
+ // nbt.putBoolean("Paper.ShouldBurnInDay", this.shouldBurnInDay); // Purpur - implemented in LivingEntity + // nbt.putBoolean("Paper.ShouldBurnInDay", this.shouldBurnInDay); // Purpur - implemented in LivingEntity
} }
// Paper end // Paper end - shouldBurnInDay API
diff --git a/src/main/java/net/minecraft/world/entity/monster/Husk.java b/src/main/java/net/minecraft/world/entity/monster/Husk.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Husk.java b/src/main/java/net/minecraft/world/entity/monster/Husk.java
index f6d6df27c2ca7a33ed3ca8e299725b6a5c4aafc3..5ac87650e357f3ac48e37713b9b0b18ad4d6feb6 100644 index f6d6df27c2ca7a33ed3ca8e299725b6a5c4aafc3..5ac87650e357f3ac48e37713b9b0b18ad4d6feb6 100644
@@ -212,7 +212,7 @@ index f6d6df27c2ca7a33ed3ca8e299725b6a5c4aafc3..5ac87650e357f3ac48e37713b9b0b18a
@Override @Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
index 030b81dd8c52ddb300e73d792f9c4cea4e8a8d46..1d4a292a37069408420ca90b1c2784229781f93f 100644 index 637b229817f9f2c3ad224f300b56a6bee4c8a341..bcb1912ea218fbb4b849ab84a7025202100b82c3 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -61,6 +61,7 @@ public class Phantom extends FlyingMob implements Enemy { @@ -61,6 +61,7 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -230,9 +230,9 @@ index 030b81dd8c52ddb300e73d792f9c4cea4e8a8d46..1d4a292a37069408420ca90b1c278422
- // Purpur start - // Purpur start
- boolean burnFromDaylight = this.shouldBurnInDay && this.level().purpurConfig.phantomBurnInDaylight; - boolean burnFromDaylight = this.shouldBurnInDay && this.level().purpurConfig.phantomBurnInDaylight;
- boolean burnFromLightSource = this.level().purpurConfig.phantomBurnInLight > 0 && this.level().getMaxLocalRawBrightness(blockPosition()) >= this.level().purpurConfig.phantomBurnInLight; - boolean burnFromLightSource = this.level().purpurConfig.phantomBurnInLight > 0 && this.level().getMaxLocalRawBrightness(blockPosition()) >= this.level().purpurConfig.phantomBurnInLight;
- if (this.isAlive() && (burnFromDaylight || burnFromLightSource)) { // Paper - Configurable Burning - if (this.isAlive() && (burnFromDaylight || burnFromLightSource)) { // Paper - shouldBurnInDay API
- if (getRider() == null || !this.isControllable()) - if (getRider() == null || !this.isControllable())
- // Purpur end - // Purpur end
- if (getRider() == null || !this.isControllable()) // Purpur - if (getRider() == null || !this.isControllable()) // Purpur
- this.setSecondsOnFire(8); - this.setSecondsOnFire(8);
- } - }
@@ -259,12 +259,13 @@ index 030b81dd8c52ddb300e73d792f9c4cea4e8a8d46..1d4a292a37069408420ca90b1c278422
// Paper end // Paper end
} }
@@ -378,8 +370,14 @@ public class Phantom extends FlyingMob implements Enemy { @@ -377,8 +369,15 @@ public class Phantom extends FlyingMob implements Enemy {
return spawningEntity;
} }
public void setSpawningEntity(java.util.UUID entity) { this.spawningEntity = entity; } public void setSpawningEntity(java.util.UUID entity) { this.spawningEntity = entity; }
- private boolean shouldBurnInDay = true; - private boolean shouldBurnInDay = true;
- public boolean shouldBurnInDay() { return shouldBurnInDay; } - public boolean shouldBurnInDay() { return shouldBurnInDay; }
+
+ // private boolean shouldBurnInDay = true; // Purpur - moved to LivingEntity - keep methods for ABI compatibility + // private boolean shouldBurnInDay = true; // Purpur - moved to LivingEntity - keep methods for ABI compatibility
+ // Purpur start + // Purpur start
+ public boolean shouldBurnInDay() { + public boolean shouldBurnInDay() {
@@ -277,19 +278,19 @@ index 030b81dd8c52ddb300e73d792f9c4cea4e8a8d46..1d4a292a37069408420ca90b1c278422
// 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 52a576a16bfeb7dc6ec97280f9a5e0f408d71e46..9b1ae2fa1681f1212b6a09d5b10b16634ce65470 100644 index edc47e077fe44d1b817b791ddde86e052a5bf831..2dad874c0a425cf2d0a385b6061ab79d81b82c86 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 {
private int inWaterTime; private int inWaterTime;
public int conversionTime; public int conversionTime;
private int lastTick = MinecraftServer.currentTick; // CraftBukkit - add field private int lastTick = MinecraftServer.currentTick; // CraftBukkit - add field
- private boolean shouldBurnInDay = true; // Paper - private boolean shouldBurnInDay = true; // Paper - Add more Zombie API
+ // private boolean shouldBurnInDay = true; // Paper // Purpur - implemented in LivingEntity + // private boolean shouldBurnInDay = true; // Paper - Add more Zombie API // Purpur - implemented in LivingEntity
public Zombie(EntityType<? extends Zombie> type, Level world) { public Zombie(EntityType<? extends Zombie> type, Level world) {
super(type, world); super(type, world);
this.breakDoorGoal = new BreakDoorGoal(this, com.google.common.base.Predicates.in(world.paperConfig().entities.behavior.doorBreakingDifficulty.getOrDefault(type, world.paperConfig().entities.behavior.doorBreakingDifficulty.get(EntityType.ZOMBIE)))); // Paper this.breakDoorGoal = new BreakDoorGoal(this, com.google.common.base.Predicates.in(world.paperConfig().entities.behavior.doorBreakingDifficulty.getOrDefault(type, world.paperConfig().entities.behavior.doorBreakingDifficulty.get(EntityType.ZOMBIE)))); // Paper - Configurable door breaking difficulty
+ this.setShouldBurnInDay(true); // Purpur + this.setShouldBurnInDay(true); // Purpur
} }
@@ -332,28 +333,28 @@ index 52a576a16bfeb7dc6ec97280f9a5e0f408d71e46..9b1ae2fa1681f1212b6a09d5b10b1663
+ public boolean shouldBurnInDay() { return isSunSensitive(); } // Purpur - for ABI compatibility + public boolean shouldBurnInDay() { return isSunSensitive(); } // Purpur - for ABI compatibility
public boolean isSunSensitive() { public boolean isSunSensitive() {
return this.shouldBurnInDay; // Paper - use api value instead return this.shouldBurnInDay; // Paper - Add more Zombie API
} }
@@ -486,7 +465,7 @@ public class Zombie extends Monster { @@ -486,7 +465,7 @@ public class Zombie extends Monster {
nbt.putBoolean("CanBreakDoors", this.canBreakDoors()); nbt.putBoolean("CanBreakDoors", this.canBreakDoors());
nbt.putInt("InWaterTime", this.isInWater() ? this.inWaterTime : -1); nbt.putInt("InWaterTime", this.isInWater() ? this.inWaterTime : -1);
nbt.putInt("DrownedConversionTime", this.isUnderWaterConverting() ? this.conversionTime : -1); nbt.putInt("DrownedConversionTime", this.isUnderWaterConverting() ? this.conversionTime : -1);
- nbt.putBoolean("Paper.ShouldBurnInDay", this.shouldBurnInDay); // Paper - nbt.putBoolean("Paper.ShouldBurnInDay", this.shouldBurnInDay); // Paper - Add more Zombie API
+ // nbt.putBoolean("Paper.ShouldBurnInDay", this.shouldBurnInDay); // Paper // Purpur - implemented in LivingEntity + // nbt.putBoolean("Paper.ShouldBurnInDay", this.shouldBurnInDay); // Paper - Add more Zombie API // Purpur - implemented in LivingEntity
} }
@Override @Override
@@ -500,7 +479,7 @@ public class Zombie extends Monster { @@ -500,7 +479,7 @@ public class Zombie extends Monster {
} }
// Paper start // Paper start - Add more Zombie API
if (nbt.contains("Paper.ShouldBurnInDay")) { if (nbt.contains("Paper.ShouldBurnInDay")) {
- this.shouldBurnInDay = nbt.getBoolean("Paper.ShouldBurnInDay"); - this.shouldBurnInDay = nbt.getBoolean("Paper.ShouldBurnInDay");
+ // this.shouldBurnInDay = nbt.getBoolean("Paper.ShouldBurnInDay"); // Purpur - implemented in LivingEntity + // this.shouldBurnInDay = nbt.getBoolean("Paper.ShouldBurnInDay"); // Purpur - implemented in LivingEntity
} }
// Paper end // 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 001b9d5aef4c2d9fb272dd187d0d0bd001de5693..ea5ac1f53309fdd30aad40fd4a092f297d76fd61 100644 index c3880875f5148d869d7e067fe78cbd1b9492b501..2ef6dc2390ed622eda284e3b4c85ec64e057c981 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 {
@@ -369,7 +370,7 @@ index 001b9d5aef4c2d9fb272dd187d0d0bd001de5693..ea5ac1f53309fdd30aad40fd4a092f29
Preconditions.checkArgument(entity != null, "Unknown entity"); Preconditions.checkArgument(entity != null, "Unknown entity");
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 12c7505c2ce562b3188c079952e57ae1fab5268b..10ca0fdb5b92cc4f1d346540c9129d5c55732985 100644 index 9bad55be51db41252f60fd976b2c1e54945a5b01..aa45eea710cdb4bd7aa0e12eacc879826b2e98c6 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
@@ -1135,5 +1135,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { @@ -1135,5 +1135,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {

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 dff80441f192449f8d8e3a666af3e842f77b99ed..a7efbf24ca52d2303323ae2406cfe4beb7a72d4c 100644 index ac0fc8b7184ba1b6d40261cc15d81a7936f728d4..57376b7c0d281a7950a69348b5aa869e89719232 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
@@ -3224,7 +3224,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -3223,7 +3223,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
} }
this.processPortalCooldown(); this.processPortalCooldown();
@@ -18,7 +18,7 @@ index dff80441f192449f8d8e3a666af3e842f77b99ed..a7efbf24ca52d2303323ae2406cfe4be
} }
diff --git a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java diff --git a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java
index bc73d1051749339b44ff6765162ab6a76663a628..0b45bc1db5f57a4381c470a563aa81ac0d3a1be7 100644 index a5a8bd6813b68ab2e913fc3ae30c9950c242beb3..f277a4a21b15627c45061e51c8f6c0812a176a10 100644
--- a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java --- a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java +++ b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java
@@ -69,6 +69,22 @@ public class EndPortalBlock extends BaseEntityBlock { @@ -69,6 +69,22 @@ public class EndPortalBlock extends BaseEntityBlock {
@@ -45,7 +45,7 @@ index bc73d1051749339b44ff6765162ab6a76663a628..0b45bc1db5f57a4381c470a563aa81ac
entity.portalWorld = ((ServerLevel)world); entity.portalWorld = ((ServerLevel)world);
entity.portalBlock = pos.immutable(); entity.portalBlock = pos.immutable();
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 7f69260fc1286c243ecc46311e1188a465f9d481..1e82dea915cdbf09cca47c753dc181c3e51a6fc1 100644 index 77fa5b91ac5a65d2dce6195214c39dbff4aa6c8b..9940ba58d5f32a4ffe68a99270dda87ff34b977a 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
@@ -631,6 +631,11 @@ public class PurpurWorldConfig { @@ -631,6 +631,11 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Make lightning rod range configurable
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 3bce997b0fe372fd4bf172a879bce80996246278..eea2d34a8a0a66ce90e347cd0fb271853098431c 100644 index 5af5a22e725bdae1cc15702b37982f585c46286f..8a695b29d9c641dbd35d6faa1c2f97c0c83c99bb 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
@@ -1197,7 +1197,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1192,7 +1192,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
return holder.is(PoiTypes.LIGHTNING_ROD); return holder.is(PoiTypes.LIGHTNING_ROD);
}, (blockposition1) -> { }, (blockposition1) -> {
return blockposition1.getY() == this.getHeight(Heightmap.Types.WORLD_SURFACE, blockposition1.getX(), blockposition1.getZ()) - 1; return blockposition1.getY() == this.getHeight(Heightmap.Types.WORLD_SURFACE, blockposition1.getX(), blockposition1.getZ()) - 1;

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Customizable sleeping actionbar messages
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 eea2d34a8a0a66ce90e347cd0fb271853098431c..cb1e59ed73f91a448346820cf47e083ebf81259d 100644 index 8a695b29d9c641dbd35d6faa1c2f97c0c83c99bb..6971ce789c329d733bbc373422000fa0efff7ef6 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
@@ -1246,11 +1246,27 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1241,11 +1241,27 @@ public class ServerLevel extends Level implements WorldGenLevel {
if (this.canSleepThroughNights()) { if (this.canSleepThroughNights()) {
if (!this.getServer().isSingleplayer() || this.getServer().isPublished()) { if (!this.getServer().isSingleplayer() || this.getServer().isPublished()) {
int i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE); int i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE);
@@ -38,7 +38,7 @@ index eea2d34a8a0a66ce90e347cd0fb271853098431c..cb1e59ed73f91a448346820cf47e083e
} }
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 386a74f8a6f61fb745a1e36d8955d26bfc2ad78a..71dc8baa9eb93728c982139dde16f1c4567d1925 100644 index 9e6b399584d21aeca1beeb84e67dee10424e8f19..88a8fda97854e19e658c52434eb25542f3699f35 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
@@ -1469,7 +1469,19 @@ public class ServerPlayer extends Player { @@ -1469,7 +1469,19 @@ public class ServerPlayer extends Player {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add compass 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 bf51f5e414ab45e33efa4057ab251120290b43e1..428dd75450bdd5daf902a1fbaca7031a9bc585a8 100644 index f6d6c3d96056a744fffb4883240e991896348e0c..7e266a126180000dcad4b3bd8606349bdc95c30b 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
@@ -255,6 +255,7 @@ public class Commands { @@ -255,6 +255,7 @@ public class Commands {
@@ -17,11 +17,11 @@ index bf51f5e414ab45e33efa4057ab251120290b43e1..428dd75450bdd5daf902a1fbaca7031a
if (environment.includeIntegrated) { if (environment.includeIntegrated) {
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 71dc8baa9eb93728c982139dde16f1c4567d1925..cd449e35bbc689ce6d2595693a4fbe1f226998c8 100644 index 88a8fda97854e19e658c52434eb25542f3699f35..d9911426361684a20e3559f8a6694a52b30d7479 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
@@ -283,6 +283,7 @@ public class ServerPlayer extends Player { @@ -283,6 +283,7 @@ public class ServerPlayer extends Player {
public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - there are a lot of changes to do if we change all methods leading to the event public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - Add API for quit reason; there are a lot of changes to do if we change all methods leading to the event
public boolean purpurClient = false; // Purpur public boolean purpurClient = false; // Purpur
private boolean tpsBar = false; // Purpur private boolean tpsBar = false; // Purpur
+ private boolean compassBar = false; // Purpur + private boolean compassBar = false; // Purpur
@@ -89,7 +89,7 @@ index 6aa225252d1026979fe88c273652e3d9ebdeb5f3..477639dddb7c5ae0c9cc45a6eca73d82
hideHiddenPlayersFromEntitySelector = getBoolean("settings.command.hide-hidden-players-from-entity-selector", hideHiddenPlayersFromEntitySelector); hideHiddenPlayersFromEntitySelector = getBoolean("settings.command.hide-hidden-players-from-entity-selector", hideHiddenPlayersFromEntitySelector);
uptimeFormat = getString("settings.command.uptime.format", uptimeFormat); uptimeFormat = getString("settings.command.uptime.format", uptimeFormat);
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 f78716c6d8635c21dacb216760a5ba0ebc33b73f..cc5e11524928bdec5402263eb68a51128b0503df 100644 index f626232a488a38ba6dd2a491afbfa7dbaf4ff3bf..fd07ab7ce9eaec09429ecd75c93c57db437d5aa5 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
@@ -222,6 +222,7 @@ public class PurpurWorldConfig { @@ -222,6 +222,7 @@ public class PurpurWorldConfig {

View File

@@ -24,11 +24,11 @@ index 1af7e1548f0648890a1ef2fc0ff4e4c3a56c947c..decea1697c075e7549ccc7501c8e5935
} else if (this.isFuel(itemstack1)) { } else if (this.isFuel(itemstack1)) {
if (!this.moveItemStackTo(itemstack1, 1, 2, false)) { if (!this.moveItemStackTo(itemstack1, 1, 2, false)) {
diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java
index 4fa77dbb02b5b2ad679f022ad10702453af0d178..af66c7eec6291b0bc9575f59c8210cd7f697232a 100644 index acfacda5001ef188acfef8ac0d319d66ce1883fb..1d179e9485df78657ce67ab7ca4c4b1bcaf6c4ea 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java --- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java
@@ -209,6 +209,22 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit @@ -209,6 +209,22 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit
// Paper end // Paper end - cache burn durations
} }
+ // Purpur start + // Purpur start
@@ -51,7 +51,7 @@ index 4fa77dbb02b5b2ad679f022ad10702453af0d178..af66c7eec6291b0bc9575f59c8210cd7
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 a675368062510a699ef18fb8064f0909930618d5..25105e2de0ac8a0b98212818029dafe2c864f383 100644 index acf930d1d30e924177e49cde6d41a3ada1f16e5d..c1d1d5b561470e3ff1b75b41d83116ae05bef19e 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 { @@ -1573,6 +1573,19 @@ public final class CraftServer implements Server {

View File

@@ -5,23 +5,23 @@ Subject: [PATCH] Option for if rain and thunder should stop on sleep
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 cb1e59ed73f91a448346820cf47e083ebf81259d..6ccbf43edf0177b4d32c080c34d3df3ca35fe957 100644 index 6971ce789c329d733bbc373422000fa0efff7ef6..e675d7e82245e1b7ef94fc55f393002ab572e2ba 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
@@ -1406,6 +1406,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1401,6 +1401,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@VisibleForTesting @VisibleForTesting
public void resetWeatherCycle() { public void resetWeatherCycle() {
// CraftBukkit start // CraftBukkit start
+ if (this.purpurConfig.rainStopsAfterSleep) // Purpur + if (this.purpurConfig.rainStopsAfterSleep) // Purpur
this.serverLevelData.setRaining(false, org.bukkit.event.weather.WeatherChangeEvent.Cause.SLEEP); // Paper - when passing the night this.serverLevelData.setRaining(false, org.bukkit.event.weather.WeatherChangeEvent.Cause.SLEEP); // Paper - Add cause to Weather/ThunderChangeEvents
// If we stop due to everyone sleeping we should reset the weather duration to some other random value. // If we stop due to everyone sleeping we should reset the weather duration to some other random value.
// Not that everyone ever manages to get the whole server to sleep at the same time.... // Not that everyone ever manages to get the whole server to sleep at the same time....
@@ -1413,6 +1414,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1408,6 +1409,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.serverLevelData.setRainTime(0); this.serverLevelData.setRainTime(0);
} }
// CraftBukkit end // CraftBukkit end
+ if (this.purpurConfig.thunderStopsAfterSleep) // Purpur + if (this.purpurConfig.thunderStopsAfterSleep) // Purpur
this.serverLevelData.setThundering(false, org.bukkit.event.weather.ThunderChangeEvent.Cause.SLEEP); // Paper - when passing the night this.serverLevelData.setThundering(false, org.bukkit.event.weather.ThunderChangeEvent.Cause.SLEEP); // Paper - Add cause to Weather/ThunderChangeEvents
// CraftBukkit start // CraftBukkit start
// If we stop due to everyone sleeping we should reset the weather duration to some other random value. // If we stop due to everyone sleeping we should reset the weather duration to some other random value.
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

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Shift right click to use exp for mending
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
index f5cd726ba56f2ecec0a0cf613ad720b8271afead..5e18507e6d799e51f555ffc0a5f14cb76959023d 100644 index 587bf8027765ab678ea15a24e7953f81dd4e6d64..096884909a21472806592356abf272bb3ddeedf0 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -517,6 +517,7 @@ public class ServerPlayerGameMode { @@ -517,6 +517,7 @@ public class ServerPlayerGameMode {
@@ -36,10 +36,10 @@ index f5cd726ba56f2ecec0a0cf613ad720b8271afead..5e18507e6d799e51f555ffc0a5f14cb7
+ // Purpur end + // Purpur end
} }
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 5c933996fe4cf45e3cb072fe2573419cc2fe92af..044b8d517b68cc7103ba7f2a57b26c8c3413b412 100644 index 5f6a3fac5157f2baddff4d83ac56a01172c410d6..8b0a8bd1dab67ea440fc3af0a1b13c81dd738e25 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
@@ -2057,6 +2057,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -2052,6 +2052,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
boolean cancelled; boolean cancelled;
if (movingobjectposition == null || movingobjectposition.getType() != HitResult.Type.BLOCK) { if (movingobjectposition == null || movingobjectposition.getType() != HitResult.Type.BLOCK) {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Halloween options and optimizations
diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
index 39dc169eedc407284452380a883e8a2735cc46cb..980f2426a5052117f03ebb1ed3f7882b236ad86e 100644 index 3c7db09c5fbcb9d57febc937158b50634d68a082..08190c45b0807079b77c41203502e355ecaf2e14 100644
--- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java --- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java
+++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java +++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
@@ -304,7 +304,7 @@ public class Bat extends AmbientCreature { @@ -304,7 +304,7 @@ public class Bat extends AmbientCreature {
@@ -26,12 +26,12 @@ index 39dc169eedc407284452380a883e8a2735cc46cb..980f2426a5052117f03ebb1ed3f7882b
if (net.minecraft.server.MinecraftServer.currentTick - lastSpookyCheck > ONE_HOUR) { if (net.minecraft.server.MinecraftServer.currentTick - lastSpookyCheck > ONE_HOUR) {
LocalDate localdate = LocalDate.now(); LocalDate localdate = LocalDate.now();
diff --git a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java diff --git a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
index f35637a105d5aa12fb57c2456f2b2a7db12a49f0..f3e1fa62d9f067c0fe8aacb88bf30b01ee0562c1 100644 index 3f9e81c0bdd85bec24a1209ad3fd3dc43d988a4f..cb378b343f721c16868a6673aba59856574c7133 100644
--- a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java --- a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
+++ b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java +++ b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
@@ -143,11 +143,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo @@ -143,11 +143,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
this.reassessWeaponGoal(); this.reassessWeaponGoal();
this.setCanPickUpLoot(this.level().paperConfig().entities.behavior.mobsCanAlwaysPickUpLoot.skeletons || randomsource.nextFloat() < 0.55F * difficulty.getSpecialMultiplier()); // Paper this.setCanPickUpLoot(this.level().paperConfig().entities.behavior.mobsCanAlwaysPickUpLoot.skeletons || randomsource.nextFloat() < 0.55F * difficulty.getSpecialMultiplier()); // Paper - Add world settings for mobs picking up loot
if (this.getItemBySlot(EquipmentSlot.HEAD).isEmpty()) { if (this.getItemBySlot(EquipmentSlot.HEAD).isEmpty()) {
- LocalDate localdate = LocalDate.now(); - LocalDate localdate = LocalDate.now();
- int i = localdate.get(ChronoField.DAY_OF_MONTH); - int i = localdate.get(ChronoField.DAY_OF_MONTH);
@@ -43,7 +43,7 @@ index f35637a105d5aa12fb57c2456f2b2a7db12a49f0..f3e1fa62d9f067c0fe8aacb88bf30b01
this.armorDropChances[EquipmentSlot.HEAD.getIndex()] = 0.0F; this.armorDropChances[EquipmentSlot.HEAD.getIndex()] = 0.0F;
} }
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 9b1ae2fa1681f1212b6a09d5b10b16634ce65470..728f4f2d7c37e253b0dab752f627a7b6c4e8339c 100644 index 2dad874c0a425cf2d0a385b6061ab79d81b82c86..47b5a928574a57107dfaeaecf49459496a64a036 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
@@ -586,11 +586,7 @@ public class Zombie extends Monster { @@ -586,11 +586,7 @@ public class Zombie extends Monster {
@@ -60,7 +60,7 @@ index 9b1ae2fa1681f1212b6a09d5b10b16634ce65470..728f4f2d7c37e253b0dab752f627a7b6
this.armorDropChances[EquipmentSlot.HEAD.getIndex()] = 0.0F; this.armorDropChances[EquipmentSlot.HEAD.getIndex()] = 0.0F;
} }
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 83e4255059ca68f1fef3a8915662db28a98109b3..285ea8571af68d86579e786912f1145dc0b83955 100644 index 82522611cbca7ce08b9a12e514fb8286a3280550..9e3181b5f2329d44025f7d811f1865d353cb6a96 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
@@ -1684,6 +1684,13 @@ public class PurpurWorldConfig { @@ -1684,6 +1684,13 @@ public class PurpurWorldConfig {

View File

@@ -5,7 +5,7 @@ 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 22cacc9491edcbbe3f107829d898bc16aab53902..187a529eaaac8ceec54419d6c4886705a2f810f7 100644 index 2eb14b686effe22721b377c55f5dede050ddd616..dec396d4d8b603d1d5282d9273c0258964b27389 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
@@ -18,7 +18,7 @@ index 22cacc9491edcbbe3f107829d898bc16aab53902..187a529eaaac8ceec54419d6c4886705
public volatile boolean abnormalExit = false; // Paper public volatile boolean abnormalExit = false; // Paper
@@ -975,6 +976,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -975,6 +976,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
MinecraftServer.LOGGER.info("Stopping server"); MinecraftServer.LOGGER.info("Stopping server");
Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - 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
+ // Purpur start + // Purpur start
+ if (upnp) { + if (upnp) {
@@ -32,7 +32,7 @@ index 22cacc9491edcbbe3f107829d898bc16aab53902..187a529eaaac8ceec54419d6c4886705
if (this.server != null) { if (this.server != null) {
this.server.disablePlugins(); this.server.disablePlugins();
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index c0c8666b9a2cdc10296001e92f0c90838c16916c..a41aca0d136369aa7d8ec74135d4eb23ae84f73b 100644 index 18ec329505b0e1e76f5967ca6b298ed2d1911823..a90c973624b561ffc2212951ffb235e84debe0ed 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -278,6 +278,30 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -278,6 +278,30 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface

View File

@@ -7,7 +7,7 @@ Makes it so that when a BlockEntity is placed in the world and then broken,
the dropped ItemStack retains any original custom display name/lore. the dropped ItemStack retains any original custom display name/lore.
diff --git a/src/main/java/net/minecraft/world/item/BlockItem.java b/src/main/java/net/minecraft/world/item/BlockItem.java diff --git a/src/main/java/net/minecraft/world/item/BlockItem.java b/src/main/java/net/minecraft/world/item/BlockItem.java
index f04e857df530a170f6e532f34a2967f343d8e5a4..891cc06311fd135d2ac4a46d9cb3368ea2c041dd 100644 index b1779e3cf4b01afc15aa367cfadb999366e46d19..f33fcd7bca6f315c4b4cf1f5063f4772790ad20d 100644
--- a/src/main/java/net/minecraft/world/item/BlockItem.java --- a/src/main/java/net/minecraft/world/item/BlockItem.java
+++ b/src/main/java/net/minecraft/world/item/BlockItem.java +++ b/src/main/java/net/minecraft/world/item/BlockItem.java
@@ -152,7 +152,24 @@ public class BlockItem extends Item { @@ -152,7 +152,24 @@ public class BlockItem extends Item {
@@ -37,7 +37,7 @@ index f04e857df530a170f6e532f34a2967f343d8e5a4..891cc06311fd135d2ac4a46d9cb3368e
@Nullable @Nullable
diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java
index cd9996b03974d44ba0285a6eab7d2923c2533446..f1ec3e6d63364c254c2060d86a6443a0199d9c40 100644 index 345c0299e95be5f3c46237ba0626311553260506..b17def87be9e96fa0c94f50b359d83fd82c90f01 100644
--- a/src/main/java/net/minecraft/world/level/block/Block.java --- a/src/main/java/net/minecraft/world/level/block/Block.java
+++ b/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java
@@ -63,6 +63,13 @@ import net.minecraft.world.phys.shapes.Shapes; @@ -63,6 +63,13 @@ import net.minecraft.world.phys.shapes.Shapes;
@@ -128,7 +128,7 @@ index cd9996b03974d44ba0285a6eab7d2923c2533446..f1ec3e6d63364c254c2060d86a6443a0
double d0 = (double) EntityType.ITEM.getHeight() / 2.0D; double d0 = (double) EntityType.ITEM.getHeight() / 2.0D;
double d1 = (double) pos.getX() + 0.5D + Mth.nextDouble(world.random, -0.25D, 0.25D); double d1 = (double) pos.getX() + 0.5D + Mth.nextDouble(world.random, -0.25D, 0.25D);
diff --git a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java diff --git a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java
index a6f47fa9f6065ed669414996b447e2daf34b3495..46a2fc54272cb4d6a80ca20e45d096121457311e 100644 index 4ce7a7947fa727e64556148f923508ce76c128c4..96995d9163d34fa55cb4b6a28f8b0c51752e1357 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java --- a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java
@@ -6,6 +6,8 @@ import net.minecraft.CrashReportCategory; @@ -6,6 +6,8 @@ import net.minecraft.CrashReportCategory;
@@ -169,10 +169,10 @@ index a6f47fa9f6065ed669414996b447e2daf34b3495..46a2fc54272cb4d6a80ca20e45d09612
public final CompoundTag saveWithFullMetadata() { public final CompoundTag saveWithFullMetadata() {
CompoundTag nbttagcompound = this.saveWithoutMetadata(); CompoundTag nbttagcompound = this.saveWithoutMetadata();
@@ -263,4 +282,24 @@ public abstract class BlockEntity { @@ -262,4 +281,24 @@ public abstract class BlockEntity {
return tag;
} }
// Paper end // Paper end - Sanitize sent data
+ // Purpur start + // Purpur start
+ private String persistentDisplayName = null; + private String persistentDisplayName = null;
+ private ListTag persistentLore = null; + private ListTag persistentLore = null;

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Kelp, cave, weeping, and twisting vines configurable max
diff --git a/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java b/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java diff --git a/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java b/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java
index 54916c80720f219bf747250a2ff9a875f180c7a2..cae6d33728a39de9db908e1e24fdc3ad987d0542 100644 index 1ec8c2d24ec8468d20f322d67143b9454ff266eb..558f243ee0923af9a8cb9e1bb6f4a0e5c8341fe4 100644
--- a/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java --- a/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java +++ b/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java
@@ -94,4 +94,11 @@ public class CaveVinesBlock extends GrowingPlantHeadBlock implements Bonemealabl @@ -95,4 +95,11 @@ public class CaveVinesBlock extends GrowingPlantHeadBlock implements Bonemealabl
public void performBonemeal(ServerLevel world, RandomSource random, BlockPos pos, BlockState state) { public void performBonemeal(ServerLevel world, RandomSource random, BlockPos pos, BlockState state) {
world.setBlock(pos, state.setValue(BERRIES, Boolean.valueOf(true)), 2); world.setBlock(pos, state.setValue(BERRIES, Boolean.valueOf(true)), 2);
} }
@@ -22,7 +22,7 @@ index 54916c80720f219bf747250a2ff9a875f180c7a2..cae6d33728a39de9db908e1e24fdc3ad
+ // Purpur end + // Purpur end
} }
diff --git a/src/main/java/net/minecraft/world/level/block/GrowingPlantHeadBlock.java b/src/main/java/net/minecraft/world/level/block/GrowingPlantHeadBlock.java diff --git a/src/main/java/net/minecraft/world/level/block/GrowingPlantHeadBlock.java b/src/main/java/net/minecraft/world/level/block/GrowingPlantHeadBlock.java
index 4ebdc4918131a15a1c91b45e8ceb1392bca20a81..2537f99baca6213618865d60f84e96b8a4849307 100644 index 30300ef3ec839dfa944c992ab50db4d3859bb02e..0d64b19dbbca9d563d90cabf0e2d32f76bfc0c62 100644
--- a/src/main/java/net/minecraft/world/level/block/GrowingPlantHeadBlock.java --- a/src/main/java/net/minecraft/world/level/block/GrowingPlantHeadBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/GrowingPlantHeadBlock.java +++ b/src/main/java/net/minecraft/world/level/block/GrowingPlantHeadBlock.java
@@ -34,12 +34,12 @@ public abstract class GrowingPlantHeadBlock extends GrowingPlantBlock implements @@ -34,12 +34,12 @@ public abstract class GrowingPlantHeadBlock extends GrowingPlantBlock implements

View File

@@ -5,7 +5,7 @@ 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 dca769857dbf045bf2184f7761e9a09933858b51..db3afaf25b1991a257bd2d5036527f4cb00c5040 100644 index 51b49813ba1c2cae1dff5738bb43cedfbcfbc17f..2f590981a2d16377400ee6bbdeeb452daf42fc87 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 { @@ -2420,6 +2420,7 @@ public abstract class Player extends LivingEntity {
@@ -13,7 +13,7 @@ index dca769857dbf045bf2184f7761e9a09933858b51..db3afaf25b1991a257bd2d5036527f4c
public static boolean isValidUsername(String name) { public static boolean isValidUsername(String name) {
+ if (true) return org.purpurmc.purpur.PurpurConfig.usernameValidCharactersPattern.matcher(name).matches(); // Purpur + if (true) return org.purpurmc.purpur.PurpurConfig.usernameValidCharactersPattern.matcher(name).matches(); // Purpur
// Paper start // Paper start - username validation overriding
if (name == null || name.isEmpty() || name.length() > 16) { if (name == null || name.isEmpty() || name.length() > 16) {
return false; return false;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java

View File

@@ -5,7 +5,7 @@ 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 4ac5205cb47dbe9d8fec7da19467f2060436cd9c..878a1d7bd73924b0d311fcc1f3e9fd23dbfa649a 100644 index dec396d4d8b603d1d5282d9273c0258964b27389..d0391cfb2476ce6d045883bc99907d1c7ceb97ec 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 @@ -1065,6 +1065,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -14,10 +14,10 @@ index 4ac5205cb47dbe9d8fec7da19467f2060436cd9c..878a1d7bd73924b0d311fcc1f3e9fd23
org.purpurmc.purpur.task.BossBarTask.stopAll(); // Purpur org.purpurmc.purpur.task.BossBarTask.stopAll(); // Purpur
+ org.purpurmc.purpur.task.BeehiveTask.instance().unregister(); // Purpur + org.purpurmc.purpur.task.BeehiveTask.instance().unregister(); // Purpur
this.isRestarting = isRestarting; this.isRestarting = isRestarting;
this.hasLoggedStop = true; // Paper this.hasLoggedStop = true; // Paper - Debugging
if (isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread("Server stopped"); // Paper if (isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread("Server stopped"); // Paper - Debugging
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index d1b3f461a27c8b49cc7957d166e9cd7efa99a658..434391fd88a5ef1013d4655f539361ac4227a501 100644 index a90c973624b561ffc2212951ffb235e84debe0ed..5a4446c09ef016e9dfb16438089a6880f7da68d8 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -375,6 +375,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -375,6 +375,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface

View File

@@ -5,18 +5,18 @@ Subject: [PATCH] Allow void trading
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 6ccbf43edf0177b4d32c080c34d3df3ca35fe957..71650729b19db7641bf0d5a99c5bd62857a5f679 100644 index e675d7e82245e1b7ef94fc55f393002ab572e2ba..e2c5a03bcf008db05e6170184c6167d2ca1555fb 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
@@ -2929,7 +2929,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -2909,7 +2909,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
// Spigot Start // Spigot Start
if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message
// Paper start // Paper start - Fix merchant inventory not closing on entity removal
- if (entity.getBukkitEntity() instanceof org.bukkit.inventory.Merchant merchant && merchant.getTrader() != null) { - if (entity.getBukkitEntity() instanceof org.bukkit.inventory.Merchant merchant && merchant.getTrader() != null) {
+ if (!entity.level().purpurConfig.playerVoidTrading && entity.getBukkitEntity() instanceof org.bukkit.inventory.Merchant merchant && merchant.getTrader() != null) { // Purpur + if (!entity.level().purpurConfig.playerVoidTrading && entity.getBukkitEntity() instanceof org.bukkit.inventory.Merchant merchant && merchant.getTrader() != null) { // Purpur
merchant.getTrader().closeInventory(org.bukkit.event.inventory.InventoryCloseEvent.Reason.UNLOADED); merchant.getTrader().closeInventory(org.bukkit.event.inventory.InventoryCloseEvent.Reason.UNLOADED);
} }
// Paper end // Paper end - Fix merchant inventory not closing on entity removal
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 a9dba090d637c5942d09ffc4698e3397a137a7ac..09cac0ae130610fd1ce50eb092fe758cfe71a4dd 100644 index a9dba090d637c5942d09ffc4698e3397a137a7ac..09cac0ae130610fd1ce50eb092fe758cfe71a4dd 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java

View File

@@ -6,17 +6,17 @@ Subject: [PATCH] Max joins per second
When this option is set to true the `max-joins-per-tick` setting in paper.yml will be used per second instead of per tick When this option is set to true the `max-joins-per-tick` setting in paper.yml will be used per second instead of per tick
diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java
index 2ae08b21c63490bbf8cd870f9585d82ed131f815..b7a6c7e737e7aba0324a5c3c61bbfbcc3b39ac43 100644 index e18406b4172499b0cb116a45cd5a968ae3e3fdce..57d0fbca001da7cace3eeb69526e28e8a2ef5ac5 100644
--- a/src/main/java/net/minecraft/network/Connection.java --- a/src/main/java/net/minecraft/network/Connection.java
+++ b/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java
@@ -569,11 +569,20 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> { @@ -569,11 +569,20 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
private static final int MAX_PER_TICK = io.papermc.paper.configuration.GlobalConfiguration.get().misc.maxJoinsPerTick; // Paper private static final int MAX_PER_TICK = io.papermc.paper.configuration.GlobalConfiguration.get().misc.maxJoinsPerTick; // Paper - Buffer joins to world
private static int joinAttemptsThisTick; // Paper private static int joinAttemptsThisTick; // Paper - Buffer joins to world
private static int currTick; // Paper private static int currTick; // Paper - Buffer joins to world
+ private static int tickSecond; // Purpur + private static int tickSecond; // Purpur
public void tick() { public void tick() {
this.flushQueue(); this.flushQueue();
// Paper start // Paper start - Buffer joins to world
if (Connection.currTick != net.minecraft.server.MinecraftServer.currentTick) { if (Connection.currTick != net.minecraft.server.MinecraftServer.currentTick) {
Connection.currTick = net.minecraft.server.MinecraftServer.currentTick; Connection.currTick = net.minecraft.server.MinecraftServer.currentTick;
+ // Purpur start + // Purpur start
@@ -29,7 +29,7 @@ index 2ae08b21c63490bbf8cd870f9585d82ed131f815..b7a6c7e737e7aba0324a5c3c61bbfbcc
+ // Purpur end + // Purpur end
Connection.joinAttemptsThisTick = 0; Connection.joinAttemptsThisTick = 0;
} }
// Paper end // Paper end - Buffer joins to world
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 590286e593fec706a3f16f0080b35aa0637ca06d..f17b160b304b1adbde80690ae482986309f3befe 100644 index 590286e593fec706a3f16f0080b35aa0637ca06d..f17b160b304b1adbde80690ae482986309f3befe 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java

View File

@@ -9,7 +9,7 @@ This patch adds a config option to allow the minimum demand to instead
be configurable. be configurable.
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
index 9c86dc4b9cd558f0e8f97b63d6cab746bd30d10c..cb6ca99d429b395c0c79b57b1709eb1b8899da82 100644 index 4902a2cb7f71e3f2fa6ae22e0d6746ca79ff8623..00e60eacf10b76f9d7020324df436b2c315486be 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -546,7 +546,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -546,7 +546,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -22,19 +22,19 @@ index 9c86dc4b9cd558f0e8f97b63d6cab746bd30d10c..cb6ca99d429b395c0c79b57b1709eb1b
} }
diff --git a/src/main/java/net/minecraft/world/item/trading/MerchantOffer.java b/src/main/java/net/minecraft/world/item/trading/MerchantOffer.java diff --git a/src/main/java/net/minecraft/world/item/trading/MerchantOffer.java b/src/main/java/net/minecraft/world/item/trading/MerchantOffer.java
index 4f7457578ab3118d10e0d5dfc23d79c9b20c2f44..e03ce53b93d1b9366f2a7f14f341750a163ae0db 100644 index 02feea12c998f37098b72becf6bfaf6b27d155de..9c89a85d934955c9388cfe1361f13e70e699d279 100644
--- a/src/main/java/net/minecraft/world/item/trading/MerchantOffer.java --- a/src/main/java/net/minecraft/world/item/trading/MerchantOffer.java
+++ b/src/main/java/net/minecraft/world/item/trading/MerchantOffer.java +++ b/src/main/java/net/minecraft/world/item/trading/MerchantOffer.java
@@ -149,7 +149,12 @@ public class MerchantOffer { @@ -149,7 +149,12 @@ public class MerchantOffer {
} }
public void updateDemand() { public void updateDemand() {
- this.demand = Math.max(0, this.demand + this.uses - (this.maxUses - this.uses)); // Paper - this.demand = Math.max(0, this.demand + this.uses - (this.maxUses - this.uses)); // Paper - Fix MC-163962
+ // Purpur start + // Purpur start
+ this.updateDemand(0); + this.updateDemand(0);
+ } + }
+ public void updateDemand(int minimumDemand) { + public void updateDemand(int minimumDemand) {
+ this.demand = Math.max(minimumDemand, this.demand + this.uses - (this.maxUses - this.uses)); + this.demand = Math.max(minimumDemand, this.demand + this.uses - (this.maxUses - this.uses)); // Paper - Fix MC-163962
+ // Purpur end + // Purpur end
} }

View File

@@ -5,13 +5,13 @@ Subject: [PATCH] MC-238526 - Fix spawner not spawning water animals correctly
diff --git a/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java b/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java diff --git a/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java b/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java
index 827912174ee08cd19249797d351887149b25c880..5b02848ea9f14060353014cada2d55397609e5ac 100644 index 9b897cf53f4bb5d366e6ac88dbed93c59d8fe541..fc61f93e04e5bc893b89c746deb2b89c5be0d602 100644
--- a/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java --- a/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java
+++ b/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java +++ b/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java
@@ -77,6 +77,6 @@ public abstract class WaterAnimal extends PathfinderMob { @@ -77,6 +77,6 @@ public abstract class WaterAnimal extends PathfinderMob {
i = world.getMinecraftWorld().paperConfig().entities.spawning.wateranimalSpawnHeight.maximum.or(i); i = world.getMinecraftWorld().paperConfig().entities.spawning.wateranimalSpawnHeight.maximum.or(i);
j = world.getMinecraftWorld().paperConfig().entities.spawning.wateranimalSpawnHeight.minimum.or(j); j = world.getMinecraftWorld().paperConfig().entities.spawning.wateranimalSpawnHeight.minimum.or(j);
// Paper end // Paper end - Make water animal spawn height configurable
- return pos.getY() >= j && pos.getY() <= i && world.getFluidState(pos.below()).is(FluidTags.WATER) && world.getBlockState(pos.above()).is(Blocks.WATER); - return pos.getY() >= j && pos.getY() <= i && world.getFluidState(pos.below()).is(FluidTags.WATER) && world.getBlockState(pos.above()).is(Blocks.WATER);
+ return ((reason == MobSpawnType.SPAWNER && world.getMinecraftWorld().purpurConfig.spawnerFixMC238526) || (pos.getY() >= j && pos.getY() <= i)) && world.getFluidState(pos.below()).is(FluidTags.WATER) && world.getBlockState(pos.above()).is(Blocks.WATER); // Purpur + return ((reason == MobSpawnType.SPAWNER && world.getMinecraftWorld().purpurConfig.spawnerFixMC238526) || (pos.getY() >= j && pos.getY() <= i)) && world.getFluidState(pos.below()).is(FluidTags.WATER) && world.getBlockState(pos.above()).is(Blocks.WATER); // Purpur
} }

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Option to disable kick for out of order chat
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 044b8d517b68cc7103ba7f2a57b26c8c3413b412..1e9e035b873d9d1f5909ea6879f0a47c6eca47f9 100644 index 8b0a8bd1dab67ea440fc3af0a1b13c81dd738e25..b33d6d1fbf483d9293c7be317f3419e799abe84f 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
@@ -1722,7 +1722,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1717,7 +1717,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
do { do {
if (!iterator.hasNext()) { if (!iterator.hasNext()) {

View File

@@ -7,10 +7,10 @@ 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 5c9bc22fad1cb8de99fa30d86ac4204960e93d49..f574a59593ccbcf051a1c22756b6e05a8643ab31 100644 index 57376b7c0d281a7950a69348b5aa869e89719232..376acce7e0fd5dedfdf10fa94ced41bc473b7815 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
@@ -600,7 +600,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;

View File

@@ -43,7 +43,7 @@ index b66a7d4aab887309579154815a0d4abf9de506b0..e6f56bc5b129699bab60db9c97c7f73b
return executedUnloadTask | canSaveChunk | canSaveEntities | canSavePOI ? new SaveStat(executedUnloadTask || canSaveChunk, canSaveEntities, canSavePOI): null; return executedUnloadTask | canSaveChunk | canSaveEntities | canSavePOI ? new SaveStat(executedUnloadTask || canSaveChunk, canSaveEntities, canSavePOI): null;
} }
diff --git a/src/main/java/net/minecraft/network/protocol/PacketUtils.java b/src/main/java/net/minecraft/network/protocol/PacketUtils.java diff --git a/src/main/java/net/minecraft/network/protocol/PacketUtils.java b/src/main/java/net/minecraft/network/protocol/PacketUtils.java
index c5c734b9eb80d1cdf0e9fd8a043f2b6d1f4cbffe..21c98c7511faed997c1352b0842c8795719dcc2b 100644 index 3e2d5dcd62775b6ed7c0ce0ba51a71b635b1d644..166cd0f8e72189d10e56cd7bc095409aa919840e 100644
--- a/src/main/java/net/minecraft/network/protocol/PacketUtils.java --- a/src/main/java/net/minecraft/network/protocol/PacketUtils.java
+++ b/src/main/java/net/minecraft/network/protocol/PacketUtils.java +++ b/src/main/java/net/minecraft/network/protocol/PacketUtils.java
@@ -50,7 +50,7 @@ public class PacketUtils { @@ -50,7 +50,7 @@ public class PacketUtils {
@@ -56,7 +56,7 @@ index c5c734b9eb80d1cdf0e9fd8a043f2b6d1f4cbffe..21c98c7511faed997c1352b0842c8795
} 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 6cfdb98969b1461912c857b6b8ae38f532f3bc9e..5a7f1e27b9e4d36789a0a835fd81ef117c6802c1 100644 index 01a235831914698850befd777ec8b012006a95ec..1818e844e94522c9239b9a5cad812c09adeba636 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 @@ -1427,7 +1427,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -94,10 +94,10 @@ index 6cfdb98969b1461912c857b6b8ae38f532f3bc9e..5a7f1e27b9e4d36789a0a835fd81ef11
- isOversleep = false;MinecraftTimings.serverOversleep.stopTiming(); - isOversleep = false;MinecraftTimings.serverOversleep.stopTiming();
+ //isOversleep = false;MinecraftTimings.serverOversleep.stopTiming(); // Purpur + //isOversleep = false;MinecraftTimings.serverOversleep.stopTiming(); // Purpur
// Paper end // Paper end
new com.destroystokyo.paper.event.server.ServerTickStartEvent(this.tickCount+1).callEvent(); // Paper 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 @@ -1574,9 +1574,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// Paper end // Paper end - Incremental chunk and player saving
io.papermc.paper.util.CachedLists.reset(); // Paper io.papermc.paper.util.CachedLists.reset(); // Paper
// Paper start - move executeAll() into full server tick timing // Paper start - move executeAll() into full server tick timing
- try (co.aikar.timings.Timing ignored = MinecraftTimings.processTasksTimer.startTiming()) { - try (co.aikar.timings.Timing ignored = MinecraftTimings.processTasksTimer.startTiming()) {
@@ -106,7 +106,7 @@ index 6cfdb98969b1461912c857b6b8ae38f532f3bc9e..5a7f1e27b9e4d36789a0a835fd81ef11
- } - }
+ //} // Purpur + //} // Purpur
// Paper end // Paper end
// Paper start // Paper start - Server Tick Events
long endTime = System.nanoTime(); long endTime = System.nanoTime();
@@ -1601,7 +1601,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1601,7 +1601,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.logTickTime(l - i); this.logTickTime(l - i);
@@ -139,7 +139,7 @@ index 6cfdb98969b1461912c857b6b8ae38f532f3bc9e..5a7f1e27b9e4d36789a0a835fd81ef11
- MinecraftTimings.commandFunctionsTimer.stopTiming(); // Spigot // Paper - MinecraftTimings.commandFunctionsTimer.stopTiming(); // Spigot // Paper
+ //MinecraftTimings.commandFunctionsTimer.stopTiming(); // Spigot // Paper // Purpur + //MinecraftTimings.commandFunctionsTimer.stopTiming(); // Spigot // Paper // Purpur
this.profiler.popPush("levels"); this.profiler.popPush("levels");
//Iterator iterator = this.getAllLevels().iterator(); // Paper - moved down //Iterator iterator = this.getAllLevels().iterator(); // Paper - Throw exception on world create while being ticked; moved down
// CraftBukkit start // CraftBukkit start
// Run tasks that are waiting on processing // Run tasks that are waiting on processing
@@ -154,17 +154,17 @@ index 6cfdb98969b1461912c857b6b8ae38f532f3bc9e..5a7f1e27b9e4d36789a0a835fd81ef11
- MinecraftTimings.timeUpdateTimer.startTiming(); // Spigot // Paper - MinecraftTimings.timeUpdateTimer.startTiming(); // Spigot // Paper
+ //MinecraftTimings.timeUpdateTimer.startTiming(); // Spigot // Paper // Purpur + //MinecraftTimings.timeUpdateTimer.startTiming(); // Spigot // Paper // Purpur
// 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 - 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 @@ -1716,7 +1716,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} }
} }
// Paper end // Paper end - Perf: Optimize time updates
- MinecraftTimings.timeUpdateTimer.stopTiming(); // Spigot // Paper - MinecraftTimings.timeUpdateTimer.stopTiming(); // Spigot // Paper
+ //MinecraftTimings.timeUpdateTimer.stopTiming(); // Spigot // Paper // Purpur + //MinecraftTimings.timeUpdateTimer.stopTiming(); // Spigot // Paper // Purpur
this.isIteratingOverLevels = true; // Paper this.isIteratingOverLevels = true; // Paper - Throw exception on world create while being ticked
Iterator iterator = this.getAllLevels().iterator(); // Paper - 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 @@ -1742,14 +1742,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.profiler.push("tick"); this.profiler.push("tick");
@@ -183,7 +183,7 @@ index 6cfdb98969b1461912c857b6b8ae38f532f3bc9e..5a7f1e27b9e4d36789a0a835fd81ef11
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 @@ -1764,24 +1764,24 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.isIteratingOverLevels = false; // Paper this.isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
this.profiler.popPush("connection"); this.profiler.popPush("connection");
- MinecraftTimings.connectionTimer.startTiming(); // Spigot // Paper - MinecraftTimings.connectionTimer.startTiming(); // Spigot // Paper
@@ -214,7 +214,7 @@ index 6cfdb98969b1461912c857b6b8ae38f532f3bc9e..5a7f1e27b9e4d36789a0a835fd81ef11
this.profiler.popPush("send chunks"); this.profiler.popPush("send chunks");
iterator = this.playerList.getPlayers().iterator(); iterator = this.playerList.getPlayers().iterator();
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 038cc16032070f3baa26abc474a7071f21fcafc3..5165d5bdc92e4bd47ba6107be7af780feb9eeb76 100644 index 5a4446c09ef016e9dfb16438089a6880f7da68d8..ef08907f151c660d6c069b276f9291e6080c24d8 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -522,7 +522,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -522,7 +522,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -223,7 +223,7 @@ index 038cc16032070f3baa26abc474a7071f21fcafc3..5165d5bdc92e4bd47ba6107be7af780f
public void handleConsoleInputs() { public void handleConsoleInputs() {
- MinecraftTimings.serverCommandTimer.startTiming(); // Spigot - MinecraftTimings.serverCommandTimer.startTiming(); // Spigot
+ //MinecraftTimings.serverCommandTimer.startTiming(); // Spigot // Purpur + //MinecraftTimings.serverCommandTimer.startTiming(); // Spigot // Purpur
// Paper start - use proper queue // Paper start - Perf: use proper queue
ConsoleInput servercommand; ConsoleInput servercommand;
while ((servercommand = this.serverCommandQueue.poll()) != null) { while ((servercommand = this.serverCommandQueue.poll()) != null) {
@@ -539,7 +539,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -539,7 +539,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -236,7 +236,7 @@ index 038cc16032070f3baa26abc474a7071f21fcafc3..5165d5bdc92e4bd47ba6107be7af780f
@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 5996b5ae5b53f2c9ed2c2c9f5a3c25e300f5e90f..c2a1a05ace909576a160574ea98f89d6fea15338 100644 index 6dfff1ce0ee0a314816a47fd9d89c609f9f3ac5c..a9f933cf827f7973e6b881b071108050b99f80f3 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 @@ -547,15 +547,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -259,7 +259,7 @@ index 5996b5ae5b53f2c9ed2c2c9f5a3c25e300f5e90f..c2a1a05ace909576a160574ea98f89d6
} }
gameprofilerfiller.pop(); gameprofilerfiller.pop();
@@ -1155,24 +1155,24 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -1151,24 +1151,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 5996b5ae5b53f2c9ed2c2c9f5a3c25e300f5e90f..c2a1a05ace909576a160574ea98f89d6
} }
} }
// Paper end - optimised tracker // Paper end - optimised tracker
@@ -1187,7 +1187,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -1183,7 +1183,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 5996b5ae5b53f2c9ed2c2c9f5a3c25e300f5e90f..c2a1a05ace909576a160574ea98f89d6
ChunkMap.TrackedEntity playerchunkmap_entitytracker; ChunkMap.TrackedEntity playerchunkmap_entitytracker;
@@ -1212,17 +1212,17 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -1208,17 +1208,17 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
playerchunkmap_entitytracker.serverEntity.sendChanges(); playerchunkmap_entitytracker.serverEntity.sendChanges();
} }
} }
@@ -319,13 +319,13 @@ index 5996b5ae5b53f2c9ed2c2c9f5a3c25e300f5e90f..c2a1a05ace909576a160574ea98f89d6
} }
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 5cf74fe0214191d42e74fc104eba150a95894e0f..9f438b41b61ee1174d8f23bcb7d93380ad932e9c 100644 index ad8e79c72841ff80f8af3580d2cdb89c13f6d688..e828f3d14af21318a716b9eba4b9bf80e377b073 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 { @@ -296,10 +296,10 @@ public class ServerChunkCache extends ChunkSource {
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 // Paper end
com.destroystokyo.paper.io.SyncLoadFinder.logSyncLoad(this.level, x1, z1); // Paper - sync load info 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);
@@ -346,7 +346,7 @@ index 5cf74fe0214191d42e74fc104eba150a95894e0f..9f438b41b61ee1174d8f23bcb7d93380
+ //} // Paper - Timings // Purpur + //} // Paper - Timings // Purpur
} }
// Paper start - duplicate save, but call incremental // Paper start - Incremental chunk and player saving; duplicate save, but call incremental
public void saveIncrementally() { public void saveIncrementally() {
this.runDistanceManagerUpdates(); this.runDistanceManagerUpdates();
- try (co.aikar.timings.Timing timed = level.timings.chunkSaveData.startTiming()) { // Paper - Timings - try (co.aikar.timings.Timing timed = level.timings.chunkSaveData.startTiming()) { // Paper - Timings
@@ -355,9 +355,9 @@ index 5cf74fe0214191d42e74fc104eba150a95894e0f..9f438b41b61ee1174d8f23bcb7d93380
- } // Paper - Timings - } // Paper - Timings
+ //} // Paper - Timings // Purpur + //} // Paper - Timings // Purpur
} }
// Paper end // Paper end - Incremental chunk and player saving
@@ -488,23 +488,23 @@ public class ServerChunkCache extends ChunkSource { @@ -495,23 +495,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 5cf74fe0214191d42e74fc104eba150a95894e0f..9f438b41b61ee1174d8f23bcb7d93380
this.level.getProfiler().pop(); this.level.getProfiler().pop();
this.clearCache(); this.clearCache();
} }
@@ -520,14 +520,14 @@ public class ServerChunkCache extends ChunkSource { @@ -527,14 +527,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
@@ -402,18 +402,18 @@ index 5cf74fe0214191d42e74fc104eba150a95894e0f..9f438b41b61ee1174d8f23bcb7d93380
- this.level.timings.countNaturalMobs.startTiming(); // Paper - timings - this.level.timings.countNaturalMobs.startTiming(); // Paper - timings
+ //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 - per player mob spawning // Paper start - Optional per player mob spawns
int naturalSpawnChunkCount = k; int naturalSpawnChunkCount = k;
@@ -557,7 +557,7 @@ public class ServerChunkCache extends ChunkSource { @@ -564,7 +564,7 @@ public class ServerChunkCache extends ChunkSource {
// Pufferfish end // Pufferfish end
} }
// Paper end // Paper end - Optional per player mob spawns
- this.level.timings.countNaturalMobs.stopTiming(); // Paper - timings - this.level.timings.countNaturalMobs.stopTiming(); // Paper - timings
+ // 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
gameprofilerfiller.popPush("spawnAndTick"); gameprofilerfiller.popPush("spawnAndTick");
@@ -666,19 +666,19 @@ public class ServerChunkCache extends ChunkSource { @@ -673,19 +673,19 @@ public class ServerChunkCache extends ChunkSource {
} }
} }
// Paper end - optimise chunk tick iteration // Paper end - optimise chunk tick iteration
@@ -437,7 +437,7 @@ index 5cf74fe0214191d42e74fc104eba150a95894e0f..9f438b41b61ee1174d8f23bcb7d93380
// 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();
@@ -692,7 +692,7 @@ public class ServerChunkCache extends ChunkSource { @@ -699,7 +699,7 @@ public class ServerChunkCache extends ChunkSource {
} }
} }
// Paper end - optimise chunk tick iteration // Paper end - optimise chunk tick iteration
@@ -447,10 +447,10 @@ index 5cf74fe0214191d42e74fc104eba150a95894e0f..9f438b41b61ee1174d8f23bcb7d93380
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 d81fab38fccaf0e6a6164e2c7bb24fa4d97353a0..25e9bb866bb7c07c0a1f32a85441694acbc5ed3b 100644 index e2c5a03bcf008db05e6170184c6167d2ca1555fb..0fe2457de7a6f3842ff80512dac1bd2d3bbc04aa 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
@@ -871,7 +871,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -866,7 +866,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
} }
gameprofilerfiller.popPush("tickPending"); gameprofilerfiller.popPush("tickPending");
@@ -459,7 +459,7 @@ index d81fab38fccaf0e6a6164e2c7bb24fa4d97353a0..25e9bb866bb7c07c0a1f32a85441694a
if (!this.isDebug() && flag) { if (!this.isDebug() && flag) {
j = this.getGameTime(); j = this.getGameTime();
gameprofilerfiller.push("blockTicks"); gameprofilerfiller.push("blockTicks");
@@ -880,24 +880,24 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -875,24 +875,24 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.fluidTicks.tick(j, 65536, this::tickFluid); this.fluidTicks.tick(j, 65536, this::tickFluid);
gameprofilerfiller.pop(); gameprofilerfiller.pop();
} }
@@ -491,7 +491,7 @@ index d81fab38fccaf0e6a6164e2c7bb24fa4d97353a0..25e9bb866bb7c07c0a1f32a85441694a
} }
this.handlingTick = false; this.handlingTick = false;
@@ -910,7 +910,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -905,7 +905,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
if (flag1 || this.emptyTime++ < 300) { if (flag1 || this.emptyTime++ < 300) {
gameprofilerfiller.push("entities"); gameprofilerfiller.push("entities");
@@ -500,7 +500,7 @@ index d81fab38fccaf0e6a6164e2c7bb24fa4d97353a0..25e9bb866bb7c07c0a1f32a85441694a
if (this.dragonFight != null && flag) { if (this.dragonFight != null && flag) {
gameprofilerfiller.push("dragonFight"); gameprofilerfiller.push("dragonFight");
this.dragonFight.tick(); this.dragonFight.tick();
@@ -918,7 +918,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -913,7 +913,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
} }
org.spigotmc.ActivationRange.activateEntities(this); // Spigot org.spigotmc.ActivationRange.activateEntities(this); // Spigot
@@ -509,7 +509,7 @@ index d81fab38fccaf0e6a6164e2c7bb24fa4d97353a0..25e9bb866bb7c07c0a1f32a85441694a
this.entityTickList.forEach((entity) -> { this.entityTickList.forEach((entity) -> {
entity.activatedPriorityReset = false; // Pufferfish - DAB entity.activatedPriorityReset = false; // Pufferfish - DAB
if (!entity.isRemoved()) { if (!entity.isRemoved()) {
@@ -959,8 +959,8 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -954,8 +954,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
} }
} }
}); });
@@ -520,7 +520,7 @@ index d81fab38fccaf0e6a6164e2c7bb24fa4d97353a0..25e9bb866bb7c07c0a1f32a85441694a
gameprofilerfiller.pop(); gameprofilerfiller.pop();
this.tickBlockEntities(); this.tickBlockEntities();
} }
@@ -1104,7 +1104,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1099,7 +1099,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
} // Paper } // Paper
gameprofilerfiller.popPush("tickBlocks"); gameprofilerfiller.popPush("tickBlocks");
@@ -529,7 +529,7 @@ index d81fab38fccaf0e6a6164e2c7bb24fa4d97353a0..25e9bb866bb7c07c0a1f32a85441694a
if (randomTickSpeed > 0) { if (randomTickSpeed > 0) {
// Paper start - optimize random block ticking // Paper start - optimize random block ticking
LevelChunkSection[] sections = chunk.getSections(); LevelChunkSection[] sections = chunk.getSections();
@@ -1138,7 +1138,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1133,7 +1133,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
} }
// Paper end - optimise random block ticking // Paper end - optimise random block ticking
@@ -538,7 +538,7 @@ index d81fab38fccaf0e6a6164e2c7bb24fa4d97353a0..25e9bb866bb7c07c0a1f32a85441694a
gameprofilerfiller.pop(); gameprofilerfiller.pop();
} }
@@ -1482,8 +1482,8 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1477,8 +1477,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
// Spigot end // Spigot end
// Paper start- timings // Paper start- timings
final boolean isActive = org.spigotmc.ActivationRange.checkIfActive(entity); final boolean isActive = org.spigotmc.ActivationRange.checkIfActive(entity);
@@ -549,7 +549,7 @@ index d81fab38fccaf0e6a6164e2c7bb24fa4d97353a0..25e9bb866bb7c07c0a1f32a85441694a
// Paper end - timings // Paper end - timings
entity.setOldPosAndRot(); entity.setOldPosAndRot();
ProfilerFiller gameprofilerfiller = this.getProfiler(); ProfilerFiller gameprofilerfiller = this.getProfiler();
@@ -1499,7 +1499,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1494,7 +1494,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
entity.postTick(); // CraftBukkit entity.postTick(); // CraftBukkit
} else { entity.inactiveTick(); } // Paper - EAR 2 } else { entity.inactiveTick(); } // Paper - EAR 2
this.getProfiler().pop(); this.getProfiler().pop();
@@ -558,7 +558,7 @@ index d81fab38fccaf0e6a6164e2c7bb24fa4d97353a0..25e9bb866bb7c07c0a1f32a85441694a
Iterator iterator = entity.getPassengers().iterator(); Iterator iterator = entity.getPassengers().iterator();
while (iterator.hasNext()) { while (iterator.hasNext()) {
@@ -1522,8 +1522,8 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1517,8 +1517,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
if (passenger instanceof Player || this.entityTickList.contains(passenger)) { if (passenger instanceof Player || this.entityTickList.contains(passenger)) {
// Paper - EAR 2 // Paper - EAR 2
final boolean isActive = org.spigotmc.ActivationRange.checkIfActive(passenger); final boolean isActive = org.spigotmc.ActivationRange.checkIfActive(passenger);
@@ -569,7 +569,7 @@ index d81fab38fccaf0e6a6164e2c7bb24fa4d97353a0..25e9bb866bb7c07c0a1f32a85441694a
// Paper end // Paper end
passenger.setOldPosAndRot(); passenger.setOldPosAndRot();
++passenger.tickCount; ++passenger.tickCount;
@@ -1553,7 +1553,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1548,7 +1548,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.tickPassenger(passenger, entity2); this.tickPassenger(passenger, entity2);
} }
@@ -578,14 +578,14 @@ index d81fab38fccaf0e6a6164e2c7bb24fa4d97353a0..25e9bb866bb7c07c0a1f32a85441694a
} }
} else { } else {
passenger.stopRiding(); passenger.stopRiding();
@@ -1573,14 +1573,14 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1568,14 +1568,14 @@ public class ServerLevel extends Level implements WorldGenLevel {
org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(getWorld())); org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(getWorld()));
} }
- try (co.aikar.timings.Timing ignored = this.timings.worldSave.startTiming()) { - try (co.aikar.timings.Timing ignored = this.timings.worldSave.startTiming()) {
+ //try (co.aikar.timings.Timing ignored = this.timings.worldSave.startTiming()) { // Purpur + //try (co.aikar.timings.Timing ignored = this.timings.worldSave.startTiming()) { // Purpur
if (doFull) { if (doFull) {
this.saveLevelData(true); // Pufferfish this.saveLevelData(true); // Paper - Write SavedData IO async
} }
- this.timings.worldSaveChunks.startTiming(); // Paper - this.timings.worldSaveChunks.startTiming(); // Paper
@@ -596,16 +596,16 @@ index d81fab38fccaf0e6a6164e2c7bb24fa4d97353a0..25e9bb866bb7c07c0a1f32a85441694a
// Copied from save() // Copied from save()
// CraftBukkit start - moved from MinecraftServer.saveChunks // CraftBukkit start - moved from MinecraftServer.saveChunks
@@ -1592,7 +1592,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1587,7 +1587,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.convertable.saveDataTag(this.server.registryAccess(), this.serverLevelData, this.server.getPlayerList().getSingleplayerData()); this.convertable.saveDataTag(this.server.registryAccess(), this.serverLevelData, this.server.getPlayerList().getSingleplayerData());
} }
// CraftBukkit end // CraftBukkit end
- } - }
+ //} // Purpur + //} // Purpur
} }
// Paper end // Paper end - Incremental chunk and player saving
@@ -1606,7 +1606,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1601,7 +1601,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
if (!savingDisabled) { if (!savingDisabled) {
org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(this.getWorld())); // CraftBukkit org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(this.getWorld())); // CraftBukkit
@@ -614,7 +614,7 @@ index d81fab38fccaf0e6a6164e2c7bb24fa4d97353a0..25e9bb866bb7c07c0a1f32a85441694a
if (progressListener != null) { if (progressListener != null) {
progressListener.progressStartNoAbort(Component.translatable("menu.savingLevel")); progressListener.progressStartNoAbort(Component.translatable("menu.savingLevel"));
} }
@@ -1616,11 +1616,11 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1611,11 +1611,11 @@ public class ServerLevel extends Level implements WorldGenLevel {
progressListener.progressStage(Component.translatable("menu.savingChunks")); progressListener.progressStage(Component.translatable("menu.savingChunks"));
} }
@@ -630,10 +630,10 @@ index d81fab38fccaf0e6a6164e2c7bb24fa4d97353a0..25e9bb866bb7c07c0a1f32a85441694a
} 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 1e9e035b873d9d1f5909ea6879f0a47c6eca47f9..35240470ee13099dcd857831cf2e863e53af52a7 100644 index b33d6d1fbf483d9293c7be317f3419e799abe84f..3451fc27983d6ae2bc53568843d9f87f4e456b57 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
@@ -2462,7 +2462,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -2457,7 +2457,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
public void handleCommand(String s) { // Paper - private -> public public void handleCommand(String s) { // Paper - private -> public
org.spigotmc.AsyncCatcher.catchOp("Command Dispatched Async: " + s); // Paper - Add async catcher org.spigotmc.AsyncCatcher.catchOp("Command Dispatched Async: " + s); // Paper - Add async catcher
@@ -642,7 +642,7 @@ index 1e9e035b873d9d1f5909ea6879f0a47c6eca47f9..35240470ee13099dcd857831cf2e863e
if ( org.spigotmc.SpigotConfig.logCommands ) // Spigot if ( org.spigotmc.SpigotConfig.logCommands ) // Spigot
this.LOGGER.info(this.player.getScoreboardName() + " issued server command: " + s); this.LOGGER.info(this.player.getScoreboardName() + " issued server command: " + s);
@@ -2472,7 +2472,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -2467,7 +2467,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.cserver.getPluginManager().callEvent(event); this.cserver.getPluginManager().callEvent(event);
if (event.isCancelled()) { if (event.isCancelled()) {
@@ -651,7 +651,7 @@ index 1e9e035b873d9d1f5909ea6879f0a47c6eca47f9..35240470ee13099dcd857831cf2e863e
return; return;
} }
@@ -2485,7 +2485,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -2480,7 +2480,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
java.util.logging.Logger.getLogger(ServerGamePacketListenerImpl.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); java.util.logging.Logger.getLogger(ServerGamePacketListenerImpl.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
return; return;
} finally { } finally {
@@ -661,7 +661,7 @@ index 1e9e035b873d9d1f5909ea6879f0a47c6eca47f9..35240470ee13099dcd857831cf2e863e
} }
// 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 834d2e66850ea907b48f7c0f0c1f8ecc396762ca..ae8db4b212b85adff85c761b2e2083a6ccce7cea 100644 index d03b0efd15a77d54f23661ea0426d69dcf5b26aa..e2f58fe299694db1b8975a502b42c832ef23ffb9 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 { @@ -1274,7 +1274,7 @@ public abstract class PlayerList {
@@ -675,7 +675,7 @@ index 834d2e66850ea907b48f7c0f0c1f8ecc396762ca..ae8db4b212b85adff85c761b2e2083a6
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 { @@ -1285,7 +1285,7 @@ public abstract class PlayerList {
} }
// Paper end // Paper end - Incremental chunk and player saving
} }
- MinecraftTimings.savePlayers.stopTiming(); // Paper - MinecraftTimings.savePlayers.stopTiming(); // Paper
+ //MinecraftTimings.savePlayers.stopTiming(); // Paper // Purpur + //MinecraftTimings.savePlayers.stopTiming(); // Paper // Purpur
@@ -683,7 +683,7 @@ index 834d2e66850ea907b48f7c0f0c1f8ecc396762ca..ae8db4b212b85adff85c761b2e2083a6
} }
diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/Behavior.java b/src/main/java/net/minecraft/world/entity/ai/behavior/Behavior.java diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/Behavior.java b/src/main/java/net/minecraft/world/entity/ai/behavior/Behavior.java
index 57ef7fbba3028c28231abf7b7ae78aa019323536..651c156dc8a5aad04d461add02e22147af657d07 100644 index 1e71cde7cb7654f1c21ae5e27e2fad7b58f593eb..4f3a1c2bfaec6787c8fc62c7df13c512dfc2cb7a 100644
--- a/src/main/java/net/minecraft/world/entity/ai/behavior/Behavior.java --- a/src/main/java/net/minecraft/world/entity/ai/behavior/Behavior.java
+++ b/src/main/java/net/minecraft/world/entity/ai/behavior/Behavior.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/Behavior.java
@@ -58,9 +58,9 @@ public abstract class Behavior<E extends LivingEntity> implements BehaviorContro @@ -58,9 +58,9 @@ public abstract class Behavior<E extends LivingEntity> implements BehaviorContro
@@ -732,10 +732,10 @@ 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 1df81be711afc2adeb6908c86c7952580f3c8f0a..ca3b05db0a1cfdbac1307ff95bacd1acb83cb616 100644 index 29ff1ca5180aee623cd56c7310c2c0843f9a0b0a..81dcd8d608ff1b882817e3992c8c93b56dff325f 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
@@ -1318,15 +1318,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -1317,15 +1317,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
ProfilerFiller gameprofilerfiller = this.getProfiler(); ProfilerFiller gameprofilerfiller = this.getProfiler();
gameprofilerfiller.push("blockEntities"); gameprofilerfiller.push("blockEntities");
@@ -754,7 +754,7 @@ index 1df81be711afc2adeb6908c86c7952580f3c8f0a..ca3b05db0a1cfdbac1307ff95bacd1ac
// Spigot start // Spigot start
// Iterator<TickingBlockEntity> iterator = this.blockEntityTickers.iterator(); // Iterator<TickingBlockEntity> iterator = this.blockEntityTickers.iterator();
boolean flag = this.tickRateManager().runsNormally(); boolean flag = this.tickRateManager().runsNormally();
@@ -1355,7 +1355,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -1354,7 +1354,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
} }
this.blockEntityTickers.removeAll(toRemove); this.blockEntityTickers.removeAll(toRemove);
@@ -764,7 +764,7 @@ index 1df81be711afc2adeb6908c86c7952580f3c8f0a..ca3b05db0a1cfdbac1307ff95bacd1ac
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 3fb96de68b93e8d33bd5ab9137e5d4facc94d788..9a0a16d09a4cda3c2303dabe70db6c3018f3dd08 100644 index 2c300e3769acf534ee3bed91663374eca0acf5df..4e786cd3bc65d762c122f61ccb450bcd0887a745 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 3fb96de68b93e8d33bd5ab9137e5d4facc94d788..9a0a16d09a4cda3c2303dabe70db6c30
} }
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 76a4708464d35dd7782b1032288b52d61ee8fffc..757dc4292d371e697f336c4665427b3b4a3aa73b 100644 index c3fb622845770bcee9ddd6ebbeee174b06ee16eb..134d2d56af71aceb1ca33d7bb708124655c5d319 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 {
@@ -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 d85982831fabc4643d8273ea27cf6dd0d05fee7c..9357539c71e3a8408b1f055527ffd192b5f9f1d9 100644 index 1085d90f6db968760a52f9d00a25299618264c5f..9113c8ebff5e71f859a19f024969582052c57546 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

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Remove Mojang Profiler
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 d3646cfc4d694d216dccb41f540a76e44050320a..9c370e3ad78f016c49b62488c9d0c861c4ad31e6 100644 index 7e266a126180000dcad4b3bd8606349bdc95c30b..819f2cba19e3a0c2a6a8087f2346ebe4782aeb8c 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
@@ -165,7 +165,7 @@ public class Commands { @@ -165,7 +165,7 @@ public class Commands {
@@ -89,7 +89,7 @@ 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 5a7f1e27b9e4d36789a0a835fd81ef117c6802c1..9424785e55c8f31bd6c6029e2d3a6f9fa5e571df 100644 index 1818e844e94522c9239b9a5cad812c09adeba636..c6403274658ccaa2ed27e586cc35d13c760f2040 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 @@ -344,13 +344,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -123,7 +123,7 @@ index 5a7f1e27b9e4d36789a0a835fd81ef117c6802c1..9424785e55c8f31bd6c6029e2d3a6f9f
+ }*/ // Purpur + }*/ // Purpur
MinecraftServer.LOGGER.info("Stopping server"); MinecraftServer.LOGGER.info("Stopping server");
Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - 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 @@ -1222,20 +1222,20 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
boolean flag = i == 0L; boolean flag = i == 0L;
@@ -185,13 +185,13 @@ index 5a7f1e27b9e4d36789a0a835fd81ef117c6802c1..9424785e55c8f31bd6c6029e2d3a6f9f
} }
- this.profiler.pop(); - this.profiler.pop();
+ //this.profiler.pop(); // Purpur + //this.profiler.pop(); // Purpur
// Paper end // 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 @@ -1583,7 +1583,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 // Paper end - Server Tick Events
- this.profiler.push("tallying"); - this.profiler.push("tallying");
+ //this.profiler.push("tallying"); // Purpur + //this.profiler.push("tallying"); // Purpur
long j = Util.getNanos() - i; long j = Util.getNanos() - i;
@@ -199,7 +199,7 @@ index 5a7f1e27b9e4d36789a0a835fd81ef117c6802c1..9424785e55c8f31bd6c6029e2d3a6f9f
@@ -1599,7 +1599,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1599,7 +1599,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
tickTimes60s.add(this.tickCount, j); tickTimes60s.add(this.tickCount, j);
// Paper end // Paper end - Add tick times API and /mspt command
this.logTickTime(l - i); this.logTickTime(l - i);
- this.profiler.pop(); - this.profiler.pop();
+ //this.profiler.pop(); // Purpur + //this.profiler.pop(); // Purpur
@@ -217,11 +217,11 @@ index 5a7f1e27b9e4d36789a0a835fd81ef117c6802c1..9424785e55c8f31bd6c6029e2d3a6f9f
//MinecraftTimings.commandFunctionsTimer.stopTiming(); // Spigot // Paper // Purpur //MinecraftTimings.commandFunctionsTimer.stopTiming(); // Spigot // Paper // Purpur
- this.profiler.popPush("levels"); - this.profiler.popPush("levels");
+ //this.profiler.popPush("levels"); // Purpur + //this.profiler.popPush("levels"); // Purpur
//Iterator iterator = this.getAllLevels().iterator(); // Paper - 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 @@ -1728,18 +1728,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper 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
- this.profiler.push(() -> { - this.profiler.push(() -> {
@@ -254,7 +254,7 @@ index 5a7f1e27b9e4d36789a0a835fd81ef117c6802c1..9424785e55c8f31bd6c6029e2d3a6f9f
+ //this.profiler.pop(); // Purpur + //this.profiler.pop(); // Purpur
worldserver.explosionDensityCache.clear(); // Paper - Optimize explosions worldserver.explosionDensityCache.clear(); // Paper - Optimize explosions
} }
this.isIteratingOverLevels = false; // Paper this.isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
- this.profiler.popPush("connection"); - this.profiler.popPush("connection");
+ //this.profiler.popPush("connection"); // Purpur + //this.profiler.popPush("connection"); // Purpur
@@ -448,7 +448,7 @@ 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 87bbf12563d035b2b63a4d36095dc1cd8b624671..172c7b94830c13835e48d68a039bd66e7e7622b0 100644 index a9f933cf827f7973e6b881b071108050b99f80f3..6e7e71c7962d43f2d4fbd218f2017557ddd53eb2 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 @@ -545,20 +545,20 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -477,7 +477,7 @@ index 87bbf12563d035b2b63a4d36095dc1cd8b624671..172c7b94830c13835e48d68a039bd66e
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 9f438b41b61ee1174d8f23bcb7d93380ad932e9c..c3c47857515a7f75d69c718f352d8bae4b2c1d26 100644 index e828f3d14af21318a716b9eba4b9bf80e377b073..a5067485fb6683e3255681a9c5a6df86c90ce0fa 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 { @@ -73,7 +73,7 @@ public class ServerChunkCache extends ChunkSource {
@@ -492,7 +492,7 @@ index 9f438b41b61ee1174d8f23bcb7d93380ad932e9c..c3c47857515a7f75d69c718f352d8bae
@@ -277,16 +277,16 @@ public class ServerChunkCache extends ChunkSource { @@ -277,16 +277,16 @@ public class ServerChunkCache extends ChunkSource {
return ifLoaded; return ifLoaded;
} }
// Paper end // Paper end - Perf: Optimise getChunkAt calls for loaded chunks
- ProfilerFiller gameprofilerfiller = this.level.getProfiler(); - ProfilerFiller gameprofilerfiller = this.level.getProfiler();
+ //ProfilerFiller gameprofilerfiller = this.level.getProfiler(); // Purpur + //ProfilerFiller gameprofilerfiller = this.level.getProfiler(); // Purpur
@@ -509,7 +509,7 @@ index 9f438b41b61ee1174d8f23bcb7d93380ad932e9c..c3c47857515a7f75d69c718f352d8bae
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;
@@ -475,24 +475,24 @@ public class ServerChunkCache extends ChunkSource { @@ -482,24 +482,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 +539,7 @@ index 9f438b41b61ee1174d8f23bcb7d93380ad932e9c..c3c47857515a7f75d69c718f352d8bae
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
@@ -502,10 +502,10 @@ public class ServerChunkCache extends ChunkSource { @@ -509,10 +509,10 @@ public class ServerChunkCache extends ChunkSource {
} }
//this.level.timings.doChunkUnload.startTiming(); // Spigot // Purpur //this.level.timings.doChunkUnload.startTiming(); // Spigot // Purpur
@@ -552,7 +552,7 @@ index 9f438b41b61ee1174d8f23bcb7d93380ad932e9c..c3c47857515a7f75d69c718f352d8bae
this.clearCache(); this.clearCache();
} }
@@ -515,10 +515,10 @@ public class ServerChunkCache extends ChunkSource { @@ -522,10 +522,10 @@ public class ServerChunkCache extends ChunkSource {
this.lastInhabitedUpdate = i; this.lastInhabitedUpdate = i;
if (!this.level.isDebug()) { if (!this.level.isDebug()) {
@@ -566,7 +566,7 @@ index 9f438b41b61ee1174d8f23bcb7d93380ad932e9c..c3c47857515a7f75d69c718f352d8bae
// 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
@@ -526,7 +526,7 @@ public class ServerChunkCache extends ChunkSource { @@ -533,7 +533,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()) {
@@ -574,8 +574,8 @@ index 9f438b41b61ee1174d8f23bcb7d93380ad932e9c..c3c47857515a7f75d69c718f352d8bae
+ // gameprofilerfiller.popPush("naturalSpawnCount"); // Purpur + // gameprofilerfiller.popPush("naturalSpawnCount"); // Purpur
//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 - per player mob spawning // Paper start - Optional per player mob spawns
@@ -560,7 +560,7 @@ public class ServerChunkCache extends ChunkSource { @@ -567,7 +567,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 +584,7 @@ index 9f438b41b61ee1174d8f23bcb7d93380ad932e9c..c3c47857515a7f75d69c718f352d8bae
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
@@ -668,7 +668,7 @@ public class ServerChunkCache extends ChunkSource { @@ -675,7 +675,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 +593,7 @@ index 9f438b41b61ee1174d8f23bcb7d93380ad932e9c..c3c47857515a7f75d69c718f352d8bae
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);
@@ -676,7 +676,7 @@ public class ServerChunkCache extends ChunkSource { @@ -683,7 +683,7 @@ public class ServerChunkCache extends ChunkSource {
} }
} }
@@ -602,7 +602,7 @@ index 9f438b41b61ee1174d8f23bcb7d93380ad932e9c..c3c47857515a7f75d69c718f352d8bae
// 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
@@ -694,10 +694,10 @@ public class ServerChunkCache extends ChunkSource { @@ -701,10 +701,10 @@ 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
@@ -616,7 +616,7 @@ index 9f438b41b61ee1174d8f23bcb7d93380ad932e9c..c3c47857515a7f75d69c718f352d8bae
// Pufferfish start - optimize mob spawning // Pufferfish start - optimize mob spawning
if (gg.pufferfish.pufferfish.PufferfishConfig.enableAsyncMobSpawning) { if (gg.pufferfish.pufferfish.PufferfishConfig.enableAsyncMobSpawning) {
for (ServerPlayer player : this.level.players) { for (ServerPlayer player : this.level.players) {
@@ -901,7 +901,7 @@ public class ServerChunkCache extends ChunkSource { @@ -908,7 +908,7 @@ public class ServerChunkCache extends ChunkSource {
@Override @Override
protected void doRunTask(Runnable task) { protected void doRunTask(Runnable task) {
@@ -626,10 +626,10 @@ index 9f438b41b61ee1174d8f23bcb7d93380ad932e9c..c3c47857515a7f75d69c718f352d8bae
} }
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 3a06bf55d48ed96556ad9d389ab5ebaefeb078d9..1309c9e63095a0484ee0fa119a41c29ef1da3a01 100644 index 0fe2457de7a6f3842ff80512dac1bd2d3bbc04aa..65a60983be85707883bd330e79a8c1f03428f2c9 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
@@ -829,16 +829,16 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -824,16 +824,16 @@ public class ServerLevel extends Level implements WorldGenLevel {
} }
public void tick(BooleanSupplier shouldKeepTicking) { public void tick(BooleanSupplier shouldKeepTicking) {
@@ -649,7 +649,7 @@ index 3a06bf55d48ed96556ad9d389ab5ebaefeb078d9..1309c9e63095a0484ee0fa119a41c29e
this.advanceWeatherCycle(); this.advanceWeatherCycle();
} }
@@ -870,30 +870,30 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -865,30 +865,30 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.tickTime(); this.tickTime();
} }
@@ -687,7 +687,7 @@ index 3a06bf55d48ed96556ad9d389ab5ebaefeb078d9..1309c9e63095a0484ee0fa119a41c29e
if (flag) { if (flag) {
// this.timings.doSounds.startTiming(); // Spigot // Purpur // this.timings.doSounds.startTiming(); // Spigot // Purpur
this.runBlockEvents(); this.runBlockEvents();
@@ -901,7 +901,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -896,7 +896,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
} }
this.handlingTick = false; this.handlingTick = false;
@@ -696,7 +696,7 @@ index 3a06bf55d48ed96556ad9d389ab5ebaefeb078d9..1309c9e63095a0484ee0fa119a41c29e
boolean flag1 = true || !this.players.isEmpty() || !this.getForcedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players boolean flag1 = true || !this.players.isEmpty() || !this.getForcedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players
if (flag1) { if (flag1) {
@@ -909,12 +909,12 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -904,12 +904,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
} }
if (flag1 || this.emptyTime++ < 300) { if (flag1 || this.emptyTime++ < 300) {
@@ -712,7 +712,7 @@ index 3a06bf55d48ed96556ad9d389ab5ebaefeb078d9..1309c9e63095a0484ee0fa119a41c29e
} }
org.spigotmc.ActivationRange.activateEntities(this); // Spigot org.spigotmc.ActivationRange.activateEntities(this); // Spigot
@@ -925,9 +925,9 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -920,9 +920,9 @@ public class ServerLevel extends Level implements WorldGenLevel {
if (false && this.shouldDiscardEntity(entity)) { // CraftBukkit - We prevent spawning in general, so this butchering is not needed if (false && this.shouldDiscardEntity(entity)) { // CraftBukkit - We prevent spawning in general, so this butchering is not needed
entity.discard(); entity.discard();
} else if (!tickratemanager.isEntityFrozen(entity)) { } else if (!tickratemanager.isEntityFrozen(entity)) {
@@ -724,7 +724,7 @@ index 3a06bf55d48ed96556ad9d389ab5ebaefeb078d9..1309c9e63095a0484ee0fa119a41c29e
if (true || this.chunkSource.chunkMap.getDistanceManager().inEntityTickingRange(entity.chunkPosition().toLong())) { // Paper - now always true if in the ticking list if (true || this.chunkSource.chunkMap.getDistanceManager().inEntityTickingRange(entity.chunkPosition().toLong())) { // Paper - now always true if in the ticking list
Entity entity1 = entity.getVehicle(); Entity entity1 = entity.getVehicle();
@@ -939,7 +939,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -934,7 +934,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
entity.stopRiding(); entity.stopRiding();
} }
@@ -733,7 +733,7 @@ index 3a06bf55d48ed96556ad9d389ab5ebaefeb078d9..1309c9e63095a0484ee0fa119a41c29e
// Pufferfish start - copied from this.guardEntityTick // Pufferfish start - copied from this.guardEntityTick
try { try {
this.tickNonPassenger(entity); // Pufferfish - changed this.tickNonPassenger(entity); // Pufferfish - changed
@@ -954,20 +954,19 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -949,20 +949,19 @@ public class ServerLevel extends Level implements WorldGenLevel {
// Paper end // Paper end
} }
// Pufferfish end // Pufferfish end
@@ -757,7 +757,7 @@ index 3a06bf55d48ed96556ad9d389ab5ebaefeb078d9..1309c9e63095a0484ee0fa119a41c29e
} }
@Override @Override
@@ -1049,9 +1048,9 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1044,9 +1043,9 @@ public class ServerLevel extends Level implements WorldGenLevel {
boolean flag = this.isRaining(); boolean flag = this.isRaining();
int j = chunkcoordintpair.getMinBlockX(); int j = chunkcoordintpair.getMinBlockX();
int k = chunkcoordintpair.getMinBlockZ(); int k = chunkcoordintpair.getMinBlockZ();
@@ -769,7 +769,7 @@ index 3a06bf55d48ed96556ad9d389ab5ebaefeb078d9..1309c9e63095a0484ee0fa119a41c29e
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 - disable thunder // Pufferfish - replace random with shouldDoLightning
@@ -1090,7 +1089,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1085,7 +1084,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
} }
} }
@@ -778,7 +778,7 @@ index 3a06bf55d48ed96556ad9d389ab5ebaefeb078d9..1309c9e63095a0484ee0fa119a41c29e
if (!this.paperConfig().environment.disableIceAndSnow) { // Paper if (!this.paperConfig().environment.disableIceAndSnow) { // Paper
for (int l = 0; l < randomTickSpeed; ++l) { for (int l = 0; l < randomTickSpeed; ++l) {
@@ -1103,7 +1102,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1098,7 +1097,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
} }
} // Paper } // Paper
@@ -787,7 +787,7 @@ index 3a06bf55d48ed96556ad9d389ab5ebaefeb078d9..1309c9e63095a0484ee0fa119a41c29e
//timings.chunkTicksBlocks.startTiming(); // Paper // Purpur //timings.chunkTicksBlocks.startTiming(); // Paper // Purpur
if (randomTickSpeed > 0) { if (randomTickSpeed > 0) {
// Paper start - optimize random block ticking // Paper start - optimize random block ticking
@@ -1139,7 +1138,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1134,7 +1133,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
// Paper end - optimise random block ticking // Paper end - optimise random block ticking
//timings.chunkTicksBlocks.stopTiming(); // Paper // Purpur //timings.chunkTicksBlocks.stopTiming(); // Paper // Purpur
@@ -796,7 +796,7 @@ index 3a06bf55d48ed96556ad9d389ab5ebaefeb078d9..1309c9e63095a0484ee0fa119a41c29e
} }
@VisibleForTesting @VisibleForTesting
@@ -1486,19 +1485,19 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1481,19 +1480,19 @@ public class ServerLevel extends Level implements WorldGenLevel {
//try { // Purpur //try { // Purpur
// Paper end - timings // Paper end - timings
entity.setOldPosAndRot(); entity.setOldPosAndRot();
@@ -821,7 +821,7 @@ index 3a06bf55d48ed96556ad9d389ab5ebaefeb078d9..1309c9e63095a0484ee0fa119a41c29e
//} finally { timer.stopTiming(); } // Paper - timings // Purpur //} finally { timer.stopTiming(); } // Paper - timings // Purpur
Iterator iterator = entity.getPassengers().iterator(); Iterator iterator = entity.getPassengers().iterator();
@@ -1527,12 +1526,12 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1522,12 +1521,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
// Paper end // Paper end
passenger.setOldPosAndRot(); passenger.setOldPosAndRot();
++passenger.tickCount; ++passenger.tickCount;
@@ -838,7 +838,7 @@ index 3a06bf55d48ed96556ad9d389ab5ebaefeb078d9..1309c9e63095a0484ee0fa119a41c29e
// Paper start - EAR 2 // Paper start - EAR 2
if (isActive) { if (isActive) {
passenger.rideTick(); passenger.rideTick();
@@ -1544,7 +1543,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1539,7 +1538,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
vehicle.positionRider(passenger); vehicle.positionRider(passenger);
} }
// Paper end - EAR 2 // Paper end - EAR 2
@@ -848,7 +848,7 @@ index 3a06bf55d48ed96556ad9d389ab5ebaefeb078d9..1309c9e63095a0484ee0fa119a41c29e
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 5ca339100cb311faa87b978b3c8df36d24fea112..97fa5c65bb6fe53bada4c42d54a9f7c22dbfca38 100644 index 52d0c1e6ae4891bccd08cbd34a36e7fb6afd09d6..516ff3e5141df57938c43adee902a48e07048302 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 {
@@ -881,7 +881,7 @@ index 5ca339100cb311faa87b978b3c8df36d24fea112..97fa5c65bb6fe53bada4c42d54a9f7c2
this.connection.send(new ClientboundPlayerAbilitiesPacket(this.getAbilities())); this.connection.send(new ClientboundPlayerAbilitiesPacket(this.getAbilities()));
playerlist.sendLevelInfo(this, worldserver); playerlist.sendLevelInfo(this, worldserver);
diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
index 97914d9c0d8f9ad58fbc79db2afd9cba57bf93b6..da499e0b21eba40d24d95047e3a9220567d4bae7 100644 index 4ff11fa980b89c8721f792139a5bea0cc31907c2..fa5107deb090a779ddc2fdd0fd6de05e1fcf85b9 100644
--- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
@@ -222,7 +222,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack @@ -222,7 +222,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@@ -890,7 +890,7 @@ index 97914d9c0d8f9ad58fbc79db2afd9cba57bf93b6..da499e0b21eba40d24d95047e3a92205
protected void keepConnectionAlive() { protected void keepConnectionAlive() {
- this.server.getProfiler().push("keepAlive"); - this.server.getProfiler().push("keepAlive");
+ //this.server.getProfiler().push("keepAlive"); // Purpur + //this.server.getProfiler().push("keepAlive"); // Purpur
// Paper Start - give clients a longer time to respond to pings as per pre 1.12.2 timings // Paper start - give clients a longer time to respond to pings as per pre 1.12.2 timings
// This should effectively place the keepalive handling back to "as it was" before 1.12.2 // This should effectively place the keepalive handling back to "as it was" before 1.12.2
long currentTime = Util.getMillis(); long currentTime = Util.getMillis();
@@ -258,7 +258,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack @@ -258,7 +258,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@@ -1107,19 +1107,19 @@ 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 d5f60a9e2557f687d3c1218559601526f349ecbe..ed7bc379d55b7fd8be1d18e388356a7e466bb75e 100644 index 376acce7e0fd5dedfdf10fa94ced41bc473b7815..805991ef816ad5ae82ed26781ec265173a8f192c 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
@@ -852,7 +852,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -851,7 +851,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
// CraftBukkit end // CraftBukkit end
public void baseTick() { public void baseTick() {
- this.level().getProfiler().push("entityBaseTick"); - this.level().getProfiler().push("entityBaseTick");
+ //this.level().getProfiler().push("entityBaseTick"); // Purpur + //this.level().getProfiler().push("entityBaseTick"); // Purpur
if (firstTick && this instanceof net.minecraft.world.entity.NeutralMob neutralMob) neutralMob.tickInitialPersistentAnger(level); // Paper - Update last hurt when ticking if (firstTick && this instanceof net.minecraft.world.entity.NeutralMob neutralMob) neutralMob.tickInitialPersistentAnger(level); // Paper - Prevent entity loading causing async lookups
this.feetBlockState = null; this.feetBlockState = null;
if (this.isPassenger() && this.getVehicle().isRemoved()) { if (this.isPassenger() && this.getVehicle().isRemoved()) {
@@ -913,7 +913,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -912,7 +912,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
} }
this.firstTick = false; this.firstTick = false;
@@ -1128,7 +1128,7 @@ index d5f60a9e2557f687d3c1218559601526f349ecbe..ed7bc379d55b7fd8be1d18e388356a7e
} }
public void setSharedFlagOnFire(boolean onFire) { public void setSharedFlagOnFire(boolean onFire) {
@@ -1132,7 +1132,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -1131,7 +1131,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
} }
} }
@@ -1137,7 +1137,7 @@ index d5f60a9e2557f687d3c1218559601526f349ecbe..ed7bc379d55b7fd8be1d18e388356a7e
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;
@@ -1141,7 +1141,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -1140,7 +1140,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 +1146,7 @@ index d5f60a9e2557f687d3c1218559601526f349ecbe..ed7bc379d55b7fd8be1d18e388356a7e
return; return;
} }
// Paper end // Paper end
@@ -1162,8 +1162,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -1161,8 +1161,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 +1157,7 @@ index d5f60a9e2557f687d3c1218559601526f349ecbe..ed7bc379d55b7fd8be1d18e388356a7e
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);
@@ -1182,7 +1182,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -1181,7 +1181,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 +1166,7 @@ index d5f60a9e2557f687d3c1218559601526f349ecbe..ed7bc379d55b7fd8be1d18e388356a7e
} else { } else {
if (this.horizontalCollision) { if (this.horizontalCollision) {
Vec3 vec3d2 = this.getDeltaMovement(); Vec3 vec3d2 = this.getDeltaMovement();
@@ -1320,7 +1320,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -1319,7 +1319,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
this.setRemainingFireTicks(-this.getFireImmuneTicks()); this.setRemainingFireTicks(-this.getFireImmuneTicks());
} }
@@ -1175,27 +1175,27 @@ index d5f60a9e2557f687d3c1218559601526f349ecbe..ed7bc379d55b7fd8be1d18e388356a7e
} }
} }
// Paper start - detailed watchdog information // Paper start - detailed watchdog information
@@ -3191,7 +3191,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -3190,7 +3190,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
- this.level().getProfiler().push("portal"); - this.level().getProfiler().push("portal");
+ //this.level().getProfiler().push("portal"); // Purpur + //this.level().getProfiler().push("portal"); // Purpur
this.portalTime = i; this.portalTime = i;
// Paper start // 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);
@@ -3209,7 +3209,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -3208,7 +3208,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
} }
} // Paper } // Paper - Add EntityPortalReadyEvent
// CraftBukkit end // CraftBukkit end
- this.level().getProfiler().pop(); - this.level().getProfiler().pop();
+ //this.level().getProfiler().pop(); // Purpur + //this.level().getProfiler().pop(); // Purpur
} }
this.isInsidePortal = false; this.isInsidePortal = false;
@@ -3684,14 +3684,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -3683,14 +3683,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
} }
// Paper end // Paper end - Fix item duplication and teleport issues
if (this.level() instanceof ServerLevel && !this.isRemoved()) { if (this.level() instanceof ServerLevel && !this.isRemoved()) {
- this.level().getProfiler().push("changeDimension"); - this.level().getProfiler().push("changeDimension");
+ //this.level().getProfiler().push("changeDimension"); // Purpur + //this.level().getProfiler().push("changeDimension"); // Purpur
@@ -1210,16 +1210,16 @@ index d5f60a9e2557f687d3c1218559601526f349ecbe..ed7bc379d55b7fd8be1d18e388356a7e
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) {
@@ -3730,7 +3730,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -3729,7 +3729,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
this.unRide(); this.unRide();
// CraftBukkit end // CraftBukkit end
- this.level().getProfiler().popPush("reloading"); - this.level().getProfiler().popPush("reloading");
+ //this.level().getProfiler().popPush("reloading"); // Purpur + //this.level().getProfiler().popPush("reloading"); // Purpur
// Paper start - Change lead drop timing to prevent dupe // 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
@@ -3757,10 +3757,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -3756,10 +3756,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
} }
this.removeAfterChangingDimensions(); this.removeAfterChangingDimensions();
@@ -1233,7 +1233,7 @@ index d5f60a9e2557f687d3c1218559601526f349ecbe..ed7bc379d55b7fd8be1d18e388356a7e
} }
} 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 4c75007bc1b700b9c4b79dce0b63c21fec6a742e..46230c0fbcfd565163abca17313a6f0ea5e63249 100644 index b6422365998bb6008f2efbae209171da4455e8cf..830998da41f38ab799db863ea088e0476b9fad5c 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 {
@@ -1340,11 +1340,11 @@ index 4c75007bc1b700b9c4b79dce0b63c21fec6a742e..46230c0fbcfd565163abca17313a6f0e
this.pushEntities(); this.pushEntities();
- this.level().getProfiler().pop(); - this.level().getProfiler().pop();
+ //this.level().getProfiler().pop(); // Purpur + //this.level().getProfiler().pop(); // Purpur
// Paper start // Paper start - Add EntityMoveEvent
// 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 9caee3db19fa76e8e311ead8f892d0f8bebfe6b2..4c0d710d20e074ad4a0fdd1cd4c0c3d3383b68a5 100644 index c029752141efbc48005dae0e3c1a071ba039b3a7..faff4cbeaacf0beaae1ec488f6f233326f415975 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 {
@@ -1501,7 +1501,7 @@ 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 b37415d45dda8e658c8995a4519e552dc378bb41..0e36e3e672de4c806e2d534b437489a3a349a722 100644 index a9922074b6aa6a9898615385bb11d2a758662970..9ffbe784a0d45b494f29ab1555841b4be9f58128 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 { @@ -172,12 +172,12 @@ public abstract class PathNavigation {
@@ -1558,7 +1558,7 @@ index 09f796ec491f21520e1fcc454249e4696dad3b1b..9bf06cf7b3706f8883e1a0ceac8b1aeb
} }
diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
index b7eaa9e99688ae300c2e9176991c29828d1cc800..e4d529825e681bbc656113b1fd44894338e23d21 100644 index e73d7b47327da59dbf49c2160acd0b3ebb2a4232..472b76d6ec721fa46857097589aa879f237e3e0d 100644
--- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java --- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
+++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java +++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
@@ -315,13 +315,13 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo @@ -315,13 +315,13 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
@@ -1580,7 +1580,7 @@ index b7eaa9e99688ae300c2e9176991c29828d1cc800..e4d529825e681bbc656113b1fd448943
Optional<Integer> optional = this.getBrain().getMemory(MemoryModuleType.PLAY_DEAD_TICKS); Optional<Integer> optional = this.getBrain().getMemory(MemoryModuleType.PLAY_DEAD_TICKS);
diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
index 30b19b64fdc9b03f15341831235492f4cdd9823a..b46942c5fafe216039426531a4dbb19bda02c084 100644 index d1ada87d222e5b35c2df5a0e7b0075ec3413fa66..fb50a3f3665cca4bb2e586fbd73c580a5d691f69 100644
--- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java --- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
+++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java +++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
@@ -158,13 +158,13 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl @@ -158,13 +158,13 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl
@@ -1645,7 +1645,7 @@ index 3103df74b7ae5a5ed841bf97794284cd43ad59de..14135dac80dec4224715e21cef6556d2
} }
diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
index fba00cab2c4b234dd2e85b5f4dcd0db34183c1a2..806b207e5246db7daa03bebabd7aa574d8b0dab7 100644 index f7730ec3a6c8818baf2a7a738e5a49a56d17c0e8..566f117ba6742ba17ffb8a2673a8c320c39549f7 100644
--- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java --- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
+++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java +++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
@@ -226,13 +226,13 @@ public class Goat extends Animal { @@ -226,13 +226,13 @@ public class Goat extends Animal {
@@ -1667,7 +1667,7 @@ index fba00cab2c4b234dd2e85b5f4dcd0db34183c1a2..806b207e5246db7daa03bebabd7aa574
} }
diff --git a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java diff --git a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
index 42bfc59462f320e95c13075c8541c4c4c98a6879..dcb10e2ea1e0c7d0479adae5bc2ff57ece172aad 100644 index 4d1071546f523c63b9c981e90a09393e9e4400fa..5e7d76dcdc170b809ab82f6e2259c9b4d3d741be 100644
--- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java --- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
+++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java +++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
@@ -517,11 +517,11 @@ public class Sniffer extends Animal { @@ -517,11 +517,11 @@ public class Sniffer extends Animal {
@@ -1721,7 +1721,7 @@ index ab183a7d94a27d5235ff33ce7784c92d66d40b89..94431d5c789a9f558c16c0d1fc8f1f74
} }
diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
index e326e753cc6bca1bd00287d16c9796b9f3dd4d14..9d6c4f13c4a444c6c815c6c4f2114142f166b9bb 100644 index 510ee1aee1dd106b5129c375ebb59c7950b8b989..5c160d6aa4e3d51c1161f82e92e5e8c1e809a574 100644
--- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java --- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -168,10 +168,10 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { @@ -168,10 +168,10 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
@@ -1738,7 +1738,7 @@ index e326e753cc6bca1bd00287d16c9796b9f3dd4d14..9d6c4f13c4a444c6c815c6c4f2114142
if (this.isConverting()) { if (this.isConverting()) {
++this.timeInOverworld; ++this.timeInOverworld;
diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
index 9ca1618ab945ad834c5fc221ada49058f806e79c..8e829d522a6012f409161ad5a9a06721a942d7e4 100644 index 141fa7d4e1b81e90f4d63a3459c9a72bc595d30b..1422c0f4ff6a3e61f229574cd7b50971bdbd8451 100644
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java --- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
@@ -335,10 +335,10 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @@ -335,10 +335,10 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
@@ -1772,7 +1772,7 @@ index 61e8f2d030fc50840c3f80dfb6fc810797ec440f..856e6e02c9424a6c06e310262cb4f5bd
PiglinBruteAi.maybePlayActivitySound(this); PiglinBruteAi.maybePlayActivitySound(this);
super.customServerAiStep(); super.customServerAiStep();
diff --git a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java diff --git a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
index 63e4688d8055cf4a8883477f7943bf63520c0693..22263f219ce9e9f014abb76c43297c528acb36eb 100644 index 384e7b29215cadfa40af07a183a9c9c6a5b4a80a..bf7ef72a7d92db8f11789a69583270644de0dac7 100644
--- a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java --- a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
+++ b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java +++ b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
@@ -302,10 +302,10 @@ public class Warden extends Monster implements VibrationSystem { @@ -302,10 +302,10 @@ public class Warden extends Monster implements VibrationSystem {
@@ -1789,7 +1789,7 @@ index 63e4688d8055cf4a8883477f7943bf63520c0693..22263f219ce9e9f014abb76c43297c52
if ((this.tickCount + this.getId()) % 120 == 0) { if ((this.tickCount + this.getId()) % 120 == 0) {
Warden.applyDarknessAround(worldserver, this.position(), this, 20); Warden.applyDarknessAround(worldserver, this.position(), this, 20);
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
index fb8fe6b74bf8c392192c846e05c109dbb364c0a9..27ebfda79d9c4463f157b99c2c56e256839b3a31 100644 index c8aa886f7f7457ba160b9e29528f9f5d18ed005a..c137f8f1a2566690f2b2e82b16e7186eaa711f38 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -342,7 +342,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -342,7 +342,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -1811,7 +1811,7 @@ index fb8fe6b74bf8c392192c846e05c109dbb364c0a9..27ebfda79d9c4463f157b99c2c56e256
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 210b6d71207b99e66ba014b176b2c1445053b1d1..82a58ca092371866566bac5f1efcca4964e59e60 100644 index 1fa02130dcb65b3109fde0cb612b538b1c4cd4cb..353ee2d2ea86ba98052acb2edb5d0b3d9393f3ca 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,10 +1833,10 @@ index 210b6d71207b99e66ba014b176b2c1445053b1d1..82a58ca092371866566bac5f1efcca49
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 fd0a9350e4b08daff437d4d054803d72aec5c950..b58402221840a9e72b30a31d884b0fb2d86883fd 100644 index 81dcd8d608ff1b882817e3992c8c93b56dff325f..f638224f8ae018030fa00962cd3c75fc31ab2488 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
@@ -1315,9 +1315,9 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -1314,9 +1314,9 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
} }
protected void tickBlockEntities() { protected void tickBlockEntities() {
@@ -1848,7 +1848,7 @@ index fd0a9350e4b08daff437d4d054803d72aec5c950..b58402221840a9e72b30a31d884b0fb2
//this.timings.tileEntityPending.startTiming(); // Spigot // Purpur //this.timings.tileEntityPending.startTiming(); // Spigot // Purpur
this.tickingBlockEntities = true; this.tickingBlockEntities = true;
if (!this.pendingBlockEntityTickers.isEmpty()) { if (!this.pendingBlockEntityTickers.isEmpty()) {
@@ -1358,7 +1358,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -1357,7 +1357,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
//this.timings.tileEntityTick.stopTiming(); // Spigot // Purpur //this.timings.tileEntityTick.stopTiming(); // Spigot // Purpur
this.tickingBlockEntities = false; this.tickingBlockEntities = false;
co.aikar.timings.TimingHistory.tileEntityTicks += this.blockEntityTickers.size(); // Paper co.aikar.timings.TimingHistory.tileEntityTicks += this.blockEntityTickers.size(); // Paper
@@ -1857,7 +1857,7 @@ index fd0a9350e4b08daff437d4d054803d72aec5c950..b58402221840a9e72b30a31d884b0fb2
this.spigotConfig.currentPrimedTnt = 0; // Spigot this.spigotConfig.currentPrimedTnt = 0; // Spigot
} }
@@ -1568,7 +1568,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -1567,7 +1567,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@Override @Override
public List<Entity> getEntities(@Nullable Entity except, AABB box, Predicate<? super Entity> predicate) { public List<Entity> getEntities(@Nullable Entity except, AABB box, Predicate<? super Entity> predicate) {
@@ -1866,7 +1866,7 @@ index fd0a9350e4b08daff437d4d054803d72aec5c950..b58402221840a9e72b30a31d884b0fb2
List<Entity> list = Lists.newArrayList(); List<Entity> list = Lists.newArrayList();
((ServerLevel)this).getEntityLookup().getEntities(except, box, list, predicate); // Paper - optimise this call ((ServerLevel)this).getEntityLookup().getEntities(except, box, list, predicate); // Paper - optimise this call
return list; return list;
@@ -1587,7 +1587,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -1586,7 +1586,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
} }
public <T extends Entity> void getEntities(EntityTypeTest<Entity, T> filter, AABB box, Predicate<? super T> predicate, List<? super T> result, int limit) { public <T extends Entity> void getEntities(EntityTypeTest<Entity, T> filter, AABB box, Predicate<? super T> predicate, List<? super T> result, int limit) {
@@ -1875,7 +1875,7 @@ index fd0a9350e4b08daff437d4d054803d72aec5c950..b58402221840a9e72b30a31d884b0fb2
// Paper start - optimise this call // Paper start - optimise this call
//TODO use limit //TODO use limit
if (filter instanceof net.minecraft.world.entity.EntityType entityTypeTest) { if (filter instanceof net.minecraft.world.entity.EntityType entityTypeTest) {
@@ -1846,7 +1846,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -1845,7 +1845,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
} }
public ProfilerFiller getProfiler() { public ProfilerFiller getProfiler() {
@@ -1885,7 +1885,7 @@ index fd0a9350e4b08daff437d4d054803d72aec5c950..b58402221840a9e72b30a31d884b0fb2
} }
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 9a0a16d09a4cda3c2303dabe70db6c3018f3dd08..5a31e0e13a49faa96c0a8927aebb131cb30dacbc 100644 index 4e786cd3bc65d762c122f61ccb450bcd0887a745..de48cdb665a43f1df94bfbe740d32b4e3609eec8 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 {
@@ -1905,9 +1905,9 @@ index 9a0a16d09a4cda3c2303dabe70db6c3018f3dd08..5a31e0e13a49faa96c0a8927aebb131c
+ //world.getProfiler().pop(); // Purpur + //world.getProfiler().pop(); // Purpur
} }
// Paper start // 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 757dc4292d371e697f336c4665427b3b4a3aa73b..c37aa33134b8602caae5ecff00439ad5e0005d18 100644 index 134d2d56af71aceb1ca33d7bb708124655c5d319..f782fee9243129d0990777dcd2d74735ceb5e64e 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 {
@@ -1947,12 +1947,12 @@ index 757dc4292d371e697f336c4665427b3b4a3aa73b..c37aa33134b8602caae5ecff00439ad5
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 tile 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 d23481453717f715124156b5d83f6448f720d049..a8af51a25b0f99c3a64d9150fdfcd6b818aa7581 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
+++ b/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java +++ b/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java
@@ -53,8 +53,8 @@ public class PathFinder { @@ -53,8 +53,8 @@ public class PathFinder {
@Nullable @Nullable
// Paper start - optimize collection // Paper start - Perf: remove streams and optimize collection
private Path findPath(ProfilerFiller profiler, Node startNode, List<Map.Entry<Target, BlockPos>> positions, float followRange, int distance, float rangeMultiplier) { private Path findPath(ProfilerFiller profiler, Node startNode, List<Map.Entry<Target, BlockPos>> positions, float followRange, int distance, float rangeMultiplier) {
- profiler.push("find_path"); - profiler.push("find_path");
- profiler.markForCharting(MetricCategory.PATH_FINDING); - profiler.markForCharting(MetricCategory.PATH_FINDING);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add more logger output for invalid movement kicks
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 35240470ee13099dcd857831cf2e863e53af52a7..99d31feec32881c1c5729230ac81a986c2b2baeb 100644 index 3451fc27983d6ae2bc53568843d9f87f4e456b57..dc2c43794841af062b325a90fd5f68f581b99317 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
@@ -737,6 +737,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -734,6 +734,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
if (packet.getId() == this.awaitingTeleport) { if (packet.getId() == this.awaitingTeleport) {
if (this.awaitingPositionFromClient == null) { if (this.awaitingPositionFromClient == null) {
this.disconnect(Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause this.disconnect(Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause
@@ -16,7 +16,7 @@ index 35240470ee13099dcd857831cf2e863e53af52a7..99d31feec32881c1c5729230ac81a986
return; return;
} }
@@ -1353,8 +1354,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1350,8 +1351,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@Override @Override
public void handleMovePlayer(ServerboundMovePlayerPacket packet) { public void handleMovePlayer(ServerboundMovePlayerPacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());

View File

@@ -36,22 +36,22 @@ 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 9424785e55c8f31bd6c6029e2d3a6f9fa5e571df..6f94f01da0a2294f6fdc564653dde1fdbf508153 100644 index c6403274658ccaa2ed27e586cc35d13c760f2040..16b5f59dd3658bb9fc5be629aa4e1bc0ce356243 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 @@ -1719,6 +1719,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
//MinecraftTimings.timeUpdateTimer.stopTiming(); // Spigot // Paper // Purpur //MinecraftTimings.timeUpdateTimer.stopTiming(); // Spigot // Paper // Purpur
this.isIteratingOverLevels = true; // Paper this.isIteratingOverLevels = true; // Paper - Throw exception on world create while being ticked
+ net.minecraft.network.FriendlyByteBuf.hasItemSerializeEvent = org.purpurmc.purpur.event.packet.NetworkItemSerializeEvent.getHandlerList().getRegisteredListeners().length > 0; // Purpur + net.minecraft.network.FriendlyByteBuf.hasItemSerializeEvent = org.purpurmc.purpur.event.packet.NetworkItemSerializeEvent.getHandlerList().getRegisteredListeners().length > 0; // Purpur
Iterator iterator = this.getAllLevels().iterator(); // Paper - move down Iterator iterator = this.getAllLevels().iterator(); // Paper - Throw exception on world create while being ticked; move down
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 99d31feec32881c1c5729230ac81a986c2b2baeb..099bc9d4c1bbf677e633377a0b69e234a0685385 100644 index dc2c43794841af062b325a90fd5f68f581b99317..d7ff08767fe6b14f18386651666c42903a52ec1c 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
@@ -3382,6 +3382,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -3377,6 +3377,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
} }
} }
} }

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add an option to fix MC-3304 (projectile looting)
diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
index 8127456194ef6bdd6212553d0d78618519e6a429..e352dc0fa07f0b5431c4d4b2cff95fa3485d31dd 100644 index 00ec6661f07d9b8dc3744c4d2d128643f680c8d8..56c150d037964e82d9aa3fac2008dc1e14cced8c 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java --- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java +++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
@@ -74,6 +74,7 @@ public abstract class AbstractArrow extends Projectile { @@ -74,6 +74,7 @@ public abstract class AbstractArrow extends Projectile {
@@ -48,7 +48,7 @@ index 220513d3fd5645322886522ea4f6b8c55d043b3c..d45a2f49c82d00801578c34e5f5277fc
org.bukkit.event.entity.EntityShootBowEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityShootBowEvent(entityhuman, stack, itemstack1, entityarrow, entityhuman.getUsedItemHand(), f, !flag1); org.bukkit.event.entity.EntityShootBowEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityShootBowEvent(entityhuman, stack, itemstack1, entityarrow, entityhuman.getUsedItemHand(), f, !flag1);
if (event.isCancelled()) { if (event.isCancelled()) {
diff --git a/src/main/java/net/minecraft/world/item/CrossbowItem.java b/src/main/java/net/minecraft/world/item/CrossbowItem.java diff --git a/src/main/java/net/minecraft/world/item/CrossbowItem.java b/src/main/java/net/minecraft/world/item/CrossbowItem.java
index 0a0f19f73a6a4e5aece7c17089dc4d31ed2a5299..2c51a73ebfd05af21b0f5d731fc9f1df77fed1a1 100644 index b112845e94d354bbadff67673ea0b4939672bd3e..62f291abef664d8bccd682db9de8d0ae6fe2b9bd 100644
--- a/src/main/java/net/minecraft/world/item/CrossbowItem.java --- a/src/main/java/net/minecraft/world/item/CrossbowItem.java
+++ b/src/main/java/net/minecraft/world/item/CrossbowItem.java +++ b/src/main/java/net/minecraft/world/item/CrossbowItem.java
@@ -291,6 +291,14 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable { @@ -291,6 +291,14 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable {
@@ -67,7 +67,7 @@ index 0a0f19f73a6a4e5aece7c17089dc4d31ed2a5299..2c51a73ebfd05af21b0f5d731fc9f1df
} }
diff --git a/src/main/java/net/minecraft/world/item/TridentItem.java b/src/main/java/net/minecraft/world/item/TridentItem.java diff --git a/src/main/java/net/minecraft/world/item/TridentItem.java b/src/main/java/net/minecraft/world/item/TridentItem.java
index 07695068fafd170ca88ad109d83dea93c387d794..ec5daeef857fdad6c7659130fb42f52cf6eb491f 100644 index 3f922008f928ed077e9ddfd4384ed7bbf7cb293d..dcd6f241271beecf9601e34547225d7921958c20 100644
--- a/src/main/java/net/minecraft/world/item/TridentItem.java --- a/src/main/java/net/minecraft/world/item/TridentItem.java
+++ b/src/main/java/net/minecraft/world/item/TridentItem.java +++ b/src/main/java/net/minecraft/world/item/TridentItem.java
@@ -82,6 +82,14 @@ public class TridentItem extends Item implements Vanishable { @@ -82,6 +82,14 @@ public class TridentItem extends Item implements Vanishable {
@@ -83,7 +83,7 @@ index 07695068fafd170ca88ad109d83dea93c387d794..ec5daeef857fdad6c7659130fb42f52c
+ // Purpur end + // Purpur end
+ +
// CraftBukkit start // CraftBukkit start
// Paper start // Paper start - PlayerLaunchProjectileEvent
com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent event = new com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent((org.bukkit.entity.Player) entityhuman.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(stack), (org.bukkit.entity.Projectile) entitythrowntrident.getBukkitEntity()); com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent event = new com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent((org.bukkit.entity.Player) entityhuman.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(stack), (org.bukkit.entity.Projectile) entitythrowntrident.getBukkitEntity());
diff --git a/src/main/java/net/minecraft/world/level/storage/loot/functions/LootingEnchantFunction.java b/src/main/java/net/minecraft/world/level/storage/loot/functions/LootingEnchantFunction.java diff --git a/src/main/java/net/minecraft/world/level/storage/loot/functions/LootingEnchantFunction.java b/src/main/java/net/minecraft/world/level/storage/loot/functions/LootingEnchantFunction.java
index 3fb1e558c3510243c94981211f9a0e5e0ef1895b..e5177e5ffcac360f935f2139db4554c6586b551e 100644 index 3fb1e558c3510243c94981211f9a0e5e0ef1895b..e5177e5ffcac360f935f2139db4554c6586b551e 100644

View File

@@ -5,10 +5,10 @@ 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 8982bed656387e469e324097d627c892a36907d0..3e08ac7243b8c75ce203252c5bdaebdc540687a3 100644 index 805991ef816ad5ae82ed26781ec265173a8f192c..66e99e9aceb1c44ecfdecea992bead1e1c42cbed 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
@@ -424,6 +424,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -423,6 +423,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
private UUID originWorld; private UUID originWorld;
public boolean freezeLocked = false; // Paper - Freeze Tick Lock API public boolean freezeLocked = false; // Paper - Freeze Tick Lock API
public boolean fixedPose = false; // Paper - Expand Pose API public boolean fixedPose = false; // Paper - Expand Pose API
@@ -16,7 +16,7 @@ index 8982bed656387e469e324097d627c892a36907d0..3e08ac7243b8c75ce203252c5bdaebdc
public void setOrigin(@javax.annotation.Nonnull Location location) { public void setOrigin(@javax.annotation.Nonnull Location location) {
this.origin = location.toVector(); this.origin = location.toVector();
@@ -1818,7 +1819,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -1817,7 +1818,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
} }
public boolean fireImmune() { public boolean fireImmune() {
@@ -25,7 +25,7 @@ index 8982bed656387e469e324097d627c892a36907d0..3e08ac7243b8c75ce203252c5bdaebdc
} }
public boolean causeFallDamage(float fallDistance, float damageMultiplier, DamageSource damageSource) { public boolean causeFallDamage(float fallDistance, float damageMultiplier, DamageSource damageSource) {
@@ -2510,6 +2511,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -2509,6 +2510,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 8982bed656387e469e324097d627c892a36907d0..3e08ac7243b8c75ce203252c5bdaebdc
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");
@@ -2657,6 +2663,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -2656,6 +2662,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 8982bed656387e469e324097d627c892a36907d0..3e08ac7243b8c75ce203252c5bdaebdc
} 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 ea5ac1f53309fdd30aad40fd4a092f297d76fd61..315c9be5841d55910500fcc225b5e42f271cf2cb 100644 index 2ef6dc2390ed622eda284e3b4c85ec64e057c981..6a24595db93c834955df3a5566705b1c5066acc6 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 {
@@ -71,7 +71,7 @@ index ea5ac1f53309fdd30aad40fd4a092f297d76fd61..315c9be5841d55910500fcc225b5e42f
public boolean isInDaylight() { public boolean isInDaylight() {
return getHandle().isSunBurnTick(); return getHandle().isSunBurnTick();
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
index 14d6ff11c8b8b047ada5d308515e9d214cf77b69..ba33fb0b049a670851004022da18fe744dca27eb 100644 index e99007570a89eebe3c85ad549cf24286514306f8..480adbfdd084a6291ee0108e5350ea418e08ff6f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
@@ -173,9 +173,14 @@ public class CraftItem extends CraftEntity implements Item { @@ -173,9 +173,14 @@ public class CraftItem extends CraftEntity implements Item {

View File

@@ -5,10 +5,10 @@ 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 3e08ac7243b8c75ce203252c5bdaebdc540687a3..94f1d86a5d2197f55a210084ba913f4403c7d1ab 100644 index 66e99e9aceb1c44ecfdecea992bead1e1c42cbed..f10933fc78cbb0ead042c1870d93d0447f640896 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
@@ -927,6 +927,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

View File

@@ -5,17 +5,17 @@ Subject: [PATCH] End Crystal Cramming
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java
index 564d17bc460e2a04947ff9676fbf4c8b1569659c..440add62fcfa62d483409e1aecfc91591ba476c3 100644 index 85ae4790e9079c60a266a029c9c19bd0955300b2..c52b3d9dec7d04305cd4515e0af74d2f201702d4 100644
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java
@@ -99,6 +99,7 @@ public class EndCrystal extends Entity { @@ -99,6 +99,7 @@ public class EndCrystal extends Entity {
} }
} }
// Paper end // Paper end - Fix invulnerable end crystals
+ if (this.level().purpurConfig.endCrystalCramming > 0 && this.level().getEntitiesOfClass(EndCrystal.class, getBoundingBox()).size() > this.level().purpurConfig.endCrystalCramming) this.hurt(this.damageSources().cramming(), 6.0F); // Purpur + if (this.level().purpurConfig.endCrystalCramming > 0 && this.level().getEntitiesOfClass(EndCrystal.class, getBoundingBox()).size() > this.level().purpurConfig.endCrystalCramming) this.hurt(this.damageSources().cramming(), 6.0F); // Purpur
} }
// Purpur start }
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 029e989caeb427997821216d14ef03b2099bcd58..cd0ce2e5e80ab2519247d8e6cfa2084455101034 100644 index 029e989caeb427997821216d14ef03b2099bcd58..cd0ce2e5e80ab2519247d8e6cfa2084455101034 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Option to allow beacon effects when covered by tinted glass
diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java
index a5f9747be5503dd24abd98f11cfa8229448ca3bf..99ef8d7e3ee0ee9777d12ad825e728c38d886114 100644 index 39b15512dbff3739f0339278cf350006429fdbbd..4f4568c4ed1c3d6551467a18200f8eafb0a54351 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java --- a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java
@@ -174,6 +174,7 @@ public class BeaconBlockEntity extends BlockEntity implements MenuProvider, Name @@ -174,6 +174,7 @@ public class BeaconBlockEntity extends BlockEntity implements MenuProvider, Name
@@ -32,7 +32,7 @@ index a5f9747be5503dd24abd98f11cfa8229448ca3bf..99ef8d7e3ee0ee9777d12ad825e728c3
- if (blockEntity.levels > 0 && !blockEntity.beamSections.isEmpty()) { - if (blockEntity.levels > 0 && !blockEntity.beamSections.isEmpty()) {
+ if (blockEntity.levels > 0 && (!blockEntity.beamSections.isEmpty() || (world.purpurConfig.beaconAllowEffectsWithTintedGlass && isTintedGlass))) { + if (blockEntity.levels > 0 && (!blockEntity.beamSections.isEmpty() || (world.purpurConfig.beaconAllowEffectsWithTintedGlass && isTintedGlass))) {
BeaconBlockEntity.applyEffects(world, pos, blockEntity.levels, blockEntity.primaryPower, blockEntity.secondaryPower, blockEntity); // Paper BeaconBlockEntity.applyEffects(world, pos, blockEntity.levels, blockEntity.primaryPower, blockEntity.secondaryPower, blockEntity); // Paper - Custom beacon ranges
BeaconBlockEntity.playSound(world, pos, SoundEvents.BEACON_AMBIENT); BeaconBlockEntity.playSound(world, pos, SoundEvents.BEACON_AMBIENT);
} }
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

View File

@@ -96,7 +96,7 @@ index 0000000000000000000000000000000000000000..15a226e3854d731f7724025ea3459c8a
+ } + }
+} +}
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index d56fab50babe37865d0a40b7088b011c8ff6af88..d21260dd1b7305949f063123b427dec1f5a00ae5 100644 index 21e7099755b72dbc3489eb9fcb97910b0605e2a2..043a48d8c90e2e008b06fb5a643378a0fa948aaa 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -99,6 +99,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -99,6 +99,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -108,7 +108,7 @@ index d56fab50babe37865d0a40b7088b011c8ff6af88..d21260dd1b7305949f063123b427dec1
/* /*
jline.console.ConsoleReader bufferedreader = DedicatedServer.this.reader; jline.console.ConsoleReader bufferedreader = DedicatedServer.this.reader;
diff --git a/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java b/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java diff --git a/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java b/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java
index dd9f611efc95f7d06fd3011fedd5d0317b1d0a85..64e12201e164f4dc8070711605dcfcb6e56421f6 100644 index c42a9949c4d37d45883867a54222a7ab33944b39..7f07ffab0835d45d4d170fe171d7fa996d5913d9 100644
--- a/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java --- a/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java
+++ b/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java +++ b/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java
@@ -43,6 +43,11 @@ public class MinecraftServerGui extends JComponent { @@ -43,6 +43,11 @@ public class MinecraftServerGui extends JComponent {
@@ -136,10 +136,10 @@ index dd9f611efc95f7d06fd3011fedd5d0317b1d0a85..64e12201e164f4dc8070711605dcfcb6
jframe.pack(); jframe.pack();
jframe.setLocationRelativeTo((Component) null); jframe.setLocationRelativeTo((Component) null);
jframe.setVisible(true); jframe.setVisible(true);
- jframe.setName("Minecraft server"); // Paper - jframe.setName("Minecraft server"); // Paper - Improve ServerGUI
+ jframe.setName("Purpur Minecraft server"); // Paper // Purpur + jframe.setName("Purpur Minecraft server"); // Paper - Improve ServerGUI // Purpur
// Paper start - Add logo as frame image // Paper start - Improve ServerGUI
try { try {
@@ -71,7 +76,7 @@ public class MinecraftServerGui extends JComponent { @@ -71,7 +76,7 @@ public class MinecraftServerGui extends JComponent {
jframe.addWindowListener(new WindowAdapter() { jframe.addWindowListener(new WindowAdapter() {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Stored Bee API
diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java
index 8a163b5d3c7759abe4fe84bfec788a15fddc1e44..f5bcfece7bba52234964da646370bc271043a631 100644 index 1b47b0ff7b42373ca25d13fdfbaf2bfd92337632..f9b4ac5acaf809e1eb9d10d87dd0e17c63d1e3c5 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java --- a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java
@@ -130,6 +130,22 @@ public class BeehiveBlockEntity extends BlockEntity { @@ -130,6 +130,22 @@ public class BeehiveBlockEntity extends BlockEntity {
@@ -54,7 +54,7 @@ index 8a163b5d3c7759abe4fe84bfec788a15fddc1e44..f5bcfece7bba52234964da646370bc27
- final CompoundTag entityData; - final CompoundTag entityData;
+ public final CompoundTag entityData; // Purpur - make public + public final CompoundTag entityData; // Purpur - make public
int ticksInHive; int ticksInHive;
int exitTickCounter; // Paper - separate counter for checking if bee should exit to reduce exit attempts int exitTickCounter; // Paper - Fix bees aging inside hives; separate counter for checking if bee should exit to reduce exit attempts
final int minOccupationTicks; final int minOccupationTicks;
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBeehive.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBeehive.java diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBeehive.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBeehive.java
index 2e51fab98d95c93d2095f7be6dbb5d5474158bfb..32285c8e0f42897793759fba85a1e8658750c843 100644 index 2e51fab98d95c93d2095f7be6dbb5d5474158bfb..32285c8e0f42897793759fba85a1e8658750c843 100644

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add hover lines API
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
index 090ba0b85fe72419c419cc72b5584ec391c0cfa1..e46018774aa99453f6fbb5dbb19513469d808700 100644 index 71aac5d4cf29cea9daa378fc8ac584750de4d1ca..0496871db7437322d3932ca3d3504d84af832d90 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
@@ -597,4 +597,17 @@ public final class CraftItemFactory implements ItemFactory { @@ -596,4 +596,17 @@ public final class CraftItemFactory implements ItemFactory {
return CraftItemStack.asCraftMirror(enchanted); return CraftItemStack.asCraftMirror(enchanted);
} }
// Paper end - enchantWithLevels API // Paper end - enchantWithLevels API