phantom size; slime/magmacube/phantom attack_damage

This commit is contained in:
BillyGalbreath 2022-01-17 21:38:01 -06:00
parent 0242f72ba9
commit 930084af05
No known key found for this signature in database
GPG Key ID: F7D735BF70911FF4
188 changed files with 1086 additions and 1001 deletions

View File

@ -2355,7 +2355,7 @@ index 9a6c67b614944f841813ec2892381c3342bc365c..e80176708db486190dd527e3ade5fc69
this.wasOnGround = this.entity.isOnGround();
this.teleportDelay = 0;
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index a2abb8aa1a257ccd2b5dbddc037fffc6eb600758..27791d82b3343f14ff99efd4aed2193ea276b852 100644
index a2abb8aa1a257ccd2b5dbddc037fffc6eb600758..8cdacd7ed9a26e6757eeff89545fde21ddb80fd2 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -667,7 +667,20 @@ public class ServerLevel extends Level implements WorldGenLevel {
@ -2398,7 +2398,7 @@ index a2abb8aa1a257ccd2b5dbddc037fffc6eb600758..27791d82b3343f14ff99efd4aed2193e
final BlockPos.MutableBlockPos blockposition = this.chunkTickMutablePosition; // Paper - use mutable to reduce allocation rate, final to force compile fail on change
- if (!this.paperConfig.disableThunder && flag && this.isThundering() && this.spigotConfig.thunderChance > 0 && this.random.nextInt(this.spigotConfig.thunderChance) == 0) { // Spigot // Paper - disable thunder
+ if (!this.paperConfig.disableThunder && flag && this.isThundering() && this.spigotConfig.thunderChance > 0 && this.random.nextInt(this.spigotConfig.thunderChance) == 0 && chunk.shouldDoLightning(this.random)) { // Spigot // Paper - disable thunder // Pufferfish - replace random with shouldDoLightning
+ if (!this.paperConfig.disableThunder && flag && this.isThundering() && this.spigotConfig.thunderChance > 0 && /*this.random.nextInt(this.spigotConfig.thunderChance) == 0 &&*/ chunk.shouldDoLightning(this.random)) { // Spigot // Paper - disable thunder // Pufferfish - replace random with shouldDoLightning
blockposition.set(this.findLightningTargetAround(this.getBlockRandomPos(j, 0, k, 15))); // Paper
if (this.isRainingAt(blockposition)) {
DifficultyInstance difficultydamagescaler = this.getCurrentDifficultyAt(blockposition);
@ -3808,7 +3808,7 @@ index ed3518fe7c841d9e1a9c97626acaa3d765a6d76f..da00f75ccc9f8c2e2174d4450479202a
@Override
diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
index 7567a8bf848c82b27383f084056cb43c41df6d0c..2b697f0d0b59b5af5aa59850d5e501cde9acf577 100644
index 7567a8bf848c82b27383f084056cb43c41df6d0c..9e9cdabefce3767a2e482f7cc5eb69c635ea17a7 100644
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
@@ -94,6 +94,18 @@ public class LevelChunk extends ChunkAccess {
@ -3820,7 +3820,7 @@ index 7567a8bf848c82b27383f084056cb43c41df6d0c..2b697f0d0b59b5af5aa59850d5e501cd
+ // shouldDoLightning compiles down to 29 bytes, which with the default of 35 byte inlining should guarantee an inline
+ public final boolean shouldDoLightning(java.util.Random random) {
+ if (this.lightningTick-- <= 0) {
+ this.lightningTick = random.nextInt(100000) << 1;
+ this.lightningTick = random.nextInt(this.level.spigotConfig.thunderChance) << 1;
+ return true;
+ }
+ return false;

View File

@ -172,7 +172,7 @@ index 55bae3efbc630be6d40d415509de4c3e744a5004..9d649923e28f4839106b336fce41bd3f
.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..0272581e93b573937ee4d449687217f7564887d7
index 0000000000000000000000000000000000000000..806ed097578eb75b25a222b95ef7cc32a4293416
--- /dev/null
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -0,0 +1,159 @@
@ -239,8 +239,8 @@ index 0000000000000000000000000000000000000000..0272581e93b573937ee4d449687217f7
+ commands = new HashMap<>();
+ commands.put("purpur", new PurpurCommand("purpur"));
+
+ version = getInt("config-version", 24);
+ set("config-version", 24);
+ version = getInt("config-version", 25);
+ set("config-version", 25);
+
+ readConfig(PurpurConfig.class, null);
+ }
@ -337,14 +337,15 @@ index 0000000000000000000000000000000000000000..0272581e93b573937ee4d449687217f7
+}
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..ad0c7304f8791b2dca92d9e0c5412354e174d5be
index 0000000000000000000000000000000000000000..0ce93836629522c2ff2a57226583009302271daf
--- /dev/null
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -0,0 +1,90 @@
@@ -0,0 +1,91 @@
+package org.purpurmc.purpur;
+
+import net.minecraft.core.Registry;
+import net.minecraft.resources.ResourceLocation;
+import net.minecraft.util.Mth;
+import net.minecraft.world.item.DyeColor;
+import net.minecraft.world.item.Item;
+import net.minecraft.world.item.Items;

View File

@ -34,7 +34,7 @@ index 31950910c206a5ab21ef2c9bc7ea284bd3e45b54..54ce8f0b9219790f6317c3eb95b81cad
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 27791d82b3343f14ff99efd4aed2193ea276b852..07e602d4319095f7a805b930f6afe1b0251cc5b5 100644
index 8cdacd7ed9a26e6757eeff89545fde21ddb80fd2..cd01b2f06b0dd34c3261d84beead96bba76cf825 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -211,6 +211,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@ -1303,7 +1303,7 @@ index a781048b0c43e63e441e6afecec125d7f838c342..d3311df20c37517e7c4ae1b8fbee6add
this.targetSelector.addGoal(1, new NearestAttackableTargetGoal<>(this, Turtle.class, 10, false, false, Turtle.BABY_ON_LAND_SELECTOR));
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java
index f9be50049325a1139d67ccf590caeeceadb2fd23..ed8890d6a5431412248722182c697844f7792c6e 100644
index 26e1898f6c9d716f8efa7b0cc4b9ad947e36ebd6..906b0f0b7907f84f9a4344d8a06e5dcfc2c6d8a8 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Panda.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java
@@ -107,6 +107,27 @@ public class Panda extends Animal {
@ -4252,7 +4252,7 @@ index 056e4c2f7f632dadc0015710c032a0b718d46ff9..54a545836f3c318e7f90d43aca7fea8a
this.level.getProfiler().pop();
this.updateActivity();
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
index e72e9b748b3f3e34baddf01366c703efba50c67c..d6ae8468f5d507b8278fa887d1d1770db212da0c 100644
index 35f0203d260c11b729c30e6241316fda4b70bfd7..ceb15697d28799064b3fab56b5f53b6249e81789 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
@@ -104,11 +104,25 @@ public class Zombie extends Monster {
@ -4653,7 +4653,7 @@ index 35cc150adf51f79e2fccef8b094c90554aafbee2..b6f2bae38781f16c46ad515f34d82907
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 fdfb20170c27711085aa0772866876035e0d98c2..5350ffab8477a2da4891132cf8b7a65cf776574b 100644
index 806ed097578eb75b25a222b95ef7cc32a4293416..b6a1701f98d831b3c8794f63f33fad3aa40fac67 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -156,4 +156,9 @@ public class PurpurConfig {
@ -4667,10 +4667,10 @@ index fdfb20170c27711085aa0772866876035e0d98c2..5350ffab8477a2da4891132cf8b7a65c
+ }
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index ad0c7304f8791b2dca92d9e0c5412354e174d5be..b8103294d3963a9bfe7d4f4199be866158f580ec 100644
index 0ce93836629522c2ff2a57226583009302271daf..aec3628645d75ae0b4bf7207a4c80af465561151 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -87,4 +87,532 @@ public class PurpurWorldConfig {
@@ -88,4 +88,532 @@ public class PurpurWorldConfig {
final Map<String, Object> value = PurpurConfig.getMap("world-settings." + worldName + "." + path, null);
return value.isEmpty() ? fallback : value;
}

View File

@ -238,7 +238,7 @@ index d3311df20c37517e7c4ae1b8fbee6add6d32332e..ccb18fea0e03d08405b0fff5e9df5025
public boolean isTrusting() {
diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java
index ed8890d6a5431412248722182c697844f7792c6e..1a4434432516f8b7f2bbbc64f9554c340530ce89 100644
index 906b0f0b7907f84f9a4344d8a06e5dcfc2c6d8a8..45a92265ac626ae401342e6a21b0ba271ba5b371 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Panda.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java
@@ -126,6 +126,12 @@ public class Panda extends Animal {
@ -982,42 +982,74 @@ index 647796e6f3352582c49c780a860a617ce7b44ddd..4ed0fb155dfae60cee24dc0752fa525c
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java b/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java
index 95741b63d68bdf815212d718c3cc0fc689c0e4de..68abf045f0510abc45bdc2fd8c147f27c2fa784d 100644
index 95741b63d68bdf815212d718c3cc0fc689c0e4de..cf69ac8710df2f01fed76389d53fb121a2319273 100644
--- a/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java
+++ b/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java
@@ -42,6 +42,16 @@ public class MagmaCube extends Slime {
@@ -42,6 +42,26 @@ public class MagmaCube extends Slime {
public float getJumpPower() {
return 0.42F * this.getBlockJumpFactor(); // from EntityLiving
}
+
+ @Override
+ public void initAttributes() {
+ this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.generateMaxHealth());
+ protected String getMaxHealthEquation() {
+ return level.purpurConfig.magmaCubeMaxHealth;
+ }
+
+ @Override
+ protected String getMaxHealthEquation() {
+ return level.purpurConfig.magmaCubeMaxHealth;
+ protected String getAttackDamageEquation() {
+ return level.purpurConfig.magmaCubeAttackDamage;
+ }
+
+ @Override
+ protected java.util.Map<Integer, Double> getMaxHealthCache() {
+ return level.purpurConfig.magmaCubeMaxHealthCache;
+ }
+
+ @Override
+ protected java.util.Map<Integer, Double> getAttackDamageCache() {
+ return level.purpurConfig.magmaCubeAttackDamageCache;
+ }
// Purpur end
public static AttributeSupplier.Builder createAttributes() {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
index e4401125da58e0a82a30f9b4a137f5804ae2a8dc..f4da51e75b3f8772f0d3de17ef4699845a08fdd1 100644
index e4401125da58e0a82a30f9b4a137f5804ae2a8dc..59289140f51ea63e81ebebc97d5a54fc2b0e1914 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -111,6 +111,11 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -111,6 +111,21 @@ public class Phantom extends FlyingMob implements Enemy {
level.addFreshEntity(flames);
return true;
}
+
+ @Override
+ public void initAttributes() {
+ this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.phantomMaxHealth);
+ private double getFromCache(java.util.function.Supplier<String> equation, java.util.function.Supplier<java.util.Map<Integer, Double>> cache, java.util.function.Supplier<Double> defaultValue) {
+ int size = getPhantomSize();
+ Double value = cache.get().get(size);
+ if (value == null) {
+ try {
+ scriptEngine.eval("size = " + size);
+ value = (double) scriptEngine.eval(equation.get());
+ } catch (Exception e) {
+ value = defaultValue.get();
+ }
+ cache.get().put(size, value);
+ }
+ return value;
+ }
// Purpur end
@Override
@@ -145,7 +160,10 @@ public class Phantom extends FlyingMob implements Enemy {
private void updatePhantomSizeInfo() {
this.refreshDimensions();
- this.getAttribute(Attributes.ATTACK_DAMAGE).setBaseValue((double) (6 + this.getPhantomSize()));
+ // Purpur start
+ this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(getFromCache(() -> this.level.purpurConfig.phantomMaxHealth, () -> this.level.purpurConfig.phantomMaxHealthCache, () -> 20.0D));
+ this.getAttribute(Attributes.ATTACK_DAMAGE).setBaseValue(getFromCache(() -> this.level.purpurConfig.phantomAttackDamage, () -> this.level.purpurConfig.phantomAttackDamageCache, () -> (double) 6 + this.getPhantomSize()));
+ // Purpur end
}
public int getPhantomSize() {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Pillager.java b/src/main/java/net/minecraft/world/entity/monster/Pillager.java
index 1457c0eda11000a0513e601ea60b6ca4a5b463b6..2c7155f2b3c29ff1f777ff6b6d0b19ef922614ae 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Pillager.java
@ -1099,49 +1131,59 @@ index a8c6971cc7d004bdc61a2b49e4542a8af46e8539..9448bdd5026f35bba805dee19ceead5d
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Slime.java b/src/main/java/net/minecraft/world/entity/monster/Slime.java
index 08935565ca3d1ee779abc491aa1e9eec13342bb5..3a3f5d6fb7ad5bb6082016c7415c25ab48405780 100644
index 08935565ca3d1ee779abc491aa1e9eec13342bb5..296165ff7b1ac5c6690fb3cc195a3ae3e6115611 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Slime.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Slime.java
@@ -101,6 +101,30 @@ public class Slime extends Mob implements Enemy {
@@ -101,6 +101,37 @@ public class Slime extends Mob implements Enemy {
}
return true; // do not jump() in wasd controller, let vanilla controller handle
}
+
+ @Override
+ public void initAttributes() {
+ this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.generateMaxHealth());
+ }
+
+ protected String getMaxHealthEquation() {
+ return level.purpurConfig.slimeMaxHealth;
+ }
+
+ protected double generateMaxHealth() {
+ protected String getAttackDamageEquation() {
+ return level.purpurConfig.slimeAttackDamage;
+ }
+
+ protected java.util.Map<Integer, Double> getMaxHealthCache() {
+ return level.purpurConfig.slimeMaxHealthCache;
+ }
+
+ protected java.util.Map<Integer, Double> getAttackDamageCache() {
+ return level.purpurConfig.slimeAttackDamageCache;
+ }
+
+ protected double getFromCache(java.util.function.Supplier<String> equation, java.util.function.Supplier<java.util.Map<Integer, Double>> cache, java.util.function.Supplier<Double> defaultValue) {
+ int size = getSize();
+ Double maxHealth = level.purpurConfig.slimeMaxHealthCache.get(size);
+ if (maxHealth == null) {
+ Double value = cache.get().get(size);
+ if (value == null) {
+ try {
+ scriptEngine.eval("size = " + size);
+ maxHealth = (double) scriptEngine.eval(getMaxHealthEquation());
+ value = (double) scriptEngine.eval(equation.get());
+ } catch (Exception e) {
+ maxHealth = (double) size * size;
+ value = defaultValue.get();
+ }
+ level.purpurConfig.slimeMaxHealthCache.put(size, maxHealth);
+ cache.get().put(size, value);
+ }
+ return maxHealth;
+ return value;
+ }
// Purpur end
@Override
@@ -129,7 +153,7 @@ public class Slime extends Mob implements Enemy {
@@ -129,9 +160,9 @@ public class Slime extends Mob implements Enemy {
this.entityData.set(Slime.ID_SIZE, j);
this.reapplyPosition();
this.refreshDimensions();
- this.getAttribute(Attributes.MAX_HEALTH).setBaseValue((double) (j * j));
+ this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(generateMaxHealth()); // Purpur
+ this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(getFromCache(this::getMaxHealthEquation, this::getMaxHealthCache, () -> (double) size * size)); // Purpur
this.getAttribute(Attributes.MOVEMENT_SPEED).setBaseValue((double) (0.2F + 0.1F * (float) j));
this.getAttribute(Attributes.ATTACK_DAMAGE).setBaseValue((double) j);
- this.getAttribute(Attributes.ATTACK_DAMAGE).setBaseValue((double) j);
+ this.getAttribute(Attributes.ATTACK_DAMAGE).setBaseValue(getFromCache(this::getAttackDamageEquation, this::getAttackDamageCache, () -> (double) j)); // Purpur
if (heal) {
this.setHealth(this.getMaxHealth());
}
diff --git a/src/main/java/net/minecraft/world/entity/monster/Spider.java b/src/main/java/net/minecraft/world/entity/monster/Spider.java
index a31a5186a48e6ba90c2a87bec104d10bdc3c50d5..d095df11ffc34dd641bc2795365a4d1dda8cbc88 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Spider.java
@ -1422,10 +1464,10 @@ index ab648e7dafd78f414646cef96b422e87da5c1982..0bcfece84ac11f04671ed38a99b31da9
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index b8103294d3963a9bfe7d4f4199be866158f580ec..373bdce6590564bd9de4a571a91bbf05e287ee08 100644
index aec3628645d75ae0b4bf7207a4c80af465561151..a524f120c7ba18cc0f89fa365a6097bebb48aea4 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -98,257 +98,573 @@ public class PurpurWorldConfig {
@@ -99,257 +99,579 @@ public class PurpurWorldConfig {
}
public boolean axolotlRidable = false;
@ -1905,6 +1947,9 @@ index b8103294d3963a9bfe7d4f4199be866158f580ec..373bdce6590564bd9de4a571a91bbf05
public boolean magmaCubeRidable = false;
public boolean magmaCubeRidableInWater = false;
+ public String magmaCubeMaxHealth = "size * size";
+ public String magmaCubeAttackDamage = "size";
+ public Map<Integer, Double> magmaCubeMaxHealthCache = new HashMap<>();
+ public Map<Integer, Double> magmaCubeAttackDamageCache = new HashMap<>();
private void magmaCubeSettings() {
magmaCubeRidable = getBoolean("mobs.magma_cube.ridable", magmaCubeRidable);
magmaCubeRidableInWater = getBoolean("mobs.magma_cube.ridable-in-water", magmaCubeRidableInWater);
@ -1914,6 +1959,9 @@ index b8103294d3963a9bfe7d4f4199be866158f580ec..373bdce6590564bd9de4a571a91bbf05
+ set("mobs.magma_cube.attributes.max_health", oldValue);
+ }
+ magmaCubeMaxHealth = getString("mobs.magma_cube.attributes.max_health", magmaCubeMaxHealth);
+ magmaCubeAttackDamage = getString("mobs.magma_cube.attributes.attack_damage", magmaCubeAttackDamage);
+ magmaCubeMaxHealthCache.clear();
+ magmaCubeAttackDamageCache.clear();
}
public boolean mooshroomRidable = false;
@ -1999,24 +2047,34 @@ index b8103294d3963a9bfe7d4f4199be866158f580ec..373bdce6590564bd9de4a571a91bbf05
}
public boolean phantomRidable = false;
@@ -357,6 +673,7 @@ public class PurpurWorldConfig {
@@ -358,6 +680,10 @@ public class PurpurWorldConfig {
public float phantomFlameDamage = 1.0F;
public int phantomFlameFireTime = 8;
public boolean phantomAllowGriefing = false;
+ public double phantomMaxHealth = 20.0D;
+ public String phantomMaxHealth = "20.0";
+ public String phantomAttackDamage = "6 + size";
+ public Map<Integer, Double> phantomMaxHealthCache = new HashMap<>();
+ public Map<Integer, Double> phantomAttackDamageCache = new HashMap<>();
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -364,255 +681,559 @@ public class PurpurWorldConfig {
@@ -365,255 +691,570 @@ 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);
+ if (PurpurConfig.version < 10) {
+ double oldValue = getDouble("mobs.phantom.attributes.max-health", phantomMaxHealth);
+ double oldValue = getDouble("mobs.phantom.attributes.max-health", Double.parseDouble(phantomMaxHealth));
+ set("mobs.phantom.attributes.max-health", null);
+ set("mobs.phantom.attributes.max_health", oldValue);
+ set("mobs.phantom.attributes.max_health", String.valueOf(oldValue));
+ }
+ phantomMaxHealth = getDouble("mobs.phantom.attributes.max_health", phantomMaxHealth);
+ if (PurpurConfig.version < 25) {
+ double oldValue = getDouble("mobs.phantom.attributes.max_health", Double.parseDouble(phantomMaxHealth));
+ set("mobs.phantom.attributes.max_health", String.valueOf(oldValue));
+ }
+ phantomMaxHealth = getString("mobs.phantom.attributes.max_health", phantomMaxHealth);
+ phantomAttackDamage = getString("mobs.phantom.attributes.attack_damage", phantomAttackDamage);
+ phantomMaxHealthCache.clear();
+ phantomAttackDamageCache.clear();
}
public boolean pigRidable = false;
@ -2225,7 +2283,9 @@ index b8103294d3963a9bfe7d4f4199be866158f580ec..373bdce6590564bd9de4a571a91bbf05
public boolean slimeRidable = false;
public boolean slimeRidableInWater = false;
+ public String slimeMaxHealth = "size * size";
+ public String slimeAttackDamage = "size";
+ public Map<Integer, Double> slimeMaxHealthCache = new HashMap<>();
+ public Map<Integer, Double> slimeAttackDamageCache = new HashMap<>();
private void slimeSettings() {
slimeRidable = getBoolean("mobs.slime.ridable", slimeRidable);
slimeRidableInWater = getBoolean("mobs.slime.ridable-in-water", slimeRidableInWater);
@ -2235,7 +2295,9 @@ index b8103294d3963a9bfe7d4f4199be866158f580ec..373bdce6590564bd9de4a571a91bbf05
+ set("mobs.slime.attributes.max_health", oldValue);
+ }
+ slimeMaxHealth = getString("mobs.slime.attributes.max_health", slimeMaxHealth);
+ slimeAttackDamage = getString("mobs.slime.attributes.attack_damage", slimeAttackDamage);
+ slimeMaxHealthCache.clear();
+ slimeAttackDamageCache.clear();
}
public boolean snowGolemRidable = false;

View File

@ -255,7 +255,7 @@ index c5e3dfd91aba27d9b0115d264a3bbf3d50066356..59d375e9a02c990afa5037819593654f
// Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index b404fcddc67b7593201f1679587d0ac4c4bfd51c..25f31ce77337079ebc2074f1ae2990ccaac03860 100644
index 59398d99da9e81a047c6ed4b927398db5abec1ff..6e10eb700827a9ad63f9ebab9fd1029e0a089888 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -158,8 +158,16 @@ public class PurpurConfig {
@ -276,10 +276,10 @@ index b404fcddc67b7593201f1679587d0ac4c4bfd51c..25f31ce77337079ebc2074f1ae2990cc
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 373bdce6590564bd9de4a571a91bbf05e287ee08..27d70e8e29902fe4275200cf7508298047b578cf 100644
index a524f120c7ba18cc0f89fa365a6097bebb48aea4..ff78acf9c8ad5e9446e1e259f2881b7df878443a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -88,6 +88,24 @@ public class PurpurWorldConfig {
@@ -89,6 +89,24 @@ public class PurpurWorldConfig {
return value.isEmpty() ? fallback : value;
}

View File

@ -146,10 +146,10 @@ index 59d375e9a02c990afa5037819593654fac853302..69de6463d169ec7a0af4331d6a58eabe
// Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 27d70e8e29902fe4275200cf7508298047b578cf..29de4c4316285b7ddf77c508d098584d2cb365e9 100644
index ff78acf9c8ad5e9446e1e259f2881b7df878443a..83f2729035d42674d480bb508737497a7bffb4c7 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -93,6 +93,8 @@ public class PurpurWorldConfig {
@@ -94,6 +94,8 @@ public class PurpurWorldConfig {
public boolean idleTimeoutCountAsSleeping = false;
public boolean idleTimeoutUpdateTabList = false;
public boolean idleTimeoutTargetPlayer = true;
@ -158,7 +158,7 @@ index 27d70e8e29902fe4275200cf7508298047b578cf..29de4c4316285b7ddf77c508d098584d
private void playerSettings() {
if (PurpurConfig.version < 19) {
boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer);
@@ -104,6 +106,8 @@ public class PurpurWorldConfig {
@@ -105,6 +107,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 0f466c9301c38e3747a22f116b98d47d1d912601..783cdc4949549725c884cdc0edff4859
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 29de4c4316285b7ddf77c508d098584d2cb365e9..ccd3597d78a12d8e6a3514c0f9cfa2aa31b688f8 100644
index 83f2729035d42674d480bb508737497a7bffb4c7..a4111896ba007d252cb6fed8824cb99d78727991 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1071,6 +1071,8 @@ public class PurpurWorldConfig {
@@ -1092,6 +1092,8 @@ public class PurpurWorldConfig {
public boolean villagerRidable = false;
public boolean villagerRidableInWater = false;
public double villagerMaxHealth = 20.0D;
@ -48,7 +48,7 @@ index 29de4c4316285b7ddf77c508d098584d2cb365e9..ccd3597d78a12d8e6a3514c0f9cfa2aa
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1080,6 +1082,8 @@ public class PurpurWorldConfig {
@@ -1101,6 +1103,8 @@ public class PurpurWorldConfig {
set("mobs.villager.attributes.max_health", oldValue);
}
villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth);

View File

@ -139,10 +139,10 @@ index 130ffb06b12565efb35afb55b6da20b1b16f6f06..bc4646a7a72c33a3671115953a2bbd7c
// this.popExperience(worldserver, blockposition, i);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index ccd3597d78a12d8e6a3514c0f9cfa2aa31b688f8..0b6d6763e8ba54768c35fdb2a30fbb89f81c7b67 100644
index a4111896ba007d252cb6fed8824cb99d78727991..55c53f7ff2bc312ae8a34c44566521f563277a8c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -110,6 +110,38 @@ public class PurpurWorldConfig {
@@ -111,6 +111,38 @@ public class PurpurWorldConfig {
playerInvulnerableWhileAcceptingResourcePack = getBoolean("gameplay-mechanics.player.invulnerable-while-accepting-resource-pack", playerInvulnerableWhileAcceptingResourcePack);
}

View File

@ -50,10 +50,10 @@ index 8033d2074d68635515b4737b4416ec9354a3edad..b942e7c85e6c8f9a7664d9e5bf93bcd7
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 0b6d6763e8ba54768c35fdb2a30fbb89f81c7b67..345b55b1d44499d7b748a3f75906a66867afef10 100644
index 55c53f7ff2bc312ae8a34c44566521f563277a8c..a56f00a40b6db80f0164260914219afaed8f0cce 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -142,6 +142,15 @@ public class PurpurWorldConfig {
@@ -143,6 +143,15 @@ public class PurpurWorldConfig {
});
}

View File

@ -120,10 +120,10 @@ index d1756353b9fc22f6e9b957a708073545ab3c941a..de7c2064b2c3876eebdee01908b39b1b
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 345b55b1d44499d7b748a3f75906a66867afef10..fd207fad3f094edb0c531edd396fc56da9b24521 100644
index a56f00a40b6db80f0164260914219afaed8f0cce..d2db6d8199f6c799bca1855d0405b0aa6ff8074a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -471,6 +471,10 @@ public class PurpurWorldConfig {
@@ -472,6 +472,10 @@ public class PurpurWorldConfig {
public double giantMovementSpeed = 0.5D;
public double giantAttackDamage = 50.0D;
public double giantMaxHealth = 100.0D;
@ -134,7 +134,7 @@ index 345b55b1d44499d7b748a3f75906a66867afef10..fd207fad3f094edb0c531edd396fc56d
private void giantSettings() {
giantRidable = getBoolean("mobs.giant.ridable", giantRidable);
giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater);
@@ -486,6 +490,10 @@ public class PurpurWorldConfig {
@@ -487,6 +491,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 41c9033b3e4fc9574793f670df3bb90c395ac991..99eb79174cb45ac4d94990afef410dba0daf632c 100644
index cd01b2f06b0dd34c3261d84beead96bba76cf825..2f8efdd72ee3ef12ce8223b73281f4170ad1bbf1 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -765,9 +765,15 @@ public class ServerLevel extends Level implements WorldGenLevel {
@ -28,10 +28,10 @@ index 41c9033b3e4fc9574793f670df3bb90c395ac991..99eb79174cb45ac4d94990afef410dba
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 fd207fad3f094edb0c531edd396fc56da9b24521..7c2fe960ae8c04b828ad549d33ccf36392521e99 100644
index d2db6d8199f6c799bca1855d0405b0aa6ff8074a..3c114e679811c0b3221665fdd1a26313f539191d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1263,6 +1263,7 @@ public class PurpurWorldConfig {
@@ -1284,6 +1284,7 @@ public class PurpurWorldConfig {
public double zombieHorseJumpStrengthMax = 1.0D;
public double zombieHorseMovementSpeedMin = 0.2D;
public double zombieHorseMovementSpeedMax = 0.2D;
@ -39,7 +39,7 @@ index fd207fad3f094edb0c531edd396fc56da9b24521..7c2fe960ae8c04b828ad549d33ccf363
private void zombieHorseSettings() {
zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater);
zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim);
@@ -1278,6 +1279,7 @@ public class PurpurWorldConfig {
@@ -1299,6 +1300,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 cee9afa518547afab1f2772b0352dcf05752df44..624b736f11341816c91f422cf6098ac0
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 7c2fe960ae8c04b828ad549d33ccf36392521e99..e93db3a16ac8ea0f7674dcdd508984b8c49a56b8 100644
index 3c114e679811c0b3221665fdd1a26313f539191d..425541175639632a3af9226b338dcce40320e2d6 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -293,6 +293,7 @@ public class PurpurWorldConfig {
@@ -294,6 +294,7 @@ public class PurpurWorldConfig {
public boolean creeperRidable = false;
public boolean creeperRidableInWater = false;
public double creeperMaxHealth = 20.0D;
@ -35,7 +35,7 @@ index 7c2fe960ae8c04b828ad549d33ccf36392521e99..e93db3a16ac8ea0f7674dcdd508984b8
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -302,6 +303,7 @@ public class PurpurWorldConfig {
@@ -303,6 +304,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 562262f4811d5748dd04a284f243024c059c8756..c1c2909728197dcb9137fb380ed210e7
int i = this.random.nextInt(100);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index e93db3a16ac8ea0f7674dcdd508984b8c49a56b8..572a9ce6a65be37e95fe308923c2a387cf2f47fe 100644
index 425541175639632a3af9226b338dcce40320e2d6..108548eac8f473e5dddce54268a2a10abb0e0c06 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -847,6 +847,8 @@ public class PurpurWorldConfig {
@@ -864,6 +864,8 @@ public class PurpurWorldConfig {
public boolean rabbitRidable = false;
public boolean rabbitRidableInWater = false;
public double rabbitMaxHealth = 3.0D;
@ -50,7 +50,7 @@ index e93db3a16ac8ea0f7674dcdd508984b8c49a56b8..572a9ce6a65be37e95fe308923c2a387
private void rabbitSettings() {
rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable);
rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater);
@@ -856,6 +858,8 @@ public class PurpurWorldConfig {
@@ -873,6 +875,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 b07b1302978b2a1212e094652e46ad2754fb1d6c..a2e56aadf75918d3b2c30b54ec53ba4d
// 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 572a9ce6a65be37e95fe308923c2a387cf2f47fe..809ded91042e66c2c761b813816d9b432cd9dff5 100644
index 108548eac8f473e5dddce54268a2a10abb0e0c06..ca90e421b6f020eb92949ea3cbf4a8e5c31b3096 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -441,6 +441,7 @@ public class PurpurWorldConfig {
@@ -442,6 +442,7 @@ public class PurpurWorldConfig {
public boolean foxRidable = false;
public boolean foxRidableInWater = false;
public double foxMaxHealth = 10.0D;
@ -86,7 +86,7 @@ index 572a9ce6a65be37e95fe308923c2a387cf2f47fe..809ded91042e66c2c761b813816d9b43
private void foxSettings() {
foxRidable = getBoolean("mobs.fox.ridable", foxRidable);
foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater);
@@ -450,6 +451,7 @@ public class PurpurWorldConfig {
@@ -451,6 +452,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 69e495a93cd1519297dcd8ef4971cca61b80f201..0b5d4416ad4dc0a90cbd1826c45c4741
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 809ded91042e66c2c761b813816d9b432cd9dff5..38af39e6b855be606240f3d6d85ed368cced78f8 100644
index ca90e421b6f020eb92949ea3cbf4a8e5c31b3096..d87f38f214b5f737e96ef6ab6b9298a3412f48b3 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -823,6 +823,8 @@ public class PurpurWorldConfig {
@@ -840,6 +840,8 @@ public class PurpurWorldConfig {
public boolean polarBearRidable = false;
public boolean polarBearRidableInWater = false;
public double polarBearMaxHealth = 30.0D;
@ -71,7 +71,7 @@ index 809ded91042e66c2c761b813816d9b432cd9dff5..38af39e6b855be606240f3d6d85ed368
private void polarBearSettings() {
polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable);
polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater);
@@ -832,6 +834,9 @@ public class PurpurWorldConfig {
@@ -849,6 +851,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 419a774733ac3d562e636f2615005c953bbd87df..ca584a5a801d0909f4bdbaa8a635608e
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 38af39e6b855be606240f3d6d85ed368cced78f8..42aca5776c26ce45469b742f5c7392f222984948 100644
index d87f38f214b5f737e96ef6ab6b9298a3412f48b3..7ce2825871386d63301f90179408e52a2e101275 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -253,6 +253,7 @@ public class PurpurWorldConfig {
@@ -254,6 +254,7 @@ public class PurpurWorldConfig {
public boolean chickenRidable = false;
public boolean chickenRidableInWater = false;
public double chickenMaxHealth = 4.0D;
@ -62,7 +62,7 @@ index 38af39e6b855be606240f3d6d85ed368cced78f8..42aca5776c26ce45469b742f5c7392f2
private void chickenSettings() {
chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable);
chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater);
@@ -262,6 +263,7 @@ public class PurpurWorldConfig {
@@ -263,6 +264,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 e5ef24d92de21c4c0e6a98e06985e52d47bfdce0..dc1630a1a769f848059f576c3d1220a2
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 42aca5776c26ce45469b742f5c7392f222984948..26c72e481c116bf7ac459a2a817250e18357978e 100644
index 7ce2825871386d63301f90179408e52a2e101275..cdb0cae8af965f57d6c5d128d2190f9c496ea9b7 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -88,6 +88,11 @@ public class PurpurWorldConfig {
@@ -89,6 +89,11 @@ public class PurpurWorldConfig {
return value.isEmpty() ? fallback : value;
}

View File

@ -49,10 +49,10 @@ index 436f9cb45ff5b83f55b12f291bed355fa12a0655..0784f6a0aa39c8e49b009f53d91432ff
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 26c72e481c116bf7ac459a2a817250e18357978e..ea45c601cc5d4cacd7e216552d6375f8c1c0dc5c 100644
index cdb0cae8af965f57d6c5d128d2190f9c496ea9b7..9b3c77424a9c43d3e980ddc0d1c7bc5fc4c31020 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -230,6 +230,9 @@ public class PurpurWorldConfig {
@@ -231,6 +231,9 @@ public class PurpurWorldConfig {
public boolean catRidable = false;
public boolean catRidableInWater = false;
public double catMaxHealth = 10.0D;
@ -62,7 +62,7 @@ index 26c72e481c116bf7ac459a2a817250e18357978e..ea45c601cc5d4cacd7e216552d6375f8
private void catSettings() {
catRidable = getBoolean("mobs.cat.ridable", catRidable);
catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater);
@@ -239,6 +242,9 @@ public class PurpurWorldConfig {
@@ -240,6 +243,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 d602597132b69c51c6da9115d0a2c9a8a1f39405..0db4dd5423508acb5214ed3205bb5632
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 ea45c601cc5d4cacd7e216552d6375f8c1c0dc5c..44751c0ebca4cbbb42e0de6fea30f0ea0f53c3f4 100644
index 9b3c77424a9c43d3e980ddc0d1c7bc5fc4c31020..8314452a8739b32264e3793616d2f50f25d1c2a8 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -292,6 +292,7 @@ public class PurpurWorldConfig {
@@ -293,6 +293,7 @@ public class PurpurWorldConfig {
public boolean cowRidable = false;
public boolean cowRidableInWater = false;
public double cowMaxHealth = 10.0D;
@ -125,7 +125,7 @@ index ea45c601cc5d4cacd7e216552d6375f8c1c0dc5c..44751c0ebca4cbbb42e0de6fea30f0ea
private void cowSettings() {
cowRidable = getBoolean("mobs.cow.ridable", cowRidable);
cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater);
@@ -301,6 +302,7 @@ public class PurpurWorldConfig {
@@ -302,6 +303,7 @@ public class PurpurWorldConfig {
set("mobs.cow.attributes.max_health", oldValue);
}
cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth);

View File

@ -28,10 +28,10 @@ index 7313d6bd41a312a8f9352240f181543d7cccb378..f4ae6de32bc1d854c54da829e45ca2cd
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 44751c0ebca4cbbb42e0de6fea30f0ea0f53c3f4..4dbf0d6e8bc62a7f0b0556042009681b83a0fd31 100644
index 8314452a8739b32264e3793616d2f50f25d1c2a8..341ea0d8d67e5028a8b9e6083119b8538d531c03 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -782,6 +782,7 @@ public class PurpurWorldConfig {
@@ -799,6 +799,7 @@ public class PurpurWorldConfig {
public boolean pigRidable = false;
public boolean pigRidableInWater = false;
public double pigMaxHealth = 10.0D;
@ -39,7 +39,7 @@ index 44751c0ebca4cbbb42e0de6fea30f0ea0f53c3f4..4dbf0d6e8bc62a7f0b0556042009681b
private void pigSettings() {
pigRidable = getBoolean("mobs.pig.ridable", pigRidable);
pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater);
@@ -791,6 +792,7 @@ public class PurpurWorldConfig {
@@ -808,6 +809,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 e194774b2ba7976565642534ceeca2079e23945e..a9c1b07f23c604d9364ccdee9478baf1
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 4dbf0d6e8bc62a7f0b0556042009681b83a0fd31..73d01ed4c0951a10372c2ed101c7964dc4bbdadb 100644
index 341ea0d8d67e5028a8b9e6083119b8538d531c03..8a50904dead7fb0c15d97b2424493a1f3ce35ccf 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1013,6 +1013,8 @@ public class PurpurWorldConfig {
@@ -1034,6 +1034,8 @@ public class PurpurWorldConfig {
public boolean snowGolemRidableInWater = false;
public boolean snowGolemLeaveTrailWhenRidden = false;
public double snowGolemMaxHealth = 4.0D;
@ -44,7 +44,7 @@ index 4dbf0d6e8bc62a7f0b0556042009681b83a0fd31..73d01ed4c0951a10372c2ed101c7964d
private void snowGolemSettings() {
snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable);
snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater);
@@ -1023,6 +1025,8 @@ public class PurpurWorldConfig {
@@ -1044,6 +1046,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 73506ce90426bdfb8fbc08687c6e21de637fbd77..9d4dd8c460d1d69ab56e166e10fd7137
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 73d01ed4c0951a10372c2ed101c7964dc4bbdadb..2309deca435b740b5e27bd8413654b1e8137bb16 100644
index 8a50904dead7fb0c15d97b2424493a1f3ce35ccf..149b3cf94e6e60007a91cb1653419aed7b88b388 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -395,6 +395,7 @@ public class PurpurWorldConfig {
@@ -396,6 +396,7 @@ public class PurpurWorldConfig {
public boolean enderDragonRidableInWater = false;
public double enderDragonMaxY = 256D;
public double enderDragonMaxHealth = 200.0D;
@ -29,7 +29,7 @@ index 73d01ed4c0951a10372c2ed101c7964dc4bbdadb..2309deca435b740b5e27bd8413654b1e
private void enderDragonSettings() {
enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable);
enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater);
@@ -409,6 +410,7 @@ public class PurpurWorldConfig {
@@ -410,6 +411,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 2309deca435b740b5e27bd8413654b1e8137bb16..e13d9a7b4bdd3d27cd72efdaa15f6ce4e777d012 100644
index 149b3cf94e6e60007a91cb1653419aed7b88b388..6469e3c2976ef07fb10be7298b4126efbb46ea61 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -147,6 +147,11 @@ public class PurpurWorldConfig {
@@ -148,6 +148,11 @@ public class PurpurWorldConfig {
});
}

View File

@ -18,10 +18,10 @@ index d0720d5e6612d98d1e86e33e8e6564e371595630..e102795a2464eac028b30977be8d99ce
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index e13d9a7b4bdd3d27cd72efdaa15f6ce4e777d012..da0bb5a0b7ba9b4ed0826a0318ba0288d8b8d9f8 100644
index 6469e3c2976ef07fb10be7298b4126efbb46ea61..3440e9962a1fa3c9bafcf31417ffa13c84cffbc6 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -147,6 +147,11 @@ public class PurpurWorldConfig {
@@ -148,6 +148,11 @@ public class PurpurWorldConfig {
});
}

View File

@ -148,10 +148,10 @@ index 05c46f3b3bce5225b819d86e6e06729a5093e092..b2dd2a211bdd1441eae67dd6bd936919
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 da0bb5a0b7ba9b4ed0826a0318ba0288d8b8d9f8..d7511e69b93231f5b1cbadea5a5847596153f2da 100644
index 3440e9962a1fa3c9bafcf31417ffa13c84cffbc6..78d2cb224260ebcf48bee46976cddacd69ab38e2 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -93,6 +93,68 @@ public class PurpurWorldConfig {
@@ -94,6 +94,68 @@ public class PurpurWorldConfig {
armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight);
}

View File

@ -22,10 +22,10 @@ index 9414424cb9b9bf1a6ffee2dbb38423055fcc3e9c..3ccac5096d83e21b19dd610a62f37ba2
// 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 d7511e69b93231f5b1cbadea5a5847596153f2da..e101ee0bda27bbf7ff319d5dc748b13e8b954f26 100644
index 78d2cb224260ebcf48bee46976cddacd69ab38e2..a252c0d92d83eddfc65ecda9cf889b6789f4ee16 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -93,6 +93,11 @@ public class PurpurWorldConfig {
@@ -94,6 +94,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 e101ee0bda27bbf7ff319d5dc748b13e8b954f26..50a1223f66adc486bae85e7c2a8567516473c8f0 100644
index a252c0d92d83eddfc65ecda9cf889b6789f4ee16..928f903e0a607646be42dca6e9ad2a84ccd56583 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -94,8 +94,10 @@ public class PurpurWorldConfig {
@@ -95,8 +95,10 @@ public class PurpurWorldConfig {
}
public boolean disableDropsOnCrammingDeath = false;

View File

@ -18,10 +18,10 @@ index a367f50b0e3fe9e7a1b87892a8c98e88bd678f6f..52d41fb8d0495f61346c718c8f2395bc
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 50a1223f66adc486bae85e7c2a8567516473c8f0..95446bfc4fdb13d9eedc5ea9bf2b8797681886ee 100644
index 928f903e0a607646be42dca6e9ad2a84ccd56583..4b81cc5d43182fa117c2a5d720a89f17ddf7f39b 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -95,9 +95,11 @@ public class PurpurWorldConfig {
@@ -96,9 +96,11 @@ public class PurpurWorldConfig {
public boolean disableDropsOnCrammingDeath = false;
public boolean milkCuresBadOmen = true;

View File

@ -38,10 +38,10 @@ index 1cec7bb3efa1e3377f72489c090d3234123d3e26..434e51325cbfe4539470f9ec5164e8eb
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 95446bfc4fdb13d9eedc5ea9bf2b8797681886ee..965e7ccb8175c18bad8d1ed92a70792f0656bebb 100644
index 4b81cc5d43182fa117c2a5d720a89f17ddf7f39b..7952a21e91ab87da057e69eae260f1d892fa38e5 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -390,6 +390,7 @@ public class PurpurWorldConfig {
@@ -391,6 +391,7 @@ public class PurpurWorldConfig {
public boolean creeperRidableInWater = false;
public double creeperMaxHealth = 20.0D;
public double creeperChargedChance = 0.0D;
@ -49,7 +49,7 @@ index 95446bfc4fdb13d9eedc5ea9bf2b8797681886ee..965e7ccb8175c18bad8d1ed92a70792f
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -400,6 +401,7 @@ public class PurpurWorldConfig {
@@ -401,6 +402,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 95446bfc4fdb13d9eedc5ea9bf2b8797681886ee..965e7ccb8175c18bad8d1ed92a70792f
}
public boolean dolphinRidable = false;
@@ -497,6 +499,7 @@ public class PurpurWorldConfig {
@@ -498,6 +500,7 @@ public class PurpurWorldConfig {
public boolean endermanRidable = false;
public boolean endermanRidableInWater = false;
public double endermanMaxHealth = 40.0D;
@ -65,7 +65,7 @@ index 95446bfc4fdb13d9eedc5ea9bf2b8797681886ee..965e7ccb8175c18bad8d1ed92a70792f
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -506,6 +509,7 @@ public class PurpurWorldConfig {
@@ -507,6 +510,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 0bcfece84ac11f04671ed38a99b31da9f8b03858..2f0bcf917af26fb7628bda134b650a8b
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 965e7ccb8175c18bad8d1ed92a70792f0656bebb..f97e9a32c0f5e330a491e06d5341f68520e36664 100644
index 7952a21e91ab87da057e69eae260f1d892fa38e5..627a655c4d988c7634817ed08a3b92b08fc6fd2a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1243,6 +1243,7 @@ public class PurpurWorldConfig {
@@ -1264,6 +1264,7 @@ public class PurpurWorldConfig {
public double villagerMaxHealth = 20.0D;
public int villagerBrainTicks = 1;
public boolean villagerUseBrainTicksOnlyWhenLagging = true;
@ -65,7 +65,7 @@ index 965e7ccb8175c18bad8d1ed92a70792f0656bebb..f97e9a32c0f5e330a491e06d5341f685
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1254,6 +1255,7 @@ public class PurpurWorldConfig {
@@ -1275,6 +1276,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 965e7ccb8175c18bad8d1ed92a70792f0656bebb..f97e9a32c0f5e330a491e06d5341f685
}
public boolean vindicatorRidable = false;
@@ -1273,6 +1275,7 @@ public class PurpurWorldConfig {
@@ -1294,6 +1296,7 @@ public class PurpurWorldConfig {
public boolean wanderingTraderRidable = false;
public boolean wanderingTraderRidableInWater = false;
public double wanderingTraderMaxHealth = 20.0D;
@ -81,7 +81,7 @@ index 965e7ccb8175c18bad8d1ed92a70792f0656bebb..f97e9a32c0f5e330a491e06d5341f685
private void wanderingTraderSettings() {
wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable);
wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater);
@@ -1282,6 +1285,7 @@ public class PurpurWorldConfig {
@@ -1303,6 +1306,7 @@ public class PurpurWorldConfig {
set("mobs.wandering_trader.attributes.max_health", oldValue);
}
wanderingTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", wanderingTraderMaxHealth);

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Allow leashing villagers
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index ed1d5508d894f5d2f6e61899a2013cbe47fbbc73..fe58b02540b56b99a02067bdde1bcfa00c758f39 100644
index cbb2f643c619c80d3bebcf1a8f066a87fc52d274..1b1323ef9aaaede71a73a5a817ef57f14756991c 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -1242,6 +1242,7 @@ public abstract class Mob extends LivingEntity {
@ -49,10 +49,10 @@ index 2f0bcf917af26fb7628bda134b650a8b296091ea..c5dbb1c8210b71f7d9d91089cb139f65
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index f97e9a32c0f5e330a491e06d5341f68520e36664..9c2411632713b245746a943d3afb9f7611603267 100644
index 627a655c4d988c7634817ed08a3b92b08fc6fd2a..bfffa9db556a3518b600052c2f42b922f760cea2 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1244,6 +1244,7 @@ public class PurpurWorldConfig {
@@ -1265,6 +1265,7 @@ public class PurpurWorldConfig {
public int villagerBrainTicks = 1;
public boolean villagerUseBrainTicksOnlyWhenLagging = true;
public boolean villagerFollowEmeraldBlock = false;
@ -60,7 +60,7 @@ index f97e9a32c0f5e330a491e06d5341f68520e36664..9c2411632713b245746a943d3afb9f76
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1256,6 +1257,7 @@ public class PurpurWorldConfig {
@@ -1277,6 +1278,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 f97e9a32c0f5e330a491e06d5341f68520e36664..9c2411632713b245746a943d3afb9f76
}
public boolean vindicatorRidable = false;
@@ -1276,6 +1278,7 @@ public class PurpurWorldConfig {
@@ -1297,6 +1299,7 @@ public class PurpurWorldConfig {
public boolean wanderingTraderRidableInWater = false;
public double wanderingTraderMaxHealth = 20.0D;
public boolean wanderingTraderFollowEmeraldBlock = false;
@ -76,7 +76,7 @@ index f97e9a32c0f5e330a491e06d5341f68520e36664..9c2411632713b245746a943d3afb9f76
private void wanderingTraderSettings() {
wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable);
wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater);
@@ -1286,6 +1289,7 @@ public class PurpurWorldConfig {
@@ -1307,6 +1310,7 @@ public class PurpurWorldConfig {
}
wanderingTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", wanderingTraderMaxHealth);
wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock);

View File

@ -18,10 +18,10 @@ index c6596547c23365b2f7028f3764dbd0b5571f898c..fbed51cacb1963b10946056a42fa6878
for (int i = 0; i < 10; ++i) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 9c2411632713b245746a943d3afb9f7611603267..404c8a7c74fd997de323dc36ae90ed4cc8008dac 100644
index bfffa9db556a3518b600052c2f42b922f760cea2..72a8eed3b7debcd3f87308579aee58c0ca4b3070 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1245,6 +1245,8 @@ public class PurpurWorldConfig {
@@ -1266,6 +1266,8 @@ public class PurpurWorldConfig {
public boolean villagerUseBrainTicksOnlyWhenLagging = true;
public boolean villagerFollowEmeraldBlock = false;
public boolean villagerCanBeLeashed = false;
@ -30,7 +30,7 @@ index 9c2411632713b245746a943d3afb9f7611603267..404c8a7c74fd997de323dc36ae90ed4c
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1258,6 +1260,8 @@ public class PurpurWorldConfig {
@@ -1279,6 +1281,8 @@ 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

@ -81,10 +81,10 @@ index 56d50b9310d30e0f81f3d2549ff5c256eb07cc2a..4cc6d665c7d52b6edcaaa5f9ed131407
@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 404c8a7c74fd997de323dc36ae90ed4cc8008dac..25f8fe880cc754c6a1f96b20925ea6002ab94f3a 100644
index 72a8eed3b7debcd3f87308579aee58c0ca4b3070..5c2f818db7ff6f200d408ab69627d8cebcb0a492 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -223,6 +223,13 @@ public class PurpurWorldConfig {
@@ -224,6 +224,13 @@ public class PurpurWorldConfig {
farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow);
}
@ -98,7 +98,7 @@ index 404c8a7c74fd997de323dc36ae90ed4cc8008dac..25f8fe880cc754c6a1f96b20925ea600
public boolean signRightClickEdit = false;
private void signSettings() {
signRightClickEdit = getBoolean("blocks.sign.right-click-edit", signRightClickEdit);
@@ -237,6 +244,13 @@ public class PurpurWorldConfig {
@@ -238,6 +245,13 @@ public class PurpurWorldConfig {
turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts);
}

View File

@ -18,10 +18,10 @@ index 9fc7bc3141c0fe6b65d78edf6bac3c45d46ae4fe..a7d2fcad13f1f9b7055732636cd58039
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 25f8fe880cc754c6a1f96b20925ea6002ab94f3a..e86533cfa8f24c135dfbee34429b58313d1839c5 100644
index 5c2f818db7ff6f200d408ab69627d8cebcb0a492..30b611ff62b07ba8eaade89e2409b06023608382 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -225,9 +225,13 @@ public class PurpurWorldConfig {
@@ -226,9 +226,13 @@ public class PurpurWorldConfig {
public boolean lavaInfinite = false;
public int lavaInfiniteRequiredSources = 2;

View File

@ -31,10 +31,10 @@ index fd83ec264d2d2dabadd50a73065ba61544196bfa..ad41bfb05122086aafc290c2b816a28b
return 0;
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index e86533cfa8f24c135dfbee34429b58313d1839c5..e7c0102d9c154b77ac2099f1f310762e0a384f12 100644
index 30b611ff62b07ba8eaade89e2409b06023608382..d5778eb9b05257703e366588cc3f66bd260ef52a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -171,6 +171,8 @@ public class PurpurWorldConfig {
@@ -172,6 +172,8 @@ public class PurpurWorldConfig {
public boolean idleTimeoutTargetPlayer = true;
public int playerSpawnInvulnerableTicks = 60;
public boolean playerInvulnerableWhileAcceptingResourcePack = false;
@ -43,7 +43,7 @@ index e86533cfa8f24c135dfbee34429b58313d1839c5..e7c0102d9c154b77ac2099f1f310762e
private void playerSettings() {
if (PurpurConfig.version < 19) {
boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer);
@@ -184,6 +186,8 @@ public class PurpurWorldConfig {
@@ -185,6 +187,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 8d2f0a07792d88c8f53c87333d32e67502b4e39f..195efa0326e2943a7c1c9190de76f61f
protected void updateSwingTime() {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index e7c0102d9c154b77ac2099f1f310762e0a384f12..a5f5aaa8eb31680dadb0e9a0b0c5d20f88e5df7c 100644
index d5778eb9b05257703e366588cc3f66bd260ef52a..0e08661ece83d8d3ab4cc26a9da30aa94dce1eb2 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -96,10 +96,14 @@ public class PurpurWorldConfig {
@@ -97,10 +97,14 @@ public class PurpurWorldConfig {
public boolean disableDropsOnCrammingDeath = false;
public boolean milkCuresBadOmen = true;
public double tridentLoyaltyVoidReturnHeight = 0.0D;

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Dispenser curse of binding protection
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index fe58b02540b56b99a02067bdde1bcfa00c758f39..9d43556ecdafed0605bfd6f65c4f5795a41261a9 100644
index 1b1323ef9aaaede71a73a5a817ef57f14756991c..79d258458f5ad997a7e88af6c616d1b677d84581 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -63,6 +63,7 @@ import net.minecraft.world.item.ProjectileWeaponItem;
@ -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 a5f5aaa8eb31680dadb0e9a0b0c5d20f88e5df7c..ccfee8a75592c6dbf3a2256d3c0d0c338bc3eea5 100644
index 0e08661ece83d8d3ab4cc26a9da30aa94dce1eb2..ffd4ebfb93266f18a456d691eb7c7428706fadaa 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -226,6 +226,11 @@ public class PurpurWorldConfig {
@@ -227,6 +227,11 @@ public class PurpurWorldConfig {
});
}

View File

@ -17,10 +17,10 @@ index b967177cb10041f96831322c311579e409050e88..4b38f8186dcd9a98a5413a51c5563c49
} 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 ccfee8a75592c6dbf3a2256d3c0d0c338bc3eea5..417878da19deaf23018c5d1bf208479bf9aae4e5 100644
index ffd4ebfb93266f18a456d691eb7c7428706fadaa..3ec6ec2f9e4fb575de56c4f93c3b1d0db5d1e84d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -93,12 +93,14 @@ public class PurpurWorldConfig {
@@ -94,12 +94,14 @@ public class PurpurWorldConfig {
armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight);
}

View File

@ -73,10 +73,10 @@ index 7bc5aa35b52de0027cf58a6127a9903464ccaf47..f3ec99d2eae31ba7ce7d4b8e7399a56d
Entry<EquipmentSlot, ItemStack> entry = getRandomItemWith(enchantment, entityliving);
return entry != null ? entry.getValue() : ItemStack.EMPTY;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 417878da19deaf23018c5d1bf208479bf9aae4e5..f9bfb328c2056d39df5b2a4092d03c75c8fdfc57 100644
index 3ec6ec2f9e4fb575de56c4f93c3b1d0db5d1e84d..811e1c0c4dfcb7b8740f73fdb1bc394232cef180 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -93,6 +93,7 @@ public class PurpurWorldConfig {
@@ -94,6 +94,7 @@ public class PurpurWorldConfig {
armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight);
}
@ -84,7 +84,7 @@ index 417878da19deaf23018c5d1bf208479bf9aae4e5..f9bfb328c2056d39df5b2a4092d03c75
public boolean boatEjectPlayersOnLand = false;
public boolean disableDropsOnCrammingDeath = false;
public boolean milkCuresBadOmen = true;
@@ -100,6 +101,7 @@ public class PurpurWorldConfig {
@@ -101,6 +102,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 f9bfb328c2056d39df5b2a4092d03c75c8fdfc57..9963ded057f721ad884f420d62a74b9e06f8b4b9 100644
index 811e1c0c4dfcb7b8740f73fdb1bc394232cef180..4d2f8fc1ee5ca497b19621b633124c28e1e5e4d2 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -110,6 +110,19 @@ public class PurpurWorldConfig {
@@ -111,6 +111,19 @@ public class PurpurWorldConfig {
voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt);
}

View File

@ -147,10 +147,10 @@ index 8d56f0ab748373e55c0166b92382c126fe8e5381..0637e074dbe4a10bc19e7bf9dd79e2d9
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 9963ded057f721ad884f420d62a74b9e06f8b4b9..4f2ce450267a98f6b5e2814eb0303fc37125f792 100644
index 4d2f8fc1ee5ca497b19621b633124c28e1e5e4d2..703a41c7c90124d8b8aa925a3f494ca61a268a92 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -123,6 +123,49 @@ public class PurpurWorldConfig {
@@ -124,6 +124,49 @@ public class PurpurWorldConfig {
elytraDamagePerTridentBoost = getInt("gameplay-mechanics.elytra.damage-per-boost.trident", elytraDamagePerTridentBoost);
}

View File

@ -167,10 +167,10 @@ index f30b36b3f1153e1cbd9b8242909d9ba8c995df1d..76f1bbec2b8ebe037de65ee5ec718e17
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 4f2ce450267a98f6b5e2814eb0303fc37125f792..d251746cbb14fce9756af250e6e2276f75b86420 100644
index 703a41c7c90124d8b8aa925a3f494ca61a268a92..982646423785bfb98be99044a8f4c59a16775d93 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -541,6 +541,9 @@ public class PurpurWorldConfig {
@@ -542,6 +542,9 @@ public class PurpurWorldConfig {
public boolean drownedRidableInWater = false;
public double drownedMaxHealth = 20.0D;
public double drownedSpawnReinforcements = 0.1D;
@ -180,7 +180,7 @@ index 4f2ce450267a98f6b5e2814eb0303fc37125f792..d251746cbb14fce9756af250e6e2276f
private void drownedSettings() {
drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable);
drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater);
@@ -551,6 +554,9 @@ public class PurpurWorldConfig {
@@ -552,6 +555,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 4f2ce450267a98f6b5e2814eb0303fc37125f792..d251746cbb14fce9756af250e6e2276f
}
public boolean elderGuardianRidable = false;
@@ -763,6 +769,9 @@ public class PurpurWorldConfig {
@@ -764,6 +770,9 @@ public class PurpurWorldConfig {
public boolean huskRidableInWater = false;
public double huskMaxHealth = 20.0D;
public double huskSpawnReinforcements = 0.1D;
@ -200,7 +200,7 @@ index 4f2ce450267a98f6b5e2814eb0303fc37125f792..d251746cbb14fce9756af250e6e2276f
private void huskSettings() {
huskRidable = getBoolean("mobs.husk.ridable", huskRidable);
huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater);
@@ -773,6 +782,9 @@ public class PurpurWorldConfig {
@@ -774,6 +783,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 4f2ce450267a98f6b5e2814eb0303fc37125f792..d251746cbb14fce9756af250e6e2276f
}
public boolean illusionerRidable = false;
@@ -1467,6 +1479,9 @@ public class PurpurWorldConfig {
@@ -1488,6 +1500,9 @@ public class PurpurWorldConfig {
public boolean zombieRidableInWater = false;
public double zombieMaxHealth = 20.0D;
public double zombieSpawnReinforcements = 0.1D;
@ -220,7 +220,7 @@ index 4f2ce450267a98f6b5e2814eb0303fc37125f792..d251746cbb14fce9756af250e6e2276f
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -1477,6 +1492,9 @@ public class PurpurWorldConfig {
@@ -1498,6 +1513,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 4f2ce450267a98f6b5e2814eb0303fc37125f792..d251746cbb14fce9756af250e6e2276f
}
public boolean zombieHorseRidableInWater = false;
@@ -1510,6 +1528,9 @@ public class PurpurWorldConfig {
@@ -1531,6 +1549,9 @@ public class PurpurWorldConfig {
public boolean zombieVillagerRidableInWater = false;
public double zombieVillagerMaxHealth = 20.0D;
public double zombieVillagerSpawnReinforcements = 0.1D;
@ -240,7 +240,7 @@ index 4f2ce450267a98f6b5e2814eb0303fc37125f792..d251746cbb14fce9756af250e6e2276f
private void zombieVillagerSettings() {
zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable);
zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater);
@@ -1520,12 +1541,18 @@ public class PurpurWorldConfig {
@@ -1541,12 +1562,18 @@ public class PurpurWorldConfig {
}
zombieVillagerMaxHealth = getDouble("mobs.zombie_villager.attributes.max_health", zombieVillagerMaxHealth);
zombieVillagerSpawnReinforcements = getDouble("mobs.zombie_villager.attributes.spawn_reinforcements", zombieVillagerSpawnReinforcements);
@ -259,7 +259,7 @@ index 4f2ce450267a98f6b5e2814eb0303fc37125f792..d251746cbb14fce9756af250e6e2276f
private void zombifiedPiglinSettings() {
zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable);
zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater);
@@ -1536,5 +1563,8 @@ public class PurpurWorldConfig {
@@ -1557,5 +1584,8 @@ public class PurpurWorldConfig {
}
zombifiedPiglinMaxHealth = getDouble("mobs.zombified_piglin.attributes.max_health", zombifiedPiglinMaxHealth);
zombifiedPiglinSpawnReinforcements = getDouble("mobs.zombified_piglin.attributes.spawn_reinforcements", zombifiedPiglinSpawnReinforcements);

View File

@ -73,7 +73,7 @@ index d8c4f36ae0e65c6d0398fac80c93b78646bdf6a4..f8863cabad1bd0c3c2c62b8e17612d95
@Override
protected void addAdditionalSaveData(CompoundTag nbt) {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
index f4da51e75b3f8772f0d3de17ef4699845a08fdd1..5dc5bddfce5b46fd065fd14112febc415e19860c 100644
index 59289140f51ea63e81ebebc97d5a54fc2b0e1914..61b40d0b7dbb956fa25271c6f6768ac147afc563 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -49,6 +49,7 @@ public class Phantom extends FlyingMob implements Enemy {
@ -84,9 +84,9 @@ index f4da51e75b3f8772f0d3de17ef4699845a08fdd1..5dc5bddfce5b46fd065fd14112febc41
public Phantom(EntityType<? extends Phantom> type, Level world) {
super(type, world);
@@ -116,6 +117,24 @@ public class Phantom extends FlyingMob implements Enemy {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.phantomMaxHealth);
@@ -126,6 +127,24 @@ public class Phantom extends FlyingMob implements Enemy {
}
return value;
}
+
+ @Override
@ -109,7 +109,7 @@ index f4da51e75b3f8772f0d3de17ef4699845a08fdd1..5dc5bddfce5b46fd065fd14112febc41
// Purpur end
@Override
@@ -130,11 +149,17 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -140,11 +159,17 @@ public class Phantom extends FlyingMob implements Enemy {
@Override
protected void registerGoals() {
@ -132,7 +132,7 @@ index f4da51e75b3f8772f0d3de17ef4699845a08fdd1..5dc5bddfce5b46fd065fd14112febc41
this.targetSelector.addGoal(1, new Phantom.PhantomAttackPlayerTargetGoal());
}
@@ -324,6 +349,124 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -337,6 +362,124 @@ public class Phantom extends FlyingMob implements Enemy {
private AttackPhase() {}
}
@ -258,23 +258,23 @@ index f4da51e75b3f8772f0d3de17ef4699845a08fdd1..5dc5bddfce5b46fd065fd14112febc41
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 d251746cbb14fce9756af250e6e2276f75b86420..814d71572fdce49e02d7ee5ee20210b3de2a4076 100644
index 982646423785bfb98be99044a8f4c59a16775d93..9627fc7c186da877be610d0d8464b3f557eb400d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -954,6 +954,9 @@ public class PurpurWorldConfig {
public int phantomFlameFireTime = 8;
public boolean phantomAllowGriefing = false;
public double phantomMaxHealth = 20.0D;
@@ -964,6 +964,9 @@ public class PurpurWorldConfig {
public String phantomAttackDamage = "6 + size";
public Map<Integer, Double> phantomMaxHealthCache = new HashMap<>();
public Map<Integer, Double> phantomAttackDamageCache = new HashMap<>();
+ public double phantomAttackedByCrystalRadius = 0.0D;
+ public float phantomAttackedByCrystalDamage = 1.0F;
+ public double phantomOrbitCrystalRadius = 0.0D;
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -967,6 +970,9 @@ public class PurpurWorldConfig {
set("mobs.phantom.attributes.max_health", oldValue);
}
phantomMaxHealth = getDouble("mobs.phantom.attributes.max_health", phantomMaxHealth);
@@ -984,6 +987,9 @@ public class PurpurWorldConfig {
phantomAttackDamage = getString("mobs.phantom.attributes.attack_damage", phantomAttackDamage);
phantomMaxHealthCache.clear();
phantomAttackDamageCache.clear();
+ 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

@ -48,10 +48,10 @@ index 1e21d6cf2f03219fb2b7217c9a72bdd83c2146f7..dad5d3c754395b39e96be1e35a99c8bf
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 814d71572fdce49e02d7ee5ee20210b3de2a4076..98680d303bb17ddc72b64233670dabad9ab1d807 100644
index 9627fc7c186da877be610d0d8464b3f557eb400d..d6744436fbac28e3e6486a6d36f20e20a7d99d3e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -957,6 +957,18 @@ public class PurpurWorldConfig {
@@ -967,6 +967,18 @@ public class PurpurWorldConfig {
public double phantomAttackedByCrystalRadius = 0.0D;
public float phantomAttackedByCrystalDamage = 1.0F;
public double phantomOrbitCrystalRadius = 0.0D;
@ -70,7 +70,7 @@ index 814d71572fdce49e02d7ee5ee20210b3de2a4076..98680d303bb17ddc72b64233670dabad
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -973,6 +985,18 @@ public class PurpurWorldConfig {
@@ -990,6 +1002,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 20c0030d566012146021613325c6a979f392740e..340e5dee8bf5d8a865c19a8fe63399ae
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 98680d303bb17ddc72b64233670dabad9ab1d807..13ad57956dadf60fbe9a1b6f12effa84cf321abf 100644
index d6744436fbac28e3e6486a6d36f20e20a7d99d3e..f4588e514e60bb244c789b162b8503c236950a3b 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -286,6 +286,22 @@ public class PurpurWorldConfig {
@@ -287,6 +287,22 @@ public class PurpurWorldConfig {
});
}

View File

@ -18,10 +18,10 @@ index 07e893f1859abe3c2a765694c21309d60346ca82..0fabe3ec1e9d7dae952db1f1e3dd3af8
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 13ad57956dadf60fbe9a1b6f12effa84cf321abf..96fd3a8735eacd42ec983b4f91ad88bec2a9a3a5 100644
index f4588e514e60bb244c789b162b8503c236950a3b..a38a4bdba8c87bfce09487714b58082f74432b9d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -323,6 +323,22 @@ public class PurpurWorldConfig {
@@ -324,6 +324,22 @@ public class PurpurWorldConfig {
lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether);
}

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Entity lifespan
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 9d43556ecdafed0605bfd6f65c4f5795a41261a9..6f4396ab99bf87560544e3eb7f4e8711595af2ae 100644
index 79d258458f5ad997a7e88af6c616d1b677d84581..1ef0de7544f26faf69dc0395da8e09f9514a4aff 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -129,6 +129,7 @@ public abstract class Mob extends LivingEntity {
@ -89,10 +89,10 @@ index 9d43556ecdafed0605bfd6f65c4f5795a41261a9..6f4396ab99bf87560544e3eb7f4e8711
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 96fd3a8735eacd42ec983b4f91ad88bec2a9a3a5..29609a60af03e8334f847aeb90c57a9e352b1893 100644
index a38a4bdba8c87bfce09487714b58082f74432b9d..9a7cbf1473c00af0681865f14455f6531036f4cd 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -123,6 +123,11 @@ public class PurpurWorldConfig {
@@ -124,6 +124,11 @@ public class PurpurWorldConfig {
elytraDamagePerTridentBoost = getInt("gameplay-mechanics.elytra.damage-per-boost.trident", elytraDamagePerTridentBoost);
}

View File

@ -35,7 +35,7 @@ index ae40f50a33f676059738625773127ff9ae181be0..295658d4b479e8a3e825f0b5ce5dfc2c
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 38c9aa1e1f717cd9b596db85e9234d2651ac0de0..2950a9556fd474b659d66c1fc4d5e6e451ad9fda 100644
index 5a42b378012a4de689c6d63d5233bfa6df251917..72341e3907ea19e16b5f09a7e7b38aac73d1ad50 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -43,6 +43,7 @@ import net.minecraft.network.syncher.EntityDataAccessor;
@ -55,10 +55,10 @@ index 38c9aa1e1f717cd9b596db85e9234d2651ac0de0..2950a9556fd474b659d66c1fc4d5e6e4
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 29609a60af03e8334f847aeb90c57a9e352b1893..b5d48e3979361e1b6407a1dcf0f5271542273974 100644
index 9a7cbf1473c00af0681865f14455f6531036f4cd..337e6f2515591c690a2a18055c6dbdb006f0aea2 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -242,6 +242,7 @@ public class PurpurWorldConfig {
@@ -243,6 +243,7 @@ public class PurpurWorldConfig {
public boolean playerInvulnerableWhileAcceptingResourcePack = false;
public String playerDeathExpDropEquation = "expLevel * 7";
public int playerDeathExpDropMax = 100;
@ -66,7 +66,7 @@ index 29609a60af03e8334f847aeb90c57a9e352b1893..b5d48e3979361e1b6407a1dcf0f52715
private void playerSettings() {
if (PurpurConfig.version < 19) {
boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer);
@@ -257,6 +258,7 @@ public class PurpurWorldConfig {
@@ -258,6 +259,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 b5d48e3979361e1b6407a1dcf0f5271542273974..71eef6cc623db385db98d3fe98ea657453ae28fb 100644
index 337e6f2515591c690a2a18055c6dbdb006f0aea2..e31ed42038f800125f2129b1dbfafa86eacbf1b9 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1290,6 +1290,7 @@ public class PurpurWorldConfig {
@@ -1311,6 +1311,7 @@ public class PurpurWorldConfig {
public boolean squidRidable = false;
public double squidMaxHealth = 10.0D;
@ -16,7 +16,7 @@ index b5d48e3979361e1b6407a1dcf0f5271542273974..71eef6cc623db385db98d3fe98ea6574
private void squidSettings() {
squidRidable = getBoolean("mobs.squid.ridable", squidRidable);
if (PurpurConfig.version < 10) {
@@ -1298,6 +1299,7 @@ public class PurpurWorldConfig {
@@ -1319,6 +1320,7 @@ public class PurpurWorldConfig {
set("mobs.squid.attributes.max_health", oldValue);
}
squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth);

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Phantoms burn in light
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
index 5dc5bddfce5b46fd065fd14112febc415e19860c..284532bfe697d288529eacbad0fcfcb6a3680446 100644
index 61b40d0b7dbb956fa25271c6f6768ac147afc563..72a790e6aba656e8817a84d2c729ce722e9a43ef 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -50,6 +50,7 @@ public class Phantom extends FlyingMob implements Enemy {
@ -16,7 +16,7 @@ index 5dc5bddfce5b46fd065fd14112febc415e19860c..284532bfe697d288529eacbad0fcfcb6
public Phantom(EntityType<? extends Phantom> type, Level world) {
super(type, world);
@@ -229,7 +230,7 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -242,7 +243,7 @@ public class Phantom extends FlyingMob implements Enemy {
@Override
public void aiStep() {
@ -25,7 +25,7 @@ index 5dc5bddfce5b46fd065fd14112febc415e19860c..284532bfe697d288529eacbad0fcfcb6
this.setSecondsOnFire(8);
}
@@ -633,6 +634,12 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -646,6 +647,12 @@ public class Phantom extends FlyingMob implements Enemy {
return false;
} else if (!entityliving.isAlive()) {
return false;
@ -38,7 +38,7 @@ index 5dc5bddfce5b46fd065fd14112febc415e19860c..284532bfe697d288529eacbad0fcfcb6
} else {
if (entityliving instanceof Player) {
Player entityhuman = (Player) entityliving;
@@ -778,6 +785,7 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -791,6 +798,7 @@ public class Phantom extends FlyingMob implements Enemy {
this.nextScanTick = reducedTickDelay(60);
List<Player> list = Phantom.this.level.getNearbyPlayers(this.attackTargeting, Phantom.this, Phantom.this.getBoundingBox().inflate(16.0D, 64.0D, 16.0D));
@ -47,10 +47,10 @@ index 5dc5bddfce5b46fd065fd14112febc415e19860c..284532bfe697d288529eacbad0fcfcb6
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 71eef6cc623db385db98d3fe98ea657453ae28fb..878173f5bfbd164eb9873dc5b38272c444f19715 100644
index e31ed42038f800125f2129b1dbfafa86eacbf1b9..e2aa7524253adecd6536530d93f68e75482af97f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1008,6 +1008,9 @@ public class PurpurWorldConfig {
@@ -1018,6 +1018,9 @@ public class PurpurWorldConfig {
public int phantomSpawnOverheadRadius = 10;
public int phantomSpawnMinPerAttempt = 1;
public int phantomSpawnMaxPerAttempt = -1;
@ -60,7 +60,7 @@ index 71eef6cc623db385db98d3fe98ea657453ae28fb..878173f5bfbd164eb9873dc5b38272c4
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -1036,6 +1039,9 @@ public class PurpurWorldConfig {
@@ -1053,6 +1056,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 fbed51cacb1963b10946056a42fa6878e88a31a9..3d755f2c6253e83d0d9fb1348f066f4f
private boolean hungry() {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 878173f5bfbd164eb9873dc5b38272c444f19715..5d731291b435c5512143c01a59ee7a63e94f0c46 100644
index e2aa7524253adecd6536530d93f68e75482af97f..ce4d44d130ee3ed5b6925090ffa2b2d8da9c221b 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1427,6 +1427,7 @@ public class PurpurWorldConfig {
@@ -1448,6 +1448,7 @@ public class PurpurWorldConfig {
public boolean villagerCanBeLeashed = false;
public int villagerSpawnIronGolemRadius = 0;
public int villagerSpawnIronGolemLimit = 0;
@ -29,7 +29,7 @@ index 878173f5bfbd164eb9873dc5b38272c444f19715..5d731291b435c5512143c01a59ee7a63
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1442,6 +1443,7 @@ public class PurpurWorldConfig {
@@ -1463,6 +1464,7 @@ public class PurpurWorldConfig {
villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed);
villagerSpawnIronGolemRadius = getInt("mobs.villager.spawn-iron-golem.radius", villagerSpawnIronGolemRadius);
villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit);

View File

@ -17,10 +17,10 @@ index 03726227fdd60e9cf77213d50184abff438e01ef..76979991d2ded84161e8a0fc72cbb2d2
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 5d731291b435c5512143c01a59ee7a63e94f0c46..328a33211582554b3ec89ae1c28a00c980055eef 100644
index ce4d44d130ee3ed5b6925090ffa2b2d8da9c221b..4e7edce9874038b375a92a4e01d9233ecc7a10c1 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -351,6 +351,11 @@ public class PurpurWorldConfig {
@@ -352,6 +352,11 @@ public class PurpurWorldConfig {
signRightClickEdit = getBoolean("blocks.sign.right-click-edit", signRightClickEdit);
}

View File

@ -29,10 +29,10 @@ index 72341e3907ea19e16b5f09a7e7b38aac73d1ad50..66628b9c301da2fee3afe42ed321a2c3
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 328a33211582554b3ec89ae1c28a00c980055eef..e0e95b0956a0ee2f7f22bd04fb4d7d5b19868ebe 100644
index 4e7edce9874038b375a92a4e01d9233ecc7a10c1..c28ed3ae75695d5f4052726a2acf526dde7cd261 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 {
@@ -244,6 +244,7 @@ public class PurpurWorldConfig {
public String playerDeathExpDropEquation = "expLevel * 7";
public int playerDeathExpDropMax = 100;
public boolean teleportIfOutsideBorder = false;
@ -40,7 +40,7 @@ index 328a33211582554b3ec89ae1c28a00c980055eef..e0e95b0956a0ee2f7f22bd04fb4d7d5b
private void playerSettings() {
if (PurpurConfig.version < 19) {
boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer);
@@ -259,6 +260,7 @@ public class PurpurWorldConfig {
@@ -260,6 +261,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

@ -30,10 +30,10 @@ index c92c948989543248b22db0830a3cb1b6f7940d60..9db267a9a52aa1bde4423711bd0ac6b9
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index e0e95b0956a0ee2f7f22bd04fb4d7d5b19868ebe..59b32ac760bc267182d1a6691ef18665d8d3dc15 100644
index c28ed3ae75695d5f4052726a2acf526dde7cd261..ccdbeca6fa964fc2d1b4b25bdd4a218ea13a92df 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1456,6 +1456,7 @@ public class PurpurWorldConfig {
@@ -1477,6 +1477,7 @@ public class PurpurWorldConfig {
public boolean vindicatorRidable = false;
public boolean vindicatorRidableInWater = false;
public double vindicatorMaxHealth = 24.0D;
@ -41,7 +41,7 @@ index e0e95b0956a0ee2f7f22bd04fb4d7d5b19868ebe..59b32ac760bc267182d1a6691ef18665
private void vindicatorSettings() {
vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable);
vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater);
@@ -1465,6 +1466,7 @@ public class PurpurWorldConfig {
@@ -1486,6 +1487,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 59db245fe11384282af84ec1d5be08ab0e9484ca..a08eebaa08a75be4e7e8f6d560740ea1
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 59b32ac760bc267182d1a6691ef18665d8d3dc15..a286c2651b3fd43806897a9fea7cddd5f624995d 100644
index ccdbeca6fa964fc2d1b4b25bdd4a218ea13a92df..4d6d6d14556790a2ad6d129afb57a3b042662f01 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -312,8 +312,10 @@ public class PurpurWorldConfig {
@@ -313,8 +313,10 @@ public class PurpurWorldConfig {
}
public boolean dispenserApplyCursedArmor = true;

View File

@ -37,10 +37,10 @@ index 3314cb81d4d5ce9c1d5472e1213b6bcc1c688b9c..69d996fead45bcf9fe5a29727f7f0a7a
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index a286c2651b3fd43806897a9fea7cddd5f624995d..65e778e49e4d99988a68c7f069a55dfdf04502c2 100644
index 4d6d6d14556790a2ad6d129afb57a3b042662f01..e636499f07581429e0bc42f6b9c1c80fb48cc71a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -295,6 +295,11 @@ public class PurpurWorldConfig {
@@ -296,6 +296,11 @@ public class PurpurWorldConfig {
});
}

View File

@ -17,10 +17,10 @@ index 16f32f0a58b090174f3d8b38c583adbcca58c9e4..ea0fb3b032a86223bfdee05a56baa15a
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 65e778e49e4d99988a68c7f069a55dfdf04502c2..073eb58ae5eef87156c6951bf8eee356697fe3a6 100644
index e636499f07581429e0bc42f6b9c1c80fb48cc71a..06c50a42e2acd17b6c89ac8428b25c5866e6127e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -553,6 +553,7 @@ public class PurpurWorldConfig {
@@ -554,6 +554,7 @@ public class PurpurWorldConfig {
public float dolphinSpitSpeed = 1.0F;
public float dolphinSpitDamage = 2.0F;
public double dolphinMaxHealth = 10.0D;
@ -28,7 +28,7 @@ index 65e778e49e4d99988a68c7f069a55dfdf04502c2..073eb58ae5eef87156c6951bf8eee356
private void dolphinSettings() {
dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable);
dolphinSpitCooldown = getInt("mobs.dolphin.spit.cooldown", dolphinSpitCooldown);
@@ -564,6 +565,7 @@ public class PurpurWorldConfig {
@@ -565,6 +566,7 @@ public class PurpurWorldConfig {
set("mobs.dolphin.attributes.max_health", oldValue);
}
dolphinMaxHealth = getDouble("mobs.dolphin.attributes.max_health", dolphinMaxHealth);

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Stop squids floating on top of water
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 0ff2b5c23c904826098af23f17e95aba790ef3de..4fad4e9a15be08154c3eb7af1653a61dae9a581f 100644
index fda1d7f9b4bdfd12a531104ca8b571bd39e758f4..851edf3d77ccc887943a68ea6835d4c9bd4c16a9 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3914,6 +3914,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i
@ -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 073eb58ae5eef87156c6951bf8eee356697fe3a6..852acd97bb38fedd6aeb16abe40fa1166af31799 100644
index 06c50a42e2acd17b6c89ac8428b25c5866e6127e..bce10b6b23b563a95a16400d9ee80300fbb67939 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1313,6 +1313,7 @@ public class PurpurWorldConfig {
@@ -1334,6 +1334,7 @@ public class PurpurWorldConfig {
public boolean squidRidable = false;
public double squidMaxHealth = 10.0D;
public boolean squidImmuneToEAR = true;
@ -65,7 +65,7 @@ index 073eb58ae5eef87156c6951bf8eee356697fe3a6..852acd97bb38fedd6aeb16abe40fa116
private void squidSettings() {
squidRidable = getBoolean("mobs.squid.ridable", squidRidable);
if (PurpurConfig.version < 10) {
@@ -1322,6 +1323,7 @@ public class PurpurWorldConfig {
@@ -1343,6 +1344,7 @@ public class PurpurWorldConfig {
}
squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth);
squidImmuneToEAR = getBoolean("mobs.squid.immune-to-EAR", squidImmuneToEAR);

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Entities can use portals configuration
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 4fad4e9a15be08154c3eb7af1653a61dae9a581f..4d9ba5bfd3632c5402badde37996b6ae8c4dea5b 100644
index 851edf3d77ccc887943a68ea6835d4c9bd4c16a9..134be4b6a485f76c6f20361de5ef06121f21baab 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2743,7 +2743,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i
@ -27,10 +27,10 @@ index 4fad4e9a15be08154c3eb7af1653a61dae9a581f..4d9ba5bfd3632c5402badde37996b6ae
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 852acd97bb38fedd6aeb16abe40fa1166af31799..d1198bf0e9a64af5da22486982d15d7c68a8681c 100644
index bce10b6b23b563a95a16400d9ee80300fbb67939..e92a269a9340cd6b76cb7e13738ca46906675b2f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -96,6 +96,7 @@ public class PurpurWorldConfig {
@@ -97,6 +97,7 @@ public class PurpurWorldConfig {
public boolean useBetterMending = false;
public boolean boatEjectPlayersOnLand = false;
public boolean disableDropsOnCrammingDeath = false;
@ -38,7 +38,7 @@ index 852acd97bb38fedd6aeb16abe40fa1166af31799..d1198bf0e9a64af5da22486982d15d7c
public boolean milkCuresBadOmen = true;
public double tridentLoyaltyVoidReturnHeight = 0.0D;
public double voidDamageHeight = -64.0D;
@@ -104,6 +105,7 @@ public class PurpurWorldConfig {
@@ -105,6 +106,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 9a0a5da86e0502382cb538d6abea8e425e40dddc..93cc8dbf2ff435777a5edc11a834ca1b
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 d1198bf0e9a64af5da22486982d15d7c68a8681c..549c69dc47896f90c6976e6c18bbaa139e698ab6 100644
index e92a269a9340cd6b76cb7e13738ca46906675b2f..8ff90ee18ed8a6d6c5be991a5a0841383dd93f6c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1518,6 +1518,8 @@ public class PurpurWorldConfig {
@@ -1539,6 +1539,8 @@ public class PurpurWorldConfig {
public boolean witherRidableInWater = false;
public double witherMaxY = 256D;
public double witherMaxHealth = 300.0D;
@ -35,7 +35,7 @@ index d1198bf0e9a64af5da22486982d15d7c68a8681c..549c69dc47896f90c6976e6c18bbaa13
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -1532,6 +1534,8 @@ public class PurpurWorldConfig {
@@ -1553,6 +1555,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 ba095685ec775cb5a7ac9a5b7b0a91797f87b087..e0d2446a3e203a8980f2b4a8d45f677f5d7a7698 100644
index 2f8efdd72ee3ef12ce8223b73281f4170ad1bbf1..3fc111ee19000a9e665f00e168d1278cd5de0d25 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -83,6 +83,7 @@ import net.minecraft.world.entity.MobCategory;
@ -94,10 +94,10 @@ index 323eea2bccacfcc85849b5d82c2b30d991e0c0d8..bb5918ff947eb4cc4d0c964b2a8a9166
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 549c69dc47896f90c6976e6c18bbaa139e698ab6..16de8bd3f940e1d83970ddbd5aa89118c0b2a97c 100644
index 8ff90ee18ed8a6d6c5be991a5a0841383dd93f6c..8063f1d20a6f505514c94a28b890488319ca5628 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -67,6 +67,12 @@ public class PurpurWorldConfig {
@@ -68,6 +68,12 @@ public class PurpurWorldConfig {
return PurpurConfig.config.getBoolean("world-settings." + worldName + "." + path, PurpurConfig.config.getBoolean("world-settings.default." + path));
}
@ -110,7 +110,7 @@ index 549c69dc47896f90c6976e6c18bbaa139e698ab6..16de8bd3f940e1d83970ddbd5aa89118
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));
@@ -235,6 +241,21 @@ public class PurpurWorldConfig {
@@ -236,6 +242,21 @@ public class PurpurWorldConfig {
}
}

View File

@ -52,10 +52,10 @@ index e8dd1fdf1a3b697a2e040424df49ac6527b68312..120f77f52ef493f16c2bd8fbc8d8d0a4
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 16de8bd3f940e1d83970ddbd5aa89118c0b2a97c..cd001f91921ca908c1bc426c10640eaff25ad178 100644
index 8063f1d20a6f505514c94a28b890488319ca5628..e4bba9ac3a8b1f5b454a4907700a520ae76456c4 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -107,6 +107,7 @@ public class PurpurWorldConfig {
@@ -108,6 +108,7 @@ public class PurpurWorldConfig {
public double tridentLoyaltyVoidReturnHeight = 0.0D;
public double voidDamageHeight = -64.0D;
public double voidDamageDealt = 4.0D;
@ -63,7 +63,7 @@ index 16de8bd3f940e1d83970ddbd5aa89118c0b2a97c..cd001f91921ca908c1bc426c10640eaf
private void miscGameplayMechanicsSettings() {
useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending);
boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand);
@@ -116,6 +117,7 @@ public class PurpurWorldConfig {
@@ -117,6 +118,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

@ -289,10 +289,10 @@ index 2867e841e73a3edfdeb83af9d96e0d0cd4116a68..8613008090a9d7cf5cd7c2a598f2c725
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index cd001f91921ca908c1bc426c10640eaff25ad178..6b22d0c7787dd9c866d27debc1e56795473d0140 100644
index e4bba9ac3a8b1f5b454a4907700a520ae76456c4..88fae3bed78da308a047aec1347d13017ebfd933 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -288,6 +288,35 @@ public class PurpurWorldConfig {
@@ -289,6 +289,35 @@ public class PurpurWorldConfig {
totemOfUndyingWorksInInventory = getBoolean("gameplay-mechanics.player.totem-of-undying-works-in-inventory", totemOfUndyingWorksInInventory);
}

View File

@ -46,7 +46,7 @@ index 54028f6c708e78e71b6db84898b9a6b30759023c..02c8fd96d11e3a27b5fddb27d65fddff
this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, Axolotl.class, true, false));
this.targetSelector.addGoal(5, new NearestAttackableTargetGoal<>(this, Turtle.class, 10, true, false, Turtle.BABY_ON_LAND_SELECTOR));
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
index 26ba3700d7c6f2502ab8fa8698430e7bbd2572dd..8fe5ce2242b136f930584fdf6b5fcf27030f248b 100644
index c6ecf05dedeef70fb4aad55c6c8455fb7b69ab46..f2ff721fd7d1124e72f8cea4141769fb37f97b16 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
@@ -149,7 +149,19 @@ public class Zombie extends Monster {
@ -71,10 +71,10 @@ index 26ba3700d7c6f2502ab8fa8698430e7bbd2572dd..8fe5ce2242b136f930584fdf6b5fcf27
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 6b22d0c7787dd9c866d27debc1e56795473d0140..a5d6ff6c7986088e653fcdfe0305ae144c87a4c1 100644
index 88fae3bed78da308a047aec1347d13017ebfd933..04a9739ef2339cc0f886162401b90a0ed337e431 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1639,6 +1639,7 @@ public class PurpurWorldConfig {
@@ -1660,6 +1660,7 @@ public class PurpurWorldConfig {
public boolean zombieJockeyOnlyBaby = true;
public double zombieJockeyChance = 0.05D;
public boolean zombieJockeyTryExistingChickens = true;
@ -82,7 +82,7 @@ index 6b22d0c7787dd9c866d27debc1e56795473d0140..a5d6ff6c7986088e653fcdfe0305ae14
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -1652,6 +1653,7 @@ public class PurpurWorldConfig {
@@ -1673,6 +1674,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 55f94d28a536f5ceda00831e1b22c8db31c07c2f..d4e1e0117ce9105452679d64779086b8
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 a5d6ff6c7986088e653fcdfe0305ae144c87a4c1..366181b16bddb33cf0a447f086b3d7a2039b170a 100644
index 04a9739ef2339cc0f886162401b90a0ed337e431..99f99096c773ddc14f4abe5a17ebe4c88d298c8d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -810,9 +810,11 @@ public class PurpurWorldConfig {
@@ -811,9 +811,11 @@ public class PurpurWorldConfig {
public boolean glowSquidRidable = false;
public double glowSquidMaxHealth = 10.0D;
@ -73,7 +73,7 @@ index a5d6ff6c7986088e653fcdfe0305ae144c87a4c1..366181b16bddb33cf0a447f086b3d7a2
}
public boolean goatRidable = false;
@@ -1368,6 +1370,7 @@ public class PurpurWorldConfig {
@@ -1389,6 +1391,7 @@ public class PurpurWorldConfig {
public double squidMaxHealth = 10.0D;
public boolean squidImmuneToEAR = true;
public double squidOffsetWaterCheck = 0.0D;
@ -81,7 +81,7 @@ index a5d6ff6c7986088e653fcdfe0305ae144c87a4c1..366181b16bddb33cf0a447f086b3d7a2
private void squidSettings() {
squidRidable = getBoolean("mobs.squid.ridable", squidRidable);
if (PurpurConfig.version < 10) {
@@ -1378,6 +1381,7 @@ public class PurpurWorldConfig {
@@ -1399,6 +1402,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 366181b16bddb33cf0a447f086b3d7a2039b170a..8e3e8db4c77bdc15a7f77c5c981e338c0cd0dd39 100644
index 99f99096c773ddc14f4abe5a17ebe4c88d298c8d..de8d17bc900190b20e56e9002b936ec0ca16bd26 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -138,6 +138,17 @@ public class PurpurWorldConfig {
@@ -139,6 +139,17 @@ public class PurpurWorldConfig {
entityLifeSpan = getInt("gameplay-mechanics.entity-lifespan", entityLifeSpan);
}

View File

@ -95,7 +95,7 @@ index b6f2bae38781f16c46ad515f34d829074b58e70d..e1753ed5f7f72a4861666cd7929ab52b
throw new IllegalStateException(String.format("Unhandled damage of %s by %s from %s", entity, damager, source.msgId));
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index f0051835d259ecfd0300653645c3942749a31937..161dc422a331d02132d5158efeef8ac2150a4d0f 100644
index ed60935d58e8332ca9ccec48bd928373c3dc2091..8428da51def80e0b4e941362dd46b5d1a31ed690 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -176,6 +176,11 @@ public class PurpurConfig {
@ -111,10 +111,10 @@ index f0051835d259ecfd0300653645c3942749a31937..161dc422a331d02132d5158efeef8ac2
private static void serverModName() {
serverModName = getString("settings.server-mod-name", serverModName);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 8e3e8db4c77bdc15a7f77c5c981e338c0cd0dd39..69cf9d1f726295f54a28f328a1fb4cb1d97d6824 100644
index de8d17bc900190b20e56e9002b936ec0ca16bd26..77d66761a1f166775168ffd57c021582bbe92635 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -430,6 +430,11 @@ public class PurpurWorldConfig {
@@ -431,6 +431,11 @@ public class PurpurWorldConfig {
spawnerDeactivateByRedstone = getBoolean("blocks.spawner.deactivate-by-redstone", spawnerDeactivateByRedstone);
}

View File

@ -18,7 +18,7 @@ index 689ad22925b2561f7c8db961743eb1f821dbb25f..fa3c960992cc240161817e54659d83fe
public ClientboundSetTimePacket(long time, long timeOfDay, boolean doDaylightCycle) {
this.gameTime = time % 192000; // Paper - fix guardian beam
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 6a1863e815d3330d4619309630e447f601ea0136..dcb496f6af114ad5a41bfa3f3072ba48d9f2e8e9 100644
index 095d855c20622a74daf83e90a230a50c1a3669cf..884a6b777102877ab9af50f6f1df39213b672fe7 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1585,7 +1585,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@ -31,7 +31,7 @@ index 6a1863e815d3330d4619309630e447f601ea0136..dcb496f6af114ad5a41bfa3f3072ba48
}
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 b312ad3e74f053f1272b657a51d81825a7c38607..571fb586a7f9231e155c6842a440f8acf59b8963 100644
index 3fc111ee19000a9e665f00e168d1278cd5de0d25..f870288f2acc87183f272e32817bd5cf426d74d7 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -206,6 +206,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
@ -88,10 +88,10 @@ index b312ad3e74f053f1272b657a51d81825a7c38607..571fb586a7f9231e155c6842a440f8ac
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 69cf9d1f726295f54a28f328a1fb4cb1d97d6824..5ba4b0d440a3de90a7e90a4a5331d2f48e42d962 100644
index 77d66761a1f166775168ffd57c021582bbe92635..dd8914c2501b0bbbe92004fc3120c73257fab478 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -120,6 +120,13 @@ public class PurpurWorldConfig {
@@ -121,6 +121,13 @@ public class PurpurWorldConfig {
raidCooldownSeconds = getInt("gameplay-mechanics.raid-cooldown-seconds", raidCooldownSeconds);
}

View File

@ -48,10 +48,10 @@ index fb15ece736dde16066818216749fb2efba0b3b21..0d9b592ebfd22dc679ba7dbfd339db4d
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 5ba4b0d440a3de90a7e90a4a5331d2f48e42d962..640dad1e45ba88862efa60505171f9353e968acb 100644
index dd8914c2501b0bbbe92004fc3120c73257fab478..ff5a726ab8735975e6c285a2dce9df6576908ac9 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -400,6 +400,17 @@ public class PurpurWorldConfig {
@@ -401,6 +401,17 @@ public class PurpurWorldConfig {
farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow);
}

View File

@ -24,10 +24,10 @@ index e102795a2464eac028b30977be8d99ceca2339f7..f55a32c7c4e260b41a36b9fc3be01edb
return;
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 640dad1e45ba88862efa60505171f9353e968acb..9509af3328e25ba221f66ddde94f7b1f71f6bb06 100644
index ff5a726ab8735975e6c285a2dce9df6576908ac9..9e7544bd441041837df2327c363882b85b0ccc03 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -396,8 +396,10 @@ public class PurpurWorldConfig {
@@ -397,8 +397,10 @@ public class PurpurWorldConfig {
}
public boolean farmlandGetsMoistFromBelow = false;

View File

@ -95,10 +95,10 @@ index e5e4fa1865cdd903a4c543b79b4d30a2f067742d..dfcb5d9fe165852bffe2a676f134ba06
this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env);
this.ticksPerAnimalSpawns = this.getCraftServer().getTicksPerAnimalSpawns(); // CraftBukkit
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 9509af3328e25ba221f66ddde94f7b1f71f6bb06..6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa 100644
index 9e7544bd441041837df2327c363882b85b0ccc03..4a3acf6e9159ee6ef095a93c1f67c028c7ae8356 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 {
@@ -109,6 +109,7 @@ public class PurpurWorldConfig {
public double voidDamageHeight = -64.0D;
public double voidDamageDealt = 4.0D;
public int raidCooldownSeconds = 0;
@ -106,7 +106,7 @@ index 9509af3328e25ba221f66ddde94f7b1f71f6bb06..6455daf0495914d8cbfcb60d8d7e2d2a
private void miscGameplayMechanicsSettings() {
useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending);
boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand);
@@ -118,6 +119,7 @@ public class PurpurWorldConfig {
@@ -119,6 +120,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

@ -172,7 +172,7 @@ index ccb18fea0e03d08405b0fff5e9df5025f02cebf7..4bf4403cb65b8e1fee9c253c7932ad83
public boolean isTrusting() {
diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java
index 1a4434432516f8b7f2bbbc64f9554c340530ce89..a3f04f6b4df1c7d8759addecaa4ea16e08b456f5 100644
index 45a92265ac626ae401342e6a21b0ba271ba5b371..615784e3b53d43e2167d91bb41c26079998d7f47 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Panda.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java
@@ -132,6 +132,11 @@ public class Panda extends Animal {
@ -300,7 +300,7 @@ index 277637692e504cca04bfca7683c052295c2c5a86..9f23279f7e3aedb758082c672656d5e4
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
index a2b2d3f670cd200d7fba40f8227964ef95c5b455..4020f631f4f02834550a60630d5d429004d71269 100644
index 1b66aea5871ccf83ea39d3f52f0f6da72cd785b6..1ac7aa1f49a9740b5e20a5452410a6557ce98eda 100644
--- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
+++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
@@ -111,6 +111,11 @@ public class Axolotl extends Animal implements LerpingModel, Bucketable {
@ -316,7 +316,7 @@ index a2b2d3f670cd200d7fba40f8227964ef95c5b455..4020f631f4f02834550a60630d5d4290
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
index 21aca411c458a1e80cdd6e97961f9a5c572854a9..b72756afc34afa3f4f8ad838eba3a24faf7e46d0 100644
index 39a7ea2854090d8505a9bc888313d84645595e23..33e7abf0b02695d191a9b827dc82f432c3381167 100644
--- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
+++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
@@ -89,6 +89,11 @@ public class Goat extends Animal {
@ -460,7 +460,7 @@ index e65eaf393b118e38fde8f525ac9b1d6e6f98e729..74d11bf608ff26093d7995a09a463cac
public static boolean checkStriderSpawnRules(EntityType<Strider> type, LevelAccessor world, MobSpawnType spawnReason, BlockPos pos, Random random) {
diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
index 3ec9b8343cf80ceea8503ad78863a4b539c6ef6b..c536b0f0d0ebe5b6b6409972eb711f84fc42afb7 100644
index 32836a16b18f4bb168d5a3d292765be33b998280..7013ae9b2649b98471902e37747b80812e0a09e0 100644
--- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -82,6 +82,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
@ -476,10 +476,10 @@ index 3ec9b8343cf80ceea8503ad78863a4b539c6ef6b..c536b0f0d0ebe5b6b6409972eb711f84
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c24d6c50b 100644
index 4a3acf6e9159ee6ef095a93c1f67c028c7ae8356..5188492e3cedd85aa891911fd30b0a30fc98b318 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -484,9 +484,11 @@ public class PurpurWorldConfig {
@@ -485,9 +485,11 @@ public class PurpurWorldConfig {
public boolean axolotlRidable = false;
public double axolotlMaxHealth = 14.0D;
@ -491,7 +491,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
}
public boolean batRidable = false;
@@ -516,6 +518,7 @@ public class PurpurWorldConfig {
@@ -517,6 +519,7 @@ public class PurpurWorldConfig {
public boolean beeRidableInWater = false;
public double beeMaxY = 256D;
public double beeMaxHealth = 10.0D;
@ -499,7 +499,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
private void beeSettings() {
beeRidable = getBoolean("mobs.bee.ridable", beeRidable);
beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater);
@@ -526,6 +529,7 @@ public class PurpurWorldConfig {
@@ -527,6 +530,7 @@ public class PurpurWorldConfig {
set("mobs.bee.attributes.max_health", oldValue);
}
beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth);
@ -507,7 +507,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
}
public boolean blazeRidable = false;
@@ -550,6 +554,7 @@ public class PurpurWorldConfig {
@@ -551,6 +555,7 @@ public class PurpurWorldConfig {
public int catSpawnDelay = 1200;
public int catSpawnSwampHutScanRange = 16;
public int catSpawnVillageScanRange = 48;
@ -515,7 +515,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
private void catSettings() {
catRidable = getBoolean("mobs.cat.ridable", catRidable);
catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater);
@@ -562,6 +567,7 @@ public class PurpurWorldConfig {
@@ -563,6 +568,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);
@ -523,7 +523,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
}
public boolean caveSpiderRidable = false;
@@ -582,6 +588,7 @@ public class PurpurWorldConfig {
@@ -583,6 +589,7 @@ public class PurpurWorldConfig {
public boolean chickenRidableInWater = false;
public double chickenMaxHealth = 4.0D;
public boolean chickenRetaliate = false;
@ -531,7 +531,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
private void chickenSettings() {
chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable);
chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater);
@@ -592,6 +599,7 @@ public class PurpurWorldConfig {
@@ -593,6 +600,7 @@ public class PurpurWorldConfig {
}
chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth);
chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate);
@ -539,7 +539,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
}
public boolean codRidable = false;
@@ -610,6 +618,7 @@ public class PurpurWorldConfig {
@@ -611,6 +619,7 @@ public class PurpurWorldConfig {
public boolean cowRidableInWater = false;
public double cowMaxHealth = 10.0D;
public int cowFeedMushrooms = 0;
@ -547,7 +547,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
private void cowSettings() {
cowRidable = getBoolean("mobs.cow.ridable", cowRidable);
cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater);
@@ -620,6 +629,7 @@ public class PurpurWorldConfig {
@@ -621,6 +630,7 @@ public class PurpurWorldConfig {
}
cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth);
cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms);
@ -555,7 +555,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
}
public boolean creeperRidable = false;
@@ -667,6 +677,7 @@ public class PurpurWorldConfig {
@@ -668,6 +678,7 @@ public class PurpurWorldConfig {
public double donkeyJumpStrengthMax = 0.5D;
public double donkeyMovementSpeedMin = 0.175D;
public double donkeyMovementSpeedMax = 0.175D;
@ -563,7 +563,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
private void donkeySettings() {
donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater);
if (PurpurConfig.version < 10) {
@@ -682,6 +693,7 @@ public class PurpurWorldConfig {
@@ -683,6 +694,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);
@ -571,7 +571,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
}
public boolean drownedRidable = false;
@@ -788,6 +800,7 @@ public class PurpurWorldConfig {
@@ -789,6 +801,7 @@ public class PurpurWorldConfig {
public boolean foxRidableInWater = false;
public double foxMaxHealth = 10.0D;
public boolean foxTypeChangesWithTulips = false;
@ -579,7 +579,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
private void foxSettings() {
foxRidable = getBoolean("mobs.fox.ridable", foxRidable);
foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater);
@@ -798,6 +811,7 @@ public class PurpurWorldConfig {
@@ -799,6 +812,7 @@ public class PurpurWorldConfig {
}
foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth);
foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips);
@ -587,7 +587,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
}
public boolean ghastRidable = false;
@@ -858,10 +872,12 @@ public class PurpurWorldConfig {
@@ -859,10 +873,12 @@ public class PurpurWorldConfig {
public boolean goatRidable = false;
public boolean goatRidableInWater = false;
public double goatMaxHealth = 10.0D;
@ -600,7 +600,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
}
public boolean guardianRidable = false;
@@ -879,6 +895,7 @@ public class PurpurWorldConfig {
@@ -880,6 +896,7 @@ public class PurpurWorldConfig {
public boolean hoglinRidable = false;
public boolean hoglinRidableInWater = false;
public double hoglinMaxHealth = 40.0D;
@ -608,7 +608,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
private void hoglinSettings() {
hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable);
hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater);
@@ -888,6 +905,7 @@ public class PurpurWorldConfig {
@@ -889,6 +906,7 @@ public class PurpurWorldConfig {
set("mobs.hoglin.attributes.max_health", oldValue);
}
hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth);
@ -616,7 +616,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
}
public boolean horseRidableInWater = false;
@@ -897,6 +915,7 @@ public class PurpurWorldConfig {
@@ -898,6 +916,7 @@ public class PurpurWorldConfig {
public double horseJumpStrengthMax = 1.0D;
public double horseMovementSpeedMin = 0.1125D;
public double horseMovementSpeedMax = 0.3375D;
@ -624,7 +624,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
private void horseSettings() {
horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater);
if (PurpurConfig.version < 10) {
@@ -912,6 +931,7 @@ public class PurpurWorldConfig {
@@ -913,6 +932,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);
@ -632,7 +632,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
}
public boolean huskRidable = false;
@@ -982,6 +1002,7 @@ public class PurpurWorldConfig {
@@ -983,6 +1003,7 @@ public class PurpurWorldConfig {
public double llamaJumpStrengthMax = 0.5D;
public double llamaMovementSpeedMin = 0.175D;
public double llamaMovementSpeedMax = 0.175D;
@ -640,7 +640,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
private void llamaSettings() {
llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable);
llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater);
@@ -998,6 +1019,7 @@ public class PurpurWorldConfig {
@@ -999,6 +1020,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);
@ -648,7 +648,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
}
public boolean magmaCubeRidable = false;
@@ -1017,6 +1039,7 @@ public class PurpurWorldConfig {
@@ -1024,6 +1046,7 @@ public class PurpurWorldConfig {
public boolean mooshroomRidable = false;
public boolean mooshroomRidableInWater = false;
public double mooshroomMaxHealth = 10.0D;
@ -656,7 +656,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
private void mooshroomSettings() {
mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable);
mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater);
@@ -1026,6 +1049,7 @@ public class PurpurWorldConfig {
@@ -1033,6 +1056,7 @@ public class PurpurWorldConfig {
set("mobs.mooshroom.attributes.max_health", oldValue);
}
mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth);
@ -664,7 +664,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
}
public boolean muleRidableInWater = false;
@@ -1035,6 +1059,7 @@ public class PurpurWorldConfig {
@@ -1042,6 +1066,7 @@ public class PurpurWorldConfig {
public double muleJumpStrengthMax = 0.5D;
public double muleMovementSpeedMin = 0.175D;
public double muleMovementSpeedMax = 0.175D;
@ -672,7 +672,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
private void muleSettings() {
muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater);
if (PurpurConfig.version < 10) {
@@ -1050,11 +1075,13 @@ public class PurpurWorldConfig {
@@ -1057,11 +1082,13 @@ 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);
@ -686,7 +686,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
private void ocelotSettings() {
ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable);
ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater);
@@ -1064,11 +1091,13 @@ public class PurpurWorldConfig {
@@ -1071,11 +1098,13 @@ public class PurpurWorldConfig {
set("mobs.ocelot.attributes.max_health", oldValue);
}
ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth);
@ -700,7 +700,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
private void pandaSettings() {
pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable);
pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater);
@@ -1078,6 +1107,7 @@ public class PurpurWorldConfig {
@@ -1085,6 +1114,7 @@ public class PurpurWorldConfig {
set("mobs.panda.attributes.max_health", oldValue);
}
pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth);
@ -708,7 +708,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
}
public boolean parrotRidable = false;
@@ -1158,6 +1188,7 @@ public class PurpurWorldConfig {
@@ -1175,6 +1205,7 @@ public class PurpurWorldConfig {
public boolean pigRidableInWater = false;
public double pigMaxHealth = 10.0D;
public boolean pigGiveSaddleBack = false;
@ -716,7 +716,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
private void pigSettings() {
pigRidable = getBoolean("mobs.pig.ridable", pigRidable);
pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater);
@@ -1168,6 +1199,7 @@ public class PurpurWorldConfig {
@@ -1185,6 +1216,7 @@ public class PurpurWorldConfig {
}
pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth);
pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack);
@ -724,7 +724,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
}
public boolean piglinRidable = false;
@@ -1217,6 +1249,7 @@ public class PurpurWorldConfig {
@@ -1234,6 +1266,7 @@ public class PurpurWorldConfig {
public double polarBearMaxHealth = 30.0D;
public String polarBearBreedableItemString = "";
public Item polarBearBreedableItem = null;
@ -732,7 +732,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
private void polarBearSettings() {
polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable);
polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater);
@@ -1229,6 +1262,7 @@ public class PurpurWorldConfig {
@@ -1246,6 +1279,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;
@ -740,7 +740,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
}
public boolean pufferfishRidable = false;
@@ -1248,6 +1282,7 @@ public class PurpurWorldConfig {
@@ -1265,6 +1299,7 @@ public class PurpurWorldConfig {
public double rabbitMaxHealth = 3.0D;
public double rabbitNaturalToast = 0.0D;
public double rabbitNaturalKiller = 0.0D;
@ -748,7 +748,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
private void rabbitSettings() {
rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable);
rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater);
@@ -1259,6 +1294,7 @@ public class PurpurWorldConfig {
@@ -1276,6 +1311,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);
@ -756,7 +756,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
}
public boolean ravagerRidable = false;
@@ -1290,6 +1326,7 @@ public class PurpurWorldConfig {
@@ -1307,6 +1343,7 @@ public class PurpurWorldConfig {
public boolean sheepRidable = false;
public boolean sheepRidableInWater = false;
public double sheepMaxHealth = 8.0D;
@ -764,7 +764,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
private void sheepSettings() {
sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable);
sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater);
@@ -1299,6 +1336,7 @@ public class PurpurWorldConfig {
@@ -1316,6 +1353,7 @@ public class PurpurWorldConfig {
set("mobs.sheep.attributes.max_health", oldValue);
}
sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth);
@ -772,7 +772,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
}
public boolean shulkerRidable = false;
@@ -1453,6 +1491,7 @@ public class PurpurWorldConfig {
@@ -1474,6 +1512,7 @@ public class PurpurWorldConfig {
public boolean striderRidable = false;
public boolean striderRidableInWater = false;
public double striderMaxHealth = 20.0D;
@ -780,7 +780,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
private void striderSettings() {
striderRidable = getBoolean("mobs.strider.ridable", striderRidable);
striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater);
@@ -1462,6 +1501,7 @@ public class PurpurWorldConfig {
@@ -1483,6 +1522,7 @@ public class PurpurWorldConfig {
set("mobs.strider.attributes.max_health", oldValue);
}
striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth);
@ -788,7 +788,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
}
public boolean traderLlamaRidable = false;
@@ -1472,6 +1512,7 @@ public class PurpurWorldConfig {
@@ -1493,6 +1533,7 @@ public class PurpurWorldConfig {
public double traderLlamaJumpStrengthMax = 0.5D;
public double traderLlamaMovementSpeedMin = 0.175D;
public double traderLlamaMovementSpeedMax = 0.175D;
@ -796,7 +796,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
private void traderLlamaSettings() {
traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable);
traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater);
@@ -1488,6 +1529,7 @@ public class PurpurWorldConfig {
@@ -1509,6 +1550,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);
@ -804,7 +804,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
}
public boolean tropicalFishRidable = false;
@@ -1505,6 +1547,7 @@ public class PurpurWorldConfig {
@@ -1526,6 +1568,7 @@ public class PurpurWorldConfig {
public boolean turtleRidable = false;
public boolean turtleRidableInWater = false;
public double turtleMaxHealth = 30.0D;
@ -812,7 +812,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
private void turtleSettings() {
turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable);
turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater);
@@ -1514,6 +1557,7 @@ public class PurpurWorldConfig {
@@ -1535,6 +1578,7 @@ public class PurpurWorldConfig {
set("mobs.turtle.attributes.max_health", oldValue);
}
turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth);
@ -820,7 +820,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
}
public boolean vexRidable = false;
@@ -1542,6 +1586,7 @@ public class PurpurWorldConfig {
@@ -1563,6 +1607,7 @@ public class PurpurWorldConfig {
public int villagerSpawnIronGolemRadius = 0;
public int villagerSpawnIronGolemLimit = 0;
public boolean villagerCanBreed = true;
@ -828,7 +828,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1558,6 +1603,7 @@ public class PurpurWorldConfig {
@@ -1579,6 +1624,7 @@ public class PurpurWorldConfig {
villagerSpawnIronGolemRadius = getInt("mobs.villager.spawn-iron-golem.radius", villagerSpawnIronGolemRadius);
villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit);
villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed);
@ -836,7 +836,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
}
public boolean vindicatorRidable = false;
@@ -1649,6 +1695,7 @@ public class PurpurWorldConfig {
@@ -1670,6 +1716,7 @@ public class PurpurWorldConfig {
public boolean wolfRidable = false;
public boolean wolfRidableInWater = false;
public double wolfMaxHealth = 8.0D;
@ -844,7 +844,7 @@ index 6455daf0495914d8cbfcb60d8d7e2d2a2926a0aa..de65734d13cedf5753a0560315e0f83c
private void wolfSettings() {
wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable);
wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater);
@@ -1658,6 +1705,7 @@ public class PurpurWorldConfig {
@@ -1679,6 +1726,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 0284201b0bb0f5c9a4a2393cf0d83e8e21262df3..1f46a2be362ed5f60a7ca75916fe7bd4
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 de65734d13cedf5753a0560315e0f83c24d6c50b..6ec9bb36d3dcf175b90342f46d49a3c3ac30fb0c 100644
index 5188492e3cedd85aa891911fd30b0a30fc98b318..f0ec5498b5a814f644cb105dc3e6ec927d0dffe4 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 {
@@ -96,8 +96,10 @@ public class PurpurWorldConfig {
}
public float armorstandStepHeight = 0.0F;
@ -156,7 +156,7 @@ index de65734d13cedf5753a0560315e0f83c24d6c50b..6ec9bb36d3dcf175b90342f46d49a3c3
}
public boolean useBetterMending = false;
@@ -104,6 +106,7 @@ public class PurpurWorldConfig {
@@ -105,6 +107,7 @@ public class PurpurWorldConfig {
public boolean disableDropsOnCrammingDeath = false;
public boolean entitiesCanUsePortals = true;
public boolean milkCuresBadOmen = true;
@ -164,7 +164,7 @@ index de65734d13cedf5753a0560315e0f83c24d6c50b..6ec9bb36d3dcf175b90342f46d49a3c3
public double tridentLoyaltyVoidReturnHeight = 0.0D;
public double voidDamageHeight = -64.0D;
public double voidDamageDealt = 4.0D;
@@ -115,6 +118,7 @@ public class PurpurWorldConfig {
@@ -116,6 +119,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 6ec9bb36d3dcf175b90342f46d49a3c3ac30fb0c..e65f8580dbd2112f7fdd2c9e66808f04afb073e2 100644
index f0ec5498b5a814f644cb105dc3e6ec927d0dffe4..1dfd19712d883935dc59123d1b2468ed42453152 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 {
@@ -97,9 +97,11 @@ public class PurpurWorldConfig {
public float armorstandStepHeight = 0.0F;
public boolean armorstandSetNameVisible = false;

View File

@ -21,10 +21,10 @@ index 37fe7d448ae40e67cc8c7c1856df3c8ac276f0be..3945038b07393cd4692b340f32a98840
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 e65f8580dbd2112f7fdd2c9e66808f04afb073e2..928d2a647236ad46f2c30280d4ed6e04ea552f65 100644
index 1dfd19712d883935dc59123d1b2468ed42453152..b2c3bc12d5d0f4342a684bc14d5b00bcd309716d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -762,6 +762,7 @@ public class PurpurWorldConfig {
@@ -763,6 +763,7 @@ public class PurpurWorldConfig {
public boolean endermanRidableInWater = false;
public double endermanMaxHealth = 40.0D;
public boolean endermanAllowGriefing = true;
@ -32,7 +32,7 @@ index e65f8580dbd2112f7fdd2c9e66808f04afb073e2..928d2a647236ad46f2c30280d4ed6e04
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -772,6 +773,7 @@ public class PurpurWorldConfig {
@@ -773,6 +774,7 @@ public class PurpurWorldConfig {
}
endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth);
endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing);

View File

@ -18,10 +18,10 @@ index ed2f039c4042861bcfa2e41d8281eefd37daa9fa..d5d84893c77b4e60a19032d765d76bfd
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 928d2a647236ad46f2c30280d4ed6e04ea552f65..d262ce0d56d03a12c2eddc054a63bef42fe2c140 100644
index b2c3bc12d5d0f4342a684bc14d5b00bcd309716d..cafa9168b688ba141b96ba0a243048b5a00841cd 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -314,6 +314,11 @@ public class PurpurWorldConfig {
@@ -315,6 +315,11 @@ public class PurpurWorldConfig {
totemOfUndyingWorksInInventory = getBoolean("gameplay-mechanics.player.totem-of-undying-works-in-inventory", totemOfUndyingWorksInInventory);
}

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Changeable Mob Left Handed Chance
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 6f4396ab99bf87560544e3eb7f4e8711595af2ae..a3b2d756df150e7be20983fa865b0743de4c91e7 100644
index 1ef0de7544f26faf69dc0395da8e09f9514a4aff..0e7fcda7cd4d9008ba3aeb15a50301b8dcb8ba24 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -1231,7 +1231,7 @@ public abstract class Mob extends LivingEntity {
@ -18,10 +18,10 @@ index 6f4396ab99bf87560544e3eb7f4e8711595af2ae..a3b2d756df150e7be20983fa865b0743
} 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 d262ce0d56d03a12c2eddc054a63bef42fe2c140..5679ea7fc6ae18b63f63d32ac91043ae12d897ba 100644
index cafa9168b688ba141b96ba0a243048b5a00841cd..2e177ec703bda4375d4c8d59b410fb1842b679d9 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -149,8 +149,10 @@ public class PurpurWorldConfig {
@@ -150,8 +150,10 @@ public class PurpurWorldConfig {
}
public int entityLifeSpan = 0;

View File

@ -27,10 +27,10 @@ index 295658d4b479e8a3e825f0b5ce5dfc2c7c55a0fe..dfe547b7a2caa2ecfdddef9b9a49be40
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 5679ea7fc6ae18b63f63d32ac91043ae12d897ba..69b9254f7f9d76e6d077081c7351fcb622f7c435 100644
index 2e177ec703bda4375d4c8d59b410fb1842b679d9..16b8fa1509f542c715ba18d2966b36afd0ce4b25 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -105,6 +105,7 @@ public class PurpurWorldConfig {
@@ -106,6 +106,7 @@ public class PurpurWorldConfig {
public boolean useBetterMending = false;
public boolean boatEjectPlayersOnLand = false;
@ -38,7 +38,7 @@ index 5679ea7fc6ae18b63f63d32ac91043ae12d897ba..69b9254f7f9d76e6d077081c7351fcb6
public boolean disableDropsOnCrammingDeath = false;
public boolean entitiesCanUsePortals = true;
public boolean milkCuresBadOmen = true;
@@ -117,6 +118,7 @@ public class PurpurWorldConfig {
@@ -118,6 +119,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 a9c1b07f23c604d9364ccdee9478baf137af0816..10d68856c98b705158fe90623ef2b9ad
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 69b9254f7f9d76e6d077081c7351fcb622f7c435..b29eec4e4450d6943eeecbb6256be6f3a1b35763 100644
index 16b8fa1509f542c715ba18d2966b36afd0ce4b25..066f7f6d51141d60e399d18cfc00a0693c577f7d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1445,6 +1445,10 @@ public class PurpurWorldConfig {
@@ -1466,6 +1466,10 @@ public class PurpurWorldConfig {
public double snowGolemMaxHealth = 4.0D;
public boolean snowGolemDropsPumpkin = true;
public boolean snowGolemPutPumpkinBack = false;
@ -37,7 +37,7 @@ index 69b9254f7f9d76e6d077081c7351fcb622f7c435..b29eec4e4450d6943eeecbb6256be6f3
private void snowGolemSettings() {
snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable);
snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater);
@@ -1457,6 +1461,10 @@ public class PurpurWorldConfig {
@@ -1478,6 +1482,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

@ -183,10 +183,10 @@ index 901fc6520d58a5fa5f2cf1b4fa78fec6008aa409..9050cd25663c71197c597aac0ab2e612
public static final VillagerProfession FISHERMAN = register("fisherman", PoiType.FISHERMAN, SoundEvents.VILLAGER_WORK_FISHERMAN);
public static final VillagerProfession FLETCHER = register("fletcher", PoiType.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 b29eec4e4450d6943eeecbb6256be6f3a1b35763..a7fa7b522996ffe19368a15c8d158c444da1e55d 100644
index 066f7f6d51141d60e399d18cfc00a0693c577f7d..0678c7a779114dbac0036d55f179bca7de4e470a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1612,6 +1612,8 @@ public class PurpurWorldConfig {
@@ -1633,6 +1633,8 @@ public class PurpurWorldConfig {
public int villagerSpawnIronGolemLimit = 0;
public boolean villagerCanBreed = true;
public int villagerBreedingTicks = 6000;
@ -195,7 +195,7 @@ index b29eec4e4450d6943eeecbb6256be6f3a1b35763..a7fa7b522996ffe19368a15c8d158c44
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1629,6 +1631,8 @@ public class PurpurWorldConfig {
@@ -1650,6 +1652,8 @@ public class PurpurWorldConfig {
villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit);
villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed);
villagerBreedingTicks = getInt("mobs.villager.breeding-delay-ticks", villagerBreedingTicks);

View File

@ -35,10 +35,10 @@ index 76f1bbec2b8ebe037de65ee5ec718e17a6081c13..f8b742ee8e637edd8e8b05aff2fcc7a7
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index a7fa7b522996ffe19368a15c8d158c444da1e55d..65baf4aafad765b9d8d053d024d604f5b6ff724a 100644
index 0678c7a779114dbac0036d55f179bca7de4e470a..f43bcc77b36bcb1af5fff7f96bceac06599b0f4e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1831,6 +1831,7 @@ public class PurpurWorldConfig {
@@ -1852,6 +1852,7 @@ public class PurpurWorldConfig {
public boolean zombifiedPiglinJockeyOnlyBaby = true;
public double zombifiedPiglinJockeyChance = 0.05D;
public boolean zombifiedPiglinJockeyTryExistingChickens = true;
@ -46,7 +46,7 @@ index a7fa7b522996ffe19368a15c8d158c444da1e55d..65baf4aafad765b9d8d053d024d604f5
private void zombifiedPiglinSettings() {
zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable);
zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater);
@@ -1844,5 +1845,6 @@ public class PurpurWorldConfig {
@@ -1865,5 +1866,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 f856b42201c17f8da21251e54fcf052336916e70..ac0803d42be2f36a2f40487ee31413d0
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 65baf4aafad765b9d8d053d024d604f5b6ff724a..4dd081359254913c4ffd62e92f6621ee8b3074a0 100644
index f43bcc77b36bcb1af5fff7f96bceac06599b0f4e..371aa602dc35eab9e09816130e5e0a24bf899a82 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1724,6 +1724,8 @@ public class PurpurWorldConfig {
@@ -1745,6 +1745,8 @@ public class PurpurWorldConfig {
public boolean wolfRidable = false;
public boolean wolfRidableInWater = false;
public double wolfMaxHealth = 8.0D;
@ -234,7 +234,7 @@ index 65baf4aafad765b9d8d053d024d604f5b6ff724a..4dd081359254913c4ffd62e92f6621ee
public int wolfBreedingTicks = 6000;
private void wolfSettings() {
wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable);
@@ -1734,6 +1736,8 @@ public class PurpurWorldConfig {
@@ -1755,6 +1757,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 38c69ddde8a54482a1de60387bace297869c47f3..20e0e74d7e43f436172ca7b4cb8b613b
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 4dd081359254913c4ffd62e92f6621ee8b3074a0..8f5d38ce4bbcfa36e98c6d7b5720f82d94ed0fba 100644
index 371aa602dc35eab9e09816130e5e0a24bf899a82..1bf798e4fb771cb1dfe0c001ebf618bd28d55df2 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -565,6 +565,7 @@ public class PurpurWorldConfig {
@@ -566,6 +566,7 @@ public class PurpurWorldConfig {
public boolean catRidable = false;
public boolean catRidableInWater = false;
@ -54,7 +54,7 @@ index 4dd081359254913c4ffd62e92f6621ee8b3074a0..8f5d38ce4bbcfa36e98c6d7b5720f82d
public double catMaxHealth = 10.0D;
public int catSpawnDelay = 1200;
public int catSpawnSwampHutScanRange = 16;
@@ -578,6 +579,11 @@ public class PurpurWorldConfig {
@@ -579,6 +580,11 @@ public class PurpurWorldConfig {
set("mobs.cat.attributes.max-health", null);
set("mobs.cat.attributes.max_health", oldValue);
}
@ -66,7 +66,7 @@ index 4dd081359254913c4ffd62e92f6621ee8b3074a0..8f5d38ce4bbcfa36e98c6d7b5720f82d
catMaxHealth = getDouble("mobs.cat.attributes.max_health", catMaxHealth);
catSpawnDelay = getInt("mobs.cat.spawn-delay", catSpawnDelay);
catSpawnSwampHutScanRange = getInt("mobs.cat.scan-range-for-other-cats.swamp-hut", catSpawnSwampHutScanRange);
@@ -1724,6 +1730,7 @@ public class PurpurWorldConfig {
@@ -1745,6 +1751,7 @@ public class PurpurWorldConfig {
public boolean wolfRidable = false;
public boolean wolfRidableInWater = false;
public double wolfMaxHealth = 8.0D;
@ -74,7 +74,7 @@ index 4dd081359254913c4ffd62e92f6621ee8b3074a0..8f5d38ce4bbcfa36e98c6d7b5720f82d
public boolean wolfMilkCuresRabies = true;
public double wolfNaturalRabid = 0.0D;
public int wolfBreedingTicks = 6000;
@@ -1736,6 +1743,11 @@ public class PurpurWorldConfig {
@@ -1757,6 +1764,11 @@ public class PurpurWorldConfig {
set("mobs.wolf.attributes.max_health", oldValue);
}
wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth);

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Phantom flames on swoop
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
index 284532bfe697d288529eacbad0fcfcb6a3680446..97e3e25263e1cea87d0b420da05271b83bc29164 100644
index 72a790e6aba656e8817a84d2c729ce722e9a43ef..130b7e356b5aba604eaaaac2d2898e13359fd6fc 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -226,6 +226,7 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -239,6 +239,7 @@ public class Phantom extends FlyingMob implements Enemy {
this.level.addParticle(ParticleTypes.MYCELIUM, this.getX() - (double) f2, this.getY() + (double) f4, this.getZ() - (double) f3, 0.0D, 0.0D, 0.0D);
}
@ -17,22 +17,22 @@ index 284532bfe697d288529eacbad0fcfcb6a3680446..97e3e25263e1cea87d0b420da05271b8
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 8f5d38ce4bbcfa36e98c6d7b5720f82d94ed0fba..a8ef326a9616ce9ff16c8265aeb4b81b5f015e81 100644
index 1bf798e4fb771cb1dfe0c001ebf618bd28d55df2..9d879101a072c5c02ff874ad18483f810c42e353 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1155,6 +1155,7 @@ public class PurpurWorldConfig {
public float phantomFlameDamage = 1.0F;
public int phantomFlameFireTime = 8;
public boolean phantomAllowGriefing = false;
@@ -1184,6 +1184,7 @@ public class PurpurWorldConfig {
public int phantomBurnInLight = 0;
public boolean phantomIgnorePlayersWithTorch = false;
public boolean phantomBurnInDaylight = true;
+ public boolean phantomFlamesOnSwoop = false;
public double phantomMaxHealth = 20.0D;
public double phantomAttackedByCrystalRadius = 0.0D;
public float phantomAttackedByCrystalDamage = 1.0F;
@@ -1181,6 +1182,7 @@ 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);
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -1222,6 +1223,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);
+ phantomFlamesOnSwoop = getBoolean("mobs.phantom.flames-on-swoop", phantomFlamesOnSwoop);
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.phantom.attributes.max-health", phantomMaxHealth);
set("mobs.phantom.attributes.max-health", null);
}
public boolean pigRidable = false;

View File

@ -17,10 +17,10 @@ index db726697b00afdee6078849fd224263483349912..c808664a67a9604e40ab388c6d0e6ac3
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 a8ef326a9616ce9ff16c8265aeb4b81b5f015e81..8f4ff8bc8466263aaac5811572ce30f282084855 100644
index 9d879101a072c5c02ff874ad18483f810c42e353..8adefc693683c5870abb5d0f2f63b5391d7efb6d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -405,6 +405,11 @@ public class PurpurWorldConfig {
@@ -406,6 +406,11 @@ public class PurpurWorldConfig {
}
}

View File

@ -28,10 +28,10 @@ index 74d11bf608ff26093d7995a09a463cac24304fa1..5902f0883ca0ad706801dc693bb3ac79
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 8f4ff8bc8466263aaac5811572ce30f282084855..41629af5929af46cbf164467289ae8f2e1de14ee 100644
index 8adefc693683c5870abb5d0f2f63b5391d7efb6d..332025053dd547e46c9d1f59114bea989e54bb3b 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1530,6 +1530,7 @@ public class PurpurWorldConfig {
@@ -1551,6 +1551,7 @@ public class PurpurWorldConfig {
public boolean striderRidableInWater = false;
public double striderMaxHealth = 20.0D;
public int striderBreedingTicks = 6000;
@ -39,7 +39,7 @@ index 8f4ff8bc8466263aaac5811572ce30f282084855..41629af5929af46cbf164467289ae8f2
private void striderSettings() {
striderRidable = getBoolean("mobs.strider.ridable", striderRidable);
striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater);
@@ -1540,6 +1541,7 @@ public class PurpurWorldConfig {
@@ -1561,6 +1562,7 @@ public class PurpurWorldConfig {
}
striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth);
striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks);

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Full netherite armor grants fire resistance
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index 7518b7f7378eba01d12224db6264b6bcc1254432..b1ca8265d2104168b64e560634f319c72103da55 100644
index ad41bfb05122086aafc290c2b816a28bfc7d8e7e..9716110e910ae3d73be54333050214cd53a885d3 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -357,6 +357,16 @@ public abstract class Player extends LivingEntity {
@ -26,10 +26,10 @@ index 7518b7f7378eba01d12224db6264b6bcc1254432..b1ca8265d2104168b64e560634f319c7
protected ItemCooldowns createItemCooldowns() {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 41629af5929af46cbf164467289ae8f2e1de14ee..23b684830df37277dd35cedf5f415995e052eaf4 100644
index 332025053dd547e46c9d1f59114bea989e54bb3b..b644eda947883d1f6d6be427d234a9e534f0061e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -288,6 +288,19 @@ public class PurpurWorldConfig {
@@ -289,6 +289,19 @@ public class PurpurWorldConfig {
villageSiegeSpawning = getBoolean("gameplay-mechanics.mob-spawning.village-sieges", predicate);
}

View File

@ -393,10 +393,10 @@ index b942e7c85e6c8f9a7664d9e5bf93bcd79e0651f1..5b29f3fced5435e172dd69f6f4eb265e
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 23b684830df37277dd35cedf5f415995e052eaf4..3875a19e5217e0752738d4d7ed52e7a0f4a0bd4b 100644
index b644eda947883d1f6d6be427d234a9e534f0061e..53ae26c6713af64b1a04d2bd0ee5c0c10796fff4 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -108,8 +108,11 @@ public class PurpurWorldConfig {
@@ -109,8 +109,11 @@ public class PurpurWorldConfig {
public boolean boatsDoFallDamage = true;
public boolean disableDropsOnCrammingDeath = false;
public boolean entitiesCanUsePortals = true;
@ -408,7 +408,7 @@ index 23b684830df37277dd35cedf5f415995e052eaf4..3875a19e5217e0752738d4d7ed52e7a0
public double tridentLoyaltyVoidReturnHeight = 0.0D;
public double voidDamageHeight = -64.0D;
public double voidDamageDealt = 4.0D;
@@ -121,8 +124,11 @@ public class PurpurWorldConfig {
@@ -122,8 +125,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 23b684830df37277dd35cedf5f415995e052eaf4..3875a19e5217e0752738d4d7ed52e7a0
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);
@@ -430,9 +436,11 @@ public class PurpurWorldConfig {
@@ -431,9 +437,11 @@ public class PurpurWorldConfig {
dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils);
}
@ -432,7 +432,7 @@ index 23b684830df37277dd35cedf5f415995e052eaf4..3875a19e5217e0752738d4d7ed52e7a0
farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow);
farmlandAlpha = getBoolean("blocks.farmland.use-alpha-farmland", farmlandAlpha);
}
@@ -459,6 +467,11 @@ public class PurpurWorldConfig {
@@ -460,6 +468,11 @@ public class PurpurWorldConfig {
lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether);
}
@ -444,7 +444,7 @@ index 23b684830df37277dd35cedf5f415995e052eaf4..3875a19e5217e0752738d4d7ed52e7a0
public boolean respawnAnchorExplode = true;
public double respawnAnchorExplosionPower = 5.0D;
public boolean respawnAnchorExplosionFire = true;
@@ -493,10 +506,12 @@ public class PurpurWorldConfig {
@@ -494,10 +507,12 @@ public class PurpurWorldConfig {
public boolean turtleEggsBreakFromExpOrbs = true;
public boolean turtleEggsBreakFromItems = true;
public boolean turtleEggsBreakFromMinecarts = true;
@ -457,7 +457,7 @@ index 23b684830df37277dd35cedf5f415995e052eaf4..3875a19e5217e0752738d4d7ed52e7a0
}
public boolean waterInfinite = true;
@@ -676,6 +691,7 @@ public class PurpurWorldConfig {
@@ -677,6 +692,7 @@ public class PurpurWorldConfig {
public double creeperMaxHealth = 20.0D;
public double creeperChargedChance = 0.0D;
public boolean creeperAllowGriefing = true;
@ -465,7 +465,7 @@ index 23b684830df37277dd35cedf5f415995e052eaf4..3875a19e5217e0752738d4d7ed52e7a0
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -687,6 +703,7 @@ public class PurpurWorldConfig {
@@ -688,6 +704,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 23b684830df37277dd35cedf5f415995e052eaf4..3875a19e5217e0752738d4d7ed52e7a0
}
public boolean dolphinRidable = false;
@@ -774,6 +791,7 @@ public class PurpurWorldConfig {
@@ -775,6 +792,7 @@ public class PurpurWorldConfig {
public double enderDragonMaxY = 256D;
public double enderDragonMaxHealth = 200.0D;
public boolean enderDragonAlwaysDropsFullExp = false;
@ -481,7 +481,7 @@ index 23b684830df37277dd35cedf5f415995e052eaf4..3875a19e5217e0752738d4d7ed52e7a0
private void enderDragonSettings() {
enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable);
enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater);
@@ -789,6 +807,7 @@ public class PurpurWorldConfig {
@@ -790,6 +808,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 23b684830df37277dd35cedf5f415995e052eaf4..3875a19e5217e0752738d4d7ed52e7a0
}
public boolean endermanRidable = false;
@@ -796,6 +815,7 @@ public class PurpurWorldConfig {
@@ -797,6 +816,7 @@ public class PurpurWorldConfig {
public double endermanMaxHealth = 40.0D;
public boolean endermanAllowGriefing = true;
public boolean endermanDespawnEvenWithBlock = false;
@ -497,7 +497,7 @@ index 23b684830df37277dd35cedf5f415995e052eaf4..3875a19e5217e0752738d4d7ed52e7a0
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -807,6 +827,7 @@ public class PurpurWorldConfig {
@@ -808,6 +828,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 23b684830df37277dd35cedf5f415995e052eaf4..3875a19e5217e0752738d4d7ed52e7a0
}
public boolean endermiteRidable = false;
@@ -826,6 +847,7 @@ public class PurpurWorldConfig {
@@ -827,6 +848,7 @@ public class PurpurWorldConfig {
public boolean evokerRidable = false;
public boolean evokerRidableInWater = false;
public double evokerMaxHealth = 24.0D;
@ -513,7 +513,7 @@ index 23b684830df37277dd35cedf5f415995e052eaf4..3875a19e5217e0752738d4d7ed52e7a0
private void evokerSettings() {
evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable);
evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater);
@@ -835,6 +857,7 @@ public class PurpurWorldConfig {
@@ -836,6 +858,7 @@ public class PurpurWorldConfig {
set("mobs.evoker.attributes.max_health", oldValue);
}
evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth);
@ -521,7 +521,7 @@ index 23b684830df37277dd35cedf5f415995e052eaf4..3875a19e5217e0752738d4d7ed52e7a0
}
public boolean foxRidable = false;
@@ -842,6 +865,7 @@ public class PurpurWorldConfig {
@@ -843,6 +866,7 @@ public class PurpurWorldConfig {
public double foxMaxHealth = 10.0D;
public boolean foxTypeChangesWithTulips = false;
public int foxBreedingTicks = 6000;
@ -529,7 +529,7 @@ index 23b684830df37277dd35cedf5f415995e052eaf4..3875a19e5217e0752738d4d7ed52e7a0
private void foxSettings() {
foxRidable = getBoolean("mobs.fox.ridable", foxRidable);
foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater);
@@ -853,6 +877,7 @@ public class PurpurWorldConfig {
@@ -854,6 +878,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 23b684830df37277dd35cedf5f415995e052eaf4..3875a19e5217e0752738d4d7ed52e7a0
}
public boolean ghastRidable = false;
@@ -1248,6 +1273,7 @@ public class PurpurWorldConfig {
@@ -1265,6 +1290,7 @@ public class PurpurWorldConfig {
public boolean piglinRidable = false;
public boolean piglinRidableInWater = false;
public double piglinMaxHealth = 16.0D;
@ -545,7 +545,7 @@ index 23b684830df37277dd35cedf5f415995e052eaf4..3875a19e5217e0752738d4d7ed52e7a0
private void piglinSettings() {
piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable);
piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater);
@@ -1257,6 +1283,7 @@ public class PurpurWorldConfig {
@@ -1274,6 +1300,7 @@ public class PurpurWorldConfig {
set("mobs.piglin.attributes.max_health", oldValue);
}
piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth);
@ -553,7 +553,7 @@ index 23b684830df37277dd35cedf5f415995e052eaf4..3875a19e5217e0752738d4d7ed52e7a0
}
public boolean piglinBruteRidable = false;
@@ -1276,6 +1303,7 @@ public class PurpurWorldConfig {
@@ -1293,6 +1320,7 @@ public class PurpurWorldConfig {
public boolean pillagerRidable = false;
public boolean pillagerRidableInWater = false;
public double pillagerMaxHealth = 24.0D;
@ -561,7 +561,7 @@ index 23b684830df37277dd35cedf5f415995e052eaf4..3875a19e5217e0752738d4d7ed52e7a0
private void pillagerSettings() {
pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable);
pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater);
@@ -1285,6 +1313,7 @@ public class PurpurWorldConfig {
@@ -1302,6 +1330,7 @@ public class PurpurWorldConfig {
set("mobs.pillager.attributes.max_health", oldValue);
}
pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth);
@ -569,7 +569,7 @@ index 23b684830df37277dd35cedf5f415995e052eaf4..3875a19e5217e0752738d4d7ed52e7a0
}
public boolean polarBearRidable = false;
@@ -1326,6 +1355,7 @@ public class PurpurWorldConfig {
@@ -1343,6 +1372,7 @@ public class PurpurWorldConfig {
public double rabbitNaturalToast = 0.0D;
public double rabbitNaturalKiller = 0.0D;
public int rabbitBreedingTicks = 6000;
@ -577,7 +577,7 @@ index 23b684830df37277dd35cedf5f415995e052eaf4..3875a19e5217e0752738d4d7ed52e7a0
private void rabbitSettings() {
rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable);
rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater);
@@ -1338,11 +1368,13 @@ public class PurpurWorldConfig {
@@ -1355,11 +1385,13 @@ 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);
@ -591,7 +591,7 @@ index 23b684830df37277dd35cedf5f415995e052eaf4..3875a19e5217e0752738d4d7ed52e7a0
private void ravagerSettings() {
ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable);
ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater);
@@ -1352,6 +1384,7 @@ public class PurpurWorldConfig {
@@ -1369,6 +1401,7 @@ public class PurpurWorldConfig {
set("mobs.ravager.attributes.max_health", oldValue);
}
ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth);
@ -599,7 +599,7 @@ index 23b684830df37277dd35cedf5f415995e052eaf4..3875a19e5217e0752738d4d7ed52e7a0
}
public boolean salmonRidable = false;
@@ -1370,6 +1403,7 @@ public class PurpurWorldConfig {
@@ -1387,6 +1420,7 @@ public class PurpurWorldConfig {
public boolean sheepRidableInWater = false;
public double sheepMaxHealth = 8.0D;
public int sheepBreedingTicks = 6000;
@ -607,7 +607,7 @@ index 23b684830df37277dd35cedf5f415995e052eaf4..3875a19e5217e0752738d4d7ed52e7a0
private void sheepSettings() {
sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable);
sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater);
@@ -1380,6 +1414,7 @@ public class PurpurWorldConfig {
@@ -1397,6 +1431,7 @@ public class PurpurWorldConfig {
}
sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth);
sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks);
@ -615,7 +615,7 @@ index 23b684830df37277dd35cedf5f415995e052eaf4..3875a19e5217e0752738d4d7ed52e7a0
}
public boolean shulkerRidable = false;
@@ -1399,6 +1434,7 @@ public class PurpurWorldConfig {
@@ -1416,6 +1451,7 @@ public class PurpurWorldConfig {
public boolean silverfishRidable = false;
public boolean silverfishRidableInWater = false;
public double silverfishMaxHealth = 8.0D;
@ -623,7 +623,7 @@ index 23b684830df37277dd35cedf5f415995e052eaf4..3875a19e5217e0752738d4d7ed52e7a0
private void silverfishSettings() {
silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable);
silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater);
@@ -1408,6 +1444,7 @@ public class PurpurWorldConfig {
@@ -1425,6 +1461,7 @@ public class PurpurWorldConfig {
set("mobs.silverfish.attributes.max_health", oldValue);
}
silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth);
@ -631,7 +631,7 @@ index 23b684830df37277dd35cedf5f415995e052eaf4..3875a19e5217e0752738d4d7ed52e7a0
}
public boolean skeletonRidable = false;
@@ -1475,6 +1512,7 @@ public class PurpurWorldConfig {
@@ -1496,6 +1533,7 @@ public class PurpurWorldConfig {
public int snowGolemSnowBallMax = 20;
public float snowGolemSnowBallModifier = 10.0F;
public double snowGolemAttackDistance = 1.25D;
@ -639,7 +639,7 @@ index 23b684830df37277dd35cedf5f415995e052eaf4..3875a19e5217e0752738d4d7ed52e7a0
private void snowGolemSettings() {
snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable);
snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater);
@@ -1491,6 +1529,7 @@ public class PurpurWorldConfig {
@@ -1512,6 +1550,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);
@ -647,7 +647,7 @@ index 23b684830df37277dd35cedf5f415995e052eaf4..3875a19e5217e0752738d4d7ed52e7a0
}
public boolean squidRidable = false;
@@ -1642,6 +1681,7 @@ public class PurpurWorldConfig {
@@ -1663,6 +1702,7 @@ public class PurpurWorldConfig {
public int villagerBreedingTicks = 6000;
public boolean villagerClericsFarmWarts = false;
public boolean villagerClericFarmersThrowWarts = true;
@ -655,7 +655,7 @@ index 23b684830df37277dd35cedf5f415995e052eaf4..3875a19e5217e0752738d4d7ed52e7a0
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1661,6 +1701,7 @@ public class PurpurWorldConfig {
@@ -1682,6 +1722,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);
@ -663,7 +663,7 @@ index 23b684830df37277dd35cedf5f415995e052eaf4..3875a19e5217e0752738d4d7ed52e7a0
}
public boolean vindicatorRidable = false;
@@ -1717,6 +1758,7 @@ public class PurpurWorldConfig {
@@ -1738,6 +1779,7 @@ public class PurpurWorldConfig {
public double witherMaxHealth = 300.0D;
public float witherHealthRegenAmount = 1.0f;
public int witherHealthRegenDelay = 20;
@ -671,7 +671,7 @@ index 23b684830df37277dd35cedf5f415995e052eaf4..3875a19e5217e0752738d4d7ed52e7a0
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -1733,6 +1775,7 @@ public class PurpurWorldConfig {
@@ -1754,6 +1796,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);
@ -679,7 +679,7 @@ index 23b684830df37277dd35cedf5f415995e052eaf4..3875a19e5217e0752738d4d7ed52e7a0
}
public boolean witherSkeletonRidable = false;
@@ -1797,6 +1840,7 @@ public class PurpurWorldConfig {
@@ -1818,6 +1861,7 @@ public class PurpurWorldConfig {
public double zombieJockeyChance = 0.05D;
public boolean zombieJockeyTryExistingChickens = true;
public boolean zombieAggressiveTowardsVillagerWhenLagging = true;
@ -687,7 +687,7 @@ index 23b684830df37277dd35cedf5f415995e052eaf4..3875a19e5217e0752738d4d7ed52e7a0
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -1811,6 +1855,7 @@ public class PurpurWorldConfig {
@@ -1832,6 +1876,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 7dd423f6b92b7f27dd43e5ef3f4029a100a8cfa6..8d0a1da17c38118293d1f05849cdc999
org.bukkit.event.block.NotePlayEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callNotePlayEvent(world, blockposition, data.getValue(NoteBlock.INSTRUMENT), data.getValue(NoteBlock.NOTE));
if (!event.isCancelled()) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 3875a19e5217e0752738d4d7ed52e7a0f4a0bd4b..6801237f445c9196c1a33bc8ff09d1181250aa65 100644
index 53ae26c6713af64b1a04d2bd0ee5c0c10796fff4..a5957179e59175081e8338dd3d0894b412a625e1 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 {
@@ -112,6 +112,7 @@ public class PurpurWorldConfig {
public boolean entitiesPickUpLootBypassMobGriefing = false;
public boolean fireballsBypassMobGriefing = false;
public boolean milkCuresBadOmen = true;
@ -33,7 +33,7 @@ index 3875a19e5217e0752738d4d7ed52e7a0f4a0bd4b..6801237f445c9196c1a33bc8ff09d118
public boolean persistentDroppableEntityDisplayNames = false;
public boolean projectilesBypassMobGriefing = false;
public double tridentLoyaltyVoidReturnHeight = 0.0D;
@@ -127,6 +128,7 @@ public class PurpurWorldConfig {
@@ -128,6 +129,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 5c5e76b39f941f3921f36e86fd993d0af24ee922..0efb32d028df885f03b95f80b5da46ae
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 6801237f445c9196c1a33bc8ff09d1181250aa65..b8d83dbdcea2b042f5c0688ee52b9d06461a1993 100644
index a5957179e59175081e8338dd3d0894b412a625e1..dc2d2fcd6ce44228833ffbb964d7378bf3185742 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -110,6 +110,7 @@ public class PurpurWorldConfig {
@@ -111,6 +111,7 @@ public class PurpurWorldConfig {
public boolean entitiesCanUsePortals = true;
public boolean entitiesPickUpLootBypassMobGriefing = false;
public boolean fireballsBypassMobGriefing = false;
@ -119,7 +119,7 @@ index 6801237f445c9196c1a33bc8ff09d1181250aa65..b8d83dbdcea2b042f5c0688ee52b9d06
public boolean milkCuresBadOmen = true;
public boolean noteBlockIgnoreAbove = false;
public boolean persistentDroppableEntityDisplayNames = false;
@@ -127,6 +128,7 @@ public class PurpurWorldConfig {
@@ -128,6 +129,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 4c80e2a10715ce4d4442ea4636808d1e10025494..a750d9cfbb7ba9057004924cac2b5a81
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 b8d83dbdcea2b042f5c0688ee52b9d06461a1993..d3dbf71515ffca426e962e7466cd89b07d66ccc6 100644
index dc2d2fcd6ce44228833ffbb964d7378bf3185742..d093c9526e56166ebdda515def2676a34623939c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -443,10 +443,16 @@ public class PurpurWorldConfig {
@@ -444,10 +444,16 @@ public class PurpurWorldConfig {
public boolean farmlandBypassMobGriefing = false;
public boolean farmlandGetsMoistFromBelow = false;
public boolean farmlandAlpha = false;

View File

@ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 02a2496539813b1d34b9e5ccac0590e6b58c17b5..fcb640e531704b127efe820bb269e7bf9b95c605 100644
index 29b27f0ce54ec8f72981d07d08ffacbe1aab60f8..0ddaa49281d4c47c8fd7d4d182d76caf9ee54898 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -1615,7 +1615,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i
@ -66,10 +66,10 @@ index 50370dc8697569a4e5cf8ec3714d227a59357d64..e9e24435057cff9c0af758ca2aa822c3
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index d3dbf71515ffca426e962e7466cd89b07d66ccc6..68ed6beaa74f9c29f2840e06713fc66e4e62ef32 100644
index d093c9526e56166ebdda515def2676a34623939c..4b19470bcc56f46f3ff3b649ece52e0617b83a65 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -97,10 +97,16 @@ public class PurpurWorldConfig {
@@ -98,10 +98,16 @@ public class PurpurWorldConfig {
public float armorstandStepHeight = 0.0F;
public boolean armorstandSetNameVisible = false;
public boolean armorstandFixNametags = false;

View File

@ -17,7 +17,7 @@ index 951e45f7b17f6f903c99634177395464a1889c0f..d31ae3a1df1a457d7ae55bc82e9c870c
// CraftBukkit end
this.setLevel(worldserver);
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index fcb640e531704b127efe820bb269e7bf9b95c605..430a95752aa590d40a54fb96d7484b55a781a1b6 100644
index 0ddaa49281d4c47c8fd7d4d182d76caf9ee54898..8746ed0546ec3f078030109c698f5053fda950c8 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2740,12 +2740,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i
@ -37,10 +37,10 @@ index fcb640e531704b127efe820bb269e7bf9b95c605..430a95752aa590d40a54fb96d7484b55
this.isInsidePortal = true;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 68ed6beaa74f9c29f2840e06713fc66e4e62ef32..9806ccd697981b9e41af8eede4209d72159a4d52 100644
index 4b19470bcc56f46f3ff3b649ece52e0617b83a65..067a8d3bc2a1190f9f9c83b4a2b99400c1e63ac5 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -328,6 +328,7 @@ public class PurpurWorldConfig {
@@ -329,6 +329,7 @@ public class PurpurWorldConfig {
public int playerDeathExpDropMax = 100;
public boolean teleportIfOutsideBorder = false;
public boolean totemOfUndyingWorksInInventory = false;
@ -48,7 +48,7 @@ index 68ed6beaa74f9c29f2840e06713fc66e4e62ef32..9806ccd697981b9e41af8eede4209d72
private void playerSettings() {
if (PurpurConfig.version < 19) {
boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer);
@@ -345,6 +346,7 @@ public class PurpurWorldConfig {
@@ -346,6 +347,7 @@ public class PurpurWorldConfig {
playerDeathExpDropMax = getInt("gameplay-mechanics.player.exp-dropped-on-death.maximum", playerDeathExpDropMax);
teleportIfOutsideBorder = getBoolean("gameplay-mechanics.player.teleport-if-outside-border", teleportIfOutsideBorder);
totemOfUndyingWorksInInventory = getBoolean("gameplay-mechanics.player.totem-of-undying-works-in-inventory", totemOfUndyingWorksInInventory);

View File

@ -197,7 +197,7 @@ index 4bf4403cb65b8e1fee9c253c7932ad839a99c92e..97d4caad92a2b54daff12e4909bc7b04
public boolean isTrusting() {
diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java
index a3f04f6b4df1c7d8759addecaa4ea16e08b456f5..6270c4bad2c4f4f2770bc2cc2688de5ddd18dae4 100644
index 615784e3b53d43e2167d91bb41c26079998d7f47..3ac330e769689b55063c6b5e3ccc2e362f2a4c49 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Panda.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java
@@ -137,6 +137,11 @@ public class Panda extends Animal {
@ -780,12 +780,12 @@ index 4ed0fb155dfae60cee24dc0752fa525c90f2f442..322058dbb82888c70bf770bed58356dc
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java b/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java
index 68abf045f0510abc45bdc2fd8c147f27c2fa784d..cd6b136960b2c37c6e6d56c4e5f7fd302e49e5e7 100644
index cf69ac8710df2f01fed76389d53fb121a2319273..87a316e4ae92990800bc1b91ed44ce184b4cd933 100644
--- a/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java
+++ b/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java
@@ -52,6 +52,11 @@ public class MagmaCube extends Slime {
protected String getMaxHealthEquation() {
return level.purpurConfig.magmaCubeMaxHealth;
@@ -62,6 +62,11 @@ public class MagmaCube extends Slime {
protected java.util.Map<Integer, Double> getAttackDamageCache() {
return level.purpurConfig.magmaCubeAttackDamageCache;
}
+
+ @Override
@ -796,10 +796,10 @@ index 68abf045f0510abc45bdc2fd8c147f27c2fa784d..cd6b136960b2c37c6e6d56c4e5f7fd30
public static AttributeSupplier.Builder createAttributes() {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
index 97e3e25263e1cea87d0b420da05271b83bc29164..05eba1970086a42b3609094a3d59119c9d178e74 100644
index 130b7e356b5aba604eaaaac2d2898e13359fd6fc..843335bcbdfef0c705dd95beeef8b4f61063f028 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -136,6 +136,11 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -146,6 +146,11 @@ public class Phantom extends FlyingMob implements Enemy {
public boolean isCirclingCrystal() {
return crystalPosition != null;
}
@ -892,12 +892,12 @@ index 9448bdd5026f35bba805dee19ceead5d76bda951..9350d4dd73db4227ab65452083d1cec7
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Slime.java b/src/main/java/net/minecraft/world/entity/monster/Slime.java
index 92a5dc8a26bb6177634e5f1afb37f12828c70ace..d49ba154d173aa7bf5a679b7bfcc55de851ea34b 100644
index 296165ff7b1ac5c6690fb3cc195a3ae3e6115611..b81cc912b036d1da491bf685139d169cd6055067 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Slime.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Slime.java
@@ -125,6 +125,11 @@ public class Slime extends Mob implements Enemy {
@@ -132,6 +132,11 @@ public class Slime extends Mob implements Enemy {
}
return maxHealth;
return value;
}
+
+ @Override
@ -1033,7 +1033,7 @@ index fe315ebb69773d243feb2fbda369fc6ff23d93c8..f96d891eeae384a210a7399a605d5d9c
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
index 8fe5ce2242b136f930584fdf6b5fcf27030f248b..493f3fe736cef11531d345b076ca240b5feb6ff2 100644
index f2ff721fd7d1124e72f8cea4141769fb37f97b16..e4ead1ced18f16715440c8562a89d7d359add98e 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
@@ -131,6 +131,11 @@ public class Zombie extends Monster {
@ -1081,7 +1081,7 @@ index f8b742ee8e637edd8e8b05aff2fcc7a75afe959a..fd2828469badbc7936ea68c0bdd8d689
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
index 0cc680cdcbda6b5b5dfb08df8a2e52510cd5b854..6a41212b1fa2fe61177901dd64c77a92d7d502a4 100644
index 7013ae9b2649b98471902e37747b80812e0a09e0..1e2dc76ace2e283a4ba7b81e299c7506e4b684d1 100644
--- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -87,6 +87,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
@ -1097,7 +1097,7 @@ index 0cc680cdcbda6b5b5dfb08df8a2e52510cd5b854..6a41212b1fa2fe61177901dd64c77a92
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
index badf1fc1a5f5ca0086b45876171a18cad00896b7..89e4364c6c55b5fa0e34e90c87fc622583277c73 100644
index 107afea31c75f11e82672def7300d277dec7af1d..8d85157acefb588091d96eaa0124049a7cfbe19c 100644
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
@@ -111,6 +111,11 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
@ -1161,10 +1161,10 @@ index c5dbb1c8210b71f7d9d91089cb139f65605573a8..e5b78c9d6fb326771d65ea9afd9da38c
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83f780e8b2 100644
index 067a8d3bc2a1190f9f9c83b4a2b99400c1e63ac5..f70f0407b1f43b9f21dfd9053da942eea17c9bba 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -548,6 +548,7 @@ public class PurpurWorldConfig {
@@ -549,6 +549,7 @@ public class PurpurWorldConfig {
useNightVisionWhenRiding = getBoolean("ridable-settings.use-night-vision", useNightVisionWhenRiding);
}
@ -1172,7 +1172,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
public boolean axolotlRidable = false;
public double axolotlMaxHealth = 14.0D;
public int axolotlBreedingTicks = 6000;
@@ -555,6 +556,7 @@ public class PurpurWorldConfig {
@@ -556,6 +557,7 @@ public class PurpurWorldConfig {
axolotlRidable = getBoolean("mobs.axolotl.ridable", axolotlRidable);
axolotlMaxHealth = getDouble("mobs.axolotl.attributes.max_health", axolotlMaxHealth);
axolotlBreedingTicks = getInt("mobs.axolotl.breeding-delay-ticks", axolotlBreedingTicks);
@ -1180,7 +1180,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean batRidable = false;
@@ -568,6 +570,7 @@ public class PurpurWorldConfig {
@@ -569,6 +571,7 @@ public class PurpurWorldConfig {
public double batArmor = 0.0D;
public double batArmorToughness = 0.0D;
public double batAttackKnockback = 0.0D;
@ -1188,7 +1188,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void batSettings() {
batRidable = getBoolean("mobs.bat.ridable", batRidable);
batRidableInWater = getBoolean("mobs.bat.ridable-in-water", batRidableInWater);
@@ -578,6 +581,7 @@ public class PurpurWorldConfig {
@@ -579,6 +582,7 @@ public class PurpurWorldConfig {
set("mobs.bat.attributes.max_health", oldValue);
}
batMaxHealth = getDouble("mobs.bat.attributes.max_health", batMaxHealth);
@ -1196,7 +1196,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean beeRidable = false;
@@ -585,6 +589,7 @@ public class PurpurWorldConfig {
@@ -586,6 +590,7 @@ public class PurpurWorldConfig {
public double beeMaxY = 256D;
public double beeMaxHealth = 10.0D;
public int beeBreedingTicks = 6000;
@ -1204,7 +1204,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void beeSettings() {
beeRidable = getBoolean("mobs.bee.ridable", beeRidable);
beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater);
@@ -596,12 +601,14 @@ public class PurpurWorldConfig {
@@ -597,12 +602,14 @@ public class PurpurWorldConfig {
}
beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth);
beeBreedingTicks = getInt("mobs.bee.breeding-delay-ticks", beeBreedingTicks);
@ -1219,7 +1219,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void blazeSettings() {
blazeRidable = getBoolean("mobs.blaze.ridable", blazeRidable);
blazeRidableInWater = getBoolean("mobs.blaze.ridable-in-water", blazeRidableInWater);
@@ -612,6 +619,7 @@ public class PurpurWorldConfig {
@@ -613,6 +620,7 @@ public class PurpurWorldConfig {
set("mobs.blaze.attributes.max_health", oldValue);
}
blazeMaxHealth = getDouble("mobs.blaze.attributes.max_health", blazeMaxHealth);
@ -1227,7 +1227,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean catRidable = false;
@@ -622,6 +630,7 @@ public class PurpurWorldConfig {
@@ -623,6 +631,7 @@ public class PurpurWorldConfig {
public int catSpawnSwampHutScanRange = 16;
public int catSpawnVillageScanRange = 48;
public int catBreedingTicks = 6000;
@ -1235,7 +1235,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void catSettings() {
catRidable = getBoolean("mobs.cat.ridable", catRidable);
catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater);
@@ -640,11 +649,13 @@ public class PurpurWorldConfig {
@@ -641,11 +650,13 @@ 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);
@ -1249,7 +1249,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void caveSpiderSettings() {
caveSpiderRidable = getBoolean("mobs.cave_spider.ridable", caveSpiderRidable);
caveSpiderRidableInWater = getBoolean("mobs.cave_spider.ridable-in-water", caveSpiderRidableInWater);
@@ -654,6 +665,7 @@ public class PurpurWorldConfig {
@@ -655,6 +666,7 @@ public class PurpurWorldConfig {
set("mobs.cave_spider.attributes.max_health", oldValue);
}
caveSpiderMaxHealth = getDouble("mobs.cave_spider.attributes.max_health", caveSpiderMaxHealth);
@ -1257,7 +1257,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean chickenRidable = false;
@@ -661,6 +673,7 @@ public class PurpurWorldConfig {
@@ -662,6 +674,7 @@ public class PurpurWorldConfig {
public double chickenMaxHealth = 4.0D;
public boolean chickenRetaliate = false;
public int chickenBreedingTicks = 6000;
@ -1265,7 +1265,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void chickenSettings() {
chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable);
chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater);
@@ -672,10 +685,12 @@ public class PurpurWorldConfig {
@@ -673,10 +686,12 @@ public class PurpurWorldConfig {
chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth);
chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate);
chickenBreedingTicks = getInt("mobs.chicken.breeding-delay-ticks", chickenBreedingTicks);
@ -1278,7 +1278,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void codSettings() {
codRidable = getBoolean("mobs.cod.ridable", codRidable);
if (PurpurConfig.version < 10) {
@@ -684,6 +699,7 @@ public class PurpurWorldConfig {
@@ -685,6 +700,7 @@ public class PurpurWorldConfig {
set("mobs.cod.attributes.max_health", oldValue);
}
codMaxHealth = getDouble("mobs.cod.attributes.max_health", codMaxHealth);
@ -1286,7 +1286,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean cowRidable = false;
@@ -691,6 +707,7 @@ public class PurpurWorldConfig {
@@ -692,6 +708,7 @@ public class PurpurWorldConfig {
public double cowMaxHealth = 10.0D;
public int cowFeedMushrooms = 0;
public int cowBreedingTicks = 6000;
@ -1294,7 +1294,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void cowSettings() {
cowRidable = getBoolean("mobs.cow.ridable", cowRidable);
cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater);
@@ -702,6 +719,7 @@ public class PurpurWorldConfig {
@@ -703,6 +720,7 @@ public class PurpurWorldConfig {
cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth);
cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms);
cowBreedingTicks = getInt("mobs.cow.breeding-delay-ticks", cowBreedingTicks);
@ -1302,7 +1302,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean creeperRidable = false;
@@ -710,6 +728,7 @@ public class PurpurWorldConfig {
@@ -711,6 +729,7 @@ public class PurpurWorldConfig {
public double creeperChargedChance = 0.0D;
public boolean creeperAllowGriefing = true;
public boolean creeperBypassMobGriefing = false;
@ -1310,7 +1310,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -722,6 +741,7 @@ public class PurpurWorldConfig {
@@ -723,6 +742,7 @@ public class PurpurWorldConfig {
creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance);
creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing);
creeperBypassMobGriefing = getBoolean("mobs.creeper.bypass-mob-griefing", creeperBypassMobGriefing);
@ -1318,7 +1318,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean dolphinRidable = false;
@@ -730,6 +750,7 @@ public class PurpurWorldConfig {
@@ -731,6 +751,7 @@ public class PurpurWorldConfig {
public float dolphinSpitDamage = 2.0F;
public double dolphinMaxHealth = 10.0D;
public boolean dolphinDisableTreasureSearching = false;
@ -1326,7 +1326,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void dolphinSettings() {
dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable);
dolphinSpitCooldown = getInt("mobs.dolphin.spit.cooldown", dolphinSpitCooldown);
@@ -742,6 +763,7 @@ public class PurpurWorldConfig {
@@ -743,6 +764,7 @@ public class PurpurWorldConfig {
}
dolphinMaxHealth = getDouble("mobs.dolphin.attributes.max_health", dolphinMaxHealth);
dolphinDisableTreasureSearching = getBoolean("mobs.dolphin.disable-treasure-searching", dolphinDisableTreasureSearching);
@ -1334,7 +1334,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean donkeyRidableInWater = false;
@@ -752,6 +774,7 @@ public class PurpurWorldConfig {
@@ -753,6 +775,7 @@ public class PurpurWorldConfig {
public double donkeyMovementSpeedMin = 0.175D;
public double donkeyMovementSpeedMax = 0.175D;
public int donkeyBreedingTicks = 6000;
@ -1342,7 +1342,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void donkeySettings() {
donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater);
if (PurpurConfig.version < 10) {
@@ -768,6 +791,7 @@ public class PurpurWorldConfig {
@@ -769,6 +792,7 @@ public class PurpurWorldConfig {
donkeyMovementSpeedMin = getDouble("mobs.donkey.attributes.movement_speed.min", donkeyMovementSpeedMin);
donkeyMovementSpeedMax = getDouble("mobs.donkey.attributes.movement_speed.max", donkeyMovementSpeedMax);
donkeyBreedingTicks = getInt("mobs.donkey.breeding-delay-ticks", donkeyBreedingTicks);
@ -1350,7 +1350,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean drownedRidable = false;
@@ -777,6 +801,7 @@ public class PurpurWorldConfig {
@@ -778,6 +802,7 @@ public class PurpurWorldConfig {
public boolean drownedJockeyOnlyBaby = true;
public double drownedJockeyChance = 0.05D;
public boolean drownedJockeyTryExistingChickens = true;
@ -1358,7 +1358,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void drownedSettings() {
drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable);
drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater);
@@ -790,10 +815,12 @@ public class PurpurWorldConfig {
@@ -791,10 +816,12 @@ public class PurpurWorldConfig {
drownedJockeyOnlyBaby = getBoolean("mobs.drowned.jockey.only-babies", drownedJockeyOnlyBaby);
drownedJockeyChance = getDouble("mobs.drowned.jockey.chance", drownedJockeyChance);
drownedJockeyTryExistingChickens = getBoolean("mobs.drowned.jockey.try-existing-chickens", drownedJockeyTryExistingChickens);
@ -1371,7 +1371,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void elderGuardianSettings() {
elderGuardianRidable = getBoolean("mobs.elder_guardian.ridable", elderGuardianRidable);
if (PurpurConfig.version < 10) {
@@ -802,6 +829,7 @@ public class PurpurWorldConfig {
@@ -803,6 +830,7 @@ public class PurpurWorldConfig {
set("mobs.elder_guardian.attributes.max_health", oldValue);
}
elderGuardianMaxHealth = getDouble("mobs.elder_guardian.attributes.max_health", elderGuardianMaxHealth);
@ -1379,7 +1379,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean enderDragonRidable = false;
@@ -810,6 +838,7 @@ public class PurpurWorldConfig {
@@ -811,6 +839,7 @@ public class PurpurWorldConfig {
public double enderDragonMaxHealth = 200.0D;
public boolean enderDragonAlwaysDropsFullExp = false;
public boolean enderDragonBypassMobGriefing = false;
@ -1387,7 +1387,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void enderDragonSettings() {
enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable);
enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater);
@@ -826,6 +855,7 @@ public class PurpurWorldConfig {
@@ -827,6 +856,7 @@ public class PurpurWorldConfig {
enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth);
enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp);
enderDragonBypassMobGriefing = getBoolean("mobs.ender_dragon.bypass-mob-griefing", enderDragonBypassMobGriefing);
@ -1395,7 +1395,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean endermanRidable = false;
@@ -834,6 +864,7 @@ public class PurpurWorldConfig {
@@ -835,6 +865,7 @@ public class PurpurWorldConfig {
public boolean endermanAllowGriefing = true;
public boolean endermanDespawnEvenWithBlock = false;
public boolean endermanBypassMobGriefing = false;
@ -1403,7 +1403,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -846,11 +877,13 @@ public class PurpurWorldConfig {
@@ -847,11 +878,13 @@ public class PurpurWorldConfig {
endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing);
endermanDespawnEvenWithBlock = getBoolean("mobs.enderman.can-despawn-with-held-block", endermanDespawnEvenWithBlock);
endermanBypassMobGriefing = getBoolean("mobs.enderman.bypass-mob-griefing", endermanBypassMobGriefing);
@ -1417,7 +1417,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void endermiteSettings() {
endermiteRidable = getBoolean("mobs.endermite.ridable", endermiteRidable);
endermiteRidableInWater = getBoolean("mobs.endermite.ridable-in-water", endermiteRidableInWater);
@@ -860,12 +893,14 @@ public class PurpurWorldConfig {
@@ -861,12 +894,14 @@ public class PurpurWorldConfig {
set("mobs.endermite.attributes.max_health", oldValue);
}
endermiteMaxHealth = getDouble("mobs.endermite.attributes.max_health", endermiteMaxHealth);
@ -1432,7 +1432,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void evokerSettings() {
evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable);
evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater);
@@ -876,6 +911,7 @@ public class PurpurWorldConfig {
@@ -877,6 +912,7 @@ public class PurpurWorldConfig {
}
evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth);
evokerBypassMobGriefing = getBoolean("mobs.evoker.bypass-mob-griefing", evokerBypassMobGriefing);
@ -1440,7 +1440,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean foxRidable = false;
@@ -884,6 +920,7 @@ public class PurpurWorldConfig {
@@ -885,6 +921,7 @@ public class PurpurWorldConfig {
public boolean foxTypeChangesWithTulips = false;
public int foxBreedingTicks = 6000;
public boolean foxBypassMobGriefing = false;
@ -1448,7 +1448,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void foxSettings() {
foxRidable = getBoolean("mobs.fox.ridable", foxRidable);
foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater);
@@ -896,12 +933,14 @@ public class PurpurWorldConfig {
@@ -897,12 +934,14 @@ public class PurpurWorldConfig {
foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips);
foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks);
foxBypassMobGriefing = getBoolean("mobs.fox.bypass-mob-griefing", foxBypassMobGriefing);
@ -1463,7 +1463,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void ghastSettings() {
ghastRidable = getBoolean("mobs.ghast.ridable", ghastRidable);
ghastRidableInWater = getBoolean("mobs.ghast.ridable-in-water", ghastRidableInWater);
@@ -912,6 +951,7 @@ public class PurpurWorldConfig {
@@ -913,6 +952,7 @@ public class PurpurWorldConfig {
set("mobs.ghast.attributes.max_health", oldValue);
}
ghastMaxHealth = getDouble("mobs.ghast.attributes.max_health", ghastMaxHealth);
@ -1471,7 +1471,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean giantRidable = false;
@@ -923,6 +963,7 @@ public class PurpurWorldConfig {
@@ -924,6 +964,7 @@ public class PurpurWorldConfig {
public float giantJumpHeight = 1.0F;
public boolean giantHaveAI = false;
public boolean giantHaveHostileAI = false;
@ -1479,7 +1479,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void giantSettings() {
giantRidable = getBoolean("mobs.giant.ridable", giantRidable);
giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater);
@@ -942,30 +983,36 @@ public class PurpurWorldConfig {
@@ -943,30 +984,36 @@ public class PurpurWorldConfig {
giantJumpHeight = (float) getDouble("mobs.giant.jump-height", giantJumpHeight);
giantHaveAI = getBoolean("mobs.giant.have-ai", giantHaveAI);
giantHaveHostileAI = getBoolean("mobs.giant.have-hostile-ai", giantHaveHostileAI);
@ -1516,7 +1516,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void guardianSettings() {
guardianRidable = getBoolean("mobs.guardian.ridable", guardianRidable);
if (PurpurConfig.version < 10) {
@@ -974,12 +1021,14 @@ public class PurpurWorldConfig {
@@ -975,12 +1022,14 @@ public class PurpurWorldConfig {
set("mobs.guardian.attributes.max_health", oldValue);
}
guardianMaxHealth = getDouble("mobs.guardian.attributes.max_health", guardianMaxHealth);
@ -1531,7 +1531,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void hoglinSettings() {
hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable);
hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater);
@@ -990,6 +1039,7 @@ public class PurpurWorldConfig {
@@ -991,6 +1040,7 @@ public class PurpurWorldConfig {
}
hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth);
hoglinBreedingTicks = getInt("mobs.hoglin.breeding-delay-ticks", hoglinBreedingTicks);
@ -1539,7 +1539,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean horseRidableInWater = false;
@@ -1000,6 +1050,7 @@ public class PurpurWorldConfig {
@@ -1001,6 +1051,7 @@ public class PurpurWorldConfig {
public double horseMovementSpeedMin = 0.1125D;
public double horseMovementSpeedMax = 0.3375D;
public int horseBreedingTicks = 6000;
@ -1547,7 +1547,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void horseSettings() {
horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater);
if (PurpurConfig.version < 10) {
@@ -1016,6 +1067,7 @@ public class PurpurWorldConfig {
@@ -1017,6 +1068,7 @@ public class PurpurWorldConfig {
horseMovementSpeedMin = getDouble("mobs.horse.attributes.movement_speed.min", horseMovementSpeedMin);
horseMovementSpeedMax = getDouble("mobs.horse.attributes.movement_speed.max", horseMovementSpeedMax);
horseBreedingTicks = getInt("mobs.horse.breeding-delay-ticks", horseBreedingTicks);
@ -1555,7 +1555,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean huskRidable = false;
@@ -1025,6 +1077,7 @@ public class PurpurWorldConfig {
@@ -1026,6 +1078,7 @@ public class PurpurWorldConfig {
public boolean huskJockeyOnlyBaby = true;
public double huskJockeyChance = 0.05D;
public boolean huskJockeyTryExistingChickens = true;
@ -1563,7 +1563,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void huskSettings() {
huskRidable = getBoolean("mobs.husk.ridable", huskRidable);
huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater);
@@ -1038,6 +1091,7 @@ public class PurpurWorldConfig {
@@ -1039,6 +1092,7 @@ public class PurpurWorldConfig {
huskJockeyOnlyBaby = getBoolean("mobs.husk.jockey.only-babies", huskJockeyOnlyBaby);
huskJockeyChance = getDouble("mobs.husk.jockey.chance", huskJockeyChance);
huskJockeyTryExistingChickens = getBoolean("mobs.husk.jockey.try-existing-chickens", huskJockeyTryExistingChickens);
@ -1571,7 +1571,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean illusionerRidable = false;
@@ -1045,6 +1099,7 @@ public class PurpurWorldConfig {
@@ -1046,6 +1100,7 @@ public class PurpurWorldConfig {
public double illusionerMovementSpeed = 0.5D;
public double illusionerFollowRange = 18.0D;
public double illusionerMaxHealth = 32.0D;
@ -1579,7 +1579,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void illusionerSettings() {
illusionerRidable = getBoolean("mobs.illusioner.ridable", illusionerRidable);
illusionerRidableInWater = getBoolean("mobs.illusioner.ridable-in-water", illusionerRidableInWater);
@@ -1060,12 +1115,14 @@ public class PurpurWorldConfig {
@@ -1061,12 +1116,14 @@ public class PurpurWorldConfig {
set("mobs.illusioner.attributes.max_health", oldValue);
}
illusionerMaxHealth = getDouble("mobs.illusioner.attributes.max_health", illusionerMaxHealth);
@ -1594,7 +1594,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void ironGolemSettings() {
ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable);
ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater);
@@ -1076,6 +1133,7 @@ public class PurpurWorldConfig {
@@ -1077,6 +1134,7 @@ public class PurpurWorldConfig {
set("mobs.iron_golem.attributes.max_health", oldValue);
}
ironGolemMaxHealth = getDouble("mobs.iron_golem.attributes.max_health", ironGolemMaxHealth);
@ -1602,7 +1602,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean llamaRidable = false;
@@ -1087,6 +1145,7 @@ public class PurpurWorldConfig {
@@ -1088,6 +1146,7 @@ public class PurpurWorldConfig {
public double llamaMovementSpeedMin = 0.175D;
public double llamaMovementSpeedMax = 0.175D;
public int llamaBreedingTicks = 6000;
@ -1610,7 +1610,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void llamaSettings() {
llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable);
llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater);
@@ -1104,11 +1163,13 @@ public class PurpurWorldConfig {
@@ -1105,6 +1164,7 @@ public class PurpurWorldConfig {
llamaMovementSpeedMin = getDouble("mobs.llama.attributes.movement_speed.min", llamaMovementSpeedMin);
llamaMovementSpeedMax = getDouble("mobs.llama.attributes.movement_speed.max", llamaMovementSpeedMax);
llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks);
@ -1618,16 +1618,18 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean magmaCubeRidable = false;
public boolean magmaCubeRidableInWater = false;
public String magmaCubeMaxHealth = "size * size";
@@ -1113,6 +1173,7 @@ public class PurpurWorldConfig {
public String magmaCubeAttackDamage = "size";
public Map<Integer, Double> magmaCubeMaxHealthCache = new HashMap<>();
public Map<Integer, Double> magmaCubeAttackDamageCache = new HashMap<>();
+ public boolean magmaCubeTakeDamageFromWater = false;
private void magmaCubeSettings() {
magmaCubeRidable = getBoolean("mobs.magma_cube.ridable", magmaCubeRidable);
magmaCubeRidableInWater = getBoolean("mobs.magma_cube.ridable-in-water", magmaCubeRidableInWater);
@@ -1118,12 +1179,14 @@ public class PurpurWorldConfig {
set("mobs.magma_cube.attributes.max_health", oldValue);
}
magmaCubeMaxHealth = getString("mobs.magma_cube.attributes.max_health", magmaCubeMaxHealth);
@@ -1125,12 +1186,14 @@ public class PurpurWorldConfig {
magmaCubeAttackDamage = getString("mobs.magma_cube.attributes.attack_damage", magmaCubeAttackDamage);
magmaCubeMaxHealthCache.clear();
magmaCubeAttackDamageCache.clear();
+ magmaCubeTakeDamageFromWater = getBoolean("mobs.magma_cube.takes-damage-from-water", magmaCubeTakeDamageFromWater);
}
@ -1639,7 +1641,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void mooshroomSettings() {
mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable);
mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater);
@@ -1134,6 +1197,7 @@ public class PurpurWorldConfig {
@@ -1141,6 +1204,7 @@ public class PurpurWorldConfig {
}
mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth);
mooshroomBreedingTicks = getInt("mobs.mooshroom.breeding-delay-ticks", mooshroomBreedingTicks);
@ -1647,7 +1649,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean muleRidableInWater = false;
@@ -1144,6 +1208,7 @@ public class PurpurWorldConfig {
@@ -1151,6 +1215,7 @@ public class PurpurWorldConfig {
public double muleMovementSpeedMin = 0.175D;
public double muleMovementSpeedMax = 0.175D;
public int muleBreedingTicks = 6000;
@ -1655,7 +1657,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void muleSettings() {
muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater);
if (PurpurConfig.version < 10) {
@@ -1160,12 +1225,14 @@ public class PurpurWorldConfig {
@@ -1167,12 +1232,14 @@ public class PurpurWorldConfig {
muleMovementSpeedMin = getDouble("mobs.mule.attributes.movement_speed.min", muleMovementSpeedMin);
muleMovementSpeedMax = getDouble("mobs.mule.attributes.movement_speed.max", muleMovementSpeedMax);
muleBreedingTicks = getInt("mobs.mule.breeding-delay-ticks", muleBreedingTicks);
@ -1670,7 +1672,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void ocelotSettings() {
ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable);
ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater);
@@ -1176,12 +1243,14 @@ public class PurpurWorldConfig {
@@ -1183,12 +1250,14 @@ public class PurpurWorldConfig {
}
ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth);
ocelotBreedingTicks = getInt("mobs.ocelot.breeding-delay-ticks", ocelotBreedingTicks);
@ -1685,7 +1687,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void pandaSettings() {
pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable);
pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater);
@@ -1192,12 +1261,14 @@ public class PurpurWorldConfig {
@@ -1199,12 +1268,14 @@ public class PurpurWorldConfig {
}
pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth);
pandaBreedingTicks = getInt("mobs.panda.breeding-delay-ticks", pandaBreedingTicks);
@ -1700,7 +1702,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void parrotSettings() {
parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable);
parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater);
@@ -1208,6 +1279,7 @@ public class PurpurWorldConfig {
@@ -1215,6 +1286,7 @@ public class PurpurWorldConfig {
set("mobs.parrot.attributes.max_health", oldValue);
}
parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth);
@ -1708,23 +1710,23 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean phantomRidable = false;
@@ -1236,6 +1308,7 @@ public class PurpurWorldConfig {
public int phantomBurnInLight = 0;
@@ -1246,6 +1318,7 @@ public class PurpurWorldConfig {
public boolean phantomIgnorePlayersWithTorch = false;
public boolean phantomBurnInDaylight = true;
public boolean phantomFlamesOnSwoop = false;
+ public boolean phantomTakeDamageFromWater = false;
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -1268,6 +1341,7 @@ public class PurpurWorldConfig {
phantomBurnInLight = getInt("mobs.phantom.burn-in-light", phantomBurnInLight);
@@ -1285,6 +1358,7 @@ public class PurpurWorldConfig {
phantomBurnInDaylight = getBoolean("mobs.phantom.burn-in-daylight", phantomBurnInDaylight);
phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch);
phantomFlamesOnSwoop = getBoolean("mobs.phantom.flames-on-swoop", phantomFlamesOnSwoop);
+ phantomTakeDamageFromWater = getBoolean("mobs.phantom.takes-damage-from-water", phantomTakeDamageFromWater);
}
public boolean pigRidable = false;
@@ -1275,6 +1349,7 @@ public class PurpurWorldConfig {
@@ -1292,6 +1366,7 @@ public class PurpurWorldConfig {
public double pigMaxHealth = 10.0D;
public boolean pigGiveSaddleBack = false;
public int pigBreedingTicks = 6000;
@ -1732,7 +1734,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void pigSettings() {
pigRidable = getBoolean("mobs.pig.ridable", pigRidable);
pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater);
@@ -1286,12 +1361,14 @@ public class PurpurWorldConfig {
@@ -1303,12 +1378,14 @@ public class PurpurWorldConfig {
pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth);
pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack);
pigBreedingTicks = getInt("mobs.pig.breeding-delay-ticks", pigBreedingTicks);
@ -1747,7 +1749,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void piglinSettings() {
piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable);
piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater);
@@ -1302,11 +1379,13 @@ public class PurpurWorldConfig {
@@ -1319,11 +1396,13 @@ public class PurpurWorldConfig {
}
piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth);
piglinBypassMobGriefing = getBoolean("mobs.piglin.bypass-mob-griefing", piglinBypassMobGriefing);
@ -1761,7 +1763,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void piglinBruteSettings() {
piglinBruteRidable = getBoolean("mobs.piglin_brute.ridable", piglinBruteRidable);
piglinBruteRidableInWater = getBoolean("mobs.piglin_brute.ridable-in-water", piglinBruteRidableInWater);
@@ -1316,12 +1395,14 @@ public class PurpurWorldConfig {
@@ -1333,12 +1412,14 @@ public class PurpurWorldConfig {
set("mobs.piglin_brute.attributes.max_health", oldValue);
}
piglinBruteMaxHealth = getDouble("mobs.piglin_brute.attributes.max_health", piglinBruteMaxHealth);
@ -1776,7 +1778,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void pillagerSettings() {
pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable);
pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater);
@@ -1332,6 +1413,7 @@ public class PurpurWorldConfig {
@@ -1349,6 +1430,7 @@ public class PurpurWorldConfig {
}
pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth);
pillagerBypassMobGriefing = getBoolean("mobs.pillager.bypass-mob-griefing", pillagerBypassMobGriefing);
@ -1784,7 +1786,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean polarBearRidable = false;
@@ -1340,6 +1422,7 @@ public class PurpurWorldConfig {
@@ -1357,6 +1439,7 @@ public class PurpurWorldConfig {
public String polarBearBreedableItemString = "";
public Item polarBearBreedableItem = null;
public int polarBearBreedingTicks = 6000;
@ -1792,7 +1794,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void polarBearSettings() {
polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable);
polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater);
@@ -1353,10 +1436,12 @@ public class PurpurWorldConfig {
@@ -1370,10 +1453,12 @@ public class PurpurWorldConfig {
Item item = Registry.ITEM.get(new ResourceLocation(polarBearBreedableItemString));
if (item != Items.AIR) polarBearBreedableItem = item;
polarBearBreedingTicks = getInt("mobs.polar_bear.breeding-delay-ticks", polarBearBreedingTicks);
@ -1805,7 +1807,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void pufferfishSettings() {
pufferfishRidable = getBoolean("mobs.pufferfish.ridable", pufferfishRidable);
if (PurpurConfig.version < 10) {
@@ -1365,6 +1450,7 @@ public class PurpurWorldConfig {
@@ -1382,6 +1467,7 @@ public class PurpurWorldConfig {
set("mobs.pufferfish.attributes.max_health", oldValue);
}
pufferfishMaxHealth = getDouble("mobs.pufferfish.attributes.max_health", pufferfishMaxHealth);
@ -1813,7 +1815,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean rabbitRidable = false;
@@ -1374,6 +1460,7 @@ public class PurpurWorldConfig {
@@ -1391,6 +1477,7 @@ public class PurpurWorldConfig {
public double rabbitNaturalKiller = 0.0D;
public int rabbitBreedingTicks = 6000;
public boolean rabbitBypassMobGriefing = false;
@ -1821,7 +1823,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void rabbitSettings() {
rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable);
rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater);
@@ -1387,12 +1474,14 @@ public class PurpurWorldConfig {
@@ -1404,12 +1491,14 @@ public class PurpurWorldConfig {
rabbitNaturalKiller = getDouble("mobs.rabbit.spawn-killer-rabbit-chance", rabbitNaturalKiller);
rabbitBreedingTicks = getInt("mobs.rabbit.breeding-delay-ticks", rabbitBreedingTicks);
rabbitBypassMobGriefing = getBoolean("mobs.rabbit.bypass-mob-griefing", rabbitBypassMobGriefing);
@ -1836,7 +1838,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void ravagerSettings() {
ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable);
ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater);
@@ -1403,10 +1492,12 @@ public class PurpurWorldConfig {
@@ -1420,10 +1509,12 @@ public class PurpurWorldConfig {
}
ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth);
ravagerBypassMobGriefing = getBoolean("mobs.ravager.bypass-mob-griefing", ravagerBypassMobGriefing);
@ -1849,7 +1851,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void salmonSettings() {
salmonRidable = getBoolean("mobs.salmon.ridable", salmonRidable);
if (PurpurConfig.version < 10) {
@@ -1415,6 +1506,7 @@ public class PurpurWorldConfig {
@@ -1432,6 +1523,7 @@ public class PurpurWorldConfig {
set("mobs.salmon.attributes.max_health", oldValue);
}
salmonMaxHealth = getDouble("mobs.salmon.attributes.max_health", salmonMaxHealth);
@ -1857,7 +1859,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean sheepRidable = false;
@@ -1422,6 +1514,7 @@ public class PurpurWorldConfig {
@@ -1439,6 +1531,7 @@ public class PurpurWorldConfig {
public double sheepMaxHealth = 8.0D;
public int sheepBreedingTicks = 6000;
public boolean sheepBypassMobGriefing = false;
@ -1865,7 +1867,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void sheepSettings() {
sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable);
sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater);
@@ -1433,11 +1526,13 @@ public class PurpurWorldConfig {
@@ -1450,11 +1543,13 @@ public class PurpurWorldConfig {
sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth);
sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks);
sheepBypassMobGriefing = getBoolean("mobs.sheep.bypass-mob-griefing", sheepBypassMobGriefing);
@ -1879,7 +1881,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void shulkerSettings() {
shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable);
shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater);
@@ -1447,12 +1542,14 @@ public class PurpurWorldConfig {
@@ -1464,12 +1559,14 @@ public class PurpurWorldConfig {
set("mobs.shulker.attributes.max_health", oldValue);
}
shulkerMaxHealth = getDouble("mobs.shulker.attributes.max_health", shulkerMaxHealth);
@ -1894,7 +1896,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void silverfishSettings() {
silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable);
silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater);
@@ -1463,11 +1560,13 @@ public class PurpurWorldConfig {
@@ -1480,11 +1577,13 @@ public class PurpurWorldConfig {
}
silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth);
silverfishBypassMobGriefing = getBoolean("mobs.silverfish.bypass-mob-griefing", silverfishBypassMobGriefing);
@ -1908,7 +1910,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void skeletonSettings() {
skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable);
skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater);
@@ -1477,6 +1576,7 @@ public class PurpurWorldConfig {
@@ -1494,6 +1593,7 @@ public class PurpurWorldConfig {
set("mobs.skeleton.attributes.max_health", oldValue);
}
skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth);
@ -1916,7 +1918,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean skeletonHorseRidableInWater = true;
@@ -1487,6 +1587,7 @@ public class PurpurWorldConfig {
@@ -1504,6 +1604,7 @@ public class PurpurWorldConfig {
public double skeletonHorseJumpStrengthMax = 1.0D;
public double skeletonHorseMovementSpeedMin = 0.2D;
public double skeletonHorseMovementSpeedMax = 0.2D;
@ -1924,7 +1926,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void skeletonHorseSettings() {
skeletonHorseRidableInWater = getBoolean("mobs.skeleton_horse.ridable-in-water", skeletonHorseRidableInWater);
skeletonHorseCanSwim = getBoolean("mobs.skeleton_horse.can-swim", skeletonHorseCanSwim);
@@ -1502,12 +1603,14 @@ public class PurpurWorldConfig {
@@ -1519,6 +1620,7 @@ public class PurpurWorldConfig {
skeletonHorseJumpStrengthMax = getDouble("mobs.skeleton_horse.attributes.jump_strength.max", skeletonHorseJumpStrengthMax);
skeletonHorseMovementSpeedMin = getDouble("mobs.skeleton_horse.attributes.movement_speed.min", skeletonHorseMovementSpeedMin);
skeletonHorseMovementSpeedMax = getDouble("mobs.skeleton_horse.attributes.movement_speed.max", skeletonHorseMovementSpeedMax);
@ -1932,22 +1934,23 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean slimeRidable = false;
public boolean slimeRidableInWater = false;
public String slimeMaxHealth = "size * size";
@@ -1527,6 +1629,7 @@ public class PurpurWorldConfig {
public String slimeAttackDamage = "size";
public Map<Integer, Double> slimeMaxHealthCache = new HashMap<>();
public Map<Integer, Double> slimeAttackDamageCache = new HashMap<>();
+ public boolean slimeTakeDamageFromWater = false;
private void slimeSettings() {
slimeRidable = getBoolean("mobs.slime.ridable", slimeRidable);
slimeRidableInWater = getBoolean("mobs.slime.ridable-in-water", slimeRidableInWater);
@@ -1518,6 +1621,7 @@ public class PurpurWorldConfig {
}
slimeMaxHealth = getString("mobs.slime.attributes.max_health", slimeMaxHealth);
@@ -1539,6 +1642,7 @@ public class PurpurWorldConfig {
slimeAttackDamage = getString("mobs.slime.attributes.attack_damage", slimeAttackDamage);
slimeMaxHealthCache.clear();
slimeAttackDamageCache.clear();
+ slimeTakeDamageFromWater = getBoolean("mobs.slime.takes-damage-from-water", slimeTakeDamageFromWater);
}
public boolean snowGolemRidable = false;
@@ -1531,6 +1635,7 @@ public class PurpurWorldConfig {
@@ -1552,6 +1656,7 @@ public class PurpurWorldConfig {
public float snowGolemSnowBallModifier = 10.0F;
public double snowGolemAttackDistance = 1.25D;
public boolean snowGolemBypassMobGriefing = false;
@ -1955,7 +1958,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void snowGolemSettings() {
snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable);
snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater);
@@ -1548,6 +1653,7 @@ public class PurpurWorldConfig {
@@ -1569,6 +1674,7 @@ public class PurpurWorldConfig {
snowGolemSnowBallModifier = (float) getDouble("mobs.snow_golem.snow-ball-modifier", snowGolemSnowBallModifier);
snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance);
snowGolemBypassMobGriefing = getBoolean("mobs.snow_golem.bypass-mob-griefing", snowGolemBypassMobGriefing);
@ -1963,7 +1966,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean squidRidable = false;
@@ -1555,6 +1661,7 @@ public class PurpurWorldConfig {
@@ -1576,6 +1682,7 @@ public class PurpurWorldConfig {
public boolean squidImmuneToEAR = true;
public double squidOffsetWaterCheck = 0.0D;
public boolean squidsCanFly = false;
@ -1971,7 +1974,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void squidSettings() {
squidRidable = getBoolean("mobs.squid.ridable", squidRidable);
if (PurpurConfig.version < 10) {
@@ -1566,11 +1673,13 @@ public class PurpurWorldConfig {
@@ -1587,11 +1694,13 @@ public class PurpurWorldConfig {
squidImmuneToEAR = getBoolean("mobs.squid.immune-to-EAR", squidImmuneToEAR);
squidOffsetWaterCheck = getDouble("mobs.squid.water-offset-check", squidOffsetWaterCheck);
squidsCanFly = getBoolean("mobs.squid.can-fly", squidsCanFly);
@ -1985,7 +1988,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void spiderSettings() {
spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable);
spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater);
@@ -1580,11 +1689,13 @@ public class PurpurWorldConfig {
@@ -1601,11 +1710,13 @@ public class PurpurWorldConfig {
set("mobs.spider.attributes.max_health", oldValue);
}
spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth);
@ -1999,7 +2002,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void straySettings() {
strayRidable = getBoolean("mobs.stray.ridable", strayRidable);
strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater);
@@ -1594,6 +1705,7 @@ public class PurpurWorldConfig {
@@ -1615,6 +1726,7 @@ public class PurpurWorldConfig {
set("mobs.stray.attributes.max_health", oldValue);
}
strayMaxHealth = getDouble("mobs.stray.attributes.max_health", strayMaxHealth);
@ -2007,7 +2010,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean striderRidable = false;
@@ -1601,6 +1713,7 @@ public class PurpurWorldConfig {
@@ -1622,6 +1734,7 @@ public class PurpurWorldConfig {
public double striderMaxHealth = 20.0D;
public int striderBreedingTicks = 6000;
public boolean striderGiveSaddleBack = false;
@ -2015,7 +2018,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void striderSettings() {
striderRidable = getBoolean("mobs.strider.ridable", striderRidable);
striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater);
@@ -1612,6 +1725,7 @@ public class PurpurWorldConfig {
@@ -1633,6 +1746,7 @@ public class PurpurWorldConfig {
striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth);
striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks);
striderGiveSaddleBack = getBoolean("mobs.strider.give-saddle-back", striderGiveSaddleBack);
@ -2023,7 +2026,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean traderLlamaRidable = false;
@@ -1623,6 +1737,7 @@ public class PurpurWorldConfig {
@@ -1644,6 +1758,7 @@ public class PurpurWorldConfig {
public double traderLlamaMovementSpeedMin = 0.175D;
public double traderLlamaMovementSpeedMax = 0.175D;
public int traderLlamaBreedingTicks = 6000;
@ -2031,7 +2034,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void traderLlamaSettings() {
traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable);
traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater);
@@ -1640,10 +1755,12 @@ public class PurpurWorldConfig {
@@ -1661,10 +1776,12 @@ public class PurpurWorldConfig {
traderLlamaMovementSpeedMin = getDouble("mobs.trader_llama.attributes.movement_speed.min", traderLlamaMovementSpeedMin);
traderLlamaMovementSpeedMax = getDouble("mobs.trader_llama.attributes.movement_speed.max", traderLlamaMovementSpeedMax);
traderLlamaBreedingTicks = getInt("mobs.trader_llama.breeding-delay-ticks", traderLlamaBreedingTicks);
@ -2044,7 +2047,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void tropicalFishSettings() {
tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable);
if (PurpurConfig.version < 10) {
@@ -1652,12 +1769,14 @@ public class PurpurWorldConfig {
@@ -1673,12 +1790,14 @@ public class PurpurWorldConfig {
set("mobs.tropical_fish.attributes.max_health", oldValue);
}
tropicalFishMaxHealth = getDouble("mobs.tropical_fish.attributes.max_health", tropicalFishMaxHealth);
@ -2059,7 +2062,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void turtleSettings() {
turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable);
turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater);
@@ -1668,12 +1787,14 @@ public class PurpurWorldConfig {
@@ -1689,12 +1808,14 @@ public class PurpurWorldConfig {
}
turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth);
turtleBreedingTicks = getInt("mobs.turtle.breeding-delay-ticks", turtleBreedingTicks);
@ -2074,7 +2077,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void vexSettings() {
vexRidable = getBoolean("mobs.vex.ridable", vexRidable);
vexRidableInWater = getBoolean("mobs.vex.ridable-in-water", vexRidableInWater);
@@ -1684,6 +1805,7 @@ public class PurpurWorldConfig {
@@ -1705,6 +1826,7 @@ public class PurpurWorldConfig {
set("mobs.vex.attributes.max_health", oldValue);
}
vexMaxHealth = getDouble("mobs.vex.attributes.max_health", vexMaxHealth);
@ -2082,7 +2085,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean villagerRidable = false;
@@ -1700,6 +1822,7 @@ public class PurpurWorldConfig {
@@ -1721,6 +1843,7 @@ public class PurpurWorldConfig {
public boolean villagerClericsFarmWarts = false;
public boolean villagerClericFarmersThrowWarts = true;
public boolean villagerBypassMobGriefing = false;
@ -2090,7 +2093,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1720,12 +1843,14 @@ public class PurpurWorldConfig {
@@ -1741,12 +1864,14 @@ public class PurpurWorldConfig {
villagerClericsFarmWarts = getBoolean("mobs.villager.clerics-farm-warts", villagerClericsFarmWarts);
villagerClericFarmersThrowWarts = getBoolean("mobs.villager.cleric-wart-farmers-throw-warts-at-villagers", villagerClericFarmersThrowWarts);
villagerBypassMobGriefing = getBoolean("mobs.villager.bypass-mob-griefing", villagerBypassMobGriefing);
@ -2105,7 +2108,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void vindicatorSettings() {
vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable);
vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater);
@@ -1736,6 +1861,7 @@ public class PurpurWorldConfig {
@@ -1757,6 +1882,7 @@ public class PurpurWorldConfig {
}
vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth);
vindicatorJohnnySpawnChance = getDouble("mobs.vindicator.johnny.spawn-chance", vindicatorJohnnySpawnChance);
@ -2113,7 +2116,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean wanderingTraderRidable = false;
@@ -1743,6 +1869,7 @@ public class PurpurWorldConfig {
@@ -1764,6 +1890,7 @@ public class PurpurWorldConfig {
public double wanderingTraderMaxHealth = 20.0D;
public boolean wanderingTraderFollowEmeraldBlock = false;
public boolean wanderingTraderCanBeLeashed = false;
@ -2121,7 +2124,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void wanderingTraderSettings() {
wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable);
wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater);
@@ -1754,11 +1881,13 @@ public class PurpurWorldConfig {
@@ -1775,11 +1902,13 @@ public class PurpurWorldConfig {
wanderingTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", wanderingTraderMaxHealth);
wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock);
wanderingTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", wanderingTraderCanBeLeashed);
@ -2135,7 +2138,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void witchSettings() {
witchRidable = getBoolean("mobs.witch.ridable", witchRidable);
witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater);
@@ -1768,6 +1897,7 @@ public class PurpurWorldConfig {
@@ -1789,6 +1918,7 @@ public class PurpurWorldConfig {
set("mobs.witch.attributes.max_health", oldValue);
}
witchMaxHealth = getDouble("mobs.witch.attributes.max_health", witchMaxHealth);
@ -2143,7 +2146,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean witherRidable = false;
@@ -1777,6 +1907,7 @@ public class PurpurWorldConfig {
@@ -1798,6 +1928,7 @@ public class PurpurWorldConfig {
public float witherHealthRegenAmount = 1.0f;
public int witherHealthRegenDelay = 20;
public boolean witherBypassMobGriefing = false;
@ -2151,7 +2154,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -1794,11 +1925,13 @@ public class PurpurWorldConfig {
@@ -1815,11 +1946,13 @@ public class PurpurWorldConfig {
witherHealthRegenAmount = (float) getDouble("mobs.wither.health-regen-amount", witherHealthRegenAmount);
witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay);
witherBypassMobGriefing = getBoolean("mobs.wither.bypass-mob-griefing", witherBypassMobGriefing);
@ -2165,7 +2168,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void witherSkeletonSettings() {
witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable);
witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater);
@@ -1808,6 +1941,7 @@ public class PurpurWorldConfig {
@@ -1829,6 +1962,7 @@ public class PurpurWorldConfig {
set("mobs.wither_skeleton.attributes.max_health", oldValue);
}
witherSkeletonMaxHealth = getDouble("mobs.wither_skeleton.attributes.max_health", witherSkeletonMaxHealth);
@ -2173,7 +2176,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean wolfRidable = false;
@@ -1817,6 +1951,7 @@ public class PurpurWorldConfig {
@@ -1838,6 +1972,7 @@ public class PurpurWorldConfig {
public boolean wolfMilkCuresRabies = true;
public double wolfNaturalRabid = 0.0D;
public int wolfBreedingTicks = 6000;
@ -2181,7 +2184,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void wolfSettings() {
wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable);
wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater);
@@ -1834,11 +1969,13 @@ public class PurpurWorldConfig {
@@ -1855,11 +1990,13 @@ public class PurpurWorldConfig {
wolfMilkCuresRabies = getBoolean("mobs.wolf.milk-cures-rabid-wolves", wolfMilkCuresRabies);
wolfNaturalRabid = getDouble("mobs.wolf.spawn-rabid-chance", wolfNaturalRabid);
wolfBreedingTicks = getInt("mobs.wolf.breeding-delay-ticks", wolfBreedingTicks);
@ -2195,7 +2198,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void zoglinSettings() {
zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable);
zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater);
@@ -1848,6 +1985,7 @@ public class PurpurWorldConfig {
@@ -1869,6 +2006,7 @@ public class PurpurWorldConfig {
set("mobs.zoglin.attributes.max_health", oldValue);
}
zoglinMaxHealth = getDouble("mobs.zoglin.attributes.max_health", zoglinMaxHealth);
@ -2203,7 +2206,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean zombieRidable = false;
@@ -1859,6 +1997,7 @@ public class PurpurWorldConfig {
@@ -1880,6 +2018,7 @@ public class PurpurWorldConfig {
public boolean zombieJockeyTryExistingChickens = true;
public boolean zombieAggressiveTowardsVillagerWhenLagging = true;
public boolean zombieBypassMobGriefing = false;
@ -2211,7 +2214,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -1874,6 +2013,7 @@ public class PurpurWorldConfig {
@@ -1895,6 +2034,7 @@ public class PurpurWorldConfig {
zombieJockeyTryExistingChickens = getBoolean("mobs.zombie.jockey.try-existing-chickens", zombieJockeyTryExistingChickens);
zombieAggressiveTowardsVillagerWhenLagging = getBoolean("mobs.zombie.aggressive-towards-villager-when-lagging", zombieAggressiveTowardsVillagerWhenLagging);
zombieBypassMobGriefing = getBoolean("mobs.zombie.bypass-mob-griefing", zombieBypassMobGriefing);
@ -2219,7 +2222,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean zombieHorseRidableInWater = false;
@@ -1885,6 +2025,7 @@ public class PurpurWorldConfig {
@@ -1906,6 +2046,7 @@ public class PurpurWorldConfig {
public double zombieHorseMovementSpeedMin = 0.2D;
public double zombieHorseMovementSpeedMax = 0.2D;
public double zombieHorseSpawnChance = 0.0D;
@ -2227,7 +2230,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void zombieHorseSettings() {
zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater);
zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim);
@@ -1901,6 +2042,7 @@ public class PurpurWorldConfig {
@@ -1922,6 +2063,7 @@ public class PurpurWorldConfig {
zombieHorseMovementSpeedMin = getDouble("mobs.zombie_horse.attributes.movement_speed.min", zombieHorseMovementSpeedMin);
zombieHorseMovementSpeedMax = getDouble("mobs.zombie_horse.attributes.movement_speed.max", zombieHorseMovementSpeedMax);
zombieHorseSpawnChance = getDouble("mobs.zombie_horse.spawn-chance", zombieHorseSpawnChance);
@ -2235,7 +2238,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean zombieVillagerRidable = false;
@@ -1910,6 +2052,7 @@ public class PurpurWorldConfig {
@@ -1931,6 +2073,7 @@ public class PurpurWorldConfig {
public boolean zombieVillagerJockeyOnlyBaby = true;
public double zombieVillagerJockeyChance = 0.05D;
public boolean zombieVillagerJockeyTryExistingChickens = true;
@ -2243,7 +2246,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void zombieVillagerSettings() {
zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable);
zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater);
@@ -1923,6 +2066,7 @@ public class PurpurWorldConfig {
@@ -1944,6 +2087,7 @@ public class PurpurWorldConfig {
zombieVillagerJockeyOnlyBaby = getBoolean("mobs.zombie_villager.jockey.only-babies", zombieVillagerJockeyOnlyBaby);
zombieVillagerJockeyChance = getDouble("mobs.zombie_villager.jockey.chance", zombieVillagerJockeyChance);
zombieVillagerJockeyTryExistingChickens = getBoolean("mobs.zombie_villager.jockey.try-existing-chickens", zombieVillagerJockeyTryExistingChickens);
@ -2251,7 +2254,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
}
public boolean zombifiedPiglinRidable = false;
@@ -1933,6 +2077,7 @@ public class PurpurWorldConfig {
@@ -1954,6 +2098,7 @@ public class PurpurWorldConfig {
public double zombifiedPiglinJockeyChance = 0.05D;
public boolean zombifiedPiglinJockeyTryExistingChickens = true;
public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true;
@ -2259,7 +2262,7 @@ index 9806ccd697981b9e41af8eede4209d72159a4d52..ccf38f6ca45815a2dea27131d45cab83
private void zombifiedPiglinSettings() {
zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable);
zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater);
@@ -1947,5 +2092,6 @@ public class PurpurWorldConfig {
@@ -1968,5 +2113,6 @@ public class PurpurWorldConfig {
zombifiedPiglinJockeyChance = getDouble("mobs.zombified_piglin.jockey.chance", zombifiedPiglinJockeyChance);
zombifiedPiglinJockeyTryExistingChickens = getBoolean("mobs.zombified_piglin.jockey.try-existing-chickens", zombifiedPiglinJockeyTryExistingChickens);
zombifiedPiglinCountAsPlayerKillWhenAngry = getBoolean("mobs.zombified_piglin.count-as-player-kill-when-angry", zombifiedPiglinCountAsPlayerKillWhenAngry);

View File

@ -59,10 +59,10 @@ index 663683a50f7a1125f406b6ec8bf7a0419be5f36a..713fe8ac2293fe2e60c5834b3d6fd2f1
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 ccf38f6ca45815a2dea27131d45cab83f780e8b2..574dfb9b8c9ffdbef07fedf76d5d835c61d83d3e 100644
index f70f0407b1f43b9f21dfd9053da942eea17c9bba..e7299341d4890d6354564be47e30814300858f74 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -110,6 +110,7 @@ public class PurpurWorldConfig {
@@ -111,6 +111,7 @@ public class PurpurWorldConfig {
}
public boolean useBetterMending = false;
@ -70,7 +70,7 @@ index ccf38f6ca45815a2dea27131d45cab83f780e8b2..574dfb9b8c9ffdbef07fedf76d5d835c
public boolean boatEjectPlayersOnLand = false;
public boolean boatsDoFallDamage = true;
public boolean disableDropsOnCrammingDeath = false;
@@ -128,6 +129,7 @@ public class PurpurWorldConfig {
@@ -129,6 +130,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 f8863cabad1bd0c3c2c62b8e17612d9559237d68..06c6addfa2a8dab1ad52a3588e9aeba5
this.onDestroyedBy(source);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 574dfb9b8c9ffdbef07fedf76d5d835c61d83d3e..1e5e27f4df0ee17aebd50a25342571f44825f10a 100644
index e7299341d4890d6354564be47e30814300858f74..da979391d05fbfae76db66e02ead184b7aa606ad 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -450,6 +450,35 @@ public class PurpurWorldConfig {
@@ -451,6 +451,35 @@ public class PurpurWorldConfig {
dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils);
}

View File

@ -29,10 +29,10 @@ index 3b752f97f75c78657f37215ecd92b7460a71f090..5ef45fe1dac1df779727f9c441f7e651
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 1e5e27f4df0ee17aebd50a25342571f44825f10a..ffe4321368b2d11d73d8d64b562b54870c8eb1b9 100644
index da979391d05fbfae76db66e02ead184b7aa606ad..0a305bd8ec0f27ab46c98dc3eb44b5f022919cf0 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -870,6 +870,7 @@ public class PurpurWorldConfig {
@@ -871,6 +871,7 @@ public class PurpurWorldConfig {
public boolean enderDragonAlwaysDropsFullExp = false;
public boolean enderDragonBypassMobGriefing = false;
public boolean enderDragonTakeDamageFromWater = false;
@ -40,7 +40,7 @@ index 1e5e27f4df0ee17aebd50a25342571f44825f10a..ffe4321368b2d11d73d8d64b562b5487
private void enderDragonSettings() {
enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable);
enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater);
@@ -887,6 +888,7 @@ public class PurpurWorldConfig {
@@ -888,6 +889,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 1e5e27f4df0ee17aebd50a25342571f44825f10a..ffe4321368b2d11d73d8d64b562b5487
}
public boolean endermanRidable = false;
@@ -1939,6 +1941,7 @@ public class PurpurWorldConfig {
@@ -1960,6 +1962,7 @@ public class PurpurWorldConfig {
public int witherHealthRegenDelay = 20;
public boolean witherBypassMobGriefing = false;
public boolean witherTakeDamageFromWater = false;
@ -56,7 +56,7 @@ index 1e5e27f4df0ee17aebd50a25342571f44825f10a..ffe4321368b2d11d73d8d64b562b5487
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -1957,6 +1960,7 @@ public class PurpurWorldConfig {
@@ -1978,6 +1981,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

@ -68,7 +68,7 @@ index e1753ed5f7f72a4861666cd7929ab52b7891d5f0..8ccfbee93e98e20c07e733a42765a1a4
if (cause != null) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 4592b84984d35ee4cc63beebacad089c5a0317ed..2cd5c8823eb8215b3e2a6eb7dd34b752a480dbd0 100644
index 716d93c1ffd97daa0e338932d7950390aea0afb6..fdc94326c7d803c1e167c0b8ca7549954766e711 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -165,6 +165,7 @@ public class PurpurConfig {
@ -95,10 +95,10 @@ index 4592b84984d35ee4cc63beebacad089c5a0317ed..2cd5c8823eb8215b3e2a6eb7dd34b752
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 ffe4321368b2d11d73d8d64b562b54870c8eb1b9..06e7919068a693ac3f8dbf988d9f3fbe6f04538f 100644
index 0a305bd8ec0f27ab46c98dc3eb44b5f022919cf0..40b53622a8bdde82eea66af6b2ed48b410abf12a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -190,6 +190,8 @@ public class PurpurWorldConfig {
@@ -191,6 +191,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 ffe4321368b2d11d73d8d64b562b54870c8eb1b9..06e7919068a693ac3f8dbf988d9f3fbe
private void itemSettings() {
itemImmuneToCactus.clear();
getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> {
@@ -227,6 +229,8 @@ public class PurpurWorldConfig {
@@ -228,6 +230,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 cb825b7edfcee31ba431e5f166ec9008ea9f2060..e00c2b211cc3bf55f58039f4a0872ea5
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 06e7919068a693ac3f8dbf988d9f3fbe6f04538f..36bf919a4ac62d4fdd85a35e747c3a8b0d5cc7c0 100644
index 40b53622a8bdde82eea66af6b2ed48b410abf12a..eee1d4fd7901e341908ff1b6bf0e5d5c6df3e428 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -335,6 +335,7 @@ public class PurpurWorldConfig {
@@ -336,6 +336,7 @@ public class PurpurWorldConfig {
public boolean teleportIfOutsideBorder = false;
public boolean totemOfUndyingWorksInInventory = false;
public boolean playerFixStuckPortal = false;
@ -41,7 +41,7 @@ index 06e7919068a693ac3f8dbf988d9f3fbe6f04538f..36bf919a4ac62d4fdd85a35e747c3a8b
private void playerSettings() {
if (PurpurConfig.version < 19) {
boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer);
@@ -353,6 +354,7 @@ public class PurpurWorldConfig {
@@ -354,6 +355,7 @@ public class PurpurWorldConfig {
teleportIfOutsideBorder = getBoolean("gameplay-mechanics.player.teleport-if-outside-border", teleportIfOutsideBorder);
totemOfUndyingWorksInInventory = getBoolean("gameplay-mechanics.player.totem-of-undying-works-in-inventory", totemOfUndyingWorksInInventory);
playerFixStuckPortal = getBoolean("gameplay-mechanics.player.fix-stuck-in-portal", playerFixStuckPortal);

View File

@ -29,10 +29,10 @@ index fbbb0155bd66f1daa160e03f866741d903e1869e..86f7b4117b8b9bd36e38962e3290f7b9
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 36bf919a4ac62d4fdd85a35e747c3a8b0d5cc7c0..551c15ae84829beecfa27630c0c7b63b0fb829ef 100644
index eee1d4fd7901e341908ff1b6bf0e5d5c6df3e428..df0397ea8bc4396ede6b357577677b9ae1c2a557 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -511,6 +511,11 @@ public class PurpurWorldConfig {
@@ -512,6 +512,11 @@ public class PurpurWorldConfig {
furnaceUseLavaFromUnderneath = getBoolean("blocks.furnace.use-lava-from-underneath", furnaceUseLavaFromUnderneath);
}

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