Drop projectile despawn rates patch in favor of pufferfish's

Fixes elBukkit/MagicPlugin#1042
Fixes elBukkit/MagicPlugin#816
This commit is contained in:
BillyGalbreath
2022-06-13 10:46:27 -05:00
parent c5dbf9cf10
commit 146750b2de
193 changed files with 978 additions and 1244 deletions

View File

@@ -172,7 +172,7 @@ index fbd604602024522bdd73aa1bde6fe2ccec63e442..516d26bcff64c828d3ec1607d3b774b5
.withRequiredArg()
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
new file mode 100644
index 0000000000000000000000000000000000000000..b3bfc56859d00f9e27bd1d230dd19b92985b5718
index 0000000000000000000000000000000000000000..e8bcb30f5236b4327883855275eb05d9f4f436e5
--- /dev/null
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -0,0 +1,170 @@
@@ -250,8 +250,8 @@ index 0000000000000000000000000000000000000000..b3bfc56859d00f9e27bd1d230dd19b92
+ commands = new HashMap<>();
+ commands.put("purpur", new PurpurCommand("purpur"));
+
+ version = getInt("config-version", 27);
+ set("config-version", 27);
+ version = getInt("config-version", 28);
+ set("config-version", 28);
+
+ readConfig(PurpurConfig.class, null);
+ }
@@ -348,15 +348,17 @@ index 0000000000000000000000000000000000000000..b3bfc56859d00f9e27bd1d230dd19b92
+}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
new file mode 100644
index 0000000000000000000000000000000000000000..0ce93836629522c2ff2a57226583009302271daf
index 0000000000000000000000000000000000000000..18cceb978c812162622f7285bbe18e647eb08017
--- /dev/null
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -0,0 +1,91 @@
@@ -0,0 +1,94 @@
+package org.purpurmc.purpur;
+
+import gg.pufferfish.pufferfish.PufferfishConfig;
+import net.minecraft.core.Registry;
+import net.minecraft.resources.ResourceLocation;
+import net.minecraft.util.Mth;
+import net.minecraft.world.entity.EntityType;
+import net.minecraft.world.item.DyeColor;
+import net.minecraft.world.item.Item;
+import net.minecraft.world.item.Items;
@@ -376,6 +378,7 @@ index 0000000000000000000000000000000000000000..0ce93836629522c2ff2a572265830093
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.function.Predicate;
+import java.util.logging.Level;

View File

