3in1: Update Upstream, Remove useless patches, Fix cramming/colliding bug

This commit is contained in:
William Blake Galbreath
2019-07-29 20:53:47 -05:00
parent 75774b7422
commit 9db1fe9d28
75 changed files with 421 additions and 1452 deletions

View File

@@ -1,4 +1,4 @@
From 35209216787f90f9b5378c441c16d8ff7b10a42c Mon Sep 17 00:00:00 2001
From f25d39f60c6353f670d087988bf56488e86597a3 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sun, 26 May 2019 15:19:14 -0500
Subject: [PATCH] Bring back server name
@@ -9,7 +9,7 @@ Subject: [PATCH] Bring back server name
2 files changed, 8 insertions(+)
diff --git a/src/main/java/net/minecraft/server/DedicatedServerProperties.java b/src/main/java/net/minecraft/server/DedicatedServerProperties.java
index 0c3ec83570..20c143e314 100644
index 0c3ec8357..20c143e31 100644
--- a/src/main/java/net/minecraft/server/DedicatedServerProperties.java
+++ b/src/main/java/net/minecraft/server/DedicatedServerProperties.java
@@ -10,6 +10,7 @@ public class DedicatedServerProperties extends PropertyManager<DedicatedServerPr
@@ -21,7 +21,7 @@ index 0c3ec83570..20c143e314 100644
public final boolean spawnNpcs = this.getBoolean("spawn-npcs", true);
public final boolean pvp = this.getBoolean("pvp", true);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 3fea9de67a..34a6d26a2a 100644
index 3fea9de67..34a6d26a2 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -2164,4 +2164,11 @@ public final class CraftServer implements Server {

View File

@@ -1,33 +0,0 @@
From 18594b78ebeec10cb1e526a1a7d61fe03688209a Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Fri, 3 May 2019 23:39:38 -0500
Subject: [PATCH] PlayerFeedAnimalEvent
---
src/main/java/net/minecraft/server/EntityAnimal.java | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/main/java/net/minecraft/server/EntityAnimal.java b/src/main/java/net/minecraft/server/EntityAnimal.java
index 3e627ea08b..7b3d4fbd95 100644
--- a/src/main/java/net/minecraft/server/EntityAnimal.java
+++ b/src/main/java/net/minecraft/server/EntityAnimal.java
@@ -103,6 +103,7 @@ public abstract class EntityAnimal extends EntityAgeable {
return 1 + this.world.random.nextInt(3);
}
+ public boolean isBreedingItem(ItemStack itemstack) { return i(itemstack); } // Purpur - OBFHELPER
public boolean i(ItemStack itemstack) {
return itemstack.getItem() == Items.WHEAT;
}
@@ -111,7 +112,7 @@ public abstract class EntityAnimal extends EntityAgeable {
public boolean a(EntityHuman entityhuman, EnumHand enumhand) {
ItemStack itemstack = entityhuman.b(enumhand);
- if (this.i(itemstack)) {
+ if (this.i(itemstack) && new net.pl3x.purpur.event.PlayerFeedAnimalEvent((org.bukkit.entity.Animals) getBukkitEntity(), (org.bukkit.entity.Player) entityhuman.getBukkitEntity(), itemstack.asBukkitCopy()).callEvent()) { // Purpur
if (this.getAge() == 0 && this.ea()) {
this.a(entityhuman, itemstack);
this.f(entityhuman);
--
2.20.1

View File

@@ -1,4 +1,4 @@
From b653df02c21db40f850ad00a87994d01b617b98e Mon Sep 17 00:00:00 2001
From fae98a1bc8d70db26a9a2a64a5e02586962ab3d0 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 4 May 2019 01:10:30 -0500
Subject: [PATCH] cows to mooshroom when fed mushrooms
@@ -11,7 +11,7 @@ Subject: [PATCH] cows to mooshroom when fed mushrooms
4 files changed, 85 insertions(+), 2 deletions(-)
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index e8def7f812..40ab9daade 100644
index e8def7f81..40ab9daad 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1049,6 +1049,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -31,7 +31,7 @@ index e8def7f812..40ab9daade 100644
this.setPositionRotation(entity.locX, entity.locY, entity.locZ, entity.yaw, entity.pitch);
}
diff --git a/src/main/java/net/minecraft/server/EntityCow.java b/src/main/java/net/minecraft/server/EntityCow.java
index d2c2e3cc33..0c00a86a84 100644
index d2c2e3cc3..0c00a86a8 100644
--- a/src/main/java/net/minecraft/server/EntityCow.java
+++ b/src/main/java/net/minecraft/server/EntityCow.java
@@ -16,6 +16,7 @@ public class EntityCow extends EntityAnimal {
@@ -124,7 +124,7 @@ index d2c2e3cc33..0c00a86a84 100644
public EntityCow createChild(EntityAgeable entityageable) {
return (EntityCow) EntityTypes.COW.a(this.world);
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 31ab07176e..5ee807f0ea 100644
index 31ab07176..5ee807f0e 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -2742,8 +2742,14 @@ public abstract class EntityLiving extends Entity {
@@ -145,7 +145,7 @@ index 31ab07176e..5ee807f0ea 100644
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index b0f0040a4a..d013f84076 100644
index b0f0040a4..d013f8407 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -130,4 +130,9 @@ public class PurpurConfig {

View File

@@ -1,28 +0,0 @@
From 58e9ab95ec62c6d5e2dcc37849b323a1254734cd Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Fri, 3 May 2019 23:45:45 -0500
Subject: [PATCH] Expose Animals#isBreedingItem(ItemStack)
---
.../java/org/bukkit/craftbukkit/entity/CraftAnimals.java | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftAnimals.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftAnimals.java
index 599db583b..fa8ca2168 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftAnimals.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftAnimals.java
@@ -47,4 +47,11 @@ public class CraftAnimals extends CraftAgeable implements Animals {
public int getLoveModeTicks() {
return getHandle().loveTicks;
}
+
+ // Purpur start
+ @Override
+ public boolean isBreedingItem(org.bukkit.inventory.ItemStack itemstack) {
+ return getHandle().isBreedingItem(net.minecraft.server.ItemStack.fromBukkitCopy(itemstack == null ? new org.bukkit.inventory.ItemStack(org.bukkit.Material.AIR) : itemstack));
+ }
+ // Purpur end
}
--
2.20.1

View File

@@ -1,4 +1,4 @@
From 3ffd0f1a1470899d3ba61300e32ac3eab30f596c Mon Sep 17 00:00:00 2001
From 56a2ae0b233972e40941b7856fab33a17ff359ea Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Fri, 3 May 2019 23:53:16 -0500
Subject: [PATCH] Fix cow rotation when shearing mooshroom
@@ -8,7 +8,7 @@ Subject: [PATCH] Fix cow rotation when shearing mooshroom
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/main/java/net/minecraft/server/EntityMushroomCow.java b/src/main/java/net/minecraft/server/EntityMushroomCow.java
index d1059355a..f4f60c38d 100644
index 1363069ff..af3b826a4 100644
--- a/src/main/java/net/minecraft/server/EntityMushroomCow.java
+++ b/src/main/java/net/minecraft/server/EntityMushroomCow.java
@@ -101,7 +101,13 @@ public class EntityMushroomCow extends EntityCow {

View File

@@ -1,4 +1,4 @@
From fa488761323e77e154ec12c60fe99e2e6a98ff0e Mon Sep 17 00:00:00 2001
From abfdbc5f08094e06d4ceeb4247926bc131f0082c Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Fri, 3 May 2019 23:58:44 -0500
Subject: [PATCH] Snowman set pumpkin on/off by player interaction
@@ -9,7 +9,7 @@ Subject: [PATCH] Snowman set pumpkin on/off by player interaction
2 files changed, 23 insertions(+)
diff --git a/src/main/java/net/minecraft/server/EntitySnowman.java b/src/main/java/net/minecraft/server/EntitySnowman.java
index fe1381cc17..42d0c0017d 100644
index fe1381cc1..42d0c0017 100644
--- a/src/main/java/net/minecraft/server/EntitySnowman.java
+++ b/src/main/java/net/minecraft/server/EntitySnowman.java
@@ -8,6 +8,7 @@ import org.bukkit.event.player.PlayerShearEntityEvent;
@@ -43,7 +43,7 @@ index fe1381cc17..42d0c0017d 100644
return super.a(entityhuman, enumhand);
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index d013f84076..37bab6180c 100644
index d013f8407..37bab6180 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -135,4 +135,11 @@ public class PurpurConfig {

View File

@@ -1,4 +1,4 @@
From 4197a16281fc9dfa77cd5f5ed098db1fe2fdfe79 Mon Sep 17 00:00:00 2001
From 1c814b48eeea9ba6ee694153404088effb8372b7 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sun, 5 May 2019 12:58:45 -0500
Subject: [PATCH] Implement LivingEntity safeFallDistance
@@ -12,7 +12,7 @@ Subject: [PATCH] Implement LivingEntity safeFallDistance
5 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/src/main/java/net/minecraft/server/EntityGiantZombie.java b/src/main/java/net/minecraft/server/EntityGiantZombie.java
index d9e5eaad12..bcbade19ea 100644
index 8bc325c79..f23d0380f 100644
--- a/src/main/java/net/minecraft/server/EntityGiantZombie.java
+++ b/src/main/java/net/minecraft/server/EntityGiantZombie.java
@@ -4,6 +4,9 @@ public class EntityGiantZombie extends EntityMonster {
@@ -26,7 +26,7 @@ index d9e5eaad12..bcbade19ea 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityHorseAbstract.java b/src/main/java/net/minecraft/server/EntityHorseAbstract.java
index b06bbc45cf..e08eaddef3 100644
index 8aa60e95f..e60eedb54 100644
--- a/src/main/java/net/minecraft/server/EntityHorseAbstract.java
+++ b/src/main/java/net/minecraft/server/EntityHorseAbstract.java
@@ -179,7 +179,7 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven
@@ -39,7 +39,7 @@ index b06bbc45cf..e08eaddef3 100644
if (i > 0) {
this.damageEntity(DamageSource.FALL, (float) i);
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index d44ea9ec5d..c2d83bf3eb 100644
index 5ee807f0e..0054d3bed 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -122,6 +122,7 @@ public abstract class EntityLiving extends Entity {
@@ -60,7 +60,7 @@ index d44ea9ec5d..c2d83bf3eb 100644
if (i > 0) {
// CraftBukkit start
diff --git a/src/main/java/net/minecraft/server/EntityLlama.java b/src/main/java/net/minecraft/server/EntityLlama.java
index 156a70a6cd..75616ac878 100644
index d052dedec..a5dade7d0 100644
--- a/src/main/java/net/minecraft/server/EntityLlama.java
+++ b/src/main/java/net/minecraft/server/EntityLlama.java
@@ -344,7 +344,7 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn
@@ -73,7 +73,7 @@ index 156a70a6cd..75616ac878 100644
if (i > 0) {
if (f >= 6.0F) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
index c4aa1945ff..98f62d7760 100644
index e0de3820f..18d057f0e 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
@@ -699,4 +699,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {

View File

@@ -1,4 +1,4 @@
From 4ead5bd8ca1fa435143de732cb296d61ddad78a9 Mon Sep 17 00:00:00 2001
From c246b29621a8e2c62825e2a9d00a27f03e1c20b9 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Thu, 9 May 2019 14:27:37 -0500
Subject: [PATCH] Silk touch spawners
@@ -13,7 +13,7 @@ Subject: [PATCH] Silk touch spawners
create mode 100644 src/main/java/net/minecraft/server/ItemSpawner.java
diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java
index 79ed7a7b44..7949171eb2 100644
index e077359b0..36c84d75e 100644
--- a/src/main/java/net/minecraft/server/Block.java
+++ b/src/main/java/net/minecraft/server/Block.java
@@ -493,6 +493,7 @@ public class Block implements IMaterial {
@@ -25,7 +25,7 @@ index 79ed7a7b44..7949171eb2 100644
if (!world.isClientSide && !itemstack.isEmpty() && world.getGameRules().getBoolean(GameRules.DO_TILE_DROPS)) {
float f = 0.5F;
diff --git a/src/main/java/net/minecraft/server/BlockMobSpawner.java b/src/main/java/net/minecraft/server/BlockMobSpawner.java
index bb77d916ab..974a5d2816 100644
index bb77d916a..974a5d281 100644
--- a/src/main/java/net/minecraft/server/BlockMobSpawner.java
+++ b/src/main/java/net/minecraft/server/BlockMobSpawner.java
@@ -11,6 +11,40 @@ public class BlockMobSpawner extends BlockTileEntity {
@@ -78,7 +78,7 @@ index bb77d916ab..974a5d2816 100644
return i;
diff --git a/src/main/java/net/minecraft/server/EntityTypes.java b/src/main/java/net/minecraft/server/EntityTypes.java
index a7fc34f850..e4fdf01dc7 100644
index a7fc34f85..e4fdf01dc 100644
--- a/src/main/java/net/minecraft/server/EntityTypes.java
+++ b/src/main/java/net/minecraft/server/EntityTypes.java
@@ -135,10 +135,17 @@ public class EntityTypes<T extends Entity> {
@@ -122,7 +122,7 @@ index a7fc34f850..e4fdf01dc7 100644
this.bg = new ChatMessage(this.f(), new Object[0]);
diff --git a/src/main/java/net/minecraft/server/ItemSpawner.java b/src/main/java/net/minecraft/server/ItemSpawner.java
new file mode 100644
index 0000000000..7dc68ffe92
index 000000000..7dc68ffe9
--- /dev/null
+++ b/src/main/java/net/minecraft/server/ItemSpawner.java
@@ -0,0 +1,23 @@
@@ -150,7 +150,7 @@ index 0000000000..7dc68ffe92
+ }
+}
diff --git a/src/main/java/net/minecraft/server/Items.java b/src/main/java/net/minecraft/server/Items.java
index 84646dbc26..987297634c 100644
index 84646dbc2..987297634 100644
--- a/src/main/java/net/minecraft/server/Items.java
+++ b/src/main/java/net/minecraft/server/Items.java
@@ -155,7 +155,7 @@ public class Items {

View File

@@ -1,4 +1,4 @@
From bda77b04fc4d1e17807745254ff5304bb39d304f Mon Sep 17 00:00:00 2001
From ebfc4ed393ce2487fe54e5658b1654ced5857ccb Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Thu, 9 May 2019 18:26:06 -0500
Subject: [PATCH] Phantoms attracted to crystals and crystals shoot phantoms
@@ -13,7 +13,7 @@ Subject: [PATCH] Phantoms attracted to crystals and crystals shoot phantoms
6 files changed, 235 insertions(+), 14 deletions(-)
diff --git a/src/main/java/net/minecraft/server/DamageSource.java b/src/main/java/net/minecraft/server/DamageSource.java
index 730a15f332..31454349a2 100644
index 730a15f33..31454349a 100644
--- a/src/main/java/net/minecraft/server/DamageSource.java
+++ b/src/main/java/net/minecraft/server/DamageSource.java
@@ -77,6 +77,7 @@ public class DamageSource {
@@ -25,7 +25,7 @@ index 730a15f332..31454349a2 100644
return (new EntityDamageSourceIndirect("indirectMagic", entity, entity1)).setIgnoreArmor().setMagic();
}
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 40ab9daade..dd787b7b65 100644
index 40ab9daad..dd787b7b6 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1400,6 +1400,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -55,7 +55,7 @@ index 40ab9daade..dd787b7b65 100644
return null;
} else if (this.world.isClientSide) {
diff --git a/src/main/java/net/minecraft/server/EntityEnderCrystal.java b/src/main/java/net/minecraft/server/EntityEnderCrystal.java
index 801552fc61..9c7f7fee85 100644
index 801552fc6..9c7f7fee8 100644
--- a/src/main/java/net/minecraft/server/EntityEnderCrystal.java
+++ b/src/main/java/net/minecraft/server/EntityEnderCrystal.java
@@ -13,6 +13,12 @@ public class EntityEnderCrystal extends Entity {
@@ -123,7 +123,7 @@ index 801552fc61..9c7f7fee85 100644
@Override
protected void b(NBTTagCompound nbttagcompound) {
diff --git a/src/main/java/net/minecraft/server/EntityPhantom.java b/src/main/java/net/minecraft/server/EntityPhantom.java
index e5d032d02b..7bc7b33665 100644
index e5d032d02..7bc7b3366 100644
--- a/src/main/java/net/minecraft/server/EntityPhantom.java
+++ b/src/main/java/net/minecraft/server/EntityPhantom.java
@@ -8,9 +8,10 @@ import javax.annotation.Nullable;
@@ -361,7 +361,7 @@ index e5d032d02b..7bc7b33665 100644
@Override
diff --git a/src/main/java/net/minecraft/server/IEntityAccess.java b/src/main/java/net/minecraft/server/IEntityAccess.java
index dca18afdbb..9aaa75e959 100644
index dca18afdb..9aaa75e95 100644
--- a/src/main/java/net/minecraft/server/IEntityAccess.java
+++ b/src/main/java/net/minecraft/server/IEntityAccess.java
@@ -34,6 +34,7 @@ public interface IEntityAccess {
@@ -373,7 +373,7 @@ index dca18afdbb..9aaa75e959 100644
return this.a(oclass, axisalignedbb, IEntitySelector.f);
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 37bab6180c..0bfcef2d38 100644
index 37bab6180..0bfcef2d3 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -136,6 +136,15 @@ public class PurpurConfig {

View File

@@ -1,4 +1,4 @@
From f6099f4243f8aff62dda9f6d2d8fe99732941d58 Mon Sep 17 00:00:00 2001
From 886717839c490903c3070917cff8e93e99aaf574 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Tue, 30 Apr 2019 19:17:21 -0500
Subject: [PATCH] Integrate ridables
@@ -92,7 +92,7 @@ Subject: [PATCH] Integrate ridables
create mode 100644 src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHasRider.java
diff --git a/src/main/java/net/minecraft/server/ControllerLookDolphin.java b/src/main/java/net/minecraft/server/ControllerLookDolphin.java
index 454627f65e..df3d6cf281 100644
index 454627f65..df3d6cf28 100644
--- a/src/main/java/net/minecraft/server/ControllerLookDolphin.java
+++ b/src/main/java/net/minecraft/server/ControllerLookDolphin.java
@@ -1,6 +1,6 @@
@@ -113,7 +113,7 @@ index 454627f65e..df3d6cf281 100644
this.d = false;
this.a.aM = this.a(this.a.aM, this.h() + 20.0F, this.b);
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index dd787b7b65..fe7aa9d813 100644
index dd787b7b6..fe7aa9d81 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -78,6 +78,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -193,7 +193,7 @@ index dd787b7b65..fe7aa9d813 100644
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityAgeable.java b/src/main/java/net/minecraft/server/EntityAgeable.java
index e87754ef33..553245ebe9 100644
index e87754ef3..553245ebe 100644
--- a/src/main/java/net/minecraft/server/EntityAgeable.java
+++ b/src/main/java/net/minecraft/server/EntityAgeable.java
@@ -70,7 +70,7 @@ public abstract class EntityAgeable extends EntityCreature {
@@ -206,7 +206,7 @@ index e87754ef33..553245ebe9 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityBat.java b/src/main/java/net/minecraft/server/EntityBat.java
index 72474211bc..8a8acf14ae 100644
index 72474211b..8a8acf14a 100644
--- a/src/main/java/net/minecraft/server/EntityBat.java
+++ b/src/main/java/net/minecraft/server/EntityBat.java
@@ -14,6 +14,10 @@ public class EntityBat extends EntityAmbient {
@@ -250,7 +250,7 @@ index 72474211bc..8a8acf14ae 100644
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityBlaze.java b/src/main/java/net/minecraft/server/EntityBlaze.java
index 89f1bfa41d..8b8423c6b3 100644
index 89f1bfa41..8b8423c6b 100644
--- a/src/main/java/net/minecraft/server/EntityBlaze.java
+++ b/src/main/java/net/minecraft/server/EntityBlaze.java
@@ -10,6 +10,10 @@ public class EntityBlaze extends EntityMonster {
@@ -295,7 +295,7 @@ index 89f1bfa41d..8b8423c6b3 100644
if (this.c <= 0) {
this.c = 100;
diff --git a/src/main/java/net/minecraft/server/EntityCat.java b/src/main/java/net/minecraft/server/EntityCat.java
index f4660233e8..772c6ce791 100644
index f4660233e..772c6ce79 100644
--- a/src/main/java/net/minecraft/server/EntityCat.java
+++ b/src/main/java/net/minecraft/server/EntityCat.java
@@ -16,7 +16,7 @@ public class EntityCat extends EntityTameableAnimal {
@@ -377,7 +377,7 @@ index f4660233e8..772c6ce791 100644
private final EntityCat a;
diff --git a/src/main/java/net/minecraft/server/EntityCaveSpider.java b/src/main/java/net/minecraft/server/EntityCaveSpider.java
index 89c9306df5..e9ec283625 100644
index 89c9306df..e9ec28362 100644
--- a/src/main/java/net/minecraft/server/EntityCaveSpider.java
+++ b/src/main/java/net/minecraft/server/EntityCaveSpider.java
@@ -6,6 +6,7 @@ public class EntityCaveSpider extends EntitySpider {
@@ -389,7 +389,7 @@ index 89c9306df5..e9ec283625 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityChicken.java b/src/main/java/net/minecraft/server/EntityChicken.java
index f1dfdd4ff8..92aa9f2295 100644
index f1dfdd4ff..92aa9f229 100644
--- a/src/main/java/net/minecraft/server/EntityChicken.java
+++ b/src/main/java/net/minecraft/server/EntityChicken.java
@@ -13,6 +13,7 @@ public class EntityChicken extends EntityAnimal {
@@ -418,7 +418,7 @@ index f1dfdd4ff8..92aa9f2295 100644
this.forceDrops = true; // CraftBukkit
this.a((IMaterial) Items.EGG);
diff --git a/src/main/java/net/minecraft/server/EntityCod.java b/src/main/java/net/minecraft/server/EntityCod.java
index 1e3782122a..c0b066d188 100644
index 1e3782122..c0b066d18 100644
--- a/src/main/java/net/minecraft/server/EntityCod.java
+++ b/src/main/java/net/minecraft/server/EntityCod.java
@@ -4,6 +4,7 @@ public class EntityCod extends EntityFishSchool {
@@ -430,7 +430,7 @@ index 1e3782122a..c0b066d188 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityCow.java b/src/main/java/net/minecraft/server/EntityCow.java
index 0c00a86a84..2e3d6b657f 100644
index 0c00a86a8..2e3d6b657 100644
--- a/src/main/java/net/minecraft/server/EntityCow.java
+++ b/src/main/java/net/minecraft/server/EntityCow.java
@@ -9,11 +9,13 @@ public class EntityCow extends EntityAnimal {
@@ -448,7 +448,7 @@ index 0c00a86a84..2e3d6b657f 100644
this.goalSelector.a(2, new PathfinderGoalBreed(this, 1.0D));
if (net.pl3x.purpur.PurpurConfig.feedMushroomsToCows > 0) this.goalSelector.a(3, new PathfinderGoalTempt(this, 1.25D, RecipeItemStack.a(Items.WHEAT, Blocks.RED_MUSHROOM.getItem(), Blocks.BROWN_MUSHROOM.getItem()), false)); else // Purpur
diff --git a/src/main/java/net/minecraft/server/EntityCreeper.java b/src/main/java/net/minecraft/server/EntityCreeper.java
index bcb7276308..038ff1d93c 100644
index bcb727630..038ff1d93 100644
--- a/src/main/java/net/minecraft/server/EntityCreeper.java
+++ b/src/main/java/net/minecraft/server/EntityCreeper.java
@@ -21,11 +21,13 @@ public class EntityCreeper extends EntityMonster {
@@ -526,7 +526,7 @@ index bcb7276308..038ff1d93c 100644
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityDolphin.java b/src/main/java/net/minecraft/server/EntityDolphin.java
index 063fb70534..a3972b8e69 100644
index 063fb7053..a3972b8e6 100644
--- a/src/main/java/net/minecraft/server/EntityDolphin.java
+++ b/src/main/java/net/minecraft/server/EntityDolphin.java
@@ -18,6 +18,7 @@ public class EntityDolphin extends EntityWaterAnimal {
@@ -578,7 +578,7 @@ index 063fb70534..a3972b8e69 100644
this.i.setMot(this.i.getMot().add(0.0D, 0.005D, 0.0D));
}
diff --git a/src/main/java/net/minecraft/server/EntityDrowned.java b/src/main/java/net/minecraft/server/EntityDrowned.java
index 6f0094e6dc..b0ba05aaf7 100644
index 6f0094e6d..b0ba05aaf 100644
--- a/src/main/java/net/minecraft/server/EntityDrowned.java
+++ b/src/main/java/net/minecraft/server/EntityDrowned.java
@@ -12,6 +12,7 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity {
@@ -617,7 +617,7 @@ index 6f0094e6dc..b0ba05aaf7 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java
index c8c74f2b3e..6a6367a2e1 100644
index c8c74f2b3..6a6367a2e 100644
--- a/src/main/java/net/minecraft/server/EntityEnderDragon.java
+++ b/src/main/java/net/minecraft/server/EntityEnderDragon.java
@@ -46,6 +46,7 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {
@@ -629,7 +629,7 @@ index c8c74f2b3e..6a6367a2e1 100644
this.setHealth(this.getMaxHealth());
this.noclip = true;
diff --git a/src/main/java/net/minecraft/server/EntityEnderman.java b/src/main/java/net/minecraft/server/EntityEnderman.java
index a94ed1ae08..a438d30414 100644
index a94ed1ae0..a438d3041 100644
--- a/src/main/java/net/minecraft/server/EntityEnderman.java
+++ b/src/main/java/net/minecraft/server/EntityEnderman.java
@@ -22,6 +22,7 @@ public class EntityEnderman extends EntityMonster {
@@ -649,7 +649,7 @@ index a94ed1ae08..a438d30414 100644
this.goalSelector.a(2, new PathfinderGoalMeleeAttack(this, 1.0D, false));
this.goalSelector.a(7, new PathfinderGoalRandomStrollLand(this, 1.0D, 0.0F));
diff --git a/src/main/java/net/minecraft/server/EntityEndermite.java b/src/main/java/net/minecraft/server/EntityEndermite.java
index c2be69fc5c..b39c1e95a7 100644
index c2be69fc5..b39c1e95a 100644
--- a/src/main/java/net/minecraft/server/EntityEndermite.java
+++ b/src/main/java/net/minecraft/server/EntityEndermite.java
@@ -9,17 +9,19 @@ public class EntityEndermite extends EntityMonster {
@@ -674,7 +674,7 @@ index c2be69fc5c..b39c1e95a7 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityEvoker.java b/src/main/java/net/minecraft/server/EntityEvoker.java
index 77139f2517..8d923a34c3 100644
index 77139f251..8d923a34c 100644
--- a/src/main/java/net/minecraft/server/EntityEvoker.java
+++ b/src/main/java/net/minecraft/server/EntityEvoker.java
@@ -9,6 +9,7 @@ public class EntityEvoker extends EntityIllagerWizard {
@@ -703,7 +703,7 @@ index 77139f2517..8d923a34c3 100644
this.targetSelector.a(3, (new PathfinderGoalNearestAttackableTarget<>(this, EntityVillagerAbstract.class, false)).a(300));
this.targetSelector.a(3, new PathfinderGoalNearestAttackableTarget<>(this, EntityIronGolem.class, false));
diff --git a/src/main/java/net/minecraft/server/EntityFish.java b/src/main/java/net/minecraft/server/EntityFish.java
index 90479feb49..884d14e1c0 100644
index 90479feb4..884d14e1c 100644
--- a/src/main/java/net/minecraft/server/EntityFish.java
+++ b/src/main/java/net/minecraft/server/EntityFish.java
@@ -72,13 +72,10 @@ public abstract class EntityFish extends EntityWaterAnimal {
@@ -761,7 +761,7 @@ index 90479feb49..884d14e1c0 100644
this.i.setMot(this.i.getMot().add(0.0D, 0.005D, 0.0D));
}
diff --git a/src/main/java/net/minecraft/server/EntityFox.java b/src/main/java/net/minecraft/server/EntityFox.java
index 1da2f013fc..27b29f6336 100644
index 1da2f013f..27b29f633 100644
--- a/src/main/java/net/minecraft/server/EntityFox.java
+++ b/src/main/java/net/minecraft/server/EntityFox.java
@@ -48,6 +48,7 @@ public class EntityFox extends EntityAnimal {
@@ -909,7 +909,7 @@ index 1da2f013fc..27b29f6336 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityGhast.java b/src/main/java/net/minecraft/server/EntityGhast.java
index f25c828df9..c5c49b7192 100644
index f25c828df..c5c49b719 100644
--- a/src/main/java/net/minecraft/server/EntityGhast.java
+++ b/src/main/java/net/minecraft/server/EntityGhast.java
@@ -10,12 +10,14 @@ public class EntityGhast extends EntityFlying implements IMonster {
@@ -946,7 +946,7 @@ index f25c828df9..c5c49b7192 100644
if (this.j-- <= 0) {
this.j += this.i.getRandom().nextInt(5) + 2;
diff --git a/src/main/java/net/minecraft/server/EntityGiantZombie.java b/src/main/java/net/minecraft/server/EntityGiantZombie.java
index f23d0380ff..29e7639ad6 100644
index f23d0380f..29e7639ad 100644
--- a/src/main/java/net/minecraft/server/EntityGiantZombie.java
+++ b/src/main/java/net/minecraft/server/EntityGiantZombie.java
@@ -5,7 +5,9 @@ public class EntityGiantZombie extends EntityMonster {
@@ -960,7 +960,7 @@ index f23d0380ff..29e7639ad6 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityGuardian.java b/src/main/java/net/minecraft/server/EntityGuardian.java
index afb982d428..d782fb138a 100644
index afb982d42..d782fb138 100644
--- a/src/main/java/net/minecraft/server/EntityGuardian.java
+++ b/src/main/java/net/minecraft/server/EntityGuardian.java
@@ -23,8 +23,15 @@ public class EntityGuardian extends EntityMonster {
@@ -1034,7 +1034,7 @@ index afb982d428..d782fb138a 100644
Vec3D vec3d = new Vec3D(this.b - this.i.locX, this.c - this.i.locY, this.d - this.i.locZ);
double d0 = vec3d.f();
diff --git a/src/main/java/net/minecraft/server/EntityGuardianElder.java b/src/main/java/net/minecraft/server/EntityGuardianElder.java
index 7248d46cfb..9bf969d92f 100644
index 7248d46cf..9bf969d92 100644
--- a/src/main/java/net/minecraft/server/EntityGuardianElder.java
+++ b/src/main/java/net/minecraft/server/EntityGuardianElder.java
@@ -9,6 +9,7 @@ public class EntityGuardianElder extends EntityGuardian {
@@ -1046,7 +1046,7 @@ index 7248d46cfb..9bf969d92f 100644
if (this.goalRandomStroll != null) {
this.goalRandomStroll.setTimeBetweenMovement(400);
diff --git a/src/main/java/net/minecraft/server/EntityHorseAbstract.java b/src/main/java/net/minecraft/server/EntityHorseAbstract.java
index e60eedb544..2177a4370e 100644
index e60eedb54..2177a4370 100644
--- a/src/main/java/net/minecraft/server/EntityHorseAbstract.java
+++ b/src/main/java/net/minecraft/server/EntityHorseAbstract.java
@@ -38,6 +38,10 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven
@@ -1061,7 +1061,7 @@ index e60eedb544..2177a4370e 100644
this.loadChest();
}
diff --git a/src/main/java/net/minecraft/server/EntityHorseSkeleton.java b/src/main/java/net/minecraft/server/EntityHorseSkeleton.java
index 0aa77914ca..61cf6723c6 100644
index 0aa77914c..61cf6723c 100644
--- a/src/main/java/net/minecraft/server/EntityHorseSkeleton.java
+++ b/src/main/java/net/minecraft/server/EntityHorseSkeleton.java
@@ -179,4 +179,10 @@ public class EntityHorseSkeleton extends EntityHorseAbstract {
@@ -1076,7 +1076,7 @@ index 0aa77914ca..61cf6723c6 100644
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityHorseZombie.java b/src/main/java/net/minecraft/server/EntityHorseZombie.java
index 1160929e1b..3318e274f8 100644
index 1160929e1..3318e274f 100644
--- a/src/main/java/net/minecraft/server/EntityHorseZombie.java
+++ b/src/main/java/net/minecraft/server/EntityHorseZombie.java
@@ -79,4 +79,10 @@ public class EntityHorseZombie extends EntityHorseAbstract {
@@ -1091,7 +1091,7 @@ index 1160929e1b..3318e274f8 100644
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index 5d3e48ba61..2a943f3160 100644
index 5d3e48ba6..2a943f316 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -362,9 +362,21 @@ public abstract class EntityHuman extends EntityLiving {
@@ -1118,7 +1118,7 @@ index 5d3e48ba61..2a943f3160 100644
this.setSneaking(false);
} else {
diff --git a/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java b/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java
index cc37b5ff16..5ed268ea9f 100644
index cc37b5ff1..5ed268ea9 100644
--- a/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java
+++ b/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java
@@ -9,6 +9,7 @@ public class EntityIllagerIllusioner extends EntityIllagerWizard implements IRan
@@ -1138,7 +1138,7 @@ index cc37b5ff16..5ed268ea9f 100644
this.goalSelector.a(4, new EntityIllagerIllusioner.b());
this.goalSelector.a(5, new EntityIllagerIllusioner.a());
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index d00e99cdba..47090db890 100644
index d00e99cdb..47090db89 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -10,6 +10,7 @@ import java.util.UUID;
@@ -1233,7 +1233,7 @@ index d00e99cdba..47090db890 100644
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityIronGolem.java b/src/main/java/net/minecraft/server/EntityIronGolem.java
index 8e463111bb..2c34ab337a 100644
index 8e463111b..2c34ab337 100644
--- a/src/main/java/net/minecraft/server/EntityIronGolem.java
+++ b/src/main/java/net/minecraft/server/EntityIronGolem.java
@@ -8,11 +8,13 @@ public class EntityIronGolem extends EntityGolem {
@@ -1251,7 +1251,7 @@ index 8e463111bb..2c34ab337a 100644
this.goalSelector.a(2, new PathfinderGoalMoveTowardsTarget(this, 0.9D, 32.0F));
this.goalSelector.a(2, new PathfinderGoalStrollVillage(this, 0.6D));
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 0054d3bed5..2b7925b5d4 100644
index 0054d3bed..2b7925b5d 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -87,10 +87,10 @@ public abstract class EntityLiving extends Entity {
@@ -1320,7 +1320,7 @@ index 0054d3bed5..2b7925b5d4 100644
this.bD = f;
}
diff --git a/src/main/java/net/minecraft/server/EntityLlama.java b/src/main/java/net/minecraft/server/EntityLlama.java
index a5dade7d05..72372497d9 100644
index a5dade7d0..72372497d 100644
--- a/src/main/java/net/minecraft/server/EntityLlama.java
+++ b/src/main/java/net/minecraft/server/EntityLlama.java
@@ -16,6 +16,29 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn
@@ -1394,7 +1394,7 @@ index a5dade7d05..72372497d9 100644
return i == -1 ? null : EnumColor.fromColorIndex(i);
diff --git a/src/main/java/net/minecraft/server/EntityLlamaTrader.java b/src/main/java/net/minecraft/server/EntityLlamaTrader.java
index b60a167f80..39bf1bf9c3 100644
index b60a167f8..39bf1bf9c 100644
--- a/src/main/java/net/minecraft/server/EntityLlamaTrader.java
+++ b/src/main/java/net/minecraft/server/EntityLlamaTrader.java
@@ -9,6 +9,7 @@ public class EntityLlamaTrader extends EntityLlama {
@@ -1420,7 +1420,7 @@ index b60a167f80..39bf1bf9c3 100644
@Override
public GroupDataEntity prepare(GeneratorAccess generatoraccess, DifficultyDamageScaler difficultydamagescaler, EnumMobSpawn enummobspawn, @Nullable GroupDataEntity groupdataentity, @Nullable NBTTagCompound nbttagcompound) {
diff --git a/src/main/java/net/minecraft/server/EntityMagmaCube.java b/src/main/java/net/minecraft/server/EntityMagmaCube.java
index c7c466560e..3a79634e44 100644
index c7c466560..3a79634e4 100644
--- a/src/main/java/net/minecraft/server/EntityMagmaCube.java
+++ b/src/main/java/net/minecraft/server/EntityMagmaCube.java
@@ -6,6 +6,7 @@ public class EntityMagmaCube extends EntitySlime {
@@ -1441,7 +1441,7 @@ index c7c466560e..3a79634e44 100644
this.setMot(vec3d.x, (double) (0.42F + (float) this.getSize() * 0.1F), vec3d.z);
diff --git a/src/main/java/net/minecraft/server/EntityMushroomCow.java b/src/main/java/net/minecraft/server/EntityMushroomCow.java
index af3b826a4d..068e75ce64 100644
index af3b826a4..068e75ce6 100644
--- a/src/main/java/net/minecraft/server/EntityMushroomCow.java
+++ b/src/main/java/net/minecraft/server/EntityMushroomCow.java
@@ -18,6 +18,7 @@ public class EntityMushroomCow extends EntityCow {
@@ -1453,7 +1453,7 @@ index af3b826a4d..068e75ce64 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityOcelot.java b/src/main/java/net/minecraft/server/EntityOcelot.java
index edc5f696c0..e7ee45917c 100644
index edc5f696c..e7ee45917 100644
--- a/src/main/java/net/minecraft/server/EntityOcelot.java
+++ b/src/main/java/net/minecraft/server/EntityOcelot.java
@@ -14,6 +14,7 @@ public class EntityOcelot extends EntityAnimal {
@@ -1473,7 +1473,7 @@ index edc5f696c0..e7ee45917c 100644
this.goalSelector.a(7, new PathfinderGoalLeapAtTarget(this, 0.3F));
this.goalSelector.a(8, new PathfinderGoalOcelotAttack(this));
diff --git a/src/main/java/net/minecraft/server/EntityPanda.java b/src/main/java/net/minecraft/server/EntityPanda.java
index 479ef6b920..697b1bccc0 100644
index 479ef6b92..697b1bccc 100644
--- a/src/main/java/net/minecraft/server/EntityPanda.java
+++ b/src/main/java/net/minecraft/server/EntityPanda.java
@@ -37,6 +37,7 @@ public class EntityPanda extends EntityAnimal {
@@ -1580,7 +1580,7 @@ index 479ef6b920..697b1bccc0 100644
}
}
diff --git a/src/main/java/net/minecraft/server/EntityParrot.java b/src/main/java/net/minecraft/server/EntityParrot.java
index a7cdb5e7a2..0eeb110554 100644
index a7cdb5e7a..0eeb11055 100644
--- a/src/main/java/net/minecraft/server/EntityParrot.java
+++ b/src/main/java/net/minecraft/server/EntityParrot.java
@@ -21,7 +21,7 @@ public class EntityParrot extends EntityPerchable implements EntityBird {
@@ -1651,7 +1651,7 @@ index a7cdb5e7a2..0eeb110554 100644
this.goalSelector.a(2, this.goalSit);
this.goalSelector.a(2, new PathfinderGoalFollowOwnerParrot(this, 1.0D, 5.0F, 1.0F));
diff --git a/src/main/java/net/minecraft/server/EntityPhantom.java b/src/main/java/net/minecraft/server/EntityPhantom.java
index 7bc7b33665..69a1c79e74 100644
index 7bc7b3366..69a1c79e7 100644
--- a/src/main/java/net/minecraft/server/EntityPhantom.java
+++ b/src/main/java/net/minecraft/server/EntityPhantom.java
@@ -15,12 +15,14 @@ public class EntityPhantom extends EntityFlying implements IMonster {
@@ -1751,10 +1751,10 @@ index 7bc7b33665..69a1c79e74 100644
EntityPhantom.this.yaw += 180.0F;
this.j = 0.1F;
diff --git a/src/main/java/net/minecraft/server/EntityPig.java b/src/main/java/net/minecraft/server/EntityPig.java
index 1943a23de4..30feec4701 100644
index 7136e274a..81ba9f240 100644
--- a/src/main/java/net/minecraft/server/EntityPig.java
+++ b/src/main/java/net/minecraft/server/EntityPig.java
@@ -18,11 +18,13 @@ public class EntityPig extends EntityAnimal {
@@ -17,11 +17,13 @@ public class EntityPig extends EntityAnimal {
public EntityPig(EntityTypes<? extends EntityPig> entitytypes, World world) {
super(entitytypes, world);
@@ -1768,7 +1768,7 @@ index 1943a23de4..30feec4701 100644
this.goalSelector.a(1, new PathfinderGoalPanic(this, 1.25D));
this.goalSelector.a(3, new PathfinderGoalBreed(this, 1.0D));
this.goalSelector.a(4, new PathfinderGoalTempt(this, 1.2D, RecipeItemStack.a(Items.CARROT_ON_A_STICK), false));
@@ -111,27 +113,22 @@ public class EntityPig extends EntityAnimal {
@@ -110,27 +112,22 @@ public class EntityPig extends EntityAnimal {
@Override
public boolean a(EntityHuman entityhuman, EnumHand enumhand) {
@@ -1811,7 +1811,7 @@ index 1943a23de4..30feec4701 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityPigZombie.java b/src/main/java/net/minecraft/server/EntityPigZombie.java
index 4f260f8143..5760a18361 100644
index 4f260f814..5760a1836 100644
--- a/src/main/java/net/minecraft/server/EntityPigZombie.java
+++ b/src/main/java/net/minecraft/server/EntityPigZombie.java
@@ -14,6 +14,7 @@ public class EntityPigZombie extends EntityZombie {
@@ -1832,7 +1832,7 @@ index 4f260f8143..5760a18361 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityPillager.java b/src/main/java/net/minecraft/server/EntityPillager.java
index 79a330650b..33b0f25f6d 100644
index 79a330650..33b0f25f6 100644
--- a/src/main/java/net/minecraft/server/EntityPillager.java
+++ b/src/main/java/net/minecraft/server/EntityPillager.java
@@ -11,12 +11,14 @@ public class EntityPillager extends EntityIllagerAbstract implements ICrossbow,
@@ -1851,7 +1851,7 @@ index 79a330650b..33b0f25f6d 100644
this.goalSelector.a(3, new PathfinderGoalCrossbowAttack<>(this, 1.0D, 8.0F));
this.goalSelector.a(8, new PathfinderGoalRandomStroll(this, 0.6D));
diff --git a/src/main/java/net/minecraft/server/EntityPolarBear.java b/src/main/java/net/minecraft/server/EntityPolarBear.java
index b1ee334cf1..727f30edea 100644
index b1ee334cf..727f30ede 100644
--- a/src/main/java/net/minecraft/server/EntityPolarBear.java
+++ b/src/main/java/net/minecraft/server/EntityPolarBear.java
@@ -15,6 +15,7 @@ public class EntityPolarBear extends EntityAnimal {
@@ -1922,7 +1922,7 @@ index b1ee334cf1..727f30edea 100644
public e() {
diff --git a/src/main/java/net/minecraft/server/EntityPufferFish.java b/src/main/java/net/minecraft/server/EntityPufferFish.java
index f5d384adda..ad1decd472 100644
index f5d384add..ad1decd47 100644
--- a/src/main/java/net/minecraft/server/EntityPufferFish.java
+++ b/src/main/java/net/minecraft/server/EntityPufferFish.java
@@ -15,6 +15,7 @@ public class EntityPufferFish extends EntityFish {
@@ -1943,7 +1943,7 @@ index f5d384adda..ad1decd472 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityRabbit.java b/src/main/java/net/minecraft/server/EntityRabbit.java
index 10fca49776..d48610df3a 100644
index 10fca4977..d48610df3 100644
--- a/src/main/java/net/minecraft/server/EntityRabbit.java
+++ b/src/main/java/net/minecraft/server/EntityRabbit.java
@@ -15,6 +15,7 @@ public class EntityRabbit extends EntityAnimal {
@@ -1974,7 +1974,7 @@ index 10fca49776..d48610df3a 100644
double d0 = this.moveController.c();
diff --git a/src/main/java/net/minecraft/server/EntityRavager.java b/src/main/java/net/minecraft/server/EntityRavager.java
index 971ea097be..0df665f9bd 100644
index 971ea097b..0df665f9b 100644
--- a/src/main/java/net/minecraft/server/EntityRavager.java
+++ b/src/main/java/net/minecraft/server/EntityRavager.java
@@ -16,6 +16,7 @@ public class EntityRavager extends EntityRaider {
@@ -1994,7 +1994,7 @@ index 971ea097be..0df665f9bd 100644
this.goalSelector.a(5, new PathfinderGoalRandomStrollLand(this, 0.4D));
this.goalSelector.a(6, new PathfinderGoalLookAtPlayer(this, EntityHuman.class, 6.0F));
diff --git a/src/main/java/net/minecraft/server/EntitySalmon.java b/src/main/java/net/minecraft/server/EntitySalmon.java
index b600f30eb1..8c60e26c70 100644
index b600f30eb..8c60e26c7 100644
--- a/src/main/java/net/minecraft/server/EntitySalmon.java
+++ b/src/main/java/net/minecraft/server/EntitySalmon.java
@@ -4,6 +4,7 @@ public class EntitySalmon extends EntityFishSchool {
@@ -2006,7 +2006,7 @@ index b600f30eb1..8c60e26c70 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntitySheep.java b/src/main/java/net/minecraft/server/EntitySheep.java
index ec13d4f37d..30fa8e5cab 100644
index ec13d4f37..30fa8e5ca 100644
--- a/src/main/java/net/minecraft/server/EntitySheep.java
+++ b/src/main/java/net/minecraft/server/EntitySheep.java
@@ -18,7 +18,7 @@ import org.bukkit.inventory.InventoryView;
@@ -2045,7 +2045,7 @@ index ec13d4f37d..30fa8e5cab 100644
this.goalSelector.a(2, new PathfinderGoalBreed(this, 1.0D));
this.goalSelector.a(3, new PathfinderGoalTempt(this, 1.1D, RecipeItemStack.a(Items.WHEAT), false));
diff --git a/src/main/java/net/minecraft/server/EntityShulker.java b/src/main/java/net/minecraft/server/EntityShulker.java
index aec2e24565..6152856239 100644
index aec2e2456..615285623 100644
--- a/src/main/java/net/minecraft/server/EntityShulker.java
+++ b/src/main/java/net/minecraft/server/EntityShulker.java
@@ -26,6 +26,7 @@ public class EntityShulker extends EntityGolem implements IMonster {
@@ -2065,7 +2065,7 @@ index aec2e24565..6152856239 100644
this.goalSelector.a(4, new EntityShulker.a());
this.goalSelector.a(7, new EntityShulker.e());
diff --git a/src/main/java/net/minecraft/server/EntitySilverfish.java b/src/main/java/net/minecraft/server/EntitySilverfish.java
index eb3c56fefd..d689715b3e 100644
index eb3c56fef..d689715b3 100644
--- a/src/main/java/net/minecraft/server/EntitySilverfish.java
+++ b/src/main/java/net/minecraft/server/EntitySilverfish.java
@@ -9,12 +9,14 @@ public class EntitySilverfish extends EntityMonster {
@@ -2084,7 +2084,7 @@ index eb3c56fefd..d689715b3e 100644
this.goalSelector.a(4, new PathfinderGoalMeleeAttack(this, 1.0D, false));
this.goalSelector.a(5, new EntitySilverfish.PathfinderGoalSilverfishHideInBlock(this));
diff --git a/src/main/java/net/minecraft/server/EntitySkeleton.java b/src/main/java/net/minecraft/server/EntitySkeleton.java
index 0e78d5c62c..908e51b636 100644
index 0e78d5c62..908e51b63 100644
--- a/src/main/java/net/minecraft/server/EntitySkeleton.java
+++ b/src/main/java/net/minecraft/server/EntitySkeleton.java
@@ -4,6 +4,7 @@ public class EntitySkeleton extends EntitySkeletonAbstract {
@@ -2096,7 +2096,7 @@ index 0e78d5c62c..908e51b636 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java b/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java
index 8f1b5a5502..18a34de63d 100644
index 8f1b5a550..18a34de63 100644
--- a/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java
+++ b/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java
@@ -28,6 +28,7 @@ public abstract class EntitySkeletonAbstract extends EntityMonster implements IR
@@ -2108,7 +2108,7 @@ index 8f1b5a5502..18a34de63d 100644
this.goalSelector.a(3, new PathfinderGoalFleeSun(this, 1.0D));
this.goalSelector.a(3, new PathfinderGoalAvoidTarget<>(this, EntityWolf.class, 6.0F, 1.0D, 1.2D));
diff --git a/src/main/java/net/minecraft/server/EntitySkeletonStray.java b/src/main/java/net/minecraft/server/EntitySkeletonStray.java
index 2eb53864f2..eda880703e 100644
index 2eb53864f..eda880703 100644
--- a/src/main/java/net/minecraft/server/EntitySkeletonStray.java
+++ b/src/main/java/net/minecraft/server/EntitySkeletonStray.java
@@ -6,6 +6,7 @@ public class EntitySkeletonStray extends EntitySkeletonAbstract {
@@ -2120,7 +2120,7 @@ index 2eb53864f2..eda880703e 100644
public static boolean b(EntityTypes<EntitySkeletonStray> entitytypes, GeneratorAccess generatoraccess, EnumMobSpawn enummobspawn, BlockPosition blockposition, Random random) {
diff --git a/src/main/java/net/minecraft/server/EntitySkeletonWither.java b/src/main/java/net/minecraft/server/EntitySkeletonWither.java
index 872f79cc67..ed03d31221 100644
index 872f79cc6..ed03d3122 100644
--- a/src/main/java/net/minecraft/server/EntitySkeletonWither.java
+++ b/src/main/java/net/minecraft/server/EntitySkeletonWither.java
@@ -6,6 +6,7 @@ public class EntitySkeletonWither extends EntitySkeletonAbstract {
@@ -2132,7 +2132,7 @@ index 872f79cc67..ed03d31221 100644
}
diff --git a/src/main/java/net/minecraft/server/EntitySlime.java b/src/main/java/net/minecraft/server/EntitySlime.java
index 253ff9594c..af3876a6c8 100644
index 253ff9594..af3876a6c 100644
--- a/src/main/java/net/minecraft/server/EntitySlime.java
+++ b/src/main/java/net/minecraft/server/EntitySlime.java
@@ -29,11 +29,13 @@ public class EntitySlime extends EntityInsentient implements IMonster {
@@ -2159,7 +2159,7 @@ index 253ff9594c..af3876a6c8 100644
this.setMot(vec3d.x, 0.41999998688697815D, vec3d.z);
diff --git a/src/main/java/net/minecraft/server/EntitySnowman.java b/src/main/java/net/minecraft/server/EntitySnowman.java
index 42d0c0017d..984747f999 100644
index 42d0c0017..984747f99 100644
--- a/src/main/java/net/minecraft/server/EntitySnowman.java
+++ b/src/main/java/net/minecraft/server/EntitySnowman.java
@@ -13,10 +13,12 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity {
@@ -2184,7 +2184,7 @@ index 42d0c0017d..984747f999 100644
for (int l = 0; l < 4; ++l) {
diff --git a/src/main/java/net/minecraft/server/EntitySpider.java b/src/main/java/net/minecraft/server/EntitySpider.java
index 3929c86f8b..9c210b8b90 100644
index 3929c86f8..9c210b8b9 100644
--- a/src/main/java/net/minecraft/server/EntitySpider.java
+++ b/src/main/java/net/minecraft/server/EntitySpider.java
@@ -9,11 +9,13 @@ public class EntitySpider extends EntityMonster {
@@ -2202,7 +2202,7 @@ index 3929c86f8b..9c210b8b90 100644
this.goalSelector.a(4, new EntitySpider.PathfinderGoalSpiderMeleeAttack(this));
this.goalSelector.a(5, new PathfinderGoalRandomStrollLand(this, 0.8D));
diff --git a/src/main/java/net/minecraft/server/EntitySquid.java b/src/main/java/net/minecraft/server/EntitySquid.java
index a4d2ff64d8..d4e8a0989b 100644
index a4d2ff64d..d4e8a0989 100644
--- a/src/main/java/net/minecraft/server/EntitySquid.java
+++ b/src/main/java/net/minecraft/server/EntitySquid.java
@@ -21,14 +21,16 @@ public class EntitySquid extends EntityWaterAnimal {
@@ -2291,7 +2291,7 @@ index a4d2ff64d8..d4e8a0989b 100644
}
}
diff --git a/src/main/java/net/minecraft/server/EntityTameableAnimal.java b/src/main/java/net/minecraft/server/EntityTameableAnimal.java
index 2f99caf6fc..ea6fc6e670 100644
index 2f99caf6f..ea6fc6e67 100644
--- a/src/main/java/net/minecraft/server/EntityTameableAnimal.java
+++ b/src/main/java/net/minecraft/server/EntityTameableAnimal.java
@@ -127,6 +127,12 @@ public abstract class EntityTameableAnimal extends EntityAnimal {
@@ -2308,7 +2308,7 @@ index 2f99caf6fc..ea6fc6e670 100644
this.setTamed(true);
this.setOwnerUUID(entityhuman.getUniqueID());
diff --git a/src/main/java/net/minecraft/server/EntityTropicalFish.java b/src/main/java/net/minecraft/server/EntityTropicalFish.java
index 2e537c2032..03b49a7c76 100644
index 2e537c203..03b49a7c7 100644
--- a/src/main/java/net/minecraft/server/EntityTropicalFish.java
+++ b/src/main/java/net/minecraft/server/EntityTropicalFish.java
@@ -17,6 +17,7 @@ public class EntityTropicalFish extends EntityFishSchool {
@@ -2320,7 +2320,7 @@ index 2e537c2032..03b49a7c76 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityTurtle.java b/src/main/java/net/minecraft/server/EntityTurtle.java
index 0bd80e5623..6bd2aeaad3 100644
index 0bd80e562..6bd2aeaad 100644
--- a/src/main/java/net/minecraft/server/EntityTurtle.java
+++ b/src/main/java/net/minecraft/server/EntityTurtle.java
@@ -22,6 +22,7 @@ public class EntityTurtle extends EntityAnimal {
@@ -2447,7 +2447,7 @@ index 0bd80e5623..6bd2aeaad3 100644
if (this.h == ControllerMove.Operation.MOVE_TO && !this.i.getNavigation().n()) {
double d0 = this.b - this.i.locX;
diff --git a/src/main/java/net/minecraft/server/EntityTypes.java b/src/main/java/net/minecraft/server/EntityTypes.java
index e4fdf01dc7..84aa1db728 100644
index e4fdf01dc..84aa1db72 100644
--- a/src/main/java/net/minecraft/server/EntityTypes.java
+++ b/src/main/java/net/minecraft/server/EntityTypes.java
@@ -265,6 +265,10 @@ public class EntityTypes<T extends Entity> {
@@ -2462,7 +2462,7 @@ index e4fdf01dc7..84aa1db728 100644
return getNameComponent().getString();
}
diff --git a/src/main/java/net/minecraft/server/EntityVex.java b/src/main/java/net/minecraft/server/EntityVex.java
index 51c05376da..f76a61ac6d 100644
index 51c05376d..f76a61ac6 100644
--- a/src/main/java/net/minecraft/server/EntityVex.java
+++ b/src/main/java/net/minecraft/server/EntityVex.java
@@ -15,6 +15,7 @@ public class EntityVex extends EntityMonster {
@@ -2507,7 +2507,7 @@ index 51c05376da..f76a61ac6d 100644
Vec3D vec3d = new Vec3D(this.b - EntityVex.this.locX, this.c - EntityVex.this.locY, this.d - EntityVex.this.locZ);
double d0 = vec3d.f();
diff --git a/src/main/java/net/minecraft/server/EntityVindicator.java b/src/main/java/net/minecraft/server/EntityVindicator.java
index ffbd6e9269..a2eef22ccd 100644
index ffbd6e926..a2eef22cc 100644
--- a/src/main/java/net/minecraft/server/EntityVindicator.java
+++ b/src/main/java/net/minecraft/server/EntityVindicator.java
@@ -15,12 +15,14 @@ public class EntityVindicator extends EntityIllagerAbstract {
@@ -2526,7 +2526,7 @@ index ffbd6e9269..a2eef22ccd 100644
this.goalSelector.a(2, new EntityIllagerAbstract.b(this));
this.goalSelector.a(3, new EntityRaider.a(this, 10.0F));
diff --git a/src/main/java/net/minecraft/server/EntityWitch.java b/src/main/java/net/minecraft/server/EntityWitch.java
index 0b849f37c5..bee22c4df4 100644
index 0b849f37c..bee22c4df 100644
--- a/src/main/java/net/minecraft/server/EntityWitch.java
+++ b/src/main/java/net/minecraft/server/EntityWitch.java
@@ -22,6 +22,7 @@ public class EntityWitch extends EntityRaider implements IRangedEntity {
@@ -2548,7 +2548,7 @@ index 0b849f37c5..bee22c4df4 100644
this.goalSelector.a(2, new PathfinderGoalRandomStrollLand(this, 1.0D));
this.goalSelector.a(3, new PathfinderGoalLookAtPlayer(this, EntityHuman.class, 8.0F));
diff --git a/src/main/java/net/minecraft/server/EntityWither.java b/src/main/java/net/minecraft/server/EntityWither.java
index 8b3052b113..575f046512 100644
index 8b3052b11..575f04651 100644
--- a/src/main/java/net/minecraft/server/EntityWither.java
+++ b/src/main/java/net/minecraft/server/EntityWither.java
@@ -35,6 +35,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity {
@@ -2570,7 +2570,7 @@ index 8b3052b113..575f046512 100644
this.goalSelector.a(5, new PathfinderGoalRandomStrollLand(this, 1.0D));
this.goalSelector.a(6, new PathfinderGoalLookAtPlayer(this, EntityHuman.class, 8.0F));
diff --git a/src/main/java/net/minecraft/server/EntityWolf.java b/src/main/java/net/minecraft/server/EntityWolf.java
index 02492663ac..b153853ab0 100644
index 02492663a..b153853ab 100644
--- a/src/main/java/net/minecraft/server/EntityWolf.java
+++ b/src/main/java/net/minecraft/server/EntityWolf.java
@@ -28,6 +28,7 @@ public class EntityWolf extends EntityTameableAnimal {
@@ -2590,10 +2590,10 @@ index 02492663ac..b153853ab0 100644
this.goalSelector.a(3, new EntityWolf.a<>(this, EntityLlama.class, 24.0F, 1.5D, 1.5D));
this.goalSelector.a(4, new PathfinderGoalLeapAtTarget(this, 0.4F));
diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java
index 5950f3ebd0..4456cf1354 100644
index 99b2e7815..96676a786 100644
--- a/src/main/java/net/minecraft/server/EntityZombie.java
+++ b/src/main/java/net/minecraft/server/EntityZombie.java
@@ -36,6 +36,7 @@ public class EntityZombie extends EntityMonster {
@@ -37,6 +37,7 @@ public class EntityZombie extends EntityMonster {
public EntityZombie(EntityTypes<? extends EntityZombie> entitytypes, World world) {
super(entitytypes, world);
@@ -2601,7 +2601,7 @@ index 5950f3ebd0..4456cf1354 100644
this.bD = new PathfinderGoalBreakDoor(this, EntityZombie.bC);
}
@@ -45,6 +46,7 @@ public class EntityZombie extends EntityMonster {
@@ -46,6 +47,7 @@ public class EntityZombie extends EntityMonster {
@Override
protected void initPathfinder() {
@@ -2610,7 +2610,7 @@ index 5950f3ebd0..4456cf1354 100644
this.goalSelector.a(8, new PathfinderGoalLookAtPlayer(this, EntityHuman.class, 8.0F));
this.goalSelector.a(8, new PathfinderGoalRandomLookaround(this));
diff --git a/src/main/java/net/minecraft/server/EntityZombieHusk.java b/src/main/java/net/minecraft/server/EntityZombieHusk.java
index 4c8b2dd094..2a81670672 100644
index 4c8b2dd09..2a8167067 100644
--- a/src/main/java/net/minecraft/server/EntityZombieHusk.java
+++ b/src/main/java/net/minecraft/server/EntityZombieHusk.java
@@ -6,6 +6,7 @@ public class EntityZombieHusk extends EntityZombie {
@@ -2622,10 +2622,10 @@ index 4c8b2dd094..2a81670672 100644
public static boolean b(EntityTypes<EntityZombieHusk> entitytypes, GeneratorAccess generatoraccess, EnumMobSpawn enummobspawn, BlockPosition blockposition, Random random) {
diff --git a/src/main/java/net/minecraft/server/EntityZombieVillager.java b/src/main/java/net/minecraft/server/EntityZombieVillager.java
index da8a8c8551..bf0ea521a5 100644
index d2bd3bb31..e67980b69 100644
--- a/src/main/java/net/minecraft/server/EntityZombieVillager.java
+++ b/src/main/java/net/minecraft/server/EntityZombieVillager.java
@@ -21,6 +21,7 @@ public class EntityZombieVillager extends EntityZombie implements VillagerDataHo
@@ -22,6 +22,7 @@ public class EntityZombieVillager extends EntityZombie implements VillagerDataHo
public EntityZombieVillager(EntityTypes<? extends EntityZombieVillager> entitytypes, World world) {
super(entitytypes, world);
@@ -2633,7 +2633,7 @@ index da8a8c8551..bf0ea521a5 100644
this.setVillagerData(this.getVillagerData().withProfession((VillagerProfession) IRegistry.VILLAGER_PROFESSION.a(this.random)));
}
@@ -110,7 +111,7 @@ public class EntityZombieVillager extends EntityZombie implements VillagerDataHo
@@ -111,7 +112,7 @@ public class EntityZombieVillager extends EntityZombie implements VillagerDataHo
return true;
} else {
@@ -2643,7 +2643,7 @@ index da8a8c8551..bf0ea521a5 100644
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index feab5b66f8..2b67041f45 100644
index 0bfcef2d3..61adf7d63 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -131,6 +131,11 @@ public class PurpurConfig {
@@ -2782,7 +2782,7 @@ index feab5b66f8..2b67041f45 100644
}
diff --git a/src/main/java/net/pl3x/purpur/controller/ControllerLookWASD.java b/src/main/java/net/pl3x/purpur/controller/ControllerLookWASD.java
new file mode 100644
index 0000000000..99e184d36e
index 000000000..99e184d36
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/controller/ControllerLookWASD.java
@@ -0,0 +1,74 @@
@@ -2862,7 +2862,7 @@ index 0000000000..99e184d36e
+}
diff --git a/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java
new file mode 100644
index 0000000000..d64a66274b
index 000000000..d64a66274
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java
@@ -0,0 +1,77 @@
@@ -2945,7 +2945,7 @@ index 0000000000..d64a66274b
+}
diff --git a/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlying.java b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlying.java
new file mode 100644
index 0000000000..b0b504c7dc
index 000000000..b0b504c7d
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlying.java
@@ -0,0 +1,62 @@
@@ -3013,7 +3013,7 @@ index 0000000000..b0b504c7dc
+}
diff --git a/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlyingWithSpacebar.java b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlyingWithSpacebar.java
new file mode 100644
index 0000000000..a353069b78
index 000000000..a353069b7
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlyingWithSpacebar.java
@@ -0,0 +1,65 @@
@@ -3084,7 +3084,7 @@ index 0000000000..a353069b78
+}
diff --git a/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDWater.java b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDWater.java
new file mode 100644
index 0000000000..74ff48259c
index 000000000..74ff48259
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDWater.java
@@ -0,0 +1,42 @@
@@ -3132,7 +3132,7 @@ index 0000000000..74ff48259c
+}
diff --git a/src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHasRider.java b/src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHasRider.java
new file mode 100644
index 0000000000..93d27ecc52
index 000000000..93d27ecc5
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHasRider.java
@@ -0,0 +1,17 @@
@@ -3154,7 +3154,7 @@ index 0000000000..93d27ecc52
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
index 18d057f0e3..93aede13c9 100644
index 18d057f0e..93aede13c 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
@@ -710,5 +710,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@@ -3174,7 +3174,7 @@ index 18d057f0e3..93aede13c9 100644
// Purpur end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java
index 56c233872b..b19970c883 100644
index 56c233872..b19970c88 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java
@@ -75,4 +75,16 @@ public abstract class CraftMob extends CraftLivingEntity implements Mob {

View File

@@ -1,4 +1,4 @@
From 4f0ade4ca03aa897cb0667065159ac29297453fb Mon Sep 17 00:00:00 2001
From 16dc587c408f455255d4f5d1cbade8824e6cc24c Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sun, 12 May 2019 00:43:12 -0500
Subject: [PATCH] Make giants naturally spawn and have AI
@@ -12,7 +12,7 @@ Subject: [PATCH] Make giants naturally spawn and have AI
5 files changed, 69 insertions(+), 2 deletions(-)
diff --git a/src/main/java/net/minecraft/server/BiomeBase.java b/src/main/java/net/minecraft/server/BiomeBase.java
index a86ece8344..fbbb3b7c51 100644
index a86ece834..fbbb3b7c5 100644
--- a/src/main/java/net/minecraft/server/BiomeBase.java
+++ b/src/main/java/net/minecraft/server/BiomeBase.java
@@ -108,6 +108,7 @@ public abstract class BiomeBase {
@@ -24,7 +24,7 @@ index a86ece8344..fbbb3b7c51 100644
((List) this.u.get(enumcreaturetype)).add(biomebase_biomemeta);
}
diff --git a/src/main/java/net/minecraft/server/Biomes.java b/src/main/java/net/minecraft/server/Biomes.java
index f4698a6809..3f7f7a2de8 100644
index f4698a680..b075ee4ec 100644
--- a/src/main/java/net/minecraft/server/Biomes.java
+++ b/src/main/java/net/minecraft/server/Biomes.java
@@ -92,5 +92,30 @@ public abstract class Biomes {
@@ -42,14 +42,14 @@ index f4698a6809..3f7f7a2de8 100644
+ addSpawn("mountains", EnumCreatureType.MONSTER, EntityTypes.GIANT, 5, 1, 1);
+ addSpawn("gravelly_mountains", EnumCreatureType.MONSTER, EntityTypes.GIANT, 5, 1, 1);
+ addSpawn("modified_gravelly_mountains", EnumCreatureType.MONSTER, EntityTypes.GIANT, 5, 1, 1);
+ addSpawn("savanna", EnumCreatureType.MONSTER, EntityTypes.GIANT, 5, 1, 2);
+ addSpawn("savanna_plateau", EnumCreatureType.MONSTER, EntityTypes.GIANT, 5, 1, 2);
+ addSpawn("shattered_savanna", EnumCreatureType.MONSTER, EntityTypes.GIANT, 5, 1, 2);
+ addSpawn("shattered_savanna_plateau", EnumCreatureType.MONSTER, EntityTypes.GIANT, 5, 1, 2);
+ addSpawn("badlands", EnumCreatureType.MONSTER, EntityTypes.GIANT, 10, 1, 2);
+ addSpawn("badlands_plateau", EnumCreatureType.MONSTER, EntityTypes.GIANT, 10, 1, 2);
+ addSpawn("eroded_badlands", EnumCreatureType.MONSTER, EntityTypes.GIANT, 10, 1, 2);
+ addSpawn("modified_badlands_plateau", EnumCreatureType.MONSTER, EntityTypes.GIANT, 10, 2, 1);
+ addSpawn("savanna", EnumCreatureType.MONSTER, EntityTypes.GIANT, 5, 1, 1);
+ addSpawn("savanna_plateau", EnumCreatureType.MONSTER, EntityTypes.GIANT, 5, 1, 1);
+ addSpawn("shattered_savanna", EnumCreatureType.MONSTER, EntityTypes.GIANT, 5, 1, 1);
+ addSpawn("shattered_savanna_plateau", EnumCreatureType.MONSTER, EntityTypes.GIANT, 5, 1, 1);
+ addSpawn("badlands", EnumCreatureType.MONSTER, EntityTypes.GIANT, 10, 1, 1);
+ addSpawn("badlands_plateau", EnumCreatureType.MONSTER, EntityTypes.GIANT, 10, 1, 1);
+ addSpawn("eroded_badlands", EnumCreatureType.MONSTER, EntityTypes.GIANT, 10, 1, 1);
+ addSpawn("modified_badlands_plateau", EnumCreatureType.MONSTER, EntityTypes.GIANT, 10, 1, 1);
+ }
+ }
+
@@ -59,7 +59,7 @@ index f4698a6809..3f7f7a2de8 100644
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityGiantZombie.java b/src/main/java/net/minecraft/server/EntityGiantZombie.java
index 29e7639ad6..e69e7a456d 100644
index 29e7639ad..e69e7a456 100644
--- a/src/main/java/net/minecraft/server/EntityGiantZombie.java
+++ b/src/main/java/net/minecraft/server/EntityGiantZombie.java
@@ -21,11 +21,37 @@ public class EntityGiantZombie extends EntityMonster {
@@ -103,7 +103,7 @@ index 29e7639ad6..e69e7a456d 100644
}
}
diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java
index 5e6559df0b..2d4ea99f16 100644
index 5e6559df0..2d4ea99f1 100644
--- a/src/main/java/net/minecraft/server/SpawnerCreature.java
+++ b/src/main/java/net/minecraft/server/SpawnerCreature.java
@@ -78,6 +78,14 @@ public final class SpawnerCreature {
@@ -122,7 +122,7 @@ index 5e6559df0b..2d4ea99f16 100644
EntityPositionTypes.Surface entitypositiontypes_surface = EntityPositionTypes.a(entitytypes);
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 2b67041f45..ad807268c9 100644
index 61adf7d63..7063c6329 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -141,6 +141,13 @@ public class PurpurConfig {

View File

@@ -1,4 +1,4 @@
From 87605ad90c84030a6149c9ff94307907be3a48f9 Mon Sep 17 00:00:00 2001
From ccb0e7ca64314cac34a3449b751c42efa5db935e Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sun, 12 May 2019 01:14:46 -0500
Subject: [PATCH] Pigs give saddle back
@@ -8,10 +8,10 @@ Subject: [PATCH] Pigs give saddle back
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/src/main/java/net/minecraft/server/EntityPig.java b/src/main/java/net/minecraft/server/EntityPig.java
index 30feec4701..a2d4c2f54b 100644
index 81ba9f240..036ec3ec2 100644
--- a/src/main/java/net/minecraft/server/EntityPig.java
+++ b/src/main/java/net/minecraft/server/EntityPig.java
@@ -120,10 +120,20 @@ public class EntityPig extends EntityAnimal {
@@ -119,10 +119,20 @@ public class EntityPig extends EntityAnimal {
return true;
}
if (hasSaddle() && !isVehicle()) {

View File

@@ -1,333 +0,0 @@
From d9c002ab7ad515bee9e4a1d231f04feb01b2c6ed Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 11 May 2019 01:31:50 -0500
Subject: [PATCH] Villager shops
---
.../minecraft/server/DispenserRegistry.java | 1 +
.../net/minecraft/server/EntityTypes.java | 7 +
.../server/EntityVillagerAbstract.java | 1 +
.../minecraft/server/EntityVillagerShop.java | 227 ++++++++++++++++++
.../minecraft/server/NavigationAbstract.java | 2 +
.../entity/CraftAbstractVillager.java | 2 +-
6 files changed, 239 insertions(+), 1 deletion(-)
create mode 100644 src/main/java/net/minecraft/server/EntityVillagerShop.java
diff --git a/src/main/java/net/minecraft/server/DispenserRegistry.java b/src/main/java/net/minecraft/server/DispenserRegistry.java
index d474197c15..fd123b9a5f 100644
--- a/src/main/java/net/minecraft/server/DispenserRegistry.java
+++ b/src/main/java/net/minecraft/server/DispenserRegistry.java
@@ -140,6 +140,7 @@ public class DispenserRegistry {
throw new IllegalArgumentException("Not bootstrapped");
} else if (!SharedConstants.b) {
b().forEach((s) -> {
+ if (s.equals("entity.minecraft.villager_shop")) return; // Purpur - TODO find a way to add translations
DispenserRegistry.LOGGER.error("Missing translations: " + s);
});
}
diff --git a/src/main/java/net/minecraft/server/EntityTypes.java b/src/main/java/net/minecraft/server/EntityTypes.java
index 84aa1db728..d92fbea4c7 100644
--- a/src/main/java/net/minecraft/server/EntityTypes.java
+++ b/src/main/java/net/minecraft/server/EntityTypes.java
@@ -117,6 +117,7 @@ public class EntityTypes<T extends Entity> {
public static final EntityTypes<EntityLightning> LIGHTNING_BOLT = a("lightning_bolt", EntityTypes.a.a(EnumCreatureType.MISC).b().a(0.0F, 0.0F));
public static final EntityTypes<EntityHuman> PLAYER = a("player", EntityTypes.a.a(EnumCreatureType.MISC).b().a().a(0.6F, 1.8F));
public static final EntityTypes<EntityFishingHook> FISHING_BOBBER = a("fishing_bobber", EntityTypes.a.a(EnumCreatureType.MISC).b().a().a(0.25F, 0.25F));
+ public static final EntityTypes<EntityVillager> VILLAGER_SHOP = register("villager_shop", "villager", EntityTypes.a.a(EntityVillagerShop::new, EnumCreatureType.CREATURE).a(0.6F, 1.95F));
private final EntityTypes.b<T> aZ;
private final EnumCreatureType ba;
private final boolean bb;
@@ -136,6 +137,12 @@ public class EntityTypes<T extends Entity> {
}
// Purpur start
+ private static <T extends Entity> EntityTypes<T> register(String name, String extendFrom, EntityTypes.a entitytypes_a) {
+ Map<Object, com.mojang.datafixers.types.Type<?>> dataTypes = (Map<Object, com.mojang.datafixers.types.Type<?>>) DataConverterRegistry.a().getSchema(DataFixUtils.makeKey(SharedConstants.a().getWorldVersion())).findChoiceType(DataConverterTypes.o).types(); // entity_tree
+ dataTypes.put("minecraft:" + name, dataTypes.get("minecraft:" + extendFrom));
+ return a(name, entitytypes_a);
+ }
+
public static EntityTypes getFromKey(MinecraftKey key) {
return IRegistry.ENTITY_TYPE.get(key);
}
diff --git a/src/main/java/net/minecraft/server/EntityVillagerAbstract.java b/src/main/java/net/minecraft/server/EntityVillagerAbstract.java
index f161ccb979..497dec811c 100644
--- a/src/main/java/net/minecraft/server/EntityVillagerAbstract.java
+++ b/src/main/java/net/minecraft/server/EntityVillagerAbstract.java
@@ -68,6 +68,7 @@ public abstract class EntityVillagerAbstract extends EntityAgeable implements NP
return this.tradingPlayer;
}
+ public boolean hasTrader() { return dY(); } // Purpur - OBFHELPER
public boolean dY() {
return this.tradingPlayer != null;
}
diff --git a/src/main/java/net/minecraft/server/EntityVillagerShop.java b/src/main/java/net/minecraft/server/EntityVillagerShop.java
new file mode 100644
index 0000000000..cdb7655c3f
--- /dev/null
+++ b/src/main/java/net/minecraft/server/EntityVillagerShop.java
@@ -0,0 +1,227 @@
+package net.minecraft.server;
+
+import com.mojang.datafixers.Dynamic;
+
+import javax.annotation.Nullable;
+import java.util.EnumSet;
+
+public class EntityVillagerShop extends EntityVillagerAbstract {
+ private static final DataWatcherObject<VillagerData> VILLAGER_DATA = DataWatcher.a(EntityVillagerShop.class, DataWatcherRegistry.q);
+
+ private BlockPosition home;
+
+ public EntityVillagerShop(EntityTypes<? extends EntityVillager> entitytypes, World world) {
+ this(EntityTypes.VILLAGER, world, VillagerType.PLAINS);
+ }
+
+ public EntityVillagerShop(EntityTypes<? extends EntityVillager> entitytypes, World world, VillagerType villagertype) {
+ super(entitytypes, world);
+ setCanPickupLoot(false);
+ setVillagerData(getVillagerData().withType(villagertype).withProfession(VillagerProfession.NONE));
+ }
+
+ @Override
+ public void setPosition(double x, double y, double z) {
+ super.setPosition(x, y, z);
+ if (home == null) {
+ home = new BlockPosition(x, y, z);
+ }
+ }
+
+ @Override
+ public boolean isTypeNotPersistent(double d) {
+ return false; // don't despawn
+ }
+
+ @Override
+ protected void initDatawatcher() {
+ super.initDatawatcher();
+ this.datawatcher.register(VILLAGER_DATA, new VillagerData(VillagerType.PLAINS, VillagerProfession.NONE, 1));
+ }
+
+ public void setVillagerData(VillagerData villagerdata) {
+ datawatcher.set(VILLAGER_DATA, villagerdata);
+ }
+
+ public VillagerData getVillagerData() {
+ return datawatcher.get(VILLAGER_DATA);
+ }
+
+ @Override
+ protected void initAttributes() {
+ super.initAttributes();
+ this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).setValue(0.5D);
+ this.getAttributeInstance(GenericAttributes.FOLLOW_RANGE).setValue(48.0D);
+ }
+
+ @Override
+ protected void initPathfinder() {
+ this.goalSelector.a(0, new PathfinderGoalFloat(this));
+ this.goalSelector.a(1, new PathfinderGoalTradeWithPlayer(this));
+ this.goalSelector.a(1, new PathfinderGoalLookAtTradingPlayer(this));
+ this.goalSelector.a(2, new WanderCloseToHome(this, 16.0D, 0.35D));
+ this.goalSelector.a(9, new PathfinderGoalInteract(this, EntityHuman.class, 3.0F, 1.0F));
+ this.goalSelector.a(10, new PathfinderGoalLookAtPlayer(this, EntityInsentient.class, 8.0F));
+ }
+
+ @Override
+ public void b(NBTTagCompound nbttagcompound) { // write/save
+ super.b(nbttagcompound);
+ nbttagcompound.set("VillagerData", getVillagerData().a(DynamicOpsNBT.a));
+ }
+
+ @Override
+ public void a(NBTTagCompound nbttagcompound) { // read/load
+ super.a(nbttagcompound);
+ if (nbttagcompound.hasKeyOfType("VillagerData", 10)) {
+ setVillagerData(new VillagerData(new Dynamic<>(DynamicOpsNBT.a, nbttagcompound.get("VillagerData"))));
+ }
+ setCanPickupLoot(false);
+ }
+
+ @Override
+ public int getExperience() { // getExp
+ return 0;
+ }
+
+ @Override
+ public boolean ea() { // showProfessionProgressBar
+ return false;
+ }
+
+ @Override
+ public boolean a(EntityHuman entityhuman, EnumHand enumhand) { // processInteract
+ ItemStack itemstack = entityhuman.b(enumhand);
+ if (itemstack.getItem() == Items.NAME_TAG) {
+ itemstack.a(entityhuman, this, enumhand);
+ return true;
+ }
+ if (itemstack.getItem() != Items.VILLAGER_SPAWN_EGG && this.isAlive() && !this.hasTrader() && !this.isSleeping()) {
+ if (enumhand == EnumHand.MAIN_HAND) {
+ entityhuman.a(StatisticList.TALKED_TO_VILLAGER);
+ }
+ //if (!getOffers().isEmpty()) {
+ setTradingPlayer(entityhuman);
+ openTrade(entityhuman, getScoreboardDisplayName(), getVillagerData().getLevel());
+ return true;
+ //}
+ }
+ return super.a(entityhuman, enumhand);
+ }
+
+ @Nullable
+ @Override
+ protected SoundEffect getSoundAmbient() {
+ return isSleeping() ? null : (hasTrader() ? SoundEffects.ENTITY_VILLAGER_TRADE : SoundEffects.ENTITY_VILLAGER_AMBIENT);
+ }
+
+ @Override
+ protected SoundEffect getSoundHurt(DamageSource damagesource) {
+ return SoundEffects.ENTITY_VILLAGER_HURT;
+ }
+
+ @Override
+ protected SoundEffect getSoundDeath() {
+ return SoundEffects.ENTITY_VILLAGER_DEATH;
+ }
+
+ @Override
+ public void e(BlockPosition blockposition) { // sleepInBed
+ super.e(blockposition);
+ }
+
+ @Override
+ protected void eh() { // setupTradeOffers
+ // do not do anything
+ }
+
+ @Override
+ protected void a(MerchantRecipeList list, VillagerTrades.IMerchantRecipeOption[] option, int size) { // addTradeOffers
+ // do not do anything
+ }
+
+ @Override
+ protected void b(MerchantRecipe merchantrecipe) { // processRecipeRewards
+ // do nothing
+ }
+
+ @Override
+ protected void a(EntityItem entityitem) { // updateEquipmentIfNeeded
+ // do not pick up items
+ }
+
+ @Override
+ public boolean a_(int i, ItemStack itemstack) { // setItem
+ return false; // do not set items in own inventory
+ }
+
+ @Override
+ public void setLastDamager(@Nullable EntityLiving entityliving) {
+ if (isAlive() && entityliving instanceof EntityHuman) {
+ world.broadcastEntityEffect(this, (byte) 13); // mad particles
+ }
+ super.setLastDamager(entityliving);
+ }
+
+ @Override
+ public void die(DamageSource damagesource) {
+ super.die(damagesource);
+ }
+
+ @Override
+ public EntityVillagerShop createChild(EntityAgeable entityageable) {
+ return null; // shop workers don't breed
+ }
+
+ @Override
+ public GroupDataEntity prepare(GeneratorAccess generatoraccess, DifficultyDamageScaler difficultydamagescaler, EnumMobSpawn enummobspawn, @Nullable GroupDataEntity groupdataentity, @Nullable NBTTagCompound nbttagcompound) {
+ if (enummobspawn == EnumMobSpawn.BREEDING) {
+ setVillagerData(getVillagerData().withProfession(VillagerProfession.NONE));
+ }
+ if (enummobspawn == EnumMobSpawn.COMMAND || enummobspawn == EnumMobSpawn.SPAWN_EGG || enummobspawn == EnumMobSpawn.SPAWNER) {
+ setVillagerData(getVillagerData().withType(VillagerType.a(generatoraccess.getBiome(new BlockPosition(this)))));
+ }
+ return super.prepare(generatoraccess, difficultydamagescaler, enummobspawn, groupdataentity, nbttagcompound);
+ }
+
+ public void setHome(BlockPosition homePos) {
+ this.home = homePos;
+ }
+
+ public BlockPosition getHome() {
+ return home;
+ }
+
+ static class WanderCloseToHome extends PathfinderGoal {
+ final EntityVillagerShop villager;
+ final double range;
+ final double speed;
+
+ private WanderCloseToHome(EntityVillagerShop villager, double range, double speed) {
+ this.villager = villager;
+ this.range = range;
+ this.speed = speed;
+ this.a(EnumSet.of(Type.MOVE));
+ }
+
+ @Override
+ public boolean a() { // shouldExecute
+ return villager.navigation.hasNoPath();
+ }
+
+ @Override
+ public void e() { // tick
+ if (!villager.navigation.hasNoPath()) {
+ return; // already on a path
+ }
+ BlockPosition home = villager.getHome();
+ if (!home.a(villager.getHome(), range)) {
+ Vec3D direction = new Vec3D(home).add(-villager.locX, -villager.locY, -villager.locZ).d(); // normalize
+ Vec3D target = direction.a(10.0D).add(villager.locX, villager.locY, villager.locZ); // scale
+ villager.navigation.setDestination(target.x, target.y, target.z, speed);
+ } else {
+ villager.navigation.setDestination(home.getX(), home.getY(), home.getZ(), speed);
+ }
+ }
+ }
+}
diff --git a/src/main/java/net/minecraft/server/NavigationAbstract.java b/src/main/java/net/minecraft/server/NavigationAbstract.java
index 66e10108d6..278f36106d 100644
--- a/src/main/java/net/minecraft/server/NavigationAbstract.java
+++ b/src/main/java/net/minecraft/server/NavigationAbstract.java
@@ -146,6 +146,7 @@ public abstract class NavigationAbstract {
}
}
+ public boolean setDestination(double x, double y, double z, double speed) { return a(x, y, z, speed); } // Purpur - OBFHELPER
public boolean a(double d0, double d1, double d2, double d3) {
return this.a(this.a(d0, d1, d2, 1), d3);
}
@@ -262,6 +263,7 @@ public abstract class NavigationAbstract {
}
+ public boolean hasNoPath() { return n(); } // Purpur - OBFHELPER
public boolean n() {
return this.c == null || this.c.b();
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractVillager.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractVillager.java
index 18520fec05..307331e377 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractVillager.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractVillager.java
@@ -20,7 +20,7 @@ public class CraftAbstractVillager extends CraftAgeable implements AbstractVilla
@Override
public EntityVillagerAbstract getHandle() {
- return (EntityVillager) entity;
+ return (EntityVillagerAbstract) entity; // Purpur
}
@Override
--
2.20.1

View File

@@ -1,4 +1,4 @@
From 9c2df3b4649299072058da918e2b88a57175f819 Mon Sep 17 00:00:00 2001
From cd7d784930a0513aa753e4d148df50ad6d0ab215 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 18 May 2019 16:59:52 -0500
Subject: [PATCH] Prevent phantoms spawning on creative players

View File

@@ -1,4 +1,4 @@
From 0c3b1c07c2cd9820818551a76fe1b2df4a245322 Mon Sep 17 00:00:00 2001
From c53688c4c3bf7053639574370a40ea890001923a Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sun, 19 May 2019 18:11:53 -0500
Subject: [PATCH] Add regen effect to campfires
@@ -11,7 +11,7 @@ Subject: [PATCH] Add regen effect to campfires
4 files changed, 89 insertions(+), 3 deletions(-)
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 7e59a7b30..53cf6fc39 100644
index 2b7925b5d..8b6dd4527 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -2715,10 +2715,19 @@ public abstract class EntityLiving extends Entity {
@@ -38,7 +38,7 @@ index 7e59a7b30..53cf6fc39 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityPotion.java b/src/main/java/net/minecraft/server/EntityPotion.java
index acf6082e7..b0732da90 100644
index 998336557..2642e86f7 100644
--- a/src/main/java/net/minecraft/server/EntityPotion.java
+++ b/src/main/java/net/minecraft/server/EntityPotion.java
@@ -91,6 +91,7 @@ public class EntityPotion extends EntityProjectile {

View File

@@ -1,4 +1,4 @@
From 0dadc82e89e4d910e53652e5aee29708940477e0 Mon Sep 17 00:00:00 2001
From 164950dc3352130385909359c73009abaee9eaaa Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Thu, 23 May 2019 16:20:21 -0500
Subject: [PATCH] Campfires should fall with gravity
@@ -10,7 +10,7 @@ Subject: [PATCH] Campfires should fall with gravity
3 files changed, 31 insertions(+), 1 deletion(-)
diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java
index 36c84d75e2..f9747fb18d 100644
index 36c84d75e..f9747fb18 100644
--- a/src/main/java/net/minecraft/server/Block.java
+++ b/src/main/java/net/minecraft/server/Block.java
@@ -375,6 +375,7 @@ public class Block implements IMaterial {
@@ -22,7 +22,7 @@ index 36c84d75e2..f9747fb18d 100644
return 10;
}
diff --git a/src/main/java/net/minecraft/server/BlockCampfire.java b/src/main/java/net/minecraft/server/BlockCampfire.java
index bfac5835c4..d2363d1d2d 100644
index bfac5835c..d2363d1d2 100644
--- a/src/main/java/net/minecraft/server/BlockCampfire.java
+++ b/src/main/java/net/minecraft/server/BlockCampfire.java
@@ -72,8 +72,32 @@ public class BlockCampfire extends BlockTileEntity implements IBlockWaterlogged
@@ -68,7 +68,7 @@ index bfac5835c4..d2363d1d2d 100644
if (flag) {
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index cea2bcad5a..dc2da586e7 100644
index cea2bcad5..dc2da586e 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -61,6 +61,11 @@ public class PurpurWorldConfig {

View File

@@ -1,4 +1,4 @@
From c00fcef8b67b52528798bb570efabead900d98a3 Mon Sep 17 00:00:00 2001
From 772093c1b3329d32f97ba272c2e9d2c454a89635 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Thu, 6 Jun 2019 21:30:49 -0500
Subject: [PATCH] Campfires burn out in rain
@@ -9,7 +9,7 @@ Subject: [PATCH] Campfires burn out in rain
2 files changed, 8 insertions(+)
diff --git a/src/main/java/net/minecraft/server/BlockCampfire.java b/src/main/java/net/minecraft/server/BlockCampfire.java
index d2363d1d2d..563f16a3f6 100644
index d2363d1d2..563f16a3f 100644
--- a/src/main/java/net/minecraft/server/BlockCampfire.java
+++ b/src/main/java/net/minecraft/server/BlockCampfire.java
@@ -86,6 +86,9 @@ public class BlockCampfire extends BlockTileEntity implements IBlockWaterlogged
@@ -23,21 +23,19 @@ index d2363d1d2d..563f16a3f6 100644
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 1238864e7c..f090f76a14 100644
index dc2da586e..c3a9133fa 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -92,6 +92,11 @@ public class PurpurWorldConfig {
@@ -86,4 +86,9 @@ public class PurpurWorldConfig {
campfireRegenBoostAmp = getInt("campfire-regen.boost-amplifier", campfireRegenBoostAmp);
campfireRegenBoostRequireLineOfSight = getBoolean("campfire-regen.boost-require-line-of-sight", campfireRegenBoostRequireLineOfSight);
}
+
+ public boolean campfiresGoOutInRain = true;
+ private void campfiresGoOutInRain() {
+ campfiresGoOutInRain = getBoolean("campfires-go-out-in-rain", campfiresGoOutInRain);
+ }
+
public boolean allowSignColors = true;
private void allowSignColors() {
allowSignColors = getBoolean("allow-sign-colors", allowSignColors);
}
--
2.20.1

View File

@@ -1,4 +1,4 @@
From 0cdd904a8785ee74ecca1c86bf908dd312b058da Mon Sep 17 00:00:00 2001
From ff614fea4888bf73a22b8e6f1188236023a17cb1 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Thu, 23 May 2019 21:50:37 -0500
Subject: [PATCH] Packed Barrels
@@ -10,7 +10,7 @@ Subject: [PATCH] Packed Barrels
3 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/src/main/java/net/minecraft/server/TileEntityBarrel.java b/src/main/java/net/minecraft/server/TileEntityBarrel.java
index 5d80ec8010..dd8c6e8876 100644
index 5d80ec801..dd8c6e887 100644
--- a/src/main/java/net/minecraft/server/TileEntityBarrel.java
+++ b/src/main/java/net/minecraft/server/TileEntityBarrel.java
@@ -56,7 +56,7 @@ public class TileEntityBarrel extends TileEntityLootable {
@@ -40,7 +40,7 @@ index 5d80ec8010..dd8c6e8876 100644
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index ad807268c9..b59707dd78 100644
index 7063c6329..0ad1569e7 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -6,6 +6,7 @@ import org.bukkit.Bukkit;
@@ -65,7 +65,7 @@ index ad807268c9..b59707dd78 100644
public static boolean ridableBlaze = true;
public static boolean ridableCat = true;
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java
index ae119756be..5ee6fc1629 100644
index ae119756b..5ee6fc162 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java
@@ -155,6 +155,8 @@ public class CraftContainer extends Container {

View File

@@ -1,4 +1,4 @@
From b8fd6025bf2ad422615a27086959e79be1d73598 Mon Sep 17 00:00:00 2001
From 2e9bf1d3395dc41c6d441d13c304c0996af6e3ba Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sun, 23 Jun 2019 17:01:26 -0500
Subject: [PATCH] Add large sized ender chests
@@ -11,7 +11,7 @@ Subject: [PATCH] Add large sized ender chests
4 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/src/main/java/net/minecraft/server/BlockEnderChest.java b/src/main/java/net/minecraft/server/BlockEnderChest.java
index 4b72902385..fc52276836 100644
index 4b7290238..fc5227683 100644
--- a/src/main/java/net/minecraft/server/BlockEnderChest.java
+++ b/src/main/java/net/minecraft/server/BlockEnderChest.java
@@ -46,6 +46,7 @@ public class BlockEnderChest extends BlockTileEntity implements IBlockWaterlogge
@@ -23,7 +23,7 @@ index 4b72902385..fc52276836 100644
}, BlockEnderChest.d));
entityhuman.a(StatisticList.OPEN_ENDERCHEST);
diff --git a/src/main/java/net/minecraft/server/InventoryEnderChest.java b/src/main/java/net/minecraft/server/InventoryEnderChest.java
index fd31b9a6dc..49b369236d 100644
index fd31b9a6d..49b369236 100644
--- a/src/main/java/net/minecraft/server/InventoryEnderChest.java
+++ b/src/main/java/net/minecraft/server/InventoryEnderChest.java
@@ -20,7 +20,7 @@ public class InventoryEnderChest extends InventorySubcontainer {
@@ -36,10 +36,10 @@ index fd31b9a6dc..49b369236d 100644
// CraftBukkit end
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index e86864a5ea..0728cd1f80 100644
index 0ad1569e7..abc43c4e3 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -172,6 +172,12 @@ public class PurpurConfig {
@@ -165,6 +165,12 @@ public class PurpurConfig {
snowmanPumpkinPutBack = getBoolean("settings.mobs.snow_golem.pumpkin-can-be-added-back", snowmanPumpkinPutBack);
}
@@ -53,7 +53,7 @@ index e86864a5ea..0728cd1f80 100644
private static void packedBarrels() {
packedBarrels = getBoolean("settings.packed-barrels", packedBarrels);
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java
index 5ee6fc1629..fef1a774bc 100644
index 5ee6fc162..fef1a774b 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java
@@ -157,6 +157,8 @@ public class CraftContainer extends Container {

View File

@@ -1,4 +1,4 @@
From 672cd6a191a770c610a9f83f3bddbc3cbcb6484a Mon Sep 17 00:00:00 2001
From 436e103add5da635f034f9f8ac7ab3259874fce0 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Thu, 6 Jun 2019 17:40:30 -0500
Subject: [PATCH] Allow color codes on signs
@@ -11,7 +11,7 @@ Subject: [PATCH] Allow color codes on signs
4 files changed, 21 insertions(+)
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index 18695d9b5c..8c59692b2b 100644
index 18695d9b5..8c59692b2 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1114,6 +1114,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -23,7 +23,7 @@ index 18695d9b5c..8c59692b2b 100644
}
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index e7b8b2e992..520490d59c 100644
index e7b8b2e99..520490d59 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -2561,6 +2561,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -35,7 +35,7 @@ index e7b8b2e992..520490d59c 100644
}
SignChangeEvent event = new SignChangeEvent((org.bukkit.craftbukkit.block.CraftBlock) player.getWorld().getBlockAt(x, y, z), this.server.getPlayer(this.player), lines);
diff --git a/src/main/java/net/minecraft/server/TileEntitySign.java b/src/main/java/net/minecraft/server/TileEntitySign.java
index 0a8d9b52dd..65771ed9e1 100644
index 0a8d9b52d..65771ed9e 100644
--- a/src/main/java/net/minecraft/server/TileEntitySign.java
+++ b/src/main/java/net/minecraft/server/TileEntitySign.java
@@ -122,6 +122,20 @@ public class TileEntitySign extends TileEntity implements ICommandListener { //
@@ -60,12 +60,12 @@ index 0a8d9b52dd..65771ed9e1 100644
@Override
public PacketPlayOutTileEntityData getUpdatePacket() {
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index ee92fd26e6..1238864e7c 100644
index 673fff5ce..f090f76a1 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -91,4 +91,9 @@ public class PurpurWorldConfig {
campfireRegenBoostAmp = getInt("campfire-regen.boost-amplifier", campfireRegenBoostAmp);
campfireRegenBoostRequireLineOfSight = getBoolean("campfire-regen.boost-require-line-of-sight", campfireRegenBoostRequireLineOfSight);
@@ -96,4 +96,9 @@ public class PurpurWorldConfig {
private void campfiresGoOutInRain() {
campfiresGoOutInRain = getBoolean("campfires-go-out-in-rain", campfiresGoOutInRain);
}
+
+ public boolean allowSignColors = true;

View File

@@ -1,4 +1,4 @@
From 7795c0a11b772848111790b97c8ed01531798ce5 Mon Sep 17 00:00:00 2001
From 92877e47c0a96f2b20142e737bb5b3550cc64e40 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 1 Jun 2019 01:16:35 -0500
Subject: [PATCH] Always place dragon egg when dragon is killed
@@ -9,7 +9,7 @@ Subject: [PATCH] Always place dragon egg when dragon is killed
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/src/main/java/net/minecraft/server/EnderDragonBattle.java b/src/main/java/net/minecraft/server/EnderDragonBattle.java
index 6700c8c658..f0c77eb6c1 100644
index 6700c8c65..f0c77eb6c 100644
--- a/src/main/java/net/minecraft/server/EnderDragonBattle.java
+++ b/src/main/java/net/minecraft/server/EnderDragonBattle.java
@@ -13,6 +13,8 @@ import java.util.Set;
@@ -31,10 +31,10 @@ index 6700c8c658..f0c77eb6c1 100644
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index b59707dd78..56cf939622 100644
index abc43c4e3..346646594 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -171,6 +171,11 @@ public class PurpurConfig {
@@ -177,6 +177,11 @@ public class PurpurConfig {
InventoryType.BARREL.setDefaultSize(packedBarrels ? 54 : 27);
}

View File

@@ -1,4 +1,4 @@
From f6595ba9e54c438350ceac264246034945fb649e Mon Sep 17 00:00:00 2001
From 22f8029702025d6bd1ded97cefadcea661af8fc6 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Thu, 6 Jun 2019 22:15:46 -0500
Subject: [PATCH] Add config for items breaking turtle eggs
@@ -9,7 +9,7 @@ Subject: [PATCH] Add config for items breaking turtle eggs
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/src/main/java/net/minecraft/server/BlockTurtleEgg.java b/src/main/java/net/minecraft/server/BlockTurtleEgg.java
index 0118a84510..83e69425bc 100644
index 0118a8451..83e69425b 100644
--- a/src/main/java/net/minecraft/server/BlockTurtleEgg.java
+++ b/src/main/java/net/minecraft/server/BlockTurtleEgg.java
@@ -163,6 +163,17 @@ public class BlockTurtleEgg extends Block {
@@ -32,7 +32,7 @@ index 0118a84510..83e69425bc 100644
}
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index f090f76a14..9dfba251ea 100644
index f090f76a1..9dfba251e 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -101,4 +101,9 @@ public class PurpurWorldConfig {

View File

@@ -1,4 +1,4 @@
From 24d991c41120c1bb5aeeb732337fdb28d924534c Mon Sep 17 00:00:00 2001
From dec24ceb3639ca2108236f7271d7c2a7ca05f3df Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 15 Jun 2019 03:12:15 -0500
Subject: [PATCH] Make Iron Golems Swim
@@ -9,7 +9,7 @@ Subject: [PATCH] Make Iron Golems Swim
2 files changed, 6 insertions(+)
diff --git a/src/main/java/net/minecraft/server/EntityIronGolem.java b/src/main/java/net/minecraft/server/EntityIronGolem.java
index 2c34ab337a..9bb033336c 100644
index 2c34ab337..9bb033336 100644
--- a/src/main/java/net/minecraft/server/EntityIronGolem.java
+++ b/src/main/java/net/minecraft/server/EntityIronGolem.java
@@ -14,6 +14,7 @@ public class EntityIronGolem extends EntityGolem {
@@ -21,7 +21,7 @@ index 2c34ab337a..9bb033336c 100644
this.goalSelector.a(1, new PathfinderGoalMeleeAttack(this, 1.0D, true));
this.goalSelector.a(2, new PathfinderGoalMoveTowardsTarget(this, 0.9D, 32.0F));
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 56cf939622..cd9805e5fb 100644
index 346646594..ddeb15b5d 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -149,6 +149,11 @@ public class PurpurConfig {

View File

@@ -1,4 +1,4 @@
From cec697c47523c9e43c930a0a59c6887665a7abac Mon Sep 17 00:00:00 2001
From 664c3eafdb18c420fa8db53e1be66ecdc004d90d Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Fri, 21 Jun 2019 14:37:10 -0500
Subject: [PATCH] Allow soil to moisten from water directly under it
@@ -9,7 +9,7 @@ Subject: [PATCH] Allow soil to moisten from water directly under it
2 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/src/main/java/net/minecraft/server/BlockSoil.java b/src/main/java/net/minecraft/server/BlockSoil.java
index 2fc6e210dc..54f9139014 100644
index 2fc6e210d..54f913901 100644
--- a/src/main/java/net/minecraft/server/BlockSoil.java
+++ b/src/main/java/net/minecraft/server/BlockSoil.java
@@ -112,19 +112,14 @@ public class BlockSoil extends Block {
@@ -40,7 +40,7 @@ index 2fc6e210dc..54f9139014 100644
@Override
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 775d40ab1b..a33eb6773c 100644
index 9dfba251e..36ca0f228 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -97,6 +97,11 @@ public class PurpurWorldConfig {

View File

@@ -1,95 +0,0 @@
From 7d1f47edd80036913c7de5aab3b916ef373d783d Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Thu, 6 Jun 2019 23:23:52 -0500
Subject: [PATCH] Block and Fluid Tick Events
---
.../java/net/minecraft/server/WorldServer.java | 6 ++++--
.../net/pl3x/purpur/PurpurWorldConfig.java | 7 +++++++
.../org/bukkit/craftbukkit/CraftWorld.java | 18 ++++++++++++++++++
3 files changed, 29 insertions(+), 2 deletions(-)
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index 451ad4f32b..cfcee654d2 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -451,13 +451,13 @@ public class WorldServer extends World {
gameprofilerfiller.enter("randomTick");
IBlockData iblockdata = chunksection.getType(blockposition2.getX() - j, blockposition2.getY() - j1, blockposition2.getZ() - k);
- if (iblockdata.q()) {
+ if (iblockdata.q()&& (!purpurConfig.blockTickEvent || new net.pl3x.purpur.event.block.BlockTickEvent(getWorld(), blockposition2.x, blockposition2.y, blockposition2.z, true).callEvent())) { // Purpur
iblockdata.b((World) this, blockposition2, this.random);
}
Fluid fluid = iblockdata.p();
- if (fluid.h()) {
+ if (fluid.h() && (!purpurConfig.fluidTickEvent || new net.pl3x.purpur.event.block.FluidTickEvent(getWorld(), blockposition2.x, blockposition2.y, blockposition2.z, true).callEvent())) { // Purpur
fluid.b(this, blockposition2, this.random);
}
@@ -546,6 +546,7 @@ public class WorldServer extends World {
Fluid fluid = this.getFluid(nextticklistentry.a);
if (fluid.getType() == nextticklistentry.b()) {
+ if (purpurConfig.fluidTickEvent && !new net.pl3x.purpur.event.block.FluidTickEvent(getWorld(), nextticklistentry.a.x, nextticklistentry.a.y, nextticklistentry.a.z).callEvent()) return; // Purpur
fluid.a((World) this, nextticklistentry.a);
}
@@ -555,6 +556,7 @@ public class WorldServer extends World {
IBlockData iblockdata = this.getType(nextticklistentry.a);
if (iblockdata.getBlock() == nextticklistentry.b()) {
+ if (purpurConfig.blockTickEvent && !new net.pl3x.purpur.event.block.BlockTickEvent(getWorld(), nextticklistentry.a.x, nextticklistentry.a.y, nextticklistentry.a.z).callEvent()) return; // Purpur
iblockdata.a((World) this, nextticklistentry.a, this.random);
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 9dfba251ea..775d40ab1b 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -106,4 +106,11 @@ public class PurpurWorldConfig {
private void itemsCanBreakTurtleEggs() {
itemsCanBreakTurtleEggs = getBoolean("items-can-break-turtle-eggs", itemsCanBreakTurtleEggs);
}
+
+ public boolean blockTickEvent = true;
+ public boolean fluidTickEvent = true;
+ private void tickEvents() {
+ blockTickEvent = getBoolean("block-tick-events", blockTickEvent);
+ fluidTickEvent = getBoolean("fluid-tick-events", fluidTickEvent);
+ }
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index a2b6c3c94a..42bab6d574 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -2349,6 +2349,24 @@ public class CraftWorld implements World {
}
// Paper end
+ // Purpur start
+ public boolean isBlockTickEventEnabled() {
+ return getHandle().purpurConfig.blockTickEvent;
+ }
+
+ public void setBlockTickEventEnabled(boolean enabled) {
+ getHandle().purpurConfig.blockTickEvent = enabled;
+ }
+
+ public boolean isFluidTickEventEnabled() {
+ return getHandle().purpurConfig.fluidTickEvent;
+ }
+
+ public void setFluidTickEventEnabled(boolean enabled) {
+ getHandle().purpurConfig.fluidTickEvent = enabled;
+ }
+ // Purpur end
+
// Spigot start
private final Spigot spigot = new Spigot()
{
--
2.20.1

View File

@@ -1,4 +1,4 @@
From 19d964d3c410242ccca4a957d31046583ea7c9cb Mon Sep 17 00:00:00 2001
From 352fae6cf150c9a56028d01077eb87a78d61b85a Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 29 Jun 2019 02:32:40 -0500
Subject: [PATCH] Controllable Minecarts
@@ -11,7 +11,7 @@ Subject: [PATCH] Controllable Minecarts
4 files changed, 75 insertions(+), 3 deletions(-)
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index fe7aa9d813..26a30e1c02 100644
index fe7aa9d81..26a30e1c0 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1295,6 +1295,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -23,7 +23,7 @@ index fe7aa9d813..26a30e1c02 100644
return this.inLava;
}
diff --git a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java
index 6df2930e2d..c5b4057c33 100644
index 6df2930e2..c5b4057c3 100644
--- a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java
+++ b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java
@@ -4,6 +4,7 @@ import java.util.Iterator;
@@ -86,7 +86,7 @@ index 6df2930e2d..c5b4057c33 100644
this.setMot(new Vec3D(this.getMot().x * this.derailedX, this.getMot().y * this.derailedY, this.getMot().z * this.derailedZ));
// CraftBukkit end
diff --git a/src/main/java/net/minecraft/server/ItemMinecart.java b/src/main/java/net/minecraft/server/ItemMinecart.java
index ec96fa0a43..9ad3cc2982 100644
index ec96fa0a4..9ad3cc298 100644
--- a/src/main/java/net/minecraft/server/ItemMinecart.java
+++ b/src/main/java/net/minecraft/server/ItemMinecart.java
@@ -103,8 +103,10 @@ public class ItemMinecart extends Item {
@@ -111,7 +111,7 @@ index ec96fa0a43..9ad3cc2982 100644
}
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 0728cd1f80..a47be97a68 100644
index ddeb15b5d..40b28ebe5 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -1,9 +1,13 @@
@@ -128,7 +128,7 @@ index 0728cd1f80..a47be97a68 100644
import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.event.inventory.InventoryType;
@@ -305,4 +309,30 @@ public class PurpurConfig {
@@ -303,4 +307,30 @@ public class PurpurConfig {
ridableZombiePigman = getBoolean("settings.ridable.zombie_pigman", ridableZombiePigman);
ridableZombieVillager = getBoolean("settings.ridable.zombie_villager", ridableZombieVillager);
}

View File

@@ -1,4 +1,4 @@
From 53bda3e121afed6d2547fc52dd7190603efbba3a Mon Sep 17 00:00:00 2001
From c063618d12d6ab7b40e86dd82bf0fd03c874261c Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Wed, 3 Jul 2019 23:58:31 -0500
Subject: [PATCH] Disable loot drops on death by cramming
@@ -9,7 +9,7 @@ Subject: [PATCH] Disable loot drops on death by cramming
2 files changed, 7 insertions(+)
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 8b6dd45273..aa60c00842 100644
index 8b6dd4527..aa60c0084 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -1420,8 +1420,10 @@ public abstract class EntityLiving extends Entity {
@@ -24,7 +24,7 @@ index 8b6dd45273..aa60c00842 100644
deathEvent = CraftEventFactory.callEntityDeathEvent(this, this.drops); // Paper
if (!deathEvent.isCancelled()) this.drops = new ArrayList<org.bukkit.inventory.ItemStack>(); // Paper
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index a47be97a68..1320435da8 100644
index 40b28ebe5..412a120e2 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -136,6 +136,11 @@ public class PurpurConfig {

View File

@@ -1,4 +1,4 @@
From fd49366b6a1dac4bf110b263caf1e162749aebf5 Mon Sep 17 00:00:00 2001
From 309c1c6f884bf0fb66d5e7f6226fe0324314af41 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Fri, 5 Jul 2019 11:09:25 -0500
Subject: [PATCH] Make illusioners naturally spawn
@@ -10,12 +10,12 @@ Subject: [PATCH] Make illusioners naturally spawn
3 files changed, 27 insertions(+)
diff --git a/src/main/java/net/minecraft/server/Biomes.java b/src/main/java/net/minecraft/server/Biomes.java
index 3f7f7a2de8..38284a62b9 100644
index b075ee4ec..48dcab2d9 100644
--- a/src/main/java/net/minecraft/server/Biomes.java
+++ b/src/main/java/net/minecraft/server/Biomes.java
@@ -112,6 +112,24 @@ public abstract class Biomes {
addSpawn("eroded_badlands", EnumCreatureType.MONSTER, EntityTypes.GIANT, 10, 1, 2);
addSpawn("modified_badlands_plateau", EnumCreatureType.MONSTER, EntityTypes.GIANT, 10, 2, 1);
addSpawn("eroded_badlands", EnumCreatureType.MONSTER, EntityTypes.GIANT, 10, 1, 1);
addSpawn("modified_badlands_plateau", EnumCreatureType.MONSTER, EntityTypes.GIANT, 10, 1, 1);
}
+ if (net.pl3x.purpur.PurpurConfig.illusionersNaturallySpawn) {
+ addSpawn("plains", EnumCreatureType.MONSTER, EntityTypes.ILLUSIONER, 5, 1, 1);
@@ -39,10 +39,10 @@ index 3f7f7a2de8..38284a62b9 100644
private static void addSpawn(String biome, EnumCreatureType ct, EntityTypes et, int weight, int min_group, int max_group) {
diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java
index 28dff2a03c..78bed1ca7e 100644
index 2d4ea99f1..62fc61df2 100644
--- a/src/main/java/net/minecraft/server/SpawnerCreature.java
+++ b/src/main/java/net/minecraft/server/SpawnerCreature.java
@@ -86,6 +86,10 @@ public final class SpawnerCreature {
@@ -83,6 +83,10 @@ public final class SpawnerCreature {
if (!net.pl3x.purpur.PurpurConfig.giantsNaturallySpawn) {
return amountSpawned;
}
@@ -50,11 +50,11 @@ index 28dff2a03c..78bed1ca7e 100644
+ if (!net.pl3x.purpur.PurpurConfig.illusionersNaturallySpawn) {
+ return amountSpawned;
+ }
} else if (entitytypes == EntityTypes.PHANTOM) {
if (!net.pl3x.purpur.PurpurConfig.spawnPhantomsInTheEnd) {
return amountSpawned;
}
// Purpur end
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 1320435da8..ff7c43ee0a 100644
index 412a120e2..76556e7ea 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -158,6 +158,11 @@ public class PurpurConfig {

View File

@@ -1,109 +0,0 @@
From a5e0ea75c11edf1564f6679514a54afbeeff931a Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Thu, 20 Jun 2019 18:48:58 -0500
Subject: [PATCH] Phantoms spawn naturally in the end
---
.../server/BiomeTheEndHighIsland.java | 3 ++-
.../net/minecraft/server/EntityPhantom.java | 19 +++++++++++++++++++
.../net/minecraft/server/SpawnerCreature.java | 5 +++++
.../java/net/pl3x/purpur/PurpurConfig.java | 2 ++
4 files changed, 28 insertions(+), 1 deletion(-)
diff --git a/src/main/java/net/minecraft/server/BiomeTheEndHighIsland.java b/src/main/java/net/minecraft/server/BiomeTheEndHighIsland.java
index e8cf6153ec..82f3a9a95f 100644
--- a/src/main/java/net/minecraft/server/BiomeTheEndHighIsland.java
+++ b/src/main/java/net/minecraft/server/BiomeTheEndHighIsland.java
@@ -4,10 +4,11 @@ public class BiomeTheEndHighIsland extends BiomeBase {
public BiomeTheEndHighIsland() {
super((new BiomeBase.a()).a(WorldGenSurface.G, WorldGenSurface.F).a(BiomeBase.Precipitation.NONE).a(BiomeBase.Geography.THEEND).a(0.1F).b(0.2F).c(0.5F).d(0.5F).a(4159204).b(329011).a((String) null));
- this.a(WorldGenerator.END_CITY, (WorldGenFeatureConfiguration) WorldGenFeatureConfiguration.e);
+ this.a(WorldGenerator.END_CITY, WorldGenFeatureConfiguration.e); // Purpur - decompile error
this.a(WorldGenStage.Decoration.SURFACE_STRUCTURES, a(WorldGenerator.END_GATEWAY, WorldGenEndGatewayConfiguration.a(WorldProviderTheEnd.f, true), WorldGenDecorator.L, WorldGenFeatureDecoratorConfiguration.e));
BiomeDecoratorGroups.aq(this);
this.a(WorldGenStage.Decoration.VEGETAL_DECORATION, a(WorldGenerator.CHORUS_PLANT, WorldGenFeatureConfiguration.e, WorldGenDecorator.K, WorldGenFeatureDecoratorConfiguration.e));
this.a(EnumCreatureType.MONSTER, new BiomeBase.BiomeMeta(EntityTypes.ENDERMAN, 10, 4, 4));
+ this.a(EnumCreatureType.MONSTER, new BiomeBase.BiomeMeta(EntityTypes.PHANTOM, 5, 1, 4)); // Purpur
}
}
diff --git a/src/main/java/net/minecraft/server/EntityPhantom.java b/src/main/java/net/minecraft/server/EntityPhantom.java
index 69a1c79e74..2fada230bc 100644
--- a/src/main/java/net/minecraft/server/EntityPhantom.java
+++ b/src/main/java/net/minecraft/server/EntityPhantom.java
@@ -12,6 +12,7 @@ public class EntityPhantom extends EntityFlying implements IMonster {
private BlockPosition d; public void setHome(BlockPosition home) { this.d = home; } public BlockPosition getHome() { return this.d; } // Purpur - OBFHELPER
private EntityPhantom.AttackPhase bz; public AttackPhase getAttackPhase() { return this.bz; } // Purpur - OBFHELPER
private BlockPosition crystalPosition; // Purpur
+ private boolean firstTick = true; // Purpur
public EntityPhantom(EntityTypes<? extends EntityPhantom> entitytypes, World world) {
super(entitytypes, world);
@@ -25,6 +26,12 @@ public class EntityPhantom extends EntityFlying implements IMonster {
this.canBeRiddenInWater = false; // Purpur
}
+ // Purpur start
+ public static boolean canSpawn(EntityTypes<? extends EntityPhantom> entitytypes, GeneratorAccess world, EnumMobSpawn enummobspawn, BlockPosition position, java.util.Random random) {
+ return world.getDifficulty() != EnumDifficulty.PEACEFUL && a(entitytypes, world, enummobspawn, position, random);
+ }
+ // Purpur end
+
@Override
protected EntityAIBodyControl o() {
return new EntityPhantom.d(this);
@@ -105,6 +112,18 @@ public class EntityPhantom extends EntityFlying implements IMonster {
this.world.addParticle(Particles.MYCELIUM, this.locX - (double) f2, this.locY + (double) f4, this.locZ - (double) f3, 0.0D, 0.0D, 0.0D);
}
+ // Purpur start
+ if (firstTick) {
+ firstTick = false;
+ if (net.pl3x.purpur.PurpurConfig.spawnPhantomsInTheEnd) {
+ if (world.getWorld().getEnvironment() == org.bukkit.World.Environment.THE_END && getHome().y < 70) {
+ // correct home position if spawned in the end
+ getHome().y = 70 + world.random.nextInt(20);
+ }
+ }
+ }
+ // Purpur end
+
if (!this.world.isClientSide && this.world.getDifficulty() == EnumDifficulty.PEACEFUL) {
this.die();
}
diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java
index 2d4ea99f16..ad4341cba5 100644
--- a/src/main/java/net/minecraft/server/SpawnerCreature.java
+++ b/src/main/java/net/minecraft/server/SpawnerCreature.java
@@ -83,6 +83,11 @@ public final class SpawnerCreature {
if (!net.pl3x.purpur.PurpurConfig.giantsNaturallySpawn) {
return amountSpawned;
}
+ } else if (entitytypes == EntityTypes.PHANTOM) {
+ if (!net.pl3x.purpur.PurpurConfig.spawnPhantomsInTheEnd) {
+ return amountSpawned;
+ }
+ blockposition_mutableblockposition.y = 70 + world.random.nextInt(20);
}
// Purpur end
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index a9c8e8ef5a..470605d78b 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -157,10 +157,12 @@ public class PurpurConfig {
public static double crystalsAttackPhantomsRadius = 0.0D;
public static float crystalsAttackPhantomDamage = 1.0F;
public static double phantomsOrbitCrystalsRadius = 0.0D;
+ public static boolean spawnPhantomsInTheEnd = false;
private static void phantomSettings() {
crystalsAttackPhantomsRadius = getDouble("settings.mobs.phantom.crystals-attack-range", crystalsAttackPhantomsRadius);
crystalsAttackPhantomDamage = (float) getDouble("settings.mobs.phantom.crystals-attack-damage", crystalsAttackPhantomDamage);
phantomsOrbitCrystalsRadius = getDouble("settings.mobs.phantom.orbit-crystal-radius", phantomsOrbitCrystalsRadius);
+ spawnPhantomsInTheEnd = getBoolean("settings.mobs.phantom.spawn-in-the-end", spawnPhantomsInTheEnd);
}
public static boolean snowmanDropsPumpkin = false;
--
2.20.1

View File

@@ -1,4 +1,4 @@
From adb713b9984ac4183a53ba4fec145b3aeb4735fe Mon Sep 17 00:00:00 2001
From f17036310d620555bead62b9dae8ef16ace3110b Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Fri, 5 Jul 2019 16:36:55 -0500
Subject: [PATCH] Implement ItemFactory#getMonsterEgg
@@ -9,7 +9,7 @@ Subject: [PATCH] Implement ItemFactory#getMonsterEgg
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/src/main/java/net/minecraft/server/ItemMonsterEgg.java b/src/main/java/net/minecraft/server/ItemMonsterEgg.java
index 4482dd9309..bb3b0abd95 100644
index 4482dd930..bb3b0abd9 100644
--- a/src/main/java/net/minecraft/server/ItemMonsterEgg.java
+++ b/src/main/java/net/minecraft/server/ItemMonsterEgg.java
@@ -8,7 +8,7 @@ import javax.annotation.Nullable;
@@ -22,7 +22,7 @@ index 4482dd9309..bb3b0abd95 100644
private final int c;
private final EntityTypes<?> d;
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
index 80f71a77b7..0dae1fcf7d 100644
index 80f71a77b..0dae1fcf7 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
@@ -349,4 +349,18 @@ public final class CraftItemFactory implements ItemFactory {

View File

@@ -1,28 +0,0 @@
From 03bbebf1ea367aa41ce48024fa950a42b93420a6 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 22 Jun 2019 16:17:05 -0500
Subject: [PATCH] Fix errors trying to spawn negative number of a mob
---
src/main/java/net/minecraft/server/SpawnerCreature.java | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java
index ad4341cba5..28dff2a03c 100644
--- a/src/main/java/net/minecraft/server/SpawnerCreature.java
+++ b/src/main/java/net/minecraft/server/SpawnerCreature.java
@@ -72,7 +72,10 @@ public final class SpawnerCreature {
break label104;
}
- l1 = biomebase_biomemeta.c + world.random.nextInt(1 + biomebase_biomemeta.d - biomebase_biomemeta.c);
+ // Purpur start
+ int amount = 1 + biomebase_biomemeta.d - biomebase_biomemeta.c;
+ l1 = biomebase_biomemeta.c + world.random.nextInt(amount > 0 ? amount : 1);
+ // Purpur end
}
if (biomebase_biomemeta.b.e() != EnumCreatureType.MISC && (biomebase_biomemeta.b.d() || d0 <= 16384.0D)) {
--
2.20.1

View File

@@ -1,4 +1,4 @@
From afdc74ace9d5d4200a964a1dd1616b1ed1e318a9 Mon Sep 17 00:00:00 2001
From 08447652171f63342252d8a3700826e609e1efca Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Fri, 5 Jul 2019 18:21:00 -0500
Subject: [PATCH] Implement PlayerSetSpawnerTypeWithEggEvent
@@ -8,7 +8,7 @@ Subject: [PATCH] Implement PlayerSetSpawnerTypeWithEggEvent
1 file changed, 14 insertions(+)
diff --git a/src/main/java/net/minecraft/server/ItemMonsterEgg.java b/src/main/java/net/minecraft/server/ItemMonsterEgg.java
index bb3b0abd95..4b77c099aa 100644
index bb3b0abd9..4b77c099a 100644
--- a/src/main/java/net/minecraft/server/ItemMonsterEgg.java
+++ b/src/main/java/net/minecraft/server/ItemMonsterEgg.java
@@ -2,6 +2,11 @@ package net.minecraft.server;

View File

@@ -1,4 +1,4 @@
From f796f4ac3ddf1ca8043781ea892397d43b0d65ae Mon Sep 17 00:00:00 2001
From 64bc83f85dc985a6dfb3a172220fb539a290a164 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 6 Jul 2019 17:00:04 -0500
Subject: [PATCH] Dont send useless entity packets
@@ -10,7 +10,7 @@ Subject: [PATCH] Dont send useless entity packets
3 files changed, 27 insertions(+), 5 deletions(-)
diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java
index 460c687d3e..61af5a99f7 100644
index 460c687d3..61af5a99f 100644
--- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java
+++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java
@@ -162,6 +162,7 @@ public class EntityTrackerEntry {
@@ -45,7 +45,7 @@ index 460c687d3e..61af5a99f7 100644
this.tracker.c(entityplayer);
entityplayer.c(this.tracker);
diff --git a/src/main/java/net/minecraft/server/PacketPlayOutEntity.java b/src/main/java/net/minecraft/server/PacketPlayOutEntity.java
index 1a9802e755..4c5a52c802 100644
index 1a9802e75..4c5a52c80 100644
--- a/src/main/java/net/minecraft/server/PacketPlayOutEntity.java
+++ b/src/main/java/net/minecraft/server/PacketPlayOutEntity.java
@@ -5,11 +5,11 @@ import java.io.IOException;
@@ -66,7 +66,7 @@ index 1a9802e755..4c5a52c802 100644
protected boolean h;
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index ff7c43ee0a..ad6dccd4eb 100644
index 76556e7ea..e408d84e8 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -141,6 +141,11 @@ public class PurpurConfig {

View File

@@ -1,4 +1,4 @@
From 9f9a370094018b667bab6afd877eae76e68d8c75 Mon Sep 17 00:00:00 2001
From 7fff3f50d6f883e4b1a43c78920ffdf7d41cacb0 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 6 Jul 2019 21:12:58 -0500
Subject: [PATCH] Fix item position desync (MC-4)
@@ -10,7 +10,7 @@ Subject: [PATCH] Fix item position desync (MC-4)
3 files changed, 13 insertions(+)
diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java
index 61af5a99f7..b271e9aced 100644
index 61af5a99f..b271e9ace 100644
--- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java
+++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java
@@ -124,6 +124,12 @@ public class EntityTrackerEntry {
@@ -27,7 +27,7 @@ index 61af5a99f7..b271e9aced 100644
boolean flag1 = vec3d.g() >= 7.62939453125E-6D;
Packet<?> packet1 = null;
diff --git a/src/main/java/net/minecraft/server/PacketPlayOutEntity.java b/src/main/java/net/minecraft/server/PacketPlayOutEntity.java
index 4c5a52c802..9ec3495d58 100644
index 4c5a52c80..9ec3495d5 100644
--- a/src/main/java/net/minecraft/server/PacketPlayOutEntity.java
+++ b/src/main/java/net/minecraft/server/PacketPlayOutEntity.java
@@ -13,10 +13,12 @@ public class PacketPlayOutEntity implements Packet<PacketListenerPlayOut> {
@@ -44,7 +44,7 @@ index 4c5a52c802..9ec3495d58 100644
return (new Vec3D((double) i, (double) j, (double) k)).a(2.44140625E-4D);
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index ad6dccd4eb..5001fedb8f 100644
index e408d84e8..e515f4775 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -146,6 +146,11 @@ public class PurpurConfig {

View File

@@ -1,4 +1,4 @@
From b459ce7223b5fb79421413273ccf0d26340c24e8 Mon Sep 17 00:00:00 2001
From 58bcc5ac517eaea08870e09e86ebe44e4e38f32e Mon Sep 17 00:00:00 2001
From: Phoenix616 <mail@moep.tv>
Date: Thu, 16 May 2019 01:33:46 +0100
Subject: [PATCH] Fix MC-113809 Only grow cactus/reeds/bamboo/chorus fruit on
@@ -14,7 +14,7 @@ Subject: [PATCH] Fix MC-113809 Only grow cactus/reeds/bamboo/chorus fruit on
6 files changed, 7 insertions(+)
diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java
index f9747fb18d..4a537d1d79 100644
index f9747fb18..4a537d1d7 100644
--- a/src/main/java/net/minecraft/server/Block.java
+++ b/src/main/java/net/minecraft/server/Block.java
@@ -31,6 +31,7 @@ public class Block implements IMaterial {
@@ -26,7 +26,7 @@ index f9747fb18d..4a537d1d79 100644
public co.aikar.timings.Timing timing;
public co.aikar.timings.Timing getTiming() {
diff --git a/src/main/java/net/minecraft/server/BlockBamboo.java b/src/main/java/net/minecraft/server/BlockBamboo.java
index ffb65776c5..d94368b030 100644
index ffb65776c..d94368b03 100644
--- a/src/main/java/net/minecraft/server/BlockBamboo.java
+++ b/src/main/java/net/minecraft/server/BlockBamboo.java
@@ -85,6 +85,7 @@ public class BlockBamboo extends Block implements IBlockFragilePlantElement {
@@ -38,7 +38,7 @@ index ffb65776c5..d94368b030 100644
int i = this.b((IBlockAccess) world, blockposition) + 1;
diff --git a/src/main/java/net/minecraft/server/BlockCactus.java b/src/main/java/net/minecraft/server/BlockCactus.java
index 29f9ff6c18..375ada5a4b 100644
index 29f9ff6c1..375ada5a4 100644
--- a/src/main/java/net/minecraft/server/BlockCactus.java
+++ b/src/main/java/net/minecraft/server/BlockCactus.java
@@ -21,6 +21,7 @@ public class BlockCactus extends Block {
@@ -50,7 +50,7 @@ index 29f9ff6c18..375ada5a4b 100644
if (world.isEmpty(blockposition1)) {
diff --git a/src/main/java/net/minecraft/server/BlockChorusFlower.java b/src/main/java/net/minecraft/server/BlockChorusFlower.java
index 74fa4889ff..bbda083f67 100644
index 74fa4889f..bbda083f6 100644
--- a/src/main/java/net/minecraft/server/BlockChorusFlower.java
+++ b/src/main/java/net/minecraft/server/BlockChorusFlower.java
@@ -22,6 +22,7 @@ public class BlockChorusFlower extends Block {
@@ -62,7 +62,7 @@ index 74fa4889ff..bbda083f67 100644
if (world.isEmpty(blockposition1) && blockposition1.getY() < 256) {
diff --git a/src/main/java/net/minecraft/server/BlockReed.java b/src/main/java/net/minecraft/server/BlockReed.java
index ff674a9d5b..4a13e248ed 100644
index ff674a9d5..4a13e248e 100644
--- a/src/main/java/net/minecraft/server/BlockReed.java
+++ b/src/main/java/net/minecraft/server/BlockReed.java
@@ -23,6 +23,7 @@ public class BlockReed extends Block {
@@ -74,13 +74,13 @@ index ff674a9d5b..4a13e248ed 100644
for (i = 1; world.getType(blockposition.down(i)).getBlock() == this; ++i) {
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index cfcee654d2..a9765cc9b0 100644
index 451ad4f32..a41d050cf 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -452,7 +452,9 @@ public class WorldServer extends World {
IBlockData iblockdata = chunksection.getType(blockposition2.getX() - j, blockposition2.getY() - j1, blockposition2.getZ() - k);
if (iblockdata.q()&& (!purpurConfig.blockTickEvent || new net.pl3x.purpur.event.block.BlockTickEvent(getWorld(), blockposition2.x, blockposition2.y, blockposition2.z, true).callEvent())) { // Purpur
if (iblockdata.q()) {
+ iblockdata.getBlock().randomTick = true; // Purpur - fix MC-113809
iblockdata.b((World) this, blockposition2, this.random);
+ iblockdata.getBlock().randomTick = false; // Purpur - fix MC-113809

View File

@@ -1,4 +1,4 @@
From 07bc84f06dc6888d04e34e3de8f4da1d250948f6 Mon Sep 17 00:00:00 2001
From dc4fde5a01f65b131eb2517455b3c0cd4c88c47c Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sun, 7 Jul 2019 19:52:16 -0500
Subject: [PATCH] Add chance for zombie horse natural spawns
@@ -9,7 +9,7 @@ Subject: [PATCH] Add chance for zombie horse natural spawns
2 files changed, 17 insertions(+), 6 deletions(-)
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index a9765cc9b0..e160b0aa59 100644
index a41d050cf..e73257f3f 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -402,12 +402,18 @@ public class WorldServer extends World {
@@ -38,10 +38,10 @@ index a9765cc9b0..e160b0aa59 100644
this.strikeLightning(new EntityLightning(this, (double) blockposition.getX() + 0.5D, (double) blockposition.getY(), (double) blockposition.getZ() + 0.5D, flag1), org.bukkit.event.weather.LightningStrikeEvent.Cause.WEATHER); // CraftBukkit
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 5001fedb8f..9f3b383698 100644
index e515f4775..c7e634ecc 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -196,6 +196,11 @@ public class PurpurConfig {
@@ -194,6 +194,11 @@ public class PurpurConfig {
snowmanPumpkinPutBack = getBoolean("settings.mobs.snow_golem.pumpkin-can-be-added-back", snowmanPumpkinPutBack);
}

View File

@@ -1,4 +1,4 @@
From 551b01988e94ef5e02b4a081d5d0a8a404c1ad6f Mon Sep 17 00:00:00 2001
From f87b65f9756c515d89036c36f1165eae2625dd9b Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Tue, 9 Jul 2019 20:56:47 -0500
Subject: [PATCH] Fix pig zombies (MC-56653)
@@ -8,7 +8,7 @@ Subject: [PATCH] Fix pig zombies (MC-56653)
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/src/main/java/net/minecraft/server/EntityPigZombie.java b/src/main/java/net/minecraft/server/EntityPigZombie.java
index 5760a18361..4a3383cbf8 100644
index 5760a1836..4a3383cbf 100644
--- a/src/main/java/net/minecraft/server/EntityPigZombie.java
+++ b/src/main/java/net/minecraft/server/EntityPigZombie.java
@@ -139,6 +139,7 @@ public class EntityPigZombie extends EntityZombie {

View File

@@ -1,4 +1,4 @@
From 5adf7a568903024ce24f3d4336992e907f7fe2ce Mon Sep 17 00:00:00 2001
From 11e79d9d33beda063a57049939737f87d56580b1 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Wed, 10 Jul 2019 20:43:05 -0500
Subject: [PATCH] Option to toggle milk curing bad omen
@@ -9,7 +9,7 @@ Subject: [PATCH] Option to toggle milk curing bad omen
2 files changed, 7 insertions(+)
diff --git a/src/main/java/net/minecraft/server/ItemMilkBucket.java b/src/main/java/net/minecraft/server/ItemMilkBucket.java
index a6477d26ac..f76e611ca4 100644
index a6477d26a..f76e611ca 100644
--- a/src/main/java/net/minecraft/server/ItemMilkBucket.java
+++ b/src/main/java/net/minecraft/server/ItemMilkBucket.java
@@ -20,7 +20,9 @@ public class ItemMilkBucket extends Item {
@@ -23,21 +23,19 @@ index a6477d26ac..f76e611ca4 100644
return itemstack.isEmpty() ? new ItemStack(Items.BUCKET) : itemstack;
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 542e1b3299..3ec048adf3 100644
index 36ca0f228..a3f93485b 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -117,6 +117,11 @@ public class PurpurWorldConfig {
@@ -111,4 +111,9 @@ public class PurpurWorldConfig {
private void itemsCanBreakTurtleEggs() {
itemsCanBreakTurtleEggs = getBoolean("items-can-break-turtle-eggs", itemsCanBreakTurtleEggs);
}
+
+ public boolean milkCuresBadOmen = false;
+ private void milkCuresBadOmen() {
+ milkCuresBadOmen = getBoolean("milk-cures-bad-omen", milkCuresBadOmen);
+ }
+
public boolean blockTickEvent = true;
public boolean fluidTickEvent = true;
private void tickEvents() {
}
--
2.20.1

View File

@@ -1,4 +1,4 @@
From 6a01e069f202796374341c44a0dc4f3895032d17 Mon Sep 17 00:00:00 2001
From 842043ce45d4491eaa3bc7ced6175637bff7a763 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Fri, 12 Jul 2019 02:10:06 -0500
Subject: [PATCH] Implement ChunkTooLargeEvent
@@ -8,7 +8,7 @@ Subject: [PATCH] Implement ChunkTooLargeEvent
1 file changed, 6 insertions(+)
diff --git a/src/main/java/net/minecraft/server/RegionFileCache.java b/src/main/java/net/minecraft/server/RegionFileCache.java
index d2b3289450..e0fdf5f90f 100644
index d2b328945..e0fdf5f90 100644
--- a/src/main/java/net/minecraft/server/RegionFileCache.java
+++ b/src/main/java/net/minecraft/server/RegionFileCache.java
@@ -21,6 +21,7 @@ public abstract class RegionFileCache implements AutoCloseable {

View File

@@ -1,4 +1,4 @@
From 32a2c5dbfb7424d68f3a95cf89b5b503aa7b7d48 Mon Sep 17 00:00:00 2001
From e9a644959a7be08f14290bdbbbc9c5daf53fd2c8 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 13 Jul 2019 15:56:22 -0500
Subject: [PATCH] Tulips change fox type
@@ -10,7 +10,7 @@ Subject: [PATCH] Tulips change fox type
3 files changed, 34 insertions(+), 2 deletions(-)
diff --git a/src/main/java/net/minecraft/server/EntityFox.java b/src/main/java/net/minecraft/server/EntityFox.java
index 27b29f6336..834fbbe132 100644
index 27b29f633..834fbbe13 100644
--- a/src/main/java/net/minecraft/server/EntityFox.java
+++ b/src/main/java/net/minecraft/server/EntityFox.java
@@ -232,6 +232,11 @@ public class EntityFox extends EntityAnimal {
@@ -62,7 +62,7 @@ index 27b29f6336..834fbbe132 100644
public float cX() {
return getRider() == null ? super.cX() : 0.5F;
diff --git a/src/main/java/net/minecraft/server/Items.java b/src/main/java/net/minecraft/server/Items.java
index 987297634c..eed256349d 100644
index 987297634..eed256349 100644
--- a/src/main/java/net/minecraft/server/Items.java
+++ b/src/main/java/net/minecraft/server/Items.java
@@ -106,8 +106,8 @@ public class Items {
@@ -77,7 +77,7 @@ index 987297634c..eed256349d 100644
public static final Item bd = a(Blocks.OXEYE_DAISY, CreativeModeTab.c);
public static final Item be = a(Blocks.CORNFLOWER, CreativeModeTab.c);
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 9f3b383698..967e51722f 100644
index c7e634ecc..c4afafc59 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -161,6 +161,11 @@ public class PurpurConfig {

View File

@@ -1,4 +1,4 @@
From 912dd7eebc0574c154d5adeea01f054847e8afc5 Mon Sep 17 00:00:00 2001
From e02078a503427b52f6ec569ae026bd2706034d7e Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sun, 14 Jul 2019 19:52:47 -0500
Subject: [PATCH] Mending mends most damages equipment first
@@ -10,7 +10,7 @@ Subject: [PATCH] Mending mends most damages equipment first
3 files changed, 27 insertions(+), 2 deletions(-)
diff --git a/src/main/java/net/minecraft/server/EnchantmentManager.java b/src/main/java/net/minecraft/server/EnchantmentManager.java
index 1d16919e6b..e3bc32a77f 100644
index 1d16919e6..e3bc32a77 100644
--- a/src/main/java/net/minecraft/server/EnchantmentManager.java
+++ b/src/main/java/net/minecraft/server/EnchantmentManager.java
@@ -241,9 +241,29 @@ public class EnchantmentManager {
@@ -45,7 +45,7 @@ index 1d16919e6b..e3bc32a77f 100644
}
@Nullable
diff --git a/src/main/java/net/minecraft/server/EntityExperienceOrb.java b/src/main/java/net/minecraft/server/EntityExperienceOrb.java
index 1a98442e08..8a4eedb747 100644
index 1a98442e0..8a4eedb74 100644
--- a/src/main/java/net/minecraft/server/EntityExperienceOrb.java
+++ b/src/main/java/net/minecraft/server/EntityExperienceOrb.java
@@ -222,7 +222,7 @@ public class EntityExperienceOrb extends Entity {
@@ -58,7 +58,7 @@ index 1a98442e08..8a4eedb747 100644
if (entry != null) {
ItemStack itemstack = (ItemStack) entry.getValue();
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 967e51722f..db98610520 100644
index c4afafc59..400b7d212 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -151,6 +151,11 @@ public class PurpurConfig {

View File

@@ -1,4 +1,4 @@
From d6f41b811080215e29fe36cb54451642d5c5aba9 Mon Sep 17 00:00:00 2001
From 096f2f316f27ddf82c1575dc13fc1d80f3346541 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sun, 21 Jul 2019 18:01:46 -0500
Subject: [PATCH] Players should not cram to death
@@ -8,7 +8,7 @@ Subject: [PATCH] Players should not cram to death
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index 8c59692b2b..d375069f33 100644
index 8c59692b2..d375069f3 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1073,7 +1073,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {

View File

@@ -1,32 +1,75 @@
From 738e7115dfca463d7c173737df7453a6a9823013 Mon Sep 17 00:00:00 2001
From be40fc6982105526eee626d0349da7168d6c20a6 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sun, 21 Jul 2019 18:06:20 -0500
Subject: [PATCH] Ladders should not bypass cramming gamerule
---
src/main/java/net/minecraft/server/Entity.java | 5 +++++
src/main/java/net/minecraft/server/Entity.java | 6 ++++++
.../java/net/minecraft/server/EntityArmorStand.java | 2 +-
src/main/java/net/minecraft/server/EntityBoat.java | 2 +-
.../net/minecraft/server/EntityHorseAbstract.java | 2 +-
src/main/java/net/minecraft/server/EntityLiving.java | 11 +++++++++--
.../java/net/minecraft/server/IEntitySelector.java | 7 ++++++-
3 files changed, 20 insertions(+), 3 deletions(-)
6 files changed, 24 insertions(+), 6 deletions(-)
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index cfe21c2e70..1857cfb877 100644
index 26a30e1c0..00caabf3d 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1523,6 +1523,11 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1522,6 +1522,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
}
public boolean isCollidable() {
+ // Purpur start
+ return isCollidable(false);
+ }
+
+ public boolean isCollidable(boolean ignoreClimbing) {
+ // Purpur end
return false;
}
diff --git a/src/main/java/net/minecraft/server/EntityArmorStand.java b/src/main/java/net/minecraft/server/EntityArmorStand.java
index e516db270..2fb10f6c2 100644
--- a/src/main/java/net/minecraft/server/EntityArmorStand.java
+++ b/src/main/java/net/minecraft/server/EntityArmorStand.java
@@ -316,7 +316,7 @@ public class EntityArmorStand extends EntityLiving {
}
@Override
- public boolean isCollidable() {
+ public boolean isCollidable(boolean ignoreClimbing) { // Purpur
return false;
}
diff --git a/src/main/java/net/minecraft/server/EntityBoat.java b/src/main/java/net/minecraft/server/EntityBoat.java
index 32b7f7805..b5bcd1f80 100644
--- a/src/main/java/net/minecraft/server/EntityBoat.java
+++ b/src/main/java/net/minecraft/server/EntityBoat.java
@@ -98,7 +98,7 @@ public class EntityBoat extends Entity {
}
@Override
- public boolean isCollidable() {
+ public boolean isCollidable(boolean ignoreClimbing) { // Purpur
return true;
}
diff --git a/src/main/java/net/minecraft/server/EntityHorseAbstract.java b/src/main/java/net/minecraft/server/EntityHorseAbstract.java
index 2177a4370..05a5169c1 100644
--- a/src/main/java/net/minecraft/server/EntityHorseAbstract.java
+++ b/src/main/java/net/minecraft/server/EntityHorseAbstract.java
@@ -165,7 +165,7 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven
}
@Override
- public boolean isCollidable() {
+ public boolean isCollidable(boolean ignoreClimbing) { // Purpur
return !this.isVehicle();
}
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index aa60c00842..4e6598cf5a 100644
index aa60c0084..4e6598cf5 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -2609,7 +2609,7 @@ public abstract class EntityLiving extends Entity {
@@ -55,7 +98,7 @@ index aa60c00842..4e6598cf5a 100644
@Override
diff --git a/src/main/java/net/minecraft/server/IEntitySelector.java b/src/main/java/net/minecraft/server/IEntitySelector.java
index 56488b78dd..7ef7fe228b 100644
index 56488b78d..7ef7fe228 100644
--- a/src/main/java/net/minecraft/server/IEntitySelector.java
+++ b/src/main/java/net/minecraft/server/IEntitySelector.java
@@ -32,11 +32,16 @@ public final class IEntitySelector {

View File

@@ -1,58 +0,0 @@
From c846d739057ad00213a29f0c0372951d30791c14 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Wed, 10 Jul 2019 20:14:07 -0500
Subject: [PATCH] Allow leashing villagers
---
src/main/java/net/minecraft/server/EntityInsentient.java | 1 +
src/main/java/net/minecraft/server/EntityVillager.java | 7 +++++++
src/main/java/net/pl3x/purpur/PurpurWorldConfig.java | 5 +++++
3 files changed, 13 insertions(+)
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index 47090db890..67deda84bd 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -1036,6 +1036,7 @@ public abstract class EntityInsentient extends EntityLiving {
if (!this.isAlive()) {
return false;
} else if (this.getLeashHolder() == entityhuman) {
+ if (world.purpurConfig.allowLeashingVillagers && enumhand == EnumHand.OFF_HAND && this instanceof EntityVillager) return true; // Purpur
// CraftBukkit start - fire PlayerUnleashEntityEvent
if (CraftEventFactory.callPlayerUnleashEntityEvent(this, entityhuman).isCancelled()) {
((EntityPlayer) entityhuman).playerConnection.sendPacket(new PacketPlayOutAttachEntity(this, this.getLeashHolder()));
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
index c2ccb85896..976473a678 100644
--- a/src/main/java/net/minecraft/server/EntityVillager.java
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
@@ -982,4 +982,11 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
return optional.isPresent() && optional1.isPresent() ? i - ((MinecraftSerializableLong) optional.get()).a() < 24000L && i - ((MinecraftSerializableLong) optional1.get()).a() < 36000L : false;
}
+
+ // Purpur - start
+ @Override
+ public boolean a(EntityHuman entityhuman) {
+ return world.purpurConfig.allowLeashingVillagers && !this.isLeashed();
+ }
+ // Purpur - end
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index a33eb6773c..542e1b3299 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -107,6 +107,11 @@ public class PurpurWorldConfig {
allowSignColors = getBoolean("allow-sign-colors", allowSignColors);
}
+ public boolean allowLeashingVillagers = true;
+ private void allowLeashingVillagers() {
+ allowLeashingVillagers = getBoolean("allow-leashing-villagers", allowLeashingVillagers);
+ }
+
public boolean itemsCanBreakTurtleEggs = false;
private void itemsCanBreakTurtleEggs() {
itemsCanBreakTurtleEggs = getBoolean("items-can-break-turtle-eggs", itemsCanBreakTurtleEggs);
--
2.20.1

View File

@@ -1,4 +1,4 @@
From a75bbbdd9070da9170e40ce7dc34e36879807d8d Mon Sep 17 00:00:00 2001
From 878f46588f40c083ede79636abf7da2da89ab0fb Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Mon, 22 Jul 2019 14:24:26 -0500
Subject: [PATCH] Implement a hard limit for pillager outpost spawns
@@ -9,7 +9,7 @@ Subject: [PATCH] Implement a hard limit for pillager outpost spawns
2 files changed, 6 insertions(+)
diff --git a/src/main/java/net/minecraft/server/ChunkProviderGenerate.java b/src/main/java/net/minecraft/server/ChunkProviderGenerate.java
index b794a39d31..39159e34a2 100644
index b794a39d3..39159e34a 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderGenerate.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderGenerate.java
@@ -142,6 +142,7 @@ public class ChunkProviderGenerate extends ChunkGeneratorAbstract<GeneratorSetti
@@ -21,12 +21,12 @@ index b794a39d31..39159e34a2 100644
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 3ec048adf3..e3fe4ed5f0 100644
index a3f93485b..9200c439b 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -128,4 +128,9 @@ public class PurpurWorldConfig {
blockTickEvent = getBoolean("block-tick-events", blockTickEvent);
fluidTickEvent = getBoolean("fluid-tick-events", fluidTickEvent);
@@ -116,4 +116,9 @@ public class PurpurWorldConfig {
private void milkCuresBadOmen() {
milkCuresBadOmen = getBoolean("milk-cures-bad-omen", milkCuresBadOmen);
}
+
+ public int limitPillagerOutpostSpawns = 10;

View File

@@ -1,4 +1,4 @@
From 9d2c3b412daedf083676cd1ff5087ece29bcb6fc Mon Sep 17 00:00:00 2001
From 7067491a7ee804e88d8535a638f1f2e27b161041 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Mon, 22 Jul 2019 17:32:17 -0500
Subject: [PATCH] Implement configurable search radius for villagers to spawn
@@ -10,7 +10,7 @@ Subject: [PATCH] Implement configurable search radius for villagers to spawn
2 files changed, 8 insertions(+)
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
index 976473a678..0800788e5b 100644
index c2ccb8589..70e8a422a 100644
--- a/src/main/java/net/minecraft/server/EntityVillager.java
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
@@ -886,6 +886,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
@@ -22,10 +22,10 @@ index 976473a678..0800788e5b 100644
int i = 0;
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index e3fe4ed5f0..4dfecc4a1b 100644
index 9200c439b..489083928 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -133,4 +133,11 @@ public class PurpurWorldConfig {
@@ -121,4 +121,11 @@ public class PurpurWorldConfig {
private void limitPillagerOutpostSpawns() {
limitPillagerOutpostSpawns = getInt("limit-pillager-outpost-spawns", limitPillagerOutpostSpawns);
}

View File

@@ -1,4 +1,4 @@
From 79e256f34314e8e2de5949c4e4c91a3634274e21 Mon Sep 17 00:00:00 2001
From 5f04038b16fc94277358bd8ee56ad0e4b3ee10eb Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Tue, 23 Jul 2019 10:07:16 -0500
Subject: [PATCH] Implement lagging threshold
@@ -10,7 +10,7 @@ Subject: [PATCH] Implement lagging threshold
3 files changed, 12 insertions(+)
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index f8da3a77da..af37c943e7 100644
index f7e8d2156..cf86ab0f0 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -175,6 +175,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -21,7 +21,7 @@ index f8da3a77da..af37c943e7 100644
public final SlackActivityAccountant slackActivityAccountant = new SlackActivityAccountant();
// Spigot end
@@ -901,6 +902,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -900,6 +901,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
recentTps[0] = tps1.getAverage();
recentTps[1] = tps5.getAverage();
recentTps[2] = tps15.getAverage();
@@ -30,7 +30,7 @@ index f8da3a77da..af37c943e7 100644
tickSection = curTime;
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index b3eb71fdb4..2e81da63ba 100644
index 400b7d212..f923291fe 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -136,6 +136,11 @@ public class PurpurConfig {
@@ -46,7 +46,7 @@ index b3eb71fdb4..2e81da63ba 100644
private static void disableDropsOnCrammingDeath() {
disableDropsOnCrammingDeath = getBoolean("settings.disable-drops-on-cramming-death", disableDropsOnCrammingDeath);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 34a6d26a2a..42b986274f 100644
index 34a6d26a2..42b986274 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -2170,5 +2170,10 @@ public final class CraftServer implements Server {

View File

@@ -1,4 +1,4 @@
From c189a5bd5351849938ff12f6860fd18ab22c7adc Mon Sep 17 00:00:00 2001
From 89ed1d4a2fd284f22b605416fd768aaec2276702 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Tue, 23 Jul 2019 08:28:21 -0500
Subject: [PATCH] Implement configurable villager brain ticks
@@ -9,7 +9,7 @@ Subject: [PATCH] Implement configurable villager brain ticks
2 files changed, 13 insertions(+)
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
index 0800788e5b..2c45661386 100644
index 70e8a422a..da3fb4b57 100644
--- a/src/main/java/net/minecraft/server/EntityVillager.java
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
@@ -53,6 +53,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
@@ -40,10 +40,10 @@ index 0800788e5b..2c45661386 100644
this.world.getMethodProfiler().exit();
if (!this.dY() && this.bE > 0) {
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 2e81da63ba..3569542b3c 100644
index f923291fe..3ff26e47b 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -211,6 +211,13 @@ public class PurpurConfig {
@@ -209,6 +209,13 @@ public class PurpurConfig {
snowmanPumpkinPutBack = getBoolean("settings.mobs.snow_golem.pumpkin-can-be-added-back", snowmanPumpkinPutBack);
}

View File

@@ -1,50 +0,0 @@
From 514882674896290beb6547b51f9b83e4d86dff0f Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Fri, 12 Jul 2019 16:18:55 -0500
Subject: [PATCH] Prevent entities from loading unloaded chunks
---
src/main/java/net/minecraft/server/Entity.java | 1 +
src/main/java/net/minecraft/server/EntityEnderman.java | 1 +
src/main/java/net/minecraft/server/EntityZombie.java | 1 +
3 files changed, 3 insertions(+)
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 26a30e1c02..cfe21c2e70 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -577,6 +577,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
int j = MathHelper.floor(this.locY - 0.20000000298023224D);
int k = MathHelper.floor(this.locZ);
BlockPosition blockposition = new BlockPosition(i, j, k);
+ if (!world.isLoaded(blockposition)) return; // Purpur
IBlockData iblockdata = this.world.getType(blockposition);
if (iblockdata.isAir()) {
diff --git a/src/main/java/net/minecraft/server/EntityEnderman.java b/src/main/java/net/minecraft/server/EntityEnderman.java
index a438d30414..5839f848d6 100644
--- a/src/main/java/net/minecraft/server/EntityEnderman.java
+++ b/src/main/java/net/minecraft/server/EntityEnderman.java
@@ -223,6 +223,7 @@ public class EntityEnderman extends EntityMonster {
private boolean l(double d0, double d1, double d2) {
BlockPosition.MutableBlockPosition blockposition_mutableblockposition = new BlockPosition.MutableBlockPosition(d0, d1, d2);
+ if (!world.isLoaded(blockposition_mutableblockposition)) return false; // Purpur
while (blockposition_mutableblockposition.getY() > 0 && !this.world.getType(blockposition_mutableblockposition).getMaterial().isSolid()) {
blockposition_mutableblockposition.c(EnumDirection.DOWN);
diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java
index 4456cf1354..d967620756 100644
--- a/src/main/java/net/minecraft/server/EntityZombie.java
+++ b/src/main/java/net/minecraft/server/EntityZombie.java
@@ -299,6 +299,7 @@ public class EntityZombie extends EntityMonster {
int j1 = j + MathHelper.nextInt(this.random, 7, 40) * MathHelper.nextInt(this.random, -1, 1);
int k1 = k + MathHelper.nextInt(this.random, 7, 40) * MathHelper.nextInt(this.random, -1, 1);
BlockPosition blockposition = new BlockPosition(i1, j1 - 1, k1);
+ if (!world.isLoaded(blockposition)) continue; // Purpur
if (this.world.getType(blockposition).a((IBlockAccess) this.world, blockposition, (Entity) entityzombie) && this.world.getLightLevel(new BlockPosition(i1, j1, k1)) < 10) {
entityzombie.setPosition((double) i1, (double) j1, (double) k1);
--
2.20.1

View File

@@ -1,4 +1,4 @@
From a7df7ee02f9e66f02dcba7660a5151e8eea0717a Mon Sep 17 00:00:00 2001
From a4d91783ad3be818efecbd73661bc4d89df2ab17 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Thu, 25 Jul 2019 18:07:37 -0500
Subject: [PATCH] Implement elytra settings
@@ -13,7 +13,7 @@ Subject: [PATCH] Implement elytra settings
6 files changed, 50 insertions(+), 4 deletions(-)
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 4e6598cf5a..cbd7ab3a89 100644
index 4e6598cf5..cbd7ab3a8 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -2588,9 +2588,16 @@ public abstract class EntityLiving extends Entity {
@@ -45,7 +45,7 @@ index 4e6598cf5a..cbd7ab3a89 100644
this.world.broadcastEntityEffect(this, d(enumitemslot));
}
diff --git a/src/main/java/net/minecraft/server/ItemFireworks.java b/src/main/java/net/minecraft/server/ItemFireworks.java
index 9e86ef4ce2..832cea636b 100644
index 9e86ef4ce..832cea636 100644
--- a/src/main/java/net/minecraft/server/ItemFireworks.java
+++ b/src/main/java/net/minecraft/server/ItemFireworks.java
@@ -38,6 +38,14 @@ public class ItemFireworks extends Item {
@@ -64,7 +64,7 @@ index 9e86ef4ce2..832cea636b 100644
itemstack.subtract(1);
} else ((EntityPlayer) entityhuman).getBukkitEntity().updateInventory();
diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java
index 0e164840fd..d9b63547d9 100644
index 0e164840f..d9b63547d 100644
--- a/src/main/java/net/minecraft/server/ItemStack.java
+++ b/src/main/java/net/minecraft/server/ItemStack.java
@@ -393,7 +393,7 @@ public final class ItemStack {
@@ -90,7 +90,7 @@ index 0e164840fd..d9b63547d9 100644
if (this.count == 1 && t0 instanceof EntityHuman) {
org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerItemBreakEvent((EntityHuman) t0, this);
diff --git a/src/main/java/net/minecraft/server/ItemTrident.java b/src/main/java/net/minecraft/server/ItemTrident.java
index c408157368..28f9f6e405 100644
index c40815736..28f9f6e40 100644
--- a/src/main/java/net/minecraft/server/ItemTrident.java
+++ b/src/main/java/net/minecraft/server/ItemTrident.java
@@ -93,6 +93,16 @@ public class ItemTrident extends Item {
@@ -111,7 +111,7 @@ index c408157368..28f9f6e405 100644
entityhuman.q(20);
if (entityhuman.onGround) {
diff --git a/src/main/java/net/minecraft/server/Vec3D.java b/src/main/java/net/minecraft/server/Vec3D.java
index d2eb861af2..b89f9fe7b1 100644
index d2eb861af..b89f9fe7b 100644
--- a/src/main/java/net/minecraft/server/Vec3D.java
+++ b/src/main/java/net/minecraft/server/Vec3D.java
@@ -93,6 +93,7 @@ public class Vec3D implements IPosition {
@@ -123,10 +123,10 @@ index d2eb861af2..b89f9fe7b1 100644
return this.x * this.x + this.y * this.y + this.z * this.z;
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 4dfecc4a1b..6a3df6ed2a 100644
index 489083928..b235c8769 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -140,4 +140,17 @@ public class PurpurWorldConfig {
@@ -128,4 +128,17 @@ public class PurpurWorldConfig {
radiusVillagerIronGolemSpawns = getInt("radius-villager-iron-golem-spawns", radiusVillagerIronGolemSpawns);
limitVillagerIronGolemSpawns = getInt("limit-villager-iron-golem-spawns", limitVillagerIronGolemSpawns);
}

View File

@@ -1,4 +1,4 @@
From 96e65150a1dc77f3d5e9e5f0c774ce24dd91b2ad Mon Sep 17 00:00:00 2001
From 01c1f69df3650e43577f784e416c171d9b42f7d5 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 27 Jul 2019 17:20:35 -0500
Subject: [PATCH] Add option to disable pillager patrols
@@ -9,7 +9,7 @@ Subject: [PATCH] Add option to disable pillager patrols
2 files changed, 6 insertions(+)
diff --git a/src/main/java/net/minecraft/server/MobSpawnerPatrol.java b/src/main/java/net/minecraft/server/MobSpawnerPatrol.java
index bb612b3861..99bb38f033 100644
index bb612b386..99bb38f03 100644
--- a/src/main/java/net/minecraft/server/MobSpawnerPatrol.java
+++ b/src/main/java/net/minecraft/server/MobSpawnerPatrol.java
@@ -9,6 +9,7 @@ public class MobSpawnerPatrol {
@@ -21,11 +21,11 @@ index bb612b3861..99bb38f033 100644
return 0;
} else {
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 3569542b3c..de5b014be0 100644
index 3ff26e47b..77a32cf65 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -204,6 +204,11 @@ public class PurpurConfig {
spawnPhantomsInTheEnd = getBoolean("settings.mobs.phantom.spawn-in-the-end", spawnPhantomsInTheEnd);
@@ -202,6 +202,11 @@ public class PurpurConfig {
phantomsOrbitCrystalsRadius = getDouble("settings.mobs.phantom.orbit-crystal-radius", phantomsOrbitCrystalsRadius);
}
+ public static boolean disablePillagerPatrols = false;

View File

@@ -1,4 +1,4 @@
From ab9996cd24a955a6dc0149de4ddc06e825c271f2 Mon Sep 17 00:00:00 2001
From e90835eadca2c179647653d8c5f324457836698d Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sun, 28 Jul 2019 01:27:37 -0500
Subject: [PATCH] Add 5 second tps average in /tps
@@ -10,7 +10,7 @@ Subject: [PATCH] Add 5 second tps average in /tps
3 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 4a26002efa..80c22f3b84 100644
index cf86ab0f0..e91f454c6 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -174,7 +174,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -22,7 +22,7 @@ index 4a26002efa..80c22f3b84 100644
public boolean lagging = false; // Purpur
public final SlackActivityAccountant slackActivityAccountant = new SlackActivityAccountant();
// Spigot end
@@ -819,6 +819,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -818,6 +818,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
private static final long MAX_CATCHUP_BUFFER = TICK_TIME * TPS * 60L;
private long lastTick = 0;
private long catchupTime = 0;
@@ -30,7 +30,7 @@ index 4a26002efa..80c22f3b84 100644
public final RollingAverage tps1 = new RollingAverage(60);
public final RollingAverage tps5 = new RollingAverage(60 * 5);
public final RollingAverage tps15 = new RollingAverage(60 * 15);
@@ -895,13 +896,17 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -894,13 +895,17 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
{
final long diff = curTime - tickSection;
java.math.BigDecimal currentTps = TPS_BASE.divide(new java.math.BigDecimal(diff), 30, java.math.RoundingMode.HALF_UP);
@@ -52,7 +52,7 @@ index 4a26002efa..80c22f3b84 100644
// Paper end
tickSection = curTime;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 42b986274f..20590fbf8b 100644
index 42b986274..20590fbf8 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -2008,6 +2008,7 @@ public final class CraftServer implements Server {
@@ -64,7 +64,7 @@ index 42b986274f..20590fbf8b 100644
net.minecraft.server.MinecraftServer.getServer().tps5.getAverage(),
net.minecraft.server.MinecraftServer.getServer().tps15.getAverage()
diff --git a/src/main/java/org/spigotmc/TicksPerSecondCommand.java b/src/main/java/org/spigotmc/TicksPerSecondCommand.java
index 6d21c32692..2eed9d0a4a 100644
index 6d21c3269..2eed9d0a4 100644
--- a/src/main/java/org/spigotmc/TicksPerSecondCommand.java
+++ b/src/main/java/org/spigotmc/TicksPerSecondCommand.java
@@ -30,7 +30,7 @@ public class TicksPerSecondCommand extends Command

View File

@@ -1,4 +1,4 @@
From 64b03313eb11a64ee7cc813970f8fe3dad1f22b9 Mon Sep 17 00:00:00 2001
From 7aed7be381bea2d92853d9bce1b5095eae5f2cf8 Mon Sep 17 00:00:00 2001
From: Spottedleaf <Spottedleaf@users.noreply.github.com>
Date: Sat, 13 Jul 2019 09:23:10 -0700
Subject: [PATCH] Asynchronous chunk IO and loading
@@ -159,7 +159,7 @@ and some poi tasks).
create mode 100644 src/main/java/com/destroystokyo/paper/io/chunk/ChunkTaskManager.java
diff --git a/src/main/java/co/aikar/timings/WorldTimingsHandler.java b/src/main/java/co/aikar/timings/WorldTimingsHandler.java
index 92c32c48d2..f4d5db02f7 100644
index 92c32c48d..f4d5db02f 100644
--- a/src/main/java/co/aikar/timings/WorldTimingsHandler.java
+++ b/src/main/java/co/aikar/timings/WorldTimingsHandler.java
@@ -58,6 +58,17 @@ public class WorldTimingsHandler {
@@ -199,7 +199,7 @@ index 92c32c48d2..f4d5db02f7 100644
public static Timing getTickList(WorldServer worldserver, String timingsType) {
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
index 750ca9727a..58e2a07079 100644
index 750ca9727..58e2a0707 100644
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
@@ -1,5 +1,6 @@
@@ -275,7 +275,7 @@ index 750ca9727a..58e2a07079 100644
+ }
}
diff --git a/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketBlockControllerAntiXray.java b/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketBlockControllerAntiXray.java
index 23626bef3a..1edcecd2ee 100644
index 23626bef3..1edcecd2e 100644
--- a/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketBlockControllerAntiXray.java
+++ b/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketBlockControllerAntiXray.java
@@ -9,6 +9,7 @@ import java.util.concurrent.Executors;
@@ -356,7 +356,7 @@ index 23626bef3a..1edcecd2ee 100644
diff --git a/src/main/java/com/destroystokyo/paper/io/ConcreteFileIOThread.java b/src/main/java/com/destroystokyo/paper/io/ConcreteFileIOThread.java
new file mode 100644
index 0000000000..7fb74810e4
index 000000000..7fb74810e
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/io/ConcreteFileIOThread.java
@@ -0,0 +1,665 @@
@@ -1027,7 +1027,7 @@ index 0000000000..7fb74810e4
+}
diff --git a/src/main/java/com/destroystokyo/paper/io/IOUtil.java b/src/main/java/com/destroystokyo/paper/io/IOUtil.java
new file mode 100644
index 0000000000..5af0ac3d9e
index 000000000..5af0ac3d9
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/io/IOUtil.java
@@ -0,0 +1,62 @@
@@ -1095,7 +1095,7 @@ index 0000000000..5af0ac3d9e
+}
diff --git a/src/main/java/com/destroystokyo/paper/io/PrioritizedTaskQueue.java b/src/main/java/com/destroystokyo/paper/io/PrioritizedTaskQueue.java
new file mode 100644
index 0000000000..c3ca3c4a1c
index 000000000..c3ca3c4a1
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/io/PrioritizedTaskQueue.java
@@ -0,0 +1,258 @@
@@ -1359,7 +1359,7 @@ index 0000000000..c3ca3c4a1c
+}
diff --git a/src/main/java/com/destroystokyo/paper/io/QueueExecutorThread.java b/src/main/java/com/destroystokyo/paper/io/QueueExecutorThread.java
new file mode 100644
index 0000000000..f127ef236e
index 000000000..f127ef236
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/io/QueueExecutorThread.java
@@ -0,0 +1,244 @@
@@ -1609,7 +1609,7 @@ index 0000000000..f127ef236e
+}
diff --git a/src/main/java/com/destroystokyo/paper/io/chunk/ChunkLoadTask.java b/src/main/java/com/destroystokyo/paper/io/chunk/ChunkLoadTask.java
new file mode 100644
index 0000000000..193ea0c6f0
index 000000000..193ea0c6f
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/io/chunk/ChunkLoadTask.java
@@ -0,0 +1,149 @@
@@ -1764,7 +1764,7 @@ index 0000000000..193ea0c6f0
+}
diff --git a/src/main/java/com/destroystokyo/paper/io/chunk/ChunkSaveTask.java b/src/main/java/com/destroystokyo/paper/io/chunk/ChunkSaveTask.java
new file mode 100644
index 0000000000..d1c0d450e5
index 000000000..d1c0d450e
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/io/chunk/ChunkSaveTask.java
@@ -0,0 +1,114 @@
@@ -1884,7 +1884,7 @@ index 0000000000..d1c0d450e5
+}
diff --git a/src/main/java/com/destroystokyo/paper/io/chunk/ChunkTask.java b/src/main/java/com/destroystokyo/paper/io/chunk/ChunkTask.java
new file mode 100644
index 0000000000..400fae5d09
index 000000000..400fae5d0
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/io/chunk/ChunkTask.java
@@ -0,0 +1,40 @@
@@ -1930,7 +1930,7 @@ index 0000000000..400fae5d09
+}
diff --git a/src/main/java/com/destroystokyo/paper/io/chunk/ChunkTaskManager.java b/src/main/java/com/destroystokyo/paper/io/chunk/ChunkTaskManager.java
new file mode 100644
index 0000000000..03cb8e0b32
index 000000000..03cb8e0b3
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/io/chunk/ChunkTaskManager.java
@@ -0,0 +1,336 @@
@@ -2271,7 +2271,7 @@ index 0000000000..03cb8e0b32
+
+}
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
index 2c6a164f02..64a899abc8 100644
index 2c6a164f0..64a899abc 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
@@ -124,11 +124,137 @@ public class ChunkProviderServer extends IChunkProvider {
@@ -2423,7 +2423,7 @@ index 2c6a164f02..64a899abc8 100644
this.serverThreadQueue.awaitTasks(completablefuture::isDone);
this.world.timings.chunkAwait.stopTiming(); // Paper
diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
index a028074112..61157b5dd4 100644
index a02807411..61157b5dd 100644
--- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
+++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
@@ -6,6 +6,7 @@ import it.unimi.dsi.fastutil.longs.LongOpenHashSet;
@@ -2679,7 +2679,7 @@ index a028074112..61157b5dd4 100644
nbttagcompound1.set("LiquidTicks", worldserver.getFluidTickList().a(chunkcoordintpair));
}
diff --git a/src/main/java/net/minecraft/server/ChunkStatus.java b/src/main/java/net/minecraft/server/ChunkStatus.java
index e324989b46..abb0d69d2f 100644
index e324989b4..abb0d69d2 100644
--- a/src/main/java/net/minecraft/server/ChunkStatus.java
+++ b/src/main/java/net/minecraft/server/ChunkStatus.java
@@ -153,6 +153,7 @@ public class ChunkStatus {
@@ -2691,7 +2691,7 @@ index e324989b46..abb0d69d2f 100644
return ChunkStatus.r.getInt(chunkstatus.c());
}
diff --git a/src/main/java/net/minecraft/server/IAsyncTaskHandler.java b/src/main/java/net/minecraft/server/IAsyncTaskHandler.java
index d521d25cf5..84024e6ba4 100644
index d521d25cf..84024e6ba 100644
--- a/src/main/java/net/minecraft/server/IAsyncTaskHandler.java
+++ b/src/main/java/net/minecraft/server/IAsyncTaskHandler.java
@@ -91,7 +91,7 @@ public abstract class IAsyncTaskHandler<R extends Runnable> implements Mailbox<R
@@ -2704,7 +2704,7 @@ index d521d25cf5..84024e6ba4 100644
;
}
diff --git a/src/main/java/net/minecraft/server/IChunkLoader.java b/src/main/java/net/minecraft/server/IChunkLoader.java
index 3f14392e6e..00e92fa531 100644
index 3f14392e6..00e92fa53 100644
--- a/src/main/java/net/minecraft/server/IChunkLoader.java
+++ b/src/main/java/net/minecraft/server/IChunkLoader.java
@@ -3,6 +3,10 @@ package net.minecraft.server;
@@ -2789,7 +2789,7 @@ index 3f14392e6e..00e92fa531 100644
}
diff --git a/src/main/java/net/minecraft/server/MCUtil.java b/src/main/java/net/minecraft/server/MCUtil.java
index 23d1935dd5..14f8b61042 100644
index 23d1935dd..14f8b6104 100644
--- a/src/main/java/net/minecraft/server/MCUtil.java
+++ b/src/main/java/net/minecraft/server/MCUtil.java
@@ -530,4 +530,9 @@ public final class MCUtil {
@@ -2803,10 +2803,10 @@ index 23d1935dd5..14f8b61042 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index f7e8d2156d..f8da3a77da 100644
index e91f454c6..63e12399e 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -774,6 +774,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -775,6 +775,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
this.getUserCache().c(false); // Paper
}
// Spigot end
@@ -2815,7 +2815,7 @@ index f7e8d2156d..f8da3a77da 100644
public String getServerIp() {
diff --git a/src/main/java/net/minecraft/server/NibbleArray.java b/src/main/java/net/minecraft/server/NibbleArray.java
index 90c096876e..eb2c061550 100644
index 90c096876..eb2c06155 100644
--- a/src/main/java/net/minecraft/server/NibbleArray.java
+++ b/src/main/java/net/minecraft/server/NibbleArray.java
@@ -71,6 +71,7 @@ public class NibbleArray {
@@ -2827,7 +2827,7 @@ index 90c096876e..eb2c061550 100644
return this.a == null ? new NibbleArray() : new NibbleArray((byte[]) this.a.clone());
}
diff --git a/src/main/java/net/minecraft/server/PlayerChunk.java b/src/main/java/net/minecraft/server/PlayerChunk.java
index af934ef8bc..8d18d9dd0f 100644
index af934ef8b..8d18d9dd0 100644
--- a/src/main/java/net/minecraft/server/PlayerChunk.java
+++ b/src/main/java/net/minecraft/server/PlayerChunk.java
@@ -310,7 +310,7 @@ public class PlayerChunk {
@@ -2853,7 +2853,7 @@ index af934ef8bc..8d18d9dd0f 100644
completablefuture = (CompletableFuture) this.statusFutures.get(i);
if (completablefuture != null) {
diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java
index fd0d2b6e67..4c774e31dc 100644
index fd0d2b6e6..4c774e31d 100644
--- a/src/main/java/net/minecraft/server/PlayerChunkMap.java
+++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java
@@ -62,7 +62,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
@@ -3318,7 +3318,7 @@ index fd0d2b6e67..4c774e31dc 100644
return this.n;
}
diff --git a/src/main/java/net/minecraft/server/RegionFile.java b/src/main/java/net/minecraft/server/RegionFile.java
index 41f1e15cb0..3884dd84d1 100644
index 41f1e15cb..3884dd84d 100644
--- a/src/main/java/net/minecraft/server/RegionFile.java
+++ b/src/main/java/net/minecraft/server/RegionFile.java
@@ -340,7 +340,7 @@ public class RegionFile implements AutoCloseable {
@@ -3331,7 +3331,7 @@ index 41f1e15cb0..3884dd84d1 100644
this.b.close();
}
diff --git a/src/main/java/net/minecraft/server/RegionFileCache.java b/src/main/java/net/minecraft/server/RegionFileCache.java
index e0fdf5f90f..d9283b36b6 100644
index e0fdf5f90..d9283b36b 100644
--- a/src/main/java/net/minecraft/server/RegionFileCache.java
+++ b/src/main/java/net/minecraft/server/RegionFileCache.java
@@ -51,13 +51,13 @@ public abstract class RegionFileCache implements AutoCloseable {
@@ -3360,7 +3360,7 @@ index e0fdf5f90f..d9283b36b6 100644
RegionFile regionfile = a(pos, true);
diff --git a/src/main/java/net/minecraft/server/RegionFileSection.java b/src/main/java/net/minecraft/server/RegionFileSection.java
index a343a7b31d..7584174eb7 100644
index a343a7b31..7584174eb 100644
--- a/src/main/java/net/minecraft/server/RegionFileSection.java
+++ b/src/main/java/net/minecraft/server/RegionFileSection.java
@@ -24,7 +24,7 @@ public class RegionFileSection<R extends MinecraftSerializable> extends RegionFi
@@ -3483,7 +3483,7 @@ index a343a7b31d..7584174eb7 100644
+ // Paper end
}
diff --git a/src/main/java/net/minecraft/server/TicketType.java b/src/main/java/net/minecraft/server/TicketType.java
index 9c114d2d37..e3150f85a5 100644
index 9c114d2d3..e3150f85a 100644
--- a/src/main/java/net/minecraft/server/TicketType.java
+++ b/src/main/java/net/minecraft/server/TicketType.java
@@ -22,6 +22,7 @@ public class TicketType<T> {
@@ -3495,7 +3495,7 @@ index 9c114d2d37..e3150f85a5 100644
public static <T> TicketType<T> a(String s, Comparator<T> comparator) {
return new TicketType<>(s, comparator, 0L);
diff --git a/src/main/java/net/minecraft/server/VillagePlace.java b/src/main/java/net/minecraft/server/VillagePlace.java
index b0e6ad773e..f6c95ae8c1 100644
index b0e6ad773..f6c95ae8c 100644
--- a/src/main/java/net/minecraft/server/VillagePlace.java
+++ b/src/main/java/net/minecraft/server/VillagePlace.java
@@ -20,8 +20,16 @@ public class VillagePlace extends RegionFileSection<VillagePlaceSection> {
@@ -3602,7 +3602,7 @@ index b0e6ad773e..f6c95ae8c1 100644
}
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index e160b0aa59..ba4f7999f9 100644
index e73257f3f..787dc3e88 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -1,9 +1,9 @@
@@ -3706,7 +3706,7 @@ index e160b0aa59..ba4f7999f9 100644
public void doTick(BooleanSupplier booleansupplier) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 42bab6d574..43b894af52 100644
index a2b6c3c94..69184f724 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -538,22 +538,23 @@ public class CraftWorld implements World {

View File

@@ -1,4 +1,4 @@
From 382186b874ecd84f3df0066d8d74355d6210b18b Mon Sep 17 00:00:00 2001
From 783182a5e6d0caabd8833f2ab4b61f86669c82a0 Mon Sep 17 00:00:00 2001
From: Spottedleaf <Spottedleaf@users.noreply.github.com>
Date: Fri, 19 Jul 2019 03:29:14 -0700
Subject: [PATCH] Reduce sync loads
@@ -18,7 +18,7 @@ To get a debug log for sync loads, the command is /paper syncloadinfo
create mode 100644 src/main/java/com/destroystokyo/paper/io/SyncLoadFinder.java
diff --git a/src/main/java/com/destroystokyo/paper/PaperCommand.java b/src/main/java/com/destroystokyo/paper/PaperCommand.java
index 8db92edc36..a37f118839 100644
index 8db92edc3..a37f11883 100644
--- a/src/main/java/com/destroystokyo/paper/PaperCommand.java
+++ b/src/main/java/com/destroystokyo/paper/PaperCommand.java
@@ -1,9 +1,13 @@
@@ -98,7 +98,7 @@ index 8db92edc36..a37f118839 100644
if (args.length < 2 || args[1].equals("*")) {
diff --git a/src/main/java/com/destroystokyo/paper/io/SyncLoadFinder.java b/src/main/java/com/destroystokyo/paper/io/SyncLoadFinder.java
new file mode 100644
index 0000000000..59aec10329
index 000000000..59aec1032
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/io/SyncLoadFinder.java
@@ -0,0 +1,172 @@
@@ -275,7 +275,7 @@ index 0000000000..59aec10329
+ }
+}
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
index 64a899abc8..b1bea8f90d 100644
index 64a899abc..b1bea8f90 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
@@ -279,6 +279,7 @@ public class ChunkProviderServer extends IChunkProvider {
@@ -287,7 +287,7 @@ index 64a899abc8..b1bea8f90d 100644
this.serverThreadQueue.awaitTasks(completablefuture::isDone);
this.world.timings.chunkAwait.stopTiming(); // Paper
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 9f657b01fc..eb6929e2b0 100644
index 9f657b01f..eb6929e2b 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1252,7 +1252,7 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose

View File

@@ -1,4 +1,4 @@
From c3af754aac95a1dab57a6c4af0f01dc6822de186 Mon Sep 17 00:00:00 2001
From 0a317004119ae5fc7986815d13d9220aed35c20f Mon Sep 17 00:00:00 2001
From: Spottedleaf <Spottedleaf@users.noreply.github.com>
Date: Sat, 20 Jul 2019 15:20:04 -0700
Subject: [PATCH] Better server sleeping/waiting
@@ -9,7 +9,7 @@ Subject: [PATCH] Better server sleeping/waiting
2 files changed, 52 insertions(+), 3 deletions(-)
diff --git a/src/main/java/net/minecraft/server/IAsyncTaskHandler.java b/src/main/java/net/minecraft/server/IAsyncTaskHandler.java
index 84024e6ba4..78ea0a251e 100644
index 84024e6ba..78ea0a251 100644
--- a/src/main/java/net/minecraft/server/IAsyncTaskHandler.java
+++ b/src/main/java/net/minecraft/server/IAsyncTaskHandler.java
@@ -91,6 +91,53 @@ public abstract class IAsyncTaskHandler<R extends Runnable> implements Mailbox<R
@@ -67,10 +67,10 @@ index 84024e6ba4..78ea0a251e 100644
while (this.executeNext()) {
;
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index af37c943e7..4a26002efa 100644
index 63e12399e..80c22f3b8 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -989,9 +989,11 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -994,9 +994,11 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
protected void sleepForTick() {
//this.executeAll(); // Paper - move this into the tick method for timings

View File

@@ -1,4 +1,4 @@
From 74b36f2305ac80610cb923a841f4411f3999a430 Mon Sep 17 00:00:00 2001
From cd13a0bffffb95ec23844ee7c7253574760668cb Mon Sep 17 00:00:00 2001
From: Spottedleaf <Spottedleaf@users.noreply.github.com>
Date: Mon, 11 Mar 2019 12:18:29 -0700
Subject: [PATCH] Rate limit packets incoming from players
@@ -12,7 +12,7 @@ Subject: [PATCH] Rate limit packets incoming from players
create mode 100644 src/main/java/com/destroystokyo/paper/network/PacketLimiter.java
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
index 58e2a07079..4fcecf4095 100644
index 58e2a0707..4fcecf409 100644
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
@@ -392,6 +392,18 @@ public class PaperConfig {
@@ -36,7 +36,7 @@ index 58e2a07079..4fcecf4095 100644
//public static boolean asyncChunkGenThreadPerWorld = true; // Leave out for now until we can control this
diff --git a/src/main/java/com/destroystokyo/paper/network/PacketLimiter.java b/src/main/java/com/destroystokyo/paper/network/PacketLimiter.java
new file mode 100644
index 0000000000..91c8c5f53a
index 000000000..91c8c5f53
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/network/PacketLimiter.java
@@ -0,0 +1,135 @@
@@ -176,7 +176,7 @@ index 0000000000..91c8c5f53a
+ }
+}
diff --git a/src/main/java/net/minecraft/server/NetworkManager.java b/src/main/java/net/minecraft/server/NetworkManager.java
index 96a785af27..ff8b5e76f3 100644
index 96a785af2..ff8b5e76f 100644
--- a/src/main/java/net/minecraft/server/NetworkManager.java
+++ b/src/main/java/net/minecraft/server/NetworkManager.java
@@ -150,6 +150,13 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
@@ -194,7 +194,7 @@ index 96a785af27..ff8b5e76f3 100644
}
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index 520490d59c..8aa8a672db 100644
index 520490d59..8aa8a672d 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -140,6 +140,60 @@ public class PlayerConnection implements PacketListenerPlayIn {

View File

@@ -1,4 +1,4 @@
From 0b8e834d7e7521806c55671591c93ea868c7db4e Mon Sep 17 00:00:00 2001
From 9609651ff68ef811e639625012a9fd82c202392a Mon Sep 17 00:00:00 2001
From: kickash32 <kickash32@gmail.com>
Date: Tue, 11 Jun 2019 22:22:16 -0400
Subject: [PATCH] implement optional per player mob spawns
@@ -8,12 +8,12 @@ Subject: [PATCH] implement optional per player mob spawns
.../minecraft/server/ChunkProviderServer.java | 16 +++++++--
.../net/minecraft/server/EntityTypes.java | 1 +
.../net/minecraft/server/PlayerChunkMap.java | 5 +--
.../net/minecraft/server/SpawnerCreature.java | 27 +++++++-------
.../net/minecraft/server/SpawnerCreature.java | 25 +++++++------
.../net/minecraft/server/WorldServer.java | 36 +++++++++++++++++++
6 files changed, 72 insertions(+), 18 deletions(-)
6 files changed, 71 insertions(+), 17 deletions(-)
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
index 318a470eea..72b77e27e8 100644
index 318a470ee..72b77e27e 100644
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
@@ -509,6 +509,11 @@ public class PaperWorldConfig {
@@ -29,7 +29,7 @@ index 318a470eea..72b77e27e8 100644
private void countAllMobsForSpawning() {
countAllMobsForSpawning = getBoolean("count-all-mobs-for-spawning", false);
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
index b1bea8f90d..d92446d79b 100644
index b1bea8f90..d92446d79 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
@@ -601,9 +601,21 @@ public class ChunkProviderServer extends IChunkProvider {
@@ -57,10 +57,10 @@ index b1bea8f90d..d92446d79b 100644
}
}
diff --git a/src/main/java/net/minecraft/server/EntityTypes.java b/src/main/java/net/minecraft/server/EntityTypes.java
index d92fbea4c7..f9bc2ab66e 100644
index 84aa1db72..7405d78c2 100644
--- a/src/main/java/net/minecraft/server/EntityTypes.java
+++ b/src/main/java/net/minecraft/server/EntityTypes.java
@@ -267,6 +267,7 @@ public class EntityTypes<T extends Entity> {
@@ -260,6 +260,7 @@ public class EntityTypes<T extends Entity> {
return this.be;
}
@@ -69,7 +69,7 @@ index d92fbea4c7..f9bc2ab66e 100644
return this.ba;
}
diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java
index 4c774e31dc..ebf0298631 100644
index 4c774e31d..ebf029863 100644
--- a/src/main/java/net/minecraft/server/PlayerChunkMap.java
+++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java
@@ -137,6 +137,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
@@ -92,7 +92,7 @@ index 4c774e31dc..ebf0298631 100644
int i = b(chunkcoordintpair, entityplayer, true);
diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java
index 78bed1ca7e..0524bb2a86 100644
index 62fc61df2..48375e465 100644
--- a/src/main/java/net/minecraft/server/SpawnerCreature.java
+++ b/src/main/java/net/minecraft/server/SpawnerCreature.java
@@ -20,16 +20,15 @@ public final class SpawnerCreature {
@@ -115,7 +115,7 @@ index 78bed1ca7e..0524bb2a86 100644
if (k >= 1) {
IBlockData iblockdata = world.getTypeIfLoadedAndInBounds(blockposition1); // Paper - don't load chunks for mob spawn
@@ -84,15 +83,15 @@ public final class SpawnerCreature {
@@ -81,11 +80,11 @@ public final class SpawnerCreature {
// Purpur start
if (entitytypes == EntityTypes.GIANT) {
if (!net.pl3x.purpur.PurpurConfig.giantsNaturallySpawn) {
@@ -127,14 +127,9 @@ index 78bed1ca7e..0524bb2a86 100644
- return amountSpawned;
+ return mobsSpawned;
}
} else if (entitytypes == EntityTypes.PHANTOM) {
if (!net.pl3x.purpur.PurpurConfig.spawnPhantomsInTheEnd) {
- return amountSpawned;
+ return mobsSpawned;
}
blockposition_mutableblockposition.y = 70 + world.random.nextInt(20);
}
@@ -115,7 +114,7 @@ public final class SpawnerCreature {
// Purpur end
@@ -107,7 +106,7 @@ public final class SpawnerCreature {
);
if (!event.callEvent()) {
if (event.shouldAbortSpawn()) {
@@ -143,7 +138,7 @@ index 78bed1ca7e..0524bb2a86 100644
}
++i2;
continue;
@@ -134,7 +133,7 @@ public final class SpawnerCreature {
@@ -126,7 +125,7 @@ public final class SpawnerCreature {
} catch (Exception exception) {
SpawnerCreature.LOGGER.warn("Failed to create mob", exception);
ServerInternalException.reportInternalException(exception); // Paper
@@ -152,7 +147,7 @@ index 78bed1ca7e..0524bb2a86 100644
}
entityinsentient.setPositionRotation((double) f, (double) k, (double) f1, world.random.nextFloat() * 360.0F, 0.0F);
@@ -145,15 +144,15 @@ public final class SpawnerCreature {
@@ -137,15 +136,15 @@ public final class SpawnerCreature {
++i;
++i2;
// Paper start - stop when limit is reached
@@ -172,7 +167,7 @@ index 78bed1ca7e..0524bb2a86 100644
}
if (entityinsentient.c(i2)) {
@@ -179,7 +178,7 @@ public final class SpawnerCreature {
@@ -171,7 +170,7 @@ public final class SpawnerCreature {
}
}
@@ -182,7 +177,7 @@ index 78bed1ca7e..0524bb2a86 100644
@Nullable
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index ba4f7999f9..38768a5002 100644
index 787dc3e88..99b226505 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -70,6 +70,7 @@ public class WorldServer extends World {
@@ -193,7 +188,7 @@ index ba4f7999f9..38768a5002 100644
// CraftBukkit start
private int tickPosition;
@@ -966,6 +967,7 @@ public class WorldServer extends World {
@@ -964,6 +965,7 @@ public class WorldServer extends World {
}
public Object2IntMap<EnumCreatureType> l() {
@@ -201,7 +196,7 @@ index ba4f7999f9..38768a5002 100644
Object2IntMap<EnumCreatureType> object2intmap = new Object2IntOpenHashMap();
ObjectIterator objectiterator = this.entitiesById.values().iterator();
@@ -990,14 +992,48 @@ public class WorldServer extends World {
@@ -988,14 +990,48 @@ public class WorldServer extends World {
entity.spawnReason == CreatureSpawnEvent.SpawnReason.CHUNK_GEN)) {
continue;
}