mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
150 patches...
This commit is contained in:
@@ -5,10 +5,10 @@ Subject: [PATCH] Add adjustable breeding cooldown to config
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Animal.java b/src/main/java/net/minecraft/world/entity/animal/Animal.java
|
||||
index 081d1e38b7b1f286e138b0981aaa760e58761215..d94928a78d166dd3d836261b4f99fb4f533019e7 100644
|
||||
index 5193cf1d3c922d750a11e492b7636215e23ad0d6..b1f0fda942559b6d12c12a77088da6ce4a233963 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Animal.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Animal.java
|
||||
@@ -151,7 +151,7 @@ public abstract class Animal extends AgeableMob {
|
||||
@@ -146,7 +146,7 @@ public abstract class Animal extends AgeableMob {
|
||||
if (this.isFood(itemstack)) {
|
||||
int i = this.getAge();
|
||||
|
||||
@@ -17,7 +17,7 @@ index 081d1e38b7b1f286e138b0981aaa760e58761215..d94928a78d166dd3d836261b4f99fb4f
|
||||
final ItemStack breedCopy = itemstack.copy(); // Paper - Fix EntityBreedEvent copying
|
||||
this.usePlayerItem(player, hand, itemstack);
|
||||
this.setInLove(player, breedCopy); // Paper - Fix EntityBreedEvent copying
|
||||
@@ -242,12 +242,20 @@ public abstract class Animal extends AgeableMob {
|
||||
@@ -234,12 +234,20 @@ public abstract class Animal extends AgeableMob {
|
||||
AgeableMob entityageable = this.getBreedOffspring(world, other);
|
||||
|
||||
if (entityageable != null) {
|
||||
@@ -42,10 +42,10 @@ index 081d1e38b7b1f286e138b0981aaa760e58761215..d94928a78d166dd3d836261b4f99fb4f
|
||||
EntityBreedEvent entityBreedEvent = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityBreedEvent(entityageable, this, other, breeder, this.breedItem, experience);
|
||||
if (entityBreedEvent.isCancelled()) {
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index 1e55c024a8dd7f1a5f324937bbd3f13b3ac8f076..d35e2338fb423f2f8306a1c33d808a0456c3af2a 100644
|
||||
index 2e44e9ea9558ebc1456d9bbf53561988e33ce845..edd9762e2475aa8828930ada59eb331a8e8d3970 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -191,6 +191,49 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -188,6 +188,49 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
}
|
||||
// Paper end - fix and optimise world upgrading
|
||||
|
||||
@@ -95,7 +95,7 @@ index 1e55c024a8dd7f1a5f324937bbd3f13b3ac8f076..d35e2338fb423f2f8306a1c33d808a04
|
||||
public CraftWorld getWorld() {
|
||||
return this.world;
|
||||
}
|
||||
@@ -223,6 +266,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -218,6 +261,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot
|
||||
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config
|
||||
this.purpurConfig = new org.purpurmc.purpur.PurpurWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), env); // Purpur
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Make entity breeding times configurable
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java b/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java
|
||||
index 0cc411dd39d981187c9e9a3c5eb8043b19a09b98..f7032f4ea55f5aca293c2640686238b7af0f9c80 100644
|
||||
index 0a608418f87b71d5d71706712e1f82da0d7e4d34..03e7ca83e4c28dfaa5b52bcb100bd542db105970 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java
|
||||
@@ -127,8 +127,10 @@ public class VillagerMakeLove extends Behavior<Villager> {
|
||||
@@ -125,8 +125,10 @@ public class VillagerMakeLove extends Behavior<Villager> {
|
||||
return Optional.empty();
|
||||
}
|
||||
// Move age setting down
|
||||
@@ -22,7 +22,7 @@ index 0cc411dd39d981187c9e9a3c5eb8043b19a09b98..f7032f4ea55f5aca293c2640686238b7
|
||||
// CraftBukkit end
|
||||
world.broadcastEntityEvent(entityvillager2, (byte) 12);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Animal.java b/src/main/java/net/minecraft/world/entity/animal/Animal.java
|
||||
index d94928a78d166dd3d836261b4f99fb4f533019e7..a64ab2058d4e3439bf6ee418f3192b83c346eb85 100644
|
||||
index b1f0fda942559b6d12c12a77088da6ce4a233963..7f90a0d8f65c96844df06b7c4fa3da28a6f51dd1 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Animal.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Animal.java
|
||||
@@ -42,6 +42,7 @@ public abstract class Animal extends AgeableMob {
|
||||
@@ -33,7 +33,7 @@ index d94928a78d166dd3d836261b4f99fb4f533019e7..a64ab2058d4e3439bf6ee418f3192b83
|
||||
|
||||
protected Animal(EntityType<? extends Animal> type, Level world) {
|
||||
super(type, world);
|
||||
@@ -283,8 +284,10 @@ public abstract class Animal extends AgeableMob {
|
||||
@@ -275,8 +276,10 @@ public abstract class Animal extends AgeableMob {
|
||||
entityplayer.awardStat(Stats.ANIMALS_BRED);
|
||||
CriteriaTriggers.BRED_ANIMALS.trigger(entityplayer, this, entityanimal, entityageable);
|
||||
} // Paper
|
||||
@@ -47,10 +47,10 @@ index d94928a78d166dd3d836261b4f99fb4f533019e7..a64ab2058d4e3439bf6ee418f3192b83
|
||||
entityanimal.resetLove();
|
||||
worldserver.broadcastEntityEvent(this, (byte) 18);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java
|
||||
index c1f71bf53dac227e6b8c6dbd88473fe79b6a2c64..2b69a3e860f95d4294dda8d05126f431eb7dd5b6 100644
|
||||
index ae4b53f4cdd78368deb7d510be4936ffefce4d9c..cbcfe8177362d9b8af97f21e716a4dce9e227465 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Bee.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java
|
||||
@@ -483,6 +483,11 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
|
||||
@@ -472,6 +472,11 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.beeMaxHealth);
|
||||
}
|
||||
|
||||
@@ -63,26 +63,26 @@ index c1f71bf53dac227e6b8c6dbd88473fe79b6a2c64..2b69a3e860f95d4294dda8d05126f431
|
||||
public int getRemainingPersistentAngerTime() {
|
||||
return (Integer) this.entityData.get(Bee.DATA_REMAINING_ANGER_TIME);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main/java/net/minecraft/world/entity/animal/Cat.java
|
||||
index 83e715c9604efc9586171fd32c7cd2b339bc2349..cc665002c9aeaf9e5a0dbe83239757a544d0b976 100644
|
||||
index 7930e9735abf8357df737798e80b08295c2e06ec..b23d6683bab3d257febb57a6c9c8be4db926af7f 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Cat.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java
|
||||
@@ -128,6 +128,11 @@ public class Cat extends TamableAnimal implements VariantHolder<CatVariant> {
|
||||
@@ -134,6 +134,11 @@ public class Cat extends TamableAnimal implements VariantHolder<Holder<CatVarian
|
||||
public void initAttributes() {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.catMaxHealth);
|
||||
}
|
||||
|
||||
+
|
||||
+ @Override
|
||||
+ public int getPurpurBreedTime() {
|
||||
+ return this.level().purpurConfig.catBreedingTicks;
|
||||
+ }
|
||||
+
|
||||
public ResourceLocation getResourceLocation() {
|
||||
return this.getVariant().texture();
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
public ResourceLocation getTextureId() {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Chicken.java b/src/main/java/net/minecraft/world/entity/animal/Chicken.java
|
||||
index bc3094493d7d25eaf50da8fdd74eacae25692b09..b142e5c489e9fe65b7258f541ef121b2cd020886 100644
|
||||
index 14210dac8a4fa8caaf69ec830f83d15525bb1bea..a440e9cc8973d6116652a0871251c421a633ba6d 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Chicken.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Chicken.java
|
||||
@@ -80,6 +80,11 @@ public class Chicken extends Animal {
|
||||
@@ -79,6 +79,11 @@ public class Chicken extends Animal {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -95,10 +95,10 @@ index bc3094493d7d25eaf50da8fdd74eacae25692b09..b142e5c489e9fe65b7258f541ef121b2
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new FloatGoal(this));
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Cow.java b/src/main/java/net/minecraft/world/entity/animal/Cow.java
|
||||
index 9a1e1387932a92fdf86a144b2d94b4df50feef90..3fd310fe80b0f725746e20e8be2b3b7710467c28 100644
|
||||
index bda0d933ccbee613aa7fb31534351a0d2dbab0a7..64866ca220f4c0b6350e92473cd013658a7de974 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Cow.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Cow.java
|
||||
@@ -69,6 +69,11 @@ public class Cow extends Animal {
|
||||
@@ -68,6 +68,11 @@ public class Cow extends Animal {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.cowMaxHealth);
|
||||
}
|
||||
|
||||
@@ -111,10 +111,10 @@ index 9a1e1387932a92fdf86a144b2d94b4df50feef90..3fd310fe80b0f725746e20e8be2b3b77
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new FloatGoal(this));
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java
|
||||
index a910e897cbd11fa17469642de43225eb512c1c51..4f1ae50564a7e646172b3b923d15a002ee736601 100644
|
||||
index d2be8c1c23f291e98b9a31a63ba5fa7d44fc7402..0140dc8a58903bd802ea8ffb029392215e95cdf4 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Fox.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java
|
||||
@@ -192,6 +192,11 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
|
||||
@@ -189,6 +189,11 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.foxMaxHealth);
|
||||
}
|
||||
|
||||
@@ -124,9 +124,9 @@ index a910e897cbd11fa17469642de43225eb512c1c51..4f1ae50564a7e646172b3b923d15a002
|
||||
+ }
|
||||
+
|
||||
@Override
|
||||
protected void defineSynchedData() {
|
||||
super.defineSynchedData();
|
||||
@@ -1007,8 +1012,10 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
@@ -991,8 +996,10 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
|
||||
CriteriaTriggers.BRED_ANIMALS.trigger(entityplayer2, this.animal, this.partner, entityfox);
|
||||
}
|
||||
|
||||
@@ -140,7 +140,7 @@ index a910e897cbd11fa17469642de43225eb512c1c51..4f1ae50564a7e646172b3b923d15a002
|
||||
this.partner.resetLove();
|
||||
worldserver.addFreshEntityWithPassengers(entityfox, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.BREEDING); // CraftBukkit - added SpawnReason
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
|
||||
index 4c3a4a5e79412a570b0dc1fdeaf540b83eb84b82..b699f88ce9480ef4da5bfb97004a9c5f62d58894 100644
|
||||
index 41b52f128fbc174939a7f2d1cd937ab19432de25..22a2328fe5159c8fed635a62334a3f1028c346a5 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
|
||||
@@ -86,6 +86,11 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder<Mushroo
|
||||
@@ -156,10 +156,10 @@ index 4c3a4a5e79412a570b0dc1fdeaf540b83eb84b82..b699f88ce9480ef4da5bfb97004a9c5f
|
||||
public float getWalkTargetValue(BlockPos pos, LevelReader world) {
|
||||
return world.getBlockState(pos.below()).is(Blocks.MYCELIUM) ? 10.0F : world.getPathfindingCostFromLightLevels(pos);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Ocelot.java b/src/main/java/net/minecraft/world/entity/animal/Ocelot.java
|
||||
index 14daac1a87e32e0ff0a610aef256e20cbfe50001..3fe751839e4a1bc266b0d9508e1e3384e8f7f41e 100644
|
||||
index 31f3982359a00f55a7fc053becc4043dcf423c50..fc74c21d2c506df2134fc4ce61917af65fa89466 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Ocelot.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Ocelot.java
|
||||
@@ -92,6 +92,11 @@ public class Ocelot extends Animal {
|
||||
@@ -88,6 +88,11 @@ public class Ocelot extends Animal {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.ocelotMaxHealth);
|
||||
}
|
||||
|
||||
@@ -172,10 +172,10 @@ index 14daac1a87e32e0ff0a610aef256e20cbfe50001..3fe751839e4a1bc266b0d9508e1e3384
|
||||
return (Boolean) this.entityData.get(Ocelot.DATA_TRUSTING);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java
|
||||
index 641e0ba16afe6720c5a5ff4e8e4882d4e9bdb46d..2e90708da8984c18d2325bc8b5c207bd075bec52 100644
|
||||
index d2410da0b453e0128ff8b00956cae89cabff1d5d..e90fc016fc7e0e9aac2c2d0cf081748100f225f3 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Panda.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java
|
||||
@@ -147,6 +147,11 @@ public class Panda extends Animal {
|
||||
@@ -152,6 +152,11 @@ public class Panda extends Animal {
|
||||
setAttributes();
|
||||
}
|
||||
|
||||
@@ -188,10 +188,10 @@ index 641e0ba16afe6720c5a5ff4e8e4882d4e9bdb46d..2e90708da8984c18d2325bc8b5c207bd
|
||||
public boolean canTakeItem(ItemStack stack) {
|
||||
EquipmentSlot enumitemslot = Mob.getEquipmentSlotForItem(stack);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Parrot.java b/src/main/java/net/minecraft/world/entity/animal/Parrot.java
|
||||
index 9334fb348e559ee27ba38bbd51c30876206c2af4..3bb216b678eee290a9ec636fe4d8af9db687405a 100644
|
||||
index 04507e05b499e536faa3c55179bb91913f7cda81..22b8701accc76d806819433a8511172e13a9ed9e 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Parrot.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Parrot.java
|
||||
@@ -198,6 +198,11 @@ public class Parrot extends ShoulderRidingEntity implements VariantHolder<Parrot
|
||||
@@ -191,6 +191,11 @@ public class Parrot extends ShoulderRidingEntity implements VariantHolder<Parrot
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.parrotMaxHealth);
|
||||
}
|
||||
|
||||
@@ -202,12 +202,12 @@ index 9334fb348e559ee27ba38bbd51c30876206c2af4..3bb216b678eee290a9ec636fe4d8af9d
|
||||
+
|
||||
@Nullable
|
||||
@Override
|
||||
public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData entityData, @Nullable CompoundTag entityNbt) {
|
||||
public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData entityData) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Pig.java b/src/main/java/net/minecraft/world/entity/animal/Pig.java
|
||||
index 77147698154dfa6221a979ba170671d60da048ff..d858d4c94fb17d14367672813b506aea9e2e4ee1 100644
|
||||
index 4f84406304114abbaff9f96a5df6a48616983fa9..a9cd2b75eeb192d7343bc06a1c3fa03748178f5f 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Pig.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Pig.java
|
||||
@@ -90,6 +90,11 @@ public class Pig extends Animal implements ItemSteerable, Saddleable {
|
||||
@@ -86,6 +86,11 @@ public class Pig extends Animal implements ItemSteerable, Saddleable {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.pigMaxHealth);
|
||||
}
|
||||
|
||||
@@ -220,7 +220,7 @@ index 77147698154dfa6221a979ba170671d60da048ff..d858d4c94fb17d14367672813b506aea
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new FloatGoal(this));
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/PolarBear.java b/src/main/java/net/minecraft/world/entity/animal/PolarBear.java
|
||||
index aef0268b187ab1975829370f733cf49cf3ed180a..95c85ddd8008f2d87000f1580287533656a8f0ca 100644
|
||||
index 067bb175c457d6de089f18826dfce6c3661dad67..7288b9f1a46d6c1556e2653b990d6ce4beaf5949 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/PolarBear.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/PolarBear.java
|
||||
@@ -119,6 +119,11 @@ public class PolarBear extends Animal implements NeutralMob {
|
||||
@@ -236,10 +236,10 @@ index aef0268b187ab1975829370f733cf49cf3ed180a..95c85ddd8008f2d87000f15802875336
|
||||
@Override
|
||||
public AgeableMob getBreedOffspring(ServerLevel world, AgeableMob entity) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
|
||||
index 106600ad9712d9a4fdf6770e81b40606b2f9b9b2..c25776ef9805f3f4e31ca5b027e6577526e48819 100644
|
||||
index 4abcde662ed78b16632ee575f695ee4329f11b2f..b5297b1d7223af622636a7defdb98b5bc6e6a3c9 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
|
||||
@@ -143,6 +143,11 @@ public class Rabbit extends Animal implements VariantHolder<Rabbit.Variant> {
|
||||
@@ -142,6 +142,11 @@ public class Rabbit extends Animal implements VariantHolder<Rabbit.Variant> {
|
||||
public void initAttributes() {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.rabbitMaxHealth);
|
||||
}
|
||||
@@ -252,10 +252,10 @@ index 106600ad9712d9a4fdf6770e81b40606b2f9b9b2..c25776ef9805f3f4e31ca5b027e65775
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Sheep.java b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
|
||||
index 1d69558cccc6add5f02f1ff070c985bd5ec406c0..df7deec204ebf99afdbfe49f9a113857dcd413c6 100644
|
||||
index b68886cc72d3055e7745fe4a955192bbad90dc13..c3cc949291d11ae707fa5175d666df2ee81cdcce 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
|
||||
@@ -141,6 +141,11 @@ public class Sheep extends Animal implements Shearable {
|
||||
@@ -139,6 +139,11 @@ public class Sheep extends Animal implements Shearable {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.sheepMaxHealth);
|
||||
}
|
||||
|
||||
@@ -268,10 +268,10 @@ index 1d69558cccc6add5f02f1ff070c985bd5ec406c0..df7deec204ebf99afdbfe49f9a113857
|
||||
protected void registerGoals() {
|
||||
this.eatBlockGoal = new EatBlockGoal(this);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
|
||||
index 31ed37796a4c88ecf514f298631f37210daf929a..ccb1ed3f9c3a15489a715e684c0f15d2e67b556f 100644
|
||||
index b8dcf3d632c79585ec7e9f50fa040fa9fac5d7c5..a577ec78b2f5bca0166277c499da4fa7988d5395 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
|
||||
@@ -108,6 +108,11 @@ public class Turtle extends Animal {
|
||||
@@ -109,6 +109,11 @@ public class Turtle extends Animal {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.turtleMaxHealth);
|
||||
}
|
||||
|
||||
@@ -284,10 +284,10 @@ index 31ed37796a4c88ecf514f298631f37210daf929a..ccb1ed3f9c3a15489a715e684c0f15d2
|
||||
this.entityData.set(Turtle.HOME_POS, pos.immutable()); // Paper - called with mutablepos...
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
index b5c1efc1a67cdf163420b55e49baef9d78d9518f..ac184dce0f81ee0437111755c08e15c84b0dadff 100644
|
||||
index 8aaac4e86ec6d9c40999f6198cda7d367ece54e3..4212c3921a4059c539ca37f9609ef50538bc1fae 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
@@ -132,6 +132,11 @@ public class Wolf extends TamableAnimal implements NeutralMob {
|
||||
@@ -151,6 +151,11 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.wolfMaxHealth);
|
||||
}
|
||||
|
||||
@@ -300,10 +300,10 @@ index b5c1efc1a67cdf163420b55e49baef9d78d9518f..ac184dce0f81ee0437111755c08e15c8
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(1, new FloatGoal(this));
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
|
||||
index 48b0df2acccd0d406ba05aaeb6dfbfde57cc1366..8bad919c44f7c4c4c524ea9ad5c8e38ab891bd08 100644
|
||||
index 414ff28670c3d36dc78e3df4d39b6d4eb3ec1e77..97ba327398d84db09c81cee860b40642b428ea48 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
|
||||
@@ -120,6 +120,11 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
|
||||
@@ -118,6 +118,11 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.axolotlMaxHealth);
|
||||
}
|
||||
|
||||
@@ -316,10 +316,10 @@ index 48b0df2acccd0d406ba05aaeb6dfbfde57cc1366..8bad919c44f7c4c4c524ea9ad5c8e38a
|
||||
public Map<String, Vector3f> getModelRotationValues() {
|
||||
return this.modelRotationValues;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
|
||||
index 74ca2442008b0dea9f9762bbec8d6de1390f2582..baca84088350c82569fb7969136c65bbc4c52f5b 100644
|
||||
index 07a5599a9370ba167e985006d74caa3c80288e28..ed67fcd2b67bfe581863cc6748692c3348f6c883 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
|
||||
@@ -93,6 +93,10 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl
|
||||
@@ -89,6 +89,10 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl
|
||||
public boolean dismountsUnderwater() {
|
||||
return level().purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level().purpurConfig.camelRidableInWater;
|
||||
}
|
||||
@@ -331,10 +331,10 @@ index 74ca2442008b0dea9f9762bbec8d6de1390f2582..baca84088350c82569fb7969136c65bb
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
|
||||
index 709a5b786b56b92e00e25fbc9cf7ac07f093c5a9..907cdc32c30291f5668c806b874da0fbe0754738 100644
|
||||
index b6a4b4e66ca67e4dcb4b14a13ab6586a94e1b020..b0f8115b328eda1e3571051870b5310c5a7e115a 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
|
||||
@@ -163,6 +163,10 @@ public class Frog extends Animal implements VariantHolder<FrogVariant> {
|
||||
@@ -162,6 +162,10 @@ public class Frog extends Animal implements VariantHolder<Holder<FrogVariant>> {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -346,10 +346,10 @@ index 709a5b786b56b92e00e25fbc9cf7ac07f093c5a9..907cdc32c30291f5668c806b874da0fb
|
||||
protected Brain.Provider<Frog> brainProvider() {
|
||||
return Brain.provider(MEMORY_TYPES, SENSOR_TYPES);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
|
||||
index 961f808caa60aba70075572161bcb91cd7201008..0282498c7375a73b6982efb02f3cf3215f4211b0 100644
|
||||
index 9cd8220a1e5e43c141ad27df4969e66ef3746ecd..84c04603d50e190430e4e6cf2a7b613537a0c341 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
|
||||
@@ -109,6 +109,11 @@ public class Goat extends Animal {
|
||||
@@ -108,6 +108,11 @@ public class Goat extends Animal {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -362,7 +362,7 @@ index 961f808caa60aba70075572161bcb91cd7201008..0282498c7375a73b6982efb02f3cf321
|
||||
protected Brain.Provider<Goat> brainProvider() {
|
||||
return Brain.provider(Goat.MEMORY_TYPES, Goat.SENSOR_TYPES);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java b/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java
|
||||
index f623586530e9e7783653b95c8c30d07d5eea896f..5b0b7c6bcd01d86552f1967489c5538780b69525 100644
|
||||
index b47a72ffb8b947cea5d4bc6ee37b824c4161be31..2990d50fd5209b272e0cfbd5dd633124048e8129 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java
|
||||
@@ -37,6 +37,11 @@ public class Donkey extends AbstractChestedHorse {
|
||||
@@ -378,10 +378,10 @@ index f623586530e9e7783653b95c8c30d07d5eea896f..5b0b7c6bcd01d86552f1967489c55387
|
||||
protected SoundEvent getAmbientSound() {
|
||||
return SoundEvents.DONKEY_AMBIENT;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java b/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java
|
||||
index 2971b868210ffb3390d19c7f8079fcc60f7d00b0..02748a7fdf41529fb86e916ae421a1317e1c3c7f 100644
|
||||
index 9ad0d3972d1970b11687da174a83e3a0a4180c0e..16d4278d49dad84f72c968ca36914e93d46dc5f6 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java
|
||||
@@ -62,6 +62,11 @@ public class Horse extends AbstractHorse implements VariantHolder<Variant> {
|
||||
@@ -66,6 +66,11 @@ public class Horse extends AbstractHorse implements VariantHolder<Variant> {
|
||||
return generateSpeed(this.level().purpurConfig.horseMovementSpeedMin, this.level().purpurConfig.horseMovementSpeedMax);
|
||||
}
|
||||
|
||||
@@ -394,7 +394,7 @@ index 2971b868210ffb3390d19c7f8079fcc60f7d00b0..02748a7fdf41529fb86e916ae421a131
|
||||
protected void randomizeAttributes(RandomSource random) {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue((double)generateMaxHealth(random::nextInt));
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
|
||||
index b9b66f22ef39cb38bfb4dcbf4e73a0a7da596660..e11fc274f893d501235422839301a5128268199d 100644
|
||||
index 05614fb50a5509331ac15bb819e827365a4cefcf..81d614cf14512464b376575fd2d7e7fbf93d9e03 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
|
||||
@@ -140,6 +140,11 @@ public class Llama extends AbstractChestedHorse implements VariantHolder<Llama.V
|
||||
@@ -410,7 +410,7 @@ index b9b66f22ef39cb38bfb4dcbf4e73a0a7da596660..e11fc274f893d501235422839301a512
|
||||
return false;
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Mule.java b/src/main/java/net/minecraft/world/entity/animal/horse/Mule.java
|
||||
index abbeb305b2d09e9c4c02ade603adac5ceb34bdd0..1de48560ac5a1db8845c98c812b2e9f9eb972123 100644
|
||||
index 68fe99ea6d683dd18171d35764b4cb319433f6e0..8c52cbd47b90da51f3d5b84b8df4113fecc598df 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Mule.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Mule.java
|
||||
@@ -36,6 +36,11 @@ public class Mule extends AbstractChestedHorse {
|
||||
@@ -426,7 +426,7 @@ index abbeb305b2d09e9c4c02ade603adac5ceb34bdd0..1de48560ac5a1db8845c98c812b2e9f9
|
||||
protected SoundEvent getAmbientSound() {
|
||||
return SoundEvents.MULE_AMBIENT;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
|
||||
index d65d3c1275623a199d90497152519e45317a110f..250a51017cfbb42730ed736a112b269a258c19af 100644
|
||||
index 6180f750ed159e35d20bbaefc57bdd7293c657ec..5686bb0b537650e7d89292cef4e7e82bc7383748 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
|
||||
@@ -64,6 +64,11 @@ public class SkeletonHorse extends AbstractHorse {
|
||||
@@ -442,7 +442,7 @@ index d65d3c1275623a199d90497152519e45317a110f..250a51017cfbb42730ed736a112b269a
|
||||
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0D).add(Attributes.MOVEMENT_SPEED, 0.20000000298023224D);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java b/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java
|
||||
index 85e32d35cdfb7dd11b3c28146b9b71eae2b5c685..0a6cf9f0f16882c8042a333852699129402f75f2 100644
|
||||
index af29ba1512bfda03718fb01ecff8d86b4e927611..d22f429f3de9c68a189087f23a483a561454cc54 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java
|
||||
@@ -67,6 +67,11 @@ public class TraderLlama extends Llama {
|
||||
@@ -458,10 +458,10 @@ index 85e32d35cdfb7dd11b3c28146b9b71eae2b5c685..0a6cf9f0f16882c8042a333852699129
|
||||
public boolean isTraderLlama() {
|
||||
return true;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java
|
||||
index 52eb412401d6843778ab8c4530e8bb3123a83a0b..625fc14d6ea6049968c99931c412b36cbec92be1 100644
|
||||
index d2b3859f9c69e6d73fa859db858d38dd41fa35cd..fbad3b11223ee5dac4af15584e5dfd808a149545 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java
|
||||
@@ -53,6 +53,11 @@ public class ZombieHorse extends AbstractHorse {
|
||||
@@ -60,6 +60,11 @@ public class ZombieHorse extends AbstractHorse {
|
||||
return generateSpeed(this.level().purpurConfig.zombieHorseMovementSpeedMin, this.level().purpurConfig.zombieHorseMovementSpeedMax);
|
||||
}
|
||||
|
||||
@@ -474,26 +474,26 @@ index 52eb412401d6843778ab8c4530e8bb3123a83a0b..625fc14d6ea6049968c99931c412b36c
|
||||
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0).add(Attributes.MOVEMENT_SPEED, 0.2F);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
|
||||
index 074835d3e315eb78d318e81c5fd04e5e786e9127..4d1071546f523c63b9c981e90a09393e9e4400fa 100644
|
||||
index d63913cca12a008ceb4bffc97ba08b8d800102c3..0cc5b9e44dd6f1e0afdbb62ef41aa749c0c79b18 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
|
||||
@@ -113,6 +113,11 @@ public class Sniffer extends Animal {
|
||||
@@ -114,6 +114,11 @@ public class Sniffer extends Animal {
|
||||
public void initAttributes() {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.snifferMaxHealth);
|
||||
}
|
||||
|
||||
+
|
||||
+ @Override
|
||||
+ public int getPurpurBreedTime() {
|
||||
+ return this.level().purpurConfig.snifferBreedingTicks;
|
||||
+ }
|
||||
+
|
||||
// CraftBukkit start - SPIGOT-7295: moved from constructor to appropriate location
|
||||
// Purpur end
|
||||
|
||||
@Override
|
||||
protected void defineSynchedData() {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Strider.java b/src/main/java/net/minecraft/world/entity/monster/Strider.java
|
||||
index 9b853fd05a3a851cb08d7f849b51f2b220780982..10136a5062d154456c962e7d1a99c2dedbd568ed 100644
|
||||
index 4abbeaf9f88511f37bd14c17dbd9a107648a5534..5f1166ccd64509a70323e2713f3ab58674d83105 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Strider.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Strider.java
|
||||
@@ -122,6 +122,11 @@ public class Strider extends Animal implements ItemSteerable, Saddleable {
|
||||
@@ -119,6 +119,11 @@ public class Strider extends Animal implements ItemSteerable, Saddleable {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.striderMaxHealth);
|
||||
}
|
||||
|
||||
@@ -506,10 +506,10 @@ index 9b853fd05a3a851cb08d7f849b51f2b220780982..10136a5062d154456c962e7d1a99c2de
|
||||
BlockPos.MutableBlockPos blockposition_mutableblockposition = pos.mutable();
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
||||
index a45df0aeae94f408a24f55bc15c71627c3c95bc1..89b108a248509a72ddd81fdaf70053931f487368 100644
|
||||
index 3bfc073fb142e3446044a42c33be6c30587cc3c4..a770ae0e13c4dad296dfb8f33259408ee1531c70 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
||||
@@ -114,6 +114,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
|
||||
@@ -112,6 +112,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.hoglinMaxHealth);
|
||||
}
|
||||
|
||||
@@ -6,31 +6,30 @@ Subject: [PATCH] Apply display names from item forms of entities to entities
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
|
||||
index 8cb248a185d880bf82ea4746341fe3db5dc89459..aca5e7a2b0eab93c613b03834509366f7119ec03 100644
|
||||
index 5abbc0caf90cafc1a06dfff158c158b1538f827c..8b25bb80a913cd002cdaeadf076d811172f10488 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
|
||||
@@ -607,7 +607,7 @@ public class ArmorStand extends LivingEntity {
|
||||
@@ -613,6 +613,7 @@ public class ArmorStand extends LivingEntity {
|
||||
private org.bukkit.event.entity.EntityDeathEvent brokenByPlayer(DamageSource damageSource) { // Paper
|
||||
ItemStack itemstack = new ItemStack(Items.ARMOR_STAND);
|
||||
|
||||
- if (this.hasCustomName()) {
|
||||
+ if (this.level().purpurConfig.persistentDroppableEntityDisplayNames && this.hasCustomName()) { // Purpur
|
||||
itemstack.setHoverName(this.getCustomName());
|
||||
}
|
||||
|
||||
+ if (this.level().purpurConfig.persistentDroppableEntityDisplayNames)
|
||||
itemstack.set(DataComponents.CUSTOM_NAME, this.getCustomName());
|
||||
this.drops.add(new DefaultDrop(itemstack, stack -> Block.popResource(this.level(), this.blockPosition(), stack))); // CraftBukkit - add to drops // Paper - Restore vanilla drops behavior
|
||||
return this.brokenByAnything(damageSource); // Paper
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java
|
||||
index c34701f95580e4cf45fe086115563127432a28c5..2363d9eaad655389c7b7d67d545ef8025f550431 100644
|
||||
index da0d1c9a1c4ae081bff9ca4230c9a1503885c354..9af8fcf6abb9b768829592bc1b091ebe4599ed2e 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java
|
||||
@@ -268,7 +268,13 @@ public class ItemFrame extends HangingEntity {
|
||||
@@ -262,7 +262,13 @@ public class ItemFrame extends HangingEntity {
|
||||
}
|
||||
|
||||
if (alwaysDrop) {
|
||||
- this.spawnAtLocation(this.getFrameItemStack());
|
||||
+ // Purpur start
|
||||
+ final ItemStack itemFrame = this.getFrameItemStack();
|
||||
+ if (this.level().purpurConfig.persistentDroppableEntityDisplayNames && this.hasCustomName()) {
|
||||
+ itemFrame.setHoverName(this.getCustomName());
|
||||
+ if (!this.level().purpurConfig.persistentDroppableEntityDisplayNames) {
|
||||
+ itemFrame.set(DataComponents.CUSTOM_NAME, null);
|
||||
+ }
|
||||
+ this.spawnAtLocation(itemFrame);
|
||||
+ // Purpur end
|
||||
@@ -38,18 +37,18 @@ index c34701f95580e4cf45fe086115563127432a28c5..2363d9eaad655389c7b7d67d545ef802
|
||||
|
||||
if (!itemstack.isEmpty()) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/decoration/Painting.java b/src/main/java/net/minecraft/world/entity/decoration/Painting.java
|
||||
index 10ee43de05d9f4e0ab980ee5069fe59c0f137403..af07901daaf6a0e5cd7e4b1e07fb491566807932 100644
|
||||
index 40e7112669abb58a0ab6df1846afec3979e95e55..0ac22b77f021b4ab40cabd19132fec5a0cbf4f3e 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/decoration/Painting.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/decoration/Painting.java
|
||||
@@ -155,7 +155,13 @@ public class Painting extends HangingEntity implements VariantHolder<Holder<Pain
|
||||
@@ -151,7 +151,13 @@ public class Painting extends HangingEntity implements VariantHolder<Holder<Pain
|
||||
return;
|
||||
}
|
||||
|
||||
- this.spawnAtLocation(Items.PAINTING);
|
||||
+ // Purpur start
|
||||
+ final ItemStack painting = new ItemStack(Items.PAINTING);
|
||||
+ if (this.level().purpurConfig.persistentDroppableEntityDisplayNames && this.hasCustomName()) {
|
||||
+ painting.setHoverName(this.getCustomName());
|
||||
+ if (!this.level().purpurConfig.persistentDroppableEntityDisplayNames)) {
|
||||
+ painting.set(DataComponents.CUSTOM_NAME, null);
|
||||
+ }
|
||||
+ this.spawnAtLocation(painting);
|
||||
+ // Purpur end
|
||||
@@ -57,18 +56,18 @@ index 10ee43de05d9f4e0ab980ee5069fe59c0f137403..af07901daaf6a0e5cd7e4b1e07fb4915
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/vehicle/Boat.java b/src/main/java/net/minecraft/world/entity/vehicle/Boat.java
|
||||
index 96c6b4c37a556da8a4c6807db121c44c3f1b0729..81e0930acccd014e977b88d22e10346627f0edb0 100644
|
||||
index 0b23e05f936cab7a9867828c2d69417cfde1d2ce..259c3abb877ab38bc28ebdca5672c1a8ecf3b57f 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/vehicle/Boat.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/vehicle/Boat.java
|
||||
@@ -968,7 +968,13 @@ public class Boat extends VehicleEntity implements VariantHolder<Boat.Type> {
|
||||
@@ -963,7 +963,13 @@ public class Boat extends VehicleEntity implements VariantHolder<Boat.Type> {
|
||||
|
||||
@Override
|
||||
public ItemStack getPickResult() {
|
||||
- return new ItemStack(this.getDropItem());
|
||||
+ // Purpur start
|
||||
+ final ItemStack boat = new ItemStack(this.getDropItem());
|
||||
+ if (this.level().purpurConfig.persistentDroppableEntityDisplayNames && this.hasCustomName()) {
|
||||
+ boat.setHoverName(this.getCustomName());
|
||||
+ if (!this.level().purpurConfig.persistentDroppableEntityDisplayNames) {
|
||||
+ boat.set(DataComponents.CUSTOM_NAME, null);
|
||||
+ }
|
||||
+ return boat;
|
||||
+ // Purpur end
|
||||
@@ -76,7 +75,7 @@ index 96c6b4c37a556da8a4c6807db121c44c3f1b0729..81e0930acccd014e977b88d22e103466
|
||||
|
||||
public static enum Type implements StringRepresentable {
|
||||
diff --git a/src/main/java/net/minecraft/world/item/ArmorStandItem.java b/src/main/java/net/minecraft/world/item/ArmorStandItem.java
|
||||
index 7cffc64573008502bdd14ae4906fe51166b12fb3..1feafdbb48cf760cb6ebf95d5be2c32bdb1ad44f 100644
|
||||
index 1634a7d5ff06583408cf2f02f2b5f90931b1e02a..dfe8473a880cbddfc3ac6a9c97f1a500624eeb38 100644
|
||||
--- a/src/main/java/net/minecraft/world/item/ArmorStandItem.java
|
||||
+++ b/src/main/java/net/minecraft/world/item/ArmorStandItem.java
|
||||
@@ -58,6 +58,14 @@ public class ArmorStandItem extends Item {
|
||||
@@ -84,52 +83,43 @@ index 7cffc64573008502bdd14ae4906fe51166b12fb3..1feafdbb48cf760cb6ebf95d5be2c32b
|
||||
}
|
||||
// CraftBukkit end
|
||||
+ // Purpur start
|
||||
+ if (world.purpurConfig.persistentDroppableEntityDisplayNames && itemstack.hasCustomHoverName()) {
|
||||
+ entityarmorstand.setCustomName(itemstack.getHoverName());
|
||||
+ if (world.purpurConfig.armorstandSetNameVisible) {
|
||||
+ entityarmorstand.setCustomNameVisible(true);
|
||||
+ }
|
||||
+ if (!world.purpurConfig.persistentDroppableEntityDisplayNames) {
|
||||
+ entityarmorstand.setCustomName(null);
|
||||
+ }
|
||||
+ if (world.purpurConfig.armorstandSetNameVisible) {
|
||||
+ entityarmorstand.setCustomNameVisible(true);
|
||||
+ }
|
||||
+ // Purpur end
|
||||
worldserver.addFreshEntityWithPassengers(entityarmorstand);
|
||||
world.playSound((Player) null, entityarmorstand.getX(), entityarmorstand.getY(), entityarmorstand.getZ(), SoundEvents.ARMOR_STAND_PLACE, SoundSource.BLOCKS, 0.75F, 0.8F);
|
||||
entityarmorstand.gameEvent(GameEvent.ENTITY_PLACE, context.getPlayer());
|
||||
diff --git a/src/main/java/net/minecraft/world/item/BoatItem.java b/src/main/java/net/minecraft/world/item/BoatItem.java
|
||||
index 67a5a201d0b26ca7b27e6d0c3ffb9f8b6e16bce0..ec3d60b561de45349b705b7f14592be930af4b91 100644
|
||||
index eb74d45ad458b80cf8455297c3bc550186adaea3..ef01856c487e4ab982996e01537618233592ac32 100644
|
||||
--- a/src/main/java/net/minecraft/world/item/BoatItem.java
|
||||
+++ b/src/main/java/net/minecraft/world/item/BoatItem.java
|
||||
@@ -71,6 +71,11 @@ public class BoatItem extends Item {
|
||||
@@ -72,6 +72,11 @@ public class BoatItem extends Item {
|
||||
|
||||
entityboat.setVariant(this.type);
|
||||
entityboat.setYRot(user.getYRot());
|
||||
+ // Purpur start
|
||||
+ if (world.purpurConfig.persistentDroppableEntityDisplayNames && itemstack.hasCustomHoverName()) {
|
||||
+ entityboat.setCustomName(itemstack.getHoverName());
|
||||
+ if (!world.purpurConfig.persistentDroppableEntityDisplayNames) {
|
||||
+ entityboat.setCustomName(null);
|
||||
+ }
|
||||
+ // Purpur end
|
||||
if (!world.noCollision(entityboat, entityboat.getBoundingBox())) {
|
||||
return InteractionResultHolder.fail(itemstack);
|
||||
} else {
|
||||
diff --git a/src/main/java/net/minecraft/world/item/HangingEntityItem.java b/src/main/java/net/minecraft/world/item/HangingEntityItem.java
|
||||
index b2ad6d230de2c29f371178bccde1111c7532ee70..6667926519a0f1c151e53f59cce36e7417dfc1cd 100644
|
||||
index 530167ce8e5bb72a418f8ec61411e38a5892fd72..35dc7546793dba34bf6debad3f214f61a8fb4f4e 100644
|
||||
--- a/src/main/java/net/minecraft/world/item/HangingEntityItem.java
|
||||
+++ b/src/main/java/net/minecraft/world/item/HangingEntityItem.java
|
||||
@@ -48,7 +48,7 @@ public class HangingEntityItem extends Item {
|
||||
return InteractionResult.FAIL;
|
||||
} else {
|
||||
Level world = context.getLevel();
|
||||
- Object object;
|
||||
+ Entity object; // Purpur
|
||||
@@ -73,6 +73,11 @@ public class HangingEntityItem extends Item {
|
||||
|
||||
if (this.type == EntityType.PAINTING) {
|
||||
Optional<Painting> optional = Painting.create(world, blockposition1, enumdirection);
|
||||
@@ -72,6 +72,11 @@ public class HangingEntityItem extends Item {
|
||||
|
||||
if (nbttagcompound != null) {
|
||||
EntityType.updateCustomEntityTag(world, entityhuman, (Entity) object, nbttagcompound);
|
||||
if (!customdata.isEmpty()) {
|
||||
EntityType.updateCustomEntityTag(world, entityhuman, (Entity) object, customdata);
|
||||
+ // Purpur start
|
||||
+ if (world.purpurConfig.persistentDroppableEntityDisplayNames && itemstack.hasCustomHoverName()) {
|
||||
+ object.setCustomName(itemstack.getHoverName());
|
||||
+ if (!world.purpurConfig.persistentDroppableEntityDisplayNames) {
|
||||
+ ((Entity) object).setCustomName(null);
|
||||
+ }
|
||||
+ // Purpur end
|
||||
}
|
||||
@@ -5,19 +5,19 @@ Subject: [PATCH] Set name visible when using a Name Tag on an Armor Stand
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/item/NameTagItem.java b/src/main/java/net/minecraft/world/item/NameTagItem.java
|
||||
index a0b3c2d3b3f86ecd6cb80ff767839d29ca4f4f68..61b4430d6dd73b5406c4879e41ff80a1b6f67f84 100644
|
||||
index 774c982f28b4f127fc3f036c19dfb47fb9ae3264..d49b60e7e643498b49c03593dc0da2f8e4459902 100644
|
||||
--- a/src/main/java/net/minecraft/world/item/NameTagItem.java
|
||||
+++ b/src/main/java/net/minecraft/world/item/NameTagItem.java
|
||||
@@ -20,6 +20,7 @@ public class NameTagItem extends Item {
|
||||
@@ -23,6 +23,7 @@ public class NameTagItem extends Item {
|
||||
if (!event.callEvent()) return InteractionResult.PASS;
|
||||
LivingEntity newEntity = ((org.bukkit.craftbukkit.entity.CraftLivingEntity) event.getEntity()).getHandle();
|
||||
newEntity.setCustomName(event.getName() != null ? io.papermc.paper.adventure.PaperAdventure.asVanilla(event.getName()) : null);
|
||||
+ if (user.level().purpurConfig.armorstandFixNametags && entity instanceof net.minecraft.world.entity.decoration.ArmorStand) entity.setCustomNameVisible(true); // Purpur
|
||||
if (event.isPersistent() && newEntity instanceof Mob) {
|
||||
((Mob) newEntity).setPersistenceRequired();
|
||||
// Paper end - Add PlayerNameEntityEvent
|
||||
if (event.isPersistent() && newEntity instanceof Mob mob) {
|
||||
// Paper end - Add PlayerNameEntityEvent
|
||||
mob.setPersistenceRequired();
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index 2ac5c8b427e2615b7522f745d431e78ff784d90c..a2b22b2b96cc476e7ed7b804ea175833853a9495 100644
|
||||
index 2d9429ef5884f0ee542c2fb197ae263c2e5d6577..57abd6df4548586ad22c77249d99201662352a3a 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -98,9 +98,11 @@ public class PurpurWorldConfig {
|
||||
@@ -8,10 +8,10 @@ This should help to reduce the amount of dirt, gravel, grass, and etc.
|
||||
that Endermen like to randomly place all over the world.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
||||
index 760a26722144da3f547802975484b01c377afe17..c8f1d2de8682761ef8d4d50302c211f32b086783 100644
|
||||
index cb307a9419399e33a895376a584456f084691965..052a0c168268b7e788953063f54c3769023f3c03 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
||||
@@ -501,7 +501,7 @@ public class EnderMan extends Monster implements NeutralMob {
|
||||
@@ -478,7 +478,7 @@ public class EnderMan extends Monster implements NeutralMob {
|
||||
|
||||
@Override
|
||||
public boolean requiresCustomPersistence() {
|
||||
@@ -21,7 +21,7 @@ index 760a26722144da3f547802975484b01c377afe17..c8f1d2de8682761ef8d4d50302c211f3
|
||||
|
||||
private static class EndermanFreezeWhenLookedAt extends Goal {
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index 725c942c6c9b26c9fa0b3aeb65f51a34996f72d3..b2c8ec43768c1a3243bca0998350400d8ea51b89 100644
|
||||
index 57abd6df4548586ad22c77249d99201662352a3a..ed2bc4524167521bdfb1b9c516106b14b4b05e50 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -833,6 +833,7 @@ public class PurpurWorldConfig {
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Add configurable snowball damage
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Snowball.java b/src/main/java/net/minecraft/world/entity/projectile/Snowball.java
|
||||
index 5e82549ea2e80b3968b793b7b4b685c4891e9a91..8d1591c3b29e02794f6f66b742ec6a121920ad71 100644
|
||||
index 2b4d206c0d31ba38d7b2af654bd420e85145d441..f59a2903bfb8ae591a638ea5bb387caaa93ce664 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/projectile/Snowball.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/projectile/Snowball.java
|
||||
@@ -58,7 +58,7 @@ public class Snowball extends ThrowableItemProjectile {
|
||||
@@ -5,18 +5,18 @@ Subject: [PATCH] Changeable Mob Left Handed Chance
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
index 20e8c3c88891f0fe20556b700fab5122682b2bdb..050d6705cfa7ce59b85a3120a0569b3e8f9be6b7 100644
|
||||
index e7251ac940b49564c83b4b603e49c3990fc85db1..34d00acc43d2541307aa90a77a3c5d19a3057a94 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
@@ -1312,7 +1312,7 @@ public abstract class Mob extends LivingEntity implements Targeting {
|
||||
@@ -1438,7 +1438,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
|
||||
RandomSource randomsource = world.getRandom();
|
||||
|
||||
this.getAttribute(Attributes.FOLLOW_RANGE).addPermanentModifier(new AttributeModifier("Random spawn bonus", randomsource.triangle(0.0D, 0.11485000000000001D), AttributeModifier.Operation.MULTIPLY_BASE));
|
||||
- if (randomsource.nextFloat() < 0.05F) {
|
||||
+ if (randomsource.nextFloat() < world.getLevel().purpurConfig.entityLeftHandedChance) { // Purpur
|
||||
this.setLeftHanded(true);
|
||||
} else {
|
||||
this.setLeftHanded(false);
|
||||
this.getAttribute(Attributes.FOLLOW_RANGE).addPermanentModifier(new AttributeModifier("Random spawn bonus", randomsource.triangle(0.0D, 0.11485000000000001D), AttributeModifier.Operation.ADD_MULTIPLIED_BASE));
|
||||
- this.setLeftHanded(randomsource.nextFloat() < 0.05F);
|
||||
+ this.setLeftHanded(randomsource.nextFloat() < world.getLevel().purpurConfig.entityLeftHandedChance); // Purpur
|
||||
return entityData;
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index 1f41804ec120b2e50ef99ef50d41d44a91ba3814..e84e5007a0952a77b991ff6c00549af28aa54230 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Add boat fall damage config
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
index fd48f333747ec79083adea4053e643d93efca714..ea37e30846c496f92ceab7cee0cb19ffd82cfc0a 100644
|
||||
index 03b206289d103a36d19dcf3154f10ad98f976ba2..fe250c154aed8b10e33c6b916cabedb0dda3d5d6 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -1112,7 +1112,16 @@ public class ServerPlayer extends Player {
|
||||
@@ -1189,7 +1189,16 @@ public class ServerPlayer extends Player {
|
||||
if (this.isInvulnerableTo(source)) {
|
||||
return false;
|
||||
} else {
|
||||
@@ -27,7 +27,7 @@ index fd48f333747ec79083adea4053e643d93efca714..ea37e30846c496f92ceab7cee0cb19ff
|
||||
|
||||
if (!flag && this.spawnInvulnerableTime > 0 && !source.is(DamageTypeTags.BYPASSES_INVULNERABILITY)) {
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index d1792d16fe745c22a2408ca7b6446348563e5b63..68fa6b3492d9ad309f305560afe6f767c9c56fe0 100644
|
||||
index e84e5007a0952a77b991ff6c00549af28aa54230..ca268aa514e7581d134083fe61e8a93fa0a00171 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -112,6 +112,7 @@ public class PurpurWorldConfig {
|
||||
@@ -10,10 +10,10 @@ If min-shoot-interval-ticks and max-shoot-interval-ticks are both set to
|
||||
0, snow golems won't shoot any snowballs.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
|
||||
index cf68f12da22cb9b0980c21e90caf4dea62769fa5..6fac5dbbbd9600e82b1dd1496680f551ab44313e 100644
|
||||
index 0060414b1d5afde56372ce121e9d37a1668cd03b..ee4d4a4fe314ee9bce69c96dd65d84ed1ace0543 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
|
||||
@@ -79,7 +79,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
|
||||
@@ -77,7 +77,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
|
||||
@Override
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
|
||||
@@ -23,7 +23,7 @@ index cf68f12da22cb9b0980c21e90caf4dea62769fa5..6fac5dbbbd9600e82b1dd1496680f551
|
||||
this.goalSelector.addGoal(3, new LookAtPlayerGoal(this, Player.class, 6.0F));
|
||||
this.goalSelector.addGoal(4, new RandomLookAroundGoal(this));
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index fee388e9ba11e0555ba6e2809b82b29e6f3be5bf..7bcec0062d777134fdc963ed4e8874730df36711 100644
|
||||
index ca268aa514e7581d134083fe61e8a93fa0a00171..c034b4686a1f5c67daef7ece163b92f54c6813d4 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -1606,6 +1606,10 @@ public class PurpurWorldConfig {
|
||||
@@ -8,17 +8,17 @@ purpur.yml to disable the /give command from dropping items on the
|
||||
floor when a player's inventory is full.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/commands/GiveCommand.java b/src/main/java/net/minecraft/server/commands/GiveCommand.java
|
||||
index 1b459a8ee8a6bc039e742d65796bc76660a1c765..599172b994d75484f7c7e0ce6d3d3d771c1c44d0 100644
|
||||
index 47355158e5e762540a10dc67b23092a0fc53bce3..9f1c8a62bda242781a0966fa2fc01534261423c7 100644
|
||||
--- a/src/main/java/net/minecraft/server/commands/GiveCommand.java
|
||||
+++ b/src/main/java/net/minecraft/server/commands/GiveCommand.java
|
||||
@@ -59,6 +59,7 @@ public class GiveCommand {
|
||||
@@ -92,6 +92,7 @@ public class GiveCommand {
|
||||
boolean flag = entityplayer.getInventory().add(itemstack1);
|
||||
ItemEntity entityitem;
|
||||
|
||||
+ if (org.purpurmc.purpur.PurpurConfig.disableGiveCommandDrops) continue; // Purpur - add config option for toggling give command dropping
|
||||
if (flag && itemstack1.isEmpty()) {
|
||||
itemstack1.setCount(1);
|
||||
entityitem = entityplayer.drop(itemstack1, false, false, false); // CraftBukkit - SPIGOT-2942: Add boolean to call event
|
||||
entityitem = entityplayer.drop(itemstack, false, false, false); // CraftBukkit - SPIGOT-2942: Add boolean to call event
|
||||
if (entityitem != null) {
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||
index 8f98f665ec20c2df23a6f8bd891c502aba9a6ada..65c31389566007a11934eff92162a4c410a25213 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||
@@ -8,10 +8,10 @@ farm Nether Wart. Reimplemented based on a feature of the carpet-extra
|
||||
mod.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java b/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java
|
||||
index d3a2a6dee2d83b3df0ddc521c080f7d72b709461..66a568e6803b91040f3933d4598c52fa518badab 100644
|
||||
index 2ade08d1466660ee1787fa97908002ef56389712..4fa4ec34963730507253182cad1c2bf04090ad50 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java
|
||||
@@ -40,6 +40,7 @@ public class HarvestFarmland extends Behavior<Villager> {
|
||||
@@ -41,6 +41,7 @@ public class HarvestFarmland extends Behavior<Villager> {
|
||||
private long nextOkStartTime;
|
||||
private int timeWorkedSoFar;
|
||||
private final List<BlockPos> validFarmlandAroundVillager = Lists.newArrayList();
|
||||
@@ -19,7 +19,7 @@ index d3a2a6dee2d83b3df0ddc521c080f7d72b709461..66a568e6803b91040f3933d4598c52fa
|
||||
|
||||
public HarvestFarmland() {
|
||||
super(ImmutableMap.of(MemoryModuleType.LOOK_TARGET, MemoryStatus.VALUE_ABSENT, MemoryModuleType.WALK_TARGET, MemoryStatus.VALUE_ABSENT, MemoryModuleType.SECONDARY_JOB_SITE, MemoryStatus.VALUE_PRESENT));
|
||||
@@ -48,9 +49,10 @@ public class HarvestFarmland extends Behavior<Villager> {
|
||||
@@ -49,9 +50,10 @@ public class HarvestFarmland extends Behavior<Villager> {
|
||||
protected boolean checkExtraStartConditions(ServerLevel world, Villager entity) {
|
||||
if (!world.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)) {
|
||||
return false;
|
||||
@@ -31,7 +31,7 @@ index d3a2a6dee2d83b3df0ddc521c080f7d72b709461..66a568e6803b91040f3933d4598c52fa
|
||||
BlockPos.MutableBlockPos blockposition_mutableblockposition = entity.blockPosition().mutable();
|
||||
|
||||
this.validFarmlandAroundVillager.clear();
|
||||
@@ -81,6 +83,7 @@ public class HarvestFarmland extends Behavior<Villager> {
|
||||
@@ -82,6 +84,7 @@ public class HarvestFarmland extends Behavior<Villager> {
|
||||
Block block = iblockdata.getBlock();
|
||||
Block block1 = world.getBlockState(pos.below()).getBlock();
|
||||
|
||||
@@ -39,7 +39,7 @@ index d3a2a6dee2d83b3df0ddc521c080f7d72b709461..66a568e6803b91040f3933d4598c52fa
|
||||
return block instanceof CropBlock && ((CropBlock) block).isMaxAge(iblockdata) || iblockdata.isAir() && block1 instanceof FarmBlock;
|
||||
}
|
||||
|
||||
@@ -106,20 +109,20 @@ public class HarvestFarmland extends Behavior<Villager> {
|
||||
@@ -107,20 +110,20 @@ public class HarvestFarmland extends Behavior<Villager> {
|
||||
Block block = iblockdata.getBlock();
|
||||
Block block1 = world.getBlockState(this.aboveFarmlandPos.below()).getBlock();
|
||||
|
||||
@@ -63,7 +63,7 @@ index d3a2a6dee2d83b3df0ddc521c080f7d72b709461..66a568e6803b91040f3933d4598c52fa
|
||||
Item item = itemstack.getItem();
|
||||
|
||||
if (item instanceof BlockItem) {
|
||||
@@ -135,7 +138,7 @@ public class HarvestFarmland extends Behavior<Villager> {
|
||||
@@ -136,7 +139,7 @@ public class HarvestFarmland extends Behavior<Villager> {
|
||||
}
|
||||
|
||||
if (flag) {
|
||||
@@ -73,10 +73,10 @@ index d3a2a6dee2d83b3df0ddc521c080f7d72b709461..66a568e6803b91040f3933d4598c52fa
|
||||
if (itemstack.isEmpty()) {
|
||||
inventorysubcontainer.setItem(j, ItemStack.EMPTY);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/TradeWithVillager.java b/src/main/java/net/minecraft/world/entity/ai/behavior/TradeWithVillager.java
|
||||
index e215491ebaebfc51445adc01452ce768fff3e2dc..ff32c022fa213142ca4b3ff8e74b6eba8ef52169 100644
|
||||
index 8508ac7de8cda3127b73e11ff4aee62502e65ead..973518f939f5cd1b57589cbbbb01f199e5ebe73c 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/ai/behavior/TradeWithVillager.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/ai/behavior/TradeWithVillager.java
|
||||
@@ -61,6 +61,12 @@ public class TradeWithVillager extends Behavior<Villager> {
|
||||
@@ -59,6 +59,12 @@ public class TradeWithVillager extends Behavior<Villager> {
|
||||
throwHalfStack(entity, ImmutableSet.of(Items.WHEAT), villager);
|
||||
}
|
||||
|
||||
@@ -90,10 +90,10 @@ index e215491ebaebfc51445adc01452ce768fff3e2dc..ff32c022fa213142ca4b3ff8e74b6eba
|
||||
throwHalfStack(entity, this.trades, villager);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java b/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java
|
||||
index d2917f9b215919890f28b513601863ccaced17c7..58338e240079f2de1669e8c2ce839451511feafd 100644
|
||||
index f000a6c1e61198e6dd06ae5f084d12fdf309f50a..3091d985ba9c55d404332576320718840538722e 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java
|
||||
@@ -49,8 +49,13 @@ public class VillagerGoalPackages {
|
||||
@@ -52,8 +52,13 @@ public class VillagerGoalPackages {
|
||||
}
|
||||
|
||||
public static ImmutableList<Pair<Integer, ? extends BehaviorControl<? super Villager>>> getWorkPackage(VillagerProfession profession, float speed) {
|
||||
@@ -136,10 +136,10 @@ index a0e0692d17760f440fe81d52887284c787e562db..ab9bebc07b5228dbc0d3ba4b0f7d1bbe
|
||||
brain.setMemory(MemoryModuleType.SECONDARY_JOB_SITE, list);
|
||||
} else {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||
index 976388612d64cd137b18870119928cbd45dfd2a4..430e660f74ee523d0bb98e21784f32158495de7a 100644
|
||||
index 6de74d992bd8b2845ab98d56201e7eeabd1dfc6b..f7d8f672a680cf2dfebba5677f97895e4a8c209f 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||
@@ -225,7 +225,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -223,7 +223,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
brain.addActivity(Activity.PLAY, VillagerGoalPackages.getPlayPackage(0.5F));
|
||||
} else {
|
||||
brain.setSchedule(Schedule.VILLAGER_DEFAULT);
|
||||
@@ -148,7 +148,7 @@ index 976388612d64cd137b18870119928cbd45dfd2a4..430e660f74ee523d0bb98e21784f3215
|
||||
}
|
||||
|
||||
brain.addActivity(Activity.CORE, VillagerGoalPackages.getCorePackage(villagerprofession, 0.5F));
|
||||
@@ -980,6 +980,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -970,6 +970,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
|
||||
public boolean hasFarmSeeds() {
|
||||
return this.getInventory().hasAnyMatching((itemstack) -> {
|
||||
@@ -13,10 +13,10 @@ to the Piglin being angry, even though the player never hit them.
|
||||
This patch adds a toggle to disable this behavior.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
|
||||
index 764477c39e690d6373e17c77687809418e0de884..b2d77117309e81db60e7e50911247793fa829755 100644
|
||||
index 75c34d9fcc4b33d30b18f1ce4c8749a068744abc..6be751e2d434982a35bbbece4f4fc4631fb3d8e0 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
|
||||
@@ -148,7 +148,7 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
|
||||
@@ -146,7 +146,7 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
|
||||
this.maybeAlertOthers();
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ index 764477c39e690d6373e17c77687809418e0de884..b2d77117309e81db60e7e50911247793
|
||||
this.lastHurtByPlayerTime = this.tickCount;
|
||||
}
|
||||
|
||||
@@ -203,7 +203,7 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
|
||||
@@ -201,7 +201,7 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
|
||||
this.ticksUntilNextAlert = ZombifiedPiglin.ALERT_INTERVAL.sample(this.random);
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ index 764477c39e690d6373e17c77687809418e0de884..b2d77117309e81db60e7e50911247793
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index 743f53357131695b89cb71c0c126f2e53a46c9f1..6f682def96c6783d0ffc9f285fc397de1f6b148f 100644
|
||||
index aebeb25fcb6b9a72ad52d249f8df794c3f5cce11..83d1581201ee97547d6d3bfdf3926e74432d6e37 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -2054,6 +2054,7 @@ public class PurpurWorldConfig {
|
||||
@@ -7,63 +7,27 @@ Configurable chance to spawn a wolf that is rabid.
|
||||
Rabid wolves attack all players, mobs, and animals.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
index 39a923e48750bd960f64aad248c10dd390afc239..6a822abe936aed83da595980e0f698354a205b0b 100644
|
||||
index 4212c3921a4059c539ca37f9609ef50538bc1fae..bdfa848bff4fac6dcf590aefa958e2ce31294bad 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
@@ -10,6 +10,7 @@ import net.minecraft.network.syncher.EntityDataAccessor;
|
||||
import net.minecraft.network.syncher.EntityDataSerializers;
|
||||
import net.minecraft.network.syncher.SynchedEntityData;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
+import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.sounds.SoundEvent;
|
||||
import net.minecraft.sounds.SoundEvents;
|
||||
import net.minecraft.tags.BlockTags;
|
||||
@@ -17,9 +18,12 @@ import net.minecraft.util.Mth;
|
||||
import net.minecraft.util.RandomSource;
|
||||
import net.minecraft.util.TimeUtil;
|
||||
import net.minecraft.util.valueproviders.UniformInt;
|
||||
+import net.minecraft.world.DifficultyInstance;
|
||||
@@ -30,6 +30,8 @@ import net.minecraft.world.DifficultyInstance;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.damagesource.DamageSource;
|
||||
+import net.minecraft.world.effect.MobEffectInstance;
|
||||
+import net.minecraft.world.effect.MobEffects;
|
||||
import net.minecraft.world.entity.AgeableMob;
|
||||
import net.minecraft.world.entity.Crackiness;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.EntityDimensions;
|
||||
@@ -29,6 +33,7 @@ import net.minecraft.world.entity.Mob;
|
||||
import net.minecraft.world.entity.MobSpawnType;
|
||||
import net.minecraft.world.entity.NeutralMob;
|
||||
import net.minecraft.world.entity.Pose;
|
||||
+import net.minecraft.world.entity.SpawnGroupData;
|
||||
import net.minecraft.world.entity.TamableAnimal;
|
||||
import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
|
||||
import net.minecraft.world.entity.ai.attributes.Attributes;
|
||||
@@ -37,6 +42,7 @@ import net.minecraft.world.entity.ai.goal.BegGoal;
|
||||
import net.minecraft.world.entity.ai.goal.BreedGoal;
|
||||
import net.minecraft.world.entity.ai.goal.FloatGoal;
|
||||
import net.minecraft.world.entity.ai.goal.FollowOwnerGoal;
|
||||
+import net.minecraft.world.entity.ai.goal.Goal;
|
||||
import net.minecraft.world.entity.ai.goal.LeapAtTargetGoal;
|
||||
import net.minecraft.world.entity.ai.goal.LookAtPlayerGoal;
|
||||
import net.minecraft.world.entity.ai.goal.MeleeAttackGoal;
|
||||
@@ -64,6 +70,7 @@ import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.LevelAccessor;
|
||||
+import net.minecraft.world.level.ServerLevelAccessor;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.gameevent.GameEvent;
|
||||
import net.minecraft.world.level.pathfinder.BlockPathTypes;
|
||||
@@ -86,6 +93,37 @@ public class Wolf extends TamableAnimal implements NeutralMob {
|
||||
@@ -104,6 +106,37 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
|
||||
return entitytypes == EntityType.SHEEP || entitytypes == EntityType.RABBIT || entitytypes == EntityType.FOX;
|
||||
};
|
||||
+ // Purpur start - rabid wolf spawn chance
|
||||
+ private boolean isRabid = false;
|
||||
+ private static final Predicate<LivingEntity> RABID_PREDICATE = entity -> entity instanceof ServerPlayer || entity instanceof Mob;
|
||||
+ private final Goal PATHFINDER_VANILLA = new NonTameRandomTargetGoal<>(this, Animal.class, false, PREY_SELECTOR);
|
||||
+ private final Goal PATHFINDER_RABID = new NonTameRandomTargetGoal<>(this, LivingEntity.class, false, RABID_PREDICATE);
|
||||
+ private static final Predicate<LivingEntity> RABID_PREDICATE = entity -> entity instanceof net.minecraft.server.level.ServerPlayer || entity instanceof Mob;
|
||||
+ private final net.minecraft.world.entity.ai.goal.Goal PATHFINDER_VANILLA = new NonTameRandomTargetGoal<>(this, Animal.class, false, PREY_SELECTOR);
|
||||
+ private final net.minecraft.world.entity.ai.goal.Goal PATHFINDER_RABID = new NonTameRandomTargetGoal<>(this, LivingEntity.class, false, RABID_PREDICATE);
|
||||
+ private static final class AvoidRabidWolfGoal extends AvoidEntityGoal<Wolf> {
|
||||
+ private final Wolf wolf;
|
||||
+
|
||||
@@ -91,9 +55,9 @@ index 39a923e48750bd960f64aad248c10dd390afc239..6a822abe936aed83da595980e0f69835
|
||||
+ }
|
||||
+ // Purpur end
|
||||
private static final float START_HEALTH = 8.0F;
|
||||
private static final float TAME_HEALTH = 20.0F;
|
||||
private float interestedAngle;
|
||||
@@ -137,6 +175,37 @@ public class Wolf extends TamableAnimal implements NeutralMob {
|
||||
private static final float TAME_HEALTH = 40.0F;
|
||||
private static final float ARMOR_REPAIR_UNIT = 0.125F;
|
||||
@@ -156,6 +189,37 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
return this.level().purpurConfig.wolfBreedingTicks;
|
||||
}
|
||||
|
||||
@@ -131,15 +95,15 @@ index 39a923e48750bd960f64aad248c10dd390afc239..6a822abe936aed83da595980e0f69835
|
||||
@Override
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(1, new FloatGoal(this));
|
||||
@@ -144,6 +213,7 @@ public class Wolf extends TamableAnimal implements NeutralMob {
|
||||
this.goalSelector.addGoal(1, new Wolf.WolfPanicGoal(1.5D));
|
||||
@@ -163,6 +227,7 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
this.goalSelector.addGoal(1, new Wolf.WolfPanicGoal(this, 1.5D));
|
||||
this.goalSelector.addGoal(2, new SitWhenOrderedToGoal(this));
|
||||
this.goalSelector.addGoal(3, new Wolf.WolfAvoidEntityGoal<>(this, Llama.class, 24.0F, 1.5D, 1.5D));
|
||||
+ this.goalSelector.addGoal(3, new AvoidRabidWolfGoal(this, 24.0F, 1.5D, 1.5D)); // Purpur
|
||||
this.goalSelector.addGoal(4, new LeapAtTargetGoal(this, 0.4F));
|
||||
this.goalSelector.addGoal(5, new MeleeAttackGoal(this, 1.0D, true));
|
||||
this.goalSelector.addGoal(6, new FollowOwnerGoal(this, 1.0D, 10.0F, 2.0F, false));
|
||||
@@ -157,7 +227,7 @@ public class Wolf extends TamableAnimal implements NeutralMob {
|
||||
@@ -176,7 +241,7 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
this.targetSelector.addGoal(2, new OwnerHurtTargetGoal(this));
|
||||
this.targetSelector.addGoal(3, (new HurtByTargetGoal(this, new Class[0])).setAlertOthers());
|
||||
this.targetSelector.addGoal(4, new NearestAttackableTargetGoal<>(this, Player.class, 10, true, false, this::isAngryAt));
|
||||
@@ -148,15 +112,15 @@ index 39a923e48750bd960f64aad248c10dd390afc239..6a822abe936aed83da595980e0f69835
|
||||
this.targetSelector.addGoal(6, new NonTameRandomTargetGoal<>(this, Turtle.class, false, Turtle.BABY_ON_LAND_SELECTOR));
|
||||
this.targetSelector.addGoal(7, new NearestAttackableTargetGoal<>(this, AbstractSkeleton.class, false));
|
||||
this.targetSelector.addGoal(8, new ResetUniversalAngerTargetGoal<>(this, true));
|
||||
@@ -184,6 +254,7 @@ public class Wolf extends TamableAnimal implements NeutralMob {
|
||||
@@ -219,6 +284,7 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
public void addAdditionalSaveData(CompoundTag nbt) {
|
||||
super.addAdditionalSaveData(nbt);
|
||||
nbt.putByte("CollarColor", (byte) this.getCollarColor().getId());
|
||||
+ nbt.putBoolean("Purpur.IsRabid", this.isRabid); // Purpur
|
||||
nbt.putString("variant", ((ResourceKey) this.getVariant().unwrapKey().orElse(WolfVariants.PALE)).location().toString());
|
||||
this.addPersistentAngerSaveData(nbt);
|
||||
}
|
||||
|
||||
@@ -193,6 +264,10 @@ public class Wolf extends TamableAnimal implements NeutralMob {
|
||||
@@ -234,6 +300,10 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
if (nbt.contains("CollarColor", 99)) {
|
||||
this.setCollarColor(DyeColor.byId(nbt.getInt("CollarColor")));
|
||||
}
|
||||
@@ -167,7 +131,7 @@ index 39a923e48750bd960f64aad248c10dd390afc239..6a822abe936aed83da595980e0f69835
|
||||
|
||||
this.readPersistentAngerSaveData(this.level(), nbt);
|
||||
}
|
||||
@@ -237,6 +312,11 @@ public class Wolf extends TamableAnimal implements NeutralMob {
|
||||
@@ -295,6 +365,11 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
public void tick() {
|
||||
super.tick();
|
||||
if (this.isAlive()) {
|
||||
@@ -179,9 +143,9 @@ index 39a923e48750bd960f64aad248c10dd390afc239..6a822abe936aed83da595980e0f69835
|
||||
this.interestedAngleO = this.interestedAngle;
|
||||
if (this.isInterested()) {
|
||||
this.interestedAngle += (1.0F - this.interestedAngle) * 0.4F;
|
||||
@@ -452,6 +532,19 @@ public class Wolf extends TamableAnimal implements NeutralMob {
|
||||
}
|
||||
|
||||
@@ -539,6 +614,19 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
itemstack.consume(1, player);
|
||||
this.tryToTame(player);
|
||||
return InteractionResult.SUCCESS;
|
||||
+ // Purpur start
|
||||
+ } else if (this.level().purpurConfig.wolfMilkCuresRabies && itemstack.getItem() == Items.MILK_BUCKET && this.isRabid()) {
|
||||
@@ -200,12 +164,12 @@ index 39a923e48750bd960f64aad248c10dd390afc239..6a822abe936aed83da595980e0f69835
|
||||
return super.mobInteract(player, hand);
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java
|
||||
index 38b6d2c377800134de592a780b737b45c8096a11..449acd9dc983be1cd51208bc8f8d843d2ddaa923 100644
|
||||
index 86574da257731de7646a712ed73384955fe35aa3..e223234dd64b0e41441c3b9f649f0b64dc6d98c4 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java
|
||||
@@ -57,4 +57,16 @@ public class CraftWolf extends CraftTameableAnimal implements Wolf {
|
||||
public void setInterested(boolean flag) {
|
||||
this.getHandle().setIsInterested(flag);
|
||||
@@ -146,4 +146,16 @@ public class CraftWolf extends CraftTameableAnimal implements Wolf {
|
||||
return this.getKey().hashCode();
|
||||
}
|
||||
}
|
||||
+
|
||||
+ // Purpur start
|
||||
@@ -221,7 +185,7 @@ index 38b6d2c377800134de592a780b737b45c8096a11..449acd9dc983be1cd51208bc8f8d843d
|
||||
+ // Purpur end
|
||||
}
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index 6f682def96c6783d0ffc9f285fc397de1f6b148f..18e4711b000128f4e4ad7b62b73fdc161e6048a7 100644
|
||||
index 83d1581201ee97547d6d3bfdf3926e74432d6e37..38e464710c9e081598a2c9f0f0c9254a70716f6c 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -1937,6 +1937,8 @@ public class PurpurWorldConfig {
|
||||
@@ -7,10 +7,10 @@ This allows for the server to set a default collar color when a wolf or cat is t
|
||||
Resets to RED when the value is invalid.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main/java/net/minecraft/world/entity/animal/Cat.java
|
||||
index a5b1cc957b824f8cc36693128ce05f5d556cf7d7..fff1da136b618ca8b9256b55996dc1d01dacd7b8 100644
|
||||
index b23d6683bab3d257febb57a6c9c8be4db926af7f..27e448a38377ea3cc2e527dbe48a23d233f1ea13 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Cat.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java
|
||||
@@ -346,6 +346,14 @@ public class Cat extends TamableAnimal implements VariantHolder<CatVariant> {
|
||||
@@ -357,6 +357,14 @@ public class Cat extends TamableAnimal implements VariantHolder<Holder<CatVarian
|
||||
return Mth.lerp(tickDelta, this.relaxStateOneAmountO, this.relaxStateOneAmount);
|
||||
}
|
||||
|
||||
@@ -26,10 +26,10 @@ index a5b1cc957b824f8cc36693128ce05f5d556cf7d7..fff1da136b618ca8b9256b55996dc1d0
|
||||
@Override
|
||||
public Cat getBreedOffspring(ServerLevel world, AgeableMob entity) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
index 6a822abe936aed83da595980e0f698354a205b0b..bbecb3894d0f4a24442e8833f4d828e6173287da 100644
|
||||
index bdfa848bff4fac6dcf590aefa958e2ce31294bad..90049174458e261034923c67e0d852250224b69b 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
@@ -206,6 +206,12 @@ public class Wolf extends TamableAnimal implements NeutralMob {
|
||||
@@ -220,6 +220,12 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
return super.finalizeSpawn(world, difficulty, type, data, nbt);
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ index 6a822abe936aed83da595980e0f698354a205b0b..bbecb3894d0f4a24442e8833f4d828e6
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(1, new FloatGoal(this));
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index 18e4711b000128f4e4ad7b62b73fdc161e6048a7..2e17bb7bd1df56a875498ef4f6be1e2b5f2001dc 100644
|
||||
index 38e464710c9e081598a2c9f0f0c9254a70716f6c..fa01b850685fe050f372360588b2a3b905e8f9b9 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -621,6 +621,7 @@ public class PurpurWorldConfig {
|
||||
@@ -5,11 +5,11 @@ Subject: [PATCH] Phantom flames on swoop
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
|
||||
index 6849b2ad3b2db840a1af35ef069490506449c861..0f13a3f38760f1117bd545702db7a5b168d9e273 100644
|
||||
index 1ddccb9fa438682c2ebad7c071c7a4f8dd00b463..c15d75472d4d92baeb87a147832e17e363c360be 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
|
||||
@@ -244,6 +244,7 @@ public class Phantom extends FlyingMob implements Enemy {
|
||||
this.level().addParticle(ParticleTypes.MYCELIUM, this.getX() - (double) f2, this.getY() + (double) f4, this.getZ() - (double) f3, 0.0D, 0.0D, 0.0D);
|
||||
@@ -237,6 +237,7 @@ public class Phantom extends FlyingMob implements Enemy {
|
||||
this.level().addParticle(ParticleTypes.MYCELIUM, this.getX() - (double) f3, this.getY() + (double) f5, this.getZ() - (double) f4, 0.0D, 0.0D, 0.0D);
|
||||
}
|
||||
|
||||
+ if (level().purpurConfig.phantomFlamesOnSwoop && attackPhase == AttackPhase.SWOOP) shoot(); // Purpur
|
||||
@@ -17,7 +17,7 @@ index 6849b2ad3b2db840a1af35ef069490506449c861..0f13a3f38760f1117bd545702db7a5b1
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index 9df131e8e3c14aedfafa491b4765dc05f468d01f..6bd5bcebc0d5a080ebc5d711fb7a942576a26f9c 100644
|
||||
index fa01b850685fe050f372360588b2a3b905e8f9b9..048d8ae2a0d440a01beadcd0ce848d4dc2e490be 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -1299,6 +1299,7 @@ public class PurpurWorldConfig {
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Option for chests to open even with a solid block on top
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/ChestBlock.java b/src/main/java/net/minecraft/world/level/block/ChestBlock.java
|
||||
index 9804ee2020e5cef23d3f5174d153fc149e611503..3a5e5cf88c5592e1bc3e6dc9eced2d1dd47bd145 100644
|
||||
index 491474b66856fccb038ee436968c9a5d3e4bf75c..a66499c9bd9af9da5d261a3c1aa23b1d436d4008 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/ChestBlock.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/ChestBlock.java
|
||||
@@ -358,6 +358,7 @@ public class ChestBlock extends AbstractChestBlock<ChestBlockEntity> implements
|
||||
@@ -343,6 +343,7 @@ public class ChestBlock extends AbstractChestBlock<ChestBlockEntity> implements
|
||||
}
|
||||
|
||||
private static boolean isBlockedChestByBlock(BlockGetter world, BlockPos pos) {
|
||||
@@ -17,7 +17,7 @@ index 9804ee2020e5cef23d3f5174d153fc149e611503..3a5e5cf88c5592e1bc3e6dc9eced2d1d
|
||||
|
||||
return world.getBlockState(blockposition1).isRedstoneConductor(world, blockposition1);
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index 6bd5bcebc0d5a080ebc5d711fb7a942576a26f9c..ef40f177856981c16c667c202480591ad1334109 100644
|
||||
index 048d8ae2a0d440a01beadcd0ce848d4dc2e490be..841a4be2169e0e39abdcb874dd97d915db993459 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -419,6 +419,11 @@ public class PurpurWorldConfig {
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Implement TPSBar
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java
|
||||
index 27b3093aba19e457c7b83dd42dce4e546761644b..9c335df92b0a6c7705c9def89ba5c320d2c8ed03 100644
|
||||
index 6af3e1e08048869ac28ab4a93e03d086872f866b..d0a81669ac20dc86e888aa34e246c251b8886ba2 100644
|
||||
--- a/src/main/java/net/minecraft/commands/Commands.java
|
||||
+++ b/src/main/java/net/minecraft/commands/Commands.java
|
||||
@@ -253,6 +253,7 @@ public class Commands {
|
||||
@@ -255,6 +255,7 @@ public class Commands {
|
||||
org.purpurmc.purpur.command.CreditsCommand.register(this.dispatcher); // Purpur
|
||||
org.purpurmc.purpur.command.DemoCommand.register(this.dispatcher); // Purpur
|
||||
org.purpurmc.purpur.command.PingCommand.register(this.dispatcher); // Purpur
|
||||
@@ -17,10 +17,10 @@ index 27b3093aba19e457c7b83dd42dce4e546761644b..9c335df92b0a6c7705c9def89ba5c320
|
||||
|
||||
if (environment.includeIntegrated) {
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 808ec6b3fa06dd0de76e78ec832894b2570eef8c..69af88f3ed690cbb751d367171c4cf6aa0ee2fca 100644
|
||||
index 6dd29845955b65e269a0487501330917effe7688..b68db217c8765fa029244bf2701757bd31a5db2b 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1052,6 +1052,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1060,6 +1060,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
this.safeShutdown(waitForShutdown, false);
|
||||
}
|
||||
public void safeShutdown(boolean waitForShutdown, boolean isRestarting) {
|
||||
@@ -29,22 +29,22 @@ index 808ec6b3fa06dd0de76e78ec832894b2570eef8c..69af88f3ed690cbb751d367171c4cf6a
|
||||
this.hasLoggedStop = true; // Paper - Debugging
|
||||
if (isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread("Server stopped"); // Paper - Debugging
|
||||
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
index aa47b0af34cff5eaa638d6c24c718d02a0a266cf..d66fc3f1b8d960782a7a2e08dd72831025f9c8fd 100644
|
||||
index 6d47aa73788eef78aa6714384db879b4e907de9b..8a132fcdeb620d2e7f1c0c8b9e592ff233cd0568 100644
|
||||
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
@@ -351,6 +351,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
@@ -363,6 +363,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
DedicatedServer.LOGGER.info("JMX monitoring enabled");
|
||||
}
|
||||
|
||||
if (gg.pufferfish.pufferfish.PufferfishConfig.enableAsyncMobSpawning) mobSpawnExecutor.start(); // Pufferfish
|
||||
+ org.purpurmc.purpur.task.BossBarTask.startAll(); // Purpur
|
||||
return true;
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
index fbf1b37a0328d72c54331f8b567088731e5cc5d0..a30732576b86bcf9c56e7d0ced8eb8490af13515 100644
|
||||
index fe250c154aed8b10e33c6b916cabedb0dda3d5d6..fabce29a8e4eefede38dabd009c0ab9f9c1dc842 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -282,6 +282,7 @@ public class ServerPlayer extends Player {
|
||||
@@ -299,6 +299,7 @@ public class ServerPlayer extends Player {
|
||||
public @Nullable String clientBrandName = null; // Paper - Brand support
|
||||
public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - Add API for quit reason; there are a lot of changes to do if we change all methods leading to the event
|
||||
public boolean purpurClient = false; // Purpur
|
||||
@@ -52,7 +52,15 @@ index fbf1b37a0328d72c54331f8b567088731e5cc5d0..a30732576b86bcf9c56e7d0ced8eb849
|
||||
|
||||
// Paper start - replace player chunk loader
|
||||
private final java.util.concurrent.atomic.AtomicReference<io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances> viewDistances = new java.util.concurrent.atomic.AtomicReference<>(new io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances(-1, -1, -1));
|
||||
@@ -569,6 +570,7 @@ public class ServerPlayer extends Player {
|
||||
@@ -685,6 +686,7 @@ public class ServerPlayer extends Player {
|
||||
});
|
||||
}
|
||||
|
||||
+ nbt.putBoolean("Purpur.TPSBar", this.tpsBar); // Purpur
|
||||
}
|
||||
|
||||
// CraftBukkit start - World fallback code, either respawn location or global spawn
|
||||
@@ -1182,6 +1184,7 @@ public class ServerPlayer extends Player {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,15 +68,7 @@ index fbf1b37a0328d72c54331f8b567088731e5cc5d0..a30732576b86bcf9c56e7d0ced8eb849
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -635,6 +637,7 @@ public class ServerPlayer extends Player {
|
||||
}
|
||||
this.getBukkitEntity().setExtraData(nbt); // CraftBukkit
|
||||
|
||||
+ nbt.putBoolean("Purpur.TPSBar", this.tpsBar); // Purpur
|
||||
}
|
||||
|
||||
// CraftBukkit start - World fallback code, either respawn location or global spawn
|
||||
@@ -2878,5 +2881,13 @@ public class ServerPlayer extends Player {
|
||||
@@ -2986,5 +2989,13 @@ public class ServerPlayer extends Player {
|
||||
this.server.getPlayerList().respawn(this, toLevel, true, to, !toLevel.paperConfig().environment.disableTeleportationSuffocationCheck, org.bukkit.event.player.PlayerRespawnEvent.RespawnReason.DEATH);
|
||||
}
|
||||
}
|
||||
@@ -83,10 +83,10 @@ index fbf1b37a0328d72c54331f8b567088731e5cc5d0..a30732576b86bcf9c56e7d0ced8eb849
|
||||
// Purpur end
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
index 8d4e080540fb24b434e6d01eee6e7c2116c66804..89ba5789c6d6e4fe8360a854f0a6123036a5a792 100644
|
||||
index 338808ba1138f62d89f3f1338a4c5068426df0e4..f2a7eba2618ea9c1acaf93c0ef8f6f5f737de6fe 100644
|
||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
@@ -487,6 +487,7 @@ public abstract class PlayerList {
|
||||
@@ -486,6 +486,7 @@ public abstract class PlayerList {
|
||||
scoreboard.addPlayerToTeam(player.getScoreboardName(), collideRuleTeam);
|
||||
}
|
||||
// Paper end - Configurable player collision
|
||||
@@ -94,7 +94,7 @@ index 8d4e080540fb24b434e6d01eee6e7c2116c66804..89ba5789c6d6e4fe8360a854f0a61230
|
||||
PlayerList.LOGGER.info("{}[{}] logged in with entity id {} at ([{}]{}, {}, {})", player.getName().getString(), s1, player.getId(), worldserver1.serverLevelData.getLevelName(), player.getX(), player.getY(), player.getZ());
|
||||
}
|
||||
|
||||
@@ -599,6 +600,7 @@ public abstract class PlayerList {
|
||||
@@ -597,6 +598,7 @@ public abstract class PlayerList {
|
||||
}
|
||||
public net.kyori.adventure.text.Component remove(ServerPlayer entityplayer, net.kyori.adventure.text.Component leaveMessage) {
|
||||
// Paper end - Fix kick event leave message not being sent
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Striders give saddle back
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Strider.java b/src/main/java/net/minecraft/world/entity/monster/Strider.java
|
||||
index 10136a5062d154456c962e7d1a99c2dedbd568ed..64503362c42daa39dcfa270bc50b0e2187f13a01 100644
|
||||
index 5f1166ccd64509a70323e2713f3ab58674d83105..741eedcd9e0e29b57d2b3caf5aef1aef18ae5118 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Strider.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Strider.java
|
||||
@@ -484,6 +484,19 @@ public class Strider extends Animal implements ItemSteerable, Saddleable {
|
||||
@@ -29,7 +29,7 @@ index 10136a5062d154456c962e7d1a99c2dedbd568ed..64503362c42daa39dcfa270bc50b0e21
|
||||
if (!this.level().isClientSide) {
|
||||
player.startRiding(this);
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index 1027887398a348e210830add7b77f99236512256..7cb9381590a24f24099b8ad87f094b1f73f1e624 100644
|
||||
index 841a4be2169e0e39abdcb874dd97d915db993459..fa32fa58ef52adf16f898b11704ed531d95d1ec6 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -1711,6 +1711,7 @@ public class PurpurWorldConfig {
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] PlayerBookTooLargeEvent
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 17d3d4caa010c97d0c78f6286140cb44c75a8b40..79034a8fdf8d8d71056bec84b05ad70ae5ceb99e 100644
|
||||
index e467ad2abcc32d86821ee3f99c82460095b40fba..9274a9eb5597a84519dd81367fa6f42a20d7e56c 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -1165,10 +1165,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
@@ -1183,10 +1183,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
int maxBookPageSize = io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.pageMax;
|
||||
double multiplier = Math.max(0.3D, Math.min(1D, io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.totalMultiplier));
|
||||
long byteAllowed = maxBookPageSize;
|
||||
@@ -24,7 +24,7 @@ index 17d3d4caa010c97d0c78f6286140cb44c75a8b40..79034a8fdf8d8d71056bec84b05ad70a
|
||||
server.scheduleOnMain(() -> this.disconnect("Book too large!", org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION)); // Paper - kick event cause
|
||||
return;
|
||||
}
|
||||
@@ -1192,6 +1197,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
@@ -1210,6 +1215,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
|
||||
if (byteTotal > byteAllowed) {
|
||||
ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send too large of a book. Book Size: " + byteTotal + " - Allowed: "+ byteAllowed + " - Pages: " + pageList.size());
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Full netherite armor grants fire resistance
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
index e68ed7339d8aed2b97e310edeee3960611ed7bf1..73f8aeb1b5253cfd7d5502d506677a3ef906625e 100644
|
||||
index a838f339dd0085660164b0eb1597e0a14e4de6f4..e7f45fe435f679afb4fabe657922d7354183c6fb 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
@@ -369,6 +369,16 @@ public abstract class Player extends LivingEntity {
|
||||
@@ -381,6 +381,16 @@ public abstract class Player extends LivingEntity {
|
||||
this.addEffect(new MobEffectInstance(MobEffects.WATER_BREATHING, 200, 0, false, false, true), org.bukkit.event.entity.EntityPotionEffectEvent.Cause.TURTLE_HELMET); // CraftBukkit
|
||||
}
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Add mobGriefing bypass to everything affected
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
index 708b01fa5a86e736fcb110d1a5c0efafde600964..787a2d1b8c887e17f9f9565c292c585e996ca1d2 100644
|
||||
index 2ea60043f3bbf6cce77799f6c74ffe1f4b226374..dc1c7c55fd13cc1a8ade803bfb1b7c385cf29132 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -1818,7 +1818,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
@@ -1831,7 +1831,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
boolean flag = false;
|
||||
|
||||
if (this.dead && adversary instanceof WitherBoss) { // Paper
|
||||
@@ -18,10 +18,10 @@ index 708b01fa5a86e736fcb110d1a5c0efafde600964..787a2d1b8c887e17f9f9565c292c585e
|
||||
BlockState iblockdata = Blocks.WITHER_ROSE.defaultBlockState();
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
index 050d6705cfa7ce59b85a3120a0569b3e8f9be6b7..56ba7ac3d9d1f65de84f98eb724761d6bb374d47 100644
|
||||
index 34d00acc43d2541307aa90a77a3c5d19a3057a94..77cf0d92212d11b9036f9f9cf23b23f71f1d590d 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
@@ -706,7 +706,7 @@ public abstract class Mob extends LivingEntity implements Targeting {
|
||||
@@ -748,7 +748,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
|
||||
public void aiStep() {
|
||||
super.aiStep();
|
||||
this.level().getProfiler().push("looting");
|
||||
@@ -31,10 +31,10 @@ index 050d6705cfa7ce59b85a3120a0569b3e8f9be6b7..56ba7ac3d9d1f65de84f98eb724761d6
|
||||
List<ItemEntity> list = this.level().getEntitiesOfClass(ItemEntity.class, this.getBoundingBox().inflate((double) baseblockposition.getX(), (double) baseblockposition.getY(), (double) baseblockposition.getZ()));
|
||||
Iterator iterator = list.iterator();
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java b/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java
|
||||
index 66a568e6803b91040f3933d4598c52fa518badab..a1acc479c9d6a838e3180da3ac8a3a02d22db5c1 100644
|
||||
index 4fa4ec34963730507253182cad1c2bf04090ad50..8d4e206aa05b95b7bfec5d23496085cf55a3e1de 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java
|
||||
@@ -47,7 +47,7 @@ public class HarvestFarmland extends Behavior<Villager> {
|
||||
@@ -48,7 +48,7 @@ public class HarvestFarmland extends Behavior<Villager> {
|
||||
}
|
||||
|
||||
protected boolean checkExtraStartConditions(ServerLevel world, Villager entity) {
|
||||
@@ -79,7 +79,7 @@ index 4e2c23ccdf4e4a4d65b291dbe20952bae1838bff..0da884a833f6c707fea512e826658c3b
|
||||
this.level.setBlock(blockposition1, Blocks.DIRT.defaultBlockState(), 2);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/RemoveBlockGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/RemoveBlockGoal.java
|
||||
index 5580a396a56c6e0f364a5368985ee99b9e2be0a8..3facfd6eee17cb0b59425494c966e19833660dd2 100644
|
||||
index 6634228ef002cbef67980272a26be4a75c954116..a61abba840a55fb4fbc9716a5e05eb2778068785 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/ai/goal/RemoveBlockGoal.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/ai/goal/RemoveBlockGoal.java
|
||||
@@ -40,7 +40,7 @@ public class RemoveBlockGoal extends MoveToBlockGoal {
|
||||
@@ -92,10 +92,10 @@ index 5580a396a56c6e0f364a5368985ee99b9e2be0a8..3facfd6eee17cb0b59425494c966e198
|
||||
} else if (this.nextStartTick > 0) {
|
||||
--this.nextStartTick;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java
|
||||
index 4f1ae50564a7e646172b3b923d15a002ee736601..5ddc3e997fec6417c379561f60c438386030d49d 100644
|
||||
index 0140dc8a58903bd802ea8ffb029392215e95cdf4..c246148b9851654d796f472462677a60498c7b8d 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Fox.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java
|
||||
@@ -1401,7 +1401,7 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
|
||||
@@ -1385,7 +1385,7 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
|
||||
}
|
||||
|
||||
protected void onReachedTarget() {
|
||||
@@ -105,10 +105,10 @@ index 4f1ae50564a7e646172b3b923d15a002ee736601..5ddc3e997fec6417c379561f60c43838
|
||||
|
||||
if (iblockdata.is(Blocks.SWEET_BERRY_BUSH)) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
|
||||
index c25776ef9805f3f4e31ca5b027e6577526e48819..86502ef70f2213191d1348ef98969c5c93a6cb95 100644
|
||||
index b5297b1d7223af622636a7defdb98b5bc6e6a3c9..ce424d046d7c4abd2371154b00624aa6a9ca3ae3 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
|
||||
@@ -634,7 +634,7 @@ public class Rabbit extends Animal implements VariantHolder<Rabbit.Variant> {
|
||||
@@ -631,7 +631,7 @@ public class Rabbit extends Animal implements VariantHolder<Rabbit.Variant> {
|
||||
@Override
|
||||
public boolean canUse() {
|
||||
if (this.nextStartTick <= 0) {
|
||||
@@ -118,10 +118,10 @@ index c25776ef9805f3f4e31ca5b027e6577526e48819..86502ef70f2213191d1348ef98969c5c
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
|
||||
index b97f892fe5824b5275905cd51599bea17da3dd19..1d70a108293a61b7813b70cc9ce600a3e7b167d5 100644
|
||||
index ee4d4a4fe314ee9bce69c96dd65d84ed1ace0543..cdb6657d30d224709aec3921c5fb8380f8acd93e 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
|
||||
@@ -127,7 +127,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
|
||||
@@ -125,7 +125,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
|
||||
this.hurt(this.damageSources().melting(), 1.0F); // CraftBukkit - DamageSources.ON_FIRE -> CraftEventFactory.MELTING
|
||||
}
|
||||
|
||||
@@ -131,10 +131,10 @@ index b97f892fe5824b5275905cd51599bea17da3dd19..1d70a108293a61b7813b70cc9ce600a3
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
index e4b2b35cb1704e61ce0a84cb97578cee7e1eed43..39cf974313c7c0bdcd6599c6c8bec450efe0277a 100644
|
||||
index f751444603e4a1a2ef53e7232b5abfff82c316e8..0478469343c30d2b8d79bda78aef9ff1348de19b 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
@@ -605,7 +605,7 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
@@ -603,7 +603,7 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
BlockState iblockdata = this.level().getBlockState(blockposition);
|
||||
|
||||
if (!iblockdata.isAir() && !iblockdata.is(BlockTags.DRAGON_TRANSPARENT)) {
|
||||
@@ -144,23 +144,23 @@ index e4b2b35cb1704e61ce0a84cb97578cee7e1eed43..39cf974313c7c0bdcd6599c6c8bec450
|
||||
// flag1 = this.level().removeBlock(blockposition, false) || flag1;
|
||||
flag1 = true;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
|
||||
index 0c7623cc87c534cf02ee78a1ffb6928a31758f6f..3cc47b0e05621c913a3e8d04c653bafab4a86744 100644
|
||||
index 8d2894bb1ae70f63c8fa67de3e9f7c6a9c940f3e..2f0c44a0b97e9ad7591c5b66c2560f3e405c61c4 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
|
||||
@@ -494,7 +494,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
|
||||
@@ -493,7 +493,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
|
||||
|
||||
if (this.destroyBlocksTick > 0) {
|
||||
--this.destroyBlocksTick;
|
||||
- if (this.destroyBlocksTick == 0 && this.level().getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)) {
|
||||
+ if (this.destroyBlocksTick == 0 && (this.level().purpurConfig.witherBypassMobGriefing || this.level().getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING))) { // Purpur
|
||||
i = Mth.floor(this.getY());
|
||||
j = Mth.floor(this.getX());
|
||||
int i1 = Mth.floor(this.getZ());
|
||||
boolean flag = false;
|
||||
|
||||
j = Mth.floor(this.getBbWidth() / 2.0F + 1.0F);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
||||
index ca2d247be50c1f7c69aeafeafa5b33ea296bf323..93420c7e9b34b40845f12a0058e50e6fd809e6f7 100644
|
||||
index 052a0c168268b7e788953063f54c3769023f3c03..de1fe3b115c1b3936b79c8900389542a8c8a2c90 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
||||
@@ -549,7 +549,15 @@ public class EnderMan extends Monster implements NeutralMob {
|
||||
@@ -526,7 +526,15 @@ public class EnderMan extends Monster implements NeutralMob {
|
||||
@Override
|
||||
public boolean canUse() {
|
||||
if (!enderman.level().purpurConfig.endermanAllowGriefing) return false; // Purpur
|
||||
@@ -177,7 +177,7 @@ index ca2d247be50c1f7c69aeafeafa5b33ea296bf323..93420c7e9b34b40845f12a0058e50e6f
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -595,7 +603,15 @@ public class EnderMan extends Monster implements NeutralMob {
|
||||
@@ -572,7 +580,15 @@ public class EnderMan extends Monster implements NeutralMob {
|
||||
@Override
|
||||
public boolean canUse() {
|
||||
if (!enderman.level().purpurConfig.endermanAllowGriefing) return false; // Purpur
|
||||
@@ -195,10 +195,10 @@ index ca2d247be50c1f7c69aeafeafa5b33ea296bf323..93420c7e9b34b40845f12a0058e50e6f
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Evoker.java b/src/main/java/net/minecraft/world/entity/monster/Evoker.java
|
||||
index 30a04ea1f66fe5dbbae27a48764e4bd0f66bf0b1..a7e77eae357e0fd146f340f8c3981f1a0d705b32 100644
|
||||
index 8f0c685790aa59b7f2352c3bac6ede444d0ede22..ce2e5c16db13accb082b3f2403661c65411c7a80 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Evoker.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Evoker.java
|
||||
@@ -351,7 +351,7 @@ public class Evoker extends SpellcasterIllager {
|
||||
@@ -364,7 +364,7 @@ public class Evoker extends SpellcasterIllager {
|
||||
return false;
|
||||
} else if (Evoker.this.tickCount < this.nextAttackTickCount) {
|
||||
return false;
|
||||
@@ -208,10 +208,10 @@ index 30a04ea1f66fe5dbbae27a48764e4bd0f66bf0b1..a7e77eae357e0fd146f340f8c3981f1a
|
||||
} else {
|
||||
List<Sheep> list = Evoker.this.level().getNearbyEntities(Sheep.class, this.wololoTargeting, Evoker.this, Evoker.this.getBoundingBox().inflate(16.0D, 4.0D, 16.0D));
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
|
||||
index 226b44ba4cd3a08562c8cb0d79c1d880cfac34ec..056fa8b12368dac5d1a12962b8ee92e87e4149b3 100644
|
||||
index 32d547a4430a8f524a7fc0bd1aa063bbebfaeb7f..cebe89b0868043b819fb3e9987f899926961be52 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
|
||||
@@ -176,7 +176,7 @@ public class Ravager extends Raider {
|
||||
@@ -168,7 +168,7 @@ public class Ravager extends Raider {
|
||||
this.getAttribute(Attributes.MOVEMENT_SPEED).setBaseValue(Mth.lerp(0.1D, d1, d0));
|
||||
}
|
||||
|
||||
@@ -221,10 +221,10 @@ index 226b44ba4cd3a08562c8cb0d79c1d880cfac34ec..056fa8b12368dac5d1a12962b8ee92e8
|
||||
AABB axisalignedbb = this.getBoundingBox().inflate(0.2D);
|
||||
Iterator iterator = BlockPos.betweenClosed(Mth.floor(axisalignedbb.minX), Mth.floor(axisalignedbb.minY), Mth.floor(axisalignedbb.minZ), Mth.floor(axisalignedbb.maxX), Mth.floor(axisalignedbb.maxY), Mth.floor(axisalignedbb.maxZ)).iterator();
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java
|
||||
index e81c162f7a2061180f81754de341b2c33da76a0d..69f6306b91e535050fe8b22852503dfb0514f316 100644
|
||||
index 75f82922260b2c0666021e7ed42dfde401e1a9d6..a175144d5480b7af091787c6ab366fb3e8d70587 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java
|
||||
@@ -211,7 +211,7 @@ public class Silverfish extends Monster {
|
||||
@@ -191,7 +191,7 @@ public class Silverfish extends Monster {
|
||||
continue;
|
||||
}
|
||||
// CraftBukkit end
|
||||
@@ -233,7 +233,7 @@ index e81c162f7a2061180f81754de341b2c33da76a0d..69f6306b91e535050fe8b22852503dfb
|
||||
world.destroyBlock(blockposition1, true, this.silverfish);
|
||||
} else {
|
||||
world.setBlock(blockposition1, ((InfestedBlock) block).hostStateByInfested(world.getBlockState(blockposition1)), 3);
|
||||
@@ -249,7 +249,7 @@ public class Silverfish extends Monster {
|
||||
@@ -229,7 +229,7 @@ public class Silverfish extends Monster {
|
||||
} else {
|
||||
RandomSource randomsource = this.mob.getRandom();
|
||||
|
||||
@@ -243,10 +243,10 @@ index e81c162f7a2061180f81754de341b2c33da76a0d..69f6306b91e535050fe8b22852503dfb
|
||||
BlockPos blockposition = BlockPos.containing(this.mob.getX(), this.mob.getY() + 0.5D, this.mob.getZ()).relative(this.selectedDirection);
|
||||
BlockState iblockdata = this.mob.level().getBlockState(blockposition);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
|
||||
index b5e6a48192592e9bc5a7c0a2775e5d78f06cd46a..03b58860ecb72976ecce99f368d16942557236b9 100644
|
||||
index 06e0f737615c90bd733a89a731156598ccfe447f..57089ba787731ddda853dce959ba015abe135bfd 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
|
||||
@@ -424,7 +424,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
|
||||
@@ -412,7 +412,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
|
||||
|
||||
@Override
|
||||
public boolean wantsToPickUp(ItemStack stack) {
|
||||
@@ -284,10 +284,10 @@ index 9d89872c5958f3e8d6c1ef4fd93f9b8b85296851..6a94c86acce5afbf1e9c8e7d664b3eb2
|
||||
// CraftBukkit start - fire ExplosionPrimeEvent
|
||||
ExplosionPrimeEvent event = new ExplosionPrimeEvent((org.bukkit.entity.Explosive) this.getBukkitEntity());
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
|
||||
index 2a8a8030feefae84e394460612405887e63f2ac7..577df1ad8eb57ae7a53c9931c379824a6882fa5f 100644
|
||||
index 74c596264d4da551437bd2a23e1c70022cfc73fc..e4d4ff0ef4a0f3283aa42fe2304816cd6d9475a8 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
|
||||
@@ -334,7 +334,7 @@ public abstract class Projectile extends Entity implements TraceableEntity {
|
||||
@@ -343,7 +343,7 @@ public abstract class Projectile extends Entity implements TraceableEntity {
|
||||
public boolean mayInteract(Level world, BlockPos pos) {
|
||||
Entity entity = this.getOwner();
|
||||
|
||||
@@ -297,7 +297,7 @@ index 2a8a8030feefae84e394460612405887e63f2ac7..577df1ad8eb57ae7a53c9931c379824a
|
||||
|
||||
public boolean mayBreak(Level world) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/projectile/SmallFireball.java b/src/main/java/net/minecraft/world/entity/projectile/SmallFireball.java
|
||||
index 6724fe4470aeea338eb4cfd10a7e61fbcac1e5b7..dd38f32ac6a62905c9a79dacf85cf073fa6941b3 100644
|
||||
index 3a11ad32d95088a5aca713a1a6a984cc22d4fa9a..c078ccad4aabe469a9611331b415a4cef241973e 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/projectile/SmallFireball.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/projectile/SmallFireball.java
|
||||
@@ -27,7 +27,7 @@ public class SmallFireball extends Fireball {
|
||||
@@ -310,10 +310,10 @@ index 6724fe4470aeea338eb4cfd10a7e61fbcac1e5b7..dd38f32ac6a62905c9a79dacf85cf073
|
||||
// CraftBukkit end
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/raid/Raider.java b/src/main/java/net/minecraft/world/entity/raid/Raider.java
|
||||
index 93bbf7556f9599e9dd90761085a57d78bd521867..b3912881892b4f1bca577761083c5da1568c8187 100644
|
||||
index 98e558338b5d9fb03869d2cc21b3e90eb45b95f6..4a8fa7e5844b5cd12ef6b113f988b715c7a3ef64 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/raid/Raider.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/raid/Raider.java
|
||||
@@ -322,7 +322,7 @@ public abstract class Raider extends PatrollingMonster {
|
||||
@@ -341,7 +341,7 @@ public abstract class Raider extends PatrollingMonster {
|
||||
|
||||
@Override
|
||||
public boolean canUse() {
|
||||
@@ -321,14 +321,14 @@ index 93bbf7556f9599e9dd90761085a57d78bd521867..b3912881892b4f1bca577761083c5da1
|
||||
+ if ((!this.mob.level().purpurConfig.pillagerBypassMobGriefing && !this.mob.level().getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)) || !this.mob.canPickUpLoot()) return false; // Paper - respect game and entity rules for picking up items // Purpur
|
||||
Raid raid = this.mob.getCurrentRaid();
|
||||
|
||||
if (this.mob.hasActiveRaid() && !this.mob.getCurrentRaid().isOver() && this.mob.canBeLeader() && !ItemStack.matches(this.mob.getItemBySlot(EquipmentSlot.HEAD), Raid.getLeaderBannerInstance())) {
|
||||
if (this.mob.hasActiveRaid() && !this.mob.getCurrentRaid().isOver() && this.mob.canBeLeader() && !ItemStack.matches(this.mob.getItemBySlot(EquipmentSlot.HEAD), Raid.getLeaderBannerInstance(this.mob.registryAccess().lookupOrThrow(Registries.BANNER_PATTERN)))) {
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/CropBlock.java b/src/main/java/net/minecraft/world/level/block/CropBlock.java
|
||||
index 5b96d1ae4bd8546311e986bc312b1f85883a67f4..07b148fc31aee3ce009d1d768ae16d98268339cc 100644
|
||||
index 112d2feba5f75a2a873b595617780515945c10e4..2af4c365743b2956939335512f74e0a1d84298f7 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/CropBlock.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/CropBlock.java
|
||||
@@ -179,7 +179,7 @@ public class CropBlock extends BushBlock implements BonemealableBlock {
|
||||
@Override
|
||||
public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) {
|
||||
protected void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) {
|
||||
if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent
|
||||
- if (entity instanceof Ravager && CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.AIR.defaultBlockState(), !world.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING))) { // CraftBukkit
|
||||
+ if (entity instanceof Ravager && CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.AIR.defaultBlockState(), (!world.purpurConfig.ravagerBypassMobGriefing && !world.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)))) { // CraftBukkit // Purpur
|
||||
@@ -336,10 +336,10 @@ index 5b96d1ae4bd8546311e986bc312b1f85883a67f4..07b148fc31aee3ce009d1d768ae16d98
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/FarmBlock.java b/src/main/java/net/minecraft/world/level/block/FarmBlock.java
|
||||
index e8514465772a748afe19039d7ce5be0baa303243..e9ab88a5c68565f2245b3397edcffb0544a29fea 100644
|
||||
index dc356bd0931af9bdab9ec71e3de66e88a67375ad..99798220b6e0ad06db2ba5c9b74bfb72af185fee 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/FarmBlock.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/FarmBlock.java
|
||||
@@ -110,7 +110,7 @@ public class FarmBlock extends Block {
|
||||
@@ -111,7 +111,7 @@ public class FarmBlock extends Block {
|
||||
@Override
|
||||
public void fallOn(Level world, BlockState state, BlockPos pos, Entity entity, float fallDistance) {
|
||||
super.fallOn(world, state, pos, entity, fallDistance); // CraftBukkit - moved here as game rules / events shouldn't affect fall damage.
|
||||
@@ -349,7 +349,7 @@ index e8514465772a748afe19039d7ce5be0baa303243..e9ab88a5c68565f2245b3397edcffb05
|
||||
org.bukkit.event.Cancellable cancellable;
|
||||
if (entity instanceof Player) {
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/PowderSnowBlock.java b/src/main/java/net/minecraft/world/level/block/PowderSnowBlock.java
|
||||
index 0dfcac8cfcbb09fe04486bff60119f7985714454..2dbf71e421156093c8bc387941eae991f5e6c957 100644
|
||||
index a6e6545402904141ffc6218a0158b0e9c67217c8..5eac1a54398dfa5571b98fb6eefca9d2bf9b2793 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/PowderSnowBlock.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/PowderSnowBlock.java
|
||||
@@ -80,7 +80,7 @@ public class PowderSnowBlock extends Block implements BucketPickup {
|
||||
@@ -362,10 +362,10 @@ index 0dfcac8cfcbb09fe04486bff60119f7985714454..2dbf71e421156093c8bc387941eae991
|
||||
}
|
||||
// CraftBukkit end
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java b/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java
|
||||
index a98f04c892d6e11e311b16af36e824857dd3bc76..430ccf1b9f5c6306bbe610d1f9058c1a4bfa2986 100644
|
||||
index c7377d04ceac3ea624117439783a443c6d6f6d08..0c732cfbd9ce50198a3f85ae8ef2263d7ae0bc1a 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java
|
||||
@@ -220,7 +220,7 @@ public class TurtleEggBlock extends Block {
|
||||
@@ -221,7 +221,7 @@ public class TurtleEggBlock extends Block {
|
||||
}
|
||||
if (entity instanceof Player) return true;
|
||||
|
||||
@@ -9,10 +9,10 @@ Normally, the sounds will only play when the block directly above is air.
|
||||
With this patch enabled, players can place any block above the Note Block and it will still work.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/NoteBlock.java b/src/main/java/net/minecraft/world/level/block/NoteBlock.java
|
||||
index a541dc3a6e373b30fff0abf5305e77854c190f10..ac88cb949808752a340637ffcb9d7256b7d09478 100644
|
||||
index 1d82cfe7af0dc42f88901fb0c44896771fdf8a93..43dd972b374daa1072608f3a68e812e7fb733a2b 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/NoteBlock.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/NoteBlock.java
|
||||
@@ -94,7 +94,7 @@ public class NoteBlock extends Block {
|
||||
@@ -95,7 +95,7 @@ public class NoteBlock extends Block {
|
||||
}
|
||||
|
||||
private void playNote(@Nullable Entity entity, BlockState state, Level world, BlockPos pos) {
|
||||
@@ -17,11 +17,11 @@ You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java
|
||||
index 4ba24bced9a2de4616a0418857d3738e0e322ea0..6660bea735dda46ab9493601f1f53b8e0075ca83 100644
|
||||
index 7272d70c672b54dcf595beafd7a2ed33c96e35cb..d7f33c676bba279661583d908d3a58c86d853545 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java
|
||||
@@ -54,6 +54,14 @@ public class EndPortalBlock extends BaseEntityBlock {
|
||||
public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) {
|
||||
protected void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) {
|
||||
if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent
|
||||
if (world instanceof ServerLevel && entity.canChangeDimensions() && Shapes.joinIsNotEmpty(Shapes.create(entity.getBoundingBox().move((double) (-pos.getX()), (double) (-pos.getY()), (double) (-pos.getZ()))), state.getShape(world, pos), BooleanOp.AND)) {
|
||||
+ // Purpur start
|
||||
@@ -36,11 +36,11 @@ index 4ba24bced9a2de4616a0418857d3738e0e322ea0..6660bea735dda46ab9493601f1f53b8e
|
||||
ServerLevel worldserver = ((ServerLevel) world).getServer().getLevel(resourcekey);
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java b/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java
|
||||
index 1b5cc5d6aa0b4313da980ce175c54145852d0db0..613df7b174ba4cb87314a631ebc7dfeda8ede58f 100644
|
||||
index a9e3078cefcae8cc4672d514a7add162590d48df..67060b7446535fc352d221d9fe3928d1d6ffcf54 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java
|
||||
@@ -92,6 +92,14 @@ public class NetherPortalBlock extends Block {
|
||||
public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) {
|
||||
protected void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) {
|
||||
if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent
|
||||
if (entity.canChangeDimensions()) {
|
||||
+ // Purpur start
|
||||
@@ -55,12 +55,12 @@ index 1b5cc5d6aa0b4313da980ce175c54145852d0db0..613df7b174ba4cb87314a631ebc7dfed
|
||||
EntityPortalEnterEvent event = new EntityPortalEnterEvent(entity.getBukkitEntity(), new org.bukkit.Location(world.getWorld(), pos.getX(), pos.getY(), pos.getZ()));
|
||||
world.getCraftServer().getPluginManager().callEvent(event);
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
|
||||
index 8be3d696f6401189406032dd8d45dc747f546df5..4997f120aa9877c199fbcaa0c2f65226e13b5a23 100644
|
||||
index 60b343edc4383c8bc450f106f483349850432fa3..fb9611866671880fc7a1a969da928b8f2ad15269 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
|
||||
@@ -172,6 +172,14 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity {
|
||||
@@ -168,6 +168,14 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity {
|
||||
public static void teleportEntity(Level world, BlockPos pos, BlockState state, Entity entity, TheEndGatewayBlockEntity blockEntity) {
|
||||
if (world instanceof ServerLevel && !blockEntity.isCoolingDown()) {
|
||||
if (world instanceof ServerLevel worldserver && !blockEntity.isCoolingDown()) {
|
||||
if (!entity.canChangeDimensions()) return; // Purpur
|
||||
+ // Purpur start
|
||||
+ if (world.purpurConfig.imposeTeleportRestrictionsOnGateways && (entity.isVehicle() || entity.isPassenger())) {
|
||||
@@ -70,11 +70,11 @@ index 8be3d696f6401189406032dd8d45dc747f546df5..4997f120aa9877c199fbcaa0c2f65226
|
||||
+ return;
|
||||
+ }
|
||||
+ // Purpur end
|
||||
ServerLevel worldserver = (ServerLevel) world;
|
||||
|
||||
blockEntity.teleportCooldown = 100;
|
||||
BlockPos blockposition1;
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
index 85d154f18e240cac77e023b4b5983ad7a95912b5..cac42202295b16de0466216f64be4fdf30929a7e 100644
|
||||
index a6268b3df9691278606501284b5504da718703c2..befe3372d5f1550b7bde3b63b5e7aef9035c5379 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
@@ -253,6 +253,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||
@@ -89,10 +89,10 @@ index 85d154f18e240cac77e023b4b5983ad7a95912b5..cac42202295b16de0466216f64be4fdf
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
index 8fec2e517cc57940348f4bee33212a9aae34b102..4e999cec1a004529a4bcd2f0ae63b3731bcac8f2 100644
|
||||
index 33f229c13b3b77f967d81e9d4453e6afa9157fd9..485c742874defe0a8cf1e7db09406b03ec40871b 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
@@ -1358,6 +1358,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
@@ -1434,6 +1434,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
}
|
||||
|
||||
if (entity.isVehicle() && !ignorePassengers) { // Paper - Teleport API
|
||||
@@ -12,10 +12,10 @@ necessary to trample in the first place. Feather Falling 1 requires
|
||||
you to fall over 3+ blocks to trample. FF 2 requires 4+, etc.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/FarmBlock.java b/src/main/java/net/minecraft/world/level/block/FarmBlock.java
|
||||
index e9ab88a5c68565f2245b3397edcffb0544a29fea..00a6aa924e47e18ae80b57e9fe1d38e2de15dd72 100644
|
||||
index 99798220b6e0ad06db2ba5c9b74bfb72af185fee..6b12864f323202a1202a59f66412b3d5be28023f 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/FarmBlock.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/FarmBlock.java
|
||||
@@ -125,12 +125,20 @@ public class FarmBlock extends Block {
|
||||
@@ -126,12 +126,20 @@ public class FarmBlock extends Block {
|
||||
}
|
||||
|
||||
// Purpur start
|
||||
@@ -17,10 +17,10 @@ You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 047c4111d247cea4f203df1a8b11ca5913d513c1..53a695f5425717a47f47ca4585b9b79847ab4a47 100644
|
||||
index a93ae9de698ce97e8603deb1075e6dc5aeaab274..2f8b5646222b86fa7ef908c9796d28e034702ec7 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -1885,7 +1885,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -1936,7 +1936,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
return this.isInWater() || flag;
|
||||
}
|
||||
|
||||
@@ -28,12 +28,12 @@ index 047c4111d247cea4f203df1a8b11ca5913d513c1..53a695f5425717a47f47ca4585b9b798
|
||||
+ public void updateInWaterStateAndDoWaterCurrentPushing() { // Purpur - package-private -> public
|
||||
Entity entity = this.getVehicle();
|
||||
|
||||
if (entity instanceof Boat) {
|
||||
if (entity instanceof Boat entityboat) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
|
||||
index aca5e7a2b0eab93c613b03834509366f7119ec03..40550897d5be12fcb8e1e751ee2e7a138512ce0b 100644
|
||||
index 8b25bb80a913cd002cdaeadf076d811172f10488..89f600edda9a1c5d1b132355fefb7eaed77c52f5 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
|
||||
@@ -100,10 +100,12 @@ public class ArmorStand extends LivingEntity {
|
||||
@@ -103,10 +103,12 @@ public class ArmorStand extends LivingEntity {
|
||||
private boolean noTickPoseDirty = false;
|
||||
private boolean noTickEquipmentDirty = false;
|
||||
// Paper end - Allow ArmorStands not to tick
|
||||
@@ -46,7 +46,7 @@ index aca5e7a2b0eab93c613b03834509366f7119ec03..40550897d5be12fcb8e1e751ee2e7a13
|
||||
this.handItems = NonNullList.withSize(2, ItemStack.EMPTY);
|
||||
this.armorItems = NonNullList.withSize(4, ItemStack.EMPTY);
|
||||
this.headPose = ArmorStand.DEFAULT_HEAD_POSE;
|
||||
@@ -1006,4 +1008,18 @@ public class ArmorStand extends LivingEntity {
|
||||
@@ -1005,4 +1007,18 @@ public class ArmorStand extends LivingEntity {
|
||||
}
|
||||
}
|
||||
// Paper end
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Fix stuck in portals
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
index 8c7333578d0fa28a1ebdd11e768e51a85bed725e..b7fedc1eb9f3d94cba8ac9d7da72fff03af723f0 100644
|
||||
index fabce29a8e4eefede38dabd009c0ab9f9c1dc842..9bf6457ed689d38393c17732dc9229d9fc297584 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -1271,6 +1271,7 @@ public class ServerPlayer extends Player {
|
||||
@@ -1348,6 +1348,7 @@ public class ServerPlayer extends Player {
|
||||
playerlist.sendPlayerPermissionLevel(this);
|
||||
worldserver1.removePlayerImmediately(this, Entity.RemovalReason.CHANGED_DIMENSION);
|
||||
this.unsetRemoved();
|
||||
@@ -17,10 +17,10 @@ index 8c7333578d0fa28a1ebdd11e768e51a85bed725e..b7fedc1eb9f3d94cba8ac9d7da72fff0
|
||||
// CraftBukkit end
|
||||
this.setServerLevel(worldserver);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 53a695f5425717a47f47ca4585b9b79847ab4a47..09d131178fb6428ba65cd4f08a5badb8693be626 100644
|
||||
index 2f8b5646222b86fa7ef908c9796d28e034702ec7..1ec1f023d7eee5714c94dbb6c842444f70603f40 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -3164,12 +3164,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -3217,12 +3217,15 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
return Vec3.directionFromRotation(this.getRotationVector());
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Toggle for water sensitive mob damage
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/GlowSquid.java b/src/main/java/net/minecraft/world/entity/GlowSquid.java
|
||||
index 1330c4a4d9ff347e62a284eb8b71c107d87baf83..d5bcc6e678aec21da855eea805a58a965ef5edee 100644
|
||||
index 4cd57672c548950cb4e0aa97af75ecca84be6823..70e3d583f7a039a5c67428ce9e8beb1922574c7b 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/GlowSquid.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/GlowSquid.java
|
||||
@@ -46,6 +46,11 @@ public class GlowSquid extends Squid {
|
||||
@@ -21,10 +21,10 @@ index 1330c4a4d9ff347e62a284eb8b71c107d87baf83..d5bcc6e678aec21da855eea805a58a96
|
||||
protected ParticleOptions getInkParticle() {
|
||||
return ParticleTypes.GLOW_SQUID_INK;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
|
||||
index 8910aaaa1fdabecec4740d6212db3114bd1197fc..3c7db09c5fbcb9d57febc937158b50634d68a082 100644
|
||||
index cea588d68c7e23ad8831bc611f1030d63354d91c..76b858d0ab2da7b4cdf39aa6692e2a005958fee2 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
|
||||
@@ -280,6 +280,11 @@ public class Bat extends AmbientCreature {
|
||||
@@ -277,6 +277,11 @@ public class Bat extends AmbientCreature {
|
||||
this.getAttribute(Attributes.ATTACK_KNOCKBACK).setBaseValue(this.level().purpurConfig.batAttackKnockback);
|
||||
}
|
||||
|
||||
@@ -37,19 +37,19 @@ index 8910aaaa1fdabecec4740d6212db3114bd1197fc..3c7db09c5fbcb9d57febc937158b5063
|
||||
public void readAdditionalSaveData(CompoundTag nbt) {
|
||||
super.readAdditionalSaveData(nbt);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java
|
||||
index 2b69a3e860f95d4294dda8d05126f431eb7dd5b6..52a7a8b35cf0f7b52d5de253b21f7713ab261544 100644
|
||||
index cbcfe8177362d9b8af97f21e716a4dce9e227465..0978f519177ce2f0991402dafb9a22c5a8686168 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Bee.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java
|
||||
@@ -180,7 +180,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
|
||||
@@ -175,7 +175,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
|
||||
// Paper end - Fix MC-167279
|
||||
this.lookControl = new Bee.BeeLookControl(this);
|
||||
this.setPathfindingMalus(BlockPathTypes.DANGER_FIRE, -1.0F);
|
||||
- this.setPathfindingMalus(BlockPathTypes.WATER, -1.0F);
|
||||
+ if (isSensitiveToWater()) this.setPathfindingMalus(BlockPathTypes.WATER, -1.0F); // Purpur
|
||||
this.setPathfindingMalus(BlockPathTypes.WATER_BORDER, 16.0F);
|
||||
this.setPathfindingMalus(BlockPathTypes.COCOA, -1.0F);
|
||||
this.setPathfindingMalus(BlockPathTypes.FENCE, -1.0F);
|
||||
@@ -488,6 +488,11 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
|
||||
this.setPathfindingMalus(PathType.DANGER_FIRE, -1.0F);
|
||||
- this.setPathfindingMalus(PathType.WATER, -1.0F);
|
||||
+ if (isSensitiveToWater()) this.setPathfindingMalus(PathType.WATER, -1.0F); // Purpur
|
||||
this.setPathfindingMalus(PathType.WATER_BORDER, 16.0F);
|
||||
this.setPathfindingMalus(PathType.COCOA, -1.0F);
|
||||
this.setPathfindingMalus(PathType.FENCE, -1.0F);
|
||||
@@ -477,6 +477,11 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
|
||||
return this.level().purpurConfig.beeBreedingTicks;
|
||||
}
|
||||
|
||||
@@ -62,26 +62,26 @@ index 2b69a3e860f95d4294dda8d05126f431eb7dd5b6..52a7a8b35cf0f7b52d5de253b21f7713
|
||||
public int getRemainingPersistentAngerTime() {
|
||||
return (Integer) this.entityData.get(Bee.DATA_REMAINING_ANGER_TIME);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main/java/net/minecraft/world/entity/animal/Cat.java
|
||||
index fba85c1a43b184ada6c1bb499997322030f59665..a4b3d724f30ccf0eddfb41d6997d0aa9b1847b7a 100644
|
||||
index 27e448a38377ea3cc2e527dbe48a23d233f1ea13..446aec4d10e614f136fe6ae4bb5a7dd0ac6d0f18 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Cat.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java
|
||||
@@ -133,6 +133,11 @@ public class Cat extends TamableAnimal implements VariantHolder<CatVariant> {
|
||||
@@ -139,6 +139,11 @@ public class Cat extends TamableAnimal implements VariantHolder<Holder<CatVarian
|
||||
public int getPurpurBreedTime() {
|
||||
return this.level().purpurConfig.catBreedingTicks;
|
||||
}
|
||||
|
||||
+
|
||||
+ @Override
|
||||
+ public boolean isSensitiveToWater() {
|
||||
+ return this.level().purpurConfig.catTakeDamageFromWater;
|
||||
+ }
|
||||
+
|
||||
public ResourceLocation getResourceLocation() {
|
||||
return this.getVariant().texture();
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
public ResourceLocation getTextureId() {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Chicken.java b/src/main/java/net/minecraft/world/entity/animal/Chicken.java
|
||||
index b142e5c489e9fe65b7258f541ef121b2cd020886..2dc2486e2b5e046ab8f23976b7bf0202f61756ec 100644
|
||||
index a440e9cc8973d6116652a0871251c421a633ba6d..2c0fbc86a49213eedd92a62197c79633ff1c6cb2 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Chicken.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Chicken.java
|
||||
@@ -85,6 +85,11 @@ public class Chicken extends Animal {
|
||||
@@ -84,6 +84,11 @@ public class Chicken extends Animal {
|
||||
return this.level().purpurConfig.chickenBreedingTicks;
|
||||
}
|
||||
|
||||
@@ -110,10 +110,10 @@ index 3d61c2d5da103de68242c16d85c703813979d179..2343325fa9a771de7b9445cda24a2bcd
|
||||
public ItemStack getBucketItemStack() {
|
||||
return new ItemStack(Items.COD_BUCKET);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Cow.java b/src/main/java/net/minecraft/world/entity/animal/Cow.java
|
||||
index 3fd310fe80b0f725746e20e8be2b3b7710467c28..4c2cc5ba3c8f15c26f01361e786d25b399747974 100644
|
||||
index 64866ca220f4c0b6350e92473cd013658a7de974..8c908891c6c683332d8877ab3fa084a0849b17a9 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Cow.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Cow.java
|
||||
@@ -74,6 +74,11 @@ public class Cow extends Animal {
|
||||
@@ -73,6 +73,11 @@ public class Cow extends Animal {
|
||||
return this.level().purpurConfig.cowBreedingTicks;
|
||||
}
|
||||
|
||||
@@ -126,10 +126,10 @@ index 3fd310fe80b0f725746e20e8be2b3b7710467c28..4c2cc5ba3c8f15c26f01361e786d25b3
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new FloatGoal(this));
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
|
||||
index 3e32787cc7e96e83dc408e556a92b25607d487a9..21e804d391478c613f4f89076fd268a9eb2e2ecf 100644
|
||||
index 366d583926e7e33a8c1e5a803bb75a456b4838d0..38112239035b0c66c429c0762199867e70e0a67a 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
|
||||
@@ -164,6 +164,11 @@ public class Dolphin extends WaterAnimal {
|
||||
@@ -162,6 +162,11 @@ public class Dolphin extends WaterAnimal {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.dolphinMaxHealth);
|
||||
}
|
||||
|
||||
@@ -140,12 +140,12 @@ index 3e32787cc7e96e83dc408e556a92b25607d487a9..21e804d391478c613f4f89076fd268a9
|
||||
+
|
||||
@Nullable
|
||||
@Override
|
||||
public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData entityData, @Nullable CompoundTag entityNbt) {
|
||||
public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData entityData) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java
|
||||
index 5ddc3e997fec6417c379561f60c438386030d49d..1e04205a1707e46a1f540f5c8f6ec1b81bf1b5d7 100644
|
||||
index c246148b9851654d796f472462677a60498c7b8d..ee691437da9571900039f90c1700cd33e31c03bc 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Fox.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java
|
||||
@@ -197,6 +197,11 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
|
||||
@@ -194,6 +194,11 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
|
||||
return this.level().purpurConfig.foxBreedingTicks;
|
||||
}
|
||||
|
||||
@@ -155,13 +155,13 @@ index 5ddc3e997fec6417c379561f60c438386030d49d..1e04205a1707e46a1f540f5c8f6ec1b8
|
||||
+ }
|
||||
+
|
||||
@Override
|
||||
protected void defineSynchedData() {
|
||||
super.defineSynchedData();
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
|
||||
index 46e28d807a72b6d302d29d65c52ab0813cd82b1a..669132fb78d3fd72f73d4c20370f0213879baeaa 100644
|
||||
index 2919d055e2136a956aa038bd0bf4c1a2ff5afa2f..9c86d86a6d89585cfbdace89e66866f496da86cb 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
|
||||
@@ -88,6 +88,11 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
|
||||
@@ -83,6 +83,11 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -174,7 +174,7 @@ index 46e28d807a72b6d302d29d65c52ab0813cd82b1a..669132fb78d3fd72f73d4c20370f0213
|
||||
protected void registerGoals() {
|
||||
if (level().purpurConfig.ironGolemCanSwim) this.goalSelector.addGoal(0, new net.minecraft.world.entity.ai.goal.FloatGoal(this)); // Purpur
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
|
||||
index b699f88ce9480ef4da5bfb97004a9c5f62d58894..5cf206bea6d2f3155c1da73d8337bbd8e2ee7bb3 100644
|
||||
index 22a2328fe5159c8fed635a62334a3f1028c346a5..6cb8d85986f4d891dfbb66b83163ed23bac694f6 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
|
||||
@@ -91,6 +91,11 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder<Mushroo
|
||||
@@ -190,10 +190,10 @@ index b699f88ce9480ef4da5bfb97004a9c5f62d58894..5cf206bea6d2f3155c1da73d8337bbd8
|
||||
public float getWalkTargetValue(BlockPos pos, LevelReader world) {
|
||||
return world.getBlockState(pos.below()).is(Blocks.MYCELIUM) ? 10.0F : world.getPathfindingCostFromLightLevels(pos);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Ocelot.java b/src/main/java/net/minecraft/world/entity/animal/Ocelot.java
|
||||
index 3fe751839e4a1bc266b0d9508e1e3384e8f7f41e..c91ade7f4b1f04f12e38cf2c5fda1a92b129bec8 100644
|
||||
index fc74c21d2c506df2134fc4ce61917af65fa89466..a1b7661ae0676007d59d202493efc5a0c795045f 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Ocelot.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Ocelot.java
|
||||
@@ -97,6 +97,11 @@ public class Ocelot extends Animal {
|
||||
@@ -93,6 +93,11 @@ public class Ocelot extends Animal {
|
||||
return this.level().purpurConfig.ocelotBreedingTicks;
|
||||
}
|
||||
|
||||
@@ -206,10 +206,10 @@ index 3fe751839e4a1bc266b0d9508e1e3384e8f7f41e..c91ade7f4b1f04f12e38cf2c5fda1a92
|
||||
return (Boolean) this.entityData.get(Ocelot.DATA_TRUSTING);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java
|
||||
index 2e90708da8984c18d2325bc8b5c207bd075bec52..e52a685bd2142fe702fb5f212894e6ba6008913d 100644
|
||||
index e90fc016fc7e0e9aac2c2d0cf081748100f225f3..4895bd2566605ab3986f35d43345f29ce78e81e0 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Panda.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java
|
||||
@@ -152,6 +152,11 @@ public class Panda extends Animal {
|
||||
@@ -157,6 +157,11 @@ public class Panda extends Animal {
|
||||
return this.level().purpurConfig.pandaBreedingTicks;
|
||||
}
|
||||
|
||||
@@ -222,10 +222,10 @@ index 2e90708da8984c18d2325bc8b5c207bd075bec52..e52a685bd2142fe702fb5f212894e6ba
|
||||
public boolean canTakeItem(ItemStack stack) {
|
||||
EquipmentSlot enumitemslot = Mob.getEquipmentSlotForItem(stack);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Parrot.java b/src/main/java/net/minecraft/world/entity/animal/Parrot.java
|
||||
index 3bb216b678eee290a9ec636fe4d8af9db687405a..a6189e785af61d1cbed2022d68312d9fa69f68a8 100644
|
||||
index 22b8701accc76d806819433a8511172e13a9ed9e..7b139028ae5c590960e6b8a74b6ba667f3db7f5d 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Parrot.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Parrot.java
|
||||
@@ -203,6 +203,11 @@ public class Parrot extends ShoulderRidingEntity implements VariantHolder<Parrot
|
||||
@@ -196,6 +196,11 @@ public class Parrot extends ShoulderRidingEntity implements VariantHolder<Parrot
|
||||
return 6000;
|
||||
}
|
||||
|
||||
@@ -236,12 +236,12 @@ index 3bb216b678eee290a9ec636fe4d8af9db687405a..a6189e785af61d1cbed2022d68312d9f
|
||||
+
|
||||
@Nullable
|
||||
@Override
|
||||
public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData entityData, @Nullable CompoundTag entityNbt) {
|
||||
public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData entityData) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Pig.java b/src/main/java/net/minecraft/world/entity/animal/Pig.java
|
||||
index d858d4c94fb17d14367672813b506aea9e2e4ee1..f32cc2884696db956e10d350f97376025e32e673 100644
|
||||
index a9cd2b75eeb192d7343bc06a1c3fa03748178f5f..badee6aed2c07dbfc05fa31d74d53c4630295761 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Pig.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Pig.java
|
||||
@@ -95,6 +95,11 @@ public class Pig extends Animal implements ItemSteerable, Saddleable {
|
||||
@@ -91,6 +91,11 @@ public class Pig extends Animal implements ItemSteerable, Saddleable {
|
||||
return this.level().purpurConfig.pigBreedingTicks;
|
||||
}
|
||||
|
||||
@@ -254,7 +254,7 @@ index d858d4c94fb17d14367672813b506aea9e2e4ee1..f32cc2884696db956e10d350f9737602
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new FloatGoal(this));
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/PolarBear.java b/src/main/java/net/minecraft/world/entity/animal/PolarBear.java
|
||||
index 95c85ddd8008f2d87000f1580287533656a8f0ca..a3043a46b291b22c0e93ed680e4f455f47ae74be 100644
|
||||
index 7288b9f1a46d6c1556e2653b990d6ce4beaf5949..3abab3b4d5409cf2f0374c038fa6c0241b89b8e5 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/PolarBear.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/PolarBear.java
|
||||
@@ -124,6 +124,11 @@ public class PolarBear extends Animal implements NeutralMob {
|
||||
@@ -270,10 +270,10 @@ index 95c85ddd8008f2d87000f1580287533656a8f0ca..a3043a46b291b22c0e93ed680e4f455f
|
||||
@Override
|
||||
public AgeableMob getBreedOffspring(ServerLevel world, AgeableMob entity) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Pufferfish.java b/src/main/java/net/minecraft/world/entity/animal/Pufferfish.java
|
||||
index 8b5bf8ef4481ccc829d1a39c0921941581b2f045..ef3d0bbbeb6aa736f35c26066a1473c70ef028a2 100644
|
||||
index 0682df1037e23068c715f7bc06f1dc461641bb2f..91fd38aeafb4354e845b579988c7c9a6b3f6f551 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Pufferfish.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Pufferfish.java
|
||||
@@ -62,6 +62,11 @@ public class Pufferfish extends AbstractFish {
|
||||
@@ -68,6 +68,11 @@ public class Pufferfish extends AbstractFish {
|
||||
this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.pufferfishMaxHealth);
|
||||
}
|
||||
|
||||
@@ -283,13 +283,13 @@ index 8b5bf8ef4481ccc829d1a39c0921941581b2f045..ef3d0bbbeb6aa736f35c26066a1473c7
|
||||
+ }
|
||||
+
|
||||
@Override
|
||||
protected void defineSynchedData() {
|
||||
super.defineSynchedData();
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
|
||||
index 86502ef70f2213191d1348ef98969c5c93a6cb95..b58d9fadccbf4cd74abfc2449a9399277c876f59 100644
|
||||
index ce424d046d7c4abd2371154b00624aa6a9ca3ae3..c2510200507edd205bc3283bec98a0d6951f497f 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
|
||||
@@ -148,6 +148,11 @@ public class Rabbit extends Animal implements VariantHolder<Rabbit.Variant> {
|
||||
@@ -147,6 +147,11 @@ public class Rabbit extends Animal implements VariantHolder<Rabbit.Variant> {
|
||||
public int getPurpurBreedTime() {
|
||||
return this.level().purpurConfig.rabbitBreedingTicks;
|
||||
}
|
||||
@@ -318,10 +318,10 @@ index 742805994f29a18af444912b10af631d2c60cacf..e101c3bf425902908c43ffa18867fb83
|
||||
public int getMaxSchoolSize() {
|
||||
return 5;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Sheep.java b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
|
||||
index df7deec204ebf99afdbfe49f9a113857dcd413c6..d1a8b15de4f4aa20d6049135bcbef94f0d1fb388 100644
|
||||
index c3cc949291d11ae707fa5175d666df2ee81cdcce..afec39ba3b51b121fd7ae937e7bac060ef430dfd 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
|
||||
@@ -146,6 +146,11 @@ public class Sheep extends Animal implements Shearable {
|
||||
@@ -144,6 +144,11 @@ public class Sheep extends Animal implements Shearable {
|
||||
return this.level().purpurConfig.sheepBreedingTicks;
|
||||
}
|
||||
|
||||
@@ -334,10 +334,10 @@ index df7deec204ebf99afdbfe49f9a113857dcd413c6..d1a8b15de4f4aa20d6049135bcbef94f
|
||||
protected void registerGoals() {
|
||||
this.eatBlockGoal = new EatBlockGoal(this);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
|
||||
index 1d70a108293a61b7813b70cc9ce600a3e7b167d5..d46ab4d56e4c34b4dbe7a3df0785ab8745fcd3b9 100644
|
||||
index cdb6657d30d224709aec3921c5fb8380f8acd93e..9f20eae7449c670b913cc3bbe1a89254a1d8cde2 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
|
||||
@@ -116,7 +116,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
|
||||
@@ -114,7 +114,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
|
||||
|
||||
@Override
|
||||
public boolean isSensitiveToWater() {
|
||||
@@ -347,10 +347,10 @@ index 1d70a108293a61b7813b70cc9ce600a3e7b167d5..d46ab4d56e4c34b4dbe7a3df0785ab87
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Squid.java b/src/main/java/net/minecraft/world/entity/animal/Squid.java
|
||||
index 871f9a47247ba8134ecc39cd98a35011a5b009e4..daa4931c934c792b3c4ff32b730506762c4cf481 100644
|
||||
index f0261117a4f8ae240b3b991053deaf8d6419b5b4..0d05879eadeff8731028d78d89d5d32142818ea2 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Squid.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Squid.java
|
||||
@@ -90,6 +90,11 @@ public class Squid extends WaterAnimal {
|
||||
@@ -88,6 +88,11 @@ public class Squid extends WaterAnimal {
|
||||
return this.wasTouchingWater || canFly();
|
||||
}
|
||||
|
||||
@@ -363,10 +363,10 @@ index 871f9a47247ba8134ecc39cd98a35011a5b009e4..daa4931c934c792b3c4ff32b73050676
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new Squid.SquidRandomMovementGoal(this));
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/TropicalFish.java b/src/main/java/net/minecraft/world/entity/animal/TropicalFish.java
|
||||
index b8b4ca31ad2fc5292082905c979a974a4ed42dab..1f83844da76ee6e158f1ba3656ba90d6eff1895c 100644
|
||||
index 327b1805d9d4069212a8772ff189c9ab24ae1183..4ac998e9d96aed3b0ea0ec3f9dcd5fdd74c45d24 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/TropicalFish.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/TropicalFish.java
|
||||
@@ -82,6 +82,11 @@ public class TropicalFish extends AbstractSchoolingFish implements VariantHolder
|
||||
@@ -84,6 +84,11 @@ public class TropicalFish extends AbstractSchoolingFish implements VariantHolder
|
||||
this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.tropicalFishMaxHealth);
|
||||
}
|
||||
|
||||
@@ -379,10 +379,10 @@ index b8b4ca31ad2fc5292082905c979a974a4ed42dab..1f83844da76ee6e158f1ba3656ba90d6
|
||||
return "entity.minecraft.tropical_fish.predefined." + variant;
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
|
||||
index ccb1ed3f9c3a15489a715e684c0f15d2e67b556f..315006bdb344bb52a077c49a96c7712a33fbb0eb 100644
|
||||
index a577ec78b2f5bca0166277c499da4fa7988d5395..b146ac72584d998cee4279133b3b19051fbf14c9 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
|
||||
@@ -113,6 +113,11 @@ public class Turtle extends Animal {
|
||||
@@ -114,6 +114,11 @@ public class Turtle extends Animal {
|
||||
return this.level().purpurConfig.turtleBreedingTicks;
|
||||
}
|
||||
|
||||
@@ -395,10 +395,10 @@ index ccb1ed3f9c3a15489a715e684c0f15d2e67b556f..315006bdb344bb52a077c49a96c7712a
|
||||
this.entityData.set(Turtle.HOME_POS, pos.immutable()); // Paper - called with mutablepos...
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
index 1f69252653373b8eba46fdadac2141773ec72dff..8dc0a8a7b24b874d886626fa6ba757308b0d721b 100644
|
||||
index 90049174458e261034923c67e0d852250224b69b..04a5fe5044b68868f35616104a56217051a035ae 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
@@ -212,6 +212,11 @@ public class Wolf extends TamableAnimal implements NeutralMob {
|
||||
@@ -226,6 +226,11 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
super.tame(player);
|
||||
}
|
||||
|
||||
@@ -411,10 +411,10 @@ index 1f69252653373b8eba46fdadac2141773ec72dff..8dc0a8a7b24b874d886626fa6ba75730
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(1, new FloatGoal(this));
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
|
||||
index 8bad919c44f7c4c4c524ea9ad5c8e38ab891bd08..dfc9b95b98d3811fd926c4747ec59a4a836ceb14 100644
|
||||
index 97ba327398d84db09c81cee860b40642b428ea48..ab3727c336cc7e268a2f7b2c04dac3e5d259b454 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
|
||||
@@ -125,6 +125,11 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
|
||||
@@ -123,6 +123,11 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
|
||||
return this.level().purpurConfig.axolotlBreedingTicks;
|
||||
}
|
||||
|
||||
@@ -427,10 +427,10 @@ index 8bad919c44f7c4c4c524ea9ad5c8e38ab891bd08..dfc9b95b98d3811fd926c4747ec59a4a
|
||||
public Map<String, Vector3f> getModelRotationValues() {
|
||||
return this.modelRotationValues;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
|
||||
index 0282498c7375a73b6982efb02f3cf3215f4211b0..5b3126168e9406f6cbd0607b6b7cc2de4ab68b65 100644
|
||||
index 84c04603d50e190430e4e6cf2a7b613537a0c341..412b44ea2d33ef68721b91da9f550738c6c780ba 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
|
||||
@@ -114,6 +114,11 @@ public class Goat extends Animal {
|
||||
@@ -113,6 +113,11 @@ public class Goat extends Animal {
|
||||
return this.level().purpurConfig.goatBreedingTicks;
|
||||
}
|
||||
|
||||
@@ -443,7 +443,7 @@ index 0282498c7375a73b6982efb02f3cf3215f4211b0..5b3126168e9406f6cbd0607b6b7cc2de
|
||||
protected Brain.Provider<Goat> brainProvider() {
|
||||
return Brain.provider(Goat.MEMORY_TYPES, Goat.SENSOR_TYPES);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java b/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java
|
||||
index 5b0b7c6bcd01d86552f1967489c5538780b69525..92fccfde550f4a01f860e3bcfcf953d3e6ae02e3 100644
|
||||
index 2990d50fd5209b272e0cfbd5dd633124048e8129..891ea1cca8495c08a1817096c8c4277f5311d6c7 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java
|
||||
@@ -42,6 +42,11 @@ public class Donkey extends AbstractChestedHorse {
|
||||
@@ -459,10 +459,10 @@ index 5b0b7c6bcd01d86552f1967489c5538780b69525..92fccfde550f4a01f860e3bcfcf953d3
|
||||
protected SoundEvent getAmbientSound() {
|
||||
return SoundEvents.DONKEY_AMBIENT;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java b/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java
|
||||
index 02748a7fdf41529fb86e916ae421a1317e1c3c7f..8e4c3c01613a8944095a099427eb12ced32987a1 100644
|
||||
index 16d4278d49dad84f72c968ca36914e93d46dc5f6..e623284b353831d1a540af40e139ac16091dcbf6 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java
|
||||
@@ -67,6 +67,11 @@ public class Horse extends AbstractHorse implements VariantHolder<Variant> {
|
||||
@@ -71,6 +71,11 @@ public class Horse extends AbstractHorse implements VariantHolder<Variant> {
|
||||
return this.level().purpurConfig.horseBreedingTicks;
|
||||
}
|
||||
|
||||
@@ -475,7 +475,7 @@ index 02748a7fdf41529fb86e916ae421a1317e1c3c7f..8e4c3c01613a8944095a099427eb12ce
|
||||
protected void randomizeAttributes(RandomSource random) {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue((double)generateMaxHealth(random::nextInt));
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
|
||||
index e11fc274f893d501235422839301a5128268199d..fb2b0ebd9314ab7fc911e842767bd60b1db92b96 100644
|
||||
index 81d614cf14512464b376575fd2d7e7fbf93d9e03..87ec5bd632353ce364de29c5d56460551b6a4139 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
|
||||
@@ -145,6 +145,11 @@ public class Llama extends AbstractChestedHorse implements VariantHolder<Llama.V
|
||||
@@ -491,7 +491,7 @@ index e11fc274f893d501235422839301a5128268199d..fb2b0ebd9314ab7fc911e842767bd60b
|
||||
return false;
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Mule.java b/src/main/java/net/minecraft/world/entity/animal/horse/Mule.java
|
||||
index 1de48560ac5a1db8845c98c812b2e9f9eb972123..53546e904948d03882e5f5b0a8d4256c72698afb 100644
|
||||
index 8c52cbd47b90da51f3d5b84b8df4113fecc598df..f2b909029672c17362b2acf0ea54aa19385cff8f 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Mule.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Mule.java
|
||||
@@ -41,6 +41,11 @@ public class Mule extends AbstractChestedHorse {
|
||||
@@ -507,7 +507,7 @@ index 1de48560ac5a1db8845c98c812b2e9f9eb972123..53546e904948d03882e5f5b0a8d4256c
|
||||
protected SoundEvent getAmbientSound() {
|
||||
return SoundEvents.MULE_AMBIENT;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
|
||||
index 250a51017cfbb42730ed736a112b269a258c19af..15d9e6f795044983aa872160874386e422e77377 100644
|
||||
index 5686bb0b537650e7d89292cef4e7e82bc7383748..7702af3c80ecc09318a25bb6c1acc5099fa10af4 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
|
||||
@@ -69,6 +69,11 @@ public class SkeletonHorse extends AbstractHorse {
|
||||
@@ -523,7 +523,7 @@ index 250a51017cfbb42730ed736a112b269a258c19af..15d9e6f795044983aa872160874386e4
|
||||
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0D).add(Attributes.MOVEMENT_SPEED, 0.20000000298023224D);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java b/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java
|
||||
index 0a6cf9f0f16882c8042a333852699129402f75f2..a3c80184abcc2d884b692b90d267ab33a5406349 100644
|
||||
index d22f429f3de9c68a189087f23a483a561454cc54..a7261719c4608bdfbc43072ea5948b950f1bea0d 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java
|
||||
@@ -72,6 +72,11 @@ public class TraderLlama extends Llama {
|
||||
@@ -539,10 +539,10 @@ index 0a6cf9f0f16882c8042a333852699129402f75f2..a3c80184abcc2d884b692b90d267ab33
|
||||
public boolean isTraderLlama() {
|
||||
return true;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java
|
||||
index 625fc14d6ea6049968c99931c412b36cbec92be1..78c6077f3909e29a7f51f22d4f6bdecd7144f598 100644
|
||||
index fbad3b11223ee5dac4af15584e5dfd808a149545..343632a030eb423367387750fabbdae53c4bb20b 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java
|
||||
@@ -58,6 +58,11 @@ public class ZombieHorse extends AbstractHorse {
|
||||
@@ -65,6 +65,11 @@ public class ZombieHorse extends AbstractHorse {
|
||||
return 6000;
|
||||
}
|
||||
|
||||
@@ -555,10 +555,10 @@ index 625fc14d6ea6049968c99931c412b36cbec92be1..78c6077f3909e29a7f51f22d4f6bdecd
|
||||
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0).add(Attributes.MOVEMENT_SPEED, 0.2F);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
index 39cf974313c7c0bdcd6599c6c8bec450efe0277a..0ce3acdc0bc72bba3b59d480e7e4135b3d794fca 100644
|
||||
index 0478469343c30d2b8d79bda78aef9ff1348de19b..bf657ed6a27ce5da5621a3e14b0bf41ea0c4c8c9 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
@@ -192,6 +192,11 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
@@ -190,6 +190,11 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.enderDragonMaxHealth);
|
||||
}
|
||||
|
||||
@@ -571,10 +571,10 @@ index 39cf974313c7c0bdcd6599c6c8bec450efe0277a..0ce3acdc0bc72bba3b59d480e7e4135b
|
||||
return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 200.0D);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
|
||||
index 3cc47b0e05621c913a3e8d04c653bafab4a86744..db5a8b93b9cefca4566d3abc2b4c55d4b4cc1003 100644
|
||||
index 2f0c44a0b97e9ad7591c5b66c2560f3e405c61c4..948e5747d8d280695dd903a29b9c9f9dae9a44c1 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
|
||||
@@ -118,6 +118,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
|
||||
@@ -121,6 +121,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.witherMaxHealth);
|
||||
}
|
||||
|
||||
@@ -587,18 +587,18 @@ index 3cc47b0e05621c913a3e8d04c653bafab4a86744..db5a8b93b9cefca4566d3abc2b4c55d4
|
||||
protected PathNavigation createNavigation(Level world) {
|
||||
FlyingPathNavigation navigationflying = new FlyingPathNavigation(this, world);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Blaze.java b/src/main/java/net/minecraft/world/entity/monster/Blaze.java
|
||||
index cfd7d5caeb8bacc5ce314bd700cb21e98a9f667b..8c6f5dcd2135873da7d58066c63a2b8378f81d31 100644
|
||||
index 220deda05517fd200070f823ad7af075240bb623..1d7e37677d78695f94e8c9e0cae4d64498ffd7ee 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Blaze.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Blaze.java
|
||||
@@ -33,7 +33,7 @@ public class Blaze extends Monster {
|
||||
public Blaze(EntityType<? extends Blaze> type, Level world) {
|
||||
super(type, world);
|
||||
this.moveControl = new org.purpurmc.purpur.controller.FlyingWithSpacebarMoveControllerWASD(this, 0.3F); // Purpur
|
||||
- this.setPathfindingMalus(BlockPathTypes.WATER, -1.0F);
|
||||
+ if (isSensitiveToWater()) this.setPathfindingMalus(BlockPathTypes.WATER, -1.0F); // Purpur
|
||||
this.setPathfindingMalus(BlockPathTypes.LAVA, 8.0F);
|
||||
this.setPathfindingMalus(BlockPathTypes.DANGER_FIRE, 0.0F);
|
||||
this.setPathfindingMalus(BlockPathTypes.DAMAGE_FIRE, 0.0F);
|
||||
- this.setPathfindingMalus(PathType.WATER, -1.0F);
|
||||
+ if (isSensitiveToWater()) this.setPathfindingMalus(PathType.WATER, -1.0F); // Purpur
|
||||
this.setPathfindingMalus(PathType.LAVA, 8.0F);
|
||||
this.setPathfindingMalus(PathType.DANGER_FIRE, 0.0F);
|
||||
this.setPathfindingMalus(PathType.DAMAGE_FIRE, 0.0F);
|
||||
@@ -153,7 +153,7 @@ public class Blaze extends Monster {
|
||||
|
||||
@Override
|
||||
@@ -609,10 +609,10 @@ index cfd7d5caeb8bacc5ce314bd700cb21e98a9f667b..8c6f5dcd2135873da7d58066c63a2b83
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/CaveSpider.java b/src/main/java/net/minecraft/world/entity/monster/CaveSpider.java
|
||||
index c8bac8cb738ad96003a014b468681c43512ac4c4..5dc0b3d04bfc01cd2cb004c18279840861dc4a57 100644
|
||||
index 562f73dd5e617c10382c50be86ce88f4de1a4fe1..0604b7c68373ed071ac22cabd7a961161ad228f8 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/CaveSpider.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/CaveSpider.java
|
||||
@@ -51,6 +51,11 @@ public class CaveSpider extends Spider {
|
||||
@@ -48,6 +48,11 @@ public class CaveSpider extends Spider {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.caveSpiderMaxHealth);
|
||||
}
|
||||
|
||||
@@ -625,10 +625,10 @@ index c8bac8cb738ad96003a014b468681c43512ac4c4..5dc0b3d04bfc01cd2cb004c182798408
|
||||
public boolean doHurtTarget(Entity target) {
|
||||
if (super.doHurtTarget(target)) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
|
||||
index 88a1f4ee23c29daec81e1807129e4facf3c19714..eb2c80a50bd29ad4ab9ece0ce5d71f3713700fba 100644
|
||||
index 9334a3b7d401c0f3a04bb7675f7baf9c7685688e..08743fede4abec62e7fdd34f22fd5bc9a9d07bc9 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
|
||||
@@ -264,6 +264,11 @@ public class Creeper extends Monster implements PowerableMob {
|
||||
@@ -265,6 +265,11 @@ public class Creeper extends Monster implements PowerableMob {
|
||||
return super.finalizeSpawn(world, difficulty, spawnReason, entityData, entityNbt);
|
||||
}
|
||||
|
||||
@@ -641,10 +641,10 @@ index 88a1f4ee23c29daec81e1807129e4facf3c19714..eb2c80a50bd29ad4ab9ece0ce5d71f37
|
||||
protected SoundEvent getHurtSound(DamageSource source) {
|
||||
return SoundEvents.CREEPER_HURT;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Drowned.java b/src/main/java/net/minecraft/world/entity/monster/Drowned.java
|
||||
index e6751c1a834453be66e891d7eb94bbb66f36008c..8850d8fc54d7025d323bc273a87a609baacea174 100644
|
||||
index b02cdbaa0455319b1e8a7e777e64ff4a56590388..f037d50f26f7532f11a71790448de7a71644b6ca 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java
|
||||
@@ -95,6 +95,11 @@ public class Drowned extends Zombie implements RangedAttackMob {
|
||||
@@ -98,6 +98,11 @@ public class Drowned extends Zombie implements RangedAttackMob {
|
||||
this.getAttribute(Attributes.SPAWN_REINFORCEMENTS_CHANCE).setBaseValue(this.random.nextDouble() * this.level().purpurConfig.drownedSpawnReinforcements);
|
||||
}
|
||||
|
||||
@@ -657,10 +657,10 @@ index e6751c1a834453be66e891d7eb94bbb66f36008c..8850d8fc54d7025d323bc273a87a609b
|
||||
public boolean jockeyOnlyBaby() {
|
||||
return level().purpurConfig.drownedJockeyOnlyBaby;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java b/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java
|
||||
index baa41e05f66457a6b4638915a1deab775665f01f..60787e45b605ce32b3b74ea23a6d9d9353f831a4 100644
|
||||
index 6152117a3e13252068e16945b4346a73a3090dda..3651a720e4ae20686a91b4420fe4879f765935e4 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java
|
||||
@@ -53,6 +53,11 @@ public class ElderGuardian extends Guardian {
|
||||
@@ -50,6 +50,11 @@ public class ElderGuardian extends Guardian {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.elderGuardianMaxHealth);
|
||||
}
|
||||
|
||||
@@ -673,19 +673,19 @@ index baa41e05f66457a6b4638915a1deab775665f01f..60787e45b605ce32b3b74ea23a6d9d93
|
||||
return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.30000001192092896D).add(Attributes.ATTACK_DAMAGE, 8.0D).add(Attributes.MAX_HEALTH, 80.0D);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
||||
index 93420c7e9b34b40845f12a0058e50e6fd809e6f7..065e7c0d1cd1d3bbf72b03dd73dd9e567aec642b 100644
|
||||
index de1fe3b115c1b3936b79c8900389542a8c8a2c90..17b044e58d2ed33ed16e60f4fd4f63b2ee3f854d 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
||||
@@ -95,7 +95,7 @@ public class EnderMan extends Monster implements NeutralMob {
|
||||
@@ -90,7 +90,7 @@ public class EnderMan extends Monster implements NeutralMob {
|
||||
|
||||
public EnderMan(EntityType<? extends EnderMan> type, Level world) {
|
||||
super(type, world);
|
||||
this.setMaxUpStep(1.0F);
|
||||
- this.setPathfindingMalus(BlockPathTypes.WATER, -1.0F);
|
||||
+ if (isSensitiveToWater()) this.setPathfindingMalus(BlockPathTypes.WATER, -1.0F); // Purpur
|
||||
- this.setPathfindingMalus(PathType.WATER, -1.0F);
|
||||
+ if (isSensitiveToWater()) this.setPathfindingMalus(PathType.WATER, -1.0F); // Purpur
|
||||
}
|
||||
|
||||
// Purpur start
|
||||
@@ -313,7 +313,7 @@ public class EnderMan extends Monster implements NeutralMob {
|
||||
@@ -298,7 +298,7 @@ public class EnderMan extends Monster implements NeutralMob {
|
||||
|
||||
@Override
|
||||
public boolean isSensitiveToWater() {
|
||||
@@ -695,10 +695,10 @@ index 93420c7e9b34b40845f12a0058e50e6fd809e6f7..065e7c0d1cd1d3bbf72b03dd73dd9e56
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Endermite.java b/src/main/java/net/minecraft/world/entity/monster/Endermite.java
|
||||
index 2cbc2f158b2bb65bfbf6b122a5b6e000252e51ce..7655e6d36e29ba8a64729e6a0688e81ffefa95fa 100644
|
||||
index 52e2588b32b56b51bdbbdf63a290b2a4a4b02c13..514354bfcd0608554fd515248975fb107eddf427 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Endermite.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Endermite.java
|
||||
@@ -65,6 +65,11 @@ public class Endermite extends Monster {
|
||||
@@ -60,6 +60,11 @@ public class Endermite extends Monster {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.endermiteMaxHealth);
|
||||
}
|
||||
|
||||
@@ -711,10 +711,10 @@ index 2cbc2f158b2bb65bfbf6b122a5b6e000252e51ce..7655e6d36e29ba8a64729e6a0688e81f
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(1, new FloatGoal(this));
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Evoker.java b/src/main/java/net/minecraft/world/entity/monster/Evoker.java
|
||||
index a7e77eae357e0fd146f340f8c3981f1a0d705b32..db3a49a979a9d84f29228ae975133c46216bfb75 100644
|
||||
index ce2e5c16db13accb082b3f2403661c65411c7a80..a3e88c252b39a78a0759623f188dbdc8aa2fcc0b 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Evoker.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Evoker.java
|
||||
@@ -73,6 +73,11 @@ public class Evoker extends SpellcasterIllager {
|
||||
@@ -74,6 +74,11 @@ public class Evoker extends SpellcasterIllager {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.evokerMaxHealth);
|
||||
}
|
||||
|
||||
@@ -727,10 +727,10 @@ index a7e77eae357e0fd146f340f8c3981f1a0d705b32..db3a49a979a9d84f29228ae975133c46
|
||||
protected void registerGoals() {
|
||||
super.registerGoals();
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Ghast.java b/src/main/java/net/minecraft/world/entity/monster/Ghast.java
|
||||
index edd3b7a855165eb090edb9ad95d36cdb649d231e..fa74eb7ee34f3f9b0026778bc0d37e977fc41d70 100644
|
||||
index 4bad5bdce2df5f5233465b30bcd3121b1dff0874..96f7c8fb4e49e7640aaa1adb466d67fc887a2dc5 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Ghast.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Ghast.java
|
||||
@@ -138,6 +138,11 @@ public class Ghast extends FlyingMob implements Enemy {
|
||||
@@ -136,6 +136,11 @@ public class Ghast extends FlyingMob implements Enemy {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.ghastMaxHealth);
|
||||
}
|
||||
|
||||
@@ -740,29 +740,29 @@ index edd3b7a855165eb090edb9ad95d36cdb649d231e..fa74eb7ee34f3f9b0026778bc0d37e97
|
||||
+ }
|
||||
+
|
||||
@Override
|
||||
protected void defineSynchedData() {
|
||||
super.defineSynchedData();
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Giant.java b/src/main/java/net/minecraft/world/entity/monster/Giant.java
|
||||
index 9b0c7681b30338141ba888ca5a66076cf856d946..c54c364e5c680982a8c4c0285a7dd5289d2546fa 100644
|
||||
index 3c1217d36522b1fd3d1a099d3a12d99016f34c4b..47e403a5986f77dbb3833acb9a3ea59e5c3740c6 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Giant.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Giant.java
|
||||
@@ -75,6 +75,11 @@ public class Giant extends Monster {
|
||||
}
|
||||
@@ -72,6 +72,11 @@ public class Giant extends Monster {
|
||||
}
|
||||
}
|
||||
+
|
||||
|
||||
+ @Override
|
||||
+ public boolean isSensitiveToWater() {
|
||||
+ return this.level().purpurConfig.giantTakeDamageFromWater;
|
||||
+ }
|
||||
// Purpur end
|
||||
|
||||
+
|
||||
@Override
|
||||
protected void initAttributes() {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.giantMaxHealth);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Guardian.java b/src/main/java/net/minecraft/world/entity/monster/Guardian.java
|
||||
index 52e2900f57979d25a62fbd23e08f5378cb6c0611..c696ffd7f4454ca79933cef04bf2b89e2a65b8cf 100644
|
||||
index 7fa4e9761c6aad83848bf5e80a213689d728921d..6b0ff4ded5e8b62572d5889f0be5e3148243ed7d 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Guardian.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Guardian.java
|
||||
@@ -99,6 +99,11 @@ public class Guardian extends Monster {
|
||||
@@ -95,6 +95,11 @@ public class Guardian extends Monster {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.guardianMaxHealth);
|
||||
}
|
||||
|
||||
@@ -775,10 +775,10 @@ index 52e2900f57979d25a62fbd23e08f5378cb6c0611..c696ffd7f4454ca79933cef04bf2b89e
|
||||
protected void registerGoals() {
|
||||
MoveTowardsRestrictionGoal pathfindergoalmovetowardsrestriction = new MoveTowardsRestrictionGoal(this, 1.0D);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Husk.java b/src/main/java/net/minecraft/world/entity/monster/Husk.java
|
||||
index a6d827b39ce9ca13103fb2f9940974e8aaaea037..f6d6df27c2ca7a33ed3ca8e299725b6a5c4aafc3 100644
|
||||
index 6673c0bff3a4e3d11a09e9dc8aeb0c2418dc7f59..cb96bd5769159e6c25968673ea07cd6d107cff46 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Husk.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Husk.java
|
||||
@@ -66,6 +66,11 @@ public class Husk extends Zombie {
|
||||
@@ -64,6 +64,11 @@ public class Husk extends Zombie {
|
||||
return level().purpurConfig.huskJockeyTryExistingChickens;
|
||||
}
|
||||
|
||||
@@ -791,10 +791,10 @@ index a6d827b39ce9ca13103fb2f9940974e8aaaea037..f6d6df27c2ca7a33ed3ca8e299725b6a
|
||||
return checkMonsterSpawnRules(type, world, spawnReason, pos, random) && (MobSpawnType.isSpawner(spawnReason) || world.canSeeSky(pos));
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java
|
||||
index c00530db0eff302c14dd9c52d1d988cbdd93e5a1..43d4cea02ae94a8842cd4c1370d1b80e45d2b13c 100644
|
||||
index c680e1efb73a6387aad6ecdab94f690c12451a32..e2393be574475377fd401d55ab0be9b483e705e6 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java
|
||||
@@ -83,6 +83,11 @@ public class Illusioner extends SpellcasterIllager implements RangedAttackMob {
|
||||
@@ -80,6 +80,11 @@ public class Illusioner extends SpellcasterIllager implements RangedAttackMob {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.illusionerMaxHealth);
|
||||
}
|
||||
|
||||
@@ -807,10 +807,10 @@ index c00530db0eff302c14dd9c52d1d988cbdd93e5a1..43d4cea02ae94a8842cd4c1370d1b80e
|
||||
protected void registerGoals() {
|
||||
super.registerGoals();
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java b/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java
|
||||
index 79264a538b64a473b5a50aa87011f1f6db617525..607ca8389746062ffba29b25ddab4ac02685b506 100644
|
||||
index 61cd97bc17802d3ab30999fc1f2b91e8b00652b2..adacdbf9fac7d1504be73e2e5a7526e8258a126d 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java
|
||||
@@ -67,6 +67,11 @@ public class MagmaCube extends Slime {
|
||||
@@ -66,6 +66,11 @@ public class MagmaCube extends Slime {
|
||||
return level().purpurConfig.magmaCubeAttackDamageCache;
|
||||
}
|
||||
|
||||
@@ -823,10 +823,10 @@ index 79264a538b64a473b5a50aa87011f1f6db617525..607ca8389746062ffba29b25ddab4ac0
|
||||
return Monster.createMonsterAttributes().add(Attributes.MOVEMENT_SPEED, 0.2F);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
|
||||
index 2bd1fce22cf01a441f75f918e036598e8fb3ee04..637b229817f9f2c3ad224f300b56a6bee4c8a341 100644
|
||||
index c15d75472d4d92baeb87a147832e17e363c360be..c52d40eb33a16e428c016a902faeb62aea0fd727 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
|
||||
@@ -138,6 +138,11 @@ public class Phantom extends FlyingMob implements Enemy {
|
||||
@@ -136,6 +136,11 @@ public class Phantom extends FlyingMob implements Enemy {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -839,10 +839,10 @@ index 2bd1fce22cf01a441f75f918e036598e8fb3ee04..637b229817f9f2c3ad224f300b56a6be
|
||||
public boolean isFlapping() {
|
||||
return (this.getUniqueFlapTickOffset() + this.tickCount) % Phantom.TICKS_PER_FLAP == 0;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Pillager.java b/src/main/java/net/minecraft/world/entity/monster/Pillager.java
|
||||
index c4af35ac6c8ac6e76adb061bf628f6cca2e7199c..cff87c0790e3afe43e7817969a05e8d79a550bbb 100644
|
||||
index 8c06e648df453fdd4eea0aa4843fada9b6375f81..a405764724d7f4b586d8510450a6258417495942 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Pillager.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Pillager.java
|
||||
@@ -88,6 +88,11 @@ public class Pillager extends AbstractIllager implements CrossbowAttackMob, Inve
|
||||
@@ -80,6 +80,11 @@ public class Pillager extends AbstractIllager implements CrossbowAttackMob, Inve
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.pillagerMaxHealth);
|
||||
}
|
||||
|
||||
@@ -855,10 +855,10 @@ index c4af35ac6c8ac6e76adb061bf628f6cca2e7199c..cff87c0790e3afe43e7817969a05e8d7
|
||||
protected void registerGoals() {
|
||||
super.registerGoals();
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
|
||||
index 056fa8b12368dac5d1a12962b8ee92e87e4149b3..db5e55f2bca1d0706d24ebf7c0b5c2592b04f0bc 100644
|
||||
index cebe89b0868043b819fb3e9987f899926961be52..e592b5ee3a0bfce987557defed8250682373fe65 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
|
||||
@@ -99,6 +99,11 @@ public class Ravager extends Raider {
|
||||
@@ -96,6 +96,11 @@ public class Ravager extends Raider {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.ravagerMaxHealth);
|
||||
}
|
||||
|
||||
@@ -871,7 +871,7 @@ index 056fa8b12368dac5d1a12962b8ee92e87e4149b3..db5e55f2bca1d0706d24ebf7c0b5c259
|
||||
protected void registerGoals() {
|
||||
super.registerGoals();
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Shulker.java b/src/main/java/net/minecraft/world/entity/monster/Shulker.java
|
||||
index 2d8d88a3552516becdd7adb11b7706fc9bddbf96..31284660a9718503a1ce474c56d993de3126a1ea 100644
|
||||
index 1793c5f4e33fbab9d64d81bb1767b0e9b248106f..5b4ad4f64488ca5a21312caa3d13318f429401ea 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Shulker.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Shulker.java
|
||||
@@ -119,6 +119,11 @@ public class Shulker extends AbstractGolem implements VariantHolder<Optional<Dye
|
||||
@@ -887,10 +887,10 @@ index 2d8d88a3552516becdd7adb11b7706fc9bddbf96..31284660a9718503a1ce474c56d993de
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java
|
||||
index 69f6306b91e535050fe8b22852503dfb0514f316..524ac7bf0ee006bb79517a113c16e290b94e325a 100644
|
||||
index a175144d5480b7af091787c6ab366fb3e8d70587..18172d30a7a03d0bdef02878261639c0655f9475 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java
|
||||
@@ -70,6 +70,11 @@ public class Silverfish extends Monster {
|
||||
@@ -65,6 +65,11 @@ public class Silverfish extends Monster {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.silverfishMaxHealth);
|
||||
}
|
||||
|
||||
@@ -903,26 +903,28 @@ index 69f6306b91e535050fe8b22852503dfb0514f316..524ac7bf0ee006bb79517a113c16e290
|
||||
protected void registerGoals() {
|
||||
this.friendsGoal = new Silverfish.SilverfishWakeUpFriendsGoal(this);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
|
||||
index 23b385205fe8d1245e65a42b8a356f0127ca2f78..eec2f8deb2675ed116939105dba60a68b05b7aac 100644
|
||||
index 1f751a9a079d59ee54afb43ec87284f0de8fa07a..a44896c87bb9f6f48cd9edeb31240692785b3a92 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
|
||||
@@ -48,6 +48,11 @@ public class Skeleton extends AbstractSkeleton {
|
||||
@@ -48,6 +48,13 @@ public class Skeleton extends AbstractSkeleton {
|
||||
this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.skeletonMaxHealth);
|
||||
}
|
||||
|
||||
+ // Purpur start
|
||||
+ @Override
|
||||
+ public boolean isSensitiveToWater() {
|
||||
+ return this.level().purpurConfig.skeletonTakeDamageFromWater;
|
||||
+ }
|
||||
+ // Purpur end
|
||||
+
|
||||
@Override
|
||||
protected void defineSynchedData() {
|
||||
super.defineSynchedData();
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Slime.java b/src/main/java/net/minecraft/world/entity/monster/Slime.java
|
||||
index fdfb0d1582e377e59e808e4388d660579377a286..380ea1b4ab8bf05ac5c039c77adaf73a57c4f1ee 100644
|
||||
index 8deddd8b543a30e295e6d55880d5051a63fef87b..0f79a99408e2d4c48c8a541f183b9201259f0b1f 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Slime.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Slime.java
|
||||
@@ -76,6 +76,11 @@ public class Slime extends Mob implements Enemy {
|
||||
@@ -75,6 +75,11 @@ public class Slime extends Mob implements Enemy {
|
||||
return level().purpurConfig.slimeRidable;
|
||||
}
|
||||
|
||||
@@ -935,10 +937,10 @@ index fdfb0d1582e377e59e808e4388d660579377a286..380ea1b4ab8bf05ac5c039c77adaf73a
|
||||
public boolean dismountsUnderwater() {
|
||||
return level().purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level().purpurConfig.slimeRidableInWater;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Spider.java b/src/main/java/net/minecraft/world/entity/monster/Spider.java
|
||||
index 3f67ab84485737291aec531441d88b74f7f7522c..d3f1d7b2a5721933b0a8d697f1f6456d96ff7b76 100644
|
||||
index 92276f6c015e60783f23f433466f50c918057f61..f2ec092b1b26ccc5a2a7868bb8add64b8280dd70 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Spider.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Spider.java
|
||||
@@ -75,6 +75,11 @@ public class Spider extends Monster {
|
||||
@@ -73,6 +73,11 @@ public class Spider extends Monster {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.spiderMaxHealth);
|
||||
}
|
||||
|
||||
@@ -967,18 +969,18 @@ index e1327ea96fe394b1c27dbe88c49596256e4e61d3..509c7d79340673e213910ea74a523733
|
||||
BlockPos blockPos = pos;
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Strider.java b/src/main/java/net/minecraft/world/entity/monster/Strider.java
|
||||
index 64503362c42daa39dcfa270bc50b0e2187f13a01..f0d7174eae482cef9311fb646f340af59fa1c743 100644
|
||||
index 741eedcd9e0e29b57d2b3caf5aef1aef18ae5118..585614f7825700da28c7c832bdfc6a9eb0b78b5f 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Strider.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Strider.java
|
||||
@@ -94,7 +94,7 @@ public class Strider extends Animal implements ItemSteerable, Saddleable {
|
||||
@@ -91,7 +91,7 @@ public class Strider extends Animal implements ItemSteerable, Saddleable {
|
||||
super(type, world);
|
||||
this.steering = new ItemBasedSteering(this.entityData, Strider.DATA_BOOST_TIME, Strider.DATA_SADDLE_ID);
|
||||
this.blocksBuilding = true;
|
||||
- this.setPathfindingMalus(BlockPathTypes.WATER, -1.0F);
|
||||
+ if (isSensitiveToWater()) this.setPathfindingMalus(BlockPathTypes.WATER, -1.0F); // Purpur
|
||||
this.setPathfindingMalus(BlockPathTypes.LAVA, 0.0F);
|
||||
this.setPathfindingMalus(BlockPathTypes.DANGER_FIRE, 0.0F);
|
||||
this.setPathfindingMalus(BlockPathTypes.DAMAGE_FIRE, 0.0F);
|
||||
- this.setPathfindingMalus(PathType.WATER, -1.0F);
|
||||
+ if (isSensitiveToWater()) this.setPathfindingMalus(PathType.WATER, -1.0F); // Purpur
|
||||
this.setPathfindingMalus(PathType.LAVA, 0.0F);
|
||||
this.setPathfindingMalus(PathType.DANGER_FIRE, 0.0F);
|
||||
this.setPathfindingMalus(PathType.DAMAGE_FIRE, 0.0F);
|
||||
@@ -442,7 +442,7 @@ public class Strider extends Animal implements ItemSteerable, Saddleable {
|
||||
|
||||
@Override
|
||||
@@ -989,26 +991,26 @@ index 64503362c42daa39dcfa270bc50b0e2187f13a01..f0d7174eae482cef9311fb646f340af5
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Vex.java b/src/main/java/net/minecraft/world/entity/monster/Vex.java
|
||||
index 0dae7c87a9f61a7d8e493537e0aada78370bb334..fae7e1e780d0429341adf21afd57ab230b06a0a7 100644
|
||||
index ca6c688b31240863dfc5095c7b6187583cf2f6ce..d85e4baa892ebd987993bd39c895e5f1d310e30e 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Vex.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Vex.java
|
||||
@@ -112,6 +112,11 @@ public class Vex extends Monster implements TraceableEntity {
|
||||
@@ -107,6 +107,11 @@ public class Vex extends Monster implements TraceableEntity {
|
||||
public void initAttributes() {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.vexMaxHealth);
|
||||
}
|
||||
|
||||
+
|
||||
+ @Override
|
||||
+ public boolean isSensitiveToWater() {
|
||||
+ return this.level().purpurConfig.vexTakeDamageFromWater;
|
||||
+ }
|
||||
+
|
||||
// Purpur end
|
||||
|
||||
@Override
|
||||
protected float getStandingEyeHeight(Pose pose, EntityDimensions dimensions) {
|
||||
return dimensions.height - 0.28125F;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
|
||||
index f1acdeb3a851c0d622c5ba8ab760a70a6f97f90e..1042f0804ba1b89680d625354a2de184b91da437 100644
|
||||
index 61f1778d454cebaab5580179614ff48ab67b8fe6..ded53c16dfd850c9c520878bc75414ebc188ea8a 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
|
||||
@@ -78,6 +78,11 @@ public class Vindicator extends AbstractIllager {
|
||||
@@ -72,6 +72,11 @@ public class Vindicator extends AbstractIllager {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.vindicatorMaxHealth);
|
||||
}
|
||||
|
||||
@@ -1021,10 +1023,10 @@ index f1acdeb3a851c0d622c5ba8ab760a70a6f97f90e..1042f0804ba1b89680d625354a2de184
|
||||
protected void registerGoals() {
|
||||
super.registerGoals();
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Witch.java b/src/main/java/net/minecraft/world/entity/monster/Witch.java
|
||||
index 0d33b8362f94718d63d86abce05e0b0efc21e653..d6b34988ee884c4636ebd7f40e3e6a3084525316 100644
|
||||
index d99c52b4f0326421f90162d4894044394b3c49c4..51d35e7f510c76d1fc18c67dbb56707207b39e4e 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Witch.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Witch.java
|
||||
@@ -81,6 +81,11 @@ public class Witch extends Raider implements RangedAttackMob {
|
||||
@@ -77,6 +77,11 @@ public class Witch extends Raider implements RangedAttackMob {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.witchMaxHealth);
|
||||
}
|
||||
|
||||
@@ -1037,10 +1039,10 @@ index 0d33b8362f94718d63d86abce05e0b0efc21e653..d6b34988ee884c4636ebd7f40e3e6a30
|
||||
protected void registerGoals() {
|
||||
super.registerGoals();
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
|
||||
index afad65b86e762187d0779cfee2b0b1089066d53f..986183cab6c7d48a4716440dcc764bdd88373720 100644
|
||||
index 9fd9b95cbec010dafec261b5923938c5b39cd1e6..9865cc694e6ef02543a4b04cde37be3dc285475b 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
|
||||
@@ -57,6 +57,11 @@ public class WitherSkeleton extends AbstractSkeleton {
|
||||
@@ -54,6 +54,11 @@ public class WitherSkeleton extends AbstractSkeleton {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.witherSkeletonMaxHealth);
|
||||
}
|
||||
|
||||
@@ -1053,10 +1055,10 @@ index afad65b86e762187d0779cfee2b0b1089066d53f..986183cab6c7d48a4716440dcc764bdd
|
||||
protected void registerGoals() {
|
||||
this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractPiglin.class, true));
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zoglin.java b/src/main/java/net/minecraft/world/entity/monster/Zoglin.java
|
||||
index 62d0c4dcb2992b665e473726a09d3fa457420395..763b28965418f2146a64c1ecde41ac536502936a 100644
|
||||
index 698076b0e958aadf9736d7753df64a73dd3c17cd..76d47ba17dd140572a0be40dfda18c24851198bb 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Zoglin.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Zoglin.java
|
||||
@@ -104,6 +104,11 @@ public class Zoglin extends Monster implements Enemy, HoglinBase {
|
||||
@@ -102,6 +102,11 @@ public class Zoglin extends Monster implements Enemy, HoglinBase {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.zoglinMaxHealth);
|
||||
}
|
||||
|
||||
@@ -1069,10 +1071,10 @@ index 62d0c4dcb2992b665e473726a09d3fa457420395..763b28965418f2146a64c1ecde41ac53
|
||||
protected Brain.Provider<Zoglin> brainProvider() {
|
||||
return Brain.provider(MEMORY_TYPES, SENSOR_TYPES);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
|
||||
index 4df125607985b315b078253f7ea889626e743197..94b92c6e588f871d4b0d86bb8f860a99e473a4ea 100644
|
||||
index 3d42b2ea26217243dba96174ff0eadbcdd81a6cd..de7a74f1e5181373da8dcc639245f35f77f4f09b 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
|
||||
@@ -141,6 +141,11 @@ public class Zombie extends Monster {
|
||||
@@ -138,6 +138,11 @@ public class Zombie extends Monster {
|
||||
return level().purpurConfig.zombieJockeyTryExistingChickens;
|
||||
}
|
||||
|
||||
@@ -1085,10 +1087,10 @@ index 4df125607985b315b078253f7ea889626e743197..94b92c6e588f871d4b0d86bb8f860a99
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
|
||||
index 259cbfc821b12663876ff2821635ce0ccd7e33c6..438302f6705bcf3d60f27dde279de010bd95aad4 100644
|
||||
index ffe2144e307acebd4a8bed043db0ee0bb6bf611c..2ec3a09135f85a5de68e77511f3f213adf08712c 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
|
||||
@@ -109,6 +109,11 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
|
||||
@@ -107,6 +107,11 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
|
||||
this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.SPAWN_REINFORCEMENTS_CHANCE).setBaseValue(this.random.nextDouble() * this.level().purpurConfig.zombieVillagerSpawnReinforcements);
|
||||
}
|
||||
|
||||
@@ -1101,10 +1103,10 @@ index 259cbfc821b12663876ff2821635ce0ccd7e33c6..438302f6705bcf3d60f27dde279de010
|
||||
public boolean jockeyOnlyBaby() {
|
||||
return level().purpurConfig.zombieVillagerJockeyOnlyBaby;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
|
||||
index e73fb1027acd592c7e028e1797042fe38c6c04a3..e6b653c75a4c3306e06bfcadb4c4b53bccd5aad2 100644
|
||||
index 6be751e2d434982a35bbbece4f4fc4631fb3d8e0..bd2953448e568b1a20bcc6a889cef83b88418548 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
|
||||
@@ -86,6 +86,11 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
|
||||
@@ -84,6 +84,11 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.zombifiedPiglinMaxHealth);
|
||||
}
|
||||
|
||||
@@ -1117,10 +1119,10 @@ index e73fb1027acd592c7e028e1797042fe38c6c04a3..e6b653c75a4c3306e06bfcadb4c4b53b
|
||||
public boolean jockeyOnlyBaby() {
|
||||
return level().purpurConfig.zombifiedPiglinJockeyOnlyBaby;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
||||
index 89b108a248509a72ddd81fdaf70053931f487368..5a42325d4acd32d1e8bd2f8dff1b43f3ef160535 100644
|
||||
index a770ae0e13c4dad296dfb8f33259408ee1531c70..9ca294d5177ec7d541433d644d2fb90d937b011c 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
||||
@@ -119,6 +119,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
|
||||
@@ -117,6 +117,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
|
||||
return this.level().purpurConfig.hoglinBreedingTicks;
|
||||
}
|
||||
|
||||
@@ -1133,10 +1135,10 @@ index 89b108a248509a72ddd81fdaf70053931f487368..5a42325d4acd32d1e8bd2f8dff1b43f3
|
||||
public boolean canBeLeashed(Player player) {
|
||||
return !this.isLeashed();
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
|
||||
index 03b58860ecb72976ecce99f368d16942557236b9..20ecfcbe948d02bb61b8f673f5330d2f9e60c387 100644
|
||||
index 57089ba787731ddda853dce959ba015abe135bfd..e5b24bd8e31ca5748185181bb6741760c86a92a1 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
|
||||
@@ -118,6 +118,11 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
|
||||
@@ -116,6 +116,11 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.piglinMaxHealth);
|
||||
}
|
||||
|
||||
@@ -1149,10 +1151,10 @@ index 03b58860ecb72976ecce99f368d16942557236b9..20ecfcbe948d02bb61b8f673f5330d2f
|
||||
public void addAdditionalSaveData(CompoundTag nbt) {
|
||||
super.addAdditionalSaveData(nbt);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinBrute.java b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
|
||||
index dc70d4819fbc2aa5b6a026f2aff2f52bc836901c..532b14a6330a72e06b47ababee012762b8f76884 100644
|
||||
index 362f3fddd8090799278f4b4e58c5af5de00315f2..6c7e0f177382cb6329002dcde270f6ce51f08f9f 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
|
||||
@@ -85,6 +85,11 @@ public class PiglinBrute extends AbstractPiglin {
|
||||
@@ -84,6 +84,11 @@ public class PiglinBrute extends AbstractPiglin {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.piglinBruteMaxHealth);
|
||||
}
|
||||
|
||||
@@ -1165,10 +1167,10 @@ index dc70d4819fbc2aa5b6a026f2aff2f52bc836901c..532b14a6330a72e06b47ababee012762
|
||||
return Monster.createMonsterAttributes().add(Attributes.MAX_HEALTH, 50.0).add(Attributes.MOVEMENT_SPEED, 0.35F).add(Attributes.ATTACK_DAMAGE, 7.0);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||
index 430e660f74ee523d0bb98e21784f32158495de7a..870330f95fa1c1b4b8fb5f5e59a9770fb9389eb5 100644
|
||||
index f7d8f672a680cf2dfebba5677f97895e4a8c209f..c9cfbc8817fe62e22cb165f856ed8569668c0a60 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||
@@ -191,6 +191,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -189,6 +189,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
return level().purpurConfig.villagerCanBeLeashed && !this.isLeashed();
|
||||
}
|
||||
|
||||
@@ -1181,7 +1183,7 @@ index 430e660f74ee523d0bb98e21784f32158495de7a..870330f95fa1c1b4b8fb5f5e59a9770f
|
||||
public Brain<Villager> getBrain() {
|
||||
return (Brain<Villager>) super.getBrain(); // CraftBukkit - decompile error
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||
index 6f30c22fe0058320b995570c9af7b15ae917dd76..381e86286eabdbc254cd8901c498dd781521ed4d 100644
|
||||
index 9d5eaaf1869a3ecb61947ab0c09af558fa1cd283..c192f4cc5fd9cb0cf40083c4297f649ab909649d 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||
@@ -98,6 +98,11 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
|
||||
@@ -7,7 +7,7 @@ Adds a configuration option that ensures a player in Creative always tames a tam
|
||||
This essentially allows Creative mode players to tame animals on their first try.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/RunAroundLikeCrazyGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/RunAroundLikeCrazyGoal.java
|
||||
index b0944fa1f3849dd24cd010fa0a6638f5fd7179d1..a3074ec9b430c9d0a0ef33fe353db643849fab7d 100644
|
||||
index b0944fa1f3849dd24cd010fa0a6638f5fd7179d1..d409ae987088df3d47192128401d7491aaabc87c 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/ai/goal/RunAroundLikeCrazyGoal.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/ai/goal/RunAroundLikeCrazyGoal.java
|
||||
@@ -67,7 +67,7 @@ public class RunAroundLikeCrazyGoal extends Goal {
|
||||
@@ -15,49 +15,49 @@ index b0944fa1f3849dd24cd010fa0a6638f5fd7179d1..a3074ec9b430c9d0a0ef33fe353db643
|
||||
int j = this.horse.getMaxTemper();
|
||||
|
||||
- if (j > 0 && this.horse.getRandom().nextInt(j) < i && !CraftEventFactory.callEntityTameEvent(this.horse, ((CraftHumanEntity) this.horse.getBukkitEntity().getPassenger()).getHandle()).isCancelled()) { // CraftBukkit - fire EntityTameEvent
|
||||
+ if ((this.horse.level().purpurConfig.alwaysTameInCreative && ((Player) entity).getAbilities().instabuild) || (j > 0 && this.horse.getRandom().nextInt(j) < i && !CraftEventFactory.callEntityTameEvent(this.horse, ((CraftHumanEntity) this.horse.getBukkitEntity().getPassenger()).getHandle()).isCancelled())) { // CraftBukkit - fire EntityTameEvent // Purpur
|
||||
+ if ((this.horse.level().purpurConfig.alwaysTameInCreative && entityhuman.hasInfiniteMaterials()) || (j > 0 && this.horse.getRandom().nextInt(j) < i && !CraftEventFactory.callEntityTameEvent(this.horse, ((CraftHumanEntity) this.horse.getBukkitEntity().getPassenger()).getHandle()).isCancelled())) { // CraftBukkit - fire EntityTameEvent // Purpur
|
||||
this.horse.tameWithName(entityhuman);
|
||||
return;
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main/java/net/minecraft/world/entity/animal/Cat.java
|
||||
index a4b3d724f30ccf0eddfb41d6997d0aa9b1847b7a..d9b19f74b377721ed78cd0ea24d25e412cef1398 100644
|
||||
index 446aec4d10e614f136fe6ae4bb5a7dd0ac6d0f18..17aaeb734a5c1b16bd7771c909958f3acc956b7a 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Cat.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java
|
||||
@@ -471,7 +471,7 @@ public class Cat extends TamableAnimal implements VariantHolder<CatVariant> {
|
||||
}
|
||||
} else if (this.isFood(itemstack)) {
|
||||
this.usePlayerItem(player, hand, itemstack);
|
||||
- if (this.random.nextInt(3) == 0 && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTameEvent(this, player).isCancelled()) { // CraftBukkit
|
||||
+ if ((this.level().purpurConfig.alwaysTameInCreative && player.getAbilities().instabuild) || (this.random.nextInt(3) == 0 && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTameEvent(this, player).isCancelled())) { // CraftBukkit // Purpur
|
||||
this.tame(player);
|
||||
this.setOrderedToSit(true);
|
||||
this.level().broadcastEntityEvent(this, (byte) 7);
|
||||
@@ -522,7 +522,7 @@ public class Cat extends TamableAnimal implements VariantHolder<Holder<CatVarian
|
||||
}
|
||||
|
||||
private void tryToTame(Player player) {
|
||||
- if (this.random.nextInt(3) == 0 && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTameEvent(this, player).isCancelled()) { // CraftBukkit
|
||||
+ if ((this.level().purpurConfig.alwaysTameInCreative && player.hasInfiniteMaterials()) || this.random.nextInt(3) == 0 && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTameEvent(this, player).isCancelled()) { // CraftBukkit
|
||||
this.tame(player);
|
||||
this.setOrderedToSit(true);
|
||||
this.level().broadcastEntityEvent(this, (byte) 7);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Parrot.java b/src/main/java/net/minecraft/world/entity/animal/Parrot.java
|
||||
index a6189e785af61d1cbed2022d68312d9fa69f68a8..242f30ed7855cd7b66c20df4aa424155dcd0e3a6 100644
|
||||
index 7b139028ae5c590960e6b8a74b6ba667f3db7f5d..490d7f8ac402f50a2f2f90ca032169784a402c0f 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Parrot.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Parrot.java
|
||||
@@ -336,7 +336,7 @@ public class Parrot extends ShoulderRidingEntity implements VariantHolder<Parrot
|
||||
@@ -321,7 +321,7 @@ public class Parrot extends ShoulderRidingEntity implements VariantHolder<Parrot
|
||||
}
|
||||
|
||||
if (!this.level().isClientSide) {
|
||||
- if (this.random.nextInt(10) == 0 && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTameEvent(this, player).isCancelled()) { // CraftBukkit
|
||||
+ if ((this.level().purpurConfig.alwaysTameInCreative && player.getAbilities().instabuild) || (this.random.nextInt(10) == 0 && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTameEvent(this, player).isCancelled())) { // CraftBukkit // Purpur
|
||||
+ if ((this.level().purpurConfig.alwaysTameInCreative && player.hasInfiniteMaterials()) || (this.random.nextInt(10) == 0 && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTameEvent(this, player).isCancelled())) { // CraftBukkit // Purpur
|
||||
this.tame(player);
|
||||
this.level().broadcastEntityEvent(this, (byte) 7);
|
||||
} else {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
index 8dc0a8a7b24b874d886626fa6ba757308b0d721b..69caba70009268f7af7299f8a1dd84dc43caddf8 100644
|
||||
index 04a5fe5044b68868f35616104a56217051a035ae..5e9678ad46de7faf3136eec49e3b68b14cdfe4a4 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
@@ -532,7 +532,7 @@ public class Wolf extends TamableAnimal implements NeutralMob {
|
||||
}
|
||||
@@ -645,7 +645,7 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
|
||||
// CraftBukkit - added event call and isCancelled check.
|
||||
- if (this.random.nextInt(3) == 0 && !CraftEventFactory.callEntityTameEvent(this, player).isCancelled()) {
|
||||
+ if ((this.level().purpurConfig.alwaysTameInCreative && player.getAbilities().instabuild) || (this.random.nextInt(3) == 0 && !CraftEventFactory.callEntityTameEvent(this, player).isCancelled())) { // Purpur
|
||||
this.tame(player);
|
||||
this.navigation.stop();
|
||||
this.setTarget((LivingEntity) null);
|
||||
private void tryToTame(Player player) {
|
||||
// CraftBukkit - added event call and isCancelled check.
|
||||
- if (this.random.nextInt(3) == 0 && !CraftEventFactory.callEntityTameEvent(this, player).isCancelled()) {
|
||||
+ if ((this.level().purpurConfig.alwaysTameInCreative && player.hasInfiniteMaterials()) || this.random.nextInt(3) == 0 && !CraftEventFactory.callEntityTameEvent(this, player).isCancelled()) {
|
||||
this.tame(player);
|
||||
this.navigation.stop();
|
||||
this.setTarget((LivingEntity) null);
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index b4b9520cbd113abfd8cb99168c7f90ad3c83c563..f1e99cc608fb9afab44c2c960c7b74468ec62c07 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] End crystal explosion options
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java
|
||||
index c0c8bdfbab17d8a10d616e2625ebfa7babf5fab3..24ad1bae912fa6ee82ea8b6bdbb0af664dc1006c 100644
|
||||
index 2bac39e5ba09e08d23d2a4be37f7fe0da0ce71a6..8c6ce06a1845832c8b0de654657788d2daf6b71b 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java
|
||||
@@ -49,6 +49,22 @@ public class EndCrystal extends Entity {
|
||||
@@ -31,7 +31,7 @@ index c0c8bdfbab17d8a10d616e2625ebfa7babf5fab3..24ad1bae912fa6ee82ea8b6bdbb0af66
|
||||
@Override
|
||||
protected Entity.MovementEmission getMovementEmission() {
|
||||
return Entity.MovementEmission.NONE;
|
||||
@@ -173,16 +189,18 @@ public class EndCrystal extends Entity {
|
||||
@@ -170,16 +186,18 @@ public class EndCrystal extends Entity {
|
||||
}
|
||||
// CraftBukkit end
|
||||
if (!source.is(DamageTypeTags.IS_EXPLOSION)) {
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Configs for if Wither/Ender Dragon can ride vehicles
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
index 0ce3acdc0bc72bba3b59d480e7e4135b3d794fca..ff4b188084d43af9e8ed60e6a77996018e589807 100644
|
||||
index bf657ed6a27ce5da5621a3e14b0bf41ea0c4c8c9..3da1f7a6e443954e4976dd59391ea19b9c903cf7 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
@@ -1190,6 +1190,7 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
@@ -1188,6 +1188,7 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
|
||||
@Override
|
||||
protected boolean canRide(Entity entity) {
|
||||
@@ -17,10 +17,10 @@ index 0ce3acdc0bc72bba3b59d480e7e4135b3d794fca..ff4b188084d43af9e8ed60e6a7799601
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
|
||||
index db5a8b93b9cefca4566d3abc2b4c55d4b4cc1003..06f4bbbbdf3a3c49035df9edc258e6bda87b53fc 100644
|
||||
index 948e5747d8d280695dd903a29b9c9f9dae9a44c1..6752a0039fac041e9bdd25327cdf20d3f1922bd6 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
|
||||
@@ -740,6 +740,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
|
||||
@@ -730,6 +730,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
|
||||
|
||||
@Override
|
||||
protected boolean canRide(Entity entity) {
|
||||
@@ -5,11 +5,11 @@ Subject: [PATCH] Dont run with scissors!
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index d662faa62c73d332682dc691c5401bec3a47bff1..ccd830286153405206110334cf58323315c02b7e 100644
|
||||
index 9274a9eb5597a84519dd81367fa6f42a20d7e56c..fea36f5e4f64281459d62f4a6a4a7dd129706150 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -1653,6 +1653,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
this.player.resetFallDistance();
|
||||
@@ -1633,6 +1633,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
this.player.resetCurrentImpulseContext();
|
||||
}
|
||||
|
||||
+ // Purpur Start
|
||||
@@ -22,7 +22,7 @@ index d662faa62c73d332682dc691c5401bec3a47bff1..ccd830286153405206110334cf583233
|
||||
this.player.checkMovementStatistics(this.player.getX() - d3, this.player.getY() - d4, this.player.getZ() - d5);
|
||||
this.lastGoodX = this.player.getX();
|
||||
this.lastGoodY = this.player.getY();
|
||||
@@ -1692,6 +1699,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
@@ -1672,6 +1679,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
return false;
|
||||
}
|
||||
// Paper end - optimise out extra getCubes
|
||||
@@ -37,10 +37,10 @@ index d662faa62c73d332682dc691c5401bec3a47bff1..ccd830286153405206110334cf583233
|
||||
AABB axisalignedbb1 = this.player.getBoundingBox().move(newX - this.player.getX(), newY - this.player.getY(), newZ - this.player.getZ());
|
||||
Iterable<VoxelShape> iterable = world.getCollisions(this.player, axisalignedbb1.deflate(9.999999747378752E-6D));
|
||||
diff --git a/src/main/java/net/minecraft/world/damagesource/CombatTracker.java b/src/main/java/net/minecraft/world/damagesource/CombatTracker.java
|
||||
index 7056c8ca7a87748f14142c6af274aae492f29f1c..d8c5fb5432f0b09124d7f4dbc7b50859c1a84cc7 100644
|
||||
index 99a7e9eb75231c15bd8bb24fbb4e296bc9fdedff..a375d40ec6365ba8704ba3ece22dd5b2de9857b5 100644
|
||||
--- a/src/main/java/net/minecraft/world/damagesource/CombatTracker.java
|
||||
+++ b/src/main/java/net/minecraft/world/damagesource/CombatTracker.java
|
||||
@@ -97,6 +97,11 @@ public class CombatTracker {
|
||||
@@ -98,6 +98,11 @@ public class CombatTracker {
|
||||
Component component = ComponentUtils.wrapInSquareBrackets(Component.translatable(string + ".link")).withStyle(INTENTIONAL_GAME_DESIGN_STYLE);
|
||||
return Component.translatable(string + ".message", this.mob.getDisplayName(), component);
|
||||
} else {
|
||||
@@ -53,10 +53,10 @@ index 7056c8ca7a87748f14142c6af274aae492f29f1c..d8c5fb5432f0b09124d7f4dbc7b50859
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/damagesource/DamageSource.java b/src/main/java/net/minecraft/world/damagesource/DamageSource.java
|
||||
index 61741b6ecf4fa2b0d4a1c44c825e8fcdeb412c0a..5cbbff174b6f10bebe1923c10f84fc26e4d3000e 100644
|
||||
index 43b9a7e8ed9043c4d3f8295258a27209ddb4474b..9c18134cb5474a7f3be2337036c7af253ec0b21e 100644
|
||||
--- a/src/main/java/net/minecraft/world/damagesource/DamageSource.java
|
||||
+++ b/src/main/java/net/minecraft/world/damagesource/DamageSource.java
|
||||
@@ -27,6 +27,7 @@ public class DamageSource {
|
||||
@@ -28,6 +28,7 @@ public class DamageSource {
|
||||
private boolean withSweep = false;
|
||||
private boolean melting = false;
|
||||
private boolean poison = false;
|
||||
@@ -64,7 +64,7 @@ index 61741b6ecf4fa2b0d4a1c44c825e8fcdeb412c0a..5cbbff174b6f10bebe1923c10f84fc26
|
||||
@Nullable
|
||||
private Entity customEventDamager = null; // This field is a helper for when causing entity damage is not set by vanilla // Paper - fix DamageSource API
|
||||
|
||||
@@ -57,6 +58,17 @@ public class DamageSource {
|
||||
@@ -58,6 +59,17 @@ public class DamageSource {
|
||||
return this.poison;
|
||||
}
|
||||
|
||||
@@ -82,7 +82,7 @@ index 61741b6ecf4fa2b0d4a1c44c825e8fcdeb412c0a..5cbbff174b6f10bebe1923c10f84fc26
|
||||
// Paper start - fix DamageSource API
|
||||
public @Nullable Entity getCustomEventDamager() {
|
||||
return (this.customEventDamager != null) ? this.customEventDamager : this.directEntity;
|
||||
@@ -100,6 +112,7 @@ public class DamageSource {
|
||||
@@ -101,6 +113,7 @@ public class DamageSource {
|
||||
damageSource.withSweep = this.isSweep();
|
||||
damageSource.poison = this.isPoison();
|
||||
damageSource.melting = this.isMelting();
|
||||
@@ -91,7 +91,7 @@ index 61741b6ecf4fa2b0d4a1c44c825e8fcdeb412c0a..5cbbff174b6f10bebe1923c10f84fc26
|
||||
}
|
||||
// CraftBukkit end
|
||||
diff --git a/src/main/java/net/minecraft/world/damagesource/DamageSources.java b/src/main/java/net/minecraft/world/damagesource/DamageSources.java
|
||||
index a47473c9875c70c52b9a61e0156e55961f34c694..23c7f22dacc570837120c28e0a57f8c9155e92fc 100644
|
||||
index 8ba60de95845f4d56f299c5f1b2b5163461ba38d..b3d7790fa3e873f2e9b8fa4e4e749ef9c06973b9 100644
|
||||
--- a/src/main/java/net/minecraft/world/damagesource/DamageSources.java
|
||||
+++ b/src/main/java/net/minecraft/world/damagesource/DamageSources.java
|
||||
@@ -44,11 +44,13 @@ public class DamageSources {
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] One Punch Man!
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
index 787a2d1b8c887e17f9f9565c292c585e996ca1d2..e4592de07e66e2eb89b5555d747253203c84c608 100644
|
||||
index dc1c7c55fd13cc1a8ade803bfb1b7c385cf29132..e8a92e4941ab7d638d3e3ac5ad8d6314bede17c0 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -2356,6 +2356,20 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
@@ -2382,6 +2382,20 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ index 1fb1e729d6879568d8b4943071fa940325b2e5b0..b61d659dc48f795c7f2d62044c245e34
|
||||
// CraftBukkit end
|
||||
this.level().playSound((Player) null, this.getX(), this.getY(), this.getZ(), SoundEvents.PLAYER_TELEPORT, SoundSource.PLAYERS);
|
||||
diff --git a/src/main/java/net/minecraft/world/item/EnderpearlItem.java b/src/main/java/net/minecraft/world/item/EnderpearlItem.java
|
||||
index 8c8cf8705107c95d9a4eab28b5845ae13c4ffb3c..a0c2650678848416829c7185a530fcd63bb68039 100644
|
||||
index 20a91d798d31a71b3c05efa2cc5bda55494e26cc..fc62754f93bd11a10c28b8b7b116e9fff70a5c7b 100644
|
||||
--- a/src/main/java/net/minecraft/world/item/EnderpearlItem.java
|
||||
+++ b/src/main/java/net/minecraft/world/item/EnderpearlItem.java
|
||||
@@ -36,7 +36,7 @@ public class EnderpearlItem extends Item {
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Config to ignore nearby mobs when sleeping
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
index b7fedc1eb9f3d94cba8ac9d7da72fff03af723f0..6df13e5920a9191751ada925c272e2dba30396cb 100644
|
||||
index 9bf6457ed689d38393c17732dc9229d9fc297584..0957b0fba3ffbc3571e5aef7eb2b550dab19c0cf 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -1428,7 +1428,7 @@ public class ServerPlayer extends Player {
|
||||
@@ -1505,7 +1505,7 @@ public class ServerPlayer extends Player {
|
||||
return entitymonster.isPreventingPlayerRest(this);
|
||||
});
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Add back player spawned endermite API
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Endermite.java b/src/main/java/net/minecraft/world/entity/monster/Endermite.java
|
||||
index 7655e6d36e29ba8a64729e6a0688e81ffefa95fa..67f3928f4a03a8d546c55e46a1f094a354ac412d 100644
|
||||
index 514354bfcd0608554fd515248975fb107eddf427..c5fcefc6810c2127d6a0a48f95c50c2e15a4dd52 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Endermite.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Endermite.java
|
||||
@@ -37,6 +37,7 @@ public class Endermite extends Monster {
|
||||
@@ -32,6 +32,7 @@ public class Endermite extends Monster {
|
||||
|
||||
private static final int MAX_LIFE = 2400;
|
||||
public int life;
|
||||
@@ -16,7 +16,7 @@ index 7655e6d36e29ba8a64729e6a0688e81ffefa95fa..67f3928f4a03a8d546c55e46a1f094a3
|
||||
|
||||
public Endermite(EntityType<? extends Endermite> type, Level world) {
|
||||
super(type, world);
|
||||
@@ -70,6 +71,14 @@ public class Endermite extends Monster {
|
||||
@@ -65,6 +66,14 @@ public class Endermite extends Monster {
|
||||
return this.level().purpurConfig.endermiteTakeDamageFromWater;
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ index 7655e6d36e29ba8a64729e6a0688e81ffefa95fa..67f3928f4a03a8d546c55e46a1f094a3
|
||||
@Override
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(1, new FloatGoal(this));
|
||||
@@ -122,12 +131,14 @@ public class Endermite extends Monster {
|
||||
@@ -112,12 +121,14 @@ public class Endermite extends Monster {
|
||||
public void readAdditionalSaveData(CompoundTag nbt) {
|
||||
super.readAdditionalSaveData(nbt);
|
||||
this.life = nbt.getInt("Lifetime");
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Config Enderman aggressiveness towards Endermites
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
||||
index 065e7c0d1cd1d3bbf72b03dd73dd9e567aec642b..df3e07c6a3ea04b0709f3fdb0d8e96858f3bb728 100644
|
||||
index 17b044e58d2ed33ed16e60f4fd4f63b2ee3f854d..4821aec304399c64cbcff741334567a08b840c0a 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
||||
@@ -134,7 +134,7 @@ public class EnderMan extends Monster implements NeutralMob {
|
||||
@@ -129,7 +129,7 @@ public class EnderMan extends Monster implements NeutralMob {
|
||||
this.targetSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
|
||||
this.targetSelector.addGoal(1, new EnderMan.EndermanLookForPlayerGoal(this, this::isAngryAt));
|
||||
this.targetSelector.addGoal(2, new HurtByTargetGoal(this, new Class[0]));
|
||||
@@ -7,10 +7,10 @@ Prevents Enderman from becoming aggresive towards players that are wearing a Dra
|
||||
Adds functionality to a useless item!
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
||||
index df3e07c6a3ea04b0709f3fdb0d8e96858f3bb728..7621237df388ee10ef962b0c4e795c9de88762d0 100644
|
||||
index 4821aec304399c64cbcff741334567a08b840c0a..b361c6b4ca17b9d466555037235a5660caa5c9bd 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
||||
@@ -271,7 +271,7 @@ public class EnderMan extends Monster implements NeutralMob {
|
||||
@@ -266,7 +266,7 @@ public class EnderMan extends Monster implements NeutralMob {
|
||||
// Paper end - EndermanAttackPlayerEvent
|
||||
ItemStack itemstack = (ItemStack) player.getInventory().armor.get(3);
|
||||
|
||||
@@ -5,31 +5,31 @@ Subject: [PATCH] Tick fluids config
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/LiquidBlock.java b/src/main/java/net/minecraft/world/level/block/LiquidBlock.java
|
||||
index 9b3dcf1a4d4cece92a629506d341f6bfe79d13d0..0ed39daf88a98f7fa887fb45d4f7c0348a607551 100644
|
||||
index 84623c632d8c2f0fa7ec939c711316d757117d23..1851035b9fdcc076442d0699567a3b020e6425d6 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/LiquidBlock.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/LiquidBlock.java
|
||||
@@ -139,7 +139,7 @@ public class LiquidBlock extends Block implements BucketPickup {
|
||||
@@ -137,7 +137,7 @@ public class LiquidBlock extends Block implements BucketPickup {
|
||||
|
||||
@Override
|
||||
public void onPlace(BlockState state, Level world, BlockPos pos, BlockState oldState, boolean notify) {
|
||||
protected void onPlace(BlockState state, Level world, BlockPos pos, BlockState oldState, boolean notify) {
|
||||
- if (this.shouldSpreadLiquid(world, pos, state)) {
|
||||
+ if (world.purpurConfig.tickFluids && this.shouldSpreadLiquid(world, pos, state)) { // Purpur
|
||||
world.scheduleTick(pos, state.getFluidState().getType(), this.getFlowSpeed(world, pos)); // Paper - Configurable speed for water flowing over lava
|
||||
}
|
||||
|
||||
@@ -167,7 +167,7 @@ public class LiquidBlock extends Block implements BucketPickup {
|
||||
@@ -165,7 +165,7 @@ public class LiquidBlock extends Block implements BucketPickup {
|
||||
|
||||
@Override
|
||||
public BlockState updateShape(BlockState state, Direction direction, BlockState neighborState, LevelAccessor world, BlockPos pos, BlockPos neighborPos) {
|
||||
protected BlockState updateShape(BlockState state, Direction direction, BlockState neighborState, LevelAccessor world, BlockPos pos, BlockPos neighborPos) {
|
||||
- if (state.getFluidState().isSource() || neighborState.getFluidState().isSource()) {
|
||||
+ if (world.getMinecraftWorld().purpurConfig.tickFluids && state.getFluidState().isSource() || neighborState.getFluidState().isSource()) { // Purpur
|
||||
world.scheduleTick(pos, state.getFluidState().getType(), this.fluid.getTickDelay(world));
|
||||
}
|
||||
|
||||
@@ -176,7 +176,7 @@ public class LiquidBlock extends Block implements BucketPickup {
|
||||
@@ -174,7 +174,7 @@ public class LiquidBlock extends Block implements BucketPickup {
|
||||
|
||||
@Override
|
||||
public void neighborChanged(BlockState state, Level world, BlockPos pos, Block sourceBlock, BlockPos sourcePos, boolean notify) {
|
||||
protected void neighborChanged(BlockState state, Level world, BlockPos pos, Block sourceBlock, BlockPos sourcePos, boolean notify) {
|
||||
- if (this.shouldSpreadLiquid(world, pos, state)) {
|
||||
+ if (world.purpurConfig.tickFluids && this.shouldSpreadLiquid(world, pos, state)) { // Purpur
|
||||
world.scheduleTick(pos, state.getFluidState().getType(), this.getFlowSpeed(world, pos)); // Paper - Configurable speed for water flowing over lava
|
||||
@@ -6,7 +6,7 @@ Subject: [PATCH] Config to disable Llama caravans
|
||||
Disables the mechanic where llamas follow leashed llamas.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/LlamaFollowCaravanGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/LlamaFollowCaravanGoal.java
|
||||
index 50622e300950b017b41a6f85643c8827a0113225..1a8ae9a692ea0727ad79c6061a11054ee496fa20 100644
|
||||
index eb0faf58fa1a408f294fc62120b140def97f998d..0f4f546cd0eda4bd82b47446ae23ac32da8a9556 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/ai/goal/LlamaFollowCaravanGoal.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/ai/goal/LlamaFollowCaravanGoal.java
|
||||
@@ -22,7 +22,7 @@ public class LlamaFollowCaravanGoal extends Goal {
|
||||
@@ -19,10 +19,10 @@ index 50622e300950b017b41a6f85643c8827a0113225..1a8ae9a692ea0727ad79c6061a11054e
|
||||
List<Entity> list = this.llama.level().getEntities(this.llama, this.llama.getBoundingBox().inflate(9.0, 4.0, 9.0), entity -> {
|
||||
EntityType<?> entityType = entity.getType();
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
|
||||
index fb2b0ebd9314ab7fc911e842767bd60b1db92b96..30493e675d6308d65a4d4fa3fea601b6d7e4fa76 100644
|
||||
index 87ec5bd632353ce364de29c5d56460551b6a4139..12ff4091674f7efb3e324df0df2d798dcbc46027 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
|
||||
@@ -519,7 +519,7 @@ public class Llama extends AbstractChestedHorse implements VariantHolder<Llama.V
|
||||
@@ -481,7 +481,7 @@ public class Llama extends AbstractChestedHorse implements VariantHolder<Llama.V
|
||||
}
|
||||
|
||||
public void joinCaravan(Llama llama) {
|
||||
@@ -6,10 +6,10 @@ Subject: [PATCH] Config to make Creepers explode on death
|
||||
Creepers exploded after being killed in the alpha days. This brings that back.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
|
||||
index eb2c80a50bd29ad4ab9ece0ce5d71f3713700fba..743d888c07450ea9e2367d169e20a583b51f7be0 100644
|
||||
index 08743fede4abec62e7fdd34f22fd5bc9a9d07bc9..76ad30ec1bc8070a20b732417f37d0d00c261ca5 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
|
||||
@@ -64,6 +64,7 @@ public class Creeper extends Monster implements PowerableMob {
|
||||
@@ -65,6 +65,7 @@ public class Creeper extends Monster implements PowerableMob {
|
||||
private int spacebarCharge = 0;
|
||||
private int prevSpacebarCharge = 0;
|
||||
private int powerToggleDelay = 0;
|
||||
@@ -17,7 +17,7 @@ index eb2c80a50bd29ad4ab9ece0ce5d71f3713700fba..743d888c07450ea9e2367d169e20a583
|
||||
// Purpur end
|
||||
|
||||
public Creeper(EntityType<? extends Creeper> type, Level world) {
|
||||
@@ -269,6 +270,14 @@ public class Creeper extends Monster implements PowerableMob {
|
||||
@@ -270,6 +271,14 @@ public class Creeper extends Monster implements PowerableMob {
|
||||
return this.level().purpurConfig.creeperTakeDamageFromWater;
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ index eb2c80a50bd29ad4ab9ece0ce5d71f3713700fba..743d888c07450ea9e2367d169e20a583
|
||||
@Override
|
||||
protected SoundEvent getHurtSound(DamageSource source) {
|
||||
return SoundEvents.CREEPER_HURT;
|
||||
@@ -360,6 +369,7 @@ public class Creeper extends Monster implements PowerableMob {
|
||||
@@ -358,6 +367,7 @@ public class Creeper extends Monster implements PowerableMob {
|
||||
}
|
||||
|
||||
public void explodeCreeper() {
|
||||
@@ -40,7 +40,7 @@ index eb2c80a50bd29ad4ab9ece0ce5d71f3713700fba..743d888c07450ea9e2367d169e20a583
|
||||
if (!this.level().isClientSide) {
|
||||
float f = this.isPowered() ? 2.0F : 1.0F;
|
||||
|
||||
@@ -378,7 +388,7 @@ public class Creeper extends Monster implements PowerableMob {
|
||||
@@ -376,7 +386,7 @@ public class Creeper extends Monster implements PowerableMob {
|
||||
}
|
||||
// CraftBukkit end
|
||||
}
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable ravager griefable blocks list
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
|
||||
index db5e55f2bca1d0706d24ebf7c0b5c2592b04f0bc..03ed7c56bb7f2d32722ebedb8eb07765ab39079a 100644
|
||||
index e592b5ee3a0bfce987557defed8250682373fe65..ea9714b561d2cccad3ce012a118d200100ccd1e8 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
|
||||
@@ -191,7 +191,7 @@ public class Ravager extends Raider {
|
||||
@@ -183,7 +183,7 @@ public class Ravager extends Raider {
|
||||
BlockState iblockdata = this.level().getBlockState(blockposition);
|
||||
Block block = iblockdata.getBlock();
|
||||
|
||||
@@ -18,12 +18,12 @@ index db5e55f2bca1d0706d24ebf7c0b5c2592b04f0bc..03ed7c56bb7f2d32722ebedb8eb07765
|
||||
if (!CraftEventFactory.callEntityChangeBlockEvent(this, blockposition, iblockdata.getFluidState().createLegacyBlock())) { // Paper - fix wrong block state
|
||||
continue;
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/CropBlock.java b/src/main/java/net/minecraft/world/level/block/CropBlock.java
|
||||
index 07b148fc31aee3ce009d1d768ae16d98268339cc..55e28eef76d9d534037d888d85c0609052478118 100644
|
||||
index 2af4c365743b2956939335512f74e0a1d84298f7..a69e7e8da81bd13578d230cc1e3f0f900817cbfd 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/CropBlock.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/CropBlock.java
|
||||
@@ -179,7 +179,7 @@ public class CropBlock extends BushBlock implements BonemealableBlock {
|
||||
@Override
|
||||
public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) {
|
||||
protected void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) {
|
||||
if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent
|
||||
- if (entity instanceof Ravager && CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.AIR.defaultBlockState(), (!world.purpurConfig.ravagerBypassMobGriefing && !world.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)))) { // CraftBukkit // Purpur
|
||||
+ if (entity instanceof Ravager && world.purpurConfig.ravagerGriefableBlocks.contains(world.getBlockState(pos).getBlock()) && CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.AIR.defaultBlockState(), (!world.purpurConfig.ravagerBypassMobGriefing && !world.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)))) { // CraftBukkit // Purpur
|
||||
102
patches/server/0139-Sneak-to-bulk-process-composter.patch
Normal file
102
patches/server/0139-Sneak-to-bulk-process-composter.patch
Normal file
@@ -0,0 +1,102 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
|
||||
Date: Sun, 7 May 2023 22:26:59 -0700
|
||||
Subject: [PATCH] Sneak to bulk process composter
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
|
||||
index 5cedce1f432f6b809b25269242a16477682c824f..61ff2f6c09251da8c34fd653020cd4d3b46a4371 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
|
||||
@@ -573,7 +573,7 @@ public class ServerPlayerGameMode {
|
||||
ItemStack itemstack1 = stack.copy();
|
||||
InteractionResult enuminteractionresult;
|
||||
|
||||
- if (!flag1) {
|
||||
+ if (!flag1 || (player.level().purpurConfig.composterBulkProcess && iblockdata.is(Blocks.COMPOSTER))) { // Purpur
|
||||
ItemInteractionResult iteminteractionresult = iblockdata.useItemOn(player.getItemInHand(hand), world, player, hand, hitResult);
|
||||
|
||||
if (iteminteractionresult.consumesAction()) {
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/ComposterBlock.java b/src/main/java/net/minecraft/world/level/block/ComposterBlock.java
|
||||
index d3d12f9114173f4971f95d7ef895a4374705bd3f..750c9043c2b70b18fb34df1e856e3cbb6c651770 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/ComposterBlock.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/ComposterBlock.java
|
||||
@@ -238,16 +238,26 @@ public class ComposterBlock extends Block implements WorldlyContainerHolder {
|
||||
|
||||
if (i < 8 && ComposterBlock.COMPOSTABLES.containsKey(stack.getItem())) {
|
||||
if (i < 7 && !world.isClientSide) {
|
||||
- BlockState iblockdata1 = ComposterBlock.addItem(player, state, world, pos, stack);
|
||||
- // Paper start - handle cancelled events
|
||||
- if (iblockdata1 == null) {
|
||||
+ // Purpur start
|
||||
+ BlockState newState = process(stack, state, world, pos, player, i);
|
||||
+ if (newState == null) {
|
||||
return ItemInteractionResult.SKIP_DEFAULT_BLOCK_INTERACTION;
|
||||
}
|
||||
- // Paper end
|
||||
-
|
||||
- world.levelEvent(1500, pos, state != iblockdata1 ? 1 : 0);
|
||||
- player.awardStat(Stats.ITEM_USED.get(stack.getItem()));
|
||||
- stack.consume(1, player);
|
||||
+ if (world.purpurConfig.composterBulkProcess && player.isShiftKeyDown()) {
|
||||
+ BlockState oldState;
|
||||
+ int oldCount, newCount, oldLevel, newLevel;
|
||||
+ do {
|
||||
+ oldState = newState;
|
||||
+ newState = process(stack, state, world, pos, player, i);
|
||||
+ oldCount = stack.getCount();
|
||||
+ if (newState == null) {
|
||||
+ return ItemInteractionResult.SKIP_DEFAULT_BLOCK_INTERACTION;
|
||||
+ }
|
||||
+ oldLevel = oldState.getValue(ComposterBlock.LEVEL);
|
||||
+ newCount = stack.getCount();
|
||||
+ newLevel = newState.getValue(ComposterBlock.LEVEL);
|
||||
+ } while (newCount > 0 && (newCount != oldCount || newLevel != oldLevel || newState != oldState));
|
||||
+ }
|
||||
}
|
||||
|
||||
return ItemInteractionResult.sidedSuccess(world.isClientSide);
|
||||
@@ -255,6 +265,27 @@ public class ComposterBlock extends Block implements WorldlyContainerHolder {
|
||||
return super.useItemOn(stack, state, world, pos, player, hand, hit);
|
||||
}
|
||||
}
|
||||
+ private static BlockState process(ItemStack stack, BlockState state, Level world, BlockPos pos, Player player, int i) {
|
||||
+ // Purpur end
|
||||
+ BlockState iblockdata1 = ComposterBlock.addItem(player, state, world, pos, stack);
|
||||
+ // Paper start - handle cancelled events
|
||||
+ if (iblockdata1 == null) {
|
||||
+ return null; // Purpur
|
||||
+ }
|
||||
+ // Paper end
|
||||
+
|
||||
+ world.levelEvent(1500, pos, state != iblockdata1 ? 1 : 0);
|
||||
+ player.awardStat(Stats.ITEM_USED.get(stack.getItem()));
|
||||
+ stack.consume(1, player);
|
||||
+ // Purpur start
|
||||
+ // }
|
||||
+ //
|
||||
+ // return ItemInteractionResult.sidedSuccess(world.isClientSide);
|
||||
+ // } else {
|
||||
+ // return super.useItemOn(stack, state, world, pos, player, hand, hit);
|
||||
+ // }
|
||||
+ // }
|
||||
+ // Purpur end
|
||||
|
||||
@Override
|
||||
protected InteractionResult useWithoutItem(BlockState state, Level world, BlockPos pos, Player player, BlockHitResult hit) {
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index cc365ef1a435c05639e1261bc349df3517e4a44b..5739e18827d77dc594894f7cf8d7ceb9f7b83df1 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -479,6 +479,11 @@ public class PurpurWorldConfig {
|
||||
chestOpenWithBlockOnTop = getBoolean("blocks.chest.open-with-solid-block-on-top", chestOpenWithBlockOnTop);
|
||||
}
|
||||
|
||||
+ public boolean composterBulkProcess = false;
|
||||
+ private void composterSettings() {
|
||||
+ composterBulkProcess = getBoolean("blocks.composter.sneak-to-bulk-process", composterBulkProcess);
|
||||
+ }
|
||||
+
|
||||
public boolean dispenserApplyCursedArmor = true;
|
||||
public boolean dispenserPlaceAnvils = false;
|
||||
private void dispenserSettings() {
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Config for skipping night
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
index b0e9bc26843c61b735a2045a154152df4b6aa28a..74f9b208b822ef3c53113004b40366e44fdb8201 100644
|
||||
index aef5157d183b69903fd215a5ce30c0705ba8fa3e..bcdef2c9bb116409445a4ef65c5e407c1003a55d 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -840,7 +840,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -846,7 +846,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
int i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE);
|
||||
long j;
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Add config for villager trading
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||
index 870330f95fa1c1b4b8fb5f5e59a9770fb9389eb5..ee509b5eea71c17ff466fb93fe63168710065add 100644
|
||||
index c9cfbc8817fe62e22cb165f856ed8569668c0a60..a7c85c9efd13145cc061a3a0076b44a7af9812b9 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||
@@ -373,7 +373,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -371,7 +371,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
return tryRide(player, hand, InteractionResult.sidedSuccess(this.level().isClientSide)); // Purpur
|
||||
} else {
|
||||
if (level().purpurConfig.villagerRidable && itemstack.isEmpty()) return tryRide(player, hand); // Purpur
|
||||
@@ -18,7 +18,7 @@ index 870330f95fa1c1b4b8fb5f5e59a9770fb9389eb5..ee509b5eea71c17ff466fb93fe631687
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||
index 381e86286eabdbc254cd8901c498dd781521ed4d..657fdbabf18da7ab321e8e95a31d53362c605380 100644
|
||||
index c192f4cc5fd9cb0cf40083c4297f649ab909649d..0d11200ab580cc306602c29c61f7619565d8261d 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||
@@ -154,7 +154,7 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
|
||||
39
patches/server/0142-Allow-infinity-on-crossbows.patch
Normal file
39
patches/server/0142-Allow-infinity-on-crossbows.patch
Normal file
@@ -0,0 +1,39 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Ben Kerllenevich <ben@omega24.dev>
|
||||
Date: Thu, 18 Mar 2021 12:25:29 -0400
|
||||
Subject: [PATCH] Allow infinity on crossbows
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/item/CrossbowItem.java b/src/main/java/net/minecraft/world/item/CrossbowItem.java
|
||||
index 0f6504a7160bc304b3af554f8740c65e2987cd37..a3614405a92f26f19fb1df24f685cb7c081333db 100644
|
||||
--- a/src/main/java/net/minecraft/world/item/CrossbowItem.java
|
||||
+++ b/src/main/java/net/minecraft/world/item/CrossbowItem.java
|
||||
@@ -107,7 +107,7 @@ public class CrossbowItem extends ProjectileWeaponItem {
|
||||
return CrossbowItem.tryLoadProjectiles(shooter, crossbow, true);
|
||||
}
|
||||
private static boolean tryLoadProjectiles(LivingEntity shooter, ItemStack crossbow, boolean consume) {
|
||||
- List<ItemStack> list = draw(crossbow, shooter.getProjectile(crossbow), shooter, consume);
|
||||
+ List<ItemStack> list = draw(crossbow, shooter.getProjectile(crossbow), shooter, (org.purpurmc.purpur.PurpurConfig.allowCrossbowInfinity && EnchantmentHelper.getItemEnchantmentLevel(Enchantments.INFINITY_ARROWS, crossbow) > 0) || consume);
|
||||
// Paper end - Add EntityLoadCrossbowEvent
|
||||
if (!list.isEmpty()) {
|
||||
crossbow.set(DataComponents.CHARGED_PROJECTILES, ChargedProjectiles.of(list));
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||
index 6714c095714c3a34464b9190be964ceaac718d45..11b8f16a39011500d28f72e9c40fc3ca4b0f0fad 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||
@@ -284,6 +284,7 @@ public class PurpurConfig {
|
||||
}
|
||||
|
||||
public static boolean allowInfinityMending = false;
|
||||
+ public static boolean allowCrossbowInfinity = true;
|
||||
private static void enchantmentSettings() {
|
||||
if (version < 5) {
|
||||
boolean oldValue = getBoolean("settings.enchantment.allow-infinite-and-mending-together", false);
|
||||
@@ -291,6 +292,7 @@ public class PurpurConfig {
|
||||
set("settings.enchantment.allow-infinite-and-mending-together", null);
|
||||
}
|
||||
allowInfinityMending = getBoolean("settings.enchantment.allow-infinity-and-mending-together", allowInfinityMending);
|
||||
+ allowCrossbowInfinity = getBoolean("settings.enchantment.allow-infinity-on-crossbow", allowCrossbowInfinity);
|
||||
}
|
||||
|
||||
public static boolean endermanShortHeight = false;
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Drowning Settings
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 09d131178fb6428ba65cd4f08a5badb8693be626..53c20b7e1e8d27b4a13e18ae8fa437e83b208c78 100644
|
||||
index 1ec1f023d7eee5714c94dbb6c842444f70603f40..5f19cc285efac25b56a29242b41c2823020f170e 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -3413,7 +3413,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -3452,7 +3452,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
}
|
||||
|
||||
public int getMaxAirSupply() {
|
||||
@@ -18,10 +18,10 @@ index 09d131178fb6428ba65cd4f08a5badb8693be626..53c20b7e1e8d27b4a13e18ae8fa437e8
|
||||
|
||||
public int getAirSupply() {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
index e4592de07e66e2eb89b5555d747253203c84c608..83be9f0a75371046f7c4e1e8b064a7c7534c74f6 100644
|
||||
index e8a92e4941ab7d638d3e3ac5ad8d6314bede17c0..6f55a7243ee960b132ef4e133dc98b8eb7e18855 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -439,7 +439,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
@@ -452,7 +452,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
|
||||
if (flag1) {
|
||||
this.setAirSupply(this.decreaseAirSupply(this.getAirSupply()));
|
||||
@@ -30,7 +30,7 @@ index e4592de07e66e2eb89b5555d747253203c84c608..83be9f0a75371046f7c4e1e8b064a7c7
|
||||
this.setAirSupply(0);
|
||||
Vec3 vec3d = this.getDeltaMovement();
|
||||
|
||||
@@ -451,7 +451,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
@@ -464,7 +464,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
this.level().addParticle(ParticleTypes.BUBBLE, this.getX() + d2, this.getY() + d3, this.getZ() + d4, vec3d.x, vec3d.y, vec3d.z);
|
||||
}
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Break individual slabs when sneaking
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
|
||||
index ac49288d59eee3657e0db9ed385248f6b91095cc..1aa98f8ff062a906035c62875c454aeb0bc6f179 100644
|
||||
index 61ff2f6c09251da8c34fd653020cd4d3b46a4371..a810eaa7dc319f5ea69b239190ae91838bfad4ec 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
|
||||
@@ -397,6 +397,7 @@ public class ServerPlayerGameMode {
|
||||
@@ -400,6 +400,7 @@ public class ServerPlayerGameMode {
|
||||
} else {capturedBlockEntity = true;} // Paper - Send block entities after destroy prediction
|
||||
return false;
|
||||
}
|
||||
@@ -17,7 +17,7 @@ index ac49288d59eee3657e0db9ed385248f6b91095cc..1aa98f8ff062a906035c62875c454aeb
|
||||
// CraftBukkit end
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/SlabBlock.java b/src/main/java/net/minecraft/world/level/block/SlabBlock.java
|
||||
index 70544a7bd9205f2438abcc576e94ad632dc37c58..e4032c851210d7e187d06e4c0f91b492933c9d67 100644
|
||||
index fa29eb15934b3dad171d27c21d99b2451cfe553b..ba4aa69425d796d306791ea193f9c6b21a065f0b 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/SlabBlock.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/SlabBlock.java
|
||||
@@ -138,4 +138,25 @@ public class SlabBlock extends Block implements SimpleWaterloggedBlock {
|
||||
@@ -5,13 +5,13 @@ Subject: [PATCH] Config to show Armor Stand arms on spawn
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
|
||||
index 40550897d5be12fcb8e1e751ee2e7a138512ce0b..fef18455da5ae020f9875663984b26e54a1c4bf7 100644
|
||||
index 89f600edda9a1c5d1b132355fefb7eaed77c52f5..6697cd8a632becd72ee132007a61d1221e817abf 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
|
||||
@@ -115,6 +115,7 @@ public class ArmorStand extends LivingEntity {
|
||||
@@ -117,6 +117,7 @@ public class ArmorStand extends LivingEntity {
|
||||
this.rightArmPose = ArmorStand.DEFAULT_RIGHT_ARM_POSE;
|
||||
this.leftLegPose = ArmorStand.DEFAULT_LEFT_LEG_POSE;
|
||||
this.rightLegPose = ArmorStand.DEFAULT_RIGHT_LEG_POSE;
|
||||
this.setMaxUpStep(0.0F);
|
||||
+ this.setShowArms(world != null && world.purpurConfig.armorstandPlaceWithArms); // Purpur
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Option to make doors require redstone
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/InteractWithDoor.java b/src/main/java/net/minecraft/world/entity/ai/behavior/InteractWithDoor.java
|
||||
index 42ae4d293a420f0b8eb476df6389b2e7a693895f..97c20c5b89e6d7e4ed844eff39ee55dfa8988d37 100644
|
||||
index 736f46d552d558bf0edd9a86601b5fbb6940815b..cf039181dfe0ddb3ccda44064a5d8a2f6c5c432c 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/ai/behavior/InteractWithDoor.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/ai/behavior/InteractWithDoor.java
|
||||
@@ -57,7 +57,7 @@ public class InteractWithDoor {
|
||||
@@ -36,18 +36,18 @@ index 42ae4d293a420f0b8eb476df6389b2e7a693895f..97c20c5b89e6d7e4ed844eff39ee55df
|
||||
} else {
|
||||
DoorBlock blockdoor = (DoorBlock) iblockdata.getBlock();
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/DoorBlock.java b/src/main/java/net/minecraft/world/level/block/DoorBlock.java
|
||||
index ed57fbcfcff29a71026b0600b02daf4178d78429..31a5d3a5642123983b8c7df49be04f25141d15a2 100644
|
||||
index 42d43b7a7e3b7c53cc80b8706c130e660f2c72da..96199441202ad929ad0274574704635c538a93c7 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/DoorBlock.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/DoorBlock.java
|
||||
@@ -198,6 +198,7 @@ public class DoorBlock extends Block {
|
||||
public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) {
|
||||
protected InteractionResult useWithoutItem(BlockState state, Level world, BlockPos pos, Player player, BlockHitResult hit) {
|
||||
if (!this.type.canOpenByHand()) {
|
||||
return InteractionResult.PASS;
|
||||
+ } else if (requiresRedstone(world, state, pos)) { return InteractionResult.CONSUME; // Purpur
|
||||
} else {
|
||||
state = (BlockState) state.cycle(DoorBlock.OPEN);
|
||||
world.setBlock(pos, state, 10);
|
||||
@@ -301,4 +302,18 @@ public class DoorBlock extends Block {
|
||||
@@ -299,4 +300,18 @@ public class DoorBlock extends Block {
|
||||
flag = false;
|
||||
return flag;
|
||||
}
|
||||
@@ -1,107 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
|
||||
Date: Sun, 7 May 2023 22:26:59 -0700
|
||||
Subject: [PATCH] Sneak to bulk process composter
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
|
||||
index a7b217ddbcbf92513bd38101fdfca2075505e267..ac49288d59eee3657e0db9ed385248f6b91095cc 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
|
||||
@@ -577,7 +577,7 @@ public class ServerPlayerGameMode {
|
||||
boolean flag1 = player.isSecondaryUseActive() && flag;
|
||||
ItemStack itemstack1 = stack.copy();
|
||||
|
||||
- if (!flag1) {
|
||||
+ if (!flag1 || (player.level().purpurConfig.composterBulkProcess && iblockdata.is(Blocks.COMPOSTER))) { // Purpur
|
||||
enuminteractionresult = iblockdata.use(world, player, hand, hitResult);
|
||||
|
||||
if (enuminteractionresult.consumesAction()) {
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/ComposterBlock.java b/src/main/java/net/minecraft/world/level/block/ComposterBlock.java
|
||||
index f9084e2605d7403721fe6b714bfad051f932aaef..47b7baa41f341087bcd5dfec1d2a13b96f8357ca 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/ComposterBlock.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/ComposterBlock.java
|
||||
@@ -236,20 +236,28 @@ public class ComposterBlock extends Block implements WorldlyContainerHolder {
|
||||
ItemStack itemstack = player.getItemInHand(hand);
|
||||
|
||||
if (i < 8 && ComposterBlock.COMPOSTABLES.containsKey(itemstack.getItem())) {
|
||||
- if (i < 7 && !world.isClientSide) {
|
||||
- BlockState iblockdata1 = ComposterBlock.addItem(player, state, world, pos, itemstack);
|
||||
- // Paper start - handle cancelled events
|
||||
- if (iblockdata1 == null) {
|
||||
- return InteractionResult.PASS;
|
||||
- }
|
||||
- // Paper end
|
||||
+ // Purpur start
|
||||
+ BlockState newState = process(i, state, world, itemstack, pos, player);
|
||||
+ if (newState == null) {
|
||||
+ return InteractionResult.PASS;
|
||||
+ }
|
||||
|
||||
- world.levelEvent(1500, pos, state != iblockdata1 ? 1 : 0);
|
||||
- player.awardStat(Stats.ITEM_USED.get(itemstack.getItem()));
|
||||
- if (!player.getAbilities().instabuild) {
|
||||
- itemstack.shrink(1);
|
||||
- }
|
||||
+ if (world.purpurConfig.composterBulkProcess && player.isShiftKeyDown() && newState != state) {
|
||||
+ BlockState oldState;
|
||||
+ int oldCount, newCount, oldLevel, newLevel;
|
||||
+ do {
|
||||
+ oldState = newState;
|
||||
+ oldCount = itemstack.getCount();
|
||||
+ oldLevel = oldState.getValue(ComposterBlock.LEVEL);
|
||||
+ newState = process(oldLevel, oldState, world, itemstack, pos, player);
|
||||
+ if (newState == null) {
|
||||
+ return InteractionResult.PASS;
|
||||
+ }
|
||||
+ newCount = itemstack.getCount();
|
||||
+ newLevel = newState.getValue(ComposterBlock.LEVEL);
|
||||
+ } while (newCount > 0 && (newCount != oldCount || newLevel != oldLevel || newState != oldState));
|
||||
}
|
||||
+ // Purpur end
|
||||
|
||||
return InteractionResult.sidedSuccess(world.isClientSide);
|
||||
} else if (i == 8) {
|
||||
@@ -260,6 +268,26 @@ public class ComposterBlock extends Block implements WorldlyContainerHolder {
|
||||
}
|
||||
}
|
||||
|
||||
+ private static BlockState process(int level, BlockState state, Level world, ItemStack itemstack, BlockPos pos, Player player) {
|
||||
+ if (level < 7 && !world.isClientSide) {
|
||||
+ BlockState iblockdata1 = ComposterBlock.addItem(player, state, world, pos, itemstack);
|
||||
+ // Paper start - handle cancelled events
|
||||
+ if (iblockdata1 == null) {
|
||||
+ return iblockdata1;
|
||||
+ }
|
||||
+ // Paper end
|
||||
+
|
||||
+ world.levelEvent(1500, pos, state != iblockdata1 ? 1 : 0);
|
||||
+ player.awardStat(Stats.ITEM_USED.get(itemstack.getItem()));
|
||||
+ if (!player.getAbilities().instabuild) {
|
||||
+ itemstack.shrink(1);
|
||||
+ }
|
||||
+ return iblockdata1;
|
||||
+ }
|
||||
+ return state;
|
||||
+ }
|
||||
+ // Purpur end
|
||||
+
|
||||
public static BlockState insertItem(Entity user, BlockState state, ServerLevel world, ItemStack stack, BlockPos pos) {
|
||||
int i = (Integer) state.getValue(ComposterBlock.LEVEL);
|
||||
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index cc365ef1a435c05639e1261bc349df3517e4a44b..5739e18827d77dc594894f7cf8d7ceb9f7b83df1 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -479,6 +479,11 @@ public class PurpurWorldConfig {
|
||||
chestOpenWithBlockOnTop = getBoolean("blocks.chest.open-with-solid-block-on-top", chestOpenWithBlockOnTop);
|
||||
}
|
||||
|
||||
+ public boolean composterBulkProcess = false;
|
||||
+ private void composterSettings() {
|
||||
+ composterBulkProcess = getBoolean("blocks.composter.sneak-to-bulk-process", composterBulkProcess);
|
||||
+ }
|
||||
+
|
||||
public boolean dispenserApplyCursedArmor = true;
|
||||
public boolean dispenserPlaceAnvils = false;
|
||||
private void dispenserSettings() {
|
||||
@@ -1,98 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Ben Kerllenevich <ben@omega24.dev>
|
||||
Date: Thu, 18 Mar 2021 12:25:29 -0400
|
||||
Subject: [PATCH] Allow infinity on crossbows
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/item/CrossbowItem.java b/src/main/java/net/minecraft/world/item/CrossbowItem.java
|
||||
index f3a428f80c265639250114498b10067b4bf1ada1..f9a9bc27670bb7ec82a609f202edbde6b5a4fd46 100644
|
||||
--- a/src/main/java/net/minecraft/world/item/CrossbowItem.java
|
||||
+++ b/src/main/java/net/minecraft/world/item/CrossbowItem.java
|
||||
@@ -114,7 +114,7 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable {
|
||||
// Paper end - Add EntityLoadCrossbowEvent
|
||||
int i = EnchantmentHelper.getItemEnchantmentLevel(Enchantments.MULTISHOT, crossbow);
|
||||
int j = i == 0 ? 1 : 3;
|
||||
- boolean flag = !consume || shooter instanceof Player && ((Player) shooter).getAbilities().instabuild; // Paper - Add EntityLoadCrossbowEvent
|
||||
+ boolean flag = !consume || shooter instanceof Player && ((Player) shooter).getAbilities().instabuild || (org.purpurmc.purpur.PurpurConfig.allowCrossbowInfinity && EnchantmentHelper.getItemEnchantmentLevel(Enchantments.INFINITY_ARROWS, crossbow) > 0); // Paper - Add EntityLoadCrossbowEvent // Purpur
|
||||
ItemStack itemstack1 = shooter.getProjectile(crossbow);
|
||||
ItemStack itemstack2 = itemstack1.copy();
|
||||
|
||||
@@ -300,7 +300,7 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable {
|
||||
|
||||
for (int i = 0; i < list.size(); ++i) {
|
||||
ItemStack itemstack1 = (ItemStack) list.get(i);
|
||||
- boolean flag = entity instanceof Player && ((Player) entity).getAbilities().instabuild;
|
||||
+ boolean flag = entity instanceof Player && ((Player) entity).getAbilities().instabuild || (org.purpurmc.purpur.PurpurConfig.allowCrossbowInfinity && EnchantmentHelper.getItemEnchantmentLevel(Enchantments.INFINITY_ARROWS, stack) > 0); // Purpur
|
||||
|
||||
if (!itemstack1.isEmpty()) {
|
||||
if (i == 0) {
|
||||
diff --git a/src/main/java/net/minecraft/world/item/enchantment/ArrowInfiniteEnchantment.java b/src/main/java/net/minecraft/world/item/enchantment/ArrowInfiniteEnchantment.java
|
||||
index 01796071135d27e0b8801f585a6d96b8f3a31f6c..127950c54ae057b3d0eb62e8f81d5eef6f11a36c 100644
|
||||
--- a/src/main/java/net/minecraft/world/item/enchantment/ArrowInfiniteEnchantment.java
|
||||
+++ b/src/main/java/net/minecraft/world/item/enchantment/ArrowInfiniteEnchantment.java
|
||||
@@ -7,6 +7,14 @@ public class ArrowInfiniteEnchantment extends Enchantment {
|
||||
super(weight, EnchantmentCategory.BOW, slotTypes);
|
||||
}
|
||||
|
||||
+ // Purpur start
|
||||
+ @Override
|
||||
+ public boolean canEnchant(net.minecraft.world.item.ItemStack stack) {
|
||||
+ // we have to cheat the system because this class is loaded before purpur's config is loaded
|
||||
+ return (org.purpurmc.purpur.PurpurConfig.allowCrossbowInfinity ? EnchantmentCategory.BOW_AND_CROSSBOW : EnchantmentCategory.BOW).canEnchant(stack.getItem());
|
||||
+ }
|
||||
+ // Purpur end
|
||||
+
|
||||
@Override
|
||||
public int getMinCost(int level) {
|
||||
return 20;
|
||||
diff --git a/src/main/java/net/minecraft/world/item/enchantment/EnchantmentCategory.java b/src/main/java/net/minecraft/world/item/enchantment/EnchantmentCategory.java
|
||||
index afd74b274aa46b1e2187935ebeb2a8824a133867..cc83aa539f8538fbaed8a3e52d9d9d8901e4793d 100644
|
||||
--- a/src/main/java/net/minecraft/world/item/enchantment/EnchantmentCategory.java
|
||||
+++ b/src/main/java/net/minecraft/world/item/enchantment/EnchantmentCategory.java
|
||||
@@ -113,6 +113,14 @@ public enum EnchantmentCategory {
|
||||
public boolean canEnchant(Item item) {
|
||||
return item instanceof Vanishable || Block.byItem(item) instanceof Vanishable || BREAKABLE.canEnchant(item);
|
||||
}
|
||||
+ // Purpur start
|
||||
+ },
|
||||
+ BOW_AND_CROSSBOW {
|
||||
+ @Override
|
||||
+ public boolean canEnchant(Item item) {
|
||||
+ return item instanceof BowItem || item instanceof CrossbowItem;
|
||||
+ }
|
||||
+ // Purpur end
|
||||
};
|
||||
|
||||
public abstract boolean canEnchant(Item item);
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java
|
||||
index a151b5d7c6e41b08e57c806bc43e067af48263ed..c1be4eb145e1a7e7749d24958bfed5c8268f1131 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java
|
||||
@@ -71,6 +71,7 @@ public class CraftEnchantment extends Enchantment implements Handleable<net.mine
|
||||
case TRIDENT -> EnchantmentTarget.TRIDENT;
|
||||
case CROSSBOW -> EnchantmentTarget.CROSSBOW;
|
||||
case VANISHABLE -> EnchantmentTarget.VANISHABLE;
|
||||
+ case BOW_AND_CROSSBOW -> EnchantmentTarget.BOW_AND_CROSSBOW; // Purpur
|
||||
};
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||
index 6714c095714c3a34464b9190be964ceaac718d45..0e254b7b1709f745a7d7c0e3cefda96d726de556 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||
@@ -284,6 +284,7 @@ public class PurpurConfig {
|
||||
}
|
||||
|
||||
public static boolean allowInfinityMending = false;
|
||||
+ public static boolean allowCrossbowInfinity = false;
|
||||
private static void enchantmentSettings() {
|
||||
if (version < 5) {
|
||||
boolean oldValue = getBoolean("settings.enchantment.allow-infinite-and-mending-together", false);
|
||||
@@ -291,6 +292,7 @@ public class PurpurConfig {
|
||||
set("settings.enchantment.allow-infinite-and-mending-together", null);
|
||||
}
|
||||
allowInfinityMending = getBoolean("settings.enchantment.allow-infinity-and-mending-together", allowInfinityMending);
|
||||
+ allowCrossbowInfinity = getBoolean("settings.enchantment.allow-infinity-on-crossbow", allowCrossbowInfinity);
|
||||
}
|
||||
|
||||
public static boolean endermanShortHeight = false;
|
||||
Reference in New Issue
Block a user