Updated Upstream (Paper)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@e4a5a894 Update to Minecraft 26.1.1
PaperMC/Paper@92a4d8db Update "Only write chunk data to disk if it serializes without throwing"
PaperMC/Paper@02d9cbce Update "Entity load/save limit per chunk"
PaperMC/Paper@cb696286 Update "Attempt to recalculate regionfile header if it is corrupt"
PaperMC/Paper@4662bab9 Update "Incremental chunk and player saving"
PaperMC/Paper@4dddc82f Implement new version schema: `<mcver>.build.<paper_build_no>-<paper_status>` / `<mcver>.local-SNAPSHOT`
PaperMC/Paper@fc0a9980 Set channel to ALPHA
PaperMC/Paper@a4fa0357 update gradle wrapper
PaperMC/Paper@a15ceb7a Update fill-gradle to 1.0.11
PaperMC/Paper@52f7e24e Publish to releases repository
PaperMC/Paper@bb7ff8f0 Update "Optimise general POI access"
PaperMC/Paper@ac42a07e Update "Flush regionfiles on save configuration option"
PaperMC/Paper@14357cc5 Avoid using the regionfile directory name to determine if it is chunk data
PaperMC/Paper@a2f4d349 Update "Optimise collision checking in player move packet handling"
PaperMC/Paper@50303a0e Update "Add explicit flush support to Log4j AsyncAppender"
PaperMC/Paper@7bc4f895 Shift unapplied patches
PaperMC/Paper@62ba2c4f Update "Improve keepalive ping system"
PaperMC/Paper@f6d27019 Update "Optimise EntityScheduler ticking"
PaperMC/Paper@4d8d06c7 Fix WorldBorder#setCenter ignoring new values on 26.1.1 (#13741)
PaperMC/Paper@f9da8035 update unpick definitions
PaperMC/Paper@fc71a133 [ci/skip] fixup previous commit
PaperMC/Paper@4c91cd34 Lazy set Entity.projectileSource in AbstractProjectile#getShooter
PaperMC/Paper@3d1da60c Cache the climbing check in activation range (#12764)
PaperMC/Paper@575630f3 feat: Optimize ServerWaypointManager when locator bar is disabled
PaperMC/Paper@742daf02 [ci/skip] fixup previous commit
PaperMC/Paper@d29063da Rebuild patches
PaperMC/Paper@ce581c3c Bump deps to match Vanilla versions (#13744)
PaperMC/Paper@f3e9a934 Fix attack check
PaperMC/Paper@b4743b58 Fix gamerule loading in Management Protocol (#13753)
PaperMC/Paper@c53ac8a1 Add PlayerToggleEntityAgeLockEvent (#13742)
PaperMC/Paper@59081719 fixup previous event
PaperMC/Paper@7b49b586 Update "Optional per player mob spawns"
PaperMC/Paper@1fae14c2 Update "Improve cancelling PreCreatureSpawnEvent with per player mob spawns"
PaperMC/Paper@c40cb75b Update "Optimize Hoppers"
PaperMC/Paper@edad1e4c Update "Anti-Xray"
PaperMC/Paper@106a934d [ci/skip] Drop stale TODO
PaperMC/Paper@77c0866f handle legacy uid in vanilla migration and always write metadata during migration
This commit is contained in:
granny
2026-04-07 17:41:32 -07:00
parent 3e5ff62f29
commit d53e7784d6
38 changed files with 254 additions and 301 deletions

View File

@@ -1,9 +1,9 @@
group = org.purpurmc.purpur group = org.purpurmc.purpur
version=26.1-R0.1-SNAPSHOT
mcVersion = 26.1 mcVersion = 26.1.1
apiVersion = 26.1 apiVersion = 26.1.1
paperCommit = e0497a6e3015e1e150c6d082ead4adea7fd03c31 channel=EXPERIMENTAL
paperCommit = 77c0866f5f60a74f475e94612a391b22df5cefe3
org.gradle.configuration-cache = true org.gradle.configuration-cache = true
org.gradle.caching = true org.gradle.caching = true

View File

@@ -18,19 +18,19 @@ index 64a82b414afd093c010878c150592c681665b735..1db70e2397137158c3df9603ea90743e
public boolean isClientAuthoritative() { public boolean isClientAuthoritative() {
return false; return false;
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
index ebe24732d0d5e1d8e3fd7fa610202e5929ca82fd..62236ea8eaf52b5cc47e60d0064a3539bb6b8376 100644 index 086cff320cc5ae85c12ab51746233c3aee2264aa..b8572c04a4f979defe8677d64a899b0d2eb252f2 100644
--- a/net/minecraft/server/MinecraftServer.java --- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java
@@ -1841,6 +1841,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1861,6 +1861,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
for (ServerLevel level : this.getAllLevels()) { for (ServerLevel level : this.getAllLevels()) {
level.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - BlockPhysicsEvent level.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - BlockPhysicsEvent
level.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent level.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent
+ level.hasRidableMoveEvent = org.purpurmc.purpur.event.entity.RidableMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Purpur - Ridables + level.hasRidableMoveEvent = org.purpurmc.purpur.event.entity.RidableMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Purpur - Ridables
level.updateLagCompensationTick(); // Paper - lag compensation level.updateLagCompensationTick(); // Paper - lag compensation
net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = level.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers
profiler.push(() -> level + " " + level.dimension().identifier()); profiler.push(() -> level + " " + level.dimension().identifier());
profiler.push("tick");
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index f3bd861bf442de944b403bb4f46ec916f21f0768..27112abea11a784d97c92633e8dc2b3d1040fce0 100644 index 7a3ebe0ec430c2626b099231ef9fe191fce2932d..76f2d334dc5b016a7c1f49db7bf58220a3698cc5 100644
--- a/net/minecraft/server/level/ServerLevel.java --- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java +++ b/net/minecraft/server/level/ServerLevel.java
@@ -235,6 +235,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ServerEntityGet @@ -235,6 +235,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ServerEntityGet
@@ -42,10 +42,10 @@ index f3bd861bf442de944b403bb4f46ec916f21f0768..27112abea11a784d97c92633e8dc2b3d
@Override @Override
public @Nullable LevelChunk getChunkIfLoaded(int x, int z) { public @Nullable LevelChunk getChunkIfLoaded(int x, int z) {
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
index 722d4f8bad8aceaf07cf5070bab0e2813f8e719d..3a3d8f96406dfcc91b62345c427725be2ffe7912 100644 index 3e8a8509c0574e732c8054cc2b86f74dd47d29d4..1bd1bb805060604fbe4dca6d71a863bb96d12da9 100644
--- a/net/minecraft/server/level/ServerPlayer.java --- a/net/minecraft/server/level/ServerPlayer.java
+++ b/net/minecraft/server/level/ServerPlayer.java +++ b/net/minecraft/server/level/ServerPlayer.java
@@ -789,6 +789,15 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc @@ -795,6 +795,15 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
this.trackEnteredOrExitedLavaOnVehicle(); this.trackEnteredOrExitedLavaOnVehicle();
this.updatePlayerAttributes(); this.updatePlayerAttributes();
this.advancements.flushDirty(this, true); this.advancements.flushDirty(this, true);
@@ -62,10 +62,10 @@ index 722d4f8bad8aceaf07cf5070bab0e2813f8e719d..3a3d8f96406dfcc91b62345c427725be
private void updatePlayerAttributes() { private void updatePlayerAttributes() {
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index a81b553a209834883a99ae971fed18d3a6d2ff32..2162dc6a29d89193030d263c9f8104206e8720cc 100644 index 2e047b624ad238c6fa57d076415fc875d21f0048..cad78698428d40166fd5a4d177de2410e033b9b9 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2930,6 +2930,8 @@ public class ServerGamePacketListenerImpl @@ -3008,6 +3008,8 @@ public class ServerGamePacketListenerImpl
ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event); ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event);
final boolean resendData = event.isCancelled() || !ServerGamePacketListenerImpl.this.player.getItemInHand(hand).is(itemType); final boolean resendData = event.isCancelled() || !ServerGamePacketListenerImpl.this.player.getItemInHand(hand).is(itemType);
@@ -75,7 +75,7 @@ index a81b553a209834883a99ae971fed18d3a6d2ff32..2162dc6a29d89193030d263c9f810420
if (itemType == Items.WATER_BUCKET && target instanceof net.minecraft.world.entity.animal.Bucketable && target instanceof LivingEntity && resendData) { if (itemType == Items.WATER_BUCKET && target instanceof net.minecraft.world.entity.animal.Bucketable && target instanceof LivingEntity && resendData) {
target.resendPossiblyDesyncedEntityData(ServerGamePacketListenerImpl.this.player); // Paper - The entire mob gets deleted, so resend it target.resendPossiblyDesyncedEntityData(ServerGamePacketListenerImpl.this.player); // Paper - The entire mob gets deleted, so resend it
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index 785c20acd7feca4d0b52f2cf5dc83393d883a5ab..a812442edc8ef3f53b8e9a071a7e3e864314ae6d 100644 index 504361614be832c9f042a7504e1264f8625c4d87..42a87867c64ac48ec39f82951bee9b0560a1a7ef 100644
--- a/net/minecraft/world/entity/Entity.java --- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java
@@ -3396,6 +3396,13 @@ public abstract class Entity @@ -3396,6 +3396,13 @@ public abstract class Entity
@@ -107,7 +107,7 @@ index 785c20acd7feca4d0b52f2cf5dc83393d883a5ab..a812442edc8ef3f53b8e9a071a7e3e86
if (this.passengers.size() == 1 && this.passengers.get(0) == passenger) { if (this.passengers.size() == 1 && this.passengers.get(0) == passenger) {
this.passengers = ImmutableList.of(); this.passengers = ImmutableList.of();
} else { } else {
@@ -5413,4 +5428,44 @@ public abstract class Entity @@ -5418,4 +5433,44 @@ public abstract class Entity
return ((ServerLevel) this.level()).isPositionEntityTicking(this.blockPosition()); return ((ServerLevel) this.level()).isPositionEntityTicking(this.blockPosition());
} }
// Paper end - Expose entity id counter // Paper end - Expose entity id counter
@@ -153,7 +153,7 @@ index 785c20acd7feca4d0b52f2cf5dc83393d883a5ab..a812442edc8ef3f53b8e9a071a7e3e86
+ // Purpur end - Ridables + // Purpur end - Ridables
} }
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index 98cc7f98a48f2f3bae9b3365ddec0e4d9aeed610..12ccae16354c2d90192a979a87ec92258449aad0 100644 index 2b5991eff4b9a19572be433c0b0f9299b8156f74..10045b734c845cb225ffadc5f63e83fda0a1615d 100644
--- a/net/minecraft/world/entity/LivingEntity.java --- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java +++ b/net/minecraft/world/entity/LivingEntity.java
@@ -243,9 +243,9 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin @@ -243,9 +243,9 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -384,7 +384,7 @@ index 3b122f0bdfd8490297d173c05c1412c9fcfc886e..6b78ddb4ec40d45634288796a98e3471
.put(EntityType.PIGLIN, Piglin.createAttributes().build()) .put(EntityType.PIGLIN, Piglin.createAttributes().build())
.put(EntityType.PIGLIN_BRUTE, PiglinBrute.createAttributes().build()) .put(EntityType.PIGLIN_BRUTE, PiglinBrute.createAttributes().build())
diff --git a/net/minecraft/world/entity/ai/control/MoveControl.java b/net/minecraft/world/entity/ai/control/MoveControl.java diff --git a/net/minecraft/world/entity/ai/control/MoveControl.java b/net/minecraft/world/entity/ai/control/MoveControl.java
index 2e32e89ec476ec1a2250f25e7ddcb8b3454a06ef..16290aebce2f45be1c56a57b0d0309ba42bf1a60 100644 index fea2823bf3a502e7d0e8c4f4e1e132d92d9e8375..df84c46615ef959e874b9aca7561ffd3c0bf56f8 100644
--- a/net/minecraft/world/entity/ai/control/MoveControl.java --- a/net/minecraft/world/entity/ai/control/MoveControl.java
+++ b/net/minecraft/world/entity/ai/control/MoveControl.java +++ b/net/minecraft/world/entity/ai/control/MoveControl.java
@@ -29,6 +29,20 @@ public class MoveControl implements Control { @@ -29,6 +29,20 @@ public class MoveControl implements Control {
@@ -681,7 +681,7 @@ index bcbe1d44871124e0b9b453cb7b7c453fa0144bc6..8704620cd9348d3c417cbc9591e03c70
super.tick(); super.tick();
} }
diff --git a/net/minecraft/world/entity/animal/bee/Bee.java b/net/minecraft/world/entity/animal/bee/Bee.java diff --git a/net/minecraft/world/entity/animal/bee/Bee.java b/net/minecraft/world/entity/animal/bee/Bee.java
index 2e53c280911f6c155f92512c77d36601fed220f1..711374cbc982b29800830c856975963a47b63f21 100644 index 096afc159783c0b527b973a20a6eab377a0e0377..2b398421d196902c5c812126528f32fc9863b497 100644
--- a/net/minecraft/world/entity/animal/bee/Bee.java --- a/net/minecraft/world/entity/animal/bee/Bee.java
+++ b/net/minecraft/world/entity/animal/bee/Bee.java +++ b/net/minecraft/world/entity/animal/bee/Bee.java
@@ -154,6 +154,7 @@ public class Bee extends Animal implements FlyingAnimal, NeutralMob { @@ -154,6 +154,7 @@ public class Bee extends Animal implements FlyingAnimal, NeutralMob {
@@ -795,7 +795,7 @@ index 2e53c280911f6c155f92512c77d36601fed220f1..711374cbc982b29800830c856975963a
} }
diff --git a/net/minecraft/world/entity/animal/camel/Camel.java b/net/minecraft/world/entity/animal/camel/Camel.java diff --git a/net/minecraft/world/entity/animal/camel/Camel.java b/net/minecraft/world/entity/animal/camel/Camel.java
index 3d3d18a007d23a093f5ae2d8d0c43c022e6efe9f..97279af0178ed202810b37d5b40fe75b223238b8 100644 index 1aa18543428578ff773a32c24f33b843b10e8e27..e20cae40eb84bf01b38cf6b5249410cb7e2525a1 100644
--- a/net/minecraft/world/entity/animal/camel/Camel.java --- a/net/minecraft/world/entity/animal/camel/Camel.java
+++ b/net/minecraft/world/entity/animal/camel/Camel.java +++ b/net/minecraft/world/entity/animal/camel/Camel.java
@@ -96,6 +96,13 @@ public class Camel extends AbstractHorse { @@ -96,6 +96,13 @@ public class Camel extends AbstractHorse {
@@ -938,7 +938,7 @@ index a22c787019d9de651699615947f613b24f0476c8..2131ba3eb10e869ff6dad67fb6b8097a
// Paper end - custom shear drops // Paper end - custom shear drops
} }
diff --git a/net/minecraft/world/entity/animal/dolphin/Dolphin.java b/net/minecraft/world/entity/animal/dolphin/Dolphin.java diff --git a/net/minecraft/world/entity/animal/dolphin/Dolphin.java b/net/minecraft/world/entity/animal/dolphin/Dolphin.java
index a7f918956bf708f24ffd5599abb9d6e1e463800e..4557453a90f8ee822853cdd236f3c5cd670ba65f 100644 index 321c9164e87b992a61f51df318cff7730b2bdac1..924fd56994f63deb4a8fe03f870d14fc943390e4 100644
--- a/net/minecraft/world/entity/animal/dolphin/Dolphin.java --- a/net/minecraft/world/entity/animal/dolphin/Dolphin.java
+++ b/net/minecraft/world/entity/animal/dolphin/Dolphin.java +++ b/net/minecraft/world/entity/animal/dolphin/Dolphin.java
@@ -78,14 +78,82 @@ public class Dolphin extends AgeableWaterCreature { @@ -78,14 +78,82 @@ public class Dolphin extends AgeableWaterCreature {
@@ -1063,7 +1063,7 @@ index a7f918956bf708f24ffd5599abb9d6e1e463800e..4557453a90f8ee822853cdd236f3c5cd
this.setAirSupply(this.getMaxAirSupply()); this.setAirSupply(this.getMaxAirSupply());
} else { } else {
diff --git a/net/minecraft/world/entity/animal/equine/AbstractHorse.java b/net/minecraft/world/entity/animal/equine/AbstractHorse.java diff --git a/net/minecraft/world/entity/animal/equine/AbstractHorse.java b/net/minecraft/world/entity/animal/equine/AbstractHorse.java
index f6a04a6e56ad1de9121e9e8aab70277c323c70a7..91a3db41e0ccf2a416fffcd0855f1048e88849b6 100644 index b1d309a66abb9dc8ac69e4195e4987de576d6c98..1698e519a50670990e43f33c35d5a3f648c2cf61 100644
--- a/net/minecraft/world/entity/animal/equine/AbstractHorse.java --- a/net/minecraft/world/entity/animal/equine/AbstractHorse.java
+++ b/net/minecraft/world/entity/animal/equine/AbstractHorse.java +++ b/net/minecraft/world/entity/animal/equine/AbstractHorse.java
@@ -129,11 +129,21 @@ public abstract class AbstractHorse extends Animal implements PlayerRideableJump @@ -129,11 +129,21 @@ public abstract class AbstractHorse extends Animal implements PlayerRideableJump
@@ -1312,7 +1312,7 @@ index a279cdff95c37434f44bdda7558286045e606f33..13857de6c4be09b7d0798d2a0fd420c7
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 25.0); return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 25.0);
} }
diff --git a/net/minecraft/world/entity/animal/feline/Cat.java b/net/minecraft/world/entity/animal/feline/Cat.java diff --git a/net/minecraft/world/entity/animal/feline/Cat.java b/net/minecraft/world/entity/animal/feline/Cat.java
index 2e87f67248e1741b7837c5e292f74db11b893921..4ef7feff4c157aceb1e296b70d492cc098518646 100644 index 5687036a49806b7177dc928fd83fb88cb8f95dc5..a3075535ed8726670c67d6aba0a32a00c53a70dc 100644
--- a/net/minecraft/world/entity/animal/feline/Cat.java --- a/net/minecraft/world/entity/animal/feline/Cat.java
+++ b/net/minecraft/world/entity/animal/feline/Cat.java +++ b/net/minecraft/world/entity/animal/feline/Cat.java
@@ -95,10 +95,36 @@ public class Cat extends TamableAnimal { @@ -95,10 +95,36 @@ public class Cat extends TamableAnimal {
@@ -1490,7 +1490,7 @@ index 1909fefa4af14a9aca43ccb8b93317b12ee4a092..becb5c214adacd36372bbe2b21ab15e3
public ItemStack getBucketItemStack() { public ItemStack getBucketItemStack() {
return new ItemStack(Items.COD_BUCKET); return new ItemStack(Items.COD_BUCKET);
diff --git a/net/minecraft/world/entity/animal/fish/Pufferfish.java b/net/minecraft/world/entity/animal/fish/Pufferfish.java diff --git a/net/minecraft/world/entity/animal/fish/Pufferfish.java b/net/minecraft/world/entity/animal/fish/Pufferfish.java
index dd9e04e1f67469e7d5c839f8e174db572e6bb353..c31b7369194e9275e15415baa70cbb1b0de995f8 100644 index 9981452e2dda0675defd279c4460031dae5fd25f..8d3e8575120145f572b2c1834d243bac8eb28586 100644
--- a/net/minecraft/world/entity/animal/fish/Pufferfish.java --- a/net/minecraft/world/entity/animal/fish/Pufferfish.java
+++ b/net/minecraft/world/entity/animal/fish/Pufferfish.java +++ b/net/minecraft/world/entity/animal/fish/Pufferfish.java
@@ -47,6 +47,18 @@ public class Pufferfish extends AbstractFish { @@ -47,6 +47,18 @@ public class Pufferfish extends AbstractFish {
@@ -1559,7 +1559,7 @@ index 28ca7d979776e1efdbeaf2758f0785053d2acb08..3d00bcbb4ac39c7d8b4bacf15d7cfe4a
return "entity.minecraft.tropical_fish.predefined." + index; return "entity.minecraft.tropical_fish.predefined." + index;
} }
diff --git a/net/minecraft/world/entity/animal/fox/Fox.java b/net/minecraft/world/entity/animal/fox/Fox.java diff --git a/net/minecraft/world/entity/animal/fox/Fox.java b/net/minecraft/world/entity/animal/fox/Fox.java
index 5966599df88fc7e1538f28240c127b1444cd748c..09077acab1f3905b7dfc84d36bfac84950baf477 100644 index af729d2a4d00653b46a8b55f8115b3de6aa92b75..ab45081d00a012949f43929f06e9bfcdf5b3c89a 100644
--- a/net/minecraft/world/entity/animal/fox/Fox.java --- a/net/minecraft/world/entity/animal/fox/Fox.java
+++ b/net/minecraft/world/entity/animal/fox/Fox.java +++ b/net/minecraft/world/entity/animal/fox/Fox.java
@@ -155,6 +155,44 @@ public class Fox extends Animal { @@ -155,6 +155,44 @@ public class Fox extends Animal {
@@ -1750,7 +1750,7 @@ index 28b4e183efd851e6d2bb5bb16904817d4c40273b..977ee6a71e0c52f115a221b09248596d
Objects.requireNonNull(Frog.this); Objects.requireNonNull(Frog.this);
super(mob); super(mob);
diff --git a/net/minecraft/world/entity/animal/frog/Tadpole.java b/net/minecraft/world/entity/animal/frog/Tadpole.java diff --git a/net/minecraft/world/entity/animal/frog/Tadpole.java b/net/minecraft/world/entity/animal/frog/Tadpole.java
index 065be3566f694ff9eb5d3317a995f91249d61df3..e221dd9a18ac8b6c78f9c0d72d2ebe2107aa3081 100644 index 3d4bfeae2fddb9ace26e7dea8870704d8309862b..ed8fa3aa3d0bb3c83f46a902dfe603942c4a8f96 100644
--- a/net/minecraft/world/entity/animal/frog/Tadpole.java --- a/net/minecraft/world/entity/animal/frog/Tadpole.java
+++ b/net/minecraft/world/entity/animal/frog/Tadpole.java +++ b/net/minecraft/world/entity/animal/frog/Tadpole.java
@@ -54,13 +54,50 @@ public class Tadpole extends AbstractFish { @@ -54,13 +54,50 @@ public class Tadpole extends AbstractFish {
@@ -1814,7 +1814,7 @@ index 065be3566f694ff9eb5d3317a995f91249d61df3..e221dd9a18ac8b6c78f9c0d72d2ebe21
profiler.pop(); profiler.pop();
profiler.push("tadpoleActivityUpdate"); profiler.push("tadpoleActivityUpdate");
diff --git a/net/minecraft/world/entity/animal/goat/Goat.java b/net/minecraft/world/entity/animal/goat/Goat.java diff --git a/net/minecraft/world/entity/animal/goat/Goat.java b/net/minecraft/world/entity/animal/goat/Goat.java
index f7b683d5ca7b08421b642dae698f9e9fdbe57051..82c27c0e6e9f72eceb5a498af4aad6a7bd766513 100644 index 6c637f9fb552bc287cdddf976b472bae3915b7b4..d4353bb9ba2168b81726bfaa406175e7f2af601a 100644
--- a/net/minecraft/world/entity/animal/goat/Goat.java --- a/net/minecraft/world/entity/animal/goat/Goat.java
+++ b/net/minecraft/world/entity/animal/goat/Goat.java +++ b/net/minecraft/world/entity/animal/goat/Goat.java
@@ -100,6 +100,23 @@ public class Goat extends Animal { @@ -100,6 +100,23 @@ public class Goat extends Animal {
@@ -2027,7 +2027,7 @@ index 0993ec37f58cbc6b201ebc9aeb39aee438bd1cf9..6875e40687bbde6aba25da7d3145eccd
} }
diff --git a/net/minecraft/world/entity/animal/happyghast/HappyGhast.java b/net/minecraft/world/entity/animal/happyghast/HappyGhast.java diff --git a/net/minecraft/world/entity/animal/happyghast/HappyGhast.java b/net/minecraft/world/entity/animal/happyghast/HappyGhast.java
index 0496505710169127733da080ad2663e99f1bf60a..c179923999116c9319bf4cd3d4c66ea2e478805f 100644 index 413df81578393382a2e6a3aac370d5545d32bd11..f1da6beccfd658d8209dbc3e52f570a476f1c95b 100644
--- a/net/minecraft/world/entity/animal/happyghast/HappyGhast.java --- a/net/minecraft/world/entity/animal/happyghast/HappyGhast.java
+++ b/net/minecraft/world/entity/animal/happyghast/HappyGhast.java +++ b/net/minecraft/world/entity/animal/happyghast/HappyGhast.java
@@ -134,6 +134,13 @@ public class HappyGhast extends Animal { @@ -134,6 +134,13 @@ public class HappyGhast extends Animal {
@@ -2045,7 +2045,7 @@ index 0496505710169127733da080ad2663e99f1bf60a..c179923999116c9319bf4cd3d4c66ea2
protected void ageBoundaryReached() { protected void ageBoundaryReached() {
if (this.isBaby()) { if (this.isBaby()) {
diff --git a/net/minecraft/world/entity/animal/panda/Panda.java b/net/minecraft/world/entity/animal/panda/Panda.java diff --git a/net/minecraft/world/entity/animal/panda/Panda.java b/net/minecraft/world/entity/animal/panda/Panda.java
index ade5f5caeddba935ecd7e50de24e1d25d8405ec6..15db093ca86de470b812206d2bae147968e0d03d 100644 index cce6231b717027a70e85c641ccdab445225a990e..d18577440823cde6f44eb653c5f23afb09ea89ac 100644
--- a/net/minecraft/world/entity/animal/panda/Panda.java --- a/net/minecraft/world/entity/animal/panda/Panda.java
+++ b/net/minecraft/world/entity/animal/panda/Panda.java +++ b/net/minecraft/world/entity/animal/panda/Panda.java
@@ -111,6 +111,32 @@ public class Panda extends Animal { @@ -111,6 +111,32 @@ public class Panda extends Animal {
@@ -2462,7 +2462,7 @@ index ab7e618ab8ef872d794f1ff82de881a5bca04bc5..fa6fd57be6e4a36e701eb61634440a79
@Override @Override
diff --git a/net/minecraft/world/entity/animal/sheep/Sheep.java b/net/minecraft/world/entity/animal/sheep/Sheep.java diff --git a/net/minecraft/world/entity/animal/sheep/Sheep.java b/net/minecraft/world/entity/animal/sheep/Sheep.java
index 5e719f09de951164076026f5fc9e06ab8d8261d5..f9483c914d3923c38d405093df45f84a7e20ef7e 100644 index 87fd91714510638386b13d285db889c075669f3e..08cd6e675107bf622b634c1f0e2cd53e33ef3569 100644
--- a/net/minecraft/world/entity/animal/sheep/Sheep.java --- a/net/minecraft/world/entity/animal/sheep/Sheep.java
+++ b/net/minecraft/world/entity/animal/sheep/Sheep.java +++ b/net/minecraft/world/entity/animal/sheep/Sheep.java
@@ -63,10 +63,28 @@ public class Sheep extends Animal implements Shearable { @@ -63,10 +63,28 @@ public class Sheep extends Animal implements Shearable {
@@ -2555,7 +2555,7 @@ index 7db02196ed1dd9057c9418d3d96164bb5082380b..51a0771819abfdde5043eaeca62b0ce4
protected ParticleOptions getInkParticle() { protected ParticleOptions getInkParticle() {
return ParticleTypes.GLOW_SQUID_INK; return ParticleTypes.GLOW_SQUID_INK;
diff --git a/net/minecraft/world/entity/animal/squid/Squid.java b/net/minecraft/world/entity/animal/squid/Squid.java diff --git a/net/minecraft/world/entity/animal/squid/Squid.java b/net/minecraft/world/entity/animal/squid/Squid.java
index 62ca3c9ecfd7a9863ca21b50061c03ba99a440b4..94aa3f10cc0ff44ec95ba56e4dbf1894cd538f71 100644 index c93dd55163a6121658a8944864d9e7036f0bccab..0854e0494f704e97e80581b80bf34df72786d1d9 100644
--- a/net/minecraft/world/entity/animal/squid/Squid.java --- a/net/minecraft/world/entity/animal/squid/Squid.java
+++ b/net/minecraft/world/entity/animal/squid/Squid.java +++ b/net/minecraft/world/entity/animal/squid/Squid.java
@@ -74,9 +74,32 @@ public class Squid extends AgeableWaterCreature { @@ -74,9 +74,32 @@ public class Squid extends AgeableWaterCreature {
@@ -2700,7 +2700,7 @@ index d03a219af35e3c577386b87d553cc53c1e922553..53fc1012d46e20b623246cecae87b3fe
this.turtle.setDeltaMovement(this.turtle.getDeltaMovement().add(0.0, this.turtle.getSpeed() * yd * 0.1, 0.0)); this.turtle.setDeltaMovement(this.turtle.getDeltaMovement().add(0.0, this.turtle.getSpeed() * yd * 0.1, 0.0));
} }
diff --git a/net/minecraft/world/entity/animal/wolf/Wolf.java b/net/minecraft/world/entity/animal/wolf/Wolf.java diff --git a/net/minecraft/world/entity/animal/wolf/Wolf.java b/net/minecraft/world/entity/animal/wolf/Wolf.java
index c198c1787d94c8b82ba85bb62f5916f0c46639bd..59bb551c689a04486564d89b4912935acec644e2 100644 index ec58779b3e899394f762b9780fd28790bbcbe537..a9349f047e6253b609b59a7590c0082a257bb9a5 100644
--- a/net/minecraft/world/entity/animal/wolf/Wolf.java --- a/net/minecraft/world/entity/animal/wolf/Wolf.java
+++ b/net/minecraft/world/entity/animal/wolf/Wolf.java +++ b/net/minecraft/world/entity/animal/wolf/Wolf.java
@@ -183,9 +183,32 @@ public class Wolf extends TamableAnimal implements NeutralMob { @@ -183,9 +183,32 @@ public class Wolf extends TamableAnimal implements NeutralMob {
@@ -2745,12 +2745,12 @@ index c198c1787d94c8b82ba85bb62f5916f0c46639bd..59bb551c689a04486564d89b4912935a
this.targetSelector.addGoal(2, new OwnerHurtTargetGoal(this)); this.targetSelector.addGoal(2, new OwnerHurtTargetGoal(this));
this.targetSelector.addGoal(3, new HurtByTargetGoal(this).setAlertOthers()); this.targetSelector.addGoal(3, new HurtByTargetGoal(this).setAlertOthers());
diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index 4f17918b4248dc56fa3ce51e5f491e81198807bc..dcf88c6171655daec1f031e41d9eb8237744bfb3 100644 index 6510f6e372de1a00deb985bc5539458f741b5a28..18b909626ca4b8cdad094671f7429acfa2c4888d 100644
--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java --- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -90,6 +90,7 @@ public class EnderDragon extends Mob implements Enemy { @@ -90,6 +90,7 @@ public class EnderDragon extends Mob implements Enemy {
private final net.minecraft.world.level.Explosion explosionSource; // Paper - reusable source for CraftTNTPrimed.getSource() private final net.minecraft.world.level.Explosion explosionSource; // Paper - reusable source for CraftTNTPrimed.getSource()
@Nullable private BlockPos podium; private @Nullable BlockPos podium;
// Paper end // Paper end
+ private boolean hadRider; // Purpur - Ridables + private boolean hadRider; // Purpur - Ridables
@@ -2879,7 +2879,7 @@ index 4f17918b4248dc56fa3ce51e5f491e81198807bc..dcf88c6171655daec1f031e41d9eb823
DragonPhaseInstance currentPhase = this.phaseManager.getCurrentPhase(); DragonPhaseInstance currentPhase = this.phaseManager.getCurrentPhase();
currentPhase.doServerTick(level); currentPhase.doServerTick(level);
if (this.phaseManager.getCurrentPhase() != currentPhase) { if (this.phaseManager.getCurrentPhase() != currentPhase) {
@@ -296,7 +371,7 @@ public class EnderDragon extends Mob implements Enemy { @@ -290,7 +365,7 @@ public class EnderDragon extends Mob implements Enemy {
this.tickPart(this.body, ss1 * 0.5F, 0.0, -cc1 * 0.5F); this.tickPart(this.body, ss1 * 0.5F, 0.0, -cc1 * 0.5F);
this.tickPart(this.wing1, cc1 * 4.5F, 2.0, ss1 * 4.5F); this.tickPart(this.wing1, cc1 * 4.5F, 2.0, ss1 * 4.5F);
this.tickPart(this.wing2, cc1 * -4.5F, 2.0, ss1 * -4.5F); this.tickPart(this.wing2, cc1 * -4.5F, 2.0, ss1 * -4.5F);
@@ -2888,7 +2888,7 @@ index 4f17918b4248dc56fa3ce51e5f491e81198807bc..dcf88c6171655daec1f031e41d9eb823
this.knockBack( this.knockBack(
serverLevelx, serverLevelx,
serverLevelx.getEntities( serverLevelx.getEntities(
@@ -344,9 +419,9 @@ public class EnderDragon extends Mob implements Enemy { @@ -338,9 +413,9 @@ public class EnderDragon extends Mob implements Enemy {
} }
if (this.level() instanceof ServerLevel level) { if (this.level() instanceof ServerLevel level) {
@@ -2919,7 +2919,7 @@ index a8e3df21c27b9c86f9f03ea436ef4099a0805b71..a677aed54e16f3150ea1eabe22935a3d
protected void defineSynchedData(final SynchedEntityData.Builder entityData) { protected void defineSynchedData(final SynchedEntityData.Builder entityData) {
} }
diff --git a/net/minecraft/world/entity/boss/wither/WitherBoss.java b/net/minecraft/world/entity/boss/wither/WitherBoss.java diff --git a/net/minecraft/world/entity/boss/wither/WitherBoss.java b/net/minecraft/world/entity/boss/wither/WitherBoss.java
index a762f8d9dbb476d4be56c48c2354d5328bab9743..6f77b7cb072cbccd104f905f148694028bd5124a 100644 index 75b9376d3109ad641e1762d9e670cb3005ca3c60..1f85cad7ac4c7cd2133142e74d51c2ad84fd4427 100644
--- a/net/minecraft/world/entity/boss/wither/WitherBoss.java --- a/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -74,6 +74,7 @@ public class WitherBoss extends Monster implements RangedAttackMob { @@ -74,6 +74,7 @@ public class WitherBoss extends Monster implements RangedAttackMob {
@@ -3418,7 +3418,7 @@ index f507c54b8b9f4560a20462f4a76bd5b104e2ba15..c66b18f8f71ecf2c1d91b46eb8c9c0b5
this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true)); this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true));
} }
diff --git a/net/minecraft/world/entity/monster/Ghast.java b/net/minecraft/world/entity/monster/Ghast.java diff --git a/net/minecraft/world/entity/monster/Ghast.java b/net/minecraft/world/entity/monster/Ghast.java
index c13c7e43076a71fab7e1e22354b9ec3d543fe126..32c21974784cedb9a772c2bc178c5b4ca129e771 100644 index 25fc1dd56e87955589ccf3d48a010223fa9fcb00..0e056fbb4580e562928150e5002a44df001767a0 100644
--- a/net/minecraft/world/entity/monster/Ghast.java --- a/net/minecraft/world/entity/monster/Ghast.java
+++ b/net/minecraft/world/entity/monster/Ghast.java +++ b/net/minecraft/world/entity/monster/Ghast.java
@@ -53,11 +53,35 @@ public class Ghast extends Mob implements Enemy { @@ -53,11 +53,35 @@ public class Ghast extends Mob implements Enemy {
@@ -3526,7 +3526,7 @@ index 5f8074c93d2ad3d163bb416b16711d82edd7dacc..1b7a75a2be45928093382fa2f2da079f
return Monster.createMonsterAttributes() return Monster.createMonsterAttributes()
.add(Attributes.MAX_HEALTH, 100.0) .add(Attributes.MAX_HEALTH, 100.0)
diff --git a/net/minecraft/world/entity/monster/Guardian.java b/net/minecraft/world/entity/monster/Guardian.java diff --git a/net/minecraft/world/entity/monster/Guardian.java b/net/minecraft/world/entity/monster/Guardian.java
index b36340a51bbeba4ae12966d45d04ad1fd18303de..0d2a323f11996fad9c4916e05e1812b1998a1be2 100644 index b1e3b4e01f04139658bfb1350c36ca5594aaceb0..032b92678f2ac0d21df751d19009f11861c1efca 100644
--- a/net/minecraft/world/entity/monster/Guardian.java --- a/net/minecraft/world/entity/monster/Guardian.java
+++ b/net/minecraft/world/entity/monster/Guardian.java +++ b/net/minecraft/world/entity/monster/Guardian.java
@@ -65,14 +65,35 @@ public class Guardian extends Monster { @@ -65,14 +65,35 @@ public class Guardian extends Monster {
@@ -3661,7 +3661,7 @@ index f6021d3e41bcf7c65c708f9937bafafecea34ce3..600da11f46673177a0ff1f56c93a60d9
@Override @Override
diff --git a/net/minecraft/world/entity/monster/Phantom.java b/net/minecraft/world/entity/monster/Phantom.java diff --git a/net/minecraft/world/entity/monster/Phantom.java b/net/minecraft/world/entity/monster/Phantom.java
index c651d3681ab8103550f71a89e80582414a1b76bf..f3b91fa31c4ee7a7dadaebc0adea4c47c66365cf 100644 index d416108d33680c9f33d6f3e1b09bdb9164c8ee64..582890eb5a5b4757ad67bc2426cf3db9a8a335af 100644
--- a/net/minecraft/world/entity/monster/Phantom.java --- a/net/minecraft/world/entity/monster/Phantom.java
+++ b/net/minecraft/world/entity/monster/Phantom.java +++ b/net/minecraft/world/entity/monster/Phantom.java
@@ -62,6 +62,52 @@ public class Phantom extends Mob implements Enemy { @@ -62,6 +62,52 @@ public class Phantom extends Mob implements Enemy {
@@ -3802,7 +3802,7 @@ index c651d3681ab8103550f71a89e80582414a1b76bf..f3b91fa31c4ee7a7dadaebc0adea4c47
Phantom.this.setYRot(Phantom.this.getYRot() + 180.0F); Phantom.this.setYRot(Phantom.this.getYRot() + 180.0F);
this.speed = 0.1F; this.speed = 0.1F;
diff --git a/net/minecraft/world/entity/monster/Ravager.java b/net/minecraft/world/entity/monster/Ravager.java diff --git a/net/minecraft/world/entity/monster/Ravager.java b/net/minecraft/world/entity/monster/Ravager.java
index ffcf170d94c1747669b50747ac6f4432381b5553..6de264683da8b502a8b73208a53ff79c54c4de44 100644 index c88545ac6fc99e5d055126ef39f799f9caef257b..1d02a5a037cb50844419ef41227be2427cdff4ca 100644
--- a/net/minecraft/world/entity/monster/Ravager.java --- a/net/minecraft/world/entity/monster/Ravager.java
+++ b/net/minecraft/world/entity/monster/Ravager.java +++ b/net/minecraft/world/entity/monster/Ravager.java
@@ -70,15 +70,40 @@ public class Ravager extends Raider { @@ -70,15 +70,40 @@ public class Ravager extends Raider {
@@ -3856,7 +3856,7 @@ index ffcf170d94c1747669b50747ac6f4432381b5553..6de264683da8b502a8b73208a53ff79c
this.getAttribute(Attributes.MOVEMENT_SPEED).setBaseValue(0.0); this.getAttribute(Attributes.MOVEMENT_SPEED).setBaseValue(0.0);
} else { } else {
diff --git a/net/minecraft/world/entity/monster/Shulker.java b/net/minecraft/world/entity/monster/Shulker.java diff --git a/net/minecraft/world/entity/monster/Shulker.java b/net/minecraft/world/entity/monster/Shulker.java
index e7d9e7c7c41ba6a6bf7bcd50a911a1fc0cbd6066..57f658dd219e88a190c9a98d3ae2a75bf9b561c9 100644 index 0dce4c8b7fed76975af7c9c96f08e5dad6f0c413..cdcc2e23259bc259ed2edc7e2eff8ddc4636a5bb 100644
--- a/net/minecraft/world/entity/monster/Shulker.java --- a/net/minecraft/world/entity/monster/Shulker.java
+++ b/net/minecraft/world/entity/monster/Shulker.java +++ b/net/minecraft/world/entity/monster/Shulker.java
@@ -110,12 +110,31 @@ public class Shulker extends AbstractGolem implements Enemy { @@ -110,12 +110,31 @@ public class Shulker extends AbstractGolem implements Enemy {
@@ -3939,7 +3939,7 @@ index ba4ba5dfb1e51e2f45b0b81012ed6be27362c55c..68080332052f1e18d7be7d5c4c27347f
this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true)); this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true));
} }
diff --git a/net/minecraft/world/entity/monster/Slime.java b/net/minecraft/world/entity/monster/Slime.java diff --git a/net/minecraft/world/entity/monster/Slime.java b/net/minecraft/world/entity/monster/Slime.java
index 81a3afb804ac9c438de46a7ea145c54e4580e54b..828d7b9985b95f898cc9ee2ae3a30dee55188538 100644 index 04f0c15a891c86ab42fe5aa719cb1357f68dd0f6..47c6dfee0254c4ccd62ed4ff584a78234284a815 100644
--- a/net/minecraft/world/entity/monster/Slime.java --- a/net/minecraft/world/entity/monster/Slime.java
+++ b/net/minecraft/world/entity/monster/Slime.java +++ b/net/minecraft/world/entity/monster/Slime.java
@@ -60,6 +60,7 @@ public class Slime extends Mob implements Enemy { @@ -60,6 +60,7 @@ public class Slime extends Mob implements Enemy {
@@ -4108,7 +4108,7 @@ index d09c1aabd5d11498a65b53fc080a1a3dea2187a3..76180ed355b0d3cb52bfebc7cbf32b91
if (hasFood && !this.isSilent()) { if (hasFood && !this.isSilent()) {
this.level() this.level()
diff --git a/net/minecraft/world/entity/monster/Vex.java b/net/minecraft/world/entity/monster/Vex.java diff --git a/net/minecraft/world/entity/monster/Vex.java b/net/minecraft/world/entity/monster/Vex.java
index d234046881b3cb075f09f4b360a938da32634bc7..aa36980d1a3ac6972559b905a1454df24b081306 100644 index de29a98dad6df73b58d96ef46cb87bdb1c11de5f..884ac753ab4b496429c4cf808f173aa4bdbf0ea9 100644
--- a/net/minecraft/world/entity/monster/Vex.java --- a/net/minecraft/world/entity/monster/Vex.java
+++ b/net/minecraft/world/entity/monster/Vex.java +++ b/net/minecraft/world/entity/monster/Vex.java
@@ -59,6 +59,50 @@ public class Vex extends Monster implements TraceableEntity { @@ -59,6 +59,50 @@ public class Vex extends Monster implements TraceableEntity {
@@ -4217,7 +4217,7 @@ index d234046881b3cb075f09f4b360a938da32634bc7..aa36980d1a3ac6972559b905a1454df2
+ Vex.this.setDeltaMovement(Vex.this.getDeltaMovement().add(delta.scale(this.getSpeedModifier() * 0.05 / deltaLength))); // Purpur - Ridables + Vex.this.setDeltaMovement(Vex.this.getDeltaMovement().add(delta.scale(this.getSpeedModifier() * 0.05 / deltaLength))); // Purpur - Ridables
if (Vex.this.getTarget() == null) { if (Vex.this.getTarget() == null) {
Vec3 movement = Vex.this.getDeltaMovement(); Vec3 movement = Vex.this.getDeltaMovement();
Vex.this.setYRot(-((float)Mth.atan2(movement.x, movement.z)) * (180.0F / (float)Math.PI)); Vex.this.setYRot(-((float)Mth.atan2(movement.x, movement.z)) * Mth.RAD_TO_DEG);
diff --git a/net/minecraft/world/entity/monster/Witch.java b/net/minecraft/world/entity/monster/Witch.java diff --git a/net/minecraft/world/entity/monster/Witch.java b/net/minecraft/world/entity/monster/Witch.java
index 205b55db821ab81883c23c194cdb12cd57061fb9..7551dcf0bd8d0ff6deffb298211788d5ff91d93b 100644 index 205b55db821ab81883c23c194cdb12cd57061fb9..7551dcf0bd8d0ff6deffb298211788d5ff91d93b 100644
--- a/net/minecraft/world/entity/monster/Witch.java --- a/net/minecraft/world/entity/monster/Witch.java
@@ -4415,7 +4415,7 @@ index e3f59999c9592af213b21afb43bcaddb94fd8279..7ba62badc9b832bdedbec5984421abfe
profiler.pop(); profiler.pop();
HoglinAi.updateActivity(this); HoglinAi.updateActivity(this);
diff --git a/net/minecraft/world/entity/monster/illager/Evoker.java b/net/minecraft/world/entity/monster/illager/Evoker.java diff --git a/net/minecraft/world/entity/monster/illager/Evoker.java b/net/minecraft/world/entity/monster/illager/Evoker.java
index f9f8f562c4c59b69ed5ab29f9042bec9125e29ab..ebc966bf72c0150904d3c804a5cb8bc8f9842bc6 100644 index 9c0ca3786a9ac50537d6e9ed2f8b21bb27407fb2..f1ded053c1ff4cc45496b61cf9e010e3632674cd 100644
--- a/net/minecraft/world/entity/monster/illager/Evoker.java --- a/net/minecraft/world/entity/monster/illager/Evoker.java
+++ b/net/minecraft/world/entity/monster/illager/Evoker.java +++ b/net/minecraft/world/entity/monster/illager/Evoker.java
@@ -50,10 +50,28 @@ public class Evoker extends SpellcasterIllager { @@ -50,10 +50,28 @@ public class Evoker extends SpellcasterIllager {
@@ -4846,7 +4846,7 @@ index f80bceac44eaee98cf1a0fd3fd93810d803866cd..8d70cb4a79bb64df53e6ca9f7adb79ec
this.targetSelector.addGoal(2, new Spider.SpiderTargetGoal<>(this, Player.class)); this.targetSelector.addGoal(2, new Spider.SpiderTargetGoal<>(this, Player.class));
this.targetSelector.addGoal(3, new Spider.SpiderTargetGoal<>(this, IronGolem.class)); this.targetSelector.addGoal(3, new Spider.SpiderTargetGoal<>(this, IronGolem.class));
diff --git a/net/minecraft/world/entity/monster/warden/Warden.java b/net/minecraft/world/entity/monster/warden/Warden.java diff --git a/net/minecraft/world/entity/monster/warden/Warden.java b/net/minecraft/world/entity/monster/warden/Warden.java
index 5f36339497ef65aa26fb763b5beb20443382a0b9..8354768aefe6967942059331ea42a9c2a519f893 100644 index eb7908467737e949ead0289bb43d40f008746fb8..8bb0990298135a48dcb3dacf71a2194248cce58f 100644
--- a/net/minecraft/world/entity/monster/warden/Warden.java --- a/net/minecraft/world/entity/monster/warden/Warden.java
+++ b/net/minecraft/world/entity/monster/warden/Warden.java +++ b/net/minecraft/world/entity/monster/warden/Warden.java
@@ -133,8 +133,32 @@ public class Warden extends Monster implements VibrationSystem { @@ -133,8 +133,32 @@ public class Warden extends Monster implements VibrationSystem {
@@ -5185,7 +5185,7 @@ index a37fa3473db1f48212eecea683aea53284d50f15..2d0203b256080c3779331ff686714ae4
if (this.level().purpurConfig.wanderingTraderAllowTrading) { // Purpur - Add config for villager trading if (this.level().purpurConfig.wanderingTraderAllowTrading) { // Purpur - Add config for villager trading
this.setTradingPlayer(player); this.setTradingPlayer(player);
diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java
index 4c0dcce0fc3f410a57b6a280c5199333d8cf9a33..d4b7f1a861e67a00f7d8022b8198e04c1d279393 100644 index cc14126928b2ee3df91b98adfcdbc15a9057e8b2..68688267947f19154a220fc4bea828232d08c313 100644
--- a/net/minecraft/world/entity/player/Player.java --- a/net/minecraft/world/entity/player/Player.java
+++ b/net/minecraft/world/entity/player/Player.java +++ b/net/minecraft/world/entity/player/Player.java
@@ -194,6 +194,19 @@ public abstract class Player extends Avatar implements ContainerUser { @@ -194,6 +194,19 @@ public abstract class Player extends Avatar implements ContainerUser {
@@ -5209,7 +5209,7 @@ index 4c0dcce0fc3f410a57b6a280c5199333d8cf9a33..d4b7f1a861e67a00f7d8022b8198e04c
super(EntityType.PLAYER, level); super(EntityType.PLAYER, level);
this.setUUID(gameProfile.id()); this.setUUID(gameProfile.id());
diff --git a/net/minecraft/world/entity/projectile/LlamaSpit.java b/net/minecraft/world/entity/projectile/LlamaSpit.java diff --git a/net/minecraft/world/entity/projectile/LlamaSpit.java b/net/minecraft/world/entity/projectile/LlamaSpit.java
index 53b40993a59f3add0887088dc4200ad20417c85b..be021954f5af9dbf4cc18ae77aa59be2d0ff6bb6 100644 index aeec4864cc80d4cc470464a01b7cae9b85e6bf9e..83ea958fd688f25d5fa7b1a1718d9932e901fee1 100644
--- a/net/minecraft/world/entity/projectile/LlamaSpit.java --- a/net/minecraft/world/entity/projectile/LlamaSpit.java
+++ b/net/minecraft/world/entity/projectile/LlamaSpit.java +++ b/net/minecraft/world/entity/projectile/LlamaSpit.java
@@ -33,6 +33,12 @@ public class LlamaSpit extends Projectile { @@ -33,6 +33,12 @@ public class LlamaSpit extends Projectile {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Configurable entity base attributes
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index 5a14b813628c7656e2ab0497ed3e13a3bf45117b..c1f19735220eac34ce48ffa22af8af90a0735ec9 100644 index 10045b734c845cb225ffadc5f63e83fda0a1615d..16158bc0390286c24e505abe0926930c76f6bbd0 100644
--- a/net/minecraft/world/entity/LivingEntity.java --- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java +++ b/net/minecraft/world/entity/LivingEntity.java
@@ -296,6 +296,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin @@ -296,6 +296,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -109,7 +109,7 @@ index 8704620cd9348d3c417cbc9591e03c70bf4d4f45..c10b06f8adcd59869d043e48cfe3fdb6
public float getWalkTargetValue(final BlockPos pos, final LevelReader level) { public float getWalkTargetValue(final BlockPos pos, final LevelReader level) {
return 0.0F; return 0.0F;
diff --git a/net/minecraft/world/entity/animal/bee/Bee.java b/net/minecraft/world/entity/animal/bee/Bee.java diff --git a/net/minecraft/world/entity/animal/bee/Bee.java b/net/minecraft/world/entity/animal/bee/Bee.java
index 711374cbc982b29800830c856975963a47b63f21..f31b67e2bd4b0279f52bd7c2ee0e63c49fbcec17 100644 index 2b398421d196902c5c812126528f32fc9863b497..b22f49887219bcffe8e30fd22e9f9dd67fc371bc 100644
--- a/net/minecraft/world/entity/animal/bee/Bee.java --- a/net/minecraft/world/entity/animal/bee/Bee.java
+++ b/net/minecraft/world/entity/animal/bee/Bee.java +++ b/net/minecraft/world/entity/animal/bee/Bee.java
@@ -480,6 +480,14 @@ public class Bee extends Animal implements FlyingAnimal, NeutralMob { @@ -480,6 +480,14 @@ public class Bee extends Animal implements FlyingAnimal, NeutralMob {
@@ -128,7 +128,7 @@ index 711374cbc982b29800830c856975963a47b63f21..f31b67e2bd4b0279f52bd7c2ee0e63c4
public long getPersistentAngerEndTime() { public long getPersistentAngerEndTime() {
return this.entityData.get(DATA_ANGER_END_TIME); return this.entityData.get(DATA_ANGER_END_TIME);
diff --git a/net/minecraft/world/entity/animal/camel/Camel.java b/net/minecraft/world/entity/animal/camel/Camel.java diff --git a/net/minecraft/world/entity/animal/camel/Camel.java b/net/minecraft/world/entity/animal/camel/Camel.java
index 97279af0178ed202810b37d5b40fe75b223238b8..aeb8c71596a2393ac1fc67768052ce319fc25d6d 100644 index e20cae40eb84bf01b38cf6b5249410cb7e2525a1..0b3cf5ad57350c5c7a453dc7a96891238491a41a 100644
--- a/net/minecraft/world/entity/animal/camel/Camel.java --- a/net/minecraft/world/entity/animal/camel/Camel.java
+++ b/net/minecraft/world/entity/animal/camel/Camel.java +++ b/net/minecraft/world/entity/animal/camel/Camel.java
@@ -349,6 +349,23 @@ public class Camel extends AbstractHorse { @@ -349,6 +349,23 @@ public class Camel extends AbstractHorse {
@@ -212,7 +212,7 @@ index 2131ba3eb10e869ff6dad67fb6b8097a8d6f1ab6..d6ec397a14753526dd34ab3a7e69ae4b
public float getWalkTargetValue(final BlockPos pos, final LevelReader level) { public float getWalkTargetValue(final BlockPos pos, final LevelReader level) {
return level.getBlockState(pos.below()).is(Blocks.MYCELIUM) ? 10.0F : level.getPathfindingCostFromLightLevels(pos); return level.getBlockState(pos.below()).is(Blocks.MYCELIUM) ? 10.0F : level.getPathfindingCostFromLightLevels(pos);
diff --git a/net/minecraft/world/entity/animal/dolphin/Dolphin.java b/net/minecraft/world/entity/animal/dolphin/Dolphin.java diff --git a/net/minecraft/world/entity/animal/dolphin/Dolphin.java b/net/minecraft/world/entity/animal/dolphin/Dolphin.java
index 4557453a90f8ee822853cdd236f3c5cd670ba65f..857bafb865b78d83716d2d5f491c0928ae6951ca 100644 index 924fd56994f63deb4a8fe03f870d14fc943390e4..b2e6307ead267fa8a1acd6956c409f2bcbf28c41 100644
--- a/net/minecraft/world/entity/animal/dolphin/Dolphin.java --- a/net/minecraft/world/entity/animal/dolphin/Dolphin.java
+++ b/net/minecraft/world/entity/animal/dolphin/Dolphin.java +++ b/net/minecraft/world/entity/animal/dolphin/Dolphin.java
@@ -154,6 +154,14 @@ public class Dolphin extends AgeableWaterCreature { @@ -154,6 +154,14 @@ public class Dolphin extends AgeableWaterCreature {
@@ -231,7 +231,7 @@ index 4557453a90f8ee822853cdd236f3c5cd670ba65f..857bafb865b78d83716d2d5f491c0928
public @Nullable SpawnGroupData finalizeSpawn( public @Nullable SpawnGroupData finalizeSpawn(
final ServerLevelAccessor level, final DifficultyInstance difficulty, final EntitySpawnReason spawnReason, final @Nullable SpawnGroupData groupData final ServerLevelAccessor level, final DifficultyInstance difficulty, final EntitySpawnReason spawnReason, final @Nullable SpawnGroupData groupData
diff --git a/net/minecraft/world/entity/animal/equine/AbstractHorse.java b/net/minecraft/world/entity/animal/equine/AbstractHorse.java diff --git a/net/minecraft/world/entity/animal/equine/AbstractHorse.java b/net/minecraft/world/entity/animal/equine/AbstractHorse.java
index 91a3db41e0ccf2a416fffcd0855f1048e88849b6..f588fbcf5be44d7897c42a7521c1b4bcae7b38dc 100644 index 1698e519a50670990e43f33c35d5a3f648c2cf61..ad21f1725c8d10e26382c8f7a0fccb7094580082 100644
--- a/net/minecraft/world/entity/animal/equine/AbstractHorse.java --- a/net/minecraft/world/entity/animal/equine/AbstractHorse.java
+++ b/net/minecraft/world/entity/animal/equine/AbstractHorse.java +++ b/net/minecraft/world/entity/animal/equine/AbstractHorse.java
@@ -141,6 +141,46 @@ public abstract class AbstractHorse extends Animal implements PlayerRideableJump @@ -141,6 +141,46 @@ public abstract class AbstractHorse extends Animal implements PlayerRideableJump
@@ -487,7 +487,7 @@ index 13857de6c4be09b7d0798d2a0fd420c705ac1d5d..ae429aec9be39d9af7da4671db15a450
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 25.0); return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 25.0);
} }
diff --git a/net/minecraft/world/entity/animal/feline/Cat.java b/net/minecraft/world/entity/animal/feline/Cat.java diff --git a/net/minecraft/world/entity/animal/feline/Cat.java b/net/minecraft/world/entity/animal/feline/Cat.java
index 4ef7feff4c157aceb1e296b70d492cc098518646..4ae9c5e823fefbf5bc7efdfbab27ccd166a70b8b 100644 index a3075535ed8726670c67d6aba0a32a00c53a70dc..e31cf2f1c4a0a419ba378424ea0a059a0117e0a4 100644
--- a/net/minecraft/world/entity/animal/feline/Cat.java --- a/net/minecraft/world/entity/animal/feline/Cat.java
+++ b/net/minecraft/world/entity/animal/feline/Cat.java +++ b/net/minecraft/world/entity/animal/feline/Cat.java
@@ -120,6 +120,14 @@ public class Cat extends TamableAnimal { @@ -120,6 +120,14 @@ public class Cat extends TamableAnimal {
@@ -543,7 +543,7 @@ index becb5c214adacd36372bbe2b21ab15e341640f7d..948d6a8e3465fd5985e91ca7eaa5f022
public ItemStack getBucketItemStack() { public ItemStack getBucketItemStack() {
return new ItemStack(Items.COD_BUCKET); return new ItemStack(Items.COD_BUCKET);
diff --git a/net/minecraft/world/entity/animal/fish/Pufferfish.java b/net/minecraft/world/entity/animal/fish/Pufferfish.java diff --git a/net/minecraft/world/entity/animal/fish/Pufferfish.java b/net/minecraft/world/entity/animal/fish/Pufferfish.java
index c31b7369194e9275e15415baa70cbb1b0de995f8..3ed54f746305a284177b609f410e2b7e9a6e6796 100644 index 8d3e8575120145f572b2c1834d243bac8eb28586..26acbeff80d3a4216b69b9842381f3fa48c9862b 100644
--- a/net/minecraft/world/entity/animal/fish/Pufferfish.java --- a/net/minecraft/world/entity/animal/fish/Pufferfish.java
+++ b/net/minecraft/world/entity/animal/fish/Pufferfish.java +++ b/net/minecraft/world/entity/animal/fish/Pufferfish.java
@@ -59,6 +59,13 @@ public class Pufferfish extends AbstractFish { @@ -59,6 +59,13 @@ public class Pufferfish extends AbstractFish {
@@ -597,7 +597,7 @@ index 3d00bcbb4ac39c7d8b4bacf15d7cfe4ad5a4a706..fbe7b76aac06bb0dce7ae53dea85e947
return "entity.minecraft.tropical_fish.predefined." + index; return "entity.minecraft.tropical_fish.predefined." + index;
} }
diff --git a/net/minecraft/world/entity/animal/fox/Fox.java b/net/minecraft/world/entity/animal/fox/Fox.java diff --git a/net/minecraft/world/entity/animal/fox/Fox.java b/net/minecraft/world/entity/animal/fox/Fox.java
index 09077acab1f3905b7dfc84d36bfac84950baf477..51b6e7ea13b03e0d64ec70f37ae6394be64bf247 100644 index ab45081d00a012949f43929f06e9bfcdf5b3c89a..ec4137a994005c4e7845d63d9347c0586c6f77ee 100644
--- a/net/minecraft/world/entity/animal/fox/Fox.java --- a/net/minecraft/world/entity/animal/fox/Fox.java
+++ b/net/minecraft/world/entity/animal/fox/Fox.java +++ b/net/minecraft/world/entity/animal/fox/Fox.java
@@ -193,6 +193,14 @@ public class Fox extends Animal { @@ -193,6 +193,14 @@ public class Fox extends Animal {
@@ -675,7 +675,7 @@ index 6875e40687bbde6aba25da7d3145eccdccea6f52..bd594838ae25f16e6e16335e06c4d981
protected void registerGoals() { protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
diff --git a/net/minecraft/world/entity/animal/happyghast/HappyGhast.java b/net/minecraft/world/entity/animal/happyghast/HappyGhast.java diff --git a/net/minecraft/world/entity/animal/happyghast/HappyGhast.java b/net/minecraft/world/entity/animal/happyghast/HappyGhast.java
index c179923999116c9319bf4cd3d4c66ea2e478805f..a8e242fcf7a52fb51bd686f257f7e3d5380e38d5 100644 index f1da6beccfd658d8209dbc3e52f570a476f1c95b..f7f65e0935404a2eb404e5053acb9f6acd353272 100644
--- a/net/minecraft/world/entity/animal/happyghast/HappyGhast.java --- a/net/minecraft/world/entity/animal/happyghast/HappyGhast.java
+++ b/net/minecraft/world/entity/animal/happyghast/HappyGhast.java +++ b/net/minecraft/world/entity/animal/happyghast/HappyGhast.java
@@ -141,6 +141,19 @@ public class HappyGhast extends Animal { @@ -141,6 +141,19 @@ public class HappyGhast extends Animal {
@@ -752,7 +752,7 @@ index c4661d5d89d1a5f4b106a9a015cdaed1976efce4..087e768c35c2c2af191c75648b278154
return AbstractNautilus.createAttributes().add(Attributes.MOVEMENT_SPEED, 1.1F); return AbstractNautilus.createAttributes().add(Attributes.MOVEMENT_SPEED, 1.1F);
} }
diff --git a/net/minecraft/world/entity/animal/panda/Panda.java b/net/minecraft/world/entity/animal/panda/Panda.java diff --git a/net/minecraft/world/entity/animal/panda/Panda.java b/net/minecraft/world/entity/animal/panda/Panda.java
index 15db093ca86de470b812206d2bae147968e0d03d..8844c9279dcdc2d81a63f665d96e9d60f0ab125b 100644 index d18577440823cde6f44eb653c5f23afb09ea89ac..838bc9b3f5bc3df3db16ba564222eed65215461a 100644
--- a/net/minecraft/world/entity/animal/panda/Panda.java --- a/net/minecraft/world/entity/animal/panda/Panda.java
+++ b/net/minecraft/world/entity/animal/panda/Panda.java +++ b/net/minecraft/world/entity/animal/panda/Panda.java
@@ -137,6 +137,15 @@ public class Panda extends Animal { @@ -137,6 +137,15 @@ public class Panda extends Animal {
@@ -861,7 +861,7 @@ index fa6fd57be6e4a36e701eb61634440a79b47bbd94..bf643b9e6929890f061ac2c44b196460
public void registerGoals() { public void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this)); this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/animal/sheep/Sheep.java b/net/minecraft/world/entity/animal/sheep/Sheep.java diff --git a/net/minecraft/world/entity/animal/sheep/Sheep.java b/net/minecraft/world/entity/animal/sheep/Sheep.java
index f9483c914d3923c38d405093df45f84a7e20ef7e..8d2b5a60ff267452a9724159db8df956a3fc576c 100644 index 08cd6e675107bf622b634c1f0e2cd53e33ef3569..eb919dc63d950af08448b75559467ec88623d6b8 100644
--- a/net/minecraft/world/entity/animal/sheep/Sheep.java --- a/net/minecraft/world/entity/animal/sheep/Sheep.java
+++ b/net/minecraft/world/entity/animal/sheep/Sheep.java +++ b/net/minecraft/world/entity/animal/sheep/Sheep.java
@@ -80,6 +80,14 @@ public class Sheep extends Animal implements Shearable { @@ -80,6 +80,14 @@ public class Sheep extends Animal implements Shearable {
@@ -917,7 +917,7 @@ index 51a0771819abfdde5043eaeca62b0ce45c40039e..cb3d0bd838473af87af74c7d1bab3859
protected ParticleOptions getInkParticle() { protected ParticleOptions getInkParticle() {
return ParticleTypes.GLOW_SQUID_INK; return ParticleTypes.GLOW_SQUID_INK;
diff --git a/net/minecraft/world/entity/animal/squid/Squid.java b/net/minecraft/world/entity/animal/squid/Squid.java diff --git a/net/minecraft/world/entity/animal/squid/Squid.java b/net/minecraft/world/entity/animal/squid/Squid.java
index 94aa3f10cc0ff44ec95ba56e4dbf1894cd538f71..cc0a1aaa6aa710c0f0b4df0e46e8ad7931f26b2f 100644 index 0854e0494f704e97e80581b80bf34df72786d1d9..49ef7f4004a2f82df2d8cbf0d0473a5d84588fac 100644
--- a/net/minecraft/world/entity/animal/squid/Squid.java --- a/net/minecraft/world/entity/animal/squid/Squid.java
+++ b/net/minecraft/world/entity/animal/squid/Squid.java +++ b/net/minecraft/world/entity/animal/squid/Squid.java
@@ -96,6 +96,14 @@ public class Squid extends AgeableWaterCreature { @@ -96,6 +96,14 @@ public class Squid extends AgeableWaterCreature {
@@ -955,7 +955,7 @@ index 53fc1012d46e20b623246cecae87b3feb1a0fda6..2dfcf0c9f8eb762d1683d2841a05219c
this.homePos = pos; this.homePos = pos;
} }
diff --git a/net/minecraft/world/entity/animal/wolf/Wolf.java b/net/minecraft/world/entity/animal/wolf/Wolf.java diff --git a/net/minecraft/world/entity/animal/wolf/Wolf.java b/net/minecraft/world/entity/animal/wolf/Wolf.java
index 59bb551c689a04486564d89b4912935acec644e2..70e04817bc1e3cfacd9a6325918e7852cae0bd43 100644 index a9349f047e6253b609b59a7590c0082a257bb9a5..d457bd20c8d644d60795776b4c19a88a8b1ffd09 100644
--- a/net/minecraft/world/entity/animal/wolf/Wolf.java --- a/net/minecraft/world/entity/animal/wolf/Wolf.java
+++ b/net/minecraft/world/entity/animal/wolf/Wolf.java +++ b/net/minecraft/world/entity/animal/wolf/Wolf.java
@@ -205,6 +205,14 @@ public class Wolf extends TamableAnimal implements NeutralMob { @@ -205,6 +205,14 @@ public class Wolf extends TamableAnimal implements NeutralMob {
@@ -974,7 +974,7 @@ index 59bb551c689a04486564d89b4912935acec644e2..70e04817bc1e3cfacd9a6325918e7852
protected void registerGoals() { protected void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this)); this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index dcf88c6171655daec1f031e41d9eb8237744bfb3..671ad18c0d18f9773ef7b868a8d1d33d574986fb 100644 index 18b909626ca4b8cdad094671f7429acfa2c4888d..24e765b67ee7730b4e1f74a8f5de897eaf479f01 100644
--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java --- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -163,6 +163,13 @@ public class EnderDragon extends Mob implements Enemy { @@ -163,6 +163,13 @@ public class EnderDragon extends Mob implements Enemy {
@@ -991,7 +991,7 @@ index dcf88c6171655daec1f031e41d9eb8237744bfb3..671ad18c0d18f9773ef7b868a8d1d33d
public static AttributeSupplier.Builder createAttributes() { public static AttributeSupplier.Builder createAttributes() {
return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 200.0).add(Attributes.CAMERA_DISTANCE, 16.0); return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 200.0).add(Attributes.CAMERA_DISTANCE, 16.0);
} }
@@ -1066,7 +1073,7 @@ public class EnderDragon extends Mob implements Enemy { @@ -1060,7 +1067,7 @@ public class EnderDragon extends Mob implements Enemy {
@Override @Override
protected float sanitizeScale(final float scale) { protected float sanitizeScale(final float scale) {
@@ -1001,7 +1001,7 @@ index dcf88c6171655daec1f031e41d9eb8237744bfb3..671ad18c0d18f9773ef7b868a8d1d33d
// CraftBukkit start - SPIGOT-2420: Special case, the ender dragon drops 12000 xp for the first kill and 500 xp for every other kill and this over time. // CraftBukkit start - SPIGOT-2420: Special case, the ender dragon drops 12000 xp for the first kill and 500 xp for every other kill and this over time.
diff --git a/net/minecraft/world/entity/boss/wither/WitherBoss.java b/net/minecraft/world/entity/boss/wither/WitherBoss.java diff --git a/net/minecraft/world/entity/boss/wither/WitherBoss.java b/net/minecraft/world/entity/boss/wither/WitherBoss.java
index 6f77b7cb072cbccd104f905f148694028bd5124a..141b64eb1f320d2bc773e99826fc97cc10f39bcd 100644 index 1f85cad7ac4c7cd2133142e74d51c2ad84fd4427..fb04a6d53cc12038f4c55db84278632582c698fc 100644
--- a/net/minecraft/world/entity/boss/wither/WitherBoss.java --- a/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -214,6 +214,14 @@ public class WitherBoss extends Monster implements RangedAttackMob { @@ -214,6 +214,14 @@ public class WitherBoss extends Monster implements RangedAttackMob {
@@ -1124,7 +1124,7 @@ index c66b18f8f71ecf2c1d91b46eb8c9c0b5cb865c06..040f0b59d93b1b94495253f3286bdba1
protected void registerGoals() { protected void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this)); this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/monster/Ghast.java b/net/minecraft/world/entity/monster/Ghast.java diff --git a/net/minecraft/world/entity/monster/Ghast.java b/net/minecraft/world/entity/monster/Ghast.java
index 32c21974784cedb9a772c2bc178c5b4ca129e771..254548dd024e4963bbcb1b1fce99194461d3f54d 100644 index 0e056fbb4580e562928150e5002a44df001767a0..4a786f17a7a8e6175775c4705445e9dff1b2aa7c 100644
--- a/net/minecraft/world/entity/monster/Ghast.java --- a/net/minecraft/world/entity/monster/Ghast.java
+++ b/net/minecraft/world/entity/monster/Ghast.java +++ b/net/minecraft/world/entity/monster/Ghast.java
@@ -75,6 +75,14 @@ public class Ghast extends Mob implements Enemy { @@ -75,6 +75,14 @@ public class Ghast extends Mob implements Enemy {
@@ -1164,7 +1164,7 @@ index 1b7a75a2be45928093382fa2f2da079ffc5d190d..7b6952f13e18548d0e71035d6cd6cfb2
return Monster.createMonsterAttributes() return Monster.createMonsterAttributes()
.add(Attributes.MAX_HEALTH, 100.0) .add(Attributes.MAX_HEALTH, 100.0)
diff --git a/net/minecraft/world/entity/monster/Guardian.java b/net/minecraft/world/entity/monster/Guardian.java diff --git a/net/minecraft/world/entity/monster/Guardian.java b/net/minecraft/world/entity/monster/Guardian.java
index 0d2a323f11996fad9c4916e05e1812b1998a1be2..12f6b4bf9fa011db34617e2115206202d7f2d32e 100644 index 032b92678f2ac0d21df751d19009f11861c1efca..d5880eebf3c64dab03234ac55110645541413c4a 100644
--- a/net/minecraft/world/entity/monster/Guardian.java --- a/net/minecraft/world/entity/monster/Guardian.java
+++ b/net/minecraft/world/entity/monster/Guardian.java +++ b/net/minecraft/world/entity/monster/Guardian.java
@@ -89,6 +89,14 @@ public class Guardian extends Monster { @@ -89,6 +89,14 @@ public class Guardian extends Monster {
@@ -1216,7 +1216,7 @@ index 600da11f46673177a0ff1f56c93a60d94df40025..d40a4daeec1500f2d9865022ee6e3c38
return Monster.createMonsterAttributes().add(Attributes.MOVEMENT_SPEED, 0.2F); return Monster.createMonsterAttributes().add(Attributes.MOVEMENT_SPEED, 0.2F);
} }
diff --git a/net/minecraft/world/entity/monster/Phantom.java b/net/minecraft/world/entity/monster/Phantom.java diff --git a/net/minecraft/world/entity/monster/Phantom.java b/net/minecraft/world/entity/monster/Phantom.java
index f3b91fa31c4ee7a7dadaebc0adea4c47c66365cf..b45eb26fa78a4bafa247c3cf8f20fb2f076646c5 100644 index 582890eb5a5b4757ad67bc2426cf3db9a8a335af..a22f245acca8e5ea3334708a27ed5029e472c205 100644
--- a/net/minecraft/world/entity/monster/Phantom.java --- a/net/minecraft/world/entity/monster/Phantom.java
+++ b/net/minecraft/world/entity/monster/Phantom.java +++ b/net/minecraft/world/entity/monster/Phantom.java
@@ -141,7 +141,10 @@ public class Phantom extends Mob implements Enemy { @@ -141,7 +141,10 @@ public class Phantom extends Mob implements Enemy {
@@ -1256,7 +1256,7 @@ index f3b91fa31c4ee7a7dadaebc0adea4c47c66365cf..b45eb26fa78a4bafa247c3cf8f20fb2f
public void tick() { public void tick() {
super.tick(); super.tick();
diff --git a/net/minecraft/world/entity/monster/Ravager.java b/net/minecraft/world/entity/monster/Ravager.java diff --git a/net/minecraft/world/entity/monster/Ravager.java b/net/minecraft/world/entity/monster/Ravager.java
index 6de264683da8b502a8b73208a53ff79c54c4de44..878fee0c45a34c334d30239711231f2ef990e926 100644 index 1d02a5a037cb50844419ef41227be2427cdff4ca..3e2fa1f4e9c820af76ef5f4354ca66fae182da7b 100644
--- a/net/minecraft/world/entity/monster/Ravager.java --- a/net/minecraft/world/entity/monster/Ravager.java
+++ b/net/minecraft/world/entity/monster/Ravager.java +++ b/net/minecraft/world/entity/monster/Ravager.java
@@ -93,6 +93,14 @@ public class Ravager extends Raider { @@ -93,6 +93,14 @@ public class Ravager extends Raider {
@@ -1275,7 +1275,7 @@ index 6de264683da8b502a8b73208a53ff79c54c4de44..878fee0c45a34c334d30239711231f2e
protected void registerGoals() { protected void registerGoals() {
super.registerGoals(); super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/Shulker.java b/net/minecraft/world/entity/monster/Shulker.java diff --git a/net/minecraft/world/entity/monster/Shulker.java b/net/minecraft/world/entity/monster/Shulker.java
index eed74304cff4f121e8376236f53bf786e3be5759..84e27edf490fbe4ed0142b9bb90aab37151acf3d 100644 index cdcc2e23259bc259ed2edc7e2eff8ddc4636a5bb..2ba213e85002f7c76e3dbd8b386ebbb0b11fa86b 100644
--- a/net/minecraft/world/entity/monster/Shulker.java --- a/net/minecraft/world/entity/monster/Shulker.java
+++ b/net/minecraft/world/entity/monster/Shulker.java +++ b/net/minecraft/world/entity/monster/Shulker.java
@@ -127,6 +127,14 @@ public class Shulker extends AbstractGolem implements Enemy { @@ -127,6 +127,14 @@ public class Shulker extends AbstractGolem implements Enemy {
@@ -1324,7 +1324,7 @@ index 68080332052f1e18d7be7d5c4c27347f3d57ddcc..355475b12c6f3fcc9fe88ca63ab88cab
protected void registerGoals() { protected void registerGoals() {
this.friendsGoal = new Silverfish.SilverfishWakeUpFriendsGoal(this); this.friendsGoal = new Silverfish.SilverfishWakeUpFriendsGoal(this);
diff --git a/net/minecraft/world/entity/monster/Slime.java b/net/minecraft/world/entity/monster/Slime.java diff --git a/net/minecraft/world/entity/monster/Slime.java b/net/minecraft/world/entity/monster/Slime.java
index 828d7b9985b95f898cc9ee2ae3a30dee55188538..0713239089bac454b3228d80aaabfd1fca4bd08b 100644 index 47c6dfee0254c4ccd62ed4ff584a78234284a815..f541ccef625ab0d560f4781c28ad7ae3b67196d6 100644
--- a/net/minecraft/world/entity/monster/Slime.java --- a/net/minecraft/world/entity/monster/Slime.java
+++ b/net/minecraft/world/entity/monster/Slime.java +++ b/net/minecraft/world/entity/monster/Slime.java
@@ -102,6 +102,39 @@ public class Slime extends Mob implements Enemy { @@ -102,6 +102,39 @@ public class Slime extends Mob implements Enemy {
@@ -1399,7 +1399,7 @@ index 76180ed355b0d3cb52bfebc7cbf32b91486d6f5b..f8134a362a2faa49beccb840ea8a899a
final EntityType<Strider> ignoredType, final EntityType<Strider> ignoredType,
final LevelAccessor level, final LevelAccessor level,
diff --git a/net/minecraft/world/entity/monster/Vex.java b/net/minecraft/world/entity/monster/Vex.java diff --git a/net/minecraft/world/entity/monster/Vex.java b/net/minecraft/world/entity/monster/Vex.java
index aa36980d1a3ac6972559b905a1454df24b081306..62fe1bb1632fbe8edf901c22c7972e729a5f6100 100644 index 884ac753ab4b496429c4cf808f173aa4bdbf0ea9..29e9a0deb5aa99800dc6554ad6bba36bbe6dd80e 100644
--- a/net/minecraft/world/entity/monster/Vex.java --- a/net/minecraft/world/entity/monster/Vex.java
+++ b/net/minecraft/world/entity/monster/Vex.java +++ b/net/minecraft/world/entity/monster/Vex.java
@@ -103,6 +103,14 @@ public class Vex extends Monster implements TraceableEntity { @@ -103,6 +103,14 @@ public class Vex extends Monster implements TraceableEntity {
@@ -1494,7 +1494,7 @@ index 7ba62badc9b832bdedbec5984421abfee242fa16..352139672f2cf1a7d624db4cc5bdef3a
public void setTimeInOverworld(final int timeInOverworld) { public void setTimeInOverworld(final int timeInOverworld) {
this.timeInOverworld = timeInOverworld; this.timeInOverworld = timeInOverworld;
diff --git a/net/minecraft/world/entity/monster/illager/Evoker.java b/net/minecraft/world/entity/monster/illager/Evoker.java diff --git a/net/minecraft/world/entity/monster/illager/Evoker.java b/net/minecraft/world/entity/monster/illager/Evoker.java
index ebc966bf72c0150904d3c804a5cb8bc8f9842bc6..4de0c340b1fb8baa9ed379ea010ca6d314530268 100644 index f1ded053c1ff4cc45496b61cf9e010e3632674cd..212c74328b1f2c4bb8753787f70246249ab5fe75 100644
--- a/net/minecraft/world/entity/monster/illager/Evoker.java --- a/net/minecraft/world/entity/monster/illager/Evoker.java
+++ b/net/minecraft/world/entity/monster/illager/Evoker.java +++ b/net/minecraft/world/entity/monster/illager/Evoker.java
@@ -67,6 +67,14 @@ public class Evoker extends SpellcasterIllager { @@ -67,6 +67,14 @@ public class Evoker extends SpellcasterIllager {
@@ -1703,7 +1703,7 @@ index 59265f8286a32a1fe7de1986df78b441861e9367..beba154f2a76d3d8f7d9b44c1b45b83c
public boolean doHurtTarget(final ServerLevel level, final Entity target) { public boolean doHurtTarget(final ServerLevel level, final Entity target) {
if (super.doHurtTarget(level, target)) { if (super.doHurtTarget(level, target)) {
diff --git a/net/minecraft/world/entity/monster/spider/Spider.java b/net/minecraft/world/entity/monster/spider/Spider.java diff --git a/net/minecraft/world/entity/monster/spider/Spider.java b/net/minecraft/world/entity/monster/spider/Spider.java
index 66189a304eb7f59da08679a7157ec882aa7396fc..696d7fa001de544fd2124b4e1135725547a15a94 100644 index 8d70cb4a79bb64df53e6ca9f7adb79ecfe33fe2f..a17be779e6ac85129f0646128378b472403faf7b 100644
--- a/net/minecraft/world/entity/monster/spider/Spider.java --- a/net/minecraft/world/entity/monster/spider/Spider.java
+++ b/net/minecraft/world/entity/monster/spider/Spider.java +++ b/net/minecraft/world/entity/monster/spider/Spider.java
@@ -69,6 +69,14 @@ public class Spider extends Monster { @@ -69,6 +69,14 @@ public class Spider extends Monster {
@@ -1769,7 +1769,7 @@ index dfb43d27865674f4f13050682eda38afe2731f00..1c985585a2da43e59bb5b9ebd742e1e3
public boolean isSunSensitive() { public boolean isSunSensitive() {
return false; return false;
diff --git a/net/minecraft/world/entity/monster/zombie/Zombie.java b/net/minecraft/world/entity/monster/zombie/Zombie.java diff --git a/net/minecraft/world/entity/monster/zombie/Zombie.java b/net/minecraft/world/entity/monster/zombie/Zombie.java
index 004c70e25fbcf269cf5d8b7b5961341fd3f4e374..900c768b0118153ea2c74dea0960aef3217da441 100644 index e76895db48b00150a749a6e3d1fb2807dc9852bd..1fbebd0cd04182679400ef3c33bf0730c01bc645 100644
--- a/net/minecraft/world/entity/monster/zombie/Zombie.java --- a/net/minecraft/world/entity/monster/zombie/Zombie.java
+++ b/net/minecraft/world/entity/monster/zombie/Zombie.java +++ b/net/minecraft/world/entity/monster/zombie/Zombie.java
@@ -130,6 +130,14 @@ public class Zombie extends Monster { @@ -130,6 +130,14 @@ public class Zombie extends Monster {
@@ -1848,7 +1848,7 @@ index eb3ec4314603f61a041740d5b5e52165dac6ebc6..b6c14d7c5fbe7f37d4d5b865aae60d4a
@Override @Override
diff --git a/net/minecraft/world/entity/npc/villager/Villager.java b/net/minecraft/world/entity/npc/villager/Villager.java diff --git a/net/minecraft/world/entity/npc/villager/Villager.java b/net/minecraft/world/entity/npc/villager/Villager.java
index a711cfcce0130dbc8e758568215e7a411774c5e4..ddbfcf8e16e17a3f482cb99de61ae8e40a383c18 100644 index af194ac19c110b9a69967631ca189494a166b55b..80f5197c4b33d75ee4d3791db22ed5e43f5c2a65 100644
--- a/net/minecraft/world/entity/npc/villager/Villager.java --- a/net/minecraft/world/entity/npc/villager/Villager.java
+++ b/net/minecraft/world/entity/npc/villager/Villager.java +++ b/net/minecraft/world/entity/npc/villager/Villager.java
@@ -274,6 +274,14 @@ public class Villager extends AbstractVillager implements VillagerDataHolder, Re @@ -274,6 +274,14 @@ public class Villager extends AbstractVillager implements VillagerDataHolder, Re

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Barrels and enderchests 6 rows
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index c91b960c1cc087c424e6d17ad8f53a1f4cc354c3..9ed2866992573347548be47d1980a810e50dc653 100644 index 962dcadc6615128c2ac28e198955aedec09c9317..1d7a67ce5c33119c4ae794f61a5639a92a9e9dd1 100644
--- a/net/minecraft/server/players/PlayerList.java --- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java +++ b/net/minecraft/server/players/PlayerList.java
@@ -888,6 +888,27 @@ public abstract class PlayerList { @@ -889,6 +889,27 @@ public abstract class PlayerList {
player.getBukkitEntity().recalculatePermissions(); // CraftBukkit player.getBukkitEntity().recalculatePermissions(); // CraftBukkit
this.server.getCommands().sendCommands(player); this.server.getCommands().sendCommands(player);
} // Paper - Add sendOpLevel API } // Paper - Add sendOpLevel API
@@ -37,7 +37,7 @@ index c91b960c1cc087c424e6d17ad8f53a1f4cc354c3..9ed2866992573347548be47d1980a810
// Paper start - whitelist verify event / login event // Paper start - whitelist verify event / login event
diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java
index d4b7f1a861e67a00f7d8022b8198e04c1d279393..0f671feacee9827312cd04c158bf1e69c0f0273f 100644 index 68688267947f19154a220fc4bea828232d08c313..fbf8d50b0e757b329818d868d86d4e8c4088ec07 100644
--- a/net/minecraft/world/entity/player/Player.java --- a/net/minecraft/world/entity/player/Player.java
+++ b/net/minecraft/world/entity/player/Player.java +++ b/net/minecraft/world/entity/player/Player.java
@@ -176,6 +176,7 @@ public abstract class Player extends Avatar implements ContainerUser { @@ -176,6 +176,7 @@ public abstract class Player extends Avatar implements ContainerUser {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Minecart settings and WASD controls
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
index 3a3d8f96406dfcc91b62345c427725be2ffe7912..52c427634f143c596ea6f370bb6170c0dff2a1d2 100644 index 1bd1bb805060604fbe4dca6d71a863bb96d12da9..a41e8e61df1f3d7a861cd1b4060bc3ec424d45bd 100644
--- a/net/minecraft/server/level/ServerPlayer.java --- a/net/minecraft/server/level/ServerPlayer.java
+++ b/net/minecraft/server/level/ServerPlayer.java +++ b/net/minecraft/server/level/ServerPlayer.java
@@ -1326,6 +1326,11 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc @@ -1332,6 +1332,11 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
} else { } else {
// Purpur start - Add boat fall damage config // Purpur start - Add boat fall damage config
if (source.is(net.minecraft.tags.DamageTypeTags.IS_FALL)) { if (source.is(net.minecraft.tags.DamageTypeTags.IS_FALL)) {
@@ -21,7 +21,7 @@ index 3a3d8f96406dfcc91b62345c427725be2ffe7912..52c427634f143c596ea6f370bb6170c0
return false; return false;
} }
diff --git a/net/minecraft/world/entity/vehicle/minecart/AbstractMinecart.java b/net/minecraft/world/entity/vehicle/minecart/AbstractMinecart.java diff --git a/net/minecraft/world/entity/vehicle/minecart/AbstractMinecart.java b/net/minecraft/world/entity/vehicle/minecart/AbstractMinecart.java
index 9f72e7eeecf3037a498e7688f55cc029a49f388d..59cf0d4dcffc00313e06574987e4364f6ca21eb5 100644 index 7ba197b9bda1f98e24882be40d78fabb0db9d36b..f807e424850bcd22ca35860b37fde45c37187b1e 100644
--- a/net/minecraft/world/entity/vehicle/minecart/AbstractMinecart.java --- a/net/minecraft/world/entity/vehicle/minecart/AbstractMinecart.java
+++ b/net/minecraft/world/entity/vehicle/minecart/AbstractMinecart.java +++ b/net/minecraft/world/entity/vehicle/minecart/AbstractMinecart.java
@@ -105,6 +105,10 @@ public abstract class AbstractMinecart extends VehicleEntity { @@ -105,6 +105,10 @@ public abstract class AbstractMinecart extends VehicleEntity {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Make entity breeding times configurable
diff --git a/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java b/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java diff --git a/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java b/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java
index 5e448f83d2426fb09785b2899e1bf5950ced6608..4f04eebef9ecd84137ac067c5adcbe977c21a617 100644 index 37cf6c4cef5a8885fddd9f637cac024892b498a3..859842ba642f4307e5a1f834007afe505ce58a8c 100644
--- a/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java --- a/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java
+++ b/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java +++ b/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java
@@ -117,8 +117,10 @@ public class VillagerMakeLove extends Behavior<Villager> { @@ -118,8 +118,10 @@ public class VillagerMakeLove extends Behavior<Villager> {
if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityBreedEvent(child, source, target, null, null, 0).isCancelled()) { if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityBreedEvent(child, source, target, null, null, 0).isCancelled()) {
return Optional.empty(); return Optional.empty();
} }
@@ -83,7 +83,7 @@ index c10b06f8adcd59869d043e48cfe3fdb60051c3db..d4178d85b74a41a0d2808681008f1686
public float getWalkTargetValue(final BlockPos pos, final LevelReader level) { public float getWalkTargetValue(final BlockPos pos, final LevelReader level) {
return 0.0F; return 0.0F;
diff --git a/net/minecraft/world/entity/animal/bee/Bee.java b/net/minecraft/world/entity/animal/bee/Bee.java diff --git a/net/minecraft/world/entity/animal/bee/Bee.java b/net/minecraft/world/entity/animal/bee/Bee.java
index f31b67e2bd4b0279f52bd7c2ee0e63c49fbcec17..36c5c555faa9a29ec742c97ea8a6fcf720e6d9a1 100644 index b22f49887219bcffe8e30fd22e9f9dd67fc371bc..44f11b07a2b8a37db399976c4c79b44c4416f2e9 100644
--- a/net/minecraft/world/entity/animal/bee/Bee.java --- a/net/minecraft/world/entity/animal/bee/Bee.java
+++ b/net/minecraft/world/entity/animal/bee/Bee.java +++ b/net/minecraft/world/entity/animal/bee/Bee.java
@@ -488,6 +488,13 @@ public class Bee extends Animal implements FlyingAnimal, NeutralMob { @@ -488,6 +488,13 @@ public class Bee extends Animal implements FlyingAnimal, NeutralMob {
@@ -101,7 +101,7 @@ index f31b67e2bd4b0279f52bd7c2ee0e63c49fbcec17..36c5c555faa9a29ec742c97ea8a6fcf7
public long getPersistentAngerEndTime() { public long getPersistentAngerEndTime() {
return this.entityData.get(DATA_ANGER_END_TIME); return this.entityData.get(DATA_ANGER_END_TIME);
diff --git a/net/minecraft/world/entity/animal/camel/Camel.java b/net/minecraft/world/entity/animal/camel/Camel.java diff --git a/net/minecraft/world/entity/animal/camel/Camel.java b/net/minecraft/world/entity/animal/camel/Camel.java
index aeb8c71596a2393ac1fc67768052ce319fc25d6d..f2e87ebef0d52b2009658aae522398180a15cb92 100644 index 0b3cf5ad57350c5c7a453dc7a96891238491a41a..5a66cdb4a75651a9dc017d80f2c2f56e878d83ad 100644
--- a/net/minecraft/world/entity/animal/camel/Camel.java --- a/net/minecraft/world/entity/animal/camel/Camel.java
+++ b/net/minecraft/world/entity/animal/camel/Camel.java +++ b/net/minecraft/world/entity/animal/camel/Camel.java
@@ -103,6 +103,13 @@ public class Camel extends AbstractHorse { @@ -103,6 +103,13 @@ public class Camel extends AbstractHorse {
@@ -299,7 +299,7 @@ index ae429aec9be39d9af7da4671db15a4506da135d9..4be11663154a870a21832ddba05764a8
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 25.0); return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 25.0);
} }
diff --git a/net/minecraft/world/entity/animal/feline/Cat.java b/net/minecraft/world/entity/animal/feline/Cat.java diff --git a/net/minecraft/world/entity/animal/feline/Cat.java b/net/minecraft/world/entity/animal/feline/Cat.java
index 4ae9c5e823fefbf5bc7efdfbab27ccd166a70b8b..5c235149eca10c216f0f8d6e645a439d7dbcfbc3 100644 index e31cf2f1c4a0a419ba378424ea0a059a0117e0a4..334879e3f1a28825749e7e4a3863454ee0a5ac9a 100644
--- a/net/minecraft/world/entity/animal/feline/Cat.java --- a/net/minecraft/world/entity/animal/feline/Cat.java
+++ b/net/minecraft/world/entity/animal/feline/Cat.java +++ b/net/minecraft/world/entity/animal/feline/Cat.java
@@ -128,6 +128,13 @@ public class Cat extends TamableAnimal { @@ -128,6 +128,13 @@ public class Cat extends TamableAnimal {
@@ -335,7 +335,7 @@ index 4bf42db19d0f58338f32af1ab7c802c274a8581c..2accf49e8dd907c8a482e5317d07b28f
return this.entityData.get(DATA_TRUSTING); return this.entityData.get(DATA_TRUSTING);
} }
diff --git a/net/minecraft/world/entity/animal/fox/Fox.java b/net/minecraft/world/entity/animal/fox/Fox.java diff --git a/net/minecraft/world/entity/animal/fox/Fox.java b/net/minecraft/world/entity/animal/fox/Fox.java
index 51b6e7ea13b03e0d64ec70f37ae6394be64bf247..9c049b34c062113a2241fdda2eaae808c0e8e0b1 100644 index ec4137a994005c4e7845d63d9347c0586c6f77ee..579718387c43ef36eacfe3abfb789b64e17fa55f 100644
--- a/net/minecraft/world/entity/animal/fox/Fox.java --- a/net/minecraft/world/entity/animal/fox/Fox.java
+++ b/net/minecraft/world/entity/animal/fox/Fox.java +++ b/net/minecraft/world/entity/animal/fox/Fox.java
@@ -201,6 +201,13 @@ public class Fox extends Animal { @@ -201,6 +201,13 @@ public class Fox extends Animal {
@@ -384,7 +384,7 @@ index 977ee6a71e0c52f115a221b09248596db2534739..3d2f06b4e686345632a2493366177e90
protected Brain<Frog> makeBrain(final Brain.Packed packedBrain) { protected Brain<Frog> makeBrain(final Brain.Packed packedBrain) {
return BRAIN_PROVIDER.makeBrain(this, packedBrain); return BRAIN_PROVIDER.makeBrain(this, packedBrain);
diff --git a/net/minecraft/world/entity/animal/goat/Goat.java b/net/minecraft/world/entity/animal/goat/Goat.java diff --git a/net/minecraft/world/entity/animal/goat/Goat.java b/net/minecraft/world/entity/animal/goat/Goat.java
index 82c27c0e6e9f72eceb5a498af4aad6a7bd766513..da763ba40fdc52d6f6fec97e5e288fbef343ead6 100644 index d4353bb9ba2168b81726bfaa406175e7f2af601a..c8b2ef70ca3f730d87c30af9f29adb2ad083d26f 100644
--- a/net/minecraft/world/entity/animal/goat/Goat.java --- a/net/minecraft/world/entity/animal/goat/Goat.java
+++ b/net/minecraft/world/entity/animal/goat/Goat.java +++ b/net/minecraft/world/entity/animal/goat/Goat.java
@@ -117,6 +117,13 @@ public class Goat extends Animal { @@ -117,6 +117,13 @@ public class Goat extends Animal {
@@ -402,7 +402,7 @@ index 82c27c0e6e9f72eceb5a498af4aad6a7bd766513..da763ba40fdc52d6f6fec97e5e288fbe
protected Brain<Goat> makeBrain(final Brain.Packed packedBrain) { protected Brain<Goat> makeBrain(final Brain.Packed packedBrain) {
return BRAIN_PROVIDER.makeBrain(this, packedBrain); return BRAIN_PROVIDER.makeBrain(this, packedBrain);
diff --git a/net/minecraft/world/entity/animal/happyghast/HappyGhast.java b/net/minecraft/world/entity/animal/happyghast/HappyGhast.java diff --git a/net/minecraft/world/entity/animal/happyghast/HappyGhast.java b/net/minecraft/world/entity/animal/happyghast/HappyGhast.java
index a8e242fcf7a52fb51bd686f257f7e3d5380e38d5..75a32b65da7080391d0c37622db9cb98c5e092b6 100644 index f7f65e0935404a2eb404e5053acb9f6acd353272..b049adf5604555041102497d7fe0c865c56d751f 100644
--- a/net/minecraft/world/entity/animal/happyghast/HappyGhast.java --- a/net/minecraft/world/entity/animal/happyghast/HappyGhast.java
+++ b/net/minecraft/world/entity/animal/happyghast/HappyGhast.java +++ b/net/minecraft/world/entity/animal/happyghast/HappyGhast.java
@@ -154,6 +154,13 @@ public class HappyGhast extends Animal { @@ -154,6 +154,13 @@ public class HappyGhast extends Animal {
@@ -456,7 +456,7 @@ index 087e768c35c2c2af191c75648b278154ce5e593c..18bfb321e3728d3fa0596da0b86e4b76
return AbstractNautilus.createAttributes().add(Attributes.MOVEMENT_SPEED, 1.1F); return AbstractNautilus.createAttributes().add(Attributes.MOVEMENT_SPEED, 1.1F);
} }
diff --git a/net/minecraft/world/entity/animal/panda/Panda.java b/net/minecraft/world/entity/animal/panda/Panda.java diff --git a/net/minecraft/world/entity/animal/panda/Panda.java b/net/minecraft/world/entity/animal/panda/Panda.java
index 8844c9279dcdc2d81a63f665d96e9d60f0ab125b..02d5949fb91bbee84fa067dac14d20f53f4a029b 100644 index 838bc9b3f5bc3df3db16ba564222eed65215461a..f413e018856d485f706d2b8742b92b3253fe6532 100644
--- a/net/minecraft/world/entity/animal/panda/Panda.java --- a/net/minecraft/world/entity/animal/panda/Panda.java
+++ b/net/minecraft/world/entity/animal/panda/Panda.java +++ b/net/minecraft/world/entity/animal/panda/Panda.java
@@ -146,6 +146,13 @@ public class Panda extends Animal { @@ -146,6 +146,13 @@ public class Panda extends Animal {
@@ -546,7 +546,7 @@ index bf643b9e6929890f061ac2c44b196460234095c4..3aefbdc3e537bc53bba296c7876dee93
public void registerGoals() { public void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this)); this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/animal/sheep/Sheep.java b/net/minecraft/world/entity/animal/sheep/Sheep.java diff --git a/net/minecraft/world/entity/animal/sheep/Sheep.java b/net/minecraft/world/entity/animal/sheep/Sheep.java
index 8d2b5a60ff267452a9724159db8df956a3fc576c..9cc59891521963204399b7f67d94bb78c7e75fb6 100644 index eb919dc63d950af08448b75559467ec88623d6b8..e83fe71b4f63f8f7fa1976f7d2165c36bbb184bf 100644
--- a/net/minecraft/world/entity/animal/sheep/Sheep.java --- a/net/minecraft/world/entity/animal/sheep/Sheep.java
+++ b/net/minecraft/world/entity/animal/sheep/Sheep.java +++ b/net/minecraft/world/entity/animal/sheep/Sheep.java
@@ -88,6 +88,13 @@ public class Sheep extends Animal implements Shearable { @@ -88,6 +88,13 @@ public class Sheep extends Animal implements Shearable {
@@ -613,7 +613,7 @@ index 2dfcf0c9f8eb762d1683d2841a05219c497fddfc..62d9fce83cc44165c5356049a12bf608
this.partner.resetLove(); this.partner.resetLove();
RandomSource random = this.animal.getRandom(); RandomSource random = this.animal.getRandom();
diff --git a/net/minecraft/world/entity/animal/wolf/Wolf.java b/net/minecraft/world/entity/animal/wolf/Wolf.java diff --git a/net/minecraft/world/entity/animal/wolf/Wolf.java b/net/minecraft/world/entity/animal/wolf/Wolf.java
index 5605c3ecb8ffaace4b21e3bd5bd3d7714b7ea83c..0561b38982c205edc848b1650152491698a80e29 100644 index d457bd20c8d644d60795776b4c19a88a8b1ffd09..0ac4e30fd4f3158b5f53e9ba8bc70964907c63a2 100644
--- a/net/minecraft/world/entity/animal/wolf/Wolf.java --- a/net/minecraft/world/entity/animal/wolf/Wolf.java
+++ b/net/minecraft/world/entity/animal/wolf/Wolf.java +++ b/net/minecraft/world/entity/animal/wolf/Wolf.java
@@ -213,6 +213,13 @@ public class Wolf extends TamableAnimal implements NeutralMob { @@ -213,6 +213,13 @@ public class Wolf extends TamableAnimal implements NeutralMob {

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Apply display names from item forms of entities to entities
diff --git a/net/minecraft/world/entity/decoration/ArmorStand.java b/net/minecraft/world/entity/decoration/ArmorStand.java diff --git a/net/minecraft/world/entity/decoration/ArmorStand.java b/net/minecraft/world/entity/decoration/ArmorStand.java
index 6490da07840f811fdbbd3c5dfefe4494fe7e7494..0fd3cad21382d3078d15f74c5616b0b70ddd8383 100644 index 3f4986d6a755088a2014a373767e51efa976e997..8cb13a742a1cc03d60c78d0bf5be8c6a8cd1a6ae 100644
--- a/net/minecraft/world/entity/decoration/ArmorStand.java --- a/net/minecraft/world/entity/decoration/ArmorStand.java
+++ b/net/minecraft/world/entity/decoration/ArmorStand.java +++ b/net/minecraft/world/entity/decoration/ArmorStand.java
@@ -452,6 +452,7 @@ public class ArmorStand extends LivingEntity { @@ -452,6 +452,7 @@ public class ArmorStand extends LivingEntity {
@@ -52,10 +52,10 @@ index 7195082470ca411caf9c071e970edddae93cb127..9740bb9ec78cad900b9fa7d8ed6fca6a
} }
} }
diff --git a/net/minecraft/world/entity/vehicle/boat/AbstractBoat.java b/net/minecraft/world/entity/vehicle/boat/AbstractBoat.java diff --git a/net/minecraft/world/entity/vehicle/boat/AbstractBoat.java b/net/minecraft/world/entity/vehicle/boat/AbstractBoat.java
index 390f0ec98e9e76239d67dd40d0b183d287bcf1d1..725f2c90fb0b12553441fd91a94ce5c890e1f2b1 100644 index 5c749dbb137fed1c94430c0df637fec95a8773be..25c403d66d6e4c8b1798f5ba7f0a610430b4cc09 100644
--- a/net/minecraft/world/entity/vehicle/boat/AbstractBoat.java --- a/net/minecraft/world/entity/vehicle/boat/AbstractBoat.java
+++ b/net/minecraft/world/entity/vehicle/boat/AbstractBoat.java +++ b/net/minecraft/world/entity/vehicle/boat/AbstractBoat.java
@@ -818,7 +818,13 @@ public abstract class AbstractBoat extends VehicleEntity implements Leashable { @@ -814,7 +814,13 @@ public abstract class AbstractBoat extends VehicleEntity implements Leashable {
@Override @Override
public final ItemStack getPickResult() { public final ItemStack getPickResult() {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add mobGriefing override to everything affected
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index 9b7b285251aff741d8f2c19b3b558f81e77c0aaa..bf817c8cf1308a2621f387305b8d29af96a99f7f 100644 index bd10e79f0b0d9558fdefebe801db33b49b2f28ac..1964830b4f35d0fde2d3fc9a0630e4dfc6ff9eff 100644
--- a/net/minecraft/world/entity/LivingEntity.java --- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java +++ b/net/minecraft/world/entity/LivingEntity.java
@@ -1950,7 +1950,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin @@ -1950,7 +1950,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -31,7 +31,7 @@ index 4c419772d7270dedf3d27d7147444decae2729d1..7fe31c03780625ead30d4e629da4cca3
for (ItemEntity entity : this.level() for (ItemEntity entity : this.level()
diff --git a/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java b/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java diff --git a/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java b/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java
index 9318b27ca960ee00774892b3fd244b0fca1f6e35..573eb81c0328b9b6bd9256d67e533b6cc73f738f 100644 index d3f88e3274abc5904544a84a6f1e1d10a441b1e7..002328d8e8b7a5b2322872814c81a287d62ff89d 100644
--- a/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java --- a/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java
+++ b/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java +++ b/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java
@@ -48,7 +48,7 @@ public class HarvestFarmland extends Behavior<Villager> { @@ -48,7 +48,7 @@ public class HarvestFarmland extends Behavior<Villager> {
@@ -92,7 +92,7 @@ index ca91cadd8d52c09a735e6447664bed4753f3cdd3..3277777cb8672d29a0d49ef03f9cf35c
} else if (this.nextStartTick > 0) { } else if (this.nextStartTick > 0) {
this.nextStartTick--; this.nextStartTick--;
diff --git a/net/minecraft/world/entity/animal/fox/Fox.java b/net/minecraft/world/entity/animal/fox/Fox.java diff --git a/net/minecraft/world/entity/animal/fox/Fox.java b/net/minecraft/world/entity/animal/fox/Fox.java
index 9c049b34c062113a2241fdda2eaae808c0e8e0b1..f781d02d10317bf7cf9b5fe50706bbefb62820d3 100644 index 579718387c43ef36eacfe3abfb789b64e17fa55f..29c09797530fa25e31177cf402ecac6a8f43bb23 100644
--- a/net/minecraft/world/entity/animal/fox/Fox.java --- a/net/minecraft/world/entity/animal/fox/Fox.java
+++ b/net/minecraft/world/entity/animal/fox/Fox.java +++ b/net/minecraft/world/entity/animal/fox/Fox.java
@@ -1082,7 +1082,7 @@ public class Fox extends Animal { @@ -1082,7 +1082,7 @@ public class Fox extends Animal {
@@ -131,10 +131,10 @@ index 3aefbdc3e537bc53bba296c7876dee93c95a77ca..4d79ce89c21ba0b973bbda01bf53665e
} }
diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index 671ad18c0d18f9773ef7b868a8d1d33d574986fb..a2e686c76d7080064c993712e0c0321b48fbb179 100644 index 24e765b67ee7730b4e1f74a8f5de897eaf479f01..89acbf42f9ce83c41bb2167e332e1b20e6e8fa56 100644
--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java --- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -541,7 +541,7 @@ public class EnderDragon extends Mob implements Enemy { @@ -535,7 +535,7 @@ public class EnderDragon extends Mob implements Enemy {
BlockPos blockPos = new BlockPos(x, y, z); BlockPos blockPos = new BlockPos(x, y, z);
BlockState state = level.getBlockState(blockPos); BlockState state = level.getBlockState(blockPos);
if (!state.isAir() && !state.is(BlockTags.DRAGON_TRANSPARENT)) { if (!state.isAir() && !state.is(BlockTags.DRAGON_TRANSPARENT)) {
@@ -144,7 +144,7 @@ index 671ad18c0d18f9773ef7b868a8d1d33d574986fb..a2e686c76d7080064c993712e0c0321b
//flag1 = level.removeBlock(blockPos, false) || flag1; //flag1 = level.removeBlock(blockPos, false) || flag1;
destroyedBlock = true; destroyedBlock = true;
diff --git a/net/minecraft/world/entity/boss/wither/WitherBoss.java b/net/minecraft/world/entity/boss/wither/WitherBoss.java diff --git a/net/minecraft/world/entity/boss/wither/WitherBoss.java b/net/minecraft/world/entity/boss/wither/WitherBoss.java
index 141b64eb1f320d2bc773e99826fc97cc10f39bcd..3e934aee6f651843d861cc87cc1f01a87742edf3 100644 index fb04a6d53cc12038f4c55db84278632582c698fc..30d9d12d67e2adb7d37c2a38ea1a5b528ba4ab06 100644
--- a/net/minecraft/world/entity/boss/wither/WitherBoss.java --- a/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -493,7 +493,7 @@ public class WitherBoss extends Monster implements RangedAttackMob { @@ -493,7 +493,7 @@ public class WitherBoss extends Monster implements RangedAttackMob {
@@ -179,7 +179,7 @@ index 30450300bdf9e4b5ef4293e9c371484ba6aabebc..46a60e17837411e46a543d6f0254d728
} }
diff --git a/net/minecraft/world/entity/monster/Ravager.java b/net/minecraft/world/entity/monster/Ravager.java diff --git a/net/minecraft/world/entity/monster/Ravager.java b/net/minecraft/world/entity/monster/Ravager.java
index 878fee0c45a34c334d30239711231f2ef990e926..e0ffded3500b221d5c65cff9377120e8c6c7d8c6 100644 index 3e2fa1f4e9c820af76ef5f4354ca66fae182da7b..01e09b39ac5385e7cbfa8a38df94884c17f8f8c0 100644
--- a/net/minecraft/world/entity/monster/Ravager.java --- a/net/minecraft/world/entity/monster/Ravager.java
+++ b/net/minecraft/world/entity/monster/Ravager.java +++ b/net/minecraft/world/entity/monster/Ravager.java
@@ -177,7 +177,7 @@ public class Ravager extends Raider { @@ -177,7 +177,7 @@ public class Ravager extends Raider {
@@ -214,7 +214,7 @@ index 355475b12c6f3fcc9fe88ca63ab88cabac9d6fb1..e5a0a199685366f082904eb5e7550f01
continue; continue;
} }
diff --git a/net/minecraft/world/entity/monster/illager/Evoker.java b/net/minecraft/world/entity/monster/illager/Evoker.java diff --git a/net/minecraft/world/entity/monster/illager/Evoker.java b/net/minecraft/world/entity/monster/illager/Evoker.java
index 4de0c340b1fb8baa9ed379ea010ca6d314530268..d091a12ed1df31f945a04f50af1cbb89a16ca0cd 100644 index 212c74328b1f2c4bb8753787f70246249ab5fe75..b6a84372a9d1486998a92fdfa1f44f2158c03a51 100644
--- a/net/minecraft/world/entity/monster/illager/Evoker.java --- a/net/minecraft/world/entity/monster/illager/Evoker.java
+++ b/net/minecraft/world/entity/monster/illager/Evoker.java +++ b/net/minecraft/world/entity/monster/illager/Evoker.java
@@ -334,7 +334,7 @@ public class Evoker extends SpellcasterIllager { @@ -334,7 +334,7 @@ public class Evoker extends SpellcasterIllager {
@@ -240,10 +240,10 @@ index 0d0a86b5c485a60d0e85b3acc6f0cc01ce6c0bfe..356fc7507b58cc38cdf5ee11618ad355
protected boolean canReplaceCurrentItem(final ItemStack newItemStack) { protected boolean canReplaceCurrentItem(final ItemStack newItemStack) {
diff --git a/net/minecraft/world/entity/projectile/Projectile.java b/net/minecraft/world/entity/projectile/Projectile.java diff --git a/net/minecraft/world/entity/projectile/Projectile.java b/net/minecraft/world/entity/projectile/Projectile.java
index 289fe996f5663f82c488d1c861389b83da787ff9..34df1e7ec42ecfb9ec4ef87e9f6a619298668d35 100644 index 2ee2103e78f2b73d1e6df59b92037f219d82e191..47a27f0415a769c90a99d8868f19a8297d4c1d23 100644
--- a/net/minecraft/world/entity/projectile/Projectile.java --- a/net/minecraft/world/entity/projectile/Projectile.java
+++ b/net/minecraft/world/entity/projectile/Projectile.java +++ b/net/minecraft/world/entity/projectile/Projectile.java
@@ -473,7 +473,7 @@ public abstract class Projectile extends Entity implements TraceableEntity { @@ -460,7 +460,7 @@ public abstract class Projectile extends Entity implements TraceableEntity {
@Override @Override
public boolean mayInteract(final ServerLevel level, final BlockPos pos) { public boolean mayInteract(final ServerLevel level, final BlockPos pos) {
Entity owner = this.getOwner(); Entity owner = this.getOwner();
@@ -294,10 +294,10 @@ index 55000ce5010321323bf79007ef8de637a492657f..b7f5f434b8b3abbaab7f65fc591ddf18
// CraftBukkit end // CraftBukkit end
} }
diff --git a/net/minecraft/world/entity/raid/Raider.java b/net/minecraft/world/entity/raid/Raider.java diff --git a/net/minecraft/world/entity/raid/Raider.java b/net/minecraft/world/entity/raid/Raider.java
index d09855134cef0651258db34ea29c443388fd5183..d0a9088a18e6717209f037ae48ce54db13702234 100644 index 72fda1b1a5cd26f98828c130a52835cc6213aed4..f37216b7f2d094ba98ea5eb004b599ad6dd8697d 100644
--- a/net/minecraft/world/entity/raid/Raider.java --- a/net/minecraft/world/entity/raid/Raider.java
+++ b/net/minecraft/world/entity/raid/Raider.java +++ b/net/minecraft/world/entity/raid/Raider.java
@@ -399,7 +399,7 @@ public abstract class Raider extends PatrollingMonster { @@ -400,7 +400,7 @@ public abstract class Raider extends PatrollingMonster {
} }
private boolean cannotPickUpBanner() { private boolean cannotPickUpBanner() {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Setting to reintroduce end void rings
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
index 62236ea8eaf52b5cc47e60d0064a3539bb6b8376..4bdb44ec660ae183735ccb43cf5fe4093d50b696 100644 index b8572c04a4f979defe8677d64a899b0d2eb252f2..f336ac13c6a0a2ccfbe5a7bcc6db7f8b33eccbf9 100644
--- a/net/minecraft/server/MinecraftServer.java --- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java
@@ -1342,6 +1342,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1350,6 +1350,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} }
} }
// Purpur end - config for startup commands // Purpur end - config for startup commands

View File

@@ -49,7 +49,7 @@ index 3a78175273efa24a6bf98ee44fe24a4df71e63ed..86129786c9927fc5aa941207971e28ff
protected Brain<Allay> makeBrain(final Brain.Packed packedBrain) { protected Brain<Allay> makeBrain(final Brain.Packed packedBrain) {
return BRAIN_PROVIDER.makeBrain(this, packedBrain); return BRAIN_PROVIDER.makeBrain(this, packedBrain);
diff --git a/net/minecraft/world/entity/animal/fox/Fox.java b/net/minecraft/world/entity/animal/fox/Fox.java diff --git a/net/minecraft/world/entity/animal/fox/Fox.java b/net/minecraft/world/entity/animal/fox/Fox.java
index 335da522a9b96ebc852b4ed5f22f9fd71aec23a8..ba48b114282939c806523052b2ad82e5041f5d45 100644 index 66001fb6a7264e70f3172ea50c97d0a26214a5fd..af9f37fe2ed01487ed796afb163aa624ca2f1e0a 100644
--- a/net/minecraft/world/entity/animal/fox/Fox.java --- a/net/minecraft/world/entity/animal/fox/Fox.java
+++ b/net/minecraft/world/entity/animal/fox/Fox.java +++ b/net/minecraft/world/entity/animal/fox/Fox.java
@@ -815,6 +815,13 @@ public class Fox extends Animal { @@ -815,6 +815,13 @@ public class Fox extends Animal {
@@ -310,7 +310,7 @@ index 9e893c0c033dcc2273275b92048d9b1a941d93f2..54ba4d2e8305e2d9ba0c9e71bae67bfd
protected void addBehaviourGoals() { protected void addBehaviourGoals() {
this.goalSelector.addGoal(1, new SpearUseGoal<>(this, 1.0, 1.0, 10.0F, 2.0F)); this.goalSelector.addGoal(1, new SpearUseGoal<>(this, 1.0, 1.0, 10.0F, 2.0F));
diff --git a/net/minecraft/world/entity/npc/villager/Villager.java b/net/minecraft/world/entity/npc/villager/Villager.java diff --git a/net/minecraft/world/entity/npc/villager/Villager.java b/net/minecraft/world/entity/npc/villager/Villager.java
index b2130b1222321d066fdae4786fb25f59bbcf3fa5..e715a0b96a0758b6675091d3b9ce154ea41fd01c 100644 index f439a0b0830e74be8c123a5b2e55933671715f74..04b1c33e485511b2ddc169f2efdc89b5011e2f25 100644
--- a/net/minecraft/world/entity/npc/villager/Villager.java --- a/net/minecraft/world/entity/npc/villager/Villager.java
+++ b/net/minecraft/world/entity/npc/villager/Villager.java +++ b/net/minecraft/world/entity/npc/villager/Villager.java
@@ -298,6 +298,13 @@ public class Villager extends AbstractVillager implements VillagerDataHolder, Re @@ -298,6 +298,13 @@ public class Villager extends AbstractVillager implements VillagerDataHolder, Re
@@ -328,10 +328,10 @@ index b2130b1222321d066fdae4786fb25f59bbcf3fa5..e715a0b96a0758b6675091d3b9ce154e
public Brain<Villager> getBrain() { public Brain<Villager> getBrain() {
return (Brain<Villager>) super.getBrain(); return (Brain<Villager>) super.getBrain();
diff --git a/net/minecraft/world/entity/raid/Raider.java b/net/minecraft/world/entity/raid/Raider.java diff --git a/net/minecraft/world/entity/raid/Raider.java b/net/minecraft/world/entity/raid/Raider.java
index d0a9088a18e6717209f037ae48ce54db13702234..5e5c5a8362537c6ff205eed7223a3bbdbf05da4a 100644 index f37216b7f2d094ba98ea5eb004b599ad6dd8697d..0942992a5036458e98233450f465fe3bab523663 100644
--- a/net/minecraft/world/entity/raid/Raider.java --- a/net/minecraft/world/entity/raid/Raider.java
+++ b/net/minecraft/world/entity/raid/Raider.java +++ b/net/minecraft/world/entity/raid/Raider.java
@@ -399,7 +399,7 @@ public abstract class Raider extends PatrollingMonster { @@ -400,7 +400,7 @@ public abstract class Raider extends PatrollingMonster {
} }
private boolean cannotPickUpBanner() { private boolean cannotPickUpBanner() {

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/core/dispenser/DispenseItemBehavior.java --- a/net/minecraft/core/dispenser/DispenseItemBehavior.java
+++ b/net/minecraft/core/dispenser/DispenseItemBehavior.java +++ b/net/minecraft/core/dispenser/DispenseItemBehavior.java
@@ -690,5 +_,22 @@ @@ -691,5 +_,22 @@
DispenserBlock.registerBehavior(Items.TNT_MINECART, new MinecartDispenseItemBehavior(EntityType.TNT_MINECART)); DispenserBlock.registerBehavior(Items.TNT_MINECART, new MinecartDispenseItemBehavior(EntityType.TNT_MINECART));
DispenserBlock.registerBehavior(Items.HOPPER_MINECART, new MinecartDispenseItemBehavior(EntityType.HOPPER_MINECART)); DispenserBlock.registerBehavior(Items.HOPPER_MINECART, new MinecartDispenseItemBehavior(EntityType.HOPPER_MINECART));
DispenserBlock.registerBehavior(Items.COMMAND_BLOCK_MINECART, new MinecartDispenseItemBehavior(EntityType.COMMAND_BLOCK_MINECART)); DispenserBlock.registerBehavior(Items.COMMAND_BLOCK_MINECART, new MinecartDispenseItemBehavior(EntityType.COMMAND_BLOCK_MINECART));

View File

@@ -25,7 +25,7 @@
getTPS(this.tickTimes1m, interval), getTPS(this.tickTimes1m, interval),
getTPS(this.tickTimes5m, interval), getTPS(this.tickTimes5m, interval),
getTPS(this.tickTimes15m, interval) getTPS(this.tickTimes15m, interval)
@@ -1038,6 +_,15 @@ @@ -1046,6 +_,15 @@
LOGGER.info("Stopping server"); LOGGER.info("Stopping server");
Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - Perf: Async command map building; Shutdown and don't bother finishing Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - Perf: Async command map building; Shutdown and don't bother finishing
@@ -41,7 +41,7 @@
// CraftBukkit start // CraftBukkit start
if (this.server != null) { if (this.server != null) {
this.server.spark.disable(); // Paper - spark this.server.spark.disable(); // Paper - spark
@@ -1132,6 +_,8 @@ @@ -1140,6 +_,8 @@
this.safeShutdown(wait, false); this.safeShutdown(wait, false);
} }
public void safeShutdown(final boolean wait, final boolean isRestarting) { public void safeShutdown(final boolean wait, final boolean isRestarting) {
@@ -50,7 +50,7 @@
this.isRestarting = isRestarting; this.isRestarting = isRestarting;
this.hasLoggedStop = true; // Paper - Debugging this.hasLoggedStop = true; // Paper - Debugging
if (this.isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread("Server stopped"); // Paper - Debugging if (this.isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread("Server stopped"); // Paper - Debugging
@@ -1313,11 +_,21 @@ @@ -1321,11 +_,21 @@
} }
// Paper end - Add onboarding message for initial server start // Paper end - Add onboarding message for initial server start
// Paper start - Improve outdated version checking // Paper start - Improve outdated version checking
@@ -73,7 +73,7 @@
while (this.running) { while (this.running) {
final long tickStart = System.nanoTime(); // Paper - improve tick loop final long tickStart = System.nanoTime(); // Paper - improve tick loop
long thisTickNanos; // Paper - improve tick loop - diff on change, expect this to be tick interval long thisTickNanos; // Paper - improve tick loop - diff on change, expect this to be tick interval
@@ -1331,9 +_,11 @@ @@ -1339,9 +_,11 @@
final long ticksBehind = Math.max(1L, this.tickSchedule.getPeriodsAhead(thisTickNanos, tickStart)); final long ticksBehind = Math.max(1L, this.tickSchedule.getPeriodsAhead(thisTickNanos, tickStart));
final long catchup = (long)Math.max( final long catchup = (long)Math.max(
1, 1,
@@ -86,7 +86,7 @@
// adjust ticksBehind so that it is not greater-than catchup // adjust ticksBehind so that it is not greater-than catchup
if (ticksBehind - catchup > 0L) { if (ticksBehind - catchup > 0L) {
final long difference = ticksBehind - catchup; final long difference = ticksBehind - catchup;
@@ -1943,7 +_,7 @@ @@ -1964,7 +_,7 @@
} }
public String getServerModName() { public String getServerModName() {

View File

@@ -161,7 +161,7 @@
weatherData.setThundering(false, org.bukkit.event.weather.ThunderChangeEvent.Cause.SLEEP); // Paper - Add cause to Weather/ThunderChangeEvents weatherData.setThundering(false, org.bukkit.event.weather.ThunderChangeEvent.Cause.SLEEP); // Paper - Add cause to Weather/ThunderChangeEvents
// CraftBukkit start // CraftBukkit start
// If we stop due to everyone sleeping we should reset the weather duration to some other random value. // If we stop due to everyone sleeping we should reset the weather duration to some other random value.
@@ -1970,7 +_,7 @@ @@ -1979,7 +_,7 @@
Explosion.BlockInteraction blockInteraction = switch (interactionType) { Explosion.BlockInteraction blockInteraction = switch (interactionType) {
case NONE -> Explosion.BlockInteraction.KEEP; case NONE -> Explosion.BlockInteraction.KEEP;
case BLOCK -> this.getDestroyType(GameRules.BLOCK_EXPLOSION_DROP_DECAY); case BLOCK -> this.getDestroyType(GameRules.BLOCK_EXPLOSION_DROP_DECAY);
@@ -170,7 +170,7 @@
? this.getDestroyType(GameRules.MOB_EXPLOSION_DROP_DECAY) ? this.getDestroyType(GameRules.MOB_EXPLOSION_DROP_DECAY)
: Explosion.BlockInteraction.KEEP; : Explosion.BlockInteraction.KEEP;
case TNT -> this.getDestroyType(GameRules.TNT_EXPLOSION_DROP_DECAY); case TNT -> this.getDestroyType(GameRules.TNT_EXPLOSION_DROP_DECAY);
@@ -2901,7 +_,7 @@ @@ -2910,7 +_,7 @@
// Spigot start // Spigot start
if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message
// Paper start - Fix merchant inventory not closing on entity removal // Paper start - Fix merchant inventory not closing on entity removal

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/server/level/ServerPlayer.java --- a/net/minecraft/server/level/ServerPlayer.java
+++ b/net/minecraft/server/level/ServerPlayer.java +++ b/net/minecraft/server/level/ServerPlayer.java
@@ -448,6 +_,9 @@ @@ -454,6 +_,9 @@
public boolean isRealPlayer; // Paper public boolean isRealPlayer; // Paper
public com.destroystokyo.paper.event.entity.@Nullable PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper - PlayerNaturallySpawnCreaturesEvent public com.destroystokyo.paper.event.entity.@Nullable PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper - PlayerNaturallySpawnCreaturesEvent
public org.bukkit.event.player.PlayerQuitEvent.@Nullable QuitReason quitReason = null; // Paper - Add API for quit reason; there are a lot of changes to do if we change all methods leading to the event public org.bukkit.event.player.PlayerQuitEvent.@Nullable QuitReason quitReason = null; // Paper - Add API for quit reason; there are a lot of changes to do if we change all methods leading to the event
@@ -10,7 +10,7 @@
// Paper start - rewrite chunk system // Paper start - rewrite chunk system
private ca.spottedleaf.moonrise.patches.chunk_system.player.RegionizedPlayerChunkLoader.PlayerChunkLoaderData chunkLoader; private ca.spottedleaf.moonrise.patches.chunk_system.player.RegionizedPlayerChunkLoader.PlayerChunkLoaderData chunkLoader;
@@ -521,6 +_,9 @@ @@ -527,6 +_,9 @@
this.respawnConfig = input.read("respawn", ServerPlayer.RespawnConfig.CODEC).orElse(null); this.respawnConfig = input.read("respawn", ServerPlayer.RespawnConfig.CODEC).orElse(null);
this.spawnExtraParticlesOnFall = input.getBooleanOr("spawn_extra_particles_on_fall", false); this.spawnExtraParticlesOnFall = input.getBooleanOr("spawn_extra_particles_on_fall", false);
this.raidOmenPosition = input.read("raid_omen_position", BlockPos.CODEC).orElse(null); this.raidOmenPosition = input.read("raid_omen_position", BlockPos.CODEC).orElse(null);
@@ -20,7 +20,7 @@
// Paper start - Expand PlayerGameModeChangeEvent // Paper start - Expand PlayerGameModeChangeEvent
this.loadGameTypes(input); this.loadGameTypes(input);
} }
@@ -562,6 +_,9 @@ @@ -568,6 +_,9 @@
output.store("ShoulderEntityRight", CompoundTag.CODEC, this.getShoulderEntityRight()); output.store("ShoulderEntityRight", CompoundTag.CODEC, this.getShoulderEntityRight());
} }
this.getBukkitEntity().setExtraData(output); // CraftBukkit this.getBukkitEntity().setExtraData(output); // CraftBukkit
@@ -30,7 +30,7 @@
} }
private void saveParentVehicle(final ValueOutput playerOutput) { private void saveParentVehicle(final ValueOutput playerOutput) {
@@ -1197,6 +_,7 @@ @@ -1203,6 +_,7 @@
// Paper - moved up to sendClientboundPlayerCombatKillPacket() // Paper - moved up to sendClientboundPlayerCombatKillPacket()
sendClientboundPlayerCombatKillPacket(event.getShowDeathMessages(), deathScreenMessage); // Paper - Expand PlayerDeathEvent sendClientboundPlayerCombatKillPacket(event.getShowDeathMessages(), deathScreenMessage); // Paper - Expand PlayerDeathEvent
Team team = this.getTeam(); Team team = this.getTeam();
@@ -38,7 +38,7 @@
if (team == null || team.getDeathMessageVisibility() == Team.Visibility.ALWAYS) { if (team == null || team.getDeathMessageVisibility() == Team.Visibility.ALWAYS) {
this.server.getPlayerList().broadcastSystemMessage(deathMessage, false); this.server.getPlayerList().broadcastSystemMessage(deathMessage, false);
} else if (team.getDeathMessageVisibility() == Team.Visibility.HIDE_FOR_OTHER_TEAMS) { } else if (team.getDeathMessageVisibility() == Team.Visibility.HIDE_FOR_OTHER_TEAMS) {
@@ -1305,6 +_,13 @@ @@ -1311,6 +_,13 @@
if (this.isInvulnerableTo(level, source)) { if (this.isInvulnerableTo(level, source)) {
return false; return false;
} else { } else {
@@ -52,15 +52,15 @@
Entity entity = source.getEntity(); Entity entity = source.getEntity();
if (!( // Paper - split the if statement. If below statement is false, hurtServer would not have been evaluated. Return false. if (!( // Paper - split the if statement. If below statement is false, hurtServer would not have been evaluated. Return false.
!(entity instanceof Player playerx && !this.canHarmPlayer(playerx)) !(entity instanceof Player playerx && !this.canHarmPlayer(playerx))
@@ -1564,6 +_,7 @@ @@ -1570,6 +_,7 @@
profiler.pop(); profiler.pop();
profiler.push("placing"); profiler.push("placing");
+ this.portalPos = org.bukkit.craftbukkit.util.CraftLocation.toBlockPosition(exit); // Purpur - Fix stuck in portals + this.portalPos = org.bukkit.craftbukkit.util.CraftLocation.toBlockPos(exit); // Purpur - Fix stuck in portals
this.setServerLevel(newLevel); this.setServerLevel(newLevel);
this.connection.internalTeleport(PositionMoveRotation.of(transition), transition.relatives()); // CraftBukkit - use internal teleport without event this.connection.internalTeleport(PositionMoveRotation.of(transition), transition.relatives()); // CraftBukkit - use internal teleport without event
this.connection.resetPosition(); this.connection.resetPosition();
@@ -1680,7 +_,7 @@ @@ -1686,7 +_,7 @@
), ),
monster -> monster.isPreventingPlayerRest(this.level(), this) monster -> monster.isPreventingPlayerRest(this.level(), this)
); );
@@ -69,7 +69,7 @@
return Either.left(Player.BedSleepingProblem.NOT_SAFE); return Either.left(Player.BedSleepingProblem.NOT_SAFE);
} }
} }
@@ -1720,8 +_,19 @@ @@ -1726,8 +_,19 @@
CriteriaTriggers.SLEPT_IN_BED.trigger(this); CriteriaTriggers.SLEPT_IN_BED.trigger(this);
}); });
if (!this.level().canSleepThroughNights()) { if (!this.level().canSleepThroughNights()) {
@@ -90,7 +90,7 @@
this.level().updateSleepingPlayerList(); this.level().updateSleepingPlayerList();
return result; return result;
@@ -1815,6 +_,7 @@ @@ -1821,6 +_,7 @@
@Override @Override
public void openTextEdit(final SignBlockEntity sign, final boolean isFrontText) { public void openTextEdit(final SignBlockEntity sign, final boolean isFrontText) {
@@ -98,7 +98,7 @@
this.connection.send(new ClientboundBlockUpdatePacket(this.level(), sign.getBlockPos())); this.connection.send(new ClientboundBlockUpdatePacket(this.level(), sign.getBlockPos()));
this.connection.send(new ClientboundOpenSignEditorPacket(sign.getBlockPos(), isFrontText)); this.connection.send(new ClientboundOpenSignEditorPacket(sign.getBlockPos(), isFrontText));
} }
@@ -2158,6 +_,26 @@ @@ -2164,6 +_,26 @@
this.lastSentExp = -1; // CraftBukkit - Added to reset this.lastSentExp = -1; // CraftBukkit - Added to reset
} }
@@ -125,7 +125,7 @@
@Override @Override
public void completeUsingItem() { public void completeUsingItem() {
if (!this.useItem.isEmpty() && this.isUsingItem()) { if (!this.useItem.isEmpty() && this.isUsingItem()) {
@@ -2397,6 +_,20 @@ @@ -2403,6 +_,20 @@
); );
} }
@@ -146,7 +146,7 @@
@Override @Override
public void sendSystemMessage(final Component message) { public void sendSystemMessage(final Component message) {
this.sendSystemMessage(message, false); this.sendSystemMessage(message, false);
@@ -2548,7 +_,67 @@ @@ -2554,7 +_,67 @@
public void resetLastActionTime() { public void resetLastActionTime() {
this.lastActionTime = Util.getMillis(); this.lastActionTime = Util.getMillis();
@@ -215,7 +215,7 @@
public ServerStatsCounter getStats() { public ServerStatsCounter getStats() {
return this.stats; return this.stats;
@@ -3173,4 +_,65 @@ @@ -3179,4 +_,65 @@
return (org.bukkit.craftbukkit.entity.CraftPlayer) super.getBukkitEntity(); return (org.bukkit.craftbukkit.entity.CraftPlayer) super.getBukkitEntity();
} }
// CraftBukkit end // CraftBukkit end

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/server/level/ServerPlayerGameMode.java --- a/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -370,6 +_,7 @@ @@ -371,6 +_,7 @@
} }
return false; return false;
} }
@@ -8,7 +8,7 @@
} }
// CraftBukkit end // CraftBukkit end
@@ -500,6 +_,7 @@ @@ -501,6 +_,7 @@
public InteractionResult useItemOn( public InteractionResult useItemOn(
final ServerPlayer player, final Level level, final ItemStack itemStack, final InteractionHand hand, final BlockHitResult hitResult final ServerPlayer player, final Level level, final ItemStack itemStack, final InteractionHand hand, final BlockHitResult hitResult
) { ) {
@@ -16,7 +16,7 @@
BlockPos pos = hitResult.getBlockPos(); BlockPos pos = hitResult.getBlockPos();
BlockState state = level.getBlockState(pos); BlockState state = level.getBlockState(pos);
boolean cancelledBlock = false; boolean cancelledBlock = false;
@@ -548,7 +_,7 @@ @@ -549,7 +_,7 @@
boolean haveSomethingInOurHands = !player.getMainHandItem().isEmpty() || !player.getOffhandItem().isEmpty(); boolean haveSomethingInOurHands = !player.getMainHandItem().isEmpty() || !player.getOffhandItem().isEmpty();
boolean suppressUsingBlock = player.isSecondaryUseActive() && haveSomethingInOurHands; boolean suppressUsingBlock = player.isSecondaryUseActive() && haveSomethingInOurHands;
ItemStack usedItemStack = itemStack.copy(); ItemStack usedItemStack = itemStack.copy();
@@ -25,7 +25,7 @@
InteractionResult itemUse = state.useItemOn(player.getItemInHand(hand), level, player, hand, hitResult); InteractionResult itemUse = state.useItemOn(player.getItemInHand(hand), level, player, hand, hitResult);
if (itemUse.consumesAction()) { if (itemUse.consumesAction()) {
CriteriaTriggers.ITEM_USED_ON_BLOCK.trigger(player, pos, usedItemStack); CriteriaTriggers.ITEM_USED_ON_BLOCK.trigger(player, pos, usedItemStack);
@@ -594,4 +_,18 @@ @@ -595,4 +_,18 @@
public void setLevel(final ServerLevel newLevel) { public void setLevel(final ServerLevel newLevel) {
this.level = newLevel; this.level = newLevel;
} }

View File

@@ -1,14 +1,19 @@
--- a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java --- a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
@@ -44,6 +_,7 @@ @@ -40,10 +_,11 @@
private long keepAliveChallenge; public final Connection connection; // Paper
private final boolean transferred;
//private long keepAliveTime; // Paper - improve keepalives
- //private boolean keepAlivePending; // Paper - improve keepalives
+ private boolean keepAlivePending; // Paper - improve keepalives // Purpur - Alternative Keepalive Handling
//private long keepAliveChallenge; // Paper - improve keepalives
private long closedListenerTime; private long closedListenerTime;
private boolean closed = false; private boolean closed = false;
+ private it.unimi.dsi.fastutil.longs.LongList keepAlives = new it.unimi.dsi.fastutil.longs.LongArrayList(); // Purpur - Alternative Keepalive Handling + private it.unimi.dsi.fastutil.longs.LongList keepAlives = new it.unimi.dsi.fastutil.longs.LongArrayList(); // Purpur - Alternative Keepalive Handling
private int latency; private volatile int latency; // Paper - improve keepalives - make volatile
private final io.papermc.paper.util.KeepAlive keepAlive; // Paper - improve keepalives
private volatile boolean suspendFlushingOnServerThread = false; private volatile boolean suspendFlushingOnServerThread = false;
// CraftBukkit start @@ -54,6 +_,10 @@
@@ -53,6 +_,10 @@
public final java.util.Map<java.util.UUID, net.kyori.adventure.resource.ResourcePackCallback> packCallbacks = new java.util.concurrent.ConcurrentHashMap<>(); // Paper - adventure resource pack callbacks public final java.util.Map<java.util.UUID, net.kyori.adventure.resource.ResourcePackCallback> packCallbacks = new java.util.concurrent.ConcurrentHashMap<>(); // Paper - adventure resource pack callbacks
private static final long KEEPALIVE_LIMIT = Long.getLong("paper.playerconnection.keepalive", 30) * 1000; // Paper - provide property to set keepalive limit private static final long KEEPALIVE_LIMIT = Long.getLong("paper.playerconnection.keepalive", 30) * 1000; // Paper - provide property to set keepalive limit
protected static final net.minecraft.resources.Identifier MINECRAFT_BRAND = net.minecraft.resources.Identifier.withDefaultNamespace("brand"); // Paper - Brand support protected static final net.minecraft.resources.Identifier MINECRAFT_BRAND = net.minecraft.resources.Identifier.withDefaultNamespace("brand"); // Paper - Brand support
@@ -19,24 +24,26 @@
// Paper start - retain certain values // Paper start - retain certain values
public @Nullable String playerBrand; public @Nullable String playerBrand;
public final java.util.Set<String> pluginMessagerChannels; public final java.util.Set<String> pluginMessagerChannels;
@@ -100,6 +_,16 @@ @@ -105,6 +_,18 @@
// Paper start - improve keepalives
@Override long now = System.nanoTime();
public void handleKeepAlive(final ServerboundKeepAlivePacket packet) { io.papermc.paper.util.KeepAlive.PendingKeepAlive pending = this.keepAlive.pendingKeepAlives.peek();
+ // Purpur start - Alternative Keepalive Handling + // Purpur start - Alternative Keepalive Handling
+ if (org.purpurmc.purpur.PurpurConfig.useAlternateKeepAlive) { + if (org.purpurmc.purpur.PurpurConfig.useAlternateKeepAlive) {
+ if (this.keepAlivePending && !keepAlives.isEmpty() && keepAlives.contains(packet.getId())) { + if (this.keepAlivePending && !keepAlives.isEmpty() && keepAlives.contains(packet.getId())) {
+ int ping = (int) (Util.getMillis() - packet.getId()); + int ping = (int) (Util.getMillis() - packet.getId());
+ this.latency = (this.latency * 3 + ping) / 4; + int updatedLatency = (this.latency * 3 + ping) / 4;
+ this.latency = updatedLatency;
+ this.keepAlivePending = false; + this.keepAlivePending = false;
+ keepAlives.clear(); // we got a valid response, lets roll with it and forget the rest + keepAlives.clear(); // we got a valid response, lets roll with it and forget the rest
+ } + }
+ return;
+ } else + } else
+ // Purpur end - Alternative Keepalive Handling + // Purpur end - Alternative Keepalive Handling
if (this.keepAlivePending && packet.getId() == this.keepAliveChallenge) { if (pending != null && pending.challengeId() == packet.getId()) {
int time = (int)(Util.getMillis() - this.keepAliveTime); this.keepAlive.pendingKeepAlives.remove(pending);
this.latency = (this.latency * 3 + time) / 4;
@@ -149,6 +_,12 @@ @@ -179,6 +_,12 @@
return; return;
} }
@@ -49,24 +56,27 @@
if (identifier.equals(MINECRAFT_BRAND)) { if (identifier.equals(MINECRAFT_BRAND)) {
this.playerBrand = new net.minecraft.network.FriendlyByteBuf(io.netty.buffer.Unpooled.wrappedBuffer(data)).readUtf(256); this.playerBrand = new net.minecraft.network.FriendlyByteBuf(io.netty.buffer.Unpooled.wrappedBuffer(data)).readUtf(256);
} }
@@ -236,6 +_,20 @@ @@ -264,6 +_,23 @@
// Paper start - give clients a longer time to respond to pings as per pre 1.12.2 timings Profiler.get().push("keepAlive");
// This should effectively place the keepalive handling back to "as it was" before 1.12.2 long now = Util.getMillis();
final long elapsedTime = now - this.keepAliveTime; // Paper start - improve keepalives
+ // Purpur start - Alternative Keepalive Handling + // Purpur start - Alternative Keepalive Handling
+ if (org.purpurmc.purpur.PurpurConfig.useAlternateKeepAlive) { + if (org.purpurmc.purpur.PurpurConfig.useAlternateKeepAlive) {
+ if (elapsedTime >= 1000L) { // 1 second + if (this.checkIfClosed(now) && !this.processedDisconnect) {
+ if (this.keepAlivePending && !this.processedDisconnect && keepAlives.size() * 1000L >= KEEPALIVE_LIMIT) { + long currTime = System.nanoTime();
+ this.disconnect(TIMEOUT_DISCONNECTION_MESSAGE, io.papermc.paper.connection.DisconnectionReason.TIMEOUT); // Paper - kick event cause + if ((currTime - this.keepAlive.lastKeepAliveTx) >= java.util.concurrent.TimeUnit.SECONDS.toNanos(1L)) { // 1 second
+ } else if (this.checkIfClosed(now)) { + this.keepAlive.lastKeepAliveTx = currTime;
+ this.keepAlivePending = true; + if (this.keepAlivePending && !this.processedDisconnect && keepAlives.size() * 1000L >= KEEPALIVE_LIMIT) {
+ this.keepAliveTime = now; // hijack this field for 1 second intervals + this.disconnect(TIMEOUT_DISCONNECTION_MESSAGE, io.papermc.paper.connection.DisconnectionReason.TIMEOUT);
+ this.keepAlives.add(now); // currentTime is ID + } else if (this.checkIfClosed(now)) {
+ this.send(new ClientboundKeepAlivePacket(now)); + this.keepAlivePending = true;
+ this.keepAlives.add(now); // currentTime is ID
+ this.send(new ClientboundKeepAlivePacket(now));
+ }
+ } + }
+ } + }
+ } else + } else
+ // Purpur end - Alternative Keepalive Handling + // Purpur end - Alternative Keepalive Handling
if (!this.isSingleplayerOwner() && elapsedTime >= 15000L) { // use vanilla's 15000L between keep alive packets if (this.checkIfClosed(now) && !this.processedDisconnect) {
if (this.keepAlivePending) { long currTime = System.nanoTime();
if (!this.processedDisconnect && elapsedTime >= KEEPALIVE_LIMIT) { // check keepalive limit, don't fire if already disconnected

View File

@@ -34,7 +34,7 @@
this.disconnect(Component.translatable("multiplayer.disconnect.idling"), org.bukkit.event.player.PlayerKickEvent.Cause.IDLING); // Paper - kick event cause this.disconnect(Component.translatable("multiplayer.disconnect.idling"), org.bukkit.event.player.PlayerKickEvent.Cause.IDLING); // Paper - kick event cause
} }
} }
@@ -682,6 +_,8 @@ @@ -693,6 +_,8 @@
this.lastYaw = to.getYaw(); this.lastYaw = to.getYaw();
this.lastPitch = to.getPitch(); this.lastPitch = to.getPitch();
@@ -43,7 +43,7 @@
Location oldTo = to.clone(); Location oldTo = to.clone();
PlayerMoveEvent event = new PlayerMoveEvent(player, from, to); PlayerMoveEvent event = new PlayerMoveEvent(player, from, to);
this.cserver.getPluginManager().callEvent(event); this.cserver.getPluginManager().callEvent(event);
@@ -738,6 +_,7 @@ @@ -772,6 +_,7 @@
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.level()); PacketUtils.ensureRunningOnSameThread(packet, this, this.player.level());
if (packet.getId() == this.awaitingTeleport) { if (packet.getId() == this.awaitingTeleport) {
if (this.awaitingPositionFromClient == null) { if (this.awaitingPositionFromClient == null) {
@@ -51,7 +51,7 @@
this.disconnect(Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause this.disconnect(Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause
return; return;
} }
@@ -1306,6 +_,10 @@ @@ -1340,6 +_,10 @@
final int maxBookPageSize = pageMax.intValue(); final int maxBookPageSize = pageMax.intValue();
final double multiplier = Math.clamp(io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.totalMultiplier, 0.3D, 1D); final double multiplier = Math.clamp(io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.totalMultiplier, 0.3D, 1D);
long byteAllowed = maxBookPageSize; long byteAllowed = maxBookPageSize;
@@ -62,7 +62,7 @@
for (final String page : pageList) { for (final String page : pageList) {
final int byteLength = page.getBytes(java.nio.charset.StandardCharsets.UTF_8).length; final int byteLength = page.getBytes(java.nio.charset.StandardCharsets.UTF_8).length;
byteTotal += byteLength; byteTotal += byteLength;
@@ -1330,7 +_,8 @@ @@ -1364,7 +_,8 @@
} }
if (byteTotal > byteAllowed) { if (byteTotal > byteAllowed) {
@@ -72,7 +72,7 @@
this.disconnectAsync(Component.literal("Book too large!"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause // Paper - add proper async disconnect this.disconnectAsync(Component.literal("Book too large!"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause // Paper - add proper async disconnect
return; return;
} }
@@ -1349,31 +_,45 @@ @@ -1383,31 +_,45 @@
Optional<String> title = packet.title(); Optional<String> title = packet.title();
title.ifPresent(contents::add); title.ifPresent(contents::add);
contents.addAll(packet.pages()); contents.addAll(packet.pages());
@@ -122,7 +122,7 @@
writtenBook.set( writtenBook.set(
DataComponents.WRITTEN_BOOK_CONTENT, new WrittenBookContent(this.filterableFromOutgoing(title), this.player.getPlainTextName(), 0, pages, true) DataComponents.WRITTEN_BOOK_CONTENT, new WrittenBookContent(this.filterableFromOutgoing(title), this.player.getPlainTextName(), 0, pages, true)
); );
@@ -1386,6 +_,16 @@ @@ -1420,6 +_,16 @@
return this.player.isTextFilteringEnabled() ? Filterable.passThrough(text.filteredOrEmpty()) : Filterable.from(text); return this.player.isTextFilteringEnabled() ? Filterable.passThrough(text.filteredOrEmpty()) : Filterable.from(text);
} }
@@ -139,7 +139,7 @@
@Override @Override
public void handleEntityTagQuery(final ServerboundEntityTagQueryPacket packet) { public void handleEntityTagQuery(final ServerboundEntityTagQueryPacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.level()); PacketUtils.ensureRunningOnSameThread(packet, this, this.player.level());
@@ -1425,7 +_,15 @@ @@ -1459,7 +_,15 @@
@Override @Override
public void handleMovePlayer(final ServerboundMovePlayerPacket packet) { public void handleMovePlayer(final ServerboundMovePlayerPacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.level()); PacketUtils.ensureRunningOnSameThread(packet, this, this.player.level());
@@ -156,7 +156,7 @@
this.disconnect(Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause this.disconnect(Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause
} else { } else {
ServerLevel level = this.player.level(); ServerLevel level = this.player.level();
@@ -1609,7 +_,7 @@ @@ -1644,7 +_,7 @@
movedWrongly = true; movedWrongly = true;
if (event.getLogWarning()) if (event.getLogWarning())
// Paper end // Paper end
@@ -165,7 +165,7 @@
} // Paper } // Paper
} }
@@ -1664,6 +_,8 @@ @@ -1709,6 +_,8 @@
this.lastYaw = to.getYaw(); this.lastYaw = to.getYaw();
this.lastPitch = to.getPitch(); this.lastPitch = to.getPitch();
@@ -174,7 +174,7 @@
Location oldTo = to.clone(); Location oldTo = to.clone();
PlayerMoveEvent event = new PlayerMoveEvent(player, from, to); PlayerMoveEvent event = new PlayerMoveEvent(player, from, to);
this.cserver.getPluginManager().callEvent(event); this.cserver.getPluginManager().callEvent(event);
@@ -1719,6 +_,13 @@ @@ -1764,6 +_,13 @@
this.player.tryResetCurrentImpulseContext(); this.player.tryResetCurrentImpulseContext();
} }
@@ -188,7 +188,7 @@
this.player.checkMovementStatistics(this.player.getX() - startX, this.player.getY() - startY, this.player.getZ() - startZ); this.player.checkMovementStatistics(this.player.getX() - startX, this.player.getY() - startY, this.player.getZ() - startZ);
this.lastGoodX = this.player.getX(); this.lastGoodX = this.player.getX();
this.lastGoodY = this.player.getY(); this.lastGoodY = this.player.getY();
@@ -1739,6 +_,17 @@ @@ -1784,6 +_,17 @@
} }
} }
@@ -206,7 +206,7 @@
private boolean shouldCheckPlayerMovement(final boolean isFallFlying) { private boolean shouldCheckPlayerMovement(final boolean isFallFlying) {
if (this.isSingleplayerOwner()) { if (this.isSingleplayerOwner()) {
return false; return false;
@@ -2150,6 +_,7 @@ @@ -2228,6 +_,7 @@
boolean cancelled; boolean cancelled;
if (hitResult == null || hitResult.getType() != HitResult.Type.BLOCK) { if (hitResult == null || hitResult.getType() != HitResult.Type.BLOCK) {
@@ -214,7 +214,7 @@
org.bukkit.event.player.PlayerInteractEvent event = CraftEventFactory.callPlayerInteractEvent(this.player, Action.RIGHT_CLICK_AIR, itemStack, hand); org.bukkit.event.player.PlayerInteractEvent event = CraftEventFactory.callPlayerInteractEvent(this.player, Action.RIGHT_CLICK_AIR, itemStack, hand);
cancelled = event.useItemInHand() == Event.Result.DENY; cancelled = event.useItemInHand() == Event.Result.DENY;
} else { } else {
@@ -2791,6 +_,7 @@ @@ -2869,6 +_,7 @@
ItemStack mainHandItem = this.player.getMainHandItem(); ItemStack mainHandItem = this.player.getMainHandItem();
if (this.player.isWithinAttackRange(mainHandItem, targetBounds, io.papermc.paper.configuration.GlobalConfiguration.get().misc.clientInteractionLeniencyDistance.or(3.0))) { // Paper - configurable lenience if (this.player.isWithinAttackRange(mainHandItem, targetBounds, io.papermc.paper.configuration.GlobalConfiguration.get().misc.clientInteractionLeniencyDistance.or(3.0))) { // Paper - configurable lenience
if (!mainHandItem.has(DataComponents.PIERCING_WEAPON)) { if (!mainHandItem.has(DataComponents.PIERCING_WEAPON)) {
@@ -222,7 +222,7 @@
if (target instanceof ItemEntity if (target instanceof ItemEntity
|| target instanceof ExperienceOrb || target instanceof ExperienceOrb
|| target == this.player || target == this.player
@@ -3572,7 +_,7 @@ @@ -3650,7 +_,7 @@
@Override @Override
public void handleChangeGameMode(final ServerboundChangeGameModePacket packet) { public void handleChangeGameMode(final ServerboundChangeGameModePacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.level()); PacketUtils.ensureRunningOnSameThread(packet, this, this.player.level());

View File

@@ -8,7 +8,7 @@
// CraftBukkit start - moved down // CraftBukkit start - moved down
LOGGER.info( LOGGER.info(
"{}[{}] logged in with entity id {} at ([{}]{}, {}, {})", // Paper - add world identifier "{}[{}] logged in with entity id {} at ([{}]{}, {}, {})", // Paper - add world identifier
@@ -436,6 +_,7 @@ @@ -437,6 +_,7 @@
} }
public net.kyori.adventure.text.@Nullable Component remove(final ServerPlayer player, final net.kyori.adventure.text.Component leaveMessage) { public net.kyori.adventure.text.@Nullable Component remove(final ServerPlayer player, final net.kyori.adventure.text.Component leaveMessage) {
// Paper end - Fix kick event leave message not being sent // Paper end - Fix kick event leave message not being sent
@@ -16,7 +16,7 @@
ServerLevel level = player.level(); ServerLevel level = player.level();
player.awardStat(Stats.LEAVE_GAME); player.awardStat(Stats.LEAVE_GAME);
// CraftBukkit start - Quitting must be before we do final save of data, in case plugins need to modify it // CraftBukkit start - Quitting must be before we do final save of data, in case plugins need to modify it
@@ -771,6 +_,20 @@ @@ -772,6 +_,20 @@
} }
} }
@@ -37,7 +37,7 @@
public void broadcastAll(final Packet<?> packet, final ResourceKey<Level> dimension) { public void broadcastAll(final Packet<?> packet, final ResourceKey<Level> dimension) {
for (ServerPlayer player : this.players) { for (ServerPlayer player : this.players) {
if (player.level().dimension() == dimension) { if (player.level().dimension() == dimension) {
@@ -864,6 +_,7 @@ @@ -865,6 +_,7 @@
case ADMINS -> EntityEvent.PERMISSION_LEVEL_ADMINS; case ADMINS -> EntityEvent.PERMISSION_LEVEL_ADMINS;
case OWNERS -> EntityEvent.PERMISSION_LEVEL_OWNERS; case OWNERS -> EntityEvent.PERMISSION_LEVEL_OWNERS;
}; };
@@ -45,7 +45,7 @@
player.connection.send(new ClientboundEntityEventPacket(player, eventId)); player.connection.send(new ClientboundEntityEventPacket(player, eventId));
} }
@@ -875,7 +_,7 @@ @@ -876,7 +_,7 @@
// Paper start - whitelist verify event / login event // Paper start - whitelist verify event / login event
public LoginResult canBypassFullServerLogin(final NameAndId nameAndId, final LoginResult currentResult) { public LoginResult canBypassFullServerLogin(final NameAndId nameAndId, final LoginResult currentResult) {

View File

@@ -1,11 +1,11 @@
--- a/net/minecraft/world/entity/ai/behavior/AcquirePoi.java --- a/net/minecraft/world/entity/ai/behavior/AcquirePoi.java
+++ b/net/minecraft/world/entity/ai/behavior/AcquirePoi.java +++ b/net/minecraft/world/entity/ai/behavior/AcquirePoi.java
@@ -89,7 +_,7 @@ @@ -90,7 +_,7 @@
}
}; };
Set<Pair<Holder<PoiType>, BlockPos>> poiPositions = poiManager.findAllClosestFirstWithType( // Paper start - optimise POI searches
- poiType, cacheTest, body.blockPosition(), 48, PoiManager.Occupancy.HAS_SPACE java.util.List<Pair<Holder<PoiType>, BlockPos>> poiPositionsRaw = new java.util.ArrayList<>();
+ poiType, cacheTest, body.blockPosition(), level.purpurConfig.villagerAcquirePoiSearchRadius, PoiManager.Occupancy.HAS_SPACE // Purpur - Configurable villager search radius - ca.spottedleaf.moonrise.patches.poi_lookup.PoiAccess.findNearestPoiPositions(poiManager, poiType, cacheTest, body.blockPosition(), SCAN_RANGE, Double.MAX_VALUE, PoiManager.Occupancy.HAS_SPACE, ca.spottedleaf.moonrise.patches.poi_lookup.PoiAccess.LOAD_FOR_SEARCHING, 5, poiPositionsRaw);
) + ca.spottedleaf.moonrise.patches.poi_lookup.PoiAccess.findNearestPoiPositions(poiManager, poiType, cacheTest, body.blockPosition(), level.purpurConfig.villagerAcquirePoiSearchRadius, Double.MAX_VALUE, PoiManager.Occupancy.HAS_SPACE, ca.spottedleaf.moonrise.patches.poi_lookup.PoiAccess.LOAD_FOR_SEARCHING, 5, poiPositionsRaw); // Purpur - Configurable villager search radius
.limit(5L) Set<Pair<Holder<PoiType>, BlockPos>> poiPositions = new java.util.HashSet<>(poiPositionsRaw.size());
.filter(px -> validPoi.test(level, (BlockPos)px.getSecond())) for (Pair<Holder<PoiType>, BlockPos> pair : poiPositionsRaw) {
if (validPoi.test(level, pair.getSecond())) {

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/ai/behavior/TransportItemsBetweenContainers.java --- a/net/minecraft/world/entity/ai/behavior/TransportItemsBetweenContainers.java
+++ b/net/minecraft/world/entity/ai/behavior/TransportItemsBetweenContainers.java +++ b/net/minecraft/world/entity/ai/behavior/TransportItemsBetweenContainers.java
@@ -286,7 +_,7 @@ @@ -287,7 +_,7 @@
LevelChunk levelChunk = level.getChunkSource().getChunkNow(chunkPos.x(), chunkPos.z()); LevelChunk levelChunk = level.getChunkSource().getChunkNow(chunkPos.x(), chunkPos.z());
if (levelChunk != null) { if (levelChunk != null) {
for (BlockEntity potentialTarget : levelChunk.getBlockEntities().values()) { for (BlockEntity potentialTarget : levelChunk.getBlockEntities().values()) {
@@ -9,7 +9,7 @@
double distance = chestBlockEntity.getBlockPos().distToCenterSqr(body.position()); double distance = chestBlockEntity.getBlockPos().distToCenterSqr(body.position());
if (distance < closestDistance) { if (distance < closestDistance) {
TransportItemsBetweenContainers.TransportItemTarget targetValidToPick = this.isTargetValidToPick( TransportItemsBetweenContainers.TransportItemTarget targetValidToPick = this.isTargetValidToPick(
@@ -375,7 +_,11 @@ @@ -376,7 +_,11 @@
} }
private boolean isTargetBlocked(final Level level, final TransportItemsBetweenContainers.TransportItemTarget target) { private boolean isTargetBlocked(final Level level, final TransportItemsBetweenContainers.TransportItemTarget target) {
@@ -22,7 +22,7 @@
} }
private boolean targetHasNotChanged(final Level level, final TransportItemsBetweenContainers.TransportItemTarget target) { private boolean targetHasNotChanged(final Level level, final TransportItemsBetweenContainers.TransportItemTarget target) {
@@ -455,7 +_,7 @@ @@ -456,7 +_,7 @@
} }
private boolean isWantedBlock(final PathfinderMob mob, final BlockState block) { private boolean isWantedBlock(final PathfinderMob mob, final BlockState block) {
@@ -31,7 +31,7 @@
} }
private static double getInteractionRange(final PathfinderMob body) { private static double getInteractionRange(final PathfinderMob body) {
@@ -507,6 +_,11 @@ @@ -508,6 +_,11 @@
} }
private static boolean matchesLeavingItemsRequirement(final PathfinderMob body, final Container container) { private static boolean matchesLeavingItemsRequirement(final PathfinderMob body, final Container container) {
@@ -43,7 +43,7 @@
return container.isEmpty() || hasItemMatchingHandItem(body, container); return container.isEmpty() || hasItemMatchingHandItem(body, container);
} }
@@ -544,7 +_,7 @@ @@ -545,7 +_,7 @@
int slot = 0; int slot = 0;
for (ItemStack itemStack : container) { for (ItemStack itemStack : container) {

View File

@@ -1,14 +1,11 @@
--- a/net/minecraft/world/entity/ai/sensing/NearestBedSensor.java --- a/net/minecraft/world/entity/ai/sensing/NearestBedSensor.java
+++ b/net/minecraft/world/entity/ai/sensing/NearestBedSensor.java +++ b/net/minecraft/world/entity/ai/sensing/NearestBedSensor.java
@@ -54,9 +_,9 @@ @@ -54,7 +_,7 @@
} }
}; };
Set<Pair<Holder<PoiType>, BlockPos>> pois = poiManager.findAllWithType( Set<Pair<Holder<PoiType>, BlockPos>> pois = poiManager.findAllWithType(
- e -> e.is(PoiTypes.HOME), cacheTest, body.blockPosition(), 48, PoiManager.Occupancy.ANY - e -> e.is(PoiTypes.HOME), cacheTest, body.blockPosition(), AcquirePoi.SCAN_RANGE, PoiManager.Occupancy.ANY
+ e -> e.is(PoiTypes.HOME), cacheTest, body.blockPosition(), level.purpurConfig.villagerNearestBedSensorSearchRadius, PoiManager.Occupancy.ANY + e -> e.is(PoiTypes.HOME), cacheTest, body.blockPosition(), level.purpurConfig.villagerNearestBedSensorSearchRadius, PoiManager.Occupancy.ANY // Purpur - Configurable villager search radius
) )
- .collect(Collectors.toSet()); .collect(Collectors.toSet());
+ .collect(Collectors.toSet()); // Purpur - Configurable villager search radius
Path path = AcquirePoi.findPathToPois(body, pois); Path path = AcquirePoi.findPathToPois(body, pois);
if (path != null && path.canReach()) {
BlockPos targetPos = path.getTarget();

View File

@@ -36,9 +36,9 @@
if (this.isInWater()) { if (this.isInWater()) {
+ if (canFly()) setNoGravity(!wasTouchingWater); // Purpur - Flying squids! Oh my! + if (canFly()) setNoGravity(!wasTouchingWater); // Purpur - Flying squids! Oh my!
if (this.tentacleMovement < (float) Math.PI) { if (this.tentacleMovement < Mth.PI) {
float tentacleScale = this.tentacleMovement / (float) Math.PI; float tentacleScale = this.tentacleMovement / Mth.PI;
this.tentacleAngle = Mth.sin(tentacleScale * tentacleScale * (float) Math.PI) * (float) Math.PI * 0.25F; this.tentacleAngle = Mth.sin(tentacleScale * tentacleScale * Mth.PI) * Mth.PI * 0.25F;
@@ -321,7 +_,7 @@ @@ -321,7 +_,7 @@
int noActionTime = this.squid.getNoActionTime(); int noActionTime = this.squid.getNoActionTime();
if (noActionTime > 100) { if (noActionTime > 100) {

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java --- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -965,6 +_,7 @@ @@ -959,6 +_,7 @@
@Override @Override
protected boolean canRide(final Entity vehicle) { protected boolean canRide(final Entity vehicle) {
@@ -8,7 +8,7 @@
return false; return false;
} }
@@ -1000,7 +_,7 @@ @@ -994,7 +_,7 @@
boolean shouldDrop = level.getGameRules().get(GameRules.MOB_DROPS); boolean shouldDrop = level.getGameRules().get(GameRules.MOB_DROPS);
int xpCount = 500; int xpCount = 500;

View File

@@ -70,7 +70,7 @@
} }
float totalDamage = baseDamage + magicBoost; float totalDamage = baseDamage + magicBoost;
@@ -1746,7 +_,23 @@ @@ -1740,7 +_,23 @@
@Override @Override
protected int getBaseExperienceReward(final ServerLevel level) { protected int getBaseExperienceReward(final ServerLevel level) {
@@ -95,7 +95,7 @@
} }
@Override @Override
@@ -1789,6 +_,13 @@ @@ -1783,6 +_,13 @@
public boolean addItem(final ItemStack itemStack) { public boolean addItem(final ItemStack itemStack) {
return this.inventory.add(itemStack); return this.inventory.add(itemStack);
} }

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/inventory/AbstractContainerMenu.java --- a/net/minecraft/world/inventory/AbstractContainerMenu.java
+++ b/net/minecraft/world/inventory/AbstractContainerMenu.java +++ b/net/minecraft/world/inventory/AbstractContainerMenu.java
@@ -64,6 +_,7 @@ @@ -65,6 +_,7 @@
private final List<ContainerListener> containerListeners = Lists.newArrayList(); private final List<ContainerListener> containerListeners = Lists.newArrayList();
private @Nullable ContainerSynchronizer synchronizer; private @Nullable ContainerSynchronizer synchronizer;
private boolean suppressRemoteUpdates; private boolean suppressRemoteUpdates;

View File

@@ -43,7 +43,7 @@
public int getDamageValue() { public int getDamageValue() {
return Mth.clamp(this.getOrDefault(DataComponents.DAMAGE, 0), 0, this.getMaxDamage()); return Mth.clamp(this.getOrDefault(DataComponents.DAMAGE, 0), 0, this.getMaxDamage());
} }
@@ -1240,6 +_,12 @@ @@ -1246,6 +_,12 @@
public boolean isEnchanted() { public boolean isEnchanted() {
return !this.getOrDefault(DataComponents.ENCHANTMENTS, ItemEnchantments.EMPTY).isEmpty(); return !this.getOrDefault(DataComponents.ENCHANTMENTS, ItemEnchantments.EMPTY).isEmpty();
} }

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/level/Level.java --- a/net/minecraft/world/level/Level.java
+++ b/net/minecraft/world/level/Level.java +++ b/net/minecraft/world/level/Level.java
@@ -169,10 +_,54 @@ @@ -170,10 +_,54 @@
} }
// Paper end - add paper world config // Paper end - add paper world config
@@ -55,16 +55,16 @@
public CraftWorld getWorld() { public CraftWorld getWorld() {
return this.world; return this.world;
} }
@@ -848,6 +_,8 @@ @@ -850,6 +_,8 @@
// Paper end - getblock optimisations - cache world height/sections // Paper end - getblock optimisations - cache world height/sections
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(bukkitName); // Spigot this.spigotConfig = new org.spigotmc.SpigotWorldConfig(bukkitName); // Spigot
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config
+ this.purpurConfig = new org.purpurmc.purpur.PurpurWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) levelData).getLevelName(), environment); // Purpur - Purpur config files + this.purpurConfig = new org.purpurmc.purpur.PurpurWorldConfig(bukkitName, environment); // Purpur - Purpur config files
+ this.playerBreedingCooldowns = this.getNewBreedingCooldownCache(); // Purpur - Add adjustable breeding cooldown to config + this.playerBreedingCooldowns = this.getNewBreedingCooldownCache(); // Purpur - Add adjustable breeding cooldown to config
this.generator = generator; this.generator = generator;
this.world = new CraftWorld((ServerLevel) this, generator, biomeProvider, environment); this.world = new CraftWorld((ServerLevel) this, generator, biomeProvider, environment);
@@ -2188,4 +_,14 @@ @@ -2192,4 +_,14 @@
return this.moonrise$getEntityLookup().getEntityCount(); // Paper - rewrite chunk system return this.moonrise$getEntityLookup().getEntityCount(); // Paper - rewrite chunk system
} }
// Paper end - allow patching this logic // Paper end - allow patching this logic

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/level/NaturalSpawner.java --- a/net/minecraft/world/level/NaturalSpawner.java
+++ b/net/minecraft/world/level/NaturalSpawner.java +++ b/net/minecraft/world/level/NaturalSpawner.java
@@ -216,7 +_,7 @@ @@ -289,7 +_,7 @@
pos.set(x, yStart, z); pos.set(x, yStart, z);
double xx = x + 0.5; double xx = x + 0.5;
double zz = z + 0.5; double zz = z + 0.5;

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/level/block/DragonEggBlock.java --- a/net/minecraft/world/level/block/DragonEggBlock.java
+++ b/net/minecraft/world/level/block/DragonEggBlock.java +++ b/net/minecraft/world/level/block/DragonEggBlock.java
@@ -49,6 +_,7 @@ @@ -50,6 +_,7 @@
} }
private void teleport(final BlockState state, final Level level, final BlockPos pos) { private void teleport(final BlockState state, final Level level, final BlockPos pos) {

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/level/block/ObserverBlock.java --- a/net/minecraft/world/level/block/ObserverBlock.java
+++ b/net/minecraft/world/level/block/ObserverBlock.java +++ b/net/minecraft/world/level/block/ObserverBlock.java
@@ -81,6 +_,7 @@ @@ -82,6 +_,7 @@
final RandomSource random final RandomSource random
) { ) {
if (state.getValue(FACING) == directionToNeighbour && !state.getValue(POWERED)) { if (state.getValue(FACING) == directionToNeighbour && !state.getValue(POWERED)) {

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/level/block/entity/BlockEntity.java --- a/net/minecraft/world/level/block/entity/BlockEntity.java
+++ b/net/minecraft/world/level/block/entity/BlockEntity.java +++ b/net/minecraft/world/level/block/entity/BlockEntity.java
@@ -107,6 +_,10 @@ @@ -108,6 +_,10 @@
input.read("PublicBukkitValues", CompoundTag.CODEC) input.read("PublicBukkitValues", CompoundTag.CODEC)
.ifPresent(this.persistentDataContainer::putAll); .ifPresent(this.persistentDataContainer::putAll);
// Paper end - read persistent data container // Paper end - read persistent data container
@@ -11,7 +11,7 @@
} }
public final void loadWithComponents(final ValueInput input) { public final void loadWithComponents(final ValueInput input) {
@@ -119,6 +_,11 @@ @@ -120,6 +_,11 @@
} }
protected void saveAdditional(final ValueOutput output) { protected void saveAdditional(final ValueOutput output) {
@@ -23,7 +23,7 @@
} }
public final CompoundTag saveWithFullMetadata(final HolderLookup.Provider registries) { public final CompoundTag saveWithFullMetadata(final HolderLookup.Provider registries) {
@@ -412,4 +_,16 @@ @@ -414,4 +_,16 @@
return this.blockEntity.getNameForReporting() + "@" + this.blockEntity.getBlockPos(); return this.blockEntity.getNameForReporting() + "@" + this.blockEntity.getBlockPos();
} }
} }

View File

@@ -1,8 +1,8 @@
--- a/net/minecraft/world/level/chunk/storage/EntityStorage.java --- a/net/minecraft/world/level/chunk/storage/EntityStorage.java
+++ b/net/minecraft/world/level/chunk/storage/EntityStorage.java +++ b/net/minecraft/world/level/chunk/storage/EntityStorage.java
@@ -97,6 +_,7 @@ @@ -108,6 +_,7 @@
ListTag entities = new ListTag(); }
chunk.getEntities().forEach(e -> { // Paper end - Entity load/save limit per chunk
TagValueOutput output = TagValueOutput.createWithContext(reporter.forChild(e.problemPath()), e.registryAccess()); TagValueOutput output = TagValueOutput.createWithContext(reporter.forChild(e.problemPath()), e.registryAccess());
+ if (!e.canSaveToDisk()) return; // Purpur - Add canSaveToDisk to Entity + if (!e.canSaveToDisk()) return; // Purpur - Add canSaveToDisk to Entity
if (e.save(output)) { if (e.save(output)) {

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/level/chunk/storage/RegionFileStorage.java --- a/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
+++ b/net/minecraft/world/level/chunk/storage/RegionFileStorage.java +++ b/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
@@ -243,7 +_,7 @@ @@ -309,7 +_,7 @@
// Paper start // Paper start
private static void printOversizedLog(String msg, Path file, int x, int z) { private static void printOversizedLog(String msg, Path file, int x, int z) {

View File

@@ -1,67 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: granny <contact@granny.dev>
Date: Mon, 23 Mar 2026 17:48:11 -0700
Subject: [PATCH] Alternative Keepalive Handling for Improved Keepalive Ping
System
diff --git a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
index b8a4b4cc02a2fc6b70f4b840796eed501aad6239..02c6733ce1de543dab3bf558148879039e501257 100644
--- a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
@@ -40,10 +40,11 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
public final Connection connection; // Paper
private final boolean transferred;
//private long keepAliveTime; // Paper - improve keepalives
- //private boolean keepAlivePending; // Paper - improve keepalives
+ private boolean keepAlivePending; // Paper - improve keepalives // Purpur - Alternative Keepalive Handling
//private long keepAliveChallenge; // Paper - improve keepalives
private long closedListenerTime;
private boolean closed = false;
+ private it.unimi.dsi.fastutil.longs.LongList keepAlives = new it.unimi.dsi.fastutil.longs.LongArrayList(); // Purpur - Alternative Keepalive Handling
private volatile int latency; // Paper - improve keepalives - make volatile
private final io.papermc.paper.util.KeepAlive keepAlive; // Paper - improve keepalives
private volatile boolean suspendFlushingOnServerThread = false;
@@ -105,6 +110,18 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
// Paper start - improve keepalives
long now = System.nanoTime();
io.papermc.paper.util.KeepAlive.PendingKeepAlive pending = this.keepAlive.pendingKeepAlives.peek();
+ // Purpur start - Alternative Keepalive Handling
+ if (org.purpurmc.purpur.PurpurConfig.useAlternateKeepAlive) {
+ if (this.keepAlivePending && !keepAlives.isEmpty() && keepAlives.contains(packet.getId())) {
+ int ping = (int) (Util.getMillis() - packet.getId());
+ int updatedLatency = (this.latency * 3 + ping) / 4;
+ this.latency = updatedLatency;
+ this.keepAlivePending = false;
+ keepAlives.clear(); // we got a valid response, lets roll with it and forget the rest
+ }
+ return;
+ } else
+ // Purpur end - Alternative Keepalive Handling
if (pending != null && pending.challengeId() == packet.getId()) {
this.keepAlive.pendingKeepAlives.remove(pending);
@@ -264,6 +287,23 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
Profiler.get().push("keepAlive");
long millis = Util.getMillis();
// Paper start - improve keepalives
+ // Purpur start - Alternative Keepalive Handling
+ if (org.purpurmc.purpur.PurpurConfig.useAlternateKeepAlive) {
+ if (this.checkIfClosed(millis) && !this.processedDisconnect) {
+ long currTime = System.nanoTime();
+ if ((currTime - this.keepAlive.lastKeepAliveTx) >= java.util.concurrent.TimeUnit.SECONDS.toNanos(1L)) { // 1 second
+ this.keepAlive.lastKeepAliveTx = currTime;
+ if (this.keepAlivePending && !this.processedDisconnect && keepAlives.size() * 1000L >= KEEPALIVE_LIMIT) {
+ this.disconnect(TIMEOUT_DISCONNECTION_MESSAGE, io.papermc.paper.connection.DisconnectionReason.TIMEOUT);
+ } else if (this.checkIfClosed(millis)) {
+ this.keepAlivePending = true;
+ this.keepAlives.add(millis); // currentTime is ID
+ this.send(new ClientboundKeepAlivePacket(millis));
+ }
+ }
+ }
+ } else
+ // Purpur end - Alternative Keepalive Handling
if (this.checkIfClosed(millis) && !this.processedDisconnect) {
long currTime = System.nanoTime();

View File

@@ -36,10 +36,10 @@ index c5a866735d7d918ea58306ea2299a8b82be52f3f..d6ddbcff911ce4c97a20883af10d2b47
+ // Purpur end - Ridables + // Purpur end - Ridables
} }
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index 8321fcec2344a67d59948b552cc1415b1166a920..370feb75737fd7a72445c9f51b6689959af63c35 100644 index 6d485bb4d91668070c28c3fe1dc2c4708760d924..631b8186f89e133936f9a55957fc3215e53184d1 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -647,6 +647,15 @@ public class CraftEventFactory { @@ -649,6 +649,15 @@ public class CraftEventFactory {
} }
craftServer.getPluginManager().callEvent(event); craftServer.getPluginManager().callEvent(event);
@@ -55,7 +55,7 @@ index 8321fcec2344a67d59948b552cc1415b1166a920..370feb75737fd7a72445c9f51b668995
return event; return event;
} }
@@ -1159,6 +1168,7 @@ public class CraftEventFactory { @@ -1161,6 +1170,7 @@ public class CraftEventFactory {
EntityDamageEvent event; EntityDamageEvent event;
if (damager != null) { if (damager != null) {
event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), damagee.getBukkitEntity(), cause, bukkitDamageSource, modifiers, modifierFunctions, critical); event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), damagee.getBukkitEntity(), cause, bukkitDamageSource, modifiers, modifierFunctions, critical);

View File

@@ -6,7 +6,7 @@
+ // Purpur start - Add local difficulty api + // Purpur start - Add local difficulty api
+ public float getLocalDifficultyAt(Location location) { + public float getLocalDifficultyAt(Location location) {
+ return getHandle().getCurrentDifficultyAt(org.bukkit.craftbukkit.util.CraftLocation.toBlockPosition(location)).getEffectiveDifficulty(); + return getHandle().getCurrentDifficultyAt(org.bukkit.craftbukkit.util.CraftLocation.toBlockPos(location)).getEffectiveDifficulty();
+ } + }
+ // Purpur end - Add local difficulty api + // Purpur end - Add local difficulty api
+ +

View File

@@ -10,6 +10,7 @@ import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.resources.Identifier; import net.minecraft.resources.Identifier;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.ai.behavior.AcquirePoi;
import net.minecraft.world.entity.monster.Shulker; import net.minecraft.world.entity.monster.Shulker;
import net.minecraft.world.item.DyeColor; import net.minecraft.world.item.DyeColor;
import net.minecraft.world.item.Item; import net.minecraft.world.item.Item;
@@ -3338,8 +3339,8 @@ public class PurpurWorldConfig {
public boolean villagerDisplayTradeItem = true; public boolean villagerDisplayTradeItem = true;
public int villagerSpawnIronGolemRadius = 0; public int villagerSpawnIronGolemRadius = 0;
public int villagerSpawnIronGolemLimit = 0; public int villagerSpawnIronGolemLimit = 0;
public int villagerAcquirePoiSearchRadius = 48; public int villagerAcquirePoiSearchRadius = AcquirePoi.SCAN_RANGE;
public int villagerNearestBedSensorSearchRadius = 48; public int villagerNearestBedSensorSearchRadius = AcquirePoi.SCAN_RANGE;
public Boolean villagerCanPickUpLoot = null; public Boolean villagerCanPickUpLoot = null;
private void villagerSettings() { private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);

View File

@@ -55,3 +55,15 @@ fun optionalInclude(name: String, op: (ProjectDescriptor.() -> Unit)? = null) {
) )
} }
} }
gradle.lifecycle.beforeProject {
val mcVersion = providers.gradleProperty("mcVersion").get().trim()
val paperVersionChannel = providers.gradleProperty("channel").get().trim()
val paperBuildNumber = providers.environmentVariable("BUILD_NUMBER").orNull?.trim()?.toInt()
val versionString = if (paperBuildNumber == null) {
"$mcVersion.local-SNAPSHOT"
} else {
"$mcVersion.build.$paperBuildNumber-${paperVersionChannel.lowercase()}"
}
version = versionString
}