Updated Upstream (Paper)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@cc491a3 Finish updating chunk system patch
PaperMC/Paper@619d7c9 Add in some patches
PaperMC/Paper@902691b Apply last patch
PaperMC/Paper@efb4197 Fix final compilation issues
PaperMC/Paper@57a5924 Fix boot errors
PaperMC/Paper@c1def9d Updated Upstream (CraftBukkit/Spigot)
PaperMC/Paper@a0a2e72 fix sculk npe
PaperMC/Paper@318a08c add missing block entity type to CraftBlockStates
PaperMC/Paper@aed9ef0 Update adventure
PaperMC/Paper@9d42879 Fix breaking pots throwing exception
PaperMC/Paper@59060aa fix some failing tests
PaperMC/Paper@e325e37 add missing call to EntityInsideBlockEvent
PaperMC/Paper@8ce5219 Fix inconsistent chunk sending with vanilla
PaperMC/Paper@04509f0 Fix crash relating to "Already sent chunk"
PaperMC/Paper@c9eb393 Updated Upstream (Bukkit)
PaperMC/Paper@21f2d15 Avoid duplicate poi entries from the first section (#9235)
PaperMC/Paper@3621d76 Fix collision between AABB and a dot (#8733)
PaperMC/Paper@ccb194b Move block farther away for Player#setRotation (#8514)
PaperMC/Paper@03c3587 fix not editable sign after openSign
PaperMC/Paper@6d74ad1 Finish tests & bad calls
PaperMC/Paper@e829a9d Fix javadoc
PaperMC/Paper@82c6479 Add back Anti-Xray patch (#9283)
PaperMC/Paper@0d969f0 comment out update logic from build.gradle.kts
PaperMC/Paper@ea9fdc3 Ignore inline definitions of trim material & pattern
PaperMC/Paper@9ada4bd Prevent the rcon thread from attempting connections after shutdown
PaperMC/Paper@c9e125f Fix setListenerRange for calibrated sculk sensors
PaperMC/Paper@9ebf75d fix some more 1.20 tracking issues
PaperMC/Paper@f9fc44f add side to PlayerSignCommandPreprocessEvent
PaperMC/Paper@4e3febb fix missing trigger entity for xp orb from breeding
PaperMC/Paper@4b5f847 Minimise EntityFertilizeEggEvent and add sniffer (#9280)
This commit is contained in:
granny
2023-06-09 05:22:52 -07:00
parent e4edcee766
commit b53946bebb
58 changed files with 293 additions and 293 deletions

View File

@@ -72,7 +72,7 @@ index 22884a2b148b9a5af8655bb754ebe73618218a83..4d9a796422ab595acc8b0158cf9dcd5b
boolean flag1 = this.source.acceptsSuccess() && !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
index 7f0b8cdae07e7e4745a099242a4f0c5914be8667..2dbb2a21942a4e2cb2d3e1fc77a487dd5bd3d964 100644
index 9f422cbeaa52b3e6a0a27af4f8ad4ddb7808483f..44d76c80e67bc0d5ab28e26bfcf64e2534e627a5 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -218,6 +218,15 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -92,19 +92,19 @@ index 7f0b8cdae07e7e4745a099242a4f0c5914be8667..2dbb2a21942a4e2cb2d3e1fc77a487dd
io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // init PaperBrigadierProvider
// Paper end
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 7771748a15c153352ce4874495f5fa7437aaf9a7..9669206231d90d371b6d55e8e6360eb9dd89c485 100644
index 147d802d9207e358fdb2d1c7806fc2f634dcfd98..13176ad151b53047993938838b3763f85ae1aeff 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -175,6 +175,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
}
@@ -176,6 +176,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
// Paper end
public final com.destroystokyo.paper.antixray.ChunkPacketBlockController chunkPacketBlockController; // Paper - Anti-Xray
+ public final org.purpurmc.purpur.PurpurWorldConfig purpurConfig; // Purpur
public final co.aikar.timings.WorldTimingsHandler timings; // Paper
public static BlockPos lastPhysicsProblem; // Spigot
private org.spigotmc.TickLimiter entityLimiter;
@@ -275,6 +276,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) { // Paper
@@ -276,6 +277,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 - Async-Anti-Xray - Pass executor
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper
+ this.purpurConfig = new org.purpurmc.purpur.PurpurWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), env); // Purpur
@@ -112,7 +112,7 @@ index 7771748a15c153352ce4874495f5fa7437aaf9a7..9669206231d90d371b6d55e8e6360eb9
this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 977ca71853dee58deed9e025942e7c6e103a40d2..4b5aea6617a11914ee15dc12a3393504d6f48a1d 100644
index 7923d98fa98894986a600b8f81eeeb1b25a69c9a..81bfd0f9d297f22c24e5d23e4e63ca7e08a7c2d8 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -979,6 +979,7 @@ public final class CraftServer implements Server {
@@ -139,7 +139,7 @@ index 977ca71853dee58deed9e025942e7c6e103a40d2..4b5aea6617a11914ee15dc12a3393504
this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*");
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
@@ -2761,6 +2764,18 @@ public final class CraftServer implements Server {
@@ -2759,6 +2762,18 @@ public final class CraftServer implements Server {
return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console);
}

View File

@@ -17,10 +17,10 @@ index 5fad40fa88f697108e42461c41012d5964ed7d75..a808c7bb143dc8c5f60bf8eacdb6e45f
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));
public io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.PlayerChunkLoaderData chunkLoader;
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 705181a7cc203b7f60d7038d1f341c2d52cec6b1..67a71b0d04cc3c8239dce26c7022b18a6ff3a58c 100644
index ae82ab0e3d8e99f87ca8465fbcbb44b5ce18bf96..63d694edc25fcd33873fdbe7468a37b3be3f1b8d 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -3501,6 +3501,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -3502,6 +3502,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
private static final ResourceLocation CUSTOM_UNREGISTER = new ResourceLocation("unregister");
private static final ResourceLocation MINECRAFT_BRAND = new ResourceLocation("brand"); // Paper - Brand support
@@ -28,7 +28,7 @@ index 705181a7cc203b7f60d7038d1f341c2d52cec6b1..67a71b0d04cc3c8239dce26c7022b18a
@Override
public void handleCustomPayload(ServerboundCustomPayloadPacket packet) {
@@ -3525,6 +3526,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -3526,6 +3527,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t unregister custom payload", ex);
this.disconnect("Invalid payload UNREGISTER!", org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PAYLOAD); // Paper - kick event cause
}
@@ -43,10 +43,10 @@ index 705181a7cc203b7f60d7038d1f341c2d52cec6b1..67a71b0d04cc3c8239dce26c7022b18a
try {
byte[] data = new byte[packet.data.readableBytes()];
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index be933acd3004e7e092be3688d0d9ee97b159ab5a..09d2f1586d19d0d5c9c78cde5263f30e7a7d0647 100644
index 548eddde8b0558b780f672d321507cfcbac92558..12b4841d319836b2453552f2bb3aa4accc8f7bc3 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -3143,4 +3143,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -3144,4 +3144,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.spigot;
}
// Spigot end

View File

@@ -36,7 +36,7 @@ index a808c7bb143dc8c5f60bf8eacdb6e45f73da69fb..15539499b5a0f16ad2d44c39c5b82487
public void displayClientMessage(Component message, boolean 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
index 731459d80748cdcc7cb9c6c9ede3c56f3f5a0060..b2f26b4b09d9bf2de273e1258f98c175c6d5900a 100644
index 683b5d78f9e3dc34e40c54683f64be32317797ac..01a550086f21672c7e2e51e304bf8fcffd6451f0 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1036,6 +1036,20 @@ public abstract class PlayerList {
@@ -81,10 +81,10 @@ index 25a5a3b949a0eb632611355e74ccd4865be108ca..14fcfd7c1d3a62833978e163f4e0d6f9
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
index 81fdfe150845d57e82fb136af63424103197aebd..cf68705a5cfde9a1e5e3161c73e6308354e01043 100644
index 92202262eff01ae3bbeff0e6ebdcf26ad613c169..ac795034342cabd85ccb62faf0adb10ee4ac1c00 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3978,6 +3978,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -4011,6 +4011,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
return SlotAccess.NULL;
}

View File

@@ -34,7 +34,7 @@ index 7fe5d22b4c9eac832646780d4b5326edaca2979e..1f08b8e81fd6dfa850ead13f2d45adb8
this.profiler.push(() -> {
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
index 42d5b4ffc51da90a8f3bbec84e44ac2b0cb7b5ee..9168a02ede5b2fc924dbcf0063109f8e72d94d61 100644
index 18aac3da3c88f33b1a71a5920a8daa27e9723913..a6acc178949f45c18009b5da2b8998cbcab2289b 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -223,6 +223,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -66,10 +66,10 @@ index 15539499b5a0f16ad2d44c39c5b824876fdf0951..632af791c9c4c9d2fa84f46b0c28bb80
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
index 67a71b0d04cc3c8239dce26c7022b18a6ff3a58c..a419308c2d71bf0e228aa7c591deb76c77eda894 100644
index 63d694edc25fcd33873fdbe7468a37b3be3f1b8d..c825027b644cbc70f5142c4c826eab6061ad4d41 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2804,6 +2804,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -2805,6 +2805,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event);
@@ -79,10 +79,10 @@ index 67a71b0d04cc3c8239dce26c7022b18a6ff3a58c..a419308c2d71bf0e228aa7c591deb76c
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.
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index cf68705a5cfde9a1e5e3161c73e6308354e01043..23bc033aad04fc73a211e9b304cf6d49bce59c4e 100644
index ac795034342cabd85ccb62faf0adb10ee4ac1c00..f5de46130df5b6057e8b3b8a46843428f600b9f1 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -363,7 +363,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -364,7 +364,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
private final Set<String> tags;
private final double[] pistonDeltas;
private long pistonDeltasGameTime;
@@ -91,7 +91,7 @@ index cf68705a5cfde9a1e5e3161c73e6308354e01043..23bc033aad04fc73a211e9b304cf6d49
private float eyeHeight;
public boolean isInPowderSnow;
public boolean wasInPowderSnow;
@@ -2877,6 +2877,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -2910,6 +2910,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
this.passengers = ImmutableList.copyOf(list);
}
@@ -105,7 +105,7 @@ index cf68705a5cfde9a1e5e3161c73e6308354e01043..23bc033aad04fc73a211e9b304cf6d49
this.gameEvent(GameEvent.ENTITY_MOUNT, entity);
}
return true; // CraftBukkit
@@ -2918,6 +2925,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -2951,6 +2958,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
return false;
}
// Spigot end
@@ -120,7 +120,7 @@ index cf68705a5cfde9a1e5e3161c73e6308354e01043..23bc033aad04fc73a211e9b304cf6d49
if (this.passengers.size() == 1 && this.passengers.get(0) == entity) {
this.passengers = ImmutableList.of();
} else {
@@ -4757,4 +4772,45 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -4790,4 +4805,45 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
return ((net.minecraft.server.level.ServerChunkCache) level.getChunkSource()).isPositionTicking(this);
}
// Paper end
@@ -191,7 +191,7 @@ index 759713f7c646aaf1a918c87a2834a1d405385dad..c6a06e07f0b4bb29b5f4c70dfa53ff6d
protected ParticleOptions getInkParticle() {
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
index a6d730eaee1df1c5c61aa0f8731b8c055080a9a6..218eaf5f18162422b3376335e32f25d03c0655ec 100644
index 67627bbf84f5aab2872f636b1dcb6728c8494147..57317c6b848c598155928aa3ade9957201155787 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -220,9 +220,9 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -2014,7 +2014,7 @@ index b05b560b7570e97bc234b75f26233909fcf575b3..71234b258157579d3a47064e7e299bb7
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
index 9f7fa132997829e9a34aaae7aac7a6f7d529eee2..9022f5fa0ff94ccf2c46f96c541e77e1f82b81da 100644
index 098ae9d8fa3e7cad8473a877decba771f6bd1b36..e8d4fa852f22b7de191dcf26b52f19cb81967fa0 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
@@ -83,6 +83,23 @@ public class Turtle extends Animal {
@@ -2262,7 +2262,7 @@ index 2682a49cd3948e0f80e2d7e58abcd3e6d8f7ac4e..ede5469f26f530beacfc655581e213d3
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
index 22eb0a8fc35baa04b34265b62aa29a71f3cc7343..815de16599638bdc4507d8d0bdf941bb6b2aeb92 100644
index 203691417e208b9e023e5f8c3b76993db2747ba8..d4100aab149913a3146ce00f20baf15e2c3ecbfb 100644
--- a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
+++ b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
@@ -77,16 +77,65 @@ public class Frog extends Animal implements VariantHolder<FrogVariant> {
@@ -2332,7 +2332,7 @@ index 22eb0a8fc35baa04b34265b62aa29a71f3cc7343..815de16599638bdc4507d8d0bdf941bb
@Override
protected Brain.Provider<Frog> brainProvider() {
return Brain.provider(MEMORY_TYPES, SENSOR_TYPES);
@@ -340,7 +389,7 @@ public class Frog extends Animal implements VariantHolder<FrogVariant> {
@@ -345,7 +394,7 @@ public class Frog extends Animal implements VariantHolder<FrogVariant> {
return world.getBlockState(pos.below()).is(BlockTags.FROGS_SPAWNABLE_ON) && isBrightEnoughToSpawn(world, pos);
}
@@ -2684,7 +2684,7 @@ index e2935115c8d41af1d623da4f0d4f73de80386129..86029716d5538e28a8845375cc23d4bf
}
}
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 c0f19138c6a00ce6ae837c972ae4af522ddd2895..81e2dbcba09c65ab4646fe1a8c4dccf7019a6acc 100644
index a6d98f64910c816a5c11867d12698f5cd63c751a..76e4b87ffc470b7b205fba0a254668f15a394034 100644
--- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
+++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
@@ -90,6 +90,23 @@ public class Sniffer extends Animal {
@@ -5156,7 +5156,7 @@ index ea056babe2f8123f20dc608d8a636da1de634b8c..a820a00440510d77fa1839eef485f8ea
+ // Purpur end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index 1ced79cf92fe0b01a42f097794dacc3ce74518f3..f759b1b25e3f4fbbb1dd0b222c70698e58c8062d 100644
index a9a58f0bb19e034cffdafcc38fdc9003744a5d6c..be7e427deda9ac335b2b6ce5f8fbd036001b3468 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -563,6 +563,15 @@ public class CraftEventFactory {

View File

@@ -5,10 +5,10 @@ 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
index 23bc033aad04fc73a211e9b304cf6d49bce59c4e..9b692140796eb5296a0478fd18d9b33278be6f5d 100644
index f5de46130df5b6057e8b3b8a46843428f600b9f1..a45f705caf08adf4ed1efbe237c592b5d557793f 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -155,7 +155,7 @@ import org.bukkit.plugin.PluginManager;
@@ -156,7 +156,7 @@ import org.bukkit.plugin.PluginManager;
// CraftBukkit end
public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -34,7 +34,7 @@ index c6a06e07f0b4bb29b5f4c70dfa53ff6db2e4e6ea..730958dab7f074930cdccb88a89aa26e
protected ParticleOptions getInkParticle() {
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
index 218eaf5f18162422b3376335e32f25d03c0655ec..9d9cb6e697c4f09badc3ca121f2ef987900d65a8 100644
index 57317c6b848c598155928aa3ade9957201155787..03499f6142a77f75150fe3421cbff628598c6a3b 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -289,6 +289,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -427,7 +427,7 @@ index 71234b258157579d3a47064e7e299bb7fb90908f..7d02e552a27632939bb9c40a62f4e0df
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
index 9022f5fa0ff94ccf2c46f96c541e77e1f82b81da..39590707049a19f0763efa1083a1813b6f6fff9c 100644
index e8d4fa852f22b7de191dcf26b52f19cb81967fa0..9aa764686433ad8d58191f96ab22d30154058af7 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
@@ -100,6 +100,11 @@ public class Turtle extends Animal {
@@ -743,7 +743,7 @@ index 86029716d5538e28a8845375cc23d4bf408073ff..973c5045137850905126db91238dd8e5
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
index 81e2dbcba09c65ab4646fe1a8c4dccf7019a6acc..549960b870a0f4b0fc1813b48a229773ccbab499 100644
index 76e4b87ffc470b7b205fba0a254668f15a394034..e46751dacee17e81933345266049675d0b11ee49 100644
--- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
+++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
@@ -107,6 +107,11 @@ public class Sniffer extends Animal {

View File

@@ -79,7 +79,7 @@ index 632af791c9c4c9d2fa84f46b0c28bb8089930ebe..62fb638dc4d1f88ff6ddb48bad891b77
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
index a419308c2d71bf0e228aa7c591deb76c77eda894..06046289cdad2413b065ea2515c852adeeeb2edb 100644
index c825027b644cbc70f5142c4c826eab6061ad4d41..da209820b52dfef1756f72b3c5cc77fe1239bd6d 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -340,6 +340,20 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -134,7 +134,7 @@ index a419308c2d71bf0e228aa7c591deb76c77eda894..06046289cdad2413b065ea2515c852ad
}
// Paper start - optimise out extra getCubes
@@ -1596,6 +1618,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -1597,6 +1619,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
this.lastYaw = to.getYaw();
this.lastPitch = to.getPitch();
@@ -224,7 +224,7 @@ index 3b959f42d958bf0f426853aee56753d6c455fcdb..d17abb283ea818244df0379d6b57fc63
if (range < 0.0D || d < range * range) {
return true;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 09d2f1586d19d0d5c9c78cde5263f30e7a7d0647..fea8f974c5e35b0f5c515a4c7f033482e54979c6 100644
index 12b4841d319836b2453552f2bb3aa4accc8f7bc3..3998281dce08288167456fe7257e5a6308746cca 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -501,10 +501,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -244,7 +244,7 @@ index 09d2f1586d19d0d5c9c78cde5263f30e7a7d0647..fea8f974c5e35b0f5c515a4c7f033482
for (ServerPlayer player : (List<ServerPlayer>) server.getHandle().players) {
if (player.getBukkitEntity().canSee(this)) {
player.connection.send(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME, this.getHandle()));
@@ -3149,5 +3154,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -3150,5 +3155,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public boolean usesPurpurClient() {
return getHandle().purpurClient;
}
@@ -290,7 +290,7 @@ index 687710a138edd8492e58aa026872851d00466508..d11442476371fefe6549654c97825a01
public static boolean enderChestSixRows = false;
public static boolean enderChestPermissionRows = false;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 2bd21bcd94e63048f29bf7e833fabb0751308447..835795fda996469b365f7513a393593af3792d77 100644
index d16e7c78f6da209a94ab0fd95fb8e178b1a61609..43a49703a2a17c1fa2b623930b901ce60e2549b6 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -92,6 +92,24 @@ public class PurpurWorldConfig {

View File

@@ -17,10 +17,10 @@ index 818289e831e3dad29345c43265e2efd7689bc500..1ea3012995c738c67b31e997c138f824
public final boolean spawnNpcs = this.get("spawn-npcs", true);
public final boolean pvp = this.get("pvp", true);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 4b5aea6617a11914ee15dc12a3393504d6f48a1d..7df709528c8c1d743d0ce1711a7acde4b5c4abb8 100644
index 81bfd0f9d297f22c24e5d23e4e63ca7e08a7c2d8..a11723890dccee913e3c50e46e18d04afe2966e6 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -2989,4 +2989,11 @@ public final class CraftServer implements Server {
@@ -2987,4 +2987,11 @@ public final class CraftServer implements Server {
}
// Paper end

View File

@@ -25,10 +25,10 @@ index b8ea1f9aa3a486033b6f3d0d150aa21ab6130d53..75d15b7c157fea129a730a0f48ae9ea7
}
// Spigot end
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 7df709528c8c1d743d0ce1711a7acde4b5c4abb8..447cf06cb98d7b1d8399a2bfa76c580e6621a17b 100644
index a11723890dccee913e3c50e46e18d04afe2966e6..0f28b2c5b92a6530ebfccbced082a9cf221b3938 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -2995,5 +2995,10 @@ public final class CraftServer implements Server {
@@ -2993,5 +2993,10 @@ public final class CraftServer implements Server {
public String getServerName() {
return this.getProperties().serverName;
}

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Player invulnerabilities
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 68c163b6817ba4dd6ecd6b1fc82e37e5549d9569..dcc4a25a8c7a7809222cf585901f057c64946a68 100644
index 62fb638dc4d1f88ff6ddb48bad891b77baf5443c..29f4b1142269675a76401ba2d3ae965839db4e3f 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -278,6 +278,7 @@ public class ServerPlayer extends Player {
@@ -82,10 +82,10 @@ index 68c163b6817ba4dd6ecd6b1fc82e37e5549d9569..dcc4a25a8c7a7809222cf585901f057c
public Scoreboard getScoreboard() {
return this.getBukkitEntity().getScoreboard().getHandle();
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 06046289cdad2413b065ea2515c852adeeeb2edb..863ac0559e8ec3ebad355a4863277ff6ee2228f0 100644
index da209820b52dfef1756f72b3c5cc77fe1239bd6d..95578d07025c859ce9b85651d8fd77a79b648266 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2088,12 +2088,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -2089,12 +2089,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@Override
public void handleResourcePackResponse(ServerboundResourcePackPacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
@@ -108,7 +108,7 @@ index 06046289cdad2413b065ea2515c852adeeeb2edb..863ac0559e8ec3ebad355a4863277ff6
this.cserver.getPluginManager().callEvent(new PlayerResourcePackStatusEvent(this.getCraftPlayer(), packStatus)); // CraftBukkit
// Paper end
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index e73f0615ab8320da2a993d7dae0601d8e1536c58..4729f40c5420f80d4c6ba25a7745c4c51a327fbd 100644
index 1ad17a1536540c393e52ec0b0fb4593cf4a16f3a..2829e81ac79b515160b26e414c671552c1f7beea 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -976,6 +976,8 @@ public abstract class PlayerList {
@@ -121,10 +121,10 @@ index e73f0615ab8320da2a993d7dae0601d8e1536c58..4729f40c5420f80d4c6ba25a7745c4c5
return entityplayer1;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index fea8f974c5e35b0f5c515a4c7f033482e54979c6..cf82afb7949a0031c1b656149e583c4075362211 100644
index 3998281dce08288167456fe7257e5a6308746cca..c09bbe22c13f3f05e38e46cf4d9d1e94141623f4 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -3169,5 +3169,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -3170,5 +3170,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void resetIdleTimer() {
getHandle().resetLastActionTime();
}
@@ -146,7 +146,7 @@ index fea8f974c5e35b0f5c515a4c7f033482e54979c6..cf82afb7949a0031c1b656149e583c40
// Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 7052ca0128562fb59c3acc2ef354092e349cbffb..724ceea7198e540c391e0c5ad02817033bec694c 100644
index 43a49703a2a17c1fa2b623930b901ce60e2549b6..3093fffeaebec9f8aa7c013bb84113ab5148159c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -97,6 +97,8 @@ public class PurpurWorldConfig {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Alternative Keepalive Handling
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 585a712467ee29c32ef8e59cc800f2a5bfae1db6..6ad34d0de6c5637f8c11c77ea8baee5ba040ff40 100644
index 95578d07025c859ce9b85651d8fd77a79b648266..f45577dd5156c93902744e6914f1d4aff7a2b138 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -263,6 +263,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -38,7 +38,7 @@ index 585a712467ee29c32ef8e59cc800f2a5bfae1db6..6ad34d0de6c5637f8c11c77ea8baee5b
if (this.keepAlivePending) {
if (!this.processedDisconnect && elapsedTime >= KEEPALIVE_LIMIT) { // check keepalive limit, don't fire if already disconnected
ServerGamePacketListenerImpl.LOGGER.warn("{} was kicked due to keepalive timeout!", this.player.getScoreboardName()); // more info
@@ -3486,6 +3502,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -3487,6 +3503,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@Override
public void handleKeepAlive(ServerboundKeepAlivePacket packet) {

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
index 9168a02ede5b2fc924dbcf0063109f8e72d94d61..e2b1433034b1ab9bad821983515a37fd12ba4b37 100644
index a6acc178949f45c18009b5da2b8998cbcab2289b..2cd6b08ef5d8a67175c86d33e938c088dd053a82 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -874,10 +874,18 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -955,10 +955,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
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
index 9b692140796eb5296a0478fd18d9b33278be6f5d..43d5b06a87909b544d151b238f7479c95c1ac1b2 100644
index a45f705caf08adf4ed1efbe237c592b5d557793f..c8fea6ecc4507615d60f080be5707b16211c32f3 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -321,7 +321,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -322,7 +322,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
public double xOld;
public double yOld;
public double zOld;
@@ -30,7 +30,7 @@ index 8a8b9e8983be1acad66ad875c901be5bbdeabb1f..09912c11bad7dc639b8afe8b0041a5fb
if (!this.canTick) {
if (this.noTickPoseDirty) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 7dd253bdce33673b4f748c47c137f14af5054cca..b957311ec505d5472492ecf49d33e86a2d62bcad 100644
index 7d0d29f9934fc4b7a4227cecd223f145e3502c83..2ad780f84f5717f9f171540939b543820c4867ee 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -92,6 +92,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
index 43d5b06a87909b544d151b238f7479c95c1ac1b2..ba7901f72f97275ffac8d30e7b6c39f1f31dad37 100644
index c8fea6ecc4507615d60f080be5707b16211c32f3..f710e0ba731071570bf84467e5dc884d4b4ca7dd 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -834,7 +834,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -867,7 +867,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
public void checkBelowWorld() {
// Paper start - Configurable nether ceiling damage
@@ -18,7 +18,7 @@ index 43d5b06a87909b544d151b238f7479c95c1ac1b2..ba7901f72f97275ffac8d30e7b6c39f1
&& (!(this instanceof Player player) || !player.getAbilities().invulnerable))) {
// Paper end
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 7d9ecae23415e8f06831bc5bf4fae9137d43eb12..6e0250d4ae4afb73d8f6f613ec014d38552ffa6d 100644
index 95c7c83e1b1e9f1667bd4b12c787d5cb18ab9734..7cdbf5e9a10ae4a1f846c39b02af61c73d4ee0a5 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -2481,7 +2481,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -31,7 +31,7 @@ index 7d9ecae23415e8f06831bc5bf4fae9137d43eb12..6e0250d4ae4afb73d8f6f613ec014d38
protected void updateSwingTime() {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 4c73bd5aae5587e1d196a7b63fe84319cad0853d..645a8a35a9e165f656c9a2581a2325cf2598f1b4 100644
index 5b50a6c932c1a963627ffe5083aa78831ee8d3a6..59ea4e7f8bf404f239f329fda94b2c526245fb50 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -100,10 +100,14 @@ public class PurpurWorldConfig {

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
index ba7901f72f97275ffac8d30e7b6c39f1f31dad37..0447ed23dd3e09fb887b7d7911846030a4e7fb45 100644
index f710e0ba731071570bf84467e5dc884d4b4ca7dd..26cb7466872b6e5b503cbaec933a7de18c928422 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -473,6 +473,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -474,6 +474,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
return false;
}
@@ -36,17 +36,17 @@ index 38800a318f675ab11eeba17cb1966e9a294c69e1..a20017a6086421061ee13df9cf37e08e
@Override
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 0ec0be22f7292d57c40da6f1f4575bdebf8dbd09..f1d19cbe165a190cac325e646c7e8080b59cdd54 100644
index 060e064625969610539dbf969ce773b877a7c579..32cd9df202704cdfb8fa06aaf0e738d483054feb 100644
--- a/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java
+++ b/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java
@@ -111,6 +111,7 @@ public class EntityStorage implements EntityPersistentStorage<Entity> {
@@ -112,6 +112,7 @@ public class EntityStorage implements EntityPersistentStorage<Entity> {
ListTag listTag = new ListTag();
final java.util.Map<net.minecraft.world.entity.EntityType<?>, Integer> savedEntityCounts = new java.util.HashMap<>(); // Paper
entities.forEach((entity) -> { // diff here: use entities parameter
+ if (!entity.canSaveToDisk()) return; // Purpur
CompoundTag compoundTag = new CompoundTag();
if (entity.save(compoundTag)) {
listTag.add(compoundTag);
// Paper start
final EntityType<?> entityType = entity.getType();
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
index b436fd92e2db17f6a2ee4118a7a51e324b567b46..fe14721ac16e702850a778b7481e306ed4bdfd74 100644
--- a/src/main/java/org/purpurmc/purpur/entity/DolphinSpit.java

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Mending mends most damages equipment first
diff --git a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java
index 673327af0f77aeac0d704b0fb6bebebc76a3c966..45af026f572a67061ce63229913366f719cf0a5f 100644
index eca634792d2a7cc649675e3394e84dbaf1453905..2bd576849403bc2cfae298c2210616192ddc38db 100644
--- a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java
+++ b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java
@@ -329,7 +329,7 @@ public class ExperienceOrb extends Entity {
@@ -331,7 +331,7 @@ public class ExperienceOrb extends Entity {
}
private int repairPlayerItems(Player player, int amount) {
@@ -18,10 +18,10 @@ index 673327af0f77aeac0d704b0fb6bebebc76a3c966..45af026f572a67061ce63229913366f7
if (entry != null) {
ItemStack itemstack = (ItemStack) entry.getValue();
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
index 103ad5f373a59fadb4783892579f3e681a8fd596..62f70729e92c63b0fc060b0f1eadeb50c298d32f 100644
index b367ec1feaccbd67e9e28c0d0515e163f37135fe..7de8d028ff8a6099b207e444d8173e5fc09d4ed2 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -574,6 +574,16 @@ public final class ItemStack {
@@ -578,6 +578,16 @@ public final class ItemStack {
return this.isDamageableItem() && this.getDamageValue() > 0;
}
@@ -73,7 +73,7 @@ index ecf640b00007a386290f8dfe9935a8aa610079fd..2048899f8e4c8211e8dde0d11148d647
public static Map.Entry<EquipmentSlot, ItemStack> getRandomItemWith(Enchantment enchantment, LivingEntity entity) {
return getRandomItemWith(enchantment, entity, (stack) -> {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 0427450b37f89d6eaf90a80be1d4c8db37475b3b..3682ec40e65d1d8db52db5db53238a86b01ecaf3 100644
index a91d8e9ca70b2fb89765c1b09d62583fbcd1e61e..ce713dc6a05be884cea7141859f1c31a30adf24d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -97,6 +97,7 @@ public class PurpurWorldConfig {

View File

@@ -69,10 +69,10 @@ index d9f3613381cf7166e0b504a4370420e1d0fadc4e..6e5bfabe11da547f28b1d56e5a279ae5
lagging = recentTps[0] < org.purpurmc.purpur.PurpurConfig.laggingThreshold; // Purpur
tickSection = curTime;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 447cf06cb98d7b1d8399a2bfa76c580e6621a17b..3f5ed031272c358f19e7ec3d7bf6d1a527d77f25 100644
index 0f28b2c5b92a6530ebfccbced082a9cf221b3938..7afc14b00a38bd83f5ec6dc12bf86bc7ee6574a2 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -2718,6 +2718,7 @@ public final class CraftServer implements Server {
@@ -2716,6 +2716,7 @@ public final class CraftServer implements Server {
@Override
public double[] getTPS() {
return new double[] {

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
index 6e0250d4ae4afb73d8f6f613ec014d38552ffa6d..851bffca44dce8680a34bd5e862c1c0794806021 100644
index 7cdbf5e9a10ae4a1f846c39b02af61c73d4ee0a5..dc143439cca2940ac391c18dae652dbe1214e389 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3504,7 +3504,16 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -54,10 +54,10 @@ index 82b0bda3e35ec2157a477e1a17b2b46baadc97d9..0fc45b1048a1c4e0dc2bd1ae0437eecb
itemStack.shrink(1);
} 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
index 62f70729e92c63b0fc060b0f1eadeb50c298d32f..961aca57888de6fe7ea249c2a7596c9863c1effe 100644
index 7de8d028ff8a6099b207e444d8173e5fc09d4ed2..0addb98459b9de0fc954531f8c09b0af73abcc45 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -603,7 +603,7 @@ public final class ItemStack {
@@ -607,7 +607,7 @@ public final class ItemStack {
int j;
if (amount > 0) {
@@ -66,7 +66,7 @@ index 62f70729e92c63b0fc060b0f1eadeb50c298d32f..961aca57888de6fe7ea249c2a7596c98
int k = 0;
for (int l = 0; j > 0 && l < amount; ++l) {
@@ -658,6 +658,12 @@ public final class ItemStack {
@@ -662,6 +662,12 @@ public final class ItemStack {
if (this.hurt(amount, entity.getRandom(), entity /*instanceof ServerPlayer ? (ServerPlayer) entity : null*/)) { // Paper - pass LivingEntity for EntityItemDamageEvent
breakCallback.accept(entity);
Item item = this.getItem();
@@ -99,7 +99,7 @@ index 8078f127ff4b6e0aafb5804b9c02e237f79445b5..06c2f30b77a2c8aecc65e0c305f643d5
entityhuman.startAutoSpinAttack(20);
if (entityhuman.onGround()) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 3682ec40e65d1d8db52db5db53238a86b01ecaf3..999f31194d694961582df1b998fbcefc5dc7d26f 100644
index ce713dc6a05be884cea7141859f1c31a30adf24d..c652972d4018938564ae938ee8057f84518a6cc1 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -114,6 +114,19 @@ public class PurpurWorldConfig {

View File

@@ -27,10 +27,10 @@ index 578c3db52dda4c169b5ea615a4ce4a79f15a4cad..0bd98b802f246a3f6061f716d470a479
return true;
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 9669206231d90d371b6d55e8e6360eb9dd89c485..8673d325bd866704ae90ac31eb54f78097eac952 100644
index 13176ad151b53047993938838b3763f85ae1aeff..6e3d1122a2b7cdb91115bb8ed6c1578fa02ab58b 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -1468,4 +1468,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -1471,4 +1471,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
return null;
}
// Paper end

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
index 0e616bc3a09fcab0d5d3b6243c2e1d39223a2de1..00a41647b127552c511a16a88e1e8208423b645b 100644
index 0b465c5525655014a45a7555d7a0b1adc12fdd99..5ef66bdf6a382cc3b6774e472b34b8ac530b6e31 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2856,6 +2856,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -2857,6 +2857,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
AABB axisalignedbb = entity.getBoundingBox();
if (axisalignedbb.distanceToSqr(this.player.getEyePosition()) < ServerGamePacketListenerImpl.MAX_INTERACTION_DISTANCE) {
@@ -94,7 +94,7 @@ index ef290c4f243e07a15a489ddd7461b4f182cb2345..9f68247ffc31b67e1eb66d3b6449c44f
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 70576507db0a84b209729cdd2efa595bd0450042..af6cae292b86b7bfca06f869f22f1b4d40fdd81b 100644
index c85beb39a9881ed5a5b9938e37b85ab4f2733cea..74a495010f4fbdf549fbc1dc092703d788dcdb7d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -127,6 +127,11 @@ 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
index 0447ed23dd3e09fb887b7d7911846030a4e7fb45..0c18b2b3fcb64aa8c606e0823f365435929fe6f8 100644
index 26cb7466872b6e5b503cbaec933a7de18c928422..1a96037e195b7689db52a0991e644f500b8a9663 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -4292,6 +4292,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -4325,6 +4325,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
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
index 0c18b2b3fcb64aa8c606e0823f365435929fe6f8..68233db015138b0a615a65eac8c11afc42f7a1c6 100644
index 1a96037e195b7689db52a0991e644f500b8a9663..54b1404fed0df43795c24f2f84306fe7aceb7c6d 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2999,7 +2999,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -3032,7 +3032,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
public void handleInsidePortal(BlockPos pos) {
if (this.isOnPortalCooldown()) {
this.setPortalCooldown();
@@ -17,7 +17,7 @@ index 0c18b2b3fcb64aa8c606e0823f365435929fe6f8..68233db015138b0a615a65eac8c11afc
if (!this.level().isClientSide && !pos.equals(this.portalEntrancePos)) {
this.portalEntrancePos = pos.immutable();
}
@@ -3695,7 +3695,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -3728,7 +3728,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
public boolean canChangeDimensions() {
@@ -27,7 +27,7 @@ index 0c18b2b3fcb64aa8c606e0823f365435929fe6f8..68233db015138b0a615a65eac8c11afc
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
index 506a61275a5baf285a061afb92ea8bd5fd22b541..aa723588cb7209ae44bb6796c8d78c168efc6b08 100644
index 99ce124edf3cb3e747785675c17bd831bf68fc74..a36f35990fe315dbb87c453b501892009acaa342 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -100,6 +100,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.
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index e2b1433034b1ab9bad821983515a37fd12ba4b37..854e6e73a7fa9c2cd4f0b9beadbff6427c8346e5 100644
index 2cd6b08ef5d8a67175c86d33e938c088dd053a82..c8c52f0c430ed956f82a7554ec1cf5d44c842383 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -582,7 +582,24 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -663,7 +663,24 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.dragonParts = new Int2ObjectOpenHashMap();
this.tickTime = flag1;
this.server = minecraftserver;
@@ -59,7 +59,7 @@ index 5d199fe497bd852827d3d18fb7566a09e70331a3..6cd8a50289a6404441e9e5e08d82d2eb
if (NaturalSpawner.isSpawnPositionOk(SpawnPlacements.Type.ON_GROUND, world, blockposition2, EntityType.WANDERING_TRADER)) {
blockposition1 = blockposition2;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 1e95bf6efe93c22f135fb15c4600c181580daf0a..82b4e05b4f4ad23bc98e81385bf0e715bf8cda50 100644
index af5bc07bf5598dc4ecb88b05e36d0ce232441b1e..b707a91e9d73e39708f9a5eec579a6d20fb95e8c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -71,6 +71,12 @@ public class PurpurWorldConfig {

View File

@@ -31,7 +31,7 @@ index 6e5bfabe11da547f28b1d56e5a279ae5d9bb3c54..12a5a8c06dc636fbd5008b8f71d05cfa
}
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
index 854e6e73a7fa9c2cd4f0b9beadbff6427c8346e5..3b512beac50bc5a2405ca3287b08e7ffcb620313 100644
index c8c52f0c430ed956f82a7554ec1cf5d44c842383..baf3924a522793a7584ba3ccf6b57e90a9b8a64b 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -214,6 +214,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -43,7 +43,7 @@ index 854e6e73a7fa9c2cd4f0b9beadbff6427c8346e5..3b512beac50bc5a2405ca3287b08e7ff
private final RandomSequences randomSequences;
public long lastMidTickExecuteFailure; // Paper - execute chunk tasks mid tick
@@ -669,6 +671,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -750,6 +752,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.entityLookup = new io.papermc.paper.chunk.system.entity.EntityLookup(this, new EntityCallbacks()); // Paper - rewrite chunk system
@@ -51,7 +51,7 @@ index 854e6e73a7fa9c2cd4f0b9beadbff6427c8346e5..3b512beac50bc5a2405ca3287b08e7ff
}
// Paper start
@@ -838,6 +841,13 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -919,6 +922,13 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.serverLevelData.setGameTime(i);
this.serverLevelData.getScheduledEvents().tick(this.server, i);
if (this.levelData.getGameRules().getBoolean(GameRules.RULE_DAYLIGHT)) {
@@ -65,7 +65,7 @@ index 854e6e73a7fa9c2cd4f0b9beadbff6427c8346e5..3b512beac50bc5a2405ca3287b08e7ff
this.setDayTime(this.levelData.getDayTime() + 1L);
}
@@ -846,7 +856,21 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -927,7 +937,21 @@ public class ServerLevel extends Level implements WorldGenLevel {
public void setDayTime(long timeOfDay) {
this.serverLevelData.setDayTime(timeOfDay);
@@ -88,7 +88,7 @@ index 854e6e73a7fa9c2cd4f0b9beadbff6427c8346e5..3b512beac50bc5a2405ca3287b08e7ff
public void tickCustomSpawners(boolean spawnMonsters, boolean spawnAnimals) {
Iterator iterator = this.customSpawners.iterator();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 8c3a81393bb2d0ff251277cf81d5d0b8276b3628..11938cd9c6196f5cc89a13ad7a81d4e4fa8d0879 100644
index 00e9d0d1dba377b7af19463c6780708e837ee397..5027da645940c9747f58c7276fe67742d34ffe84 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -124,6 +124,13 @@ public class PurpurWorldConfig {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add adjustable breeding cooldown to config
diff --git a/src/main/java/net/minecraft/world/entity/animal/Animal.java b/src/main/java/net/minecraft/world/entity/animal/Animal.java
index 80598d4e679999138f6aca9f6f847e9509fa68da..e3a0a2914db92c95c894174e3815e3eca8d70826 100644
index 7ec2ce1c9aa9a78b03770adc0c2faa28cdbe60f2..975eaac5d1e6cbf40454a0bebcea0ee4451c0cb2 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Animal.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Animal.java
@@ -151,7 +151,7 @@ public abstract class Animal extends AgeableMob {
@@ -42,10 +42,10 @@ index 80598d4e679999138f6aca9f6f847e9509fa68da..e3a0a2914db92c95c894174e3815e3ec
org.bukkit.event.entity.EntityBreedEvent entityBreedEvent = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityBreedEvent(entityageable, this, other, breeder, this.breedItem, experience);
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
index 8673d325bd866704ae90ac31eb54f78097eac952..10cff85dd4a59558dd487a3c5c7871a026835ceb 100644
index 6e3d1122a2b7cdb91115bb8ed6c1578fa02ab58b..de6ca4b7e7549905d3ff53b13db28f1bde8f51bf 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -193,6 +193,49 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -194,6 +194,49 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
}
// Paper end - fix and optimise world upgrading
@@ -95,7 +95,7 @@ index 8673d325bd866704ae90ac31eb54f78097eac952..10cff85dd4a59558dd487a3c5c7871a0
public CraftWorld getWorld() {
return this.world;
}
@@ -277,6 +320,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -278,6 +321,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper
this.purpurConfig = new org.purpurmc.purpur.PurpurWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), env); // Purpur
@@ -104,7 +104,7 @@ index 8673d325bd866704ae90ac31eb54f78097eac952..10cff85dd4a59558dd487a3c5c7871a0
this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 78e2afcbe361e32a023a9a3b0708b9c1705138a4..39c8e6f7bf012e94c653c12383d2a7cf856e1123 100644
index 27f499f7a6924f9d3ca923c5c57d8770228c3c38..79f951f6275612234a26bff758ef3b0a67be9e52 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -117,6 +117,7 @@ public class PurpurWorldConfig {

View File

@@ -22,7 +22,7 @@ index 0951c04533e7c39b969d041271684355770b53c2..02d4ba2ccdce99ca97614baa7c8e4921
world.broadcastEntityEvent(entityvillager2, (byte) 12);
return Optional.of(entityvillager2);
diff --git a/src/main/java/net/minecraft/world/entity/animal/Animal.java b/src/main/java/net/minecraft/world/entity/animal/Animal.java
index e3a0a2914db92c95c894174e3815e3eca8d70826..4643c07bc2a26e7886b714514b7a4a059835af64 100644
index 975eaac5d1e6cbf40454a0bebcea0ee4451c0cb2..3977e59d9d248accc1d2946874960f1072e11a7b 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Animal.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Animal.java
@@ -40,6 +40,7 @@ public abstract class Animal extends AgeableMob {
@@ -33,10 +33,10 @@ index e3a0a2914db92c95c894174e3815e3eca8d70826..4643c07bc2a26e7886b714514b7a4a05
protected Animal(EntityType<? extends Animal> type, Level world) {
super(type, world);
@@ -272,8 +273,10 @@ public abstract class Animal extends AgeableMob {
@@ -274,8 +275,10 @@ public abstract class Animal extends AgeableMob {
entityplayer.awardStat(Stats.ANIMALS_BRED);
CriteriaTriggers.BRED_ANIMALS.trigger(entityplayer, this, entityanimal, entityageable);
});
} // Paper
- this.setAge(6000);
- entityanimal.setAge(6000);
+ // Purpur start
@@ -268,7 +268,7 @@ index 3d212b09258b9777079d4bc7ce950f529cdce69e..c3b79c109e895cb4460571c8816b2104
protected void registerGoals() {
this.eatBlockGoal = new EatBlockGoal(this);
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 39590707049a19f0763efa1083a1813b6f6fff9c..c04e77f8c5c1c8c038a9c8f76546b683691c6b2a 100644
index 9aa764686433ad8d58191f96ab22d30154058af7..cded4a8baa6815f9d6a3107173f9654136d5943a 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
@@ -105,6 +105,11 @@ public class Turtle extends Animal {
@@ -334,7 +334,7 @@ index e2540b7e28c8ba63a0360766a8afa57ac33e336f..d560bb344fefdfb2e8393dc1c5d96ef6
public void addAdditionalSaveData(CompoundTag nbt) {
super.addAdditionalSaveData(nbt);
diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
index 815de16599638bdc4507d8d0bdf941bb6b2aeb92..e60f530f78feebf851382f30b035ec9bcacf22b4 100644
index d4100aab149913a3146ce00f20baf15e2c3ecbfb..eab6d7bb5ae6635eb881156f50c8fd4ed2adb11a 100644
--- a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
+++ b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
@@ -136,6 +136,10 @@ public class Frog extends Animal implements VariantHolder<FrogVariant> {
@@ -477,7 +477,7 @@ index 973c5045137850905126db91238dd8e59db7ddf6..cc821385394121dcd7a9f314fa34a3f5
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
index 549960b870a0f4b0fc1813b48a229773ccbab499..ac84a3812fa8d5b61b69cc29cf0a756f5ac8a886 100644
index e46751dacee17e81933345266049675d0b11ee49..3ab900c53469327b8d686da81ed5b4aaaddb7440 100644
--- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
+++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
@@ -112,6 +112,11 @@ public class Sniffer extends Animal {

View File

@@ -89,10 +89,10 @@ index a820a00440510d77fa1839eef485f8ea2de9ff84..eed8be5d6f796450a99f8dd11c673780
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index cf82afb7949a0031c1b656149e583c4075362211..d65147f864dc75475cbb893fdcc9b391538b7c3c 100644
index c09bbe22c13f3f05e38e46cf4d9d1e94141623f4..e35de674549b09d9aad4d675e91d66106f54d51b 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1336,6 +1336,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1337,6 +1337,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
if (entity.isVehicle() && !ignorePassengers) { // Paper - Teleport API
@@ -104,7 +104,7 @@ index cf82afb7949a0031c1b656149e583c4075362211..d65147f864dc75475cbb893fdcc9b391
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 4cc37f929b9875e52e029be163f4725f289d1aa9..f0ac7b1e9157870c396f7abdbc66363e6c609029 100644
index d5a0920338e53d28aa181b4c47555730ea8dc4eb..e7d63ba6ada0ceb79b547acd6b07f4ce3f32c12c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -119,6 +119,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/>.
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 68233db015138b0a615a65eac8c11afc42f7a1c6..8c2327fa0af4c2148cf6bab7f5960f81660c6259 100644
index 54b1404fed0df43795c24f2f84306fe7aceb7c6d..c3311e8d49b874323afa28e4f4891fe7d312334c 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -1795,7 +1795,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -1828,7 +1828,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
return this.isInWater() || flag;
}
@@ -66,7 +66,7 @@ index 9eb196ee4061bb4c5713f33e8b16d91ec52711cd..ffb3ae1d36dda5f521cf3b292d819cb3
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 56049d177f9e483bc68b694cb4c4d1031269eb91..8fa017d79fc5f061baec537fe1666636615e15d5 100644
index 2f8a7e1ea33e1dae5390a5ee42fe74ce56e952d7..0b4147b270f5683661686873a662df04347a702d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -101,10 +101,16 @@ public class PurpurWorldConfig {

View File

@@ -17,10 +17,10 @@ index 81947e1dc48b91600f9b6417c13d153a41a9d502..026e3035167d41c18735cf57c63025bd
// CraftBukkit end
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
index 8c2327fa0af4c2148cf6bab7f5960f81660c6259..10dca8fdfea6c4c98bd36684598fab425cbd348a 100644
index c3311e8d49b874323afa28e4f4891fe7d312334c..49639113d0fb81acb0cc795d8a28e487a303de90 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2996,12 +2996,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -3029,12 +3029,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
return Vec3.directionFromRotation(this.getRotationVector());
}
@@ -37,7 +37,7 @@ index 8c2327fa0af4c2148cf6bab7f5960f81660c6259..10dca8fdfea6c4c98bd36684598fab42
this.isInsidePortal = true;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 8fa017d79fc5f061baec537fe1666636615e15d5..eb25f0210f8466430ed3bdc377ea6eb42edc78f1 100644
index 0b4147b270f5683661686873a662df04347a702d..1cb4be76d5903cf85103a248c0ff0720c75aaef5 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -337,6 +337,7 @@ 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
index 85c9a892dd15e8bafc65146e1dcb33e508e9fc05..4ac0941974e6e8aeaea88ce0fc589381f3c0eaad 100644
index ae117a47c9aaf4c660e1e05d469a4c1a8caa2d58..9b59fc923c85af6daf07d7bcf0d30ad39bd0cd8e 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1693,6 +1693,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -1694,6 +1694,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
this.player.resetFallDistance();
}
@@ -22,7 +22,7 @@ index 85c9a892dd15e8bafc65146e1dcb33e508e9fc05..4ac0941974e6e8aeaea88ce0fc589381
this.player.checkMovementStatistics(this.player.getX() - d3, this.player.getY() - d4, this.player.getZ() - d5);
this.lastGoodX = this.player.getX();
this.lastGoodY = this.player.getY();
@@ -1725,6 +1732,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -1726,6 +1733,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
}
// Paper end - optimise out extra getCubes

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Sneak to bulk process composter
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
index bb7ad618fad7f11a02d7e088e2c05bfffaf0b41d..2a923b575fa2e3393f6f667e2ce8adf38fc03afe 100644
index 1635fee928d64f4d2c336dca6675ed4641918830..e85b6f9e4b0695479839a45212c74be9ef44d110 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -575,7 +575,7 @@ public class ServerPlayerGameMode {
@@ -577,7 +577,7 @@ public class ServerPlayerGameMode {
boolean flag1 = player.isSecondaryUseActive() && flag;
ItemStack itemstack1 = stack.copy();
@@ -90,7 +90,7 @@ index 87153b5576fed05103183a9860d804c2c8cfbe1c..e8ee608aa5e352d741694f50cdf77f06
int i = (Integer) state.getValue(ComposterBlock.LEVEL);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 29d0653160a3035e0a7dfea906cf2ab7fc67205e..d221ad77f0dee2a8cd7f08f368679183038a88ec 100644
index be9dcd118cc5a7f105589e5dc2f0fb5e2b80b2bd..72ef41fcb32d91361eefe6fcb0930c91160aa20d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -485,6 +485,11 @@ 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
index 3b512beac50bc5a2405ca3287b08e7ffcb620313..a7faa7e1cc78e900ec09889e2a683a3eacce675a 100644
index baf3924a522793a7584ba3ccf6b57e90a9b8a64b..100ca2bdc0b537407e6bb3b82ce2112860e586c7 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -724,7 +724,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -805,7 +805,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
int i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE);
long j;
@@ -18,7 +18,7 @@ index 3b512beac50bc5a2405ca3287b08e7ffcb620313..a7faa7e1cc78e900ec09889e2a683a3e
j = this.levelData.getDayTime() + 24000L;
TimeSkipEvent event = new TimeSkipEvent(this.getWorld(), TimeSkipEvent.SkipReason.NIGHT_SKIP, (j - j % 24000L) - this.getDayTime());
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index d221ad77f0dee2a8cd7f08f368679183038a88ec..80b76a20848321e982e8b542aa9f5295cfd7e3dd 100644
index 72ef41fcb32d91361eefe6fcb0930c91160aa20d..2c83ed4bec42d5d463c152a03213517615e6d622 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -360,6 +360,7 @@ public class PurpurWorldConfig {

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
index 10dca8fdfea6c4c98bd36684598fab425cbd348a..a1aaef67d5f4ee42714638e324f7965f2ad27eb0 100644
index 49639113d0fb81acb0cc795d8a28e487a303de90..0734602a64f169665ca416efa37aa52d649e900c 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3241,7 +3241,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -3274,7 +3274,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
public int getMaxAirSupply() {
@@ -18,7 +18,7 @@ index 10dca8fdfea6c4c98bd36684598fab425cbd348a..a1aaef67d5f4ee42714638e324f7965f
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
index 234b92b189e921768ea83ef4f0c128266735cc6e..2f48ddb7d2731bd05d149d6286ae8292dfbec94b 100644
index e7725f76f3c9f0e3e414fc72b7d076e573ca0cd5..20a9562db4ea7cbd33ea84eab52646a30f4adca8 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -441,7 +441,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -40,7 +40,7 @@ index 234b92b189e921768ea83ef4f0c128266735cc6e..2f48ddb7d2731bd05d149d6286ae8292
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index f2efffa40204c658375f3ebba8ab710bf3cacb80..40cc8ba677500053e3e2e95b83ba88527ebd21e5 100644
index c1b28f0a964b83a3f887c78c7f0b75c3c79e8734..35a43f76f8c388f0d1e2b16d0ec0f3e421c4ddbd 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -166,6 +166,15 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ 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
index 2a923b575fa2e3393f6f667e2ce8adf38fc03afe..2a18d9b7ab5d28458e53ccad29edc6f9c2c3099c 100644
index e85b6f9e4b0695479839a45212c74be9ef44d110..fe207cd67517de05b0da84d55c4218357f0274dc 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -396,6 +396,7 @@ public class ServerPlayerGameMode {
@@ -398,6 +398,7 @@ public class ServerPlayerGameMode {
} else {capturedBlockEntity = true;} // Paper end
return false;
}
@@ -47,7 +47,7 @@ index 18b603d646081926343dea108b55d641df1c2c34..370772b1297b78bcc7419684015830a8
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 40cc8ba677500053e3e2e95b83ba88527ebd21e5..cd2de2f0a6aeda4b87f18e97e2c5999e1fd3246e 100644
index 35a43f76f8c388f0d1e2b16d0ec0f3e421c4ddbd..8aba6dd9ea9d2d915d33bdfb16a161ea6b20bc0a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -606,6 +606,11 @@ public class PurpurWorldConfig {

View File

@@ -70,10 +70,10 @@ index 6fc5699ad90127dc48fa9ff5cb6ba5367031ce83..c179fd1ee55116e1bbdd8f8fadd18825
((ServerPlayer) player).connection.send(new ClientboundContainerSetDataPacket(containerId, 0, cost.get()));
}
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
index 961aca57888de6fe7ea249c2a7596c9863c1effe..4f8fa99211257930adb2ae13505ba5d32c1999ba 100644
index 0addb98459b9de0fc954531f8c09b0af73abcc45..5a6a80b544ff5a0259da9bd49baf8ef43c220480 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -1198,6 +1198,12 @@ public final class ItemStack {
@@ -1202,6 +1202,12 @@ public final class ItemStack {
return this.tag != null && this.tag.contains("Enchantments", 9) ? !this.tag.getList("Enchantments", 10).isEmpty() : false;
}

View File

@@ -9,10 +9,10 @@ creating an itemstack using the TileEntity's NBT data (how it handles it for
creative players) instead of routing it through the LootableBuilder.
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
index 2a18d9b7ab5d28458e53ccad29edc6f9c2c3099c..2f0c5df784d5847c59826c3d7930b5d707a5f1aa 100644
index fe207cd67517de05b0da84d55c4218357f0274dc..7ddc9a7ff7b1d6de234ea5b1c8f4246d6ba7976d 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -427,7 +427,7 @@ public class ServerPlayerGameMode {
@@ -429,7 +429,7 @@ public class ServerPlayerGameMode {
ItemStack mainHandStack = null; // Paper
boolean isCorrectTool = false; // Paper
@@ -35,7 +35,7 @@ index b51155ad12515b2d0dd0f202580b9f455c114d9a..dd6c82a418ee299d7a5614cb0260949c
blockEntity.saveToItem(itemStack);
if (shulkerBoxBlockEntity.hasCustomName()) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 9a4b594658a5815430d3c74d32c2adc3b8fc9984..b09cab96a780cadf6b4aad287cc3ca70dd2d60a7 100644
index 3965a9f456d7815a4f375bc5792f888a38c149ef..e508637fabd5b8688230f6e6aed82480f5c513e9 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -678,6 +678,11 @@ 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>
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index a1aaef67d5f4ee42714638e324f7965f2ad27eb0..776cef835e2512bde83842e72b1bd00250374eb6 100644
index 0734602a64f169665ca416efa37aa52d649e900c..20fae6041a0a93c0de24f4e8bf0d2acf4b1bcced 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -477,6 +477,21 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -478,6 +478,21 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
return true;
}
@@ -32,7 +32,7 @@ index a1aaef67d5f4ee42714638e324f7965f2ad27eb0..776cef835e2512bde83842e72b1bd002
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
index 9cf87d4009e8d71d844cf1583a1457b45a523fff..75e994b0da981190083c8cda27a253116221aadb 100644
index c31a33a22540dcaf854b3633686af969e77e0ad6..d4cdb88ca3247f3f9ea8f6797cc3b6ce0c7b5152 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -265,6 +265,7 @@ public abstract class LivingEntity extends Entity implements Attackable {

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
index 776cef835e2512bde83842e72b1bd00250374eb6..23280c8183285e3570d0d08b6af7fa1d03a57d35 100644
index 20fae6041a0a93c0de24f4e8bf0d2acf4b1bcced..f8caeea9c1ecd3c5dfe0f0a1e8aec342ca21f251 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3070,7 +3070,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -3103,7 +3103,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
this.processPortalCooldown();
@@ -45,7 +45,7 @@ index f80f6da484f4144e743079e5104bf503419074b2..2deddc746e43896584bd65ba8e7971a8
entity.portalWorld = ((ServerLevel)world);
entity.portalBlock = pos.immutable();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 911b30143e7807a432ac793352bb9be6866823d8..08a62eed5b50b216ea4ef1884501c33faa996723 100644
index 4ebc5524a83992b90c4bb9dffa5c51ed8e1d6097..2bc1ab2989d2973dafad1951c579e27e17b650c8 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -652,6 +652,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
index a7faa7e1cc78e900ec09889e2a683a3eacce675a..f40eda7740b680d4a1bba7e8d177a8e0333caec7 100644
index 100ca2bdc0b537407e6bb3b82ce2112860e586c7..aa43bec60f31dd8319ac74a4f91ff9771d3eaceb 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -1039,7 +1039,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1120,7 +1120,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
return holder.is(PoiTypes.LIGHTNING_ROD);
}, (blockposition1) -> {
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
index f40eda7740b680d4a1bba7e8d177a8e0333caec7..4e26cdfa7b2134c699795bc0c36b739352d80eb3 100644
index aa43bec60f31dd8319ac74a4f91ff9771d3eaceb..2a857449a95fab2738d16f7c9e1488d58c645e9b 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -1088,11 +1088,27 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1169,11 +1169,27 @@ public class ServerLevel extends Level implements WorldGenLevel {
if (this.canSleepThroughNights()) {
if (!this.getServer().isSingleplayer() || this.getServer().isPublished()) {
int i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE);

View File

@@ -223,10 +223,10 @@ index 714afc98b5150907b45a00060be4e41582333204..312a6d90c0a09570aef24c205dc2ff27
+ // Purpur end - OfflinePlayer API
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index d65147f864dc75475cbb893fdcc9b391538b7c3c..48a330e253d5db20dbc834cf0e802a6c114e97a0 100644
index e35de674549b09d9aad4d675e91d66106f54d51b..c0bb0ae121690412bae087367f4023378e6d3d19 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2387,6 +2387,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2388,6 +2388,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.getHandle().getAbilities().walkingSpeed * 2f;
}

View File

@@ -5,10 +5,10 @@ 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
index 4e26cdfa7b2134c699795bc0c36b739352d80eb3..d48132f978a4395e489b3ba21f634f19790134b3 100644
index 2a857449a95fab2738d16f7c9e1488d58c645e9b..a3841f5aa7dfc2176f64d8be6c453d2a4c8cf817 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -1247,6 +1247,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1328,6 +1328,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
private void resetWeatherCycle() {
// CraftBukkit start
@@ -16,7 +16,7 @@ index 4e26cdfa7b2134c699795bc0c36b739352d80eb3..d48132f978a4395e489b3ba21f634f19
this.serverLevelData.setRaining(false, org.bukkit.event.weather.WeatherChangeEvent.Cause.SLEEP); // Paper - when passing the night
// 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....
@@ -1254,6 +1255,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1335,6 +1336,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.serverLevelData.setRainTime(0);
}
// CraftBukkit end
@@ -25,7 +25,7 @@ index 4e26cdfa7b2134c699795bc0c36b739352d80eb3..d48132f978a4395e489b3ba21f634f19
// CraftBukkit start
// 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
index b0b8918135e4a363f1fbf01064be4cf79886b72c..22fee7a93b8b6c9ce064e386016f671d88f0ee14 100644
index b7cb860fde71c5be95b1c758ddbb0bd32350baa0..c12fc8aadb72cec739de6a952a960363e7b99b63 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -141,6 +141,8 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ 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
index 2f0c5df784d5847c59826c3d7930b5d707a5f1aa..5cc5bf4305a6e91c303841e752aeece9a1d03502 100644
index 7ddc9a7ff7b1d6de234ea5b1c8f4246d6ba7976d..02f615e797ac22b8a6226233d815346ca09c3173 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -516,6 +516,7 @@ public class ServerPlayerGameMode {
@@ -518,6 +518,7 @@ public class ServerPlayerGameMode {
public InteractionHand interactHand;
public ItemStack interactItemStack;
public InteractionResult useItemOn(ServerPlayer player, Level world, ItemStack stack, InteractionHand hand, BlockHitResult hitResult) {
@@ -16,7 +16,7 @@ index 2f0c5df784d5847c59826c3d7930b5d707a5f1aa..5cc5bf4305a6e91c303841e752aeece9
BlockPos blockposition = hitResult.getBlockPos();
BlockState iblockdata = world.getBlockState(blockposition);
InteractionResult enuminteractionresult = InteractionResult.PASS;
@@ -612,4 +613,18 @@ public class ServerPlayerGameMode {
@@ -614,4 +615,18 @@ public class ServerPlayerGameMode {
public void setLevel(ServerLevel world) {
this.level = world;
}
@@ -36,10 +36,10 @@ index 2f0c5df784d5847c59826c3d7930b5d707a5f1aa..5cc5bf4305a6e91c303841e752aeece9
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 4ac0941974e6e8aeaea88ce0fc589381f3c0eaad..f3210aa312af48a77129962fe483e65eec36a342 100644
index 9b59fc923c85af6daf07d7bcf0d30ad39bd0cd8e..c4d8ca22639f8ad5c4375927f8ce7afa856d1689 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2084,6 +2084,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -2085,6 +2085,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
boolean cancelled;
if (movingobjectposition == null || movingobjectposition.getType() != HitResult.Type.BLOCK) {
@@ -48,7 +48,7 @@ index 4ac0941974e6e8aeaea88ce0fc589381f3c0eaad..f3210aa312af48a77129962fe483e65e
cancelled = event.useItemInHand() == Event.Result.DENY;
} else {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 57e2897e96e26ae5abef4d1d10373ea1ddb499b9..453ba32578e4dc9340332f048cce734bc0b06139 100644
index 2ad272de2bf20a2fbb5ec847e45ed5093285d35f..a8544e65700025cd326fe62edbaf7558432165ec 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -417,6 +417,7 @@ public class PurpurWorldConfig {

View File

@@ -9,10 +9,10 @@ players still only pick up one orb every tick. However, setting this
to any negative number will pick up all orbs instantly.
diff --git a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java
index 45af026f572a67061ce63229913366f719cf0a5f..7ccf214d376771814b27aa8e1f34d5a73f1b61f5 100644
index 2bd576849403bc2cfae298c2210616192ddc38db..b2233635b6acc35ea3668c36c56e57f15420ac62 100644
--- a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java
+++ b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java
@@ -311,7 +311,7 @@ public class ExperienceOrb extends Entity {
@@ -313,7 +313,7 @@ public class ExperienceOrb extends Entity {
public void playerTouch(Player player) {
if (!this.level().isClientSide) {
if (player.takeXpDelay == 0 && new com.destroystokyo.paper.event.player.PlayerPickupExperienceEvent(((net.minecraft.server.level.ServerPlayer) player).getBukkitEntity(), (org.bukkit.entity.ExperienceOrb) this.getBukkitEntity()).callEvent()) { // Paper
@@ -35,7 +35,7 @@ index 0a9d8b22c7127b87826d9d256a5f36c34f2bfc0f..d00035e31cf4773a418d1cc6a6018d08
} else if (!entity.isRemoved()) {
this.touch(entity);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index a64f33a9dd1710fb95dc17c98e5b70e5ceef792b..8320fe867358376fc80073a632c9436b0d7d0a79 100644
index d53a4fef85b4b0e43db8b655604cfc6c08e7c6d6..01b862bf567649a80efa487c9fdcea9436f884f8 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -426,6 +426,7 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ 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
index d48132f978a4395e489b3ba21f634f19790134b3..c490c88fd7798c0ac186b1de22a0dfc433adc431 100644
index a3841f5aa7dfc2176f64d8be6c453d2a4c8cf817..19df5bf9323eb10e22e87fcd29d941698d6705fb 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -2740,7 +2740,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -2821,7 +2821,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
// Spigot Start
if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message
// Paper start
@@ -18,7 +18,7 @@ index d48132f978a4395e489b3ba21f634f19790134b3..c490c88fd7798c0ac186b1de22a0dfc4
}
// Paper end
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 8320fe867358376fc80073a632c9436b0d7d0a79..60cc0d990edf1ec072a8d017550072e24e80e221 100644
index 01b862bf567649a80efa487c9fdcea9436f884f8..e6f22da99c0f74c8d880ec76d7370c37c8812882 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -427,6 +427,7 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Dont eat blocks in non ticking chunks
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
index c2dec99102fa4c64c3c874f725cdc65845cd98d2..90828993a9dffdc27dbdbcb9fcf2fa861e4cad5b 100644
index 9209b598d7168b82574e4800056b8b9f84265dd0..3bf565ce5110e38366523e0a383ac00cc6c4351a 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -934,7 +934,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -1010,7 +1010,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
return this.anyPlayerCloseEnoughForSpawning(this.getUpdatingChunkIfPresent(chunkcoordintpair.toLong()), chunkcoordintpair, reducedRange);
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add toggle for enchant level clamping
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
index c6bcf026f9e5bfd0f3ba261714612ebd1f092427..c6bd785382fcd0097c0cfc60ed9b5241cd1b2250 100644
index 3660b54ef390bf5629676bc14d819a78b645ef2e..ae19380c2e14f81f068a02744f64a99dc643eb51 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -1192,7 +1192,7 @@ public final class ItemStack {
@@ -1196,7 +1196,7 @@ public final class ItemStack {
ListTag nbttaglist = this.tag.getList("Enchantments", 10);

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
index f3210aa312af48a77129962fe483e65eec36a342..d3158d0bea38780463e7fcc4cf2a27f96eef3331 100644
index c4d8ca22639f8ad5c4375927f8ce7afa856d1689..9add904665ae8aa5bb7f447bb8b84e4439be56ad 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2448,7 +2448,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -2449,7 +2449,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
do {
instant1 = (Instant) this.lastChatTimeStamp.get();
if (timestamp.isBefore(instant1)) {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add local difficulty api
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 439857a814212b36e475461a01b320731a10b86d..2456d3710592dfc62b60dd609602306a20bd825a 100644
index 89514af7f3771db496e7e2a40fa4e7fdf527f095..c62fb633f3d27edd6cbfe4221c164ee68f1df5ae 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -2278,6 +2278,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -2283,6 +2283,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return (this.getHandle().getDragonFight() == null) ? null : new CraftDragonBattle(this.getHandle().getDragonFight());
}

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.
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 23280c8183285e3570d0d08b6af7fa1d03a57d35..3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b 100644
index f8caeea9c1ecd3c5dfe0f0a1e8aec342ca21f251..7a955f3848fcea9a72e5b758165f7685e74436c2 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -542,7 +542,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -575,7 +575,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
this.bb = Entity.INITIAL_AABB;
this.stuckSpeedMultiplier = Vec3.ZERO;
this.nextStep = 1.0F;
@@ -33,7 +33,7 @@ index beef2f6a42eebeaf5761bac841300f780bfdf4f2..41797940d89fec55cb7de4c63eb3ea5c
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index f7c21ff0da5e83b3e2c04df6478fbb5038e8e568..2cf32b572bf9d737bbecf6777ec3db62dd9b0283 100644
index 9c0bbaf1573167bc558fedfe5656b225de4ff1a3..2544326898b5dcfe0d15a0ebaf0e3cfbea5572b8 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -206,9 +206,11 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Remove Timings
diff --git a/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java b/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java
index ae0c01539e068e2cc851d2ad52baccf5ebc9545f..7c8a863c32d532552eb71ac37f124efbf3dbb966 100644
index abd0217cf0bff183c8e262edc173a53403797c1a..2519ad2884b6c09b312432b933c31476b369e599 100644
--- a/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java
+++ b/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java
@@ -1082,9 +1082,9 @@ public final class ChunkHolderManager {
@@ -1315,9 +1315,9 @@ public final class ChunkHolderManager {
}
public boolean processTicketUpdates() {
@@ -21,10 +21,10 @@ index ae0c01539e068e2cc851d2ad52baccf5ebc9545f..7c8a863c32d532552eb71ac37f124efb
private static final ThreadLocal<List<ChunkProgressionTask>> CURRENT_TICKET_UPDATE_SCHEDULING = new ThreadLocal<>();
diff --git a/src/main/java/io/papermc/paper/chunk/system/scheduling/NewChunkHolder.java b/src/main/java/io/papermc/paper/chunk/system/scheduling/NewChunkHolder.java
index cfd97d48ae77d33b68e11de3140a00f3faca34a4..fc51147c8e38d0057444eaea712b4f44a1e50e74 100644
index 51304c5cf4b0ac7646693ef97ef4a3847d3342b5..535ab99585cd4463d051334681bc80b5d20df7c0 100644
--- a/src/main/java/io/papermc/paper/chunk/system/scheduling/NewChunkHolder.java
+++ b/src/main/java/io/papermc/paper/chunk/system/scheduling/NewChunkHolder.java
@@ -1774,7 +1774,7 @@ public final class NewChunkHolder {
@@ -1779,7 +1779,7 @@ public final class NewChunkHolder {
boolean canSavePOI = !(chunk instanceof LevelChunk levelChunk && levelChunk.mustNotSave) && (poi != null && poi.isDirty());
boolean canSaveEntities = entities != null;
@@ -33,7 +33,7 @@ index cfd97d48ae77d33b68e11de3140a00f3faca34a4..fc51147c8e38d0057444eaea712b4f44
if (canSaveChunk) {
canSaveChunk = this.saveChunk(chunk, unloading);
}
@@ -1788,7 +1788,7 @@ public final class NewChunkHolder {
@@ -1793,7 +1793,7 @@ public final class NewChunkHolder {
this.lastEntityUnload = null;
}
}
@@ -222,7 +222,7 @@ index 4a610b712acfe0b1b4dcf4988bc22c6a71616050..aa3f4ca3be843616d34897e41909255f
i = this.context.runTopCommand(function, source);
} finally {
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 9eeda0276b4a6f444e7fd2afee7a2c62ad58e0cd..15edbb226bd42af3a33e4150eec50236ff5af5d9 100644
index 4b9cf94e24bc583f7bef593e6e8fd70e5564ca38..f7238261f9797d127ff6e5dcdd62dd20bc65cdba 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -521,7 +521,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -244,10 +244,10 @@ index 9eeda0276b4a6f444e7fd2afee7a2c62ad58e0cd..15edbb226bd42af3a33e4150eec50236
@Override
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
index 90828993a9dffdc27dbdbcb9fcf2fa861e4cad5b..89aebe46deff84ab458b6e2302a98a42103b7195 100644
index 3bf565ce5110e38366523e0a383ac00cc6c4351a..f60c8dbe8d6e04a19450a6cc1f3b2a27ca3ba2db 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -544,15 +544,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -620,15 +620,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
protected void tick(BooleanSupplier shouldKeepTicking) {
ProfilerFiller gameprofilerfiller = this.level.getProfiler();
@@ -267,7 +267,7 @@ index 90828993a9dffdc27dbdbcb9fcf2fa861e4cad5b..89aebe46deff84ab458b6e2302a98a42
}
gameprofilerfiller.pop();
@@ -1186,7 +1186,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -1282,7 +1282,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
List<ServerPlayer> list = Lists.newArrayList();
List<ServerPlayer> list1 = this.level.players();
ObjectIterator objectiterator = this.entityMap.values().iterator();
@@ -276,7 +276,7 @@ index 90828993a9dffdc27dbdbcb9fcf2fa861e4cad5b..89aebe46deff84ab458b6e2302a98a42
ChunkMap.TrackedEntity playerchunkmap_entitytracker;
@@ -1211,17 +1211,17 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -1307,17 +1307,17 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
playerchunkmap_entitytracker.serverEntity.sendChanges();
}
}
@@ -298,10 +298,10 @@ index 90828993a9dffdc27dbdbcb9fcf2fa861e4cad5b..89aebe46deff84ab458b6e2302a98a42
}
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
index 1409db8d73a2ed43efbba7f0932bd6d497d9009e..a616c9a2532beb67960259bf1910da1759cfe698 100644
index 488a253e218409b5f0b4a872cee0928578fa7582..c4601ee883ecff651585aaaf33fe3a9f747d4338 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
@@ -447,10 +447,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
// Paper end
com.destroystokyo.paper.io.SyncLoadFinder.logSyncLoad(this.level, x1, z1); // Paper - sync load info
@@ -314,7 +314,7 @@ index 1409db8d73a2ed43efbba7f0932bd6d497d9009e..a616c9a2532beb67960259bf1910da17
} // Paper
ichunkaccess = (ChunkAccess) ((Either) completablefuture.join()).map((ichunkaccess1) -> {
return ichunkaccess1;
@@ -599,17 +599,17 @@ public class ServerChunkCache extends ChunkSource {
@@ -448,17 +448,17 @@ public class ServerChunkCache extends ChunkSource {
public void save(boolean flush) {
this.runDistanceManagerUpdates();
@@ -336,7 +336,7 @@ index 1409db8d73a2ed43efbba7f0932bd6d497d9009e..a616c9a2532beb67960259bf1910da17
}
// Paper end
@@ -639,22 +639,22 @@ public class ServerChunkCache extends ChunkSource {
@@ -488,22 +488,22 @@ public class ServerChunkCache extends ChunkSource {
@Override
public void tick(BooleanSupplier shouldKeepTicking, boolean tickChunks) {
this.level.getProfiler().push("purge");
@@ -365,7 +365,7 @@ index 1409db8d73a2ed43efbba7f0932bd6d497d9009e..a616c9a2532beb67960259bf1910da17
this.level.getProfiler().pop();
this.clearCache();
}
@@ -708,7 +708,7 @@ public class ServerChunkCache extends ChunkSource {
@@ -557,7 +557,7 @@ public class ServerChunkCache extends ChunkSource {
boolean flag1 = level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) != 0L && worlddata.getGameTime() % level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) == 0L; // CraftBukkit
gameprofilerfiller.push("naturalSpawnCount");
@@ -374,7 +374,7 @@ index 1409db8d73a2ed43efbba7f0932bd6d497d9009e..a616c9a2532beb67960259bf1910da17
int l = this.distanceManager.getNaturalSpawnChunkCount();
// Paper start - per player mob spawning
NaturalSpawner.SpawnState spawnercreature_d; // moved down
@@ -722,12 +722,12 @@ public class ServerChunkCache extends ChunkSource {
@@ -571,12 +571,12 @@ public class ServerChunkCache extends ChunkSource {
spawnercreature_d = NaturalSpawner.createState(l, this.level.getAllEntities(), this::getFullChunk, this.chunkMap.playerMobDistanceMap == null ? new LocalMobCapCalculator(this.chunkMap) : null, false);
}
// Paper end
@@ -389,7 +389,7 @@ index 1409db8d73a2ed43efbba7f0932bd6d497d9009e..a616c9a2532beb67960259bf1910da17
// Paper - moved down
@@ -782,17 +782,17 @@ public class ServerChunkCache extends ChunkSource {
@@ -631,17 +631,17 @@ public class ServerChunkCache extends ChunkSource {
}
}
// Paper end - optimise chunk tick iteration
@@ -411,7 +411,7 @@ index 1409db8d73a2ed43efbba7f0932bd6d497d9009e..a616c9a2532beb67960259bf1910da17
if (!this.chunkMap.needsChangeBroadcasting.isEmpty()) {
ReferenceOpenHashSet<ChunkHolder> copy = this.chunkMap.needsChangeBroadcasting.clone();
this.chunkMap.needsChangeBroadcasting.clear();
@@ -804,7 +804,7 @@ public class ServerChunkCache extends ChunkSource {
@@ -653,7 +653,7 @@ public class ServerChunkCache extends ChunkSource {
}
}
}
@@ -421,10 +421,10 @@ index 1409db8d73a2ed43efbba7f0932bd6d497d9009e..a616c9a2532beb67960259bf1910da17
// Paper end - use set of chunks requiring updates, rather than iterating every single one loaded
// Paper start - controlled flush for entity tracker packets
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index c490c88fd7798c0ac186b1de22a0dfc433adc431..48e259562bd46075e4d64ed1a291e32c33fbefca 100644
index 19df5bf9323eb10e22e87fcd29d941698d6705fb..55f892e0b9eb098f3cdd922fa5d5d53005722859 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -747,7 +747,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -828,7 +828,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.updateSkyBrightness();
this.tickTime();
gameprofilerfiller.popPush("tickPending");
@@ -433,7 +433,7 @@ index c490c88fd7798c0ac186b1de22a0dfc433adc431..48e259562bd46075e4d64ed1a291e32c
if (!this.isDebug()) {
j = this.getGameTime();
gameprofilerfiller.push("blockTicks");
@@ -756,20 +756,20 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -837,20 +837,20 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.fluidTicks.tick(j, 65536, this::tickFluid);
gameprofilerfiller.pop();
}
@@ -461,7 +461,7 @@ index c490c88fd7798c0ac186b1de22a0dfc433adc431..48e259562bd46075e4d64ed1a291e32c
this.handlingTick = false;
gameprofilerfiller.pop();
boolean flag = true || !this.players.isEmpty() || !this.getForcedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players
@@ -780,7 +780,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -861,7 +861,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
if (flag || this.emptyTime++ < 300) {
gameprofilerfiller.push("entities");
@@ -470,7 +470,7 @@ index c490c88fd7798c0ac186b1de22a0dfc433adc431..48e259562bd46075e4d64ed1a291e32c
if (this.dragonFight != null) {
gameprofilerfiller.push("dragonFight");
this.dragonFight.tick();
@@ -788,7 +788,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -869,7 +869,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
org.spigotmc.ActivationRange.activateEntities(this); // Spigot
@@ -479,7 +479,7 @@ index c490c88fd7798c0ac186b1de22a0dfc433adc431..48e259562bd46075e4d64ed1a291e32c
this.entityTickList.forEach((entity) -> {
if (!entity.isRemoved()) {
if (false && this.shouldDiscardEntity(entity)) { // CraftBukkit - We prevent spawning in general, so this butchering is not needed
@@ -815,8 +815,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -896,8 +896,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
}
});
@@ -490,7 +490,7 @@ index c490c88fd7798c0ac186b1de22a0dfc433adc431..48e259562bd46075e4d64ed1a291e32c
gameprofilerfiller.pop();
this.tickBlockEntities();
}
@@ -996,7 +996,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1077,7 +1077,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
// Paper start - optimise random block ticking
gameprofilerfiller.popPush("randomTick");
@@ -499,7 +499,7 @@ index c490c88fd7798c0ac186b1de22a0dfc433adc431..48e259562bd46075e4d64ed1a291e32c
if (randomTickSpeed > 0) {
LevelChunkSection[] sections = chunk.getSections();
int minSection = io.papermc.paper.util.WorldUtil.getMinSection(this);
@@ -1030,7 +1030,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1111,7 +1111,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
}
// Paper end - optimise random block ticking
@@ -508,7 +508,7 @@ index c490c88fd7798c0ac186b1de22a0dfc433adc431..48e259562bd46075e4d64ed1a291e32c
gameprofilerfiller.pop();
}
@@ -1323,8 +1323,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1404,8 +1404,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
// Spigot end
// Paper start- timings
final boolean isActive = org.spigotmc.ActivationRange.checkIfActive(entity);
@@ -519,7 +519,7 @@ index c490c88fd7798c0ac186b1de22a0dfc433adc431..48e259562bd46075e4d64ed1a291e32c
// Paper end - timings
entity.setOldPosAndRot();
ProfilerFiller gameprofilerfiller = this.getProfiler();
@@ -1340,7 +1340,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1421,7 +1421,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
entity.postTick(); // CraftBukkit
} else { entity.inactiveTick(); } // Paper - EAR 2
this.getProfiler().pop();
@@ -528,7 +528,7 @@ index c490c88fd7798c0ac186b1de22a0dfc433adc431..48e259562bd46075e4d64ed1a291e32c
Iterator iterator = entity.getPassengers().iterator();
while (iterator.hasNext()) {
@@ -1363,8 +1363,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1444,8 +1444,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
if (passenger instanceof Player || this.entityTickList.contains(passenger)) {
// Paper - EAR 2
final boolean isActive = org.spigotmc.ActivationRange.checkIfActive(passenger);
@@ -539,7 +539,7 @@ index c490c88fd7798c0ac186b1de22a0dfc433adc431..48e259562bd46075e4d64ed1a291e32c
// Paper end
passenger.setOldPosAndRot();
++passenger.tickCount;
@@ -1394,7 +1394,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1475,7 +1475,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.tickPassenger(passenger, entity2);
}
@@ -548,7 +548,7 @@ index c490c88fd7798c0ac186b1de22a0dfc433adc431..48e259562bd46075e4d64ed1a291e32c
}
} else {
passenger.stopRiding();
@@ -1414,14 +1414,14 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1495,14 +1495,14 @@ public class ServerLevel extends Level implements WorldGenLevel {
org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(getWorld()));
}
@@ -566,7 +566,7 @@ index c490c88fd7798c0ac186b1de22a0dfc433adc431..48e259562bd46075e4d64ed1a291e32c
// Copied from save()
// CraftBukkit start - moved from MinecraftServer.saveChunks
@@ -1433,7 +1433,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1514,7 +1514,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.convertable.saveDataTag(this.server.registryAccess(), this.serverLevelData, this.server.getPlayerList().getSingleplayerData());
}
// CraftBukkit end
@@ -575,7 +575,7 @@ index c490c88fd7798c0ac186b1de22a0dfc433adc431..48e259562bd46075e4d64ed1a291e32c
}
// Paper end
@@ -1447,7 +1447,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1528,7 +1528,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
if (!savingDisabled) {
org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(getWorld())); // CraftBukkit
@@ -584,7 +584,7 @@ index c490c88fd7798c0ac186b1de22a0dfc433adc431..48e259562bd46075e4d64ed1a291e32c
if (progressListener != null) {
progressListener.progressStartNoAbort(Component.translatable("menu.savingLevel"));
}
@@ -1457,11 +1457,11 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1538,11 +1538,11 @@ public class ServerLevel extends Level implements WorldGenLevel {
progressListener.progressStage(Component.translatable("menu.savingChunks"));
}
@@ -600,10 +600,10 @@ index c490c88fd7798c0ac186b1de22a0dfc433adc431..48e259562bd46075e4d64ed1a291e32c
} 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
index d3158d0bea38780463e7fcc4cf2a27f96eef3331..1205b3099fdaa56e2d45e46b650fb602892e9c8b 100644
index 9add904665ae8aa5bb7f447bb8b84e4439be56ad..cc46bb346b7cd8e0a730fbc9b43b4d04f719115e 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2585,7 +2585,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -2586,7 +2586,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
}
// Paper End
@@ -612,7 +612,7 @@ index d3158d0bea38780463e7fcc4cf2a27f96eef3331..1205b3099fdaa56e2d45e46b650fb602
if ( org.spigotmc.SpigotConfig.logCommands ) // Spigot
this.LOGGER.info(this.player.getScoreboardName() + " issued server command: " + s);
@@ -2595,7 +2595,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -2596,7 +2596,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
this.cserver.getPluginManager().callEvent(event);
if (event.isCancelled()) {
@@ -621,7 +621,7 @@ index d3158d0bea38780463e7fcc4cf2a27f96eef3331..1205b3099fdaa56e2d45e46b650fb602
return;
}
@@ -2608,7 +2608,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -2609,7 +2609,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
java.util.logging.Logger.getLogger(ServerGamePacketListenerImpl.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
return;
} finally {
@@ -631,7 +631,7 @@ index d3158d0bea38780463e7fcc4cf2a27f96eef3331..1205b3099fdaa56e2d45e46b650fb602
}
// CraftBukkit end
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 64a1fd3316f7b0b6e7feafc1be4649a4084d61a3..1327e5d045c672e121ae57f1cfcbeb46be6c00ab 100644
index 59930a325da1fcba50eb995f83d6a5618e447572..725149019d69f3350b7235391092b1fbe2cd9dfb 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1248,7 +1248,7 @@ public abstract class PlayerList {
@@ -702,10 +702,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
index 10cff85dd4a59558dd487a3c5c7871a026835ceb..b4bfddb406fce51d1100976d9445db161dcb3f22 100644
index de6ca4b7e7549905d3ff53b13db28f1bde8f51bf..000697994299163fa3287450652be551a81cf466 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -909,15 +909,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -912,15 +912,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
ProfilerFiller gameprofilerfiller = this.getProfiler();
gameprofilerfiller.push("blockEntities");
@@ -724,7 +724,7 @@ index 10cff85dd4a59558dd487a3c5c7871a026835ceb..b4bfddb406fce51d1100976d9445db16
// Spigot start
// Iterator iterator = this.blockEntityTickers.iterator();
int tilesThisCycle = 0;
@@ -950,7 +950,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -953,7 +953,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
}
this.blockEntityTickers.removeAll(toRemove);
@@ -756,7 +756,7 @@ index 089dd93d4cd4c1f72e63c4944b3b82c1e2ba732d..4e2611c9a7df8343f76e3be3f01f2f82
}
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 17398a48ff84ba1b21bd64f7857e3a326fcc54cf..c4b4091a52cc08c33ab73bc1ed725477aae26982 100644
index 4ff0d2fc9fd76e92e64abd69f2c9e299aa08ac32..5de3b6cd73a45348d0feba858d96a500bf236ce7 100644
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
@@ -881,7 +881,7 @@ public class LevelChunk extends ChunkAccess {

View File

@@ -388,10 +388,10 @@ index aa3f4ca3be843616d34897e41909255f512f8963..426ac5faa9344472560fb20bdea8bdc3
++j;
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
index 89aebe46deff84ab458b6e2302a98a42103b7195..530ce9950b83420d5a033e6c552dafb388945c05 100644
index f60c8dbe8d6e04a19450a6cc1f3b2a27ca3ba2db..7fb00407b75603cf6ff63f1fd1f3e020524caf82 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -542,20 +542,20 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -618,20 +618,20 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
}
protected void tick(BooleanSupplier shouldKeepTicking) {
@@ -417,10 +417,10 @@ index 89aebe46deff84ab458b6e2302a98a42103b7195..530ce9950b83420d5a033e6c552dafb3
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
index a616c9a2532beb67960259bf1910da1759cfe698..e2bab8e845e7ac940ab690dcb2db25cdf92b6dcf 100644
index c4601ee883ecff651585aaaf33fe3a9f747d4338..f75f7b39aa4ed5c18cd2d761a1337df5b1771a23 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
@@ -428,16 +428,16 @@ public class ServerChunkCache extends ChunkSource {
@@ -277,16 +277,16 @@ public class ServerChunkCache extends ChunkSource {
return ifLoaded;
}
// Paper end
@@ -440,7 +440,7 @@ index a616c9a2532beb67960259bf1910da1759cfe698..e2bab8e845e7ac940ab690dcb2db25cd
CompletableFuture<Either<ChunkAccess, ChunkHolder.ChunkLoadingFailure>> completablefuture = this.getChunkFutureMainThread(x, z, leastStatus, create, true); // Paper
ServerChunkCache.MainThreadExecutor chunkproviderserver_b = this.mainThreadProcessor;
@@ -626,24 +626,24 @@ public class ServerChunkCache extends ChunkSource {
@@ -475,24 +475,24 @@ public class ServerChunkCache extends ChunkSource {
// CraftBukkit start - modelled on below
public void purgeUnload() {
if (true) return; // Paper - tickets will be removed later, this behavior isn't really well accounted for by the chunk system
@@ -470,7 +470,7 @@ index a616c9a2532beb67960259bf1910da1759cfe698..e2bab8e845e7ac940ab690dcb2db25cd
if (tickChunks) {
//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
@@ -652,10 +652,10 @@ public class ServerChunkCache extends ChunkSource {
@@ -501,10 +501,10 @@ public class ServerChunkCache extends ChunkSource {
}
//this.level.timings.doChunkUnload.startTiming(); // Spigot // Purpur
@@ -483,7 +483,7 @@ index a616c9a2532beb67960259bf1910da1759cfe698..e2bab8e845e7ac940ab690dcb2db25cd
this.clearCache();
}
@@ -701,13 +701,13 @@ public class ServerChunkCache extends ChunkSource {
@@ -550,13 +550,13 @@ public class ServerChunkCache extends ChunkSource {
}
// Paper end - optimize isOutisdeRange
LevelData worlddata = this.level.getLevelData();
@@ -500,7 +500,7 @@ index a616c9a2532beb67960259bf1910da1759cfe698..e2bab8e845e7ac940ab690dcb2db25cd
//this.level.timings.countNaturalMobs.startTiming(); // Paper - timings // Purpur
int l = this.distanceManager.getNaturalSpawnChunkCount();
// Paper start - per player mob spawning
@@ -725,13 +725,13 @@ public class ServerChunkCache extends ChunkSource {
@@ -574,13 +574,13 @@ public class ServerChunkCache extends ChunkSource {
//this.level.timings.countNaturalMobs.stopTiming(); // Paper - timings // Purpur
this.lastSpawnState = spawnercreature_d;
@@ -516,7 +516,7 @@ index a616c9a2532beb67960259bf1910da1759cfe698..e2bab8e845e7ac940ab690dcb2db25cd
boolean flag2 = this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && !this.level.players().isEmpty(); // CraftBukkit
// Paper - only shuffle if per-player mob spawning is disabled
@@ -783,15 +783,15 @@ public class ServerChunkCache extends ChunkSource {
@@ -632,15 +632,15 @@ public class ServerChunkCache extends ChunkSource {
}
// Paper end - optimise chunk tick iteration
//this.level.timings.chunkTicks.stopTiming(); // Paper // Purpur
@@ -535,7 +535,7 @@ index a616c9a2532beb67960259bf1910da1759cfe698..e2bab8e845e7ac940ab690dcb2db25cd
//this.level.timings.broadcastChunkUpdates.startTiming(); // Paper - timing // Purpur
if (!this.chunkMap.needsChangeBroadcasting.isEmpty()) {
ReferenceOpenHashSet<ChunkHolder> copy = this.chunkMap.needsChangeBroadcasting.clone();
@@ -805,7 +805,7 @@ public class ServerChunkCache extends ChunkSource {
@@ -654,7 +654,7 @@ public class ServerChunkCache extends ChunkSource {
}
}
//this.level.timings.broadcastChunkUpdates.stopTiming(); // Paper - timing // Purpur
@@ -544,7 +544,7 @@ index a616c9a2532beb67960259bf1910da1759cfe698..e2bab8e845e7ac940ab690dcb2db25cd
// Paper end - use set of chunks requiring updates, rather than iterating every single one loaded
// Paper start - controlled flush for entity tracker packets
List<net.minecraft.network.Connection> disabledFlushes = new java.util.ArrayList<>(this.level.players.size());
@@ -996,7 +996,7 @@ public class ServerChunkCache extends ChunkSource {
@@ -845,7 +845,7 @@ public class ServerChunkCache extends ChunkSource {
@Override
protected void doRunTask(Runnable task) {
@@ -554,10 +554,10 @@ index a616c9a2532beb67960259bf1910da1759cfe698..e2bab8e845e7ac940ab690dcb2db25cd
}
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a1c294ff7 100644
index 55f892e0b9eb098f3cdd922fa5d5d53005722859..653e469c726e6e44b93452e0cac2448e3816b3c8 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -714,12 +714,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -795,12 +795,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
}
// Paper end - optimise checkDespawn
@@ -573,7 +573,7 @@ index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a
this.advanceWeatherCycle();
int i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE);
long j;
@@ -746,32 +746,32 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -827,32 +827,32 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.updateSkyBrightness();
this.tickTime();
@@ -614,7 +614,7 @@ index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a
boolean flag = true || !this.players.isEmpty() || !this.getForcedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players
if (flag) {
@@ -779,12 +779,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -860,12 +860,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
if (flag || this.emptyTime++ < 300) {
@@ -630,7 +630,7 @@ index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a
}
org.spigotmc.ActivationRange.activateEntities(this); // Spigot
@@ -794,9 +794,9 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -875,9 +875,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
entity.discard();
} else {
@@ -642,7 +642,7 @@ index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a
if (true || this.chunkSource.chunkMap.getDistanceManager().inEntityTickingRange(entity.chunkPosition().toLong())) { // Paper - now always true if in the ticking list
Entity entity1 = entity.getVehicle();
@@ -808,22 +808,21 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -889,22 +889,21 @@ public class ServerLevel extends Level implements WorldGenLevel {
entity.stopRiding();
}
@@ -669,7 +669,7 @@ index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a
}
@Override
@@ -903,9 +902,9 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -984,9 +983,9 @@ public class ServerLevel extends Level implements WorldGenLevel {
boolean flag = this.isRaining();
int j = chunkcoordintpair.getMinBlockX();
int k = chunkcoordintpair.getMinBlockZ();
@@ -681,7 +681,7 @@ index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a
final BlockPos.MutableBlockPos blockposition = this.chunkTickMutablePosition; // Paper - use mutable to reduce allocation rate, final to force compile fail on change
if (!this.paperConfig().environment.disableThunder && flag && this.isThundering() && this.spigotConfig.thunderChance > 0 && this.random.nextInt(this.spigotConfig.thunderChance) == 0) { // Spigot // Paper - disable thunder
@@ -943,7 +942,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1024,7 +1023,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
}
@@ -690,7 +690,7 @@ index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a
int l;
int i1;
@@ -995,7 +994,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1076,7 +1075,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
// Paper start - optimise random block ticking
@@ -699,7 +699,7 @@ index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a
//timings.chunkTicksBlocks.startTiming(); // Paper // Purpur
if (randomTickSpeed > 0) {
LevelChunkSection[] sections = chunk.getSections();
@@ -1031,7 +1030,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1112,7 +1111,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
// Paper end - optimise random block ticking
//timings.chunkTicksBlocks.stopTiming(); // Paper // Purpur
@@ -708,7 +708,7 @@ index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a
}
public Optional<BlockPos> findLightningRod(BlockPos pos) {
@@ -1327,19 +1326,19 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1408,19 +1407,19 @@ public class ServerLevel extends Level implements WorldGenLevel {
//try { // Purpur
// Paper end - timings
entity.setOldPosAndRot();
@@ -733,7 +733,7 @@ index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a
//} finally { timer.stopTiming(); } // Paper - timings // Purpur
Iterator iterator = entity.getPassengers().iterator();
@@ -1368,12 +1367,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1449,12 +1448,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
// Paper end
passenger.setOldPosAndRot();
++passenger.tickCount;
@@ -750,7 +750,7 @@ index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a
// Paper start - EAR 2
if (isActive) {
passenger.rideTick();
@@ -1385,7 +1384,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1466,7 +1465,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
vehicle.positionRider(passenger);
}
// Paper end - EAR 2
@@ -793,7 +793,7 @@ index a155e61a95c0fe4fc16d6d18a02a83b6d5b2a930..c3bb1f0d4ea44d88f2f5453e9fc8b109
this.connection.send(new ClientboundPlayerAbilitiesPacket(this.getAbilities()));
playerlist.sendLevelInfo(this, worldserver);
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 1205b3099fdaa56e2d45e46b650fb602892e9c8b..eb62c04013d981390524beb74dc37bc2443b844c 100644
index cc46bb346b7cd8e0a730fbc9b43b4d04f719115e..e3ec7429e262658ca94db9b74f3fe39e927f93c1 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -410,7 +410,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -1019,10 +1019,10 @@ 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
index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c446a499fb 100644
index 7a955f3848fcea9a72e5b758165f7685e74436c2..4dcb02a7326361ecef6fe3cc5cd426fc949f9fd8 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -783,7 +783,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -816,7 +816,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
// CraftBukkit end
public void baseTick() {
@@ -1031,7 +1031,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4
if (firstTick && this instanceof net.minecraft.world.entity.NeutralMob neutralMob) neutralMob.tickInitialPersistentAnger(level); // Paper - Update last hurt when ticking
this.feetBlockState = null;
if (this.isPassenger() && this.getVehicle().isRemoved()) {
@@ -844,7 +844,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -877,7 +877,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
this.firstTick = false;
@@ -1040,7 +1040,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4
}
public void setSharedFlagOnFire(boolean onFire) {
@@ -1063,7 +1063,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -1096,7 +1096,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
}
@@ -1049,7 +1049,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4
if (this.stuckSpeedMultiplier.lengthSqr() > 1.0E-7D) {
movement = movement.multiply(this.stuckSpeedMultiplier);
this.stuckSpeedMultiplier = Vec3.ZERO;
@@ -1072,7 +1072,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -1105,7 +1105,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
// 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) {
setDeltaMovement(Vec3.ZERO);
@@ -1058,7 +1058,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4
return;
}
// Paper end
@@ -1093,8 +1093,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -1126,8 +1126,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
this.setPos(this.getX() + vec3d1.x, this.getY() + vec3d1.y, this.getZ() + vec3d1.z);
}
@@ -1069,7 +1069,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4
boolean flag = !Mth.equal(movement.x, vec3d1.x);
boolean flag1 = !Mth.equal(movement.z, vec3d1.z);
@@ -1113,7 +1113,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -1146,7 +1146,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
this.checkFallDamage(vec3d1.y, this.onGround(), iblockdata, blockposition);
if (this.isRemoved()) {
@@ -1078,7 +1078,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4
} else {
if (this.horizontalCollision) {
Vec3 vec3d2 = this.getDeltaMovement();
@@ -1251,7 +1251,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -1284,7 +1284,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
this.setRemainingFireTicks(-this.getFireImmuneTicks());
}
@@ -1087,7 +1087,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4
}
}
// Paper start - detailed watchdog information
@@ -3037,7 +3037,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -3070,7 +3070,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
ServerLevel worldserver1 = minecraftserver.getLevel(resourcekey);
if (true && !this.isPassenger() && this.portalTime++ >= i) { // CraftBukkit
@@ -1096,7 +1096,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4
this.portalTime = i;
// Paper start
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);
@@ -3055,7 +3055,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -3088,7 +3088,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
} // Paper
// CraftBukkit end
@@ -1105,7 +1105,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4
}
this.isInsidePortal = false;
@@ -3526,14 +3526,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -3559,14 +3559,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
// Paper end
if (this.level() instanceof ServerLevel && !this.isRemoved()) {
@@ -1122,7 +1122,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4
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) {
@@ -3567,7 +3567,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -3600,7 +3600,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
this.unRide();
// CraftBukkit end
@@ -1131,7 +1131,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4
// Paper start - Change lead drop timing to prevent dupe
if (this instanceof Mob) {
((Mob) this).dropLeash(true, true); // Paper drop lead
@@ -3590,10 +3590,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -3623,10 +3623,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
this.removeAfterChangingDimensions();
@@ -1145,7 +1145,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4
}
} else {
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index b8fbc726f1f73a4c20ea7eeca2846c864b9e67bc..3084ea26a9364a58a78a4f75df40aa509124ac44 100644
index 6e2412640d76c45158777136bc38cbe523440e69..af5a747241966dd93b331f1d79e3a857a38ac86c 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -412,7 +412,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -1508,7 +1508,7 @@ index d560bb344fefdfb2e8393dc1c5d96ef6d9dbf0e5..42c571c154ebdd24fabc5354618e6be0
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
index e60f530f78feebf851382f30b035ec9bcacf22b4..4eb091a1cd9c803bfc0a2258099f03404be7d82b 100644
index eab6d7bb5ae6635eb881156f50c8fd4ed2adb11a..21f0554ae9281ddd088cf36c79bb005e18473a7f 100644
--- a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
+++ b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
@@ -217,12 +217,12 @@ public class Frog extends Animal implements VariantHolder<FrogVariant> {
@@ -1572,10 +1572,10 @@ index 0ebb9ac9d951741eb9dea8475380cfcc68becae3..a707954d8e5b88ed37c2640437a10781
}
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 ac84a3812fa8d5b61b69cc29cf0a756f5ac8a886..479b041711134ea2eaa0e00f8ef4858a84de30d2 100644
index 3ab900c53469327b8d686da81ed5b4aaaddb7440..14df8a4e0c1a1dcfbbd2f4fdfd865bd77bb02325 100644
--- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
+++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
@@ -514,11 +514,11 @@ public class Sniffer extends Animal {
@@ -519,11 +519,11 @@ public class Sniffer extends Animal {
@Override
protected void customServerAiStep() {
@@ -1719,10 +1719,10 @@ index 8f97c9df726ac20cfce7bdddd5dd4f8c5aa76c35..e35ebb5b923c2f63e37e5dae006bc4a0
}
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index b4bfddb406fce51d1100976d9445db161dcb3f22..57fceb21ca6bc536a6faf04dbc8ddc782a52db8e 100644
index 000697994299163fa3287450652be551a81cf466..5287a6fe5742bdfe179fe669ee1f1edfbbd0fae6 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -906,9 +906,9 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -909,9 +909,9 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
}
protected void tickBlockEntities() {
@@ -1734,7 +1734,7 @@ index b4bfddb406fce51d1100976d9445db161dcb3f22..57fceb21ca6bc536a6faf04dbc8ddc78
//timings.tileEntityPending.startTiming(); // Spigot // Purpur
this.tickingBlockEntities = true;
if (!this.pendingBlockEntityTickers.isEmpty()) {
@@ -953,7 +953,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -956,7 +956,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
//timings.tileEntityTick.stopTiming(); // Spigot // Purpur
this.tickingBlockEntities = false;
co.aikar.timings.TimingHistory.tileEntityTicks += this.blockEntityTickers.size(); // Paper
@@ -1743,7 +1743,7 @@ index b4bfddb406fce51d1100976d9445db161dcb3f22..57fceb21ca6bc536a6faf04dbc8ddc78
spigotConfig.currentPrimedTnt = 0; // Spigot
}
@@ -1146,7 +1146,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -1149,7 +1149,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@Override
public List<Entity> getEntities(@Nullable Entity except, AABB box, Predicate<? super Entity> predicate) {
@@ -1752,7 +1752,7 @@ index b4bfddb406fce51d1100976d9445db161dcb3f22..57fceb21ca6bc536a6faf04dbc8ddc78
List<Entity> list = Lists.newArrayList();
((ServerLevel)this).getEntityLookup().getEntities(except, box, list, predicate); // Paper - optimise this call
return list;
@@ -1165,7 +1165,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -1168,7 +1168,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) {
@@ -1761,7 +1761,7 @@ index b4bfddb406fce51d1100976d9445db161dcb3f22..57fceb21ca6bc536a6faf04dbc8ddc78
// Paper start - optimise this call
//TODO use limit
if (filter instanceof net.minecraft.world.entity.EntityType entityTypeTest) {
@@ -1422,6 +1422,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -1425,6 +1425,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
}
public ProfilerFiller getProfiler() {
@@ -1792,7 +1792,7 @@ index 4e2611c9a7df8343f76e3be3f01f2f828cdf8a1d..03fc9c6ef0fb320924038f2730c6f084
// Paper start
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 c4b4091a52cc08c33ab73bc1ed725477aae26982..590cb3c8fe3061e861aa3c792a2898d4e9f971bd 100644
index 5de3b6cd73a45348d0feba858d96a500bf236ce7..d7b8b8250564831ab3e84043292e48f058698a93 100644
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
@@ -1256,9 +1256,9 @@ public class LevelChunk extends ChunkAccess {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Debug Marker API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 3ef465b4ff9f3a602f8c289e65e5a9548846cbcd..ce8179d33d5a6a187e16496731798e42488cb87a 100644
index 00fe4b406eaec3e1bc02cb9bb35530d9c98743b0..c1967a538812b871aa99ba34d83599d5fcf1601f 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1458,6 +1458,42 @@ public final class CraftServer implements Server {
@@ -52,10 +52,10 @@ index 3ef465b4ff9f3a602f8c289e65e5a9548846cbcd..ce8179d33d5a6a187e16496731798e42
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 2456d3710592dfc62b60dd609602306a20bd825a..b0a9e40e6054a23a9ebe8019ff40850942d6938e 100644
index c62fb633f3d27edd6cbfe4221c164ee68f1df5ae..1a6aa05490dffb3b61e9831e3f99a7bdd2cfa795 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -2282,6 +2282,42 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -2287,6 +2287,42 @@ public class CraftWorld extends CraftRegionAccessor implements World {
public float getLocalDifficultyAt(Location location) {
return getHandle().getCurrentDifficultyAt(io.papermc.paper.util.MCUtil.toBlockPosition(location)).getEffectiveDifficulty();
}
@@ -99,10 +99,10 @@ index 2456d3710592dfc62b60dd609602306a20bd825a..b0a9e40e6054a23a9ebe8019ff408509
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 48a330e253d5db20dbc834cf0e802a6c114e97a0..f71f9b1c6810bd021ae194386cec3792c8e57c62 100644
index c0bb0ae121690412bae087367f4023378e6d3d19..bfab934938bc0650fd6cbf0b551edecbbaf37404 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -3210,5 +3210,48 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -3211,5 +3211,48 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void setSpawnInvulnerableTicks(int spawnInvulnerableTime) {
getHandle().spawnInvulnerableTime = spawnInvulnerableTime;
}

View File

@@ -30,10 +30,10 @@ index 76a62d872bc2ad12efd9522d8dd445b8d2342525..075a891413d072998e6d468e76d839e1
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index f71f9b1c6810bd021ae194386cec3792c8e57c62..d511adbeaf9ae22256e8e316237f9d487e04c2bf 100644
index bfab934938bc0650fd6cbf0b551edecbbaf37404..bcd26a48a9fe3443eed943a3b131c1d5eb3da345 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -3253,5 +3253,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -3254,5 +3254,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
if (this.getHandle().connection == null) return;
this.getHandle().connection.send(new net.minecraft.network.protocol.game.ClientboundCustomPayloadPacket(ClientboundCustomPayloadPacket.DEBUG_GAME_TEST_CLEAR, new FriendlyByteBuf(io.netty.buffer.Unpooled.buffer())));
}

View File

@@ -48,10 +48,10 @@ index af3ab7bebc69f0485ec2eb5550ad52171cca6de3..77b84d49ab7c9d64dc44df5310dca789
while (iterator.hasNext()) {
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
index bf9635072d4ffc298a5221309bdf329c67e0451a..51267c07f4ec562c5a2f0ec932539d77581fd66f 100644
index ea27cb95743970b519b9ab3a3163ba2a7d098921..9dfc12ccf53f5b4d4432bd89449b09504f3a2285 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -3451,6 +3451,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -3452,6 +3452,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
}
}

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
index b2853cdac60ff1497423078e907530c446a499fb..a04a75bd1fb673fe6182694d730daae41f184763 100644
index 4dcb02a7326361ecef6fe3cc5cd426fc949f9fd8..4a2d517d1610d5a9a6c18a18886130005e6fa5bb 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -404,6 +404,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -405,6 +405,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
private UUID originWorld;
public boolean freezeLocked = false; // Paper - Freeze Tick Lock API
public boolean collidingWithWorldBorder; // Paper
@@ -16,7 +16,7 @@ index b2853cdac60ff1497423078e907530c446a499fb..a04a75bd1fb673fe6182694d730daae4
public void setOrigin(@javax.annotation.Nonnull Location location) {
this.origin = location.toVector();
@@ -1741,7 +1742,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -1774,7 +1775,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
public boolean fireImmune() {
@@ -25,7 +25,7 @@ index b2853cdac60ff1497423078e907530c446a499fb..a04a75bd1fb673fe6182694d730daae4
}
public boolean causeFallDamage(float fallDistance, float damageMultiplier, DamageSource damageSource) {
@@ -2411,6 +2412,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -2444,6 +2445,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
nbt.putBoolean("Paper.FreezeLock", true);
}
// Paper end
@@ -37,7 +37,7 @@ index b2853cdac60ff1497423078e907530c446a499fb..a04a75bd1fb673fe6182694d730daae4
return nbt;
} catch (Throwable throwable) {
CrashReport crashreport = CrashReport.forThrowable(throwable, "Saving entity NBT");
@@ -2579,6 +2585,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -2612,6 +2618,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
freezeLocked = nbt.getBoolean("Paper.FreezeLock");
}
// Paper end

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
index a04a75bd1fb673fe6182694d730daae41f184763..4468df604ea48789d840e18a04d37d5b9ebe0711 100644
index 4a2d517d1610d5a9a6c18a18886130005e6fa5bb..6417fd26d7675c967986055067ce8876a1263e9f 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -858,6 +858,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -891,6 +891,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
&& this.level.paperConfig().environment.netherCeilingVoidDamageHeight.test(v -> this.getY() >= v)
&& (!(this instanceof Player player) || !player.getAbilities().invulnerable))) {
// Paper end

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add mending multiplier
diff --git a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java
index 7ccf214d376771814b27aa8e1f34d5a73f1b61f5..3e42b12804f37c4b0ab083273a105939fe8f5734 100644
index b2233635b6acc35ea3668c36c56e57f15420ac62..724bf857bf1b89cb0947b8a82e0ce09a0bec0335 100644
--- a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java
+++ b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java
@@ -357,13 +357,15 @@ public class ExperienceOrb extends Entity {
@@ -359,13 +359,15 @@ public class ExperienceOrb extends Entity {
}
}
@@ -27,7 +27,7 @@ index 7ccf214d376771814b27aa8e1f34d5a73f1b61f5..3e42b12804f37c4b0ab083273a105939
public int getValue() {
return this.value;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 882b362b756c2203a2d3ffc4edb6cdb68e6f3879..d37fb48ec7c4cef4a30da30471c9d8080babe67b 100644
index 0e83609e0a0cd9765f62464d7e0303d4e2417b82..f9c46c7a840dd73f4736dff4b34f4bd1c6e4c7ac 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -121,6 +121,7 @@ public class PurpurWorldConfig {