Skip to content

Commit

Permalink
stop mobs from targeting afk players (#564)
Browse files Browse the repository at this point in the history
Co-authored-by: Encode42 <me@encode42.dev>
  • Loading branch information
granny and encode42 committed Aug 9, 2021
1 parent 3c45110 commit fc79bca
Show file tree
Hide file tree
Showing 141 changed files with 502 additions and 484 deletions.
25 changes: 21 additions & 4 deletions patches/server/0012-AFK-API.patch
Expand Up @@ -5,7 +5,7 @@ Subject: [PATCH] AFK API


diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 871b006b99d3872bc8a5a238227a1624fc493eac..934d24bae4a5d6780434a0918c04dfffc12f2364 100644
index ce796a2cc083ffc5497cdb3bac9da87ea4ba94a7..ee9ce98995a3130938bd09d8d0ec4855e4419829 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1953,8 +1953,58 @@ public class ServerPlayer extends Player {
Expand Down Expand Up @@ -145,6 +145,21 @@ index a060cca08631fb42041e3a79a9abc422fe7757af..e7b11d1ba984ea14f0cdf8e84f9eaab4

private EntitySelector() {}
// Paper start
diff --git a/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java b/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java
index 3ee691d4caccbc1b3e0f52decb41d436ac0d08ec..dc0900dd6aee20cf1735bbb490b79d7e33468751 100644
--- a/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java
+++ b/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java
@@ -63,6 +63,10 @@ public class TargetingConditions {
return false;
} else if (this.selector != null && !this.selector.test(targetEntity)) {
return false;
+ // Purpur start
+ } else if (!targetEntity.level.purpurConfig.idleTimeoutTargetPlayer && targetEntity instanceof net.minecraft.server.level.ServerPlayer player && player.isAfk()) {
+ return false;
+ // Purpur end
} else {
if (baseEntity == null) {
if (this.isCombat && (!targetEntity.canBeSeenAsEnemy() || targetEntity.level.getDifficulty() == Difficulty.PEACEFUL)) {
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index 19b65c0d2fd96b4516c0717511a6bb02b2d66065..d761865eabfc67651b0a2a92ad35fc236886b61d 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
Expand Down Expand Up @@ -198,29 +213,31 @@ index d7ed125553530e28644f5fb9c09f7a06eb79199a..439143a24ad57cf749544164fe3cd131

private static void timingsSettings() {
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 3627b50dd3af5da225004cd3f8158fcbd30d8ea3..dc3dcf7946d2b31784b31d31c01670b81e626eed 100644
index 3627b50dd3af5da225004cd3f8158fcbd30d8ea3..58b2f795b7018ac92fd72369bbe58d2f2c266adc 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -93,6 +93,17 @@ public class PurpurWorldConfig {
@@ -93,6 +93,19 @@ public class PurpurWorldConfig {
return value.isEmpty() ? fallback : value;
}

+ public boolean idleTimeoutKick = true;
+ public boolean idleTimeoutTickNearbyEntities = true;
+ public boolean idleTimeoutCountAsSleeping = false;
+ public boolean idleTimeoutUpdateTabList = false;
+ public boolean idleTimeoutTargetPlayer = true;
+ private void playerSettings() {
+ idleTimeoutKick = getBoolean("gameplay-mechanics.player.idle-timeout.kick-if-idle", idleTimeoutKick);
+ idleTimeoutTickNearbyEntities = getBoolean("gameplay-mechanics.player.idle-timeout.tick-nearby-entities", idleTimeoutTickNearbyEntities);
+ idleTimeoutCountAsSleeping = getBoolean("gameplay-mechanics.player.idle-timeout.count-as-sleeping", idleTimeoutCountAsSleeping);
+ idleTimeoutUpdateTabList = getBoolean("gameplay-mechanics.player.idle-timeout.update-tab-list", idleTimeoutUpdateTabList);
+ idleTimeoutTargetPlayer = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer);
+ }
+
public boolean babiesAreRidable = true;
public boolean untamedTamablesAreRidable = true;
public boolean useNightVisionWhenRiding = false;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 5038bd2d0920ffc37a33d0c971cf28c330e58e06..5c9aa0e2e5a9e6a671fdc8d51f94529736b6dbbf 100644
index 7eed75ad1d5d7c62f35bdaed3766fcdb7aac2ce6..96c515506a2613d622afc28d902281c0b702c309 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -424,10 +424,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
Expand Down
7 changes: 4 additions & 3 deletions patches/server/0020-Player-invulnerabilities.patch
Expand Up @@ -121,20 +121,21 @@ index 1bbb3f0658628ec36cd9e177df3acc07ef107428..3f8dc9192287d6eb3f966e0d8d4fdee8
return entityplayer1;
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index dc3dcf7946d2b31784b31d31c01670b81e626eed..b1b2e96804eb9e736e634a75882dc4040e250991 100644
index 58b2f795b7018ac92fd72369bbe58d2f2c266adc..613dd74b460c0bd15fc8fd4e78380a81aef5f800 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -97,11 +97,15 @@ public class PurpurWorldConfig {
public boolean idleTimeoutTickNearbyEntities = true;
@@ -98,12 +98,16 @@ public class PurpurWorldConfig {
public boolean idleTimeoutCountAsSleeping = false;
public boolean idleTimeoutUpdateTabList = false;
public boolean idleTimeoutTargetPlayer = true;
+ public int playerSpawnInvulnerableTicks = 60;
+ public boolean playerInvulnerableWhileAcceptingResourcePack = false;
private void playerSettings() {
idleTimeoutKick = getBoolean("gameplay-mechanics.player.idle-timeout.kick-if-idle", idleTimeoutKick);
idleTimeoutTickNearbyEntities = getBoolean("gameplay-mechanics.player.idle-timeout.tick-nearby-entities", idleTimeoutTickNearbyEntities);
idleTimeoutCountAsSleeping = getBoolean("gameplay-mechanics.player.idle-timeout.count-as-sleeping", idleTimeoutCountAsSleeping);
idleTimeoutUpdateTabList = getBoolean("gameplay-mechanics.player.idle-timeout.update-tab-list", idleTimeoutUpdateTabList);
idleTimeoutTargetPlayer = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer);
+ playerSpawnInvulnerableTicks = getInt("gameplay-mechanics.player.spawn-invulnerable-ticks", playerSpawnInvulnerableTicks);
+ playerInvulnerableWhileAcceptingResourcePack = getBoolean("gameplay-mechanics.player.invulnerable-while-accepting-resource-pack", playerInvulnerableWhileAcceptingResourcePack);
}
Expand Down
6 changes: 3 additions & 3 deletions patches/server/0022-Configurable-villager-brain-ticks.patch
Expand Up @@ -36,10 +36,10 @@ index 1b70179dfd085c0d8ec3ee18af6d0528673ca4df..311b6c0ff37ce217af9391b50208fdc6
this.level.getProfiler().pop();
if (this.assignProfessionWhenSpawned) {
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index b1b2e96804eb9e736e634a75882dc4040e250991..b0a481aed5c03acdec86969acc6485ed25af3856 100644
index 613dd74b460c0bd15fc8fd4e78380a81aef5f800..a1d6a2235e6c8025c8f5516ccc69bae610eb9c72 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1069,6 +1069,8 @@ public class PurpurWorldConfig {
@@ -1071,6 +1071,8 @@ public class PurpurWorldConfig {
public boolean villagerRidable = false;
public boolean villagerRidableInWater = false;
public double villagerMaxHealth = 20.0D;
Expand All @@ -48,7 +48,7 @@ index b1b2e96804eb9e736e634a75882dc4040e250991..b0a481aed5c03acdec86969acc6485ed
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1078,6 +1080,8 @@ public class PurpurWorldConfig {
@@ -1080,6 +1082,8 @@ public class PurpurWorldConfig {
set("mobs.villager.attributes.max_health", oldValue);
}
villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth);
Expand Down
4 changes: 2 additions & 2 deletions patches/server/0024-Silk-touch-spawners.patch
Expand Up @@ -138,10 +138,10 @@ index b1e04d41de80971a7a1616beb0860226ecc25045..295ae3877b955978105b756055c21e63

return i;
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index b0a481aed5c03acdec86969acc6485ed25af3856..ff011f834b36f1c810bdb0a24e7bb635949fc243 100644
index a1d6a2235e6c8025c8f5516ccc69bae610eb9c72..c79cd57a169613d757a340270586611a935d04ae 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -108,6 +108,31 @@ public class PurpurWorldConfig {
@@ -110,6 +110,31 @@ public class PurpurWorldConfig {
playerInvulnerableWhileAcceptingResourcePack = getBoolean("gameplay-mechanics.player.invulnerable-while-accepting-resource-pack", playerInvulnerableWhileAcceptingResourcePack);
}

Expand Down
Expand Up @@ -50,10 +50,10 @@ index fdb3ab919a78221605257ae82bfd026346ce2ffb..e98fc3c235f9160f1928a8afb0d7991a
}
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index ff011f834b36f1c810bdb0a24e7bb635949fc243..b7ba610ddc7e6219292fda919ed86e008d5f775b 100644
index c79cd57a169613d757a340270586611a935d04ae..8ae4300efd411c71fe5aa17cce73faed81a4dca8 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1064,7 +1064,10 @@ public class PurpurWorldConfig {
@@ -1066,7 +1066,10 @@ public class PurpurWorldConfig {
public boolean turtleRidable = false;
public boolean turtleRidableInWater = false;
public double turtleMaxHealth = 30.0D;
Expand All @@ -65,7 +65,7 @@ index ff011f834b36f1c810bdb0a24e7bb635949fc243..b7ba610ddc7e6219292fda919ed86e00
turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable);
turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater);
if (PurpurConfig.version < 10) {
@@ -1073,6 +1076,9 @@ public class PurpurWorldConfig {
@@ -1075,6 +1078,9 @@ public class PurpurWorldConfig {
set("mobs.turtle.attributes.max_health", oldValue);
}
turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth);
Expand Down
6 changes: 3 additions & 3 deletions patches/server/0029-Giants-AI-settings.patch
Expand Up @@ -120,10 +120,10 @@ index a8ffdc8810152d77668aad7bad15a00c4d194d4c..91e28c414545d2bbb4e2f22c516d0f68
}
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index b7ba610ddc7e6219292fda919ed86e008d5f775b..172c9e282b295d16ef88d95bb6b621a1050dc684 100644
index 8ae4300efd411c71fe5aa17cce73faed81a4dca8..d43028de9ee9ad9d2ffa7ad09ab914ba6baa9da2 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -453,6 +453,10 @@ public class PurpurWorldConfig {
@@ -455,6 +455,10 @@ public class PurpurWorldConfig {
public double giantMovementSpeed = 0.5D;
public double giantAttackDamage = 50.0D;
public double giantMaxHealth = 100.0D;
Expand All @@ -134,7 +134,7 @@ index b7ba610ddc7e6219292fda919ed86e008d5f775b..172c9e282b295d16ef88d95bb6b621a1
private void giantSettings() {
giantRidable = getBoolean("mobs.giant.ridable", giantRidable);
giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater);
@@ -468,6 +472,10 @@ public class PurpurWorldConfig {
@@ -470,6 +474,10 @@ public class PurpurWorldConfig {
set("mobs.giant.attributes.max_health", oldValue);
}
giantMaxHealth = getDouble("mobs.giant.attributes.max_health", giantMaxHealth);
Expand Down
6 changes: 3 additions & 3 deletions patches/server/0030-Zombie-horse-naturally-spawn.patch
Expand Up @@ -28,18 +28,18 @@ index 29b841462037fa97f72971c490b617d18be53160..fe963c666488a8a3463f855b0c87eee9
entityhorseskeleton.setPos((double) blockposition.getX(), (double) blockposition.getY(), (double) blockposition.getZ());
this.addEntity(entityhorseskeleton, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.LIGHTNING); // CraftBukkit
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 172c9e282b295d16ef88d95bb6b621a1050dc684..8462e9221c136cda32f0fe2471d851ceaa08b721 100644
index d43028de9ee9ad9d2ffa7ad09ab914ba6baa9da2..838453200e76534768c4fdfa6066999fa2735349 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1251,6 +1251,7 @@ public class PurpurWorldConfig {
@@ -1253,6 +1253,7 @@ public class PurpurWorldConfig {
public double zombieHorseJumpStrengthMax = 1.0D;
public double zombieHorseMovementSpeedMin = 0.2D;
public double zombieHorseMovementSpeedMax = 0.2D;
+ public double zombieHorseSpawnChance = 0.0D;
private void zombieHorseSettings() {
zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater);
zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim);
@@ -1266,6 +1267,7 @@ public class PurpurWorldConfig {
@@ -1268,6 +1269,7 @@ public class PurpurWorldConfig {
zombieHorseJumpStrengthMax = getDouble("mobs.zombie_horse.attributes.jump_strength.max", zombieHorseJumpStrengthMax);
zombieHorseMovementSpeedMin = getDouble("mobs.zombie_horse.attributes.movement_speed.min", zombieHorseMovementSpeedMin);
zombieHorseMovementSpeedMax = getDouble("mobs.zombie_horse.attributes.movement_speed.max", zombieHorseMovementSpeedMax);
Expand Down
6 changes: 3 additions & 3 deletions patches/server/0031-Charged-creeper-naturally-spawn.patch
Expand Up @@ -24,18 +24,18 @@ index b71a6af3c2d1ca2a946b23efb11b0e794840cf25..b2b3630a90c685b0a692efb9bf8bb111

@Override
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 8462e9221c136cda32f0fe2471d851ceaa08b721..b1d8f125e873793cc1ef616fb27e22329e2ad14f 100644
index 838453200e76534768c4fdfa6066999fa2735349..9010b44f1625ad6dd2a26aec8690297d97e86535 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -275,6 +275,7 @@ public class PurpurWorldConfig {
@@ -277,6 +277,7 @@ public class PurpurWorldConfig {
public boolean creeperRidable = false;
public boolean creeperRidableInWater = false;
public double creeperMaxHealth = 20.0D;
+ public double creeperChargedChance = 0.0D;
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -284,6 +285,7 @@ public class PurpurWorldConfig {
@@ -286,6 +287,7 @@ public class PurpurWorldConfig {
set("mobs.creeper.attributes.max_health", oldValue);
}
creeperMaxHealth = getDouble("mobs.creeper.attributes.max_health", creeperMaxHealth);
Expand Down
Expand Up @@ -38,10 +38,10 @@ index 587feda351efae19407cb9f23c6c1d42d5ed0cc9..e0ba1ef404c9f8ba1eae563b733d10d9
int i = this.random.nextInt(100);

diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index b1d8f125e873793cc1ef616fb27e22329e2ad14f..3e321853052a888e058cb02c5fb8ad430db24fcd 100644
index 9010b44f1625ad6dd2a26aec8690297d97e86535..6d5857703c17d3ce0ab068ac68ece962ed832d48 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -829,6 +829,8 @@ public class PurpurWorldConfig {
@@ -831,6 +831,8 @@ public class PurpurWorldConfig {
public boolean rabbitRidable = false;
public boolean rabbitRidableInWater = false;
public double rabbitMaxHealth = 3.0D;
Expand All @@ -50,7 +50,7 @@ index b1d8f125e873793cc1ef616fb27e22329e2ad14f..3e321853052a888e058cb02c5fb8ad43
private void rabbitSettings() {
rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable);
rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater);
@@ -838,6 +840,8 @@ public class PurpurWorldConfig {
@@ -840,6 +842,8 @@ public class PurpurWorldConfig {
set("mobs.rabbit.attributes.max_health", oldValue);
}
rabbitMaxHealth = getDouble("mobs.rabbit.attributes.max_health", rabbitMaxHealth);
Expand Down
6 changes: 3 additions & 3 deletions patches/server/0035-Tulips-change-fox-type.patch
Expand Up @@ -75,18 +75,18 @@ index 80749df5d00df415a1b9e7c0e8586625b6453ffb..406b6ed8084c18da1062d8e8049bdfff
// Paper start - Cancellable death event
protected org.bukkit.event.entity.EntityDeathEvent dropAllDeathLoot(DamageSource source) {
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 3e321853052a888e058cb02c5fb8ad430db24fcd..27cb366bf8c16bd806838e73d6f555d1de113599 100644
index 6d5857703c17d3ce0ab068ac68ece962ed832d48..3a985697430f7c113fd3a292f8748809ed5519ae 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -423,6 +423,7 @@ public class PurpurWorldConfig {
@@ -425,6 +425,7 @@ public class PurpurWorldConfig {
public boolean foxRidable = false;
public boolean foxRidableInWater = false;
public double foxMaxHealth = 10.0D;
+ public boolean foxTypeChangesWithTulips = false;
private void foxSettings() {
foxRidable = getBoolean("mobs.fox.ridable", foxRidable);
foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater);
@@ -432,6 +433,7 @@ public class PurpurWorldConfig {
@@ -434,6 +435,7 @@ public class PurpurWorldConfig {
set("mobs.fox.attributes.max_health", oldValue);
}
foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth);
Expand Down
6 changes: 3 additions & 3 deletions patches/server/0036-Breedable-Polar-Bears.patch
Expand Up @@ -59,10 +59,10 @@ index 18780fb268cabb47bb0deb84c44520831c1a762b..d39c88af3882a09ff1a06f9052d7b9b8
this.goalSelector.addGoal(5, new RandomStrollGoal(this, 1.0D));
this.goalSelector.addGoal(6, new LookAtPlayerGoal(this, Player.class, 6.0F));
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 27cb366bf8c16bd806838e73d6f555d1de113599..ab2613440645388949b17e69d765ba3b2b48028a 100644
index 3a985697430f7c113fd3a292f8748809ed5519ae..f397063f5772a60181f1517f05968245f6f75557 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -805,6 +805,8 @@ public class PurpurWorldConfig {
@@ -807,6 +807,8 @@ public class PurpurWorldConfig {
public boolean polarBearRidable = false;
public boolean polarBearRidableInWater = false;
public double polarBearMaxHealth = 30.0D;
Expand All @@ -71,7 +71,7 @@ index 27cb366bf8c16bd806838e73d6f555d1de113599..ab2613440645388949b17e69d765ba3b
private void polarBearSettings() {
polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable);
polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater);
@@ -814,6 +816,9 @@ public class PurpurWorldConfig {
@@ -816,6 +818,9 @@ public class PurpurWorldConfig {
set("mobs.polar_bear.attributes.max_health", oldValue);
}
polarBearMaxHealth = getDouble("mobs.polar_bear.attributes.max_health", polarBearMaxHealth);
Expand Down

0 comments on commit fc79bca

Please sign in to comment.