Add Entities can use portals patch back (#1571)

This commit is contained in:
Krakenied
2024-08-01 13:49:25 +02:00
committed by GitHub
parent b3623faa77
commit 9e444c5e3a
211 changed files with 805 additions and 805 deletions

View File

@@ -1,36 +1,36 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Mon, 17 Aug 2020 19:32:05 -0500
Subject: [PATCH] Entities can use portals configuration
Subject: [PATCH] Entities can use portals
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index b3fe632b18e5dfa18d37ef23a5a62f3a0f9ccf42..e29f56c83e8ce237e9135fabcf2381130a1a790d 100644
index 02e31827de699c6df409fbc3b88f7ded68236e20..51eebbee1c46062b35a2703713f2e1dfafcb0b26 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3225,7 +3225,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
public void handleInsidePortal(BlockPos pos) {
@@ -3266,7 +3266,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
public void setAsInsidePortal(Portal portal, BlockPos pos) {
if (this.isOnPortalCooldown()) {
this.setPortalCooldown();
- } else {
+ } else if (level().purpurConfig.entitiesCanUsePortals || this instanceof ServerPlayer) { // Purpur
if (!this.level().isClientSide && !pos.equals(this.portalEntrancePos)) {
this.portalEntrancePos = pos.immutable();
}
@@ -3919,7 +3919,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
+ } else if (this.level.purpurConfig.entitiesCanUsePortals || this instanceof ServerPlayer) { // Purpur - Entities can use portals
if (this.portalProcess != null && this.portalProcess.isSamePortal(portal)) {
this.portalProcess.updateEntryPosition(pos.immutable());
this.portalProcess.setAsInsidePortalThisTick(true);
@@ -3889,7 +3889,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
// CraftBukkit end
public boolean canUsePortal(boolean allowVehicles) {
- return (allowVehicles || !this.isPassenger()) && this.isAlive();
+ return (allowVehicles || !this.isPassenger()) && this.isAlive() && (this.level.purpurConfig.entitiesCanUsePortals || this instanceof ServerPlayer); // Purpur - Entities can use portals
}
public boolean canChangeDimensions() {
- return !this.isPassenger() && !this.isVehicle() && isAlive() && valid; // Paper - Fix item duplication and teleport issues
+ return !this.isPassenger() && !this.isVehicle() && isAlive() && valid && (level().purpurConfig.entitiesCanUsePortals || this instanceof ServerPlayer); // Paper - Fix item duplication and teleport issues // Purpur
}
public float getBlockExplosionResistance(Explosion explosion, BlockGetter world, BlockPos pos, BlockState blockState, FluidState fluidState, float max) {
public boolean canChangeDimensions(Level from, Level to) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 56f34c0a0f7bc94a90bb1db32f8e30a590a3b38c..1f25407aafba71762a482f0b1982302fed14387f 100644
index b3a9e307d1bed0c53a42119fa74c3a0f1be12d36..9f00ee2e9882226973c6846211574809c18b52bc 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -98,6 +98,7 @@ public class PurpurWorldConfig {
@@ -99,6 +99,7 @@ public class PurpurWorldConfig {
public boolean useBetterMending = false;
public boolean boatEjectPlayersOnLand = false;
public boolean disableDropsOnCrammingDeath = false;
@@ -38,7 +38,7 @@ index 56f34c0a0f7bc94a90bb1db32f8e30a590a3b38c..1f25407aafba71762a482f0b1982302f
public boolean milkCuresBadOmen = true;
public double tridentLoyaltyVoidReturnHeight = 0.0D;
public double voidDamageHeight = -64.0D;
@@ -106,6 +107,7 @@ public class PurpurWorldConfig {
@@ -107,6 +108,7 @@ public class PurpurWorldConfig {
useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending);
boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand);
disableDropsOnCrammingDeath = getBoolean("gameplay-mechanics.disable-drops-on-cramming-death", disableDropsOnCrammingDeath);

View File

@@ -23,10 +23,10 @@ index 0e2e7f935deb674bfcbdf4f1ba7de7834ed1c61a..e3ee5d5eb80d689eb77731b3f26d0c31
this.bossEvent.setProgress(this.getHealth() / this.getMaxHealth());
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index b3a9e307d1bed0c53a42119fa74c3a0f1be12d36..36b2b377f3253e5013c307b82c6ed893d5b58ffd 100644
index 9f00ee2e9882226973c6846211574809c18b52bc..0fbb32272453df331df54e8eda37da0b9b7af954 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1861,6 +1861,8 @@ public class PurpurWorldConfig {
@@ -1863,6 +1863,8 @@ public class PurpurWorldConfig {
public double witherMaxY = 320D;
public double witherMaxHealth = 300.0D;
public double witherScale = 1.0D;
@@ -35,7 +35,7 @@ index b3a9e307d1bed0c53a42119fa74c3a0f1be12d36..36b2b377f3253e5013c307b82c6ed893
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -1877,6 +1879,8 @@ public class PurpurWorldConfig {
@@ -1879,6 +1881,8 @@ public class PurpurWorldConfig {
}
witherMaxHealth = getDouble("mobs.wither.attributes.max_health", witherMaxHealth);
witherScale = Mth.clamp(getDouble("mobs.wither.attributes.scale", witherScale), 0.0625D, 16.0D);

View File

@@ -59,7 +59,7 @@ index c72b6ea5530e54fc373c701028e1c147cea34b59..96e9fce5f9084737d2fcf4deb8330573
if (spawnplacementtype.isSpawnPositionOk(world, blockposition2, EntityType.WANDERING_TRADER)) {
blockposition1 = blockposition2;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 36b2b377f3253e5013c307b82c6ed893d5b58ffd..e43e5facf44978994c8a515a20906dc8fbf8b9b8 100644
index 0fbb32272453df331df54e8eda37da0b9b7af954..03aa9b6bc1095475c21a93544c14e5f5bfa1e141 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -70,6 +70,12 @@ public class PurpurWorldConfig {
@@ -75,7 +75,7 @@ index 36b2b377f3253e5013c307b82c6ed893d5b58ffd..e43e5facf44978994c8a515a20906dc8
private double getDouble(String path, double def) {
PurpurConfig.config.addDefault("world-settings.default." + path, def);
return PurpurConfig.config.getDouble("world-settings." + worldName + "." + path, PurpurConfig.config.getDouble("world-settings.default." + path));
@@ -234,6 +240,21 @@ public class PurpurWorldConfig {
@@ -236,6 +242,21 @@ public class PurpurWorldConfig {
}
}

View File

@@ -49,10 +49,10 @@ index 8c60f71270d909c10e6617eb64b8fdb42deb73e9..eedce2a3d67d875d5174ee125e267948
if (!raid.isStarted() && !this.raidMap.containsKey(raid.getId())) {
this.raidMap.put(raid.getId(), raid);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index e43e5facf44978994c8a515a20906dc8fbf8b9b8..092b8854470cb034205f2cf708186d559be5d609 100644
index 03aa9b6bc1095475c21a93544c14e5f5bfa1e141..0549d17b69e869d9014040528e9163d56a316972 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -109,6 +109,7 @@ public class PurpurWorldConfig {
@@ -110,6 +110,7 @@ public class PurpurWorldConfig {
public double tridentLoyaltyVoidReturnHeight = 0.0D;
public double voidDamageHeight = -64.0D;
public double voidDamageDealt = 4.0D;
@@ -60,7 +60,7 @@ index e43e5facf44978994c8a515a20906dc8fbf8b9b8..092b8854470cb034205f2cf708186d55
private void miscGameplayMechanicsSettings() {
useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending);
boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand);
@@ -117,6 +118,7 @@ public class PurpurWorldConfig {
@@ -119,6 +120,7 @@ public class PurpurWorldConfig {
tridentLoyaltyVoidReturnHeight = getDouble("gameplay-mechanics.trident-loyalty-void-return-height", tridentLoyaltyVoidReturnHeight);
voidDamageHeight = getDouble("gameplay-mechanics.void-damage-height", voidDamageHeight);
voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt);

View File

@@ -7,10 +7,10 @@ This patch's implementation has been removed in favor of Pufferfish's entity-tim
The config remains for migration purposes.
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 092b8854470cb034205f2cf708186d559be5d609..6cda920dca61ce781ecfb4b49da31e7c297d3b39 100644
index 0549d17b69e869d9014040528e9163d56a316972..f10a009ad72789015861fbc35d490f6c72dd036c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -315,6 +315,40 @@ public class PurpurWorldConfig {
@@ -317,6 +317,40 @@ public class PurpurWorldConfig {
});
}

View File

@@ -70,10 +70,10 @@ index ada1f9f9bf8770c48ff25d562cf84cb04be17ca2..21e0028ad33f8de0211dd733d98a00af
this.targetSelector.addGoal(5, new NearestAttackableTargetGoal<>(this, Turtle.class, 10, true, false, Turtle.BABY_ON_LAND_SELECTOR));
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 6cda920dca61ce781ecfb4b49da31e7c297d3b39..e7b7ec38bd2be51a03dace23d0af90d72404d9e8 100644
index f10a009ad72789015861fbc35d490f6c72dd036c..b7af904f30fdbb9a3f680d1d8244edf1e0061e25 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2003,6 +2003,7 @@ public class PurpurWorldConfig {
@@ -2005,6 +2005,7 @@ public class PurpurWorldConfig {
public boolean zombieJockeyOnlyBaby = true;
public double zombieJockeyChance = 0.05D;
public boolean zombieJockeyTryExistingChickens = true;
@@ -81,7 +81,7 @@ index 6cda920dca61ce781ecfb4b49da31e7c297d3b39..e7b7ec38bd2be51a03dace23d0af90d7
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -2018,6 +2019,7 @@ public class PurpurWorldConfig {
@@ -2020,6 +2021,7 @@ public class PurpurWorldConfig {
zombieJockeyOnlyBaby = getBoolean("mobs.zombie.jockey.only-babies", zombieJockeyOnlyBaby);
zombieJockeyChance = getDouble("mobs.zombie.jockey.chance", zombieJockeyChance);
zombieJockeyTryExistingChickens = getBoolean("mobs.zombie.jockey.try-existing-chickens", zombieJockeyTryExistingChickens);

View File

@@ -58,10 +58,10 @@ index 522dabcf6ec8b19902890718717fc890d430c750..ea80eca266500f93fa9c00962d078ec2
float g = Mth.cos(f) * 0.2F;
float h = -0.1F + this.squid.getRandom().nextFloat() * 0.2F;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index e7b7ec38bd2be51a03dace23d0af90d72404d9e8..a0e89374b94852352400d5089052433b6de0fd92 100644
index b7af904f30fdbb9a3f680d1d8244edf1e0061e25..8ee07ea25cbc5d59b972116c09ec57f0a679aa93 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -969,11 +969,13 @@ public class PurpurWorldConfig {
@@ -971,11 +971,13 @@ public class PurpurWorldConfig {
public boolean glowSquidControllable = true;
public double glowSquidMaxHealth = 10.0D;
public double glowSquidScale = 1.0D;
@@ -75,7 +75,7 @@ index e7b7ec38bd2be51a03dace23d0af90d72404d9e8..a0e89374b94852352400d5089052433b
}
public boolean goatRidable = false;
@@ -1660,6 +1662,7 @@ public class PurpurWorldConfig {
@@ -1662,6 +1664,7 @@ public class PurpurWorldConfig {
public double squidScale = 1.0D;
public boolean squidImmuneToEAR = true;
public double squidOffsetWaterCheck = 0.0D;
@@ -83,7 +83,7 @@ index e7b7ec38bd2be51a03dace23d0af90d72404d9e8..a0e89374b94852352400d5089052433b
private void squidSettings() {
squidRidable = getBoolean("mobs.squid.ridable", squidRidable);
squidControllable = getBoolean("mobs.squid.controllable", squidControllable);
@@ -1672,6 +1675,7 @@ public class PurpurWorldConfig {
@@ -1674,6 +1677,7 @@ public class PurpurWorldConfig {
squidScale = Mth.clamp(getDouble("mobs.squid.attributes.scale", squidScale), 0.0625D, 16.0D);
squidImmuneToEAR = getBoolean("mobs.squid.immune-to-EAR", squidImmuneToEAR);
squidOffsetWaterCheck = getDouble("mobs.squid.water-offset-check", squidOffsetWaterCheck);

View File

@@ -30,10 +30,10 @@ index 6eb5c0f23d9dc61e69ad5ad493c89602a9dcd4b5..4db2032178471860baddc6b669c9a4f8
} else {
user.startUsingItem(hand);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index a0e89374b94852352400d5089052433b6de0fd92..85e16939a1ac27037b1959e4fc1ec57324a7c11e 100644
index 8ee07ea25cbc5d59b972116c09ec57f0a679aa93..22522af6a0b0894c798399456303d951ca884fe6 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -137,6 +137,11 @@ public class PurpurWorldConfig {
@@ -139,6 +139,11 @@ public class PurpurWorldConfig {
entityLifeSpan = getInt("gameplay-mechanics.entity-lifespan", entityLifeSpan);
}

View File

@@ -88,10 +88,10 @@ index 648aa9ec26ee2291a0caf2c61a3da4429566c343..ce5da7fc2d94a4b54e2a33de1e3ac629
public void tickCustomSpawners(boolean spawnMonsters, boolean spawnAnimals) {
Iterator iterator = this.customSpawners.iterator();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 85e16939a1ac27037b1959e4fc1ec57324a7c11e..fde8c013bb398f924d8c6a7fbfabf276f0a96936 100644
index 22522af6a0b0894c798399456303d951ca884fe6..34aafc5bac4e7876fdf50289748df5070126139e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -121,6 +121,13 @@ public class PurpurWorldConfig {
@@ -123,6 +123,13 @@ public class PurpurWorldConfig {
raidCooldownSeconds = getInt("gameplay-mechanics.raid-cooldown-seconds", raidCooldownSeconds);
}

View File

@@ -39,10 +39,10 @@ index 730aca233f6e7564d4cb85b5b628d23c4f01d2f4..699bdc1f01a95ecdfe899493c8d81ec3
private static boolean canBurn(RegistryAccess registryManager, @Nullable RecipeHolder<?> recipe, NonNullList<ItemStack> slots, int count) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index fde8c013bb398f924d8c6a7fbfabf276f0a96936..95e79149153de9328c40934a064d2a5a2d25e2d4 100644
index 34aafc5bac4e7876fdf50289748df5070126139e..b398af642abe85747cc416f49cc229c1f491c1a3 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -401,6 +401,17 @@ public class PurpurWorldConfig {
@@ -403,6 +403,17 @@ public class PurpurWorldConfig {
farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow);
}

View File

@@ -7,7 +7,7 @@ This prevents keeping arrows alive indefinitely (such as when the block
the arrow is stuck in gets removed, like a piston head going up/down)
diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
index ddf47dab1ab92c45e3eea09239d418a9798ed59e..8d8944a0455b3401d84cab636d61447e7d51ab19 100644
index 9ca29b3d4bf8bca5f51f3644e12fcbec2cb5d35e..2ace900721f4aa185b8ed28ac95feb50cb89453f 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
@@ -356,7 +356,7 @@ public abstract class AbstractArrow extends Projectile {
@@ -20,7 +20,7 @@ index ddf47dab1ab92c45e3eea09239d418a9798ed59e..8d8944a0455b3401d84cab636d61447e
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 95e79149153de9328c40934a064d2a5a2d25e2d4..1bfbc2cba2b81d2e2aef50c32dc1eb590afc5f1e 100644
index b398af642abe85747cc416f49cc229c1f491c1a3..61585b3e964f5f80d6c3dba8ee5dfae7e59e53f3 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -102,6 +102,11 @@ public class PurpurWorldConfig {

View File

@@ -24,10 +24,10 @@ index da85fabd75e9bd5ebece7127ef5b512df16fe3ac..dc356bd0931af9bdab9ec71e3de66e88
return;
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 1bfbc2cba2b81d2e2aef50c32dc1eb590afc5f1e..3a3f096f5edb65d854f81d96100bdf133647916c 100644
index 61585b3e964f5f80d6c3dba8ee5dfae7e59e53f3..af9c365025df231f53ffe1c28013c4b36c325ea2 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -402,8 +402,10 @@ public class PurpurWorldConfig {
@@ -404,8 +404,10 @@ public class PurpurWorldConfig {
}
public boolean farmlandGetsMoistFromBelow = false;

View File

@@ -104,10 +104,10 @@ index a922bb0c65e4cee8cb693eb6e48ecaa26bdf7e71..10df967d7694c5806453bb4abbb14dea
this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 3a3f096f5edb65d854f81d96100bdf133647916c..a32fa43357885730ae4b5d641ab3bc2e7333d78a 100644
index af9c365025df231f53ffe1c28013c4b36c325ea2..d2ecc35e4c20549c71b32ae444b3c4e98ed3561a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -115,6 +115,7 @@ public class PurpurWorldConfig {
@@ -116,6 +116,7 @@ public class PurpurWorldConfig {
public double voidDamageHeight = -64.0D;
public double voidDamageDealt = 4.0D;
public int raidCooldownSeconds = 0;
@@ -115,7 +115,7 @@ index 3a3f096f5edb65d854f81d96100bdf133647916c..a32fa43357885730ae4b5d641ab3bc2e
private void miscGameplayMechanicsSettings() {
useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending);
boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand);
@@ -124,6 +125,7 @@ public class PurpurWorldConfig {
@@ -126,6 +127,7 @@ public class PurpurWorldConfig {
voidDamageHeight = getDouble("gameplay-mechanics.void-damage-height", voidDamageHeight);
voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt);
raidCooldownSeconds = getInt("gameplay-mechanics.raid-cooldown-seconds", raidCooldownSeconds);

View File

@@ -538,10 +538,10 @@ index 66ebc75ddfd944277e7f7be43ed0d215eb2030f1..1bd16c9243df4500b9d965ba260f7dd1
public boolean canBeLeashed() {
return true;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a829966d9059a 100644
index d2ecc35e4c20549c71b32ae444b3c4e98ed3561a..3cb0f571577a1377f339362434a6d339b457ffdc 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -499,23 +499,27 @@ public class PurpurWorldConfig {
@@ -501,23 +501,27 @@ public class PurpurWorldConfig {
public boolean armadilloControllable = true;
public double armadilloMaxHealth = 12.0D;
public double armadilloScale = 1.0D;
@@ -569,7 +569,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
}
public boolean batRidable = false;
@@ -558,6 +562,7 @@ public class PurpurWorldConfig {
@@ -560,6 +564,7 @@ public class PurpurWorldConfig {
public double beeMaxY = 320D;
public double beeMaxHealth = 10.0D;
public double beeScale = 1.0D;
@@ -577,7 +577,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
private void beeSettings() {
beeRidable = getBoolean("mobs.bee.ridable", beeRidable);
beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater);
@@ -570,6 +575,7 @@ public class PurpurWorldConfig {
@@ -572,6 +577,7 @@ public class PurpurWorldConfig {
}
beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth);
beeScale = Mth.clamp(getDouble("mobs.bee.attributes.scale", beeScale), 0.0625D, 16.0D);
@@ -585,7 +585,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
}
public boolean blazeRidable = false;
@@ -612,6 +618,7 @@ public class PurpurWorldConfig {
@@ -614,6 +620,7 @@ public class PurpurWorldConfig {
public double camelJumpStrengthMax = 0.42D;
public double camelMovementSpeedMin = 0.09D;
public double camelMovementSpeedMax = 0.09D;
@@ -593,7 +593,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
private void camelSettings() {
camelRidableInWater = getBoolean("mobs.camel.ridable-in-water", camelRidableInWater);
camelMaxHealthMin = getDouble("mobs.camel.attributes.max_health.min", camelMaxHealthMin);
@@ -620,6 +627,7 @@ public class PurpurWorldConfig {
@@ -622,6 +629,7 @@ public class PurpurWorldConfig {
camelJumpStrengthMax = getDouble("mobs.camel.attributes.jump_strength.max", camelJumpStrengthMax);
camelMovementSpeedMin = getDouble("mobs.camel.attributes.movement_speed.min", camelMovementSpeedMin);
camelMovementSpeedMax = getDouble("mobs.camel.attributes.movement_speed.max", camelMovementSpeedMax);
@@ -601,7 +601,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
}
public boolean catRidable = false;
@@ -630,6 +638,7 @@ public class PurpurWorldConfig {
@@ -632,6 +640,7 @@ public class PurpurWorldConfig {
public int catSpawnDelay = 1200;
public int catSpawnSwampHutScanRange = 16;
public int catSpawnVillageScanRange = 48;
@@ -609,7 +609,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
private void catSettings() {
catRidable = getBoolean("mobs.cat.ridable", catRidable);
catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater);
@@ -644,6 +653,7 @@ public class PurpurWorldConfig {
@@ -646,6 +655,7 @@ public class PurpurWorldConfig {
catSpawnDelay = getInt("mobs.cat.spawn-delay", catSpawnDelay);
catSpawnSwampHutScanRange = getInt("mobs.cat.scan-range-for-other-cats.swamp-hut", catSpawnSwampHutScanRange);
catSpawnVillageScanRange = getInt("mobs.cat.scan-range-for-other-cats.village", catSpawnVillageScanRange);
@@ -617,7 +617,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
}
public boolean caveSpiderRidable = false;
@@ -670,6 +680,7 @@ public class PurpurWorldConfig {
@@ -672,6 +682,7 @@ public class PurpurWorldConfig {
public double chickenMaxHealth = 4.0D;
public double chickenScale = 1.0D;
public boolean chickenRetaliate = false;
@@ -625,7 +625,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
private void chickenSettings() {
chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable);
chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater);
@@ -682,6 +693,7 @@ public class PurpurWorldConfig {
@@ -684,6 +695,7 @@ public class PurpurWorldConfig {
chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth);
chickenScale = Mth.clamp(getDouble("mobs.chicken.attributes.scale", chickenScale), 0.0625D, 16.0D);
chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate);
@@ -633,7 +633,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
}
public boolean codRidable = false;
@@ -706,6 +718,7 @@ public class PurpurWorldConfig {
@@ -708,6 +720,7 @@ public class PurpurWorldConfig {
public double cowMaxHealth = 10.0D;
public double cowScale = 1.0D;
public int cowFeedMushrooms = 0;
@@ -641,7 +641,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
private void cowSettings() {
cowRidable = getBoolean("mobs.cow.ridable", cowRidable);
cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater);
@@ -718,6 +731,7 @@ public class PurpurWorldConfig {
@@ -720,6 +733,7 @@ public class PurpurWorldConfig {
cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth);
cowScale = Mth.clamp(getDouble("mobs.cow.attributes.scale", cowScale), 0.0625D, 16.0D);
cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms);
@@ -649,7 +649,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
}
public boolean creeperRidable = false;
@@ -773,6 +787,7 @@ public class PurpurWorldConfig {
@@ -775,6 +789,7 @@ public class PurpurWorldConfig {
public double donkeyJumpStrengthMax = 0.5D;
public double donkeyMovementSpeedMin = 0.175D;
public double donkeyMovementSpeedMax = 0.175D;
@@ -657,7 +657,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
private void donkeySettings() {
donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater);
if (PurpurConfig.version < 10) {
@@ -788,6 +803,7 @@ public class PurpurWorldConfig {
@@ -790,6 +805,7 @@ public class PurpurWorldConfig {
donkeyJumpStrengthMax = getDouble("mobs.donkey.attributes.jump_strength.max", donkeyJumpStrengthMax);
donkeyMovementSpeedMin = getDouble("mobs.donkey.attributes.movement_speed.min", donkeyMovementSpeedMin);
donkeyMovementSpeedMax = getDouble("mobs.donkey.attributes.movement_speed.max", donkeyMovementSpeedMax);
@@ -665,7 +665,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
}
public boolean drownedRidable = false;
@@ -918,6 +934,7 @@ public class PurpurWorldConfig {
@@ -920,6 +936,7 @@ public class PurpurWorldConfig {
public double foxMaxHealth = 10.0D;
public double foxScale = 1.0D;
public boolean foxTypeChangesWithTulips = false;
@@ -673,7 +673,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
private void foxSettings() {
foxRidable = getBoolean("mobs.fox.ridable", foxRidable);
foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater);
@@ -930,17 +947,20 @@ public class PurpurWorldConfig {
@@ -932,17 +949,20 @@ public class PurpurWorldConfig {
foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth);
foxScale = Mth.clamp(getDouble("mobs.fox.attributes.scale", foxScale), 0.0625D, 16.0D);
foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips);
@@ -694,7 +694,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
}
public boolean ghastRidable = false;
@@ -1015,12 +1035,14 @@ public class PurpurWorldConfig {
@@ -1017,12 +1037,14 @@ public class PurpurWorldConfig {
public boolean goatControllable = true;
public double goatMaxHealth = 10.0D;
public double goatScale = 1.0D;
@@ -709,7 +709,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
}
public boolean guardianRidable = false;
@@ -1044,6 +1066,7 @@ public class PurpurWorldConfig {
@@ -1046,6 +1068,7 @@ public class PurpurWorldConfig {
public boolean hoglinControllable = true;
public double hoglinMaxHealth = 40.0D;
public double hoglinScale = 1.0D;
@@ -717,7 +717,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
private void hoglinSettings() {
hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable);
hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater);
@@ -1055,6 +1078,7 @@ public class PurpurWorldConfig {
@@ -1057,6 +1080,7 @@ public class PurpurWorldConfig {
}
hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth);
hoglinScale = Mth.clamp(getDouble("mobs.hoglin.attributes.scale", hoglinScale), 0.0625D, 16.0D);
@@ -725,7 +725,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
}
public boolean horseRidableInWater = false;
@@ -1064,6 +1088,7 @@ public class PurpurWorldConfig {
@@ -1066,6 +1090,7 @@ public class PurpurWorldConfig {
public double horseJumpStrengthMax = 1.0D;
public double horseMovementSpeedMin = 0.1125D;
public double horseMovementSpeedMax = 0.3375D;
@@ -733,7 +733,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
private void horseSettings() {
horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater);
if (PurpurConfig.version < 10) {
@@ -1079,6 +1104,7 @@ public class PurpurWorldConfig {
@@ -1081,6 +1106,7 @@ public class PurpurWorldConfig {
horseJumpStrengthMax = getDouble("mobs.horse.attributes.jump_strength.max", horseJumpStrengthMax);
horseMovementSpeedMin = getDouble("mobs.horse.attributes.movement_speed.min", horseMovementSpeedMin);
horseMovementSpeedMax = getDouble("mobs.horse.attributes.movement_speed.max", horseMovementSpeedMax);
@@ -741,7 +741,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
}
public boolean huskRidable = false;
@@ -1162,6 +1188,7 @@ public class PurpurWorldConfig {
@@ -1164,6 +1190,7 @@ public class PurpurWorldConfig {
public double llamaJumpStrengthMax = 0.5D;
public double llamaMovementSpeedMin = 0.175D;
public double llamaMovementSpeedMax = 0.175D;
@@ -749,7 +749,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
private void llamaSettings() {
llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable);
llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater);
@@ -1179,6 +1206,7 @@ public class PurpurWorldConfig {
@@ -1181,6 +1208,7 @@ public class PurpurWorldConfig {
llamaJumpStrengthMax = getDouble("mobs.llama.attributes.jump_strength.max", llamaJumpStrengthMax);
llamaMovementSpeedMin = getDouble("mobs.llama.attributes.movement_speed.min", llamaMovementSpeedMin);
llamaMovementSpeedMax = getDouble("mobs.llama.attributes.movement_speed.max", llamaMovementSpeedMax);
@@ -757,7 +757,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
}
public boolean magmaCubeRidable = false;
@@ -1208,6 +1236,7 @@ public class PurpurWorldConfig {
@@ -1210,6 +1238,7 @@ public class PurpurWorldConfig {
public boolean mooshroomControllable = true;
public double mooshroomMaxHealth = 10.0D;
public double mooshroomScale = 1.0D;
@@ -765,7 +765,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
private void mooshroomSettings() {
mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable);
mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater);
@@ -1219,6 +1248,7 @@ public class PurpurWorldConfig {
@@ -1221,6 +1250,7 @@ public class PurpurWorldConfig {
}
mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth);
mooshroomScale = Mth.clamp(getDouble("mobs.mooshroom.attributes.scale", mooshroomScale), 0.0625D, 16.0D);
@@ -773,7 +773,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
}
public boolean muleRidableInWater = false;
@@ -1228,6 +1258,7 @@ public class PurpurWorldConfig {
@@ -1230,6 +1260,7 @@ public class PurpurWorldConfig {
public double muleJumpStrengthMax = 0.5D;
public double muleMovementSpeedMin = 0.175D;
public double muleMovementSpeedMax = 0.175D;
@@ -781,7 +781,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
private void muleSettings() {
muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater);
if (PurpurConfig.version < 10) {
@@ -1243,6 +1274,7 @@ public class PurpurWorldConfig {
@@ -1245,6 +1276,7 @@ public class PurpurWorldConfig {
muleJumpStrengthMax = getDouble("mobs.mule.attributes.jump_strength.max", muleJumpStrengthMax);
muleMovementSpeedMin = getDouble("mobs.mule.attributes.movement_speed.min", muleMovementSpeedMin);
muleMovementSpeedMax = getDouble("mobs.mule.attributes.movement_speed.max", muleMovementSpeedMax);
@@ -789,7 +789,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
}
public boolean ocelotRidable = false;
@@ -1250,6 +1282,7 @@ public class PurpurWorldConfig {
@@ -1252,6 +1284,7 @@ public class PurpurWorldConfig {
public boolean ocelotControllable = true;
public double ocelotMaxHealth = 10.0D;
public double ocelotScale = 1.0D;
@@ -797,7 +797,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
private void ocelotSettings() {
ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable);
ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater);
@@ -1261,6 +1294,7 @@ public class PurpurWorldConfig {
@@ -1263,6 +1296,7 @@ public class PurpurWorldConfig {
}
ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth);
ocelotScale = Mth.clamp(getDouble("mobs.ocelot.attributes.scale", ocelotScale), 0.0625D, 16.0D);
@@ -805,7 +805,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
}
public boolean pandaRidable = false;
@@ -1268,6 +1302,7 @@ public class PurpurWorldConfig {
@@ -1270,6 +1304,7 @@ public class PurpurWorldConfig {
public boolean pandaControllable = true;
public double pandaMaxHealth = 20.0D;
public double pandaScale = 1.0D;
@@ -813,7 +813,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
private void pandaSettings() {
pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable);
pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater);
@@ -1279,6 +1314,7 @@ public class PurpurWorldConfig {
@@ -1281,6 +1316,7 @@ public class PurpurWorldConfig {
}
pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth);
pandaScale = Mth.clamp(getDouble("mobs.panda.attributes.scale", pandaScale), 0.0625D, 16.0D);
@@ -821,7 +821,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
}
public boolean parrotRidable = false;
@@ -1365,6 +1401,7 @@ public class PurpurWorldConfig {
@@ -1367,6 +1403,7 @@ public class PurpurWorldConfig {
public double pigMaxHealth = 10.0D;
public double pigScale = 1.0D;
public boolean pigGiveSaddleBack = false;
@@ -829,7 +829,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
private void pigSettings() {
pigRidable = getBoolean("mobs.pig.ridable", pigRidable);
pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater);
@@ -1377,6 +1414,7 @@ public class PurpurWorldConfig {
@@ -1379,6 +1416,7 @@ public class PurpurWorldConfig {
pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth);
pigScale = Mth.clamp(getDouble("mobs.pig.attributes.scale", pigScale), 0.0625D, 16.0D);
pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack);
@@ -837,7 +837,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
}
public boolean piglinRidable = false;
@@ -1440,6 +1478,7 @@ public class PurpurWorldConfig {
@@ -1442,6 +1480,7 @@ public class PurpurWorldConfig {
public double polarBearScale = 1.0D;
public String polarBearBreedableItemString = "";
public Item polarBearBreedableItem = null;
@@ -845,7 +845,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
private void polarBearSettings() {
polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable);
polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater);
@@ -1454,6 +1493,7 @@ public class PurpurWorldConfig {
@@ -1456,6 +1495,7 @@ public class PurpurWorldConfig {
polarBearBreedableItemString = getString("mobs.polar_bear.breedable-item", polarBearBreedableItemString);
Item item = BuiltInRegistries.ITEM.get(ResourceLocation.parse(polarBearBreedableItemString));
if (item != Items.AIR) polarBearBreedableItem = item;
@@ -853,7 +853,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
}
public boolean pufferfishRidable = false;
@@ -1479,6 +1519,7 @@ public class PurpurWorldConfig {
@@ -1481,6 +1521,7 @@ public class PurpurWorldConfig {
public double rabbitScale = 1.0D;
public double rabbitNaturalToast = 0.0D;
public double rabbitNaturalKiller = 0.0D;
@@ -861,7 +861,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
private void rabbitSettings() {
rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable);
rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater);
@@ -1492,6 +1533,7 @@ public class PurpurWorldConfig {
@@ -1494,6 +1535,7 @@ public class PurpurWorldConfig {
rabbitScale = Mth.clamp(getDouble("mobs.rabbit.attributes.scale", rabbitScale), 0.0625D, 16.0D);
rabbitNaturalToast = getDouble("mobs.rabbit.spawn-toast-chance", rabbitNaturalToast);
rabbitNaturalKiller = getDouble("mobs.rabbit.spawn-killer-rabbit-chance", rabbitNaturalKiller);
@@ -869,7 +869,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
}
public boolean ravagerRidable = false;
@@ -1533,6 +1575,7 @@ public class PurpurWorldConfig {
@@ -1535,6 +1577,7 @@ public class PurpurWorldConfig {
public boolean sheepControllable = true;
public double sheepMaxHealth = 8.0D;
public double sheepScale = 1.0D;
@@ -877,7 +877,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
private void sheepSettings() {
sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable);
sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater);
@@ -1544,6 +1587,7 @@ public class PurpurWorldConfig {
@@ -1546,6 +1589,7 @@ public class PurpurWorldConfig {
}
sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth);
sheepScale = Mth.clamp(getDouble("mobs.sheep.attributes.scale", sheepScale), 0.0625D, 16.0D);
@@ -885,7 +885,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
}
public boolean shulkerRidable = false;
@@ -1680,12 +1724,14 @@ public class PurpurWorldConfig {
@@ -1682,12 +1726,14 @@ public class PurpurWorldConfig {
public boolean snifferControllable = true;
public double snifferMaxHealth = 14.0D;
public double snifferScale = 1.0D;
@@ -900,7 +900,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
}
public boolean squidRidable = false;
@@ -1751,6 +1797,7 @@ public class PurpurWorldConfig {
@@ -1753,6 +1799,7 @@ public class PurpurWorldConfig {
public boolean striderControllable = true;
public double striderMaxHealth = 20.0D;
public double striderScale = 1.0D;
@@ -908,7 +908,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
private void striderSettings() {
striderRidable = getBoolean("mobs.strider.ridable", striderRidable);
striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater);
@@ -1762,6 +1809,7 @@ public class PurpurWorldConfig {
@@ -1764,6 +1811,7 @@ public class PurpurWorldConfig {
}
striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth);
striderScale = Mth.clamp(getDouble("mobs.strider.attributes.scale", striderScale), 0.0625D, 16.0D);
@@ -916,7 +916,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
}
public boolean tadpoleRidable = false;
@@ -1782,6 +1830,7 @@ public class PurpurWorldConfig {
@@ -1784,6 +1832,7 @@ public class PurpurWorldConfig {
public double traderLlamaJumpStrengthMax = 0.5D;
public double traderLlamaMovementSpeedMin = 0.175D;
public double traderLlamaMovementSpeedMax = 0.175D;
@@ -924,7 +924,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
private void traderLlamaSettings() {
traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable);
traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater);
@@ -1799,6 +1848,7 @@ public class PurpurWorldConfig {
@@ -1801,6 +1850,7 @@ public class PurpurWorldConfig {
traderLlamaJumpStrengthMax = getDouble("mobs.trader_llama.attributes.jump_strength.max", traderLlamaJumpStrengthMax);
traderLlamaMovementSpeedMin = getDouble("mobs.trader_llama.attributes.movement_speed.min", traderLlamaMovementSpeedMin);
traderLlamaMovementSpeedMax = getDouble("mobs.trader_llama.attributes.movement_speed.max", traderLlamaMovementSpeedMax);
@@ -932,7 +932,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
}
public boolean tropicalFishRidable = false;
@@ -1822,6 +1872,7 @@ public class PurpurWorldConfig {
@@ -1824,6 +1874,7 @@ public class PurpurWorldConfig {
public boolean turtleControllable = true;
public double turtleMaxHealth = 30.0D;
public double turtleScale = 1.0D;
@@ -940,7 +940,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
private void turtleSettings() {
turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable);
turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater);
@@ -1833,6 +1884,7 @@ public class PurpurWorldConfig {
@@ -1835,6 +1886,7 @@ public class PurpurWorldConfig {
}
turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth);
turtleScale = Mth.clamp(getDouble("mobs.turtle.attributes.scale", turtleScale), 0.0625D, 16.0D);
@@ -948,7 +948,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
}
public boolean vexRidable = false;
@@ -1863,6 +1915,7 @@ public class PurpurWorldConfig {
@@ -1865,6 +1917,7 @@ public class PurpurWorldConfig {
public boolean villagerFollowEmeraldBlock = false;
public boolean villagerCanBeLeashed = false;
public boolean villagerCanBreed = true;
@@ -956,7 +956,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1877,6 +1930,7 @@ public class PurpurWorldConfig {
@@ -1879,6 +1932,7 @@ public class PurpurWorldConfig {
villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock);
villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed);
villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed);
@@ -964,7 +964,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
}
public boolean vindicatorRidable = false;
@@ -1999,6 +2053,7 @@ public class PurpurWorldConfig {
@@ -2001,6 +2055,7 @@ public class PurpurWorldConfig {
public boolean wolfControllable = true;
public double wolfMaxHealth = 8.0D;
public double wolfScale = 1.0D;
@@ -972,7 +972,7 @@ index a32fa43357885730ae4b5d641ab3bc2e7333d78a..62164c41e09912834bd8bf25cb7a8299
private void wolfSettings() {
wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable);
wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater);
@@ -2010,6 +2065,7 @@ public class PurpurWorldConfig {
@@ -2012,6 +2067,7 @@ public class PurpurWorldConfig {
}
wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth);
wolfScale = Mth.clamp(getDouble("mobs.wolf.attributes.scale", wolfScale), 0.0625D, 16.0D);

View File

@@ -126,7 +126,7 @@ index d8a63ac5444eff8e3decb2f4addc2decb8a5d648..41cc9229108aa8e4f5655dfe590ff414
if (((HangingEntity) object).survives()) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 62164c41e09912834bd8bf25cb7a829966d9059a..2db5c567e696441448eb977e3e260da57e19e8d0 100644
index 3cb0f571577a1377f339362434a6d339b457ffdc..79eb0e3553a3f9b2fb8059e882fed0427be67043 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -98,8 +98,10 @@ public class PurpurWorldConfig {
@@ -140,17 +140,17 @@ index 62164c41e09912834bd8bf25cb7a829966d9059a..2db5c567e696441448eb977e3e260da5
}
public boolean arrowMovementResetsDespawnCounter = true;
@@ -111,6 +113,7 @@ public class PurpurWorldConfig {
public boolean boatEjectPlayersOnLand = false;
@@ -112,6 +114,7 @@ public class PurpurWorldConfig {
public boolean disableDropsOnCrammingDeath = false;
public boolean entitiesCanUsePortals = true;
public boolean milkCuresBadOmen = true;
+ public boolean persistentDroppableEntityDisplayNames = true;
public double tridentLoyaltyVoidReturnHeight = 0.0D;
public double voidDamageHeight = -64.0D;
public double voidDamageDealt = 4.0D;
@@ -121,6 +124,7 @@ public class PurpurWorldConfig {
boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand);
@@ -123,6 +126,7 @@ public class PurpurWorldConfig {
disableDropsOnCrammingDeath = getBoolean("gameplay-mechanics.disable-drops-on-cramming-death", disableDropsOnCrammingDeath);
entitiesCanUsePortals = getBoolean("gameplay-mechanics.entities-can-use-portals", entitiesCanUsePortals);
milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen);
+ persistentDroppableEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-droppable-entity-display-names", persistentDroppableEntityDisplayNames);
tridentLoyaltyVoidReturnHeight = getDouble("gameplay-mechanics.trident-loyalty-void-return-height", tridentLoyaltyVoidReturnHeight);

View File

@@ -17,7 +17,7 @@ index 774c982f28b4f127fc3f036c19dfb47fb9ae3264..d49b60e7e643498b49c03593dc0da2f8
// Paper end - Add PlayerNameEntityEvent
mob.setPersistenceRequired();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 2db5c567e696441448eb977e3e260da57e19e8d0..75de05805f08748c17c95f9a62a3f8351f62f783 100644
index 79eb0e3553a3f9b2fb8059e882fed0427be67043..39aa800ecca20af51d7d07288c8db2f16969fc20 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -99,9 +99,11 @@ public class PurpurWorldConfig {

View File

@@ -21,10 +21,10 @@ index 28b2303ce9459b6038f35e3e470324392753b67f..f969164a67f98f5a9925f98a9595f0b5
private static class EndermanFreezeWhenLookedAt extends Goal {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 75de05805f08748c17c95f9a62a3f8351f62f783..df43ccdf64377f0e66058d0c55068c9c237330c4 100644
index 39aa800ecca20af51d7d07288c8db2f16969fc20..82cd55f78f957875514213c21c36586fc1f27c10 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -884,6 +884,7 @@ public class PurpurWorldConfig {
@@ -886,6 +886,7 @@ public class PurpurWorldConfig {
public double endermanMaxHealth = 40.0D;
public double endermanScale = 1.0D;
public boolean endermanAllowGriefing = true;
@@ -32,7 +32,7 @@ index 75de05805f08748c17c95f9a62a3f8351f62f783..df43ccdf64377f0e66058d0c55068c9c
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -896,6 +897,7 @@ public class PurpurWorldConfig {
@@ -898,6 +899,7 @@ public class PurpurWorldConfig {
endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth);
endermanScale = Mth.clamp(getDouble("mobs.enderman.attributes.scale", endermanScale), 0.0625D, 16.0D);
endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing);

View File

@@ -18,10 +18,10 @@ index 2b4d206c0d31ba38d7b2af654bd420e85145d441..f59a2903bfb8ae591a638ea5bb387caa
entity.hurt(this.damageSources().thrown(this, this.getOwner()), (float) i);
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index df43ccdf64377f0e66058d0c55068c9c237330c4..e33857a15ffc56b32f4849f9d8f9af6368a62e10 100644
index 82cd55f78f957875514213c21c36586fc1f27c10..cf3d1d188cb3a83cf81bf6a5af2640db4c0a2785 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -374,6 +374,11 @@ public class PurpurWorldConfig {
@@ -376,6 +376,11 @@ public class PurpurWorldConfig {
//}
}

View File

@@ -18,10 +18,10 @@ index 1a8b081aae4bbe538eb3230d415583f318ade86f..4bcd6dc324b49165ae4ad6ab93e46ecd
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index e33857a15ffc56b32f4849f9d8f9af6368a62e10..ac1a1f6036a4d2ed2401cf07dc834df997788cd4 100644
index cf3d1d188cb3a83cf81bf6a5af2640db4c0a2785..56c7b913fb598d40eae8d966acbac66e8bed827d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -153,8 +153,10 @@ public class PurpurWorldConfig {
@@ -155,8 +155,10 @@ public class PurpurWorldConfig {
}
public int entityLifeSpan = 0;

View File

@@ -27,7 +27,7 @@ index 855b8920eb5119ea6bf4726a9b77e3149779d0b3..d38a94ad94e09e71200d59e4d6a1d751
if (!flag && this.spawnInvulnerableTime > 0 && !source.is(DamageTypeTags.BYPASSES_INVULNERABILITY)) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index ac1a1f6036a4d2ed2401cf07dc834df997788cd4..fa91c4afeaf1a01d27fea3741e85cc5721d80d14 100644
index 56c7b913fb598d40eae8d966acbac66e8bed827d..2fe0f5856e6d07a671ae9c59bb3e4e2723a85d5a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -113,6 +113,7 @@ public class PurpurWorldConfig {
@@ -36,13 +36,13 @@ index ac1a1f6036a4d2ed2401cf07dc834df997788cd4..fa91c4afeaf1a01d27fea3741e85cc57
public boolean boatEjectPlayersOnLand = false;
+ public boolean boatsDoFallDamage = false;
public boolean disableDropsOnCrammingDeath = false;
public boolean entitiesCanUsePortals = true;
public boolean milkCuresBadOmen = true;
public boolean persistentDroppableEntityDisplayNames = true;
@@ -124,6 +125,7 @@ public class PurpurWorldConfig {
@@ -125,6 +126,7 @@ public class PurpurWorldConfig {
private void miscGameplayMechanicsSettings() {
useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending);
boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand);
+ boatsDoFallDamage = getBoolean("gameplay-mechanics.boat.do-fall-damage", boatsDoFallDamage);
disableDropsOnCrammingDeath = getBoolean("gameplay-mechanics.disable-drops-on-cramming-death", disableDropsOnCrammingDeath);
entitiesCanUsePortals = getBoolean("gameplay-mechanics.entities-can-use-portals", entitiesCanUsePortals);
milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen);
persistentDroppableEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-droppable-entity-display-names", persistentDroppableEntityDisplayNames);

View File

@@ -23,10 +23,10 @@ index dc5af0b71ec82a8f22e64b03950e35845110a331..5b910b4168b7f7825916c14e402f7f00
this.goalSelector.addGoal(3, new LookAtPlayerGoal(this, Player.class, 6.0F));
this.goalSelector.addGoal(4, new RandomLookAroundGoal(this));
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index fa91c4afeaf1a01d27fea3741e85cc5721d80d14..ef7ef1c1d02b6ab51b7ac1c944c18e303a39e27b 100644
index 2fe0f5856e6d07a671ae9c59bb3e4e2723a85d5a..d3f7829ba6059a89cdcd51e1efc99c644a89e87d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1721,6 +1721,10 @@ public class PurpurWorldConfig {
@@ -1723,6 +1723,10 @@ public class PurpurWorldConfig {
public double snowGolemMaxHealth = 4.0D;
public double snowGolemScale = 1.0D;
public boolean snowGolemPutPumpkinBack = false;
@@ -37,7 +37,7 @@ index fa91c4afeaf1a01d27fea3741e85cc5721d80d14..ef7ef1c1d02b6ab51b7ac1c944c18e30
private void snowGolemSettings() {
snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable);
snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater);
@@ -1734,6 +1738,10 @@ public class PurpurWorldConfig {
@@ -1736,6 +1740,10 @@ public class PurpurWorldConfig {
snowGolemMaxHealth = getDouble("mobs.snow_golem.attributes.max_health", snowGolemMaxHealth);
snowGolemScale = Mth.clamp(getDouble("mobs.snow_golem.attributes.scale", snowGolemScale), 0.0625D, 16.0D);
snowGolemPutPumpkinBack = getBoolean("mobs.snow_golem.pumpkin-can-be-added-back", snowGolemPutPumpkinBack);

View File

@@ -174,10 +174,10 @@ index 8734ab1bd8299bbf43906d81a349c2a13e0981a7..3ca83269311cbc18c9ef3ce62cff6a2d
"farmer",
PoiTypes.FARMER,
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index ef7ef1c1d02b6ab51b7ac1c944c18e303a39e27b..e25ba23071d89b1a9866adbd427b7bdaa73efb2a 100644
index d3f7829ba6059a89cdcd51e1efc99c644a89e87d..5a650cca4475e5fd2c130b3c1c5f8370df7d53ad 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1941,6 +1941,8 @@ public class PurpurWorldConfig {
@@ -1943,6 +1943,8 @@ public class PurpurWorldConfig {
public boolean villagerCanBeLeashed = false;
public boolean villagerCanBreed = true;
public int villagerBreedingTicks = 6000;
@@ -186,7 +186,7 @@ index ef7ef1c1d02b6ab51b7ac1c944c18e303a39e27b..e25ba23071d89b1a9866adbd427b7bda
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1956,6 +1958,8 @@ public class PurpurWorldConfig {
@@ -1958,6 +1960,8 @@ public class PurpurWorldConfig {
villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed);
villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed);
villagerBreedingTicks = getInt("mobs.villager.breeding-delay-ticks", villagerBreedingTicks);

View File

@@ -35,10 +35,10 @@ index 53b8f46bda60289ec310cb45513a2b729fcbea76..2756319fd1e53eca6a3dfa094d7c6690
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index e25ba23071d89b1a9866adbd427b7bdaa73efb2a..c2a42bd6b2347c559048cb0f718920c9ff0ea142 100644
index 5a650cca4475e5fd2c130b3c1c5f8370df7d53ad..76a4fb37b908a1f8523ae3fa5a56a7ef3726391f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2207,6 +2207,7 @@ public class PurpurWorldConfig {
@@ -2209,6 +2209,7 @@ public class PurpurWorldConfig {
public boolean zombifiedPiglinJockeyOnlyBaby = true;
public double zombifiedPiglinJockeyChance = 0.05D;
public boolean zombifiedPiglinJockeyTryExistingChickens = true;
@@ -46,7 +46,7 @@ index e25ba23071d89b1a9866adbd427b7bdaa73efb2a..c2a42bd6b2347c559048cb0f718920c9
private void zombifiedPiglinSettings() {
zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable);
zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater);
@@ -2222,5 +2223,6 @@ public class PurpurWorldConfig {
@@ -2224,5 +2225,6 @@ public class PurpurWorldConfig {
zombifiedPiglinJockeyOnlyBaby = getBoolean("mobs.zombified_piglin.jockey.only-babies", zombifiedPiglinJockeyOnlyBaby);
zombifiedPiglinJockeyChance = getDouble("mobs.zombified_piglin.jockey.chance", zombifiedPiglinJockeyChance);
zombifiedPiglinJockeyTryExistingChickens = getBoolean("mobs.zombified_piglin.jockey.try-existing-chickens", zombifiedPiglinJockeyTryExistingChickens);

View File

@@ -182,10 +182,10 @@ index 86574da257731de7646a712ed73384955fe35aa3..e223234dd64b0e41441c3b9f649f0b64
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index c2a42bd6b2347c559048cb0f718920c9ff0ea142..1d64122cda959967d60294cb69be2854f7f9d5bd 100644
index 76a4fb37b908a1f8523ae3fa5a56a7ef3726391f..c5aa4e74a6a8f796ae3000c970ccc8d589ca4a90 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2082,6 +2082,8 @@ public class PurpurWorldConfig {
@@ -2084,6 +2084,8 @@ public class PurpurWorldConfig {
public boolean wolfControllable = true;
public double wolfMaxHealth = 8.0D;
public double wolfScale = 1.0D;
@@ -194,7 +194,7 @@ index c2a42bd6b2347c559048cb0f718920c9ff0ea142..1d64122cda959967d60294cb69be2854
public int wolfBreedingTicks = 6000;
private void wolfSettings() {
wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable);
@@ -2094,6 +2096,8 @@ public class PurpurWorldConfig {
@@ -2096,6 +2098,8 @@ public class PurpurWorldConfig {
}
wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth);
wolfScale = Mth.clamp(getDouble("mobs.wolf.attributes.scale", wolfScale), 0.0625D, 16.0D);

View File

@@ -43,10 +43,10 @@ index d159d573d5f87c31cf61baacbaae193d24ab6801..143717d64651ffd75124973ca7a15fc1
protected void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 1d64122cda959967d60294cb69be2854f7f9d5bd..aa2038f6038987a218bd779de37d797b7a3291ee 100644
index c5aa4e74a6a8f796ae3000c970ccc8d589ca4a90..0d5ad3c193841bdb08853ceadeee305471173726 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -654,6 +654,7 @@ public class PurpurWorldConfig {
@@ -656,6 +656,7 @@ public class PurpurWorldConfig {
public int catSpawnSwampHutScanRange = 16;
public int catSpawnVillageScanRange = 48;
public int catBreedingTicks = 6000;
@@ -54,7 +54,7 @@ index 1d64122cda959967d60294cb69be2854f7f9d5bd..aa2038f6038987a218bd779de37d797b
private void catSettings() {
catRidable = getBoolean("mobs.cat.ridable", catRidable);
catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater);
@@ -669,6 +670,11 @@ public class PurpurWorldConfig {
@@ -671,6 +672,11 @@ public class PurpurWorldConfig {
catSpawnSwampHutScanRange = getInt("mobs.cat.scan-range-for-other-cats.swamp-hut", catSpawnSwampHutScanRange);
catSpawnVillageScanRange = getInt("mobs.cat.scan-range-for-other-cats.village", catSpawnVillageScanRange);
catBreedingTicks = getInt("mobs.cat.breeding-delay-ticks", catBreedingTicks);
@@ -66,7 +66,7 @@ index 1d64122cda959967d60294cb69be2854f7f9d5bd..aa2038f6038987a218bd779de37d797b
}
public boolean caveSpiderRidable = false;
@@ -2082,6 +2088,7 @@ public class PurpurWorldConfig {
@@ -2084,6 +2090,7 @@ public class PurpurWorldConfig {
public boolean wolfControllable = true;
public double wolfMaxHealth = 8.0D;
public double wolfScale = 1.0D;
@@ -74,7 +74,7 @@ index 1d64122cda959967d60294cb69be2854f7f9d5bd..aa2038f6038987a218bd779de37d797b
public boolean wolfMilkCuresRabies = true;
public double wolfNaturalRabid = 0.0D;
public int wolfBreedingTicks = 6000;
@@ -2096,6 +2103,11 @@ public class PurpurWorldConfig {
@@ -2098,6 +2105,11 @@ public class PurpurWorldConfig {
}
wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth);
wolfScale = Mth.clamp(getDouble("mobs.wolf.attributes.scale", wolfScale), 0.0625D, 16.0D);

View File

@@ -17,10 +17,10 @@ index 8f221fe016ea7221eb3a2116a2213139cf961797..88725e6f8c6490253e110485f5a62e9d
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index aa2038f6038987a218bd779de37d797b7a3291ee..0e5c2c9edab519044bdfb4cc70022cd5bb10e8e2 100644
index 0d5ad3c193841bdb08853ceadeee305471173726..561398fe6cf4d20a8418582e6d002edfe7060125 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1383,6 +1383,7 @@ public class PurpurWorldConfig {
@@ -1385,6 +1385,7 @@ public class PurpurWorldConfig {
public int phantomBurnInLight = 0;
public boolean phantomIgnorePlayersWithTorch = false;
public boolean phantomBurnInDaylight = true;
@@ -28,7 +28,7 @@ index aa2038f6038987a218bd779de37d797b7a3291ee..0e5c2c9edab519044bdfb4cc70022cd5
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -1416,6 +1417,7 @@ public class PurpurWorldConfig {
@@ -1418,6 +1419,7 @@ public class PurpurWorldConfig {
phantomBurnInLight = getInt("mobs.phantom.burn-in-light", phantomBurnInLight);
phantomBurnInDaylight = getBoolean("mobs.phantom.burn-in-daylight", phantomBurnInDaylight);
phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch);

View File

@@ -17,10 +17,10 @@ index 8fbfd18b3caeed769396b3ffb1b1778b2f38edc0..dbfe8f5d4df244cb694b73ea8763628c
return world.getBlockState(blockposition1).isRedstoneConductor(world, blockposition1);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 0e5c2c9edab519044bdfb4cc70022cd5bb10e8e2..080446acffc6150b8c578946bfcfa99e2ba13d79 100644
index 561398fe6cf4d20a8418582e6d002edfe7060125..c2d9ec6da2d4c6523a073c8bda10ce8486953574 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -411,6 +411,11 @@ public class PurpurWorldConfig {
@@ -413,6 +413,11 @@ public class PurpurWorldConfig {
}
}

View File

@@ -29,10 +29,10 @@ index 8c233a90d07db7959b778a84c4ed0589a6a10dd4..d534eaa9231602f8fa73d0230223f083
if (!this.level().isClientSide) {
player.startRiding(this);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 080446acffc6150b8c578946bfcfa99e2ba13d79..cb948241a14bf7348a37ac6f885ecfe49ef858e2 100644
index c2d9ec6da2d4c6523a073c8bda10ce8486953574..cc5a653f534b4050e2129e3746bf06d28132a252 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1836,6 +1836,7 @@ public class PurpurWorldConfig {
@@ -1838,6 +1838,7 @@ public class PurpurWorldConfig {
public double striderMaxHealth = 20.0D;
public double striderScale = 1.0D;
public int striderBreedingTicks = 6000;
@@ -40,7 +40,7 @@ index 080446acffc6150b8c578946bfcfa99e2ba13d79..cb948241a14bf7348a37ac6f885ecfe4
private void striderSettings() {
striderRidable = getBoolean("mobs.strider.ridable", striderRidable);
striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater);
@@ -1848,6 +1849,7 @@ public class PurpurWorldConfig {
@@ -1850,6 +1851,7 @@ public class PurpurWorldConfig {
striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth);
striderScale = Mth.clamp(getDouble("mobs.strider.attributes.scale", striderScale), 0.0625D, 16.0D);
striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks);

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] PlayerBookTooLargeEvent
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index ce1901c683c44893780342f7a3914613abc44b0b..aba962f4e706f2698f3729a304816965d788d7e3 100644
index 600b8280c11032339c056b2b3ad371674072e2c2..46cc4aabf1fb349d1ecead78c0041b9de8cde99d 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1152,10 +1152,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl

View File

@@ -26,10 +26,10 @@ index 9dd8dc8f0dc218c5a021d84649f364cd2f1b3a45..33c1b2b387e7412a001841d1bcbb3966
protected ItemCooldowns createItemCooldowns() {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index cb948241a14bf7348a37ac6f885ecfe49ef858e2..a3cdaaa530d43ddfb5dcf312f39425372e18a0a6 100644
index cc5a653f534b4050e2129e3746bf06d28132a252..03380ffce492af4620d613ef8af0a11c3c322cd7 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -286,6 +286,19 @@ public class PurpurWorldConfig {
@@ -288,6 +288,19 @@ public class PurpurWorldConfig {
villageSiegeSpawning = getBoolean("gameplay-mechanics.mob-spawning.village-sieges", predicate);
}

View File

@@ -375,13 +375,13 @@ index c7377d04ceac3ea624117439783a443c6d6f6d08..0c732cfbd9ce50198a3f85ae8ef2263d
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdcca3488cf 100644
index 03380ffce492af4620d613ef8af0a11c3c322cd7..0a6eea1ff455da964acf85e24d2d1e56bebf1c5f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -115,8 +115,11 @@ public class PurpurWorldConfig {
public boolean boatEjectPlayersOnLand = false;
@@ -116,8 +116,11 @@ public class PurpurWorldConfig {
public boolean boatsDoFallDamage = false;
public boolean disableDropsOnCrammingDeath = false;
public boolean entitiesCanUsePortals = true;
+ public boolean entitiesPickUpLootBypassMobGriefing = false;
+ public boolean fireballsBypassMobGriefing = false;
public boolean milkCuresBadOmen = true;
@@ -390,10 +390,10 @@ index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdc
public double tridentLoyaltyVoidReturnHeight = 0.0D;
public double voidDamageHeight = -64.0D;
public double voidDamageDealt = 4.0D;
@@ -127,8 +130,11 @@ public class PurpurWorldConfig {
boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand);
@@ -129,8 +132,11 @@ public class PurpurWorldConfig {
boatsDoFallDamage = getBoolean("gameplay-mechanics.boat.do-fall-damage", boatsDoFallDamage);
disableDropsOnCrammingDeath = getBoolean("gameplay-mechanics.disable-drops-on-cramming-death", disableDropsOnCrammingDeath);
entitiesCanUsePortals = getBoolean("gameplay-mechanics.entities-can-use-portals", entitiesCanUsePortals);
+ entitiesPickUpLootBypassMobGriefing = getBoolean("gameplay-mechanics.entities-pick-up-loot-bypass-mob-griefing", entitiesPickUpLootBypassMobGriefing);
+ fireballsBypassMobGriefing = getBoolean("gameplay-mechanics.fireballs-bypass-mob-griefing", fireballsBypassMobGriefing);
milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen);
@@ -402,7 +402,7 @@ index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdc
tridentLoyaltyVoidReturnHeight = getDouble("gameplay-mechanics.trident-loyalty-void-return-height", tridentLoyaltyVoidReturnHeight);
voidDamageHeight = getDouble("gameplay-mechanics.void-damage-height", voidDamageHeight);
voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt);
@@ -436,9 +442,11 @@ public class PurpurWorldConfig {
@@ -438,9 +444,11 @@ public class PurpurWorldConfig {
dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils);
}
@@ -414,7 +414,7 @@ index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdc
farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow);
farmlandAlpha = getBoolean("blocks.farmland.use-alpha-farmland", farmlandAlpha);
}
@@ -463,6 +471,11 @@ public class PurpurWorldConfig {
@@ -465,6 +473,11 @@ public class PurpurWorldConfig {
lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether);
}
@@ -426,7 +426,7 @@ index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdc
public boolean respawnAnchorExplode = true;
public double respawnAnchorExplosionPower = 5.0D;
public boolean respawnAnchorExplosionFire = true;
@@ -492,10 +505,12 @@ public class PurpurWorldConfig {
@@ -494,10 +507,12 @@ public class PurpurWorldConfig {
public boolean turtleEggsBreakFromExpOrbs = false;
public boolean turtleEggsBreakFromItems = false;
public boolean turtleEggsBreakFromMinecarts = false;
@@ -439,7 +439,7 @@ index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdc
}
public int waterInfiniteRequiredSources = 2;
@@ -780,6 +795,7 @@ public class PurpurWorldConfig {
@@ -782,6 +797,7 @@ public class PurpurWorldConfig {
public double creeperScale = 1.0D;
public double creeperChargedChance = 0.0D;
public boolean creeperAllowGriefing = true;
@@ -447,7 +447,7 @@ index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdc
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -793,6 +809,7 @@ public class PurpurWorldConfig {
@@ -795,6 +811,7 @@ public class PurpurWorldConfig {
creeperScale = Mth.clamp(getDouble("mobs.creeper.attributes.scale", creeperScale), 0.0625D, 16.0D);
creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance);
creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing);
@@ -455,7 +455,7 @@ index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdc
}
public boolean dolphinRidable = false;
@@ -893,6 +910,7 @@ public class PurpurWorldConfig {
@@ -895,6 +912,7 @@ public class PurpurWorldConfig {
public double enderDragonMaxY = 320D;
public double enderDragonMaxHealth = 200.0D;
public boolean enderDragonAlwaysDropsFullExp = false;
@@ -463,7 +463,7 @@ index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdc
private void enderDragonSettings() {
enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable);
enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater);
@@ -909,6 +927,7 @@ public class PurpurWorldConfig {
@@ -911,6 +929,7 @@ public class PurpurWorldConfig {
}
enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth);
enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp);
@@ -471,7 +471,7 @@ index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdc
}
public boolean endermanRidable = false;
@@ -918,6 +937,7 @@ public class PurpurWorldConfig {
@@ -920,6 +939,7 @@ public class PurpurWorldConfig {
public double endermanScale = 1.0D;
public boolean endermanAllowGriefing = true;
public boolean endermanDespawnEvenWithBlock = false;
@@ -479,7 +479,7 @@ index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdc
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -931,6 +951,7 @@ public class PurpurWorldConfig {
@@ -933,6 +953,7 @@ public class PurpurWorldConfig {
endermanScale = Mth.clamp(getDouble("mobs.enderman.attributes.scale", endermanScale), 0.0625D, 16.0D);
endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing);
endermanDespawnEvenWithBlock = getBoolean("mobs.enderman.can-despawn-with-held-block", endermanDespawnEvenWithBlock);
@@ -487,7 +487,7 @@ index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdc
}
public boolean endermiteRidable = false;
@@ -956,6 +977,7 @@ public class PurpurWorldConfig {
@@ -958,6 +979,7 @@ public class PurpurWorldConfig {
public boolean evokerControllable = true;
public double evokerMaxHealth = 24.0D;
public double evokerScale = 1.0D;
@@ -495,7 +495,7 @@ index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdc
private void evokerSettings() {
evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable);
evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater);
@@ -967,6 +989,7 @@ public class PurpurWorldConfig {
@@ -969,6 +991,7 @@ public class PurpurWorldConfig {
}
evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth);
evokerScale = Mth.clamp(getDouble("mobs.evoker.attributes.scale", evokerScale), 0.0625D, 16.0D);
@@ -503,7 +503,7 @@ index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdc
}
public boolean foxRidable = false;
@@ -976,6 +999,7 @@ public class PurpurWorldConfig {
@@ -978,6 +1001,7 @@ public class PurpurWorldConfig {
public double foxScale = 1.0D;
public boolean foxTypeChangesWithTulips = false;
public int foxBreedingTicks = 6000;
@@ -511,7 +511,7 @@ index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdc
private void foxSettings() {
foxRidable = getBoolean("mobs.fox.ridable", foxRidable);
foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater);
@@ -989,6 +1013,7 @@ public class PurpurWorldConfig {
@@ -991,6 +1015,7 @@ public class PurpurWorldConfig {
foxScale = Mth.clamp(getDouble("mobs.fox.attributes.scale", foxScale), 0.0625D, 16.0D);
foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips);
foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks);
@@ -519,7 +519,7 @@ index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdc
}
public boolean frogRidable = false;
@@ -1465,6 +1490,7 @@ public class PurpurWorldConfig {
@@ -1467,6 +1492,7 @@ public class PurpurWorldConfig {
public boolean piglinControllable = true;
public double piglinMaxHealth = 16.0D;
public double piglinScale = 1.0D;
@@ -527,7 +527,7 @@ index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdc
private void piglinSettings() {
piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable);
piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater);
@@ -1476,6 +1502,7 @@ public class PurpurWorldConfig {
@@ -1478,6 +1504,7 @@ public class PurpurWorldConfig {
}
piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth);
piglinScale = Mth.clamp(getDouble("mobs.piglin.attributes.scale", piglinScale), 0.0625D, 16.0D);
@@ -535,7 +535,7 @@ index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdc
}
public boolean piglinBruteRidable = false;
@@ -1501,6 +1528,7 @@ public class PurpurWorldConfig {
@@ -1503,6 +1530,7 @@ public class PurpurWorldConfig {
public boolean pillagerControllable = true;
public double pillagerMaxHealth = 24.0D;
public double pillagerScale = 1.0D;
@@ -543,7 +543,7 @@ index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdc
private void pillagerSettings() {
pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable);
pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater);
@@ -1512,6 +1540,7 @@ public class PurpurWorldConfig {
@@ -1514,6 +1542,7 @@ public class PurpurWorldConfig {
}
pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth);
pillagerScale = Mth.clamp(getDouble("mobs.pillager.attributes.scale", pillagerScale), 0.0625D, 16.0D);
@@ -551,7 +551,7 @@ index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdc
}
public boolean polarBearRidable = false;
@@ -1563,6 +1592,7 @@ public class PurpurWorldConfig {
@@ -1565,6 +1594,7 @@ public class PurpurWorldConfig {
public double rabbitNaturalToast = 0.0D;
public double rabbitNaturalKiller = 0.0D;
public int rabbitBreedingTicks = 6000;
@@ -559,7 +559,7 @@ index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdc
private void rabbitSettings() {
rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable);
rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater);
@@ -1577,6 +1607,7 @@ public class PurpurWorldConfig {
@@ -1579,6 +1609,7 @@ public class PurpurWorldConfig {
rabbitNaturalToast = getDouble("mobs.rabbit.spawn-toast-chance", rabbitNaturalToast);
rabbitNaturalKiller = getDouble("mobs.rabbit.spawn-killer-rabbit-chance", rabbitNaturalKiller);
rabbitBreedingTicks = getInt("mobs.rabbit.breeding-delay-ticks", rabbitBreedingTicks);
@@ -567,7 +567,7 @@ index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdc
}
public boolean ravagerRidable = false;
@@ -1584,6 +1615,7 @@ public class PurpurWorldConfig {
@@ -1586,6 +1617,7 @@ public class PurpurWorldConfig {
public boolean ravagerControllable = true;
public double ravagerMaxHealth = 100.0D;
public double ravagerScale = 1.0D;
@@ -575,7 +575,7 @@ index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdc
private void ravagerSettings() {
ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable);
ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater);
@@ -1595,6 +1627,7 @@ public class PurpurWorldConfig {
@@ -1597,6 +1629,7 @@ public class PurpurWorldConfig {
}
ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth);
ravagerScale = Mth.clamp(getDouble("mobs.ravager.attributes.scale", ravagerScale), 0.0625D, 16.0D);
@@ -583,7 +583,7 @@ index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdc
}
public boolean salmonRidable = false;
@@ -1619,6 +1652,7 @@ public class PurpurWorldConfig {
@@ -1621,6 +1654,7 @@ public class PurpurWorldConfig {
public double sheepMaxHealth = 8.0D;
public double sheepScale = 1.0D;
public int sheepBreedingTicks = 6000;
@@ -591,7 +591,7 @@ index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdc
private void sheepSettings() {
sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable);
sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater);
@@ -1631,6 +1665,7 @@ public class PurpurWorldConfig {
@@ -1633,6 +1667,7 @@ public class PurpurWorldConfig {
sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth);
sheepScale = Mth.clamp(getDouble("mobs.sheep.attributes.scale", sheepScale), 0.0625D, 16.0D);
sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks);
@@ -599,7 +599,7 @@ index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdc
}
public boolean shulkerRidable = false;
@@ -1658,6 +1693,7 @@ public class PurpurWorldConfig {
@@ -1660,6 +1695,7 @@ public class PurpurWorldConfig {
public double silverfishScale = 1.0D;
public double silverfishMovementSpeed = 0.25D;
public double silverfishAttackDamage = 1.0D;
@@ -607,7 +607,7 @@ index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdc
private void silverfishSettings() {
silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable);
silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater);
@@ -1671,6 +1707,7 @@ public class PurpurWorldConfig {
@@ -1673,6 +1709,7 @@ public class PurpurWorldConfig {
silverfishScale = Mth.clamp(getDouble("mobs.silverfish.attributes.scale", silverfishScale), 0.0625D, 16.0D);
silverfishMovementSpeed = getDouble("mobs.silverfish.attributes.movement_speed", silverfishMovementSpeed);
silverfishAttackDamage = getDouble("mobs.silverfish.attributes.attack_damage", silverfishAttackDamage);
@@ -615,7 +615,7 @@ index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdc
}
public boolean skeletonRidable = false;
@@ -1751,6 +1788,7 @@ public class PurpurWorldConfig {
@@ -1753,6 +1790,7 @@ public class PurpurWorldConfig {
public int snowGolemSnowBallMax = 20;
public float snowGolemSnowBallModifier = 10.0F;
public double snowGolemAttackDistance = 1.25D;
@@ -623,7 +623,7 @@ index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdc
private void snowGolemSettings() {
snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable);
snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater);
@@ -1768,6 +1806,7 @@ public class PurpurWorldConfig {
@@ -1770,6 +1808,7 @@ public class PurpurWorldConfig {
snowGolemSnowBallMax = getInt("mobs.snow_golem.max-shoot-interval-ticks", snowGolemSnowBallMax);
snowGolemSnowBallModifier = (float) getDouble("mobs.snow_golem.snow-ball-modifier", snowGolemSnowBallModifier);
snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance);
@@ -631,7 +631,7 @@ index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdc
}
public boolean snifferRidable = false;
@@ -1971,6 +2010,7 @@ public class PurpurWorldConfig {
@@ -1973,6 +2012,7 @@ public class PurpurWorldConfig {
public int villagerBreedingTicks = 6000;
public boolean villagerClericsFarmWarts = false;
public boolean villagerClericFarmersThrowWarts = true;
@@ -639,7 +639,7 @@ index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdc
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1988,6 +2028,7 @@ public class PurpurWorldConfig {
@@ -1990,6 +2030,7 @@ public class PurpurWorldConfig {
villagerBreedingTicks = getInt("mobs.villager.breeding-delay-ticks", villagerBreedingTicks);
villagerClericsFarmWarts = getBoolean("mobs.villager.clerics-farm-warts", villagerClericsFarmWarts);
villagerClericFarmersThrowWarts = getBoolean("mobs.villager.cleric-wart-farmers-throw-warts-at-villagers", villagerClericFarmersThrowWarts);
@@ -647,7 +647,7 @@ index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdc
}
public boolean vindicatorRidable = false;
@@ -2067,6 +2108,7 @@ public class PurpurWorldConfig {
@@ -2069,6 +2110,7 @@ public class PurpurWorldConfig {
public double witherScale = 1.0D;
public float witherHealthRegenAmount = 1.0f;
public int witherHealthRegenDelay = 20;
@@ -655,7 +655,7 @@ index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdc
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -2085,6 +2127,7 @@ public class PurpurWorldConfig {
@@ -2087,6 +2129,7 @@ public class PurpurWorldConfig {
witherScale = Mth.clamp(getDouble("mobs.wither.attributes.scale", witherScale), 0.0625D, 16.0D);
witherHealthRegenAmount = (float) getDouble("mobs.wither.health-regen-amount", witherHealthRegenAmount);
witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay);
@@ -663,7 +663,7 @@ index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdc
}
public boolean witherSkeletonRidable = false;
@@ -2163,6 +2206,7 @@ public class PurpurWorldConfig {
@@ -2165,6 +2208,7 @@ public class PurpurWorldConfig {
public double zombieJockeyChance = 0.05D;
public boolean zombieJockeyTryExistingChickens = true;
public boolean zombieAggressiveTowardsVillagerWhenLagging = true;
@@ -671,7 +671,7 @@ index a3cdaaa530d43ddfb5dcf312f39425372e18a0a6..3d6b6f262aaf354b57973db247c73fdc
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -2179,6 +2223,7 @@ public class PurpurWorldConfig {
@@ -2181,6 +2225,7 @@ public class PurpurWorldConfig {
zombieJockeyChance = getDouble("mobs.zombie.jockey.chance", zombieJockeyChance);
zombieJockeyTryExistingChickens = getBoolean("mobs.zombie.jockey.try-existing-chickens", zombieJockeyTryExistingChickens);
zombieAggressiveTowardsVillagerWhenLagging = getBoolean("mobs.zombie.aggressive-towards-villager-when-lagging", zombieAggressiveTowardsVillagerWhenLagging);

View File

@@ -22,10 +22,10 @@ index 1d82cfe7af0dc42f88901fb0c44896771fdf8a93..43dd972b374daa1072608f3a68e812e7
// org.bukkit.event.block.NotePlayEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callNotePlayEvent(world, pos, state.getValue(NoteBlock.INSTRUMENT), state.getValue(NoteBlock.NOTE));
// if (event.isCancelled()) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 3d6b6f262aaf354b57973db247c73fdcca3488cf..489beb355db7ea1119470164c987408e9c34a60f 100644
index 0a6eea1ff455da964acf85e24d2d1e56bebf1c5f..4712bd3d2221bd0b54977cf671cecab6120ab1fa 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -118,6 +118,7 @@ public class PurpurWorldConfig {
@@ -119,6 +119,7 @@ public class PurpurWorldConfig {
public boolean entitiesPickUpLootBypassMobGriefing = false;
public boolean fireballsBypassMobGriefing = false;
public boolean milkCuresBadOmen = true;
@@ -33,7 +33,7 @@ index 3d6b6f262aaf354b57973db247c73fdcca3488cf..489beb355db7ea1119470164c987408e
public boolean persistentDroppableEntityDisplayNames = true;
public boolean projectilesBypassMobGriefing = false;
public double tridentLoyaltyVoidReturnHeight = 0.0D;
@@ -133,6 +134,7 @@ public class PurpurWorldConfig {
@@ -135,6 +136,7 @@ public class PurpurWorldConfig {
entitiesPickUpLootBypassMobGriefing = getBoolean("gameplay-mechanics.entities-pick-up-loot-bypass-mob-griefing", entitiesPickUpLootBypassMobGriefing);
fireballsBypassMobGriefing = getBoolean("gameplay-mechanics.fireballs-bypass-mob-griefing", fireballsBypassMobGriefing);
milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen);

View File

@@ -71,7 +71,7 @@ index ddab7de1d376e9e486e2f920174397ea8804aa29..e170176497b833e9addbdc652edcc074
EntityPortalEnterEvent event = new EntityPortalEnterEvent(entity.getBukkitEntity(), new org.bukkit.Location(world.getWorld(), pos.getX(), pos.getY(), pos.getZ()), org.bukkit.PortalType.NETHER); // Paper - add portal type
world.getCraftServer().getPluginManager().callEvent(event);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index 84479dad6078a2a12e6b977185bdbbe7f6b36576..4be205b10229b238039e4221df043e47cba68511 100644
index edaaaf0ecc412504b32fe7481f95e5947e0f922a..0d497b26eeb53ca65bbb936e2c1bed3d47560ea2 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -245,6 +245,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -95,11 +95,11 @@ index 1faf1c4b777333030d164e277ee3552900f10cd3..c24aaffc141d8d75c18ae9a1dc35579f
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 489beb355db7ea1119470164c987408e9c34a60f..ea8288b00d7a9cf5d1529a13011b7df7aac55a3a 100644
index 4712bd3d2221bd0b54977cf671cecab6120ab1fa..fbe6c149be4b0d46a6092c97f52cf125e5aa2e7b 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -117,6 +117,9 @@ public class PurpurWorldConfig {
public boolean disableDropsOnCrammingDeath = false;
@@ -118,6 +118,9 @@ public class PurpurWorldConfig {
public boolean entitiesCanUsePortals = true;
public boolean entitiesPickUpLootBypassMobGriefing = false;
public boolean fireballsBypassMobGriefing = false;
+ public boolean imposeTeleportRestrictionsOnGateways = false;
@@ -108,8 +108,8 @@ index 489beb355db7ea1119470164c987408e9c34a60f..ea8288b00d7a9cf5d1529a13011b7df7
public boolean milkCuresBadOmen = true;
public boolean noteBlockIgnoreAbove = false;
public boolean persistentDroppableEntityDisplayNames = true;
@@ -133,6 +136,9 @@ public class PurpurWorldConfig {
disableDropsOnCrammingDeath = getBoolean("gameplay-mechanics.disable-drops-on-cramming-death", disableDropsOnCrammingDeath);
@@ -135,6 +138,9 @@ public class PurpurWorldConfig {
entitiesCanUsePortals = getBoolean("gameplay-mechanics.entities-can-use-portals", entitiesCanUsePortals);
entitiesPickUpLootBypassMobGriefing = getBoolean("gameplay-mechanics.entities-pick-up-loot-bypass-mob-griefing", entitiesPickUpLootBypassMobGriefing);
fireballsBypassMobGriefing = getBoolean("gameplay-mechanics.fireballs-bypass-mob-griefing", fireballsBypassMobGriefing);
+ imposeTeleportRestrictionsOnGateways = getBoolean("gameplay-mechanics.impose-teleport-restrictions-on-gateways", imposeTeleportRestrictionsOnGateways);

View File

@@ -37,10 +37,10 @@ index 99798220b6e0ad06db2ba5c9b74bfb72af185fee..12a0c69f8fec30fad64cbb00af2ca1bb
if (!CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.DIRT.defaultBlockState())) {
return;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index ea8288b00d7a9cf5d1529a13011b7df7aac55a3a..6958742eb8bafab17f79bb29137dde3f9d9ba5e2 100644
index fbe6c149be4b0d46a6092c97f52cf125e5aa2e7b..3fba79b4520d7fb3345ba3e9fda6ea015471428e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -453,10 +453,16 @@ public class PurpurWorldConfig {
@@ -455,10 +455,16 @@ public class PurpurWorldConfig {
public boolean farmlandBypassMobGriefing = false;
public boolean farmlandGetsMoistFromBelow = false;
public boolean farmlandAlpha = false;

View File

@@ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index ffb83e96b070179467ddedbe7d24752752fffbeb..1731853a58788a5e9c036c4158503b00e3d0a7ca 100644
index 51eebbee1c46062b35a2703713f2e1dfafcb0b26..885b0385aa78ffba8f2f7e0d0d3d03e457512ef3 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -1926,7 +1926,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -66,7 +66,7 @@ index 4d6df7ec1bffbd30d4aac906f393ead0dfd8f69d..7180d65afee6216a0bc6ff2dc7888f64
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 6958742eb8bafab17f79bb29137dde3f9d9ba5e2..fe262538b7c4f3f69cb481303d4b16b55e8b1082 100644
index 3fba79b4520d7fb3345ba3e9fda6ea015471428e..59e5f8f9e2a7b782b4e20334515252afaaaf4036 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -100,10 +100,16 @@ public class PurpurWorldConfig {

View File

@@ -5,19 +5,19 @@ Subject: [PATCH] Fix stuck in portals
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 53d02ab56e3d3f15147d76861bd498d456f59d13..883e5095498badab26c7bcf51d78bbc20de644d4 100644
index 53d02ab56e3d3f15147d76861bd498d456f59d13..8f7ab2445ff9ab74c6de0f29218a231d91998adf 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1425,6 +1425,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple
worldserver1.removePlayerImmediately(this, Entity.RemovalReason.CHANGED_DIMENSION);
this.unsetRemoved();
// CraftBukkit end
+ this.portalPos = io.papermc.paper.util.MCUtil.toBlockPosition(exit); // Purpur
+ this.portalPos = io.papermc.paper.util.MCUtil.toBlockPosition(exit); // Purpur - Fix stuck in portals
this.setServerLevel(worldserver);
this.connection.teleport(exit); // CraftBukkit - use internal teleport without event
this.connection.resetPosition();
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 1731853a58788a5e9c036c4158503b00e3d0a7ca..13c3f64cc1740a2f9f726e32eaf60989bcf9eb2a 100644
index 885b0385aa78ffba8f2f7e0d0d3d03e457512ef3..c4df88e56216209f4acd0d2441d8973bd6bce5f8 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3263,13 +3263,16 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -27,21 +27,21 @@ index 1731853a58788a5e9c036c4158503b00e3d0a7ca..13c3f64cc1740a2f9f726e32eaf60989
+ public BlockPos portalPos = BlockPos.ZERO; // Purpur
public void setAsInsidePortal(Portal portal, BlockPos pos) {
if (this.isOnPortalCooldown()) {
+ if (!(level().purpurConfig.playerFixStuckPortal && this instanceof Player && !pos.equals(portalPos))) // Purpur
+ if (!(level().purpurConfig.playerFixStuckPortal && this instanceof Player && !pos.equals(this.portalPos))) // Purpur - Fix stuck in portals
this.setPortalCooldown();
} else {
} else if (this.level.purpurConfig.entitiesCanUsePortals || this instanceof ServerPlayer) { // Purpur - Entities can use portals
if (this.portalProcess != null && this.portalProcess.isSamePortal(portal)) {
this.portalProcess.updateEntryPosition(pos.immutable());
this.portalProcess.setAsInsidePortalThisTick(true);
+ portalPos = BlockPos.ZERO; // Purpur
+ this.portalPos = BlockPos.ZERO; // Purpur - Fix stuck in portals
} else {
this.portalProcess = new PortalProcessor(portal, pos.immutable());
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index fe262538b7c4f3f69cb481303d4b16b55e8b1082..17a57de1513c635640167b90334aca6cb3384a8d 100644
index 59e5f8f9e2a7b782b4e20334515252afaaaf4036..e65d5ce9833e4e949290016d0a85eff329dcd2e8 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -328,6 +328,7 @@ public class PurpurWorldConfig {
@@ -330,6 +330,7 @@ public class PurpurWorldConfig {
public int playerDeathExpDropMax = 100;
public boolean teleportIfOutsideBorder = false;
public boolean totemOfUndyingWorksInInventory = false;
@@ -49,7 +49,7 @@ index fe262538b7c4f3f69cb481303d4b16b55e8b1082..17a57de1513c635640167b90334aca6c
private void playerSettings() {
if (PurpurConfig.version < 19) {
boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer);
@@ -343,6 +344,7 @@ public class PurpurWorldConfig {
@@ -345,6 +346,7 @@ public class PurpurWorldConfig {
playerDeathExpDropMax = getInt("gameplay-mechanics.player.exp-dropped-on-death.maximum", playerDeathExpDropMax);
teleportIfOutsideBorder = getBoolean("gameplay-mechanics.player.teleport-if-outside-border", teleportIfOutsideBorder);
totemOfUndyingWorksInInventory = getBoolean("gameplay-mechanics.player.totem-of-undying-works-in-inventory", totemOfUndyingWorksInInventory);

View File

@@ -59,7 +59,7 @@ index b6602362b7b450749ae1768572658b756c4e7840..2949adfbe7c71d552a4afb6aca1c166a
this.navigation.stop();
this.setTarget((LivingEntity) null);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 75d45b1c9eb9ad15154454802bc5526fb8e50d27..9110920bbcc32fa3cf67ea92030fa1b4101e44f4 100644
index a4402d7f5385a3f3db6b7e6d928db4a97e3d4897..8cab49bd3c087afddeec1c90e03ca8df51c7d04c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -118,6 +118,7 @@ public class PurpurWorldConfig {
@@ -70,7 +70,7 @@ index 75d45b1c9eb9ad15154454802bc5526fb8e50d27..9110920bbcc32fa3cf67ea92030fa1b4
public boolean boatEjectPlayersOnLand = false;
public boolean boatsDoFallDamage = false;
public boolean disableDropsOnCrammingDeath = false;
@@ -137,6 +138,7 @@ public class PurpurWorldConfig {
@@ -138,6 +139,7 @@ public class PurpurWorldConfig {
public int animalBreedingCooldownSeconds = 0;
private void miscGameplayMechanicsSettings() {
useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending);

View File

@@ -53,10 +53,10 @@ index 72122333cf0247e4a8511ac633487f170b89586c..02f1d0418395b100cabfad7294466aaa
this.remove(Entity.RemovalReason.KILLED, EntityRemoveEvent.Cause.DEATH); // CraftBukkit - add Bukkit remove cause
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 9110920bbcc32fa3cf67ea92030fa1b4101e44f4..6f18225b00fa2b6c46265de0caa761695e3aeaee 100644
index 8cab49bd3c087afddeec1c90e03ca8df51c7d04c..7ffe7d46a8c7956bad8c0135c61bec3560060488 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -460,6 +460,43 @@ public class PurpurWorldConfig {
@@ -462,6 +462,43 @@ public class PurpurWorldConfig {
dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils);
}

View File

@@ -29,10 +29,10 @@ index 714223f131cb4ece988ffacbfc90bb9d7d143636..3cc6db1e0a657468282caaba0d9dccea
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 6f18225b00fa2b6c46265de0caa761695e3aeaee..9d44e091645ab76f8b085ff94388788f1ea42b77 100644
index 7ffe7d46a8c7956bad8c0135c61bec3560060488..084298bf0c45f22e7d0ebe0ee15b8583949b4f69 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1001,6 +1001,7 @@ public class PurpurWorldConfig {
@@ -1003,6 +1003,7 @@ public class PurpurWorldConfig {
public boolean enderDragonAlwaysDropsFullExp = false;
public boolean enderDragonBypassMobGriefing = false;
public boolean enderDragonTakeDamageFromWater = false;
@@ -40,7 +40,7 @@ index 6f18225b00fa2b6c46265de0caa761695e3aeaee..9d44e091645ab76f8b085ff94388788f
private void enderDragonSettings() {
enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable);
enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater);
@@ -1019,6 +1020,7 @@ public class PurpurWorldConfig {
@@ -1021,6 +1022,7 @@ public class PurpurWorldConfig {
enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp);
enderDragonBypassMobGriefing = getBoolean("mobs.ender_dragon.bypass-mob-griefing", enderDragonBypassMobGriefing);
enderDragonTakeDamageFromWater = getBoolean("mobs.ender_dragon.takes-damage-from-water", enderDragonTakeDamageFromWater);
@@ -48,7 +48,7 @@ index 6f18225b00fa2b6c46265de0caa761695e3aeaee..9d44e091645ab76f8b085ff94388788f
}
public boolean endermanRidable = false;
@@ -2301,6 +2303,7 @@ public class PurpurWorldConfig {
@@ -2303,6 +2305,7 @@ public class PurpurWorldConfig {
public int witherHealthRegenDelay = 20;
public boolean witherBypassMobGriefing = false;
public boolean witherTakeDamageFromWater = false;
@@ -56,7 +56,7 @@ index 6f18225b00fa2b6c46265de0caa761695e3aeaee..9d44e091645ab76f8b085ff94388788f
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -2321,6 +2324,7 @@ public class PurpurWorldConfig {
@@ -2323,6 +2326,7 @@ public class PurpurWorldConfig {
witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay);
witherBypassMobGriefing = getBoolean("mobs.wither.bypass-mob-griefing", witherBypassMobGriefing);
witherTakeDamageFromWater = getBoolean("mobs.wither.takes-damage-from-water", witherTakeDamageFromWater);

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Dont run with scissors!
inspired by https://modrinth.com/mod/dont-run-with-scissors
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index aba962f4e706f2698f3729a304816965d788d7e3..e81820761689801c3ca267c500818ff0f48bb858 100644
index 46cc4aabf1fb349d1ecead78c0041b9de8cde99d..29c567fc3a7e4b30b670eeda2fd28cc55e57e451 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1610,6 +1610,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -149,10 +149,10 @@ index f9d5718193f4b886a118d5a8b9191a3a4469d6d8..3c1b41f0ae58669d6fae640e8763c43e
public static String serverModName = io.papermc.paper.ServerBuildInfo.buildInfo().brandName();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 9d44e091645ab76f8b085ff94388788f1ea42b77..9f5fd26c46daa685cca8382c5f1d410493c0cac6 100644
index 084298bf0c45f22e7d0ebe0ee15b8583949b4f69..018a87f5435fa47b617a1df319450e3e0802df00 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -192,6 +192,10 @@ public class PurpurWorldConfig {
@@ -194,6 +194,10 @@ public class PurpurWorldConfig {
public List<Item> itemImmuneToExplosion = new ArrayList<>();
public List<Item> itemImmuneToFire = new ArrayList<>();
public List<Item> itemImmuneToLightning = new ArrayList<>();
@@ -163,7 +163,7 @@ index 9d44e091645ab76f8b085ff94388788f1ea42b77..9f5fd26c46daa685cca8382c5f1d4104
private void itemSettings() {
itemImmuneToCactus.clear();
getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> {
@@ -229,6 +233,10 @@ public class PurpurWorldConfig {
@@ -231,6 +235,10 @@ public class PurpurWorldConfig {
Item item = BuiltInRegistries.ITEM.get(ResourceLocation.parse(key.toString()));
if (item != Items.AIR) itemImmuneToLightning.add(item);
});

View File

@@ -35,10 +35,10 @@ index b07d0fc6cbcf209f5c69f4b43011d3f7182aa16c..fd50a55934d4bb98ad4a1b0d0f6339cd
float f1 = amount; final float originalAmount = f1; // Paper - revert to vanilla #hurt - OBFHELPER
boolean flag = amount > 0.0F && this.isDamageSourceBlocked(source); // Copied from below
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 9f5fd26c46daa685cca8382c5f1d410493c0cac6..d866d35196055ff4581ee77c6996818ec1e5f977 100644
index 018a87f5435fa47b617a1df319450e3e0802df00..bed992248d7ab9753c661ae0e0ac3041609361bd 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -339,6 +339,7 @@ public class PurpurWorldConfig {
@@ -341,6 +341,7 @@ public class PurpurWorldConfig {
public boolean teleportIfOutsideBorder = false;
public boolean totemOfUndyingWorksInInventory = false;
public boolean playerFixStuckPortal = false;
@@ -46,7 +46,7 @@ index 9f5fd26c46daa685cca8382c5f1d410493c0cac6..d866d35196055ff4581ee77c6996818e
private void playerSettings() {
if (PurpurConfig.version < 19) {
boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer);
@@ -355,6 +356,7 @@ public class PurpurWorldConfig {
@@ -357,6 +358,7 @@ public class PurpurWorldConfig {
teleportIfOutsideBorder = getBoolean("gameplay-mechanics.player.teleport-if-outside-border", teleportIfOutsideBorder);
totemOfUndyingWorksInInventory = getBoolean("gameplay-mechanics.player.totem-of-undying-works-in-inventory", totemOfUndyingWorksInInventory);
playerFixStuckPortal = getBoolean("gameplay-mechanics.player.fix-stuck-in-portal", playerFixStuckPortal);

View File

@@ -43,10 +43,10 @@ index 20a91d798d31a71b3c05efa2cc5bda55494e26cc..fc62754f93bd11a10c28b8b7b116e9ff
// Paper end - PlayerLaunchProjectileEvent
if (user instanceof net.minecraft.server.level.ServerPlayer) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index d866d35196055ff4581ee77c6996818ec1e5f977..7c283940d0127eb3800938164c4c20d957a6644d 100644
index bed992248d7ab9753c661ae0e0ac3041609361bd..7417fcbc7bf1b9da029e674564e2923a3ea3ab62 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -196,6 +196,10 @@ public class PurpurWorldConfig {
@@ -198,6 +198,10 @@ public class PurpurWorldConfig {
public boolean ignoreScissorsInWater = false;
public boolean ignoreScissorsInLava = false;
public double scissorsRunningDamage = 1D;
@@ -57,7 +57,7 @@ index d866d35196055ff4581ee77c6996818ec1e5f977..7c283940d0127eb3800938164c4c20d9
private void itemSettings() {
itemImmuneToCactus.clear();
getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> {
@@ -237,6 +241,10 @@ public class PurpurWorldConfig {
@@ -239,6 +243,10 @@ public class PurpurWorldConfig {
ignoreScissorsInWater = getBoolean("gameplay-mechanics.item.shears.ignore-in-water", ignoreScissorsInWater);
ignoreScissorsInLava = getBoolean("gameplay-mechanics.item.shears.ignore-in-lava", ignoreScissorsInLava);
scissorsRunningDamage = getDouble("gameplay-mechanics.item.shears.sprinting-damage", scissorsRunningDamage);

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Config to ignore nearby mobs when sleeping
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 883e5095498badab26c7bcf51d78bbc20de644d4..5c922cc17f7390f3565848de53cdec4d1547b95d 100644
index c653e8a917b060dd63357541970caf5d8771d66b..b68b3145656b65d1f270abb36f704d55d04d74c2 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1530,7 +1530,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple
@@ -18,10 +18,10 @@ index 883e5095498badab26c7bcf51d78bbc20de644d4..5c922cc17f7390f3565848de53cdec4d
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 7c283940d0127eb3800938164c4c20d957a6644d..13aa8212f010540129b8db25c528c0ac89ab7f9c 100644
index 7417fcbc7bf1b9da029e674564e2923a3ea3ab62..4eaaa65b907ac6747f5299c5e4979bae6e8b9d06 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -348,6 +348,7 @@ public class PurpurWorldConfig {
@@ -350,6 +350,7 @@ public class PurpurWorldConfig {
public boolean totemOfUndyingWorksInInventory = false;
public boolean playerFixStuckPortal = false;
public boolean creativeOnePunch = false;
@@ -29,7 +29,7 @@ index 7c283940d0127eb3800938164c4c20d957a6644d..13aa8212f010540129b8db25c528c0ac
private void playerSettings() {
if (PurpurConfig.version < 19) {
boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer);
@@ -365,6 +366,7 @@ public class PurpurWorldConfig {
@@ -367,6 +368,7 @@ public class PurpurWorldConfig {
totemOfUndyingWorksInInventory = getBoolean("gameplay-mechanics.player.totem-of-undying-works-in-inventory", totemOfUndyingWorksInInventory);
playerFixStuckPortal = getBoolean("gameplay-mechanics.player.fix-stuck-in-portal", playerFixStuckPortal);
creativeOnePunch = getBoolean("gameplay-mechanics.player.one-punch-in-creative", creativeOnePunch);

View File

@@ -18,10 +18,10 @@ index 21b2709f96b49c77807c9054843505a4fd0155f0..61602040352fe2eacd646ec3dc6728ea
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 13aa8212f010540129b8db25c528c0ac89ab7f9c..3f98f85fe5e4a44a8d0ad9900ced62075cfc0ae5 100644
index 4eaaa65b907ac6747f5299c5e4979bae6e8b9d06..fadcd9822e4a19b4e0e4884805ec3ee793318e05 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1052,6 +1052,8 @@ public class PurpurWorldConfig {
@@ -1054,6 +1054,8 @@ public class PurpurWorldConfig {
public boolean endermanDespawnEvenWithBlock = false;
public boolean endermanBypassMobGriefing = false;
public boolean endermanTakeDamageFromWater = true;
@@ -30,7 +30,7 @@ index 13aa8212f010540129b8db25c528c0ac89ab7f9c..3f98f85fe5e4a44a8d0ad9900ced6207
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -1061,12 +1063,18 @@ public class PurpurWorldConfig {
@@ -1063,12 +1065,18 @@ public class PurpurWorldConfig {
set("mobs.enderman.attributes.max-health", null);
set("mobs.enderman.attributes.max_health", oldValue);
}

View File

@@ -20,10 +20,10 @@ index 61602040352fe2eacd646ec3dc6728ea733d4ca2..a68f63b73785e7db68127151aca5138d
} else {
Vec3 vec3d = player.getViewVector(1.0F).normalize();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 3f98f85fe5e4a44a8d0ad9900ced62075cfc0ae5..126c4d3653b75c3aeccf46608ff32a07a2702add 100644
index fadcd9822e4a19b4e0e4884805ec3ee793318e05..8eb86d2ae656f28bb0976218c53af40b14e0dbdd 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1054,6 +1054,8 @@ public class PurpurWorldConfig {
@@ -1056,6 +1056,8 @@ public class PurpurWorldConfig {
public boolean endermanTakeDamageFromWater = true;
public boolean endermanAggroEndermites = true;
public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false;
@@ -32,7 +32,7 @@ index 3f98f85fe5e4a44a8d0ad9900ced62075cfc0ae5..126c4d3653b75c3aeccf46608ff32a07
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -1075,6 +1077,8 @@ public class PurpurWorldConfig {
@@ -1077,6 +1079,8 @@ public class PurpurWorldConfig {
endermanTakeDamageFromWater = getBoolean("mobs.enderman.takes-damage-from-water", endermanTakeDamageFromWater);
endermanAggroEndermites = getBoolean("mobs.enderman.aggressive-towards-endermites", endermanAggroEndermites);
endermanAggroEndermitesOnlyIfPlayerSpawned = getBoolean("mobs.enderman.aggressive-towards-endermites-only-spawned-by-player-thrown-ender-pearls", endermanAggroEndermitesOnlyIfPlayerSpawned);

View File

@@ -36,10 +36,10 @@ index 84623c632d8c2f0fa7ec939c711316d757117d23..1851035b9fdcc076442d0699567a3b02
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 126c4d3653b75c3aeccf46608ff32a07a2702add..a3e30ce28e2255711101724dbf7bcafcea3a3e57 100644
index 8eb86d2ae656f28bb0976218c53af40b14e0dbdd..167edac3a00fc097b55ac2e6b8e43b47d2593891 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -131,6 +131,7 @@ public class PurpurWorldConfig {
@@ -132,6 +132,7 @@ public class PurpurWorldConfig {
public boolean noteBlockIgnoreAbove = false;
public boolean persistentDroppableEntityDisplayNames = true;
public boolean projectilesBypassMobGriefing = false;
@@ -47,7 +47,7 @@ index 126c4d3653b75c3aeccf46608ff32a07a2702add..a3e30ce28e2255711101724dbf7bcafc
public double tridentLoyaltyVoidReturnHeight = 0.0D;
public double voidDamageHeight = -64.0D;
public double voidDamageDealt = 4.0D;
@@ -151,6 +152,7 @@ public class PurpurWorldConfig {
@@ -153,6 +154,7 @@ public class PurpurWorldConfig {
noteBlockIgnoreAbove = getBoolean("gameplay-mechanics.note-block-ignore-above", noteBlockIgnoreAbove);
persistentDroppableEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-droppable-entity-display-names", persistentDroppableEntityDisplayNames);
projectilesBypassMobGriefing = getBoolean("gameplay-mechanics.projectiles-bypass-mob-griefing", projectilesBypassMobGriefing);

View File

@@ -32,10 +32,10 @@ index 96f1eba4a356e131a8f3c689bedc9eb8821e1a72..8edfc34a17d8c05cfa2928738306c1ab
this.caravanHead.caravanTail = this;
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index a3e30ce28e2255711101724dbf7bcafcea3a3e57..49172ba9126c728a4495f8c8b151c4b62cc9d0d2 100644
index 167edac3a00fc097b55ac2e6b8e43b47d2593891..46a52af0755263bba845fee1e251423efbc7d2ae 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1411,6 +1411,7 @@ public class PurpurWorldConfig {
@@ -1413,6 +1413,7 @@ public class PurpurWorldConfig {
public double llamaMovementSpeedMax = 0.175D;
public int llamaBreedingTicks = 6000;
public boolean llamaTakeDamageFromWater = false;
@@ -43,7 +43,7 @@ index a3e30ce28e2255711101724dbf7bcafcea3a3e57..49172ba9126c728a4495f8c8b151c4b6
private void llamaSettings() {
llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable);
llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater);
@@ -1430,6 +1431,7 @@ public class PurpurWorldConfig {
@@ -1432,6 +1433,7 @@ public class PurpurWorldConfig {
llamaMovementSpeedMax = getDouble("mobs.llama.attributes.movement_speed.max", llamaMovementSpeedMax);
llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks);
llamaTakeDamageFromWater = getBoolean("mobs.llama.takes-damage-from-water", llamaTakeDamageFromWater);

View File

@@ -52,10 +52,10 @@ index 1ce1cf48624d8273dccc571ee37a08c06951acad..902191001a7302872ff661564fb63894
private void spawnLingeringCloud() {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 49172ba9126c728a4495f8c8b151c4b62cc9d0d2..b820fae29b891ffbde87eed8166802e7187f7131 100644
index 46a52af0755263bba845fee1e251423efbc7d2ae..b4d5bf7483366df8515ecd7dbb27415ba8325b45 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -898,6 +898,7 @@ public class PurpurWorldConfig {
@@ -900,6 +900,7 @@ public class PurpurWorldConfig {
public boolean creeperAllowGriefing = true;
public boolean creeperBypassMobGriefing = false;
public boolean creeperTakeDamageFromWater = false;
@@ -63,7 +63,7 @@ index 49172ba9126c728a4495f8c8b151c4b62cc9d0d2..b820fae29b891ffbde87eed8166802e7
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -913,6 +914,7 @@ public class PurpurWorldConfig {
@@ -915,6 +916,7 @@ public class PurpurWorldConfig {
creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing);
creeperBypassMobGriefing = getBoolean("mobs.creeper.bypass-mob-griefing", creeperBypassMobGriefing);
creeperTakeDamageFromWater = getBoolean("mobs.creeper.takes-damage-from-water", creeperTakeDamageFromWater);

View File

@@ -31,10 +31,10 @@ index 2af4c365743b2956939335512f74e0a1d84298f7..a69e7e8da81bd13578d230cc1e3f0f90
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index b820fae29b891ffbde87eed8166802e7187f7131..297edd2b0cf792713d41a7323f2cfd4d680482ed 100644
index b4d5bf7483366df8515ecd7dbb27415ba8325b45..34011e65a7bcb8e6a57cdb8776293389ea662b39 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1806,6 +1806,7 @@ public class PurpurWorldConfig {
@@ -1808,6 +1808,7 @@ public class PurpurWorldConfig {
public double ravagerScale = 1.0D;
public boolean ravagerBypassMobGriefing = false;
public boolean ravagerTakeDamageFromWater = false;
@@ -42,7 +42,7 @@ index b820fae29b891ffbde87eed8166802e7187f7131..297edd2b0cf792713d41a7323f2cfd4d
private void ravagerSettings() {
ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable);
ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater);
@@ -1819,6 +1820,23 @@ public class PurpurWorldConfig {
@@ -1821,6 +1822,23 @@ public class PurpurWorldConfig {
ravagerScale = Mth.clamp(getDouble("mobs.ravager.attributes.scale", ravagerScale), 0.0625D, 16.0D);
ravagerBypassMobGriefing = getBoolean("mobs.ravager.bypass-mob-griefing", ravagerBypassMobGriefing);
ravagerTakeDamageFromWater = getBoolean("mobs.ravager.takes-damage-from-water", ravagerTakeDamageFromWater);

View File

@@ -87,10 +87,10 @@ index d3d12f9114173f4971f95d7ef895a4374705bd3f..f34159f8d6c51af2341bf49db0d6d6f0
protected InteractionResult useWithoutItem(BlockState state, Level world, BlockPos pos, Player player, BlockHitResult hit) {
int i = (Integer) state.getValue(ComposterBlock.LEVEL);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 297edd2b0cf792713d41a7323f2cfd4d680482ed..17093e3c696dc0f05735ed3514c37af9968083e2 100644
index 34011e65a7bcb8e6a57cdb8776293389ea662b39..d1f5a8e74af76ee10c70598a45ff7b7aeab5139f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -475,6 +475,11 @@ public class PurpurWorldConfig {
@@ -477,6 +477,11 @@ public class PurpurWorldConfig {
chestOpenWithBlockOnTop = getBoolean("blocks.chest.open-with-solid-block-on-top", chestOpenWithBlockOnTop);
}

View File

@@ -18,10 +18,10 @@ index ce5da7fc2d94a4b54e2a33de1e3ac629e4ed80bc..0d690ba8f752cc95812da2cad5b7c297
j = this.levelData.getDayTime() + 24000L;
TimeSkipEvent event = new TimeSkipEvent(this.getWorld(), TimeSkipEvent.SkipReason.NIGHT_SKIP, (j - j % 24000L) - this.getDayTime());
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 17093e3c696dc0f05735ed3514c37af9968083e2..fe46a714e5eaf260c39803b9e644f62a5f211dd2 100644
index d1f5a8e74af76ee10c70598a45ff7b7aeab5139f..9db6f638cf9d8f41dcbe956108c02081b4380c6c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -351,6 +351,7 @@ public class PurpurWorldConfig {
@@ -353,6 +353,7 @@ public class PurpurWorldConfig {
public boolean playerFixStuckPortal = false;
public boolean creativeOnePunch = false;
public boolean playerSleepNearMonsters = false;
@@ -29,7 +29,7 @@ index 17093e3c696dc0f05735ed3514c37af9968083e2..fe46a714e5eaf260c39803b9e644f62a
private void playerSettings() {
if (PurpurConfig.version < 19) {
boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer);
@@ -369,6 +370,7 @@ public class PurpurWorldConfig {
@@ -371,6 +372,7 @@ public class PurpurWorldConfig {
playerFixStuckPortal = getBoolean("gameplay-mechanics.player.fix-stuck-in-portal", playerFixStuckPortal);
creativeOnePunch = getBoolean("gameplay-mechanics.player.one-punch-in-creative", creativeOnePunch);
playerSleepNearMonsters = getBoolean("gameplay-mechanics.player.sleep-ignore-nearby-mobs", playerSleepNearMonsters);

View File

@@ -32,10 +32,10 @@ index 05c63eb6cf8a7067105c58d244c7cc27d6bf1125..7c2d5d28f8c2aba2cd8255a4aef22247
return InteractionResult.sidedSuccess(this.level().isClientSide);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index fe46a714e5eaf260c39803b9e644f62a5f211dd2..9bf0c00ab7ad5c112250d908fd2fc32b7d955cde 100644
index 9db6f638cf9d8f41dcbe956108c02081b4380c6c..fad95eb77677ff644a3dcf76dcf02aaefcaddfd6 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2260,6 +2260,7 @@ public class PurpurWorldConfig {
@@ -2262,6 +2262,7 @@ public class PurpurWorldConfig {
public boolean villagerClericFarmersThrowWarts = true;
public boolean villagerBypassMobGriefing = false;
public boolean villagerTakeDamageFromWater = false;
@@ -43,7 +43,7 @@ index fe46a714e5eaf260c39803b9e644f62a5f211dd2..9bf0c00ab7ad5c112250d908fd2fc32b
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2279,6 +2280,7 @@ public class PurpurWorldConfig {
@@ -2281,6 +2282,7 @@ public class PurpurWorldConfig {
villagerClericFarmersThrowWarts = getBoolean("mobs.villager.cleric-wart-farmers-throw-warts-at-villagers", villagerClericFarmersThrowWarts);
villagerBypassMobGriefing = getBoolean("mobs.villager.bypass-mob-griefing", villagerBypassMobGriefing);
villagerTakeDamageFromWater = getBoolean("mobs.villager.takes-damage-from-water", villagerTakeDamageFromWater);
@@ -51,7 +51,7 @@ index fe46a714e5eaf260c39803b9e644f62a5f211dd2..9bf0c00ab7ad5c112250d908fd2fc32b
}
public boolean vindicatorRidable = false;
@@ -2311,6 +2313,7 @@ public class PurpurWorldConfig {
@@ -2313,6 +2315,7 @@ public class PurpurWorldConfig {
public boolean wanderingTraderFollowEmeraldBlock = false;
public boolean wanderingTraderCanBeLeashed = false;
public boolean wanderingTraderTakeDamageFromWater = false;
@@ -59,7 +59,7 @@ index fe46a714e5eaf260c39803b9e644f62a5f211dd2..9bf0c00ab7ad5c112250d908fd2fc32b
private void wanderingTraderSettings() {
wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable);
wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater);
@@ -2325,6 +2328,7 @@ public class PurpurWorldConfig {
@@ -2327,6 +2330,7 @@ public class PurpurWorldConfig {
wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock);
wanderingTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", wanderingTraderCanBeLeashed);
wanderingTraderTakeDamageFromWater = getBoolean("mobs.wandering_trader.takes-damage-from-water", wanderingTraderTakeDamageFromWater);

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Drowning Settings
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 13c3f64cc1740a2f9f726e32eaf60989bcf9eb2a..3993769068556926eb30e32d90204ceb4287119d 100644
index d1a00b9881f56d4c1abae4d3a5759dafbb07b864..f8342a0254be24dd74846734977a19e349b58b11 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3482,7 +3482,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -40,10 +40,10 @@ index fd50a55934d4bb98ad4a1b0d0f6339cdd98b4e03..d076f7f42e98ca240c169e1c165097bf
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 9bf0c00ab7ad5c112250d908fd2fc32b7d955cde..140dd4ebdb18fee2e5ab13ca1ff37bc3101e5a0e 100644
index fad95eb77677ff644a3dcf76dcf02aaefcaddfd6..d54bb97b4402cfa6fc8a1af58693dc37d73101d1 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -167,6 +167,15 @@ public class PurpurWorldConfig {
@@ -169,6 +169,15 @@ public class PurpurWorldConfig {
nighttimeTicks = getInt("gameplay-mechanics.daylight-cycle-ticks.nighttime", nighttimeTicks);
}

View File

@@ -47,10 +47,10 @@ index fa29eb15934b3dad171d27c21d99b2451cfe553b..ba4aa69425d796d306791ea193f9c6b2
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 140dd4ebdb18fee2e5ab13ca1ff37bc3101e5a0e..575b2fe79c5d6ca5c19ee3026abf7ce4618c98dc 100644
index d54bb97b4402cfa6fc8a1af58693dc37d73101d1..2e52cee2fb2c4e0d01e47d1cc485a72e027f0dd2 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -596,6 +596,11 @@ public class PurpurWorldConfig {
@@ -598,6 +598,11 @@ public class PurpurWorldConfig {
}
}

View File

@@ -24,10 +24,10 @@ index e7bfce0534c7ef3a1480a1082ae8514caf78778b..6511b8c737a57fbc72122dd04e2b5449
return false;
} else {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 575b2fe79c5d6ca5c19ee3026abf7ce4618c98dc..92b722c01699f5889da25b7e2ac31862b6df956f 100644
index 2e52cee2fb2c4e0d01e47d1cc485a72e027f0dd2..b5abcab534811be6dde85b41bbfc9a6dc09c9d3b 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -561,6 +561,13 @@ public class PurpurWorldConfig {
@@ -563,6 +563,13 @@ public class PurpurWorldConfig {
furnaceUseLavaFromUnderneath = getBoolean("blocks.furnace.use-lava-from-underneath", furnaceUseLavaFromUnderneath);
}

View File

@@ -17,7 +17,7 @@ index 7180d65afee6216a0bc6ff2dc7888f64b9b6c22d..c0383771b08e1d89dfa4996b979248da
public ArmorStand(Level world, double x, double y, double z) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 92b722c01699f5889da25b7e2ac31862b6df956f..f72e3c436911acc9b91f61e0ef4cc36c0dc0cb54 100644
index b5abcab534811be6dde85b41bbfc9a6dc09c9d3b..38fa2e38d3b83a95c0d8b9cd1cd37df9127dd1f8 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -103,6 +103,7 @@ public class PurpurWorldConfig {

View File

@@ -82,10 +82,10 @@ index 6dd75bc722f9c20b4869e6353115c3b02dd79f99..dfaf82f5b0180cf08c4125347867d37a
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index f72e3c436911acc9b91f61e0ef4cc36c0dc0cb54..146e2b193703f065dc42968f91ca84a6025ed7b5 100644
index 38fa2e38d3b83a95c0d8b9cd1cd37df9127dd1f8..7e3ba83828654d33603869ea9fce1473ab87cc4a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -500,6 +500,16 @@ public class PurpurWorldConfig {
@@ -502,6 +502,16 @@ public class PurpurWorldConfig {
dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils);
}

View File

@@ -21,10 +21,10 @@ index 902825ec9ea05f4418b45f56a008d73f217bd178..a676ccfa6b02e8986df6f6a2e04cbb06
int i = aenumdirection.length;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 146e2b193703f065dc42968f91ca84a6025ed7b5..5bae9a1553b81a5a1afb0dbef30725e2ecfe088d 100644
index 7e3ba83828654d33603869ea9fce1473ab87cc4a..7f492cd27bd3e4031aef82bb0c20dfcc2a433dfc 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -625,6 +625,13 @@ public class PurpurWorldConfig {
@@ -627,6 +627,13 @@ public class PurpurWorldConfig {
spawnerDeactivateByRedstone = getBoolean("blocks.spawner.deactivate-by-redstone", spawnerDeactivateByRedstone);
}

View File

@@ -96,10 +96,10 @@ index 4934bae61114b49a9f8d0ed044fbb881210df32a..1be074074283f12543ac771ac9201580
entitythrowntrident.pickup = AbstractArrow.Pickup.CREATIVE_ONLY;
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 5bae9a1553b81a5a1afb0dbef30725e2ecfe088d..75067fbba5ae696640302158b0e83bf77dd9e59d 100644
index 7f492cd27bd3e4031aef82bb0c20dfcc2a433dfc..98847a1b630faf901eed10e5e7143d8af4f66533 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -450,6 +450,23 @@ public class PurpurWorldConfig {
@@ -452,6 +452,23 @@ public class PurpurWorldConfig {
//}
}

View File

@@ -18,10 +18,10 @@ index 9603d8c84ff483030dc08e82d3579b89e5c1f6e9..8fc65c32a3c6e6842a76b36f45e1b1c2
} else {
int j = pos.getX();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 75067fbba5ae696640302158b0e83bf77dd9e59d..9cf6098cd7ab85090c279b0737336f515e9645bf 100644
index 98847a1b630faf901eed10e5e7143d8af4f66533..ef748ba2004601399fc47239e2fe093d89491c4f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -611,6 +611,11 @@ public class PurpurWorldConfig {
@@ -613,6 +613,11 @@ public class PurpurWorldConfig {
powderSnowBypassMobGriefing = getBoolean("blocks.powder_snow.bypass-mob-griefing", powderSnowBypassMobGriefing);
}

View File

@@ -31,10 +31,10 @@ index e170176497b833e9addbdc652edcc074e598d26a..c3f37df133250e1a948f3b58d432fbee
pos = pos.below();
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 9cf6098cd7ab85090c279b0737336f515e9645bf..8e4f9132e04e43c7ae9b9ca11191f24c678920ce 100644
index ef748ba2004601399fc47239e2fe093d89491c4f..99a0b3d9f0ca86112bdfd727a72a2facbf60b3da 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1738,6 +1738,7 @@ public class PurpurWorldConfig {
@@ -1740,6 +1740,7 @@ public class PurpurWorldConfig {
public double piglinScale = 1.0D;
public boolean piglinBypassMobGriefing = false;
public boolean piglinTakeDamageFromWater = false;
@@ -42,7 +42,7 @@ index 9cf6098cd7ab85090c279b0737336f515e9645bf..8e4f9132e04e43c7ae9b9ca11191f24c
private void piglinSettings() {
piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable);
piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater);
@@ -1751,6 +1752,7 @@ public class PurpurWorldConfig {
@@ -1753,6 +1754,7 @@ public class PurpurWorldConfig {
piglinScale = Mth.clamp(getDouble("mobs.piglin.attributes.scale", piglinScale), 0.0625D, 16.0D);
piglinBypassMobGriefing = getBoolean("mobs.piglin.bypass-mob-griefing", piglinBypassMobGriefing);
piglinTakeDamageFromWater = getBoolean("mobs.piglin.takes-damage-from-water", piglinTakeDamageFromWater);

View File

@@ -18,10 +18,10 @@ index e472df057d087fe46bd40b798c050ed6e38a283c..999453409c19abf7f5b5c2dc39969985
if (!event.isCancelled()) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 8e4f9132e04e43c7ae9b9ca11191f24c678920ce..b0c40b8c47d3fff4c1c6ab5903a062995cead9c7 100644
index 99a0b3d9f0ca86112bdfd727a72a2facbf60b3da..a38c503ba822dee75720d021c17c4a7651bac2c7 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2435,6 +2435,7 @@ public class PurpurWorldConfig {
@@ -2437,6 +2437,7 @@ public class PurpurWorldConfig {
public boolean witherBypassMobGriefing = false;
public boolean witherTakeDamageFromWater = false;
public boolean witherCanRideVehicles = false;
@@ -29,7 +29,7 @@ index 8e4f9132e04e43c7ae9b9ca11191f24c678920ce..b0c40b8c47d3fff4c1c6ab5903a06299
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -2456,6 +2457,7 @@ public class PurpurWorldConfig {
@@ -2458,6 +2459,7 @@ public class PurpurWorldConfig {
witherBypassMobGriefing = getBoolean("mobs.wither.bypass-mob-griefing", witherBypassMobGriefing);
witherTakeDamageFromWater = getBoolean("mobs.wither.takes-damage-from-water", witherTakeDamageFromWater);
witherCanRideVehicles = getBoolean("mobs.wither.can-ride-vehicles", witherCanRideVehicles);

View File

@@ -36,10 +36,10 @@ index 205e223c356634bd6bc6bd58c6f0b7fda61a6f5f..bea05cb928d540a2f19b51bb7352d032
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index b0c40b8c47d3fff4c1c6ab5903a062995cead9c7..9204429711e23019808f2e619aa6d5fa2c738dc5 100644
index a38c503ba822dee75720d021c17c4a7651bac2c7..1ceec45b0ba2bdb20817ec4a57b58023751dc90f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -606,6 +606,11 @@ public class PurpurWorldConfig {
@@ -608,6 +608,11 @@ public class PurpurWorldConfig {
lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether);
}

View File

@@ -17,7 +17,7 @@ index b286b157bba78021efa18f01bc91b067b0bd5874..fc87e3cfff1221a6cbaf3463ce972870
// Paper end
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 5c922cc17f7390f3565848de53cdec4d1547b95d..92658ce4e5df51416b31ae55c8a6db6fe6e734a2 100644
index b68b3145656b65d1f270abb36f704d55d04d74c2..147cc53d0c0e226fc78a63e4ff83feac48f2b749 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1082,6 +1082,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple

View File

@@ -28,10 +28,10 @@ index d076f7f42e98ca240c169e1c165097bf4c3f46e8..d213e299d7bdba4161bd1a2fee9b1042
return d0;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 9204429711e23019808f2e619aa6d5fa2c738dc5..c31823497efcabed036951e0daa6e3da64716c14 100644
index 1ceec45b0ba2bdb20817ec4a57b58023751dc90f..126476ae43733e86b0825ea3fef2620954a10720 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -134,6 +134,7 @@ public class PurpurWorldConfig {
@@ -135,6 +135,7 @@ public class PurpurWorldConfig {
public boolean persistentDroppableEntityDisplayNames = true;
public boolean projectilesBypassMobGriefing = false;
public boolean tickFluids = true;
@@ -39,7 +39,7 @@ index 9204429711e23019808f2e619aa6d5fa2c738dc5..c31823497efcabed036951e0daa6e3da
public double tridentLoyaltyVoidReturnHeight = 0.0D;
public double voidDamageHeight = -64.0D;
public double voidDamageDealt = 4.0D;
@@ -155,6 +156,7 @@ public class PurpurWorldConfig {
@@ -157,6 +158,7 @@ public class PurpurWorldConfig {
persistentDroppableEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-droppable-entity-display-names", persistentDroppableEntityDisplayNames);
projectilesBypassMobGriefing = getBoolean("gameplay-mechanics.projectiles-bypass-mob-griefing", projectilesBypassMobGriefing);
tickFluids = getBoolean("gameplay-mechanics.tick-fluids", tickFluids);

View File

@@ -21,10 +21,10 @@ index 902191001a7302872ff661564fb6389457abaa9c..1769c1d31bb68904be426e1069266cec
// CraftBukkit end
this.dead = true;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index c31823497efcabed036951e0daa6e3da64716c14..7af41d5c345861970d25b43b094834b16217c002 100644
index 126476ae43733e86b0825ea3fef2620954a10720..b760d2ecda916e9797422d2be96dd433d2bc711b 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -975,6 +975,7 @@ public class PurpurWorldConfig {
@@ -977,6 +977,7 @@ public class PurpurWorldConfig {
public boolean creeperBypassMobGriefing = false;
public boolean creeperTakeDamageFromWater = false;
public boolean creeperExplodeWhenKilled = false;
@@ -32,7 +32,7 @@ index c31823497efcabed036951e0daa6e3da64716c14..7af41d5c345861970d25b43b094834b1
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -991,6 +992,7 @@ public class PurpurWorldConfig {
@@ -993,6 +994,7 @@ public class PurpurWorldConfig {
creeperBypassMobGriefing = getBoolean("mobs.creeper.bypass-mob-griefing", creeperBypassMobGriefing);
creeperTakeDamageFromWater = getBoolean("mobs.creeper.takes-damage-from-water", creeperTakeDamageFromWater);
creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled);

View File

@@ -25,10 +25,10 @@ index 0cf985cac3279c0cb6255f02b76a5012027cae99..446a2795aa8f2ddf472f8b379534978f
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 7af41d5c345861970d25b43b094834b16217c002..1e07d5e1e85517c6d7918f2cd3b2bed62f58fbfd 100644
index b760d2ecda916e9797422d2be96dd433d2bc711b..8217119bee2fc38567dd583b3c2c6c15d2a67893 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1465,6 +1465,8 @@ public class PurpurWorldConfig {
@@ -1467,6 +1467,8 @@ public class PurpurWorldConfig {
public double ironGolemMaxHealth = 100.0D;
public double ironGolemScale = 1.0D;
public boolean ironGolemTakeDamageFromWater = false;
@@ -37,7 +37,7 @@ index 7af41d5c345861970d25b43b094834b16217c002..1e07d5e1e85517c6d7918f2cd3b2bed6
private void ironGolemSettings() {
ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable);
ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater);
@@ -1478,6 +1480,8 @@ public class PurpurWorldConfig {
@@ -1480,6 +1482,8 @@ public class PurpurWorldConfig {
ironGolemMaxHealth = getDouble("mobs.iron_golem.attributes.max_health", ironGolemMaxHealth);
ironGolemScale = Mth.clamp(getDouble("mobs.iron_golem.attributes.scale", ironGolemScale), 0.0625D, 16.0D);
ironGolemTakeDamageFromWater = getBoolean("mobs.iron_golem.takes-damage-from-water", ironGolemTakeDamageFromWater);

View File

@@ -50,10 +50,10 @@ index 884fc114ef70d49fd0d64fcea46fb277950962a1..4fa32a6406e3158369064d39160e4850
@Nullable
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 1e07d5e1e85517c6d7918f2cd3b2bed62f58fbfd..ac0fb308e320b48c0b992e9988dcdb28f71ac41b 100644
index 8217119bee2fc38567dd583b3c2c6c15d2a67893..43a7cc0a29b1dfa29b5d54a2d5e459a8354cf3a5 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1643,6 +1643,7 @@ public class PurpurWorldConfig {
@@ -1645,6 +1645,7 @@ public class PurpurWorldConfig {
public double parrotMaxHealth = 6.0D;
public double parrotScale = 1.0D;
public boolean parrotTakeDamageFromWater = false;
@@ -61,7 +61,7 @@ index 1e07d5e1e85517c6d7918f2cd3b2bed62f58fbfd..ac0fb308e320b48c0b992e9988dcdb28
private void parrotSettings() {
parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable);
parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater);
@@ -1656,6 +1657,7 @@ public class PurpurWorldConfig {
@@ -1658,6 +1659,7 @@ public class PurpurWorldConfig {
parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth);
parrotScale = Mth.clamp(getDouble("mobs.parrot.attributes.scale", parrotScale), 0.0625D, 16.0D);
parrotTakeDamageFromWater = getBoolean("mobs.parrot.takes-damage-from-water", parrotTakeDamageFromWater);

View File

@@ -18,10 +18,10 @@ index 9ad276a73cba04edbe48f828031a15727d768a5b..337bd2011c471361653c317004f8380c
Vec3 vec3d5 = this.getDeltaMovement();
double d21 = vec3d5.x;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index ac0fb308e320b48c0b992e9988dcdb28f71ac41b..68a38529cde72e0008f48abf01d007cda8ee4749 100644
index 43a7cc0a29b1dfa29b5d54a2d5e459a8354cf3a5..d275a24a3017335f147f08b4f71cdcd71435d4bd 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -270,6 +270,7 @@ public class PurpurWorldConfig {
@@ -272,6 +272,7 @@ public class PurpurWorldConfig {
public boolean minecartControllableFallDamage = true;
public double minecartControllableBaseSpeed = 0.1D;
public Map<Block, Double> minecartControllableBlockSpeeds = new HashMap<>();
@@ -29,7 +29,7 @@ index ac0fb308e320b48c0b992e9988dcdb28f71ac41b..68a38529cde72e0008f48abf01d007cd
private void minecartSettings() {
if (PurpurConfig.version < 12) {
boolean oldBool = getBoolean("gameplay-mechanics.controllable-minecarts.place-anywhere", minecartPlaceAnywhere);
@@ -322,6 +323,7 @@ public class PurpurWorldConfig {
@@ -324,6 +325,7 @@ public class PurpurWorldConfig {
set("gameplay-mechanics.minecart.controllable.block-speed.grass_block", 0.3D);
set("gameplay-mechanics.minecart.controllable.block-speed.stone", 0.5D);
}

View File

@@ -18,10 +18,10 @@ index 33c1b2b387e7412a001841d1bcbb3966c188c1a3..40cf2eb78b02adc15e44189021005f14
float f3 = f + f1;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 68a38529cde72e0008f48abf01d007cda8ee4749..14206628ace10ef23ed45a779a8e48ac067a826e 100644
index d275a24a3017335f147f08b4f71cdcd71435d4bd..dfb38ec06614a8ef5a5a3b26f61bd68aeaec9519 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -367,6 +367,7 @@ public class PurpurWorldConfig {
@@ -369,6 +369,7 @@ public class PurpurWorldConfig {
public boolean creativeOnePunch = false;
public boolean playerSleepNearMonsters = false;
public boolean playersSkipNight = true;
@@ -29,7 +29,7 @@ index 68a38529cde72e0008f48abf01d007cda8ee4749..14206628ace10ef23ed45a779a8e48ac
private void playerSettings() {
if (PurpurConfig.version < 19) {
boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer);
@@ -386,6 +387,7 @@ public class PurpurWorldConfig {
@@ -388,6 +389,7 @@ public class PurpurWorldConfig {
creativeOnePunch = getBoolean("gameplay-mechanics.player.one-punch-in-creative", creativeOnePunch);
playerSleepNearMonsters = getBoolean("gameplay-mechanics.player.sleep-ignore-nearby-mobs", playerSleepNearMonsters);
playersSkipNight = getBoolean("gameplay-mechanics.player.can-skip-night", playersSkipNight);

View File

@@ -19,10 +19,10 @@ index fbe15cdd5b9bca2ab4b1e871abbbdbff49ade8a4..23d113842bf774bdc74e0dffcc97b642
BlockPos blockposition1 = pos.offset(world.random.nextInt(16) - world.random.nextInt(16), world.random.nextInt(8) - world.random.nextInt(8), world.random.nextInt(16) - world.random.nextInt(16));
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 14206628ace10ef23ed45a779a8e48ac067a826e..f801e4e307c37f61ce22a5128e64775722c35eee 100644
index dfb38ec06614a8ef5a5a3b26f61bd68aeaec9519..957307bb75b7dbc3b47bb24b8f4c720ecb9f004c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -533,6 +533,11 @@ public class PurpurWorldConfig {
@@ -535,6 +535,11 @@ public class PurpurWorldConfig {
});
}

View File

@@ -31,10 +31,10 @@ index fb84af3b1709101fa572d11a1c27970a316f2eab..5e982bab268746a05b97f5b9f7142254
return false;
} else {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index f801e4e307c37f61ce22a5128e64775722c35eee..7a70b458ca900e518b24837b0315904021aaefe3 100644
index 957307bb75b7dbc3b47bb24b8f4c720ecb9f004c..9ab97792c94db16dfff6606ec33fd1c4db83180a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -784,6 +784,8 @@ public class PurpurWorldConfig {
@@ -786,6 +786,8 @@ public class PurpurWorldConfig {
public double beeScale = 1.0D;
public int beeBreedingTicks = 6000;
public boolean beeTakeDamageFromWater = false;
@@ -43,7 +43,7 @@ index f801e4e307c37f61ce22a5128e64775722c35eee..7a70b458ca900e518b24837b03159040
private void beeSettings() {
beeRidable = getBoolean("mobs.bee.ridable", beeRidable);
beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater);
@@ -798,6 +800,8 @@ public class PurpurWorldConfig {
@@ -800,6 +802,8 @@ public class PurpurWorldConfig {
beeScale = Mth.clamp(getDouble("mobs.bee.attributes.scale", beeScale), 0.0625D, 16.0D);
beeBreedingTicks = getInt("mobs.bee.breeding-delay-ticks", beeBreedingTicks);
beeTakeDamageFromWater = getBoolean("mobs.bee.takes-damage-from-water", beeTakeDamageFromWater);

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] API for any mob to burn daylight
Co-authored by: Encode42 <me@encode42.dev>
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index e2190c3ca38d37042d43be3eedfca29f5bd5a061..9470540c9f7db168e3ba8671d7a1ceab26b8dda3 100644
index f8342a0254be24dd74846734977a19e349b58b11..979d5942219830cadf756f7f7098b4e77662536f 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -556,6 +556,22 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess

View File

@@ -72,10 +72,10 @@ index f43bf280999ff3860cc702def50cc62b131eb1bd..66d9e99a351f5fc6cf58be3bee4397d9
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 7a70b458ca900e518b24837b0315904021aaefe3..3d3edb700314ca2a368ad2b5e310d4aaa097c8cd 100644
index 9ab97792c94db16dfff6606ec33fd1c4db83180a..370a9911b16d7b37ebd4269b114a51c65a3aaf4b 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -326,6 +326,21 @@ public class PurpurWorldConfig {
@@ -328,6 +328,21 @@ public class PurpurWorldConfig {
poweredRailBoostModifier = getDouble("gameplay-mechanics.minecart.powered-rail.boost-modifier", poweredRailBoostModifier);
}

View File

@@ -26,10 +26,10 @@ index 814e70f558d7a6186233da0ff86c94c95d390e09..d1fb77d83d48183a9a37dbeec7bb0fda
} else {
return effectRange;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 3d3edb700314ca2a368ad2b5e310d4aaa097c8cd..6ca213635f81bff18c568768d6a05909de8f7bf8 100644
index 370a9911b16d7b37ebd4269b114a51c65a3aaf4b..acaa994f3678dde7e6febc6061a2c23974dc7f11 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -500,6 +500,17 @@ public class PurpurWorldConfig {
@@ -502,6 +502,17 @@ public class PurpurWorldConfig {
anvilColorsUseMiniMessage = getBoolean("blocks.anvil.use-mini-message", anvilColorsUseMiniMessage);
}

View File

@@ -55,10 +55,10 @@ index bd3f78e6453cfe18aa3da38176b04d734d83bb4b..b702b7270fae8fafc39588fbc39b4e00
public void eat(int food, float saturationModifier) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 6ca213635f81bff18c568768d6a05909de8f7bf8..60496afdae66f0644dddce5891ed4c2c05eab093 100644
index acaa994f3678dde7e6febc6061a2c23974dc7f11..900d1e7f87327d869516a3feac2d47e07bf62ca7 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -383,6 +383,8 @@ public class PurpurWorldConfig {
@@ -385,6 +385,8 @@ public class PurpurWorldConfig {
public boolean playerSleepNearMonsters = false;
public boolean playersSkipNight = true;
public double playerCriticalDamageMultiplier = 1.5D;
@@ -67,7 +67,7 @@ index 6ca213635f81bff18c568768d6a05909de8f7bf8..60496afdae66f0644dddce5891ed4c2c
private void playerSettings() {
if (PurpurConfig.version < 19) {
boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer);
@@ -403,6 +405,8 @@ public class PurpurWorldConfig {
@@ -405,6 +407,8 @@ public class PurpurWorldConfig {
playerSleepNearMonsters = getBoolean("gameplay-mechanics.player.sleep-ignore-nearby-mobs", playerSleepNearMonsters);
playersSkipNight = getBoolean("gameplay-mechanics.player.can-skip-night", playersSkipNight);
playerCriticalDamageMultiplier = getDouble("gameplay-mechanics.player.critical-damage-multiplier", playerCriticalDamageMultiplier);

View File

@@ -68,10 +68,10 @@ index 0d04a0107bd1a8a2b9aeb4be55025cd554e8fb79..a050d76233e179a1456b83ccc02bb9a5
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 60496afdae66f0644dddce5891ed4c2c05eab093..bbdf167f158bfadeb3a940587495ea3538a49b13 100644
index 900d1e7f87327d869516a3feac2d47e07bf62ca7..674699477cbe2f1aa491488bbb95d819ba665707 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2016,6 +2016,11 @@ public class PurpurWorldConfig {
@@ -2018,6 +2018,11 @@ public class PurpurWorldConfig {
public double shulkerMaxHealth = 30.0D;
public double shulkerScale = 1.0D;
public boolean shulkerTakeDamageFromWater = false;
@@ -83,7 +83,7 @@ index 60496afdae66f0644dddce5891ed4c2c05eab093..bbdf167f158bfadeb3a940587495ea35
private void shulkerSettings() {
shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable);
shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater);
@@ -2028,6 +2033,11 @@ public class PurpurWorldConfig {
@@ -2030,6 +2035,11 @@ public class PurpurWorldConfig {
shulkerMaxHealth = getDouble("mobs.shulker.attributes.max_health", shulkerMaxHealth);
shulkerScale = Mth.clamp(getDouble("mobs.shulker.attributes.scale", shulkerScale), 0.0625D, Shulker.MAX_SCALE);
shulkerTakeDamageFromWater = getBoolean("mobs.shulker.takes-damage-from-water", shulkerTakeDamageFromWater);

View File

@@ -18,10 +18,10 @@ index 4eef61323ba54f513e6f251ef7c804b2c91ff477..6b2235281dca67a80cb651e9f8e9bf25
public static final Item CAMPFIRE = registerBlock(Blocks.CAMPFIRE, settings -> settings.component(DataComponents.CONTAINER, ItemContainerContents.EMPTY));
public static final Item SOUL_CAMPFIRE = registerBlock(
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index bbdf167f158bfadeb3a940587495ea3538a49b13..698c54f8ed3a398077a8dcc7b00d3c6c4d67e6e2 100644
index 674699477cbe2f1aa491488bbb95d819ba665707..7ed6199800ae40e0f9af05e93e611ebb66c884e0 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -215,6 +215,7 @@ public class PurpurWorldConfig {
@@ -217,6 +217,7 @@ public class PurpurWorldConfig {
public int enderPearlCooldown = 20;
public int enderPearlCooldownCreative = 20;
public float enderPearlEndermiteChance = 0.05F;
@@ -29,7 +29,7 @@ index bbdf167f158bfadeb3a940587495ea3538a49b13..698c54f8ed3a398077a8dcc7b00d3c6c
private void itemSettings() {
itemImmuneToCactus.clear();
getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> {
@@ -260,6 +261,7 @@ public class PurpurWorldConfig {
@@ -262,6 +263,7 @@ public class PurpurWorldConfig {
enderPearlCooldown = getInt("gameplay-mechanics.item.ender-pearl.cooldown", enderPearlCooldown);
enderPearlCooldownCreative = getInt("gameplay-mechanics.item.ender-pearl.creative-cooldown", enderPearlCooldownCreative);
enderPearlEndermiteChance = (float) getDouble("gameplay-mechanics.item.ender-pearl.endermite-spawn-chance", enderPearlEndermiteChance);

View File

@@ -26,10 +26,10 @@ index 370f1b76c002f7cecf596767db717da51b2990f8..994dee36ce3aad3a0ef6a06bcaf555bd
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 698c54f8ed3a398077a8dcc7b00d3c6c4d67e6e2..96dc19939587dfdaf65734e2b5280e32d03ff6db 100644
index 7ed6199800ae40e0f9af05e93e611ebb66c884e0..9c93682cf57f7c90762775c564eabb6eadd25dc8 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1104,6 +1104,7 @@ public class PurpurWorldConfig {
@@ -1106,6 +1106,7 @@ public class PurpurWorldConfig {
public double drownedJockeyChance = 0.05D;
public boolean drownedJockeyTryExistingChickens = true;
public boolean drownedTakeDamageFromWater = false;
@@ -37,7 +37,7 @@ index 698c54f8ed3a398077a8dcc7b00d3c6c4d67e6e2..96dc19939587dfdaf65734e2b5280e32
private void drownedSettings() {
drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable);
drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater);
@@ -1120,6 +1121,7 @@ public class PurpurWorldConfig {
@@ -1122,6 +1123,7 @@ public class PurpurWorldConfig {
drownedJockeyChance = getDouble("mobs.drowned.jockey.chance", drownedJockeyChance);
drownedJockeyTryExistingChickens = getBoolean("mobs.drowned.jockey.try-existing-chickens", drownedJockeyTryExistingChickens);
drownedTakeDamageFromWater = getBoolean("mobs.drowned.takes-damage-from-water", drownedTakeDamageFromWater);

View File

@@ -18,10 +18,10 @@ index b702b7270fae8fafc39588fbc39b4e0014809047..842a908051bdf6c5f0ef8ce3ac84a7ce
this.tickTimer = 0;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 96dc19939587dfdaf65734e2b5280e32d03ff6db..d2f9afca144bd15ca5c0edfa271897537ddf4adc 100644
index 9c93682cf57f7c90762775c564eabb6eadd25dc8..58319128d7a22bc97bdb0cfbcfb8b9c4bb23a0db 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2724,4 +2724,9 @@ public class PurpurWorldConfig {
@@ -2726,4 +2726,9 @@ public class PurpurWorldConfig {
zombifiedPiglinCountAsPlayerKillWhenAngry = getBoolean("mobs.zombified_piglin.count-as-player-kill-when-angry", zombifiedPiglinCountAsPlayerKillWhenAngry);
zombifiedPiglinTakeDamageFromWater = getBoolean("mobs.zombified_piglin.takes-damage-from-water", zombifiedPiglinTakeDamageFromWater);
}

View File

@@ -17,7 +17,7 @@ index c7b7cc0d9ce589b5a0600e9b8c46b2e5d7a520bd..9f86a0397c0b64cb31dad245e2dc84d0
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 5300e75cb10c74188fdee49c65e56255652bc82a..8e8cc0b294c89cc9ebabee42d6a6d9ced4f9cd7d 100644
index f21395bfb83a80dd0b3197870ef162cb5669cbf9..78921a485917012bbebe7d6ac05fb975449f8338 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -304,6 +304,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa

View File

@@ -157,10 +157,10 @@ index 24f6a158e4759aac3be8da4cf5e0d40bd295355b..6b7dbb570f8a698c87c6bce992d84d87
return InteractionResult.PASS;
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index d2f9afca144bd15ca5c0edfa271897537ddf4adc..4f96af805f1b27e411d13661566eef0166318b26 100644
index 58319128d7a22bc97bdb0cfbcfb8b9c4bb23a0db..f8625595d4a4b40bdf8207fbe67da8abff61f8a1 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -499,6 +499,280 @@ public class PurpurWorldConfig {
@@ -501,6 +501,280 @@ public class PurpurWorldConfig {
snowballDamage = getInt("gameplay-mechanics.projectile-damage.snowball", snowballDamage);
}

View File

@@ -38,7 +38,7 @@ index d70af5d1e743a981ffc3d85d06a7602925664148..9b38adcdabb22c42611aad8d1ed22654
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 92658ce4e5df51416b31ae55c8a6db6fe6e734a2..481e535716946ca1f5ffbe2024af22ceeff25dca 100644
index 147cc53d0c0e226fc78a63e4ff83feac48f2b749..1e93cc377acc2fc48d76d705dcf2732295bdd1b8 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1571,7 +1571,19 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple

Some files were not shown because too many files have changed in this diff Show More