@@ -34,7 +34,7 @@ index 783b81e5252a689683264a494a30fb668b43a986..d4b05231b6b631f382d7e5fe6c42eba3
this.profiler.push(() -> {
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index f8a813817d630993670092f0681a5bd8965cbb19..dade21560eb26011f8d59d277ffdc0b65d6e6c80 100644
index c018f89decbd2ee158367adb408335ab3ab18e22..3d94e1c0abd49d59847c9aa17c6161b3da3fb649 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -218,6 +218,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -5204,7 +5204,7 @@ index 1d8ec0f85ec42f2dcd9405df83b526ae1c59de6f..d437630610b3561029a88a075ab3ed0a
event = new EntityDamageEvent(damagee.getBukkitEntity(), cause, modifiers, modifierFunctions);
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index b3bfc56859d00f9e27bd1d230dd19b92985b5718..e8150d1bec60f7e32d5475c8402fd7b53df359e7 100644
index e8bcb30f5236b4327883855275eb05d9f4f436e5..a288e2ec4f087571873568ead9b968b1525d106c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -167,4 +167,9 @@ public class PurpurConfig {
@@ -5218,10 +5218,10 @@ index b3bfc56859d00f9e27bd1d230dd19b92985b5718..e8150d1bec60f7e32d5475c8402fd7b5
+ }
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 0ce93836629522c2ff2a57226583009302271daf..4efbb008bd31a0316d3ceead6be27c6d38dd9f50 100644
index 18cceb978c812162622f7285bbe18e647eb08017..2521c6f055b1631979cf281dc158c5f25623c259 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -88,4 +88,706 @@ public class PurpurWorldConfig {
@@ -91,4 +91,706 @@ public class PurpurWorldConfig {
final Map<String, Object> value = PurpurConfig.getMap("world-settings." + worldName + "." + path, null);
return value.isEmpty() ? fallback : value;
}

View File

@@ -1464,10 +1464,10 @@ index 2ae9a5da91ad20f1b566a686dcc8d4f14c62ecc5..8bfa041297db79e8f1452ce7059d1536
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 4efbb008bd31a0316d3ceead6be27c6d38dd9f50..bf4c17c61dcc230286fe9ce4cb0855f0f710aad0 100644
index 2521c6f055b1631979cf281dc158c5f25623c259..74029209c431a709341161da6a0ac719188d5fac 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -109,94 +109,166 @@ public class PurpurWorldConfig {
@@ -112,94 +112,166 @@ public class PurpurWorldConfig {
public boolean axolotlRidable = false;
public boolean axolotlControllable = true;
@@ -1634,7 +1634,7 @@ index 4efbb008bd31a0316d3ceead6be27c6d38dd9f50..bf4c17c61dcc230286fe9ce4cb0855f0
}
public boolean dolphinRidable = false;
@@ -204,80 +276,161 @@ public class PurpurWorldConfig {
@@ -207,80 +279,161 @@ public class PurpurWorldConfig {
public int dolphinSpitCooldown = 20;
public float dolphinSpitSpeed = 1.0F;
public float dolphinSpitDamage = 2.0F;
@@ -1796,7 +1796,7 @@ index 4efbb008bd31a0316d3ceead6be27c6d38dd9f50..bf4c17c61dcc230286fe9ce4cb0855f0
}
public boolean frogRidable = false;
@@ -295,147 +448,316 @@ public class PurpurWorldConfig {
@@ -298,147 +451,316 @@ public class PurpurWorldConfig {
public boolean ghastRidableInWater = false;
public boolean ghastControllable = true;
public double ghastMaxY = 320D;
@@ -2113,7 +2113,7 @@ index 4efbb008bd31a0316d3ceead6be27c6d38dd9f50..bf4c17c61dcc230286fe9ce4cb0855f0
}
public boolean phantomRidable = false;
@@ -445,6 +767,10 @@ public class PurpurWorldConfig {
@@ -448,6 +770,10 @@ public class PurpurWorldConfig {
public float phantomFlameDamage = 1.0F;
public int phantomFlameFireTime = 8;
public boolean phantomAllowGriefing = false;
@@ -2124,7 +2124,7 @@ index 4efbb008bd31a0316d3ceead6be27c6d38dd9f50..bf4c17c61dcc230286fe9ce4cb0855f0
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -453,180 +779,350 @@ public class PurpurWorldConfig {
@@ -456,180 +782,350 @@ public class PurpurWorldConfig {
phantomFlameDamage = (float) getDouble("mobs.phantom.flames.damage", phantomFlameDamage);
phantomFlameFireTime = getInt("mobs.phantom.flames.fire-time", phantomFlameFireTime);
phantomAllowGriefing = getBoolean("mobs.phantom.allow-griefing", phantomAllowGriefing);
@@ -2475,7 +2475,7 @@ index 4efbb008bd31a0316d3ceead6be27c6d38dd9f50..bf4c17c61dcc230286fe9ce4cb0855f0
}
public boolean tadpoleRidable = false;
@@ -641,64 +1137,125 @@ public class PurpurWorldConfig {
@@ -644,64 +1140,125 @@ public class PurpurWorldConfig {
public boolean traderLlamaRidable = false;
public boolean traderLlamaRidableInWater = false;
public boolean traderLlamaControllable = true;
@@ -2601,7 +2601,7 @@ index 4efbb008bd31a0316d3ceead6be27c6d38dd9f50..bf4c17c61dcc230286fe9ce4cb0855f0
}
public boolean wardenRidable = false;
@@ -713,81 +1270,165 @@ public class PurpurWorldConfig {
@@ -716,81 +1273,165 @@ public class PurpurWorldConfig {
public boolean witchRidable = false;
public boolean witchRidableInWater = false;
public boolean witchControllable = true;

View File

@@ -255,7 +255,7 @@ index 8deb966c33b890560c8f5cc875d8225e29aa42e9..16aa402f7b9ff8c2f1748bc4c82005cc
// Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 1717eb5f8fdaf8432113a297602f2eaa10559583..ef8f2dd75b04534c454205cadf2bb5b0fbc5764b 100644
index 6ea78ee90223e30d22403bc1eb0b20f994ba81d1..5a1da82889ae4326ceaadab2975402c98659b9e4 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -169,8 +169,16 @@ public class PurpurConfig {
@@ -276,10 +276,10 @@ index 1717eb5f8fdaf8432113a297602f2eaa10559583..ef8f2dd75b04534c454205cadf2bb5b0
public static int barrelRows = 3;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index bf4c17c61dcc230286fe9ce4cb0855f0f710aad0..f4f1ebe68143270a940ac839c3b6df2775b3a0ca 100644
index 74029209c431a709341161da6a0ac719188d5fac..034205c6e2887aee5d879db46fcf95480e0d7908 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -89,6 +89,24 @@ public class PurpurWorldConfig {
@@ -92,6 +92,24 @@ public class PurpurWorldConfig {
return value.isEmpty() ? fallback : value;
}

View File

@@ -146,10 +146,10 @@ index 16aa402f7b9ff8c2f1748bc4c82005ccf093ceb4..5cd36fef58afdc60d58acde8809f6507
// Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index f4f1ebe68143270a940ac839c3b6df2775b3a0ca..9dcdc3c57c774d260fb4849e7a90922101c0dd49 100644
index 034205c6e2887aee5d879db46fcf95480e0d7908..6bb51d0ec5d110c8a6690c1df25a730d50df0f72 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -94,6 +94,8 @@ public class PurpurWorldConfig {
@@ -97,6 +97,8 @@ public class PurpurWorldConfig {
public boolean idleTimeoutCountAsSleeping = false;
public boolean idleTimeoutUpdateTabList = false;
public boolean idleTimeoutTargetPlayer = true;
@@ -158,7 +158,7 @@ index f4f1ebe68143270a940ac839c3b6df2775b3a0ca..9dcdc3c57c774d260fb4849e7a909221
private void playerSettings() {
if (PurpurConfig.version < 19) {
boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer);
@@ -105,6 +107,8 @@ public class PurpurWorldConfig {
@@ -108,6 +110,8 @@ public class PurpurWorldConfig {
idleTimeoutCountAsSleeping = getBoolean("gameplay-mechanics.player.idle-timeout.count-as-sleeping", idleTimeoutCountAsSleeping);
idleTimeoutUpdateTabList = getBoolean("gameplay-mechanics.player.idle-timeout.update-tab-list", idleTimeoutUpdateTabList);
idleTimeoutTargetPlayer = getBoolean("gameplay-mechanics.player.idle-timeout.mobs-target", idleTimeoutTargetPlayer);

View File

@@ -36,10 +36,10 @@ index ef08ec3eb88ee1ab624e2bd38aaff5e8f97720f2..4cb1cf2b51f1c58e2600996f1d67dcef
this.getBrain().tick((ServerLevel) this.level, this); // Paper
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 9dcdc3c57c774d260fb4849e7a90922101c0dd49..45f3d6daa4e3a90c55168da092595324af0a5a19 100644
index 6bb51d0ec5d110c8a6690c1df25a730d50df0f72..707ebaa9568d2875ead797feccd80da1cb9fc6a2 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1236,6 +1236,8 @@ public class PurpurWorldConfig {
@@ -1239,6 +1239,8 @@ public class PurpurWorldConfig {
public boolean villagerRidableInWater = false;
public boolean villagerControllable = true;
public double villagerMaxHealth = 20.0D;
@@ -48,7 +48,7 @@ index 9dcdc3c57c774d260fb4849e7a90922101c0dd49..45f3d6daa4e3a90c55168da092595324
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1246,6 +1248,8 @@ public class PurpurWorldConfig {
@@ -1249,6 +1251,8 @@ public class PurpurWorldConfig {
set("mobs.villager.attributes.max_health", oldValue);
}
villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth);

View File

@@ -127,10 +127,10 @@ index 39bc91423c830d69eff1996881373296f322f06a..e0d8bd28576f16822a584f3514dbcb8f
int i = 15 + worldserver.random.nextInt(15) + worldserver.random.nextInt(15);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 45f3d6daa4e3a90c55168da092595324af0a5a19..10b8183cf8af86676efd5486f09493eac59840d2 100644
index 707ebaa9568d2875ead797feccd80da1cb9fc6a2..cc194b3560229101fcf2836cbb950082d3d35397 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -111,6 +111,38 @@ public class PurpurWorldConfig {
@@ -114,6 +114,38 @@ public class PurpurWorldConfig {
playerInvulnerableWhileAcceptingResourcePack = getBoolean("gameplay-mechanics.player.invulnerable-while-accepting-resource-pack", playerInvulnerableWhileAcceptingResourcePack);
}

View File

@@ -50,10 +50,10 @@ index 7d25fb0fc64a4f559fe206198fde900afa06f258..1a12fee99a8b69fc6c01e1e217575c7c
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 10b8183cf8af86676efd5486f09493eac59840d2..39991fb579e6b0df221f62d544f4d0ab79d2a769 100644
index cc194b3560229101fcf2836cbb950082d3d35397..b22e855393e5f3d3099db3bba60ad62c1163ca2b 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -143,6 +143,15 @@ public class PurpurWorldConfig {
@@ -146,6 +146,15 @@ public class PurpurWorldConfig {
});
}

View File

@@ -120,10 +120,10 @@ index c1c5e884f00398032196ee71b55b348fcfce21ce..ed032918fb33d60c2d60d4db9275dddf
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 39991fb579e6b0df221f62d544f4d0ab79d2a769..9b7d1b8c058f55045bb525511509c5e03e6aebaf 100644
index b22e855393e5f3d3099db3bba60ad62c1163ca2b..2cf4bab37d7789f9d22ae1d9edbdabbe8fa79ab5 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -531,6 +531,10 @@ public class PurpurWorldConfig {
@@ -534,6 +534,10 @@ public class PurpurWorldConfig {
public double giantMovementSpeed = 0.5D;
public double giantAttackDamage = 50.0D;
public double giantMaxHealth = 100.0D;
@@ -134,7 +134,7 @@ index 39991fb579e6b0df221f62d544f4d0ab79d2a769..9b7d1b8c058f55045bb525511509c5e0
private void giantSettings() {
giantRidable = getBoolean("mobs.giant.ridable", giantRidable);
giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater);
@@ -547,6 +551,10 @@ public class PurpurWorldConfig {
@@ -550,6 +554,10 @@ public class PurpurWorldConfig {
set("mobs.giant.attributes.max_health", oldValue);
}
giantMaxHealth = getDouble("mobs.giant.attributes.max_health", giantMaxHealth);

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Zombie horse naturally spawn
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index dade21560eb26011f8d59d277ffdc0b65d6e6c80..1140edb12dba385ff572b2cd2ab1a4b32eab2a1a 100644
index 3d94e1c0abd49d59847c9aa17c6161b3da3fb649..1952608dc00f3d47aa6fe3dfd54957ca064a9374 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -792,9 +792,15 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -28,10 +28,10 @@ index dade21560eb26011f8d59d277ffdc0b65d6e6c80..1140edb12dba385ff572b2cd2ab1a4b3
entityhorseskeleton.setPos((double) blockposition.getX(), (double) blockposition.getY(), (double) blockposition.getZ());
this.addFreshEntity(entityhorseskeleton, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.LIGHTNING); // CraftBukkit
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 9b7d1b8c058f55045bb525511509c5e03e6aebaf..c9b639f8ec010146a325b007807b98019fcb3c2f 100644
index 2cf4bab37d7789f9d22ae1d9edbdabbe8fa79ab5..408f80e6046a45ff3f7526f603e5c68d222057d4 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1454,6 +1454,7 @@ public class PurpurWorldConfig {
@@ -1457,6 +1457,7 @@ public class PurpurWorldConfig {
public double zombieHorseJumpStrengthMax = 1.0D;
public double zombieHorseMovementSpeedMin = 0.2D;
public double zombieHorseMovementSpeedMax = 0.2D;
@@ -39,7 +39,7 @@ index 9b7d1b8c058f55045bb525511509c5e03e6aebaf..c9b639f8ec010146a325b007807b9801
private void zombieHorseSettings() {
zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater);
zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim);
@@ -1469,6 +1470,7 @@ public class PurpurWorldConfig {
@@ -1472,6 +1473,7 @@ public class PurpurWorldConfig {
zombieHorseJumpStrengthMax = getDouble("mobs.zombie_horse.attributes.jump_strength.max", zombieHorseJumpStrengthMax);
zombieHorseMovementSpeedMin = getDouble("mobs.zombie_horse.attributes.movement_speed.min", zombieHorseMovementSpeedMin);
zombieHorseMovementSpeedMax = getDouble("mobs.zombie_horse.attributes.movement_speed.max", zombieHorseMovementSpeedMax);

View File

@@ -24,10 +24,10 @@ index 0bf2355b7ac80227c06b3e85f1645559275a96e5..2a5f7fb0e60f41b6627255146ca18b27
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index c9b639f8ec010146a325b007807b98019fcb3c2f..e9b357ac289f7e72b4bbbcfdf71c9eac51b73cbd 100644
index 408f80e6046a45ff3f7526f603e5c68d222057d4..c14e710ca4137912978212d69b9dad78d5613f83 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -322,6 +322,7 @@ public class PurpurWorldConfig {
@@ -325,6 +325,7 @@ public class PurpurWorldConfig {
public boolean creeperRidableInWater = false;
public boolean creeperControllable = true;
public double creeperMaxHealth = 20.0D;
@@ -35,7 +35,7 @@ index c9b639f8ec010146a325b007807b98019fcb3c2f..e9b357ac289f7e72b4bbbcfdf71c9eac
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -332,6 +333,7 @@ public class PurpurWorldConfig {
@@ -335,6 +336,7 @@ public class PurpurWorldConfig {
set("mobs.creeper.attributes.max_health", oldValue);
}
creeperMaxHealth = getDouble("mobs.creeper.attributes.max_health", creeperMaxHealth);

View File

@@ -38,10 +38,10 @@ index eaf040f10e33fdfb57391b6e7bc6901c87270853..47dc84052f1fb0017ff2e608c3f6d8b9
int i = world.getRandom().nextInt(100);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index e9b357ac289f7e72b4bbbcfdf71c9eac51b73cbd..a30300602f23001f14ff8e82854f653db2cb1e79 100644
index c14e710ca4137912978212d69b9dad78d5613f83..ecc43e84b839d66a0636623708633a5a71b95127 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -965,6 +965,8 @@ public class PurpurWorldConfig {
@@ -968,6 +968,8 @@ public class PurpurWorldConfig {
public boolean rabbitRidableInWater = false;
public boolean rabbitControllable = true;
public double rabbitMaxHealth = 3.0D;
@@ -50,7 +50,7 @@ index e9b357ac289f7e72b4bbbcfdf71c9eac51b73cbd..a30300602f23001f14ff8e82854f653d
private void rabbitSettings() {
rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable);
rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater);
@@ -975,6 +977,8 @@ public class PurpurWorldConfig {
@@ -978,6 +980,8 @@ public class PurpurWorldConfig {
set("mobs.rabbit.attributes.max_health", oldValue);
}
rabbitMaxHealth = getDouble("mobs.rabbit.attributes.max_health", rabbitMaxHealth);

View File

@@ -75,10 +75,10 @@ index 8d25d79be606b173a59264706172561165f82143..f03bd9a9129f0d45d36ef56a726d513a
// Paper start - Cancellable death event
protected org.bukkit.event.entity.EntityDeathEvent dropAllDeathLoot(DamageSource source) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index a30300602f23001f14ff8e82854f653db2cb1e79..878321a8f3665c0b1577cc49ede54e7041187af7 100644
index ecc43e84b839d66a0636623708633a5a71b95127..81e031ca9345a0dd3e3afb78880d1ae4a936247e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -486,6 +486,7 @@ public class PurpurWorldConfig {
@@ -489,6 +489,7 @@ public class PurpurWorldConfig {
public boolean foxRidableInWater = false;
public boolean foxControllable = true;
public double foxMaxHealth = 10.0D;
@@ -86,7 +86,7 @@ index a30300602f23001f14ff8e82854f653db2cb1e79..878321a8f3665c0b1577cc49ede54e70
private void foxSettings() {
foxRidable = getBoolean("mobs.fox.ridable", foxRidable);
foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater);
@@ -496,6 +497,7 @@ public class PurpurWorldConfig {
@@ -499,6 +500,7 @@ public class PurpurWorldConfig {
set("mobs.fox.attributes.max_health", oldValue);
}
foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth);

View File

@@ -59,10 +59,10 @@ index 798269a1098008e14fc2548e480c815fa4ff4d25..e68782ac48fd9ee11080dfd76c88d9a4
this.goalSelector.addGoal(5, new RandomStrollGoal(this, 1.0D));
this.goalSelector.addGoal(6, new LookAtPlayerGoal(this, Player.class, 6.0F));
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 878321a8f3665c0b1577cc49ede54e7041187af7..e35cec7207a48ec6632a1546e39bd3c2dc8b042e 100644
index 81e031ca9345a0dd3e3afb78880d1ae4a936247e..5dbba6fcb3cf0750520e4ea55489cf6e1f04f7d4 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -937,6 +937,8 @@ public class PurpurWorldConfig {
@@ -940,6 +940,8 @@ public class PurpurWorldConfig {
public boolean polarBearRidableInWater = false;
public boolean polarBearControllable = true;
public double polarBearMaxHealth = 30.0D;
@@ -71,7 +71,7 @@ index 878321a8f3665c0b1577cc49ede54e7041187af7..e35cec7207a48ec6632a1546e39bd3c2
private void polarBearSettings() {
polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable);
polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater);
@@ -947,6 +949,9 @@ public class PurpurWorldConfig {
@@ -950,6 +952,9 @@ public class PurpurWorldConfig {
set("mobs.polar_bear.attributes.max_health", oldValue);
}
polarBearMaxHealth = getDouble("mobs.polar_bear.attributes.max_health", polarBearMaxHealth);

View File

@@ -51,10 +51,10 @@ index 8503a3393026134df18601ed87dcec1f3e6680b8..96dceb9943c4320e0edfba47cc211d60
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index e35cec7207a48ec6632a1546e39bd3c2dc8b042e..442e8dceeee7cd7e05bad5ce722b0dce121978ae 100644
index 5dbba6fcb3cf0750520e4ea55489cf6e1f04f7d4..5c739edfd8b81493248beddb712bbc24a7098ea4 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -276,6 +276,7 @@ public class PurpurWorldConfig {
@@ -279,6 +279,7 @@ public class PurpurWorldConfig {
public boolean chickenRidableInWater = false;
public boolean chickenControllable = true;
public double chickenMaxHealth = 4.0D;
@@ -62,7 +62,7 @@ index e35cec7207a48ec6632a1546e39bd3c2dc8b042e..442e8dceeee7cd7e05bad5ce722b0dce
private void chickenSettings() {
chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable);
chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater);
@@ -286,6 +287,7 @@ public class PurpurWorldConfig {
@@ -289,6 +290,7 @@ public class PurpurWorldConfig {
set("mobs.chicken.attributes.max_health", oldValue);
}
chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth);

View File

@@ -17,10 +17,10 @@ index 150afceb491cfd254c0f1b84800e6df14cf26676..ba9e851eebb25edf94efe8dfbd591e26
if (!this.canTick) {
if (this.noTickPoseDirty) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 442e8dceeee7cd7e05bad5ce722b0dce121978ae..1c47c36d1fd31a270b28f1e92a6855a6a236ffa6 100644
index 5c739edfd8b81493248beddb712bbc24a7098ea4..a95aea65d8aafe90d8ba15a7580536c155dcd862 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -89,6 +89,11 @@ public class PurpurWorldConfig {
@@ -92,6 +92,11 @@ public class PurpurWorldConfig {
return value.isEmpty() ? fallback : value;
}

View File

@@ -51,10 +51,10 @@ index 8808cb9f5df43d781cbb9c7943ff2f222e3a6969..f7e3ee98b006a53c3c6bf87fc90e5ef4
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 1c47c36d1fd31a270b28f1e92a6855a6a236ffa6..b06c801bee4dade7d655ec3f29dd38713db201e4 100644
index a95aea65d8aafe90d8ba15a7580536c155dcd862..1d6a90f54d415e328804c70b6381ee4010aba7b1 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -249,6 +249,9 @@ public class PurpurWorldConfig {
@@ -252,6 +252,9 @@ public class PurpurWorldConfig {
public boolean catRidableInWater = false;
public boolean catControllable = true;
public double catMaxHealth = 10.0D;
@@ -64,7 +64,7 @@ index 1c47c36d1fd31a270b28f1e92a6855a6a236ffa6..b06c801bee4dade7d655ec3f29dd3871
private void catSettings() {
catRidable = getBoolean("mobs.cat.ridable", catRidable);
catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater);
@@ -259,6 +262,9 @@ public class PurpurWorldConfig {
@@ -262,6 +265,9 @@ public class PurpurWorldConfig {
set("mobs.cat.attributes.max_health", oldValue);
}
catMaxHealth = getDouble("mobs.cat.attributes.max_health", catMaxHealth);

View File

@@ -114,10 +114,10 @@ index dd4d5e2e7cbfed18cf3b4664dbe08eaf9d95f61e..732c560383da3b8a270139758f29734d
public Cow getBreedOffspring(ServerLevel world, AgeableMob entity) {
return (Cow) EntityType.COW.create(world);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index b06c801bee4dade7d655ec3f29dd38713db201e4..fcdfad2d539a65365e05ce9d49fd90e6febabecd 100644
index 1d6a90f54d415e328804c70b6381ee4010aba7b1..1ed669848112c1b323b2a52b26666570361632d1 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -319,6 +319,7 @@ public class PurpurWorldConfig {
@@ -322,6 +322,7 @@ public class PurpurWorldConfig {
public boolean cowRidableInWater = false;
public boolean cowControllable = true;
public double cowMaxHealth = 10.0D;
@@ -125,7 +125,7 @@ index b06c801bee4dade7d655ec3f29dd38713db201e4..fcdfad2d539a65365e05ce9d49fd90e6
private void cowSettings() {
cowRidable = getBoolean("mobs.cow.ridable", cowRidable);
cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater);
@@ -329,6 +330,7 @@ public class PurpurWorldConfig {
@@ -332,6 +333,7 @@ public class PurpurWorldConfig {
set("mobs.cow.attributes.max_health", oldValue);
}
cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth);

View File

@@ -27,10 +27,10 @@ index a02476bdc34a4e3e0389abaf08687393cc3bff97..d4348bd3877813295d01d0171fee2d59
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 fcdfad2d539a65365e05ce9d49fd90e6febabecd..3e7b24a03cb84255d05d8262fdce814731ba2cf5 100644
index 1ed669848112c1b323b2a52b26666570361632d1..4672bcf648751b813cb22853251c535c5adaa13f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -888,6 +888,7 @@ public class PurpurWorldConfig {
@@ -891,6 +891,7 @@ public class PurpurWorldConfig {
public boolean pigRidableInWater = false;
public boolean pigControllable = true;
public double pigMaxHealth = 10.0D;
@@ -38,7 +38,7 @@ index fcdfad2d539a65365e05ce9d49fd90e6febabecd..3e7b24a03cb84255d05d8262fdce8147
private void pigSettings() {
pigRidable = getBoolean("mobs.pig.ridable", pigRidable);
pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater);
@@ -898,6 +899,7 @@ public class PurpurWorldConfig {
@@ -901,6 +902,7 @@ public class PurpurWorldConfig {
set("mobs.pig.attributes.max_health", oldValue);
}
pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth);

View File

@@ -32,10 +32,10 @@ index e2f0f1d7ed8004a03f14887750a470e08ee1f42d..b4459d68397cc5bac4f7ef79a2dfb18f
this.forceDrops = false; // CraftBukkit
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 3e7b24a03cb84255d05d8262fdce814731ba2cf5..3184fa1fb2cbd3862162a23e30a9994606b4b85b 100644
index 4672bcf648751b813cb22853251c535c5adaa13f..fb7248785d466d6c996dc97ae2d301086e2e3d29 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1151,6 +1151,8 @@ public class PurpurWorldConfig {
@@ -1154,6 +1154,8 @@ public class PurpurWorldConfig {
public boolean snowGolemControllable = true;
public boolean snowGolemLeaveTrailWhenRidden = false;
public double snowGolemMaxHealth = 4.0D;
@@ -44,7 +44,7 @@ index 3e7b24a03cb84255d05d8262fdce814731ba2cf5..3184fa1fb2cbd3862162a23e30a99946
private void snowGolemSettings() {
snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable);
snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater);
@@ -1162,6 +1164,8 @@ public class PurpurWorldConfig {
@@ -1165,6 +1167,8 @@ public class PurpurWorldConfig {
set("mobs.snow_golem.attributes.max_health", oldValue);
}
snowGolemMaxHealth = getDouble("mobs.snow_golem.attributes.max_health", snowGolemMaxHealth);

View File

@@ -18,10 +18,10 @@ index c1b67d5dc5fd533fb2aa28a5c7d9dd87cc7412d8..9ce2527054f5163eae3d1216427378dc
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 3184fa1fb2cbd3862162a23e30a9994606b4b85b..7b48454ddf2d838e8c1d418f8218fbf9b1578d38 100644
index fb7248785d466d6c996dc97ae2d301086e2e3d29..283982b9676736b27afc152f0563e0731178e400 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -432,6 +432,7 @@ public class PurpurWorldConfig {
@@ -435,6 +435,7 @@ public class PurpurWorldConfig {
public boolean enderDragonControllable = true;
public double enderDragonMaxY = 320D;
public double enderDragonMaxHealth = 200.0D;
@@ -29,7 +29,7 @@ index 3184fa1fb2cbd3862162a23e30a9994606b4b85b..7b48454ddf2d838e8c1d418f8218fbf9
private void enderDragonSettings() {
enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable);
enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater);
@@ -447,6 +448,7 @@ public class PurpurWorldConfig {
@@ -450,6 +451,7 @@ public class PurpurWorldConfig {
set("mobs.ender_dragon.attributes.max_health", oldValue);
}
enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth);

View File

@@ -35,10 +35,10 @@ index ed3d78494735ceda14ad0ea23adeadc374f3b35e..a0d23b7e244e7df8a462b801dee18fd4
} else {
return InteractionResult.PASS;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 7b48454ddf2d838e8c1d418f8218fbf9b1578d38..0584304bceb4d4da8854265700f3528e91a99980 100644
index 283982b9676736b27afc152f0563e0731178e400..93a94161696bc7f7e2e02164c9d8b5895f94aa69 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -148,6 +148,11 @@ public class PurpurWorldConfig {
@@ -151,6 +151,11 @@ public class PurpurWorldConfig {
});
}

View File

@@ -18,10 +18,10 @@ index d089887030ac7c7a79abca97134ba9291e244059..4208833252a5b5c74d294dc3435869d7
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 0584304bceb4d4da8854265700f3528e91a99980..c21f24c3ecbde5dfd7a81f221e6e6ce157295660 100644
index 93a94161696bc7f7e2e02164c9d8b5895f94aa69..805434c62063cfa9b26d92431fa62b10504ad0f8 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -148,6 +148,11 @@ public class PurpurWorldConfig {
@@ -151,6 +151,11 @@ public class PurpurWorldConfig {
});
}

View File

@@ -148,10 +148,10 @@ index 939aca929038b90738c9b78c2fc3611088b18e72..2fe9daf2a1a4a007c983115503915981
protected final float explosionResistance;
protected final boolean isRandomlyTicking;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index c21f24c3ecbde5dfd7a81f221e6e6ce157295660..2611af43afada9bd46bed7cd342e818afeb95c1c 100644
index 805434c62063cfa9b26d92431fa62b10504ad0f8..8e6bc5815e9624c6eb24e66cdba6d95989de4aae 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -94,6 +94,68 @@ public class PurpurWorldConfig {
@@ -97,6 +97,68 @@ public class PurpurWorldConfig {
armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight);
}

View File

@@ -25,10 +25,10 @@ index 6c769141376f6995d6572d5e3cf3a999ff954e82..ccc034d345d4c7ea1b8317023e2e410d
// CraftBukkit start - Call death event // Paper start - call advancement triggers with correct entity equipment
org.bukkit.event.entity.EntityDeathEvent deathEvent = CraftEventFactory.callEntityDeathEvent(this, this.drops, () -> {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 2611af43afada9bd46bed7cd342e818afeb95c1c..85fdd1712640b4b3f87810294f49f1565e6fd750 100644
index 8e6bc5815e9624c6eb24e66cdba6d95989de4aae..ec5821991becc54f132b97806000759268558450 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -94,6 +94,11 @@ public class PurpurWorldConfig {
@@ -97,6 +97,11 @@ public class PurpurWorldConfig {
armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight);
}

View File

@@ -28,10 +28,10 @@ index f33977d95b6db473be4f95075ba99caf90ad0220..56dc04d8875971ee9a5d077a695509af
return stack.isEmpty() ? new ItemStack(Items.BUCKET) : stack;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 85fdd1712640b4b3f87810294f49f1565e6fd750..f6292685e1a198d6e8ec4a1c77343a8d76565078 100644
index ec5821991becc54f132b97806000759268558450..9b38a406705f1733827a4b74e304c2e5d370ac60 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -95,8 +95,10 @@ public class PurpurWorldConfig {
@@ -98,8 +98,10 @@ public class PurpurWorldConfig {
}
public boolean disableDropsOnCrammingDeath = false;

View File

@@ -18,10 +18,10 @@ index 1b31b32d42eeb54680b902cd7e82d10ba7daa5d0..5be708a76642d4133757c5d181b3c541
if (!this.level.isClientSide && this.pickup == AbstractArrow.Pickup.ALLOWED) {
this.spawnAtLocation(this.getPickupItem(), 0.1F);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index f6292685e1a198d6e8ec4a1c77343a8d76565078..ca4c6ed817cb2b4b53ea48ecc962564d3576d7d9 100644
index 9b38a406705f1733827a4b74e304c2e5d370ac60..3aa9497d07d58cc5a1b3e66943a313ad05364ff1 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -96,9 +96,11 @@ public class PurpurWorldConfig {
@@ -99,9 +99,11 @@ public class PurpurWorldConfig {
public boolean disableDropsOnCrammingDeath = false;
public boolean milkCuresBadOmen = true;

View File

@@ -38,10 +38,10 @@ index d86aeb3f91a01206e7cb13caae3e5c571a73952c..ad47267eb6797e1591841cb7a576fb65
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index ca4c6ed817cb2b4b53ea48ecc962564d3576d7d9..9c7f40cb3af6dd288ff296b5db503da53b789f78 100644
index 3aa9497d07d58cc5a1b3e66943a313ad05364ff1..47c1ec44380a90f7f7fb0b6fd6f287796f536a5e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -419,6 +419,7 @@ public class PurpurWorldConfig {
@@ -422,6 +422,7 @@ public class PurpurWorldConfig {
public boolean creeperControllable = true;
public double creeperMaxHealth = 20.0D;
public double creeperChargedChance = 0.0D;
@@ -49,7 +49,7 @@ index ca4c6ed817cb2b4b53ea48ecc962564d3576d7d9..9c7f40cb3af6dd288ff296b5db503da5
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -430,6 +431,7 @@ public class PurpurWorldConfig {
@@ -433,6 +434,7 @@ public class PurpurWorldConfig {
}
creeperMaxHealth = getDouble("mobs.creeper.attributes.max_health", creeperMaxHealth);
creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance);
@@ -57,7 +57,7 @@ index ca4c6ed817cb2b4b53ea48ecc962564d3576d7d9..9c7f40cb3af6dd288ff296b5db503da5
}
public boolean dolphinRidable = false;
@@ -536,6 +538,7 @@ public class PurpurWorldConfig {
@@ -539,6 +541,7 @@ public class PurpurWorldConfig {
public boolean endermanRidableInWater = false;
public boolean endermanControllable = true;
public double endermanMaxHealth = 40.0D;
@@ -65,7 +65,7 @@ index ca4c6ed817cb2b4b53ea48ecc962564d3576d7d9..9c7f40cb3af6dd288ff296b5db503da5
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -546,6 +549,7 @@ public class PurpurWorldConfig {
@@ -549,6 +552,7 @@ public class PurpurWorldConfig {
set("mobs.enderman.attributes.max_health", oldValue);
}
endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth);

View File

@@ -54,10 +54,10 @@ index 8bfa041297db79e8f1452ce7059d1536a6e2854f..615fdf709b81693cced9a208cc96a33f
this.goalSelector.addGoal(8, new WaterAvoidingRandomStrollGoal(this, 0.35D));
this.goalSelector.addGoal(9, new InteractGoal(this, Player.class, 3.0F, 1.0F));
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 9c7f40cb3af6dd288ff296b5db503da53b789f78..3708e26b4ed8766a835decff5c97b6f687391bed 100644
index 47c1ec44380a90f7f7fb0b6fd6f287796f536a5e..bc8faf0d8bb6c92e667bf61d5efb459121afe180 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1408,6 +1408,7 @@ public class PurpurWorldConfig {
@@ -1411,6 +1411,7 @@ public class PurpurWorldConfig {
public double villagerMaxHealth = 20.0D;
public int villagerBrainTicks = 1;
public boolean villagerUseBrainTicksOnlyWhenLagging = true;
@@ -65,7 +65,7 @@ index 9c7f40cb3af6dd288ff296b5db503da53b789f78..3708e26b4ed8766a835decff5c97b6f6
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1420,6 +1421,7 @@ public class PurpurWorldConfig {
@@ -1423,6 +1424,7 @@ public class PurpurWorldConfig {
villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth);
villagerBrainTicks = getInt("mobs.villager.brain-ticks", villagerBrainTicks);
villagerUseBrainTicksOnlyWhenLagging = getBoolean("mobs.villager.use-brain-ticks-only-when-lagging", villagerUseBrainTicksOnlyWhenLagging);
@@ -73,7 +73,7 @@ index 9c7f40cb3af6dd288ff296b5db503da53b789f78..3708e26b4ed8766a835decff5c97b6f6
}
public boolean vindicatorRidable = false;
@@ -1442,6 +1444,7 @@ public class PurpurWorldConfig {
@@ -1445,6 +1447,7 @@ public class PurpurWorldConfig {
public boolean wanderingTraderRidableInWater = false;
public boolean wanderingTraderControllable = true;
public double wanderingTraderMaxHealth = 20.0D;
@@ -81,7 +81,7 @@ index 9c7f40cb3af6dd288ff296b5db503da53b789f78..3708e26b4ed8766a835decff5c97b6f6
private void wanderingTraderSettings() {
wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable);
wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater);
@@ -1452,6 +1455,7 @@ public class PurpurWorldConfig {
@@ -1455,6 +1458,7 @@ public class PurpurWorldConfig {
set("mobs.wandering_trader.attributes.max_health", oldValue);
}
wanderingTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", wanderingTraderMaxHealth);

View File

@@ -49,10 +49,10 @@ index 615fdf709b81693cced9a208cc96a33fb686c9a1..8756e0d8d0077308f5fb74bf45fe093d
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 3708e26b4ed8766a835decff5c97b6f687391bed..a361faa6723067fb0f9bac1fc9036d92cb0cd9ef 100644
index bc8faf0d8bb6c92e667bf61d5efb459121afe180..489a51fb7a80b1e576b5c6d23c41cbe6a7254251 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1409,6 +1409,7 @@ public class PurpurWorldConfig {
@@ -1412,6 +1412,7 @@ public class PurpurWorldConfig {
public int villagerBrainTicks = 1;
public boolean villagerUseBrainTicksOnlyWhenLagging = true;
public boolean villagerFollowEmeraldBlock = false;
@@ -60,7 +60,7 @@ index 3708e26b4ed8766a835decff5c97b6f687391bed..a361faa6723067fb0f9bac1fc9036d92
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1422,6 +1423,7 @@ public class PurpurWorldConfig {
@@ -1425,6 +1426,7 @@ public class PurpurWorldConfig {
villagerBrainTicks = getInt("mobs.villager.brain-ticks", villagerBrainTicks);
villagerUseBrainTicksOnlyWhenLagging = getBoolean("mobs.villager.use-brain-ticks-only-when-lagging", villagerUseBrainTicksOnlyWhenLagging);
villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock);
@@ -68,7 +68,7 @@ index 3708e26b4ed8766a835decff5c97b6f687391bed..a361faa6723067fb0f9bac1fc9036d92
}
public boolean vindicatorRidable = false;
@@ -1445,6 +1447,7 @@ public class PurpurWorldConfig {
@@ -1448,6 +1450,7 @@ public class PurpurWorldConfig {
public boolean wanderingTraderControllable = true;
public double wanderingTraderMaxHealth = 20.0D;
public boolean wanderingTraderFollowEmeraldBlock = false;
@@ -76,7 +76,7 @@ index 3708e26b4ed8766a835decff5c97b6f687391bed..a361faa6723067fb0f9bac1fc9036d92
private void wanderingTraderSettings() {
wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable);
wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater);
@@ -1456,6 +1459,7 @@ public class PurpurWorldConfig {
@@ -1459,6 +1462,7 @@ public class PurpurWorldConfig {
}
wanderingTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", wanderingTraderMaxHealth);
wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock);

View File

@@ -81,10 +81,10 @@ index ac33ba631f4b0ae0e08bff5748440ef5b76c2117..29068ca2df90ab0351b91cd0aa3e224c
@Override
protected void beforeDestroyingBlock(LevelAccessor world, BlockPos pos, BlockState state, BlockPos source) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index a361faa6723067fb0f9bac1fc9036d92cb0cd9ef..91c4776aab25fc42ff41a215015493f782e4d78c 100644
index 489a51fb7a80b1e576b5c6d23c41cbe6a7254251..69f249b8647542c1502cf2407ec7737b09566ebb 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -224,6 +224,13 @@ public class PurpurWorldConfig {
@@ -227,6 +227,13 @@ public class PurpurWorldConfig {
farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow);
}
@@ -98,7 +98,7 @@ index a361faa6723067fb0f9bac1fc9036d92cb0cd9ef..91c4776aab25fc42ff41a215015493f7
public boolean signRightClickEdit = false;
private void signSettings() {
signRightClickEdit = getBoolean("blocks.sign.right-click-edit", signRightClickEdit);
@@ -238,6 +245,13 @@ public class PurpurWorldConfig {
@@ -241,6 +248,13 @@ public class PurpurWorldConfig {
turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts);
}

View File

@@ -18,10 +18,10 @@ index d96c52a55cad5f6127b17e1307fe341e8bdd1335..87643b76ea46ddfe0281e8a97a5b0996
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 91c4776aab25fc42ff41a215015493f782e4d78c..25e377ce3d916d931143bc54585d12c39e31f581 100644
index 69f249b8647542c1502cf2407ec7737b09566ebb..bfd7592780565f851a0d3da0c4531eb7a50a4b3c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -226,9 +226,13 @@ public class PurpurWorldConfig {
@@ -229,9 +229,13 @@ public class PurpurWorldConfig {
public boolean lavaInfinite = false;
public int lavaInfiniteRequiredSources = 2;

View File

@@ -31,10 +31,10 @@ index 74f14215280005a4d6fb35a77e2f1c4858250f2f..e0ea8b1b3ccde9616a721d677a8217b2
return 0;
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 25e377ce3d916d931143bc54585d12c39e31f581..12ac9c973d39713b62106be8040a09b094ba38f4 100644
index bfd7592780565f851a0d3da0c4531eb7a50a4b3c..699fb31a9ce01e88b0a1fb2af99b74ec64856eb0 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -172,6 +172,8 @@ public class PurpurWorldConfig {
@@ -175,6 +175,8 @@ public class PurpurWorldConfig {
public boolean idleTimeoutTargetPlayer = true;
public int playerSpawnInvulnerableTicks = 60;
public boolean playerInvulnerableWhileAcceptingResourcePack = false;
@@ -43,7 +43,7 @@ index 25e377ce3d916d931143bc54585d12c39e31f581..12ac9c973d39713b62106be8040a09b0
private void playerSettings() {
if (PurpurConfig.version < 19) {
boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer);
@@ -185,6 +187,8 @@ public class PurpurWorldConfig {
@@ -188,6 +190,8 @@ public class PurpurWorldConfig {
idleTimeoutTargetPlayer = getBoolean("gameplay-mechanics.player.idle-timeout.mobs-target", idleTimeoutTargetPlayer);
playerSpawnInvulnerableTicks = getInt("gameplay-mechanics.player.spawn-invulnerable-ticks", playerSpawnInvulnerableTicks);
playerInvulnerableWhileAcceptingResourcePack = getBoolean("gameplay-mechanics.player.invulnerable-while-accepting-resource-pack", playerInvulnerableWhileAcceptingResourcePack);

View File

@@ -31,10 +31,10 @@ index bc19439abb1cbf548b1eda2a6527d9e825ea34ab..40c716bd22d54f7f669d570d1bebcb18
protected void updateSwingTime() {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 12ac9c973d39713b62106be8040a09b094ba38f4..7944d3ed8c17ee80ea9913188fb45feda274e036 100644
index 699fb31a9ce01e88b0a1fb2af99b74ec64856eb0..dfd0af9ed3c8bffc08f6fd0f39885db6f26aa901 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -97,10 +97,14 @@ public class PurpurWorldConfig {
@@ -100,10 +100,14 @@ public class PurpurWorldConfig {
public boolean disableDropsOnCrammingDeath = false;
public boolean milkCuresBadOmen = true;
public double tridentLoyaltyVoidReturnHeight = 0.0D;

View File

@@ -43,10 +43,10 @@ index baa7e055d8ee4a153842128b07984b9f6deac6ca..014dd3aa8a7313d978d4781a1b7c6f53
// CraftBukkit start
Level world = pointer.getLevel();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 7944d3ed8c17ee80ea9913188fb45feda274e036..3481c204c118d3990b158e9dbd1313e37e701184 100644
index dfd0af9ed3c8bffc08f6fd0f39885db6f26aa901..61e0ab842e2e0a5856a39cb3a2a0c7837b02353e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -227,6 +227,11 @@ public class PurpurWorldConfig {
@@ -230,6 +230,11 @@ public class PurpurWorldConfig {
});
}

View File

@@ -17,10 +17,10 @@ index eb753323f67badb1bed28405c07b03078e322b44..c9ce0f1f798ee73e985798e7e7271aa5
} else {
return Boat.Status.IN_AIR;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 3481c204c118d3990b158e9dbd1313e37e701184..dacd070f4b0925a4c8649f5e8caafd01d00cba8f 100644
index 61e0ab842e2e0a5856a39cb3a2a0c7837b02353e..6f888c569f6054e2e1dbf550d914476fe062417f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -94,12 +94,14 @@ public class PurpurWorldConfig {
@@ -97,12 +97,14 @@ public class PurpurWorldConfig {
armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight);
}

View File

@@ -73,10 +73,10 @@ index 22925b2f44fc510832ef07290d3109f0394f7d30..4afa30753a90d9bbd3c71b21cb4a8dea
public static Map.Entry<EquipmentSlot, ItemStack> getRandomItemWith(Enchantment enchantment, LivingEntity entity) {
return getRandomItemWith(enchantment, entity, (stack) -> {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index dacd070f4b0925a4c8649f5e8caafd01d00cba8f..0edb6ec9678f0fc8a1236622490ff67dfb93dd55 100644
index 6f888c569f6054e2e1dbf550d914476fe062417f..74244b61ef528df49f2f71a3d52522b397d6e7e1 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -94,6 +94,7 @@ public class PurpurWorldConfig {
@@ -97,6 +97,7 @@ public class PurpurWorldConfig {
armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight);
}
@@ -84,7 +84,7 @@ index dacd070f4b0925a4c8649f5e8caafd01d00cba8f..0edb6ec9678f0fc8a1236622490ff67d
public boolean boatEjectPlayersOnLand = false;
public boolean disableDropsOnCrammingDeath = false;
public boolean milkCuresBadOmen = true;
@@ -101,6 +102,7 @@ public class PurpurWorldConfig {
@@ -104,6 +105,7 @@ public class PurpurWorldConfig {
public double voidDamageHeight = -64.0D;
public double voidDamageDealt = 4.0D;
private void miscGameplayMechanicsSettings() {

View File

@@ -99,10 +99,10 @@ index 998758be827efbcb7693ed36ab1dffc0ef0369bf..5beaafec0759543d3bddf99028c97d0d
entityhuman.startAutoSpinAttack(20);
if (entityhuman.isOnGround()) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 0edb6ec9678f0fc8a1236622490ff67dfb93dd55..3a15647c0ddc5a234f1cea5778e336caea3f3f24 100644
index 74244b61ef528df49f2f71a3d52522b397d6e7e1..aecaf3bfa1153caa66153a560575336b844e5e55 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -111,6 +111,19 @@ public class PurpurWorldConfig {
@@ -114,6 +114,19 @@ public class PurpurWorldConfig {
voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt);
}

View File

@@ -128,10 +128,10 @@ index fea44ba6a6584b4a510af6a58cab07eecec6b68b..f3bf5199bc7ddf8a3d0dc67a184e7690
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 3a15647c0ddc5a234f1cea5778e336caea3f3f24..fb1d389cdfa47726718552fd92cf0035858792df 100644
index aecaf3bfa1153caa66153a560575336b844e5e55..298289ec1f000391cec03734f238f2fb558a8a50 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -124,6 +124,49 @@ public class PurpurWorldConfig {
@@ -127,6 +127,49 @@ public class PurpurWorldConfig {
elytraDamagePerTridentBoost = getInt("gameplay-mechanics.elytra.damage-per-boost.trident", elytraDamagePerTridentBoost);
}

View File

@@ -167,10 +167,10 @@ index bc3ffb8867d5f7c2fa548d31256341d388bf8112..6c1dd723373f9b1b920548de85aeb6ce
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index fb1d389cdfa47726718552fd92cf0035858792df..04e27b028782b46db7fc88d1ba14a4da2ba6a3f9 100644
index 298289ec1f000391cec03734f238f2fb558a8a50..fee17cd019a98e685a2783387fee2061870fc066 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -574,6 +574,9 @@ public class PurpurWorldConfig {
@@ -577,6 +577,9 @@ public class PurpurWorldConfig {
public boolean drownedControllable = true;
public double drownedMaxHealth = 20.0D;
public double drownedSpawnReinforcements = 0.1D;
@@ -180,7 +180,7 @@ index fb1d389cdfa47726718552fd92cf0035858792df..04e27b028782b46db7fc88d1ba14a4da
private void drownedSettings() {
drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable);
drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater);
@@ -585,6 +588,9 @@ public class PurpurWorldConfig {
@@ -588,6 +591,9 @@ public class PurpurWorldConfig {
}
drownedMaxHealth = getDouble("mobs.drowned.attributes.max_health", drownedMaxHealth);
drownedSpawnReinforcements = getDouble("mobs.drowned.attributes.spawn_reinforcements", drownedSpawnReinforcements);
@@ -190,7 +190,7 @@ index fb1d389cdfa47726718552fd92cf0035858792df..04e27b028782b46db7fc88d1ba14a4da
}
public boolean elderGuardianRidable = false;
@@ -833,6 +839,9 @@ public class PurpurWorldConfig {
@@ -836,6 +842,9 @@ public class PurpurWorldConfig {
public boolean huskControllable = true;
public double huskMaxHealth = 20.0D;
public double huskSpawnReinforcements = 0.1D;
@@ -200,7 +200,7 @@ index fb1d389cdfa47726718552fd92cf0035858792df..04e27b028782b46db7fc88d1ba14a4da
private void huskSettings() {
huskRidable = getBoolean("mobs.husk.ridable", huskRidable);
huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater);
@@ -844,6 +853,9 @@ public class PurpurWorldConfig {
@@ -847,6 +856,9 @@ public class PurpurWorldConfig {
}
huskMaxHealth = getDouble("mobs.husk.attributes.max_health", huskMaxHealth);
huskSpawnReinforcements = getDouble("mobs.husk.attributes.spawn_reinforcements", huskSpawnReinforcements);
@@ -210,7 +210,7 @@ index fb1d389cdfa47726718552fd92cf0035858792df..04e27b028782b46db7fc88d1ba14a4da
}
public boolean illusionerRidable = false;
@@ -1653,6 +1665,9 @@ public class PurpurWorldConfig {
@@ -1656,6 +1668,9 @@ public class PurpurWorldConfig {
public boolean zombieControllable = true;
public double zombieMaxHealth = 20.0D;
public double zombieSpawnReinforcements = 0.1D;
@@ -220,7 +220,7 @@ index fb1d389cdfa47726718552fd92cf0035858792df..04e27b028782b46db7fc88d1ba14a4da
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -1664,6 +1679,9 @@ public class PurpurWorldConfig {
@@ -1667,6 +1682,9 @@ public class PurpurWorldConfig {
}
zombieMaxHealth = getDouble("mobs.zombie.attributes.max_health", zombieMaxHealth);
zombieSpawnReinforcements = getDouble("mobs.zombie.attributes.spawn_reinforcements", zombieSpawnReinforcements);
@@ -230,7 +230,7 @@ index fb1d389cdfa47726718552fd92cf0035858792df..04e27b028782b46db7fc88d1ba14a4da
}
public boolean zombieHorseRidableInWater = false;
@@ -1698,6 +1716,9 @@ public class PurpurWorldConfig {
@@ -1701,6 +1719,9 @@ public class PurpurWorldConfig {
public boolean zombieVillagerControllable = true;
public double zombieVillagerMaxHealth = 20.0D;
public double zombieVillagerSpawnReinforcements = 0.1D;
@@ -240,7 +240,7 @@ index fb1d389cdfa47726718552fd92cf0035858792df..04e27b028782b46db7fc88d1ba14a4da
private void zombieVillagerSettings() {
zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable);
zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater);
@@ -1709,6 +1730,9 @@ public class PurpurWorldConfig {
@@ -1712,6 +1733,9 @@ public class PurpurWorldConfig {
}
zombieVillagerMaxHealth = getDouble("mobs.zombie_villager.attributes.max_health", zombieVillagerMaxHealth);
zombieVillagerSpawnReinforcements = getDouble("mobs.zombie_villager.attributes.spawn_reinforcements", zombieVillagerSpawnReinforcements);
@@ -250,7 +250,7 @@ index fb1d389cdfa47726718552fd92cf0035858792df..04e27b028782b46db7fc88d1ba14a4da
}
public boolean zombifiedPiglinRidable = false;
@@ -1716,6 +1740,9 @@ public class PurpurWorldConfig {
@@ -1719,6 +1743,9 @@ public class PurpurWorldConfig {
public boolean zombifiedPiglinControllable = true;
public double zombifiedPiglinMaxHealth = 20.0D;
public double zombifiedPiglinSpawnReinforcements = 0.0D;
@@ -260,7 +260,7 @@ index fb1d389cdfa47726718552fd92cf0035858792df..04e27b028782b46db7fc88d1ba14a4da
private void zombifiedPiglinSettings() {
zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable);
zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater);
@@ -1727,5 +1754,8 @@ public class PurpurWorldConfig {
@@ -1730,5 +1757,8 @@ public class PurpurWorldConfig {
}
zombifiedPiglinMaxHealth = getDouble("mobs.zombified_piglin.attributes.max_health", zombifiedPiglinMaxHealth);
zombifiedPiglinSpawnReinforcements = getDouble("mobs.zombified_piglin.attributes.spawn_reinforcements", zombifiedPiglinSpawnReinforcements);

View File

@@ -258,10 +258,10 @@ index a3b871797c3e006f66978a73da01fede52fc8c49..9c82953b45471a40faea41f164feabbd
private float speed = 0.1F;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 04e27b028782b46db7fc88d1ba14a4da2ba6a3f9..4fad53692a12bf47dc7074df1b3956e81ccdab30 100644
index fee17cd019a98e685a2783387fee2061870fc066..1c55bd66f132c93dc0e2aa09cb4c52cfc5b4715e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1051,6 +1051,9 @@ public class PurpurWorldConfig {
@@ -1054,6 +1054,9 @@ public class PurpurWorldConfig {
public String phantomAttackDamage = "6 + size";
public Map<Integer, Double> phantomMaxHealthCache = new HashMap<>();
public Map<Integer, Double> phantomAttackDamageCache = new HashMap<>();
@@ -271,7 +271,7 @@ index 04e27b028782b46db7fc88d1ba14a4da2ba6a3f9..4fad53692a12bf47dc7074df1b3956e8
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -1072,6 +1075,9 @@ public class PurpurWorldConfig {
@@ -1075,6 +1078,9 @@ public class PurpurWorldConfig {
phantomAttackDamage = getString("mobs.phantom.attributes.attack_damage", phantomAttackDamage);
phantomMaxHealthCache.clear();
phantomAttackDamageCache.clear();

View File

@@ -48,10 +48,10 @@ index 6b5c31470499e25d01936106839c2fff21b113c8..cbf4a7ca1f09d156eed12030fafb7240
for (int l = 0; l < k; ++l) {
// Paper start
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 4fad53692a12bf47dc7074df1b3956e81ccdab30..9903ab606d08d51643dfbf45e48a2296f312e0de 100644
index 1c55bd66f132c93dc0e2aa09cb4c52cfc5b4715e..3f2d97e54fa79c0143459a88d9a8a63757883fd7 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1054,6 +1054,18 @@ public class PurpurWorldConfig {
@@ -1057,6 +1057,18 @@ public class PurpurWorldConfig {
public double phantomAttackedByCrystalRadius = 0.0D;
public float phantomAttackedByCrystalDamage = 1.0F;
public double phantomOrbitCrystalRadius = 0.0D;
@@ -70,7 +70,7 @@ index 4fad53692a12bf47dc7074df1b3956e81ccdab30..9903ab606d08d51643dfbf45e48a2296
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -1078,6 +1090,18 @@ public class PurpurWorldConfig {
@@ -1081,6 +1093,18 @@ public class PurpurWorldConfig {
phantomAttackedByCrystalRadius = getDouble("mobs.phantom.attacked-by-crystal-range", phantomAttackedByCrystalRadius);
phantomAttackedByCrystalDamage = (float) getDouble("mobs.phantom.attacked-by-crystal-damage", phantomAttackedByCrystalDamage);
phantomOrbitCrystalRadius = getDouble("mobs.phantom.orbit-crystal-radius", phantomOrbitCrystalRadius);

View File

@@ -27,10 +27,10 @@ index 654a859a37bf991c7a7fa8a44a3d20f8feb223db..e1d274a9be856f6fa5be00958c35b7d7
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 9903ab606d08d51643dfbf45e48a2296f312e0de..5b393a3cad84a7618bf481be9480b095a561f155 100644
index 3f2d97e54fa79c0143459a88d9a8a63757883fd7..b1aef35ae90d698d67f06053f5ace5721f5b2cde 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -287,6 +287,22 @@ public class PurpurWorldConfig {
@@ -290,6 +290,22 @@ public class PurpurWorldConfig {
});
}

View File

@@ -18,10 +18,10 @@ index c2f3d3a09327e7cb7d3167609eb3ce68eadf6443..12b25aec1167620ed7048c0c8631b0b5
public static boolean canSetSpawn(Level world) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 5b393a3cad84a7618bf481be9480b095a561f155..8cef70934821898e8445edc247adf718e224ec3c 100644
index b1aef35ae90d698d67f06053f5ace5721f5b2cde..4180a1215daff7383acd9c77adb4e813ed9a4359 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -324,6 +324,22 @@ public class PurpurWorldConfig {
@@ -327,6 +327,22 @@ public class PurpurWorldConfig {
lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether);
}

View File

@@ -95,10 +95,10 @@ index 1e4629de69b762f89efe54a93f28292d3657bccb..fe97b5b327af1189b166243c42be9989
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 8cef70934821898e8445edc247adf718e224ec3c..16639d1ec58413298c7e12d64838d21f8d5fdedd 100644
index 4180a1215daff7383acd9c77adb4e813ed9a4359..74bdd1a79dd3a911d3d4fb4b7a31454f64aa274a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -124,6 +124,11 @@ public class PurpurWorldConfig {
@@ -127,6 +127,11 @@ public class PurpurWorldConfig {
elytraDamagePerTridentBoost = getInt("gameplay-mechanics.elytra.damage-per-boost.trident", elytraDamagePerTridentBoost);
}

View File

@@ -56,10 +56,10 @@ index dc6177e8d5c6f6615ccbfa55a2e0a8c891fc6b52..d75a3d62eeb151c2451b20feb7fd088c
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 16639d1ec58413298c7e12d64838d21f8d5fdedd..e44b6b03e90a52f5b3e411fb78a3050287a23431 100644
index 74bdd1a79dd3a911d3d4fb4b7a31454f64aa274a..68d87cd69a830a4b5e15b31a43ab0a80f07fe7cc 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -243,6 +243,7 @@ public class PurpurWorldConfig {
@@ -246,6 +246,7 @@ public class PurpurWorldConfig {
public boolean playerInvulnerableWhileAcceptingResourcePack = false;
public String playerDeathExpDropEquation = "expLevel * 7";
public int playerDeathExpDropMax = 100;
@@ -67,7 +67,7 @@ index 16639d1ec58413298c7e12d64838d21f8d5fdedd..e44b6b03e90a52f5b3e411fb78a30502
private void playerSettings() {
if (PurpurConfig.version < 19) {
boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer);
@@ -258,6 +259,7 @@ public class PurpurWorldConfig {
@@ -261,6 +262,7 @@ public class PurpurWorldConfig {
playerInvulnerableWhileAcceptingResourcePack = getBoolean("gameplay-mechanics.player.invulnerable-while-accepting-resource-pack", playerInvulnerableWhileAcceptingResourcePack);
playerDeathExpDropEquation = getString("gameplay-mechanics.player.exp-dropped-on-death.equation", playerDeathExpDropEquation);
playerDeathExpDropMax = getInt("gameplay-mechanics.player.exp-dropped-on-death.maximum", playerDeathExpDropMax);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Squid EAR immunity
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index e44b6b03e90a52f5b3e411fb78a3050287a23431..0c937d5b07101735b43c15398b1c8b2e45dcec66 100644
index 68d87cd69a830a4b5e15b31a43ab0a80f07fe7cc..0479eb38b18712028fd255e2749997d8f6008a7a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1430,6 +1430,7 @@ public class PurpurWorldConfig {
@@ -1433,6 +1433,7 @@ public class PurpurWorldConfig {
public boolean squidRidable = false;
public boolean squidControllable = true;
public double squidMaxHealth = 10.0D;
@@ -16,7 +16,7 @@ index e44b6b03e90a52f5b3e411fb78a3050287a23431..0c937d5b07101735b43c15398b1c8b2e
private void squidSettings() {
squidRidable = getBoolean("mobs.squid.ridable", squidRidable);
squidControllable = getBoolean("mobs.squid.controllable", squidControllable);
@@ -1439,6 +1440,7 @@ public class PurpurWorldConfig {
@@ -1442,6 +1443,7 @@ public class PurpurWorldConfig {
set("mobs.squid.attributes.max_health", oldValue);
}
squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth);

View File

@@ -53,10 +53,10 @@ index 9c82953b45471a40faea41f164feabbd2af02984..82d56a6968f3bbea5a2d32c2a7a84a8b
list.sort(Comparator.comparing((Entity e) -> { return e.getY(); }).reversed()); // CraftBukkit - decompile error
Iterator iterator = list.iterator();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 0c937d5b07101735b43c15398b1c8b2e45dcec66..2da33e0b656b0265bcfdd814b53e132cb88b0dee 100644
index 0479eb38b18712028fd255e2749997d8f6008a7a..feed341e67e3580e13d5c3c705f3aeb87d8a9031 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1105,6 +1105,9 @@ public class PurpurWorldConfig {
@@ -1108,6 +1108,9 @@ public class PurpurWorldConfig {
public int phantomSpawnOverheadRadius = 10;
public int phantomSpawnMinPerAttempt = 1;
public int phantomSpawnMaxPerAttempt = -1;
@@ -66,7 +66,7 @@ index 0c937d5b07101735b43c15398b1c8b2e45dcec66..2da33e0b656b0265bcfdd814b53e132c
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -1141,6 +1144,9 @@ public class PurpurWorldConfig {
@@ -1144,6 +1147,9 @@ public class PurpurWorldConfig {
phantomSpawnOverheadRadius = getInt("mobs.phantom.spawn.overhead.radius", phantomSpawnOverheadRadius);
phantomSpawnMinPerAttempt = getInt("mobs.phantom.spawn.per-attempt.min", phantomSpawnMinPerAttempt);
phantomSpawnMaxPerAttempt = getInt("mobs.phantom.spawn.per-attempt.max", phantomSpawnMaxPerAttempt);

View File

@@ -18,10 +18,10 @@ index 2087b4a4fbc4076c5ec59aaf73f1367ffcd0ef7c..09a7af00e05f5369c1c87c51f121ed34
private boolean hungry() {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 2da33e0b656b0265bcfdd814b53e132cb88b0dee..d224e0586472779ee0205a939e2f0173fa0aed8d 100644
index feed341e67e3580e13d5c3c705f3aeb87d8a9031..37fc8cca1034949c63fce0edd662748f12982517 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1590,6 +1590,7 @@ public class PurpurWorldConfig {
@@ -1593,6 +1593,7 @@ public class PurpurWorldConfig {
public boolean villagerUseBrainTicksOnlyWhenLagging = true;
public boolean villagerFollowEmeraldBlock = false;
public boolean villagerCanBeLeashed = false;
@@ -29,7 +29,7 @@ index 2da33e0b656b0265bcfdd814b53e132cb88b0dee..d224e0586472779ee0205a939e2f0173
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1604,6 +1605,7 @@ public class PurpurWorldConfig {
@@ -1607,6 +1608,7 @@ public class PurpurWorldConfig {
villagerUseBrainTicksOnlyWhenLagging = getBoolean("mobs.villager.use-brain-ticks-only-when-lagging", villagerUseBrainTicksOnlyWhenLagging);
villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock);
villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed);

View File

@@ -17,10 +17,10 @@ index ee619590aa49323059947fbaee9e88d61df99789..deffa277272c34adb39d7c3e69e91502
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index d224e0586472779ee0205a939e2f0173fa0aed8d..6da346a866493631914f16ae2a4f60632fd1b897 100644
index 37fc8cca1034949c63fce0edd662748f12982517..addbc5f93292874717e5d394e9ebd7a7a0d69394 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -352,6 +352,11 @@ public class PurpurWorldConfig {
@@ -355,6 +355,11 @@ public class PurpurWorldConfig {
signRightClickEdit = getBoolean("blocks.sign.right-click-edit", signRightClickEdit);
}

View File

@@ -29,10 +29,10 @@ index d75a3d62eeb151c2451b20feb7fd088c513a2571..2b7d14e3de4520188c1701ac00044a64
event.setCancelled(itemstack == null);
this.level.getCraftServer().getPluginManager().callEvent(event);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 6da346a866493631914f16ae2a4f60632fd1b897..529193b0b6b0e2883688c3b1e3ca4bbe315267f8 100644
index addbc5f93292874717e5d394e9ebd7a7a0d69394..0f36235678efa995a10474e6f7652f1782e693d7 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -244,6 +244,7 @@ public class PurpurWorldConfig {
@@ -247,6 +247,7 @@ public class PurpurWorldConfig {
public String playerDeathExpDropEquation = "expLevel * 7";
public int playerDeathExpDropMax = 100;
public boolean teleportIfOutsideBorder = false;
@@ -40,7 +40,7 @@ index 6da346a866493631914f16ae2a4f60632fd1b897..529193b0b6b0e2883688c3b1e3ca4bbe
private void playerSettings() {
if (PurpurConfig.version < 19) {
boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer);
@@ -260,6 +261,7 @@ public class PurpurWorldConfig {
@@ -263,6 +264,7 @@ public class PurpurWorldConfig {
playerDeathExpDropEquation = getString("gameplay-mechanics.player.exp-dropped-on-death.equation", playerDeathExpDropEquation);
playerDeathExpDropMax = getInt("gameplay-mechanics.player.exp-dropped-on-death.maximum", playerDeathExpDropMax);
teleportIfOutsideBorder = getBoolean("gameplay-mechanics.player.teleport-if-outside-border", teleportIfOutsideBorder);

View File

@@ -22,10 +22,10 @@ index c3b8bce2d8e1dccb619267923964e06abfed8762..021550a0465dd1fd152b4c2e76301405
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 529193b0b6b0e2883688c3b1e3ca4bbe315267f8..5761da1c9f712c93b40bb9c67910fb6736150b10 100644
index 0f36235678efa995a10474e6f7652f1782e693d7..2ceefab6594d70e0585817d7bc386caed077c377 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1619,6 +1619,7 @@ public class PurpurWorldConfig {
@@ -1622,6 +1622,7 @@ public class PurpurWorldConfig {
public boolean vindicatorRidableInWater = false;
public boolean vindicatorControllable = true;
public double vindicatorMaxHealth = 24.0D;
@@ -33,7 +33,7 @@ index 529193b0b6b0e2883688c3b1e3ca4bbe315267f8..5761da1c9f712c93b40bb9c67910fb67
private void vindicatorSettings() {
vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable);
vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater);
@@ -1629,6 +1630,7 @@ public class PurpurWorldConfig {
@@ -1632,6 +1633,7 @@ public class PurpurWorldConfig {
set("mobs.vindicator.attributes.max_health", oldValue);
}
vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth);

View File

@@ -41,10 +41,10 @@ index 3d2b5f040715a0e4fac0e6786bd11a4d715330ce..9aef3cfd930594c1a2c92a02a18133d0
static void setEntityPokingOutOfBlock(BlockSource pointer, Entity entity, Direction direction) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 5761da1c9f712c93b40bb9c67910fb6736150b10..b44d77391406d9046c13d9aa4330b5649708ec70 100644
index 2ceefab6594d70e0585817d7bc386caed077c377..8137db4239792b114b7f5886a502e6a10176304f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -313,8 +313,10 @@ public class PurpurWorldConfig {
@@ -316,8 +316,10 @@ public class PurpurWorldConfig {
}
public boolean dispenserApplyCursedArmor = true;

View File

@@ -27,10 +27,10 @@ index c1ed57bae737fca803c2dd8666207dbffc6758c3..10cd589e427f847936f29e33edee3923
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index b44d77391406d9046c13d9aa4330b5649708ec70..fdad39e4a639c46e3ce15bbf77a854f532a4d655 100644
index 8137db4239792b114b7f5886a502e6a10176304f..f619f15d5f1e71af80b9df73d3632eeef38a9d5d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -296,6 +296,11 @@ public class PurpurWorldConfig {
@@ -299,6 +299,11 @@ public class PurpurWorldConfig {
});
}

View File

@@ -17,10 +17,10 @@ index b3e53f922a424a407adb0111c29c8be6f89f8115..b52245d881186f91174819326abb0cf9
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index fdad39e4a639c46e3ce15bbf77a854f532a4d655..1f1a4a2022ac3111c3761e51662de12ba28c32ec 100644
index f619f15d5f1e71af80b9df73d3632eeef38a9d5d..c5b921450f257785f0e089e3744cf309affe1f75 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -584,6 +584,7 @@ public class PurpurWorldConfig {
@@ -587,6 +587,7 @@ public class PurpurWorldConfig {
public float dolphinSpitSpeed = 1.0F;
public float dolphinSpitDamage = 2.0F;
public double dolphinMaxHealth = 10.0D;
@@ -28,7 +28,7 @@ index fdad39e4a639c46e3ce15bbf77a854f532a4d655..1f1a4a2022ac3111c3761e51662de12b
private void dolphinSettings() {
dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable);
dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable);
@@ -596,6 +597,7 @@ public class PurpurWorldConfig {
@@ -599,6 +600,7 @@ public class PurpurWorldConfig {
set("mobs.dolphin.attributes.max_health", oldValue);
}
dolphinMaxHealth = getDouble("mobs.dolphin.attributes.max_health", dolphinMaxHealth);

View File

@@ -54,10 +54,10 @@ index 68cc6f2a78a06293a29317fda72ab3ee79b3533a..cfb2e46b34b2982d6724f18214557fc8
+ // Purpur
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 1f1a4a2022ac3111c3761e51662de12ba28c32ec..8f15e760ab50bc8add8de89a4922e99613dfb076 100644
index c5b921450f257785f0e089e3744cf309affe1f75..5869ce00116c8293510d6318be2fcf322cabbf27 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1453,6 +1453,7 @@ public class PurpurWorldConfig {
@@ -1456,6 +1456,7 @@ public class PurpurWorldConfig {
public boolean squidControllable = true;
public double squidMaxHealth = 10.0D;
public boolean squidImmuneToEAR = true;
@@ -65,7 +65,7 @@ index 1f1a4a2022ac3111c3761e51662de12ba28c32ec..8f15e760ab50bc8add8de89a4922e996
private void squidSettings() {
squidRidable = getBoolean("mobs.squid.ridable", squidRidable);
squidControllable = getBoolean("mobs.squid.controllable", squidControllable);
@@ -1463,6 +1464,7 @@ public class PurpurWorldConfig {
@@ -1466,6 +1467,7 @@ public class PurpurWorldConfig {
}
squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth);
squidImmuneToEAR = getBoolean("mobs.squid.immune-to-EAR", squidImmuneToEAR);

View File

@@ -27,10 +27,10 @@ index d0e0811601684199206f4c6e23e077a2c987e86b..8873e947665a877255d92548f7e894f6
public float getBlockExplosionResistance(Explosion explosion, BlockGetter world, BlockPos pos, BlockState blockState, FluidState fluidState, float max) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 8f15e760ab50bc8add8de89a4922e99613dfb076..a4a590c456b5e3554605f3428f93d3a8e1bd5ba9 100644
index 5869ce00116c8293510d6318be2fcf322cabbf27..994c96e757b5d985844d3ee40f5b5611db3cab6c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -97,6 +97,7 @@ public class PurpurWorldConfig {
@@ -100,6 +100,7 @@ public class PurpurWorldConfig {
public boolean useBetterMending = false;
public boolean boatEjectPlayersOnLand = false;
public boolean disableDropsOnCrammingDeath = false;
@@ -38,7 +38,7 @@ index 8f15e760ab50bc8add8de89a4922e99613dfb076..a4a590c456b5e3554605f3428f93d3a8
public boolean milkCuresBadOmen = true;
public double tridentLoyaltyVoidReturnHeight = 0.0D;
public double voidDamageHeight = -64.0D;
@@ -105,6 +106,7 @@ public class PurpurWorldConfig {
@@ -108,6 +109,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 7c2c5b5205c7b422903fb6984f2b411d20189b22..c39e6ab8ffb850eb6ba783d237daad7e
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 a4a590c456b5e3554605f3428f93d3a8e1bd5ba9..88b49ee7171c0ad7be83eeac2aba2573e9707e4f 100644
index 994c96e757b5d985844d3ee40f5b5611db3cab6c..c32a57542363aeebde4cb1d43b1a460d6fa6b98c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1696,6 +1696,8 @@ public class PurpurWorldConfig {
@@ -1699,6 +1699,8 @@ public class PurpurWorldConfig {
public boolean witherControllable = true;
public double witherMaxY = 320D;
public double witherMaxHealth = 300.0D;
@@ -35,7 +35,7 @@ index a4a590c456b5e3554605f3428f93d3a8e1bd5ba9..88b49ee7171c0ad7be83eeac2aba2573
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -1711,6 +1713,8 @@ public class PurpurWorldConfig {
@@ -1714,6 +1716,8 @@ public class PurpurWorldConfig {
set("mobs.wither.attributes.max_health", oldValue);
}
witherMaxHealth = getDouble("mobs.wither.attributes.max_health", witherMaxHealth);

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Allow toggling special MobSpawners per world
In vanilla, these are all hardcoded on for world type 0 (overworld) and hardcoded off for every other world type. Default config behaviour matches this.
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 1140edb12dba385ff572b2cd2ab1a4b32eab2a1a..ea71f71918c19d03f584939d17901d2ffff7ad0e 100644
index 1952608dc00f3d47aa6fe3dfd54957ca064a9374..fe4909978c6b81f87a4585c8b42c1b71bf638830 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -505,7 +505,24 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -67,10 +67,10 @@ index daa7c4bd8a3f6c28f02b7117b061f0def29e3743..d4699d7eefafffd2d4e0a03d62d5094f
if (NaturalSpawner.isSpawnPositionOk(SpawnPlacements.Type.ON_GROUND, 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 88b49ee7171c0ad7be83eeac2aba2573e9707e4f..35529a02afe42607ebcd6ab532324561429ab14a 100644
index c32a57542363aeebde4cb1d43b1a460d6fa6b98c..80d1beff9f66619c37c992072a7046b6f4614f12 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -68,6 +68,12 @@ public class PurpurWorldConfig {
@@ -71,6 +71,12 @@ public class PurpurWorldConfig {
return PurpurConfig.config.getBoolean("world-settings." + worldName + "." + path, PurpurConfig.config.getBoolean("world-settings.default." + path));
}
@@ -83,7 +83,7 @@ index 88b49ee7171c0ad7be83eeac2aba2573e9707e4f..35529a02afe42607ebcd6ab532324561
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));
@@ -236,6 +242,21 @@ public class PurpurWorldConfig {
@@ -239,6 +245,21 @@ public class PurpurWorldConfig {
}
}

View File

@@ -52,10 +52,10 @@ index fa8fcdfea51a35e4a482d3d7b18159099da62706..38459f822e21601a167edab871b07a85
if (!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 35529a02afe42607ebcd6ab532324561429ab14a..7a222701ef7fcf2e89376774537833e1ea53f526 100644
index 80d1beff9f66619c37c992072a7046b6f4614f12..10be99da087706094e93144252ea666dc1238979 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -108,6 +108,7 @@ public class PurpurWorldConfig {
@@ -111,6 +111,7 @@ public class PurpurWorldConfig {
public double tridentLoyaltyVoidReturnHeight = 0.0D;
public double voidDamageHeight = -64.0D;
public double voidDamageDealt = 4.0D;
@@ -63,7 +63,7 @@ index 35529a02afe42607ebcd6ab532324561429ab14a..7a222701ef7fcf2e89376774537833e1
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 {
@@ -120,6 +121,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

@@ -3,344 +3,75 @@ From: Jason Penilla <11360596+jpenilla@users.noreply.github.com>
Date: Mon, 14 Sep 2020 10:09:05 -0700
Subject: [PATCH] Despawn rate config options per projectile type
Default values of -1 respect vanilla behaviour.
This patch's implementation has been removed in favor of Pufferfish's entity-timeouts.
The config remains for migration purposes.
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 bc01e5014e1355a225bdf5c47f2965290b45e2d2..63662eb3b3e4a79aea506df671721a83528340b9 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
@@ -63,7 +63,7 @@ public abstract class AbstractArrow extends Projectile {
protected int inGroundTime;
public AbstractArrow.Pickup pickup;
public int shakeTime;
- public int life;
+ // public int life; // Purpur - moved to Projectile
private double baseDamage;
public int knockback;
private SoundEvent soundEvent;
@@ -334,12 +334,28 @@ public abstract class AbstractArrow extends Projectile {
}
- protected void tickDespawn() {
- ++this.life;
- if (this.life >= (pickup == Pickup.CREATIVE_ONLY ? level.paperConfig().entities.spawning.creativeArrowDespawnRate.value() : (pickup == Pickup.DISALLOWED ? level.paperConfig().entities.spawning.nonPlayerArrowDespawnRate.value() : ((this instanceof ThrownTrident) ? level.spigotConfig.tridentDespawnRate : level.spigotConfig.arrowDespawnRate)))) { // Spigot // Paper - TODO: Extract this to init?
- this.discard();
+ // Purpur start
+ protected int getPurpurDespawnRate() {
+ if (pickup == Pickup.CREATIVE_ONLY) {
+ return level.paperConfig().entities.spawning.creativeArrowDespawnRate.value();
+ }
+ if (pickup == Pickup.DISALLOWED) {
+ return level.paperConfig().entities.spawning.nonPlayerArrowDespawnRate.value();
}
+ if (this instanceof ThrownTrident) {
+ return level.spigotConfig.tridentDespawnRate;
+ }
+ return level.spigotConfig.arrowDespawnRate;
+ }
+ // Arrow despawn ticking is handled differently
+ protected boolean shouldAlwaysTickDespawn() {
+ return false;
+ };
+ // Purpur end
diff --git a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java
index a125abc75ed2bbd905c8fdec442416a45264f531..e76c7e04274d8e94a3e5d6576e42364b2320a9ee 100644
--- a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java
+++ b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java
@@ -121,6 +121,22 @@ public class PufferfishConfig {
config.setComment(key, String.join("\n", comment), CommentType.BLOCK);
}
}
+
+ protected void tickDespawn() {
+ tickDespawnCounter(); // Purpur
}
private void resetPiercedEntities() {
diff --git a/src/main/java/net/minecraft/world/entity/projectile/DragonFireball.java b/src/main/java/net/minecraft/world/entity/projectile/DragonFireball.java
index 6afe37e42d88701af38df5793a9ea9d7d2cda5c5..1de27407c92d496715899fcafb3794df9f5ef6cd 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/DragonFireball.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/DragonFireball.java
@@ -81,4 +81,11 @@ public class DragonFireball extends AbstractHurtingProjectile {
protected boolean shouldBurn() {
return false;
}
+
+ // Purpur start
+ @Override
+ protected int getPurpurDespawnRate() {
+ return this.level.purpurConfig.dragonFireballDespawnRate;
+ }
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/world/entity/projectile/FireworkRocketEntity.java b/src/main/java/net/minecraft/world/entity/projectile/FireworkRocketEntity.java
index 5406925cd66f46ab8744123c670d72cea7bfc3a1..2bd14d74fa2fed39dad27b4417794f00eb068328 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/FireworkRocketEntity.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/FireworkRocketEntity.java
@@ -358,4 +358,11 @@ public class FireworkRocketEntity extends Projectile implements ItemSupplier {
public boolean isAttackable() {
return false;
}
+
+ // Purpur start
+ @Override
+ protected int getPurpurDespawnRate() {
+ return this.level.purpurConfig.fireworkDespawnRate;
+ }
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
index f5886a88fd98ede5e85a91eccccb05ac33eb40e2..f8378da592ecf22d8c7d5e07794a13992fd95f35 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
@@ -661,4 +661,11 @@ public class FishingHook extends Projectile {
private OpenWaterType() {}
}
+
+ // Purpur start
+ @Override
+ protected int getPurpurDespawnRate() {
+ return this.level.purpurConfig.fishingHookDespawnRate;
+ }
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/world/entity/projectile/LargeFireball.java b/src/main/java/net/minecraft/world/entity/projectile/LargeFireball.java
index 5237b699e000b4fed99be39b0a7e2daab9c8bf42..e69213b43c8aa5a7c04add7a87482d531fbf52d2 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/LargeFireball.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/LargeFireball.java
@@ -77,4 +77,11 @@ public class LargeFireball extends Fireball {
}
}
+
+ // Purpur start
+ @Override
+ protected int getPurpurDespawnRate() {
+ return this.level.purpurConfig.largeFireballDespawnRate;
+ }
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/world/entity/projectile/LlamaSpit.java b/src/main/java/net/minecraft/world/entity/projectile/LlamaSpit.java
index 1a945a32c3d3705a318ebca72a365931a8c001b7..c7fdcfae1ba823046fdfe78aa97b4a7ab20c086d 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/LlamaSpit.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/LlamaSpit.java
@@ -100,4 +100,11 @@ public class LlamaSpit extends Projectile {
this.setDeltaMovement(d0, d1, d2);
}
+
+ // Purpur start
+ @Override
+ protected int getPurpurDespawnRate() {
+ return this.level.purpurConfig.llamaSpitDespawnRate;
+ }
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
index 39ba6ca32b827daee300e1240bd76fd8f680ea02..0cfbb462e3c359d216e35a972e98585d17c65586 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
@@ -33,6 +33,7 @@ public abstract class Projectile extends Entity {
public Entity cachedOwner;
private boolean leftOwner;
private boolean hasBeenShot;
+ public int life; // Purpur - moved from AbstractArrow
// CraftBukkit start
protected boolean hitCancelled = false;
@@ -72,6 +73,23 @@ public abstract class Projectile extends Entity {
}
// Pufferfish start
+ // Purpur start
+ protected final void tickDespawnCounter() {
+ if (this.getPurpurDespawnRate() != -1) {
+ ++this.life;
+ if (this.life >= this.getPurpurDespawnRate()) {
+ this.discard();
+ }
+ }
+ }
+
+ protected abstract int getPurpurDespawnRate();
+
+ protected boolean shouldAlwaysTickDespawn() {
+ return true;
+ };
+ // Purpur end
+
public void setOwner(@Nullable Entity entity) {
if (entity != null) {
this.ownerUUID = entity.getUUID();
@@ -148,6 +166,8 @@ public abstract class Projectile extends Entity {
this.leftOwner = this.checkLeftOwner();
}
+ if (this.shouldAlwaysTickDespawn()) tickDespawnCounter(); // Purpur
+
super.tick();
}
diff --git a/src/main/java/net/minecraft/world/entity/projectile/ShulkerBullet.java b/src/main/java/net/minecraft/world/entity/projectile/ShulkerBullet.java
index 0e66418720ca833e676295edc7e28473ce9d9f23..b9ac126103c496c9b23a9f96d5ed1a058aebf667 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/ShulkerBullet.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/ShulkerBullet.java
@@ -62,6 +62,13 @@ public class ShulkerBullet extends Projectile {
projectileSource = (org.bukkit.entity.LivingEntity) owner.getBukkitEntity(); // CraftBukkit
}
+ // Purpur start
+ @Override
+ protected int getPurpurDespawnRate() {
+ return this.level.purpurConfig.shulkerBulletDespawnRate;
+ }
+ // Purpur end
+
// CraftBukkit start
public Entity getTarget() {
return this.finalTarget;
diff --git a/src/main/java/net/minecraft/world/entity/projectile/SmallFireball.java b/src/main/java/net/minecraft/world/entity/projectile/SmallFireball.java
index 00ac1cdc4734cc57f15433c5c6e7a3a545739d33..db6ae655400ea75dc8b8d53b31bf27e401518279 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/SmallFireball.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/SmallFireball.java
@@ -93,4 +93,11 @@ public class SmallFireball extends Fireball {
public boolean hurt(DamageSource source, float amount) {
return false;
}
+
+ // Purpur start
+ @Override
+ protected int getPurpurDespawnRate() {
+ return this.level.purpurConfig.smallFireballDespawnRate;
+ }
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Snowball.java b/src/main/java/net/minecraft/world/entity/projectile/Snowball.java
index a725851060f13e734dbd2fbf8c83c9e1af57a8b7..ed2f039c4042861bcfa2e41d8281eefd37daa9fa 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/Snowball.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/Snowball.java
@@ -67,4 +67,11 @@ public class Snowball extends ThrowableItemProjectile {
}
}
+
+ // Purpur start
+ @Override
+ protected int getPurpurDespawnRate() {
+ return this.level.purpurConfig.snowballDespawnRate;
+ }
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownEgg.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownEgg.java
index 77941e3981e49cf5662b3e3c86a9c419080b17c8..8c6243aab556c993b43ab52e216bcb0a70d1a686 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/ThrownEgg.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownEgg.java
@@ -107,4 +107,11 @@ public class ThrownEgg extends ThrowableItemProjectile {
protected Item getDefaultItem() {
return Items.EGG;
}
+
+ // Purpur start
+ @Override
+ protected int getPurpurDespawnRate() {
+ return this.level.purpurConfig.eggDespawnRate;
+ }
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java
index 23f77dfc6df93ef6a70e14a7e410263d39fae2cb..22d5f5aac2f4c7ce8f490d4851ef3d637a9c7d06 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java
@@ -121,4 +121,11 @@ public class ThrownEnderpearl extends ThrowableItemProjectile {
return super.changeDimension(destination);
}
+
+ // Purpur start
+ @Override
+ protected int getPurpurDespawnRate() {
+ return this.level.purpurConfig.enderPearlDespawnRate;
+ }
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownExperienceBottle.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownExperienceBottle.java
index dcbbff3a8dfcac869f07025e0e8e3d9c47956093..d6b522aa7c7ce87caf55f91ee9d661e055506c01 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/ThrownExperienceBottle.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownExperienceBottle.java
@@ -56,4 +56,11 @@ public class ThrownExperienceBottle extends ThrowableItemProjectile {
}
}
+
+ // Purpur start
+ @Override
+ protected int getPurpurDespawnRate() {
+ return this.level.purpurConfig.expBottleDespawnRate;
+ }
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java
index fee09e6ff72cf1da389d5811dd005642cd50a5b4..0f387c4f6fb49c5266feeec3504a4ec7c870ba37 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java
@@ -305,4 +305,11 @@ public class ThrownPotion extends ThrowableItemProjectile implements ItemSupplie
}
}
+
+ // Purpur start
+ @Override
+ protected int getPurpurDespawnRate() {
+ return this.level.purpurConfig.potionDespawnRate;
+ }
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/world/entity/projectile/WitherSkull.java b/src/main/java/net/minecraft/world/entity/projectile/WitherSkull.java
index 2867e841e73a3edfdeb83af9d96e0d0cd4116a68..8613008090a9d7cf5cd7c2a598f2c725b5b0cdc6 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/WitherSkull.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/WitherSkull.java
@@ -136,4 +136,11 @@ public class WitherSkull extends AbstractHurtingProjectile {
protected boolean shouldBurn() {
return false;
}
+
+ // Purpur start
+ @Override
+ protected int getPurpurDespawnRate() {
+ return this.level.purpurConfig.witherSkullDespawnRate;
+ }
+ // Purpur end
}
+ // Purpur start
+ public static int getInt(String key, int def) {
+ return config.getInt(key, def);
+ }
+ public static void setInt(String key, int value) {
+ config.set(key, value);
+ }
+ public static void save() {
+ try {
+ config.save(new File("pufferfish.yml"));
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ // Purpur end
private static boolean getBoolean(String key, boolean defaultValue, String... comment) {
return getBoolean(key, null, defaultValue, comment);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 7a222701ef7fcf2e89376774537833e1ea53f526..e3f3ccafb76d73908b400afd0dda809f1d592168 100644
index 10be99da087706094e93144252ea666dc1238979..ed58cb6d17e1f79a8d0cf05be1921a51795c0762 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -289,6 +289,35 @@ public class PurpurWorldConfig {
@@ -292,6 +292,39 @@ public class PurpurWorldConfig {
totemOfUndyingWorksInInventory = getBoolean("gameplay-mechanics.player.totem-of-undying-works-in-inventory", totemOfUndyingWorksInInventory);
}
+ public int dragonFireballDespawnRate = -1;
+ public int eggDespawnRate = -1;
+ public int enderPearlDespawnRate = -1;
+ public int expBottleDespawnRate = -1;
+ public int fireworkDespawnRate = -1;
+ public int fishingHookDespawnRate = -1;
+ public int largeFireballDespawnRate = -1;
+ public int llamaSpitDespawnRate = -1;
+ public int potionDespawnRate = -1;
+ public int shulkerBulletDespawnRate = -1;
+ public int smallFireballDespawnRate = -1;
+ public int snowballDespawnRate = -1;
+ public int witherSkullDespawnRate = -1;
+ private static boolean projectileDespawnRateSettingsMigrated = false;
+ private void projectileDespawnRateSettings() {
+ dragonFireballDespawnRate = getInt("gameplay-mechanics.projectile-despawn-rates.dragon_fireball", dragonFireballDespawnRate);
+ eggDespawnRate = getInt("gameplay-mechanics.projectile-despawn-rates.egg", eggDespawnRate);
+ enderPearlDespawnRate = getInt("gameplay-mechanics.projectile-despawn-rates.ender_pearl", enderPearlDespawnRate);
+ expBottleDespawnRate = getInt("gameplay-mechanics.projectile-despawn-rates.experience_bottle", expBottleDespawnRate);
+ fireworkDespawnRate = getInt("gameplay-mechanics.projectile-despawn-rates.firework_rocket", fireworkDespawnRate);
+ fishingHookDespawnRate = getInt("gameplay-mechanics.projectile-despawn-rates.fishing_bobber", fishingHookDespawnRate);
+ largeFireballDespawnRate = getInt("gameplay-mechanics.projectile-despawn-rates.fireball", largeFireballDespawnRate);
+ llamaSpitDespawnRate = getInt("gameplay-mechanics.projectile-despawn-rates.llama_spit", llamaSpitDespawnRate);
+ potionDespawnRate = getInt("gameplay-mechanics.projectile-despawn-rates.potion", potionDespawnRate);
+ shulkerBulletDespawnRate = getInt("gameplay-mechanics.projectile-despawn-rates.shulker_bullet", shulkerBulletDespawnRate);
+ smallFireballDespawnRate = getInt("gameplay-mechanics.projectile-despawn-rates.small_fireball", smallFireballDespawnRate);
+ snowballDespawnRate = getInt("gameplay-mechanics.projectile-despawn-rates.snowball", snowballDespawnRate);
+ witherSkullDespawnRate = getInt("gameplay-mechanics.projectile-despawn-rates.wither_skull", witherSkullDespawnRate);
+ if (PurpurConfig.version < 28 && !projectileDespawnRateSettingsMigrated) {
+ migrateProjectileDespawnRateSettings(EntityType.DRAGON_FIREBALL);
+ migrateProjectileDespawnRateSettings(EntityType.EGG);
+ migrateProjectileDespawnRateSettings(EntityType.ENDER_PEARL);
+ migrateProjectileDespawnRateSettings(EntityType.EXPERIENCE_BOTTLE);
+ migrateProjectileDespawnRateSettings(EntityType.FIREWORK_ROCKET);
+ migrateProjectileDespawnRateSettings(EntityType.FISHING_BOBBER);
+ migrateProjectileDespawnRateSettings(EntityType.FIREBALL);
+ migrateProjectileDespawnRateSettings(EntityType.LLAMA_SPIT);
+ migrateProjectileDespawnRateSettings(EntityType.POTION);
+ migrateProjectileDespawnRateSettings(EntityType.SHULKER_BULLET);
+ migrateProjectileDespawnRateSettings(EntityType.SMALL_FIREBALL);
+ migrateProjectileDespawnRateSettings(EntityType.SNOWBALL);
+ migrateProjectileDespawnRateSettings(EntityType.WITHER_SKULL);
+ PufferfishConfig.save();
+ set("gameplay-mechanics.projectile-despawn-rates", null);
+ // pufferfish's entity_timeout is a global config
+ // we only want to migrate values from the
+ // default world (first world loaded)
+ projectileDespawnRateSettingsMigrated = true;
+ }
+ }
+ private void migrateProjectileDespawnRateSettings(EntityType<?> type) {
+ String pufferName = "entity_timeouts." + type.id.toUpperCase(Locale.ROOT);
+ int value = getInt("gameplay-mechanics.projectile-despawn-rates." + type.id, -1);
+ if (value != -1 && PufferfishConfig.getInt(pufferName, -1) == -1) {
+ PufferfishConfig.setInt(pufferName, value);
+ type.ttl = value;
+ }
+ }
+
public boolean silkTouchEnabled = false;

View File

@@ -71,10 +71,10 @@ index 7be6cb6ad9a8b5f695b1a13564a37917a914b983..efe74738b5a90f822901488aa99f9810
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 e3f3ccafb76d73908b400afd0dda809f1d592168..7bfbbe1018dbdbddaa7d97ad3009d2e3849078e9 100644
index ed58cb6d17e1f79a8d0cf05be1921a51795c0762..751709e96178bf4e945ed757e3fe33a5fbe5ffd2 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1825,6 +1825,7 @@ public class PurpurWorldConfig {
@@ -1832,6 +1832,7 @@ public class PurpurWorldConfig {
public boolean zombieJockeyOnlyBaby = true;
public double zombieJockeyChance = 0.05D;
public boolean zombieJockeyTryExistingChickens = true;
@@ -82,7 +82,7 @@ index e3f3ccafb76d73908b400afd0dda809f1d592168..7bfbbe1018dbdbddaa7d97ad3009d2e3
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -1839,6 +1840,7 @@ public class PurpurWorldConfig {
@@ -1846,6 +1847,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 709aaa9dc834d91219ce1087d8f89ef5bf3d915c..4850960c7c4f38c7d81b8945f8c87504
float f1 = Mth.cos(f) * 0.2F;
float f2 = -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 7bfbbe1018dbdbddaa7d97ad3009d2e3849078e9..7f0ef2dfe8e326c53dd32b976c2a978d3f2ace07 100644
index 751709e96178bf4e945ed757e3fe33a5fbe5ffd2..f24cab0386524bb8203249aff2f5120dbd895403 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -872,10 +872,12 @@ public class PurpurWorldConfig {
@@ -879,10 +879,12 @@ public class PurpurWorldConfig {
public boolean glowSquidRidable = false;
public boolean glowSquidControllable = true;
public double glowSquidMaxHealth = 10.0D;
@@ -74,7 +74,7 @@ index 7bfbbe1018dbdbddaa7d97ad3009d2e3849078e9..7f0ef2dfe8e326c53dd32b976c2a978d
}
public boolean goatRidable = false;
@@ -1508,6 +1510,7 @@ public class PurpurWorldConfig {
@@ -1515,6 +1517,7 @@ public class PurpurWorldConfig {
public double squidMaxHealth = 10.0D;
public boolean squidImmuneToEAR = true;
public double squidOffsetWaterCheck = 0.0D;
@@ -82,7 +82,7 @@ index 7bfbbe1018dbdbddaa7d97ad3009d2e3849078e9..7f0ef2dfe8e326c53dd32b976c2a978d
private void squidSettings() {
squidRidable = getBoolean("mobs.squid.ridable", squidRidable);
squidControllable = getBoolean("mobs.squid.controllable", squidControllable);
@@ -1519,6 +1522,7 @@ public class PurpurWorldConfig {
@@ -1526,6 +1529,7 @@ public class PurpurWorldConfig {
squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth);
squidImmuneToEAR = getBoolean("mobs.squid.immune-to-EAR", squidImmuneToEAR);
squidOffsetWaterCheck = getDouble("mobs.squid.water-offset-check", squidOffsetWaterCheck);

View File

@@ -27,10 +27,10 @@ index 08d597db1a5345a343777a01427655e6bf2c926b..33df0ca406dc8321b76b393f317bbd1c
} 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 7f0ef2dfe8e326c53dd32b976c2a978d3f2ace07..d2b73baf72ab84bb13471da549be8ab9d38e4074 100644
index f24cab0386524bb8203249aff2f5120dbd895403..c1ac7c44868445bf5cc250ec108fd84c957434c6 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -139,6 +139,17 @@ public class PurpurWorldConfig {
@@ -142,6 +142,17 @@ public class PurpurWorldConfig {
entityLifeSpan = getInt("gameplay-mechanics.entity-lifespan", entityLifeSpan);
}

View File

@@ -31,7 +31,7 @@ index 11d5b4d1e0400e9e2baacbf9690ce1ababe85139..ce90ecb258c954146fbe7a9f393cbe29
}
ServerPlayer entityplayer = (ServerPlayer) entityhuman;
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index ea71f71918c19d03f584939d17901d2ffff7ad0e..156bac4f1c6d4577a424e773cb175a2f737b99cf 100644
index fe4909978c6b81f87a4585c8b42c1b71bf638830..5dff48719ff166990a3d5668a50d8531e59f092b 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -210,6 +210,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -88,10 +88,10 @@ index ea71f71918c19d03f584939d17901d2ffff7ad0e..156bac4f1c6d4577a424e773cb175a2f
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 d2b73baf72ab84bb13471da549be8ab9d38e4074..568f2ed666dcd7571bad045e67bfe22f2bb90c9b 100644
index c1ac7c44868445bf5cc250ec108fd84c957434c6..47386b053f056d0dc4cd60b2ba07ecaed3b2188b 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 {
@@ -124,6 +124,13 @@ public class PurpurWorldConfig {
raidCooldownSeconds = getInt("gameplay-mechanics.raid-cooldown-seconds", raidCooldownSeconds);
}

View File

@@ -47,10 +47,10 @@ index 4977f3fad3bfc12fd4c5f9fbe8beea2895247c57..c617a8aacbbefb37d53d0e005e822469
private static boolean canBurn(@Nullable Recipe<?> 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 568f2ed666dcd7571bad045e67bfe22f2bb90c9b..633dc2149bc691b20238f5a7e54d3e9a45f474ce 100644
index 47386b053f056d0dc4cd60b2ba07ecaed3b2188b..4f466edede5d344baeda141fa0dc5f68669c67a5 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 {
@@ -408,6 +408,17 @@ public class PurpurWorldConfig {
farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow);
}

View File

@@ -24,10 +24,10 @@ index 4208833252a5b5c74d294dc3435869d71d774e37..a3ff99c461dd862733816d9d1204cf8b
return;
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 633dc2149bc691b20238f5a7e54d3e9a45f474ce..cde4ae628a62fc3303191a845ab93e4d8224d4c4 100644
index 4f466edede5d344baeda141fa0dc5f68669c67a5..383a6f1e7b54ea8c7e4ecf9098434df33ccd2e3e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -397,8 +397,10 @@ public class PurpurWorldConfig {
@@ -404,8 +404,10 @@ public class PurpurWorldConfig {
}
public boolean farmlandGetsMoistFromBelow = false;

View File

@@ -95,10 +95,10 @@ index 072c72385c2ec279d03daed003a992b381178fbb..924b66511f81ee7b448dadf81b78a0e5
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 cde4ae628a62fc3303191a845ab93e4d8224d4c4..5236d3bc8acb317d819f59cd5873c6e0d14f091f 100644
index 383a6f1e7b54ea8c7e4ecf9098434df33ccd2e3e..101c8ea510343c9f5c4742721a5622190d17358b 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 {
@@ -112,6 +112,7 @@ public class PurpurWorldConfig {
public double voidDamageHeight = -64.0D;
public double voidDamageDealt = 4.0D;
public int raidCooldownSeconds = 0;
@@ -106,7 +106,7 @@ index cde4ae628a62fc3303191a845ab93e4d8224d4c4..5236d3bc8acb317d819f59cd5873c6e0
private void miscGameplayMechanicsSettings() {
useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending);
boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand);
@@ -119,6 +120,7 @@ public class PurpurWorldConfig {
@@ -122,6 +123,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

@@ -491,10 +491,10 @@ index e99ffbf30652e188e88f8e17ed41d39ff25c9f73..c335a32832c6eef95658fbf632b943bb
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda87a4d776 100644
index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe1574907d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -490,10 +490,12 @@ public class PurpurWorldConfig {
@@ -497,10 +497,12 @@ public class PurpurWorldConfig {
public boolean axolotlRidable = false;
public boolean axolotlControllable = true;
public double axolotlMaxHealth = 14.0D;
@@ -507,7 +507,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
}
public boolean batRidable = false;
@@ -526,6 +528,7 @@ public class PurpurWorldConfig {
@@ -533,6 +535,7 @@ public class PurpurWorldConfig {
public boolean beeControllable = true;
public double beeMaxY = 320D;
public double beeMaxHealth = 10.0D;
@@ -515,7 +515,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
private void beeSettings() {
beeRidable = getBoolean("mobs.bee.ridable", beeRidable);
beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater);
@@ -537,6 +540,7 @@ public class PurpurWorldConfig {
@@ -544,6 +547,7 @@ public class PurpurWorldConfig {
set("mobs.bee.attributes.max_health", oldValue);
}
beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth);
@@ -523,7 +523,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
}
public boolean blazeRidable = false;
@@ -564,6 +568,7 @@ public class PurpurWorldConfig {
@@ -571,6 +575,7 @@ public class PurpurWorldConfig {
public int catSpawnDelay = 1200;
public int catSpawnSwampHutScanRange = 16;
public int catSpawnVillageScanRange = 48;
@@ -531,7 +531,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
private void catSettings() {
catRidable = getBoolean("mobs.cat.ridable", catRidable);
catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater);
@@ -577,6 +582,7 @@ public class PurpurWorldConfig {
@@ -584,6 +589,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);
@@ -539,7 +539,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
}
public boolean caveSpiderRidable = false;
@@ -600,6 +606,7 @@ public class PurpurWorldConfig {
@@ -607,6 +613,7 @@ public class PurpurWorldConfig {
public boolean chickenControllable = true;
public double chickenMaxHealth = 4.0D;
public boolean chickenRetaliate = false;
@@ -547,7 +547,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
private void chickenSettings() {
chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable);
chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater);
@@ -611,6 +618,7 @@ public class PurpurWorldConfig {
@@ -618,6 +625,7 @@ public class PurpurWorldConfig {
}
chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth);
chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate);
@@ -555,7 +555,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
}
public boolean codRidable = false;
@@ -632,6 +640,7 @@ public class PurpurWorldConfig {
@@ -639,6 +647,7 @@ public class PurpurWorldConfig {
public boolean cowControllable = true;
public double cowMaxHealth = 10.0D;
public int cowFeedMushrooms = 0;
@@ -563,7 +563,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
private void cowSettings() {
cowRidable = getBoolean("mobs.cow.ridable", cowRidable);
cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater);
@@ -643,6 +652,7 @@ public class PurpurWorldConfig {
@@ -650,6 +659,7 @@ public class PurpurWorldConfig {
}
cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth);
cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms);
@@ -571,7 +571,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
}
public boolean creeperRidable = false;
@@ -694,6 +704,7 @@ public class PurpurWorldConfig {
@@ -701,6 +711,7 @@ public class PurpurWorldConfig {
public double donkeyJumpStrengthMax = 0.5D;
public double donkeyMovementSpeedMin = 0.175D;
public double donkeyMovementSpeedMax = 0.175D;
@@ -579,7 +579,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
private void donkeySettings() {
donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater);
if (PurpurConfig.version < 10) {
@@ -709,6 +720,7 @@ public class PurpurWorldConfig {
@@ -716,6 +727,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);
@@ -587,7 +587,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
}
public boolean drownedRidable = false;
@@ -828,6 +840,7 @@ public class PurpurWorldConfig {
@@ -835,6 +847,7 @@ public class PurpurWorldConfig {
public boolean foxControllable = true;
public double foxMaxHealth = 10.0D;
public boolean foxTypeChangesWithTulips = false;
@@ -595,7 +595,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
private void foxSettings() {
foxRidable = getBoolean("mobs.fox.ridable", foxRidable);
foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater);
@@ -839,17 +852,20 @@ public class PurpurWorldConfig {
@@ -846,17 +859,20 @@ public class PurpurWorldConfig {
}
foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth);
foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips);
@@ -616,7 +616,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
}
public boolean ghastRidable = false;
@@ -917,11 +933,13 @@ public class PurpurWorldConfig {
@@ -924,11 +940,13 @@ public class PurpurWorldConfig {
public boolean goatRidableInWater = false;
public boolean goatControllable = true;
public double goatMaxHealth = 10.0D;
@@ -630,7 +630,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
}
public boolean guardianRidable = false;
@@ -942,6 +960,7 @@ public class PurpurWorldConfig {
@@ -949,6 +967,7 @@ public class PurpurWorldConfig {
public boolean hoglinRidableInWater = false;
public boolean hoglinControllable = true;
public double hoglinMaxHealth = 40.0D;
@@ -638,7 +638,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
private void hoglinSettings() {
hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable);
hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater);
@@ -952,6 +971,7 @@ public class PurpurWorldConfig {
@@ -959,6 +978,7 @@ public class PurpurWorldConfig {
set("mobs.hoglin.attributes.max_health", oldValue);
}
hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth);
@@ -646,7 +646,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
}
public boolean horseRidableInWater = false;
@@ -961,6 +981,7 @@ public class PurpurWorldConfig {
@@ -968,6 +988,7 @@ public class PurpurWorldConfig {
public double horseJumpStrengthMax = 1.0D;
public double horseMovementSpeedMin = 0.1125D;
public double horseMovementSpeedMax = 0.3375D;
@@ -654,7 +654,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
private void horseSettings() {
horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater);
if (PurpurConfig.version < 10) {
@@ -976,6 +997,7 @@ public class PurpurWorldConfig {
@@ -983,6 +1004,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);
@@ -662,7 +662,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
}
public boolean huskRidable = false;
@@ -1053,6 +1075,7 @@ public class PurpurWorldConfig {
@@ -1060,6 +1082,7 @@ public class PurpurWorldConfig {
public double llamaJumpStrengthMax = 0.5D;
public double llamaMovementSpeedMin = 0.175D;
public double llamaMovementSpeedMax = 0.175D;
@@ -670,7 +670,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
private void llamaSettings() {
llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable);
llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater);
@@ -1070,6 +1093,7 @@ public class PurpurWorldConfig {
@@ -1077,6 +1100,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);
@@ -678,7 +678,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
}
public boolean magmaCubeRidable = false;
@@ -1098,6 +1122,7 @@ public class PurpurWorldConfig {
@@ -1105,6 +1129,7 @@ public class PurpurWorldConfig {
public boolean mooshroomRidableInWater = false;
public boolean mooshroomControllable = true;
public double mooshroomMaxHealth = 10.0D;
@@ -686,7 +686,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
private void mooshroomSettings() {
mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable);
mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater);
@@ -1108,6 +1133,7 @@ public class PurpurWorldConfig {
@@ -1115,6 +1140,7 @@ public class PurpurWorldConfig {
set("mobs.mooshroom.attributes.max_health", oldValue);
}
mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth);
@@ -694,7 +694,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
}
public boolean muleRidableInWater = false;
@@ -1117,6 +1143,7 @@ public class PurpurWorldConfig {
@@ -1124,6 +1150,7 @@ public class PurpurWorldConfig {
public double muleJumpStrengthMax = 0.5D;
public double muleMovementSpeedMin = 0.175D;
public double muleMovementSpeedMax = 0.175D;
@@ -702,7 +702,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
private void muleSettings() {
muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater);
if (PurpurConfig.version < 10) {
@@ -1132,12 +1159,14 @@ public class PurpurWorldConfig {
@@ -1139,12 +1166,14 @@ 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);
@@ -717,7 +717,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
private void ocelotSettings() {
ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable);
ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater);
@@ -1148,12 +1177,14 @@ public class PurpurWorldConfig {
@@ -1155,12 +1184,14 @@ public class PurpurWorldConfig {
set("mobs.ocelot.attributes.max_health", oldValue);
}
ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth);
@@ -732,7 +732,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
private void pandaSettings() {
pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable);
pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater);
@@ -1164,6 +1195,7 @@ public class PurpurWorldConfig {
@@ -1171,6 +1202,7 @@ public class PurpurWorldConfig {
set("mobs.panda.attributes.max_health", oldValue);
}
pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth);
@@ -740,7 +740,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
}
public boolean parrotRidable = false;
@@ -1259,6 +1291,7 @@ public class PurpurWorldConfig {
@@ -1266,6 +1298,7 @@ public class PurpurWorldConfig {
public boolean pigControllable = true;
public double pigMaxHealth = 10.0D;
public boolean pigGiveSaddleBack = false;
@@ -748,7 +748,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
private void pigSettings() {
pigRidable = getBoolean("mobs.pig.ridable", pigRidable);
pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater);
@@ -1270,6 +1303,7 @@ public class PurpurWorldConfig {
@@ -1277,6 +1310,7 @@ public class PurpurWorldConfig {
}
pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth);
pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack);
@@ -756,7 +756,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
}
public boolean piglinRidable = false;
@@ -1326,6 +1360,7 @@ public class PurpurWorldConfig {
@@ -1333,6 +1367,7 @@ public class PurpurWorldConfig {
public double polarBearMaxHealth = 30.0D;
public String polarBearBreedableItemString = "";
public Item polarBearBreedableItem = null;
@@ -764,7 +764,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
private void polarBearSettings() {
polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable);
polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater);
@@ -1339,6 +1374,7 @@ public class PurpurWorldConfig {
@@ -1346,6 +1381,7 @@ public class PurpurWorldConfig {
polarBearBreedableItemString = getString("mobs.polar_bear.breedable-item", polarBearBreedableItemString);
Item item = Registry.ITEM.get(new ResourceLocation(polarBearBreedableItemString));
if (item != Items.AIR) polarBearBreedableItem = item;
@@ -772,7 +772,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
}
public boolean pufferfishRidable = false;
@@ -1361,6 +1397,7 @@ public class PurpurWorldConfig {
@@ -1368,6 +1404,7 @@ public class PurpurWorldConfig {
public double rabbitMaxHealth = 3.0D;
public double rabbitNaturalToast = 0.0D;
public double rabbitNaturalKiller = 0.0D;
@@ -780,7 +780,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
private void rabbitSettings() {
rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable);
rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater);
@@ -1373,6 +1410,7 @@ public class PurpurWorldConfig {
@@ -1380,6 +1417,7 @@ public class PurpurWorldConfig {
rabbitMaxHealth = getDouble("mobs.rabbit.attributes.max_health", rabbitMaxHealth);
rabbitNaturalToast = getDouble("mobs.rabbit.spawn-toast-chance", rabbitNaturalToast);
rabbitNaturalKiller = getDouble("mobs.rabbit.spawn-killer-rabbit-chance", rabbitNaturalKiller);
@@ -788,7 +788,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
}
public boolean ravagerRidable = false;
@@ -1409,6 +1447,7 @@ public class PurpurWorldConfig {
@@ -1416,6 +1454,7 @@ public class PurpurWorldConfig {
public boolean sheepRidableInWater = false;
public boolean sheepControllable = true;
public double sheepMaxHealth = 8.0D;
@@ -796,7 +796,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
private void sheepSettings() {
sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable);
sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater);
@@ -1419,6 +1458,7 @@ public class PurpurWorldConfig {
@@ -1426,6 +1465,7 @@ public class PurpurWorldConfig {
set("mobs.sheep.attributes.max_health", oldValue);
}
sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth);
@@ -804,7 +804,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
}
public boolean shulkerRidable = false;
@@ -1594,6 +1634,7 @@ public class PurpurWorldConfig {
@@ -1601,6 +1641,7 @@ public class PurpurWorldConfig {
public boolean striderRidableInWater = false;
public boolean striderControllable = true;
public double striderMaxHealth = 20.0D;
@@ -812,7 +812,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
private void striderSettings() {
striderRidable = getBoolean("mobs.strider.ridable", striderRidable);
striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater);
@@ -1604,6 +1645,7 @@ public class PurpurWorldConfig {
@@ -1611,6 +1652,7 @@ public class PurpurWorldConfig {
set("mobs.strider.attributes.max_health", oldValue);
}
striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth);
@@ -820,7 +820,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
}
public boolean tadpoleRidable = false;
@@ -1624,6 +1666,7 @@ public class PurpurWorldConfig {
@@ -1631,6 +1673,7 @@ public class PurpurWorldConfig {
public double traderLlamaJumpStrengthMax = 0.5D;
public double traderLlamaMovementSpeedMin = 0.175D;
public double traderLlamaMovementSpeedMax = 0.175D;
@@ -828,7 +828,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
private void traderLlamaSettings() {
traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable);
traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater);
@@ -1641,6 +1684,7 @@ public class PurpurWorldConfig {
@@ -1648,6 +1691,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);
@@ -836,7 +836,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
}
public boolean tropicalFishRidable = false;
@@ -1661,6 +1705,7 @@ public class PurpurWorldConfig {
@@ -1668,6 +1712,7 @@ public class PurpurWorldConfig {
public boolean turtleRidableInWater = false;
public boolean turtleControllable = true;
public double turtleMaxHealth = 30.0D;
@@ -844,7 +844,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
private void turtleSettings() {
turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable);
turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater);
@@ -1671,6 +1716,7 @@ public class PurpurWorldConfig {
@@ -1678,6 +1723,7 @@ public class PurpurWorldConfig {
set("mobs.turtle.attributes.max_health", oldValue);
}
turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth);
@@ -852,7 +852,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
}
public boolean vexRidable = false;
@@ -1700,6 +1746,7 @@ public class PurpurWorldConfig {
@@ -1707,6 +1753,7 @@ public class PurpurWorldConfig {
public boolean villagerFollowEmeraldBlock = false;
public boolean villagerCanBeLeashed = false;
public boolean villagerCanBreed = true;
@@ -860,7 +860,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1715,6 +1762,7 @@ public class PurpurWorldConfig {
@@ -1722,6 +1769,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);
@@ -868,7 +868,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
}
public boolean vindicatorRidable = false;
@@ -1826,6 +1874,7 @@ public class PurpurWorldConfig {
@@ -1833,6 +1881,7 @@ public class PurpurWorldConfig {
public boolean wolfRidableInWater = false;
public boolean wolfControllable = true;
public double wolfMaxHealth = 8.0D;
@@ -876,7 +876,7 @@ index 5236d3bc8acb317d819f59cd5873c6e0d14f091f..4a2c5afda4f59542412b0ef54bfa4cda
private void wolfSettings() {
wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable);
wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater);
@@ -1836,6 +1885,7 @@ public class PurpurWorldConfig {
@@ -1843,6 +1892,7 @@ public class PurpurWorldConfig {
set("mobs.wolf.attributes.max_health", oldValue);
}
wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth);

View File

@@ -142,10 +142,10 @@ index 4c5671cd4c26c23e61b2196577c554f504a03c55..678e0cb7e5b704ce01eda96b2d74694d
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 4a2c5afda4f59542412b0ef54bfa4cda87a4d776..f6e3c210779406ec179495cfb97b59df57384d36 100644
index 2d5c235b27417b02a1bf3da6a95277fe1574907d..b5aa728d4e10cd37a268234c9fd7acdcb0e57956 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -96,8 +96,10 @@ public class PurpurWorldConfig {
@@ -99,8 +99,10 @@ public class PurpurWorldConfig {
}
public float armorstandStepHeight = 0.0F;
@@ -156,7 +156,7 @@ index 4a2c5afda4f59542412b0ef54bfa4cda87a4d776..f6e3c210779406ec179495cfb97b59df
}
public boolean useBetterMending = false;
@@ -105,6 +107,7 @@ public class PurpurWorldConfig {
@@ -108,6 +110,7 @@ public class PurpurWorldConfig {
public boolean disableDropsOnCrammingDeath = false;
public boolean entitiesCanUsePortals = true;
public boolean milkCuresBadOmen = true;
@@ -164,7 +164,7 @@ index 4a2c5afda4f59542412b0ef54bfa4cda87a4d776..f6e3c210779406ec179495cfb97b59df
public double tridentLoyaltyVoidReturnHeight = 0.0D;
public double voidDamageHeight = -64.0D;
public double voidDamageDealt = 4.0D;
@@ -116,6 +119,7 @@ public class PurpurWorldConfig {
@@ -119,6 +122,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);

View File

@@ -17,10 +17,10 @@ index 623f78c078fb3aa2665d7e8a37672438227bce6b..500c69e555c7247e20ef8cc59d834155
((Mob) newEntityLiving).setPersistenceRequired();
// Paper end
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index f6e3c210779406ec179495cfb97b59df57384d36..3d140a8a2e3b3ea968f2f2862f981dc463ac8f7b 100644
index b5aa728d4e10cd37a268234c9fd7acdcb0e57956..3feffa81d9336c0c625934953522618007143d62 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -97,9 +97,11 @@ public class PurpurWorldConfig {
@@ -100,9 +100,11 @@ public class PurpurWorldConfig {
public float armorstandStepHeight = 0.0F;
public boolean armorstandSetNameVisible = false;

View File

@@ -21,10 +21,10 @@ index 9458cab33d4ff468d3d009cc1c3b3736f21f649b..4443a4a300d17e8568a81bcb9af89251
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 3d140a8a2e3b3ea968f2f2862f981dc463ac8f7b..e6f8050ab3701c549970f1811449c0a8e9e27bd2 100644
index 3feffa81d9336c0c625934953522618007143d62..61e6085089b1e7d181303663a2dfd0477f1972b9 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -796,6 +796,7 @@ public class PurpurWorldConfig {
@@ -803,6 +803,7 @@ public class PurpurWorldConfig {
public boolean endermanControllable = true;
public double endermanMaxHealth = 40.0D;
public boolean endermanAllowGriefing = true;
@@ -32,7 +32,7 @@ index 3d140a8a2e3b3ea968f2f2862f981dc463ac8f7b..e6f8050ab3701c549970f1811449c0a8
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -807,6 +808,7 @@ public class PurpurWorldConfig {
@@ -814,6 +815,7 @@ public class PurpurWorldConfig {
}
endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth);
endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing);

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add configurable snowball damage
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Snowball.java b/src/main/java/net/minecraft/world/entity/projectile/Snowball.java
index ed2f039c4042861bcfa2e41d8281eefd37daa9fa..d5d84893c77b4e60a19032d765d76bfd24cbbb2b 100644
index a725851060f13e734dbd2fbf8c83c9e1af57a8b7..74f798baafc53cd7dd1d4f58bc9a3581ba4f21da 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/Snowball.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/Snowball.java
@@ -54,7 +54,7 @@ public class Snowball extends ThrowableItemProjectile {
@@ -18,11 +18,11 @@ index ed2f039c4042861bcfa2e41d8281eefd37daa9fa..d5d84893c77b4e60a19032d765d76bfd
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index e6f8050ab3701c549970f1811449c0a8e9e27bd2..0c8671fabefe5c2cecf62d4f84fd15233329fd5f 100644
index 61e6085089b1e7d181303663a2dfd0477f1972b9..dfccdbbaa1bb6f3716c18e90f5464b42623e4fe4 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -315,6 +315,11 @@ public class PurpurWorldConfig {
totemOfUndyingWorksInInventory = getBoolean("gameplay-mechanics.player.totem-of-undying-works-in-inventory", totemOfUndyingWorksInInventory);
@@ -351,6 +351,11 @@ public class PurpurWorldConfig {
}
}
+ public int snowballDamage = -1;
@@ -30,6 +30,6 @@ index e6f8050ab3701c549970f1811449c0a8e9e27bd2..0c8671fabefe5c2cecf62d4f84fd1523
+ snowballDamage = getInt("gameplay-mechanics.projectile-damage.snowball", snowballDamage);
+ }
+
public int dragonFireballDespawnRate = -1;
public int eggDespawnRate = -1;
public int enderPearlDespawnRate = -1;
public boolean silkTouchEnabled = false;
public String silkTouchSpawnerName = "<reset><white>Spawner";
public List<String> silkTouchSpawnerLore = new ArrayList<>();

View File

@@ -18,10 +18,10 @@ index fe97b5b327af1189b166243c42be99892226cd9e..5a907375d1497229d3b566b30c34248e
} else {
this.setLeftHanded(false);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 0c8671fabefe5c2cecf62d4f84fd15233329fd5f..f9a428b2d21093c95467b7d02f22e1923c6fcf50 100644
index dfccdbbaa1bb6f3716c18e90f5464b42623e4fe4..2375db9b994ffbd7371e92731bdb31095d40f9f5 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -150,8 +150,10 @@ public class PurpurWorldConfig {
@@ -153,8 +153,10 @@ public class PurpurWorldConfig {
}
public int entityLifeSpan = 0;

View File

@@ -27,10 +27,10 @@ index 8e5aa1666ca929780670ce513d969973a513e21e..fe2d7acece87d5b825f3f3668c11c0ef
if (!flag && isSpawnInvulnerable() && source != DamageSource.OUT_OF_WORLD) { // Purpur
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index f9a428b2d21093c95467b7d02f22e1923c6fcf50..38ecc62dab7c34831b09ec489f909678d56807ac 100644
index 2375db9b994ffbd7371e92731bdb31095d40f9f5..e23ff0ebd09937fcf7c32c2157717c8dff7727d7 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -106,6 +106,7 @@ public class PurpurWorldConfig {
@@ -109,6 +109,7 @@ public class PurpurWorldConfig {
public boolean useBetterMending = false;
public boolean boatEjectPlayersOnLand = false;
@@ -38,7 +38,7 @@ index f9a428b2d21093c95467b7d02f22e1923c6fcf50..38ecc62dab7c34831b09ec489f909678
public boolean disableDropsOnCrammingDeath = false;
public boolean entitiesCanUsePortals = true;
public boolean milkCuresBadOmen = true;
@@ -118,6 +119,7 @@ public class PurpurWorldConfig {
@@ -121,6 +122,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);

View File

@@ -23,10 +23,10 @@ index b4459d68397cc5bac4f7ef79a2dfb18f3eb24f77..b9025929fcc89e72aa820953b91a6542
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 38ecc62dab7c34831b09ec489f909678d56807ac..b7f7a1c4da6d866e65fbadd63e7487036af25238 100644
index e23ff0ebd09937fcf7c32c2157717c8dff7727d7..8b3e3f49b69591c06657b99fc8f83c5d2f851989 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1580,6 +1580,10 @@ public class PurpurWorldConfig {
@@ -1587,6 +1587,10 @@ public class PurpurWorldConfig {
public double snowGolemMaxHealth = 4.0D;
public boolean snowGolemDropsPumpkin = true;
public boolean snowGolemPutPumpkinBack = false;
@@ -37,7 +37,7 @@ index 38ecc62dab7c34831b09ec489f909678d56807ac..b7f7a1c4da6d866e65fbadd63e748703
private void snowGolemSettings() {
snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable);
snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater);
@@ -1593,6 +1597,10 @@ public class PurpurWorldConfig {
@@ -1600,6 +1604,10 @@ public class PurpurWorldConfig {
snowGolemMaxHealth = getDouble("mobs.snow_golem.attributes.max_health", snowGolemMaxHealth);
snowGolemDropsPumpkin = getBoolean("mobs.snow_golem.drop-pumpkin-when-sheared", snowGolemDropsPumpkin);
snowGolemPutPumpkinBack = getBoolean("mobs.snow_golem.pumpkin-can-be-added-back", snowGolemPutPumpkinBack);

View File

@@ -181,10 +181,10 @@ index b1f20cb356e6b4e89fdddf4e48f2fd932bdb5170..352a7df156c638684a12a864eb5a9d06
public static final VillagerProfession FISHERMAN = register("fisherman", PoiTypes.FISHERMAN, SoundEvents.VILLAGER_WORK_FISHERMAN);
public static final VillagerProfession FLETCHER = register("fletcher", PoiTypes.FLETCHER, SoundEvents.VILLAGER_WORK_FLETCHER);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index b7f7a1c4da6d866e65fbadd63e7487036af25238..a0a094d200949a0c9e121f9094bb64682046bac9 100644
index 8b3e3f49b69591c06657b99fc8f83c5d2f851989..9046711e7b68567792962dc80f577253e0c8a9c4 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1772,6 +1772,8 @@ public class PurpurWorldConfig {
@@ -1779,6 +1779,8 @@ public class PurpurWorldConfig {
public boolean villagerCanBeLeashed = false;
public boolean villagerCanBreed = true;
public int villagerBreedingTicks = 6000;
@@ -193,7 +193,7 @@ index b7f7a1c4da6d866e65fbadd63e7487036af25238..a0a094d200949a0c9e121f9094bb6468
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1788,6 +1790,8 @@ public class PurpurWorldConfig {
@@ -1795,6 +1797,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 6c1dd723373f9b1b920548de85aeb6cef0120fa7..1f0003fb08a45af02e6d38e28fa548ab
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index a0a094d200949a0c9e121f9094bb64682046bac9..942df6380276fd427d0c68cfe95ada5ff80df9a6 100644
index 9046711e7b68567792962dc80f577253e0c8a9c4..77d5e5481db4a427bde6eca89fc9324f8692ea70 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2018,6 +2018,7 @@ public class PurpurWorldConfig {
@@ -2025,6 +2025,7 @@ public class PurpurWorldConfig {
public boolean zombifiedPiglinJockeyOnlyBaby = true;
public double zombifiedPiglinJockeyChance = 0.05D;
public boolean zombifiedPiglinJockeyTryExistingChickens = true;
@@ -46,7 +46,7 @@ index a0a094d200949a0c9e121f9094bb64682046bac9..942df6380276fd427d0c68cfe95ada5f
private void zombifiedPiglinSettings() {
zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable);
zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater);
@@ -2032,5 +2033,6 @@ public class PurpurWorldConfig {
@@ -2039,5 +2040,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

@@ -222,10 +222,10 @@ index a3bec00368aef0f8cc6aa21cce1389938d15f91b..704667760ab1593647e3f03bdd17ad32
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 942df6380276fd427d0c68cfe95ada5ff80df9a6..abaccd1447baa66d1aa73f1090448d5a05f85bf0 100644
index 77d5e5481db4a427bde6eca89fc9324f8692ea70..e2a62c904424e80f955cff2706bef3688b10788e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1903,6 +1903,8 @@ public class PurpurWorldConfig {
@@ -1910,6 +1910,8 @@ public class PurpurWorldConfig {
public boolean wolfRidableInWater = false;
public boolean wolfControllable = true;
public double wolfMaxHealth = 8.0D;
@@ -234,7 +234,7 @@ index 942df6380276fd427d0c68cfe95ada5ff80df9a6..abaccd1447baa66d1aa73f1090448d5a
public int wolfBreedingTicks = 6000;
private void wolfSettings() {
wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable);
@@ -1914,6 +1916,8 @@ public class PurpurWorldConfig {
@@ -1921,6 +1923,8 @@ public class PurpurWorldConfig {
set("mobs.wolf.attributes.max_health", oldValue);
}
wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth);

View File

@@ -43,10 +43,10 @@ index f862d83db6127804b9254a33a73e6f186a1d1327..ffe8f80cfe3bec8fe79415015f529074
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index abaccd1447baa66d1aa73f1090448d5a05f85bf0..cd23d5085ed062b7d9fce71326356e9e389b39e1 100644
index e2a62c904424e80f955cff2706bef3688b10788e..5ebdba256037477332016336499074662f2badf0 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -584,6 +584,7 @@ public class PurpurWorldConfig {
@@ -591,6 +591,7 @@ public class PurpurWorldConfig {
public int catSpawnSwampHutScanRange = 16;
public int catSpawnVillageScanRange = 48;
public int catBreedingTicks = 6000;
@@ -54,7 +54,7 @@ index abaccd1447baa66d1aa73f1090448d5a05f85bf0..cd23d5085ed062b7d9fce71326356e9e
private void catSettings() {
catRidable = getBoolean("mobs.cat.ridable", catRidable);
catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater);
@@ -598,6 +599,11 @@ public class PurpurWorldConfig {
@@ -605,6 +606,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 abaccd1447baa66d1aa73f1090448d5a05f85bf0..cd23d5085ed062b7d9fce71326356e9e
}
public boolean caveSpiderRidable = false;
@@ -1903,6 +1909,7 @@ public class PurpurWorldConfig {
@@ -1910,6 +1916,7 @@ public class PurpurWorldConfig {
public boolean wolfRidableInWater = false;
public boolean wolfControllable = true;
public double wolfMaxHealth = 8.0D;
@@ -74,7 +74,7 @@ index abaccd1447baa66d1aa73f1090448d5a05f85bf0..cd23d5085ed062b7d9fce71326356e9e
public boolean wolfMilkCuresRabies = true;
public double wolfNaturalRabid = 0.0D;
public int wolfBreedingTicks = 6000;
@@ -1916,6 +1923,11 @@ public class PurpurWorldConfig {
@@ -1923,6 +1930,11 @@ public class PurpurWorldConfig {
set("mobs.wolf.attributes.max_health", oldValue);
}
wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth);

View File

@@ -17,10 +17,10 @@ index 82d56a6968f3bbea5a2d32c2a7a84a8ba36d3d15..f23ca987666fd23621d3d731fd1a4ab2
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index cd23d5085ed062b7d9fce71326356e9e389b39e1..2c8e2faeab641f1019f31339707c62e82c5e9276 100644
index 5ebdba256037477332016336499074662f2badf0..79b0331ae3da328ed051daf8efc6e298b9a57a7e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1268,6 +1268,7 @@ public class PurpurWorldConfig {
@@ -1275,6 +1275,7 @@ public class PurpurWorldConfig {
public int phantomBurnInLight = 0;
public boolean phantomIgnorePlayersWithTorch = false;
public boolean phantomBurnInDaylight = true;
@@ -28,7 +28,7 @@ index cd23d5085ed062b7d9fce71326356e9e389b39e1..2c8e2faeab641f1019f31339707c62e8
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -1307,6 +1308,7 @@ public class PurpurWorldConfig {
@@ -1314,6 +1315,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 c6b57d45383441aa35510e759ce3cb82bc98f305..330ff3bc5fd8625e37b79e1204eddbe8
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 2c8e2faeab641f1019f31339707c62e82c5e9276..98875193e44706b180663151a2e3864bd5272ff4 100644
index 79b0331ae3da328ed051daf8efc6e298b9a57a7e..e6da09c147c00e50176c41ce26b06ae34dedea9c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -406,6 +406,11 @@ public class PurpurWorldConfig {
@@ -413,6 +413,11 @@ public class PurpurWorldConfig {
}
}

View File

@@ -29,10 +29,10 @@ index eb2083d67f9486a24d2f0aa4bf1f5ba8a00e23a3..df9d16a6493a57b6034cd56bf8dbe38f
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 98875193e44706b180663151a2e3864bd5272ff4..aeacb1b81bcce83188008d3e531e72f739d1e928 100644
index e6da09c147c00e50176c41ce26b06ae34dedea9c..87f6a4c76e169c9f85d02eba46e6ca31a059b414 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1673,6 +1673,7 @@ public class PurpurWorldConfig {
@@ -1680,6 +1680,7 @@ public class PurpurWorldConfig {
public boolean striderControllable = true;
public double striderMaxHealth = 20.0D;
public int striderBreedingTicks = 6000;
@@ -40,7 +40,7 @@ index 98875193e44706b180663151a2e3864bd5272ff4..aeacb1b81bcce83188008d3e531e72f7
private void striderSettings() {
striderRidable = getBoolean("mobs.strider.ridable", striderRidable);
striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater);
@@ -1684,6 +1685,7 @@ public class PurpurWorldConfig {
@@ -1691,6 +1692,7 @@ public class PurpurWorldConfig {
}
striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth);
striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks);

View File

@@ -26,10 +26,10 @@ index e0ea8b1b3ccde9616a721d677a8217b25aadfefe..b416c8606ef53aa49458bb6f36689068
protected ItemCooldowns createItemCooldowns() {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index aeacb1b81bcce83188008d3e531e72f739d1e928..881e9c611f7f5fc56af316cbf1ff73b680b6e4ce 100644
index 87f6a4c76e169c9f85d02eba46e6ca31a059b414..aeb2d15277803a03eabcfb816664d6f9d168714f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -289,6 +289,19 @@ public class PurpurWorldConfig {
@@ -292,6 +292,19 @@ public class PurpurWorldConfig {
villageSiegeSpawning = getBoolean("gameplay-mechanics.mob-spawning.village-sieges", predicate);
}

View File

@@ -262,7 +262,7 @@ index 9a14ac198433e9bdfa2dabd4d3ae88ba17fd86ea..592a1a95b4cdfd731574299d2096f279
protected boolean canReplaceCurrentItem(ItemStack stack) {
diff --git a/src/main/java/net/minecraft/world/entity/projectile/LargeFireball.java b/src/main/java/net/minecraft/world/entity/projectile/LargeFireball.java
index e69213b43c8aa5a7c04add7a87482d531fbf52d2..f51ea103238b4a50439f5162a248cd9aa7f1a19b 100644
index 5237b699e000b4fed99be39b0a7e2daab9c8bf42..efa9424f8e2716f073e89b03f3d85e1b7774af9f 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/LargeFireball.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/LargeFireball.java
@@ -18,20 +18,20 @@ public class LargeFireball extends Fireball {
@@ -290,10 +290,10 @@ index e69213b43c8aa5a7c04add7a87482d531fbf52d2..f51ea103238b4a50439f5162a248cd9a
// CraftBukkit start - fire ExplosionPrimeEvent
ExplosionPrimeEvent event = new ExplosionPrimeEvent((org.bukkit.entity.Explosive) this.getBukkitEntity());
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
index 0cfbb462e3c359d216e35a972e98585d17c65586..d576943e4f0f0e416d59cebcd475d231ebb1ae07 100644
index 39ba6ca32b827daee300e1240bd76fd8f680ea02..41adf8762919dffbac6adc4e9a6c120e48c3dd43 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
@@ -328,6 +328,6 @@ public abstract class Projectile extends Entity {
@@ -308,6 +308,6 @@ public abstract class Projectile extends Entity {
public boolean mayInteract(Level world, BlockPos pos) {
Entity entity = this.getOwner();
@@ -302,7 +302,7 @@ index 0cfbb462e3c359d216e35a972e98585d17c65586..d576943e4f0f0e416d59cebcd475d231
}
}
diff --git a/src/main/java/net/minecraft/world/entity/projectile/SmallFireball.java b/src/main/java/net/minecraft/world/entity/projectile/SmallFireball.java
index db6ae655400ea75dc8b8d53b31bf27e401518279..d2932bf496b0eff90e2f0738b23864cd6db5a495 100644
index 00ac1cdc4734cc57f15433c5c6e7a3a545739d33..f1601114647b62b0b10064ed43058cb867740a63 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/SmallFireball.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/SmallFireball.java
@@ -24,7 +24,7 @@ public class SmallFireball extends Fireball {
@@ -315,7 +315,7 @@ index db6ae655400ea75dc8b8d53b31bf27e401518279..d2932bf496b0eff90e2f0738b23864cd
// CraftBukkit end
}
diff --git a/src/main/java/net/minecraft/world/entity/projectile/WitherSkull.java b/src/main/java/net/minecraft/world/entity/projectile/WitherSkull.java
index 8613008090a9d7cf5cd7c2a598f2c725b5b0cdc6..a66e9826b8283366cec5adb54f79efee47d9df22 100644
index 2867e841e73a3edfdeb83af9d96e0d0cd4116a68..1654b08f76e02e20a8ce5de618f8def82f1feeeb 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/WitherSkull.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/WitherSkull.java
@@ -93,7 +93,7 @@ public class WitherSkull extends AbstractHurtingProjectile {
@@ -393,10 +393,10 @@ index 1a12fee99a8b69fc6c01e1e217575c7c19e13155..4907e0acb7d01b7f57b75579e58ce743
return true;
// Purpur end
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 881e9c611f7f5fc56af316cbf1ff73b680b6e4ce..8b97adcc2461641d89d3340084d15d0bf235ae28 100644
index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd5e10f991 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -109,8 +109,11 @@ public class PurpurWorldConfig {
@@ -112,8 +112,11 @@ public class PurpurWorldConfig {
public boolean boatsDoFallDamage = true;
public boolean disableDropsOnCrammingDeath = false;
public boolean entitiesCanUsePortals = true;
@@ -408,7 +408,7 @@ index 881e9c611f7f5fc56af316cbf1ff73b680b6e4ce..8b97adcc2461641d89d3340084d15d0b
public double tridentLoyaltyVoidReturnHeight = 0.0D;
public double voidDamageHeight = -64.0D;
public double voidDamageDealt = 4.0D;
@@ -122,8 +125,11 @@ public class PurpurWorldConfig {
@@ -125,8 +128,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);
@@ -420,7 +420,7 @@ index 881e9c611f7f5fc56af316cbf1ff73b680b6e4ce..8b97adcc2461641d89d3340084d15d0b
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);
@@ -431,9 +437,11 @@ public class PurpurWorldConfig {
@@ -438,9 +444,11 @@ public class PurpurWorldConfig {
dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils);
}
@@ -432,7 +432,7 @@ index 881e9c611f7f5fc56af316cbf1ff73b680b6e4ce..8b97adcc2461641d89d3340084d15d0b
farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow);
farmlandAlpha = getBoolean("blocks.farmland.use-alpha-farmland", farmlandAlpha);
}
@@ -460,6 +468,11 @@ public class PurpurWorldConfig {
@@ -467,6 +475,11 @@ public class PurpurWorldConfig {
lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether);
}
@@ -444,7 +444,7 @@ index 881e9c611f7f5fc56af316cbf1ff73b680b6e4ce..8b97adcc2461641d89d3340084d15d0b
public boolean respawnAnchorExplode = true;
public double respawnAnchorExplosionPower = 5.0D;
public boolean respawnAnchorExplosionFire = true;
@@ -489,10 +502,12 @@ public class PurpurWorldConfig {
@@ -496,10 +509,12 @@ public class PurpurWorldConfig {
public boolean turtleEggsBreakFromExpOrbs = true;
public boolean turtleEggsBreakFromItems = true;
public boolean turtleEggsBreakFromMinecarts = true;
@@ -457,7 +457,7 @@ index 881e9c611f7f5fc56af316cbf1ff73b680b6e4ce..8b97adcc2461641d89d3340084d15d0b
}
public boolean waterInfinite = true;
@@ -700,6 +715,7 @@ public class PurpurWorldConfig {
@@ -707,6 +722,7 @@ public class PurpurWorldConfig {
public double creeperMaxHealth = 20.0D;
public double creeperChargedChance = 0.0D;
public boolean creeperAllowGriefing = true;
@@ -465,7 +465,7 @@ index 881e9c611f7f5fc56af316cbf1ff73b680b6e4ce..8b97adcc2461641d89d3340084d15d0b
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -712,6 +728,7 @@ public class PurpurWorldConfig {
@@ -719,6 +735,7 @@ public class PurpurWorldConfig {
creeperMaxHealth = getDouble("mobs.creeper.attributes.max_health", creeperMaxHealth);
creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance);
creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing);
@@ -473,7 +473,7 @@ index 881e9c611f7f5fc56af316cbf1ff73b680b6e4ce..8b97adcc2461641d89d3340084d15d0b
}
public boolean dolphinRidable = false;
@@ -806,6 +823,7 @@ public class PurpurWorldConfig {
@@ -813,6 +830,7 @@ public class PurpurWorldConfig {
public double enderDragonMaxY = 320D;
public double enderDragonMaxHealth = 200.0D;
public boolean enderDragonAlwaysDropsFullExp = false;
@@ -481,7 +481,7 @@ index 881e9c611f7f5fc56af316cbf1ff73b680b6e4ce..8b97adcc2461641d89d3340084d15d0b
private void enderDragonSettings() {
enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable);
enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater);
@@ -822,6 +840,7 @@ public class PurpurWorldConfig {
@@ -829,6 +847,7 @@ public class PurpurWorldConfig {
}
enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth);
enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp);
@@ -489,7 +489,7 @@ index 881e9c611f7f5fc56af316cbf1ff73b680b6e4ce..8b97adcc2461641d89d3340084d15d0b
}
public boolean endermanRidable = false;
@@ -830,6 +849,7 @@ public class PurpurWorldConfig {
@@ -837,6 +856,7 @@ public class PurpurWorldConfig {
public double endermanMaxHealth = 40.0D;
public boolean endermanAllowGriefing = true;
public boolean endermanDespawnEvenWithBlock = false;
@@ -497,7 +497,7 @@ index 881e9c611f7f5fc56af316cbf1ff73b680b6e4ce..8b97adcc2461641d89d3340084d15d0b
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -842,6 +862,7 @@ public class PurpurWorldConfig {
@@ -849,6 +869,7 @@ public class PurpurWorldConfig {
endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth);
endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing);
endermanDespawnEvenWithBlock = getBoolean("mobs.enderman.can-despawn-with-held-block", endermanDespawnEvenWithBlock);
@@ -505,7 +505,7 @@ index 881e9c611f7f5fc56af316cbf1ff73b680b6e4ce..8b97adcc2461641d89d3340084d15d0b
}
public boolean endermiteRidable = false;
@@ -864,6 +885,7 @@ public class PurpurWorldConfig {
@@ -871,6 +892,7 @@ public class PurpurWorldConfig {
public boolean evokerRidableInWater = false;
public boolean evokerControllable = true;
public double evokerMaxHealth = 24.0D;
@@ -513,7 +513,7 @@ index 881e9c611f7f5fc56af316cbf1ff73b680b6e4ce..8b97adcc2461641d89d3340084d15d0b
private void evokerSettings() {
evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable);
evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater);
@@ -874,6 +896,7 @@ public class PurpurWorldConfig {
@@ -881,6 +903,7 @@ public class PurpurWorldConfig {
set("mobs.evoker.attributes.max_health", oldValue);
}
evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth);
@@ -521,7 +521,7 @@ index 881e9c611f7f5fc56af316cbf1ff73b680b6e4ce..8b97adcc2461641d89d3340084d15d0b
}
public boolean foxRidable = false;
@@ -882,6 +905,7 @@ public class PurpurWorldConfig {
@@ -889,6 +912,7 @@ public class PurpurWorldConfig {
public double foxMaxHealth = 10.0D;
public boolean foxTypeChangesWithTulips = false;
public int foxBreedingTicks = 6000;
@@ -529,7 +529,7 @@ index 881e9c611f7f5fc56af316cbf1ff73b680b6e4ce..8b97adcc2461641d89d3340084d15d0b
private void foxSettings() {
foxRidable = getBoolean("mobs.fox.ridable", foxRidable);
foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater);
@@ -894,6 +918,7 @@ public class PurpurWorldConfig {
@@ -901,6 +925,7 @@ public class PurpurWorldConfig {
foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth);
foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips);
foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks);
@@ -537,7 +537,7 @@ index 881e9c611f7f5fc56af316cbf1ff73b680b6e4ce..8b97adcc2461641d89d3340084d15d0b
}
public boolean frogRidable = false;
@@ -1353,6 +1378,7 @@ public class PurpurWorldConfig {
@@ -1360,6 +1385,7 @@ public class PurpurWorldConfig {
public boolean piglinRidableInWater = false;
public boolean piglinControllable = true;
public double piglinMaxHealth = 16.0D;
@@ -545,7 +545,7 @@ index 881e9c611f7f5fc56af316cbf1ff73b680b6e4ce..8b97adcc2461641d89d3340084d15d0b
private void piglinSettings() {
piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable);
piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater);
@@ -1363,6 +1389,7 @@ public class PurpurWorldConfig {
@@ -1370,6 +1396,7 @@ public class PurpurWorldConfig {
set("mobs.piglin.attributes.max_health", oldValue);
}
piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth);
@@ -553,7 +553,7 @@ index 881e9c611f7f5fc56af316cbf1ff73b680b6e4ce..8b97adcc2461641d89d3340084d15d0b
}
public boolean piglinBruteRidable = false;
@@ -1385,6 +1412,7 @@ public class PurpurWorldConfig {
@@ -1392,6 +1419,7 @@ public class PurpurWorldConfig {
public boolean pillagerRidableInWater = false;
public boolean pillagerControllable = true;
public double pillagerMaxHealth = 24.0D;
@@ -561,7 +561,7 @@ index 881e9c611f7f5fc56af316cbf1ff73b680b6e4ce..8b97adcc2461641d89d3340084d15d0b
private void pillagerSettings() {
pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable);
pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater);
@@ -1395,6 +1423,7 @@ public class PurpurWorldConfig {
@@ -1402,6 +1430,7 @@ public class PurpurWorldConfig {
set("mobs.pillager.attributes.max_health", oldValue);
}
pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth);
@@ -569,7 +569,7 @@ index 881e9c611f7f5fc56af316cbf1ff73b680b6e4ce..8b97adcc2461641d89d3340084d15d0b
}
public boolean polarBearRidable = false;
@@ -1441,6 +1470,7 @@ public class PurpurWorldConfig {
@@ -1448,6 +1477,7 @@ public class PurpurWorldConfig {
public double rabbitNaturalToast = 0.0D;
public double rabbitNaturalKiller = 0.0D;
public int rabbitBreedingTicks = 6000;
@@ -577,7 +577,7 @@ index 881e9c611f7f5fc56af316cbf1ff73b680b6e4ce..8b97adcc2461641d89d3340084d15d0b
private void rabbitSettings() {
rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable);
rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater);
@@ -1454,12 +1484,14 @@ public class PurpurWorldConfig {
@@ -1461,12 +1491,14 @@ 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);
@@ -592,7 +592,7 @@ index 881e9c611f7f5fc56af316cbf1ff73b680b6e4ce..8b97adcc2461641d89d3340084d15d0b
private void ravagerSettings() {
ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable);
ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater);
@@ -1470,6 +1502,7 @@ public class PurpurWorldConfig {
@@ -1477,6 +1509,7 @@ public class PurpurWorldConfig {
set("mobs.ravager.attributes.max_health", oldValue);
}
ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth);
@@ -600,7 +600,7 @@ index 881e9c611f7f5fc56af316cbf1ff73b680b6e4ce..8b97adcc2461641d89d3340084d15d0b
}
public boolean salmonRidable = false;
@@ -1491,6 +1524,7 @@ public class PurpurWorldConfig {
@@ -1498,6 +1531,7 @@ public class PurpurWorldConfig {
public boolean sheepControllable = true;
public double sheepMaxHealth = 8.0D;
public int sheepBreedingTicks = 6000;
@@ -608,7 +608,7 @@ index 881e9c611f7f5fc56af316cbf1ff73b680b6e4ce..8b97adcc2461641d89d3340084d15d0b
private void sheepSettings() {
sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable);
sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater);
@@ -1502,6 +1536,7 @@ public class PurpurWorldConfig {
@@ -1509,6 +1543,7 @@ public class PurpurWorldConfig {
}
sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth);
sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks);
@@ -616,7 +616,7 @@ index 881e9c611f7f5fc56af316cbf1ff73b680b6e4ce..8b97adcc2461641d89d3340084d15d0b
}
public boolean shulkerRidable = false;
@@ -1524,6 +1559,7 @@ public class PurpurWorldConfig {
@@ -1531,6 +1566,7 @@ public class PurpurWorldConfig {
public boolean silverfishRidableInWater = false;
public boolean silverfishControllable = true;
public double silverfishMaxHealth = 8.0D;
@@ -624,7 +624,7 @@ index 881e9c611f7f5fc56af316cbf1ff73b680b6e4ce..8b97adcc2461641d89d3340084d15d0b
private void silverfishSettings() {
silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable);
silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater);
@@ -1534,6 +1570,7 @@ public class PurpurWorldConfig {
@@ -1541,6 +1577,7 @@ public class PurpurWorldConfig {
set("mobs.silverfish.attributes.max_health", oldValue);
}
silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth);
@@ -632,7 +632,7 @@ index 881e9c611f7f5fc56af316cbf1ff73b680b6e4ce..8b97adcc2461641d89d3340084d15d0b
}
public boolean skeletonRidable = false;
@@ -1610,6 +1647,7 @@ public class PurpurWorldConfig {
@@ -1617,6 +1654,7 @@ public class PurpurWorldConfig {
public int snowGolemSnowBallMax = 20;
public float snowGolemSnowBallModifier = 10.0F;
public double snowGolemAttackDistance = 1.25D;
@@ -640,7 +640,7 @@ index 881e9c611f7f5fc56af316cbf1ff73b680b6e4ce..8b97adcc2461641d89d3340084d15d0b
private void snowGolemSettings() {
snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable);
snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater);
@@ -1627,6 +1665,7 @@ public class PurpurWorldConfig {
@@ -1634,6 +1672,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);
@@ -648,7 +648,7 @@ index 881e9c611f7f5fc56af316cbf1ff73b680b6e4ce..8b97adcc2461641d89d3340084d15d0b
}
public boolean squidRidable = false;
@@ -1802,6 +1841,7 @@ public class PurpurWorldConfig {
@@ -1809,6 +1848,7 @@ public class PurpurWorldConfig {
public int villagerBreedingTicks = 6000;
public boolean villagerClericsFarmWarts = false;
public boolean villagerClericFarmersThrowWarts = true;
@@ -656,7 +656,7 @@ index 881e9c611f7f5fc56af316cbf1ff73b680b6e4ce..8b97adcc2461641d89d3340084d15d0b
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1820,6 +1860,7 @@ public class PurpurWorldConfig {
@@ -1827,6 +1867,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);
@@ -664,7 +664,7 @@ index 881e9c611f7f5fc56af316cbf1ff73b680b6e4ce..8b97adcc2461641d89d3340084d15d0b
}
public boolean vindicatorRidable = false;
@@ -1892,6 +1933,7 @@ public class PurpurWorldConfig {
@@ -1899,6 +1940,7 @@ public class PurpurWorldConfig {
public double witherMaxHealth = 300.0D;
public float witherHealthRegenAmount = 1.0f;
public int witherHealthRegenDelay = 20;
@@ -672,7 +672,7 @@ index 881e9c611f7f5fc56af316cbf1ff73b680b6e4ce..8b97adcc2461641d89d3340084d15d0b
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -1909,6 +1951,7 @@ public class PurpurWorldConfig {
@@ -1916,6 +1958,7 @@ public class PurpurWorldConfig {
witherMaxHealth = getDouble("mobs.wither.attributes.max_health", witherMaxHealth);
witherHealthRegenAmount = (float) getDouble("mobs.wither.health-regen-amount", witherHealthRegenAmount);
witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay);
@@ -680,7 +680,7 @@ index 881e9c611f7f5fc56af316cbf1ff73b680b6e4ce..8b97adcc2461641d89d3340084d15d0b
}
public boolean witherSkeletonRidable = false;
@@ -1980,6 +2023,7 @@ public class PurpurWorldConfig {
@@ -1987,6 +2030,7 @@ public class PurpurWorldConfig {
public double zombieJockeyChance = 0.05D;
public boolean zombieJockeyTryExistingChickens = true;
public boolean zombieAggressiveTowardsVillagerWhenLagging = true;
@@ -688,7 +688,7 @@ index 881e9c611f7f5fc56af316cbf1ff73b680b6e4ce..8b97adcc2461641d89d3340084d15d0b
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -1995,6 +2039,7 @@ public class PurpurWorldConfig {
@@ -2002,6 +2046,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 58e8905a4b98e2e1ee372b99bdc3de9815063ac9..443bf39734ba2b0a7cdf0362d415ff17
// org.bukkit.event.block.NotePlayEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callNotePlayEvent(world, blockposition, data.getValue(NoteBlock.INSTRUMENT), data.getValue(NoteBlock.NOTE)); // Paper - move event into block event handler
// if (event.isCancelled()) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 8b97adcc2461641d89d3340084d15d0bf235ae28..f16a377ebf9134083827862cf0455719a0b9d859 100644
index 8371e153e55020ffd855f5cb876e3edd5e10f991..f856cdf0d762426cdd316dcaf935f6ca0b502f62 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -112,6 +112,7 @@ public class PurpurWorldConfig {
@@ -115,6 +115,7 @@ public class PurpurWorldConfig {
public boolean entitiesPickUpLootBypassMobGriefing = false;
public boolean fireballsBypassMobGriefing = false;
public boolean milkCuresBadOmen = true;
@@ -33,7 +33,7 @@ index 8b97adcc2461641d89d3340084d15d0bf235ae28..f16a377ebf9134083827862cf0455719
public boolean persistentDroppableEntityDisplayNames = false;
public boolean projectilesBypassMobGriefing = false;
public double tridentLoyaltyVoidReturnHeight = 0.0D;
@@ -128,6 +129,7 @@ public class PurpurWorldConfig {
@@ -131,6 +132,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

@@ -108,10 +108,10 @@ index 6e061bf2951f0bd86364da3129f365799edda24c..3cc4f0020829ac935c325d5df7a16aab
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index f16a377ebf9134083827862cf0455719a0b9d859..863194a8f34f999965bb0e71de79bc5e50ca1671 100644
index f856cdf0d762426cdd316dcaf935f6ca0b502f62..53a2926f0437b84c7da7fa5beee5d20d97a20966 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -111,6 +111,7 @@ public class PurpurWorldConfig {
@@ -114,6 +114,7 @@ public class PurpurWorldConfig {
public boolean entitiesCanUsePortals = true;
public boolean entitiesPickUpLootBypassMobGriefing = false;
public boolean fireballsBypassMobGriefing = false;
@@ -119,7 +119,7 @@ index f16a377ebf9134083827862cf0455719a0b9d859..863194a8f34f999965bb0e71de79bc5e
public boolean milkCuresBadOmen = true;
public boolean noteBlockIgnoreAbove = false;
public boolean persistentDroppableEntityDisplayNames = false;
@@ -128,6 +129,7 @@ public class PurpurWorldConfig {
@@ -131,6 +132,7 @@ 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);

View File

@@ -37,10 +37,10 @@ index d92ea9f29b9d919871662977d3e3eb41ddf2eb35..e5a3e3a4367dfb924624a913b816b3fd
if (CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.DIRT.defaultBlockState()).isCancelled()) {
return;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 863194a8f34f999965bb0e71de79bc5e50ca1671..7f8aa662059ebb28825380f37df45408a5d626bc 100644
index 53a2926f0437b84c7da7fa5beee5d20d97a20966..8821ac74c9999235bbfc9e5d480f78f6c3edba35 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -444,10 +444,16 @@ public class PurpurWorldConfig {
@@ -451,10 +451,16 @@ public class PurpurWorldConfig {
public boolean farmlandBypassMobGriefing = false;
public boolean farmlandGetsMoistFromBelow = false;
public boolean farmlandAlpha = false;

View File

@@ -66,10 +66,10 @@ index 9dcb46959c723723a369cde50427cbee0349f5a1..6bd31ed84049bc36a060b5e01b0599bf
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 7f8aa662059ebb28825380f37df45408a5d626bc..22e2a2f1cbd06efcf964e7f844427b1e7cae57e1 100644
index 8821ac74c9999235bbfc9e5d480f78f6c3edba35..a3c4433a5fe19ca6475f98214768b097e3495353 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -98,10 +98,16 @@ public class PurpurWorldConfig {
@@ -101,10 +101,16 @@ public class PurpurWorldConfig {
public float armorstandStepHeight = 0.0F;
public boolean armorstandSetNameVisible = false;
public boolean armorstandFixNametags = false;

View File

@@ -37,10 +37,10 @@ index e2e8128fc7a88ddf5599e6cb5dc84d5858c062e7..42822c44dbe18f1cffb269b35eb554ef
this.isInsidePortal = true;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 22e2a2f1cbd06efcf964e7f844427b1e7cae57e1..3fb8b19465851ba32c89282f80256c0c63312550 100644
index a3c4433a5fe19ca6475f98214768b097e3495353..da34e98f9c62336a07d9ee16b36819ef840738d6 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -329,6 +329,7 @@ public class PurpurWorldConfig {
@@ -332,6 +332,7 @@ public class PurpurWorldConfig {
public int playerDeathExpDropMax = 100;
public boolean teleportIfOutsideBorder = false;
public boolean totemOfUndyingWorksInInventory = false;
@@ -48,11 +48,11 @@ index 22e2a2f1cbd06efcf964e7f844427b1e7cae57e1..3fb8b19465851ba32c89282f80256c0c
private void playerSettings() {
if (PurpurConfig.version < 19) {
boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer);
@@ -346,6 +347,7 @@ public class PurpurWorldConfig {
@@ -349,6 +350,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);
+ playerFixStuckPortal = getBoolean("gameplay-mechanics.player.fix-stuck-in-portal", playerFixStuckPortal);
}
public int snowballDamage = -1;
private static boolean projectileDespawnRateSettingsMigrated = false;

View File

@@ -59,10 +59,10 @@ index dd514cbf2f03b688eb4d8cd49052f1775d3adebb..ed33573a96e96d557156fbe2f725e3d6
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 ae397e14d579d4039d9a8b70a29d96b8a9cf944e..eaa12080ab5a533256837436d35bccdd4d9877e8 100644
index 6d54dd2fa746e4daf5c43ecc33f5f4afc370f73a..6e07ea5ea28e20faf79ddfc9225fe462a5f97e29 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -111,6 +111,7 @@ public class PurpurWorldConfig {
@@ -114,6 +114,7 @@ public class PurpurWorldConfig {
}
public boolean useBetterMending = false;
@@ -70,7 +70,7 @@ index ae397e14d579d4039d9a8b70a29d96b8a9cf944e..eaa12080ab5a533256837436d35bccdd
public boolean boatEjectPlayersOnLand = false;
public boolean boatsDoFallDamage = true;
public boolean disableDropsOnCrammingDeath = false;
@@ -129,6 +130,7 @@ public class PurpurWorldConfig {
@@ -132,6 +133,7 @@ public class PurpurWorldConfig {
public int animalBreedingCooldownSeconds = 0;
private void miscGameplayMechanicsSettings() {
useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending);

View File

@@ -52,10 +52,10 @@ index e1493079d06a91f3e14e333e2a0408725a8f5bea..59d7f4ef118b2a87d1fe9cc1dd2fea89
this.onDestroyedBy(source);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index eaa12080ab5a533256837436d35bccdd4d9877e8..a03de24458a11d5a09b30d7211eab9556d5d034f 100644
index 6e07ea5ea28e20faf79ddfc9225fe462a5f97e29..72327a0a22768828bbc04ecccf300bd7160d3305 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -451,6 +451,35 @@ public class PurpurWorldConfig {
@@ -458,6 +458,35 @@ public class PurpurWorldConfig {
dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils);
}

View File

@@ -29,10 +29,10 @@ index 1329de5d3e6294d2eb7b6852b8cad19f0f4dba77..6818618cd2f702e894ac4098b4eb5afc
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index a03de24458a11d5a09b30d7211eab9556d5d034f..64d115cd17f9239b34d1d4f91a77c33f28da79d5 100644
index 72327a0a22768828bbc04ecccf300bd7160d3305..e10c925f5dbbe9ac73824e12446cd86c3d8b7188 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -902,6 +902,7 @@ public class PurpurWorldConfig {
@@ -909,6 +909,7 @@ public class PurpurWorldConfig {
public boolean enderDragonAlwaysDropsFullExp = false;
public boolean enderDragonBypassMobGriefing = false;
public boolean enderDragonTakeDamageFromWater = false;
@@ -40,7 +40,7 @@ index a03de24458a11d5a09b30d7211eab9556d5d034f..64d115cd17f9239b34d1d4f91a77c33f
private void enderDragonSettings() {
enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable);
enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater);
@@ -920,6 +921,7 @@ public class PurpurWorldConfig {
@@ -927,6 +928,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 a03de24458a11d5a09b30d7211eab9556d5d034f..64d115cd17f9239b34d1d4f91a77c33f
}
public boolean endermanRidable = false;
@@ -2114,6 +2116,7 @@ public class PurpurWorldConfig {
@@ -2121,6 +2123,7 @@ public class PurpurWorldConfig {
public int witherHealthRegenDelay = 20;
public boolean witherBypassMobGriefing = false;
public boolean witherTakeDamageFromWater = false;
@@ -56,7 +56,7 @@ index a03de24458a11d5a09b30d7211eab9556d5d034f..64d115cd17f9239b34d1d4f91a77c33f
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -2133,6 +2136,7 @@ public class PurpurWorldConfig {
@@ -2140,6 +2143,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

@@ -70,7 +70,7 @@ index d437630610b3561029a88a075ab3ed0ad3abcfe2..019e095647225f3d61f0759c8787171a
if (cause != null) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 47f4c08c354c2d683dd0959c22c68eb78920a5da..cd2474c2bb19ef83a469daf8b28af7f9c14f0d81 100644
index f04eeaf631ccd8a4445c8401c0eb2eac51bdddc2..b0bd88370ad1693afc52a69c5d0d0446027d4189 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -177,6 +177,7 @@ public class PurpurConfig {
@@ -95,10 +95,10 @@ index 47f4c08c354c2d683dd0959c22c68eb78920a5da..cd2474c2bb19ef83a469daf8b28af7f9
public static String serverModName = "Purpur";
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 64d115cd17f9239b34d1d4f91a77c33f28da79d5..4c2104933f76b314764bbbd050d9700f70851a44 100644
index e10c925f5dbbe9ac73824e12446cd86c3d8b7188..c5d4aeb82f41d28ec36e484faf5b453667e63723 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -191,6 +191,8 @@ public class PurpurWorldConfig {
@@ -194,6 +194,8 @@ public class PurpurWorldConfig {
public List<Item> itemImmuneToExplosion = new ArrayList<>();
public List<Item> itemImmuneToFire = new ArrayList<>();
public List<Item> itemImmuneToLightning = new ArrayList<>();
@@ -107,7 +107,7 @@ index 64d115cd17f9239b34d1d4f91a77c33f28da79d5..4c2104933f76b314764bbbd050d9700f
private void itemSettings() {
itemImmuneToCactus.clear();
getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> {
@@ -228,6 +230,8 @@ public class PurpurWorldConfig {
@@ -231,6 +233,8 @@ public class PurpurWorldConfig {
Item item = Registry.ITEM.get(new ResourceLocation(key.toString()));
if (item != Items.AIR) itemImmuneToLightning.add(item);
});

View File

@@ -30,10 +30,10 @@ index 6a7a83a3fc58cbb7e97c0ba13715a8e6ea5f6de6..e9ee22f12f542f0c2d1a4ecedc891d70
if (human) {
// PAIL: Be sure to drag all this code from the EntityHuman subclass each update.
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 4c2104933f76b314764bbbd050d9700f70851a44..c003e9a99467b1a10139d1ef27eaa5d853ced27f 100644
index c5d4aeb82f41d28ec36e484faf5b453667e63723..4ec3c8caa157d4f50028122c03a80c92a6785d8c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -336,6 +336,7 @@ public class PurpurWorldConfig {
@@ -339,6 +339,7 @@ public class PurpurWorldConfig {
public boolean teleportIfOutsideBorder = false;
public boolean totemOfUndyingWorksInInventory = false;
public boolean playerFixStuckPortal = false;
@@ -41,11 +41,11 @@ index 4c2104933f76b314764bbbd050d9700f70851a44..c003e9a99467b1a10139d1ef27eaa5d8
private void playerSettings() {
if (PurpurConfig.version < 19) {
boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer);
@@ -354,6 +355,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);
+ creativeOnePunch = getBoolean("gameplay-mechanics.player.one-punch-in-creative", creativeOnePunch);
}
public int snowballDamage = -1;
private static boolean projectileDespawnRateSettingsMigrated = false;

View File

@@ -8,7 +8,7 @@ Subject: [PATCH] Configurable Ender Pearl cooldown, damage, and Endermite RNG
- Endermite spawn chance
diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java
index 22d5f5aac2f4c7ce8f490d4851ef3d637a9c7d06..33bfd33aa2fdf8e9da4dbd333721eb4449fddae4 100644
index 23f77dfc6df93ef6a70e14a7e410263d39fae2cb..b72618209be2b99221686aef0d3732785bc55357 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java
@@ -69,7 +69,7 @@ public class ThrownEnderpearl extends ThrowableItemProjectile {
@@ -43,10 +43,10 @@ index 749ab72edc0d2e9c6f1161415ab8d59d3d6ca976..897c202c0905040072a06fdfa2032a7f
// Paper end
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 c003e9a99467b1a10139d1ef27eaa5d853ced27f..90ff91029c4a25c63b316865a23facafac570d15 100644
index 4ec3c8caa157d4f50028122c03a80c92a6785d8c..57450c6f3da1289b15ecc821614018506c60601f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -193,6 +193,10 @@ public class PurpurWorldConfig {
@@ -196,6 +196,10 @@ public class PurpurWorldConfig {
public List<Item> itemImmuneToLightning = new ArrayList<>();
public boolean dontRunWithScissors = false;
public double scissorsRunningDamage = 1D;
@@ -57,7 +57,7 @@ index c003e9a99467b1a10139d1ef27eaa5d853ced27f..90ff91029c4a25c63b316865a23facaf
private void itemSettings() {
itemImmuneToCactus.clear();
getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> {
@@ -232,6 +236,10 @@ public class PurpurWorldConfig {
@@ -235,6 +239,10 @@ public class PurpurWorldConfig {
});
dontRunWithScissors = getBoolean("gameplay-mechanics.item.shears.damage-if-sprinting", dontRunWithScissors);
scissorsRunningDamage = getDouble("gameplay-mechanics.item.shears.sprinting-damage", scissorsRunningDamage);

View File

@@ -18,10 +18,10 @@ index 4980b0b46e75a4bc914cb3719d8b394fbcd8c224..c74e15d4776d98f288454eb609a798a1
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 90ff91029c4a25c63b316865a23facafac570d15..9d33d2e2d9135586149497e48c1581e2ccef61f4 100644
index 57450c6f3da1289b15ecc821614018506c60601f..bfe0bf2572a48fee700bbbb2aa756ab61827b960 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -345,6 +345,7 @@ public class PurpurWorldConfig {
@@ -348,6 +348,7 @@ public class PurpurWorldConfig {
public boolean totemOfUndyingWorksInInventory = false;
public boolean playerFixStuckPortal = false;
public boolean creativeOnePunch = false;
@@ -29,11 +29,11 @@ index 90ff91029c4a25c63b316865a23facafac570d15..9d33d2e2d9135586149497e48c1581e2
private void playerSettings() {
if (PurpurConfig.version < 19) {
boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer);
@@ -364,6 +365,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);
+ playerSleepNearMonsters = getBoolean("gameplay-mechanics.player.sleep-ignore-nearby-mobs", playerSleepNearMonsters);
}
public int snowballDamage = -1;
private static boolean projectileDespawnRateSettingsMigrated = false;

View File

@@ -18,10 +18,10 @@ index 6c9b3bb54b163cb2a6c05993e792558e983feecc..99e4c23140b85d37c7b266c2fcf57c94
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 9d33d2e2d9135586149497e48c1581e2ccef61f4..2f72f95cb086ef641710022cffa9a6396842b13c 100644
index bfe0bf2572a48fee700bbbb2aa756ab61827b960..da1ce49cf9c590aa9e838315981ee74d20679675 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -948,6 +948,8 @@ public class PurpurWorldConfig {
@@ -955,6 +955,8 @@ public class PurpurWorldConfig {
public boolean endermanDespawnEvenWithBlock = false;
public boolean endermanBypassMobGriefing = false;
public boolean endermanTakeDamageFromWater = true;
@@ -30,7 +30,7 @@ index 9d33d2e2d9135586149497e48c1581e2ccef61f4..2f72f95cb086ef641710022cffa9a639
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -957,11 +959,17 @@ public class PurpurWorldConfig {
@@ -964,11 +966,17 @@ public class PurpurWorldConfig {
set("mobs.enderman.attributes.max-health", null);
set("mobs.enderman.attributes.max_health", oldValue);
}

View File

@@ -20,10 +20,10 @@ index 99e4c23140b85d37c7b266c2fcf57c94fd19ec7c..b0c4c90ab2d532a60911d53ac4764dcf
} 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 2f72f95cb086ef641710022cffa9a6396842b13c..ba7ecc009bd808d2c93017d2bdc1511f01291bcb 100644
index da1ce49cf9c590aa9e838315981ee74d20679675..bd3328d3b41f7514fe02aba4cba7a74745565c67 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -950,6 +950,8 @@ public class PurpurWorldConfig {
@@ -957,6 +957,8 @@ public class PurpurWorldConfig {
public boolean endermanTakeDamageFromWater = true;
public boolean endermanAggroEndermites = true;
public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false;
@@ -32,7 +32,7 @@ index 2f72f95cb086ef641710022cffa9a6396842b13c..ba7ecc009bd808d2c93017d2bdc1511f
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -970,6 +972,8 @@ public class PurpurWorldConfig {
@@ -977,6 +979,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);

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