mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-04-19 17:58:15 +02:00
apply minecraft feature patches
This commit is contained in:
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -5,10 +5,10 @@ Subject: [PATCH] Barrels and enderchests 6 rows
|
||||
|
||||
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index 646e16b3d69b5516e8f7c401828fec731378979c..7a9a37a630ea68328512c1a80bdaaefdd2253b9c 100644
|
||||
index c91b960c1cc087c424e6d17ad8f53a1f4cc354c3..9ed2866992573347548be47d1980a810e50dc653 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -887,6 +887,27 @@ public abstract class PlayerList {
|
||||
@@ -888,6 +888,27 @@ public abstract class PlayerList {
|
||||
player.getBukkitEntity().recalculatePermissions(); // CraftBukkit
|
||||
this.server.getCommands().sendCommands(player);
|
||||
} // Paper - Add sendOpLevel API
|
||||
@@ -37,10 +37,10 @@ index 646e16b3d69b5516e8f7c401828fec731378979c..7a9a37a630ea68328512c1a80bdaaefd
|
||||
|
||||
// Paper start - whitelist verify event / login event
|
||||
diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java
|
||||
index 3339cb1068ab162e36c410950e83e5f32dd9b705..9312a20c37329f2892e0b6231566bb1f96e1e7ac 100644
|
||||
index d4b7f1a861e67a00f7d8022b8198e04c1d279393..0f671feacee9827312cd04c158bf1e69c0f0273f 100644
|
||||
--- a/net/minecraft/world/entity/player/Player.java
|
||||
+++ b/net/minecraft/world/entity/player/Player.java
|
||||
@@ -181,6 +181,7 @@ public abstract class Player extends Avatar implements ContainerUser {
|
||||
@@ -176,6 +176,7 @@ public abstract class Player extends Avatar implements ContainerUser {
|
||||
public net.kyori.adventure.util.TriState flyingFallDamage = net.kyori.adventure.util.TriState.NOT_SET; // Paper - flying fall damage
|
||||
public int burpDelay = 0; // Purpur - Burp delay
|
||||
public boolean canPortalInstant = false; // Purpur - Add portal permission bypass
|
||||
@@ -49,11 +49,11 @@ index 3339cb1068ab162e36c410950e83e5f32dd9b705..9312a20c37329f2892e0b6231566bb1f
|
||||
// CraftBukkit start
|
||||
public boolean fauxSleeping;
|
||||
diff --git a/net/minecraft/world/inventory/ChestMenu.java b/net/minecraft/world/inventory/ChestMenu.java
|
||||
index 1fb3a34ea872dec73658fac59743e46ef8db5151..4c3b8d7ba777916ffc5ad0feccffbc7634bffe8d 100644
|
||||
index e77bfcd31cdcfd5836dc5db561e3fe2bc552a4b1..afa2ead0548766669201526d83f351c227c97e87 100644
|
||||
--- a/net/minecraft/world/inventory/ChestMenu.java
|
||||
+++ b/net/minecraft/world/inventory/ChestMenu.java
|
||||
@@ -66,10 +66,30 @@ public class ChestMenu extends AbstractContainerMenu {
|
||||
return new ChestMenu(MenuType.GENERIC_9x6, containerId, playerInventory, 6);
|
||||
return new ChestMenu(MenuType.GENERIC_9x6, containerId, inventory, 6);
|
||||
}
|
||||
|
||||
+ // Purpur start - Barrels and enderchests 6 rows
|
||||
@@ -66,8 +66,8 @@ index 1fb3a34ea872dec73658fac59743e46ef8db5151..4c3b8d7ba777916ffc5ad0feccffbc76
|
||||
+ }
|
||||
+ // Purpur end - Barrels and enderchests 6 rows
|
||||
+
|
||||
public static ChestMenu threeRows(int containerId, Inventory playerInventory, Container container) {
|
||||
return new ChestMenu(MenuType.GENERIC_9x3, containerId, playerInventory, container, 3);
|
||||
public static ChestMenu threeRows(final int containerId, final Inventory inventory, final Container container) {
|
||||
return new ChestMenu(MenuType.GENERIC_9x3, containerId, inventory, container, 3);
|
||||
}
|
||||
|
||||
+ // Purpur start - Barrels and enderchests 6 rows
|
||||
@@ -80,11 +80,11 @@ index 1fb3a34ea872dec73658fac59743e46ef8db5151..4c3b8d7ba777916ffc5ad0feccffbc76
|
||||
+ }
|
||||
+ // Purpur end - Barrels and enderchests 6 rows
|
||||
+
|
||||
public static ChestMenu sixRows(int containerId, Inventory playerInventory, Container container) {
|
||||
return new ChestMenu(MenuType.GENERIC_9x6, containerId, playerInventory, container, 6);
|
||||
public static ChestMenu sixRows(final int containerId, final Inventory inventory, final Container container) {
|
||||
return new ChestMenu(MenuType.GENERIC_9x6, containerId, inventory, container, 6);
|
||||
}
|
||||
diff --git a/net/minecraft/world/inventory/PlayerEnderChestContainer.java b/net/minecraft/world/inventory/PlayerEnderChestContainer.java
|
||||
index 9749909b8253b432bb2f7fba2cd8ff17a8579b30..1ef8696003e62af8dfd59340dd9cce76920b45f6 100644
|
||||
index 4df3a32faf85595372f4b250482d852c985ea3ab..8347150af55119d772b797e79be412f7e17a0f1f 100644
|
||||
--- a/net/minecraft/world/inventory/PlayerEnderChestContainer.java
|
||||
+++ b/net/minecraft/world/inventory/PlayerEnderChestContainer.java
|
||||
@@ -26,11 +26,18 @@ public class PlayerEnderChestContainer extends SimpleContainer {
|
||||
@@ -104,25 +104,23 @@ index 9749909b8253b432bb2f7fba2cd8ff17a8579b30..1ef8696003e62af8dfd59340dd9cce76
|
||||
+ }
|
||||
+ // Purpur end - Barrels and enderchests 6 rows
|
||||
+
|
||||
public void setActiveChest(EnderChestBlockEntity enderChestBlockEntity) {
|
||||
this.activeChest = enderChestBlockEntity;
|
||||
public void setActiveChest(final EnderChestBlockEntity activeChest) {
|
||||
this.activeChest = activeChest;
|
||||
}
|
||||
diff --git a/net/minecraft/world/level/block/EnderChestBlock.java b/net/minecraft/world/level/block/EnderChestBlock.java
|
||||
index 383e8285d366c7f594b0b4ff55b367970c9b69e4..077edf449d4faa41abafb94ac41dfe822f449d04 100644
|
||||
index 24a2c411da0ebbb7f97d621bb76ff686621f9aae..7ba9e8f6414246b589ff423fac63f80505326505 100644
|
||||
--- a/net/minecraft/world/level/block/EnderChestBlock.java
|
||||
+++ b/net/minecraft/world/level/block/EnderChestBlock.java
|
||||
@@ -85,8 +85,8 @@ public class EnderChestBlock extends AbstractChestBlock<EnderChestBlockEntity> i
|
||||
enderChestInventory.setActiveChest(enderChestBlockEntity); // Needs to happen before ChestMenu.threeRows as it is required for opening animations
|
||||
@@ -88,7 +88,7 @@ public class EnderChestBlock extends AbstractChestBlock<EnderChestBlockEntity> i
|
||||
// Paper start - Fix InventoryOpenEvent cancellation - moved up;
|
||||
container.setActiveChest(enderChest); // Needs to happen before ChestMenu.threeRows as it is required for opening animations
|
||||
if (level instanceof ServerLevel serverLevel && player.openMenu(
|
||||
new SimpleMenuProvider(
|
||||
- (containerId, playerInventory, player1) -> ChestMenu.threeRows(containerId, playerInventory, enderChestInventory), CONTAINER_TITLE
|
||||
- )
|
||||
+ (containerId, playerInventory, player1) -> org.purpurmc.purpur.PurpurConfig.enderChestSixRows ? getEnderChestSixRows(containerId, playerInventory, player, enderChestInventory) : ChestMenu.threeRows(containerId, playerInventory, enderChestInventory), CONTAINER_TITLE
|
||||
+ ) // Purpur - Barrels and enderchests 6 rows
|
||||
- new SimpleMenuProvider((containerId, inventory, p) -> ChestMenu.threeRows(containerId, inventory, container), CONTAINER_TITLE)
|
||||
+ new SimpleMenuProvider((containerId, inventory, p) -> org.purpurmc.purpur.PurpurConfig.enderChestSixRows ? getEnderChestSixRows(containerId, inventory, player, container) : ChestMenu.threeRows(containerId, inventory, container), CONTAINER_TITLE) // Purpur - Barrels and enderchests 6 rows
|
||||
).isPresent()) {
|
||||
// Paper end - Fix InventoryOpenEvent cancellation - moved up;
|
||||
player.awardStat(Stats.OPEN_ENDERCHEST);
|
||||
@@ -100,6 +100,35 @@ public class EnderChestBlock extends AbstractChestBlock<EnderChestBlockEntity> i
|
||||
@@ -102,6 +102,35 @@ public class EnderChestBlock extends AbstractChestBlock<EnderChestBlockEntity> i
|
||||
}
|
||||
}
|
||||
|
||||
@@ -156,13 +154,13 @@ index 383e8285d366c7f594b0b4ff55b367970c9b69e4..077edf449d4faa41abafb94ac41dfe82
|
||||
+ // Purpur end - Barrels and enderchests 6 rows
|
||||
+
|
||||
@Override
|
||||
public BlockEntity newBlockEntity(BlockPos pos, BlockState state) {
|
||||
return new EnderChestBlockEntity(pos, state);
|
||||
public BlockEntity newBlockEntity(final BlockPos worldPosition, final BlockState blockState) {
|
||||
return new EnderChestBlockEntity(worldPosition, blockState);
|
||||
diff --git a/net/minecraft/world/level/block/entity/BarrelBlockEntity.java b/net/minecraft/world/level/block/entity/BarrelBlockEntity.java
|
||||
index 75c09a2079c89f9346391abdd01ef8790b9cbb13..04f6b3c328377091734a111f5a219379e32b5640 100644
|
||||
index 9eb6cb86ff70f04863cae3def1006f82bcb4fa6b..79ca37b3e4ed98139b8adbdccd39d597315c7f99 100644
|
||||
--- a/net/minecraft/world/level/block/entity/BarrelBlockEntity.java
|
||||
+++ b/net/minecraft/world/level/block/entity/BarrelBlockEntity.java
|
||||
@@ -59,7 +59,16 @@ public class BarrelBlockEntity extends RandomizableContainerBlockEntity {
|
||||
@@ -60,7 +60,16 @@ public class BarrelBlockEntity extends RandomizableContainerBlockEntity {
|
||||
}
|
||||
// CraftBukkit end
|
||||
private static final Component DEFAULT_NAME = Component.translatable("container.barrel");
|
||||
@@ -178,9 +176,9 @@ index 75c09a2079c89f9346391abdd01ef8790b9cbb13..04f6b3c328377091734a111f5a219379
|
||||
+ }, ItemStack.EMPTY);
|
||||
+ // Purpur end - Barrels and enderchests 6 rows
|
||||
public final ContainerOpenersCounter openersCounter = new ContainerOpenersCounter() {
|
||||
@Override
|
||||
protected void onOpen(Level level, BlockPos pos, BlockState state) {
|
||||
@@ -111,7 +120,16 @@ public class BarrelBlockEntity extends RandomizableContainerBlockEntity {
|
||||
{
|
||||
Objects.requireNonNull(BarrelBlockEntity.this);
|
||||
@@ -116,7 +125,16 @@ public class BarrelBlockEntity extends RandomizableContainerBlockEntity {
|
||||
|
||||
@Override
|
||||
public int getContainerSize() {
|
||||
@@ -198,19 +196,19 @@ index 75c09a2079c89f9346391abdd01ef8790b9cbb13..04f6b3c328377091734a111f5a219379
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -131,7 +149,16 @@ public class BarrelBlockEntity extends RandomizableContainerBlockEntity {
|
||||
@@ -136,7 +154,16 @@ public class BarrelBlockEntity extends RandomizableContainerBlockEntity {
|
||||
|
||||
@Override
|
||||
protected AbstractContainerMenu createMenu(int id, Inventory player) {
|
||||
- return ChestMenu.threeRows(id, player, this);
|
||||
protected AbstractContainerMenu createMenu(final int containerId, final Inventory inventory) {
|
||||
- return ChestMenu.threeRows(containerId, inventory, this);
|
||||
+ // Purpur start - Barrels and enderchests 6 rows
|
||||
+ return switch (org.purpurmc.purpur.PurpurConfig.barrelRows) {
|
||||
+ case 6 -> ChestMenu.sixRows(id, player, this);
|
||||
+ case 5 -> ChestMenu.fiveRows(id, player, this);
|
||||
+ case 4 -> ChestMenu.fourRows(id, player, this);
|
||||
+ case 2 -> ChestMenu.twoRows(id, player, this);
|
||||
+ case 1 -> ChestMenu.oneRow(id, player, this);
|
||||
+ default -> ChestMenu.threeRows(id, player, this);
|
||||
+ case 6 -> ChestMenu.sixRows(containerId, inventory, this);
|
||||
+ case 5 -> ChestMenu.fiveRows(containerId, inventory, this);
|
||||
+ case 4 -> ChestMenu.fourRows(containerId, inventory, this);
|
||||
+ case 2 -> ChestMenu.twoRows(containerId, inventory, this);
|
||||
+ case 1 -> ChestMenu.oneRow(containerId, inventory, this);
|
||||
+ default -> ChestMenu.threeRows(containerId, inventory, this);
|
||||
+ };
|
||||
+ // Purpur end - Barrels and enderchests 6 rows
|
||||
}
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Giants AI settings
|
||||
|
||||
|
||||
diff --git a/net/minecraft/world/entity/monster/Giant.java b/net/minecraft/world/entity/monster/Giant.java
|
||||
index 416bb85fc87b5f9e372f33df8fe27f12e83834b9..40cf8f44a6b01d45306dab4ba4f9a7ea7c6590a9 100644
|
||||
index 7b6952f13e18548d0e71035d6cd6cfb24c03e6ee..c39031e8fdfb0dff7867d9525dbddde110242647 100644
|
||||
--- a/net/minecraft/world/entity/monster/Giant.java
|
||||
+++ b/net/minecraft/world/entity/monster/Giant.java
|
||||
@@ -30,8 +30,25 @@ public class Giant extends Monster {
|
||||
@@ -69,7 +69,7 @@ index 416bb85fc87b5f9e372f33df8fe27f12e83834b9..40cf8f44a6b01d45306dab4ba4f9a7ea
|
||||
+ // Purpur end - Giants AI settings
|
||||
+
|
||||
@Override
|
||||
public float getWalkTargetValue(BlockPos pos, LevelReader level) {
|
||||
public float getWalkTargetValue(final BlockPos pos, final LevelReader level) {
|
||||
- return level.getPathfindingCostFromLightLevels(pos);
|
||||
+ return super.getWalkTargetValue(pos, level); // Purpur - Giants AI settings - fix light requirements for natural spawns
|
||||
}
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Chickens can retaliate
|
||||
|
||||
|
||||
diff --git a/net/minecraft/world/entity/animal/chicken/Chicken.java b/net/minecraft/world/entity/animal/chicken/Chicken.java
|
||||
index bfc5c6639ef1005d2752d5164f3613ddacc46bf1..52a0bf792337e2f1cf11e215b033caae21ee774b 100644
|
||||
index 3e1e904d9401bef41271fe8d29a22b6cd944e766..0392c8a94801a1dee735ff610058fbb2180571fa 100644
|
||||
--- a/net/minecraft/world/entity/animal/chicken/Chicken.java
|
||||
+++ b/net/minecraft/world/entity/animal/chicken/Chicken.java
|
||||
@@ -95,6 +95,11 @@ public class Chicken extends Animal {
|
||||
@@ -98,6 +98,11 @@ public class Chicken extends Animal {
|
||||
public void initAttributes() {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.chickenMaxHealth);
|
||||
this.getAttribute(Attributes.SCALE).setBaseValue(this.level().purpurConfig.chickenScale);
|
||||
@@ -20,14 +20,14 @@ index bfc5c6639ef1005d2752d5164f3613ddacc46bf1..52a0bf792337e2f1cf11e215b033caae
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -102,13 +107,21 @@ public class Chicken extends Animal {
|
||||
@@ -105,13 +110,21 @@ public class Chicken extends Animal {
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new FloatGoal(this));
|
||||
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
|
||||
- this.goalSelector.addGoal(1, new PanicGoal(this, 1.4));
|
||||
+ //this.goalSelector.addGoal(1, new PanicGoal(this, 1.4)); // Purpur - Chickens can retaliate - moved down
|
||||
this.goalSelector.addGoal(2, new BreedGoal(this, 1.0));
|
||||
this.goalSelector.addGoal(3, new TemptGoal(this, 1.0, itemStack -> itemStack.is(ItemTags.CHICKEN_FOOD), false));
|
||||
this.goalSelector.addGoal(3, new TemptGoal(this, 1.0, i -> i.is(ItemTags.CHICKEN_FOOD), false));
|
||||
this.goalSelector.addGoal(4, new FollowParentGoal(this, 1.1));
|
||||
this.goalSelector.addGoal(5, new WaterAvoidingRandomStrollGoal(this, 1.0));
|
||||
this.goalSelector.addGoal(6, new LookAtPlayerGoal(this, Player.class, 6.0F));
|
||||
@@ -42,8 +42,8 @@ index bfc5c6639ef1005d2752d5164f3613ddacc46bf1..52a0bf792337e2f1cf11e215b033caae
|
||||
+ // Purpur end - Chickens can retaliate
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -117,7 +130,7 @@ public class Chicken extends Animal {
|
||||
public Holder<ChickenSoundVariant> getSoundVariant() {
|
||||
@@ -132,7 +145,7 @@ public class Chicken extends Animal {
|
||||
}
|
||||
|
||||
public static AttributeSupplier.Builder createAttributes() {
|
||||
@@ -5,13 +5,13 @@ Subject: [PATCH] Minecart settings and WASD controls
|
||||
|
||||
|
||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||
index 2eba1b0ac8b4a0bb34d04b81c4c279db6e716b3b..01efe1fbd185ebd3a60c6bbb7aa2d82817506e7d 100644
|
||||
index e5d9c8e6999f3b7a40269fc5b06da4878a114046..b8ebcaca72ed6c92802fe289f8db1e0223d7470d 100644
|
||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -1311,6 +1311,11 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -1296,6 +1296,11 @@ public class ServerPlayer extends Player {
|
||||
} else {
|
||||
// Purpur start - Add boat fall damage config
|
||||
if (damageSource.is(net.minecraft.tags.DamageTypeTags.IS_FALL)) {
|
||||
if (source.is(net.minecraft.tags.DamageTypeTags.IS_FALL)) {
|
||||
+ // Purpur start - Minecart settings and WASD controls
|
||||
+ if (getRootVehicle() instanceof AbstractMinecart && level().purpurConfig.minecartControllable && !level().purpurConfig.minecartControllableFallDamage) {
|
||||
+ return false;
|
||||
@@ -21,7 +21,7 @@ index 2eba1b0ac8b4a0bb34d04b81c4c279db6e716b3b..01efe1fbd185ebd3a60c6bbb7aa2d828
|
||||
return false;
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/vehicle/minecart/AbstractMinecart.java b/net/minecraft/world/entity/vehicle/minecart/AbstractMinecart.java
|
||||
index 1123ec0038552e0b40774f4a433ff325695ea071..48099ae66045b6e78ec52832e3b972ac9c9bc246 100644
|
||||
index 9f72e7eeecf3037a498e7688f55cc029a49f388d..59cf0d4dcffc00313e06574987e4364f6ca21eb5 100644
|
||||
--- a/net/minecraft/world/entity/vehicle/minecart/AbstractMinecart.java
|
||||
+++ b/net/minecraft/world/entity/vehicle/minecart/AbstractMinecart.java
|
||||
@@ -105,6 +105,10 @@ public abstract class AbstractMinecart extends VehicleEntity {
|
||||
@@ -49,7 +49,7 @@ index 1123ec0038552e0b40774f4a433ff325695ea071..48099ae66045b6e78ec52832e3b972ac
|
||||
}
|
||||
}
|
||||
|
||||
@@ -278,6 +287,14 @@ public abstract class AbstractMinecart extends VehicleEntity {
|
||||
@@ -289,6 +298,14 @@ public abstract class AbstractMinecart extends VehicleEntity {
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
@@ -64,7 +64,7 @@ index 1123ec0038552e0b40774f4a433ff325695ea071..48099ae66045b6e78ec52832e3b972ac
|
||||
// CraftBukkit start
|
||||
double prevX = this.getX();
|
||||
double prevY = this.getY();
|
||||
@@ -392,15 +409,61 @@ public abstract class AbstractMinecart extends VehicleEntity {
|
||||
@@ -405,15 +422,61 @@ public abstract class AbstractMinecart extends VehicleEntity {
|
||||
this.behavior.moveAlongTrack(level);
|
||||
}
|
||||
|
||||
@@ -87,10 +87,10 @@ index 1123ec0038552e0b40774f4a433ff325695ea071..48099ae66045b6e78ec52832e3b972ac
|
||||
+ }
|
||||
+ // Purpur end - Minecart settings and WASD controls
|
||||
+
|
||||
protected void comeOffTrack(ServerLevel level) {
|
||||
protected void comeOffTrack(final ServerLevel level) {
|
||||
double maxSpeed = this.getMaxSpeed(level);
|
||||
Vec3 deltaMovement = this.getDeltaMovement();
|
||||
this.setDeltaMovement(Mth.clamp(deltaMovement.x, -maxSpeed, maxSpeed), deltaMovement.y, Mth.clamp(deltaMovement.z, -maxSpeed, maxSpeed));
|
||||
Vec3 movement = this.getDeltaMovement();
|
||||
this.setDeltaMovement(Mth.clamp(movement.x, -maxSpeed, maxSpeed), movement.y, Mth.clamp(movement.z, -maxSpeed, maxSpeed));
|
||||
+
|
||||
+ // Purpur start - Minecart settings and WASD controls
|
||||
+ if (level().purpurConfig.minecartControllable && !isInWater() && !isInLava() && !passengers.isEmpty()) {
|
||||
@@ -127,23 +127,23 @@ index 1123ec0038552e0b40774f4a433ff325695ea071..48099ae66045b6e78ec52832e3b972ac
|
||||
this.move(MoverType.SELF, this.getDeltaMovement());
|
||||
if (!this.onGround()) {
|
||||
diff --git a/net/minecraft/world/item/MinecartItem.java b/net/minecraft/world/item/MinecartItem.java
|
||||
index 3b511139985ea1646661ae0a6bcd1f0e386561e7..3a65e1a0b914d113feb727833803ece8f3b2e020 100644
|
||||
index 7464dbde8cc3348748d2a3733624bd2274f9c735..91df0baebab1da9cd060cb93698c7f154c719669 100644
|
||||
--- a/net/minecraft/world/item/MinecartItem.java
|
||||
+++ b/net/minecraft/world/item/MinecartItem.java
|
||||
@@ -30,8 +30,9 @@ public class MinecartItem extends Item {
|
||||
BlockPos clickedPos = context.getClickedPos();
|
||||
BlockState blockState = level.getBlockState(clickedPos);
|
||||
BlockPos pos = context.getClickedPos();
|
||||
BlockState blockState = level.getBlockState(pos);
|
||||
if (!blockState.is(BlockTags.RAILS)) {
|
||||
- return InteractionResult.FAIL;
|
||||
- } else {
|
||||
+ if (!level.purpurConfig.minecartPlaceAnywhere) return InteractionResult.FAIL; // Purpur - Minecart settings and WASD controls
|
||||
+ if (blockState.isSolid()) clickedPos = clickedPos.relative(context.getClickedFace());
|
||||
+ if (blockState.isSolid()) pos = pos.relative(context.getClickedFace());
|
||||
+ } // else { // Purpur - Minecart settings and WASD controls
|
||||
ItemStack itemInHand = context.getItemInHand();
|
||||
RailShape railShape = blockState.getBlock() instanceof BaseRailBlock
|
||||
ItemStack itemStack = context.getItemInHand();
|
||||
RailShape shape = blockState.getBlock() instanceof BaseRailBlock
|
||||
? blockState.getValue(((BaseRailBlock)blockState.getBlock()).getShapeProperty())
|
||||
@@ -72,6 +73,6 @@ public class MinecartItem extends Item {
|
||||
itemInHand.shrink(1);
|
||||
@@ -70,6 +71,6 @@ public class MinecartItem extends Item {
|
||||
itemStack.shrink(1);
|
||||
return InteractionResult.SUCCESS;
|
||||
}
|
||||
- }
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Villagers follow emerald blocks
|
||||
|
||||
|
||||
diff --git a/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java b/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java
|
||||
index 686776bb00560f9da8838bd5f8dd64aaddfa7a2b..ccdd439a89b7e7e10ee960cfe1e5e119d5367799 100644
|
||||
index 6b78ddb4ec40d45634288796a98e34714e0deb68..34d2394006a006ea0773a52bb43b5cb3617470e5 100644
|
||||
--- a/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java
|
||||
+++ b/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java
|
||||
@@ -173,7 +173,7 @@ public class DefaultAttributes {
|
||||
@@ -18,35 +18,35 @@ index 686776bb00560f9da8838bd5f8dd64aaddfa7a2b..ccdd439a89b7e7e10ee960cfe1e5e119
|
||||
.put(EntityType.WITHER, WitherBoss.createAttributes().build())
|
||||
.put(EntityType.WITHER_SKELETON, AbstractSkeleton.createAttributes().build())
|
||||
diff --git a/net/minecraft/world/entity/ai/goal/TemptGoal.java b/net/minecraft/world/entity/ai/goal/TemptGoal.java
|
||||
index 18030dc04eb7d7971e457637b5320b1e41665658..60ebd57de496eba6ad307195ffacd3b7fc4149ff 100644
|
||||
index af2bd8a5cf760792a63dfb9c2370360f288beab6..016167a6ff90dfe5a2e66596eaab2c8f2775c016 100644
|
||||
--- a/net/minecraft/world/entity/ai/goal/TemptGoal.java
|
||||
+++ b/net/minecraft/world/entity/ai/goal/TemptGoal.java
|
||||
@@ -70,7 +70,7 @@ public class TemptGoal extends Goal {
|
||||
}
|
||||
|
||||
private boolean shouldFollow(LivingEntity entity) {
|
||||
- return this.items.test(entity.getMainHandItem()) || this.items.test(entity.getOffhandItem());
|
||||
+ return (this.items.test(entity.getMainHandItem()) || this.items.test(entity.getOffhandItem())) && (!(this.mob instanceof net.minecraft.world.entity.npc.villager.Villager villager) || !villager.isSleeping()); // Purpur - Villagers follow emerald blocks
|
||||
private boolean shouldFollow(final LivingEntity player) {
|
||||
- return this.items.test(player.getMainHandItem()) || this.items.test(player.getOffhandItem());
|
||||
+ return (this.items.test(player.getMainHandItem()) || this.items.test(player.getOffhandItem())) && (!(this.mob instanceof net.minecraft.world.entity.npc.villager.Villager villager) || !villager.isSleeping()); // Purpur - Villagers follow emerald blocks
|
||||
}
|
||||
|
||||
@Override
|
||||
diff --git a/net/minecraft/world/entity/npc/villager/AbstractVillager.java b/net/minecraft/world/entity/npc/villager/AbstractVillager.java
|
||||
index fa8f1ea38192f9ad0a961a53399f295d83af7721..05d1a859e1aee639ad9572f2369e6db3c3d7a111 100644
|
||||
index f6ac52144958b48dad0b0f682634fad3d8e9557c..0825e06843c3613843cf7c15fa3fb3a1c0787781 100644
|
||||
--- a/net/minecraft/world/entity/npc/villager/AbstractVillager.java
|
||||
+++ b/net/minecraft/world/entity/npc/villager/AbstractVillager.java
|
||||
@@ -38,6 +38,7 @@ import net.minecraft.world.phys.Vec3;
|
||||
import org.jspecify.annotations.Nullable;
|
||||
@@ -52,6 +52,7 @@ import org.jspecify.annotations.Nullable;
|
||||
import org.slf4j.Logger;
|
||||
|
||||
public abstract class AbstractVillager extends AgeableMob implements InventoryCarrier, Npc, Merchant {
|
||||
public abstract class AbstractVillager extends AgeableMob implements Npc, Merchant, InventoryCarrier {
|
||||
+ public static final net.minecraft.world.item.crafting.Ingredient TEMPT_ITEMS = net.minecraft.world.item.crafting.Ingredient.of(net.minecraft.world.level.block.Blocks.EMERALD_BLOCK.asItem()); // Purpur - Villagers follow emerald blocks
|
||||
private static final Logger LOGGER = LogUtils.getLogger();
|
||||
private static final EntityDataAccessor<Integer> DATA_UNHAPPY_COUNTER = SynchedEntityData.defineId(AbstractVillager.class, EntityDataSerializers.INT);
|
||||
public static final int VILLAGER_SLOT_OFFSET = 300;
|
||||
private static final int VILLAGER_INVENTORY_SIZE = 8;
|
||||
private @Nullable Player tradingPlayer;
|
||||
diff --git a/net/minecraft/world/entity/npc/villager/Villager.java b/net/minecraft/world/entity/npc/villager/Villager.java
|
||||
index 6f9658af51f1f30434756f871cf6ab5cd2f3a7ea..02836bd2e8fda563877d3014ab839734aebc7457 100644
|
||||
index ddbfcf8e16e17a3f482cb99de61ae8e40a383c18..6105aa39baf888dd625f4d345822a4058bf83ef4 100644
|
||||
--- a/net/minecraft/world/entity/npc/villager/Villager.java
|
||||
+++ b/net/minecraft/world/entity/npc/villager/Villager.java
|
||||
@@ -269,6 +269,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -271,6 +271,7 @@ public class Villager extends AbstractVillager implements VillagerDataHolder, Re
|
||||
@Override
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this));
|
||||
@@ -54,7 +54,7 @@ index 6f9658af51f1f30434756f871cf6ab5cd2f3a7ea..02836bd2e8fda563877d3014ab839734
|
||||
}
|
||||
// Purpur end - Ridables
|
||||
|
||||
@@ -277,6 +278,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -279,6 +280,7 @@ public class Villager extends AbstractVillager implements VillagerDataHolder, Re
|
||||
public void initAttributes() {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.villagerMaxHealth);
|
||||
this.getAttribute(Attributes.SCALE).setBaseValue(this.level().purpurConfig.villagerScale);
|
||||
@@ -62,7 +62,7 @@ index 6f9658af51f1f30434756f871cf6ab5cd2f3a7ea..02836bd2e8fda563877d3014ab839734
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -345,7 +347,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -320,7 +322,7 @@ public class Villager extends AbstractVillager implements VillagerDataHolder, Re
|
||||
}
|
||||
|
||||
public static AttributeSupplier.Builder createAttributes() {
|
||||
@@ -72,7 +72,7 @@ index 6f9658af51f1f30434756f871cf6ab5cd2f3a7ea..02836bd2e8fda563877d3014ab839734
|
||||
|
||||
public boolean assignProfessionWhenSpawned() {
|
||||
diff --git a/net/minecraft/world/entity/npc/wanderingtrader/WanderingTrader.java b/net/minecraft/world/entity/npc/wanderingtrader/WanderingTrader.java
|
||||
index 9d5dbaeafd899594425547fc58b87a1d0a52066e..c6c4f4f2a970db7e782181eaca312931b192b0d5 100644
|
||||
index 848aeba87bd220d7241c5adeba26fbd6591dbbae..ea74d8ac0b5de890124361e65aeb9a08ad09fa1b 100644
|
||||
--- a/net/minecraft/world/entity/npc/wanderingtrader/WanderingTrader.java
|
||||
+++ b/net/minecraft/world/entity/npc/wanderingtrader/WanderingTrader.java
|
||||
@@ -89,9 +89,16 @@ public class WanderingTrader extends AbstractVillager implements Consumable.Over
|
||||
@@ -92,7 +92,7 @@ index 9d5dbaeafd899594425547fc58b87a1d0a52066e..c6c4f4f2a970db7e782181eaca312931
|
||||
@Override
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new FloatGoal(this));
|
||||
@@ -126,6 +133,7 @@ public class WanderingTrader extends AbstractVillager implements Consumable.Over
|
||||
@@ -123,6 +130,7 @@ public class WanderingTrader extends AbstractVillager implements Consumable.Over
|
||||
this.goalSelector.addGoal(1, new PanicGoal(this, 0.5));
|
||||
this.goalSelector.addGoal(1, new LookAtTradingPlayerGoal(this));
|
||||
this.goalSelector.addGoal(2, new WanderingTrader.WanderToPositionGoal(this, 2.0, 0.35));
|
||||
@@ -5,15 +5,14 @@ Subject: [PATCH] Implement elytra settings
|
||||
|
||||
|
||||
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
|
||||
index 51e7ca17a8e32be76cdcd7a59a15acf4b73cc98a..c4fa59a13be8affa28de7bc8f2da3e353515c821 100644
|
||||
index 7119a83b5b9811ab3ef2622f91c966741818e48f..2e7e5c4c42bcdb6135a088ffe0a7a8f4558dc12c 100644
|
||||
--- a/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -3895,7 +3895,18 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
|
||||
.filter(equipmentSlot1 -> canGlideUsing(this.getItemBySlot(equipmentSlot1), equipmentSlot1))
|
||||
.toList();
|
||||
EquipmentSlot equipmentSlot = Util.getRandom(list, this.random);
|
||||
- this.getItemBySlot(equipmentSlot).hurtAndBreak(1, this, equipmentSlot);
|
||||
+
|
||||
@@ -3945,7 +3945,16 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
|
||||
if (freeFallInterval % 2 == 0) {
|
||||
List<EquipmentSlot> slotsWithGliders = EquipmentSlot.VALUES.stream().filter(slot -> canGlideUsing(this.getItemBySlot(slot), slot)).toList();
|
||||
EquipmentSlot slotToDamage = Util.getRandom(slotsWithGliders, this.random);
|
||||
- this.getItemBySlot(slotToDamage).hurtAndBreak(1, this, slotToDamage);
|
||||
+ // Purpur start - Implement elytra settings
|
||||
+ int damage = level().purpurConfig.elytraDamagePerSecond;
|
||||
+ if (level().purpurConfig.elytraDamageMultiplyBySpeed > 0) {
|
||||
@@ -22,14 +21,13 @@ index 51e7ca17a8e32be76cdcd7a59a15acf4b73cc98a..c4fa59a13be8affa28de7bc8f2da3e35
|
||||
+ damage *= (int) speed;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ this.getItemBySlot(equipmentSlot).hurtAndBreak(damage, this, equipmentSlot);
|
||||
+ this.getItemBySlot(slotToDamage).hurtAndBreak(damage, this, slotToDamage);
|
||||
+ // Purpur end - Implement elytra settings
|
||||
}
|
||||
|
||||
this.gameEvent(GameEvent.ELYTRA_GLIDE);
|
||||
diff --git a/net/minecraft/world/item/FireworkRocketItem.java b/net/minecraft/world/item/FireworkRocketItem.java
|
||||
index 2c597e20c1ff587f2eadef600bedb9e01b999bbf..e548f7161f14d7dc02d6882c3639ff65d59d7b37 100644
|
||||
index c17607cb1fd5403f17a64b4218571e669b840a2e..6545145e1f83b333fd1d05ab714c9869c5d2d7fe 100644
|
||||
--- a/net/minecraft/world/item/FireworkRocketItem.java
|
||||
+++ b/net/minecraft/world/item/FireworkRocketItem.java
|
||||
@@ -73,6 +73,17 @@ public class FireworkRocketItem extends Item implements ProjectileItem {
|
||||
@@ -48,13 +46,13 @@ index 2c597e20c1ff587f2eadef600bedb9e01b999bbf..e548f7161f14d7dc02d6882c3639ff65
|
||||
+ }
|
||||
+ // Purpur end - Implement elytra settings
|
||||
if (event.shouldConsume() && !player.hasInfiniteMaterials()) {
|
||||
itemInHand.shrink(1); // Moved up from below
|
||||
itemStack.shrink(1); // Moved up from below
|
||||
} else {
|
||||
diff --git a/net/minecraft/world/item/ItemStack.java b/net/minecraft/world/item/ItemStack.java
|
||||
index b8e38ce9b5c4b11e5bcbe6cf5603d6d39454759c..fd90ba8eba88c8d4fa372cb1047e0af8528f914d 100644
|
||||
index 842bc5b3b7a31a8cc3b5651fb69092402d83606c..70a45aab9ac93973a3dde08140a4acf4813987f3 100644
|
||||
--- a/net/minecraft/world/item/ItemStack.java
|
||||
+++ b/net/minecraft/world/item/ItemStack.java
|
||||
@@ -702,6 +702,14 @@ public final class ItemStack implements DataComponentHolder {
|
||||
@@ -695,6 +695,14 @@ public final class ItemStack implements DataComponentHolder, ItemInstance {
|
||||
org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerItemBreakEvent(serverPlayer, this); // Paper - Add EntityDamageItemEvent
|
||||
}
|
||||
// CraftBukkit end
|
||||
@@ -70,24 +68,23 @@ index b8e38ce9b5c4b11e5bcbe6cf5603d6d39454759c..fd90ba8eba88c8d4fa372cb1047e0af8
|
||||
onBreak.accept(item);
|
||||
}
|
||||
diff --git a/net/minecraft/world/item/TridentItem.java b/net/minecraft/world/item/TridentItem.java
|
||||
index b87861c089f849e855d10c15ede53fd7c9e6a47c..633bb1a6d69b55717a9a07978b92f625ff5d066a 100644
|
||||
index 710b8711184ea6e1cf0dfd338b897923ed2b79fb..82995f60dbb62325b46bc8a87cd2087461715c4f 100644
|
||||
--- a/net/minecraft/world/item/TridentItem.java
|
||||
+++ b/net/minecraft/world/item/TridentItem.java
|
||||
@@ -126,6 +126,17 @@ public class TridentItem extends Item implements ProjectileItem {
|
||||
f1 *= tridentSpinAttackStrength / squareRoot;
|
||||
f2 *= tridentSpinAttackStrength / squareRoot;
|
||||
if (!org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerRiptideEvent(player, stack, f, f1, f2)) return false; // Paper - Add player riptide event
|
||||
+ // Purpur start - Implement elytra settings
|
||||
+ List<net.minecraft.world.entity.EquipmentSlot> list = net.minecraft.world.entity.EquipmentSlot.VALUES.stream().filter((enumitemslot) -> LivingEntity.canGlideUsing(entity.getItemBySlot(enumitemslot), enumitemslot)).toList();
|
||||
+ if (!list.isEmpty()) {
|
||||
+ net.minecraft.world.entity.EquipmentSlot enumitemslot = net.minecraft.util.Util.getRandom(list, entity.random);
|
||||
+ ItemStack glideItem = entity.getItemBySlot(enumitemslot);
|
||||
+ if (glideItem.has(net.minecraft.core.component.DataComponents.GLIDER) && level.purpurConfig.elytraDamagePerTridentBoost > 0) {
|
||||
+ glideItem.hurtAndBreak(level.purpurConfig.elytraDamagePerTridentBoost, entity, enumitemslot);
|
||||
@@ -125,6 +125,16 @@ public class TridentItem extends Item implements ProjectileItem {
|
||||
yd *= riptideStrength / dist;
|
||||
zd *= riptideStrength / dist;
|
||||
if (!org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerRiptideEvent(player, itemStack, xd, yd, zd)) return false; // Paper - Add player riptide event
|
||||
+ // Purpur start - Implement elytra settings
|
||||
+ List<net.minecraft.world.entity.EquipmentSlot> list = net.minecraft.world.entity.EquipmentSlot.VALUES.stream().filter((enumitemslot) -> LivingEntity.canGlideUsing(entity.getItemBySlot(enumitemslot), enumitemslot)).toList();
|
||||
+ if (!list.isEmpty()) {
|
||||
+ net.minecraft.world.entity.EquipmentSlot enumitemslot = net.minecraft.util.Util.getRandom(list, entity.random);
|
||||
+ ItemStack glideItem = entity.getItemBySlot(enumitemslot);
|
||||
+ if (glideItem.has(net.minecraft.core.component.DataComponents.GLIDER) && level.purpurConfig.elytraDamagePerTridentBoost > 0) {
|
||||
+ glideItem.hurtAndBreak(level.purpurConfig.elytraDamagePerTridentBoost, entity, enumitemslot);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ // Purpur end - Implement elytra settings
|
||||
+
|
||||
player.push(f, f1, f2);
|
||||
player.startAutoSpinAttack(20, 8.0F, stack);
|
||||
if (player.onGround()) {
|
||||
+ // Purpur end - Implement elytra settings
|
||||
player.push(xd, yd, zd);
|
||||
player.startAutoSpinAttack(20, 8.0F, itemStack);
|
||||
if (player.onGround()) {
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable jockey options
|
||||
|
||||
|
||||
diff --git a/net/minecraft/world/entity/monster/zombie/Drowned.java b/net/minecraft/world/entity/monster/zombie/Drowned.java
|
||||
index 0b6d2bcec8506686eb6e0aaeb14870c14bd84e9d..3b1e3e7c1218cbfdfe48db3fad15280f43fd3311 100644
|
||||
index 573abf9eae9f5492e4231d663814352f7e046fe2..0f64fe7e15655c63f996106d504ab4d18dac4a1c 100644
|
||||
--- a/net/minecraft/world/entity/monster/zombie/Drowned.java
|
||||
+++ b/net/minecraft/world/entity/monster/zombie/Drowned.java
|
||||
@@ -109,6 +109,23 @@ public class Drowned extends Zombie implements RangedAttackMob {
|
||||
@@ -116,6 +116,23 @@ public class Drowned extends Zombie implements RangedAttackMob {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -33,10 +33,10 @@ index 0b6d2bcec8506686eb6e0aaeb14870c14bd84e9d..3b1e3e7c1218cbfdfe48db3fad15280f
|
||||
protected void addBehaviourGoals() {
|
||||
this.goalSelector.addGoal(1, new Drowned.DrownedGoToWaterGoal(this, 1.0));
|
||||
diff --git a/net/minecraft/world/entity/monster/zombie/Husk.java b/net/minecraft/world/entity/monster/zombie/Husk.java
|
||||
index 03270138e6fae7ee28f958cafee5b74b18dce355..d31145fee0f646d734e90199288b29f07854d066 100644
|
||||
index 1c985585a2da43e59bb5b9ebd742e1e31b2cda29..c3f2d9ab49eb501f26939387624f326227908b81 100644
|
||||
--- a/net/minecraft/world/entity/monster/zombie/Husk.java
|
||||
+++ b/net/minecraft/world/entity/monster/zombie/Husk.java
|
||||
@@ -58,6 +58,23 @@ public class Husk extends Zombie {
|
||||
@@ -66,6 +66,23 @@ public class Husk extends Zombie {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -61,10 +61,10 @@ index 03270138e6fae7ee28f958cafee5b74b18dce355..d31145fee0f646d734e90199288b29f0
|
||||
public boolean isSunSensitive() {
|
||||
return false;
|
||||
diff --git a/net/minecraft/world/entity/monster/zombie/Zombie.java b/net/minecraft/world/entity/monster/zombie/Zombie.java
|
||||
index d873ca9873e95f3a5869cb63a93b0643a9c867dc..638642628c3dc9fa25d25c589029219c23d1e602 100644
|
||||
index 900c768b0118153ea2c74dea0960aef3217da441..5bf9970b93e27004dd832c8465dc95a681583ef6 100644
|
||||
--- a/net/minecraft/world/entity/monster/zombie/Zombie.java
|
||||
+++ b/net/minecraft/world/entity/monster/zombie/Zombie.java
|
||||
@@ -128,6 +128,20 @@ public class Zombie extends Monster {
|
||||
@@ -138,6 +138,20 @@ public class Zombie extends Monster {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -85,42 +85,42 @@ index d873ca9873e95f3a5869cb63a93b0643a9c867dc..638642628c3dc9fa25d25c589029219c
|
||||
@Override
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
|
||||
@@ -531,19 +545,18 @@ public class Zombie extends Monster {
|
||||
@@ -550,19 +564,18 @@ public class Zombie extends Monster {
|
||||
}
|
||||
|
||||
if (spawnGroupData instanceof Zombie.ZombieGroupData zombieGroupData) {
|
||||
- if (zombieGroupData.isBaby) {
|
||||
if (groupData instanceof Zombie.ZombieGroupData zombieData) {
|
||||
- if (zombieData.isBaby) {
|
||||
- this.setBaby(true);
|
||||
+ if (!jockeyOnlyBaby() || zombieGroupData.isBaby) { // Purpur - Configurable jockey options
|
||||
+ this.setBaby(zombieGroupData.isBaby); // Purpur - Configurable jockey options
|
||||
if (zombieGroupData.canSpawnJockey) {
|
||||
+ if (!jockeyOnlyBaby() || zombieData.isBaby) { // Purpur - Configurable jockey options
|
||||
+ this.setBaby(zombieData.isBaby); // Purpur - Configurable jockey options
|
||||
if (zombieData.canSpawnJockey) {
|
||||
- if (random.nextFloat() < 0.05) {
|
||||
- List<Chicken> entitiesOfClass = level.getEntitiesOfClass(
|
||||
- List<Chicken> chickens = level.getEntitiesOfClass(
|
||||
+ if (random.nextFloat() < jockeyChance()) { // Purpur - Configurable jockey options
|
||||
+ List<Chicken> entitiesOfClass = jockeyTryExistingChickens() ? level.getEntitiesOfClass( // Purpur - Configurable jockey options
|
||||
+ List<Chicken> chickens = jockeyTryExistingChickens() ? level.getEntitiesOfClass( // Purpur - Configurable jockey options
|
||||
Chicken.class, this.getBoundingBox().inflate(5.0, 3.0, 5.0), EntitySelector.ENTITY_NOT_BEING_RIDDEN
|
||||
- );
|
||||
+ ) : java.util.Collections.emptyList(); // Purpur - Configurable jockey options
|
||||
if (!entitiesOfClass.isEmpty()) {
|
||||
Chicken chicken = entitiesOfClass.get(0);
|
||||
if (!chickens.isEmpty()) {
|
||||
Chicken chicken = chickens.get(0);
|
||||
chicken.setChickenJockey(true);
|
||||
this.startRiding(chicken, false, false);
|
||||
- }
|
||||
- } else if (random.nextFloat() < 0.05) {
|
||||
+ } else { // Purpur - Configurable jockey options
|
||||
Chicken chicken1 = EntityType.CHICKEN.create(this.level(), EntitySpawnReason.JOCKEY);
|
||||
if (chicken1 != null) {
|
||||
chicken1.snapTo(this.getX(), this.getY(), this.getZ(), this.getYRot(), 0.0F);
|
||||
@@ -552,6 +565,7 @@ public class Zombie extends Monster {
|
||||
this.startRiding(chicken1, false, false);
|
||||
level.addFreshEntity(chicken1, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.MOUNT); // CraftBukkit
|
||||
Chicken chicken = EntityType.CHICKEN.create(this.level(), EntitySpawnReason.JOCKEY);
|
||||
if (chicken != null) {
|
||||
chicken.snapTo(this.getX(), this.getY(), this.getZ(), this.getYRot(), 0.0F);
|
||||
@@ -571,6 +584,7 @@ public class Zombie extends Monster {
|
||||
this.startRiding(chicken, false, false);
|
||||
level.addFreshEntity(chicken, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.MOUNT); // CraftBukkit
|
||||
}
|
||||
+ } // Purpur - Configurable jockey options
|
||||
}
|
||||
}
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/monster/zombie/ZombieVillager.java b/net/minecraft/world/entity/monster/zombie/ZombieVillager.java
|
||||
index 0a02684ec00540b91a2a68e5787e51d15b3743a7..62f55763d95e496da8b8fcf7d95752777e323b48 100644
|
||||
index 02cc4228bfc1ee27ffceb39d6406fce89f6d8312..8a5634d2204b9abae560d34a7b0616b3ebdc68ab 100644
|
||||
--- a/net/minecraft/world/entity/monster/zombie/ZombieVillager.java
|
||||
+++ b/net/minecraft/world/entity/monster/zombie/ZombieVillager.java
|
||||
@@ -114,6 +114,23 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
|
||||
@@ -145,13 +145,13 @@ index 0a02684ec00540b91a2a68e5787e51d15b3743a7..62f55763d95e496da8b8fcf7d9575277
|
||||
+ // Purpur end - Configurable jockey options
|
||||
+
|
||||
@Override
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
protected void defineSynchedData(final SynchedEntityData.Builder entityData) {
|
||||
super.defineSynchedData(entityData);
|
||||
diff --git a/net/minecraft/world/entity/monster/zombie/ZombifiedPiglin.java b/net/minecraft/world/entity/monster/zombie/ZombifiedPiglin.java
|
||||
index 3ff8c95075f9d25c3a2e4160ee6d18057838a7b5..ec39ad6740361774f9ecfda7186cab9d8fac90f2 100644
|
||||
index b6c14d7c5fbe7f37d4d5b865aae60d4a05af081b..d1edf1f44de1fc6d23bcd8044f8bf4165821790e 100644
|
||||
--- a/net/minecraft/world/entity/monster/zombie/ZombifiedPiglin.java
|
||||
+++ b/net/minecraft/world/entity/monster/zombie/ZombifiedPiglin.java
|
||||
@@ -89,6 +89,23 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
|
||||
@@ -93,6 +93,23 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Phantoms attracted to crystals and crystals shoot phantoms
|
||||
|
||||
|
||||
diff --git a/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java b/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java
|
||||
index d1c593ccfab7bee4366ee7c56606a230964e3fb7..21d678008fac473dff4c3e10890882ab94d0087c 100644
|
||||
index 0bfb8cd53e87d986679d4e26ebf77c52e58c1c10..fd901b84bc105a2ccf59eef687a20d53b84e1906 100644
|
||||
--- a/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java
|
||||
+++ b/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java
|
||||
@@ -27,6 +27,12 @@ public class EndCrystal extends Entity {
|
||||
@@ -19,7 +19,7 @@ index d1c593ccfab7bee4366ee7c56606a230964e3fb7..21d678008fac473dff4c3e10890882ab
|
||||
+ private int idleCooldown = 0;
|
||||
+ // Purpur end - Phantoms attracted to crystals and crystals shoot phantoms
|
||||
|
||||
public EndCrystal(EntityType<? extends EndCrystal> type, Level level) {
|
||||
public EndCrystal(final EntityType<? extends EndCrystal> type, final Level level) {
|
||||
super(type, level);
|
||||
@@ -95,6 +101,49 @@ public class EndCrystal extends Entity {
|
||||
// Paper end - Fix invulnerable end crystals
|
||||
@@ -72,18 +72,18 @@ index d1c593ccfab7bee4366ee7c56606a230964e3fb7..21d678008fac473dff4c3e10890882ab
|
||||
|
||||
@Override
|
||||
diff --git a/net/minecraft/world/entity/monster/Phantom.java b/net/minecraft/world/entity/monster/Phantom.java
|
||||
index 046d6d3b665d0dbb5403ebe91d18503ec7613936..7077beafe2251fcc4e37578091bfaa02714268b9 100644
|
||||
index b45eb26fa78a4bafa247c3cf8f20fb2f076646c5..c33910433eae54df4d1d4b918c28b361bd510577 100644
|
||||
--- a/net/minecraft/world/entity/monster/Phantom.java
|
||||
+++ b/net/minecraft/world/entity/monster/Phantom.java
|
||||
@@ -49,6 +49,7 @@ public class Phantom extends Mob implements Enemy {
|
||||
Vec3 moveTargetPoint = Vec3.ZERO;
|
||||
@Nullable public BlockPos anchorPoint;
|
||||
Phantom.AttackPhase attackPhase = Phantom.AttackPhase.CIRCLE;
|
||||
@@ -50,6 +50,7 @@ public class Phantom extends Mob implements Enemy {
|
||||
private Vec3 moveTargetPoint = Vec3.ZERO;
|
||||
public @Nullable BlockPos anchorPoint;
|
||||
private Phantom.AttackPhase attackPhase = Phantom.AttackPhase.CIRCLE;
|
||||
+ Vec3 crystalPosition; // Purpur - Phantoms attracted to crystals and crystals shoot phantoms
|
||||
// Paper start
|
||||
public java.util.@Nullable UUID spawningEntity;
|
||||
public boolean shouldBurnInDay = true;
|
||||
@@ -107,6 +108,25 @@ public class Phantom extends Mob implements Enemy {
|
||||
@@ -108,6 +109,25 @@ public class Phantom extends Mob implements Enemy {
|
||||
}
|
||||
// Purpur end - Ridables
|
||||
|
||||
@@ -109,7 +109,7 @@ index 046d6d3b665d0dbb5403ebe91d18503ec7613936..7077beafe2251fcc4e37578091bfaa02
|
||||
@Override
|
||||
public boolean isFlapping() {
|
||||
return (this.getUniqueFlapTickOffset() + this.tickCount) % TICKS_PER_FLAP == 0;
|
||||
@@ -120,9 +140,15 @@ public class Phantom extends Mob implements Enemy {
|
||||
@@ -121,9 +141,15 @@ public class Phantom extends Mob implements Enemy {
|
||||
@Override
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
|
||||
@@ -128,7 +128,7 @@ index 046d6d3b665d0dbb5403ebe91d18503ec7613936..7077beafe2251fcc4e37578091bfaa02
|
||||
this.targetSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
|
||||
this.targetSelector.addGoal(1, new Phantom.PhantomAttackPlayerTargetGoal());
|
||||
}
|
||||
@@ -506,6 +532,124 @@ public class Phantom extends Mob implements Enemy {
|
||||
@@ -513,6 +539,124 @@ public class Phantom extends Mob implements Enemy {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -243,13 +243,13 @@ index 046d6d3b665d0dbb5403ebe91d18503ec7613936..7077beafe2251fcc4e37578091bfaa02
|
||||
+ private void updateOffset() {
|
||||
+ this.offset += this.direction * 15.0F * 0.017453292F;
|
||||
+ phantom.moveTargetPoint = phantom.crystalPosition.add(
|
||||
+ this.radius * Mth.cos(this.offset),
|
||||
+ -4.0F + this.verticalChange,
|
||||
+ this.radius * Mth.sin(this.offset));
|
||||
+ this.radius * Mth.cos(this.offset),
|
||||
+ -4.0F + this.verticalChange,
|
||||
+ this.radius * Mth.sin(this.offset));
|
||||
+ }
|
||||
+ }
|
||||
+ // Purpur end - Phantoms attracted to crystals and crystals shoot phantoms
|
||||
+
|
||||
class PhantomMoveControl extends org.purpurmc.purpur.controller.FlyingMoveControllerWASD { // Purpur - Ridables
|
||||
private float speed = 0.1F;
|
||||
private class PhantomMoveControl extends org.purpurmc.purpur.controller.FlyingMoveControllerWASD { // Purpur - Ridables
|
||||
private float speed;
|
||||
|
||||
@@ -5,18 +5,18 @@ Subject: [PATCH] Phantoms burn in light
|
||||
|
||||
|
||||
diff --git a/net/minecraft/world/entity/monster/Phantom.java b/net/minecraft/world/entity/monster/Phantom.java
|
||||
index 7077beafe2251fcc4e37578091bfaa02714268b9..6e8fe1b694ade45ffbf0b9bb39b954deffeb2402 100644
|
||||
index c33910433eae54df4d1d4b918c28b361bd510577..da014eae20abb320ecb897517810e4ab53783a89 100644
|
||||
--- a/net/minecraft/world/entity/monster/Phantom.java
|
||||
+++ b/net/minecraft/world/entity/monster/Phantom.java
|
||||
@@ -54,6 +54,7 @@ public class Phantom extends Mob implements Enemy {
|
||||
@@ -55,6 +55,7 @@ public class Phantom extends Mob implements Enemy {
|
||||
public java.util.@Nullable UUID spawningEntity;
|
||||
public boolean shouldBurnInDay = true;
|
||||
// Paper end
|
||||
+ private static final net.minecraft.world.item.crafting.Ingredient TORCH = net.minecraft.world.item.crafting.Ingredient.of(net.minecraft.world.item.Items.TORCH, net.minecraft.world.item.Items.SOUL_TORCH); // Purpur - Phantoms burn in light
|
||||
|
||||
public Phantom(EntityType<? extends Phantom> type, Level level) {
|
||||
public Phantom(final EntityType<? extends Phantom> type, final Level level) {
|
||||
super(type, level);
|
||||
@@ -238,7 +239,11 @@ public class Phantom extends Mob implements Enemy {
|
||||
@@ -239,7 +240,11 @@ public class Phantom extends Mob implements Enemy {
|
||||
// Paper start
|
||||
@Override
|
||||
public boolean isSunBurnTick() {
|
||||
@@ -29,15 +29,15 @@ index 7077beafe2251fcc4e37578091bfaa02714268b9..6e8fe1b694ade45ffbf0b9bb39b954de
|
||||
}
|
||||
// Paper end
|
||||
|
||||
@@ -366,6 +371,7 @@ public class Phantom extends Mob implements Enemy {
|
||||
List<Player> nearbyPlayers = serverLevel.getNearbyPlayers(
|
||||
this.attackTargeting, Phantom.this, Phantom.this.getBoundingBox().inflate(16.0, 64.0, 16.0)
|
||||
);
|
||||
+ if (level().purpurConfig.phantomIgnorePlayersWithTorch) nearbyPlayers.removeIf(human -> TORCH.test(human.getItemInHand(net.minecraft.world.InteractionHand.MAIN_HAND)) || TORCH.test(human.getItemInHand(net.minecraft.world.InteractionHand.OFF_HAND))); // Purpur - Phantoms burn in light
|
||||
if (!nearbyPlayers.isEmpty()) {
|
||||
nearbyPlayers.sort(Comparator.<Player, Double>comparing(Entity::getY).reversed());
|
||||
@@ -362,6 +367,7 @@ public class Phantom extends Mob implements Enemy {
|
||||
this.nextScanTick = reducedTickDelay(60);
|
||||
ServerLevel level = getServerLevel(Phantom.this.level());
|
||||
List<Player> players = level.getNearbyPlayers(this.attackTargeting, Phantom.this, Phantom.this.getBoundingBox().inflate(16.0, 64.0, 16.0));
|
||||
+ if (level().purpurConfig.phantomIgnorePlayersWithTorch) players.removeIf(human -> TORCH.test(human.getItemInHand(net.minecraft.world.InteractionHand.MAIN_HAND)) || TORCH.test(human.getItemInHand(net.minecraft.world.InteractionHand.OFF_HAND))); // Purpur - Phantoms burn in light
|
||||
if (!players.isEmpty()) {
|
||||
players.sort(Comparator.<Player, Double>comparing(Entity::getY).reversed());
|
||||
|
||||
@@ -736,6 +742,12 @@ public class Phantom extends Mob implements Enemy {
|
||||
@@ -752,6 +758,12 @@ public class Phantom extends Mob implements Enemy {
|
||||
return false;
|
||||
} else if (!target.isAlive()) {
|
||||
return false;
|
||||
@@ -5,24 +5,24 @@ Subject: [PATCH] Make entity breeding times configurable
|
||||
|
||||
|
||||
diff --git a/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java b/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java
|
||||
index 35aec6c3aa2f09f13954fda67902b3c975f566e3..fff139abc9341f3ab2dac568a922235dc5e81b3e 100644
|
||||
index 5e448f83d2426fb09785b2899e1bf5950ced6608..4f04eebef9ecd84137ac067c5adcbe977c21a617 100644
|
||||
--- a/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java
|
||||
+++ b/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java
|
||||
@@ -118,8 +118,10 @@ public class VillagerMakeLove extends Behavior<Villager> {
|
||||
if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityBreedEvent(breedOffspring, parent, partner, null, null, 0).isCancelled()) {
|
||||
@@ -117,8 +117,10 @@ public class VillagerMakeLove extends Behavior<Villager> {
|
||||
if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityBreedEvent(child, source, target, null, null, 0).isCancelled()) {
|
||||
return Optional.empty();
|
||||
}
|
||||
- parent.setAge(6000);
|
||||
- partner.setAge(6000);
|
||||
- source.setAge(6000);
|
||||
- target.setAge(6000);
|
||||
+ // Purpur start - Make entity breeding times configurable
|
||||
+ parent.setAge(level.purpurConfig.villagerBreedingTicks);
|
||||
+ partner.setAge(level.purpurConfig.villagerBreedingTicks);
|
||||
+ source.setAge(level.purpurConfig.villagerBreedingTicks);
|
||||
+ target.setAge(level.purpurConfig.villagerBreedingTicks);
|
||||
+ // Purpur end - Make entity breeding times configurable
|
||||
level.addFreshEntityWithPassengers(breedOffspring, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.BREEDING);
|
||||
level.addFreshEntityWithPassengers(child, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.BREEDING);
|
||||
// CraftBukkit end - call EntityBreedEvent
|
||||
level.broadcastEntityEvent(breedOffspring, EntityEvent.LOVE_HEARTS);
|
||||
level.broadcastEntityEvent(child, EntityEvent.LOVE_HEARTS);
|
||||
diff --git a/net/minecraft/world/entity/animal/Animal.java b/net/minecraft/world/entity/animal/Animal.java
|
||||
index 2e7e7c1913f5cbc20ce116c5ae3e185fc83094c0..53d04c412d36015a30ae2680f61651db6acbf2f2 100644
|
||||
index 774210ebe09af15f85a919512dfd2f98e7bdee6e..407ffe0e6b5893c3abf0b1ff60fd0a27ec965e0c 100644
|
||||
--- a/net/minecraft/world/entity/animal/Animal.java
|
||||
+++ b/net/minecraft/world/entity/animal/Animal.java
|
||||
@@ -46,6 +46,7 @@ public abstract class Animal extends AgeableMob {
|
||||
@@ -31,26 +31,26 @@ index 2e7e7c1913f5cbc20ce116c5ae3e185fc83094c0..53d04c412d36015a30ae2680f61651db
|
||||
public @Nullable ItemStack breedItem; // CraftBukkit - Add breedItem variable
|
||||
+ public abstract int getPurpurBreedTime(); // Purpur - Make entity breeding times configurable
|
||||
|
||||
protected Animal(EntityType<? extends Animal> type, Level level) {
|
||||
protected Animal(final EntityType<? extends Animal> type, final Level level) {
|
||||
super(type, level);
|
||||
@@ -271,8 +272,10 @@ public abstract class Animal extends AgeableMob {
|
||||
player.awardStat(Stats.ANIMALS_BRED);
|
||||
CriteriaTriggers.BRED_ANIMALS.trigger(player, this, animal, baby);
|
||||
CriteriaTriggers.BRED_ANIMALS.trigger(player, this, partner, offspring);
|
||||
} // Paper - Call EntityBreedEvent
|
||||
- this.setAge(6000);
|
||||
- animal.setAge(6000);
|
||||
- partner.setAge(6000);
|
||||
+ // Purpur start - Make entity breeding times configurable
|
||||
+ this.setAge(this.getPurpurBreedTime());
|
||||
+ animal.setAge(animal.getPurpurBreedTime());
|
||||
+ partner.setAge(partner.getPurpurBreedTime());
|
||||
+ // Purpur end - Make entity breeding times configurable
|
||||
this.resetLove();
|
||||
animal.resetLove();
|
||||
partner.resetLove();
|
||||
level.broadcastEntityEvent(this, EntityEvent.IN_LOVE_HEARTS);
|
||||
diff --git a/net/minecraft/world/entity/animal/armadillo/Armadillo.java b/net/minecraft/world/entity/animal/armadillo/Armadillo.java
|
||||
index 1f6b28531127ea2e5b291583f6bb6a236868fbf0..8ae1f8471f35028c1c469dc9cb9eac9b564a5c5e 100644
|
||||
index 7c2c71a57b9278aea428e314462cebc08e168b50..83688ac732758ee0613fc2e187838b4607b8edc9 100644
|
||||
--- a/net/minecraft/world/entity/animal/armadillo/Armadillo.java
|
||||
+++ b/net/minecraft/world/entity/animal/armadillo/Armadillo.java
|
||||
@@ -107,6 +107,13 @@ public class Armadillo extends Animal {
|
||||
@@ -115,6 +115,13 @@ public class Armadillo extends Animal {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -62,13 +62,13 @@ index 1f6b28531127ea2e5b291583f6bb6a236868fbf0..8ae1f8471f35028c1c469dc9cb9eac9b
|
||||
+ // Purpur end - Make entity breeding times configurable
|
||||
+
|
||||
@Override
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
protected void defineSynchedData(final SynchedEntityData.Builder entityData) {
|
||||
super.defineSynchedData(entityData);
|
||||
diff --git a/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/net/minecraft/world/entity/animal/axolotl/Axolotl.java
|
||||
index 3f9e15685ba52a5b9bd4282ba6de6751296975bf..79dfebbd72424d5a3a13d4ba89a555fdf782e703 100644
|
||||
index c10b06f8adcd59869d043e48cfe3fdb60051c3db..d4178d85b74a41a0d2808681008f1686578db98d 100644
|
||||
--- a/net/minecraft/world/entity/animal/axolotl/Axolotl.java
|
||||
+++ b/net/minecraft/world/entity/animal/axolotl/Axolotl.java
|
||||
@@ -146,6 +146,13 @@ public class Axolotl extends Animal implements Bucketable {
|
||||
@@ -143,6 +143,13 @@ public class Axolotl extends Animal implements Bucketable {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -80,13 +80,13 @@ index 3f9e15685ba52a5b9bd4282ba6de6751296975bf..79dfebbd72424d5a3a13d4ba89a555fd
|
||||
+ // Purpur end - Make entity breeding times configurable
|
||||
+
|
||||
@Override
|
||||
public float getWalkTargetValue(BlockPos pos, LevelReader level) {
|
||||
public float getWalkTargetValue(final BlockPos pos, final LevelReader level) {
|
||||
return 0.0F;
|
||||
diff --git a/net/minecraft/world/entity/animal/bee/Bee.java b/net/minecraft/world/entity/animal/bee/Bee.java
|
||||
index 7d7ab4c5092ac085e8cd6d3a432feb683db5a282..473aa29e3075fcab44a14c2bc14d3f222b55cbad 100644
|
||||
index f31b67e2bd4b0279f52bd7c2ee0e63c49fbcec17..36c5c555faa9a29ec742c97ea8a6fcf720e6d9a1 100644
|
||||
--- a/net/minecraft/world/entity/animal/bee/Bee.java
|
||||
+++ b/net/minecraft/world/entity/animal/bee/Bee.java
|
||||
@@ -485,6 +485,13 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
|
||||
@@ -488,6 +488,13 @@ public class Bee extends Animal implements FlyingAnimal, NeutralMob {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -101,10 +101,10 @@ index 7d7ab4c5092ac085e8cd6d3a432feb683db5a282..473aa29e3075fcab44a14c2bc14d3f22
|
||||
public long getPersistentAngerEndTime() {
|
||||
return this.entityData.get(DATA_ANGER_END_TIME);
|
||||
diff --git a/net/minecraft/world/entity/animal/camel/Camel.java b/net/minecraft/world/entity/animal/camel/Camel.java
|
||||
index 95e86330e1e973c43e50bd4ac310212b8a057430..842b20242c323572d4c04d3a2d5fe21a54d53ed4 100644
|
||||
index aeb8c71596a2393ac1fc67768052ce319fc25d6d..f2e87ebef0d52b2009658aae522398180a15cb92 100644
|
||||
--- a/net/minecraft/world/entity/animal/camel/Camel.java
|
||||
+++ b/net/minecraft/world/entity/animal/camel/Camel.java
|
||||
@@ -97,6 +97,13 @@ public class Camel extends AbstractHorse {
|
||||
@@ -103,6 +103,13 @@ public class Camel extends AbstractHorse {
|
||||
}
|
||||
// Purpur end - Ridables
|
||||
|
||||
@@ -116,13 +116,13 @@ index 95e86330e1e973c43e50bd4ac310212b8a057430..842b20242c323572d4c04d3a2d5fe21a
|
||||
+ // Purpur end - Make entity breeding times configurable
|
||||
+
|
||||
@Override
|
||||
protected void addAdditionalSaveData(ValueOutput output) {
|
||||
protected void addAdditionalSaveData(final ValueOutput output) {
|
||||
super.addAdditionalSaveData(output);
|
||||
diff --git a/net/minecraft/world/entity/animal/chicken/Chicken.java b/net/minecraft/world/entity/animal/chicken/Chicken.java
|
||||
index 52a0bf792337e2f1cf11e215b033caae21ee774b..029fe4ac952d9f56824de346d98b341bd0b9b65f 100644
|
||||
index 0392c8a94801a1dee735ff610058fbb2180571fa..ccf7c4630e08d9be54a4634c642a4cd1cd542a82 100644
|
||||
--- a/net/minecraft/world/entity/animal/chicken/Chicken.java
|
||||
+++ b/net/minecraft/world/entity/animal/chicken/Chicken.java
|
||||
@@ -103,6 +103,13 @@ public class Chicken extends Animal {
|
||||
@@ -106,6 +106,13 @@ public class Chicken extends Animal {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -137,10 +137,10 @@ index 52a0bf792337e2f1cf11e215b033caae21ee774b..029fe4ac952d9f56824de346d98b341b
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new FloatGoal(this));
|
||||
diff --git a/net/minecraft/world/entity/animal/cow/Cow.java b/net/minecraft/world/entity/animal/cow/Cow.java
|
||||
index 5e5b239ebc774ae66f8c35a725ea917993239ef2..400b0a0a99590e3590cb66724acdc5ba9170f2c4 100644
|
||||
index 33c0b8f2c43065ea89b3f9c6a519dde27620ed07..7981f60f10c44ab2459933cb15ee961103922364 100644
|
||||
--- a/net/minecraft/world/entity/animal/cow/Cow.java
|
||||
+++ b/net/minecraft/world/entity/animal/cow/Cow.java
|
||||
@@ -54,6 +54,13 @@ public class Cow extends AbstractCow {
|
||||
@@ -59,6 +59,13 @@ public class Cow extends AbstractCow {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -152,10 +152,10 @@ index 5e5b239ebc774ae66f8c35a725ea917993239ef2..400b0a0a99590e3590cb66724acdc5ba
|
||||
+ // Purpur end - Make entity breeding times configurable
|
||||
+
|
||||
@Override
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
protected void defineSynchedData(final SynchedEntityData.Builder entityData) {
|
||||
super.defineSynchedData(entityData);
|
||||
diff --git a/net/minecraft/world/entity/animal/cow/MushroomCow.java b/net/minecraft/world/entity/animal/cow/MushroomCow.java
|
||||
index 85ad44eb3e64232cf1ea326257078c46288a613a..e2aa027dc7a39fa8a8868a7d153e838113fcf97b 100644
|
||||
index d6ec397a14753526dd34ab3a7e69ae4be36c04a6..68a4edef68c9db6b2b0716fc6283e2c7345d4cda 100644
|
||||
--- a/net/minecraft/world/entity/animal/cow/MushroomCow.java
|
||||
+++ b/net/minecraft/world/entity/animal/cow/MushroomCow.java
|
||||
@@ -85,6 +85,13 @@ public class MushroomCow extends AbstractCow implements Shearable {
|
||||
@@ -170,10 +170,10 @@ index 85ad44eb3e64232cf1ea326257078c46288a613a..e2aa027dc7a39fa8a8868a7d153e8381
|
||||
+ // Purpur end - Make entity breeding times configurable
|
||||
+
|
||||
@Override
|
||||
public float getWalkTargetValue(BlockPos pos, LevelReader level) {
|
||||
public float getWalkTargetValue(final BlockPos pos, final LevelReader level) {
|
||||
return level.getBlockState(pos.below()).is(Blocks.MYCELIUM) ? 10.0F : level.getPathfindingCostFromLightLevels(pos);
|
||||
diff --git a/net/minecraft/world/entity/animal/equine/Donkey.java b/net/minecraft/world/entity/animal/equine/Donkey.java
|
||||
index b85d967c7c809683e4576be30ed855941c6e68cc..d74a5cc2a43ef41fd00676bbd17fe4df9edb67ff 100644
|
||||
index 1a130fc107315b40b4e34a97beb53f7fe0ced14f..8c3d3f0f24e6f5a9b8aa9bf58f3c8b679896017d 100644
|
||||
--- a/net/minecraft/world/entity/animal/equine/Donkey.java
|
||||
+++ b/net/minecraft/world/entity/animal/equine/Donkey.java
|
||||
@@ -40,6 +40,13 @@ public class Donkey extends AbstractChestedHorse {
|
||||
@@ -191,10 +191,10 @@ index b85d967c7c809683e4576be30ed855941c6e68cc..d74a5cc2a43ef41fd00676bbd17fe4df
|
||||
public SoundEvent getAmbientSound() {
|
||||
return SoundEvents.DONKEY_AMBIENT;
|
||||
diff --git a/net/minecraft/world/entity/animal/equine/Horse.java b/net/minecraft/world/entity/animal/equine/Horse.java
|
||||
index 9a97cd588fb2dc0f393b2c8768f4e45066a34850..ba9df659ed019f9e58991059fe99c1471bfc94d8 100644
|
||||
index 8ba8430f41ce74736f405bfac2ef5de6fffe7d49..dbb586058f38b6c4f81e2f6567b7ae8ebbaff5a2 100644
|
||||
--- a/net/minecraft/world/entity/animal/equine/Horse.java
|
||||
+++ b/net/minecraft/world/entity/animal/equine/Horse.java
|
||||
@@ -74,6 +74,13 @@ public class Horse extends AbstractHorse {
|
||||
@@ -72,6 +72,13 @@ public class Horse extends AbstractHorse {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -206,13 +206,13 @@ index 9a97cd588fb2dc0f393b2c8768f4e45066a34850..ba9df659ed019f9e58991059fe99c147
|
||||
+ // Purpur end - Make entity breeding times configurable
|
||||
+
|
||||
@Override
|
||||
protected void randomizeAttributes(RandomSource random) {
|
||||
protected void randomizeAttributes(final RandomSource random) {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(generateMaxHealth(random::nextInt));
|
||||
diff --git a/net/minecraft/world/entity/animal/equine/Llama.java b/net/minecraft/world/entity/animal/equine/Llama.java
|
||||
index b54a535add643390a6164ab3f4a2fdd475d60162..960e48f5ae63d8c86758d2573510bf481ca4bca0 100644
|
||||
index 12abeae3623b49819ab6f852c88ee86ed8c69948..b3c8ccbb3f79043427dcb6f383c4b02d35124689 100644
|
||||
--- a/net/minecraft/world/entity/animal/equine/Llama.java
|
||||
+++ b/net/minecraft/world/entity/animal/equine/Llama.java
|
||||
@@ -152,6 +152,13 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
|
||||
@@ -151,6 +151,13 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -227,7 +227,7 @@ index b54a535add643390a6164ab3f4a2fdd475d60162..960e48f5ae63d8c86758d2573510bf48
|
||||
return false;
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/animal/equine/Mule.java b/net/minecraft/world/entity/animal/equine/Mule.java
|
||||
index f49c8a61ac3883f7ff8ad8193ae9ea9136f54c45..180a807026437e949e3f7c3d59864ea328f6f03f 100644
|
||||
index a866b93312391142b030605e2108fe522d3d8ddd..cf0f3c9d5f8ff348e6fb76db823da4cadce4fc5b 100644
|
||||
--- a/net/minecraft/world/entity/animal/equine/Mule.java
|
||||
+++ b/net/minecraft/world/entity/animal/equine/Mule.java
|
||||
@@ -39,6 +39,13 @@ public class Mule extends AbstractChestedHorse {
|
||||
@@ -245,7 +245,7 @@ index f49c8a61ac3883f7ff8ad8193ae9ea9136f54c45..180a807026437e949e3f7c3d59864ea3
|
||||
public SoundEvent getAmbientSound() {
|
||||
return SoundEvents.MULE_AMBIENT;
|
||||
diff --git a/net/minecraft/world/entity/animal/equine/SkeletonHorse.java b/net/minecraft/world/entity/animal/equine/SkeletonHorse.java
|
||||
index d8b7b787b98b86d16578abe1cd19321ad2c176c0..af0e326f5ff8fcb82353bac3143103928a6a08e6 100644
|
||||
index fcc9b9f884aed489ab6016d1de3dfd861781d8e5..a4a878791be034140a50b901d5daf2533d299756 100644
|
||||
--- a/net/minecraft/world/entity/animal/equine/SkeletonHorse.java
|
||||
+++ b/net/minecraft/world/entity/animal/equine/SkeletonHorse.java
|
||||
@@ -67,6 +67,13 @@ public class SkeletonHorse extends AbstractHorse {
|
||||
@@ -263,7 +263,7 @@ index d8b7b787b98b86d16578abe1cd19321ad2c176c0..af0e326f5ff8fcb82353bac314310392
|
||||
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0).add(Attributes.MOVEMENT_SPEED, 0.2F);
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/animal/equine/TraderLlama.java b/net/minecraft/world/entity/animal/equine/TraderLlama.java
|
||||
index deb0a1eb867daec57a644ce698fe50d79fd8960e..65ac46335d642d5dd8c01623721257a4fd53441d 100644
|
||||
index bfae12b0a2b094dcd5953058f4d6245077a04fd7..7c41aecd2699725211babbac0350cb241f31ca41 100644
|
||||
--- a/net/minecraft/world/entity/animal/equine/TraderLlama.java
|
||||
+++ b/net/minecraft/world/entity/animal/equine/TraderLlama.java
|
||||
@@ -70,6 +70,13 @@ public class TraderLlama extends Llama {
|
||||
@@ -281,10 +281,10 @@ index deb0a1eb867daec57a644ce698fe50d79fd8960e..65ac46335d642d5dd8c01623721257a4
|
||||
public boolean isTraderLlama() {
|
||||
return true;
|
||||
diff --git a/net/minecraft/world/entity/animal/equine/ZombieHorse.java b/net/minecraft/world/entity/animal/equine/ZombieHorse.java
|
||||
index 8b8580f8c082a40f958ec61adf32dc7d1485ea68..fa2f18470123f98e336ab5c94bc791e9333356cb 100644
|
||||
index ae429aec9be39d9af7da4671db15a4506da135d9..4be11663154a870a21832ddba05764a897ce90bd 100644
|
||||
--- a/net/minecraft/world/entity/animal/equine/ZombieHorse.java
|
||||
+++ b/net/minecraft/world/entity/animal/equine/ZombieHorse.java
|
||||
@@ -81,6 +81,13 @@ public class ZombieHorse extends AbstractHorse {
|
||||
@@ -78,6 +78,13 @@ public class ZombieHorse extends AbstractHorse {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -299,7 +299,7 @@ index 8b8580f8c082a40f958ec61adf32dc7d1485ea68..fa2f18470123f98e336ab5c94bc791e9
|
||||
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 25.0);
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/animal/feline/Cat.java b/net/minecraft/world/entity/animal/feline/Cat.java
|
||||
index b7c17aed96dce39cb03780ff251e0e38c3c6adb1..d0aa698ef99cf3b1926018314b4067cc1cd8ac2a 100644
|
||||
index 4ae9c5e823fefbf5bc7efdfbab27ccd166a70b8b..5c235149eca10c216f0f8d6e645a439d7dbcfbc3 100644
|
||||
--- a/net/minecraft/world/entity/animal/feline/Cat.java
|
||||
+++ b/net/minecraft/world/entity/animal/feline/Cat.java
|
||||
@@ -128,6 +128,13 @@ public class Cat extends TamableAnimal {
|
||||
@@ -315,9 +315,9 @@ index b7c17aed96dce39cb03780ff251e0e38c3c6adb1..d0aa698ef99cf3b1926018314b4067cc
|
||||
+
|
||||
@Override
|
||||
protected void registerGoals() {
|
||||
this.temptGoal = new Cat.CatTemptGoal(this, 0.6, stack -> stack.is(ItemTags.CAT_FOOD), true);
|
||||
this.temptGoal = new Cat.CatTemptGoal(this, 0.6, i -> i.is(ItemTags.CAT_FOOD), true);
|
||||
diff --git a/net/minecraft/world/entity/animal/feline/Ocelot.java b/net/minecraft/world/entity/animal/feline/Ocelot.java
|
||||
index c9a8dcfd1e46f97dee0393db3205049c0db1cefb..bf281fd4c050b87fd277ab68e812ab2dcd3d06aa 100644
|
||||
index 4bf42db19d0f58338f32af1ab7c802c274a8581c..2accf49e8dd907c8a482e5317d07b28fc5492a1e 100644
|
||||
--- a/net/minecraft/world/entity/animal/feline/Ocelot.java
|
||||
+++ b/net/minecraft/world/entity/animal/feline/Ocelot.java
|
||||
@@ -91,6 +91,13 @@ public class Ocelot extends Animal {
|
||||
@@ -335,10 +335,10 @@ index c9a8dcfd1e46f97dee0393db3205049c0db1cefb..bf281fd4c050b87fd277ab68e812ab2d
|
||||
return this.entityData.get(DATA_TRUSTING);
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/animal/fox/Fox.java b/net/minecraft/world/entity/animal/fox/Fox.java
|
||||
index 6819bcb15ad6c85f41a098a9fdb73ce5a7987d8f..3c2f5e711c013a6f51093e94bc4b5518263607a2 100644
|
||||
index 51b6e7ea13b03e0d64ec70f37ae6394be64bf247..9c049b34c062113a2241fdda2eaae808c0e8e0b1 100644
|
||||
--- a/net/minecraft/world/entity/animal/fox/Fox.java
|
||||
+++ b/net/minecraft/world/entity/animal/fox/Fox.java
|
||||
@@ -197,6 +197,13 @@ public class Fox extends Animal {
|
||||
@@ -201,6 +201,13 @@ public class Fox extends Animal {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -350,10 +350,10 @@ index 6819bcb15ad6c85f41a098a9fdb73ce5a7987d8f..3c2f5e711c013a6f51093e94bc4b5518
|
||||
+ // Purpur end - Make entity breeding times configurable
|
||||
+
|
||||
@Override
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
@@ -997,8 +1004,10 @@ public class Fox extends Animal {
|
||||
CriteriaTriggers.BRED_ANIMALS.trigger(serverPlayer, this.animal, this.partner, fox);
|
||||
protected void defineSynchedData(final SynchedEntityData.Builder entityData) {
|
||||
super.defineSynchedData(entityData);
|
||||
@@ -1016,8 +1023,10 @@ public class Fox extends Animal {
|
||||
CriteriaTriggers.BRED_ANIMALS.trigger(loveCause, this.animal, this.partner, offspring);
|
||||
}
|
||||
|
||||
- this.animal.setAge(6000);
|
||||
@@ -364,12 +364,12 @@ index 6819bcb15ad6c85f41a098a9fdb73ce5a7987d8f..3c2f5e711c013a6f51093e94bc4b5518
|
||||
+ // Purpur end - Make entity breeding times configurable
|
||||
this.animal.resetLove();
|
||||
this.partner.resetLove();
|
||||
this.level.addFreshEntityWithPassengers(fox, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.BREEDING); // CraftBukkit - added SpawnReason
|
||||
this.level.addFreshEntityWithPassengers(offspring, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.BREEDING); // CraftBukkit - added SpawnReason
|
||||
diff --git a/net/minecraft/world/entity/animal/frog/Frog.java b/net/minecraft/world/entity/animal/frog/Frog.java
|
||||
index 5b4bb6fd100abc569c5da167735a220014bf5d8c..7d6dbdef68b25e774b5a83bb8aeb2535246459aa 100644
|
||||
index 977ee6a71e0c52f115a221b09248596db2534739..3d2f06b4e686345632a2493366177e9002cae554 100644
|
||||
--- a/net/minecraft/world/entity/animal/frog/Frog.java
|
||||
+++ b/net/minecraft/world/entity/animal/frog/Frog.java
|
||||
@@ -164,6 +164,13 @@ public class Frog extends Animal {
|
||||
@@ -141,6 +141,13 @@ public class Frog extends Animal {
|
||||
}
|
||||
// Purpur end - Ridables
|
||||
|
||||
@@ -381,13 +381,13 @@ index 5b4bb6fd100abc569c5da167735a220014bf5d8c..7d6dbdef68b25e774b5a83bb8aeb2535
|
||||
+ // Purpur end - Make entity breeding times configurable
|
||||
+
|
||||
@Override
|
||||
protected Brain.Provider<Frog> brainProvider() {
|
||||
return Brain.provider(MEMORY_TYPES, SENSOR_TYPES);
|
||||
protected Brain<Frog> makeBrain(final Brain.Packed packedBrain) {
|
||||
return BRAIN_PROVIDER.makeBrain(this, packedBrain);
|
||||
diff --git a/net/minecraft/world/entity/animal/goat/Goat.java b/net/minecraft/world/entity/animal/goat/Goat.java
|
||||
index 6e4d611c959960e8d13f79704c176b41ea5c12c4..07ba57ae845024e0f2fa03a68e126ec79bfc6b15 100644
|
||||
index 82c27c0e6e9f72eceb5a498af4aad6a7bd766513..da763ba40fdc52d6f6fec97e5e288fbef343ead6 100644
|
||||
--- a/net/minecraft/world/entity/animal/goat/Goat.java
|
||||
+++ b/net/minecraft/world/entity/animal/goat/Goat.java
|
||||
@@ -132,6 +132,13 @@ public class Goat extends Animal {
|
||||
@@ -117,6 +117,13 @@ public class Goat extends Animal {
|
||||
}
|
||||
// Purpur end - Ridables
|
||||
|
||||
@@ -399,13 +399,13 @@ index 6e4d611c959960e8d13f79704c176b41ea5c12c4..07ba57ae845024e0f2fa03a68e126ec7
|
||||
+ // Purpur end - Make entity breeding times configurable
|
||||
+
|
||||
@Override
|
||||
protected Brain.Provider<Goat> brainProvider() {
|
||||
return Brain.provider(MEMORY_TYPES, SENSOR_TYPES);
|
||||
protected Brain<Goat> makeBrain(final Brain.Packed packedBrain) {
|
||||
return BRAIN_PROVIDER.makeBrain(this, packedBrain);
|
||||
diff --git a/net/minecraft/world/entity/animal/happyghast/HappyGhast.java b/net/minecraft/world/entity/animal/happyghast/HappyGhast.java
|
||||
index cd888e070a72ff46d35a4425a0013c617b31e159..30204224ed83f6d3cfd64640b332b23cb74d379f 100644
|
||||
index a8e242fcf7a52fb51bd686f257f7e3d5380e38d5..75a32b65da7080391d0c37622db9cb98c5e092b6 100644
|
||||
--- a/net/minecraft/world/entity/animal/happyghast/HappyGhast.java
|
||||
+++ b/net/minecraft/world/entity/animal/happyghast/HappyGhast.java
|
||||
@@ -146,6 +146,13 @@ public class HappyGhast extends Animal {
|
||||
@@ -154,6 +154,13 @@ public class HappyGhast extends Animal {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -420,10 +420,10 @@ index cd888e070a72ff46d35a4425a0013c617b31e159..30204224ed83f6d3cfd64640b332b23c
|
||||
protected void ageBoundaryReached() {
|
||||
if (this.isBaby()) {
|
||||
diff --git a/net/minecraft/world/entity/animal/nautilus/Nautilus.java b/net/minecraft/world/entity/animal/nautilus/Nautilus.java
|
||||
index a32ac3907883f65c2a00173128a4a011fd552932..98199869b70c7c0f2b744ac74961c77d473617ca 100644
|
||||
index cc38312d0a59529e7b8f799ffec2f917c9aa0e9b..e89c0638f7b6d1a463a895dbab5994c15aa4add3 100644
|
||||
--- a/net/minecraft/world/entity/animal/nautilus/Nautilus.java
|
||||
+++ b/net/minecraft/world/entity/animal/nautilus/Nautilus.java
|
||||
@@ -32,6 +32,13 @@ public class Nautilus extends AbstractNautilus {
|
||||
@@ -39,6 +39,13 @@ public class Nautilus extends AbstractNautilus {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -435,13 +435,13 @@ index a32ac3907883f65c2a00173128a4a011fd552932..98199869b70c7c0f2b744ac74961c77d
|
||||
+ // Purpur end - Make entity breeding times configurable
|
||||
+
|
||||
@Override
|
||||
protected Brain.Provider<Nautilus> brainProvider() {
|
||||
return NautilusAi.brainProvider();
|
||||
protected Brain<Nautilus> makeBrain(final Brain.Packed packedBrain) {
|
||||
return BRAIN_PROVIDER.makeBrain(this, packedBrain);
|
||||
diff --git a/net/minecraft/world/entity/animal/nautilus/ZombieNautilus.java b/net/minecraft/world/entity/animal/nautilus/ZombieNautilus.java
|
||||
index 7ef4a15ba2b315a41480484572a6c6898340466b..94383c5020b6631203ddc4e0a58a222729ffe9a2 100644
|
||||
index 087e768c35c2c2af191c75648b278154ce5e593c..18bfb321e3728d3fa0596da0b86e4b76ced2178a 100644
|
||||
--- a/net/minecraft/world/entity/animal/nautilus/ZombieNautilus.java
|
||||
+++ b/net/minecraft/world/entity/animal/nautilus/ZombieNautilus.java
|
||||
@@ -54,6 +54,13 @@ public class ZombieNautilus extends AbstractNautilus {
|
||||
@@ -59,6 +59,13 @@ public class ZombieNautilus extends AbstractNautilus {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -456,10 +456,10 @@ index 7ef4a15ba2b315a41480484572a6c6898340466b..94383c5020b6631203ddc4e0a58a2227
|
||||
return AbstractNautilus.createAttributes().add(Attributes.MOVEMENT_SPEED, 1.1F);
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/animal/panda/Panda.java b/net/minecraft/world/entity/animal/panda/Panda.java
|
||||
index d5060fb8e9a711e6230f2c4950521d8b4f5c01d2..163fe697f57459b36885fa3a18f41370347cab38 100644
|
||||
index 8844c9279dcdc2d81a63f665d96e9d60f0ab125b..02d5949fb91bbee84fa067dac14d20f53f4a029b 100644
|
||||
--- a/net/minecraft/world/entity/animal/panda/Panda.java
|
||||
+++ b/net/minecraft/world/entity/animal/panda/Panda.java
|
||||
@@ -143,6 +143,13 @@ public class Panda extends Animal {
|
||||
@@ -146,6 +146,13 @@ public class Panda extends Animal {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -471,10 +471,10 @@ index d5060fb8e9a711e6230f2c4950521d8b4f5c01d2..163fe697f57459b36885fa3a18f41370
|
||||
+ // Purpur end - Make entity breeding times configurable
|
||||
+
|
||||
@Override
|
||||
protected boolean canDispenserEquipIntoSlot(EquipmentSlot slot) {
|
||||
protected boolean canDispenserEquipIntoSlot(final EquipmentSlot slot) {
|
||||
return slot == EquipmentSlot.MAINHAND && this.canPickUpLoot();
|
||||
diff --git a/net/minecraft/world/entity/animal/parrot/Parrot.java b/net/minecraft/world/entity/animal/parrot/Parrot.java
|
||||
index 7480a491533a47882eaf4b36c320adf45ebfb190..0d62046cb33ed750ab27229fe4f0b43c3a1dd5f4 100644
|
||||
index d3b9a3ac77f03e3b6b580a678283f85a19cb660e..af3d3b90f2e4d433b3b842dbc37d8c507a73dc1f 100644
|
||||
--- a/net/minecraft/world/entity/animal/parrot/Parrot.java
|
||||
+++ b/net/minecraft/world/entity/animal/parrot/Parrot.java
|
||||
@@ -207,6 +207,13 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
|
||||
@@ -490,12 +490,12 @@ index 7480a491533a47882eaf4b36c320adf45ebfb190..0d62046cb33ed750ab27229fe4f0b43c
|
||||
+
|
||||
@Override
|
||||
public @Nullable SpawnGroupData finalizeSpawn(
|
||||
ServerLevelAccessor level, DifficultyInstance difficulty, EntitySpawnReason spawnReason, @Nullable SpawnGroupData spawnGroupData
|
||||
final ServerLevelAccessor level, final DifficultyInstance difficulty, final EntitySpawnReason spawnReason, @Nullable SpawnGroupData groupData
|
||||
diff --git a/net/minecraft/world/entity/animal/pig/Pig.java b/net/minecraft/world/entity/animal/pig/Pig.java
|
||||
index aeb9e57db2233bff20fa5208a679ac9bcb8d5026..0cb09a058c2d21b10677482792b230464ed9f951 100644
|
||||
index 02ed5052bd06844ec6811c4249398ba8ba8c4ea6..514f13a6965b5f53890ddd2e47ea89e0c1a515c1 100644
|
||||
--- a/net/minecraft/world/entity/animal/pig/Pig.java
|
||||
+++ b/net/minecraft/world/entity/animal/pig/Pig.java
|
||||
@@ -88,6 +88,13 @@ public class Pig extends Animal implements ItemSteerable {
|
||||
@@ -93,6 +93,13 @@ public class Pig extends Animal implements ItemSteerable {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -510,10 +510,10 @@ index aeb9e57db2233bff20fa5208a679ac9bcb8d5026..0cb09a058c2d21b10677482792b23046
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new FloatGoal(this));
|
||||
diff --git a/net/minecraft/world/entity/animal/polarbear/PolarBear.java b/net/minecraft/world/entity/animal/polarbear/PolarBear.java
|
||||
index 904e4c641f1892220f263528c65f6f81708399cd..97edd950e2142e73ad947590c99d6d5529cbd44c 100644
|
||||
index e50c934e2c9959f843aae2b2dd05a682ca5f59fc..6d4713663c94e91da7d809e65fa205aff2782f38 100644
|
||||
--- a/net/minecraft/world/entity/animal/polarbear/PolarBear.java
|
||||
+++ b/net/minecraft/world/entity/animal/polarbear/PolarBear.java
|
||||
@@ -126,6 +126,13 @@ public class PolarBear extends Animal implements NeutralMob {
|
||||
@@ -127,6 +127,13 @@ public class PolarBear extends Animal implements NeutralMob {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -525,13 +525,13 @@ index 904e4c641f1892220f263528c65f6f81708399cd..97edd950e2142e73ad947590c99d6d55
|
||||
+ // Purpur end - Make entity breeding times configurable
|
||||
+
|
||||
@Override
|
||||
public @Nullable AgeableMob getBreedOffspring(ServerLevel level, AgeableMob partner) {
|
||||
public @Nullable AgeableMob getBreedOffspring(final ServerLevel level, final AgeableMob partner) {
|
||||
return EntityType.POLAR_BEAR.create(level, EntitySpawnReason.BREEDING);
|
||||
diff --git a/net/minecraft/world/entity/animal/rabbit/Rabbit.java b/net/minecraft/world/entity/animal/rabbit/Rabbit.java
|
||||
index cfbab57dd0527c5e2f17718f3974059eb881c2ea..061418a25d359574c4ff44327082b08b4094ee1c 100644
|
||||
index bf643b9e6929890f061ac2c44b196460234095c4..3aefbdc3e537bc53bba296c7876dee93c95a77ca 100644
|
||||
--- a/net/minecraft/world/entity/animal/rabbit/Rabbit.java
|
||||
+++ b/net/minecraft/world/entity/animal/rabbit/Rabbit.java
|
||||
@@ -156,6 +156,13 @@ public class Rabbit extends Animal {
|
||||
@@ -170,6 +170,13 @@ public class Rabbit extends Animal {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -546,7 +546,7 @@ index cfbab57dd0527c5e2f17718f3974059eb881c2ea..061418a25d359574c4ff44327082b08b
|
||||
public void registerGoals() {
|
||||
this.goalSelector.addGoal(1, new FloatGoal(this));
|
||||
diff --git a/net/minecraft/world/entity/animal/sheep/Sheep.java b/net/minecraft/world/entity/animal/sheep/Sheep.java
|
||||
index 1d60d35c1330418009f7d1d0b60d263559b68b7f..0e4505474a50d57338c16648cb6049d35455fdc6 100644
|
||||
index 8d2b5a60ff267452a9724159db8df956a3fc576c..9cc59891521963204399b7f67d94bb78c7e75fb6 100644
|
||||
--- a/net/minecraft/world/entity/animal/sheep/Sheep.java
|
||||
+++ b/net/minecraft/world/entity/animal/sheep/Sheep.java
|
||||
@@ -88,6 +88,13 @@ public class Sheep extends Animal implements Shearable {
|
||||
@@ -564,10 +564,10 @@ index 1d60d35c1330418009f7d1d0b60d263559b68b7f..0e4505474a50d57338c16648cb6049d3
|
||||
protected void registerGoals() {
|
||||
this.eatBlockGoal = new EatBlockGoal(this);
|
||||
diff --git a/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/net/minecraft/world/entity/animal/sniffer/Sniffer.java
|
||||
index eb6675394ecc5bba67e0f8bb0220ad92ef2b5e4f..7ef3c94f63c8a25d09e69b818ecdf79795803570 100644
|
||||
index 7335e46f249b9a88ca0401493636f6e06c0e196d..f169d075cdaa1426c152a8f2682dbaba23de4ccc 100644
|
||||
--- a/net/minecraft/world/entity/animal/sniffer/Sniffer.java
|
||||
+++ b/net/minecraft/world/entity/animal/sniffer/Sniffer.java
|
||||
@@ -114,6 +114,13 @@ public class Sniffer extends Animal {
|
||||
@@ -119,6 +119,13 @@ public class Sniffer extends Animal {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -579,10 +579,10 @@ index eb6675394ecc5bba67e0f8bb0220ad92ef2b5e4f..7ef3c94f63c8a25d09e69b818ecdf797
|
||||
+ // Purpur end - Make entity breeding times configurable
|
||||
+
|
||||
@Override
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
protected void defineSynchedData(final SynchedEntityData.Builder entityData) {
|
||||
super.defineSynchedData(entityData);
|
||||
diff --git a/net/minecraft/world/entity/animal/turtle/Turtle.java b/net/minecraft/world/entity/animal/turtle/Turtle.java
|
||||
index 8d9a1fe887c39588e43e4ccfc46151a033c8ccb7..fce1b1a22e091a1c05650c72e1ceb83e1a1d1ed1 100644
|
||||
index 2dfcf0c9f8eb762d1683d2841a05219c497fddfc..62d9fce83cc44165c5356049a12bf6081c925857 100644
|
||||
--- a/net/minecraft/world/entity/animal/turtle/Turtle.java
|
||||
+++ b/net/minecraft/world/entity/animal/turtle/Turtle.java
|
||||
@@ -112,6 +112,13 @@ public class Turtle extends Animal {
|
||||
@@ -596,8 +596,8 @@ index 8d9a1fe887c39588e43e4ccfc46151a033c8ccb7..fce1b1a22e091a1c05650c72e1ceb83e
|
||||
+ }
|
||||
+ // Purpur end - Make entity breeding times configurable
|
||||
+
|
||||
public void setHomePos(BlockPos homePos) {
|
||||
this.homePos = homePos;
|
||||
public void setHomePos(final BlockPos pos) {
|
||||
this.homePos = pos;
|
||||
}
|
||||
@@ -343,8 +350,10 @@ public class Turtle extends Animal {
|
||||
}
|
||||
@@ -613,10 +613,10 @@ index 8d9a1fe887c39588e43e4ccfc46151a033c8ccb7..fce1b1a22e091a1c05650c72e1ceb83e
|
||||
this.partner.resetLove();
|
||||
RandomSource random = this.animal.getRandom();
|
||||
diff --git a/net/minecraft/world/entity/animal/wolf/Wolf.java b/net/minecraft/world/entity/animal/wolf/Wolf.java
|
||||
index 7bccee8b5dd689bbff18f34d3afac52bfe34aa42..08a1bafa0e45dbdbf8bdc4d5cb654d080590707d 100644
|
||||
index 5605c3ecb8ffaace4b21e3bd5bd3d7714b7ea83c..0561b38982c205edc848b1650152491698a80e29 100644
|
||||
--- a/net/minecraft/world/entity/animal/wolf/Wolf.java
|
||||
+++ b/net/minecraft/world/entity/animal/wolf/Wolf.java
|
||||
@@ -216,6 +216,13 @@ public class Wolf extends TamableAnimal implements NeutralMob {
|
||||
@@ -213,6 +213,13 @@ public class Wolf extends TamableAnimal implements NeutralMob {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -631,10 +631,10 @@ index 7bccee8b5dd689bbff18f34d3afac52bfe34aa42..08a1bafa0e45dbdbf8bdc4d5cb654d08
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(1, new FloatGoal(this));
|
||||
diff --git a/net/minecraft/world/entity/monster/Strider.java b/net/minecraft/world/entity/monster/Strider.java
|
||||
index 3308e954c8f6deff89c6df0af01f7774e36b0385..ad6515c2dcde0079095c6777f56319e9901850f8 100644
|
||||
index f8134a362a2faa49beccb840ea8a899aa4681638..38a17c219bce1a8a8a67b136e0eaf5cf15ec94fd 100644
|
||||
--- a/net/minecraft/world/entity/monster/Strider.java
|
||||
+++ b/net/minecraft/world/entity/monster/Strider.java
|
||||
@@ -117,6 +117,13 @@ public class Strider extends Animal implements ItemSteerable {
|
||||
@@ -118,6 +118,13 @@ public class Strider extends Animal implements ItemSteerable {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -646,13 +646,13 @@ index 3308e954c8f6deff89c6df0af01f7774e36b0385..ad6515c2dcde0079095c6777f56319e9
|
||||
+ // Purpur end - Make entity breeding times configurable
|
||||
+
|
||||
public static boolean checkStriderSpawnRules(
|
||||
EntityType<Strider> entityType, LevelAccessor level, EntitySpawnReason spawnReason, BlockPos pos, RandomSource random
|
||||
) {
|
||||
final EntityType<Strider> ignoredType,
|
||||
final LevelAccessor level,
|
||||
diff --git a/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
||||
index baf81e1919e64af9d6da0a49b19e5f34cf962a79..4498fe26dff2cdec8e90d6559a66ebe7859195bb 100644
|
||||
index 352139672f2cf1a7d624db4cc5bdef3ab0c9b942..d158807f22a0a08614b2d7054663ef2782a519e3 100644
|
||||
--- a/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
||||
+++ b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
||||
@@ -122,6 +122,13 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
|
||||
@@ -98,6 +98,13 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -664,5 +664,5 @@ index baf81e1919e64af9d6da0a49b19e5f34cf962a79..4498fe26dff2cdec8e90d6559a66ebe7
|
||||
+ // Purpur end - Make entity breeding times configurable
|
||||
+
|
||||
@VisibleForTesting
|
||||
public void setTimeInOverworld(int timeInOverworld) {
|
||||
public void setTimeInOverworld(final int timeInOverworld) {
|
||||
this.timeInOverworld = timeInOverworld;
|
||||
@@ -6,25 +6,25 @@ Subject: [PATCH] Apply display names from item forms of entities to entities
|
||||
|
||||
|
||||
diff --git a/net/minecraft/world/entity/decoration/ArmorStand.java b/net/minecraft/world/entity/decoration/ArmorStand.java
|
||||
index 959037a01841de06767522512b92e96be7c72b56..c7be4713a526171d2c4b9642d28f1a246e294ff7 100644
|
||||
index 6490da07840f811fdbbd3c5dfefe4494fe7e7494..0fd3cad21382d3078d15f74c5616b0b70ddd8383 100644
|
||||
--- a/net/minecraft/world/entity/decoration/ArmorStand.java
|
||||
+++ b/net/minecraft/world/entity/decoration/ArmorStand.java
|
||||
@@ -451,6 +451,7 @@ public class ArmorStand extends LivingEntity {
|
||||
@@ -452,6 +452,7 @@ public class ArmorStand extends LivingEntity {
|
||||
|
||||
private org.bukkit.event.entity.EntityDeathEvent brokenByPlayer(ServerLevel level, DamageSource damageSource) { // Paper
|
||||
ItemStack itemStack = new ItemStack(Items.ARMOR_STAND);
|
||||
private org.bukkit.event.entity.EntityDeathEvent brokenByPlayer(final ServerLevel level, final DamageSource source) { // Paper
|
||||
ItemStack result = new ItemStack(Items.ARMOR_STAND);
|
||||
+ if (level.purpurConfig.persistentDroppableEntityDisplayNames) // Purpur - Apply display names from item forms of entities to entities and vice versa
|
||||
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(level, damageSource); // Paper
|
||||
result.set(DataComponents.CUSTOM_NAME, this.getCustomName());
|
||||
this.drops.add(new DefaultDrop(result, stack -> Block.popResource(this.level(), this.blockPosition(), stack))); // CraftBukkit - add to drops // Paper - Restore vanilla drops behavior
|
||||
return this.brokenByAnything(level, source); // Paper
|
||||
diff --git a/net/minecraft/world/entity/decoration/ItemFrame.java b/net/minecraft/world/entity/decoration/ItemFrame.java
|
||||
index 5f518a7469953f50135ec53d7c6b77b9acbafed9..d5fec174e6accbf93fd70ed1ba64135fb879d0b2 100644
|
||||
index 898f64de427b84cbf9b0e5198098f8e2e9040928..bc12a7a96d8db8eb6ad2bcfccaa69464c1e2170d 100644
|
||||
--- a/net/minecraft/world/entity/decoration/ItemFrame.java
|
||||
+++ b/net/minecraft/world/entity/decoration/ItemFrame.java
|
||||
@@ -246,7 +246,11 @@ public class ItemFrame extends HangingEntity {
|
||||
this.removeFramedMap(item);
|
||||
this.removeFramedMap(itemStack);
|
||||
} else {
|
||||
if (dropItem) {
|
||||
if (withFrame) {
|
||||
- this.spawnAtLocation(level, this.getFrameItemStack());
|
||||
+ // Purpur start - Apply display names from item forms of entities to entities and vice versa
|
||||
+ final ItemStack itemFrame = this.getFrameItemStack();
|
||||
@@ -33,15 +33,15 @@ index 5f518a7469953f50135ec53d7c6b77b9acbafed9..d5fec174e6accbf93fd70ed1ba64135f
|
||||
+ // Purpur end - Apply display names from item forms of entities to entities and vice versa
|
||||
}
|
||||
|
||||
if (!item.isEmpty()) {
|
||||
if (!itemStack.isEmpty()) {
|
||||
diff --git a/net/minecraft/world/entity/decoration/painting/Painting.java b/net/minecraft/world/entity/decoration/painting/Painting.java
|
||||
index 682d6e8c400e3343815be83d74dafe7f16477ba2..32b7bfec3d169166fb607b68e4abf484756327ee 100644
|
||||
index 7195082470ca411caf9c071e970edddae93cb127..9740bb9ec78cad900b9fa7d8ed6fca6a4016de03 100644
|
||||
--- a/net/minecraft/world/entity/decoration/painting/Painting.java
|
||||
+++ b/net/minecraft/world/entity/decoration/painting/Painting.java
|
||||
@@ -182,7 +182,11 @@ public class Painting extends HangingEntity {
|
||||
if (level.getGameRules().get(GameRules.ENTITY_DROPS)) {
|
||||
this.playSound(SoundEvents.PAINTING_BREAK, 1.0F, 1.0F);
|
||||
if (!(entity instanceof Player player && player.hasInfiniteMaterials())) {
|
||||
if (!(causedBy instanceof Player player && player.hasInfiniteMaterials())) {
|
||||
- this.spawnAtLocation(level, Items.PAINTING);
|
||||
+ // Purpur start - Apply display names from item forms of entities to entities and vice versa
|
||||
+ final ItemStack painting = new ItemStack(Items.PAINTING);
|
||||
@@ -52,7 +52,7 @@ index 682d6e8c400e3343815be83d74dafe7f16477ba2..32b7bfec3d169166fb607b68e4abf484
|
||||
}
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/vehicle/boat/AbstractBoat.java b/net/minecraft/world/entity/vehicle/boat/AbstractBoat.java
|
||||
index d17269c9274bd29c761403138bfc56355c800d9c..e5854af03a58dc26a100feac59357862e46bfeed 100644
|
||||
index 390f0ec98e9e76239d67dd40d0b183d287bcf1d1..725f2c90fb0b12553441fd91a94ce5c890e1f2b1 100644
|
||||
--- a/net/minecraft/world/entity/vehicle/boat/AbstractBoat.java
|
||||
+++ b/net/minecraft/world/entity/vehicle/boat/AbstractBoat.java
|
||||
@@ -818,7 +818,13 @@ public abstract class AbstractBoat extends VehicleEntity implements Leashable {
|
||||
@@ -69,9 +69,9 @@ index d17269c9274bd29c761403138bfc56355c800d9c..e5854af03a58dc26a100feac59357862
|
||||
+ // Purpur end - Apply display names from item forms of entities to entities and vice versa
|
||||
}
|
||||
|
||||
public static enum Status {
|
||||
@Override
|
||||
diff --git a/net/minecraft/world/item/ArmorStandItem.java b/net/minecraft/world/item/ArmorStandItem.java
|
||||
index 962483d6f7225f13f121141882262d36dacad8cb..89d4bc00898fd8f6d40cda87c04c5983e2ea223c 100644
|
||||
index 4b4cc75640cc567a74c99ec8653436b2f2a50df6..47d1e104d910addcf8322976061ef38d8c791ea8 100644
|
||||
--- a/net/minecraft/world/item/ArmorStandItem.java
|
||||
+++ b/net/minecraft/world/item/ArmorStandItem.java
|
||||
@@ -51,6 +51,10 @@ public class ArmorStandItem extends Item {
|
||||
@@ -79,14 +79,14 @@ index 962483d6f7225f13f121141882262d36dacad8cb..89d4bc00898fd8f6d40cda87c04c5983
|
||||
}
|
||||
// CraftBukkit end
|
||||
+ // Purpur start - Apply display names from item forms of entities to entities and vice versa
|
||||
+ if (!serverLevel.purpurConfig.persistentDroppableEntityDisplayNames) armorStand.setCustomName(null);
|
||||
+ if (serverLevel.purpurConfig.armorstandSetNameVisible && armorStand.getCustomName() != null) armorStand.setCustomNameVisible(true);
|
||||
+ if (!serverLevel.purpurConfig.persistentDroppableEntityDisplayNames) entity.setCustomName(null);
|
||||
+ if (serverLevel.purpurConfig.armorstandSetNameVisible && entity.getCustomName() != null) entity.setCustomNameVisible(true);
|
||||
+ // Purpur end - Apply display names from item forms of entities to entities and vice versa
|
||||
serverLevel.addFreshEntityWithPassengers(armorStand);
|
||||
level.playSound(
|
||||
null, armorStand.getX(), armorStand.getY(), armorStand.getZ(), SoundEvents.ARMOR_STAND_PLACE, SoundSource.BLOCKS, 0.75F, 0.8F
|
||||
serverLevel.addFreshEntityWithPassengers(entity);
|
||||
level.playSound(null, entity.getX(), entity.getY(), entity.getZ(), SoundEvents.ARMOR_STAND_PLACE, SoundSource.BLOCKS, 0.75F, 0.8F);
|
||||
entity.gameEvent(GameEvent.ENTITY_PLACE, context.getPlayer());
|
||||
diff --git a/net/minecraft/world/item/BoatItem.java b/net/minecraft/world/item/BoatItem.java
|
||||
index a8732056d0086a0932e82f70396a8849bf8d0ee1..2219d5e3e3d1aaa9f729205191a1f549ed662e2e 100644
|
||||
index cd7f38ab2553062dcd003bd6f758e4aba77051ea..2b90dec5d564f05f350637a9645d76d4ab7d6126 100644
|
||||
--- a/net/minecraft/world/item/BoatItem.java
|
||||
+++ b/net/minecraft/world/item/BoatItem.java
|
||||
@@ -63,6 +63,7 @@ public class BoatItem extends Item {
|
||||
@@ -98,15 +98,15 @@ index a8732056d0086a0932e82f70396a8849bf8d0ee1..2219d5e3e3d1aaa9f729205191a1f549
|
||||
return InteractionResult.FAIL;
|
||||
} else {
|
||||
diff --git a/net/minecraft/world/item/HangingEntityItem.java b/net/minecraft/world/item/HangingEntityItem.java
|
||||
index e9403c7c857bfaf09d8f8851b468aa4431c5be54..ecc890ae91475420215b61311ff959d9c522202d 100644
|
||||
index 1e30fe428914c8ae4f6caf3cb5a05ced4e183393..c07b334eb05fd277925b684256591d505e5fd46a 100644
|
||||
--- a/net/minecraft/world/item/HangingEntityItem.java
|
||||
+++ b/net/minecraft/world/item/HangingEntityItem.java
|
||||
@@ -59,7 +59,7 @@ public class HangingEntityItem extends Item {
|
||||
hangingEntity = new GlowItemFrame(level, blockPos, clickedFace);
|
||||
entity = new GlowItemFrame(level, blockPos, clickedFace);
|
||||
}
|
||||
|
||||
- EntityType.<HangingEntity>createDefaultStackConfig(level, itemInHand, player).accept(hangingEntity);
|
||||
+ EntityType.<HangingEntity>appendDefaultStackConfig(entity -> {if (!level.purpurConfig.persistentDroppableEntityDisplayNames) entity.setCustomName(null);}, level, itemInHand, player).accept(hangingEntity); // Purpur - Apply display names from item forms of entities to entities and vice versa
|
||||
if (hangingEntity.survives()) {
|
||||
- EntityType.<HangingEntity>createDefaultStackConfig(level, itemInHand, player).accept(entity);
|
||||
+ EntityType.<HangingEntity>appendDefaultStackConfig(entity1 -> {if (!level.purpurConfig.persistentDroppableEntityDisplayNames) entity1.setCustomName(null);}, level, itemInHand, player).accept(entity); // Purpur - Apply display names from item forms of entities to entities and vice versa
|
||||
if (entity.survives()) {
|
||||
if (!level.isClientSide()) {
|
||||
// CraftBukkit start - fire HangingPlaceEvent
|
||||
@@ -8,7 +8,7 @@ farm Nether Wart. Reimplemented based on a feature of the carpet-extra
|
||||
mod.
|
||||
|
||||
diff --git a/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java b/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java
|
||||
index 23c9363f03a74a2ddd15ffa1da4e0910dcfe2eb4..83aac5dcc51fbc2cc9ee45c155fb2b5b67293a96 100644
|
||||
index c49f72d3554c5cf49cbbc57897288da876b4e5f5..9318b27ca960ee00774892b3fd244b0fca1f6e35 100644
|
||||
--- a/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java
|
||||
+++ b/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java
|
||||
@@ -31,6 +31,7 @@ public class HarvestFarmland extends Behavior<Villager> {
|
||||
@@ -20,48 +20,48 @@ index 23c9363f03a74a2ddd15ffa1da4e0910dcfe2eb4..83aac5dcc51fbc2cc9ee45c155fb2b5b
|
||||
public HarvestFarmland() {
|
||||
super(
|
||||
@@ -49,9 +50,10 @@ public class HarvestFarmland extends Behavior<Villager> {
|
||||
protected boolean checkExtraStartConditions(ServerLevel level, Villager owner) {
|
||||
protected boolean checkExtraStartConditions(final ServerLevel level, final Villager body) {
|
||||
if (!level.getGameRules().get(GameRules.MOB_GRIEFING)) {
|
||||
return false;
|
||||
- } else if (!owner.getVillagerData().profession().is(VillagerProfession.FARMER)) {
|
||||
+ } else if (!owner.getVillagerData().profession().is(VillagerProfession.FARMER) && !(level.purpurConfig.villagerClericsFarmWarts && owner.getVillagerData().profession().is(VillagerProfession.CLERIC))) { // Purpur - Option for Villager Clerics to farm Nether Wart
|
||||
- } else if (!body.getVillagerData().profession().is(VillagerProfession.FARMER)) {
|
||||
+ } else if (!body.getVillagerData().profession().is(VillagerProfession.FARMER) && !(level.purpurConfig.villagerClericsFarmWarts && body.getVillagerData().profession().is(VillagerProfession.CLERIC))) { // Purpur - Option for Villager Clerics to farm Nether Wart
|
||||
return false;
|
||||
} else {
|
||||
+ if (!this.clericWartFarmer && owner.getVillagerData().profession().is(VillagerProfession.CLERIC)) this.clericWartFarmer = true; // Purpur - Option for Villager Clerics to farm Nether Wart
|
||||
BlockPos.MutableBlockPos mutableBlockPos = owner.blockPosition().mutable();
|
||||
+ if (!this.clericWartFarmer && body.getVillagerData().profession().is(VillagerProfession.CLERIC)) this.clericWartFarmer = true; // Purpur - Option for Villager Clerics to farm Nether Wart
|
||||
BlockPos.MutableBlockPos mutPos = body.blockPosition().mutable();
|
||||
this.validFarmlandAroundVillager.clear();
|
||||
|
||||
@@ -81,6 +83,7 @@ public class HarvestFarmland extends Behavior<Villager> {
|
||||
BlockState blockState = level.getBlockState(pos);
|
||||
Block block = blockState.getBlock();
|
||||
Block block1 = level.getBlockState(pos.below()).getBlock();
|
||||
+ if (this.clericWartFarmer) return block == net.minecraft.world.level.block.Blocks.NETHER_WART && blockState.getValue(net.minecraft.world.level.block.NetherWartBlock.AGE) == 3 || blockState.isAir() && block1 == net.minecraft.world.level.block.Blocks.SOUL_SAND; // Purpur - Option for Villager Clerics to farm Nether Wart
|
||||
return block instanceof CropBlock && ((CropBlock)block).isMaxAge(blockState) || blockState.isAir() && block1 instanceof FarmBlock;
|
||||
BlockState state = level.getBlockState(blockPos);
|
||||
Block block = state.getBlock();
|
||||
Block blockBelow = level.getBlockState(blockPos.below()).getBlock();
|
||||
+ if (this.clericWartFarmer) return block == net.minecraft.world.level.block.Blocks.NETHER_WART && state.getValue(net.minecraft.world.level.block.NetherWartBlock.AGE) == 3 || state.isAir() && block == net.minecraft.world.level.block.Blocks.SOUL_SAND; // Purpur - Option for Villager Clerics to farm Nether Wart
|
||||
return block instanceof CropBlock && ((CropBlock)block).isMaxAge(state) || state.isAir() && blockBelow instanceof FarmlandBlock;
|
||||
}
|
||||
|
||||
@@ -107,19 +110,19 @@ public class HarvestFarmland extends Behavior<Villager> {
|
||||
BlockState blockState = level.getBlockState(this.aboveFarmlandPos);
|
||||
Block block = blockState.getBlock();
|
||||
Block block1 = level.getBlockState(this.aboveFarmlandPos.below()).getBlock();
|
||||
Block blockBelow = level.getBlockState(this.aboveFarmlandPos.below()).getBlock();
|
||||
- if (block instanceof CropBlock && ((CropBlock)block).isMaxAge(blockState)) {
|
||||
+ if (block instanceof CropBlock && ((CropBlock)block).isMaxAge(blockState) && !this.clericWartFarmer || this.clericWartFarmer && block == net.minecraft.world.level.block.Blocks.NETHER_WART && blockState.getValue(net.minecraft.world.level.block.NetherWartBlock.AGE) == 3) { // Purpur - Option for Villager Clerics to farm Nether Wart
|
||||
if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(owner, this.aboveFarmlandPos, blockState.getFluidState().createLegacyBlock())) { // CraftBukkit // Paper - fix wrong block state
|
||||
level.destroyBlock(this.aboveFarmlandPos, true, owner);
|
||||
if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(body, this.aboveFarmlandPos, blockState.getFluidState().createLegacyBlock())) { // CraftBukkit // Paper - fix wrong block state
|
||||
level.destroyBlock(this.aboveFarmlandPos, true, body);
|
||||
} // CraftBukkit
|
||||
}
|
||||
|
||||
- if (blockState.isAir() && block1 instanceof FarmBlock && owner.hasFarmSeeds()) {
|
||||
+ if (blockState.isAir() && block1 instanceof FarmBlock && !this.clericWartFarmer || this.clericWartFarmer && block1 == net.minecraft.world.level.block.Blocks.SOUL_SAND && owner.hasFarmSeeds()) { // Purpur - Option for Villager Clerics to farm Nether Wart
|
||||
SimpleContainer inventory = owner.getInventory();
|
||||
- if (blockState.isAir() && blockBelow instanceof FarmlandBlock && body.hasFarmSeeds()) {
|
||||
+ if (blockState.isAir() && blockBelow instanceof FarmlandBlock && !this.clericWartFarmer || this.clericWartFarmer && blockBelow == net.minecraft.world.level.block.Blocks.SOUL_SAND && body.hasFarmSeeds()) { // Purpur - Option for Villager Clerics to farm Nether Wart
|
||||
SimpleContainer inventory = body.getInventory();
|
||||
|
||||
for (int i = 0; i < inventory.getContainerSize(); i++) {
|
||||
ItemStack item = inventory.getItem(i);
|
||||
boolean flag = false;
|
||||
- if (!item.isEmpty() && item.is(ItemTags.VILLAGER_PLANTABLE_SEEDS) && item.getItem() instanceof BlockItem blockItem) {
|
||||
+ if (!item.isEmpty() && (item.is(ItemTags.VILLAGER_PLANTABLE_SEEDS) || this.clericWartFarmer && item.getItem() == net.minecraft.world.item.Items.NETHER_WART) && item.getItem() instanceof BlockItem blockItem) { // Purpur - Option for Villager Clerics to farm Nether Wart
|
||||
BlockState blockState1 = blockItem.getBlock().defaultBlockState();
|
||||
if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(owner, this.aboveFarmlandPos, blockState1)) { // CraftBukkit
|
||||
level.setBlockAndUpdate(this.aboveFarmlandPos, blockState1);
|
||||
ItemStack itemStack = inventory.getItem(i);
|
||||
boolean ok = false;
|
||||
- if (!itemStack.isEmpty() && itemStack.is(ItemTags.VILLAGER_PLANTABLE_SEEDS) && itemStack.getItem() instanceof BlockItem blockItem) {
|
||||
+ if (!itemStack.isEmpty() && (itemStack.is(ItemTags.VILLAGER_PLANTABLE_SEEDS) || this.clericWartFarmer && itemStack.getItem() == net.minecraft.world.item.Items.NETHER_WART) && itemStack.getItem() instanceof BlockItem blockItem) { // Purpur - Option for Villager Clerics to farm Nether Wart
|
||||
BlockState place = blockItem.getBlock().defaultBlockState();
|
||||
if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(body, this.aboveFarmlandPos, place)) { // CraftBukkit
|
||||
level.setBlockAndUpdate(this.aboveFarmlandPos, place);
|
||||
@@ -134,7 +137,7 @@ public class HarvestFarmland extends Behavior<Villager> {
|
||||
this.aboveFarmlandPos.getX(),
|
||||
this.aboveFarmlandPos.getY(),
|
||||
@@ -72,29 +72,29 @@ index 23c9363f03a74a2ddd15ffa1da4e0910dcfe2eb4..83aac5dcc51fbc2cc9ee45c155fb2b5b
|
||||
1.0F,
|
||||
1.0F
|
||||
diff --git a/net/minecraft/world/entity/ai/behavior/TradeWithVillager.java b/net/minecraft/world/entity/ai/behavior/TradeWithVillager.java
|
||||
index 256fb863683d66235db4fb2b65fb1495672a67bf..81145178ba1ef75c441a09ab5f376d0528299ad3 100644
|
||||
index 1d405a77c4cf70bd818a4f59163e5b319808d5f3..6a7b51acfc2cd157ce81c3a92d2633375cb1a6a7 100644
|
||||
--- a/net/minecraft/world/entity/ai/behavior/TradeWithVillager.java
|
||||
+++ b/net/minecraft/world/entity/ai/behavior/TradeWithVillager.java
|
||||
@@ -59,6 +59,12 @@ public class TradeWithVillager extends Behavior<Villager> {
|
||||
throwHalfStack(owner, ImmutableSet.of(Items.WHEAT), villager);
|
||||
throwHalfStack(body, ImmutableSet.of(Items.WHEAT), target);
|
||||
}
|
||||
|
||||
+ // Purpur start - Option for Villager Clerics to farm Nether Wart
|
||||
+ if (level.purpurConfig.villagerClericsFarmWarts && level.purpurConfig.villagerClericFarmersThrowWarts && owner.getVillagerData().profession().is(VillagerProfession.CLERIC) && owner.getInventory().countItem(Items.NETHER_WART) > Items.NETHER_WART.getDefaultMaxStackSize() / 2) {
|
||||
+ throwHalfStack(owner, ImmutableSet.of(Items.NETHER_WART), villager);
|
||||
+ if (level.purpurConfig.villagerClericsFarmWarts && level.purpurConfig.villagerClericFarmersThrowWarts && body.getVillagerData().profession().is(VillagerProfession.CLERIC) && body.getInventory().countItem(Items.NETHER_WART) > Items.NETHER_WART.getDefaultMaxStackSize() / 2) {
|
||||
+ throwHalfStack(body, ImmutableSet.of(Items.NETHER_WART), target);
|
||||
+ }
|
||||
+ // Purpur end - Option for Villager Clerics to farm Nether Wart
|
||||
+
|
||||
if (!this.trades.isEmpty() && owner.getInventory().hasAnyOf(this.trades)) {
|
||||
throwHalfStack(owner, this.trades, villager);
|
||||
if (!this.trades.isEmpty() && body.getInventory().hasAnyOf(this.trades)) {
|
||||
throwHalfStack(body, this.trades, target);
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java b/net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java
|
||||
index bb3ac5297860c8af6e213d10fdf5144086e9474b..0e72601781235119d62fe74420153b98edb5ce23 100644
|
||||
index a5d1b66b07002545381dfc449a2eda26546b904c..0e5039e07c3df288e4b1377225ac52cc96675b66 100644
|
||||
--- a/net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java
|
||||
+++ b/net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java
|
||||
@@ -79,8 +79,13 @@ public class VillagerGoalPackages {
|
||||
@@ -74,8 +74,13 @@ public class VillagerGoalPackages {
|
||||
public static ImmutableList<Pair<Integer, ? extends BehaviorControl<? super Villager>>> getWorkPackage(
|
||||
Holder<VillagerProfession> profession, float speedModifier
|
||||
final Holder<VillagerProfession> profession, final float speedModifier
|
||||
) {
|
||||
+ // Purpur start - Option for Villager Clerics to farm Nether Wart
|
||||
+ return getWorkPackage(profession, speedModifier, false);
|
||||
@@ -108,64 +108,64 @@ index bb3ac5297860c8af6e213d10fdf5144086e9474b..0e72601781235119d62fe74420153b98
|
||||
} else {
|
||||
workAtPoi = new WorkAtPoi();
|
||||
diff --git a/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java b/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java
|
||||
index 39a9e9a6f6dfddbf47a7f96150ef832efe61f89e..c268817b170bd54898bb5f8c2e2e12c0faa7eb1e 100644
|
||||
index ec12508c112b1e7748a5d197b73a0d540bed10fc..f2daabad51d565cae11e8bfce8b1bf40a7e56a78 100644
|
||||
--- a/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java
|
||||
+++ b/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java
|
||||
@@ -22,6 +22,13 @@ public class SecondaryPoiSensor extends Sensor<Villager> {
|
||||
|
||||
@Override
|
||||
protected void doTick(ServerLevel level, Villager entity) {
|
||||
protected void doTick(final ServerLevel level, final Villager body) {
|
||||
+ // Purpur start - Option for Villager Clerics to farm Nether Wart - make sure clerics don't wander to soul sand when the option is off
|
||||
+ Brain<?> brain = entity.getBrain();
|
||||
+ if (!level.purpurConfig.villagerClericsFarmWarts && entity.getVillagerData().profession().is(net.minecraft.world.entity.npc.villager.VillagerProfession.CLERIC)) {
|
||||
+ Brain<?> brain = body.getBrain();
|
||||
+ if (!level.purpurConfig.villagerClericsFarmWarts && body.getVillagerData().profession().is(net.minecraft.world.entity.npc.villager.VillagerProfession.CLERIC)) {
|
||||
+ brain.eraseMemory(MemoryModuleType.SECONDARY_JOB_SITE);
|
||||
+ return;
|
||||
+ }
|
||||
+ // Purpur end - Option for Villager Clerics to farm Nether Wart
|
||||
ResourceKey<Level> resourceKey = level.dimension();
|
||||
BlockPos blockPos = entity.blockPosition();
|
||||
List<GlobalPos> list = Lists.newArrayList();
|
||||
ResourceKey<Level> dimensionType = level.dimension();
|
||||
BlockPos center = body.blockPosition();
|
||||
List<GlobalPos> jobSites = Lists.newArrayList();
|
||||
@@ -38,7 +45,7 @@ public class SecondaryPoiSensor extends Sensor<Villager> {
|
||||
}
|
||||
}
|
||||
|
||||
- Brain<?> brain = entity.getBrain();
|
||||
+ //Brain<?> brain = entity.getBrain(); // Purpur - Option for Villager Clerics to farm Nether Wart - moved up
|
||||
if (!list.isEmpty()) {
|
||||
brain.setMemory(MemoryModuleType.SECONDARY_JOB_SITE, list);
|
||||
- Brain<?> brain = body.getBrain();
|
||||
+ //Brain<?> brain = body.getBrain(); // Purpur - Option for Villager Clerics to farm Nether Wart - moved up
|
||||
if (!jobSites.isEmpty()) {
|
||||
brain.setMemory(MemoryModuleType.SECONDARY_JOB_SITE, jobSites);
|
||||
} else {
|
||||
diff --git a/net/minecraft/world/entity/npc/villager/Villager.java b/net/minecraft/world/entity/npc/villager/Villager.java
|
||||
index 02836bd2e8fda563877d3014ab839734aebc7457..ed6642023fccbc8f825d7c5c206d73ffd666f0f9 100644
|
||||
index 6105aa39baf888dd625f4d345822a4058bf83ef4..fffc71d2f0cd0d4c4f5d8fad38130208cdbe5e67 100644
|
||||
--- a/net/minecraft/world/entity/npc/villager/Villager.java
|
||||
+++ b/net/minecraft/world/entity/npc/villager/Villager.java
|
||||
@@ -315,7 +315,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
villagerBrain.setSchedule(EnvironmentAttributes.VILLAGER_ACTIVITY);
|
||||
villagerBrain.addActivityWithConditions(
|
||||
Activity.WORK,
|
||||
- VillagerGoalPackages.getWorkPackage(holder, 0.5F),
|
||||
+ VillagerGoalPackages.getWorkPackage(holder, 0.5F, this.level().purpurConfig.villagerClericsFarmWarts), // Purpur - Option for Villager Clerics to farm Nether Wart
|
||||
ImmutableSet.of(Pair.of(MemoryModuleType.JOB_SITE, MemoryStatus.VALUE_PRESENT))
|
||||
);
|
||||
}
|
||||
@@ -956,7 +956,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -148,7 +148,7 @@ public class Villager extends AbstractVillager implements VillagerDataHolder, Re
|
||||
activities.add(
|
||||
ActivityData.create(
|
||||
Activity.WORK,
|
||||
- VillagerGoalPackages.getWorkPackage(profession, 0.5F),
|
||||
+ VillagerGoalPackages.getWorkPackage(profession, 0.5F, body.level().purpurConfig.villagerClericsFarmWarts), // Purpur - Option for Villager Clerics to farm Nether Wart
|
||||
ImmutableSet.of(Pair.of(MemoryModuleType.JOB_SITE, MemoryStatus.VALUE_PRESENT))
|
||||
)
|
||||
);
|
||||
@@ -945,7 +945,7 @@ public class Villager extends AbstractVillager implements VillagerDataHolder, Re
|
||||
}
|
||||
|
||||
public boolean hasFarmSeeds() {
|
||||
- return this.getInventory().hasAnyMatching(stack -> stack.is(ItemTags.VILLAGER_PLANTABLE_SEEDS));
|
||||
+ return this.getInventory().hasAnyMatching(stack -> this.level().purpurConfig.villagerClericsFarmWarts && this.getVillagerData().profession().is(VillagerProfession.CLERIC) ? stack.is(Items.NETHER_WART) : stack.is(ItemTags.VILLAGER_PLANTABLE_SEEDS)); // Purpur - Option for Villager Clerics to farm Nether Wart
|
||||
- return this.getInventory().hasAnyMatching(item -> item.is(ItemTags.VILLAGER_PLANTABLE_SEEDS));
|
||||
+ return this.getInventory().hasAnyMatching(item -> this.level().purpurConfig.villagerClericsFarmWarts && this.getVillagerData().profession().is(VillagerProfession.CLERIC) ? item.is(Items.NETHER_WART) : item.is(ItemTags.VILLAGER_PLANTABLE_SEEDS));
|
||||
}
|
||||
|
||||
@Override
|
||||
diff --git a/net/minecraft/world/entity/npc/villager/VillagerProfession.java b/net/minecraft/world/entity/npc/villager/VillagerProfession.java
|
||||
index 0acfa8f9d2eab00cf0d8b4bc65c3af52046272bd..8f2edbe693a793d31295d035bc01e4c2b7742b4e 100644
|
||||
index 1d779d7a51437581fa3d8da38449916362b25ce9..9d71db9db42e38338afe10b24699dae9cc90fcfa 100644
|
||||
--- a/net/minecraft/world/entity/npc/villager/VillagerProfession.java
|
||||
+++ b/net/minecraft/world/entity/npc/villager/VillagerProfession.java
|
||||
@@ -103,7 +103,7 @@ public record VillagerProfession(
|
||||
register(registry, ARMORER, PoiTypes.ARMORER, SoundEvents.VILLAGER_WORK_ARMORER);
|
||||
register(registry, BUTCHER, PoiTypes.BUTCHER, SoundEvents.VILLAGER_WORK_BUTCHER);
|
||||
register(registry, CARTOGRAPHER, PoiTypes.CARTOGRAPHER, SoundEvents.VILLAGER_WORK_CARTOGRAPHER);
|
||||
- register(registry, CLERIC, PoiTypes.CLERIC, SoundEvents.VILLAGER_WORK_CLERIC);
|
||||
+ register(registry, CLERIC, PoiTypes.CLERIC, ImmutableSet.of(Items.NETHER_WART), ImmutableSet.of(Blocks.SOUL_SAND), SoundEvents.VILLAGER_WORK_CLERIC); // Purpur - Option for Villager Clerics to farm Nether Wart
|
||||
register(
|
||||
@@ -165,6 +165,8 @@ public record VillagerProfession(
|
||||
registry,
|
||||
FARMER,
|
||||
CLERIC,
|
||||
PoiTypes.CLERIC,
|
||||
+ ImmutableSet.of(Items.NETHER_WART), // Purpur - Option for Villager Clerics to farm Nether Wart
|
||||
+ ImmutableSet.of(Blocks.SOUL_SAND), // Purpur - Option for Villager Clerics to farm Nether Wart
|
||||
SoundEvents.VILLAGER_WORK_CLERIC,
|
||||
Int2ObjectMap.ofEntries(
|
||||
Int2ObjectMap.entry(1, TradeSets.CLERIC_LEVEL_1),
|
||||
@@ -5,23 +5,23 @@ Subject: [PATCH] Add mobGriefing override to everything affected
|
||||
|
||||
|
||||
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
|
||||
index dc71ae07f2c7a7038e96caf8618dddc5d4932271..717e42ed210408c30f3fa2b6d786a2a51abfecc6 100644
|
||||
index 2e7e5c4c42bcdb6135a088ffe0a7a8f4558dc12c..7146381e06ed1b946ce43dca293f52da05b46314 100644
|
||||
--- a/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -1973,7 +1973,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
|
||||
@@ -1950,7 +1950,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
|
||||
if (this.level() instanceof ServerLevel serverLevel) {
|
||||
boolean var6 = false;
|
||||
if (this.dead && entitySource instanceof WitherBoss) { // Paper
|
||||
if (this.dead && killer instanceof WitherBoss) { // Paper
|
||||
- if (serverLevel.getGameRules().get(GameRules.MOB_GRIEFING)) {
|
||||
+ if (serverLevel.getGameRules().get(GameRules.MOB_GRIEFING, serverLevel.purpurConfig.witherMobGriefingOverride)) { // Purpur - Add mobGriefing override to everything affected
|
||||
BlockPos blockPos = this.blockPosition();
|
||||
BlockState blockState = Blocks.WITHER_ROSE.defaultBlockState();
|
||||
if (this.level().getBlockState(blockPos).isAir() && blockState.canSurvive(this.level(), blockPos)) {
|
||||
BlockPos pos = this.blockPosition();
|
||||
BlockState state = Blocks.WITHER_ROSE.defaultBlockState();
|
||||
if (this.level().getBlockState(pos).isAir() && state.canSurvive(this.level(), pos)) {
|
||||
diff --git a/net/minecraft/world/entity/Mob.java b/net/minecraft/world/entity/Mob.java
|
||||
index 94e7307c0d15fdef7f7dcb28473cb76661600b0e..01667b8d45653aa6b0f77d65599f7dc68979f9f1 100644
|
||||
index be578b5d4430e934342d3e80b70a1ea56b020a5c..43f1a9287d2a3010d35a88d58df3e950f1011eec 100644
|
||||
--- a/net/minecraft/world/entity/Mob.java
|
||||
+++ b/net/minecraft/world/entity/Mob.java
|
||||
@@ -554,7 +554,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
|
||||
@@ -560,7 +560,7 @@ public abstract class Mob extends LivingEntity implements Targeting, EquipmentUs
|
||||
&& this.canPickUpLoot()
|
||||
&& this.isAlive()
|
||||
&& !this.dead
|
||||
@@ -29,22 +29,22 @@ index 94e7307c0d15fdef7f7dcb28473cb76661600b0e..01667b8d45653aa6b0f77d65599f7dc6
|
||||
+ && serverLevel.getGameRules().get(GameRules.MOB_GRIEFING, serverLevel.purpurConfig.entitiesPickUpLootMobGriefingOverride)) { // Purpur - Add mobGriefing override to everything affected
|
||||
Vec3i pickupReach = this.getPickupReach();
|
||||
|
||||
for (ItemEntity itemEntity : this.level()
|
||||
for (ItemEntity entity : this.level()
|
||||
diff --git a/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java b/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java
|
||||
index 83aac5dcc51fbc2cc9ee45c155fb2b5b67293a96..c68399986583a215da156b9057a61f22cbf6143d 100644
|
||||
index 9318b27ca960ee00774892b3fd244b0fca1f6e35..573eb81c0328b9b6bd9256d67e533b6cc73f738f 100644
|
||||
--- a/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java
|
||||
+++ b/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java
|
||||
@@ -48,7 +48,7 @@ public class HarvestFarmland extends Behavior<Villager> {
|
||||
|
||||
@Override
|
||||
protected boolean checkExtraStartConditions(ServerLevel level, Villager owner) {
|
||||
protected boolean checkExtraStartConditions(final ServerLevel level, final Villager body) {
|
||||
- if (!level.getGameRules().get(GameRules.MOB_GRIEFING)) {
|
||||
+ if (!level.getGameRules().get(GameRules.MOB_GRIEFING, level.purpurConfig.villagerMobGriefingOverride)) { // Purpur - Add mobGriefing override to everything affected
|
||||
return false;
|
||||
} else if (!owner.getVillagerData().profession().is(VillagerProfession.FARMER) && !(level.purpurConfig.villagerClericsFarmWarts && owner.getVillagerData().profession().is(VillagerProfession.CLERIC))) { // Purpur - Option for Villager Clerics to farm Nether Wart
|
||||
} else if (!body.getVillagerData().profession().is(VillagerProfession.FARMER) && !(level.purpurConfig.villagerClericsFarmWarts && body.getVillagerData().profession().is(VillagerProfession.CLERIC))) { // Purpur - Option for Villager Clerics to farm Nether Wart
|
||||
return false;
|
||||
diff --git a/net/minecraft/world/entity/ai/goal/BreakDoorGoal.java b/net/minecraft/world/entity/ai/goal/BreakDoorGoal.java
|
||||
index 272335ec91615e2619ce95f47dbf228d180239c3..23ba4af0b6785057cfd2a996aebcbcf89697c12f 100644
|
||||
index e33598c3ea748f81c7efcaa06d9d0597624a852b..80a42d030969e264a93108ca3f2c296dd295ad1d 100644
|
||||
--- a/net/minecraft/world/entity/ai/goal/BreakDoorGoal.java
|
||||
+++ b/net/minecraft/world/entity/ai/goal/BreakDoorGoal.java
|
||||
@@ -31,7 +31,7 @@ public class BreakDoorGoal extends DoorInteractGoal {
|
||||
@@ -57,32 +57,32 @@ index 272335ec91615e2619ce95f47dbf228d180239c3..23ba4af0b6785057cfd2a996aebcbcf8
|
||||
&& !this.isOpen();
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/ai/goal/EatBlockGoal.java b/net/minecraft/world/entity/ai/goal/EatBlockGoal.java
|
||||
index 087861886eeb55324ffe54bda78e19f83bf33e72..0f0311eb836b8da39651ece499fe4bda44bce178 100644
|
||||
index 0f52b048c33f3dbafd5734dc724bcd74db43884a..a40284d4f3812a169e94593ec14192e079133bd4 100644
|
||||
--- a/net/minecraft/world/entity/ai/goal/EatBlockGoal.java
|
||||
+++ b/net/minecraft/world/entity/ai/goal/EatBlockGoal.java
|
||||
@@ -64,7 +64,7 @@ public class EatBlockGoal extends Goal {
|
||||
BlockPos blockPos = this.mob.blockPosition();
|
||||
final BlockState blockState = this.level.getBlockState(blockPos); // Paper - fix wrong block state
|
||||
BlockPos pos = this.mob.blockPosition();
|
||||
final BlockState blockState = this.level.getBlockState(pos); // Paper - fix wrong block state
|
||||
if (IS_EDIBLE.test(blockState)) { // Paper - fix wrong block state
|
||||
- if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(this.mob, blockPos, blockState.getFluidState().createLegacyBlock(), !getServerLevel(this.level).getGameRules().get(GameRules.MOB_GRIEFING))) { // CraftBukkit // Paper - fix wrong block state
|
||||
+ if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(this.mob, blockPos, blockState.getFluidState().createLegacyBlock(), !getServerLevel(this.level).getGameRules().get(GameRules.MOB_GRIEFING, getServerLevel(this.level).purpurConfig.sheepMobGriefingOverride))) { // CraftBukkit // Paper - fix wrong block state // Purpur - Add mobGriefing override to everything affected
|
||||
this.level.destroyBlock(blockPos, false);
|
||||
- if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(this.mob, pos, blockState.getFluidState().createLegacyBlock(), !getServerLevel(this.level).getGameRules().get(GameRules.MOB_GRIEFING))) { // CraftBukkit // Paper - fix wrong block state
|
||||
+ if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(this.mob, pos, blockState.getFluidState().createLegacyBlock(), !getServerLevel(this.level).getGameRules().get(GameRules.MOB_GRIEFING, getServerLevel(this.level).purpurConfig.sheepMobGriefingOverride))) { // CraftBukkit // Paper - fix wrong block state // Purpur - Add mobGriefing override to everything affected
|
||||
this.level.destroyBlock(pos, false);
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@ public class EatBlockGoal extends Goal {
|
||||
} else {
|
||||
BlockPos blockPos1 = blockPos.below();
|
||||
if (this.level.getBlockState(blockPos1).is(Blocks.GRASS_BLOCK)) {
|
||||
- if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(this.mob, blockPos1, Blocks.DIRT.defaultBlockState(), !getServerLevel(this.level).getGameRules().get(GameRules.MOB_GRIEFING))) { // CraftBukkit // Paper - Fix wrong block state
|
||||
+ if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(this.mob, blockPos1, Blocks.DIRT.defaultBlockState(), !getServerLevel(this.level).getGameRules().get(GameRules.MOB_GRIEFING, getServerLevel(this.level).purpurConfig.sheepMobGriefingOverride))) { // CraftBukkit // Paper - Fix wrong block state // Purpur - Add mobGriefing override to everything affected
|
||||
this.level.levelEvent(LevelEvent.PARTICLES_DESTROY_BLOCK, blockPos1, Block.getId(Blocks.GRASS_BLOCK.defaultBlockState()));
|
||||
this.level.setBlock(blockPos1, Blocks.DIRT.defaultBlockState(), Block.UPDATE_CLIENTS);
|
||||
BlockPos below = pos.below();
|
||||
if (this.level.getBlockState(below).is(Blocks.GRASS_BLOCK)) {
|
||||
- if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(this.mob, below, Blocks.DIRT.defaultBlockState(), !getServerLevel(this.level).getGameRules().get(GameRules.MOB_GRIEFING))) { // CraftBukkit // Paper - Fix wrong block state
|
||||
+ if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(this.mob, below, Blocks.DIRT.defaultBlockState(), !getServerLevel(this.level).getGameRules().get(GameRules.MOB_GRIEFING, getServerLevel(this.level).purpurConfig.sheepMobGriefingOverride))) { // CraftBukkit // Paper - Fix wrong block state // Purpur - Add mobGriefing override to everything affected
|
||||
this.level.levelEvent(LevelEvent.PARTICLES_DESTROY_BLOCK, below, Block.getId(Blocks.GRASS_BLOCK.defaultBlockState()));
|
||||
this.level.setBlock(below, Blocks.DIRT.defaultBlockState(), Block.UPDATE_CLIENTS);
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/ai/goal/RemoveBlockGoal.java b/net/minecraft/world/entity/ai/goal/RemoveBlockGoal.java
|
||||
index 50cc4c462640a9d40abef6245439d71e8c593ae6..83be00350765db043b6bf32e7814d9c7119eacc5 100644
|
||||
index ca91cadd8d52c09a735e6447664bed4753f3cdd3..3277777cb8672d29a0d49ef03f9cf35cc5df3838 100644
|
||||
--- a/net/minecraft/world/entity/ai/goal/RemoveBlockGoal.java
|
||||
+++ b/net/minecraft/world/entity/ai/goal/RemoveBlockGoal.java
|
||||
@@ -35,7 +35,7 @@ public class RemoveBlockGoal extends MoveToBlockGoal {
|
||||
@@ -34,7 +34,7 @@ public class RemoveBlockGoal extends MoveToBlockGoal {
|
||||
|
||||
@Override
|
||||
public boolean canUse() {
|
||||
@@ -92,23 +92,23 @@ index 50cc4c462640a9d40abef6245439d71e8c593ae6..83be00350765db043b6bf32e7814d9c7
|
||||
} else if (this.nextStartTick > 0) {
|
||||
this.nextStartTick--;
|
||||
diff --git a/net/minecraft/world/entity/animal/fox/Fox.java b/net/minecraft/world/entity/animal/fox/Fox.java
|
||||
index 3c2f5e711c013a6f51093e94bc4b5518263607a2..a0ed30e8ccd41729de8e0ff977a61fa607386640 100644
|
||||
index 9c049b34c062113a2241fdda2eaae808c0e8e0b1..f781d02d10317bf7cf9b5fe50706bbefb62820d3 100644
|
||||
--- a/net/minecraft/world/entity/animal/fox/Fox.java
|
||||
+++ b/net/minecraft/world/entity/animal/fox/Fox.java
|
||||
@@ -1062,7 +1062,7 @@ public class Fox extends Animal {
|
||||
@@ -1082,7 +1082,7 @@ public class Fox extends Animal {
|
||||
}
|
||||
|
||||
protected void onReachedTarget() {
|
||||
- if (getServerLevel(Fox.this.level()).getGameRules().get(GameRules.MOB_GRIEFING)) {
|
||||
+ if (getServerLevel(Fox.this.level()).getGameRules().get(GameRules.MOB_GRIEFING, getServerLevel(Fox.this.level()).purpurConfig.foxMobGriefingOverride)) { // Purpur - Add mobGriefing override to everything affected
|
||||
BlockState blockState = Fox.this.level().getBlockState(this.blockPos);
|
||||
if (blockState.is(Blocks.SWEET_BERRY_BUSH)) {
|
||||
this.pickSweetBerries(blockState);
|
||||
BlockState state = Fox.this.level().getBlockState(this.blockPos);
|
||||
if (state.is(Blocks.SWEET_BERRY_BUSH)) {
|
||||
this.pickSweetBerries(state);
|
||||
diff --git a/net/minecraft/world/entity/animal/golem/SnowGolem.java b/net/minecraft/world/entity/animal/golem/SnowGolem.java
|
||||
index aa53ee0586a85a64e8c6471735e29b2694f61b9d..fa941ba3151da7b965678be7e4c6a4194863cd0a 100644
|
||||
index bd594838ae25f16e6e16335e06c4d981c5ecdc2a..7091f5bc2ecb9d4b86162fe364447df65d8e9348 100644
|
||||
--- a/net/minecraft/world/entity/animal/golem/SnowGolem.java
|
||||
+++ b/net/minecraft/world/entity/animal/golem/SnowGolem.java
|
||||
@@ -135,7 +135,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
|
||||
@@ -135,7 +135,7 @@ public class SnowGolem extends AbstractGolem implements RangedAttackMob, Shearab
|
||||
this.hurtServer(serverLevel, this.damageSources().onFire().knownCause(org.bukkit.event.entity.EntityDamageEvent.DamageCause.MELTING), 1.0F); // CraftBukkit
|
||||
}
|
||||
|
||||
@@ -118,10 +118,10 @@ index aa53ee0586a85a64e8c6471735e29b2694f61b9d..fa941ba3151da7b965678be7e4c6a419
|
||||
}
|
||||
|
||||
diff --git a/net/minecraft/world/entity/animal/rabbit/Rabbit.java b/net/minecraft/world/entity/animal/rabbit/Rabbit.java
|
||||
index 061418a25d359574c4ff44327082b08b4094ee1c..66fda64006c0a70ab4502f088637bb6871c3bb37 100644
|
||||
index 3aefbdc3e537bc53bba296c7876dee93c95a77ca..4d79ce89c21ba0b973bbda01bf53665e3b7a1902 100644
|
||||
--- a/net/minecraft/world/entity/animal/rabbit/Rabbit.java
|
||||
+++ b/net/minecraft/world/entity/animal/rabbit/Rabbit.java
|
||||
@@ -648,7 +648,7 @@ public class Rabbit extends Animal {
|
||||
@@ -696,7 +696,7 @@ public class Rabbit extends Animal {
|
||||
@Override
|
||||
public boolean canUse() {
|
||||
if (this.nextStartTick <= 0) {
|
||||
@@ -131,36 +131,36 @@ index 061418a25d359574c4ff44327082b08b4094ee1c..66fda64006c0a70ab4502f088637bb68
|
||||
}
|
||||
|
||||
diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
index 9a8da85462dd74eed8c158ea3343354a255d320d..ecfd9f7b56aee3b701821339f41b60bd7bef0e97 100644
|
||||
index 7e39604a02561880a10d4bcebcd76135f9c1a122..51ca6a3fa75f3aef715d786a21327452390dde94 100644
|
||||
--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
@@ -542,7 +542,7 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
BlockPos blockPos = new BlockPos(i, i1, i2);
|
||||
BlockState blockState = level.getBlockState(blockPos);
|
||||
if (!blockState.isAir() && !blockState.is(BlockTags.DRAGON_TRANSPARENT)) {
|
||||
- if (level.getGameRules().get(GameRules.MOB_GRIEFING) && !blockState.is(BlockTags.DRAGON_IMMUNE)) {
|
||||
+ if (level.getGameRules().get(GameRules.MOB_GRIEFING, level.purpurConfig.enderDragonMobGriefingOverride) && !blockState.is(BlockTags.DRAGON_IMMUNE)) { // Purpur - Add mobGriefing override to everything affected
|
||||
@@ -541,7 +541,7 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
BlockPos blockPos = new BlockPos(x, y, z);
|
||||
BlockState state = level.getBlockState(blockPos);
|
||||
if (!state.isAir() && !state.is(BlockTags.DRAGON_TRANSPARENT)) {
|
||||
- if (level.getGameRules().get(GameRules.MOB_GRIEFING) && !state.is(BlockTags.DRAGON_IMMUNE)) {
|
||||
+ if (level.getGameRules().get(GameRules.MOB_GRIEFING, level.purpurConfig.enderDragonMobGriefingOverride) && !state.is(BlockTags.DRAGON_IMMUNE)) { // Purpur - Add mobGriefing override to everything affected
|
||||
// CraftBukkit start - Add blocks to list rather than destroying them
|
||||
//flag1 = level.removeBlock(blockPos, false) || flag1;
|
||||
flag1 = true;
|
||||
destroyedBlock = true;
|
||||
diff --git a/net/minecraft/world/entity/boss/wither/WitherBoss.java b/net/minecraft/world/entity/boss/wither/WitherBoss.java
|
||||
index 1f777f69e37291c9367969f52aef11fe270541b7..df608186f3e9ab5b56a209be67cd02717d3f9734 100644
|
||||
index 141b64eb1f320d2bc773e99826fc97cc10f39bcd..3e934aee6f651843d861cc87cc1f01a87742edf3 100644
|
||||
--- a/net/minecraft/world/entity/boss/wither/WitherBoss.java
|
||||
+++ b/net/minecraft/world/entity/boss/wither/WitherBoss.java
|
||||
@@ -494,7 +494,7 @@ public class WitherBoss extends Monster implements RangedAttackMob {
|
||||
@@ -493,7 +493,7 @@ public class WitherBoss extends Monster implements RangedAttackMob {
|
||||
|
||||
if (this.destroyBlocksTick > 0) {
|
||||
this.destroyBlocksTick--;
|
||||
- if (this.destroyBlocksTick == 0 && level.getGameRules().get(GameRules.MOB_GRIEFING)) {
|
||||
+ if (this.destroyBlocksTick == 0 && level.getGameRules().get(GameRules.MOB_GRIEFING, level.purpurConfig.witherMobGriefingOverride)) { // Purpur - Add mobGriefing override to everything affected
|
||||
boolean flag = false;
|
||||
int alternativeTarget = Mth.floor(this.getBbWidth() / 2.0F + 1.0F);
|
||||
int floor = Mth.floor(this.getBbHeight());
|
||||
boolean destroyed = false;
|
||||
int width = Mth.floor(this.getBbWidth() / 2.0F + 1.0F);
|
||||
int height = Mth.floor(this.getBbHeight());
|
||||
diff --git a/net/minecraft/world/entity/monster/EnderMan.java b/net/minecraft/world/entity/monster/EnderMan.java
|
||||
index 29570047bfc78a8993b0bbd7168cb4fe318a6be6..79a1d8f67a22a8fa4a6c3b657e44bb9503687c27 100644
|
||||
index 30450300bdf9e4b5ef4293e9c371484ba6aabebc..46a60e17837411e46a543d6f0254d7280d30a94c 100644
|
||||
--- a/net/minecraft/world/entity/monster/EnderMan.java
|
||||
+++ b/net/minecraft/world/entity/monster/EnderMan.java
|
||||
@@ -509,7 +509,7 @@ public class EnderMan extends Monster implements NeutralMob {
|
||||
@@ -505,7 +505,7 @@ public class EnderMan extends Monster implements NeutralMob {
|
||||
public boolean canUse() {
|
||||
if (!enderman.level().purpurConfig.endermanAllowGriefing) return false; // Purpur - Add enderman and creeper griefing controls
|
||||
return this.enderman.getCarriedBlock() != null
|
||||
@@ -169,7 +169,7 @@ index 29570047bfc78a8993b0bbd7168cb4fe318a6be6..79a1d8f67a22a8fa4a6c3b657e44bb95
|
||||
&& this.enderman.getRandom().nextInt(reducedTickDelay(2000)) == 0;
|
||||
}
|
||||
|
||||
@@ -658,7 +658,7 @@ public class EnderMan extends Monster implements NeutralMob {
|
||||
@@ -649,7 +649,7 @@ public class EnderMan extends Monster implements NeutralMob {
|
||||
public boolean canUse() {
|
||||
if (!enderman.level().purpurConfig.endermanAllowGriefing) return false; // Purpur - Add enderman and creeper griefing controls
|
||||
return this.enderman.getCarriedBlock() == null
|
||||
@@ -179,20 +179,20 @@ index 29570047bfc78a8993b0bbd7168cb4fe318a6be6..79a1d8f67a22a8fa4a6c3b657e44bb95
|
||||
}
|
||||
|
||||
diff --git a/net/minecraft/world/entity/monster/Ravager.java b/net/minecraft/world/entity/monster/Ravager.java
|
||||
index 86c55955ff6c0a411cde34999c7bd6ad07be5d4e..7c69423eee05992b9c70321d528cc9d73b3e63ea 100644
|
||||
index 878fee0c45a34c334d30239711231f2ef990e926..e0ffded3500b221d5c65cff9377120e8c6c7d8c6 100644
|
||||
--- a/net/minecraft/world/entity/monster/Ravager.java
|
||||
+++ b/net/minecraft/world/entity/monster/Ravager.java
|
||||
@@ -179,7 +179,7 @@ public class Ravager extends Raider {
|
||||
this.getAttribute(Attributes.MOVEMENT_SPEED).setBaseValue(Mth.lerp(0.1, baseValue, d));
|
||||
@@ -177,7 +177,7 @@ public class Ravager extends Raider {
|
||||
this.getAttribute(Attributes.MOVEMENT_SPEED).setBaseValue(Mth.lerp(0.1, baseValue, maxSpeed));
|
||||
}
|
||||
|
||||
- if (this.level() instanceof ServerLevel serverLevel && this.horizontalCollision && serverLevel.getGameRules().get(GameRules.MOB_GRIEFING)) {
|
||||
+ if (this.level() instanceof ServerLevel serverLevel && this.horizontalCollision && serverLevel.getGameRules().get(GameRules.MOB_GRIEFING, serverLevel.purpurConfig.ravagerMobGriefingOverride)) { // Purpur - Add mobGriefing override to everything affected
|
||||
boolean flag = false;
|
||||
AABB aabb = this.getBoundingBox().inflate(0.2);
|
||||
boolean destroyedBlock = false;
|
||||
AABB bb = this.getBoundingBox().inflate(0.2);
|
||||
|
||||
diff --git a/net/minecraft/world/entity/monster/Silverfish.java b/net/minecraft/world/entity/monster/Silverfish.java
|
||||
index 6f708c041679c0926282241c637162b141d06f64..7f94e9749283f1e51b449b0ef84ca08e246a1cc9 100644
|
||||
index 355475b12c6f3fcc9fe88ca63ab88cabac9d6fb1..e5a0a199685366f082904eb5e7550f0160f9c706 100644
|
||||
--- a/net/minecraft/world/entity/monster/Silverfish.java
|
||||
+++ b/net/minecraft/world/entity/monster/Silverfish.java
|
||||
@@ -168,7 +168,7 @@ public class Silverfish extends Monster {
|
||||
@@ -202,90 +202,90 @@ index 6f708c041679c0926282241c637162b141d06f64..7f94e9749283f1e51b449b0ef84ca08e
|
||||
- if (getServerLevel(this.mob).getGameRules().get(GameRules.MOB_GRIEFING) && random.nextInt(reducedTickDelay(10)) == 0) {
|
||||
+ if (getServerLevel(this.mob).getGameRules().get(GameRules.MOB_GRIEFING, getServerLevel(this.mob).purpurConfig.silverfishMobGriefingOverride) && random.nextInt(reducedTickDelay(10)) == 0) { // Purpur - Add mobGriefing override to everything affected
|
||||
this.selectedDirection = Direction.getRandom(random);
|
||||
BlockPos blockPos = BlockPos.containing(this.mob.getX(), this.mob.getY() + 0.5, this.mob.getZ()).relative(this.selectedDirection);
|
||||
BlockState blockState = this.mob.level().getBlockState(blockPos);
|
||||
BlockPos pos = BlockPos.containing(this.mob.getX(), this.mob.getY() + 0.5, this.mob.getZ()).relative(this.selectedDirection);
|
||||
BlockState blockState = this.mob.level().getBlockState(pos);
|
||||
@@ -245,7 +245,7 @@ public class Silverfish extends Monster {
|
||||
Block block = blockState.getBlock();
|
||||
if (block instanceof InfestedBlock) {
|
||||
// CraftBukkit start
|
||||
- BlockState afterState = getServerLevel(level).getGameRules().get(GameRules.MOB_GRIEFING) ? blockState.getFluidState().createLegacyBlock() : ((InfestedBlock) block).hostStateByInfested(level.getBlockState(blockPos1)); // Paper - fix wrong block state
|
||||
+ BlockState afterState = getServerLevel(level).getGameRules().get(GameRules.MOB_GRIEFING, getServerLevel(level).purpurConfig.silverfishMobGriefingOverride) ? blockState.getFluidState().createLegacyBlock() : ((InfestedBlock) block).hostStateByInfested(level.getBlockState(blockPos1)); // Paper - fix wrong block state // Purpur - Add mobGriefing override to everything affected
|
||||
if (!org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(this.silverfish, blockPos1, afterState)) { // Paper - fix wrong block state
|
||||
- BlockState afterState = getServerLevel(level).getGameRules().get(GameRules.MOB_GRIEFING) ? blockState.getFluidState().createLegacyBlock() : ((InfestedBlock) block).hostStateByInfested(level.getBlockState(testPos)); // Paper - fix wrong block state
|
||||
+ BlockState afterState = getServerLevel(level).getGameRules().get(GameRules.MOB_GRIEFING, getServerLevel(level).purpurConfig.silverfishMobGriefingOverride) ? blockState.getFluidState().createLegacyBlock() : ((InfestedBlock) block).hostStateByInfested(level.getBlockState(testPos)); // Paper - fix wrong block state // Purpur - Add mobGriefing override to everything affected
|
||||
if (!org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(this.silverfish, testPos, afterState)) { // Paper - fix wrong block state
|
||||
continue;
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/monster/illager/Evoker.java b/net/minecraft/world/entity/monster/illager/Evoker.java
|
||||
index 46f79ed345ec51125364b49b244d6d005a3e64ae..334786b2c358c41058f2ac4b1fa4b185833cbd84 100644
|
||||
index 4de0c340b1fb8baa9ed379ea010ca6d314530268..d091a12ed1df31f945a04f50af1cbb89a16ca0cd 100644
|
||||
--- a/net/minecraft/world/entity/monster/illager/Evoker.java
|
||||
+++ b/net/minecraft/world/entity/monster/illager/Evoker.java
|
||||
@@ -306,7 +306,7 @@ public class Evoker extends SpellcasterIllager {
|
||||
@@ -334,7 +334,7 @@ public class Evoker extends SpellcasterIllager {
|
||||
return false;
|
||||
} else {
|
||||
ServerLevel serverLevel = getServerLevel(Evoker.this.level());
|
||||
- if (!serverLevel.getGameRules().get(GameRules.MOB_GRIEFING)) {
|
||||
+ if (!serverLevel.getGameRules().get(GameRules.MOB_GRIEFING, serverLevel.purpurConfig.evokerMobGriefingOverride)) { // Purpur - Add mobGriefing override to everything affected
|
||||
ServerLevel level = getServerLevel(Evoker.this.level());
|
||||
- if (!level.getGameRules().get(GameRules.MOB_GRIEFING)) {
|
||||
+ if (!level.getGameRules().get(GameRules.MOB_GRIEFING, level.purpurConfig.evokerMobGriefingOverride)) { // Purpur - Add mobGriefing override to everything affected
|
||||
return false;
|
||||
} else {
|
||||
List<Sheep> nearbyEntities = serverLevel.getNearbyEntities(
|
||||
List<Sheep> entities = level.getNearbyEntities(
|
||||
diff --git a/net/minecraft/world/entity/monster/piglin/Piglin.java b/net/minecraft/world/entity/monster/piglin/Piglin.java
|
||||
index 98241af88cc961470e07df47d128d8912338bd44..4fccd122a227e5fe80965c37afaa031c4a673978 100644
|
||||
index 0d0a86b5c485a60d0e85b3acc6f0cc01ce6c0bfe..356fc7507b58cc38cdf5ee11618ad3551fb3c6a2 100644
|
||||
--- a/net/minecraft/world/entity/monster/piglin/Piglin.java
|
||||
+++ b/net/minecraft/world/entity/monster/piglin/Piglin.java
|
||||
@@ -448,7 +448,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
|
||||
@@ -416,7 +416,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
|
||||
|
||||
@Override
|
||||
public boolean wantsToPickUp(ServerLevel level, ItemStack stack) {
|
||||
- return level.getGameRules().get(GameRules.MOB_GRIEFING) && this.canPickUpLoot() && PiglinAi.wantsToPickup(this, stack);
|
||||
+ return level.getGameRules().get(GameRules.MOB_GRIEFING, level.purpurConfig.piglinMobGriefingOverride) && this.canPickUpLoot() && PiglinAi.wantsToPickup(this, stack); // Purpur - Add mobGriefing override to everything affected
|
||||
public boolean wantsToPickUp(final ServerLevel level, final ItemStack itemStack) {
|
||||
- return level.getGameRules().get(GameRules.MOB_GRIEFING) && this.canPickUpLoot() && PiglinAi.wantsToPickup(this, itemStack);
|
||||
+ return level.getGameRules().get(GameRules.MOB_GRIEFING, level.purpurConfig.piglinMobGriefingOverride) && this.canPickUpLoot() && PiglinAi.wantsToPickup(this, itemStack); // Purpur - Add mobGriefing override to everything affected
|
||||
}
|
||||
|
||||
protected boolean canReplaceCurrentItem(ItemStack candidate) {
|
||||
protected boolean canReplaceCurrentItem(final ItemStack newItemStack) {
|
||||
diff --git a/net/minecraft/world/entity/projectile/Projectile.java b/net/minecraft/world/entity/projectile/Projectile.java
|
||||
index 6298e6de25f1dd9ff880a9ad2882dc7ccb2f100c..36479ed544ce812113c9a9c982a74a950cb9b26a 100644
|
||||
index 289fe996f5663f82c488d1c861389b83da787ff9..34df1e7ec42ecfb9ec4ef87e9f6a619298668d35 100644
|
||||
--- a/net/minecraft/world/entity/projectile/Projectile.java
|
||||
+++ b/net/minecraft/world/entity/projectile/Projectile.java
|
||||
@@ -434,7 +434,7 @@ public abstract class Projectile extends Entity implements TraceableEntity {
|
||||
@@ -473,7 +473,7 @@ public abstract class Projectile extends Entity implements TraceableEntity {
|
||||
@Override
|
||||
public boolean mayInteract(ServerLevel level, BlockPos pos) {
|
||||
public boolean mayInteract(final ServerLevel level, final BlockPos pos) {
|
||||
Entity owner = this.getOwner();
|
||||
- return owner instanceof Player ? owner.mayInteract(level, pos) : owner == null || level.getGameRules().get(GameRules.MOB_GRIEFING);
|
||||
+ return owner instanceof Player ? owner.mayInteract(level, pos) : owner == null || level.getGameRules().get(GameRules.MOB_GRIEFING, level.purpurConfig.projectilesMobGriefingOverride); // Purpur - Add mobGriefing override to everything affected
|
||||
}
|
||||
|
||||
public boolean mayBreak(ServerLevel level) {
|
||||
public boolean mayBreak(final ServerLevel level) {
|
||||
diff --git a/net/minecraft/world/entity/projectile/hurtingprojectile/LargeFireball.java b/net/minecraft/world/entity/projectile/hurtingprojectile/LargeFireball.java
|
||||
index de0f086da9fe4afa14d2b77f6b0a2c0910745b94..775aa79a0d503217dbe42268f4feccbc2d3e1edb 100644
|
||||
index 711b97aa9e49b7edee34c91d77b1005be4fa96bd..bcda871c7db7a13f85e04e8fb91be13da15992bc 100644
|
||||
--- a/net/minecraft/world/entity/projectile/hurtingprojectile/LargeFireball.java
|
||||
+++ b/net/minecraft/world/entity/projectile/hurtingprojectile/LargeFireball.java
|
||||
@@ -20,20 +20,20 @@ public class LargeFireball extends Fireball {
|
||||
|
||||
public LargeFireball(EntityType<? extends LargeFireball> type, Level level) {
|
||||
public LargeFireball(final EntityType<? extends LargeFireball> type, final Level level) {
|
||||
super(type, level);
|
||||
- this.isIncendiary = (level instanceof ServerLevel serverLevel) && serverLevel.getGameRules().get(GameRules.MOB_GRIEFING); // CraftBukkit
|
||||
+ this.isIncendiary = (level instanceof ServerLevel serverLevel) && serverLevel.getGameRules().get(GameRules.MOB_GRIEFING, serverLevel.purpurConfig.fireballsMobGriefingOverride); // CraftBukkit // Purpur - Add mobGriefing override to everything affected
|
||||
}
|
||||
|
||||
public LargeFireball(Level level, LivingEntity owner, Vec3 movement, int explosionPower) {
|
||||
super(EntityType.FIREBALL, owner, movement, level);
|
||||
public LargeFireball(final Level level, final LivingEntity mob, final Vec3 direction, final int explosionPower) {
|
||||
super(EntityType.FIREBALL, mob, direction, level);
|
||||
this.explosionPower = explosionPower;
|
||||
- this.isIncendiary = (level instanceof ServerLevel serverLevel) && serverLevel.getGameRules().get(GameRules.MOB_GRIEFING); // CraftBukkit
|
||||
+ this.isIncendiary = (level instanceof ServerLevel serverLevel) && serverLevel.getGameRules().get(GameRules.MOB_GRIEFING, serverLevel.purpurConfig.fireballsMobGriefingOverride); // CraftBukkit // Purpur - Add mobGriefing override to everything affected
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onHit(HitResult result) {
|
||||
super.onHit(result);
|
||||
protected void onHit(final HitResult hitResult) {
|
||||
super.onHit(hitResult);
|
||||
if (this.level() instanceof ServerLevel serverLevel) {
|
||||
- // boolean flag = serverLevel.getGameRules().get(GameRules.MOB_GRIEFING); // CraftBukkit - baked into fields (see constructor)
|
||||
+ // boolean flag = serverLevel.getGameRules().get(GameRules.MOB_GRIEFING, serverLevel.purpurConfig.fireballsMobGriefingOverride); // CraftBukkit - baked into fields (see constructor) // Purpur - Add mobGriefing override to everything affected
|
||||
- // boolean grief = serverLevel.getGameRules().get(GameRules.MOB_GRIEFING); // CraftBukkit - baked into fields (see constructor)
|
||||
+ // boolean grief = serverLevel.getGameRules().get(GameRules.MOB_GRIEFING, serverLevel.purpurConfig.fireballsMobGriefingOverride); // CraftBukkit - baked into fields (see constructor) // Purpur - Add mobGriefing override to everything affected
|
||||
// CraftBukkit start - fire ExplosionPrimeEvent
|
||||
org.bukkit.event.entity.ExplosionPrimeEvent event = new org.bukkit.event.entity.ExplosionPrimeEvent((org.bukkit.entity.Explosive) this.getBukkitEntity());
|
||||
if (event.callEvent()) {
|
||||
diff --git a/net/minecraft/world/entity/projectile/hurtingprojectile/SmallFireball.java b/net/minecraft/world/entity/projectile/hurtingprojectile/SmallFireball.java
|
||||
index 043ddaa0e8718f50881d16892eab188aed70f67f..a10617c29098f28c5b5586a43071a47ef17e5744 100644
|
||||
index 55000ce5010321323bf79007ef8de637a492657f..b7f5f434b8b3abbaab7f65fc591ddf18308b5a2f 100644
|
||||
--- a/net/minecraft/world/entity/projectile/hurtingprojectile/SmallFireball.java
|
||||
+++ b/net/minecraft/world/entity/projectile/hurtingprojectile/SmallFireball.java
|
||||
@@ -25,7 +25,7 @@ public class SmallFireball extends Fireball {
|
||||
super(EntityType.SMALL_FIREBALL, owner, movement, level);
|
||||
super(EntityType.SMALL_FIREBALL, mob, direction, level);
|
||||
// CraftBukkit start
|
||||
if (this.getOwner() != null && this.getOwner() instanceof Mob) {
|
||||
- this.isIncendiary = (level instanceof ServerLevel serverLevel) && serverLevel.getGameRules().get(GameRules.MOB_GRIEFING);
|
||||
@@ -294,10 +294,10 @@ index 043ddaa0e8718f50881d16892eab188aed70f67f..a10617c29098f28c5b5586a43071a47e
|
||||
// CraftBukkit end
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/raid/Raider.java b/net/minecraft/world/entity/raid/Raider.java
|
||||
index ab94809c5cedc8ea7db6db45394bc9c65516da63..40984af1fc912a7b0367c530c68ee00d51173b64 100644
|
||||
index d09855134cef0651258db34ea29c443388fd5183..d0a9088a18e6717209f037ae48ce54db13702234 100644
|
||||
--- a/net/minecraft/world/entity/raid/Raider.java
|
||||
+++ b/net/minecraft/world/entity/raid/Raider.java
|
||||
@@ -396,7 +396,7 @@ public abstract class Raider extends PatrollingMonster {
|
||||
@@ -399,7 +399,7 @@ public abstract class Raider extends PatrollingMonster {
|
||||
}
|
||||
|
||||
private boolean cannotPickUpBanner() {
|
||||
@@ -307,49 +307,49 @@ index ab94809c5cedc8ea7db6db45394bc9c65516da63..40984af1fc912a7b0367c530c68ee00d
|
||||
return true;
|
||||
} else if (this.mob.getCurrentRaid().isOver()) {
|
||||
diff --git a/net/minecraft/world/level/block/CropBlock.java b/net/minecraft/world/level/block/CropBlock.java
|
||||
index 3983a5fa08f748ed26caa1d16e194676baa8028e..372559399ce8a4ce551f4403975879e365e1ad75 100644
|
||||
index a47e5e38ef5c13da3827174121c1ec4b9ffbbce2..0dfb632b339b24564744b1f5c0d52d7fed66d265 100644
|
||||
--- a/net/minecraft/world/level/block/CropBlock.java
|
||||
+++ b/net/minecraft/world/level/block/CropBlock.java
|
||||
@@ -169,7 +169,7 @@ public class CropBlock extends VegetationBlock implements BonemealableBlock {
|
||||
@Override
|
||||
protected void entityInside(BlockState state, Level level, BlockPos pos, Entity entity, InsideBlockEffectApplier effectApplier, boolean pastEdges) {
|
||||
@@ -177,7 +177,7 @@ public class CropBlock extends VegetationBlock implements BonemealableBlock {
|
||||
final boolean isPrecise
|
||||
) {
|
||||
if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(level, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent
|
||||
- if (level instanceof ServerLevel serverLevel && entity instanceof Ravager && serverLevel.purpurConfig.ravagerGriefableBlocks.contains(serverLevel.getBlockState(pos).getBlock()) && org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.AIR.defaultBlockState(), !serverLevel.getGameRules().get(GameRules.MOB_GRIEFING))) { // CraftBukkit // Purpur - Configurable ravager griefable blocks list
|
||||
+ if (level instanceof ServerLevel serverLevel && entity instanceof Ravager && serverLevel.purpurConfig.ravagerGriefableBlocks.contains(serverLevel.getBlockState(pos).getBlock()) && org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.AIR.defaultBlockState(), !serverLevel.getGameRules().get(GameRules.MOB_GRIEFING, serverLevel.purpurConfig.ravagerMobGriefingOverride))) { // CraftBukkit // Purpur - Configurable ravager griefable blocks list // Purpur - Add mobGriefing override to everything affected
|
||||
serverLevel.destroyBlock(pos, true, entity);
|
||||
}
|
||||
|
||||
diff --git a/net/minecraft/world/level/block/FarmBlock.java b/net/minecraft/world/level/block/FarmBlock.java
|
||||
index 75b38812b538e0938bbbde62427fa9fd23d372a1..7ec5ef85dbface0ff194a7112d0c4b8e25cab6fe 100644
|
||||
--- a/net/minecraft/world/level/block/FarmBlock.java
|
||||
+++ b/net/minecraft/world/level/block/FarmBlock.java
|
||||
@@ -114,7 +114,7 @@ public class FarmBlock extends Block {
|
||||
diff --git a/net/minecraft/world/level/block/FarmlandBlock.java b/net/minecraft/world/level/block/FarmlandBlock.java
|
||||
index 8bc58baa1542443235b57633d1e563f3487a2421..b51bb36da00bdfd25724579c0a4fb572abeefd81 100644
|
||||
--- a/net/minecraft/world/level/block/FarmlandBlock.java
|
||||
+++ b/net/minecraft/world/level/block/FarmlandBlock.java
|
||||
@@ -113,7 +113,7 @@ public class FarmlandBlock extends Block {
|
||||
if (level instanceof ServerLevel serverLevel
|
||||
&& (serverLevel.purpurConfig.farmlandTrampleHeight >= 0D ? fallDistance >= serverLevel.purpurConfig.farmlandTrampleHeight : level.random.nextFloat() < fallDistance - 0.5) // Purpur - Configurable farmland trample height
|
||||
&& (serverLevel.purpurConfig.farmlandTrampleHeight >= 0D ? fallDistance >= serverLevel.purpurConfig.farmlandTrampleHeight : level.getRandom().nextFloat() < fallDistance - 0.5) // Purpur - Configurable farmland trample height
|
||||
&& entity instanceof LivingEntity
|
||||
- && (entity instanceof Player || serverLevel.getGameRules().get(GameRules.MOB_GRIEFING))
|
||||
+ && (entity instanceof Player || serverLevel.getGameRules().get(GameRules.MOB_GRIEFING, serverLevel.purpurConfig.farmlandMobGriefingOverride)) // Purpur - Add mobGriefing override to everything affected
|
||||
&& entity.getBbWidth() * entity.getBbWidth() * entity.getBbHeight() > 0.512F) {
|
||||
// CraftBukkit start - Interact soil
|
||||
org.bukkit.event.Cancellable cancellable;
|
||||
// CraftBukkit start - Interact soil
|
||||
org.bukkit.event.Cancellable cancellable;
|
||||
diff --git a/net/minecraft/world/level/block/PowderSnowBlock.java b/net/minecraft/world/level/block/PowderSnowBlock.java
|
||||
index f3a9117bd066861a1b447e8a13108ad212cc499f..b0165c839b145e82af38fe8f61bbd0161015d867 100644
|
||||
index 648262547aadff8e0615a93a9834ca654e581b3a..022daf760a649720c46e6e31591f2c1ad8a8f3ea 100644
|
||||
--- a/net/minecraft/world/level/block/PowderSnowBlock.java
|
||||
+++ b/net/minecraft/world/level/block/PowderSnowBlock.java
|
||||
@@ -96,7 +96,7 @@ public class PowderSnowBlock extends Block implements BucketPickup {
|
||||
@@ -103,7 +103,7 @@ public class PowderSnowBlock extends Block implements BucketPickup {
|
||||
// CraftBukkit - move down
|
||||
&& entity1.mayInteract(serverLevel, blockPos)) {
|
||||
&& e.mayInteract(serverLevel, position)) {
|
||||
// CraftBukkit start
|
||||
- if (!org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(entity1, pos, Blocks.AIR.defaultBlockState(), !(serverLevel.getGameRules().get(GameRules.MOB_GRIEFING) || entity1 instanceof Player))) {
|
||||
+ if (!org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(entity1, pos, Blocks.AIR.defaultBlockState(), !(serverLevel.getGameRules().get(GameRules.MOB_GRIEFING, serverLevel.purpurConfig.powderSnowMobGriefingOverride) || entity1 instanceof Player))) { // Purpur - Add mobGriefing override to everything affected
|
||||
- if (!org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(e, pos, Blocks.AIR.defaultBlockState(), !(serverLevel.getGameRules().get(GameRules.MOB_GRIEFING) || e instanceof Player))) {
|
||||
+ if (!org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(e, pos, Blocks.AIR.defaultBlockState(), !(serverLevel.getGameRules().get(GameRules.MOB_GRIEFING, serverLevel.purpurConfig.powderSnowMobGriefingOverride) || e instanceof Player))) { // Purpur - Add mobGriefing override to everything affected
|
||||
return;
|
||||
}
|
||||
// CraftBukkit end
|
||||
diff --git a/net/minecraft/world/level/block/TurtleEggBlock.java b/net/minecraft/world/level/block/TurtleEggBlock.java
|
||||
index 912c36c2e814cf763b4fa01d149979be9ef460de..733c6ed0ce655d9ff9e03fc1a87131aa8e72eca0 100644
|
||||
index 9293faf988be7013dbeddc9f98beb69a2dac9928..4f1e08c0e3f8ea89a55e02e8f0197fe4336ae0e2 100644
|
||||
--- a/net/minecraft/world/level/block/TurtleEggBlock.java
|
||||
+++ b/net/minecraft/world/level/block/TurtleEggBlock.java
|
||||
@@ -214,7 +214,7 @@ public class TurtleEggBlock extends Block {
|
||||
@@ -221,7 +221,7 @@ public class TurtleEggBlock extends Block {
|
||||
// Purpur end - Option to disable turtle egg trampling with feather falling
|
||||
if (entity instanceof Player) return true;
|
||||
|
||||
@@ -359,10 +359,10 @@ index 912c36c2e814cf763b4fa01d149979be9ef460de..733c6ed0ce655d9ff9e03fc1a87131aa
|
||||
}
|
||||
}
|
||||
diff --git a/net/minecraft/world/level/gamerules/GameRules.java b/net/minecraft/world/level/gamerules/GameRules.java
|
||||
index e71a9ffdb6c081baa79113f34b179671c179152d..746bc21fc09644366caa8bfd309f596c3cac59ec 100644
|
||||
index 0d0a4008a84defbf1ea962b4e2f73776878956ec..e2fc5dc10c6ab84cb28e2adff2f87c24c8801309 100644
|
||||
--- a/net/minecraft/world/level/gamerules/GameRules.java
|
||||
+++ b/net/minecraft/world/level/gamerules/GameRules.java
|
||||
@@ -113,6 +113,13 @@ public class GameRules {
|
||||
@@ -128,6 +128,13 @@ public class GameRules {
|
||||
return this.rules.keySet().stream();
|
||||
}
|
||||
|
||||
@@ -373,6 +373,6 @@ index e71a9ffdb6c081baa79113f34b179671c179152d..746bc21fc09644366caa8bfd309f596c
|
||||
+ return (Boolean) this.get(rule);
|
||||
+ }
|
||||
+
|
||||
public <T> T get(GameRule<T> rule) {
|
||||
T object = this.rules.get(rule);
|
||||
if (object == null) {
|
||||
public <T> T get(final GameRule<T> gameRule) {
|
||||
T value = this.rules.get(gameRule);
|
||||
if (value == null) {
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Toggle for water sensitive mob damage
|
||||
|
||||
|
||||
diff --git a/net/minecraft/world/entity/ambient/Bat.java b/net/minecraft/world/entity/ambient/Bat.java
|
||||
index a09b5035e91d50e12f613a7a1211c6869fbbf4df..e83900f8d6adbe8a48294f250bd6cc6e3fad8160 100644
|
||||
index f40892bbe424408e3d11c887d5bd0fef179aaced..15bb425ed1569cbf445e81aa296039df8abc4746 100644
|
||||
--- a/net/minecraft/world/entity/ambient/Bat.java
|
||||
+++ b/net/minecraft/world/entity/ambient/Bat.java
|
||||
@@ -109,6 +109,13 @@ public class Bat extends AmbientCreature {
|
||||
@@ -23,10 +23,10 @@ index a09b5035e91d50e12f613a7a1211c6869fbbf4df..e83900f8d6adbe8a48294f250bd6cc6e
|
||||
public boolean isFlapping() {
|
||||
return !this.isResting() && this.tickCount % 10.0F == 0.0F;
|
||||
diff --git a/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/net/minecraft/world/entity/animal/axolotl/Axolotl.java
|
||||
index 79dfebbd72424d5a3a13d4ba89a555fdf782e703..947160c4dfc4e50bb75a1a797cb2f22602b22643 100644
|
||||
index d4178d85b74a41a0d2808681008f1686578db98d..a3a98df8ffeb33d86330b5561252eda596642da8 100644
|
||||
--- a/net/minecraft/world/entity/animal/axolotl/Axolotl.java
|
||||
+++ b/net/minecraft/world/entity/animal/axolotl/Axolotl.java
|
||||
@@ -153,6 +153,13 @@ public class Axolotl extends Animal implements Bucketable {
|
||||
@@ -150,6 +150,13 @@ public class Axolotl extends Animal implements Bucketable {
|
||||
}
|
||||
// Purpur end - Make entity breeding times configurable
|
||||
|
||||
@@ -38,22 +38,22 @@ index 79dfebbd72424d5a3a13d4ba89a555fdf782e703..947160c4dfc4e50bb75a1a797cb2f226
|
||||
+ // Purpur end - Toggle for water sensitive mob damage
|
||||
+
|
||||
@Override
|
||||
public float getWalkTargetValue(BlockPos pos, LevelReader level) {
|
||||
public float getWalkTargetValue(final BlockPos pos, final LevelReader level) {
|
||||
return 0.0F;
|
||||
diff --git a/net/minecraft/world/entity/animal/bee/Bee.java b/net/minecraft/world/entity/animal/bee/Bee.java
|
||||
index 473aa29e3075fcab44a14c2bc14d3f222b55cbad..e57200d6560a38cbecd681a30b75409412fce170 100644
|
||||
index 36c5c555faa9a29ec742c97ea8a6fcf720e6d9a1..4fba5ce59065ac024a0108726623dab894ae45c5 100644
|
||||
--- a/net/minecraft/world/entity/animal/bee/Bee.java
|
||||
+++ b/net/minecraft/world/entity/animal/bee/Bee.java
|
||||
@@ -185,7 +185,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
|
||||
@@ -186,7 +186,7 @@ public class Bee extends Animal implements FlyingAnimal, NeutralMob {
|
||||
// Paper end - Fix MC-167279
|
||||
this.lookControl = new Bee.BeeLookControl(this);
|
||||
this.setPathfindingMalus(PathType.DANGER_FIRE, -1.0F);
|
||||
this.setPathfindingMalus(PathType.FIRE_IN_NEIGHBOR, -1.0F);
|
||||
- if (this.level().purpurConfig.beeCanInstantlyStartDrowning) this.setPathfindingMalus(PathType.WATER, -1.0F); // Purpur - bee can instantly start drowning in water option
|
||||
+ if (this.level().purpurConfig.beeCanInstantlyStartDrowning || isSensitiveToWater()) this.setPathfindingMalus(PathType.WATER, -1.0F); // Purpur - bee can instantly start drowning in water option // Purpur - Toggle for water sensitive mob damage
|
||||
this.setPathfindingMalus(PathType.WATER_BORDER, 16.0F);
|
||||
this.setPathfindingMalus(PathType.COCOA, -1.0F);
|
||||
this.setPathfindingMalus(PathType.FENCE, -1.0F);
|
||||
@@ -492,6 +492,13 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
|
||||
@@ -495,6 +495,13 @@ public class Bee extends Animal implements FlyingAnimal, NeutralMob {
|
||||
}
|
||||
// Purpur end - Make entity breeding times configurable
|
||||
|
||||
@@ -68,10 +68,10 @@ index 473aa29e3075fcab44a14c2bc14d3f222b55cbad..e57200d6560a38cbecd681a30b754094
|
||||
public long getPersistentAngerEndTime() {
|
||||
return this.entityData.get(DATA_ANGER_END_TIME);
|
||||
diff --git a/net/minecraft/world/entity/animal/chicken/Chicken.java b/net/minecraft/world/entity/animal/chicken/Chicken.java
|
||||
index 029fe4ac952d9f56824de346d98b341bd0b9b65f..6308bb606b34d781e315f56a55e6544b3c156d85 100644
|
||||
index ccf7c4630e08d9be54a4634c642a4cd1cd542a82..4a59e133fc6c68f3b3d495c62bb965718643f6b8 100644
|
||||
--- a/net/minecraft/world/entity/animal/chicken/Chicken.java
|
||||
+++ b/net/minecraft/world/entity/animal/chicken/Chicken.java
|
||||
@@ -110,6 +110,13 @@ public class Chicken extends Animal {
|
||||
@@ -113,6 +113,13 @@ public class Chicken extends Animal {
|
||||
}
|
||||
// Purpur end - Make entity breeding times configurable
|
||||
|
||||
@@ -86,10 +86,10 @@ index 029fe4ac952d9f56824de346d98b341bd0b9b65f..6308bb606b34d781e315f56a55e6544b
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new FloatGoal(this));
|
||||
diff --git a/net/minecraft/world/entity/animal/cow/Cow.java b/net/minecraft/world/entity/animal/cow/Cow.java
|
||||
index 400b0a0a99590e3590cb66724acdc5ba9170f2c4..bb8c75d20e6a1300d68ae75233962bdc26736c77 100644
|
||||
index 7981f60f10c44ab2459933cb15ee961103922364..7d3853d693a87e5225a16285631e0e2057685c1b 100644
|
||||
--- a/net/minecraft/world/entity/animal/cow/Cow.java
|
||||
+++ b/net/minecraft/world/entity/animal/cow/Cow.java
|
||||
@@ -61,6 +61,13 @@ public class Cow extends AbstractCow {
|
||||
@@ -66,6 +66,13 @@ public class Cow extends AbstractCow {
|
||||
}
|
||||
// Purpur end - Make entity breeding times configurable
|
||||
|
||||
@@ -101,10 +101,10 @@ index 400b0a0a99590e3590cb66724acdc5ba9170f2c4..bb8c75d20e6a1300d68ae75233962bdc
|
||||
+ // Purpur end - Toggle for water sensitive mob damage
|
||||
+
|
||||
@Override
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
protected void defineSynchedData(final SynchedEntityData.Builder entityData) {
|
||||
super.defineSynchedData(entityData);
|
||||
diff --git a/net/minecraft/world/entity/animal/cow/MushroomCow.java b/net/minecraft/world/entity/animal/cow/MushroomCow.java
|
||||
index e2aa027dc7a39fa8a8868a7d153e838113fcf97b..a8e6e703a51130066547724dd08bdfe5e11c99e5 100644
|
||||
index 68a4edef68c9db6b2b0716fc6283e2c7345d4cda..d3e5e12c4e3c168a3a15d611f8ae5845ee365080 100644
|
||||
--- a/net/minecraft/world/entity/animal/cow/MushroomCow.java
|
||||
+++ b/net/minecraft/world/entity/animal/cow/MushroomCow.java
|
||||
@@ -92,6 +92,13 @@ public class MushroomCow extends AbstractCow implements Shearable {
|
||||
@@ -119,13 +119,13 @@ index e2aa027dc7a39fa8a8868a7d153e838113fcf97b..a8e6e703a51130066547724dd08bdfe5
|
||||
+ // Purpur end - Toggle for water sensitive mob damage
|
||||
+
|
||||
@Override
|
||||
public float getWalkTargetValue(BlockPos pos, LevelReader level) {
|
||||
public float getWalkTargetValue(final BlockPos pos, final LevelReader level) {
|
||||
return level.getBlockState(pos.below()).is(Blocks.MYCELIUM) ? 10.0F : level.getPathfindingCostFromLightLevels(pos);
|
||||
diff --git a/net/minecraft/world/entity/animal/dolphin/Dolphin.java b/net/minecraft/world/entity/animal/dolphin/Dolphin.java
|
||||
index a5305e057d7f557bedca71962ebf19b0d7344abf..e3646a05c6cb973fad36297cc18cf48587a6f5cd 100644
|
||||
index 857bafb865b78d83716d2d5f491c0928ae6951ca..c372a2cc7ec9ac03629a73a45bfc58f77894d63b 100644
|
||||
--- a/net/minecraft/world/entity/animal/dolphin/Dolphin.java
|
||||
+++ b/net/minecraft/world/entity/animal/dolphin/Dolphin.java
|
||||
@@ -160,6 +160,13 @@ public class Dolphin extends AgeableWaterCreature {
|
||||
@@ -162,6 +162,13 @@ public class Dolphin extends AgeableWaterCreature {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -138,9 +138,9 @@ index a5305e057d7f557bedca71962ebf19b0d7344abf..e3646a05c6cb973fad36297cc18cf485
|
||||
+
|
||||
@Override
|
||||
public @Nullable SpawnGroupData finalizeSpawn(
|
||||
ServerLevelAccessor level, DifficultyInstance difficulty, EntitySpawnReason spawnReason, @Nullable SpawnGroupData spawnGroupData
|
||||
final ServerLevelAccessor level, final DifficultyInstance difficulty, final EntitySpawnReason spawnReason, final @Nullable SpawnGroupData groupData
|
||||
diff --git a/net/minecraft/world/entity/animal/equine/Donkey.java b/net/minecraft/world/entity/animal/equine/Donkey.java
|
||||
index d74a5cc2a43ef41fd00676bbd17fe4df9edb67ff..6cf6853c244b7589d2a57e7ae77933d4a1503ccd 100644
|
||||
index 8c3d3f0f24e6f5a9b8aa9bf58f3c8b679896017d..5e0846fcaccfab5edbeb90bc61c2360cecf7a0c4 100644
|
||||
--- a/net/minecraft/world/entity/animal/equine/Donkey.java
|
||||
+++ b/net/minecraft/world/entity/animal/equine/Donkey.java
|
||||
@@ -47,6 +47,13 @@ public class Donkey extends AbstractChestedHorse {
|
||||
@@ -158,10 +158,10 @@ index d74a5cc2a43ef41fd00676bbd17fe4df9edb67ff..6cf6853c244b7589d2a57e7ae77933d4
|
||||
public SoundEvent getAmbientSound() {
|
||||
return SoundEvents.DONKEY_AMBIENT;
|
||||
diff --git a/net/minecraft/world/entity/animal/equine/Horse.java b/net/minecraft/world/entity/animal/equine/Horse.java
|
||||
index ba9df659ed019f9e58991059fe99c1471bfc94d8..1c17ab94901ce1c6370670c06bf0801ee6b5b393 100644
|
||||
index dbb586058f38b6c4f81e2f6567b7ae8ebbaff5a2..64603ad973bdb697ca75642e8e42e7052efd4191 100644
|
||||
--- a/net/minecraft/world/entity/animal/equine/Horse.java
|
||||
+++ b/net/minecraft/world/entity/animal/equine/Horse.java
|
||||
@@ -81,6 +81,13 @@ public class Horse extends AbstractHorse {
|
||||
@@ -79,6 +79,13 @@ public class Horse extends AbstractHorse {
|
||||
}
|
||||
// Purpur end - Make entity breeding times configurable
|
||||
|
||||
@@ -173,13 +173,13 @@ index ba9df659ed019f9e58991059fe99c1471bfc94d8..1c17ab94901ce1c6370670c06bf0801e
|
||||
+ // Purpur end - Toggle for water sensitive mob damage
|
||||
+
|
||||
@Override
|
||||
protected void randomizeAttributes(RandomSource random) {
|
||||
protected void randomizeAttributes(final RandomSource random) {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(generateMaxHealth(random::nextInt));
|
||||
diff --git a/net/minecraft/world/entity/animal/equine/Llama.java b/net/minecraft/world/entity/animal/equine/Llama.java
|
||||
index 960e48f5ae63d8c86758d2573510bf481ca4bca0..eb2fc0e6d497241f1b4f3971155b10d14f5427f8 100644
|
||||
index b3c8ccbb3f79043427dcb6f383c4b02d35124689..e277a58a1c761198f59b987c95567b6e4d9c440b 100644
|
||||
--- a/net/minecraft/world/entity/animal/equine/Llama.java
|
||||
+++ b/net/minecraft/world/entity/animal/equine/Llama.java
|
||||
@@ -159,6 +159,13 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
|
||||
@@ -158,6 +158,13 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
|
||||
}
|
||||
// Purpur end - Make entity breeding times configurable
|
||||
|
||||
@@ -194,7 +194,7 @@ index 960e48f5ae63d8c86758d2573510bf481ca4bca0..eb2fc0e6d497241f1b4f3971155b10d1
|
||||
return false;
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/animal/equine/Mule.java b/net/minecraft/world/entity/animal/equine/Mule.java
|
||||
index 180a807026437e949e3f7c3d59864ea328f6f03f..9bafe3e204b3e4624a95b130552c8230c0835a30 100644
|
||||
index cf0f3c9d5f8ff348e6fb76db823da4cadce4fc5b..291176b409097d15c2afff7fe8deb17ba07dbc12 100644
|
||||
--- a/net/minecraft/world/entity/animal/equine/Mule.java
|
||||
+++ b/net/minecraft/world/entity/animal/equine/Mule.java
|
||||
@@ -46,6 +46,13 @@ public class Mule extends AbstractChestedHorse {
|
||||
@@ -212,7 +212,7 @@ index 180a807026437e949e3f7c3d59864ea328f6f03f..9bafe3e204b3e4624a95b130552c8230
|
||||
public SoundEvent getAmbientSound() {
|
||||
return SoundEvents.MULE_AMBIENT;
|
||||
diff --git a/net/minecraft/world/entity/animal/equine/SkeletonHorse.java b/net/minecraft/world/entity/animal/equine/SkeletonHorse.java
|
||||
index af0e326f5ff8fcb82353bac3143103928a6a08e6..3865937e4a56636cde44f7d8f16873ae16512323 100644
|
||||
index a4a878791be034140a50b901d5daf2533d299756..9365609fad67377ffe18e11c7959e0d92367852a 100644
|
||||
--- a/net/minecraft/world/entity/animal/equine/SkeletonHorse.java
|
||||
+++ b/net/minecraft/world/entity/animal/equine/SkeletonHorse.java
|
||||
@@ -74,6 +74,13 @@ public class SkeletonHorse extends AbstractHorse {
|
||||
@@ -230,7 +230,7 @@ index af0e326f5ff8fcb82353bac3143103928a6a08e6..3865937e4a56636cde44f7d8f16873ae
|
||||
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0).add(Attributes.MOVEMENT_SPEED, 0.2F);
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/animal/equine/TraderLlama.java b/net/minecraft/world/entity/animal/equine/TraderLlama.java
|
||||
index 65ac46335d642d5dd8c01623721257a4fd53441d..4c07cd57aa3518adb4bc9b1213cc572a5b81f935 100644
|
||||
index 7c41aecd2699725211babbac0350cb241f31ca41..a9fcf7827e6a6b061c2a861d1e59bca80117699b 100644
|
||||
--- a/net/minecraft/world/entity/animal/equine/TraderLlama.java
|
||||
+++ b/net/minecraft/world/entity/animal/equine/TraderLlama.java
|
||||
@@ -77,6 +77,13 @@ public class TraderLlama extends Llama {
|
||||
@@ -248,10 +248,10 @@ index 65ac46335d642d5dd8c01623721257a4fd53441d..4c07cd57aa3518adb4bc9b1213cc572a
|
||||
public boolean isTraderLlama() {
|
||||
return true;
|
||||
diff --git a/net/minecraft/world/entity/animal/equine/ZombieHorse.java b/net/minecraft/world/entity/animal/equine/ZombieHorse.java
|
||||
index fa2f18470123f98e336ab5c94bc791e9333356cb..b770d3118452b0b7a362b1f541bb602f4d3cbcec 100644
|
||||
index 4be11663154a870a21832ddba05764a897ce90bd..586151b916a5e21c36578aa04cab9d71994dcf43 100644
|
||||
--- a/net/minecraft/world/entity/animal/equine/ZombieHorse.java
|
||||
+++ b/net/minecraft/world/entity/animal/equine/ZombieHorse.java
|
||||
@@ -88,6 +88,13 @@ public class ZombieHorse extends AbstractHorse {
|
||||
@@ -85,6 +85,13 @@ public class ZombieHorse extends AbstractHorse {
|
||||
}
|
||||
// Purpur end - Make entity breeding times configurable
|
||||
|
||||
@@ -266,7 +266,7 @@ index fa2f18470123f98e336ab5c94bc791e9333356cb..b770d3118452b0b7a362b1f541bb602f
|
||||
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 25.0);
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/animal/feline/Cat.java b/net/minecraft/world/entity/animal/feline/Cat.java
|
||||
index d0aa698ef99cf3b1926018314b4067cc1cd8ac2a..92b67565485b2fade3e80fb4b944edfc12d9e0a2 100644
|
||||
index 5c235149eca10c216f0f8d6e645a439d7dbcfbc3..0493926c7918059d82bafd20fed0883bb331bd55 100644
|
||||
--- a/net/minecraft/world/entity/animal/feline/Cat.java
|
||||
+++ b/net/minecraft/world/entity/animal/feline/Cat.java
|
||||
@@ -135,6 +135,13 @@ public class Cat extends TamableAnimal {
|
||||
@@ -282,9 +282,9 @@ index d0aa698ef99cf3b1926018314b4067cc1cd8ac2a..92b67565485b2fade3e80fb4b944edfc
|
||||
+
|
||||
@Override
|
||||
protected void registerGoals() {
|
||||
this.temptGoal = new Cat.CatTemptGoal(this, 0.6, stack -> stack.is(ItemTags.CAT_FOOD), true);
|
||||
this.temptGoal = new Cat.CatTemptGoal(this, 0.6, i -> i.is(ItemTags.CAT_FOOD), true);
|
||||
diff --git a/net/minecraft/world/entity/animal/feline/Ocelot.java b/net/minecraft/world/entity/animal/feline/Ocelot.java
|
||||
index bf281fd4c050b87fd277ab68e812ab2dcd3d06aa..13272516003f763d2c69dc599c8ff7696bec718b 100644
|
||||
index 2accf49e8dd907c8a482e5317d07b28fc5492a1e..9a582b789d3b3037c510c063a07f99f92ac58a1c 100644
|
||||
--- a/net/minecraft/world/entity/animal/feline/Ocelot.java
|
||||
+++ b/net/minecraft/world/entity/animal/feline/Ocelot.java
|
||||
@@ -98,6 +98,13 @@ public class Ocelot extends Animal {
|
||||
@@ -302,7 +302,7 @@ index bf281fd4c050b87fd277ab68e812ab2dcd3d06aa..13272516003f763d2c69dc599c8ff769
|
||||
return this.entityData.get(DATA_TRUSTING);
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/animal/fish/Cod.java b/net/minecraft/world/entity/animal/fish/Cod.java
|
||||
index e00e623d7df9e179d8bb5ee4812538578c5f4c08..8655aae805f239cbd049065232293854b18c73cf 100644
|
||||
index 948d6a8e3465fd5985e91ca7eaa5f02258ad9625..f44214eaa47c2021f7ca9c84a7b89be15fecb5bc 100644
|
||||
--- a/net/minecraft/world/entity/animal/fish/Cod.java
|
||||
+++ b/net/minecraft/world/entity/animal/fish/Cod.java
|
||||
@@ -32,6 +32,13 @@ public class Cod extends AbstractSchoolingFish {
|
||||
@@ -320,7 +320,7 @@ index e00e623d7df9e179d8bb5ee4812538578c5f4c08..8655aae805f239cbd049065232293854
|
||||
public ItemStack getBucketItemStack() {
|
||||
return new ItemStack(Items.COD_BUCKET);
|
||||
diff --git a/net/minecraft/world/entity/animal/fish/Pufferfish.java b/net/minecraft/world/entity/animal/fish/Pufferfish.java
|
||||
index 8bd92b3a28ffe70cb9753050c2128c2e744fb1ee..414d79f9d1fbd9857c8baeb2888017d45f34f02b 100644
|
||||
index 3ed54f746305a284177b609f410e2b7e9a6e6796..17dba2f70251c2d5f75cc116b300f328f117cecb 100644
|
||||
--- a/net/minecraft/world/entity/animal/fish/Pufferfish.java
|
||||
+++ b/net/minecraft/world/entity/animal/fish/Pufferfish.java
|
||||
@@ -66,6 +66,13 @@ public class Pufferfish extends AbstractFish {
|
||||
@@ -335,13 +335,13 @@ index 8bd92b3a28ffe70cb9753050c2128c2e744fb1ee..414d79f9d1fbd9857c8baeb2888017d4
|
||||
+ // Purpur end - Toggle for water sensitive mob damage
|
||||
+
|
||||
@Override
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
protected void defineSynchedData(final SynchedEntityData.Builder entityData) {
|
||||
super.defineSynchedData(entityData);
|
||||
diff --git a/net/minecraft/world/entity/animal/fish/Salmon.java b/net/minecraft/world/entity/animal/fish/Salmon.java
|
||||
index 97194d5c844bf96ba431c12ccc1a82cb8944c52b..424bd56ec9df8bd0a80d2fa79bc4f482eae2ab5c 100644
|
||||
index d9276ab9af526f1714d3241bbf6f9c7906adec70..ba75ba1130c4fe5f4d7b29c624a17becd2a71c99 100644
|
||||
--- a/net/minecraft/world/entity/animal/fish/Salmon.java
|
||||
+++ b/net/minecraft/world/entity/animal/fish/Salmon.java
|
||||
@@ -59,6 +59,13 @@ public class Salmon extends AbstractSchoolingFish {
|
||||
@@ -60,6 +60,13 @@ public class Salmon extends AbstractSchoolingFish {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -356,7 +356,7 @@ index 97194d5c844bf96ba431c12ccc1a82cb8944c52b..424bd56ec9df8bd0a80d2fa79bc4f482
|
||||
public int getMaxSchoolSize() {
|
||||
return 5;
|
||||
diff --git a/net/minecraft/world/entity/animal/fish/TropicalFish.java b/net/minecraft/world/entity/animal/fish/TropicalFish.java
|
||||
index 8ffb253c114d882c9459f74a27bd8a086ae82f01..04c30c60c76122018fa69cf1f3f64cae8ed62fad 100644
|
||||
index fbe7b76aac06bb0dce7ae53dea85e947a53d1b64..17bc569bf97026e2c072633f1ad6e9e0102c137a 100644
|
||||
--- a/net/minecraft/world/entity/animal/fish/TropicalFish.java
|
||||
+++ b/net/minecraft/world/entity/animal/fish/TropicalFish.java
|
||||
@@ -96,6 +96,13 @@ public class TropicalFish extends AbstractSchoolingFish {
|
||||
@@ -370,14 +370,14 @@ index 8ffb253c114d882c9459f74a27bd8a086ae82f01..04c30c60c76122018fa69cf1f3f64cae
|
||||
+ }
|
||||
+ // Purpur end - Toggle for water sensitive mob damage
|
||||
+
|
||||
public static String getPredefinedName(int variantId) {
|
||||
return "entity.minecraft.tropical_fish.predefined." + variantId;
|
||||
public static String getPredefinedName(final int index) {
|
||||
return "entity.minecraft.tropical_fish.predefined." + index;
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/animal/fox/Fox.java b/net/minecraft/world/entity/animal/fox/Fox.java
|
||||
index a0ed30e8ccd41729de8e0ff977a61fa607386640..bc119c2f61adb6c6122119fda1df437bab40f9b4 100644
|
||||
index f781d02d10317bf7cf9b5fe50706bbefb62820d3..aa419e7cb456f664c1eca1286777caca6bd10e7a 100644
|
||||
--- a/net/minecraft/world/entity/animal/fox/Fox.java
|
||||
+++ b/net/minecraft/world/entity/animal/fox/Fox.java
|
||||
@@ -204,6 +204,13 @@ public class Fox extends Animal {
|
||||
@@ -208,6 +208,13 @@ public class Fox extends Animal {
|
||||
}
|
||||
// Purpur end - Make entity breeding times configurable
|
||||
|
||||
@@ -389,13 +389,13 @@ index a0ed30e8ccd41729de8e0ff977a61fa607386640..bc119c2f61adb6c6122119fda1df437b
|
||||
+ // Purpur end - Toggle for water sensitive mob damage
|
||||
+
|
||||
@Override
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
protected void defineSynchedData(final SynchedEntityData.Builder entityData) {
|
||||
super.defineSynchedData(entityData);
|
||||
diff --git a/net/minecraft/world/entity/animal/goat/Goat.java b/net/minecraft/world/entity/animal/goat/Goat.java
|
||||
index 07ba57ae845024e0f2fa03a68e126ec79bfc6b15..e5f5bc2c4b4f36e0e911b2c5ef67ef6e0d4cd0b1 100644
|
||||
index da763ba40fdc52d6f6fec97e5e288fbef343ead6..0d40bbd8c42178c712f23300364138389ecde548 100644
|
||||
--- a/net/minecraft/world/entity/animal/goat/Goat.java
|
||||
+++ b/net/minecraft/world/entity/animal/goat/Goat.java
|
||||
@@ -139,6 +139,13 @@ public class Goat extends Animal {
|
||||
@@ -124,6 +124,13 @@ public class Goat extends Animal {
|
||||
}
|
||||
// Purpur end - Make entity breeding times configurable
|
||||
|
||||
@@ -407,13 +407,13 @@ index 07ba57ae845024e0f2fa03a68e126ec79bfc6b15..e5f5bc2c4b4f36e0e911b2c5ef67ef6e
|
||||
+ // Purpur end - Toggle for water sensitive mob damage
|
||||
+
|
||||
@Override
|
||||
protected Brain.Provider<Goat> brainProvider() {
|
||||
return Brain.provider(MEMORY_TYPES, SENSOR_TYPES);
|
||||
protected Brain<Goat> makeBrain(final Brain.Packed packedBrain) {
|
||||
return BRAIN_PROVIDER.makeBrain(this, packedBrain);
|
||||
diff --git a/net/minecraft/world/entity/animal/golem/CopperGolem.java b/net/minecraft/world/entity/animal/golem/CopperGolem.java
|
||||
index b32932f1d7c9c0bbd4814eb145339a9a183ff9b9..e143db15040f8d5be5d07e04a41b7afaf42b4331 100644
|
||||
index bc66450f8d1be97f11f8380755a9973e8ef4befa..078cb2f09e9aaf05bb965a27b90f34c7c3a4147d 100644
|
||||
--- a/net/minecraft/world/entity/animal/golem/CopperGolem.java
|
||||
+++ b/net/minecraft/world/entity/animal/golem/CopperGolem.java
|
||||
@@ -140,6 +140,13 @@ public class CopperGolem extends AbstractGolem implements ContainerUser, Shearab
|
||||
@@ -144,6 +144,13 @@ public class CopperGolem extends AbstractGolem implements ContainerUser, Shearab
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -428,7 +428,7 @@ index b32932f1d7c9c0bbd4814eb145339a9a183ff9b9..e143db15040f8d5be5d07e04a41b7afa
|
||||
return Mob.createMobAttributes().add(Attributes.MOVEMENT_SPEED, 0.2F).add(Attributes.STEP_HEIGHT, 1.0).add(Attributes.MAX_HEALTH, 12.0);
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/animal/golem/IronGolem.java b/net/minecraft/world/entity/animal/golem/IronGolem.java
|
||||
index 677f584b38aeb6805db0bb867f62d5617e309f5e..d31c1f1b681922ca8f1657ffa333e8a6794e619f 100644
|
||||
index ec08c9c2ac32863807061d93ec8894bd094f7ab4..77996312597da9a2bbcf89f798c10a0be0abcd39 100644
|
||||
--- a/net/minecraft/world/entity/animal/golem/IronGolem.java
|
||||
+++ b/net/minecraft/world/entity/animal/golem/IronGolem.java
|
||||
@@ -99,6 +99,13 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
|
||||
@@ -446,10 +446,10 @@ index 677f584b38aeb6805db0bb867f62d5617e309f5e..d31c1f1b681922ca8f1657ffa333e8a6
|
||||
protected void registerGoals() {
|
||||
if (this.level().purpurConfig.ironGolemPoppyCalm) this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.ReceiveFlower(this)); // Purpur - Iron golem calm anger options
|
||||
diff --git a/net/minecraft/world/entity/animal/golem/SnowGolem.java b/net/minecraft/world/entity/animal/golem/SnowGolem.java
|
||||
index fa941ba3151da7b965678be7e4c6a4194863cd0a..94d319a8fba3a437fb55aa7daaaba0c5c9acbb3b 100644
|
||||
index 7091f5bc2ecb9d4b86162fe364447df65d8e9348..2d3127f6846ff9eda1a0b89764dc837da6e7e0c7 100644
|
||||
--- a/net/minecraft/world/entity/animal/golem/SnowGolem.java
|
||||
+++ b/net/minecraft/world/entity/animal/golem/SnowGolem.java
|
||||
@@ -124,7 +124,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
|
||||
@@ -124,7 +124,7 @@ public class SnowGolem extends AbstractGolem implements RangedAttackMob, Shearab
|
||||
|
||||
@Override
|
||||
public boolean isSensitiveToWater() {
|
||||
@@ -459,10 +459,10 @@ index fa941ba3151da7b965678be7e4c6a4194863cd0a..94d319a8fba3a437fb55aa7daaaba0c5
|
||||
|
||||
@Override
|
||||
diff --git a/net/minecraft/world/entity/animal/happyghast/HappyGhast.java b/net/minecraft/world/entity/animal/happyghast/HappyGhast.java
|
||||
index 30204224ed83f6d3cfd64640b332b23cb74d379f..828793aaa2992fd1077040309154f814b302476a 100644
|
||||
index 75a32b65da7080391d0c37622db9cb98c5e092b6..d3367430da307e2c0748874cbe77f265860152a0 100644
|
||||
--- a/net/minecraft/world/entity/animal/happyghast/HappyGhast.java
|
||||
+++ b/net/minecraft/world/entity/animal/happyghast/HappyGhast.java
|
||||
@@ -153,6 +153,13 @@ public class HappyGhast extends Animal {
|
||||
@@ -161,6 +161,13 @@ public class HappyGhast extends Animal {
|
||||
}
|
||||
// Purpur end - Make entity breeding times configurable
|
||||
|
||||
@@ -477,10 +477,10 @@ index 30204224ed83f6d3cfd64640b332b23cb74d379f..828793aaa2992fd1077040309154f814
|
||||
protected void ageBoundaryReached() {
|
||||
if (this.isBaby()) {
|
||||
diff --git a/net/minecraft/world/entity/animal/panda/Panda.java b/net/minecraft/world/entity/animal/panda/Panda.java
|
||||
index 163fe697f57459b36885fa3a18f41370347cab38..e9aa07dea0515f53a08a7066fa9e23e0ee69d69e 100644
|
||||
index 02d5949fb91bbee84fa067dac14d20f53f4a029b..f97b8feaedb84baf479998cef7257231f85412d6 100644
|
||||
--- a/net/minecraft/world/entity/animal/panda/Panda.java
|
||||
+++ b/net/minecraft/world/entity/animal/panda/Panda.java
|
||||
@@ -150,6 +150,13 @@ public class Panda extends Animal {
|
||||
@@ -153,6 +153,13 @@ public class Panda extends Animal {
|
||||
}
|
||||
// Purpur end - Make entity breeding times configurable
|
||||
|
||||
@@ -492,10 +492,10 @@ index 163fe697f57459b36885fa3a18f41370347cab38..e9aa07dea0515f53a08a7066fa9e23e0
|
||||
+ // Purpur end - Toggle for water sensitive mob damage
|
||||
+
|
||||
@Override
|
||||
protected boolean canDispenserEquipIntoSlot(EquipmentSlot slot) {
|
||||
protected boolean canDispenserEquipIntoSlot(final EquipmentSlot slot) {
|
||||
return slot == EquipmentSlot.MAINHAND && this.canPickUpLoot();
|
||||
diff --git a/net/minecraft/world/entity/animal/parrot/Parrot.java b/net/minecraft/world/entity/animal/parrot/Parrot.java
|
||||
index 0d62046cb33ed750ab27229fe4f0b43c3a1dd5f4..e97782bc8232120d4e7d1feeb8ca87fd37a1fcf9 100644
|
||||
index af3d3b90f2e4d433b3b842dbc37d8c507a73dc1f..d756d6931dbf560fef5cb9641ace6f091fbcfff9 100644
|
||||
--- a/net/minecraft/world/entity/animal/parrot/Parrot.java
|
||||
+++ b/net/minecraft/world/entity/animal/parrot/Parrot.java
|
||||
@@ -214,6 +214,13 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
|
||||
@@ -511,12 +511,12 @@ index 0d62046cb33ed750ab27229fe4f0b43c3a1dd5f4..e97782bc8232120d4e7d1feeb8ca87fd
|
||||
+
|
||||
@Override
|
||||
public @Nullable SpawnGroupData finalizeSpawn(
|
||||
ServerLevelAccessor level, DifficultyInstance difficulty, EntitySpawnReason spawnReason, @Nullable SpawnGroupData spawnGroupData
|
||||
final ServerLevelAccessor level, final DifficultyInstance difficulty, final EntitySpawnReason spawnReason, @Nullable SpawnGroupData groupData
|
||||
diff --git a/net/minecraft/world/entity/animal/pig/Pig.java b/net/minecraft/world/entity/animal/pig/Pig.java
|
||||
index 0cb09a058c2d21b10677482792b230464ed9f951..020932539727739b54ed2f7899cbf11ad940f4df 100644
|
||||
index 514f13a6965b5f53890ddd2e47ea89e0c1a515c1..05141bc41dc5181a8f0526528147e7a6c015a707 100644
|
||||
--- a/net/minecraft/world/entity/animal/pig/Pig.java
|
||||
+++ b/net/minecraft/world/entity/animal/pig/Pig.java
|
||||
@@ -95,6 +95,13 @@ public class Pig extends Animal implements ItemSteerable {
|
||||
@@ -100,6 +100,13 @@ public class Pig extends Animal implements ItemSteerable {
|
||||
}
|
||||
// Purpur end - Make entity breeding times configurable
|
||||
|
||||
@@ -531,10 +531,10 @@ index 0cb09a058c2d21b10677482792b230464ed9f951..020932539727739b54ed2f7899cbf11a
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new FloatGoal(this));
|
||||
diff --git a/net/minecraft/world/entity/animal/polarbear/PolarBear.java b/net/minecraft/world/entity/animal/polarbear/PolarBear.java
|
||||
index 97edd950e2142e73ad947590c99d6d5529cbd44c..13d26a6981d6907f35f1f2bde93934c7c1fe8120 100644
|
||||
index 6d4713663c94e91da7d809e65fa205aff2782f38..2a28c9ef361909aa0c3946ed6857f7d340c8cfc0 100644
|
||||
--- a/net/minecraft/world/entity/animal/polarbear/PolarBear.java
|
||||
+++ b/net/minecraft/world/entity/animal/polarbear/PolarBear.java
|
||||
@@ -133,6 +133,13 @@ public class PolarBear extends Animal implements NeutralMob {
|
||||
@@ -134,6 +134,13 @@ public class PolarBear extends Animal implements NeutralMob {
|
||||
}
|
||||
// Purpur end - Make entity breeding times configurable
|
||||
|
||||
@@ -546,13 +546,13 @@ index 97edd950e2142e73ad947590c99d6d5529cbd44c..13d26a6981d6907f35f1f2bde93934c7
|
||||
+ // Purpur end - Toggle for water sensitive mob damage
|
||||
+
|
||||
@Override
|
||||
public @Nullable AgeableMob getBreedOffspring(ServerLevel level, AgeableMob partner) {
|
||||
public @Nullable AgeableMob getBreedOffspring(final ServerLevel level, final AgeableMob partner) {
|
||||
return EntityType.POLAR_BEAR.create(level, EntitySpawnReason.BREEDING);
|
||||
diff --git a/net/minecraft/world/entity/animal/rabbit/Rabbit.java b/net/minecraft/world/entity/animal/rabbit/Rabbit.java
|
||||
index 66fda64006c0a70ab4502f088637bb6871c3bb37..b1c72047f7aa63f62b0ad0274811b587b1d3486b 100644
|
||||
index 4d79ce89c21ba0b973bbda01bf53665e3b7a1902..7dade80db9430e4db587ed23df992d70c6b7ee04 100644
|
||||
--- a/net/minecraft/world/entity/animal/rabbit/Rabbit.java
|
||||
+++ b/net/minecraft/world/entity/animal/rabbit/Rabbit.java
|
||||
@@ -163,6 +163,13 @@ public class Rabbit extends Animal {
|
||||
@@ -177,6 +177,13 @@ public class Rabbit extends Animal {
|
||||
}
|
||||
// Purpur end - Make entity breeding times configurable
|
||||
|
||||
@@ -567,7 +567,7 @@ index 66fda64006c0a70ab4502f088637bb6871c3bb37..b1c72047f7aa63f62b0ad0274811b587
|
||||
public void registerGoals() {
|
||||
this.goalSelector.addGoal(1, new FloatGoal(this));
|
||||
diff --git a/net/minecraft/world/entity/animal/sheep/Sheep.java b/net/minecraft/world/entity/animal/sheep/Sheep.java
|
||||
index 0e4505474a50d57338c16648cb6049d35455fdc6..7eca49c9237c61ab12f60ff16085aa8fd10c99ac 100644
|
||||
index 9cc59891521963204399b7f67d94bb78c7e75fb6..0ceaa6dd493d0258c419d8b5c4394b35c0808704 100644
|
||||
--- a/net/minecraft/world/entity/animal/sheep/Sheep.java
|
||||
+++ b/net/minecraft/world/entity/animal/sheep/Sheep.java
|
||||
@@ -95,6 +95,13 @@ public class Sheep extends Animal implements Shearable {
|
||||
@@ -585,7 +585,7 @@ index 0e4505474a50d57338c16648cb6049d35455fdc6..7eca49c9237c61ab12f60ff16085aa8f
|
||||
protected void registerGoals() {
|
||||
this.eatBlockGoal = new EatBlockGoal(this);
|
||||
diff --git a/net/minecraft/world/entity/animal/squid/GlowSquid.java b/net/minecraft/world/entity/animal/squid/GlowSquid.java
|
||||
index 7d41aaa0546a9ca02e46ce46e61ecc57120bfca9..2aa2a84a7ada369c45a85119a933eb92297af4dc 100644
|
||||
index cb3d0bd838473af87af74c7d1bab38593a6c8f6d..1fa3d614dd1c45ec42caffbe92e3f8db02b399b1 100644
|
||||
--- a/net/minecraft/world/entity/animal/squid/GlowSquid.java
|
||||
+++ b/net/minecraft/world/entity/animal/squid/GlowSquid.java
|
||||
@@ -57,6 +57,13 @@ public class GlowSquid extends Squid {
|
||||
@@ -603,10 +603,10 @@ index 7d41aaa0546a9ca02e46ce46e61ecc57120bfca9..2aa2a84a7ada369c45a85119a933eb92
|
||||
protected ParticleOptions getInkParticle() {
|
||||
return ParticleTypes.GLOW_SQUID_INK;
|
||||
diff --git a/net/minecraft/world/entity/animal/squid/Squid.java b/net/minecraft/world/entity/animal/squid/Squid.java
|
||||
index 5e4181f95711c6b0299f28de14d95da421dda373..e307ebfb8b2781b6175b520e148e6bd58d2b9dc4 100644
|
||||
index cc0a1aaa6aa710c0f0b4df0e46e8ad7931f26b2f..e350763a3a22d825a25f02b60bd4c9223aa81f62 100644
|
||||
--- a/net/minecraft/world/entity/animal/squid/Squid.java
|
||||
+++ b/net/minecraft/world/entity/animal/squid/Squid.java
|
||||
@@ -101,6 +101,13 @@ public class Squid extends AgeableWaterCreature {
|
||||
@@ -104,6 +104,13 @@ public class Squid extends AgeableWaterCreature {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -621,7 +621,7 @@ index 5e4181f95711c6b0299f28de14d95da421dda373..e307ebfb8b2781b6175b520e148e6bd5
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new Squid.SquidRandomMovementGoal(this));
|
||||
diff --git a/net/minecraft/world/entity/animal/turtle/Turtle.java b/net/minecraft/world/entity/animal/turtle/Turtle.java
|
||||
index fce1b1a22e091a1c05650c72e1ceb83e1a1d1ed1..7d5987fe641646ecbf8e389d57a0a9a04e9c0959 100644
|
||||
index 62d9fce83cc44165c5356049a12bf6081c925857..6d09c0de38f2c91d2a0ab6dd0b694ab42b48a981 100644
|
||||
--- a/net/minecraft/world/entity/animal/turtle/Turtle.java
|
||||
+++ b/net/minecraft/world/entity/animal/turtle/Turtle.java
|
||||
@@ -119,6 +119,13 @@ public class Turtle extends Animal {
|
||||
@@ -635,14 +635,14 @@ index fce1b1a22e091a1c05650c72e1ceb83e1a1d1ed1..7d5987fe641646ecbf8e389d57a0a9a0
|
||||
+ }
|
||||
+ // Purpur end - Toggle for water sensitive mob damage
|
||||
+
|
||||
public void setHomePos(BlockPos homePos) {
|
||||
this.homePos = homePos;
|
||||
public void setHomePos(final BlockPos pos) {
|
||||
this.homePos = pos;
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/animal/wolf/Wolf.java b/net/minecraft/world/entity/animal/wolf/Wolf.java
|
||||
index 08a1bafa0e45dbdbf8bdc4d5cb654d080590707d..20f945ee06bcdb4736e6d3a8b20a5cbd3d79df0f 100644
|
||||
index 0561b38982c205edc848b1650152491698a80e29..781cac493f909b02483e5c4064cc2cc791b1dabd 100644
|
||||
--- a/net/minecraft/world/entity/animal/wolf/Wolf.java
|
||||
+++ b/net/minecraft/world/entity/animal/wolf/Wolf.java
|
||||
@@ -223,6 +223,13 @@ public class Wolf extends TamableAnimal implements NeutralMob {
|
||||
@@ -220,6 +220,13 @@ public class Wolf extends TamableAnimal implements NeutralMob {
|
||||
}
|
||||
// Purpur end - Make entity breeding times configurable
|
||||
|
||||
@@ -657,7 +657,7 @@ index 08a1bafa0e45dbdbf8bdc4d5cb654d080590707d..20f945ee06bcdb4736e6d3a8b20a5cbd
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(1, new FloatGoal(this));
|
||||
diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
index ecfd9f7b56aee3b701821339f41b60bd7bef0e97..335bff0b9537ea4ea9717e76e824b07642d7dd8e 100644
|
||||
index 51ca6a3fa75f3aef715d786a21327452390dde94..d7b909d65c8ef716ad652c97425148b7fbcd8f2e 100644
|
||||
--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
@@ -170,6 +170,13 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
@@ -675,10 +675,10 @@ index ecfd9f7b56aee3b701821339f41b60bd7bef0e97..335bff0b9537ea4ea9717e76e824b076
|
||||
return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 200.0).add(Attributes.CAMERA_DISTANCE, 16.0);
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/boss/wither/WitherBoss.java b/net/minecraft/world/entity/boss/wither/WitherBoss.java
|
||||
index df608186f3e9ab5b56a209be67cd02717d3f9734..4afa484099c7f813d5ae8c7cc8721a0d033c8e6e 100644
|
||||
index 3e934aee6f651843d861cc87cc1f01a87742edf3..10818999c4e796a4dfd5a7dd21772c9eb8ca2579 100644
|
||||
--- a/net/minecraft/world/entity/boss/wither/WitherBoss.java
|
||||
+++ b/net/minecraft/world/entity/boss/wither/WitherBoss.java
|
||||
@@ -220,6 +220,13 @@ public class WitherBoss extends Monster implements RangedAttackMob {
|
||||
@@ -222,6 +222,13 @@ public class WitherBoss extends Monster implements RangedAttackMob {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -690,21 +690,21 @@ index df608186f3e9ab5b56a209be67cd02717d3f9734..4afa484099c7f813d5ae8c7cc8721a0d
|
||||
+ // Purpur end - Toggle for water sensitive mob damage
|
||||
+
|
||||
@Override
|
||||
protected PathNavigation createNavigation(Level level) {
|
||||
protected PathNavigation createNavigation(final Level level) {
|
||||
FlyingPathNavigation flyingPathNavigation = new FlyingPathNavigation(this, level);
|
||||
diff --git a/net/minecraft/world/entity/monster/Blaze.java b/net/minecraft/world/entity/monster/Blaze.java
|
||||
index 4cd7975a8e9e55d6b6ded0b7e13d8da436e49c6c..e2afd7677986c70dd924017e8822fd6abd808f48 100644
|
||||
index b553c6dd60bd23fba7ee3df9886561fc7640f104..7f0e76437798f1bab7956722382e1517f8f71121 100644
|
||||
--- a/net/minecraft/world/entity/monster/Blaze.java
|
||||
+++ b/net/minecraft/world/entity/monster/Blaze.java
|
||||
@@ -35,7 +35,7 @@ public class Blaze extends Monster {
|
||||
public Blaze(EntityType<? extends Blaze> type, Level level) {
|
||||
super(type, level);
|
||||
public Blaze(final EntityType<? extends Blaze> blaze, final Level level) {
|
||||
super(blaze, level);
|
||||
this.moveControl = new org.purpurmc.purpur.controller.FlyingWithSpacebarMoveControllerWASD(this, 0.3F); // Purpur - Ridables
|
||||
- this.setPathfindingMalus(PathType.WATER, -1.0F);
|
||||
+ if (isSensitiveToWater()) this.setPathfindingMalus(PathType.WATER, -1.0F); // Purpur - Toggle for water sensitive mob damage
|
||||
this.setPathfindingMalus(PathType.LAVA, 8.0F);
|
||||
this.setPathfindingMalus(PathType.DANGER_FIRE, 0.0F);
|
||||
this.setPathfindingMalus(PathType.DAMAGE_FIRE, 0.0F);
|
||||
this.setPathfindingMalus(PathType.FIRE_IN_NEIGHBOR, 0.0F);
|
||||
this.setPathfindingMalus(PathType.FIRE, 0.0F);
|
||||
@@ -158,7 +158,7 @@ public class Blaze extends Monster {
|
||||
|
||||
@Override
|
||||
@@ -715,7 +715,7 @@ index 4cd7975a8e9e55d6b6ded0b7e13d8da436e49c6c..e2afd7677986c70dd924017e8822fd6a
|
||||
|
||||
@Override
|
||||
diff --git a/net/minecraft/world/entity/monster/Creeper.java b/net/minecraft/world/entity/monster/Creeper.java
|
||||
index ed1ccd712a2fe00740beeee4fe615976258f5c6c..b0ed96c243f9abb3868d92bb513ad1620aa8e269 100644
|
||||
index 73b0efd692205f56862c7287d7222efebe3faf73..80327a6ba1da0145f087a7946c7a4dfb6d947ce7 100644
|
||||
--- a/net/minecraft/world/entity/monster/Creeper.java
|
||||
+++ b/net/minecraft/world/entity/monster/Creeper.java
|
||||
@@ -266,6 +266,13 @@ public class Creeper extends Monster {
|
||||
@@ -730,10 +730,10 @@ index ed1ccd712a2fe00740beeee4fe615976258f5c6c..b0ed96c243f9abb3868d92bb513ad162
|
||||
+ // Purpur end - Toggle for water sensitive mob damage
|
||||
+
|
||||
@Override
|
||||
public SoundEvent getHurtSound(DamageSource damageSource) {
|
||||
public SoundEvent getHurtSound(final DamageSource source) {
|
||||
return SoundEvents.CREEPER_HURT;
|
||||
diff --git a/net/minecraft/world/entity/monster/ElderGuardian.java b/net/minecraft/world/entity/monster/ElderGuardian.java
|
||||
index 57fb334f670d35aa181b13e12fa2c5f36da1dda6..1ea323a17440abbe36c9528e80e169816267005b 100644
|
||||
index ffcfe02c51f6df1bd238c821a8d6535f4ccf019c..a98967c7a76d8e25da9e31eaa8f2ae0bf0704c9d 100644
|
||||
--- a/net/minecraft/world/entity/monster/ElderGuardian.java
|
||||
+++ b/net/minecraft/world/entity/monster/ElderGuardian.java
|
||||
@@ -51,6 +51,13 @@ public class ElderGuardian extends Guardian {
|
||||
@@ -751,12 +751,12 @@ index 57fb334f670d35aa181b13e12fa2c5f36da1dda6..1ea323a17440abbe36c9528e80e16981
|
||||
return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.3F).add(Attributes.ATTACK_DAMAGE, 8.0).add(Attributes.MAX_HEALTH, 80.0);
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/monster/EnderMan.java b/net/minecraft/world/entity/monster/EnderMan.java
|
||||
index 79a1d8f67a22a8fa4a6c3b657e44bb9503687c27..47c621f01658f3392b58f3f5c1f31bd539f63dd6 100644
|
||||
index 46a60e17837411e46a543d6f0254d7280d30a94c..8862ad857a4c99defe7621c59d8f3ef77ab7aff4 100644
|
||||
--- a/net/minecraft/world/entity/monster/EnderMan.java
|
||||
+++ b/net/minecraft/world/entity/monster/EnderMan.java
|
||||
@@ -86,7 +86,7 @@ public class EnderMan extends Monster implements NeutralMob {
|
||||
|
||||
public EnderMan(EntityType<? extends EnderMan> type, Level level) {
|
||||
public EnderMan(final EntityType<? extends EnderMan> type, final Level level) {
|
||||
super(type, level);
|
||||
- this.setPathfindingMalus(PathType.WATER, -1.0F);
|
||||
+ if (isSensitiveToWater()) this.setPathfindingMalus(PathType.WATER, -1.0F); // Purpur - Toggle for water sensitive mob damage
|
||||
@@ -773,7 +773,7 @@ index 79a1d8f67a22a8fa4a6c3b657e44bb9503687c27..47c621f01658f3392b58f3f5c1f31bd5
|
||||
|
||||
@Override
|
||||
diff --git a/net/minecraft/world/entity/monster/Endermite.java b/net/minecraft/world/entity/monster/Endermite.java
|
||||
index f92dfcf9e296714f3802264406d8ab627c9bf067..b5e620d62702e3330f5ced19f1baeb82bdc801ec 100644
|
||||
index 040f0b59d93b1b94495253f3286bdba123c22ef4..859d490dd3be2843dde3a811bcc0d51e3eae76f0 100644
|
||||
--- a/net/minecraft/world/entity/monster/Endermite.java
|
||||
+++ b/net/minecraft/world/entity/monster/Endermite.java
|
||||
@@ -72,6 +72,13 @@ public class Endermite extends Monster {
|
||||
@@ -791,7 +791,7 @@ index f92dfcf9e296714f3802264406d8ab627c9bf067..b5e620d62702e3330f5ced19f1baeb82
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(1, new FloatGoal(this));
|
||||
diff --git a/net/minecraft/world/entity/monster/Ghast.java b/net/minecraft/world/entity/monster/Ghast.java
|
||||
index 7d97c00ae49629b97104631317aa6174741cdd5e..443eb9f12d6df950c59c9d4db4853087fd23d24e 100644
|
||||
index 254548dd024e4963bbcb1b1fce99194461d3f54d..89a2097c2c26dae7f12ddbac10bc091ec7f228d7 100644
|
||||
--- a/net/minecraft/world/entity/monster/Ghast.java
|
||||
+++ b/net/minecraft/world/entity/monster/Ghast.java
|
||||
@@ -83,6 +83,13 @@ public class Ghast extends Mob implements Enemy {
|
||||
@@ -809,7 +809,7 @@ index 7d97c00ae49629b97104631317aa6174741cdd5e..443eb9f12d6df950c59c9d4db4853087
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
|
||||
diff --git a/net/minecraft/world/entity/monster/Giant.java b/net/minecraft/world/entity/monster/Giant.java
|
||||
index 40cf8f44a6b01d45306dab4ba4f9a7ea7c6590a9..f1176f73d4468b2f39e48fe5454c5f5bf481afd9 100644
|
||||
index c39031e8fdfb0dff7867d9525dbddde110242647..43ebfe06ce2a8c15787d72a8ef54cd6c7cac2bfc 100644
|
||||
--- a/net/minecraft/world/entity/monster/Giant.java
|
||||
+++ b/net/minecraft/world/entity/monster/Giant.java
|
||||
@@ -62,6 +62,13 @@ public class Giant extends Monster {
|
||||
@@ -827,7 +827,7 @@ index 40cf8f44a6b01d45306dab4ba4f9a7ea7c6590a9..f1176f73d4468b2f39e48fe5454c5f5b
|
||||
return Monster.createMonsterAttributes()
|
||||
.add(Attributes.MAX_HEALTH, 100.0)
|
||||
diff --git a/net/minecraft/world/entity/monster/Guardian.java b/net/minecraft/world/entity/monster/Guardian.java
|
||||
index 1eaa4f255b01eddc93ddbc5615ad05e7d8273581..9948511659de9222a19f6b9f660e4441ea98a4a9 100644
|
||||
index 12f6b4bf9fa011db34617e2115206202d7f2d32e..9ca62d9663fc2e8eb49780ceb7ff38e0363a09a6 100644
|
||||
--- a/net/minecraft/world/entity/monster/Guardian.java
|
||||
+++ b/net/minecraft/world/entity/monster/Guardian.java
|
||||
@@ -97,6 +97,13 @@ public class Guardian extends Monster {
|
||||
@@ -843,9 +843,9 @@ index 1eaa4f255b01eddc93ddbc5615ad05e7d8273581..9948511659de9222a19f6b9f660e4441
|
||||
+
|
||||
@Override
|
||||
protected void registerGoals() {
|
||||
MoveTowardsRestrictionGoal moveTowardsRestrictionGoal = new MoveTowardsRestrictionGoal(this, 1.0);
|
||||
MoveTowardsRestrictionGoal goal = new MoveTowardsRestrictionGoal(this, 1.0);
|
||||
diff --git a/net/minecraft/world/entity/monster/MagmaCube.java b/net/minecraft/world/entity/monster/MagmaCube.java
|
||||
index e0fda9a975e00c49ba09db65d7b3fba8fa434757..1bf9d04e5e44272b02753290995795f194cbdae1 100644
|
||||
index d40a4daeec1500f2d9865022ee6e3c386ad7533e..fba41f261e57a050d4e24d2611cc27edcbb84ddf 100644
|
||||
--- a/net/minecraft/world/entity/monster/MagmaCube.java
|
||||
+++ b/net/minecraft/world/entity/monster/MagmaCube.java
|
||||
@@ -68,6 +68,13 @@ public class MagmaCube extends Slime {
|
||||
@@ -863,10 +863,10 @@ index e0fda9a975e00c49ba09db65d7b3fba8fa434757..1bf9d04e5e44272b02753290995795f1
|
||||
return Monster.createMonsterAttributes().add(Attributes.MOVEMENT_SPEED, 0.2F);
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/monster/Phantom.java b/net/minecraft/world/entity/monster/Phantom.java
|
||||
index 6e8fe1b694ade45ffbf0b9bb39b954deffeb2402..2fa22088ac507eceb36f3c77f24a733076641d8f 100644
|
||||
index da014eae20abb320ecb897517810e4ab53783a89..20096d8305bbfc29195834b87245c94096986ec8 100644
|
||||
--- a/net/minecraft/world/entity/monster/Phantom.java
|
||||
+++ b/net/minecraft/world/entity/monster/Phantom.java
|
||||
@@ -128,6 +128,13 @@ public class Phantom extends Mob implements Enemy {
|
||||
@@ -129,6 +129,13 @@ public class Phantom extends Mob implements Enemy {
|
||||
}
|
||||
// Purpur end - Phantoms attracted to crystals and crystals shoot phantoms
|
||||
|
||||
@@ -881,10 +881,10 @@ index 6e8fe1b694ade45ffbf0b9bb39b954deffeb2402..2fa22088ac507eceb36f3c77f24a7330
|
||||
public boolean isFlapping() {
|
||||
return (this.getUniqueFlapTickOffset() + this.tickCount) % TICKS_PER_FLAP == 0;
|
||||
diff --git a/net/minecraft/world/entity/monster/Ravager.java b/net/minecraft/world/entity/monster/Ravager.java
|
||||
index 7c69423eee05992b9c70321d528cc9d73b3e63ea..ad2913b02ded9b5087c69ba279cebfd81d9ef75e 100644
|
||||
index e0ffded3500b221d5c65cff9377120e8c6c7d8c6..bb19e3f2e6522e8b7db32061c0ae2b2a37679369 100644
|
||||
--- a/net/minecraft/world/entity/monster/Ravager.java
|
||||
+++ b/net/minecraft/world/entity/monster/Ravager.java
|
||||
@@ -103,6 +103,13 @@ public class Ravager extends Raider {
|
||||
@@ -101,6 +101,13 @@ public class Ravager extends Raider {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -899,10 +899,10 @@ index 7c69423eee05992b9c70321d528cc9d73b3e63ea..ad2913b02ded9b5087c69ba279cebfd8
|
||||
protected void registerGoals() {
|
||||
super.registerGoals();
|
||||
diff --git a/net/minecraft/world/entity/monster/Shulker.java b/net/minecraft/world/entity/monster/Shulker.java
|
||||
index 30f2503ebd045b05f5594cef28389a694338d13a..0a5a6f23cd8e4317db4e7c0ba8883e99f3aff148 100644
|
||||
index 84e27edf490fbe4ed0142b9bb90aab37151acf3d..cf49a580c8dacb895b7a8ec2531d3afee2ffc30c 100644
|
||||
--- a/net/minecraft/world/entity/monster/Shulker.java
|
||||
+++ b/net/minecraft/world/entity/monster/Shulker.java
|
||||
@@ -133,6 +133,13 @@ public class Shulker extends AbstractGolem implements Enemy {
|
||||
@@ -135,6 +135,13 @@ public class Shulker extends AbstractGolem implements Enemy {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -917,7 +917,7 @@ index 30f2503ebd045b05f5594cef28389a694338d13a..0a5a6f23cd8e4317db4e7c0ba8883e99
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
|
||||
diff --git a/net/minecraft/world/entity/monster/Silverfish.java b/net/minecraft/world/entity/monster/Silverfish.java
|
||||
index 7f94e9749283f1e51b449b0ef84ca08e246a1cc9..c64509a5027de1369bde610feba7a39aa5b404fd 100644
|
||||
index e5a0a199685366f082904eb5e7550f0160f9c706..205c05f46d70d37e11a0e35c97128e0c20b94e23 100644
|
||||
--- a/net/minecraft/world/entity/monster/Silverfish.java
|
||||
+++ b/net/minecraft/world/entity/monster/Silverfish.java
|
||||
@@ -65,6 +65,13 @@ public class Silverfish extends Monster {
|
||||
@@ -935,7 +935,7 @@ index 7f94e9749283f1e51b449b0ef84ca08e246a1cc9..c64509a5027de1369bde610feba7a39a
|
||||
protected void registerGoals() {
|
||||
this.friendsGoal = new Silverfish.SilverfishWakeUpFriendsGoal(this);
|
||||
diff --git a/net/minecraft/world/entity/monster/Slime.java b/net/minecraft/world/entity/monster/Slime.java
|
||||
index f93a2c58b5835e9ce8318d28e944533ef69df8ef..c4222e17d9a1f4cba6a74099a167cff13856f3e3 100644
|
||||
index 0713239089bac454b3228d80aaabfd1fca4bd08b..556930ac4d06b4f46a87d237857006729fea5ef5 100644
|
||||
--- a/net/minecraft/world/entity/monster/Slime.java
|
||||
+++ b/net/minecraft/world/entity/monster/Slime.java
|
||||
@@ -135,6 +135,13 @@ public class Slime extends Mob implements Enemy {
|
||||
@@ -953,19 +953,19 @@ index f93a2c58b5835e9ce8318d28e944533ef69df8ef..c4222e17d9a1f4cba6a74099a167cff1
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
|
||||
diff --git a/net/minecraft/world/entity/monster/Strider.java b/net/minecraft/world/entity/monster/Strider.java
|
||||
index ad6515c2dcde0079095c6777f56319e9901850f8..758887f3fcec2bf0946cddb184e19a1c9b64eee3 100644
|
||||
index 38a17c219bce1a8a8a67b136e0eaf5cf15ec94fd..1b6137674d807ed29d56e3f3120abe60254274e1 100644
|
||||
--- a/net/minecraft/world/entity/monster/Strider.java
|
||||
+++ b/net/minecraft/world/entity/monster/Strider.java
|
||||
@@ -86,7 +86,7 @@ public class Strider extends Animal implements ItemSteerable {
|
||||
public Strider(EntityType<? extends Strider> type, Level level) {
|
||||
super(type, level);
|
||||
@@ -87,7 +87,7 @@ public class Strider extends Animal implements ItemSteerable {
|
||||
public Strider(final EntityType<? extends Strider> strider, final Level level) {
|
||||
super(strider, level);
|
||||
this.blocksBuilding = true;
|
||||
- this.setPathfindingMalus(PathType.WATER, -1.0F);
|
||||
+ if (isSensitiveToWater()) this.setPathfindingMalus(PathType.WATER, -1.0F); // Purpur - Toggle for water sensitive mob damage
|
||||
this.setPathfindingMalus(PathType.LAVA, 0.0F);
|
||||
this.setPathfindingMalus(PathType.DANGER_FIRE, 0.0F);
|
||||
this.setPathfindingMalus(PathType.DAMAGE_FIRE, 0.0F);
|
||||
@@ -388,7 +388,7 @@ public class Strider extends Animal implements ItemSteerable {
|
||||
this.setPathfindingMalus(PathType.FIRE_IN_NEIGHBOR, 0.0F);
|
||||
this.setPathfindingMalus(PathType.FIRE, 0.0F);
|
||||
@@ -398,7 +398,7 @@ public class Strider extends Animal implements ItemSteerable {
|
||||
|
||||
@Override
|
||||
public boolean isSensitiveToWater() {
|
||||
@@ -975,10 +975,10 @@ index ad6515c2dcde0079095c6777f56319e9901850f8..758887f3fcec2bf0946cddb184e19a1c
|
||||
|
||||
@Override
|
||||
diff --git a/net/minecraft/world/entity/monster/Vex.java b/net/minecraft/world/entity/monster/Vex.java
|
||||
index 32759864a8ff0c4e28ce80ae8906cbcf1927094e..6ead673c44891c6b1c1688f80bf299527d7bc777 100644
|
||||
index 62fe1bb1632fbe8edf901c22c7972e729a5f6100..c7700ff6b7faf06116626ad95e11cd4604751eda 100644
|
||||
--- a/net/minecraft/world/entity/monster/Vex.java
|
||||
+++ b/net/minecraft/world/entity/monster/Vex.java
|
||||
@@ -110,6 +110,13 @@ public class Vex extends Monster implements TraceableEntity {
|
||||
@@ -111,6 +111,13 @@ public class Vex extends Monster implements TraceableEntity {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -993,7 +993,7 @@ index 32759864a8ff0c4e28ce80ae8906cbcf1927094e..6ead673c44891c6b1c1688f80bf29952
|
||||
public boolean isFlapping() {
|
||||
return this.tickCount % TICKS_PER_FLAP == 0;
|
||||
diff --git a/net/minecraft/world/entity/monster/Witch.java b/net/minecraft/world/entity/monster/Witch.java
|
||||
index 3c3c258d4cc7cf7376d0d3ad0794ec3611ab81ce..86d9952ed0f692e8f229b0c0bcb6cacf53a00c8b 100644
|
||||
index 6b17c2135397f349670a7180e88db4794d3902a8..bfa222c9b61bc2d20927fdf08e8baa5fda4fdbdc 100644
|
||||
--- a/net/minecraft/world/entity/monster/Witch.java
|
||||
+++ b/net/minecraft/world/entity/monster/Witch.java
|
||||
@@ -82,6 +82,13 @@ public class Witch extends Raider implements RangedAttackMob {
|
||||
@@ -1011,10 +1011,10 @@ index 3c3c258d4cc7cf7376d0d3ad0794ec3611ab81ce..86d9952ed0f692e8f229b0c0bcb6cacf
|
||||
protected void registerGoals() {
|
||||
super.registerGoals();
|
||||
diff --git a/net/minecraft/world/entity/monster/Zoglin.java b/net/minecraft/world/entity/monster/Zoglin.java
|
||||
index e0192a13b8d7131024471569bf34329ba0f28287..e2708eb836d60588c1bedb75c520e5007185034a 100644
|
||||
index 4d4593f89e20e8e72a979cc2dee54566ef380462..15e5e3c63ec9bddaf19636e27dd21d12df9318ce 100644
|
||||
--- a/net/minecraft/world/entity/monster/Zoglin.java
|
||||
+++ b/net/minecraft/world/entity/monster/Zoglin.java
|
||||
@@ -112,6 +112,13 @@ public class Zoglin extends Monster implements HoglinBase {
|
||||
@@ -101,6 +101,13 @@ public class Zoglin extends Monster implements HoglinBase {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -1026,13 +1026,13 @@ index e0192a13b8d7131024471569bf34329ba0f28287..e2708eb836d60588c1bedb75c520e500
|
||||
+ // Purpur end - Toggle for water sensitive mob damage
|
||||
+
|
||||
@Override
|
||||
protected Brain.Provider<Zoglin> brainProvider() {
|
||||
return Brain.provider(MEMORY_TYPES, SENSOR_TYPES);
|
||||
protected Brain<Zoglin> makeBrain(final Brain.Packed packedBrain) {
|
||||
return BRAIN_PROVIDER.makeBrain(this, packedBrain);
|
||||
diff --git a/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
||||
index 4498fe26dff2cdec8e90d6559a66ebe7859195bb..5e3f7005a7167c786038823a8437ad2e90a41d2c 100644
|
||||
index d158807f22a0a08614b2d7054663ef2782a519e3..d001cf955dba66435079eb2cc30e05aec963d2c6 100644
|
||||
--- a/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
||||
+++ b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
||||
@@ -129,6 +129,13 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
|
||||
@@ -105,6 +105,13 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
|
||||
}
|
||||
// Purpur end - Make entity breeding times configurable
|
||||
|
||||
@@ -1044,13 +1044,13 @@ index 4498fe26dff2cdec8e90d6559a66ebe7859195bb..5e3f7005a7167c786038823a8437ad2e
|
||||
+ // Purpur end - Toggle for water sensitive mob damage
|
||||
+
|
||||
@VisibleForTesting
|
||||
public void setTimeInOverworld(int timeInOverworld) {
|
||||
public void setTimeInOverworld(final int timeInOverworld) {
|
||||
this.timeInOverworld = timeInOverworld;
|
||||
diff --git a/net/minecraft/world/entity/monster/illager/Evoker.java b/net/minecraft/world/entity/monster/illager/Evoker.java
|
||||
index 334786b2c358c41058f2ac4b1fa4b185833cbd84..c4f45f6303a46ad54991c9013608a4e5ba8b9fee 100644
|
||||
index d091a12ed1df31f945a04f50af1cbb89a16ca0cd..75276deb3208437fce669f9e483ff6c7a99d69a3 100644
|
||||
--- a/net/minecraft/world/entity/monster/illager/Evoker.java
|
||||
+++ b/net/minecraft/world/entity/monster/illager/Evoker.java
|
||||
@@ -74,6 +74,13 @@ public class Evoker extends SpellcasterIllager {
|
||||
@@ -75,6 +75,13 @@ public class Evoker extends SpellcasterIllager {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -1065,10 +1065,10 @@ index 334786b2c358c41058f2ac4b1fa4b185833cbd84..c4f45f6303a46ad54991c9013608a4e5
|
||||
protected void registerGoals() {
|
||||
super.registerGoals();
|
||||
diff --git a/net/minecraft/world/entity/monster/illager/Illusioner.java b/net/minecraft/world/entity/monster/illager/Illusioner.java
|
||||
index 8fa53cccb73b2d8c599c898f298681735007d2a0..32278f51f4973d1294e52f0775697e9f5b295ee0 100644
|
||||
index bc19b4c293a4101abd559c61c59021e076420b32..32b8f638ea26494cae648f4bb48a664ce2a5021e 100644
|
||||
--- a/net/minecraft/world/entity/monster/illager/Illusioner.java
|
||||
+++ b/net/minecraft/world/entity/monster/illager/Illusioner.java
|
||||
@@ -86,6 +86,13 @@ public class Illusioner extends SpellcasterIllager implements RangedAttackMob {
|
||||
@@ -87,6 +87,13 @@ public class Illusioner extends SpellcasterIllager implements RangedAttackMob {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -1083,7 +1083,7 @@ index 8fa53cccb73b2d8c599c898f298681735007d2a0..32278f51f4973d1294e52f0775697e9f
|
||||
protected void registerGoals() {
|
||||
super.registerGoals();
|
||||
diff --git a/net/minecraft/world/entity/monster/illager/Pillager.java b/net/minecraft/world/entity/monster/illager/Pillager.java
|
||||
index 1e43c69366287c7a191a6f8e3a7d5459743f07a2..6190286ab2f454382d497b4fce47632e6f771215 100644
|
||||
index 134650a5866459881c1dca4b77b47110fd67420a..bd9092a0fecef475bde06d94bc2f6726f21404fd 100644
|
||||
--- a/net/minecraft/world/entity/monster/illager/Pillager.java
|
||||
+++ b/net/minecraft/world/entity/monster/illager/Pillager.java
|
||||
@@ -90,6 +90,13 @@ public class Pillager extends AbstractIllager implements CrossbowAttackMob, Inve
|
||||
@@ -1101,7 +1101,7 @@ index 1e43c69366287c7a191a6f8e3a7d5459743f07a2..6190286ab2f454382d497b4fce47632e
|
||||
protected void registerGoals() {
|
||||
super.registerGoals();
|
||||
diff --git a/net/minecraft/world/entity/monster/illager/Vindicator.java b/net/minecraft/world/entity/monster/illager/Vindicator.java
|
||||
index 5f3857186e86e27fe237c62cec4af13ebf58debe..86b463a16e8630af4918ea43a2546995aa00244f 100644
|
||||
index 865395b9ceddfaac4fc88701878a1cf349556fe1..aab0bd86da31ca73efc4988fa34c906886139ec3 100644
|
||||
--- a/net/minecraft/world/entity/monster/illager/Vindicator.java
|
||||
+++ b/net/minecraft/world/entity/monster/illager/Vindicator.java
|
||||
@@ -82,6 +82,13 @@ public class Vindicator extends AbstractIllager {
|
||||
@@ -1119,10 +1119,10 @@ index 5f3857186e86e27fe237c62cec4af13ebf58debe..86b463a16e8630af4918ea43a2546995
|
||||
protected void registerGoals() {
|
||||
super.registerGoals();
|
||||
diff --git a/net/minecraft/world/entity/monster/piglin/Piglin.java b/net/minecraft/world/entity/monster/piglin/Piglin.java
|
||||
index 4fccd122a227e5fe80965c37afaa031c4a673978..d6c834914ddea76280466bf0f7d001a76af34f08 100644
|
||||
index 356fc7507b58cc38cdf5ee11618ad3551fb3c6a2..de86e23b377ca0727d5f5234f2bc63180ddbbad2 100644
|
||||
--- a/net/minecraft/world/entity/monster/piglin/Piglin.java
|
||||
+++ b/net/minecraft/world/entity/monster/piglin/Piglin.java
|
||||
@@ -166,6 +166,13 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
|
||||
@@ -133,6 +133,13 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -1134,13 +1134,13 @@ index 4fccd122a227e5fe80965c37afaa031c4a673978..d6c834914ddea76280466bf0f7d001a7
|
||||
+ // Purpur end - Toggle for water sensitive mob damage
|
||||
+
|
||||
@Override
|
||||
protected void addAdditionalSaveData(ValueOutput output) {
|
||||
protected void addAdditionalSaveData(final ValueOutput output) {
|
||||
super.addAdditionalSaveData(output);
|
||||
diff --git a/net/minecraft/world/entity/monster/piglin/PiglinBrute.java b/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
|
||||
index 3d34bef7ffe9e66e77e3fc10b2c5869d98a4a5c9..4bf2038fea712e65f420ade915a18470b79318fc 100644
|
||||
index 4d82bf4283cb3ff26d5a9c367a28b4debed6cb0d..79e084304cec441966a22f0028e021d19e49bfd3 100644
|
||||
--- a/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
|
||||
+++ b/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
|
||||
@@ -90,6 +90,13 @@ public class PiglinBrute extends AbstractPiglin {
|
||||
@@ -75,6 +75,13 @@ public class PiglinBrute extends AbstractPiglin {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -1155,7 +1155,7 @@ index 3d34bef7ffe9e66e77e3fc10b2c5869d98a4a5c9..4bf2038fea712e65f420ade915a18470
|
||||
return Monster.createMonsterAttributes()
|
||||
.add(Attributes.MAX_HEALTH, 50.0)
|
||||
diff --git a/net/minecraft/world/entity/monster/skeleton/Skeleton.java b/net/minecraft/world/entity/monster/skeleton/Skeleton.java
|
||||
index 96d989cffc6ff72954ed92e2535c72992d489372..30d79be765118a50e2e2c5bfde6bf6bbc957cf40 100644
|
||||
index 76b16400085d237194ed646b04210c8eca8398d3..a2fc1cf5fa77c1cc78610ce0b4bbd35a371878a0 100644
|
||||
--- a/net/minecraft/world/entity/monster/skeleton/Skeleton.java
|
||||
+++ b/net/minecraft/world/entity/monster/skeleton/Skeleton.java
|
||||
@@ -50,6 +50,13 @@ public class Skeleton extends AbstractSkeleton {
|
||||
@@ -1170,10 +1170,10 @@ index 96d989cffc6ff72954ed92e2535c72992d489372..30d79be765118a50e2e2c5bfde6bf6bb
|
||||
+ // Purpur end - Toggle for water sensitive mob damage
|
||||
+
|
||||
@Override
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
protected void defineSynchedData(final SynchedEntityData.Builder entityData) {
|
||||
super.defineSynchedData(entityData);
|
||||
diff --git a/net/minecraft/world/entity/monster/skeleton/Stray.java b/net/minecraft/world/entity/monster/skeleton/Stray.java
|
||||
index 575f30cc9a6166a4e0733cc33e8b5814acb92660..ec19c49d195daff5839c991cce63b1ffc15a7e0b 100644
|
||||
index ce9364040d6e856fd1fa42baa75b403098e6813f..64dc2a04bb2ae4dc63083a24c48f671bfc8ff8ea 100644
|
||||
--- a/net/minecraft/world/entity/monster/skeleton/Stray.java
|
||||
+++ b/net/minecraft/world/entity/monster/skeleton/Stray.java
|
||||
@@ -47,6 +47,13 @@ public class Stray extends AbstractSkeleton {
|
||||
@@ -1188,10 +1188,10 @@ index 575f30cc9a6166a4e0733cc33e8b5814acb92660..ec19c49d195daff5839c991cce63b1ff
|
||||
+ // Purpur end - Toggle for water sensitive mob damage
|
||||
+
|
||||
public static boolean checkStraySpawnRules(
|
||||
EntityType<Stray> entityType, ServerLevelAccessor level, EntitySpawnReason spawnReason, BlockPos pos, RandomSource random
|
||||
final EntityType<Stray> type, final ServerLevelAccessor level, final EntitySpawnReason spawnReason, final BlockPos pos, final RandomSource random
|
||||
) {
|
||||
diff --git a/net/minecraft/world/entity/monster/skeleton/WitherSkeleton.java b/net/minecraft/world/entity/monster/skeleton/WitherSkeleton.java
|
||||
index f38bb54c0f5d7797179e5e75eb8092baea7b9dcb..3e8cc658b333f1259784e1426896ac8b8c1537fa 100644
|
||||
index 024b6d01eaf36ec6c9a85da669cc6bd0a4a6fc90..f1cf1d01a497fc46d201ad403b459f9886059d0f 100644
|
||||
--- a/net/minecraft/world/entity/monster/skeleton/WitherSkeleton.java
|
||||
+++ b/net/minecraft/world/entity/monster/skeleton/WitherSkeleton.java
|
||||
@@ -59,6 +59,13 @@ public class WitherSkeleton extends AbstractSkeleton {
|
||||
@@ -1209,7 +1209,7 @@ index f38bb54c0f5d7797179e5e75eb8092baea7b9dcb..3e8cc658b333f1259784e1426896ac8b
|
||||
protected void registerGoals() {
|
||||
this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractPiglin.class, true));
|
||||
diff --git a/net/minecraft/world/entity/monster/spider/CaveSpider.java b/net/minecraft/world/entity/monster/spider/CaveSpider.java
|
||||
index a1391173cc4997df723c59f176726dde88491978..fad3e951e443f04f5bf0423cde42c0ae299a4236 100644
|
||||
index beba154f2a76d3d8f7d9b44c1b45b83c9dc3b86c..cbbfdd2dde1437955f1007618244eeb72768b8fd 100644
|
||||
--- a/net/minecraft/world/entity/monster/spider/CaveSpider.java
|
||||
+++ b/net/minecraft/world/entity/monster/spider/CaveSpider.java
|
||||
@@ -51,6 +51,13 @@ public class CaveSpider extends Spider {
|
||||
@@ -1224,10 +1224,10 @@ index a1391173cc4997df723c59f176726dde88491978..fad3e951e443f04f5bf0423cde42c0ae
|
||||
+ // Purpur end - Toggle for water sensitive mob damage
|
||||
+
|
||||
@Override
|
||||
public boolean doHurtTarget(ServerLevel level, Entity target) {
|
||||
public boolean doHurtTarget(final ServerLevel level, final Entity target) {
|
||||
if (super.doHurtTarget(level, target)) {
|
||||
diff --git a/net/minecraft/world/entity/monster/spider/Spider.java b/net/minecraft/world/entity/monster/spider/Spider.java
|
||||
index 6a9c807ed50dab4b65787d9f7269385103fa5f26..81c500de41b11d4aa6c52dc290f132ad2c23f009 100644
|
||||
index 696d7fa001de544fd2124b4e1135725547a15a94..43c50e6808eaab4bb31ffbbc633a66bab49b9574 100644
|
||||
--- a/net/minecraft/world/entity/monster/spider/Spider.java
|
||||
+++ b/net/minecraft/world/entity/monster/spider/Spider.java
|
||||
@@ -77,6 +77,13 @@ public class Spider extends Monster {
|
||||
@@ -1245,10 +1245,10 @@ index 6a9c807ed50dab4b65787d9f7269385103fa5f26..81c500de41b11d4aa6c52dc290f132ad
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(1, new FloatGoal(this));
|
||||
diff --git a/net/minecraft/world/entity/monster/zombie/Drowned.java b/net/minecraft/world/entity/monster/zombie/Drowned.java
|
||||
index 327086c972423e4f73402ea2e64519a355fa7b5a..ec36b854dccae7cef905aeb2fcd4ec177828139c 100644
|
||||
index 0f64fe7e15655c63f996106d504ab4d18dac4a1c..e4769eeacc3ac97f90acb5ed0127990466c8d886 100644
|
||||
--- a/net/minecraft/world/entity/monster/zombie/Drowned.java
|
||||
+++ b/net/minecraft/world/entity/monster/zombie/Drowned.java
|
||||
@@ -126,6 +126,13 @@ public class Drowned extends Zombie implements RangedAttackMob {
|
||||
@@ -133,6 +133,13 @@ public class Drowned extends Zombie implements RangedAttackMob {
|
||||
}
|
||||
// Purpur end - Configurable jockey options
|
||||
|
||||
@@ -1263,10 +1263,10 @@ index 327086c972423e4f73402ea2e64519a355fa7b5a..ec36b854dccae7cef905aeb2fcd4ec17
|
||||
protected void addBehaviourGoals() {
|
||||
this.goalSelector.addGoal(1, new Drowned.DrownedGoToWaterGoal(this, 1.0));
|
||||
diff --git a/net/minecraft/world/entity/monster/zombie/Husk.java b/net/minecraft/world/entity/monster/zombie/Husk.java
|
||||
index 583a1c5bc0add01419f8eb90c65b612db972844d..d2c205f88d3d4e722ab407903ea019f51a3dcdb7 100644
|
||||
index c3f2d9ab49eb501f26939387624f326227908b81..8d6262e99fb3ad98d3142ee069f07d2370ca0778 100644
|
||||
--- a/net/minecraft/world/entity/monster/zombie/Husk.java
|
||||
+++ b/net/minecraft/world/entity/monster/zombie/Husk.java
|
||||
@@ -75,6 +75,13 @@ public class Husk extends Zombie {
|
||||
@@ -83,6 +83,13 @@ public class Husk extends Zombie {
|
||||
}
|
||||
// Purpur end - Configurable jockey options
|
||||
|
||||
@@ -1281,10 +1281,10 @@ index 583a1c5bc0add01419f8eb90c65b612db972844d..d2c205f88d3d4e722ab407903ea019f5
|
||||
public boolean isSunSensitive() {
|
||||
return false;
|
||||
diff --git a/net/minecraft/world/entity/monster/zombie/Zombie.java b/net/minecraft/world/entity/monster/zombie/Zombie.java
|
||||
index 88143183167de665216c73b5e19064d7023778b0..b3c62374719e2a0461a587f1311b2e8d90cb892b 100644
|
||||
index 5bf9970b93e27004dd832c8465dc95a681583ef6..0777e4e0c3aa932699f124c83a571ce913327740 100644
|
||||
--- a/net/minecraft/world/entity/monster/zombie/Zombie.java
|
||||
+++ b/net/minecraft/world/entity/monster/zombie/Zombie.java
|
||||
@@ -142,6 +142,13 @@ public class Zombie extends Monster {
|
||||
@@ -152,6 +152,13 @@ public class Zombie extends Monster {
|
||||
}
|
||||
// Purpur end - Configurable jockey options
|
||||
|
||||
@@ -1299,7 +1299,7 @@ index 88143183167de665216c73b5e19064d7023778b0..b3c62374719e2a0461a587f1311b2e8d
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
|
||||
diff --git a/net/minecraft/world/entity/monster/zombie/ZombieVillager.java b/net/minecraft/world/entity/monster/zombie/ZombieVillager.java
|
||||
index 020a15431cca2186fef3f7f6101cef77dabad393..df9682cacc2913aaf51b3afbd86bbc080ab8bde0 100644
|
||||
index 8a5634d2204b9abae560d34a7b0616b3ebdc68ab..ecbac0d55dbe921ac2e185e0acab5691579be512 100644
|
||||
--- a/net/minecraft/world/entity/monster/zombie/ZombieVillager.java
|
||||
+++ b/net/minecraft/world/entity/monster/zombie/ZombieVillager.java
|
||||
@@ -131,6 +131,13 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
|
||||
@@ -1314,13 +1314,13 @@ index 020a15431cca2186fef3f7f6101cef77dabad393..df9682cacc2913aaf51b3afbd86bbc08
|
||||
+ // Purpur end - Toggle for water sensitive mob damage
|
||||
+
|
||||
@Override
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
protected void defineSynchedData(final SynchedEntityData.Builder entityData) {
|
||||
super.defineSynchedData(entityData);
|
||||
diff --git a/net/minecraft/world/entity/monster/zombie/ZombifiedPiglin.java b/net/minecraft/world/entity/monster/zombie/ZombifiedPiglin.java
|
||||
index ec39ad6740361774f9ecfda7186cab9d8fac90f2..9a1da88752b0dd708365dd41a074cc0e90f36e1c 100644
|
||||
index d1edf1f44de1fc6d23bcd8044f8bf4165821790e..6cc4d4729520c60b98d45d5e7dd674e599616505 100644
|
||||
--- a/net/minecraft/world/entity/monster/zombie/ZombifiedPiglin.java
|
||||
+++ b/net/minecraft/world/entity/monster/zombie/ZombifiedPiglin.java
|
||||
@@ -106,6 +106,13 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
|
||||
@@ -110,6 +110,13 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
|
||||
}
|
||||
// Purpur end - Configurable jockey options
|
||||
|
||||
@@ -1335,10 +1335,10 @@ index ec39ad6740361774f9ecfda7186cab9d8fac90f2..9a1da88752b0dd708365dd41a074cc0e
|
||||
protected void addBehaviourGoals() {
|
||||
this.goalSelector.addGoal(1, new SpearUseGoal<>(this, 1.0, 1.0, 10.0F, 2.0F));
|
||||
diff --git a/net/minecraft/world/entity/npc/villager/Villager.java b/net/minecraft/world/entity/npc/villager/Villager.java
|
||||
index ed6642023fccbc8f825d7c5c206d73ffd666f0f9..b6bfe06a2ad8e4219d99de050b30ce1ad15b8b34 100644
|
||||
index fffc71d2f0cd0d4c4f5d8fad38130208cdbe5e67..fe93e373ea46970af5ca117e80a7d5a2497afeca 100644
|
||||
--- a/net/minecraft/world/entity/npc/villager/Villager.java
|
||||
+++ b/net/minecraft/world/entity/npc/villager/Villager.java
|
||||
@@ -282,6 +282,13 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -284,6 +284,13 @@ public class Villager extends AbstractVillager implements VillagerDataHolder, Re
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -1351,9 +1351,9 @@ index ed6642023fccbc8f825d7c5c206d73ffd666f0f9..b6bfe06a2ad8e4219d99de050b30ce1a
|
||||
+
|
||||
@Override
|
||||
public Brain<Villager> getBrain() {
|
||||
return (Brain<Villager>)super.getBrain();
|
||||
return (Brain<Villager>) super.getBrain();
|
||||
diff --git a/net/minecraft/world/entity/npc/wanderingtrader/WanderingTrader.java b/net/minecraft/world/entity/npc/wanderingtrader/WanderingTrader.java
|
||||
index c6c4f4f2a970db7e782181eaca312931b192b0d5..cabebbc25788a8c41912f97dac85af41c9433b68 100644
|
||||
index ea74d8ac0b5de890124361e65aeb9a08ad09fa1b..cbbfa09d53ada7c39e9504d28770867989eaa5c1 100644
|
||||
--- a/net/minecraft/world/entity/npc/wanderingtrader/WanderingTrader.java
|
||||
+++ b/net/minecraft/world/entity/npc/wanderingtrader/WanderingTrader.java
|
||||
@@ -99,6 +99,13 @@ public class WanderingTrader extends AbstractVillager implements Consumable.Over
|
||||
@@ -6,23 +6,20 @@ Subject: [PATCH] API for any mob to burn daylight
|
||||
Co-authored by: Encode42 <me@encode42.dev>
|
||||
|
||||
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
||||
index c8bc831c49df48c3f2ea2ea2d22a0aec5d37923c..41506648031e9c7a1acf12f56ba02b4aadec344c 100644
|
||||
index afcdf4aa479e27c858afab01191344e14a1f4ecc..5d581af745468f61048448c8a845990538662e3f 100644
|
||||
--- a/net/minecraft/world/entity/Entity.java
|
||||
+++ b/net/minecraft/world/entity/Entity.java
|
||||
@@ -544,6 +544,24 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
|
||||
@@ -452,6 +452,21 @@ public abstract class Entity
|
||||
}
|
||||
// Purpur end - Add canSaveToDisk to Entity
|
||||
|
||||
+ // Purpur start - copied from Mob - API for any mob to burn daylight
|
||||
+ public boolean isSunBurnTick() {
|
||||
+ if (!this.level().isClientSide() && this.level().environmentAttributes().getValue(EnvironmentAttributes.MONSTERS_BURN, this.position())) {
|
||||
+ float lightLevelDependentMagicValue = this.getLightLevelDependentMagicValue();
|
||||
+ BlockPos blockPos = BlockPos.containing(this.getX(), this.getEyeY(), this.getZ());
|
||||
+ boolean flag = this.isInWater() || this.isInPowderSnow || this.wasInPowderSnow;
|
||||
+ if (lightLevelDependentMagicValue > 0.5F
|
||||
+ && this.random.nextFloat() * 30.0F < (lightLevelDependentMagicValue - 0.4F) * 2.0F
|
||||
+ && !flag
|
||||
+ && this.level().canSeeSky(blockPos)) {
|
||||
+ float br = this.getLightLevelDependentMagicValue();
|
||||
+ BlockPos roundedPos = BlockPos.containing(this.getX(), this.getEyeY(), this.getZ());
|
||||
+ boolean isInNonBurnableBlock = this.isInWaterOrRain() || this.isInPowderSnow || this.wasInPowderSnow;
|
||||
+ if (br > 0.5F && this.random.nextFloat() * 30.0F < (br - 0.4F) * 2.0F && !isInNonBurnableBlock && this.level().canSeeSky(roundedPos)) {
|
||||
+ return true;
|
||||
+ }
|
||||
+ }
|
||||
@@ -31,38 +28,38 @@ index c8bc831c49df48c3f2ea2ea2d22a0aec5d37923c..41506648031e9c7a1acf12f56ba02b4a
|
||||
+ }
|
||||
+ // Purpur end - copied from Mob - API for any mob to burn daylight
|
||||
+
|
||||
public Entity(EntityType<?> type, Level level) {
|
||||
public Entity(final EntityType<?> type, final Level level) {
|
||||
this.type = type;
|
||||
this.level = level;
|
||||
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
|
||||
index 717e42ed210408c30f3fa2b6d786a2a51abfecc6..3fc775aa326701f4f491d487d587dfa39ed1db47 100644
|
||||
index 7146381e06ed1b946ce43dca293f52da05b46314..08324c0a0e87eb0ed8ea111389a3a9111031e034 100644
|
||||
--- a/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -290,6 +290,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
|
||||
@@ -291,6 +291,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
|
||||
public boolean silentDeath = false; // Paper - mark entity as dying silently for cancellable death event
|
||||
public net.kyori.adventure.util.TriState frictionState = net.kyori.adventure.util.TriState.NOT_SET; // Paper - Friction API
|
||||
public int invulnerableDuration = LivingEntity.INVULNERABLE_DURATION; // Paper - configurable invulnerable duration
|
||||
+ protected boolean shouldBurnInDay = false; public boolean shouldBurnInDay() { return this.shouldBurnInDay; } public void setShouldBurnInDay(boolean shouldBurnInDay) { this.shouldBurnInDay = shouldBurnInDay; } // Purpur - API for any mob to burn daylight
|
||||
// CraftBukkit end
|
||||
|
||||
protected LivingEntity(EntityType<? extends LivingEntity> type, Level level) {
|
||||
@@ -793,6 +794,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
|
||||
this.getSleepingPos().ifPresent(blockPos -> output.store("sleeping_pos", BlockPos.CODEC, blockPos));
|
||||
DataResult<Dynamic<?>> dataResult = this.brain.serializeStart(NbtOps.INSTANCE).map(tag -> new Dynamic<>(NbtOps.INSTANCE, tag));
|
||||
dataResult.resultOrPartial(LOGGER::error).ifPresent(dynamic -> output.store("Brain", Codec.PASSTHROUGH, (Dynamic<?>)dynamic));
|
||||
protected LivingEntity(final EntityType<? extends LivingEntity> type, final Level level) {
|
||||
@@ -788,6 +789,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
|
||||
output.putBoolean("FallFlying", this.isFallFlying());
|
||||
this.getSleepingPos().ifPresent(sleepingPos -> output.store("sleeping_pos", BlockPos.CODEC, sleepingPos));
|
||||
output.store("Brain", Brain.Packed.CODEC, this.brain.pack());
|
||||
+ output.putBoolean("Purpur.ShouldBurnInDay", this.shouldBurnInDay); // Purpur - API for any mob to burn daylight
|
||||
if (this.lastHurtByPlayer != null) {
|
||||
this.lastHurtByPlayer.store(output, "last_hurt_by_player");
|
||||
output.putInt("last_hurt_by_player_memory_time", this.lastHurtByPlayerMemoryTime);
|
||||
@@ -917,6 +919,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
|
||||
@@ -912,6 +914,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
|
||||
} // Paper - The sleeping pos will always also set the actual pos, so a desync suggests something is wrong
|
||||
}, this::clearSleepingPos);
|
||||
input.read("Brain", Codec.PASSTHROUGH).ifPresent(dynamic -> this.brain = this.makeBrain((Dynamic<?>)dynamic));
|
||||
input.read("Brain", Brain.Packed.CODEC).ifPresent(packedBrain -> this.brain = this.makeBrain(packedBrain));
|
||||
+ this.shouldBurnInDay = input.getBooleanOr("Purpur.ShouldBurnInDay", this.shouldBurnInDay); // Purpur - API for any mob to burn daylight
|
||||
this.lastHurtByPlayer = EntityReference.read(input, "last_hurt_by_player");
|
||||
this.lastHurtByPlayerMemoryTime = input.getIntOr("last_hurt_by_player_memory_time", 0);
|
||||
this.lastHurtByMob = EntityReference.read(input, "last_hurt_by_mob");
|
||||
@@ -3862,6 +3865,37 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
|
||||
@@ -3915,6 +3918,37 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
|
||||
if (this.level() instanceof ServerLevel serverLevel && this.isSensitiveToWater() && this.isInWaterOrRain()) {
|
||||
this.hurtServer(serverLevel, this.damageSources().drown(), 1.0F);
|
||||
}
|
||||
@@ -101,33 +98,30 @@ index 717e42ed210408c30f3fa2b6d786a2a51abfecc6..3fc775aa326701f4f491d487d587dfa3
|
||||
|
||||
protected void applyInput() {
|
||||
diff --git a/net/minecraft/world/entity/Mob.java b/net/minecraft/world/entity/Mob.java
|
||||
index 01667b8d45653aa6b0f77d65599f7dc68979f9f1..9cf790b9293788857e3ca6ec23f22e6e1dea57ae 100644
|
||||
index 43f1a9287d2a3010d35a88d58df3e950f1011eec..44e3e723d6a796917e73012dbd03d4b36cb11a0e 100644
|
||||
--- a/net/minecraft/world/entity/Mob.java
|
||||
+++ b/net/minecraft/world/entity/Mob.java
|
||||
@@ -544,9 +544,9 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
|
||||
@@ -550,9 +550,9 @@ public abstract class Mob extends LivingEntity implements Targeting, EquipmentUs
|
||||
@Override
|
||||
public void aiStep() {
|
||||
super.aiStep();
|
||||
- if (this.getType().is(EntityTypeTags.BURN_IN_DAYLIGHT)) {
|
||||
+ /*if (this.getType().is(EntityTypeTags.BURN_IN_DAYLIGHT)) { // Purpur start - implemented in LivingEntity - API for any mob to burn daylight
|
||||
- if (this.is(EntityTypeTags.BURN_IN_DAYLIGHT)) {
|
||||
+ /*if (this.is(EntityTypeTags.BURN_IN_DAYLIGHT)) { // Purpur start - implemented in LivingEntity - API for any mob to burn daylight
|
||||
this.burnUndead();
|
||||
- }
|
||||
+ }*/ // Purpur end - implemented in LivingEntity - API for any mob to burn daylight
|
||||
|
||||
ProfilerFiller profilerFiller = Profiler.get();
|
||||
profilerFiller.push("looting");
|
||||
@@ -601,19 +601,8 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
|
||||
ProfilerFiller profiler = Profiler.get();
|
||||
profiler.push("looting");
|
||||
@@ -604,16 +604,8 @@ public abstract class Mob extends LivingEntity implements Targeting, EquipmentUs
|
||||
}
|
||||
|
||||
public boolean isSunBurnTick() {
|
||||
- if (!this.level().isClientSide() && this.level().environmentAttributes().getValue(EnvironmentAttributes.MONSTERS_BURN, this.position())) {
|
||||
- float lightLevelDependentMagicValue = this.getLightLevelDependentMagicValue();
|
||||
- BlockPos blockPos = BlockPos.containing(this.getX(), this.getEyeY(), this.getZ());
|
||||
- boolean flag = this.isInWaterOrRain() || this.isInPowderSnow || this.wasInPowderSnow;
|
||||
- if (lightLevelDependentMagicValue > 0.5F
|
||||
- && this.random.nextFloat() * 30.0F < (lightLevelDependentMagicValue - 0.4F) * 2.0F
|
||||
- && !flag
|
||||
- && this.level().canSeeSky(blockPos)) {
|
||||
- float br = this.getLightLevelDependentMagicValue();
|
||||
- BlockPos roundedPos = BlockPos.containing(this.getX(), this.getEyeY(), this.getZ());
|
||||
- boolean isInNonBurnableBlock = this.isInWaterOrRain() || this.isInPowderSnow || this.wasInPowderSnow;
|
||||
- if (br > 0.5F && this.random.nextFloat() * 30.0F < (br - 0.4F) * 2.0F && !isInNonBurnableBlock && this.level().canSeeSky(roundedPos)) {
|
||||
- return true;
|
||||
- }
|
||||
- }
|
||||
@@ -139,34 +133,34 @@ index 01667b8d45653aa6b0f77d65599f7dc68979f9f1..9cf790b9293788857e3ca6ec23f22e6e
|
||||
|
||||
protected Vec3i getPickupReach() {
|
||||
diff --git a/net/minecraft/world/entity/animal/equine/ZombieHorse.java b/net/minecraft/world/entity/animal/equine/ZombieHorse.java
|
||||
index b770d3118452b0b7a362b1f541bb602f4d3cbcec..45bb4df25015568f0758095d9a309633bed520f3 100644
|
||||
index 586151b916a5e21c36578aa04cab9d71994dcf43..426b468ee821a7441d15dae3634032535cb60725 100644
|
||||
--- a/net/minecraft/world/entity/animal/equine/ZombieHorse.java
|
||||
+++ b/net/minecraft/world/entity/animal/equine/ZombieHorse.java
|
||||
@@ -50,6 +50,7 @@ public class ZombieHorse extends AbstractHorse {
|
||||
@@ -47,6 +47,7 @@ public class ZombieHorse extends AbstractHorse {
|
||||
|
||||
public ZombieHorse(final EntityType<? extends ZombieHorse> type, final Level level) {
|
||||
super(type, level);
|
||||
this.setPathfindingMalus(PathType.DANGER_OTHER, -1.0F);
|
||||
this.setPathfindingMalus(PathType.DAMAGE_OTHER, -1.0F);
|
||||
+ this.setShouldBurnInDay(true); // Purpur - API for any mob to burn daylight
|
||||
}
|
||||
|
||||
// Purpur start - Ridables
|
||||
diff --git a/net/minecraft/world/entity/animal/nautilus/ZombieNautilus.java b/net/minecraft/world/entity/animal/nautilus/ZombieNautilus.java
|
||||
index 94383c5020b6631203ddc4e0a58a222729ffe9a2..7dd933dd38fc50e870bc74e5a54e2b50a85fa6f3 100644
|
||||
index 18bfb321e3728d3fa0596da0b86e4b76ced2178a..ab97449bfa5e8b5615e0f2b6b16be2fe7e4233fd 100644
|
||||
--- a/net/minecraft/world/entity/animal/nautilus/ZombieNautilus.java
|
||||
+++ b/net/minecraft/world/entity/animal/nautilus/ZombieNautilus.java
|
||||
@@ -41,6 +41,7 @@ public class ZombieNautilus extends AbstractNautilus {
|
||||
@@ -46,6 +46,7 @@ public class ZombieNautilus extends AbstractNautilus {
|
||||
|
||||
public ZombieNautilus(EntityType<? extends ZombieNautilus> type, Level level) {
|
||||
public ZombieNautilus(final EntityType<? extends ZombieNautilus> type, final Level level) {
|
||||
super(type, level);
|
||||
+ this.setShouldBurnInDay(true); // Purpur - API for any mob to burn daylight
|
||||
}
|
||||
|
||||
// Purpur start - Configurable entity base attributes
|
||||
diff --git a/net/minecraft/world/entity/monster/Phantom.java b/net/minecraft/world/entity/monster/Phantom.java
|
||||
index 2fa22088ac507eceb36f3c77f24a733076641d8f..ff944ad57d4e9e4a910cd63282e5e7594626365e 100644
|
||||
index 20096d8305bbfc29195834b87245c94096986ec8..6b6eed1c636f2ca65d0cbcd71e96bdd1b2063267 100644
|
||||
--- a/net/minecraft/world/entity/monster/Phantom.java
|
||||
+++ b/net/minecraft/world/entity/monster/Phantom.java
|
||||
@@ -52,7 +52,7 @@ public class Phantom extends Mob implements Enemy {
|
||||
@@ -53,7 +53,7 @@ public class Phantom extends Mob implements Enemy {
|
||||
Vec3 crystalPosition; // Purpur - Phantoms attracted to crystals and crystals shoot phantoms
|
||||
// Paper start
|
||||
public java.util.@Nullable UUID spawningEntity;
|
||||
@@ -175,7 +169,7 @@ index 2fa22088ac507eceb36f3c77f24a733076641d8f..ff944ad57d4e9e4a910cd63282e5e759
|
||||
// Paper end
|
||||
private static final net.minecraft.world.item.crafting.Ingredient TORCH = net.minecraft.world.item.crafting.Ingredient.of(net.minecraft.world.item.Items.TORCH, net.minecraft.world.item.Items.SOUL_TORCH); // Purpur - Phantoms burn in light
|
||||
|
||||
@@ -61,6 +61,7 @@ public class Phantom extends Mob implements Enemy {
|
||||
@@ -62,6 +62,7 @@ public class Phantom extends Mob implements Enemy {
|
||||
this.xpReward = 5;
|
||||
this.moveControl = new Phantom.PhantomMoveControl(this);
|
||||
this.lookControl = new Phantom.PhantomLookControl(this);
|
||||
@@ -183,7 +177,7 @@ index 2fa22088ac507eceb36f3c77f24a733076641d8f..ff944ad57d4e9e4a910cd63282e5e759
|
||||
}
|
||||
|
||||
// Purpur start - Ridables
|
||||
@@ -297,7 +298,7 @@ public class Phantom extends Mob implements Enemy {
|
||||
@@ -298,7 +299,7 @@ public class Phantom extends Mob implements Enemy {
|
||||
this.setPhantomSize(input.getIntOr("size", 0));
|
||||
// Paper start
|
||||
this.spawningEntity = input.read("Paper.SpawningEntity", net.minecraft.core.UUIDUtil.CODEC).orElse(null);
|
||||
@@ -192,7 +186,7 @@ index 2fa22088ac507eceb36f3c77f24a733076641d8f..ff944ad57d4e9e4a910cd63282e5e759
|
||||
// Paper end
|
||||
}
|
||||
|
||||
@@ -308,7 +309,7 @@ public class Phantom extends Mob implements Enemy {
|
||||
@@ -309,7 +310,7 @@ public class Phantom extends Mob implements Enemy {
|
||||
output.putInt("size", this.getPhantomSize());
|
||||
// Paper start
|
||||
output.storeNullable("Paper.SpawningEntity", net.minecraft.core.UUIDUtil.CODEC, this.spawningEntity);
|
||||
@@ -202,32 +196,33 @@ index 2fa22088ac507eceb36f3c77f24a733076641d8f..ff944ad57d4e9e4a910cd63282e5e759
|
||||
}
|
||||
|
||||
diff --git a/net/minecraft/world/entity/monster/skeleton/AbstractSkeleton.java b/net/minecraft/world/entity/monster/skeleton/AbstractSkeleton.java
|
||||
index 1ab860be69bcc1ab5cc07418c2d7e733afdc482b..60afd81d3bf671889fbff5d4a3fabb38a8e2d461 100644
|
||||
index 32da5212c85c829eeedc9d0f7904bbcaa3ce5ed3..062c7f20e73b882ef0550d90e3da47ac39a1b3a7 100644
|
||||
--- a/net/minecraft/world/entity/monster/skeleton/AbstractSkeleton.java
|
||||
+++ b/net/minecraft/world/entity/monster/skeleton/AbstractSkeleton.java
|
||||
@@ -66,11 +66,12 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
|
||||
@@ -71,11 +71,12 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
|
||||
AbstractSkeleton.this.setAggressive(true);
|
||||
}
|
||||
};
|
||||
- private boolean shouldBurnInDay = true; // Paper - shouldBurnInDay API
|
||||
+ //private boolean shouldBurnInDay = true; // Paper - shouldBurnInDay API // Purpur - moved to LivingEntity; keep methods for ABI compatibility - API for any mob to burn daylight
|
||||
|
||||
protected AbstractSkeleton(EntityType<? extends AbstractSkeleton> type, Level level) {
|
||||
protected AbstractSkeleton(final EntityType<? extends AbstractSkeleton> type, final Level level) {
|
||||
super(type, level);
|
||||
this.reassessWeaponGoal();
|
||||
+ this.setShouldBurnInDay(true); // Purpur - API for any mob to burn daylight
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -223,14 +224,14 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
|
||||
protected void readAdditionalSaveData(ValueInput input) {
|
||||
@@ -228,7 +229,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
|
||||
protected void readAdditionalSaveData(final ValueInput input) {
|
||||
super.readAdditionalSaveData(input);
|
||||
this.reassessWeaponGoal();
|
||||
- this.shouldBurnInDay = input.getBooleanOr("Paper.ShouldBurnInDay", true); // Paper - shouldBurnInDay API
|
||||
+ //this.shouldBurnInDay = input.getBooleanOr("Paper.ShouldBurnInDay", true); // Paper - shouldBurnInDay API // Purpur - implemented in LivingEntity - API for any mob to burn daylight
|
||||
}
|
||||
|
||||
// Paper start - shouldBurnInDay API
|
||||
// Paper start - silent equipping
|
||||
@@ -254,7 +255,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
|
||||
@Override
|
||||
protected void addAdditionalSaveData(final net.minecraft.world.level.storage.ValueOutput output) {
|
||||
super.addAdditionalSaveData(output);
|
||||
@@ -235,32 +230,32 @@ index 1ab860be69bcc1ab5cc07418c2d7e733afdc482b..60afd81d3bf671889fbff5d4a3fabb38
|
||||
+ //output.putBoolean("Paper.ShouldBurnInDay", this.shouldBurnInDay); // Purpur - implemented in LivingEntity - API for any mob to burn daylight
|
||||
}
|
||||
// Paper end - shouldBurnInDay API
|
||||
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/monster/skeleton/Parched.java b/net/minecraft/world/entity/monster/skeleton/Parched.java
|
||||
index 0920999cdea48a2bc94d98c2ccb23584182a1e45..7f80b66df5c1d68c894475b088154d0790ddd94f 100644
|
||||
index 36348e59c278e8842330e685340820c2ac9205eb..b14ea9e0f3de832fb73ae51728607486e399120b 100644
|
||||
--- a/net/minecraft/world/entity/monster/skeleton/Parched.java
|
||||
+++ b/net/minecraft/world/entity/monster/skeleton/Parched.java
|
||||
@@ -17,6 +17,7 @@ import org.jspecify.annotations.Nullable;
|
||||
public class Parched extends AbstractSkeleton {
|
||||
public Parched(EntityType<? extends AbstractSkeleton> type, Level level) {
|
||||
public Parched(final EntityType<? extends AbstractSkeleton> type, final Level level) {
|
||||
super(type, level);
|
||||
+ this.setShouldBurnInDay(false); // Purpur - API for any mob to burn daylight
|
||||
}
|
||||
|
||||
@Override
|
||||
diff --git a/net/minecraft/world/entity/monster/zombie/Husk.java b/net/minecraft/world/entity/monster/zombie/Husk.java
|
||||
index 928e2c95146bc3fc9b8c41c5b6c3970fc919bb15..31b91dbc3f3e1875fbe6750bb815514686d14f7f 100644
|
||||
index 8d6262e99fb3ad98d3142ee069f07d2370ca0778..02e935edd7a6cabbf2e6fcc6c96a9601bee71acc 100644
|
||||
--- a/net/minecraft/world/entity/monster/zombie/Husk.java
|
||||
+++ b/net/minecraft/world/entity/monster/zombie/Husk.java
|
||||
@@ -27,6 +27,7 @@ import org.jspecify.annotations.Nullable;
|
||||
public class Husk extends Zombie {
|
||||
public Husk(EntityType<? extends Husk> type, Level level) {
|
||||
@@ -35,6 +35,7 @@ public class Husk extends Zombie {
|
||||
|
||||
public Husk(final EntityType<? extends Husk> type, final Level level) {
|
||||
super(type, level);
|
||||
+ this.setShouldBurnInDay(false); // Purpur - API for any mob to burn daylight
|
||||
}
|
||||
|
||||
// Purpur start - Ridables
|
||||
@@ -84,7 +85,7 @@ public class Husk extends Zombie {
|
||||
@@ -92,7 +93,7 @@ public class Husk extends Zombie {
|
||||
|
||||
@Override
|
||||
public boolean isSunSensitive() {
|
||||
@@ -270,24 +265,24 @@ index 928e2c95146bc3fc9b8c41c5b6c3970fc919bb15..31b91dbc3f3e1875fbe6750bb8155146
|
||||
|
||||
@Override
|
||||
diff --git a/net/minecraft/world/entity/monster/zombie/Zombie.java b/net/minecraft/world/entity/monster/zombie/Zombie.java
|
||||
index 35f2607d3fdfcef11218e4b96477c8f8c798361e..7a26b05c15d23eb84e34d02905b3d5c12958c034 100644
|
||||
index 0777e4e0c3aa932699f124c83a571ce913327740..dffb152543d06380618c36cf89374b7d11336039 100644
|
||||
--- a/net/minecraft/world/entity/monster/zombie/Zombie.java
|
||||
+++ b/net/minecraft/world/entity/monster/zombie/Zombie.java
|
||||
@@ -92,11 +92,12 @@ public class Zombie extends Monster {
|
||||
@@ -102,11 +102,12 @@ public class Zombie extends Monster {
|
||||
private boolean canBreakDoors = false;
|
||||
private int inWaterTime = 0;
|
||||
public int conversionTime;
|
||||
- private boolean shouldBurnInDay = true; // Paper - Add more Zombie API
|
||||
+ //private boolean shouldBurnInDay = true; // Paper - Add more Zombie API // Purpur - implemented in LivingEntity - API for any mob to burn daylight
|
||||
|
||||
public Zombie(EntityType<? extends Zombie> type, Level level) {
|
||||
public Zombie(final EntityType<? extends Zombie> type, final Level level) {
|
||||
super(type, level);
|
||||
this.breakDoorGoal = new BreakDoorGoal(this, com.google.common.base.Predicates.in(level.paperConfig().entities.behavior.doorBreakingDifficulty.getOrDefault(type, level.paperConfig().entities.behavior.doorBreakingDifficulty.get(EntityType.ZOMBIE)))); // Paper - Configurable door breaking difficulty
|
||||
+ this.setShouldBurnInDay(true); // Purpur - API for any mob to burn daylight
|
||||
}
|
||||
|
||||
public Zombie(Level level) {
|
||||
@@ -347,6 +348,7 @@ public class Zombie extends Monster {
|
||||
public Zombie(final Level level) {
|
||||
@@ -364,6 +365,7 @@ public class Zombie extends Monster {
|
||||
// CraftBukkit end
|
||||
}
|
||||
|
||||
@@ -295,7 +290,7 @@ index 35f2607d3fdfcef11218e4b96477c8f8c798361e..7a26b05c15d23eb84e34d02905b3d5c1
|
||||
public boolean isSunSensitive() {
|
||||
return this.shouldBurnInDay; // Paper - Add more Zombie API
|
||||
}
|
||||
@@ -486,7 +488,7 @@ public class Zombie extends Monster {
|
||||
@@ -505,7 +507,7 @@ public class Zombie extends Monster {
|
||||
output.putBoolean("CanBreakDoors", this.canBreakDoors());
|
||||
output.putInt("InWaterTime", this.isInWater() ? this.inWaterTime : -1);
|
||||
output.putInt("DrownedConversionTime", this.isUnderWaterConverting() ? this.conversionTime : -1);
|
||||
@@ -304,7 +299,7 @@ index 35f2607d3fdfcef11218e4b96477c8f8c798361e..7a26b05c15d23eb84e34d02905b3d5c1
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -501,7 +503,7 @@ public class Zombie extends Monster {
|
||||
@@ -520,7 +522,7 @@ public class Zombie extends Monster {
|
||||
} else {
|
||||
this.getEntityData().set(DATA_DROWNED_CONVERSION_ID, false);
|
||||
}
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Cows naturally aggressive to players chance
|
||||
|
||||
|
||||
diff --git a/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java b/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java
|
||||
index ccdd439a89b7e7e10ee960cfe1e5e119d5367799..49292ae53f2b4554064daa4953a8cec00aa1fa98 100644
|
||||
index 34d2394006a006ea0773a52bb43b5cb3617470e5..7cd25e2b5e2e50b50fff00ca9e5c3a48ee2a3375 100644
|
||||
--- a/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java
|
||||
+++ b/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java
|
||||
@@ -135,7 +135,7 @@ public class DefaultAttributes {
|
||||
@@ -18,19 +18,19 @@ index ccdd439a89b7e7e10ee960cfe1e5e119d5367799..49292ae53f2b4554064daa4953a8cec0
|
||||
.put(EntityType.NAUTILUS, Nautilus.createAttributes().build())
|
||||
.put(EntityType.OCELOT, Ocelot.createAttributes().build())
|
||||
diff --git a/net/minecraft/world/entity/animal/cow/Cow.java b/net/minecraft/world/entity/animal/cow/Cow.java
|
||||
index bb8c75d20e6a1300d68ae75233962bdc26736c77..9fa18b190091bbfcb9a65d8d35f68fc7375f504f 100644
|
||||
index 7d3853d693a87e5225a16285631e0e2057685c1b..cdd404f64e196629dd61035675aac984619f1e1c 100644
|
||||
--- a/net/minecraft/world/entity/animal/cow/Cow.java
|
||||
+++ b/net/minecraft/world/entity/animal/cow/Cow.java
|
||||
@@ -23,6 +23,8 @@ import net.minecraft.world.level.storage.ValueOutput;
|
||||
@@ -25,6 +25,8 @@ import net.minecraft.world.level.storage.ValueOutput;
|
||||
import org.jspecify.annotations.Nullable;
|
||||
|
||||
public class Cow extends AbstractCow {
|
||||
+ private boolean isNaturallyAggressiveToPlayers; // Purpur - Cows naturally aggressive to players chance
|
||||
+
|
||||
private static final EntityDataAccessor<Holder<CowVariant>> DATA_VARIANT_ID = SynchedEntityData.defineId(Cow.class, EntityDataSerializers.COW_VARIANT);
|
||||
|
||||
public Cow(EntityType<? extends Cow> type, Level level) {
|
||||
@@ -49,8 +51,9 @@ public class Cow extends AbstractCow {
|
||||
private static final EntityDataAccessor<Holder<CowSoundVariant>> DATA_SOUND_VARIANT_ID = SynchedEntityData.defineId(
|
||||
Cow.class, EntityDataSerializers.COW_SOUND_VARIANT
|
||||
@@ -54,8 +56,9 @@ public class Cow extends AbstractCow {
|
||||
// Purpur start - Configurable entity base attributes
|
||||
@Override
|
||||
public void initAttributes() {
|
||||
@@ -42,7 +42,7 @@ index bb8c75d20e6a1300d68ae75233962bdc26736c77..9fa18b190091bbfcb9a65d8d35f68fc7
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -68,6 +71,13 @@ public class Cow extends AbstractCow {
|
||||
@@ -73,6 +76,13 @@ public class Cow extends AbstractCow {
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -54,10 +54,10 @@ index bb8c75d20e6a1300d68ae75233962bdc26736c77..9fa18b190091bbfcb9a65d8d35f68fc7
|
||||
+ }
|
||||
+
|
||||
@Override
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
@@ -80,6 +90,12 @@ public class Cow extends AbstractCow {
|
||||
VariantUtils.writeVariant(output, this.getVariant());
|
||||
protected void defineSynchedData(final SynchedEntityData.Builder entityData) {
|
||||
super.defineSynchedData(entityData);
|
||||
@@ -93,6 +103,12 @@ public class Cow extends AbstractCow {
|
||||
);
|
||||
}
|
||||
|
||||
+ // Purpur start - Cows naturally aggressive to players chance
|
||||
@@ -67,13 +67,13 @@ index bb8c75d20e6a1300d68ae75233962bdc26736c77..9fa18b190091bbfcb9a65d8d35f68fc7
|
||||
+ // Purpur end - Cows naturally aggressive to players chance
|
||||
+
|
||||
@Override
|
||||
protected void readAdditionalSaveData(ValueInput input) {
|
||||
protected void readAdditionalSaveData(final ValueInput input) {
|
||||
super.readAdditionalSaveData(input);
|
||||
@@ -100,6 +116,7 @@ public class Cow extends AbstractCow {
|
||||
@@ -116,6 +132,7 @@ public class Cow extends AbstractCow {
|
||||
public SpawnGroupData finalizeSpawn(
|
||||
ServerLevelAccessor level, DifficultyInstance difficulty, EntitySpawnReason spawnReason, @Nullable SpawnGroupData spawnGroupData
|
||||
final ServerLevelAccessor level, final DifficultyInstance difficulty, final EntitySpawnReason spawnReason, final @Nullable SpawnGroupData groupData
|
||||
) {
|
||||
+ this.isNaturallyAggressiveToPlayers = level.getLevel().purpurConfig.cowNaturallyAggressiveToPlayersChance > 0.0D && random.nextDouble() <= level.getLevel().purpurConfig.cowNaturallyAggressiveToPlayersChance; // Purpur - Cows naturally aggressive to players chance
|
||||
VariantUtils.selectVariantToSpawn(SpawnContext.create(level, this.blockPosition()), Registries.COW_VARIANT).ifPresent(this::setVariant);
|
||||
return super.finalizeSpawn(level, difficulty, spawnReason, spawnGroupData);
|
||||
}
|
||||
this.setSoundVariant(CowSoundVariants.pickRandomSoundVariant(this.registryAccess(), level.getRandom()));
|
||||
return super.finalizeSpawn(level, difficulty, spawnReason, groupData);
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Mobs always drop experience
|
||||
|
||||
|
||||
diff --git a/net/minecraft/world/entity/ambient/Bat.java b/net/minecraft/world/entity/ambient/Bat.java
|
||||
index e83900f8d6adbe8a48294f250bd6cc6e3fad8160..b642f71d282773afb9fe273cbe65765afa2d5868 100644
|
||||
index 15bb425ed1569cbf445e81aa296039df8abc4746..1dfc4f04169b60c917d9df58b4217adcb80470f8 100644
|
||||
--- a/net/minecraft/world/entity/ambient/Bat.java
|
||||
+++ b/net/minecraft/world/entity/ambient/Bat.java
|
||||
@@ -116,6 +116,13 @@ public class Bat extends AmbientCreature {
|
||||
@@ -23,10 +23,10 @@ index e83900f8d6adbe8a48294f250bd6cc6e3fad8160..b642f71d282773afb9fe273cbe65765a
|
||||
public boolean isFlapping() {
|
||||
return !this.isResting() && this.tickCount % 10.0F == 0.0F;
|
||||
diff --git a/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/net/minecraft/world/entity/animal/axolotl/Axolotl.java
|
||||
index 947160c4dfc4e50bb75a1a797cb2f22602b22643..e5ac43bf5631254c31d91abb1c5de408807429dd 100644
|
||||
index a3a98df8ffeb33d86330b5561252eda596642da8..85986d2dc0c12a34f990e4262f79f813c9ff4cdf 100644
|
||||
--- a/net/minecraft/world/entity/animal/axolotl/Axolotl.java
|
||||
+++ b/net/minecraft/world/entity/animal/axolotl/Axolotl.java
|
||||
@@ -160,6 +160,13 @@ public class Axolotl extends Animal implements Bucketable {
|
||||
@@ -157,6 +157,13 @@ public class Axolotl extends Animal implements Bucketable {
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -38,13 +38,13 @@ index 947160c4dfc4e50bb75a1a797cb2f22602b22643..e5ac43bf5631254c31d91abb1c5de408
|
||||
+ // Purpur end - Mobs always drop experience
|
||||
+
|
||||
@Override
|
||||
public float getWalkTargetValue(BlockPos pos, LevelReader level) {
|
||||
public float getWalkTargetValue(final BlockPos pos, final LevelReader level) {
|
||||
return 0.0F;
|
||||
diff --git a/net/minecraft/world/entity/animal/bee/Bee.java b/net/minecraft/world/entity/animal/bee/Bee.java
|
||||
index e57200d6560a38cbecd681a30b75409412fce170..10dfa28ec46727e60f8a9c90d7e8914aa8b96ea1 100644
|
||||
index 4fba5ce59065ac024a0108726623dab894ae45c5..17ec9642772d02092768da5d5a1396d357199268 100644
|
||||
--- a/net/minecraft/world/entity/animal/bee/Bee.java
|
||||
+++ b/net/minecraft/world/entity/animal/bee/Bee.java
|
||||
@@ -499,6 +499,13 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
|
||||
@@ -502,6 +502,13 @@ public class Bee extends Animal implements FlyingAnimal, NeutralMob {
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -59,10 +59,10 @@ index e57200d6560a38cbecd681a30b75409412fce170..10dfa28ec46727e60f8a9c90d7e8914a
|
||||
public long getPersistentAngerEndTime() {
|
||||
return this.entityData.get(DATA_ANGER_END_TIME);
|
||||
diff --git a/net/minecraft/world/entity/animal/chicken/Chicken.java b/net/minecraft/world/entity/animal/chicken/Chicken.java
|
||||
index 6308bb606b34d781e315f56a55e6544b3c156d85..341d6ecefb126be61b5f43a73638847e2bf9f125 100644
|
||||
index 4a59e133fc6c68f3b3d495c62bb965718643f6b8..c75abd1befdbcf1ace817cf243a50945cf706e95 100644
|
||||
--- a/net/minecraft/world/entity/animal/chicken/Chicken.java
|
||||
+++ b/net/minecraft/world/entity/animal/chicken/Chicken.java
|
||||
@@ -117,6 +117,13 @@ public class Chicken extends Animal {
|
||||
@@ -120,6 +120,13 @@ public class Chicken extends Animal {
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -77,10 +77,10 @@ index 6308bb606b34d781e315f56a55e6544b3c156d85..341d6ecefb126be61b5f43a73638847e
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new FloatGoal(this));
|
||||
diff --git a/net/minecraft/world/entity/animal/cow/Cow.java b/net/minecraft/world/entity/animal/cow/Cow.java
|
||||
index 9fa18b190091bbfcb9a65d8d35f68fc7375f504f..1463e94d3851614caee216b50e90d1980de75298 100644
|
||||
index cdd404f64e196629dd61035675aac984619f1e1c..8e90f9163bcd93691bb40d1db02e06381ebe0182 100644
|
||||
--- a/net/minecraft/world/entity/animal/cow/Cow.java
|
||||
+++ b/net/minecraft/world/entity/animal/cow/Cow.java
|
||||
@@ -71,6 +71,13 @@ public class Cow extends AbstractCow {
|
||||
@@ -76,6 +76,13 @@ public class Cow extends AbstractCow {
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -95,7 +95,7 @@ index 9fa18b190091bbfcb9a65d8d35f68fc7375f504f..1463e94d3851614caee216b50e90d198
|
||||
protected void registerGoals() {
|
||||
super.registerGoals();
|
||||
diff --git a/net/minecraft/world/entity/animal/cow/MushroomCow.java b/net/minecraft/world/entity/animal/cow/MushroomCow.java
|
||||
index a8e6e703a51130066547724dd08bdfe5e11c99e5..3327b93f095b6b6b6d5620bffd03232d4fb47d20 100644
|
||||
index d3e5e12c4e3c168a3a15d611f8ae5845ee365080..07a1df530fcd5d684cbba4414ea0fa2010cbdb5b 100644
|
||||
--- a/net/minecraft/world/entity/animal/cow/MushroomCow.java
|
||||
+++ b/net/minecraft/world/entity/animal/cow/MushroomCow.java
|
||||
@@ -99,6 +99,13 @@ public class MushroomCow extends AbstractCow implements Shearable {
|
||||
@@ -110,13 +110,13 @@ index a8e6e703a51130066547724dd08bdfe5e11c99e5..3327b93f095b6b6b6d5620bffd03232d
|
||||
+ // Purpur end - Mobs always drop experience
|
||||
+
|
||||
@Override
|
||||
public float getWalkTargetValue(BlockPos pos, LevelReader level) {
|
||||
public float getWalkTargetValue(final BlockPos pos, final LevelReader level) {
|
||||
return level.getBlockState(pos.below()).is(Blocks.MYCELIUM) ? 10.0F : level.getPathfindingCostFromLightLevels(pos);
|
||||
diff --git a/net/minecraft/world/entity/animal/dolphin/Dolphin.java b/net/minecraft/world/entity/animal/dolphin/Dolphin.java
|
||||
index e3646a05c6cb973fad36297cc18cf48587a6f5cd..ea3ccc1f39f70c8ce407ed94ab19a3caa3b90dc4 100644
|
||||
index c372a2cc7ec9ac03629a73a45bfc58f77894d63b..4f39f0213f4af3589ed53c7238c91b4300a3b174 100644
|
||||
--- a/net/minecraft/world/entity/animal/dolphin/Dolphin.java
|
||||
+++ b/net/minecraft/world/entity/animal/dolphin/Dolphin.java
|
||||
@@ -167,6 +167,13 @@ public class Dolphin extends AgeableWaterCreature {
|
||||
@@ -169,6 +169,13 @@ public class Dolphin extends AgeableWaterCreature {
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -129,9 +129,9 @@ index e3646a05c6cb973fad36297cc18cf48587a6f5cd..ea3ccc1f39f70c8ce407ed94ab19a3ca
|
||||
+
|
||||
@Override
|
||||
public @Nullable SpawnGroupData finalizeSpawn(
|
||||
ServerLevelAccessor level, DifficultyInstance difficulty, EntitySpawnReason spawnReason, @Nullable SpawnGroupData spawnGroupData
|
||||
final ServerLevelAccessor level, final DifficultyInstance difficulty, final EntitySpawnReason spawnReason, final @Nullable SpawnGroupData groupData
|
||||
diff --git a/net/minecraft/world/entity/animal/equine/Donkey.java b/net/minecraft/world/entity/animal/equine/Donkey.java
|
||||
index 6cf6853c244b7589d2a57e7ae77933d4a1503ccd..ca02355276286a88d618467d9191d648a3cf7b12 100644
|
||||
index 5e0846fcaccfab5edbeb90bc61c2360cecf7a0c4..d58d70173bc475dd22d9d4f36a9cae8d0942e050 100644
|
||||
--- a/net/minecraft/world/entity/animal/equine/Donkey.java
|
||||
+++ b/net/minecraft/world/entity/animal/equine/Donkey.java
|
||||
@@ -54,6 +54,13 @@ public class Donkey extends AbstractChestedHorse {
|
||||
@@ -149,10 +149,10 @@ index 6cf6853c244b7589d2a57e7ae77933d4a1503ccd..ca02355276286a88d618467d9191d648
|
||||
public SoundEvent getAmbientSound() {
|
||||
return SoundEvents.DONKEY_AMBIENT;
|
||||
diff --git a/net/minecraft/world/entity/animal/equine/Horse.java b/net/minecraft/world/entity/animal/equine/Horse.java
|
||||
index 1c17ab94901ce1c6370670c06bf0801ee6b5b393..bb7ae0bc176fc873b0e1c760b62c5c4e0ee05ae8 100644
|
||||
index 64603ad973bdb697ca75642e8e42e7052efd4191..5d643be94db358e4093cbb00659a4e9066dddd4a 100644
|
||||
--- a/net/minecraft/world/entity/animal/equine/Horse.java
|
||||
+++ b/net/minecraft/world/entity/animal/equine/Horse.java
|
||||
@@ -88,6 +88,13 @@ public class Horse extends AbstractHorse {
|
||||
@@ -86,6 +86,13 @@ public class Horse extends AbstractHorse {
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -164,13 +164,13 @@ index 1c17ab94901ce1c6370670c06bf0801ee6b5b393..bb7ae0bc176fc873b0e1c760b62c5c4e
|
||||
+ // Purpur end - Mobs always drop experience
|
||||
+
|
||||
@Override
|
||||
protected void randomizeAttributes(RandomSource random) {
|
||||
protected void randomizeAttributes(final RandomSource random) {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(generateMaxHealth(random::nextInt));
|
||||
diff --git a/net/minecraft/world/entity/animal/equine/Llama.java b/net/minecraft/world/entity/animal/equine/Llama.java
|
||||
index eb2fc0e6d497241f1b4f3971155b10d14f5427f8..eef4b602bd03df53823da6f576246c330e46d0d4 100644
|
||||
index e277a58a1c761198f59b987c95567b6e4d9c440b..fe9d0b7bc5ad62a5455a78ffb6cd04a1b8115932 100644
|
||||
--- a/net/minecraft/world/entity/animal/equine/Llama.java
|
||||
+++ b/net/minecraft/world/entity/animal/equine/Llama.java
|
||||
@@ -166,6 +166,13 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
|
||||
@@ -165,6 +165,13 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -185,7 +185,7 @@ index eb2fc0e6d497241f1b4f3971155b10d14f5427f8..eef4b602bd03df53823da6f576246c33
|
||||
return false;
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/animal/equine/Mule.java b/net/minecraft/world/entity/animal/equine/Mule.java
|
||||
index 9bafe3e204b3e4624a95b130552c8230c0835a30..8514c0b7657366a1c40217b950c74c95631c328a 100644
|
||||
index 291176b409097d15c2afff7fe8deb17ba07dbc12..8425956ded89a1ffe5a56f410f155092250ac78c 100644
|
||||
--- a/net/minecraft/world/entity/animal/equine/Mule.java
|
||||
+++ b/net/minecraft/world/entity/animal/equine/Mule.java
|
||||
@@ -53,6 +53,13 @@ public class Mule extends AbstractChestedHorse {
|
||||
@@ -203,7 +203,7 @@ index 9bafe3e204b3e4624a95b130552c8230c0835a30..8514c0b7657366a1c40217b950c74c95
|
||||
public SoundEvent getAmbientSound() {
|
||||
return SoundEvents.MULE_AMBIENT;
|
||||
diff --git a/net/minecraft/world/entity/animal/equine/SkeletonHorse.java b/net/minecraft/world/entity/animal/equine/SkeletonHorse.java
|
||||
index 3865937e4a56636cde44f7d8f16873ae16512323..2502716b8efe4584fba9d9f9989ba9cba67568bc 100644
|
||||
index 9365609fad67377ffe18e11c7959e0d92367852a..16b26b4c19681b48fef9110e050145c736097adb 100644
|
||||
--- a/net/minecraft/world/entity/animal/equine/SkeletonHorse.java
|
||||
+++ b/net/minecraft/world/entity/animal/equine/SkeletonHorse.java
|
||||
@@ -81,6 +81,13 @@ public class SkeletonHorse extends AbstractHorse {
|
||||
@@ -221,7 +221,7 @@ index 3865937e4a56636cde44f7d8f16873ae16512323..2502716b8efe4584fba9d9f9989ba9cb
|
||||
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0).add(Attributes.MOVEMENT_SPEED, 0.2F);
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/animal/equine/TraderLlama.java b/net/minecraft/world/entity/animal/equine/TraderLlama.java
|
||||
index 4c07cd57aa3518adb4bc9b1213cc572a5b81f935..0515d1071324d82c14be4b9e97c8a583dd45a721 100644
|
||||
index a9fcf7827e6a6b061c2a861d1e59bca80117699b..78a22fb382da7623bd05f5ff097fe06fc0dfec1c 100644
|
||||
--- a/net/minecraft/world/entity/animal/equine/TraderLlama.java
|
||||
+++ b/net/minecraft/world/entity/animal/equine/TraderLlama.java
|
||||
@@ -84,6 +84,13 @@ public class TraderLlama extends Llama {
|
||||
@@ -239,10 +239,10 @@ index 4c07cd57aa3518adb4bc9b1213cc572a5b81f935..0515d1071324d82c14be4b9e97c8a583
|
||||
public boolean isTraderLlama() {
|
||||
return true;
|
||||
diff --git a/net/minecraft/world/entity/animal/equine/ZombieHorse.java b/net/minecraft/world/entity/animal/equine/ZombieHorse.java
|
||||
index 45bb4df25015568f0758095d9a309633bed520f3..63557a6c2b87e1ee4348cab61df5d900c2c1c48e 100644
|
||||
index 426b468ee821a7441d15dae3634032535cb60725..54cbd5136997bdec34df0f822e21ffe5046936d6 100644
|
||||
--- a/net/minecraft/world/entity/animal/equine/ZombieHorse.java
|
||||
+++ b/net/minecraft/world/entity/animal/equine/ZombieHorse.java
|
||||
@@ -96,6 +96,13 @@ public class ZombieHorse extends AbstractHorse {
|
||||
@@ -93,6 +93,13 @@ public class ZombieHorse extends AbstractHorse {
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -257,7 +257,7 @@ index 45bb4df25015568f0758095d9a309633bed520f3..63557a6c2b87e1ee4348cab61df5d900
|
||||
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 25.0);
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/animal/feline/Cat.java b/net/minecraft/world/entity/animal/feline/Cat.java
|
||||
index 92b67565485b2fade3e80fb4b944edfc12d9e0a2..4422cc2f0ed1b603348f3f5c0d6650f871190ffd 100644
|
||||
index 0493926c7918059d82bafd20fed0883bb331bd55..74acd2066aa05eb732645912eba7b24252a57f7e 100644
|
||||
--- a/net/minecraft/world/entity/animal/feline/Cat.java
|
||||
+++ b/net/minecraft/world/entity/animal/feline/Cat.java
|
||||
@@ -142,6 +142,13 @@ public class Cat extends TamableAnimal {
|
||||
@@ -273,9 +273,9 @@ index 92b67565485b2fade3e80fb4b944edfc12d9e0a2..4422cc2f0ed1b603348f3f5c0d6650f8
|
||||
+
|
||||
@Override
|
||||
protected void registerGoals() {
|
||||
this.temptGoal = new Cat.CatTemptGoal(this, 0.6, stack -> stack.is(ItemTags.CAT_FOOD), true);
|
||||
this.temptGoal = new Cat.CatTemptGoal(this, 0.6, i -> i.is(ItemTags.CAT_FOOD), true);
|
||||
diff --git a/net/minecraft/world/entity/animal/feline/Ocelot.java b/net/minecraft/world/entity/animal/feline/Ocelot.java
|
||||
index 13272516003f763d2c69dc599c8ff7696bec718b..8583fefcb37dc043293bf622b5a25adbbcc8128e 100644
|
||||
index 9a582b789d3b3037c510c063a07f99f92ac58a1c..2fbb1668448ca7f1d2e08293a0a3e81c6a0d13a4 100644
|
||||
--- a/net/minecraft/world/entity/animal/feline/Ocelot.java
|
||||
+++ b/net/minecraft/world/entity/animal/feline/Ocelot.java
|
||||
@@ -105,6 +105,13 @@ public class Ocelot extends Animal {
|
||||
@@ -293,7 +293,7 @@ index 13272516003f763d2c69dc599c8ff7696bec718b..8583fefcb37dc043293bf622b5a25adb
|
||||
return this.entityData.get(DATA_TRUSTING);
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/animal/fish/Cod.java b/net/minecraft/world/entity/animal/fish/Cod.java
|
||||
index 8655aae805f239cbd049065232293854b18c73cf..05de579a16726454034dc4a913161676b5c73552 100644
|
||||
index f44214eaa47c2021f7ca9c84a7b89be15fecb5bc..7d4bfca8b2608c18fc96e14f1ef9121230e27a53 100644
|
||||
--- a/net/minecraft/world/entity/animal/fish/Cod.java
|
||||
+++ b/net/minecraft/world/entity/animal/fish/Cod.java
|
||||
@@ -39,6 +39,13 @@ public class Cod extends AbstractSchoolingFish {
|
||||
@@ -311,7 +311,7 @@ index 8655aae805f239cbd049065232293854b18c73cf..05de579a16726454034dc4a913161676
|
||||
public ItemStack getBucketItemStack() {
|
||||
return new ItemStack(Items.COD_BUCKET);
|
||||
diff --git a/net/minecraft/world/entity/animal/fish/Pufferfish.java b/net/minecraft/world/entity/animal/fish/Pufferfish.java
|
||||
index 414d79f9d1fbd9857c8baeb2888017d45f34f02b..681eb25e45cec76f21cea9f77efe71290bdb547a 100644
|
||||
index 17dba2f70251c2d5f75cc116b300f328f117cecb..3d84c136fa944beed72ee2fb8f441bcb4031e233 100644
|
||||
--- a/net/minecraft/world/entity/animal/fish/Pufferfish.java
|
||||
+++ b/net/minecraft/world/entity/animal/fish/Pufferfish.java
|
||||
@@ -73,6 +73,13 @@ public class Pufferfish extends AbstractFish {
|
||||
@@ -326,13 +326,13 @@ index 414d79f9d1fbd9857c8baeb2888017d45f34f02b..681eb25e45cec76f21cea9f77efe7129
|
||||
+ // Purpur end - Mobs always drop experience
|
||||
+
|
||||
@Override
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
protected void defineSynchedData(final SynchedEntityData.Builder entityData) {
|
||||
super.defineSynchedData(entityData);
|
||||
diff --git a/net/minecraft/world/entity/animal/fish/Salmon.java b/net/minecraft/world/entity/animal/fish/Salmon.java
|
||||
index 424bd56ec9df8bd0a80d2fa79bc4f482eae2ab5c..b76b2c1e7ac93fe01bdf9ee6e3c811f448babcbb 100644
|
||||
index ba75ba1130c4fe5f4d7b29c624a17becd2a71c99..ca5cc7569205b450e53d6e8feb87ecaa2169a67f 100644
|
||||
--- a/net/minecraft/world/entity/animal/fish/Salmon.java
|
||||
+++ b/net/minecraft/world/entity/animal/fish/Salmon.java
|
||||
@@ -66,6 +66,13 @@ public class Salmon extends AbstractSchoolingFish {
|
||||
@@ -67,6 +67,13 @@ public class Salmon extends AbstractSchoolingFish {
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -347,7 +347,7 @@ index 424bd56ec9df8bd0a80d2fa79bc4f482eae2ab5c..b76b2c1e7ac93fe01bdf9ee6e3c811f4
|
||||
public int getMaxSchoolSize() {
|
||||
return 5;
|
||||
diff --git a/net/minecraft/world/entity/animal/fish/TropicalFish.java b/net/minecraft/world/entity/animal/fish/TropicalFish.java
|
||||
index 04c30c60c76122018fa69cf1f3f64cae8ed62fad..c7742f06cf2bed3496c28b541e45948e609c1999 100644
|
||||
index 17bc569bf97026e2c072633f1ad6e9e0102c137a..fc500f1ca1d4280519f418cac21688c3632d251b 100644
|
||||
--- a/net/minecraft/world/entity/animal/fish/TropicalFish.java
|
||||
+++ b/net/minecraft/world/entity/animal/fish/TropicalFish.java
|
||||
@@ -103,6 +103,13 @@ public class TropicalFish extends AbstractSchoolingFish {
|
||||
@@ -361,14 +361,14 @@ index 04c30c60c76122018fa69cf1f3f64cae8ed62fad..c7742f06cf2bed3496c28b541e45948e
|
||||
+ }
|
||||
+ // Purpur end - Mobs always drop experience
|
||||
+
|
||||
public static String getPredefinedName(int variantId) {
|
||||
return "entity.minecraft.tropical_fish.predefined." + variantId;
|
||||
public static String getPredefinedName(final int index) {
|
||||
return "entity.minecraft.tropical_fish.predefined." + index;
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/animal/fox/Fox.java b/net/minecraft/world/entity/animal/fox/Fox.java
|
||||
index bc119c2f61adb6c6122119fda1df437bab40f9b4..f35f845e3e18c0bb0e4a076298c30be2ae479792 100644
|
||||
index aa419e7cb456f664c1eca1286777caca6bd10e7a..335da522a9b96ebc852b4ed5f22f9fd71aec23a8 100644
|
||||
--- a/net/minecraft/world/entity/animal/fox/Fox.java
|
||||
+++ b/net/minecraft/world/entity/animal/fox/Fox.java
|
||||
@@ -211,6 +211,13 @@ public class Fox extends Animal {
|
||||
@@ -215,6 +215,13 @@ public class Fox extends Animal {
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -380,13 +380,13 @@ index bc119c2f61adb6c6122119fda1df437bab40f9b4..f35f845e3e18c0bb0e4a076298c30be2
|
||||
+ // Purpur end - Mobs always drop experience
|
||||
+
|
||||
@Override
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
protected void defineSynchedData(final SynchedEntityData.Builder entityData) {
|
||||
super.defineSynchedData(entityData);
|
||||
diff --git a/net/minecraft/world/entity/animal/goat/Goat.java b/net/minecraft/world/entity/animal/goat/Goat.java
|
||||
index e5f5bc2c4b4f36e0e911b2c5ef67ef6e0d4cd0b1..64916356de4b9981e04c5befef15b067914f6d75 100644
|
||||
index 0d40bbd8c42178c712f23300364138389ecde548..afc1119a6b562013a09a607ecc430d7bd46e6c82 100644
|
||||
--- a/net/minecraft/world/entity/animal/goat/Goat.java
|
||||
+++ b/net/minecraft/world/entity/animal/goat/Goat.java
|
||||
@@ -146,6 +146,13 @@ public class Goat extends Animal {
|
||||
@@ -131,6 +131,13 @@ public class Goat extends Animal {
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -398,13 +398,13 @@ index e5f5bc2c4b4f36e0e911b2c5ef67ef6e0d4cd0b1..64916356de4b9981e04c5befef15b067
|
||||
+ // Purpur end - Mobs always drop experience
|
||||
+
|
||||
@Override
|
||||
protected Brain.Provider<Goat> brainProvider() {
|
||||
return Brain.provider(MEMORY_TYPES, SENSOR_TYPES);
|
||||
protected Brain<Goat> makeBrain(final Brain.Packed packedBrain) {
|
||||
return BRAIN_PROVIDER.makeBrain(this, packedBrain);
|
||||
diff --git a/net/minecraft/world/entity/animal/golem/CopperGolem.java b/net/minecraft/world/entity/animal/golem/CopperGolem.java
|
||||
index e143db15040f8d5be5d07e04a41b7afaf42b4331..493d1678592bce78a15adeb4c9435fdc8e9dab8a 100644
|
||||
index 078cb2f09e9aaf05bb965a27b90f34c7c3a4147d..019aec1465be095edff6952a1f36041f030f7cb0 100644
|
||||
--- a/net/minecraft/world/entity/animal/golem/CopperGolem.java
|
||||
+++ b/net/minecraft/world/entity/animal/golem/CopperGolem.java
|
||||
@@ -147,6 +147,13 @@ public class CopperGolem extends AbstractGolem implements ContainerUser, Shearab
|
||||
@@ -151,6 +151,13 @@ public class CopperGolem extends AbstractGolem implements ContainerUser, Shearab
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -419,7 +419,7 @@ index e143db15040f8d5be5d07e04a41b7afaf42b4331..493d1678592bce78a15adeb4c9435fdc
|
||||
return Mob.createMobAttributes().add(Attributes.MOVEMENT_SPEED, 0.2F).add(Attributes.STEP_HEIGHT, 1.0).add(Attributes.MAX_HEALTH, 12.0);
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/animal/golem/IronGolem.java b/net/minecraft/world/entity/animal/golem/IronGolem.java
|
||||
index d31c1f1b681922ca8f1657ffa333e8a6794e619f..ddde4297b77d174034300165b591a224c0401743 100644
|
||||
index 77996312597da9a2bbcf89f798c10a0be0abcd39..880a53a2f023f5bd4a112a964aceee6dcac109b1 100644
|
||||
--- a/net/minecraft/world/entity/animal/golem/IronGolem.java
|
||||
+++ b/net/minecraft/world/entity/animal/golem/IronGolem.java
|
||||
@@ -106,6 +106,13 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
|
||||
@@ -437,10 +437,10 @@ index d31c1f1b681922ca8f1657ffa333e8a6794e619f..ddde4297b77d174034300165b591a224
|
||||
protected void registerGoals() {
|
||||
if (this.level().purpurConfig.ironGolemPoppyCalm) this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.ReceiveFlower(this)); // Purpur - Iron golem calm anger options
|
||||
diff --git a/net/minecraft/world/entity/animal/golem/SnowGolem.java b/net/minecraft/world/entity/animal/golem/SnowGolem.java
|
||||
index 94d319a8fba3a437fb55aa7daaaba0c5c9acbb3b..c37c999671955eeaff0b145a890a512c78d642a8 100644
|
||||
index 2d3127f6846ff9eda1a0b89764dc837da6e7e0c7..ffb0e9cc4f8604fd03cb3a2412001182fb47bce8 100644
|
||||
--- a/net/minecraft/world/entity/animal/golem/SnowGolem.java
|
||||
+++ b/net/minecraft/world/entity/animal/golem/SnowGolem.java
|
||||
@@ -87,6 +87,13 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
|
||||
@@ -87,6 +87,13 @@ public class SnowGolem extends AbstractGolem implements RangedAttackMob, Shearab
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -455,10 +455,10 @@ index 94d319a8fba3a437fb55aa7daaaba0c5c9acbb3b..c37c999671955eeaff0b145a890a512c
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
|
||||
diff --git a/net/minecraft/world/entity/animal/happyghast/HappyGhast.java b/net/minecraft/world/entity/animal/happyghast/HappyGhast.java
|
||||
index 828793aaa2992fd1077040309154f814b302476a..8034ce67266b6baab35c72eaebf5ad67fc1a29c6 100644
|
||||
index d3367430da307e2c0748874cbe77f265860152a0..908e26a3aeb843585d9938f588d33b5bb5326ebe 100644
|
||||
--- a/net/minecraft/world/entity/animal/happyghast/HappyGhast.java
|
||||
+++ b/net/minecraft/world/entity/animal/happyghast/HappyGhast.java
|
||||
@@ -160,6 +160,13 @@ public class HappyGhast extends Animal {
|
||||
@@ -168,6 +168,13 @@ public class HappyGhast extends Animal {
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -473,10 +473,10 @@ index 828793aaa2992fd1077040309154f814b302476a..8034ce67266b6baab35c72eaebf5ad67
|
||||
protected void ageBoundaryReached() {
|
||||
if (this.isBaby()) {
|
||||
diff --git a/net/minecraft/world/entity/animal/nautilus/Nautilus.java b/net/minecraft/world/entity/animal/nautilus/Nautilus.java
|
||||
index 98199869b70c7c0f2b744ac74961c77d473617ca..7c4467933061f097425d6c82188a65fd5e4c4d3b 100644
|
||||
index e89c0638f7b6d1a463a895dbab5994c15aa4add3..e4c7f1aa39443b26758caac252fe90b2b766b707 100644
|
||||
--- a/net/minecraft/world/entity/animal/nautilus/Nautilus.java
|
||||
+++ b/net/minecraft/world/entity/animal/nautilus/Nautilus.java
|
||||
@@ -39,6 +39,13 @@ public class Nautilus extends AbstractNautilus {
|
||||
@@ -46,6 +46,13 @@ public class Nautilus extends AbstractNautilus {
|
||||
}
|
||||
// Purpur end - Make entity breeding times configurable
|
||||
|
||||
@@ -488,13 +488,13 @@ index 98199869b70c7c0f2b744ac74961c77d473617ca..7c4467933061f097425d6c82188a65fd
|
||||
+ // Purpur end - Mobs always drop experience
|
||||
+
|
||||
@Override
|
||||
protected Brain.Provider<Nautilus> brainProvider() {
|
||||
return NautilusAi.brainProvider();
|
||||
protected Brain<Nautilus> makeBrain(final Brain.Packed packedBrain) {
|
||||
return BRAIN_PROVIDER.makeBrain(this, packedBrain);
|
||||
diff --git a/net/minecraft/world/entity/animal/nautilus/ZombieNautilus.java b/net/minecraft/world/entity/animal/nautilus/ZombieNautilus.java
|
||||
index 7dd933dd38fc50e870bc74e5a54e2b50a85fa6f3..51d3a5f0aec8794cfd1ccefffea9947b0e49e693 100644
|
||||
index ab97449bfa5e8b5615e0f2b6b16be2fe7e4233fd..869cec108d33626362400e9aa4890a92e49151e4 100644
|
||||
--- a/net/minecraft/world/entity/animal/nautilus/ZombieNautilus.java
|
||||
+++ b/net/minecraft/world/entity/animal/nautilus/ZombieNautilus.java
|
||||
@@ -62,6 +62,13 @@ public class ZombieNautilus extends AbstractNautilus {
|
||||
@@ -67,6 +67,13 @@ public class ZombieNautilus extends AbstractNautilus {
|
||||
}
|
||||
// Purpur end - Make entity breeding times configurable
|
||||
|
||||
@@ -509,10 +509,10 @@ index 7dd933dd38fc50e870bc74e5a54e2b50a85fa6f3..51d3a5f0aec8794cfd1ccefffea9947b
|
||||
return AbstractNautilus.createAttributes().add(Attributes.MOVEMENT_SPEED, 1.1F);
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/animal/panda/Panda.java b/net/minecraft/world/entity/animal/panda/Panda.java
|
||||
index e9aa07dea0515f53a08a7066fa9e23e0ee69d69e..5116e9e16070e23d13b526d21facb7b5ad0988ba 100644
|
||||
index f97b8feaedb84baf479998cef7257231f85412d6..72ced157956c6a809d8d9f21027f21c0465b8677 100644
|
||||
--- a/net/minecraft/world/entity/animal/panda/Panda.java
|
||||
+++ b/net/minecraft/world/entity/animal/panda/Panda.java
|
||||
@@ -157,6 +157,13 @@ public class Panda extends Animal {
|
||||
@@ -160,6 +160,13 @@ public class Panda extends Animal {
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -524,10 +524,10 @@ index e9aa07dea0515f53a08a7066fa9e23e0ee69d69e..5116e9e16070e23d13b526d21facb7b5
|
||||
+ // Purpur end - Mobs always drop experience
|
||||
+
|
||||
@Override
|
||||
protected boolean canDispenserEquipIntoSlot(EquipmentSlot slot) {
|
||||
protected boolean canDispenserEquipIntoSlot(final EquipmentSlot slot) {
|
||||
return slot == EquipmentSlot.MAINHAND && this.canPickUpLoot();
|
||||
diff --git a/net/minecraft/world/entity/animal/parrot/Parrot.java b/net/minecraft/world/entity/animal/parrot/Parrot.java
|
||||
index e97782bc8232120d4e7d1feeb8ca87fd37a1fcf9..bbe3977939004b7d77e38b14d48c9c26e596d123 100644
|
||||
index d756d6931dbf560fef5cb9641ace6f091fbcfff9..5abbc7ef864dde0ae05ae0520518997520e8bcf6 100644
|
||||
--- a/net/minecraft/world/entity/animal/parrot/Parrot.java
|
||||
+++ b/net/minecraft/world/entity/animal/parrot/Parrot.java
|
||||
@@ -221,6 +221,13 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
|
||||
@@ -543,12 +543,12 @@ index e97782bc8232120d4e7d1feeb8ca87fd37a1fcf9..bbe3977939004b7d77e38b14d48c9c26
|
||||
+
|
||||
@Override
|
||||
public @Nullable SpawnGroupData finalizeSpawn(
|
||||
ServerLevelAccessor level, DifficultyInstance difficulty, EntitySpawnReason spawnReason, @Nullable SpawnGroupData spawnGroupData
|
||||
final ServerLevelAccessor level, final DifficultyInstance difficulty, final EntitySpawnReason spawnReason, @Nullable SpawnGroupData groupData
|
||||
diff --git a/net/minecraft/world/entity/animal/pig/Pig.java b/net/minecraft/world/entity/animal/pig/Pig.java
|
||||
index 020932539727739b54ed2f7899cbf11ad940f4df..45142ce558ef28455f9b74ca81d51b3ecdb7a458 100644
|
||||
index 05141bc41dc5181a8f0526528147e7a6c015a707..d699b79ffc603555213434fecc389b1882c1eef0 100644
|
||||
--- a/net/minecraft/world/entity/animal/pig/Pig.java
|
||||
+++ b/net/minecraft/world/entity/animal/pig/Pig.java
|
||||
@@ -102,6 +102,13 @@ public class Pig extends Animal implements ItemSteerable {
|
||||
@@ -107,6 +107,13 @@ public class Pig extends Animal implements ItemSteerable {
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -563,10 +563,10 @@ index 020932539727739b54ed2f7899cbf11ad940f4df..45142ce558ef28455f9b74ca81d51b3e
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new FloatGoal(this));
|
||||
diff --git a/net/minecraft/world/entity/animal/polarbear/PolarBear.java b/net/minecraft/world/entity/animal/polarbear/PolarBear.java
|
||||
index 13d26a6981d6907f35f1f2bde93934c7c1fe8120..592711e205ee959cc66de80933ad5a2dcec3092f 100644
|
||||
index 2a28c9ef361909aa0c3946ed6857f7d340c8cfc0..5e218adce80f2d8d64cca54894abffaf6eb0baa0 100644
|
||||
--- a/net/minecraft/world/entity/animal/polarbear/PolarBear.java
|
||||
+++ b/net/minecraft/world/entity/animal/polarbear/PolarBear.java
|
||||
@@ -140,6 +140,13 @@ public class PolarBear extends Animal implements NeutralMob {
|
||||
@@ -141,6 +141,13 @@ public class PolarBear extends Animal implements NeutralMob {
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -578,13 +578,13 @@ index 13d26a6981d6907f35f1f2bde93934c7c1fe8120..592711e205ee959cc66de80933ad5a2d
|
||||
+ // Purpur end - Mobs always drop experience
|
||||
+
|
||||
@Override
|
||||
public @Nullable AgeableMob getBreedOffspring(ServerLevel level, AgeableMob partner) {
|
||||
public @Nullable AgeableMob getBreedOffspring(final ServerLevel level, final AgeableMob partner) {
|
||||
return EntityType.POLAR_BEAR.create(level, EntitySpawnReason.BREEDING);
|
||||
diff --git a/net/minecraft/world/entity/animal/rabbit/Rabbit.java b/net/minecraft/world/entity/animal/rabbit/Rabbit.java
|
||||
index b1c72047f7aa63f62b0ad0274811b587b1d3486b..c39004a546c28c9f8af26e727c67dbff85ba1212 100644
|
||||
index 7dade80db9430e4db587ed23df992d70c6b7ee04..937ce47e45698392fad3fdc6eeb85e7869b679de 100644
|
||||
--- a/net/minecraft/world/entity/animal/rabbit/Rabbit.java
|
||||
+++ b/net/minecraft/world/entity/animal/rabbit/Rabbit.java
|
||||
@@ -170,6 +170,13 @@ public class Rabbit extends Animal {
|
||||
@@ -184,6 +184,13 @@ public class Rabbit extends Animal {
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -599,7 +599,7 @@ index b1c72047f7aa63f62b0ad0274811b587b1d3486b..c39004a546c28c9f8af26e727c67dbff
|
||||
public void registerGoals() {
|
||||
this.goalSelector.addGoal(1, new FloatGoal(this));
|
||||
diff --git a/net/minecraft/world/entity/animal/sheep/Sheep.java b/net/minecraft/world/entity/animal/sheep/Sheep.java
|
||||
index 7eca49c9237c61ab12f60ff16085aa8fd10c99ac..d712673d237f4e4d99a714ddf09c4582387f0e3c 100644
|
||||
index 0ceaa6dd493d0258c419d8b5c4394b35c0808704..55cc6040e606918042c76a7bc6cbe1a1b965c407 100644
|
||||
--- a/net/minecraft/world/entity/animal/sheep/Sheep.java
|
||||
+++ b/net/minecraft/world/entity/animal/sheep/Sheep.java
|
||||
@@ -102,6 +102,13 @@ public class Sheep extends Animal implements Shearable {
|
||||
@@ -617,7 +617,7 @@ index 7eca49c9237c61ab12f60ff16085aa8fd10c99ac..d712673d237f4e4d99a714ddf09c4582
|
||||
protected void registerGoals() {
|
||||
this.eatBlockGoal = new EatBlockGoal(this);
|
||||
diff --git a/net/minecraft/world/entity/animal/squid/GlowSquid.java b/net/minecraft/world/entity/animal/squid/GlowSquid.java
|
||||
index 2aa2a84a7ada369c45a85119a933eb92297af4dc..dd1bd8b1a348a0cc398b123a77d3cb28dd1273ae 100644
|
||||
index 1fa3d614dd1c45ec42caffbe92e3f8db02b399b1..0f4587df333a68627d6db18c0583ae1e7b936b15 100644
|
||||
--- a/net/minecraft/world/entity/animal/squid/GlowSquid.java
|
||||
+++ b/net/minecraft/world/entity/animal/squid/GlowSquid.java
|
||||
@@ -64,6 +64,13 @@ public class GlowSquid extends Squid {
|
||||
@@ -635,10 +635,10 @@ index 2aa2a84a7ada369c45a85119a933eb92297af4dc..dd1bd8b1a348a0cc398b123a77d3cb28
|
||||
protected ParticleOptions getInkParticle() {
|
||||
return ParticleTypes.GLOW_SQUID_INK;
|
||||
diff --git a/net/minecraft/world/entity/animal/squid/Squid.java b/net/minecraft/world/entity/animal/squid/Squid.java
|
||||
index e307ebfb8b2781b6175b520e148e6bd58d2b9dc4..6b5be8e58aa7e3acd14ff3cb1ba25d15f8d37410 100644
|
||||
index e350763a3a22d825a25f02b60bd4c9223aa81f62..0a3327e22f5a2e30c70248ab46078e50281bd429 100644
|
||||
--- a/net/minecraft/world/entity/animal/squid/Squid.java
|
||||
+++ b/net/minecraft/world/entity/animal/squid/Squid.java
|
||||
@@ -108,6 +108,13 @@ public class Squid extends AgeableWaterCreature {
|
||||
@@ -111,6 +111,13 @@ public class Squid extends AgeableWaterCreature {
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -653,7 +653,7 @@ index e307ebfb8b2781b6175b520e148e6bd58d2b9dc4..6b5be8e58aa7e3acd14ff3cb1ba25d15
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new Squid.SquidRandomMovementGoal(this));
|
||||
diff --git a/net/minecraft/world/entity/animal/turtle/Turtle.java b/net/minecraft/world/entity/animal/turtle/Turtle.java
|
||||
index 7d5987fe641646ecbf8e389d57a0a9a04e9c0959..a3f2076e6f0e51ac51a8af94cae91baf82c247a1 100644
|
||||
index 6d09c0de38f2c91d2a0ab6dd0b694ab42b48a981..37345edf599a43ac48274e30f5d7aa340051c649 100644
|
||||
--- a/net/minecraft/world/entity/animal/turtle/Turtle.java
|
||||
+++ b/net/minecraft/world/entity/animal/turtle/Turtle.java
|
||||
@@ -126,6 +126,13 @@ public class Turtle extends Animal {
|
||||
@@ -667,14 +667,14 @@ index 7d5987fe641646ecbf8e389d57a0a9a04e9c0959..a3f2076e6f0e51ac51a8af94cae91baf
|
||||
+ }
|
||||
+ // Purpur end - Mobs always drop experience
|
||||
+
|
||||
public void setHomePos(BlockPos homePos) {
|
||||
this.homePos = homePos;
|
||||
public void setHomePos(final BlockPos pos) {
|
||||
this.homePos = pos;
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/animal/wolf/Wolf.java b/net/minecraft/world/entity/animal/wolf/Wolf.java
|
||||
index 20f945ee06bcdb4736e6d3a8b20a5cbd3d79df0f..7fbe841818d08fd930f7ce405e84e5ed4badb614 100644
|
||||
index 781cac493f909b02483e5c4064cc2cc791b1dabd..fed2456921421eb6c95a4d713a4bd0ed64c1415a 100644
|
||||
--- a/net/minecraft/world/entity/animal/wolf/Wolf.java
|
||||
+++ b/net/minecraft/world/entity/animal/wolf/Wolf.java
|
||||
@@ -230,6 +230,13 @@ public class Wolf extends TamableAnimal implements NeutralMob {
|
||||
@@ -227,6 +227,13 @@ public class Wolf extends TamableAnimal implements NeutralMob {
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -689,10 +689,10 @@ index 20f945ee06bcdb4736e6d3a8b20a5cbd3d79df0f..7fbe841818d08fd930f7ce405e84e5ed
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(1, new FloatGoal(this));
|
||||
diff --git a/net/minecraft/world/entity/boss/wither/WitherBoss.java b/net/minecraft/world/entity/boss/wither/WitherBoss.java
|
||||
index 4afa484099c7f813d5ae8c7cc8721a0d033c8e6e..c25ed738b088fb517d76c038a1ad47cae3f7ecbc 100644
|
||||
index 10818999c4e796a4dfd5a7dd21772c9eb8ca2579..4677996d778fbd1ffa7c1278bf4ebd8ce1097eb9 100644
|
||||
--- a/net/minecraft/world/entity/boss/wither/WitherBoss.java
|
||||
+++ b/net/minecraft/world/entity/boss/wither/WitherBoss.java
|
||||
@@ -227,6 +227,13 @@ public class WitherBoss extends Monster implements RangedAttackMob {
|
||||
@@ -229,6 +229,13 @@ public class WitherBoss extends Monster implements RangedAttackMob {
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -704,10 +704,10 @@ index 4afa484099c7f813d5ae8c7cc8721a0d033c8e6e..c25ed738b088fb517d76c038a1ad47ca
|
||||
+ // Purpur end - Mobs always drop experience
|
||||
+
|
||||
@Override
|
||||
protected PathNavigation createNavigation(Level level) {
|
||||
protected PathNavigation createNavigation(final Level level) {
|
||||
FlyingPathNavigation flyingPathNavigation = new FlyingPathNavigation(this, level);
|
||||
diff --git a/net/minecraft/world/entity/monster/Blaze.java b/net/minecraft/world/entity/monster/Blaze.java
|
||||
index e2afd7677986c70dd924017e8822fd6abd808f48..187da2d55cdb039b62abe708dadd6c05e13ac64f 100644
|
||||
index 7f0e76437798f1bab7956722382e1517f8f71121..257563b578762837cbea855fa42831f34fa4e7ba 100644
|
||||
--- a/net/minecraft/world/entity/monster/Blaze.java
|
||||
+++ b/net/minecraft/world/entity/monster/Blaze.java
|
||||
@@ -84,6 +84,13 @@ public class Blaze extends Monster {
|
||||
@@ -725,7 +725,7 @@ index e2afd7677986c70dd924017e8822fd6abd808f48..187da2d55cdb039b62abe708dadd6c05
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
|
||||
diff --git a/net/minecraft/world/entity/monster/Creeper.java b/net/minecraft/world/entity/monster/Creeper.java
|
||||
index b0ed96c243f9abb3868d92bb513ad1620aa8e269..608d787b73dce1726ccece9e0372acf995f261d4 100644
|
||||
index 80327a6ba1da0145f087a7946c7a4dfb6d947ce7..46a769f2960fd4a35305231b84c56ff36d622d8f 100644
|
||||
--- a/net/minecraft/world/entity/monster/Creeper.java
|
||||
+++ b/net/minecraft/world/entity/monster/Creeper.java
|
||||
@@ -273,6 +273,13 @@ public class Creeper extends Monster {
|
||||
@@ -740,10 +740,10 @@ index b0ed96c243f9abb3868d92bb513ad1620aa8e269..608d787b73dce1726ccece9e0372acf9
|
||||
+ // Purpur end - Mobs always drop experience
|
||||
+
|
||||
@Override
|
||||
public SoundEvent getHurtSound(DamageSource damageSource) {
|
||||
public SoundEvent getHurtSound(final DamageSource source) {
|
||||
return SoundEvents.CREEPER_HURT;
|
||||
diff --git a/net/minecraft/world/entity/monster/ElderGuardian.java b/net/minecraft/world/entity/monster/ElderGuardian.java
|
||||
index 1ea323a17440abbe36c9528e80e169816267005b..abb7496c293175828fde54ae2b4991aa3ff6b30f 100644
|
||||
index a98967c7a76d8e25da9e31eaa8f2ae0bf0704c9d..54d3ab3cb7521f4f75bdd05b7fcf35e7195aa83d 100644
|
||||
--- a/net/minecraft/world/entity/monster/ElderGuardian.java
|
||||
+++ b/net/minecraft/world/entity/monster/ElderGuardian.java
|
||||
@@ -58,6 +58,13 @@ public class ElderGuardian extends Guardian {
|
||||
@@ -761,7 +761,7 @@ index 1ea323a17440abbe36c9528e80e169816267005b..abb7496c293175828fde54ae2b4991aa
|
||||
return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.3F).add(Attributes.ATTACK_DAMAGE, 8.0).add(Attributes.MAX_HEALTH, 80.0);
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/monster/EnderMan.java b/net/minecraft/world/entity/monster/EnderMan.java
|
||||
index 47c621f01658f3392b58f3f5c1f31bd539f63dd6..c90a955b14ae10037f31c7e9b8a86df3323602cc 100644
|
||||
index 8862ad857a4c99defe7621c59d8f3ef77ab7aff4..8979340756abaec961b2263146c1e1e79d144117 100644
|
||||
--- a/net/minecraft/world/entity/monster/EnderMan.java
|
||||
+++ b/net/minecraft/world/entity/monster/EnderMan.java
|
||||
@@ -114,6 +114,13 @@ public class EnderMan extends Monster implements NeutralMob {
|
||||
@@ -779,7 +779,7 @@ index 47c621f01658f3392b58f3f5c1f31bd539f63dd6..c90a955b14ae10037f31c7e9b8a86df3
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new FloatGoal(this));
|
||||
diff --git a/net/minecraft/world/entity/monster/Endermite.java b/net/minecraft/world/entity/monster/Endermite.java
|
||||
index b5e620d62702e3330f5ced19f1baeb82bdc801ec..972006a17c887f9380b1549de8a47e4d265e6e69 100644
|
||||
index 859d490dd3be2843dde3a811bcc0d51e3eae76f0..b93a5d46ccf7b2dad6afbd15884f8d8ae60cdb5a 100644
|
||||
--- a/net/minecraft/world/entity/monster/Endermite.java
|
||||
+++ b/net/minecraft/world/entity/monster/Endermite.java
|
||||
@@ -79,6 +79,13 @@ public class Endermite extends Monster {
|
||||
@@ -797,7 +797,7 @@ index b5e620d62702e3330f5ced19f1baeb82bdc801ec..972006a17c887f9380b1549de8a47e4d
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(1, new FloatGoal(this));
|
||||
diff --git a/net/minecraft/world/entity/monster/Ghast.java b/net/minecraft/world/entity/monster/Ghast.java
|
||||
index 443eb9f12d6df950c59c9d4db4853087fd23d24e..673d4e06d6dc4c94ddaafcdc86cbdbd686964ddd 100644
|
||||
index 89a2097c2c26dae7f12ddbac10bc091ec7f228d7..753ba768318b2ecda5efdbd00b408aa7e1b2c56b 100644
|
||||
--- a/net/minecraft/world/entity/monster/Ghast.java
|
||||
+++ b/net/minecraft/world/entity/monster/Ghast.java
|
||||
@@ -90,6 +90,13 @@ public class Ghast extends Mob implements Enemy {
|
||||
@@ -815,7 +815,7 @@ index 443eb9f12d6df950c59c9d4db4853087fd23d24e..673d4e06d6dc4c94ddaafcdc86cbdbd6
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
|
||||
diff --git a/net/minecraft/world/entity/monster/Giant.java b/net/minecraft/world/entity/monster/Giant.java
|
||||
index f1176f73d4468b2f39e48fe5454c5f5bf481afd9..9a081135025f114d473c50e68a778e034f33ab82 100644
|
||||
index 43ebfe06ce2a8c15787d72a8ef54cd6c7cac2bfc..07dfe0e6fd431b8417fc7f823962e4d4ad13cac5 100644
|
||||
--- a/net/minecraft/world/entity/monster/Giant.java
|
||||
+++ b/net/minecraft/world/entity/monster/Giant.java
|
||||
@@ -69,6 +69,13 @@ public class Giant extends Monster {
|
||||
@@ -833,7 +833,7 @@ index f1176f73d4468b2f39e48fe5454c5f5bf481afd9..9a081135025f114d473c50e68a778e03
|
||||
return Monster.createMonsterAttributes()
|
||||
.add(Attributes.MAX_HEALTH, 100.0)
|
||||
diff --git a/net/minecraft/world/entity/monster/Guardian.java b/net/minecraft/world/entity/monster/Guardian.java
|
||||
index 9948511659de9222a19f6b9f660e4441ea98a4a9..60490d0611a352ba0546b39fd41259713a7f18b5 100644
|
||||
index 9ca62d9663fc2e8eb49780ceb7ff38e0363a09a6..ef66a8e8973e0af6a3826b7b6819b9bf89af86dd 100644
|
||||
--- a/net/minecraft/world/entity/monster/Guardian.java
|
||||
+++ b/net/minecraft/world/entity/monster/Guardian.java
|
||||
@@ -104,6 +104,13 @@ public class Guardian extends Monster {
|
||||
@@ -849,9 +849,9 @@ index 9948511659de9222a19f6b9f660e4441ea98a4a9..60490d0611a352ba0546b39fd4125971
|
||||
+
|
||||
@Override
|
||||
protected void registerGoals() {
|
||||
MoveTowardsRestrictionGoal moveTowardsRestrictionGoal = new MoveTowardsRestrictionGoal(this, 1.0);
|
||||
MoveTowardsRestrictionGoal goal = new MoveTowardsRestrictionGoal(this, 1.0);
|
||||
diff --git a/net/minecraft/world/entity/monster/MagmaCube.java b/net/minecraft/world/entity/monster/MagmaCube.java
|
||||
index 1bf9d04e5e44272b02753290995795f194cbdae1..765a0d0376e344d2f108a5abe97e654bd972c80b 100644
|
||||
index fba41f261e57a050d4e24d2611cc27edcbb84ddf..4e757fc7d49c22f79eceafc02ff05da5ea4a04e9 100644
|
||||
--- a/net/minecraft/world/entity/monster/MagmaCube.java
|
||||
+++ b/net/minecraft/world/entity/monster/MagmaCube.java
|
||||
@@ -75,6 +75,13 @@ public class MagmaCube extends Slime {
|
||||
@@ -869,10 +869,10 @@ index 1bf9d04e5e44272b02753290995795f194cbdae1..765a0d0376e344d2f108a5abe97e654b
|
||||
return Monster.createMonsterAttributes().add(Attributes.MOVEMENT_SPEED, 0.2F);
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/monster/Phantom.java b/net/minecraft/world/entity/monster/Phantom.java
|
||||
index ff944ad57d4e9e4a910cd63282e5e7594626365e..1f3389185ccf997165dc2caf9f78ec560cfd68bd 100644
|
||||
index 6b6eed1c636f2ca65d0cbcd71e96bdd1b2063267..2b799c73bb384bdb778edda66bbb00c4ba70a2bf 100644
|
||||
--- a/net/minecraft/world/entity/monster/Phantom.java
|
||||
+++ b/net/minecraft/world/entity/monster/Phantom.java
|
||||
@@ -136,6 +136,13 @@ public class Phantom extends Mob implements Enemy {
|
||||
@@ -137,6 +137,13 @@ public class Phantom extends Mob implements Enemy {
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -887,10 +887,10 @@ index ff944ad57d4e9e4a910cd63282e5e7594626365e..1f3389185ccf997165dc2caf9f78ec56
|
||||
public boolean isFlapping() {
|
||||
return (this.getUniqueFlapTickOffset() + this.tickCount) % TICKS_PER_FLAP == 0;
|
||||
diff --git a/net/minecraft/world/entity/monster/Ravager.java b/net/minecraft/world/entity/monster/Ravager.java
|
||||
index ad2913b02ded9b5087c69ba279cebfd81d9ef75e..5e6fd02985eef337f2ff8e48fbd904a064c0560a 100644
|
||||
index bb19e3f2e6522e8b7db32061c0ae2b2a37679369..8dc443aa7847789117f6cb86415d6dd082a93e2f 100644
|
||||
--- a/net/minecraft/world/entity/monster/Ravager.java
|
||||
+++ b/net/minecraft/world/entity/monster/Ravager.java
|
||||
@@ -110,6 +110,13 @@ public class Ravager extends Raider {
|
||||
@@ -108,6 +108,13 @@ public class Ravager extends Raider {
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -905,10 +905,10 @@ index ad2913b02ded9b5087c69ba279cebfd81d9ef75e..5e6fd02985eef337f2ff8e48fbd904a0
|
||||
protected void registerGoals() {
|
||||
super.registerGoals();
|
||||
diff --git a/net/minecraft/world/entity/monster/Shulker.java b/net/minecraft/world/entity/monster/Shulker.java
|
||||
index 0a5a6f23cd8e4317db4e7c0ba8883e99f3aff148..2b73382e5bcf47da483ea88e2eae480ebb48e8f9 100644
|
||||
index cf49a580c8dacb895b7a8ec2531d3afee2ffc30c..62bf636b9fb0f13ef7d5787001df0902719bcadf 100644
|
||||
--- a/net/minecraft/world/entity/monster/Shulker.java
|
||||
+++ b/net/minecraft/world/entity/monster/Shulker.java
|
||||
@@ -140,6 +140,13 @@ public class Shulker extends AbstractGolem implements Enemy {
|
||||
@@ -142,6 +142,13 @@ public class Shulker extends AbstractGolem implements Enemy {
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -923,7 +923,7 @@ index 0a5a6f23cd8e4317db4e7c0ba8883e99f3aff148..2b73382e5bcf47da483ea88e2eae480e
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
|
||||
diff --git a/net/minecraft/world/entity/monster/Silverfish.java b/net/minecraft/world/entity/monster/Silverfish.java
|
||||
index c64509a5027de1369bde610feba7a39aa5b404fd..ba80f86980b6789bf944a4350b6f89d644cc283d 100644
|
||||
index 205c05f46d70d37e11a0e35c97128e0c20b94e23..b45f8eb2bd1d9b3c91716bf329febe92620e315f 100644
|
||||
--- a/net/minecraft/world/entity/monster/Silverfish.java
|
||||
+++ b/net/minecraft/world/entity/monster/Silverfish.java
|
||||
@@ -72,6 +72,13 @@ public class Silverfish extends Monster {
|
||||
@@ -941,7 +941,7 @@ index c64509a5027de1369bde610feba7a39aa5b404fd..ba80f86980b6789bf944a4350b6f89d6
|
||||
protected void registerGoals() {
|
||||
this.friendsGoal = new Silverfish.SilverfishWakeUpFriendsGoal(this);
|
||||
diff --git a/net/minecraft/world/entity/monster/Slime.java b/net/minecraft/world/entity/monster/Slime.java
|
||||
index c4222e17d9a1f4cba6a74099a167cff13856f3e3..29d6d0c9687b835d24fe51c3824deeb67af1ba4f 100644
|
||||
index 556930ac4d06b4f46a87d237857006729fea5ef5..dd21ca5047d16af2d7ed28c97976d845eab1b470 100644
|
||||
--- a/net/minecraft/world/entity/monster/Slime.java
|
||||
+++ b/net/minecraft/world/entity/monster/Slime.java
|
||||
@@ -142,6 +142,13 @@ public class Slime extends Mob implements Enemy {
|
||||
@@ -959,10 +959,10 @@ index c4222e17d9a1f4cba6a74099a167cff13856f3e3..29d6d0c9687b835d24fe51c3824deeb6
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
|
||||
diff --git a/net/minecraft/world/entity/monster/Strider.java b/net/minecraft/world/entity/monster/Strider.java
|
||||
index 758887f3fcec2bf0946cddb184e19a1c9b64eee3..37b0c8f55ed4ac4feac6a35bd4377007a19ea2ce 100644
|
||||
index 1b6137674d807ed29d56e3f3120abe60254274e1..7c05c394138699c199e2044325d294826796217c 100644
|
||||
--- a/net/minecraft/world/entity/monster/Strider.java
|
||||
+++ b/net/minecraft/world/entity/monster/Strider.java
|
||||
@@ -124,6 +124,13 @@ public class Strider extends Animal implements ItemSteerable {
|
||||
@@ -125,6 +125,13 @@ public class Strider extends Animal implements ItemSteerable {
|
||||
}
|
||||
// Purpur end - Make entity breeding times configurable
|
||||
|
||||
@@ -974,13 +974,13 @@ index 758887f3fcec2bf0946cddb184e19a1c9b64eee3..37b0c8f55ed4ac4feac6a35bd4377007
|
||||
+ // Purpur end - Mobs always drop experience
|
||||
+
|
||||
public static boolean checkStriderSpawnRules(
|
||||
EntityType<Strider> entityType, LevelAccessor level, EntitySpawnReason spawnReason, BlockPos pos, RandomSource random
|
||||
) {
|
||||
final EntityType<Strider> ignoredType,
|
||||
final LevelAccessor level,
|
||||
diff --git a/net/minecraft/world/entity/monster/Vex.java b/net/minecraft/world/entity/monster/Vex.java
|
||||
index 6ead673c44891c6b1c1688f80bf299527d7bc777..acd196d435758a8730569ba4e772bb954c4f85b6 100644
|
||||
index c7700ff6b7faf06116626ad95e11cd4604751eda..97177c9f1982e348e4987f254a9daeeac5da1cbe 100644
|
||||
--- a/net/minecraft/world/entity/monster/Vex.java
|
||||
+++ b/net/minecraft/world/entity/monster/Vex.java
|
||||
@@ -117,6 +117,13 @@ public class Vex extends Monster implements TraceableEntity {
|
||||
@@ -118,6 +118,13 @@ public class Vex extends Monster implements TraceableEntity {
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -995,7 +995,7 @@ index 6ead673c44891c6b1c1688f80bf299527d7bc777..acd196d435758a8730569ba4e772bb95
|
||||
public boolean isFlapping() {
|
||||
return this.tickCount % TICKS_PER_FLAP == 0;
|
||||
diff --git a/net/minecraft/world/entity/monster/Witch.java b/net/minecraft/world/entity/monster/Witch.java
|
||||
index 86d9952ed0f692e8f229b0c0bcb6cacf53a00c8b..97a427faa37ce9b0c558da40d582b16ac1e96da2 100644
|
||||
index bfa222c9b61bc2d20927fdf08e8baa5fda4fdbdc..f05beafdbc3f1dcf0413bb2b9f8dbcdd35532867 100644
|
||||
--- a/net/minecraft/world/entity/monster/Witch.java
|
||||
+++ b/net/minecraft/world/entity/monster/Witch.java
|
||||
@@ -89,6 +89,13 @@ public class Witch extends Raider implements RangedAttackMob {
|
||||
@@ -1013,10 +1013,10 @@ index 86d9952ed0f692e8f229b0c0bcb6cacf53a00c8b..97a427faa37ce9b0c558da40d582b16a
|
||||
protected void registerGoals() {
|
||||
super.registerGoals();
|
||||
diff --git a/net/minecraft/world/entity/monster/Zoglin.java b/net/minecraft/world/entity/monster/Zoglin.java
|
||||
index e2708eb836d60588c1bedb75c520e5007185034a..d6de61ed4415cd00858375406567ea9407030e1e 100644
|
||||
index 15e5e3c63ec9bddaf19636e27dd21d12df9318ce..547e9a61779b653c9f59fb04c03d8c2b4ee16e8e 100644
|
||||
--- a/net/minecraft/world/entity/monster/Zoglin.java
|
||||
+++ b/net/minecraft/world/entity/monster/Zoglin.java
|
||||
@@ -119,6 +119,13 @@ public class Zoglin extends Monster implements HoglinBase {
|
||||
@@ -108,6 +108,13 @@ public class Zoglin extends Monster implements HoglinBase {
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -1028,13 +1028,13 @@ index e2708eb836d60588c1bedb75c520e5007185034a..d6de61ed4415cd00858375406567ea94
|
||||
+ // Purpur end - Mobs always drop experience
|
||||
+
|
||||
@Override
|
||||
protected Brain.Provider<Zoglin> brainProvider() {
|
||||
return Brain.provider(MEMORY_TYPES, SENSOR_TYPES);
|
||||
protected Brain<Zoglin> makeBrain(final Brain.Packed packedBrain) {
|
||||
return BRAIN_PROVIDER.makeBrain(this, packedBrain);
|
||||
diff --git a/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
||||
index 5e3f7005a7167c786038823a8437ad2e90a41d2c..460640f5512be6553f1ec69e20e27c7cc797068b 100644
|
||||
index d001cf955dba66435079eb2cc30e05aec963d2c6..b8c764cc274f43073a460a4c8643e0cb87d808ad 100644
|
||||
--- a/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
||||
+++ b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
||||
@@ -136,6 +136,13 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
|
||||
@@ -112,6 +112,13 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -1046,13 +1046,13 @@ index 5e3f7005a7167c786038823a8437ad2e90a41d2c..460640f5512be6553f1ec69e20e27c7c
|
||||
+ // Purpur end - Mobs always drop experience
|
||||
+
|
||||
@VisibleForTesting
|
||||
public void setTimeInOverworld(int timeInOverworld) {
|
||||
public void setTimeInOverworld(final int timeInOverworld) {
|
||||
this.timeInOverworld = timeInOverworld;
|
||||
diff --git a/net/minecraft/world/entity/monster/illager/Evoker.java b/net/minecraft/world/entity/monster/illager/Evoker.java
|
||||
index c4f45f6303a46ad54991c9013608a4e5ba8b9fee..1572f7653045902fa05f0499d920eb2b2ff46931 100644
|
||||
index 75276deb3208437fce669f9e483ff6c7a99d69a3..452ed8d77c84c26c711531f36f47e84b7379361f 100644
|
||||
--- a/net/minecraft/world/entity/monster/illager/Evoker.java
|
||||
+++ b/net/minecraft/world/entity/monster/illager/Evoker.java
|
||||
@@ -81,6 +81,13 @@ public class Evoker extends SpellcasterIllager {
|
||||
@@ -82,6 +82,13 @@ public class Evoker extends SpellcasterIllager {
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -1067,10 +1067,10 @@ index c4f45f6303a46ad54991c9013608a4e5ba8b9fee..1572f7653045902fa05f0499d920eb2b
|
||||
protected void registerGoals() {
|
||||
super.registerGoals();
|
||||
diff --git a/net/minecraft/world/entity/monster/illager/Illusioner.java b/net/minecraft/world/entity/monster/illager/Illusioner.java
|
||||
index 32278f51f4973d1294e52f0775697e9f5b295ee0..ea9b61b6f8463edf3497d240b010f8da3e04f62f 100644
|
||||
index 32b8f638ea26494cae648f4bb48a664ce2a5021e..fefb7927cb9b906e00b68f43e947504dec97f52e 100644
|
||||
--- a/net/minecraft/world/entity/monster/illager/Illusioner.java
|
||||
+++ b/net/minecraft/world/entity/monster/illager/Illusioner.java
|
||||
@@ -93,6 +93,13 @@ public class Illusioner extends SpellcasterIllager implements RangedAttackMob {
|
||||
@@ -94,6 +94,13 @@ public class Illusioner extends SpellcasterIllager implements RangedAttackMob {
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -1085,7 +1085,7 @@ index 32278f51f4973d1294e52f0775697e9f5b295ee0..ea9b61b6f8463edf3497d240b010f8da
|
||||
protected void registerGoals() {
|
||||
super.registerGoals();
|
||||
diff --git a/net/minecraft/world/entity/monster/illager/Pillager.java b/net/minecraft/world/entity/monster/illager/Pillager.java
|
||||
index 6190286ab2f454382d497b4fce47632e6f771215..68fe150d0da04084690670f29a0a4ea035e8c921 100644
|
||||
index bd9092a0fecef475bde06d94bc2f6726f21404fd..e69514bf39e2acfc909cb55b1704ca3f56f704e2 100644
|
||||
--- a/net/minecraft/world/entity/monster/illager/Pillager.java
|
||||
+++ b/net/minecraft/world/entity/monster/illager/Pillager.java
|
||||
@@ -97,6 +97,13 @@ public class Pillager extends AbstractIllager implements CrossbowAttackMob, Inve
|
||||
@@ -1103,7 +1103,7 @@ index 6190286ab2f454382d497b4fce47632e6f771215..68fe150d0da04084690670f29a0a4ea0
|
||||
protected void registerGoals() {
|
||||
super.registerGoals();
|
||||
diff --git a/net/minecraft/world/entity/monster/illager/Vindicator.java b/net/minecraft/world/entity/monster/illager/Vindicator.java
|
||||
index 86b463a16e8630af4918ea43a2546995aa00244f..367c74123ee9d07795527eec6ba2f83a9e953081 100644
|
||||
index aab0bd86da31ca73efc4988fa34c906886139ec3..c29a1aea5c09ade40e36f4cb00a677b31ad91069 100644
|
||||
--- a/net/minecraft/world/entity/monster/illager/Vindicator.java
|
||||
+++ b/net/minecraft/world/entity/monster/illager/Vindicator.java
|
||||
@@ -89,6 +89,13 @@ public class Vindicator extends AbstractIllager {
|
||||
@@ -1121,10 +1121,10 @@ index 86b463a16e8630af4918ea43a2546995aa00244f..367c74123ee9d07795527eec6ba2f83a
|
||||
protected void registerGoals() {
|
||||
super.registerGoals();
|
||||
diff --git a/net/minecraft/world/entity/monster/piglin/Piglin.java b/net/minecraft/world/entity/monster/piglin/Piglin.java
|
||||
index d6c834914ddea76280466bf0f7d001a76af34f08..49ed463ae7ef65b2630a5b914689e04fa729a40c 100644
|
||||
index de86e23b377ca0727d5f5234f2bc63180ddbbad2..47bcb895bf4c6f438bb0bb82f84331487fd28c0c 100644
|
||||
--- a/net/minecraft/world/entity/monster/piglin/Piglin.java
|
||||
+++ b/net/minecraft/world/entity/monster/piglin/Piglin.java
|
||||
@@ -173,6 +173,13 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
|
||||
@@ -140,6 +140,13 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -1136,13 +1136,13 @@ index d6c834914ddea76280466bf0f7d001a76af34f08..49ed463ae7ef65b2630a5b914689e04f
|
||||
+ // Purpur end - Mobs always drop experience
|
||||
+
|
||||
@Override
|
||||
protected void addAdditionalSaveData(ValueOutput output) {
|
||||
protected void addAdditionalSaveData(final ValueOutput output) {
|
||||
super.addAdditionalSaveData(output);
|
||||
diff --git a/net/minecraft/world/entity/monster/piglin/PiglinBrute.java b/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
|
||||
index 4bf2038fea712e65f420ade915a18470b79318fc..7baccc23f868ac9b8720bfd77b2af6b7dd368820 100644
|
||||
index 79e084304cec441966a22f0028e021d19e49bfd3..0755e3ed3b940609f0211d123c0c664905af56b5 100644
|
||||
--- a/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
|
||||
+++ b/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
|
||||
@@ -97,6 +97,13 @@ public class PiglinBrute extends AbstractPiglin {
|
||||
@@ -82,6 +82,13 @@ public class PiglinBrute extends AbstractPiglin {
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -1157,7 +1157,7 @@ index 4bf2038fea712e65f420ade915a18470b79318fc..7baccc23f868ac9b8720bfd77b2af6b7
|
||||
return Monster.createMonsterAttributes()
|
||||
.add(Attributes.MAX_HEALTH, 50.0)
|
||||
diff --git a/net/minecraft/world/entity/monster/skeleton/Skeleton.java b/net/minecraft/world/entity/monster/skeleton/Skeleton.java
|
||||
index 30d79be765118a50e2e2c5bfde6bf6bbc957cf40..03e441e7e9033961dbcf60e574fae48621513c87 100644
|
||||
index a2fc1cf5fa77c1cc78610ce0b4bbd35a371878a0..7d0c6fe7290e8ad44c451b431778e1b7fe37c6e5 100644
|
||||
--- a/net/minecraft/world/entity/monster/skeleton/Skeleton.java
|
||||
+++ b/net/minecraft/world/entity/monster/skeleton/Skeleton.java
|
||||
@@ -57,6 +57,13 @@ public class Skeleton extends AbstractSkeleton {
|
||||
@@ -1172,10 +1172,10 @@ index 30d79be765118a50e2e2c5bfde6bf6bbc957cf40..03e441e7e9033961dbcf60e574fae486
|
||||
+ // Purpur end - Mobs always drop experience
|
||||
+
|
||||
@Override
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
protected void defineSynchedData(final SynchedEntityData.Builder entityData) {
|
||||
super.defineSynchedData(entityData);
|
||||
diff --git a/net/minecraft/world/entity/monster/skeleton/Stray.java b/net/minecraft/world/entity/monster/skeleton/Stray.java
|
||||
index ec19c49d195daff5839c991cce63b1ffc15a7e0b..5cea4ff662c7136d2778b84c21f368cb5ac1c81a 100644
|
||||
index 64dc2a04bb2ae4dc63083a24c48f671bfc8ff8ea..76f28568aecf019ce7432ff89593b2ed4eaff8a2 100644
|
||||
--- a/net/minecraft/world/entity/monster/skeleton/Stray.java
|
||||
+++ b/net/minecraft/world/entity/monster/skeleton/Stray.java
|
||||
@@ -54,6 +54,13 @@ public class Stray extends AbstractSkeleton {
|
||||
@@ -1190,10 +1190,10 @@ index ec19c49d195daff5839c991cce63b1ffc15a7e0b..5cea4ff662c7136d2778b84c21f368cb
|
||||
+ // Purpur end - Mobs always drop experience
|
||||
+
|
||||
public static boolean checkStraySpawnRules(
|
||||
EntityType<Stray> entityType, ServerLevelAccessor level, EntitySpawnReason spawnReason, BlockPos pos, RandomSource random
|
||||
final EntityType<Stray> type, final ServerLevelAccessor level, final EntitySpawnReason spawnReason, final BlockPos pos, final RandomSource random
|
||||
) {
|
||||
diff --git a/net/minecraft/world/entity/monster/skeleton/WitherSkeleton.java b/net/minecraft/world/entity/monster/skeleton/WitherSkeleton.java
|
||||
index 3e8cc658b333f1259784e1426896ac8b8c1537fa..40134013e3254c6c6ed370150adb4bda7c0f2d9a 100644
|
||||
index f1cf1d01a497fc46d201ad403b459f9886059d0f..3c3c53de82856033aab31c6b03e90ba647223fa7 100644
|
||||
--- a/net/minecraft/world/entity/monster/skeleton/WitherSkeleton.java
|
||||
+++ b/net/minecraft/world/entity/monster/skeleton/WitherSkeleton.java
|
||||
@@ -66,6 +66,13 @@ public class WitherSkeleton extends AbstractSkeleton {
|
||||
@@ -1211,7 +1211,7 @@ index 3e8cc658b333f1259784e1426896ac8b8c1537fa..40134013e3254c6c6ed370150adb4bda
|
||||
protected void registerGoals() {
|
||||
this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractPiglin.class, true));
|
||||
diff --git a/net/minecraft/world/entity/monster/spider/CaveSpider.java b/net/minecraft/world/entity/monster/spider/CaveSpider.java
|
||||
index fad3e951e443f04f5bf0423cde42c0ae299a4236..fb4caabbbe5bd0befdaba49ee3cfe70c326b50a7 100644
|
||||
index cbbfdd2dde1437955f1007618244eeb72768b8fd..24b5ba31c92923545d5b7cab758c2e30ac77d23b 100644
|
||||
--- a/net/minecraft/world/entity/monster/spider/CaveSpider.java
|
||||
+++ b/net/minecraft/world/entity/monster/spider/CaveSpider.java
|
||||
@@ -58,6 +58,13 @@ public class CaveSpider extends Spider {
|
||||
@@ -1226,10 +1226,10 @@ index fad3e951e443f04f5bf0423cde42c0ae299a4236..fb4caabbbe5bd0befdaba49ee3cfe70c
|
||||
+ // Purpur end - Mobs always drop experience
|
||||
+
|
||||
@Override
|
||||
public boolean doHurtTarget(ServerLevel level, Entity target) {
|
||||
public boolean doHurtTarget(final ServerLevel level, final Entity target) {
|
||||
if (super.doHurtTarget(level, target)) {
|
||||
diff --git a/net/minecraft/world/entity/monster/spider/Spider.java b/net/minecraft/world/entity/monster/spider/Spider.java
|
||||
index 81c500de41b11d4aa6c52dc290f132ad2c23f009..7993ea937772cabe848726c942b6df0ae52e74e2 100644
|
||||
index 43c50e6808eaab4bb31ffbbc633a66bab49b9574..408bfd276b7a70103ede33f3b87d4dc1b10d34f5 100644
|
||||
--- a/net/minecraft/world/entity/monster/spider/Spider.java
|
||||
+++ b/net/minecraft/world/entity/monster/spider/Spider.java
|
||||
@@ -84,6 +84,13 @@ public class Spider extends Monster {
|
||||
@@ -1247,10 +1247,10 @@ index 81c500de41b11d4aa6c52dc290f132ad2c23f009..7993ea937772cabe848726c942b6df0a
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(1, new FloatGoal(this));
|
||||
diff --git a/net/minecraft/world/entity/monster/zombie/Drowned.java b/net/minecraft/world/entity/monster/zombie/Drowned.java
|
||||
index ec36b854dccae7cef905aeb2fcd4ec177828139c..abafb96df26b3d987ce3ec3e1e96e8fc20cb5b6b 100644
|
||||
index e4769eeacc3ac97f90acb5ed0127990466c8d886..07242b2e6ab055122360035f058c39d54dbb8dc7 100644
|
||||
--- a/net/minecraft/world/entity/monster/zombie/Drowned.java
|
||||
+++ b/net/minecraft/world/entity/monster/zombie/Drowned.java
|
||||
@@ -133,6 +133,13 @@ public class Drowned extends Zombie implements RangedAttackMob {
|
||||
@@ -140,6 +140,13 @@ public class Drowned extends Zombie implements RangedAttackMob {
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -1265,10 +1265,10 @@ index ec36b854dccae7cef905aeb2fcd4ec177828139c..abafb96df26b3d987ce3ec3e1e96e8fc
|
||||
protected void addBehaviourGoals() {
|
||||
this.goalSelector.addGoal(1, new Drowned.DrownedGoToWaterGoal(this, 1.0));
|
||||
diff --git a/net/minecraft/world/entity/monster/zombie/Husk.java b/net/minecraft/world/entity/monster/zombie/Husk.java
|
||||
index 6ee9369701b370fad3431c39e59dff1beb5752ea..44583271813ed98a591284d16767cc3411341084 100644
|
||||
index 02e935edd7a6cabbf2e6fcc6c96a9601bee71acc..5d60b230eeaec9d37e286019b8d4276cfa85a9ea 100644
|
||||
--- a/net/minecraft/world/entity/monster/zombie/Husk.java
|
||||
+++ b/net/minecraft/world/entity/monster/zombie/Husk.java
|
||||
@@ -83,6 +83,13 @@ public class Husk extends Zombie {
|
||||
@@ -91,6 +91,13 @@ public class Husk extends Zombie {
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -1283,10 +1283,10 @@ index 6ee9369701b370fad3431c39e59dff1beb5752ea..44583271813ed98a591284d16767cc34
|
||||
public boolean isSunSensitive() {
|
||||
return this.shouldBurnInDay; // Purpur - moved to LivingEntity; keep methods for ABI compatibility - API for any mob to burn daylight
|
||||
diff --git a/net/minecraft/world/entity/monster/zombie/Zombie.java b/net/minecraft/world/entity/monster/zombie/Zombie.java
|
||||
index 2d00d951d0baf3e2b66b237ac3327effea589932..2df9517011560cc730376e99eb0f1be78f431a0e 100644
|
||||
index dffb152543d06380618c36cf89374b7d11336039..68070943966aac17e1878f6730781cf2b603be7a 100644
|
||||
--- a/net/minecraft/world/entity/monster/zombie/Zombie.java
|
||||
+++ b/net/minecraft/world/entity/monster/zombie/Zombie.java
|
||||
@@ -150,6 +150,13 @@ public class Zombie extends Monster {
|
||||
@@ -160,6 +160,13 @@ public class Zombie extends Monster {
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -1301,7 +1301,7 @@ index 2d00d951d0baf3e2b66b237ac3327effea589932..2df9517011560cc730376e99eb0f1be7
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
|
||||
diff --git a/net/minecraft/world/entity/monster/zombie/ZombieVillager.java b/net/minecraft/world/entity/monster/zombie/ZombieVillager.java
|
||||
index df9682cacc2913aaf51b3afbd86bbc080ab8bde0..04e1401b5a1edfe7370fa31fee67f5ad8819e41f 100644
|
||||
index ecbac0d55dbe921ac2e185e0acab5691579be512..3e96d18ed2fb67c08e77b17ec7f6418fbb5caf8f 100644
|
||||
--- a/net/minecraft/world/entity/monster/zombie/ZombieVillager.java
|
||||
+++ b/net/minecraft/world/entity/monster/zombie/ZombieVillager.java
|
||||
@@ -138,6 +138,13 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
|
||||
@@ -1316,13 +1316,13 @@ index df9682cacc2913aaf51b3afbd86bbc080ab8bde0..04e1401b5a1edfe7370fa31fee67f5ad
|
||||
+ // Purpur end - Mobs always drop experience
|
||||
+
|
||||
@Override
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
protected void defineSynchedData(final SynchedEntityData.Builder entityData) {
|
||||
super.defineSynchedData(entityData);
|
||||
diff --git a/net/minecraft/world/entity/monster/zombie/ZombifiedPiglin.java b/net/minecraft/world/entity/monster/zombie/ZombifiedPiglin.java
|
||||
index 9a1da88752b0dd708365dd41a074cc0e90f36e1c..528baf4ca71725d4af6876d195b6d75fdab5ca58 100644
|
||||
index 6cc4d4729520c60b98d45d5e7dd674e599616505..9e893c0c033dcc2273275b92048d9b1a941d93f2 100644
|
||||
--- a/net/minecraft/world/entity/monster/zombie/ZombifiedPiglin.java
|
||||
+++ b/net/minecraft/world/entity/monster/zombie/ZombifiedPiglin.java
|
||||
@@ -113,6 +113,13 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
|
||||
@@ -117,6 +117,13 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -1337,10 +1337,10 @@ index 9a1da88752b0dd708365dd41a074cc0e90f36e1c..528baf4ca71725d4af6876d195b6d75f
|
||||
protected void addBehaviourGoals() {
|
||||
this.goalSelector.addGoal(1, new SpearUseGoal<>(this, 1.0, 1.0, 10.0F, 2.0F));
|
||||
diff --git a/net/minecraft/world/entity/npc/villager/Villager.java b/net/minecraft/world/entity/npc/villager/Villager.java
|
||||
index b6bfe06a2ad8e4219d99de050b30ce1ad15b8b34..996468c21a79d698a8d842189ffd4f2dc86a4302 100644
|
||||
index fe93e373ea46970af5ca117e80a7d5a2497afeca..297eba0bcf340f83c5d12ced343ccbfc738d4d35 100644
|
||||
--- a/net/minecraft/world/entity/npc/villager/Villager.java
|
||||
+++ b/net/minecraft/world/entity/npc/villager/Villager.java
|
||||
@@ -289,6 +289,13 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -291,6 +291,13 @@ public class Villager extends AbstractVillager implements VillagerDataHolder, Re
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
@@ -1353,9 +1353,9 @@ index b6bfe06a2ad8e4219d99de050b30ce1ad15b8b34..996468c21a79d698a8d842189ffd4f2d
|
||||
+
|
||||
@Override
|
||||
public Brain<Villager> getBrain() {
|
||||
return (Brain<Villager>)super.getBrain();
|
||||
return (Brain<Villager>) super.getBrain();
|
||||
diff --git a/net/minecraft/world/entity/npc/wanderingtrader/WanderingTrader.java b/net/minecraft/world/entity/npc/wanderingtrader/WanderingTrader.java
|
||||
index cabebbc25788a8c41912f97dac85af41c9433b68..9502fe0c4f125f5802fde032954c447b14435da2 100644
|
||||
index cbbfa09d53ada7c39e9504d28770867989eaa5c1..47ee1521e25c987fce6da0bd981371a7e835d565 100644
|
||||
--- a/net/minecraft/world/entity/npc/wanderingtrader/WanderingTrader.java
|
||||
+++ b/net/minecraft/world/entity/npc/wanderingtrader/WanderingTrader.java
|
||||
@@ -106,6 +106,13 @@ public class WanderingTrader extends AbstractVillager implements Consumable.Over
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Setting to reintroduce end void rings
|
||||
|
||||
|
||||
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
||||
index 9f3aec24bd8aa75ea116375c1cf0a54bcc229fa2..4af19f9f5152e9f6386e375a1ac5280ce00f48ea 100644
|
||||
index 0d5558444e9b775c015148d79eb4b04355671cf9..ffc75fc2b04088573877b95c948f457ee2458bd7 100644
|
||||
--- a/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1313,6 +1313,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1205,6 +1205,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
}
|
||||
}
|
||||
// Purpur end - config for startup commands
|
||||
@@ -25,13 +25,13 @@ index 9f3aec24bd8aa75ea116375c1cf0a54bcc229fa2..4af19f9f5152e9f6386e375a1ac5280c
|
||||
while (this.running) {
|
||||
final long tickStart = System.nanoTime(); // Paper - improve tick loop
|
||||
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
index 6a0ccd6eb3e355348c68db3de980f4eddea1aaea..19a25ee84a4211256a1dbb614db9ebf2ce53182f 100644
|
||||
index f27135d85936cae01823d8ae00134c4f8c6230d6..67a4038be124192eb70122e657d090bba7ec5bba 100644
|
||||
--- a/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
@@ -258,6 +258,15 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
@@ -279,6 +279,15 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
org.spigotmc.SpigotConfig.init((java.io.File) this.options.valueOf("spigot-settings"));
|
||||
org.spigotmc.SpigotConfig.registerCommands();
|
||||
// Spigot end
|
||||
io.papermc.paper.util.ObfHelper.INSTANCE.getClass(); // Paper - load mappings for stacktrace deobf and etc.
|
||||
+ // Purpur start - Migrate Setting to reintroduce end void rings
|
||||
+ try {
|
||||
+ org.purpurmc.purpur.PurpurConfig.init((java.io.File) options.valueOf("purpur-settings"));
|
||||
@@ -44,7 +44,7 @@ index 6a0ccd6eb3e355348c68db3de980f4eddea1aaea..19a25ee84a4211256a1dbb614db9ebf2
|
||||
// Paper start - initialize global and world-defaults configuration
|
||||
this.paperConfigurations.initializeGlobalConfiguration(this.registryAccess());
|
||||
this.paperConfigurations.initializeWorldDefaultsConfiguration(this.registryAccess());
|
||||
@@ -274,7 +283,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
@@ -295,7 +304,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
io.papermc.paper.command.PaperCommands.registerCommands(this); // Paper - setup /paper command
|
||||
this.server.spark.registerCommandBeforePlugins(this.server); // Paper - spark
|
||||
com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); // Paper - start metrics
|
||||
@@ -53,7 +53,7 @@ index 6a0ccd6eb3e355348c68db3de980f4eddea1aaea..19a25ee84a4211256a1dbb614db9ebf2
|
||||
try {
|
||||
org.purpurmc.purpur.PurpurConfig.init((java.io.File) options.valueOf("purpur-settings"));
|
||||
} catch (Exception e) {
|
||||
@@ -282,7 +291,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
@@ -303,7 +312,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
return false;
|
||||
}
|
||||
org.purpurmc.purpur.PurpurConfig.registerCommands();
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Per mob mob_griefing loot pickup override
|
||||
|
||||
|
||||
diff --git a/net/minecraft/world/entity/Mob.java b/net/minecraft/world/entity/Mob.java
|
||||
index 327982be3748e82a36c7a24ede989dacebfb04db..1b173556470d0f66b1c4a06384f268a910da50ad 100644
|
||||
index 44e3e723d6a796917e73012dbd03d4b36cb11a0e..34ce53202f0b1baaaaf2e5ae1bb9aede9f70aa62 100644
|
||||
--- a/net/minecraft/world/entity/Mob.java
|
||||
+++ b/net/minecraft/world/entity/Mob.java
|
||||
@@ -554,7 +554,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
|
||||
@@ -560,7 +560,7 @@ public abstract class Mob extends LivingEntity implements Targeting, EquipmentUs
|
||||
&& this.canPickUpLoot()
|
||||
&& this.isAlive()
|
||||
&& !this.dead
|
||||
@@ -16,9 +16,9 @@ index 327982be3748e82a36c7a24ede989dacebfb04db..1b173556470d0f66b1c4a06384f268a9
|
||||
+ && serverLevel.getGameRules().get(GameRules.MOB_GRIEFING, checkEntityPickUpLootOverride())) { // Purpur - Check mobGriefing Overrides
|
||||
Vec3i pickupReach = this.getPickupReach();
|
||||
|
||||
for (ItemEntity itemEntity : this.level()
|
||||
@@ -576,6 +576,12 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
|
||||
profilerFiller.pop();
|
||||
for (ItemEntity entity : this.level()
|
||||
@@ -579,6 +579,12 @@ public abstract class Mob extends LivingEntity implements Targeting, EquipmentUs
|
||||
profiler.pop();
|
||||
}
|
||||
|
||||
+ // Purpur start - Check mobGriefing Overrides
|
||||
@@ -31,10 +31,10 @@ index 327982be3748e82a36c7a24ede989dacebfb04db..1b173556470d0f66b1c4a06384f268a9
|
||||
return EquipmentSlot.HEAD;
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/animal/allay/Allay.java b/net/minecraft/world/entity/animal/allay/Allay.java
|
||||
index ea7666cc10aee49e13dbdd6e3367fabaa0dcbc17..8635ecfa49e2504c981dd48acbfbca5303a37611 100644
|
||||
index 3a78175273efa24a6bf98ee44fe24a4df71e63ed..86129786c9927fc5aa941207971e28ff4b20023f 100644
|
||||
--- a/net/minecraft/world/entity/animal/allay/Allay.java
|
||||
+++ b/net/minecraft/world/entity/animal/allay/Allay.java
|
||||
@@ -175,6 +175,13 @@ public class Allay extends PathfinderMob implements InventoryCarrier, VibrationS
|
||||
@@ -162,6 +162,13 @@ public class Allay extends PathfinderMob implements InventoryCarrier, VibrationS
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -46,13 +46,13 @@ index ea7666cc10aee49e13dbdd6e3367fabaa0dcbc17..8635ecfa49e2504c981dd48acbfbca53
|
||||
+ // Purpur end - Check mobGriefing Overrides
|
||||
+
|
||||
@Override
|
||||
protected Brain.Provider<Allay> brainProvider() {
|
||||
return Brain.provider(MEMORY_TYPES, SENSOR_TYPES);
|
||||
protected Brain<Allay> makeBrain(final Brain.Packed packedBrain) {
|
||||
return BRAIN_PROVIDER.makeBrain(this, packedBrain);
|
||||
diff --git a/net/minecraft/world/entity/animal/fox/Fox.java b/net/minecraft/world/entity/animal/fox/Fox.java
|
||||
index f35f845e3e18c0bb0e4a076298c30be2ae479792..98937a998f55ee462421a7477cc3e2fbf4e75ba3 100644
|
||||
index 335da522a9b96ebc852b4ed5f22f9fd71aec23a8..ba48b114282939c806523052b2ad82e5041f5d45 100644
|
||||
--- a/net/minecraft/world/entity/animal/fox/Fox.java
|
||||
+++ b/net/minecraft/world/entity/animal/fox/Fox.java
|
||||
@@ -808,6 +808,13 @@ public class Fox extends Animal {
|
||||
@@ -815,6 +815,13 @@ public class Fox extends Animal {
|
||||
}
|
||||
// Purpur end - Tulips change fox type
|
||||
|
||||
@@ -65,9 +65,9 @@ index f35f845e3e18c0bb0e4a076298c30be2ae479792..98937a998f55ee462421a7477cc3e2fb
|
||||
+
|
||||
@Override
|
||||
// Paper start - Cancellable death event
|
||||
protected org.bukkit.event.entity.EntityDeathEvent dropAllDeathLoot(ServerLevel level, DamageSource damageSource) {
|
||||
protected org.bukkit.event.entity.EntityDeathEvent dropAllDeathLoot(final ServerLevel level, final DamageSource source) {
|
||||
diff --git a/net/minecraft/world/entity/monster/illager/Pillager.java b/net/minecraft/world/entity/monster/illager/Pillager.java
|
||||
index 68fe150d0da04084690670f29a0a4ea035e8c921..1a283185ac03ba44bae531f9b234703fa213df1a 100644
|
||||
index e69514bf39e2acfc909cb55b1704ca3f56f704e2..20c0b12b56416bc532de4de827c88850bfd1f0f3 100644
|
||||
--- a/net/minecraft/world/entity/monster/illager/Pillager.java
|
||||
+++ b/net/minecraft/world/entity/monster/illager/Pillager.java
|
||||
@@ -104,6 +104,13 @@ public class Pillager extends AbstractIllager implements CrossbowAttackMob, Inve
|
||||
@@ -85,7 +85,7 @@ index 68fe150d0da04084690670f29a0a4ea035e8c921..1a283185ac03ba44bae531f9b234703f
|
||||
protected void registerGoals() {
|
||||
super.registerGoals();
|
||||
diff --git a/net/minecraft/world/entity/monster/illager/Vindicator.java b/net/minecraft/world/entity/monster/illager/Vindicator.java
|
||||
index 367c74123ee9d07795527eec6ba2f83a9e953081..97bf22925df40a2f757b50f3fc7cbefc951443bb 100644
|
||||
index c29a1aea5c09ade40e36f4cb00a677b31ad91069..d4e298ecf79ff7ebdea71b710e6df7ba72f9a0f5 100644
|
||||
--- a/net/minecraft/world/entity/monster/illager/Vindicator.java
|
||||
+++ b/net/minecraft/world/entity/monster/illager/Vindicator.java
|
||||
@@ -96,6 +96,13 @@ public class Vindicator extends AbstractIllager {
|
||||
@@ -103,10 +103,10 @@ index 367c74123ee9d07795527eec6ba2f83a9e953081..97bf22925df40a2f757b50f3fc7cbefc
|
||||
protected void registerGoals() {
|
||||
super.registerGoals();
|
||||
diff --git a/net/minecraft/world/entity/monster/piglin/Piglin.java b/net/minecraft/world/entity/monster/piglin/Piglin.java
|
||||
index 49ed463ae7ef65b2630a5b914689e04fa729a40c..6f1c3d423b7a37aa261c78a0c8f5e1cb02eee320 100644
|
||||
index 47bcb895bf4c6f438bb0bb82f84331487fd28c0c..93c5fa7b63548c6b1d24847f1f363c7c9e0ea0ec 100644
|
||||
--- a/net/minecraft/world/entity/monster/piglin/Piglin.java
|
||||
+++ b/net/minecraft/world/entity/monster/piglin/Piglin.java
|
||||
@@ -180,6 +180,13 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
|
||||
@@ -147,6 +147,13 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
|
||||
}
|
||||
// Purpur end - Mobs always drop experience
|
||||
|
||||
@@ -118,22 +118,22 @@ index 49ed463ae7ef65b2630a5b914689e04fa729a40c..6f1c3d423b7a37aa261c78a0c8f5e1cb
|
||||
+ // Purpur end - Check mobGriefing Overrides
|
||||
+
|
||||
@Override
|
||||
protected void addAdditionalSaveData(ValueOutput output) {
|
||||
protected void addAdditionalSaveData(final ValueOutput output) {
|
||||
super.addAdditionalSaveData(output);
|
||||
@@ -462,7 +469,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
|
||||
@@ -430,7 +437,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
|
||||
|
||||
@Override
|
||||
public boolean wantsToPickUp(ServerLevel level, ItemStack stack) {
|
||||
- return level.getGameRules().get(GameRules.MOB_GRIEFING, level.purpurConfig.piglinMobGriefingOverride) && this.canPickUpLoot() && PiglinAi.wantsToPickup(this, stack); // Purpur - Add mobGriefing override to everything affected
|
||||
+ return level.getGameRules().get(GameRules.MOB_GRIEFING, level.purpurConfig.piglinCanPickUpLoot) && this.canPickUpLoot() && PiglinAi.wantsToPickup(this, stack); // Purpur - Check mobGriefing Overrides
|
||||
public boolean wantsToPickUp(final ServerLevel level, final ItemStack itemStack) {
|
||||
- return level.getGameRules().get(GameRules.MOB_GRIEFING, level.purpurConfig.piglinMobGriefingOverride) && this.canPickUpLoot() && PiglinAi.wantsToPickup(this, itemStack); // Purpur - Add mobGriefing override to everything affected
|
||||
+ return level.getGameRules().get(GameRules.MOB_GRIEFING, level.purpurConfig.piglinCanPickUpLoot) && this.canPickUpLoot() && PiglinAi.wantsToPickup(this, itemStack); // Purpur - Check mobGriefing Overrides
|
||||
}
|
||||
|
||||
protected boolean canReplaceCurrentItem(ItemStack candidate) {
|
||||
protected boolean canReplaceCurrentItem(final ItemStack newItemStack) {
|
||||
diff --git a/net/minecraft/world/entity/monster/piglin/PiglinBrute.java b/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
|
||||
index 7baccc23f868ac9b8720bfd77b2af6b7dd368820..91f1e6b1c916b06914c32b268b8b8c2eb3c49ce2 100644
|
||||
index 0755e3ed3b940609f0211d123c0c664905af56b5..3a33976a667d9d9b446b6b27b5938aff8f5d9ab6 100644
|
||||
--- a/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
|
||||
+++ b/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
|
||||
@@ -104,6 +104,13 @@ public class PiglinBrute extends AbstractPiglin {
|
||||
@@ -89,6 +89,13 @@ public class PiglinBrute extends AbstractPiglin {
|
||||
}
|
||||
// Purpur end - Mobs always drop experience
|
||||
|
||||
@@ -148,7 +148,7 @@ index 7baccc23f868ac9b8720bfd77b2af6b7dd368820..91f1e6b1c916b06914c32b268b8b8c2e
|
||||
return Monster.createMonsterAttributes()
|
||||
.add(Attributes.MAX_HEALTH, 50.0)
|
||||
diff --git a/net/minecraft/world/entity/monster/skeleton/Bogged.java b/net/minecraft/world/entity/monster/skeleton/Bogged.java
|
||||
index f1e9cec85ce911a50bb83eff9228d6b98aa00d44..59c986a28a5546a9070ec9bcf3f1994317b47fff 100644
|
||||
index 50dd01a2092f87fd9015c982f728f14965be5b81..410c5f8e1571970e8043eb5d976cd6d8b95689eb 100644
|
||||
--- a/net/minecraft/world/entity/monster/skeleton/Bogged.java
|
||||
+++ b/net/minecraft/world/entity/monster/skeleton/Bogged.java
|
||||
@@ -66,6 +66,13 @@ public class Bogged extends AbstractSkeleton implements Shearable {
|
||||
@@ -163,10 +163,10 @@ index f1e9cec85ce911a50bb83eff9228d6b98aa00d44..59c986a28a5546a9070ec9bcf3f19943
|
||||
+ // Purpur end - Check mobGriefing Overrides
|
||||
+
|
||||
@Override
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
protected void defineSynchedData(final SynchedEntityData.Builder entityData) {
|
||||
super.defineSynchedData(entityData);
|
||||
diff --git a/net/minecraft/world/entity/monster/skeleton/Skeleton.java b/net/minecraft/world/entity/monster/skeleton/Skeleton.java
|
||||
index 03e441e7e9033961dbcf60e574fae48621513c87..304e6e23a616ddc3312ef27ae5d94c927a52fb80 100644
|
||||
index 7d0c6fe7290e8ad44c451b431778e1b7fe37c6e5..c5b261f36f6042a395b8e1a7d54b20339e81b4b8 100644
|
||||
--- a/net/minecraft/world/entity/monster/skeleton/Skeleton.java
|
||||
+++ b/net/minecraft/world/entity/monster/skeleton/Skeleton.java
|
||||
@@ -64,6 +64,13 @@ public class Skeleton extends AbstractSkeleton {
|
||||
@@ -181,10 +181,10 @@ index 03e441e7e9033961dbcf60e574fae48621513c87..304e6e23a616ddc3312ef27ae5d94c92
|
||||
+ // Purpur end - Check mobGriefing Overrides
|
||||
+
|
||||
@Override
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
protected void defineSynchedData(final SynchedEntityData.Builder entityData) {
|
||||
super.defineSynchedData(entityData);
|
||||
diff --git a/net/minecraft/world/entity/monster/skeleton/Stray.java b/net/minecraft/world/entity/monster/skeleton/Stray.java
|
||||
index 5cea4ff662c7136d2778b84c21f368cb5ac1c81a..262bea9ca0daba064d2e74223b47eb1fbb761479 100644
|
||||
index 76f28568aecf019ce7432ff89593b2ed4eaff8a2..e761c97212e380b6978e5fbd1d808f4ddbb89bb5 100644
|
||||
--- a/net/minecraft/world/entity/monster/skeleton/Stray.java
|
||||
+++ b/net/minecraft/world/entity/monster/skeleton/Stray.java
|
||||
@@ -61,6 +61,13 @@ public class Stray extends AbstractSkeleton {
|
||||
@@ -199,10 +199,10 @@ index 5cea4ff662c7136d2778b84c21f368cb5ac1c81a..262bea9ca0daba064d2e74223b47eb1f
|
||||
+ // Purpur end - Check mobGriefing Overrides
|
||||
+
|
||||
public static boolean checkStraySpawnRules(
|
||||
EntityType<Stray> entityType, ServerLevelAccessor level, EntitySpawnReason spawnReason, BlockPos pos, RandomSource random
|
||||
final EntityType<Stray> type, final ServerLevelAccessor level, final EntitySpawnReason spawnReason, final BlockPos pos, final RandomSource random
|
||||
) {
|
||||
diff --git a/net/minecraft/world/entity/monster/skeleton/WitherSkeleton.java b/net/minecraft/world/entity/monster/skeleton/WitherSkeleton.java
|
||||
index 40134013e3254c6c6ed370150adb4bda7c0f2d9a..c01f182e65b7891dfdd7b92ff2c6e2cf3a8a0374 100644
|
||||
index 3c3c53de82856033aab31c6b03e90ba647223fa7..afc6272905cf6ab464cca03b37b5e6c868094796 100644
|
||||
--- a/net/minecraft/world/entity/monster/skeleton/WitherSkeleton.java
|
||||
+++ b/net/minecraft/world/entity/monster/skeleton/WitherSkeleton.java
|
||||
@@ -73,6 +73,13 @@ public class WitherSkeleton extends AbstractSkeleton {
|
||||
@@ -220,10 +220,10 @@ index 40134013e3254c6c6ed370150adb4bda7c0f2d9a..c01f182e65b7891dfdd7b92ff2c6e2cf
|
||||
protected void registerGoals() {
|
||||
this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractPiglin.class, true));
|
||||
diff --git a/net/minecraft/world/entity/monster/zombie/Drowned.java b/net/minecraft/world/entity/monster/zombie/Drowned.java
|
||||
index abafb96df26b3d987ce3ec3e1e96e8fc20cb5b6b..51e9c23436b620c32c4e5a5448fac8ae67c1dcc0 100644
|
||||
index 07242b2e6ab055122360035f058c39d54dbb8dc7..3a1152e07b2cc0ee4cf84651ada3c987dc704e91 100644
|
||||
--- a/net/minecraft/world/entity/monster/zombie/Drowned.java
|
||||
+++ b/net/minecraft/world/entity/monster/zombie/Drowned.java
|
||||
@@ -140,6 +140,13 @@ public class Drowned extends Zombie implements RangedAttackMob {
|
||||
@@ -147,6 +147,13 @@ public class Drowned extends Zombie implements RangedAttackMob {
|
||||
}
|
||||
// Purpur end - Mobs always drop experience
|
||||
|
||||
@@ -238,10 +238,10 @@ index abafb96df26b3d987ce3ec3e1e96e8fc20cb5b6b..51e9c23436b620c32c4e5a5448fac8ae
|
||||
protected void addBehaviourGoals() {
|
||||
this.goalSelector.addGoal(1, new Drowned.DrownedGoToWaterGoal(this, 1.0));
|
||||
diff --git a/net/minecraft/world/entity/monster/zombie/Husk.java b/net/minecraft/world/entity/monster/zombie/Husk.java
|
||||
index ef289dd3fe0be980c200affb0b84a1066fe52232..d1390e0a88de89b3dc381449ef98a89b327eb4c9 100644
|
||||
index 5d60b230eeaec9d37e286019b8d4276cfa85a9ea..55b2bd676f2e9633fc8250bcd984424e8c37e2ee 100644
|
||||
--- a/net/minecraft/world/entity/monster/zombie/Husk.java
|
||||
+++ b/net/minecraft/world/entity/monster/zombie/Husk.java
|
||||
@@ -90,6 +90,13 @@ public class Husk extends Zombie {
|
||||
@@ -98,6 +98,13 @@ public class Husk extends Zombie {
|
||||
}
|
||||
// Purpur end - Mobs always drop experience
|
||||
|
||||
@@ -256,10 +256,10 @@ index ef289dd3fe0be980c200affb0b84a1066fe52232..d1390e0a88de89b3dc381449ef98a89b
|
||||
public boolean isSunSensitive() {
|
||||
return this.shouldBurnInDay; // Purpur - moved to LivingEntity; keep methods for ABI compatibility - API for any mob to burn daylight
|
||||
diff --git a/net/minecraft/world/entity/monster/zombie/Zombie.java b/net/minecraft/world/entity/monster/zombie/Zombie.java
|
||||
index f14fc03577a94dc6bd6e536e819a32c2d6144f02..5223f68d2e20909e4df716fa86f7ad92c987a062 100644
|
||||
index 68070943966aac17e1878f6730781cf2b603be7a..88552e60c0b6b4bd68c3b82e84f2a7493803e6ec 100644
|
||||
--- a/net/minecraft/world/entity/monster/zombie/Zombie.java
|
||||
+++ b/net/minecraft/world/entity/monster/zombie/Zombie.java
|
||||
@@ -157,6 +157,13 @@ public class Zombie extends Monster {
|
||||
@@ -167,6 +167,13 @@ public class Zombie extends Monster {
|
||||
}
|
||||
// Purpur end - Mobs always drop experience
|
||||
|
||||
@@ -274,7 +274,7 @@ index f14fc03577a94dc6bd6e536e819a32c2d6144f02..5223f68d2e20909e4df716fa86f7ad92
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
|
||||
diff --git a/net/minecraft/world/entity/monster/zombie/ZombieVillager.java b/net/minecraft/world/entity/monster/zombie/ZombieVillager.java
|
||||
index a9a04a4c9cedf33b68c99b2aec12289e63fa156b..9797e206a3038c3af23495b8bfd70424e4bbd4a5 100644
|
||||
index 3e96d18ed2fb67c08e77b17ec7f6418fbb5caf8f..e5eb30d3620937af3cd294bdd6b985fbb61df534 100644
|
||||
--- a/net/minecraft/world/entity/monster/zombie/ZombieVillager.java
|
||||
+++ b/net/minecraft/world/entity/monster/zombie/ZombieVillager.java
|
||||
@@ -145,6 +145,13 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
|
||||
@@ -289,13 +289,13 @@ index a9a04a4c9cedf33b68c99b2aec12289e63fa156b..9797e206a3038c3af23495b8bfd70424
|
||||
+ // Purpur end - Check mobGriefing Overrides
|
||||
+
|
||||
@Override
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
protected void defineSynchedData(final SynchedEntityData.Builder entityData) {
|
||||
super.defineSynchedData(entityData);
|
||||
diff --git a/net/minecraft/world/entity/monster/zombie/ZombifiedPiglin.java b/net/minecraft/world/entity/monster/zombie/ZombifiedPiglin.java
|
||||
index 528baf4ca71725d4af6876d195b6d75fdab5ca58..2d6b6bbd06d0a0443e4c32e3c9aecfe8716e1a55 100644
|
||||
index 9e893c0c033dcc2273275b92048d9b1a941d93f2..54ba4d2e8305e2d9ba0c9e71bae67bfd7b7d34b9 100644
|
||||
--- a/net/minecraft/world/entity/monster/zombie/ZombifiedPiglin.java
|
||||
+++ b/net/minecraft/world/entity/monster/zombie/ZombifiedPiglin.java
|
||||
@@ -120,6 +120,13 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
|
||||
@@ -124,6 +124,13 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
|
||||
}
|
||||
// Purpur end - Mobs always drop experience
|
||||
|
||||
@@ -310,10 +310,10 @@ index 528baf4ca71725d4af6876d195b6d75fdab5ca58..2d6b6bbd06d0a0443e4c32e3c9aecfe8
|
||||
protected void addBehaviourGoals() {
|
||||
this.goalSelector.addGoal(1, new SpearUseGoal<>(this, 1.0, 1.0, 10.0F, 2.0F));
|
||||
diff --git a/net/minecraft/world/entity/npc/villager/Villager.java b/net/minecraft/world/entity/npc/villager/Villager.java
|
||||
index 996468c21a79d698a8d842189ffd4f2dc86a4302..0c110421074d57e7283168c1133cd4ee314b57f6 100644
|
||||
index 297eba0bcf340f83c5d12ced343ccbfc738d4d35..dab982eed3c702486c1daaa480d795723102e164 100644
|
||||
--- a/net/minecraft/world/entity/npc/villager/Villager.java
|
||||
+++ b/net/minecraft/world/entity/npc/villager/Villager.java
|
||||
@@ -296,6 +296,13 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -298,6 +298,13 @@ public class Villager extends AbstractVillager implements VillagerDataHolder, Re
|
||||
}
|
||||
// Purpur end - Mobs always drop experience
|
||||
|
||||
@@ -326,12 +326,12 @@ index 996468c21a79d698a8d842189ffd4f2dc86a4302..0c110421074d57e7283168c1133cd4ee
|
||||
+
|
||||
@Override
|
||||
public Brain<Villager> getBrain() {
|
||||
return (Brain<Villager>)super.getBrain();
|
||||
return (Brain<Villager>) super.getBrain();
|
||||
diff --git a/net/minecraft/world/entity/raid/Raider.java b/net/minecraft/world/entity/raid/Raider.java
|
||||
index b03faa7600f182a12c3a739deefc38028cf45615..60e9511bd17b6fe08009163814500ec682847fc5 100644
|
||||
index d0a9088a18e6717209f037ae48ce54db13702234..5e5c5a8362537c6ff205eed7223a3bbdbf05da4a 100644
|
||||
--- a/net/minecraft/world/entity/raid/Raider.java
|
||||
+++ b/net/minecraft/world/entity/raid/Raider.java
|
||||
@@ -396,7 +396,7 @@ public abstract class Raider extends PatrollingMonster {
|
||||
@@ -399,7 +399,7 @@ public abstract class Raider extends PatrollingMonster {
|
||||
}
|
||||
|
||||
private boolean cannotPickUpBanner() {
|
||||
Reference in New Issue
Block a user