Preliminary update to 1.17.1

This commit is contained in:
William Blake Galbreath
2021-07-06 16:25:46 -05:00
parent 89c9c902b1
commit 471d6bf4c1
202 changed files with 994 additions and 20192 deletions

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Ridables
diff --git a/src/main/java/net/minecraft/core/BlockPos.java b/src/main/java/net/minecraft/core/BlockPos.java
index b01d7da333bac7820e42b6f645634a15ef88ae4f..30a4b80eacf76ad7f0a48b79bcf01b752c0af48a 100644
index b70aa66732fb5e957aed0901f4c76358b2c56f8e..c281018818e5f27e23a155565eb2130fcd16a295 100644
--- a/src/main/java/net/minecraft/core/BlockPos.java
+++ b/src/main/java/net/minecraft/core/BlockPos.java
@@ -41,6 +41,12 @@ public class BlockPos extends Vec3i {
@@ -22,10 +22,10 @@ index b01d7da333bac7820e42b6f645634a15ef88ae4f..30a4b80eacf76ad7f0a48b79bcf01b75
super(x, y, z);
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 4cc099b469a7554e381a6f7aceb686a94f7d6605..06177ec182d79cd101da9cd43a841656d27d6d8b 100644
index 1164e6a63e895818b3645b31588e27ae221e4859..745df03f3b425a247d63d7d896c3dcf2c8baa0e0 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1590,6 +1590,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1532,6 +1532,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
ServerLevel worldserver = (ServerLevel) iterator.next();
worldserver.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper
worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper
@@ -34,10 +34,10 @@ index 4cc099b469a7554e381a6f7aceb686a94f7d6605..06177ec182d79cd101da9cd43a841656
this.profiler.push(() -> {
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 57163e3cb883ded5861e57c3ca03663c02ee7492..67cdf31f3ce9f85743ce10bd2dee6854be1d69f9 100644
index 6ecf60c69a27f8db1c245db15449bba581c3dbf5..a02b0d819392db96a370c57818a378dd5fa27ef4 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -205,6 +205,7 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl
@@ -201,6 +201,7 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl
public final UUID uuid;
public boolean hasPhysicsEvent = true; // Paper
public boolean hasEntityMoveEvent = false; // Paper
@@ -46,10 +46,10 @@ index 57163e3cb883ded5861e57c3ca03663c02ee7492..67cdf31f3ce9f85743ce10bd2dee6854
return new Throwable(entity + " Added to world at " + new java.util.Date());
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index f3d23ced47e7dd7bc4005379962a9efcb8edf084..fde98f9c4a3e151dbc277541fbd2cc0a8d957069 100644
index cf06e4f51984a64c294f402c62a03214eea0e5c3..d9df08cdf065b0316f43ca53988ccbe119e5106f 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -668,6 +668,15 @@ public class ServerPlayer extends Player {
@@ -664,6 +664,15 @@ public class ServerPlayer extends Player {
}
this.advancements.flushDirty(this);
@@ -65,7 +65,7 @@ index f3d23ced47e7dd7bc4005379962a9efcb8edf084..fde98f9c4a3e151dbc277541fbd2cc0a
}
public void doTick() {
@@ -2404,4 +2413,6 @@ public class ServerPlayer extends Player {
@@ -2398,4 +2407,6 @@ public class ServerPlayer extends Player {
return (CraftPlayer) super.getBukkitEntity();
}
// CraftBukkit end
@@ -73,10 +73,10 @@ index f3d23ced47e7dd7bc4005379962a9efcb8edf084..fde98f9c4a3e151dbc277541fbd2cc0a
+
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index f78119970da27ef66a9d9093e2e42ce129d4cf31..17a6857f5ee70120d664e46426f739ef2dae0a0a 100644
index 6ff04fc7202a7eb1f2b5978a2e2a573945d9dde1..dbb5f0bd721b2490f727a0b2462cf215e729947d 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2427,6 +2427,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -2329,6 +2329,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event);
@@ -86,7 +86,7 @@ index f78119970da27ef66a9d9093e2e42ce129d4cf31..17a6857f5ee70120d664e46426f739ef
if ((entity instanceof AbstractFish && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) {
ServerGamePacketListenerImpl.this.send(new ClientboundAddMobPacket((AbstractFish) entity));
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 19d716a7350c6ed5b912064aa1e63a1fbbe4183f..37db4d89996cde1bdcdc513757be75612d444f97 100644
index 042da7707f7fd01a6195be15f97557d049ded22a..081506649de3929becd448664e2c5b0d7b4859fc 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -230,7 +230,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
@@ -107,7 +107,7 @@ index 19d716a7350c6ed5b912064aa1e63a1fbbe4183f..37db4d89996cde1bdcdc513757be7561
private float eyeHeight;
public boolean isInPowderSnow;
public boolean wasInPowderSnow;
@@ -2601,6 +2601,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
@@ -2412,6 +2412,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
this.passengers = ImmutableList.copyOf(list);
}
@@ -120,7 +120,7 @@ index 19d716a7350c6ed5b912064aa1e63a1fbbe4183f..37db4d89996cde1bdcdc513757be7561
}
return true; // CraftBukkit
}
@@ -2641,6 +2647,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
@@ -2452,6 +2458,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
return false;
}
// Spigot end
@@ -135,7 +135,7 @@ index 19d716a7350c6ed5b912064aa1e63a1fbbe4183f..37db4d89996cde1bdcdc513757be7561
if (this.passengers.size() == 1 && this.passengers.get(0) == entity) {
this.passengers = ImmutableList.of();
} else {
@@ -4208,4 +4222,41 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
@@ -4015,4 +4029,41 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
return ((ServerChunkCache) level.getChunkSource()).isPositionTicking(this);
}
// Paper end
@@ -201,7 +201,7 @@ index d28cecd9bea7c82fa675d333810e2e63a91c615e..8f8bc29d847801938e251904b8334b4b
protected ParticleOptions getInkParticle() {
return ParticleTypes.GLOW_SQUID_INK;
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 57c448ee93df76fc2a17c75fafc78408d720ced3..e918f7cc7fdfdeb1b7b69488eadf69f0d4a3cb05 100644
index ed745776316c5346ee1b44c8f022c40359b7e642..911a6f63e8ffeacc95fa49cdf99140c1ce3d06b1 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -220,9 +220,9 @@ public abstract class LivingEntity extends Entity {
@@ -217,16 +217,16 @@ index 57c448ee93df76fc2a17c75fafc78408d720ced3..e918f7cc7fdfdeb1b7b69488eadf69f0
protected int lerpSteps;
protected double lerpX;
protected double lerpY;
@@ -2559,7 +2559,7 @@ public abstract class LivingEntity extends Entity {
return 0.42F * this.getBlockJumpFactor();
@@ -2567,7 +2567,7 @@ public abstract class LivingEntity extends Entity {
return this.hasEffect(MobEffects.JUMP) ? (double) (0.1F * (float) (this.getEffect(MobEffects.JUMP).getAmplifier() + 1)) : 0.0D;
}
- protected void jumpFromGround() {
+ public void jumpFromGround() { // Purpur - protected -> public
float f = this.getJumpPower();
double d0 = (double) this.getJumpPower() + this.getJumpBoostPower();
Vec3 vec3d = this.getDeltaMovement();
if (this.hasEffect(MobEffects.JUMP)) {
@@ -3218,8 +3218,10 @@ public abstract class LivingEntity extends Entity {
@@ -3221,8 +3221,10 @@ public abstract class LivingEntity extends Entity {
this.pushEntities();
this.level.getProfiler().pop();
// Paper start
@@ -239,7 +239,7 @@ index 57c448ee93df76fc2a17c75fafc78408d720ced3..e918f7cc7fdfdeb1b7b69488eadf69f0
Location from = new Location(this.level.getWorld(), this.xo, this.yo, this.zo, this.yRotO, this.xRotO);
Location to = new Location (this.level.getWorld(), this.getX(), this.getY(), this.getZ(), this.getYRot(), this.getXRot());
io.papermc.paper.event.entity.EntityMoveEvent event = new io.papermc.paper.event.entity.EntityMoveEvent(this.getBukkitLivingEntity(), from, to.clone());
@@ -3229,6 +3231,21 @@ public abstract class LivingEntity extends Entity {
@@ -3232,6 +3234,21 @@ public abstract class LivingEntity extends Entity {
absMoveTo(event.getTo().getX(), event.getTo().getY(), event.getTo().getZ(), event.getTo().getYaw(), event.getTo().getPitch());
}
}
@@ -262,10 +262,10 @@ index 57c448ee93df76fc2a17c75fafc78408d720ced3..e918f7cc7fdfdeb1b7b69488eadf69f0
// Paper end
if (!this.level.isClientSide && this.isSensitiveToWater() && this.isInWaterRainOrBubble()) {
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 154b3c767d079f72643c826b962892c1029b0a1b..c35c5d58523be370732a19c52db4f8e94c88b12f 100644
index 0ce0e7a923da812a02d9ab83607d3cc9c87047df..a597a09b428cb2b3dc7fef5503ef705cf7b2a1fb 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -139,6 +139,8 @@ public abstract class Mob extends LivingEntity {
@@ -140,6 +140,8 @@ public abstract class Mob extends LivingEntity {
this.targetSelector = new GoalSelector(world.getProfilerSupplier());
this.lookControl = new LookControl(this);
this.moveControl = new MoveControl(this);
@@ -274,7 +274,7 @@ index 154b3c767d079f72643c826b962892c1029b0a1b..c35c5d58523be370732a19c52db4f8e9
this.jumpControl = new JumpControl(this);
this.bodyRotationControl = this.createBodyControl();
this.navigation = this.createNavigation(world);
@@ -1278,7 +1280,7 @@ public abstract class Mob extends LivingEntity {
@@ -1274,7 +1276,7 @@ public abstract class Mob extends LivingEntity {
protected void onOffspringSpawnedFromEgg(Player player, Mob child) {}
protected InteractionResult mobInteract(Player player, InteractionHand hand) {
@@ -283,7 +283,7 @@ index 154b3c767d079f72643c826b962892c1029b0a1b..c35c5d58523be370732a19c52db4f8e9
}
public boolean isWithinRestriction() {
@@ -1637,4 +1639,52 @@ public abstract class Mob extends LivingEntity {
@@ -1633,4 +1635,52 @@ public abstract class Mob extends LivingEntity {
return itemmonsteregg == null ? null : new ItemStack(itemmonsteregg);
}
@@ -1872,7 +1872,7 @@ index 56838c9f214c0f75041e75c45ad1a0c72fcacc66..151bb142c553d733367a92b39b430b53
if (i > 100) {
diff --git a/src/main/java/net/minecraft/world/entity/animal/TropicalFish.java b/src/main/java/net/minecraft/world/entity/animal/TropicalFish.java
index 77f56978449ece43bdca28a50a0681cda9f89eba..4d5ceb4ce913248ad404393e4f0c75cad24029bb 100644
index 84015b5bf4b9a11670ad4d984844a431876efb63..5f61fcffebf4d853711a38d1f315f3def25e31a7 100644
--- a/src/main/java/net/minecraft/world/entity/animal/TropicalFish.java
+++ b/src/main/java/net/minecraft/world/entity/animal/TropicalFish.java
@@ -43,6 +43,18 @@ public class TropicalFish extends AbstractSchoolingFish {
@@ -1895,7 +1895,7 @@ index 77f56978449ece43bdca28a50a0681cda9f89eba..4d5ceb4ce913248ad404393e4f0c75ca
return "entity.minecraft.tropical_fish.predefined." + variant;
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
index 01d8af06f19427354cac95d691e65d31253fef94..631539a752a038926355c23aeb160af64f363a61 100644
index 925f16d5eb092518ef774f69a8d99689feb0f5d7..c86f13d190b41cb18dd833af39c7b4916068fd69 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
@@ -90,6 +90,18 @@ public class Turtle extends Animal {
@@ -1915,7 +1915,7 @@ index 01d8af06f19427354cac95d691e65d31253fef94..631539a752a038926355c23aeb160af6
+ // Purpur end
+
public void setHomePos(BlockPos pos) {
this.entityData.set(Turtle.HOME_POS, pos.immutable()); // Paper - called with mutablepos...
this.entityData.set(Turtle.HOME_POS, pos);
}
@@ -192,6 +204,7 @@ public class Turtle extends Animal {
@@ -2012,7 +2012,7 @@ index 80caabee4d2100208f117a1c3e35247b65e318ad..bca3300e06d6eb0c6acdfb11d715a1e8
this.targetSelector.addGoal(2, new OwnerHurtTargetGoal(this));
this.targetSelector.addGoal(3, (new HurtByTargetGoal(this, new Class[0])).setAlertOthers(new Class[0])); // CraftBukkit - decompile error
diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
index 25ebcb30cf5165675f26802983b6f68404b93b06..e076d03025690492c2226f03d777eba714819300 100644
index c72819b03f9339dadd691155f196f6744f14da75..06c831f1a4b5159afadecff4a25248397ecbd2c7 100644
--- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
+++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
@@ -90,6 +90,23 @@ public class Axolotl extends Animal implements LerpingModel, Bucketable {
@@ -2039,7 +2039,7 @@ index 25ebcb30cf5165675f26802983b6f68404b93b06..e076d03025690492c2226f03d777eba7
@Override
public Map<String, Vector3f> getModelRotationValues() {
return this.modelRotationValues;
@@ -513,14 +530,22 @@ public class Axolotl extends Animal implements LerpingModel, Bucketable {
@@ -509,14 +526,22 @@ public class Axolotl extends Animal implements LerpingModel, Bucketable {
private static class AxolotlMoveControl extends SmoothSwimmingMoveControl {
private final Axolotl axolotl;
@@ -2062,7 +2062,7 @@ index 25ebcb30cf5165675f26802983b6f68404b93b06..e076d03025690492c2226f03d777eba7
if (!this.axolotl.isPlayingDead()) {
super.tick();
}
@@ -535,9 +560,9 @@ public class Axolotl extends Animal implements LerpingModel, Bucketable {
@@ -531,9 +556,9 @@ public class Axolotl extends Animal implements LerpingModel, Bucketable {
}
@Override
@@ -2075,10 +2075,10 @@ index 25ebcb30cf5165675f26802983b6f68404b93b06..e076d03025690492c2226f03d777eba7
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
index 580f3e8de2e10ddc01430e84fc42e243736c4810..c0d85eb70dbe1d85d07b47a41a43d19506586399 100644
index 15787afad42f9299638a1c9e57d26678805f18ee..69a8578f86c42bde4c1df0c5ead033dae248d3ab 100644
--- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
+++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
@@ -70,6 +70,18 @@ public class Goat extends Animal {
@@ -72,6 +72,18 @@ public class Goat extends Animal {
this.getNavigation().setCanFloat(true);
}
@@ -2097,7 +2097,7 @@ index 580f3e8de2e10ddc01430e84fc42e243736c4810..c0d85eb70dbe1d85d07b47a41a43d195
@Override
protected Brain.Provider<Goat> brainProvider() {
return Brain.provider((Collection) Goat.MEMORY_TYPES, (Collection) Goat.SENSOR_TYPES);
@@ -133,6 +145,7 @@ public class Goat extends Animal {
@@ -147,6 +159,7 @@ public class Goat extends Animal {
@Override
protected void customServerAiStep() {
this.level.getProfiler().push("goatBrain");
@@ -2106,10 +2106,10 @@ index 580f3e8de2e10ddc01430e84fc42e243736c4810..c0d85eb70dbe1d85d07b47a41a43d195
this.level.getProfiler().pop();
this.level.getProfiler().push("goatActivityUpdate");
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java
index ba58e066cca533dfed7610a730c4dd7423fe124d..d91b6951dc25097e6f84296406634e48e1f13404 100644
index 5c104bf219e5e4acb8acfb160bd92f0a0621d864..fbd96e516ac34f874b0cca2da9076120e29254fb 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java
@@ -114,12 +114,22 @@ public abstract class AbstractHorse extends Animal implements ContainerListener,
@@ -113,12 +113,22 @@ public abstract class AbstractHorse extends Animal implements ContainerListener,
protected AbstractHorse(EntityType<? extends AbstractHorse> type, Level world) {
super(type, world);
@@ -2132,7 +2132,7 @@ index ba58e066cca533dfed7610a730c4dd7423fe124d..d91b6951dc25097e6f84296406634e48
this.goalSelector.addGoal(1, new PanicGoal(this, 1.2D));
this.goalSelector.addGoal(1, new RunAroundLikeCrazyGoal(this, 1.2D));
this.goalSelector.addGoal(2, new BreedGoal(this, 1.0D, AbstractHorse.class));
@@ -127,6 +137,7 @@ public abstract class AbstractHorse extends Animal implements ContainerListener,
@@ -126,6 +136,7 @@ public abstract class AbstractHorse extends Animal implements ContainerListener,
this.goalSelector.addGoal(6, new WaterAvoidingRandomStrollGoal(this, 0.7D));
this.goalSelector.addGoal(7, new LookAtPlayerGoal(this, Player.class, 6.0F));
this.goalSelector.addGoal(8, new RandomLookAroundGoal(this));
@@ -2373,7 +2373,7 @@ index 305a891e4b51d1031d9e9238ff00e2ea7de8d954..84625d09df800fcfd477fc493fb5f824
protected void defineSynchedData() {
}
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index c98202092752a9015aaf95bd1471135b88e84425..00e74d4fb1c719475bed27db13774bc7cc7447a7 100644
index 29aa428e019681af8d6b0020c12b18660ff6af6c..5df112f87fba042f13f615a22a5c6f850b779bf7 100644
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -102,6 +102,7 @@ public class EnderDragon extends Mob implements Enemy {
@@ -2517,7 +2517,7 @@ index c98202092752a9015aaf95bd1471135b88e84425..00e74d4fb1c719475bed27db13774bc7
this.dragonFight.updateDragon(this);
}
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
index 1c8f6863b976cfcb559de9b3e3cf9292831166ee..68c5609845617bf5aeb82ea4e3a88bdccb8273cc 100644
index 6e3bd5146c687922e7b4680d59a1ae2d1480ad40..9d879d85d6ca7d1163b05f15bb13baeeb59eea5b 100644
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -83,6 +83,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -3710,10 +3710,10 @@ index 2459ae800a5f6b234a4f4bb1cd3738e4e9cac67d..e66cc79dc61721b31ffb743f68f4388c
this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true));
}
diff --git a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
index c87d1f8a057e98f7f4ad7e11d89bfa791a7bae90..dca18730731407bb68ad32852c7994062b0b4ba6 100644
index fcec4120113de6c403892b38f077593b3b90d10c..55c09358766b2e7e871d9922b42e6e6b4157dab6 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
@@ -25,6 +25,18 @@ public class Skeleton extends AbstractSkeleton {
@@ -23,6 +23,18 @@ public class Skeleton extends AbstractSkeleton {
super(type, world);
}
@@ -3913,7 +3913,7 @@ index 0cfcd9c69213d75b52dc93392da727208c13150d..6a8a0cd09e0bf17c7ecb6e55342b645f
BlockPos blockPos = pos;
diff --git a/src/main/java/net/minecraft/world/entity/monster/Strider.java b/src/main/java/net/minecraft/world/entity/monster/Strider.java
index 1e81e115fe28fe20c18d25372892ba714699303f..a4b14b7eaaef3f70cedf1b71afdcef8a0702dc94 100644
index fc772387713d4313ec8f90a8abcaf7b703fd9f21..6c0af80f47c53e4573efb0c50412d289c0bb5540 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Strider.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Strider.java
@@ -97,6 +97,18 @@ public class Strider extends Animal implements ItemSteerable, Saddleable {
@@ -3943,7 +3943,7 @@ index 1e81e115fe28fe20c18d25372892ba714699303f..a4b14b7eaaef3f70cedf1b71afdcef8a
this.goalSelector.addGoal(1, this.panicGoal);
this.goalSelector.addGoal(2, new BreedGoal(this, 1.0D));
this.temptGoal = new TemptGoal(this, 1.4D, Strider.TEMPT_ITEMS, false);
@@ -437,7 +450,7 @@ public class Strider extends Animal implements ItemSteerable, Saddleable {
@@ -438,7 +451,7 @@ public class Strider extends Animal implements ItemSteerable, Saddleable {
if (!enuminteractionresult.consumesAction()) {
ItemStack itemstack = player.getItemInHand(hand);
@@ -4205,7 +4205,7 @@ index 056c0e66d2f90850906c78a25d759f22c20e4d35..8fd4e26ebe0527fd8a69b15095dd4091
this.level.getProfiler().pop();
this.updateActivity();
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
index bb3b932c57fd1e5b1517940c7602c7f4aeeaf17e..4880a8f9576339ed87dbeeebc76d3332ab14d27c 100644
index ddda5d1e85864030db0cfecbf7a5fe134d7013a1..abcdfc77ccef27db11a9e0fe8cb29f84f5e82391 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
@@ -107,11 +107,25 @@ public class Zombie extends Monster {
@@ -4258,7 +4258,7 @@ index a2fbab27980d7f52033fd542220d534cefcc4747..5744d181b91bcf7f8202c801bce42c96
protected void defineSynchedData() {
super.defineSynchedData();
diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
index 233b390541acddcf815db4a8f299496eaea4f758..b86d29a16f4c4ad0b166506fe31e64b902ecc06b 100644
index 025d53ab0787d596f4c486b15d286b9547838e16..708ba2c64a0736a30e477017b46dc711948cfc3d 100644
--- a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
@@ -58,6 +58,18 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
@@ -4472,7 +4472,7 @@ index c4f7c94255e4631a3c0355f9260132ba28296f50..d6c31596e21041a124a263054ccb6447
this.setTradingPlayer(player);
this.openTradingScreen(player, this.getDisplayName(), 1);
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index 069f658003d96a05aac0b30af1d89f15ea554475..5af2c68a328b5465ce487f312f0c50df3cb44aac 100644
index 19980b2d627eb3cacf8d0c3e6785ad2206910fbc..dd7e76f9e5fd05a38507f32b3e021efe43315049 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -193,6 +193,19 @@ public abstract class Player extends LivingEntity {
@@ -4513,7 +4513,7 @@ index 85a509e4fc0e4b9f182585e17b7deab2fea7e6c0..f1a12b147d55e34d4f8374593640a311
public void tick() {
super.tick();
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
index 69f439851fe1ff07d827eaed274940a5783d5f6c..07853aff3d42ce50799406ee1c14389b5f715b51 100644
index 37356b36f0ae12d55150f399318581fa77c30cee..4e667be589fd95eb61e57a99448939a945c59e5e 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
@@ -35,7 +35,7 @@ public abstract class Projectile extends Entity {
@@ -4540,10 +4540,10 @@ index fcf5f32c32eb17f7580b3c8c9190e36725f793ad..d92812cb334b590b728afb828dae61da
+ }
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index dd8b29f3aa58c5c7302ec5e93bef4190da913e3a..9012e278f23466cb052391d60c55179fccaa14ea 100644
index 15472bf9cfd279b1873f7a20c250a2c089debad1..59c424426e0eddd0b62db769ec289f5903583a84 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -92,4 +92,532 @@ public class PurpurWorldConfig {
@@ -91,4 +91,532 @@ public class PurpurWorldConfig {
final Map<String, Object> value = PurpurConfig.getMap("world-settings." + worldName + "." + path, null);
return value.isEmpty() ? fallback : value;
}
@@ -5718,10 +5718,10 @@ index 0000000000000000000000000000000000000000..8eefb7b7eb33aecf48ac206d3f0139e0
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index c0a508295d2e68d92ec8d24e14f9b7626911f548..edc08af4ec2ce6e90c30da286c0ba5ac16efd3fc 100644
index 8246ad7ebecdfc0b7519fe4412fef7b07407e850..6b85ba7d9bad9f648b4a6cb5a3938509b3e73cca 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -1216,4 +1216,27 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -1207,4 +1207,27 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
return getHandle().isTicking();
}
// Paper end
@@ -5750,7 +5750,7 @@ index c0a508295d2e68d92ec8d24e14f9b7626911f548..edc08af4ec2ce6e90c30da286c0ba5ac
+ // Purpur end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index a59a449c0a7b76527f009031aee2d11d6b43cadf..d055b5548848c87d9ce8372b6c64df8d081eb779 100644
index 9e08668ecf224dae91405da994cc7d346499a969..f9196241a0d6f9a70c674f7dfca5e013f9839398 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -537,6 +537,15 @@ public class CraftEventFactory {