mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
Upstream has released updates that appear to apply and compile correctly Paper Changes: 8c74d3126 Updated Upstream (Bukkit) (#5359) fd3c66a91 bug #5362 - correctly pass "render type" when registering a new scoreboard objective 39c487b37 Add per-command perms for paper command cdbf2578c Add Item Rarity API (#5352) d80e43647 [CI-SKIP] Removal from the MIT list (#5345) Tuinity Changes: aea6b8347 Merge dev/playerchunkloading 722c7ca8a Use hash table for maintaing changed block set 98ae59d85 Custom table implementation for blockstate state lookups 8b8704fb6 Oprimise map impl for tracked players ea71d6ba4 Optimise snow & ice in chunk ticking 9871d4ce5 Remove chunk lookup & lambda allocation from counting mobs 5a4a35f3e Add patreon 7d93d9618 Refactor data management for region manager c3035219f Change license from MIT to LGPLv3 Airplane Changes: 580f380b6 Updated Upstream (Tuinity) 82253fd36 Early return optimization for target finding 9572643bb Cache entityhuman display name 5df98254f Remove iterators from inventory contains 18d2be193 Merge pull request #14 from violetwtf/patch-1 f716d4c33 Merge pull request #13 from violetwtf/master 128cbe519 Reduce entity chunk ticking checks from 3 to 1 03ac0933b Skip copying unloading tile entities 97dd027b5 Smaller pool size for tracking 9e9f57be4 Only set up Flare if token is available
2561 lines
131 KiB
Diff
2561 lines
131 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: BillyGalbreath <blake.galbreath@gmail.com>
|
|
Date: Thu, 10 Dec 2020 16:44:54 -0600
|
|
Subject: [PATCH] Configurable entity base attributes
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/EntityBat.java b/src/main/java/net/minecraft/server/EntityBat.java
|
|
index 7a18c59689b84fa277709ad11c39a72d77df4afb..da4ce323b9a2e0de0d1ed242f102a1601c6891d2 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityBat.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityBat.java
|
|
@@ -55,6 +55,18 @@ public class EntityBat extends EntityAmbient {
|
|
setMot(mot.a(0.9D));
|
|
}
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.batMaxHealth);
|
|
+ this.getAttributeInstance(GenericAttributes.FOLLOW_RANGE).setValue(this.world.purpurConfig.batFollowRange);
|
|
+ this.getAttributeInstance(GenericAttributes.KNOCKBACK_RESISTANCE).setValue(this.world.purpurConfig.batKnockbackResistance);
|
|
+ this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).setValue(this.world.purpurConfig.batMovementSpeed);
|
|
+ this.getAttributeInstance(GenericAttributes.FLYING_SPEED).setValue(this.world.purpurConfig.batFlyingSpeed);
|
|
+ this.getAttributeInstance(GenericAttributes.ARMOR).setValue(this.world.purpurConfig.batArmor);
|
|
+ this.getAttributeInstance(GenericAttributes.ARMOR_TOUGHNESS).setValue(this.world.purpurConfig.batArmorToughness);
|
|
+ this.getAttributeInstance(GenericAttributes.ATTACK_KNOCKBACK).setValue(this.world.purpurConfig.batAttackKnockback);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityBee.java b/src/main/java/net/minecraft/server/EntityBee.java
|
|
index ded4e10f5082fb5aa25368d9035affba287c3345..bef806bfc60792a990209b57f3cd4b9da0c24acc 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityBee.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityBee.java
|
|
@@ -105,6 +105,11 @@ public class EntityBee extends EntityAnimal implements IEntityAngerable, EntityB
|
|
int getPurpurBreedTime() {
|
|
return this.world.purpurConfig.beeBreedingTicks;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.beeMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityBlaze.java b/src/main/java/net/minecraft/server/EntityBlaze.java
|
|
index dcfad16e06450068d5801fc002c9650102dbf995..90b90fa33b39020189a1d4a5826fa3ab720488cd 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityBlaze.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityBlaze.java
|
|
@@ -45,6 +45,11 @@ public class EntityBlaze extends EntityMonster {
|
|
setMot(mot.a(0.9D));
|
|
}
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.blazeMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityCat.java b/src/main/java/net/minecraft/server/EntityCat.java
|
|
index 437a7b8ffb40c461f1778d91591fa6c4dcf36834..f973408b1f098c8a090401205f809e95fdcf2f62 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityCat.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityCat.java
|
|
@@ -63,6 +63,11 @@ public class EntityCat extends EntityTameableAnimal {
|
|
int getPurpurBreedTime() {
|
|
return this.world.purpurConfig.catBreedingTicks;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.catMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
public MinecraftKey eU() {
|
|
diff --git a/src/main/java/net/minecraft/server/EntityCaveSpider.java b/src/main/java/net/minecraft/server/EntityCaveSpider.java
|
|
index 2e1f2dec17e7761b6534f29bbec813d135250e4f..adbd665d455dfc1672a5bdf1b3b380d535835cd7 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityCaveSpider.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityCaveSpider.java
|
|
@@ -18,6 +18,11 @@ public class EntityCaveSpider extends EntitySpider {
|
|
public boolean isRidableInWater() {
|
|
return world.purpurConfig.caveSpiderRidableInWater;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.caveSpiderMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
public static AttributeProvider.Builder m() {
|
|
diff --git a/src/main/java/net/minecraft/server/EntityChicken.java b/src/main/java/net/minecraft/server/EntityChicken.java
|
|
index 2e1dc047459889aea85a79eaa04e8fe1a80e5b9e..18aed81061a4033627214a65d38cd9509ed0f8e9 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityChicken.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityChicken.java
|
|
@@ -33,6 +33,7 @@ public class EntityChicken extends EntityAnimal {
|
|
if (world.purpurConfig.chickenRetaliate) {
|
|
this.getAttributeInstance(GenericAttributes.ATTACK_DAMAGE).setValue(2.0D);
|
|
}
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.chickenMaxHealth);
|
|
}
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityCod.java b/src/main/java/net/minecraft/server/EntityCod.java
|
|
index 039fae4c29648afa85ea1b27d82cfe51c4165315..024a5ffa878d6e6749c1dd95e94ec6d65cf1d629 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityCod.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityCod.java
|
|
@@ -16,6 +16,11 @@ public class EntityCod extends EntityFishSchool {
|
|
public boolean isRidableInWater() {
|
|
return true;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.codMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityCow.java b/src/main/java/net/minecraft/server/EntityCow.java
|
|
index 63497ca0266073dc0a16b7dc22641d08c3eaf400..951531d65709ee3064371cbf4b3a9831a47b12aa 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityCow.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityCow.java
|
|
@@ -26,6 +26,11 @@ public class EntityCow extends EntityAnimal {
|
|
int getPurpurBreedTime() {
|
|
return this.world.purpurConfig.cowBreedingTicks;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.cowMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityCreeper.java b/src/main/java/net/minecraft/server/EntityCreeper.java
|
|
index 7e5ede0f644a6e303be36ab0915d346a02760daa..523988bcc0607198dfb73afca5932ed6dd82cca1 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityCreeper.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityCreeper.java
|
|
@@ -97,6 +97,11 @@ public class EntityCreeper extends EntityMonster {
|
|
}
|
|
return getForward() == 0 && getStrafe() == 0; // do not jump if standing still
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.creeperMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityDolphin.java b/src/main/java/net/minecraft/server/EntityDolphin.java
|
|
index 9d5d143a997b74e0777bb79bf14d341ad5340db9..82021ba825d6a36191174acf83d109a5c74f6db8 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityDolphin.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityDolphin.java
|
|
@@ -63,6 +63,11 @@ public class EntityDolphin extends EntityWaterAnimal {
|
|
}
|
|
return false;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.dolphinMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Nullable
|
|
diff --git a/src/main/java/net/minecraft/server/EntityDrowned.java b/src/main/java/net/minecraft/server/EntityDrowned.java
|
|
index 638efc67d66001ee085957d4698f51a7daac77fc..a766910663e47b05d1e38908b5db7471199993c7 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityDrowned.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityDrowned.java
|
|
@@ -46,6 +46,15 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity {
|
|
public boolean jockeyTryExistingChickens() {
|
|
return world.purpurConfig.drownedJockeyTryExistingChickens;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.drownedMaxHealth);
|
|
+ }
|
|
+
|
|
+ protected void generateReinforcementsChance() {
|
|
+ this.getAttributeInstance(GenericAttributes.SPAWN_REINFORCEMENTS).setValue(this.random.nextDouble() * this.world.purpurConfig.drownedSpawnReinforcements);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java
|
|
index 81e63fe1b8252e2b5abcbf9051190cd0214b534c..75e834caaf7bb64a3d51d793e86aa702f6ccb0ae 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityEnderDragon.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityEnderDragon.java
|
|
@@ -97,6 +97,11 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {
|
|
public double getMaxY() {
|
|
return world.purpurConfig.enderDragonMaxY;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.enderDragonMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
public static AttributeProvider.Builder m() {
|
|
diff --git a/src/main/java/net/minecraft/server/EntityEnderman.java b/src/main/java/net/minecraft/server/EntityEnderman.java
|
|
index 0a9bd0dbd2f90aa968db0f8a14cde7e58d18652e..c03232ac1e2b450b64430f8d56bfebd30fa37155 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityEnderman.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityEnderman.java
|
|
@@ -40,6 +40,11 @@ public class EntityEnderman extends EntityMonster implements IEntityAngerable {
|
|
public boolean isRidableInWater() {
|
|
return world.purpurConfig.endermanRidableInWater;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.endermanMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityEndermite.java b/src/main/java/net/minecraft/server/EntityEndermite.java
|
|
index 7eef7f523a17434b38492006526920a955fc9120..3f34ebc1c4ac6f6f0b883c3e4c768007c24fc194 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityEndermite.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityEndermite.java
|
|
@@ -22,6 +22,11 @@ public class EntityEndermite extends EntityMonster {
|
|
public boolean isRidableInWater() {
|
|
return world.purpurConfig.endermiteRidableInWater;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.endermiteMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityEvoker.java b/src/main/java/net/minecraft/server/EntityEvoker.java
|
|
index c75dc75611991028e9de6db7c57304e913251a6b..f0ecc6e6ef5843714a6423af5d6619856ef23977 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityEvoker.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityEvoker.java
|
|
@@ -22,6 +22,11 @@ public class EntityEvoker extends EntityIllagerWizard {
|
|
public boolean isRidableInWater() {
|
|
return world.purpurConfig.evokerRidableInWater;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.evokerMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityFox.java b/src/main/java/net/minecraft/server/EntityFox.java
|
|
index b5f036af81ddd3c1b0e388a28383f0b6a63d128c..7a3fb7a41e987adee675fbfd11f2648cf5de3e53 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityFox.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityFox.java
|
|
@@ -91,6 +91,11 @@ public class EntityFox extends EntityAnimal {
|
|
int getPurpurBreedTime() {
|
|
return this.world.purpurConfig.foxBreedingTicks;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.foxMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityGhast.java b/src/main/java/net/minecraft/server/EntityGhast.java
|
|
index 216506a7b1f97b776ecd4e24f5b2afaf5b79ec2d..2c0148229283f95bed3c8f33cc02a31d6f682191 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityGhast.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityGhast.java
|
|
@@ -41,6 +41,11 @@ public class EntityGhast extends EntityFlying implements IMonster {
|
|
setMot(mot.a(0.9D));
|
|
}
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.ghastMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityGuardian.java b/src/main/java/net/minecraft/server/EntityGuardian.java
|
|
index 0a7f51a2a1cb10438c9364faf3e4adc6322fc787..476f692df79e98779271cc5a395276ab9c755a58 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityGuardian.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityGuardian.java
|
|
@@ -46,6 +46,11 @@ public class EntityGuardian extends EntityMonster {
|
|
public boolean isRidableInWater() {
|
|
return true;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.guardianMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityGuardianElder.java b/src/main/java/net/minecraft/server/EntityGuardianElder.java
|
|
index f6f882746940c9e049106aa9b41591ba27a608ce..7afba8136f9a809e779d9af8c93cda7c0765c095 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityGuardianElder.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityGuardianElder.java
|
|
@@ -26,6 +26,11 @@ public class EntityGuardianElder extends EntityGuardian {
|
|
public boolean isRidableInWater() {
|
|
return true;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.elderGuardianMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
public static AttributeProvider.Builder m() {
|
|
diff --git a/src/main/java/net/minecraft/server/EntityHoglin.java b/src/main/java/net/minecraft/server/EntityHoglin.java
|
|
index 96cad9471d316e26b5daa9d217e172efcc77e0cc..f669fe47801cf21624ba4be3ad86ebc7ab66cf98 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityHoglin.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityHoglin.java
|
|
@@ -35,6 +35,11 @@ public class EntityHoglin extends EntityAnimal implements IMonster, IOglin {
|
|
int getPurpurBreedTime() {
|
|
return this.world.purpurConfig.hoglinBreedingTicks;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.hoglinMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityHorse.java b/src/main/java/net/minecraft/server/EntityHorse.java
|
|
index 669bce5d9806c80bddc247fe103ff20dc6aaa8a5..e78e89d187f923239f23e37d5141e2e69b056360 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityHorse.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityHorse.java
|
|
@@ -22,6 +22,21 @@ public class EntityHorse extends EntityHorseAbstract {
|
|
int getPurpurBreedTime() {
|
|
return this.world.purpurConfig.horseBreedingTicks;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public float generateMaxHealth() {
|
|
+ return (float) generateMaxHealth(this.world.purpurConfig.horseMaxHealthMin, this.world.purpurConfig.horseMaxHealthMax);
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public double generateJumpStrength() {
|
|
+ return generateJumpStrength(this.world.purpurConfig.horseJumpStrengthMin, this.world.purpurConfig.horseJumpStrengthMax);
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public double generateMovementSpeed() {
|
|
+ return generateMovementSpeed(this.world.purpurConfig.horseMovementSpeedMin, this.world.purpurConfig.horseMovementSpeedMax);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityHorseAbstract.java b/src/main/java/net/minecraft/server/EntityHorseAbstract.java
|
|
index 8fde406273bbea0b9d2dea2362cf6372b7a5c9ae..2bed0a08eaad5fee5d5e85ba6cb3d3e8e1be1c2c 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityHorseAbstract.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityHorseAbstract.java
|
|
@@ -56,6 +56,32 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven
|
|
public boolean isRidableInWater() {
|
|
return false;
|
|
}
|
|
+
|
|
+ protected double generateMaxHealth(double min, double max) {
|
|
+ if (min == max) return min;
|
|
+ int diff = MathHelper.floor(max - min);
|
|
+ double base = max - diff;
|
|
+ int first = MathHelper.floor((double) diff / 2);
|
|
+ int rest = diff - first;
|
|
+ return base + random.nextInt(first + 1) + random.nextInt(rest + 1);
|
|
+ }
|
|
+
|
|
+ protected double generateJumpStrength(double min, double max) {
|
|
+ if (min == max) return min;
|
|
+ return min + (max - min) * this.random.nextDouble();
|
|
+ }
|
|
+
|
|
+ protected double generateMovementSpeed(double min, double max) {
|
|
+ if (min == max) return min;
|
|
+ return min + (max - min) * this.random.nextDouble();
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.generateMaxHealth());
|
|
+ this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).setValue(this.generateMovementSpeed());
|
|
+ this.getAttributeInstance(GenericAttributes.JUMP_STRENGTH).setValue(this.generateJumpStrength());
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
@@ -864,15 +890,15 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven
|
|
|
|
}
|
|
|
|
- protected float fp() {
|
|
+ protected float fp() { return generateMaxHealth(); } public float generateMaxHealth() { // Purpur - OBFHELPER
|
|
return 15.0F + (float) this.random.nextInt(8) + (float) this.random.nextInt(9);
|
|
}
|
|
|
|
- protected double fq() {
|
|
+ protected double fq() { return generateJumpStrength(); } public double generateJumpStrength() { // Purpur - OBFHELPER
|
|
return 0.4000000059604645D + this.random.nextDouble() * 0.2D + this.random.nextDouble() * 0.2D + this.random.nextDouble() * 0.2D;
|
|
}
|
|
|
|
- protected double fr() {
|
|
+ protected double fr() { return generateMovementSpeed(); } public double generateMovementSpeed() { // Purpur - OBFHELPER
|
|
return (0.44999998807907104D + this.random.nextDouble() * 0.3D + this.random.nextDouble() * 0.3D + this.random.nextDouble() * 0.3D) * 0.25D;
|
|
}
|
|
|
|
@@ -995,7 +1021,7 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven
|
|
groupdataentity = new EntityAgeable.a(0.2F);
|
|
}
|
|
|
|
- this.eK();
|
|
+ //this.eK(); // Purpur
|
|
return super.prepare(worldaccess, difficultydamagescaler, enummobspawn, (GroupDataEntity) groupdataentity, nbttagcompound);
|
|
}
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/server/EntityHorseDonkey.java b/src/main/java/net/minecraft/server/EntityHorseDonkey.java
|
|
index f6421bb45c5e6adf39fdc085efe2b2f500b76c0c..5b7c0e9c6cce440ed54a97803a4275eea497935a 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityHorseDonkey.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityHorseDonkey.java
|
|
@@ -18,6 +18,21 @@ public class EntityHorseDonkey extends EntityHorseChestedAbstract {
|
|
int getPurpurBreedTime() {
|
|
return this.world.purpurConfig.donkeyBreedingTicks;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public float generateMaxHealth() {
|
|
+ return (float) generateMaxHealth(this.world.purpurConfig.donkeyMaxHealthMin, this.world.purpurConfig.donkeyMaxHealthMax);
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public double generateJumpStrength() {
|
|
+ return generateJumpStrength(this.world.purpurConfig.donkeyJumpStrengthMin, this.world.purpurConfig.donkeyJumpStrengthMax);
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public double generateMovementSpeed() {
|
|
+ return generateMovementSpeed(this.world.purpurConfig.donkeyMovementSpeedMin, this.world.purpurConfig.donkeyMovementSpeedMax);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityHorseMule.java b/src/main/java/net/minecraft/server/EntityHorseMule.java
|
|
index 30cbc505d2b0f4d3247edfd271de8daab023eb2a..a32c5347e4d77f5641e4eb3ea4a6ad63d0258bc3 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityHorseMule.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityHorseMule.java
|
|
@@ -18,7 +18,23 @@ public class EntityHorseMule extends EntityHorseChestedAbstract {
|
|
int getPurpurBreedTime() {
|
|
return this.world.purpurConfig.muleBreedingTicks;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public float generateMaxHealth() {
|
|
+ return (float) generateMaxHealth(this.world.purpurConfig.muleMaxHealthMin, this.world.purpurConfig.muleMaxHealthMax);
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public double generateJumpStrength() {
|
|
+ return generateJumpStrength(this.world.purpurConfig.muleJumpStrengthMin, this.world.purpurConfig.muleJumpStrengthMax);
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public double generateMovementSpeed() {
|
|
+ return generateMovementSpeed(this.world.purpurConfig.muleMovementSpeedMin, this.world.purpurConfig.muleMovementSpeedMax);
|
|
+ }
|
|
// Purpur end
|
|
+
|
|
@Override
|
|
protected SoundEffect getSoundAmbient() {
|
|
super.getSoundAmbient();
|
|
diff --git a/src/main/java/net/minecraft/server/EntityHorseSkeleton.java b/src/main/java/net/minecraft/server/EntityHorseSkeleton.java
|
|
index 408db52cacbdfbca8af0a6a8e913b0128a3f5a76..9eac8f39ddfb598f7dfb90625829e2b10d7ec140 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityHorseSkeleton.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityHorseSkeleton.java
|
|
@@ -27,6 +27,21 @@ public class EntityHorseSkeleton extends EntityHorseAbstract {
|
|
int getPurpurBreedTime() {
|
|
return 6000;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public float generateMaxHealth() {
|
|
+ return (float) generateMaxHealth(this.world.purpurConfig.skeletonHorseMaxHealthMin, this.world.purpurConfig.skeletonHorseMaxHealthMax);
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public double generateJumpStrength() {
|
|
+ return generateJumpStrength(this.world.purpurConfig.skeletonHorseJumpStrengthMin, this.world.purpurConfig.skeletonHorseJumpStrengthMax);
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public double generateMovementSpeed() {
|
|
+ return generateMovementSpeed(this.world.purpurConfig.skeletonHorseMovementSpeedMin, this.world.purpurConfig.skeletonHorseMovementSpeedMax);
|
|
+ }
|
|
// Purpur end
|
|
|
|
public static AttributeProvider.Builder eL() {
|
|
diff --git a/src/main/java/net/minecraft/server/EntityHorseZombie.java b/src/main/java/net/minecraft/server/EntityHorseZombie.java
|
|
index 2121a6c979ba2ea7cb596ca6081750d2f8c7df9f..c2dc8211b05b4ee2a2b42435f866f8e55295162d 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityHorseZombie.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityHorseZombie.java
|
|
@@ -23,6 +23,21 @@ public class EntityHorseZombie extends EntityHorseAbstract {
|
|
int getPurpurBreedTime() {
|
|
return 6000;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public float generateMaxHealth() {
|
|
+ return (float) generateMaxHealth(this.world.purpurConfig.zombieHorseMaxHealthMin, this.world.purpurConfig.zombieHorseMaxHealthMax);
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public double generateJumpStrength() {
|
|
+ return generateJumpStrength(this.world.purpurConfig.zombieHorseJumpStrengthMin, this.world.purpurConfig.zombieHorseJumpStrengthMax);
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public double generateMovementSpeed() {
|
|
+ return generateMovementSpeed(this.world.purpurConfig.zombieHorseMovementSpeedMin, this.world.purpurConfig.zombieHorseMovementSpeedMax);
|
|
+ }
|
|
// Purpur end
|
|
|
|
public static AttributeProvider.Builder eL() {
|
|
diff --git a/src/main/java/net/minecraft/server/EntityIronGolem.java b/src/main/java/net/minecraft/server/EntityIronGolem.java
|
|
index 9ee03b233b71d1b4b85a9a5e1f0ea9feb55dfe43..3e224eeb7bdcd0d1c6bd46012366c9d9878dd2a2 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityIronGolem.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityIronGolem.java
|
|
@@ -32,6 +32,11 @@ public class EntityIronGolem extends EntityGolem implements IEntityAngerable {
|
|
public boolean isRidableInWater() {
|
|
return world.purpurConfig.ironGolemRidableInWater;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.ironGolemMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityLlama.java b/src/main/java/net/minecraft/server/EntityLlama.java
|
|
index 3bc6e6df9e0107debe5b15f5f7aad97ad336f304..f46a7cfe832c8cca83738b71882ff0a9819a7f41 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityLlama.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityLlama.java
|
|
@@ -62,6 +62,21 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn
|
|
int getPurpurBreedTime() {
|
|
return this.world.purpurConfig.llamaBreedingTicks;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public float generateMaxHealth() {
|
|
+ return (float) generateMaxHealth(this.world.purpurConfig.llamaMaxHealthMin, this.world.purpurConfig.llamaMaxHealthMax);
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public double generateJumpStrength() {
|
|
+ return generateJumpStrength(this.world.purpurConfig.llamaJumpStrengthMin, this.world.purpurConfig.llamaJumpStrengthMax);
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public double generateMovementSpeed() {
|
|
+ return generateMovementSpeed(this.world.purpurConfig.llamaMovementSpeedMin, this.world.purpurConfig.llamaMovementSpeedMax);
|
|
+ }
|
|
// Purpur end
|
|
|
|
public void setStrength(int i) {
|
|
diff --git a/src/main/java/net/minecraft/server/EntityLlamaTrader.java b/src/main/java/net/minecraft/server/EntityLlamaTrader.java
|
|
index b6aae5cdee1f8bb842ab8e06c47fb497576b464f..665de0c28e052d195bb30ca13e1b129245eff11c 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityLlamaTrader.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityLlamaTrader.java
|
|
@@ -26,6 +26,21 @@ public class EntityLlamaTrader extends EntityLlama {
|
|
public boolean hasSaddle() {
|
|
return super.hasSaddle() || isTamed();
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public float generateMaxHealth() {
|
|
+ return (float) generateMaxHealth(this.world.purpurConfig.llamaTraderMaxHealthMin, this.world.purpurConfig.llamaTraderMaxHealthMax);
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public double generateJumpStrength() {
|
|
+ return generateJumpStrength(this.world.purpurConfig.llamaTraderJumpStrengthMin, this.world.purpurConfig.llamaTraderJumpStrengthMax);
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public double generateMovementSpeed() {
|
|
+ return generateMovementSpeed(this.world.purpurConfig.llamaTraderMovementSpeedMin, this.world.purpurConfig.llamaTraderMovementSpeedMax);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityMagmaCube.java b/src/main/java/net/minecraft/server/EntityMagmaCube.java
|
|
index cd28463e2bf944d94c121c8f8d6e37221754c168..ac24a9de3b2b24bc8afebf54ea0a947fbdac2157 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityMagmaCube.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityMagmaCube.java
|
|
@@ -23,6 +23,15 @@ public class EntityMagmaCube extends EntitySlime {
|
|
public float getJumpHeight() {
|
|
return 0.42F * this.getBlockJumpFactor(); // from EntityLiving
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.generateMaxHealth());
|
|
+ }
|
|
+
|
|
+ public String getMaxHealthEquation() {
|
|
+ return world.purpurConfig.magmaCubeMaxHealth;
|
|
+ }
|
|
// Purpur end
|
|
|
|
public static AttributeProvider.Builder m() {
|
|
diff --git a/src/main/java/net/minecraft/server/EntityMushroomCow.java b/src/main/java/net/minecraft/server/EntityMushroomCow.java
|
|
index 46d031ef3cebfe30e07840ef1c9d60a97a24cd1b..c97dac30010c7d574aa7087f3a84581bfc386473 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityMushroomCow.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityMushroomCow.java
|
|
@@ -36,6 +36,11 @@ public class EntityMushroomCow extends EntityCow implements IShearable {
|
|
int getPurpurBreedTime() {
|
|
return this.world.purpurConfig.mooshroomBreedingTicks;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.mooshroomMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityOcelot.java b/src/main/java/net/minecraft/server/EntityOcelot.java
|
|
index a5be10dfb0de08b0d97265278b1f11ad1e94b821..b8368cf397c26d06f2827a1a786e1f241b810cce 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityOcelot.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityOcelot.java
|
|
@@ -31,6 +31,11 @@ public class EntityOcelot extends EntityAnimal {
|
|
int getPurpurBreedTime() {
|
|
return this.world.purpurConfig.ocelotBreedingTicks;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.ocelotMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
private boolean isTrusting() {
|
|
diff --git a/src/main/java/net/minecraft/server/EntityPanda.java b/src/main/java/net/minecraft/server/EntityPanda.java
|
|
index c70180fddb829419b9cc5188766e9130f9b8a94a..d202624853a1a0a0562b62ad5f3792db0916ae03 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityPanda.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityPanda.java
|
|
@@ -70,6 +70,12 @@ public class EntityPanda extends EntityAnimal {
|
|
int getPurpurBreedTime() {
|
|
return this.world.purpurConfig.pandaBreedingTicks;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.pandaMaxHealth);
|
|
+ updateAttributes();
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
@@ -542,9 +548,12 @@ public class EntityPanda extends EntityAnimal {
|
|
return this.random.nextBoolean() ? this.getMainGene() : this.getHiddenGene();
|
|
}
|
|
|
|
- public void fg() {
|
|
+ public void fg() { updateAttributes(); } public void updateAttributes() { // Purpur - OBFHELPER
|
|
if (this.isWeak()) {
|
|
- this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(10.0D);
|
|
+ // Purpur start
|
|
+ AttributeModifiable maxHealth = this.getAttributeInstance(GenericAttributes.MAX_HEALTH);
|
|
+ maxHealth.setValue(maxHealth.getValue() / 2);
|
|
+ // Purpur end
|
|
}
|
|
|
|
if (this.isLazy()) {
|
|
diff --git a/src/main/java/net/minecraft/server/EntityParrot.java b/src/main/java/net/minecraft/server/EntityParrot.java
|
|
index 398e92bf7053c411bd98626efe4261e15256d3ee..d19f8dda87c97de594ad051a6791d99eec581e95 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityParrot.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityParrot.java
|
|
@@ -120,6 +120,11 @@ public class EntityParrot extends EntityPerchable implements EntityBird {
|
|
int getPurpurBreedTime() {
|
|
return 6000;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.parrotMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Nullable
|
|
diff --git a/src/main/java/net/minecraft/server/EntityPhantom.java b/src/main/java/net/minecraft/server/EntityPhantom.java
|
|
index c70281fddcbe5a97a1eb176def99cdf31de37579..80cc4467d601b653583e387eb4be6f3b739058e6 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityPhantom.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityPhantom.java
|
|
@@ -76,6 +76,11 @@ public class EntityPhantom extends EntityFlying implements IMonster {
|
|
world.addEntity(flames);
|
|
return true;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.phantomMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityPig.java b/src/main/java/net/minecraft/server/EntityPig.java
|
|
index eae841eeac75a35a9dc5a53c57538ac5264ece68..9cf07531c674402e3ecc87229638578989340a13 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityPig.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityPig.java
|
|
@@ -34,6 +34,11 @@ public class EntityPig extends EntityAnimal implements ISteerable, ISaddleable {
|
|
int getPurpurBreedTime() {
|
|
return this.world.purpurConfig.pigBreedingTicks;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.pigMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityPigZombie.java b/src/main/java/net/minecraft/server/EntityPigZombie.java
|
|
index 57f3358b8dfd53f5b1d2e976d64b809f74bc3ce3..4c050c841f9846cc74fef51d5eb69f4cbb737ef1 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityPigZombie.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityPigZombie.java
|
|
@@ -46,6 +46,15 @@ public class EntityPigZombie extends EntityZombie implements IEntityAngerable {
|
|
public boolean jockeyTryExistingChickens() {
|
|
return world.purpurConfig.zombifiedPiglinJockeyTryExistingChickens;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.zombifiedPiglinMaxHealth);
|
|
+ }
|
|
+
|
|
+ protected void generateReinforcementsChance() {
|
|
+ this.getAttributeInstance(GenericAttributes.SPAWN_REINFORCEMENTS).setValue(this.random.nextDouble() * this.world.purpurConfig.zombifiedPiglinSpawnReinforcements);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
@@ -234,7 +243,7 @@ public class EntityPigZombie extends EntityZombie implements IEntityAngerable {
|
|
|
|
@Override
|
|
protected void eV() {
|
|
- this.getAttributeInstance(GenericAttributes.SPAWN_REINFORCEMENTS).setValue(0.0D);
|
|
+ generateReinforcementsChance(); // Purpur
|
|
}
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityPiglin.java b/src/main/java/net/minecraft/server/EntityPiglin.java
|
|
index 29ecfd09f0bed3dc64b14b90875a111253599958..20b6a4faae21e6969eb8bb4377c6cbe0b1f80fa0 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityPiglin.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityPiglin.java
|
|
@@ -35,6 +35,11 @@ public class EntityPiglin extends EntityPiglinAbstract implements ICrossbow {
|
|
public boolean isRidableInWater() {
|
|
return world.purpurConfig.piglinRidableInWater;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.piglinMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityPiglinBrute.java b/src/main/java/net/minecraft/server/EntityPiglinBrute.java
|
|
index f6b170811159544dc10b91226e4e54b349472c46..50e42cd8ccd48efe6251a37762953f7f55d18277 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityPiglinBrute.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityPiglinBrute.java
|
|
@@ -25,6 +25,11 @@ public class EntityPiglinBrute extends EntityPiglinAbstract {
|
|
public boolean isRidableInWater() {
|
|
return world.purpurConfig.piglinBruteRidableInWater;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.piglinBruteMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
public static AttributeProvider.Builder eS() {
|
|
diff --git a/src/main/java/net/minecraft/server/EntityPillager.java b/src/main/java/net/minecraft/server/EntityPillager.java
|
|
index cf7de0127166f6175a6246062c8664e64959edeb..99b2d50d3958a9341d01108000f2719d271bdfd5 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityPillager.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityPillager.java
|
|
@@ -23,6 +23,11 @@ public class EntityPillager extends EntityIllagerAbstract implements ICrossbow {
|
|
public boolean isRidableInWater() {
|
|
return world.purpurConfig.pillagerRidableInWater;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.pillagerMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityPolarBear.java b/src/main/java/net/minecraft/server/EntityPolarBear.java
|
|
index 40395dd7ea515e51a189d014a3274d15dc1d8ee6..f72a72e6f76c3896a80a75aae255081e2f8bb507 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityPolarBear.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityPolarBear.java
|
|
@@ -72,6 +72,11 @@ public class EntityPolarBear extends EntityAnimal implements IEntityAngerable {
|
|
int getPurpurBreedTime() {
|
|
return this.world.purpurConfig.polarBearBreedingTicks;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.polarBearMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityPufferFish.java b/src/main/java/net/minecraft/server/EntityPufferFish.java
|
|
index 16a4df27c557e2d4a0fd4f48317307b884c2688c..815ba3062e0cbc4400f4dae9f80ce8f6745816f5 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityPufferFish.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityPufferFish.java
|
|
@@ -27,6 +27,11 @@ public class EntityPufferFish extends EntityFish {
|
|
public boolean isRidableInWater() {
|
|
return true;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.pufferfishMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityRabbit.java b/src/main/java/net/minecraft/server/EntityRabbit.java
|
|
index 654cd036a8e4aa4499f10f528b684e003c469c9a..75f42e91449de71e154e2169ea986ff09224e2f0 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityRabbit.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityRabbit.java
|
|
@@ -35,6 +35,11 @@ public class EntityRabbit extends EntityAnimal {
|
|
int getPurpurBreedTime() {
|
|
return this.world.purpurConfig.rabbitBreedingTicks;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.rabbitMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
// CraftBukkit start - code from constructor
|
|
diff --git a/src/main/java/net/minecraft/server/EntityRavager.java b/src/main/java/net/minecraft/server/EntityRavager.java
|
|
index 9d0a462bfc56994ee35478cc9e565123620a9f08..820938c76e787fac6c65eb000491232d5b749dee 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityRavager.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityRavager.java
|
|
@@ -39,6 +39,11 @@ public class EntityRavager extends EntityRaider {
|
|
double speed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getBaseValue();
|
|
getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).setValue(speed);
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.ravagerMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntitySalmon.java b/src/main/java/net/minecraft/server/EntitySalmon.java
|
|
index 6dfcee2c9b658c2c9ee1179e412389934c066d48..475c375bebe2c7211869af28d23db3107b39fe51 100644
|
|
--- a/src/main/java/net/minecraft/server/EntitySalmon.java
|
|
+++ b/src/main/java/net/minecraft/server/EntitySalmon.java
|
|
@@ -16,6 +16,11 @@ public class EntitySalmon extends EntityFishSchool {
|
|
public boolean isRidableInWater() {
|
|
return true;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.salmonMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntitySheep.java b/src/main/java/net/minecraft/server/EntitySheep.java
|
|
index 32130c0681501e3e5a47b199f0bb39daac416ed3..d9fe8cf00088dba516ea2bfd7e9590d95c7e7939 100644
|
|
--- a/src/main/java/net/minecraft/server/EntitySheep.java
|
|
+++ b/src/main/java/net/minecraft/server/EntitySheep.java
|
|
@@ -71,6 +71,11 @@ public class EntitySheep extends EntityAnimal implements IShearable {
|
|
int getPurpurBreedTime() {
|
|
return this.world.purpurConfig.sheepBreedingTicks;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.sheepMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityShulker.java b/src/main/java/net/minecraft/server/EntityShulker.java
|
|
index 11a6b939ebb51cdda907531d30b7beb3a8562673..3f1cb739709cc16a9f7073ec8fafb448b734a948 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityShulker.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityShulker.java
|
|
@@ -40,6 +40,11 @@ public class EntityShulker extends EntityGolem implements IMonster {
|
|
public boolean isRidableInWater() {
|
|
return world.purpurConfig.shulkerRidableInWater;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.shulkerMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntitySilverfish.java b/src/main/java/net/minecraft/server/EntitySilverfish.java
|
|
index ad428e090089a461283445022b33313520585ac5..6bd00f0b5735d694e370cf85fdbf508c31fc7c27 100644
|
|
--- a/src/main/java/net/minecraft/server/EntitySilverfish.java
|
|
+++ b/src/main/java/net/minecraft/server/EntitySilverfish.java
|
|
@@ -21,6 +21,11 @@ public class EntitySilverfish extends EntityMonster {
|
|
public boolean isRidableInWater() {
|
|
return world.purpurConfig.silverfishRidableInWater;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.silverfishMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntitySkeleton.java b/src/main/java/net/minecraft/server/EntitySkeleton.java
|
|
index 3f130e03bf8b235360385fd169d4886ffcfa626a..a78e593cbdfa4a74d07fd53c9481534c856d01e6 100644
|
|
--- a/src/main/java/net/minecraft/server/EntitySkeleton.java
|
|
+++ b/src/main/java/net/minecraft/server/EntitySkeleton.java
|
|
@@ -16,6 +16,11 @@ public class EntitySkeleton extends EntitySkeletonAbstract {
|
|
public boolean isRidableInWater() {
|
|
return world.purpurConfig.skeletonRidableInWater;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.skeletonMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntitySkeletonStray.java b/src/main/java/net/minecraft/server/EntitySkeletonStray.java
|
|
index d123fb82b635d5271bea9b238554a3011858eeae..e34ab9eda7f610456193bdc0495c2ba478917625 100644
|
|
--- a/src/main/java/net/minecraft/server/EntitySkeletonStray.java
|
|
+++ b/src/main/java/net/minecraft/server/EntitySkeletonStray.java
|
|
@@ -18,6 +18,11 @@ public class EntitySkeletonStray extends EntitySkeletonAbstract {
|
|
public boolean isRidableInWater() {
|
|
return world.purpurConfig.strayRidableInWater;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.strayMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
public static boolean a(EntityTypes<EntitySkeletonStray> entitytypes, WorldAccess worldaccess, EnumMobSpawn enummobspawn, BlockPosition blockposition, Random random) {
|
|
diff --git a/src/main/java/net/minecraft/server/EntitySkeletonWither.java b/src/main/java/net/minecraft/server/EntitySkeletonWither.java
|
|
index 96cb080d940db22330598a8806726088b79a53c1..ee7805dccac9c4dcdf4fa83ab8041953dccdc83b 100644
|
|
--- a/src/main/java/net/minecraft/server/EntitySkeletonWither.java
|
|
+++ b/src/main/java/net/minecraft/server/EntitySkeletonWither.java
|
|
@@ -19,6 +19,11 @@ public class EntitySkeletonWither extends EntitySkeletonAbstract {
|
|
public boolean isRidableInWater() {
|
|
return world.purpurConfig.witherSkeletonRidableInWater;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.witherSkeletonMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntitySlime.java b/src/main/java/net/minecraft/server/EntitySlime.java
|
|
index 7f3d57a9399f60465fae27f03fc57df625f5016d..c3737457c521715b640b138dc41863dfba6e4ae8 100644
|
|
--- a/src/main/java/net/minecraft/server/EntitySlime.java
|
|
+++ b/src/main/java/net/minecraft/server/EntitySlime.java
|
|
@@ -11,6 +11,7 @@ import com.destroystokyo.paper.event.entity.SlimeChangeDirectionEvent;
|
|
import com.destroystokyo.paper.event.entity.SlimeSwimEvent;
|
|
import com.destroystokyo.paper.event.entity.SlimeTargetLivingEntityEvent;
|
|
import com.destroystokyo.paper.event.entity.SlimeWanderEvent;
|
|
+import javax.script.ScriptException;
|
|
import org.bukkit.entity.LivingEntity;
|
|
import org.bukkit.entity.Slime;
|
|
// Paper end
|
|
@@ -25,6 +26,7 @@ import org.bukkit.event.entity.SlimeSplitEvent;
|
|
public class EntitySlime extends EntityInsentient implements IMonster {
|
|
|
|
private static final DataWatcherObject<Integer> bo = DataWatcher.a(EntitySlime.class, DataWatcherRegistry.b);
|
|
+ private static javax.script.ScriptEngine scriptEngine = new javax.script.ScriptEngineManager().getEngineByName("rhino"); // Purpur
|
|
public float b;
|
|
public float c;
|
|
public float d;
|
|
@@ -64,6 +66,25 @@ public class EntitySlime extends EntityInsentient implements IMonster {
|
|
}
|
|
return true; // do not jump() in wasd controller, let vanilla controller handle
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.generateMaxHealth());
|
|
+ }
|
|
+
|
|
+ public String getMaxHealthEquation() {
|
|
+ return world.purpurConfig.slimeMaxHealth;
|
|
+ }
|
|
+
|
|
+ public double generateMaxHealth() {
|
|
+ int size = getSize();
|
|
+ try {
|
|
+ scriptEngine.eval("size = " + size);
|
|
+ return (double) scriptEngine.eval(getMaxHealthEquation());
|
|
+ } catch (Exception e) {
|
|
+ return size * size;
|
|
+ }
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
@@ -90,7 +111,7 @@ public class EntitySlime extends EntityInsentient implements IMonster {
|
|
this.datawatcher.set(EntitySlime.bo, i);
|
|
this.af();
|
|
this.updateSize();
|
|
- this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue((double) (i * i));
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(generateMaxHealth()); // Purpur
|
|
this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).setValue((double) (0.2F + 0.1F * (float) i));
|
|
this.getAttributeInstance(GenericAttributes.ATTACK_DAMAGE).setValue((double) i);
|
|
if (flag) {
|
|
diff --git a/src/main/java/net/minecraft/server/EntitySnowman.java b/src/main/java/net/minecraft/server/EntitySnowman.java
|
|
index 338c78efe43641686be0d6b3a241865ec5fe56bd..1dd13dfea91a05b1e83b065328092a17d41a605f 100644
|
|
--- a/src/main/java/net/minecraft/server/EntitySnowman.java
|
|
+++ b/src/main/java/net/minecraft/server/EntitySnowman.java
|
|
@@ -24,6 +24,11 @@ public class EntitySnowman extends EntityGolem implements IShearable, IRangedEnt
|
|
public boolean isRidableInWater() {
|
|
return world.purpurConfig.snowGolemRidableInWater;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.snowGolemMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntitySpider.java b/src/main/java/net/minecraft/server/EntitySpider.java
|
|
index 92d74137877d096970bf9d1b4fc91beabb862b9d..9001ca50b8d9f77b0d997511b70c39b2712df67a 100644
|
|
--- a/src/main/java/net/minecraft/server/EntitySpider.java
|
|
+++ b/src/main/java/net/minecraft/server/EntitySpider.java
|
|
@@ -21,6 +21,11 @@ public class EntitySpider extends EntityMonster {
|
|
public boolean isRidableInWater() {
|
|
return world.purpurConfig.spiderRidableInWater;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.spiderMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntitySquid.java b/src/main/java/net/minecraft/server/EntitySquid.java
|
|
index cee226501690e1c00983a01ac82bc7384f233c3c..918cd774bc7e9f84ddbc1e65b4cb4d661eb127a5 100644
|
|
--- a/src/main/java/net/minecraft/server/EntitySquid.java
|
|
+++ b/src/main/java/net/minecraft/server/EntitySquid.java
|
|
@@ -56,6 +56,11 @@ public class EntitySquid extends EntityWaterAnimal {
|
|
public boolean isInWater() {
|
|
return this.inWater || world.purpurConfig.squidsCanFly;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.squidMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityStrider.java b/src/main/java/net/minecraft/server/EntityStrider.java
|
|
index 5c960365901b6ebd74134dac2e90c6aa81d33351..1bca386b7dea01af88a6c8d8e87ff11a0b21cc7a 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityStrider.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityStrider.java
|
|
@@ -43,6 +43,11 @@ public class EntityStrider extends EntityAnimal implements ISteerable, ISaddleab
|
|
int getPurpurBreedTime() {
|
|
return this.world.purpurConfig.striderBreedingTicks;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.striderMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
public static boolean c(EntityTypes<EntityStrider> entitytypes, GeneratorAccess generatoraccess, EnumMobSpawn enummobspawn, BlockPosition blockposition, Random random) {
|
|
diff --git a/src/main/java/net/minecraft/server/EntityTropicalFish.java b/src/main/java/net/minecraft/server/EntityTropicalFish.java
|
|
index 2c9df356e685ea6f71653023fadcf7e287dcd46e..4bf7b697c18f3d3a1987471571d665ed823c5c77 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityTropicalFish.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityTropicalFish.java
|
|
@@ -29,6 +29,11 @@ public class EntityTropicalFish extends EntityFishSchool {
|
|
public boolean isRidableInWater() {
|
|
return true;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.tropicalFishMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityTurtle.java b/src/main/java/net/minecraft/server/EntityTurtle.java
|
|
index 067f7f28b02b388d56b93b1ed8274799757196e6..0233b65a996111af7bdc10e4da2d70e541411c09 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityTurtle.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityTurtle.java
|
|
@@ -42,6 +42,11 @@ public class EntityTurtle extends EntityAnimal {
|
|
int getPurpurBreedTime() {
|
|
return this.world.purpurConfig.turtleBreedingTicks;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.turtleMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
public void setHomePos(BlockPosition blockposition) {
|
|
diff --git a/src/main/java/net/minecraft/server/EntityVex.java b/src/main/java/net/minecraft/server/EntityVex.java
|
|
index 9336fbbd46c7c6ac11adf8e4cc2735f81c9ed639..3fcbfc7cdf78f71d23b2e2b2990c21db6f493f31 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityVex.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityVex.java
|
|
@@ -55,6 +55,11 @@ public class EntityVex extends EntityMonster {
|
|
public boolean b(float f, float f1) {
|
|
return false; // no fall damage please
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.vexMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
|
|
index d2112fb2424f19b2fb65ce635aa0fe24807a311e..4f5ad3836d39ccb88923a38f2fd556cb88ec241a 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityVillager.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
|
|
@@ -93,6 +93,11 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
|
|
public boolean a(EntityHuman entityhuman) {
|
|
return world.purpurConfig.villagerCanBeLeashed && !this.isLeashed();
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.villagerMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityVillagerTrader.java b/src/main/java/net/minecraft/server/EntityVillagerTrader.java
|
|
index b9418fac0a05d4bb5f8f215a5704bba332e3f7cb..a37aee151bce19ee74e6eae6b67e522a4b28f5a8 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityVillagerTrader.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityVillagerTrader.java
|
|
@@ -65,6 +65,11 @@ public class EntityVillagerTrader extends EntityVillagerAbstract {
|
|
public boolean a(EntityHuman entityhuman) {
|
|
return world.purpurConfig.villagerTraderCanBeLeashed && !this.isLeashed();
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.villagerTraderMaxHealth);
|
|
+ }
|
|
// Purpur - end
|
|
|
|
@Nullable
|
|
diff --git a/src/main/java/net/minecraft/server/EntityVindicator.java b/src/main/java/net/minecraft/server/EntityVindicator.java
|
|
index f1bc6a4199d788215c2e7d5a835211d16603a6d9..2a137a90828f84de15a7184203c7d0dccc0851b4 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityVindicator.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityVindicator.java
|
|
@@ -28,6 +28,11 @@ public class EntityVindicator extends EntityIllagerAbstract {
|
|
public boolean isRidableInWater() {
|
|
return world.purpurConfig.vindicatorRidableInWater;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.vindicatorMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityWitch.java b/src/main/java/net/minecraft/server/EntityWitch.java
|
|
index 323d79a99402b0f6952b4fb873170069f3428953..dc846e7bda587a47b1cce9054e587a734179e7fe 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityWitch.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityWitch.java
|
|
@@ -34,6 +34,11 @@ public class EntityWitch extends EntityRaider implements IRangedEntity {
|
|
public boolean isRidableInWater() {
|
|
return world.purpurConfig.witchRidableInWater;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.witchMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityWolf.java b/src/main/java/net/minecraft/server/EntityWolf.java
|
|
index fd62dc51258876275adbe02f750fd88107c38a6b..03bcbf7c280476ef0e6fe87e3a96edb75544bddb 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityWolf.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityWolf.java
|
|
@@ -121,6 +121,11 @@ public class EntityWolf extends EntityTameableAnimal implements IEntityAngerable
|
|
setCollarColor(world.purpurConfig.wolfDefaultCollarColor);
|
|
super.tame(entityhuman);
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.wolfMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityZoglin.java b/src/main/java/net/minecraft/server/EntityZoglin.java
|
|
index d92fe8013fb3b43cb7eabdf1c624291b7e881889..bcc4aa1d3f09e43016d0009cd04dd6b797dcfeca 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityZoglin.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityZoglin.java
|
|
@@ -31,6 +31,11 @@ public class EntityZoglin extends EntityMonster implements IMonster, IOglin {
|
|
public boolean isRidableInWater() {
|
|
return world.purpurConfig.zoglinRidableInWater;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.zoglinMaxHealth);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java
|
|
index e4de6e2f8b72c0ede3ad34666a5dfde5c5363b56..c87f05f2d511a135fe67943f96fe41d06882e57b 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityZombie.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityZombie.java
|
|
@@ -67,6 +67,15 @@ public class EntityZombie extends EntityMonster {
|
|
public boolean jockeyTryExistingChickens() {
|
|
return world.purpurConfig.zombieJockeyTryExistingChickens;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.zombieMaxHealth);
|
|
+ }
|
|
+
|
|
+ protected void generateReinforcementsChance() {
|
|
+ this.getAttributeInstance(GenericAttributes.SPAWN_REINFORCEMENTS).setValue(this.random.nextDouble() * this.world.purpurConfig.zombieSpawnReinforcements);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
@@ -549,7 +558,7 @@ public class EntityZombie extends EntityMonster {
|
|
}
|
|
|
|
protected void eV() {
|
|
- this.getAttributeInstance(GenericAttributes.SPAWN_REINFORCEMENTS).setValue(this.random.nextDouble() * 0.10000000149011612D);
|
|
+ generateReinforcementsChance(); // Purpur
|
|
}
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityZombieHusk.java b/src/main/java/net/minecraft/server/EntityZombieHusk.java
|
|
index 02b0ae550a0ed33b5b43beedf3b1405985c58c13..966a14b4122b5ca43832a57fcbc162147f903a21 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityZombieHusk.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityZombieHusk.java
|
|
@@ -33,6 +33,15 @@ public class EntityZombieHusk extends EntityZombie {
|
|
public boolean jockeyTryExistingChickens() {
|
|
return world.purpurConfig.huskJockeyTryExistingChickens;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.huskMaxHealth);
|
|
+ }
|
|
+
|
|
+ protected void generateReinforcementsChance() {
|
|
+ this.getAttributeInstance(GenericAttributes.SPAWN_REINFORCEMENTS).setValue(this.random.nextDouble() * this.world.purpurConfig.huskSpawnReinforcements);
|
|
+ }
|
|
// Purpur end
|
|
|
|
public static boolean a(EntityTypes<EntityZombieHusk> entitytypes, WorldAccess worldaccess, EnumMobSpawn enummobspawn, BlockPosition blockposition, Random random) {
|
|
diff --git a/src/main/java/net/minecraft/server/EntityZombieVillager.java b/src/main/java/net/minecraft/server/EntityZombieVillager.java
|
|
index 5b6ed77fb2b92b5bf701de436c8d7235bfe82685..48e501130dea326ffc6503bc2e9306dffd8797f9 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityZombieVillager.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityZombieVillager.java
|
|
@@ -53,6 +53,15 @@ public class EntityZombieVillager extends EntityZombie implements VillagerDataHo
|
|
public boolean jockeyTryExistingChickens() {
|
|
return world.purpurConfig.zombieVillagerJockeyTryExistingChickens;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.zombieVillagerMaxHealth);
|
|
+ }
|
|
+
|
|
+ protected void generateReinforcementsChance() {
|
|
+ this.getAttributeInstance(GenericAttributes.SPAWN_REINFORCEMENTS).setValue(this.random.nextDouble() * this.world.purpurConfig.zombieVillagerSpawnReinforcements);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
index 3790fcea3a556a979eacaf5b03e5ebc4c3a02925..31114da5cc21c5f3b59ea97e34bddfd09c2a5198 100644
|
|
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
@@ -484,30 +484,58 @@ public class PurpurWorldConfig {
|
|
public boolean batRidable = false;
|
|
public boolean batRidableInWater = false;
|
|
public double batMaxY = 256D;
|
|
+ public double batMaxHealth = 6.0D;
|
|
+ public double batFollowRange = 16.0D;
|
|
+ public double batKnockbackResistance = 0.0D;
|
|
+ public double batMovementSpeed = 0.6D;
|
|
+ public double batFlyingSpeed = 0.6D;
|
|
+ public double batArmor = 0.0D;
|
|
+ public double batArmorToughness = 0.0D;
|
|
+ public double batAttackKnockback = 0.0D;
|
|
private void batSettings() {
|
|
batRidable = getBoolean("mobs.bat.ridable", batRidable);
|
|
batRidableInWater = getBoolean("mobs.bat.ridable-in-water", batRidableInWater);
|
|
batMaxY = getDouble("mobs.bat.ridable-max-y", batMaxY);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.bat.attributes.max-health", batMaxHealth);
|
|
+ set("mobs.bat.attributes.max-health", null);
|
|
+ set("mobs.bat.attributes.max_health", oldValue);
|
|
+ }
|
|
+ batMaxHealth = getDouble("mobs.bat.attributes.max_health", batMaxHealth);
|
|
}
|
|
|
|
public boolean beeRidable = false;
|
|
public boolean beeRidableInWater = false;
|
|
public double beeMaxY = 256D;
|
|
public int beeBreedingTicks = 6000;
|
|
+ public double beeMaxHealth = 10.0D;
|
|
private void beeSettings() {
|
|
beeRidable = getBoolean("mobs.bee.ridable", beeRidable);
|
|
beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater);
|
|
beeMaxY = getDouble("mobs.bee.ridable-max-y", beeMaxY);
|
|
beeBreedingTicks = getInt("mobs.bee.breeding-delay-ticks", beeBreedingTicks);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.bee.attributes.max-health", beeMaxHealth);
|
|
+ set("mobs.bee.attributes.max-health", null);
|
|
+ set("mobs.bee.attributes.max_health", oldValue);
|
|
+ }
|
|
+ beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth);
|
|
}
|
|
|
|
public boolean blazeRidable = false;
|
|
public boolean blazeRidableInWater = false;
|
|
public double blazeMaxY = 256D;
|
|
+ public double blazeMaxHealth = 20.0D;
|
|
private void blazeSettings() {
|
|
blazeRidable = getBoolean("mobs.blaze.ridable", blazeRidable);
|
|
blazeRidableInWater = getBoolean("mobs.blaze.ridable-in-water", blazeRidableInWater);
|
|
blazeMaxY = getDouble("mobs.blaze.ridable-max-y", blazeMaxY);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.blaze.attributes.max-health", blazeMaxHealth);
|
|
+ set("mobs.blaze.attributes.max-health", null);
|
|
+ set("mobs.blaze.attributes.max_health", oldValue);
|
|
+ }
|
|
+ blazeMaxHealth = getDouble("mobs.blaze.attributes.max_health", blazeMaxHealth);
|
|
}
|
|
|
|
public boolean catRidable = false;
|
|
@@ -516,6 +544,7 @@ public class PurpurWorldConfig {
|
|
public int catSpawnSwampHutScanRange = 16;
|
|
public int catSpawnVillageScanRange = 48;
|
|
public int catBreedingTicks = 6000;
|
|
+ public double catMaxHealth = 10.0D;
|
|
private void catSettings() {
|
|
catRidable = getBoolean("mobs.cat.ridable", catRidable);
|
|
catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater);
|
|
@@ -523,51 +552,92 @@ 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);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.cat.attributes.max-health", catMaxHealth);
|
|
+ set("mobs.cat.attributes.max-health", null);
|
|
+ set("mobs.cat.attributes.max_health", oldValue);
|
|
+ }
|
|
+ catMaxHealth = getDouble("mobs.cat.attributes.max_health", catMaxHealth);
|
|
}
|
|
|
|
public boolean caveSpiderRidable = false;
|
|
public boolean caveSpiderRidableInWater = false;
|
|
+ public double caveSpiderMaxHealth = 12.0D;
|
|
private void caveSpiderSettings() {
|
|
caveSpiderRidable = getBoolean("mobs.cave_spider.ridable", caveSpiderRidable);
|
|
caveSpiderRidableInWater = getBoolean("mobs.cave_spider.ridable-in-water", caveSpiderRidableInWater);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.cave_spider.attributes.max-health", caveSpiderMaxHealth);
|
|
+ set("mobs.cave_spider.attributes.max-health", null);
|
|
+ set("mobs.cave_spider.attributes.max_health", oldValue);
|
|
+ }
|
|
+ caveSpiderMaxHealth = getDouble("mobs.cave_spider.attributes.max_health", caveSpiderMaxHealth);
|
|
}
|
|
|
|
public boolean chickenRidable = false;
|
|
public boolean chickenRidableInWater = false;
|
|
public boolean chickenRetaliate = false;
|
|
public int chickenBreedingTicks = 6000;
|
|
+ public double chickenMaxHealth = 4.0D;
|
|
private void chickenSettings() {
|
|
chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable);
|
|
chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater);
|
|
chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate);
|
|
chickenBreedingTicks = getInt("mobs.chicken.breeding-delay-ticks", chickenBreedingTicks);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.chicken.attributes.max-health", chickenMaxHealth);
|
|
+ set("mobs.chicken.attributes.max-health", null);
|
|
+ set("mobs.chicken.attributes.max_health", oldValue);
|
|
+ }
|
|
+ chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth);
|
|
}
|
|
|
|
public boolean codRidable = false;
|
|
+ public double codMaxHealth = 3.0D;
|
|
private void codSettings() {
|
|
codRidable = getBoolean("mobs.cod.ridable", codRidable);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.cod.attributes.max-health", codMaxHealth);
|
|
+ set("mobs.cod.attributes.max-health", null);
|
|
+ set("mobs.cod.attributes.max_health", oldValue);
|
|
+ }
|
|
+ codMaxHealth = getDouble("mobs.cod.attributes.max_health", codMaxHealth);
|
|
}
|
|
|
|
public boolean cowRidable = false;
|
|
public boolean cowRidableInWater = false;
|
|
public int cowFeedMushrooms = 0;
|
|
public int cowBreedingTicks = 6000;
|
|
+ public double cowMaxHealth = 10.0D;
|
|
private void cowSettings() {
|
|
cowRidable = getBoolean("mobs.cow.ridable", cowRidable);
|
|
cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater);
|
|
cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms);
|
|
cowBreedingTicks = getInt("mobs.cow.breeding-delay-ticks", cowBreedingTicks);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.cow.attributes.max-health", cowMaxHealth);
|
|
+ set("mobs.cow.attributes.max-health", null);
|
|
+ set("mobs.cow.attributes.max_health", oldValue);
|
|
+ }
|
|
+ cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth);
|
|
}
|
|
|
|
public boolean creeperRidable = false;
|
|
public boolean creeperRidableInWater = false;
|
|
public boolean creeperAllowGriefing = true;
|
|
public double creeperChargedChance = 0.0D;
|
|
+ public double creeperMaxHealth = 20.0D;
|
|
private void creeperSettings() {
|
|
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
|
|
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
|
|
creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing);
|
|
creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.creeper.attributes.max-health", creeperMaxHealth);
|
|
+ set("mobs.creeper.attributes.max-health", null);
|
|
+ set("mobs.creeper.attributes.max_health", oldValue);
|
|
+ }
|
|
+ creeperMaxHealth = getDouble("mobs.creeper.attributes.max_health", creeperMaxHealth);
|
|
}
|
|
|
|
public boolean dolphinRidable = false;
|
|
@@ -575,19 +645,45 @@ public class PurpurWorldConfig {
|
|
public float dolphinSpitSpeed = 1.0F;
|
|
public float dolphinSpitDamage = 2.0F;
|
|
public boolean dolphinDisableTreasureSearching = false;
|
|
+ public double dolphinMaxHealth = 10.0D;
|
|
private void dolphinSettings() {
|
|
dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable);
|
|
dolphinSpitCooldown = getInt("mobs.dolphin.spit.cooldown", dolphinSpitCooldown);
|
|
dolphinSpitSpeed = (float) getDouble("mobs.dolphin.spit.speed", dolphinSpitSpeed);
|
|
dolphinSpitDamage = (float) getDouble("mobs.dolphin.spit.damage", dolphinSpitDamage);
|
|
dolphinDisableTreasureSearching = getBoolean("mobs.dolphin.disable-treasure-searching", dolphinDisableTreasureSearching);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.dolphin.attributes.max-health", dolphinMaxHealth);
|
|
+ set("mobs.dolphin.attributes.max-health", null);
|
|
+ set("mobs.dolphin.attributes.max_health", oldValue);
|
|
+ }
|
|
+ dolphinMaxHealth = getDouble("mobs.dolphin.attributes.max_health", dolphinMaxHealth);
|
|
}
|
|
|
|
public boolean donkeyRidableInWater = false;
|
|
public int donkeyBreedingTicks = 6000;
|
|
+ public double donkeyMaxHealthMin = 15.0D;
|
|
+ public double donkeyMaxHealthMax = 30.0D;
|
|
+ public double donkeyJumpStrengthMin = 0.5D;
|
|
+ public double donkeyJumpStrengthMax = 0.5D;
|
|
+ public double donkeyMovementSpeedMin = 0.175D;
|
|
+ public double donkeyMovementSpeedMax = 0.175D;
|
|
private void donkeySettings() {
|
|
donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater);
|
|
donkeyBreedingTicks = getInt("mobs.donkey.breeding-delay-ticks", donkeyBreedingTicks);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldMin = getDouble("mobs.donkey.attributes.max-health.min", donkeyMaxHealthMin);
|
|
+ double oldMax = getDouble("mobs.donkey.attributes.max-health.max", donkeyMaxHealthMax);
|
|
+ set("mobs.donkey.attributes.max-health", null);
|
|
+ set("mobs.donkey.attributes.max_health.min", oldMin);
|
|
+ set("mobs.donkey.attributes.max_health.max", oldMax);
|
|
+ }
|
|
+ donkeyMaxHealthMin = getDouble("mobs.donkey.attributes.max_health.min", donkeyMaxHealthMin);
|
|
+ donkeyMaxHealthMax = getDouble("mobs.donkey.attributes.max_health.max", donkeyMaxHealthMax);
|
|
+ donkeyJumpStrengthMin = getDouble("mobs.donkey.attributes.jump_strength.min", donkeyJumpStrengthMin);
|
|
+ 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);
|
|
}
|
|
|
|
public boolean drownedRidable = false;
|
|
@@ -595,73 +691,135 @@ public class PurpurWorldConfig {
|
|
public boolean drownedJockeyOnlyBaby = true;
|
|
public double drownedJockeyChance = 0.05D;
|
|
public boolean drownedJockeyTryExistingChickens = true;
|
|
+ public double drownedMaxHealth = 20.0D;
|
|
+ public double drownedSpawnReinforcements = 0.1D;
|
|
private void drownedSettings() {
|
|
drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable);
|
|
drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater);
|
|
drownedJockeyOnlyBaby = getBoolean("mobs.drowned.jockey.only-babies", drownedJockeyOnlyBaby);
|
|
drownedJockeyChance = getDouble("mobs.drowned.jockey.chance", drownedJockeyChance);
|
|
drownedJockeyTryExistingChickens = getBoolean("mobs.drowned.jockey.try-existing-chickens", drownedJockeyTryExistingChickens);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.drowned.attributes.max-health", drownedMaxHealth);
|
|
+ set("mobs.drowned.attributes.max-health", null);
|
|
+ set("mobs.drowned.attributes.max_health", oldValue);
|
|
+ }
|
|
+ drownedMaxHealth = getDouble("mobs.drowned.attributes.max_health", drownedMaxHealth);
|
|
+ drownedSpawnReinforcements = getDouble("mobs.drowned.attributes.spawn_reinforcements", drownedSpawnReinforcements);
|
|
}
|
|
|
|
public boolean elderGuardianRidable = false;
|
|
+ public double elderGuardianMaxHealth = 80.0D;
|
|
private void elderGuardianSettings() {
|
|
elderGuardianRidable = getBoolean("mobs.elder_guardian.ridable", elderGuardianRidable);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.elder_guardian.attributes.max-health", elderGuardianMaxHealth);
|
|
+ set("mobs.elder_guardian.attributes.max-health", null);
|
|
+ set("mobs.elder_guardian.attributes.max_health", oldValue);
|
|
+ }
|
|
+ elderGuardianMaxHealth = getDouble("mobs.elder_guardian.attributes.max_health", elderGuardianMaxHealth);
|
|
}
|
|
|
|
public boolean enderDragonRidable = false;
|
|
public boolean enderDragonRidableInWater = false;
|
|
public double enderDragonMaxY = 256D;
|
|
public boolean enderDragonAlwaysDropsFullExp = false;
|
|
+ public double enderDragonMaxHealth = 200.0D;
|
|
private void enderDragonSettings() {
|
|
enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable);
|
|
enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater);
|
|
enderDragonMaxY = getDouble("mobs.ender_dragon.ridable-max-y", enderDragonMaxY);
|
|
enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp);
|
|
+ if (PurpurConfig.version < 8) {
|
|
+ double oldValue = getDouble("mobs.ender_dragon.max-health", enderDragonMaxHealth);
|
|
+ set("mobs.ender_dragon.max-health", null);
|
|
+ set("mobs.ender_dragon.attributes.max_health", oldValue);
|
|
+ } else if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.ender_dragon.attributes.max-health", enderDragonMaxHealth);
|
|
+ set("mobs.ender_dragon.attributes.max-health", null);
|
|
+ set("mobs.ender_dragon.attributes.max_health", oldValue);
|
|
+ }
|
|
+ enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth);
|
|
}
|
|
|
|
public boolean endermanRidable = false;
|
|
public boolean endermanRidableInWater = false;
|
|
public boolean endermanAllowGriefing = true;
|
|
public boolean endermanDespawnEvenWithBlock = false;
|
|
+ public double endermanMaxHealth = 40.0D;
|
|
private void endermanSettings() {
|
|
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
|
|
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
|
|
endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing);
|
|
endermanDespawnEvenWithBlock = getBoolean("mobs.enderman.can-despawn-with-held-block", endermanDespawnEvenWithBlock);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.enderman.attributes.max-health", endermanMaxHealth);
|
|
+ set("mobs.enderman.attributes.max-health", null);
|
|
+ set("mobs.enderman.attributes.max_health", oldValue);
|
|
+ }
|
|
+ endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth);
|
|
}
|
|
|
|
public boolean endermiteRidable = false;
|
|
public boolean endermiteRidableInWater = false;
|
|
+ public double endermiteMaxHealth = 8.0D;
|
|
private void endermiteSettings() {
|
|
endermiteRidable = getBoolean("mobs.endermite.ridable", endermiteRidable);
|
|
endermiteRidableInWater = getBoolean("mobs.endermite.ridable-in-water", endermiteRidableInWater);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.endermite.attributes.max-health", endermiteMaxHealth);
|
|
+ set("mobs.endermite.attributes.max-health", null);
|
|
+ set("mobs.endermite.attributes.max_health", oldValue);
|
|
+ }
|
|
+ endermiteMaxHealth = getDouble("mobs.endermite.attributes.max_health", endermiteMaxHealth);
|
|
}
|
|
|
|
public boolean evokerRidable = false;
|
|
public boolean evokerRidableInWater = false;
|
|
+ public double evokerMaxHealth = 24.0D;
|
|
private void evokerSettings() {
|
|
evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable);
|
|
evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.evoker.attributes.max-health", evokerMaxHealth);
|
|
+ set("mobs.evoker.attributes.max-health", null);
|
|
+ set("mobs.evoker.attributes.max_health", oldValue);
|
|
+ }
|
|
+ evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth);
|
|
}
|
|
|
|
public boolean foxRidable = false;
|
|
public boolean foxRidableInWater = false;
|
|
public boolean foxTypeChangesWithTulips = false;
|
|
public int foxBreedingTicks = 6000;
|
|
+ public double foxMaxHealth = 10.0D;
|
|
private void foxSettings() {
|
|
foxRidable = getBoolean("mobs.fox.ridable", foxRidable);
|
|
foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater);
|
|
foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips);
|
|
foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.fox.attributes.max-health", foxMaxHealth);
|
|
+ set("mobs.fox.attributes.max-health", null);
|
|
+ set("mobs.fox.attributes.max_health", oldValue);
|
|
+ }
|
|
+ foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth);
|
|
}
|
|
|
|
public boolean ghastRidable = false;
|
|
public boolean ghastRidableInWater = false;
|
|
public double ghastMaxY = 256D;
|
|
+ public double ghastMaxHealth = 10.0D;
|
|
private void ghastSettings() {
|
|
ghastRidable = getBoolean("mobs.ghast.ridable", ghastRidable);
|
|
ghastRidableInWater = getBoolean("mobs.ghast.ridable-in-water", ghastRidableInWater);
|
|
ghastMaxY = getDouble("mobs.ghast.ridable-max-y", ghastMaxY);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.ghast.attributes.max-health", ghastMaxHealth);
|
|
+ set("mobs.ghast.attributes.max-health", null);
|
|
+ set("mobs.ghast.attributes.max_health", oldValue);
|
|
+ }
|
|
+ ghastMaxHealth = getDouble("mobs.ghast.attributes.max_health", ghastMaxHealth);
|
|
}
|
|
|
|
public boolean giantRidable = false;
|
|
@@ -684,31 +842,68 @@ public class PurpurWorldConfig {
|
|
giantHaveHostileAI = getBoolean("mobs.giant.have-hostile-ai", giantHaveHostileAI);
|
|
if (PurpurConfig.version < 8) {
|
|
double oldValue = getDouble("mobs.giant.max-health", giantMaxHealth);
|
|
- set("mobs.giant.attributes.max-health", oldValue);
|
|
set("mobs.giant.max-health", null);
|
|
+ set("mobs.giant.attributes.max_health", oldValue);
|
|
+ } else if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.giant.attributes.max-health", giantMaxHealth);
|
|
+ set("mobs.giant.attributes.max-health", null);
|
|
+ set("mobs.giant.attributes.max_health", oldValue);
|
|
}
|
|
- giantMaxHealth = getDouble("mobs.giant.attributes.max-health", giantMaxHealth);
|
|
+ giantMaxHealth = getDouble("mobs.giant.attributes.max_health", giantMaxHealth);
|
|
}
|
|
|
|
public boolean guardianRidable = false;
|
|
+ public double guardianMaxHealth = 30.0D;
|
|
private void guardianSettings() {
|
|
guardianRidable = getBoolean("mobs.guardian.ridable", guardianRidable);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.guardian.attributes.max-health", guardianMaxHealth);
|
|
+ set("mobs.guardian.attributes.max-health", null);
|
|
+ set("mobs.guardian.attributes.max_health", oldValue);
|
|
+ }
|
|
+ guardianMaxHealth = getDouble("mobs.guardian.attributes.max_health", guardianMaxHealth);
|
|
}
|
|
|
|
public boolean hoglinRidable = false;
|
|
public boolean hoglinRidableInWater = false;
|
|
public int hoglinBreedingTicks = 6000;
|
|
+ public double hoglinMaxHealth = 40.0D;
|
|
private void hoglinSettings() {
|
|
hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable);
|
|
hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater);
|
|
hoglinBreedingTicks = getInt("mobs.hoglin.breeding-delay-ticks", hoglinBreedingTicks);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.hoglin.attributes.max-health", hoglinMaxHealth);
|
|
+ set("mobs.hoglin.attributes.max-health", null);
|
|
+ set("mobs.hoglin.attributes.max_health", oldValue);
|
|
+ }
|
|
+ hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth);
|
|
}
|
|
|
|
public boolean horseRidableInWater = false;
|
|
public int horseBreedingTicks = 6000;
|
|
+ public double horseMaxHealthMin = 15.0D;
|
|
+ public double horseMaxHealthMax = 30.0D;
|
|
+ public double horseJumpStrengthMin = 0.4D;
|
|
+ public double horseJumpStrengthMax = 1.0D;
|
|
+ public double horseMovementSpeedMin = 0.1125D;
|
|
+ public double horseMovementSpeedMax = 0.3375D;
|
|
private void horseSettings() {
|
|
horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater);
|
|
horseBreedingTicks = getInt("mobs.horse.breeding-delay-ticks", horseBreedingTicks);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldMin = getDouble("mobs.horse.attributes.max-health.min", horseMaxHealthMin);
|
|
+ double oldMax = getDouble("mobs.horse.attributes.max-health.max", horseMaxHealthMax);
|
|
+ set("mobs.horse.attributes.max-health", null);
|
|
+ set("mobs.horse.attributes.max_health.min", oldMin);
|
|
+ set("mobs.horse.attributes.max_health.max", oldMax);
|
|
+ }
|
|
+ horseMaxHealthMin = getDouble("mobs.horse.attributes.max_health.min", horseMaxHealthMin);
|
|
+ horseMaxHealthMax = getDouble("mobs.horse.attributes.max_health.max", horseMaxHealthMax);
|
|
+ horseJumpStrengthMin = getDouble("mobs.horse.attributes.jump_strength.min", horseJumpStrengthMin);
|
|
+ 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);
|
|
}
|
|
|
|
public boolean huskRidable = false;
|
|
@@ -716,12 +911,21 @@ public class PurpurWorldConfig {
|
|
public boolean huskJockeyOnlyBaby = true;
|
|
public double huskJockeyChance = 0.05D;
|
|
public boolean huskJockeyTryExistingChickens = true;
|
|
+ public double huskMaxHealth = 20.0D;
|
|
+ public double huskSpawnReinforcements = 0.1D;
|
|
private void huskSettings() {
|
|
huskRidable = getBoolean("mobs.husk.ridable", huskRidable);
|
|
huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater);
|
|
huskJockeyOnlyBaby = getBoolean("mobs.husk.jockey.only-babies", huskJockeyOnlyBaby);
|
|
huskJockeyChance = getDouble("mobs.husk.jockey.chance", huskJockeyChance);
|
|
huskJockeyTryExistingChickens = getBoolean("mobs.husk.jockey.try-existing-chickens", huskJockeyTryExistingChickens);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.husk.attributes.max-health", huskMaxHealth);
|
|
+ set("mobs.husk.attributes.max-health", null);
|
|
+ set("mobs.husk.attributes.max_health", oldValue);
|
|
+ }
|
|
+ huskMaxHealth = getDouble("mobs.husk.attributes.max_health", huskMaxHealth);
|
|
+ huskSpawnReinforcements = getDouble("mobs.husk.attributes.spawn_reinforcements", huskSpawnReinforcements);
|
|
}
|
|
|
|
public boolean illusionerRidable = false;
|
|
@@ -736,85 +940,188 @@ public class PurpurWorldConfig {
|
|
illusionerFollowRange = getDouble("mobs.illusioner.follow-range", illusionerFollowRange);
|
|
if (PurpurConfig.version < 8) {
|
|
double oldValue = getDouble("mobs.illusioner.max-health", illusionerMaxHealth);
|
|
- set("mobs.illusioner.attributes.max-health", oldValue);
|
|
set("mobs.illusioner.max-health", null);
|
|
+ set("mobs.illusioner.attributes.max_health", oldValue);
|
|
+ } else if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.illusioner.attributes.max-health", illusionerMaxHealth);
|
|
+ set("mobs.illusioner.attributes.max-health", null);
|
|
+ set("mobs.illusioner.attributes.max_health", oldValue);
|
|
}
|
|
- illusionerMaxHealth = getDouble("mobs.illusioner.attributes.max-health", illusionerMaxHealth);
|
|
+ illusionerMaxHealth = getDouble("mobs.illusioner.attributes.max_health", illusionerMaxHealth);
|
|
}
|
|
|
|
public boolean ironGolemRidable = false;
|
|
public boolean ironGolemRidableInWater = false;
|
|
public boolean ironGolemCanSwim = false;
|
|
+ public double ironGolemMaxHealth = 100.0D;
|
|
private void ironGolemSettings() {
|
|
ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable);
|
|
ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater);
|
|
ironGolemCanSwim = getBoolean("mobs.iron_golem.can-swim", ironGolemCanSwim);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.iron_golem.attributes.max-health", ironGolemMaxHealth);
|
|
+ set("mobs.iron_golem.attributes.max-health", null);
|
|
+ set("mobs.iron_golem.attributes.max_health", oldValue);
|
|
+ }
|
|
+ ironGolemMaxHealth = getDouble("mobs.iron_golem.attributes.max_health", ironGolemMaxHealth);
|
|
}
|
|
|
|
public boolean llamaRidable = false;
|
|
public boolean llamaRidableInWater = false;
|
|
public int llamaBreedingTicks = 6000;
|
|
+ public double llamaMaxHealthMin = 15.0D;
|
|
+ public double llamaMaxHealthMax = 30.0D;
|
|
+ public double llamaJumpStrengthMin = 0.5D;
|
|
+ public double llamaJumpStrengthMax = 0.5D;
|
|
+ public double llamaMovementSpeedMin = 0.175D;
|
|
+ public double llamaMovementSpeedMax = 0.175D;
|
|
private void llamaSettings() {
|
|
llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable);
|
|
llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater);
|
|
llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldMin = getDouble("mobs.llama.attributes.max-health.min", llamaMaxHealthMin);
|
|
+ double oldMax = getDouble("mobs.llama.attributes.max-health.max", llamaMaxHealthMax);
|
|
+ set("mobs.llama.attributes.max-health", null);
|
|
+ set("mobs.llama.attributes.max_health.min", oldMin);
|
|
+ set("mobs.llama.attributes.max_health.max", oldMax);
|
|
+ }
|
|
+ llamaMaxHealthMin = getDouble("mobs.llama.attributes.max_health.min", llamaMaxHealthMin);
|
|
+ llamaMaxHealthMax = getDouble("mobs.llama.attributes.max_health.max", llamaMaxHealthMax);
|
|
+ llamaJumpStrengthMin = getDouble("mobs.llama.attributes.jump_strength.min", llamaJumpStrengthMin);
|
|
+ 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);
|
|
}
|
|
|
|
public boolean llamaTraderRidable = false;
|
|
public boolean llamaTraderRidableInWater = false;
|
|
+ public double llamaTraderMaxHealthMin = 15.0D;
|
|
+ public double llamaTraderMaxHealthMax = 30.0D;
|
|
+ public double llamaTraderJumpStrengthMin = 0.5D;
|
|
+ public double llamaTraderJumpStrengthMax = 0.5D;
|
|
+ public double llamaTraderMovementSpeedMin = 0.175D;
|
|
+ public double llamaTraderMovementSpeedMax = 0.175D;
|
|
private void llamaTraderSettings() {
|
|
llamaTraderRidable = getBoolean("mobs.trader_llama.ridable", llamaTraderRidable);
|
|
llamaTraderRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", llamaTraderRidableInWater);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldMin = getDouble("mobs.trader_llama.attributes.max-health.min", llamaTraderMaxHealthMin);
|
|
+ double oldMax = getDouble("mobs.trader_llama.attributes.max-health.max", llamaTraderMaxHealthMax);
|
|
+ set("mobs.trader_llama.attributes.max-health", null);
|
|
+ set("mobs.trader_llama.attributes.max_health.min", oldMin);
|
|
+ set("mobs.trader_llama.attributes.max_health.max", oldMax);
|
|
+ }
|
|
+ llamaTraderMaxHealthMin = getDouble("mobs.trader_llama.attributes.max_health.min", llamaTraderMaxHealthMin);
|
|
+ llamaTraderMaxHealthMax = getDouble("mobs.trader_llama.attributes.max_health.max", llamaTraderMaxHealthMax);
|
|
+ llamaTraderJumpStrengthMin = getDouble("mobs.trader_llama.attributes.jump_strength.min", llamaTraderJumpStrengthMin);
|
|
+ llamaTraderJumpStrengthMax = getDouble("mobs.trader_llama.attributes.jump_strength.max", llamaTraderJumpStrengthMax);
|
|
+ llamaTraderMovementSpeedMin = getDouble("mobs.trader_llama.attributes.movement_speed.min", llamaTraderMovementSpeedMin);
|
|
+ llamaTraderMovementSpeedMax = getDouble("mobs.trader_llama.attributes.movement_speed.max", llamaTraderMovementSpeedMax);
|
|
}
|
|
|
|
public boolean magmaCubeRidable = false;
|
|
public boolean magmaCubeRidableInWater = false;
|
|
+ public String magmaCubeMaxHealth = "size * size";
|
|
private void magmaCubeSettings() {
|
|
magmaCubeRidable = getBoolean("mobs.magma_cube.ridable", magmaCubeRidable);
|
|
magmaCubeRidableInWater = getBoolean("mobs.magma_cube.ridable-in-water", magmaCubeRidableInWater);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ String oldValue = getString("mobs.magma_cube.attributes.max-health", magmaCubeMaxHealth);
|
|
+ set("mobs.magma_cube.attributes.max-health", null);
|
|
+ set("mobs.magma_cube.attributes.max_health", oldValue);
|
|
+ }
|
|
+ magmaCubeMaxHealth = getString("mobs.magma_cube.attributes.max_health", magmaCubeMaxHealth);
|
|
}
|
|
|
|
public boolean mooshroomRidable = false;
|
|
public boolean mooshroomRidableInWater = false;
|
|
public int mooshroomBreedingTicks = 6000;
|
|
+ public double mooshroomMaxHealth = 10.0D;
|
|
private void mooshroomSettings() {
|
|
mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable);
|
|
mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater);
|
|
mooshroomBreedingTicks = getInt("mobs.mooshroom.breeding-delay-ticks", mooshroomBreedingTicks);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.mooshroom.attributes.max-health", mooshroomMaxHealth);
|
|
+ set("mobs.mooshroom.attributes.max-health", null);
|
|
+ set("mobs.mooshroom.attributes.max_health", oldValue);
|
|
+ }
|
|
+ mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth);
|
|
}
|
|
|
|
public boolean muleRidableInWater = false;
|
|
public int muleBreedingTicks = 6000;
|
|
+ public double muleMaxHealthMin = 15.0D;
|
|
+ public double muleMaxHealthMax = 30.0D;
|
|
+ public double muleJumpStrengthMin = 0.5D;
|
|
+ public double muleJumpStrengthMax = 0.5D;
|
|
+ public double muleMovementSpeedMin = 0.175D;
|
|
+ public double muleMovementSpeedMax = 0.175D;
|
|
private void muleSettings() {
|
|
muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater);
|
|
muleBreedingTicks = getInt("mobs.mule.breeding-delay-ticks", muleBreedingTicks);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldMin = getDouble("mobs.mule.attributes.max-health.min", muleMaxHealthMin);
|
|
+ double oldMax = getDouble("mobs.mule.attributes.max-health.max", muleMaxHealthMax);
|
|
+ set("mobs.mule.attributes.max-health", null);
|
|
+ set("mobs.mule.attributes.max_health.min", oldMin);
|
|
+ set("mobs.mule.attributes.max_health.max", oldMax);
|
|
+ }
|
|
+ muleMaxHealthMin = getDouble("mobs.mule.attributes.max_health.min", muleMaxHealthMin);
|
|
+ muleMaxHealthMax = getDouble("mobs.mule.attributes.max_health.max", muleMaxHealthMax);
|
|
+ muleJumpStrengthMin = getDouble("mobs.mule.attributes.jump_strength.min", muleJumpStrengthMin);
|
|
+ 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);
|
|
}
|
|
|
|
public boolean ocelotRidable = false;
|
|
public boolean ocelotRidableInWater = false;
|
|
public int ocelotBreedingTicks = 6000;
|
|
+ public double ocelotMaxHealth = 10.0D;
|
|
private void ocelotSettings() {
|
|
ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable);
|
|
ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater);
|
|
ocelotBreedingTicks = getInt("mobs.ocelot.breeding-delay-ticks", ocelotBreedingTicks);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.ocelot.attributes.max-health", ocelotMaxHealth);
|
|
+ set("mobs.ocelot.attributes.max-health", null);
|
|
+ set("mobs.ocelot.attributes.max_health", oldValue);
|
|
+ }
|
|
+ ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth);
|
|
}
|
|
|
|
public boolean pandaRidable = false;
|
|
public boolean pandaRidableInWater = false;
|
|
public int pandaBreedingTicks = 6000;
|
|
+ public double pandaMaxHealth = 20.0D;
|
|
private void pandaSettings() {
|
|
pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable);
|
|
pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater);
|
|
pandaBreedingTicks = getInt("mobs.panda.breeding-delay-ticks", pandaBreedingTicks);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.panda.attributes.max-health", pandaMaxHealth);
|
|
+ set("mobs.panda.attributes.max-health", null);
|
|
+ set("mobs.panda.attributes.max_health", oldValue);
|
|
+ }
|
|
+ pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth);
|
|
}
|
|
|
|
public boolean parrotRidable = false;
|
|
public boolean parrotRidableInWater = false;
|
|
public double parrotMaxY = 256D;
|
|
+ public double parrotMaxHealth = 6.0D;
|
|
private void parrotSettings() {
|
|
parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable);
|
|
parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater);
|
|
parrotMaxY = getDouble("mobs.parrot.ridable-max-y", parrotMaxY);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.parrot.attributes.max-health", parrotMaxHealth);
|
|
+ set("mobs.parrot.attributes.max-health", null);
|
|
+ set("mobs.parrot.attributes.max_health", oldValue);
|
|
+ }
|
|
+ parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth);
|
|
}
|
|
|
|
public boolean phantomRidable = false;
|
|
@@ -841,6 +1148,7 @@ public class PurpurWorldConfig {
|
|
public boolean phantomIgnorePlayersWithTorch = false;
|
|
public boolean phantomBurnInDaylight = true;
|
|
public boolean phantomAllowGriefing = false;
|
|
+ public double phantomMaxHealth = 20.0D;
|
|
private void phantomSettings() {
|
|
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
|
|
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
|
|
@@ -866,38 +1174,72 @@ public class PurpurWorldConfig {
|
|
phantomBurnInDaylight = getBoolean("mobs.phantom.burn-in-daylight", phantomBurnInDaylight);
|
|
phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch);
|
|
phantomAllowGriefing = getBoolean("mobs.phantom.allow-griefing", phantomAllowGriefing);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.phantom.attributes.max-health", phantomMaxHealth);
|
|
+ set("mobs.phantom.attributes.max-health", null);
|
|
+ set("mobs.phantom.attributes.max_health", oldValue);
|
|
+ }
|
|
+ phantomMaxHealth = getDouble("mobs.phantom.attributes.max_health", phantomMaxHealth);
|
|
}
|
|
|
|
public boolean pigRidable = false;
|
|
public boolean pigRidableInWater = false;
|
|
public boolean pigGiveSaddleBack = false;
|
|
public int pigBreedingTicks = 6000;
|
|
+ public double pigMaxHealth = 10.0D;
|
|
private void pigSettings() {
|
|
pigRidable = getBoolean("mobs.pig.ridable", pigRidable);
|
|
pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater);
|
|
pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack);
|
|
pigBreedingTicks = getInt("mobs.pig.breeding-delay-ticks", pigBreedingTicks);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.pig.attributes.max-health", pigMaxHealth);
|
|
+ set("mobs.pig.attributes.max-health", null);
|
|
+ set("mobs.pig.attributes.max_health", oldValue);
|
|
+ }
|
|
+ pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth);
|
|
}
|
|
|
|
public boolean piglinRidable = false;
|
|
public boolean piglinRidableInWater = false;
|
|
+ public double piglinMaxHealth = 16.0D;
|
|
private void piglinSettings() {
|
|
piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable);
|
|
piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.piglin.attributes.max-health", piglinMaxHealth);
|
|
+ set("mobs.piglin.attributes.max-health", null);
|
|
+ set("mobs.piglin.attributes.max_health", oldValue);
|
|
+ }
|
|
+ piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth);
|
|
}
|
|
|
|
public boolean piglinBruteRidable = false;
|
|
public boolean piglinBruteRidableInWater = false;
|
|
+ public double piglinBruteMaxHealth = 50.0D;
|
|
private void piglinBruteSettings() {
|
|
piglinBruteRidable = getBoolean("mobs.piglin_brute.ridable", piglinBruteRidable);
|
|
piglinBruteRidableInWater = getBoolean("mobs.piglin_brute.ridable-in-water", piglinBruteRidableInWater);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.piglin_brute.attributes.max-health", piglinBruteMaxHealth);
|
|
+ set("mobs.piglin_brute.attributes.max-health", null);
|
|
+ set("mobs.piglin_brute.attributes.max_health", oldValue);
|
|
+ }
|
|
+ piglinBruteMaxHealth = getDouble("mobs.piglin_brute.attributes.max_health", piglinBruteMaxHealth);
|
|
}
|
|
|
|
public boolean pillagerRidable = false;
|
|
public boolean pillagerRidableInWater = false;
|
|
+ public double pillagerMaxHealth = 24.0D;
|
|
private void pillagerSettings() {
|
|
pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable);
|
|
pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.pillager.attributes.max-health", pillagerMaxHealth);
|
|
+ set("mobs.pillager.attributes.max-health", null);
|
|
+ set("mobs.pillager.attributes.max_health", oldValue);
|
|
+ }
|
|
+ pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth);
|
|
}
|
|
|
|
public boolean polarBearRidable = false;
|
|
@@ -905,6 +1247,7 @@ public class PurpurWorldConfig {
|
|
public String polarBearBreedableItemString = "";
|
|
public Item polarBearBreedableItem = null;
|
|
public int polarBearBreedingTicks = 6000;
|
|
+ public double polarBearMaxHealth = 30.0D;
|
|
private void polarBearSettings() {
|
|
polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable);
|
|
polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater);
|
|
@@ -912,11 +1255,24 @@ public class PurpurWorldConfig {
|
|
Item item = IRegistry.ITEM.get(new MinecraftKey(polarBearBreedableItemString));
|
|
if (item != Items.AIR) polarBearBreedableItem = item;
|
|
polarBearBreedingTicks = getInt("mobs.polar_bear.breeding-delay-ticks", polarBearBreedingTicks);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.polar_bear.attributes.max-health", polarBearMaxHealth);
|
|
+ set("mobs.polar_bear.attributes.max-health", null);
|
|
+ set("mobs.polar_bear.attributes.max_health", oldValue);
|
|
+ }
|
|
+ polarBearMaxHealth = getDouble("mobs.polar_bear.attributes.max_health", polarBearMaxHealth);
|
|
}
|
|
|
|
public boolean pufferfishRidable = false;
|
|
+ public double pufferfishMaxHealth = 3.0D;
|
|
private void pufferfishSettings() {
|
|
pufferfishRidable = getBoolean("mobs.pufferfish.ridable", pufferfishRidable);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.pufferfish.attributes.max-health", pufferfishMaxHealth);
|
|
+ set("mobs.pufferfish.attributes.max-health", null);
|
|
+ set("mobs.pufferfish.attributes.max_health", oldValue);
|
|
+ }
|
|
+ pufferfishMaxHealth = getDouble("mobs.pufferfish.attributes.max_health", pufferfishMaxHealth);
|
|
}
|
|
|
|
public boolean rabbitRidable = false;
|
|
@@ -924,68 +1280,142 @@ public class PurpurWorldConfig {
|
|
public double rabbitNaturalToast = 0.0D;
|
|
public double rabbitNaturalKiller = 0.0D;
|
|
public int rabbitBreedingTicks = 6000;
|
|
+ public double rabbitMaxHealth = 3.0D;
|
|
private void rabbitSettings() {
|
|
rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable);
|
|
rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater);
|
|
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);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.rabbit.attributes.max-health", rabbitMaxHealth);
|
|
+ set("mobs.rabbit.attributes.max-health", null);
|
|
+ set("mobs.rabbit.attributes.max_health", oldValue);
|
|
+ }
|
|
+ rabbitMaxHealth = getDouble("mobs.rabbit.attributes.max_health", rabbitMaxHealth);
|
|
}
|
|
|
|
public boolean ravagerRidable = false;
|
|
public boolean ravagerRidableInWater = false;
|
|
+ public double ravagerMaxHealth = 100.0D;
|
|
private void ravagerSettings() {
|
|
ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable);
|
|
ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.ravager.attributes.max-health", ravagerMaxHealth);
|
|
+ set("mobs.ravager.attributes.max-health", null);
|
|
+ set("mobs.ravager.attributes.max_health", oldValue);
|
|
+ }
|
|
+ ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth);
|
|
}
|
|
|
|
public boolean salmonRidable = false;
|
|
+ public double salmonMaxHealth = 3.0D;
|
|
private void salmonSettings() {
|
|
salmonRidable = getBoolean("mobs.salmon.ridable", salmonRidable);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.salmon.attributes.max-health", salmonMaxHealth);
|
|
+ set("mobs.salmon.attributes.max-health", null);
|
|
+ set("mobs.salmon.attributes.max_health", oldValue);
|
|
+ }
|
|
+ salmonMaxHealth = getDouble("mobs.salmon.attributes.max_health", salmonMaxHealth);
|
|
}
|
|
|
|
public boolean sheepRidable = false;
|
|
public boolean sheepRidableInWater = false;
|
|
public int sheepBreedingTicks = 6000;
|
|
+ public double sheepMaxHealth = 8.0D;
|
|
private void sheepSettings() {
|
|
sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable);
|
|
sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater);
|
|
sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.sheep.attributes.max-health", sheepMaxHealth);
|
|
+ set("mobs.sheep.attributes.max-health", null);
|
|
+ set("mobs.sheep.attributes.max_health", oldValue);
|
|
+ }
|
|
+ sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth);
|
|
}
|
|
|
|
public boolean shulkerRidable = false;
|
|
public boolean shulkerRidableInWater = false;
|
|
+ public double shulkerMaxHealth = 30.0D;
|
|
private void shulkerSettings() {
|
|
shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable);
|
|
shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.shulker.attributes.max-health", shulkerMaxHealth);
|
|
+ set("mobs.shulker.attributes.max-health", null);
|
|
+ set("mobs.shulker.attributes.max_health", oldValue);
|
|
+ }
|
|
+ shulkerMaxHealth = getDouble("mobs.shulker.attributes.max_health", shulkerMaxHealth);
|
|
}
|
|
|
|
public boolean silverfishRidable = false;
|
|
public boolean silverfishRidableInWater = false;
|
|
+ public double silverfishMaxHealth = 8.0D;
|
|
private void silverfishSettings() {
|
|
silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable);
|
|
silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.silverfish.attributes.max-health", silverfishMaxHealth);
|
|
+ set("mobs.silverfish.attributes.max-health", null);
|
|
+ set("mobs.silverfish.attributes.max_health", oldValue);
|
|
+ }
|
|
+ silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth);
|
|
}
|
|
|
|
public boolean skeletonRidable = false;
|
|
public boolean skeletonRidableInWater = false;
|
|
+ public double skeletonMaxHealth = 20.0D;
|
|
private void skeletonSettings() {
|
|
skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable);
|
|
skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.skeleton.attributes.max-health", skeletonMaxHealth);
|
|
+ set("mobs.skeleton.attributes.max-health", null);
|
|
+ set("mobs.skeleton.attributes.max_health", oldValue);
|
|
+ }
|
|
+ skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth);
|
|
}
|
|
|
|
public boolean skeletonHorseCanSwim = false;
|
|
public boolean skeletonHorseRidableInWater = true;
|
|
+ public double skeletonHorseMaxHealthMin = 15.0D;
|
|
+ public double skeletonHorseMaxHealthMax = 15.0D;
|
|
+ public double skeletonHorseJumpStrengthMin = 0.4D;
|
|
+ public double skeletonHorseJumpStrengthMax = 1.0D;
|
|
+ public double skeletonHorseMovementSpeedMin = 0.2D;
|
|
+ public double skeletonHorseMovementSpeedMax = 0.2D;
|
|
private void skeletonHorseSettings() {
|
|
skeletonHorseCanSwim = getBoolean("mobs.skeleton_horse.can-swim", skeletonHorseCanSwim);
|
|
skeletonHorseRidableInWater = getBoolean("mobs.skeleton_horse.ridable-in-water", skeletonHorseRidableInWater);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.skeleton_horse.attributes.max-health", skeletonHorseMaxHealthMin);
|
|
+ set("mobs.skeleton_horse.attributes.max-health", null);
|
|
+ set("mobs.skeleton_horse.attributes.max_health.min", oldValue);
|
|
+ set("mobs.skeleton_horse.attributes.max_health.max", oldValue);
|
|
+ }
|
|
+ skeletonHorseMaxHealthMin = getDouble("mobs.skeleton_horse.attributes.max_health.min", skeletonHorseMaxHealthMin);
|
|
+ skeletonHorseMaxHealthMax = getDouble("mobs.skeleton_horse.attributes.max_health.max", skeletonHorseMaxHealthMax);
|
|
+ skeletonHorseJumpStrengthMin = getDouble("mobs.skeleton_horse.attributes.jump_strength.min", skeletonHorseJumpStrengthMin);
|
|
+ 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);
|
|
}
|
|
|
|
public boolean slimeRidable = false;
|
|
public boolean slimeRidableInWater = false;
|
|
+ public String slimeMaxHealth = "size * size";
|
|
private void slimeSettings() {
|
|
slimeRidable = getBoolean("mobs.slime.ridable", slimeRidable);
|
|
slimeRidableInWater = getBoolean("mobs.slime.ridable-in-water", slimeRidableInWater);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ String oldValue = getString("mobs.slime.attributes.max-health", slimeMaxHealth);
|
|
+ set("mobs.slime.attributes.max-health", null);
|
|
+ set("mobs.slime.attributes.max_health", oldValue);
|
|
+ }
|
|
+ slimeMaxHealth = getString("mobs.slime.attributes.max_health", slimeMaxHealth);
|
|
}
|
|
|
|
public boolean snowGolemRidable = false;
|
|
@@ -997,6 +1427,7 @@ public class PurpurWorldConfig {
|
|
public int snowGolemSnowBallMax = 20;
|
|
public float snowGolemSnowBallModifier = 10.0F;
|
|
public double snowGolemAttackDistance = 1.25D;
|
|
+ public double snowGolemMaxHealth = 4.0D;
|
|
private void snowGolemSettings() {
|
|
snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable);
|
|
snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater);
|
|
@@ -1007,63 +1438,118 @@ 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);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.snow_golem.attributes.max-health", snowGolemMaxHealth);
|
|
+ set("mobs.snow_golem.attributes.max-health", null);
|
|
+ set("mobs.snow_golem.attributes.max_health", oldValue);
|
|
+ }
|
|
+ snowGolemMaxHealth = getDouble("mobs.snow_golem.attributes.max_health", snowGolemMaxHealth);
|
|
}
|
|
|
|
public boolean squidRidable = false;
|
|
public boolean squidImmuneToEAR = true;
|
|
public double squidOffsetWaterCheck = 0.0D;
|
|
public boolean squidsCanFly = false;
|
|
+ public double squidMaxHealth = 10.0D;
|
|
private void squidSettings() {
|
|
squidRidable = getBoolean("mobs.squid.ridable", squidRidable);
|
|
squidImmuneToEAR = getBoolean("mobs.squid.immune-to-EAR", squidImmuneToEAR);
|
|
squidOffsetWaterCheck = getDouble("mobs.squid.water-offset-check", squidOffsetWaterCheck);
|
|
squidsCanFly = getBoolean("mobs.squid.can-fly", squidsCanFly);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.squid.attributes.max-health", squidMaxHealth);
|
|
+ set("mobs.squid.attributes.max-health", null);
|
|
+ set("mobs.squid.attributes.max_health", oldValue);
|
|
+ }
|
|
+ squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth);
|
|
}
|
|
|
|
public boolean spiderRidable = false;
|
|
public boolean spiderRidableInWater = false;
|
|
+ public double spiderMaxHealth = 16.0D;
|
|
private void spiderSettings() {
|
|
spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable);
|
|
spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.spider.attributes.max-health", spiderMaxHealth);
|
|
+ set("mobs.spider.attributes.max-health", null);
|
|
+ set("mobs.spider.attributes.max_health", oldValue);
|
|
+ }
|
|
+ spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth);
|
|
}
|
|
|
|
public boolean strayRidable = false;
|
|
public boolean strayRidableInWater = false;
|
|
+ public double strayMaxHealth = 20.0D;
|
|
private void straySettings() {
|
|
strayRidable = getBoolean("mobs.stray.ridable", strayRidable);
|
|
strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.stray.attributes.max-health", strayMaxHealth);
|
|
+ set("mobs.stray.attributes.max-health", null);
|
|
+ set("mobs.stray.attributes.max_health", oldValue);
|
|
+ }
|
|
+ strayMaxHealth = getDouble("mobs.stray.attributes.max_health", strayMaxHealth);
|
|
}
|
|
|
|
public boolean striderRidable = false;
|
|
public boolean striderRidableInWater = false;
|
|
public int striderBreedingTicks = 6000;
|
|
+ public double striderMaxHealth = 20.0D;
|
|
private void striderSettings() {
|
|
striderRidable = getBoolean("mobs.strider.ridable", striderRidable);
|
|
striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater);
|
|
striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.strider.attributes.max-health", striderMaxHealth);
|
|
+ set("mobs.strider.attributes.max-health", null);
|
|
+ set("mobs.strider.attributes.max_health", oldValue);
|
|
+ }
|
|
+ striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth);
|
|
}
|
|
|
|
public boolean tropicalFishRidable = false;
|
|
+ public double tropicalFishMaxHealth = 3.0D;
|
|
private void tropicalFishSettings() {
|
|
tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.tropical_fish.attributes.max-health", tropicalFishMaxHealth);
|
|
+ set("mobs.tropical_fish.attributes.max-health", null);
|
|
+ set("mobs.tropical_fish.attributes.max_health", oldValue);
|
|
+ }
|
|
+ tropicalFishMaxHealth = getDouble("mobs.tropical_fish.attributes.max_health", tropicalFishMaxHealth);
|
|
}
|
|
|
|
public boolean turtleRidable = false;
|
|
public boolean turtleRidableInWater = false;
|
|
public int turtleBreedingTicks = 6000;
|
|
+ public double turtleMaxHealth = 30.0D;
|
|
private void turtleSettings() {
|
|
turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable);
|
|
turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater);
|
|
turtleBreedingTicks = getInt("mobs.turtle.breeding-delay-ticks", turtleBreedingTicks);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.turtle.attributes.max-health", turtleMaxHealth);
|
|
+ set("mobs.turtle.attributes.max-health", null);
|
|
+ set("mobs.turtle.attributes.max_health", oldValue);
|
|
+ }
|
|
+ turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth);
|
|
}
|
|
|
|
public boolean vexRidable = false;
|
|
public boolean vexRidableInWater = false;
|
|
public double vexMaxY = 256D;
|
|
+ public double vexMaxHealth = 14.0D;
|
|
private void vexSettings() {
|
|
vexRidable = getBoolean("mobs.vex.ridable", vexRidable);
|
|
vexRidableInWater = getBoolean("mobs.vex.ridable-in-water", vexRidableInWater);
|
|
vexMaxY = getDouble("mobs.vex.ridable-max-y", vexMaxY);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.vex.attributes.max-health", vexMaxHealth);
|
|
+ set("mobs.vex.attributes.max-health", null);
|
|
+ set("mobs.vex.attributes.max_health", oldValue);
|
|
+ }
|
|
+ vexMaxHealth = getDouble("mobs.vex.attributes.max_health", vexMaxHealth);
|
|
}
|
|
|
|
public boolean villagerRidable = false;
|
|
@@ -1081,6 +1567,7 @@ public class PurpurWorldConfig {
|
|
public int villagerLobotomizeCheck = 60;
|
|
public boolean villagerClericsFarmWarts = false;
|
|
public boolean villagerClericFarmersThrowWarts = true;
|
|
+ public double villagerMaxHealth = 20.0D;
|
|
private void villagerSettings() {
|
|
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
|
|
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
|
|
@@ -1102,33 +1589,60 @@ public class PurpurWorldConfig {
|
|
villagerLobotomizeCheck = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheck);
|
|
villagerClericsFarmWarts = getBoolean("mobs.villager.clerics-farm-warts", villagerClericsFarmWarts);
|
|
villagerClericFarmersThrowWarts = getBoolean("mobs.villager.cleric-wart-farmers-throw-warts-at-villagers", villagerClericFarmersThrowWarts);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.villager.attributes.max-health", villagerMaxHealth);
|
|
+ set("mobs.villager.attributes.max-health", null);
|
|
+ set("mobs.villager.attributes.max_health", oldValue);
|
|
+ }
|
|
+ villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth);
|
|
}
|
|
|
|
public boolean villagerTraderRidable = false;
|
|
public boolean villagerTraderRidableInWater = false;
|
|
public boolean villagerTraderCanBeLeashed = false;
|
|
public boolean villagerTraderFollowEmeraldBlock = false;
|
|
+ public double villagerTraderMaxHealth = 20.0D;
|
|
private void villagerTraderSettings() {
|
|
villagerTraderRidable = getBoolean("mobs.wandering_trader.ridable", villagerTraderRidable);
|
|
villagerTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", villagerTraderRidableInWater);
|
|
villagerTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", villagerTraderCanBeLeashed);
|
|
villagerTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", villagerTraderFollowEmeraldBlock);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.wandering_trader.attributes.max-health", villagerTraderMaxHealth);
|
|
+ set("mobs.wandering_trader.attributes.max-health", null);
|
|
+ set("mobs.wandering_trader.attributes.max_health", oldValue);
|
|
+ }
|
|
+ villagerTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", villagerTraderMaxHealth);
|
|
}
|
|
|
|
public boolean vindicatorRidable = false;
|
|
public boolean vindicatorRidableInWater = false;
|
|
public double vindicatorJohnnySpawnChance = 0D;
|
|
+ public double vindicatorMaxHealth = 24.0D;
|
|
private void vindicatorSettings() {
|
|
vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable);
|
|
vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater);
|
|
vindicatorJohnnySpawnChance = getDouble("mobs.vindicator.johnny.spawn-chance", vindicatorJohnnySpawnChance);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.vindicator.attributes.max-health", vindicatorMaxHealth);
|
|
+ set("mobs.vindicator.attributes.max-health", null);
|
|
+ set("mobs.vindicator.attributes.max_health", oldValue);
|
|
+ }
|
|
+ vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth);
|
|
}
|
|
|
|
public boolean witchRidable = false;
|
|
public boolean witchRidableInWater = false;
|
|
+ public double witchMaxHealth = 26.0D;
|
|
private void witchSettings() {
|
|
witchRidable = getBoolean("mobs.witch.ridable", witchRidable);
|
|
witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.witch.attributes.max-health", witchMaxHealth);
|
|
+ set("mobs.witch.attributes.max-health", null);
|
|
+ set("mobs.witch.attributes.max_health", oldValue);
|
|
+ }
|
|
+ witchMaxHealth = getDouble("mobs.witch.attributes.max_health", witchMaxHealth);
|
|
}
|
|
|
|
public boolean witherRidable = false;
|
|
@@ -1145,19 +1659,30 @@ public class PurpurWorldConfig {
|
|
witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay);
|
|
if (PurpurConfig.version < 8) {
|
|
double oldValue = getDouble("mobs.wither.max-health", witherMaxHealth);
|
|
+ set("mobs.wither.max_health", null);
|
|
set("mobs.wither.attributes.max-health", oldValue);
|
|
- set("mobs.wither.max-health", null);
|
|
+ } else if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.wither.attributes.max-health", witherMaxHealth);
|
|
+ set("mobs.wither.attributes.max-health", null);
|
|
+ set("mobs.wither.attributes.max_health", oldValue);
|
|
}
|
|
- witherMaxHealth = getDouble("mobs.wither.attributes.max-health", witherMaxHealth);
|
|
+ witherMaxHealth = getDouble("mobs.wither.attributes.max_health", witherMaxHealth);
|
|
}
|
|
|
|
public boolean witherSkeletonRidable = false;
|
|
public boolean witherSkeletonRidableInWater = false;
|
|
public boolean witherSkeletonTakesWitherDamage = false;
|
|
+ public double witherSkeletonMaxHealth = 20.0D;
|
|
private void witherSkeletonSettings() {
|
|
witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable);
|
|
witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater);
|
|
witherSkeletonTakesWitherDamage = getBoolean("mobs.wither_skeleton.takes-wither-damage", witherSkeletonTakesWitherDamage);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.wither_skeleton.attributes.max-health", witherSkeletonMaxHealth);
|
|
+ set("mobs.wither_skeleton.attributes.max-health", null);
|
|
+ set("mobs.wither_skeleton.attributes.max_health", oldValue);
|
|
+ }
|
|
+ witherSkeletonMaxHealth = getDouble("mobs.wither_skeleton.attributes.max_health", witherSkeletonMaxHealth);
|
|
}
|
|
|
|
public boolean wolfRidable = false;
|
|
@@ -1166,6 +1691,7 @@ public class PurpurWorldConfig {
|
|
public boolean wolfMilkCuresRabies = true;
|
|
public double wolfNaturalRabid = 0.0D;
|
|
public int wolfBreedingTicks = 6000;
|
|
+ public double wolfMaxHealth = 8.0D;
|
|
private void wolfSettings() {
|
|
wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable);
|
|
wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater);
|
|
@@ -1177,13 +1703,26 @@ 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);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.wolf.attributes.max-health", wolfMaxHealth);
|
|
+ set("mobs.wolf.attributes.max-health", null);
|
|
+ set("mobs.wolf.attributes.max_health", oldValue);
|
|
+ }
|
|
+ wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth);
|
|
}
|
|
|
|
public boolean zoglinRidable = false;
|
|
public boolean zoglinRidableInWater = false;
|
|
+ public double zoglinMaxHealth = 40.0D;
|
|
private void zoglinSettings() {
|
|
zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable);
|
|
zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.zoglin.attributes.max-health", zoglinMaxHealth);
|
|
+ set("mobs.zoglin.attributes.max-health", null);
|
|
+ set("mobs.zoglin.attributes.max_health", oldValue);
|
|
+ }
|
|
+ zoglinMaxHealth = getDouble("mobs.zoglin.attributes.max_health", zoglinMaxHealth);
|
|
}
|
|
|
|
public boolean zombieRidable = false;
|
|
@@ -1193,6 +1732,8 @@ public class PurpurWorldConfig {
|
|
public boolean zombieJockeyTryExistingChickens = true;
|
|
public boolean zombieAggressiveTowardsVillagerWhenLagging = true;
|
|
public EnumDifficulty zombieBreakDoorMinDifficulty = EnumDifficulty.HARD;
|
|
+ public double zombieMaxHealth = 20.0D;
|
|
+ public double zombieSpawnReinforcements = 0.1D;
|
|
private void zombieSettings() {
|
|
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
|
|
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
|
|
@@ -1205,15 +1746,40 @@ public class PurpurWorldConfig {
|
|
} catch (IllegalArgumentException ignore) {
|
|
zombieBreakDoorMinDifficulty = EnumDifficulty.HARD;
|
|
}
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.zombie.attributes.max-health", zombieMaxHealth);
|
|
+ set("mobs.zombie.attributes.max-health", null);
|
|
+ set("mobs.zombie.attributes.max_health", oldValue);
|
|
+ }
|
|
+ zombieMaxHealth = getDouble("mobs.zombie.attributes.max_health", zombieMaxHealth);
|
|
+ zombieSpawnReinforcements = getDouble("mobs.zombie.attributes.spawn_reinforcements", zombieSpawnReinforcements);
|
|
}
|
|
|
|
public boolean zombieHorseCanSwim = false;
|
|
public boolean zombieHorseRidableInWater = false;
|
|
public double zombieHorseSpawnChance = 0.0D;
|
|
+ public double zombieHorseMaxHealthMin = 15.0D;
|
|
+ public double zombieHorseMaxHealthMax = 15.0D;
|
|
+ public double zombieHorseJumpStrengthMin = 0.4D;
|
|
+ public double zombieHorseJumpStrengthMax = 1.0D;
|
|
+ public double zombieHorseMovementSpeedMin = 0.2D;
|
|
+ public double zombieHorseMovementSpeedMax = 0.2D;
|
|
private void zombieHorseSettings() {
|
|
zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim);
|
|
zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater);
|
|
zombieHorseSpawnChance = getDouble("mobs.zombie_horse.spawn-chance", zombieHorseSpawnChance);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.zombie_horse.attributes.max-health", zombieHorseMaxHealthMin);
|
|
+ set("mobs.zombie_horse.attributes.max-health", null);
|
|
+ set("mobs.zombie_horse.attributes.max_health.min", oldValue);
|
|
+ set("mobs.zombie_horse.attributes.max_health.max", oldValue);
|
|
+ }
|
|
+ zombieHorseMaxHealthMin = getDouble("mobs.zombie_horse.attributes.max_health.min", zombieHorseMaxHealthMin);
|
|
+ zombieHorseMaxHealthMax = getDouble("mobs.zombie_horse.attributes.max_health.max", zombieHorseMaxHealthMax);
|
|
+ zombieHorseJumpStrengthMin = getDouble("mobs.zombie_horse.attributes.jump_strength.min", zombieHorseJumpStrengthMin);
|
|
+ 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);
|
|
}
|
|
|
|
public boolean zombifiedPiglinRidable = false;
|
|
@@ -1222,6 +1788,8 @@ public class PurpurWorldConfig {
|
|
public double zombifiedPiglinJockeyChance = 0.05D;
|
|
public boolean zombifiedPiglinJockeyTryExistingChickens = true;
|
|
public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true;
|
|
+ public double zombifiedPiglinMaxHealth = 20.0D;
|
|
+ public double zombifiedPiglinSpawnReinforcements = 0.0D;
|
|
private void zombifiedPiglinSettings() {
|
|
zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable);
|
|
zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater);
|
|
@@ -1229,6 +1797,13 @@ 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);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.zombified_piglin.attributes.max-health", zombifiedPiglinMaxHealth);
|
|
+ set("mobs.zombified_piglin.attributes.max-health", null);
|
|
+ set("mobs.zombified_piglin.attributes.max_health", oldValue);
|
|
+ }
|
|
+ zombifiedPiglinMaxHealth = getDouble("mobs.zombified_piglin.attributes.max_health", zombifiedPiglinMaxHealth);
|
|
+ zombifiedPiglinSpawnReinforcements = getDouble("mobs.zombified_piglin.attributes.spawn_reinforcements", zombifiedPiglinSpawnReinforcements);
|
|
}
|
|
|
|
public boolean zombieVillagerRidable = false;
|
|
@@ -1236,11 +1811,20 @@ public class PurpurWorldConfig {
|
|
public boolean zombieVillagerJockeyOnlyBaby = true;
|
|
public double zombieVillagerJockeyChance = 0.05D;
|
|
public boolean zombieVillagerJockeyTryExistingChickens = true;
|
|
+ public double zombieVillagerMaxHealth = 20.0D;
|
|
+ public double zombieVillagerSpawnReinforcements = 0.1D;
|
|
private void zombieVillagerSettings() {
|
|
zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable);
|
|
zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater);
|
|
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);
|
|
+ if (PurpurConfig.version < 10) {
|
|
+ double oldValue = getDouble("mobs.zombie_villager.attributes.max-health", zombieVillagerMaxHealth);
|
|
+ set("mobs.zombie_villager.attributes.max-health", null);
|
|
+ set("mobs.zombie_villager.attributes.max_health", oldValue);
|
|
+ }
|
|
+ zombieVillagerMaxHealth = getDouble("mobs.zombie_villager.attributes.max_health", zombieVillagerMaxHealth);
|
|
+ zombieVillagerSpawnReinforcements = getDouble("mobs.zombie_villager.attributes.spawn_reinforcements", zombieVillagerSpawnReinforcements);
|
|
}
|
|
}
|