Resolve #286 - Add config and API for item immunity to lightning

This commit is contained in:
BillyGalbreath
2021-05-03 13:32:36 -05:00
parent a86555bb5d
commit 83665826a9
98 changed files with 362 additions and 359 deletions

View File

@@ -1407,10 +1407,10 @@ index 90cbef7fe8803295f82bddd6709fdf303aedcaba..b84916c0c58fd208ef5547299f8db846
@Nullable
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa507ad497ec 100644
index 0666c523f82b9083ed8e81570faa923bbeb00ab8..f0f8165c51c17855d0c719d47bea194b80ff7847 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -532,30 +532,58 @@ public class PurpurWorldConfig {
@@ -542,30 +542,58 @@ public class PurpurWorldConfig {
public boolean batRidable = false;
public boolean batRidableInWater = false;
public double batMaxY = 256D;
@@ -1469,7 +1469,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50
}
public boolean catRidable = false;
@@ -564,6 +592,7 @@ public class PurpurWorldConfig {
@@ -574,6 +602,7 @@ public class PurpurWorldConfig {
public int catSpawnSwampHutScanRange = 16;
public int catSpawnVillageScanRange = 48;
public int catBreedingTicks = 6000;
@@ -1477,7 +1477,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50
private void catSettings() {
catRidable = getBoolean("mobs.cat.ridable", catRidable);
catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater);
@@ -571,51 +600,92 @@ public class PurpurWorldConfig {
@@ -581,51 +610,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);
@@ -1570,7 +1570,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50
}
public boolean dolphinRidable = false;
@@ -623,19 +693,45 @@ public class PurpurWorldConfig {
@@ -633,19 +703,45 @@ public class PurpurWorldConfig {
public float dolphinSpitSpeed = 1.0F;
public float dolphinSpitDamage = 2.0F;
public boolean dolphinDisableTreasureSearching = false;
@@ -1616,7 +1616,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50
}
public boolean drownedRidable = false;
@@ -643,73 +739,135 @@ public class PurpurWorldConfig {
@@ -653,73 +749,135 @@ public class PurpurWorldConfig {
public boolean drownedJockeyOnlyBaby = true;
public double drownedJockeyChance = 0.05D;
public boolean drownedJockeyTryExistingChickens = true;
@@ -1752,7 +1752,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50
}
public boolean giantRidable = false;
@@ -732,31 +890,68 @@ public class PurpurWorldConfig {
@@ -742,31 +900,68 @@ public class PurpurWorldConfig {
giantHaveHostileAI = getBoolean("mobs.giant.have-hostile-ai", giantHaveHostileAI);
if (PurpurConfig.version < 8) {
double oldValue = getDouble("mobs.giant.max-health", giantMaxHealth);
@@ -1823,7 +1823,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50
}
public boolean huskRidable = false;
@@ -764,12 +959,21 @@ public class PurpurWorldConfig {
@@ -774,12 +969,21 @@ public class PurpurWorldConfig {
public boolean huskJockeyOnlyBaby = true;
public double huskJockeyChance = 0.05D;
public boolean huskJockeyTryExistingChickens = true;
@@ -1845,7 +1845,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50
}
public boolean illusionerRidable = false;
@@ -784,85 +988,188 @@ public class PurpurWorldConfig {
@@ -794,85 +998,188 @@ public class PurpurWorldConfig {
illusionerFollowRange = getDouble("mobs.illusioner.follow-range", illusionerFollowRange);
if (PurpurConfig.version < 8) {
double oldValue = getDouble("mobs.illusioner.max-health", illusionerMaxHealth);
@@ -2036,7 +2036,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50
}
public boolean phantomRidable = false;
@@ -889,6 +1196,7 @@ public class PurpurWorldConfig {
@@ -899,6 +1206,7 @@ public class PurpurWorldConfig {
public boolean phantomIgnorePlayersWithTorch = false;
public boolean phantomBurnInDaylight = true;
public boolean phantomAllowGriefing = false;
@@ -2044,7 +2044,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -914,38 +1222,72 @@ public class PurpurWorldConfig {
@@ -924,38 +1232,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);
@@ -2117,7 +2117,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50
}
public boolean polarBearRidable = false;
@@ -953,6 +1295,7 @@ public class PurpurWorldConfig {
@@ -963,6 +1305,7 @@ public class PurpurWorldConfig {
public String polarBearBreedableItemString = "";
public Item polarBearBreedableItem = null;
public int polarBearBreedingTicks = 6000;
@@ -2125,7 +2125,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50
private void polarBearSettings() {
polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable);
polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater);
@@ -960,11 +1303,24 @@ public class PurpurWorldConfig {
@@ -970,11 +1313,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);
@@ -2150,7 +2150,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50
}
public boolean rabbitRidable = false;
@@ -972,68 +1328,144 @@ public class PurpurWorldConfig {
@@ -982,68 +1338,144 @@ public class PurpurWorldConfig {
public double rabbitNaturalToast = 0.0D;
public double rabbitNaturalKiller = 0.0D;
public int rabbitBreedingTicks = 6000;
@@ -2295,7 +2295,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50
}
public boolean snowGolemRidable = false;
@@ -1045,6 +1477,7 @@ public class PurpurWorldConfig {
@@ -1055,6 +1487,7 @@ public class PurpurWorldConfig {
public int snowGolemSnowBallMax = 20;
public float snowGolemSnowBallModifier = 10.0F;
public double snowGolemAttackDistance = 1.25D;
@@ -2303,7 +2303,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50
private void snowGolemSettings() {
snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable);
snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater);
@@ -1055,63 +1488,118 @@ public class PurpurWorldConfig {
@@ -1065,63 +1498,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);
@@ -2422,7 +2422,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50
}
public boolean villagerRidable = false;
@@ -1129,6 +1617,7 @@ public class PurpurWorldConfig {
@@ -1139,6 +1627,7 @@ public class PurpurWorldConfig {
public int villagerLobotomizeCheck = 60;
public boolean villagerClericsFarmWarts = false;
public boolean villagerClericFarmersThrowWarts = true;
@@ -2430,7 +2430,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1150,33 +1639,60 @@ public class PurpurWorldConfig {
@@ -1160,33 +1649,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);
@@ -2491,7 +2491,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50
}
public boolean witherRidable = false;
@@ -1193,19 +1709,30 @@ public class PurpurWorldConfig {
@@ -1203,19 +1719,30 @@ public class PurpurWorldConfig {
witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay);
if (PurpurConfig.version < 8) {
double oldValue = getDouble("mobs.wither.max-health", witherMaxHealth);
@@ -2524,7 +2524,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50
}
public boolean wolfRidable = false;
@@ -1214,6 +1741,7 @@ public class PurpurWorldConfig {
@@ -1224,6 +1751,7 @@ public class PurpurWorldConfig {
public boolean wolfMilkCuresRabies = true;
public double wolfNaturalRabid = 0.0D;
public int wolfBreedingTicks = 6000;
@@ -2532,7 +2532,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50
private void wolfSettings() {
wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable);
wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater);
@@ -1225,13 +1753,26 @@ public class PurpurWorldConfig {
@@ -1235,13 +1763,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);
@@ -2559,7 +2559,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50
}
public boolean zombieRidable = false;
@@ -1241,6 +1782,8 @@ public class PurpurWorldConfig {
@@ -1251,6 +1792,8 @@ public class PurpurWorldConfig {
public boolean zombieJockeyTryExistingChickens = true;
public boolean zombieAggressiveTowardsVillagerWhenLagging = true;
public EnumDifficulty zombieBreakDoorMinDifficulty = EnumDifficulty.HARD;
@@ -2568,7 +2568,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -1253,15 +1796,40 @@ public class PurpurWorldConfig {
@@ -1263,15 +1806,40 @@ public class PurpurWorldConfig {
} catch (IllegalArgumentException ignore) {
zombieBreakDoorMinDifficulty = EnumDifficulty.HARD;
}
@@ -2609,7 +2609,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50
}
public boolean zombifiedPiglinRidable = false;
@@ -1270,6 +1838,8 @@ public class PurpurWorldConfig {
@@ -1280,6 +1848,8 @@ public class PurpurWorldConfig {
public double zombifiedPiglinJockeyChance = 0.05D;
public boolean zombifiedPiglinJockeyTryExistingChickens = true;
public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true;
@@ -2618,7 +2618,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50
private void zombifiedPiglinSettings() {
zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable);
zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater);
@@ -1277,6 +1847,13 @@ public class PurpurWorldConfig {
@@ -1287,6 +1857,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);
@@ -2632,7 +2632,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50
}
public boolean zombieVillagerRidable = false;
@@ -1284,11 +1861,20 @@ public class PurpurWorldConfig {
@@ -1294,11 +1871,20 @@ public class PurpurWorldConfig {
public boolean zombieVillagerJockeyOnlyBaby = true;
public double zombieVillagerJockeyChance = 0.05D;
public boolean zombieVillagerJockeyTryExistingChickens = true;