adds ridable option to zombie horse and skeleton horse, fixes #1458

only set as tamable if already tamed or if ridable option is enabled
This commit is contained in:
granny
2023-11-13 23:41:37 -08:00
parent 1adf78b91a
commit 2a38801aeb
41 changed files with 309 additions and 301 deletions

View File

@@ -426,7 +426,7 @@ index abbeb305b2d09e9c4c02ade603adac5ceb34bdd0..1de48560ac5a1db8845c98c812b2e9f9
protected SoundEvent getAmbientSound() {
return SoundEvents.MULE_AMBIENT;
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
index 8ffba7c368f936ea5cdfc46c5fa76c3feb63e1ac..bd83a2b82908d0beb91bd2937e263d6681a691f6 100644
index cc8813c572618700981403d513f30b8a06e4c49e..e618d3b77cafeaee22b4140449703ca80bdd4c92 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
@@ -53,6 +53,11 @@ public class SkeletonHorse extends AbstractHorse {
@@ -458,7 +458,7 @@ index 4abb9d5fedf63eba9dc3f716d44ea11806607af0..3632fcb124be8cf77d9bebf7b861a481
public boolean isTraderLlama() {
return true;
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java
index 2e6b55a01e022252245c16ed310920bcba072975..fba4eec4490e389b8b102d40542b9340d8ac559e 100644
index ebfd54d835cdac3f95c926b3e2e10db6170b4dd7..93c44b8cc86ca4fe0c70855d4eb71411c5a42846 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java
@@ -49,6 +49,11 @@ public class ZombieHorse extends AbstractHorse {
@@ -522,7 +522,7 @@ index 22788892f7286f3fa6b40059b2bedaf0c6ec5ef3..80f91a11c04763c1c9ed2bd242b88b5a
public boolean canBeLeashed(Player player) {
return !this.isLeashed();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index ff50c24f3a6e2dd0eb5d4e23cc9a38647e2c1194..48de43f61f90e2610e04d04803b374cead07f655 100644
index 7ebc466f72e61e11e73ab20a98f72d16cea7c077..569a09a73c9d800e78a77c430494292457453ab1 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -501,10 +501,12 @@ public class PurpurWorldConfig {
@@ -851,7 +851,7 @@ index ff50c24f3a6e2dd0eb5d4e23cc9a38647e2c1194..48de43f61f90e2610e04d04803b374ce
}
public boolean shulkerRidable = false;
@@ -1565,11 +1607,13 @@ public class PurpurWorldConfig {
@@ -1567,11 +1609,13 @@ public class PurpurWorldConfig {
public boolean snifferRidableInWater = true;
public boolean snifferControllable = true;
public double snifferMaxHealth = 14.0D;
@@ -865,7 +865,7 @@ index ff50c24f3a6e2dd0eb5d4e23cc9a38647e2c1194..48de43f61f90e2610e04d04803b374ce
}
public boolean squidRidable = false;
@@ -1628,6 +1672,7 @@ public class PurpurWorldConfig {
@@ -1630,6 +1674,7 @@ public class PurpurWorldConfig {
public boolean striderRidableInWater = false;
public boolean striderControllable = true;
public double striderMaxHealth = 20.0D;
@@ -873,7 +873,7 @@ index ff50c24f3a6e2dd0eb5d4e23cc9a38647e2c1194..48de43f61f90e2610e04d04803b374ce
private void striderSettings() {
striderRidable = getBoolean("mobs.strider.ridable", striderRidable);
striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater);
@@ -1638,6 +1683,7 @@ public class PurpurWorldConfig {
@@ -1640,6 +1685,7 @@ public class PurpurWorldConfig {
set("mobs.strider.attributes.max_health", oldValue);
}
striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth);
@@ -881,7 +881,7 @@ index ff50c24f3a6e2dd0eb5d4e23cc9a38647e2c1194..48de43f61f90e2610e04d04803b374ce
}
public boolean tadpoleRidable = false;
@@ -1658,6 +1704,7 @@ public class PurpurWorldConfig {
@@ -1660,6 +1706,7 @@ public class PurpurWorldConfig {
public double traderLlamaJumpStrengthMax = 0.5D;
public double traderLlamaMovementSpeedMin = 0.175D;
public double traderLlamaMovementSpeedMax = 0.175D;
@@ -889,7 +889,7 @@ index ff50c24f3a6e2dd0eb5d4e23cc9a38647e2c1194..48de43f61f90e2610e04d04803b374ce
private void traderLlamaSettings() {
traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable);
traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater);
@@ -1675,6 +1722,7 @@ public class PurpurWorldConfig {
@@ -1677,6 +1724,7 @@ public class PurpurWorldConfig {
traderLlamaJumpStrengthMax = getDouble("mobs.trader_llama.attributes.jump_strength.max", traderLlamaJumpStrengthMax);
traderLlamaMovementSpeedMin = getDouble("mobs.trader_llama.attributes.movement_speed.min", traderLlamaMovementSpeedMin);
traderLlamaMovementSpeedMax = getDouble("mobs.trader_llama.attributes.movement_speed.max", traderLlamaMovementSpeedMax);
@@ -897,7 +897,7 @@ index ff50c24f3a6e2dd0eb5d4e23cc9a38647e2c1194..48de43f61f90e2610e04d04803b374ce
}
public boolean tropicalFishRidable = false;
@@ -1695,6 +1743,7 @@ public class PurpurWorldConfig {
@@ -1697,6 +1745,7 @@ public class PurpurWorldConfig {
public boolean turtleRidableInWater = true;
public boolean turtleControllable = true;
public double turtleMaxHealth = 30.0D;
@@ -905,7 +905,7 @@ index ff50c24f3a6e2dd0eb5d4e23cc9a38647e2c1194..48de43f61f90e2610e04d04803b374ce
private void turtleSettings() {
turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable);
turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater);
@@ -1705,6 +1754,7 @@ public class PurpurWorldConfig {
@@ -1707,6 +1756,7 @@ public class PurpurWorldConfig {
set("mobs.turtle.attributes.max_health", oldValue);
}
turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth);
@@ -913,7 +913,7 @@ index ff50c24f3a6e2dd0eb5d4e23cc9a38647e2c1194..48de43f61f90e2610e04d04803b374ce
}
public boolean vexRidable = false;
@@ -1732,6 +1782,7 @@ public class PurpurWorldConfig {
@@ -1734,6 +1784,7 @@ public class PurpurWorldConfig {
public boolean villagerFollowEmeraldBlock = false;
public boolean villagerCanBeLeashed = false;
public boolean villagerCanBreed = true;
@@ -921,7 +921,7 @@ index ff50c24f3a6e2dd0eb5d4e23cc9a38647e2c1194..48de43f61f90e2610e04d04803b374ce
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1745,6 +1796,7 @@ public class PurpurWorldConfig {
@@ -1747,6 +1798,7 @@ public class PurpurWorldConfig {
villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock);
villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed);
villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed);
@@ -929,7 +929,7 @@ index ff50c24f3a6e2dd0eb5d4e23cc9a38647e2c1194..48de43f61f90e2610e04d04803b374ce
}
public boolean vindicatorRidable = false;
@@ -1856,6 +1908,7 @@ public class PurpurWorldConfig {
@@ -1858,6 +1910,7 @@ public class PurpurWorldConfig {
public boolean wolfRidableInWater = true;
public boolean wolfControllable = true;
public double wolfMaxHealth = 8.0D;
@@ -937,7 +937,7 @@ index ff50c24f3a6e2dd0eb5d4e23cc9a38647e2c1194..48de43f61f90e2610e04d04803b374ce
private void wolfSettings() {
wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable);
wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater);
@@ -1866,6 +1919,7 @@ public class PurpurWorldConfig {
@@ -1868,6 +1921,7 @@ public class PurpurWorldConfig {
set("mobs.wolf.attributes.max_health", oldValue);
}
wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth);