diff --git a/patches/server/0003-Purpur-config-files.patch b/patches/server/0003-Purpur-config-files.patch index f5dd03ea3..a7237dbac 100644 --- a/patches/server/0003-Purpur-config-files.patch +++ b/patches/server/0003-Purpur-config-files.patch @@ -100,7 +100,7 @@ index 0ed5e15d3175ee5d145730ff8f506ffb959e5e6c..6e67ea018cd6f362bba104f542c52438 io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // init PaperBrigadierProvider io.papermc.paper.util.StacktraceDeobfuscator.INSTANCE.getClass(); // load mappings for stacktrace deobf diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 8196be52af4a5ea1bf280d646dc2db15d9ad6ea2..beb845128b0ef8eef254afa7141af280f391ade6 100644 +index 38753e10b1597a2f3bd2cde208c6e30b26a03b43..70f2b5f41550cc73a520ae1637fac5797ea135f9 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -168,6 +168,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -285,10 +285,10 @@ index 0000000000000000000000000000000000000000..fcf5f32c32eb17f7580b3c8c9190e367 +} diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java new file mode 100644 -index 0000000000000000000000000000000000000000..cde76bbcd50993de8b36f8a8fa168bed16708ec0 +index 0000000000000000000000000000000000000000..dd8b29f3aa58c5c7302ec5e93bef4190da913e3a --- /dev/null +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -0,0 +1,92 @@ +@@ -0,0 +1,95 @@ +package net.pl3x.purpur; + +import com.tuinity.tuinity.config.TuinityConfig; @@ -302,7 +302,10 @@ index 0000000000000000000000000000000000000000..cde76bbcd50993de8b36f8a8fa168bed +import net.minecraft.world.level.Explosion; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; -+import net.pl3x.purpur.tool.Tilling; ++import net.pl3x.purpur.tool.Strippable; ++import net.pl3x.purpur.tool.Tillable; ++import net.pl3x.purpur.tool.Waxable; ++import net.pl3x.purpur.tool.Weatherable; +import org.apache.commons.lang.BooleanUtils; +import org.bukkit.World; +import org.bukkit.configuration.ConfigurationSection; diff --git a/patches/server/0005-Ridables.patch b/patches/server/0005-Ridables.patch index 028f5f40a..fda76ff21 100644 --- a/patches/server/0005-Ridables.patch +++ b/patches/server/0005-Ridables.patch @@ -4540,10 +4540,10 @@ index fcf5f32c32eb17f7580b3c8c9190e36725f793ad..d92812cb334b590b728afb828dae61da + } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index cde76bbcd50993de8b36f8a8fa168bed16708ec0..0c11be83f0da7d05efbd2e277c5f5ae2251a1540 100644 +index dd8b29f3aa58c5c7302ec5e93bef4190da913e3a..9012e278f23466cb052391d60c55179fccaa14ea 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -89,4 +89,532 @@ public class PurpurWorldConfig { +@@ -92,4 +92,532 @@ public class PurpurWorldConfig { final Map value = PurpurConfig.getMap("world-settings." + worldName + "." + path, null); return value.isEmpty() ? fallback : value; } diff --git a/patches/server/0006-Configurable-entity-base-attributes.patch b/patches/server/0006-Configurable-entity-base-attributes.patch index 346e24e31..3a9936ba5 100644 --- a/patches/server/0006-Configurable-entity-base-attributes.patch +++ b/patches/server/0006-Configurable-entity-base-attributes.patch @@ -1422,10 +1422,10 @@ index d6c31596e21041a124a263054ccb6447829eccdd..d2588a91b55aebdecf8e1644498111cc @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 0c11be83f0da7d05efbd2e277c5f5ae2251a1540..4da9ee5050eb708427e304ad0fd71ca3ab557b3e 100644 +index 9012e278f23466cb052391d60c55179fccaa14ea..a8cdd158a8207c875ed94f550dc8f5d7e05f472b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -100,257 +100,573 @@ public class PurpurWorldConfig { +@@ -103,257 +103,573 @@ public class PurpurWorldConfig { } public boolean axolotlRidable = false; @@ -1999,7 +1999,7 @@ index 0c11be83f0da7d05efbd2e277c5f5ae2251a1540..4da9ee5050eb708427e304ad0fd71ca3 } public boolean phantomRidable = false; -@@ -359,6 +675,7 @@ public class PurpurWorldConfig { +@@ -362,6 +678,7 @@ public class PurpurWorldConfig { public float phantomFlameDamage = 1.0F; public int phantomFlameFireTime = 8; public boolean phantomAllowGriefing = false; @@ -2007,7 +2007,7 @@ index 0c11be83f0da7d05efbd2e277c5f5ae2251a1540..4da9ee5050eb708427e304ad0fd71ca3 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -366,255 +683,559 @@ public class PurpurWorldConfig { +@@ -369,255 +686,559 @@ public class PurpurWorldConfig { phantomFlameDamage = (float) getDouble("mobs.phantom.flames.damage", phantomFlameDamage); phantomFlameFireTime = getInt("mobs.phantom.flames.fire-time", phantomFlameFireTime); phantomAllowGriefing = getBoolean("mobs.phantom.allow-griefing", phantomAllowGriefing); diff --git a/patches/server/0011-AFK-API.patch b/patches/server/0011-AFK-API.patch index c46202d4a..c6e6a215a 100644 --- a/patches/server/0011-AFK-API.patch +++ b/patches/server/0011-AFK-API.patch @@ -198,10 +198,10 @@ index 0373f3fb256d796c090a3eddcf6e2be0ce25ec16..d35285b58b7141f2e9f438331faf566d public static String timingsUrl = "https://timings.pl3x.net"; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 4da9ee5050eb708427e304ad0fd71ca3ab557b3e..12e3804b2abd61b32a810162bef5e087a7c1d3c6 100644 +index a8cdd158a8207c875ed94f550dc8f5d7e05f472b..ec0cef53349bc20e936adbbe6138145bcaca945d 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -90,6 +90,17 @@ public class PurpurWorldConfig { +@@ -93,6 +93,17 @@ public class PurpurWorldConfig { return value.isEmpty() ? fallback : value; } diff --git a/patches/server/0019-Player-invulnerabilities.patch b/patches/server/0019-Player-invulnerabilities.patch index 441bd514a..a91225df0 100644 --- a/patches/server/0019-Player-invulnerabilities.patch +++ b/patches/server/0019-Player-invulnerabilities.patch @@ -91,10 +91,10 @@ index ec98fb6d4a407d5be8faf64db0d73e935e16623d..3961f1908876206b86126a672b691bfc return entityplayer1; } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 12e3804b2abd61b32a810162bef5e087a7c1d3c6..f3f40ac229cbb48f536423b90b176f501ff0b907 100644 +index ec0cef53349bc20e936adbbe6138145bcaca945d..578e1685e6b5e2febae463d836071aa2b8144200 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -94,11 +94,15 @@ public class PurpurWorldConfig { +@@ -97,11 +97,15 @@ public class PurpurWorldConfig { public boolean idleTimeoutTickNearbyEntities = true; public boolean idleTimeoutCountAsSleeping = false; public boolean idleTimeoutUpdateTabList = false; diff --git a/patches/server/0021-Configurable-villager-brain-ticks.patch b/patches/server/0021-Configurable-villager-brain-ticks.patch index 0388f70ce..5f33df4ca 100644 --- a/patches/server/0021-Configurable-villager-brain-ticks.patch +++ b/patches/server/0021-Configurable-villager-brain-ticks.patch @@ -36,10 +36,10 @@ index b7b25813aa00a49fd83edfbade27fa03d7fcd7c5..ed96780ededea9ae98bc0fb60d250587 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 f3f40ac229cbb48f536423b90b176f501ff0b907..c6e5a08c7770255463ae6c3f50af5d1a2a544251 100644 +index 578e1685e6b5e2febae463d836071aa2b8144200..6c1fb8ac40e8d90714e397d1985498ad650e24b0 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1066,6 +1066,8 @@ public class PurpurWorldConfig { +@@ -1069,6 +1069,8 @@ public class PurpurWorldConfig { public boolean villagerRidable = false; public boolean villagerRidableInWater = false; public double villagerMaxHealth = 20.0D; @@ -48,7 +48,7 @@ index f3f40ac229cbb48f536423b90b176f501ff0b907..c6e5a08c7770255463ae6c3f50af5d1a private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1075,6 +1077,8 @@ public class PurpurWorldConfig { +@@ -1078,6 +1080,8 @@ public class PurpurWorldConfig { set("mobs.villager.attributes.max_health", oldValue); } villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth); diff --git a/patches/server/0023-Silk-touch-spawners.patch b/patches/server/0023-Silk-touch-spawners.patch index 9e96defa6..2fbfea269 100644 --- a/patches/server/0023-Silk-touch-spawners.patch +++ b/patches/server/0023-Silk-touch-spawners.patch @@ -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 c6e5a08c7770255463ae6c3f50af5d1a2a544251..84d5bf71d6eff746df8b5acdd876609411e31d30 100644 +index 6c1fb8ac40e8d90714e397d1985498ad650e24b0..a96d7cad39076b08ee43849d3014e71d1c3d4a82 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -105,6 +105,31 @@ public class PurpurWorldConfig { +@@ -108,6 +108,31 @@ public class PurpurWorldConfig { playerInvulnerableWhileAcceptingResourcePack = getBoolean("gameplay-mechanics.player.invulnerable-while-accepting-resource-pack", playerInvulnerableWhileAcceptingResourcePack); } diff --git a/patches/server/0024-MC-168772-Fix-Add-turtle-egg-block-options.patch b/patches/server/0024-MC-168772-Fix-Add-turtle-egg-block-options.patch index d474cafd7..961914283 100644 --- a/patches/server/0024-MC-168772-Fix-Add-turtle-egg-block-options.patch +++ b/patches/server/0024-MC-168772-Fix-Add-turtle-egg-block-options.patch @@ -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 84d5bf71d6eff746df8b5acdd876609411e31d30..aa511364fc48aa78b38a730ed8f0c3fb5453759c 100644 +index a96d7cad39076b08ee43849d3014e71d1c3d4a82..2f5e6325398b2933c751027382593e3e3be17a70 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1061,7 +1061,10 @@ public class PurpurWorldConfig { +@@ -1064,7 +1064,10 @@ public class PurpurWorldConfig { public boolean turtleRidable = false; public boolean turtleRidableInWater = false; public double turtleMaxHealth = 30.0D; @@ -65,7 +65,7 @@ index 84d5bf71d6eff746df8b5acdd876609411e31d30..aa511364fc48aa78b38a730ed8f0c3fb turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1070,6 +1073,9 @@ public class PurpurWorldConfig { +@@ -1073,6 +1076,9 @@ public class PurpurWorldConfig { set("mobs.turtle.attributes.max_health", oldValue); } turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth); diff --git a/patches/server/0028-Giants-AI-settings.patch b/patches/server/0028-Giants-AI-settings.patch index 3d7c64845..00c3a4689 100644 --- a/patches/server/0028-Giants-AI-settings.patch +++ b/patches/server/0028-Giants-AI-settings.patch @@ -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 aa511364fc48aa78b38a730ed8f0c3fb5453759c..57f361750cbec0558fd39c1bb9bbc6878918bfbf 100644 +index 2f5e6325398b2933c751027382593e3e3be17a70..074f5233fe8eac7c1cf6219a4271562a7b45d94a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -450,6 +450,10 @@ public class PurpurWorldConfig { +@@ -453,6 +453,10 @@ public class PurpurWorldConfig { public double giantMovementSpeed = 0.5D; public double giantAttackDamage = 50.0D; public double giantMaxHealth = 100.0D; @@ -134,7 +134,7 @@ index aa511364fc48aa78b38a730ed8f0c3fb5453759c..57f361750cbec0558fd39c1bb9bbc687 private void giantSettings() { giantRidable = getBoolean("mobs.giant.ridable", giantRidable); giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater); -@@ -465,6 +469,10 @@ public class PurpurWorldConfig { +@@ -468,6 +472,10 @@ public class PurpurWorldConfig { set("mobs.giant.attributes.max_health", oldValue); } giantMaxHealth = getDouble("mobs.giant.attributes.max_health", giantMaxHealth); diff --git a/patches/server/0029-Zombie-horse-naturally-spawn.patch b/patches/server/0029-Zombie-horse-naturally-spawn.patch index e0dc08206..eed110eab 100644 --- a/patches/server/0029-Zombie-horse-naturally-spawn.patch +++ b/patches/server/0029-Zombie-horse-naturally-spawn.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Zombie horse naturally spawn diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 004bdf930769974ed02c68b8939af8e96bad88a7..39402063a73fbdbefdbcd7b4f7ea675cafdfaa3a 100644 +index 67cdf31f3ce9f85743ce10bd2dee6854be1d69f9..0b22974ffe3ad2dd858f571980107eba9b56882e 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -87,6 +87,7 @@ import net.minecraft.world.entity.ai.village.poi.PoiManager; @@ -42,10 +42,10 @@ index 004bdf930769974ed02c68b8939af8e96bad88a7..39402063a73fbdbefdbcd7b4f7ea675c LightningBolt entitylightning = (LightningBolt) EntityType.LIGHTNING_BOLT.create((net.minecraft.world.level.Level) this); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 57f361750cbec0558fd39c1bb9bbc6878918bfbf..5ccc74cc292d72e1d90ae3841c826c02a2c37447 100644 +index 074f5233fe8eac7c1cf6219a4271562a7b45d94a..d145fff0ecd3d898e13dd8d74224f53a4512649c 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1248,6 +1248,7 @@ public class PurpurWorldConfig { +@@ -1251,6 +1251,7 @@ public class PurpurWorldConfig { public double zombieHorseJumpStrengthMax = 1.0D; public double zombieHorseMovementSpeedMin = 0.2D; public double zombieHorseMovementSpeedMax = 0.2D; @@ -53,7 +53,7 @@ index 57f361750cbec0558fd39c1bb9bbc6878918bfbf..5ccc74cc292d72e1d90ae3841c826c02 private void zombieHorseSettings() { zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim); -@@ -1263,6 +1264,7 @@ public class PurpurWorldConfig { +@@ -1266,6 +1267,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); diff --git a/patches/server/0030-Charged-creeper-naturally-spawn.patch b/patches/server/0030-Charged-creeper-naturally-spawn.patch index a36320d3e..1e0362766 100644 --- a/patches/server/0030-Charged-creeper-naturally-spawn.patch +++ b/patches/server/0030-Charged-creeper-naturally-spawn.patch @@ -24,10 +24,10 @@ 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 5ccc74cc292d72e1d90ae3841c826c02a2c37447..d40a83d760641feb2fe4e23a51ace710325a2c9d 100644 +index d145fff0ecd3d898e13dd8d74224f53a4512649c..a32dc6f6b9d2f1036e4d8393f772c70ef9178177 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -272,6 +272,7 @@ public class PurpurWorldConfig { +@@ -275,6 +275,7 @@ public class PurpurWorldConfig { public boolean creeperRidable = false; public boolean creeperRidableInWater = false; public double creeperMaxHealth = 20.0D; @@ -35,7 +35,7 @@ index 5ccc74cc292d72e1d90ae3841c826c02a2c37447..d40a83d760641feb2fe4e23a51ace710 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -281,6 +282,7 @@ public class PurpurWorldConfig { +@@ -284,6 +285,7 @@ public class PurpurWorldConfig { set("mobs.creeper.attributes.max_health", oldValue); } creeperMaxHealth = getDouble("mobs.creeper.attributes.max_health", creeperMaxHealth); diff --git a/patches/server/0031-Rabbit-naturally-spawn-toast-and-killer.patch b/patches/server/0031-Rabbit-naturally-spawn-toast-and-killer.patch index 1398a8b75..fb96562e0 100644 --- a/patches/server/0031-Rabbit-naturally-spawn-toast-and-killer.patch +++ b/patches/server/0031-Rabbit-naturally-spawn-toast-and-killer.patch @@ -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 d40a83d760641feb2fe4e23a51ace710325a2c9d..26d706f7cb814000196b251479f668385b53205d 100644 +index a32dc6f6b9d2f1036e4d8393f772c70ef9178177..4578060c276d479a8a89e42064c10ee724fa8386 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -826,6 +826,8 @@ public class PurpurWorldConfig { +@@ -829,6 +829,8 @@ public class PurpurWorldConfig { public boolean rabbitRidable = false; public boolean rabbitRidableInWater = false; public double rabbitMaxHealth = 3.0D; @@ -50,7 +50,7 @@ index d40a83d760641feb2fe4e23a51ace710325a2c9d..26d706f7cb814000196b251479f66838 private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -835,6 +837,8 @@ public class PurpurWorldConfig { +@@ -838,6 +840,8 @@ public class PurpurWorldConfig { set("mobs.rabbit.attributes.max_health", oldValue); } rabbitMaxHealth = getDouble("mobs.rabbit.attributes.max_health", rabbitMaxHealth); diff --git a/patches/server/0034-Tulips-change-fox-type.patch b/patches/server/0034-Tulips-change-fox-type.patch index 3ad6c34ab..17b6e140a 100644 --- a/patches/server/0034-Tulips-change-fox-type.patch +++ b/patches/server/0034-Tulips-change-fox-type.patch @@ -75,10 +75,10 @@ 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 26d706f7cb814000196b251479f668385b53205d..f52adabf70056ee282ca9640b20ad2bd8e9347e4 100644 +index 4578060c276d479a8a89e42064c10ee724fa8386..8e456185b5207dd63a0e6f18608f43fd341e71c1 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -420,6 +420,7 @@ public class PurpurWorldConfig { +@@ -423,6 +423,7 @@ public class PurpurWorldConfig { public boolean foxRidable = false; public boolean foxRidableInWater = false; public double foxMaxHealth = 10.0D; @@ -86,7 +86,7 @@ index 26d706f7cb814000196b251479f668385b53205d..f52adabf70056ee282ca9640b20ad2bd private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -429,6 +430,7 @@ public class PurpurWorldConfig { +@@ -432,6 +433,7 @@ public class PurpurWorldConfig { set("mobs.fox.attributes.max_health", oldValue); } foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth); diff --git a/patches/server/0035-Breedable-Polar-Bears.patch b/patches/server/0035-Breedable-Polar-Bears.patch index 7794e90ee..e97a9ce61 100644 --- a/patches/server/0035-Breedable-Polar-Bears.patch +++ b/patches/server/0035-Breedable-Polar-Bears.patch @@ -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 f52adabf70056ee282ca9640b20ad2bd8e9347e4..4a2e4b82d5693e7e73fb9722aa4a09af13f61149 100644 +index 8e456185b5207dd63a0e6f18608f43fd341e71c1..4a2c8e7fbdae48d1a4a654cce558538f5ac8d4ce 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -802,6 +802,8 @@ public class PurpurWorldConfig { +@@ -805,6 +805,8 @@ public class PurpurWorldConfig { public boolean polarBearRidable = false; public boolean polarBearRidableInWater = false; public double polarBearMaxHealth = 30.0D; @@ -71,7 +71,7 @@ index f52adabf70056ee282ca9640b20ad2bd8e9347e4..4a2e4b82d5693e7e73fb9722aa4a09af private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -811,6 +813,9 @@ public class PurpurWorldConfig { +@@ -814,6 +816,9 @@ public class PurpurWorldConfig { set("mobs.polar_bear.attributes.max_health", oldValue); } polarBearMaxHealth = getDouble("mobs.polar_bear.attributes.max_health", polarBearMaxHealth); diff --git a/patches/server/0036-Chickens-can-retaliate.patch b/patches/server/0036-Chickens-can-retaliate.patch index 0522b7e50..3a79f104c 100644 --- a/patches/server/0036-Chickens-can-retaliate.patch +++ b/patches/server/0036-Chickens-can-retaliate.patch @@ -51,10 +51,10 @@ index 55dccf338f9fba17fbcb88672d36b83e7bbec88b..eaec6eba96db3b8ce046208a4a1e5fc4 @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 4a2e4b82d5693e7e73fb9722aa4a09af13f61149..321343f7bdb807f42d9529eeaa739110db496e50 100644 +index 4a2c8e7fbdae48d1a4a654cce558538f5ac8d4ce..7ae28310a29fd808f48212d30e722ac09de40eca 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -232,6 +232,7 @@ public class PurpurWorldConfig { +@@ -235,6 +235,7 @@ public class PurpurWorldConfig { public boolean chickenRidable = false; public boolean chickenRidableInWater = false; public double chickenMaxHealth = 4.0D; @@ -62,7 +62,7 @@ index 4a2e4b82d5693e7e73fb9722aa4a09af13f61149..321343f7bdb807f42d9529eeaa739110 private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -241,6 +242,7 @@ public class PurpurWorldConfig { +@@ -244,6 +245,7 @@ public class PurpurWorldConfig { set("mobs.chicken.attributes.max_health", oldValue); } chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth); diff --git a/patches/server/0037-Add-option-to-set-armorstand-step-height.patch b/patches/server/0037-Add-option-to-set-armorstand-step-height.patch index 6a7837a0d..057e00737 100644 --- a/patches/server/0037-Add-option-to-set-armorstand-step-height.patch +++ b/patches/server/0037-Add-option-to-set-armorstand-step-height.patch @@ -17,10 +17,10 @@ index 5fc66d7096afcfe63eba774e1dc330ac3263e4b0..7a3a364f5e3b025cc0a5694401cb9298 if (!this.canTick) { if (this.noTickPoseDirty) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 321343f7bdb807f42d9529eeaa739110db496e50..2cd98ff6adad2ea8b9c3a46b59c8e162474f4375 100644 +index 7ae28310a29fd808f48212d30e722ac09de40eca..776615a91c63bc47239211c303d3424bcdf89746 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -90,6 +90,11 @@ public class PurpurWorldConfig { +@@ -93,6 +93,11 @@ public class PurpurWorldConfig { return value.isEmpty() ? fallback : value; } diff --git a/patches/server/0038-Cat-spawning-options.patch b/patches/server/0038-Cat-spawning-options.patch index 7098e07d6..f5232ae63 100644 --- a/patches/server/0038-Cat-spawning-options.patch +++ b/patches/server/0038-Cat-spawning-options.patch @@ -49,10 +49,10 @@ index 4cab98b5e441a174482893d3d289bbafa1f7a5fc..fa3cdff99a16b67ed86c8f7940ffa139 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 2cd98ff6adad2ea8b9c3a46b59c8e162474f4375..def1c09fdefee27d6f1022eef979071109af4061 100644 +index 776615a91c63bc47239211c303d3424bcdf89746..e3f9e6d7efab3c2b5249b7e0f3933c1a7112f995 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -209,6 +209,9 @@ public class PurpurWorldConfig { +@@ -212,6 +212,9 @@ public class PurpurWorldConfig { public boolean catRidable = false; public boolean catRidableInWater = false; public double catMaxHealth = 10.0D; @@ -62,7 +62,7 @@ index 2cd98ff6adad2ea8b9c3a46b59c8e162474f4375..def1c09fdefee27d6f1022eef9790711 private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -218,6 +221,9 @@ public class PurpurWorldConfig { +@@ -221,6 +224,9 @@ public class PurpurWorldConfig { set("mobs.cat.attributes.max_health", oldValue); } catMaxHealth = getDouble("mobs.cat.attributes.max_health", catMaxHealth); diff --git a/patches/server/0040-Cows-eat-mushrooms.patch b/patches/server/0040-Cows-eat-mushrooms.patch index f03b34d50..5e0d41ef3 100644 --- a/patches/server/0040-Cows-eat-mushrooms.patch +++ b/patches/server/0040-Cows-eat-mushrooms.patch @@ -114,10 +114,10 @@ index bee82d5bf600cbeacfcede600e5606529af1435e..9da76357da891a70e20ad80f50873b3b public Cow getBreedOffspring(ServerLevel world, AgeableMob entity) { return (Cow) EntityType.COW.create((Level) world); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index def1c09fdefee27d6f1022eef979071109af4061..9b3698f9ced1c88ab8a8495bfe55225be191c3a1 100644 +index e3f9e6d7efab3c2b5249b7e0f3933c1a7112f995..06d8ecd2feb6a13d1bcffb3f02025bcc8299e25f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -271,6 +271,7 @@ public class PurpurWorldConfig { +@@ -274,6 +274,7 @@ public class PurpurWorldConfig { public boolean cowRidable = false; public boolean cowRidableInWater = false; public double cowMaxHealth = 10.0D; @@ -125,7 +125,7 @@ index def1c09fdefee27d6f1022eef979071109af4061..9b3698f9ced1c88ab8a8495bfe55225b private void cowSettings() { cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); -@@ -280,6 +281,7 @@ public class PurpurWorldConfig { +@@ -283,6 +284,7 @@ public class PurpurWorldConfig { set("mobs.cow.attributes.max_health", oldValue); } cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth); diff --git a/patches/server/0042-Pigs-give-saddle-back.patch b/patches/server/0042-Pigs-give-saddle-back.patch index 6f75d0ce5..2c6467921 100644 --- a/patches/server/0042-Pigs-give-saddle-back.patch +++ b/patches/server/0042-Pigs-give-saddle-back.patch @@ -28,10 +28,10 @@ index f4a099e691dce3c57069e76d67859161b459098e..518d28dc0b5b8c04263c93a4347e4c97 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 9b3698f9ced1c88ab8a8495bfe55225be191c3a1..7f465785f21bfb98a0ee7917811d79cbab90defa 100644 +index 06d8ecd2feb6a13d1bcffb3f02025bcc8299e25f..3e0c36363efd2e30f7b14a1db1dceb554c0c4497 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -761,6 +761,7 @@ public class PurpurWorldConfig { +@@ -764,6 +764,7 @@ public class PurpurWorldConfig { public boolean pigRidable = false; public boolean pigRidableInWater = false; public double pigMaxHealth = 10.0D; @@ -39,7 +39,7 @@ index 9b3698f9ced1c88ab8a8495bfe55225be191c3a1..7f465785f21bfb98a0ee7917811d79cb private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -770,6 +771,7 @@ public class PurpurWorldConfig { +@@ -773,6 +774,7 @@ public class PurpurWorldConfig { set("mobs.pig.attributes.max_health", oldValue); } pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth); diff --git a/patches/server/0043-Snowman-drop-and-put-back-pumpkin.patch b/patches/server/0043-Snowman-drop-and-put-back-pumpkin.patch index 97de150a7..419b2a62d 100644 --- a/patches/server/0043-Snowman-drop-and-put-back-pumpkin.patch +++ b/patches/server/0043-Snowman-drop-and-put-back-pumpkin.patch @@ -32,10 +32,10 @@ index 7fbe1a62e9c67a8bdaf13aaa9fae1d8742d75148..0733f9c057fef17fd79a4769f19b78f4 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 7f465785f21bfb98a0ee7917811d79cbab90defa..091629e631dca35f1aff23afe1dab32627689aee 100644 +index 3e0c36363efd2e30f7b14a1db1dceb554c0c4497..b3ef2d8617580e183e60dff81a767cf3e8f29900 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -992,6 +992,8 @@ public class PurpurWorldConfig { +@@ -995,6 +995,8 @@ public class PurpurWorldConfig { public boolean snowGolemRidableInWater = false; public boolean snowGolemLeaveTrailWhenRidden = false; public double snowGolemMaxHealth = 4.0D; @@ -44,7 +44,7 @@ index 7f465785f21bfb98a0ee7917811d79cbab90defa..091629e631dca35f1aff23afe1dab326 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1002,6 +1004,8 @@ public class PurpurWorldConfig { +@@ -1005,6 +1007,8 @@ public class PurpurWorldConfig { set("mobs.snow_golem.attributes.max_health", oldValue); } snowGolemMaxHealth = getDouble("mobs.snow_golem.attributes.max_health", snowGolemMaxHealth); diff --git a/patches/server/0044-Ender-dragon-always-drop-full-exp.patch b/patches/server/0044-Ender-dragon-always-drop-full-exp.patch index 834e05664..38732f027 100644 --- a/patches/server/0044-Ender-dragon-always-drop-full-exp.patch +++ b/patches/server/0044-Ender-dragon-always-drop-full-exp.patch @@ -18,10 +18,10 @@ index 177c5b385613ac08a75500013326874ff31a1992..a70c631691512a633c7fe4df9e9f2881 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 091629e631dca35f1aff23afe1dab32627689aee..22e2beff55aa0fc6f8c4d6d8a6491b3a5e87e795 100644 +index b3ef2d8617580e183e60dff81a767cf3e8f29900..2640d71e77b5c8ebcad118c11f2424cca5331bc7 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -374,6 +374,7 @@ public class PurpurWorldConfig { +@@ -377,6 +377,7 @@ public class PurpurWorldConfig { public boolean enderDragonRidableInWater = false; public double enderDragonMaxY = 256D; public double enderDragonMaxHealth = 200.0D; @@ -29,7 +29,7 @@ index 091629e631dca35f1aff23afe1dab32627689aee..22e2beff55aa0fc6f8c4d6d8a6491b3a private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -388,6 +389,7 @@ public class PurpurWorldConfig { +@@ -391,6 +392,7 @@ public class PurpurWorldConfig { set("mobs.ender_dragon.attributes.max_health", oldValue); } enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth); diff --git a/patches/server/0045-Signs-editable-on-right-click.patch b/patches/server/0045-Signs-editable-on-right-click.patch index c51b58c0b..b95190a4a 100644 --- a/patches/server/0045-Signs-editable-on-right-click.patch +++ b/patches/server/0045-Signs-editable-on-right-click.patch @@ -35,10 +35,10 @@ index 1844ea93f8cea420f01937f85ed17c0ec1bb8bf0..9e80ba8970cad91ea22ac701f76e1413 } else { return InteractionResult.PASS; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 22e2beff55aa0fc6f8c4d6d8a6491b3a5e87e795..7a794f951ba01f3b9e6b64c15eb6b265a3dce6ad 100644 +index 2640d71e77b5c8ebcad118c11f2424cca5331bc7..410282f97889e808d18b0374ad7d89fc050f3df8 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -135,6 +135,11 @@ public class PurpurWorldConfig { +@@ -138,6 +138,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0046-Signs-allow-color-codes.patch b/patches/server/0046-Signs-allow-color-codes.patch index ca6ef7df0..00fe2171f 100644 --- a/patches/server/0046-Signs-allow-color-codes.patch +++ b/patches/server/0046-Signs-allow-color-codes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Signs allow color codes diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 44b0e610fa2eb5f73a74bfadefc3f58bd20d6f6d..ee251b0081703af7fee71caaba2ff7eba9f2328c 100644 +index 1653928faba2422bfa5fff93be5b4d8f9c9447ed..7722a0e82dda2342feed5d636583e41e1d90b8df 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1464,6 +1464,7 @@ public class ServerPlayer extends Player { @@ -70,10 +70,10 @@ index 9b5d11ece006d7aa893360a84ba652c666517ac1..bdd6d8201ac078635d637081a37f353c @Override public ClientboundBlockEntityDataPacket getUpdatePacket() { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 7a794f951ba01f3b9e6b64c15eb6b265a3dce6ad..889760ed74af23f51415b92b42600a02145c38c8 100644 +index 410282f97889e808d18b0374ad7d89fc050f3df8..7548312d059e1e7745d1265f3c783580a62fcd46 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -135,8 +135,10 @@ public class PurpurWorldConfig { +@@ -138,8 +138,10 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0047-Allow-soil-to-moisten-from-water-directly-under-it.patch b/patches/server/0047-Allow-soil-to-moisten-from-water-directly-under-it.patch index fc44da2dd..320b52efd 100644 --- a/patches/server/0047-Allow-soil-to-moisten-from-water-directly-under-it.patch +++ b/patches/server/0047-Allow-soil-to-moisten-from-water-directly-under-it.patch @@ -42,10 +42,10 @@ index a242a80b16c7d074d52a52728646224b1a0091d4..5d9d77cb382c8075af2713a0ce26c28a } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 889760ed74af23f51415b92b42600a02145c38c8..8b086b7cc7aa5ab001d5dfb840ca8146692152a6 100644 +index 7548312d059e1e7745d1265f3c783580a62fcd46..ba3e9d855b4715a427172a66c3be0b4968904308 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -135,6 +135,11 @@ public class PurpurWorldConfig { +@@ -138,6 +138,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0048-Minecart-settings-and-WASD-controls.patch b/patches/server/0048-Minecart-settings-and-WASD-controls.patch index e753bc5ad..fb7b717b1 100644 --- a/patches/server/0048-Minecart-settings-and-WASD-controls.patch +++ b/patches/server/0048-Minecart-settings-and-WASD-controls.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Minecart settings and WASD controls diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index ee251b0081703af7fee71caaba2ff7eba9f2328c..0cba5ac1f1d1c711704cd129084004ba52993534 100644 +index 7722a0e82dda2342feed5d636583e41e1d90b8df..ccc9aacebb93e567b5b882431e5de6b1d2aba2f6 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -991,6 +991,7 @@ public class ServerPlayer extends Player { @@ -148,10 +148,10 @@ index 04d5ef90cd4171f9360017ac0c01ce48ae6ec983..7538262e14c86e4da9cd4cb887b76f64 protected final float explosionResistance; protected final boolean isRandomlyTicking; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 8b086b7cc7aa5ab001d5dfb840ca8146692152a6..9bf5e19912e39dd92cc868419ee28c2ea83d2be1 100644 +index ba3e9d855b4715a427172a66c3be0b4968904308..5ff1f15dc01fe9e9a9c52ff09165efb13dfe9c5d 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -95,6 +95,68 @@ public class PurpurWorldConfig { +@@ -98,6 +98,68 @@ public class PurpurWorldConfig { armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight); } diff --git a/patches/server/0049-Disable-loot-drops-on-death-by-cramming.patch b/patches/server/0049-Disable-loot-drops-on-death-by-cramming.patch index 1183f541a..1a019a79f 100644 --- a/patches/server/0049-Disable-loot-drops-on-death-by-cramming.patch +++ b/patches/server/0049-Disable-loot-drops-on-death-by-cramming.patch @@ -20,10 +20,10 @@ index 28d5fc868498a4a6746b9defa1c06da27a4aa495..5b25fc620161053e1f3811dbdd7fac01 // CraftBukkit start - Call death event org.bukkit.event.entity.EntityDeathEvent deathEvent = CraftEventFactory.callEntityDeathEvent(this, this.drops); // Paper diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 9bf5e19912e39dd92cc868419ee28c2ea83d2be1..da2e7d146029d36472de7800c42fb5d72252da3a 100644 +index 5ff1f15dc01fe9e9a9c52ff09165efb13dfe9c5d..4a28a3769b220ae203da9b72e5330cbb813eae87 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -197,6 +197,11 @@ public class PurpurWorldConfig { +@@ -200,6 +200,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0050-Players-should-not-cram-to-death.patch b/patches/server/0050-Players-should-not-cram-to-death.patch index c68bd96ed..4b89fb659 100644 --- a/patches/server/0050-Players-should-not-cram-to-death.patch +++ b/patches/server/0050-Players-should-not-cram-to-death.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Players should not cram to death diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 0cba5ac1f1d1c711704cd129084004ba52993534..30db21164b63d72b9bf6be38867cdcfdbd3c702b 100644 +index ccc9aacebb93e567b5b882431e5de6b1d2aba2f6..135f13864a85934c0127aa059bfe6c0e25140dfc 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1441,7 +1441,7 @@ public class ServerPlayer extends Player { @@ -18,10 +18,10 @@ index 0cba5ac1f1d1c711704cd129084004ba52993534..30db21164b63d72b9bf6be38867cdcfd @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index da2e7d146029d36472de7800c42fb5d72252da3a..f368541a5ee2cbfe61dbf76653d8461b98d234ef 100644 +index 4a28a3769b220ae203da9b72e5330cbb813eae87..aeb3f1286de48393a3a352c32633d1ba87b68c8f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -163,6 +163,7 @@ public class PurpurWorldConfig { +@@ -166,6 +166,7 @@ public class PurpurWorldConfig { public boolean idleTimeoutUpdateTabList = false; public int playerSpawnInvulnerableTicks = 60; public boolean playerInvulnerableWhileAcceptingResourcePack = false; @@ -29,7 +29,7 @@ index da2e7d146029d36472de7800c42fb5d72252da3a..f368541a5ee2cbfe61dbf76653d8461b 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); -@@ -170,6 +171,7 @@ public class PurpurWorldConfig { +@@ -173,6 +174,7 @@ public class PurpurWorldConfig { idleTimeoutUpdateTabList = getBoolean("gameplay-mechanics.player.idle-timeout.update-tab-list", idleTimeoutUpdateTabList); playerSpawnInvulnerableTicks = getInt("gameplay-mechanics.player.spawn-invulnerable-ticks", playerSpawnInvulnerableTicks); playerInvulnerableWhileAcceptingResourcePack = getBoolean("gameplay-mechanics.player.invulnerable-while-accepting-resource-pack", playerInvulnerableWhileAcceptingResourcePack); diff --git a/patches/server/0051-Option-to-toggle-milk-curing-bad-omen.patch b/patches/server/0051-Option-to-toggle-milk-curing-bad-omen.patch index 249b50548..4b009ed14 100644 --- a/patches/server/0051-Option-to-toggle-milk-curing-bad-omen.patch +++ b/patches/server/0051-Option-to-toggle-milk-curing-bad-omen.patch @@ -28,10 +28,10 @@ index f33977d95b6db473be4f95075ba99caf90ad0220..56dc04d8875971ee9a5d077a695509af return stack.isEmpty() ? new ItemStack(Items.BUCKET) : stack; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index f368541a5ee2cbfe61dbf76653d8461b98d234ef..16597faf7e846c96d09a5706a089325e6c3fca52 100644 +index aeb3f1286de48393a3a352c32633d1ba87b68c8f..ceac72f608a9023480464d293d9582792ab9d2fa 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -200,8 +200,10 @@ public class PurpurWorldConfig { +@@ -203,8 +203,10 @@ public class PurpurWorldConfig { } public boolean disableDropsOnCrammingDeath = false; diff --git a/patches/server/0056-Add-wither-skeleton-takes-wither-damage-option.patch b/patches/server/0056-Add-wither-skeleton-takes-wither-damage-option.patch index 9e356cb94..b866420a0 100644 --- a/patches/server/0056-Add-wither-skeleton-takes-wither-damage-option.patch +++ b/patches/server/0056-Add-wither-skeleton-takes-wither-damage-option.patch @@ -17,10 +17,10 @@ index 8212ee2cc1242c0a3626f3643c455f3be0de18c2..aaf6f43c0f37a51a7b2db57b8da43365 } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 16597faf7e846c96d09a5706a089325e6c3fca52..7d8c916e5e25fa0b05490cffab464e7ebfc8f430 100644 +index ceac72f608a9023480464d293d9582792ab9d2fa..5ef65a767b1a052cfeadcb612c2d7578eee38bf0 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1304,6 +1304,7 @@ public class PurpurWorldConfig { +@@ -1307,6 +1307,7 @@ public class PurpurWorldConfig { public boolean witherSkeletonRidable = false; public boolean witherSkeletonRidableInWater = false; public double witherSkeletonMaxHealth = 20.0D; @@ -28,7 +28,7 @@ index 16597faf7e846c96d09a5706a089325e6c3fca52..7d8c916e5e25fa0b05490cffab464e7e private void witherSkeletonSettings() { witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable); witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater); -@@ -1313,6 +1314,7 @@ public class PurpurWorldConfig { +@@ -1316,6 +1317,7 @@ public class PurpurWorldConfig { set("mobs.wither_skeleton.attributes.max_health", oldValue); } witherSkeletonMaxHealth = getDouble("mobs.wither_skeleton.attributes.max_health", witherSkeletonMaxHealth); diff --git a/patches/server/0058-Add-option-to-allow-loyalty-on-tridents-to-work-in-t.patch b/patches/server/0058-Add-option-to-allow-loyalty-on-tridents-to-work-in-t.patch index fd64129bb..106470335 100644 --- a/patches/server/0058-Add-option-to-allow-loyalty-on-tridents-to-work-in-t.patch +++ b/patches/server/0058-Add-option-to-allow-loyalty-on-tridents-to-work-in-t.patch @@ -18,10 +18,10 @@ index c95eef8596fe3e1ca83e620a6c54b164c797cbe1..1e6a5404d767318de29184b3e3a2bc41 if (!this.level.isClientSide && this.pickup == AbstractArrow.Pickup.ALLOWED) { this.spawnAtLocation(this.getPickupItem(), 0.1F); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 7d8c916e5e25fa0b05490cffab464e7ebfc8f430..902d0d4cad0527ac3fa171d5484e1679795d3c63 100644 +index 5ef65a767b1a052cfeadcb612c2d7578eee38bf0..ad4f059f5ad47c115626ae6460242cbd599a2617 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -201,9 +201,11 @@ public class PurpurWorldConfig { +@@ -204,9 +204,11 @@ public class PurpurWorldConfig { public boolean disableDropsOnCrammingDeath = false; public boolean milkCuresBadOmen = true; diff --git a/patches/server/0059-Add-enderman-and-creeper-griefing-controls.patch b/patches/server/0059-Add-enderman-and-creeper-griefing-controls.patch index 11589381d..62630eb03 100644 --- a/patches/server/0059-Add-enderman-and-creeper-griefing-controls.patch +++ b/patches/server/0059-Add-enderman-and-creeper-griefing-controls.patch @@ -38,10 +38,10 @@ index b061ecc42122ef66fbf87fe017023abca5728a01..6e0b5fbf5b0d216b6b7c647d45ef37cd } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 902d0d4cad0527ac3fa171d5484e1679795d3c63..67e133cc8f26d66c2282830d012117ef298ec43a 100644 +index ad4f059f5ad47c115626ae6460242cbd599a2617..6e63730c50f63c87b70758b0d35cf75fa23af853 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -373,6 +373,7 @@ public class PurpurWorldConfig { +@@ -376,6 +376,7 @@ public class PurpurWorldConfig { public boolean creeperRidableInWater = false; public double creeperMaxHealth = 20.0D; public double creeperChargedChance = 0.0D; @@ -49,7 +49,7 @@ index 902d0d4cad0527ac3fa171d5484e1679795d3c63..67e133cc8f26d66c2282830d012117ef private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -383,6 +384,7 @@ public class PurpurWorldConfig { +@@ -386,6 +387,7 @@ public class PurpurWorldConfig { } creeperMaxHealth = getDouble("mobs.creeper.attributes.max_health", creeperMaxHealth); creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance); @@ -57,7 +57,7 @@ index 902d0d4cad0527ac3fa171d5484e1679795d3c63..67e133cc8f26d66c2282830d012117ef } public boolean dolphinRidable = false; -@@ -480,6 +482,7 @@ public class PurpurWorldConfig { +@@ -483,6 +485,7 @@ public class PurpurWorldConfig { public boolean endermanRidable = false; public boolean endermanRidableInWater = false; public double endermanMaxHealth = 40.0D; @@ -65,7 +65,7 @@ index 902d0d4cad0527ac3fa171d5484e1679795d3c63..67e133cc8f26d66c2282830d012117ef private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -489,6 +492,7 @@ public class PurpurWorldConfig { +@@ -492,6 +495,7 @@ public class PurpurWorldConfig { set("mobs.enderman.attributes.max_health", oldValue); } endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth); diff --git a/patches/server/0060-Villagers-follow-emerald-blocks.patch b/patches/server/0060-Villagers-follow-emerald-blocks.patch index 4053f9af5..d0cc3c06b 100644 --- a/patches/server/0060-Villagers-follow-emerald-blocks.patch +++ b/patches/server/0060-Villagers-follow-emerald-blocks.patch @@ -41,10 +41,10 @@ index d2588a91b55aebdecf8e1644498111ccf84a9dc9..393061e13375bf7a7ee57973b4abac83 this.goalSelector.addGoal(8, new WaterAvoidingRandomStrollGoal(this, 0.35D)); this.goalSelector.addGoal(9, new InteractGoal(this, Player.class, 3.0F, 1.0F)); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 67e133cc8f26d66c2282830d012117ef298ec43a..d779b6f2eca7eea2c0dba137cd8accc2cb4c005d 100644 +index 6e63730c50f63c87b70758b0d35cf75fa23af853..606bd7986499f41cdbc815679d02d029d9d9a8a3 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1232,6 +1232,7 @@ public class PurpurWorldConfig { +@@ -1235,6 +1235,7 @@ public class PurpurWorldConfig { public double villagerMaxHealth = 20.0D; public int villagerBrainTicks = 1; public boolean villagerUseBrainTicksOnlyWhenLagging = true; @@ -52,7 +52,7 @@ index 67e133cc8f26d66c2282830d012117ef298ec43a..d779b6f2eca7eea2c0dba137cd8accc2 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1243,6 +1244,7 @@ public class PurpurWorldConfig { +@@ -1246,6 +1247,7 @@ public class PurpurWorldConfig { villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth); villagerBrainTicks = getInt("mobs.villager.brain-ticks", villagerBrainTicks); villagerUseBrainTicksOnlyWhenLagging = getBoolean("mobs.villager.use-brain-ticks-only-when-lagging", villagerUseBrainTicksOnlyWhenLagging); @@ -60,7 +60,7 @@ index 67e133cc8f26d66c2282830d012117ef298ec43a..d779b6f2eca7eea2c0dba137cd8accc2 } public boolean vindicatorRidable = false; -@@ -1262,6 +1264,7 @@ public class PurpurWorldConfig { +@@ -1265,6 +1267,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderRidable = false; public boolean wanderingTraderRidableInWater = false; public double wanderingTraderMaxHealth = 20.0D; @@ -68,7 +68,7 @@ index 67e133cc8f26d66c2282830d012117ef298ec43a..d779b6f2eca7eea2c0dba137cd8accc2 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -1271,6 +1274,7 @@ public class PurpurWorldConfig { +@@ -1274,6 +1277,7 @@ public class PurpurWorldConfig { set("mobs.wandering_trader.attributes.max_health", oldValue); } wanderingTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", wanderingTraderMaxHealth); diff --git a/patches/server/0061-Allow-leashing-villagers.patch b/patches/server/0061-Allow-leashing-villagers.patch index 9b60d1612..8c7e47be0 100644 --- a/patches/server/0061-Allow-leashing-villagers.patch +++ b/patches/server/0061-Allow-leashing-villagers.patch @@ -49,10 +49,10 @@ index 393061e13375bf7a7ee57973b4abac83ffa15fa3..c48935d35a6141c41db22e3ec172d599 @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index d779b6f2eca7eea2c0dba137cd8accc2cb4c005d..1c3fbd16162393a8c15c881fd3e94fdb5060668f 100644 +index 606bd7986499f41cdbc815679d02d029d9d9a8a3..2a3b0814ce5c8624901aa6d7447848c3decbec96 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1233,6 +1233,7 @@ public class PurpurWorldConfig { +@@ -1236,6 +1236,7 @@ public class PurpurWorldConfig { public int villagerBrainTicks = 1; public boolean villagerUseBrainTicksOnlyWhenLagging = true; public boolean villagerFollowEmeraldBlock = false; @@ -60,7 +60,7 @@ index d779b6f2eca7eea2c0dba137cd8accc2cb4c005d..1c3fbd16162393a8c15c881fd3e94fdb private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1245,6 +1246,7 @@ public class PurpurWorldConfig { +@@ -1248,6 +1249,7 @@ public class PurpurWorldConfig { villagerBrainTicks = getInt("mobs.villager.brain-ticks", villagerBrainTicks); villagerUseBrainTicksOnlyWhenLagging = getBoolean("mobs.villager.use-brain-ticks-only-when-lagging", villagerUseBrainTicksOnlyWhenLagging); villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock); @@ -68,7 +68,7 @@ index d779b6f2eca7eea2c0dba137cd8accc2cb4c005d..1c3fbd16162393a8c15c881fd3e94fdb } public boolean vindicatorRidable = false; -@@ -1265,6 +1267,7 @@ public class PurpurWorldConfig { +@@ -1268,6 +1270,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderRidableInWater = false; public double wanderingTraderMaxHealth = 20.0D; public boolean wanderingTraderFollowEmeraldBlock = false; @@ -76,7 +76,7 @@ index d779b6f2eca7eea2c0dba137cd8accc2cb4c005d..1c3fbd16162393a8c15c881fd3e94fdb private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -1275,6 +1278,7 @@ public class PurpurWorldConfig { +@@ -1278,6 +1281,7 @@ public class PurpurWorldConfig { } wanderingTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", wanderingTraderMaxHealth); wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock); diff --git a/patches/server/0062-Implement-configurable-search-radius-for-villagers-t.patch b/patches/server/0062-Implement-configurable-search-radius-for-villagers-t.patch index 1e5f8d552..b14662681 100644 --- a/patches/server/0062-Implement-configurable-search-radius-for-villagers-t.patch +++ b/patches/server/0062-Implement-configurable-search-radius-for-villagers-t.patch @@ -18,10 +18,10 @@ index e903fe670e50ff34187994d36a2d875d5f51bdb6..3865f16e027307f5b8b2a5617b66ffd8 for (int i = 0; i < 10; ++i) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 1c3fbd16162393a8c15c881fd3e94fdb5060668f..0c23405bdc78e139c406b7ab0c48cd5f95042669 100644 +index 2a3b0814ce5c8624901aa6d7447848c3decbec96..495fa66d1b0974e05a353ceba56b4fbb64ee758c 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1234,6 +1234,8 @@ public class PurpurWorldConfig { +@@ -1237,6 +1237,8 @@ public class PurpurWorldConfig { public boolean villagerUseBrainTicksOnlyWhenLagging = true; public boolean villagerFollowEmeraldBlock = false; public boolean villagerCanBeLeashed = false; @@ -30,7 +30,7 @@ index 1c3fbd16162393a8c15c881fd3e94fdb5060668f..0c23405bdc78e139c406b7ab0c48cd5f private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1247,6 +1249,8 @@ public class PurpurWorldConfig { +@@ -1250,6 +1252,8 @@ public class PurpurWorldConfig { villagerUseBrainTicksOnlyWhenLagging = getBoolean("mobs.villager.use-brain-ticks-only-when-lagging", villagerUseBrainTicksOnlyWhenLagging); villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock); villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed); diff --git a/patches/server/0063-Implement-infinite-lava.patch b/patches/server/0063-Implement-infinite-lava.patch index 24c522bd5..81268cc33 100644 --- a/patches/server/0063-Implement-infinite-lava.patch +++ b/patches/server/0063-Implement-infinite-lava.patch @@ -58,10 +58,10 @@ index 695783e64564b1d2a178d57a89737d2a97ab9014..cd1a33a1f10d04a91358f51d736bda34 protected boolean canConvertToSource() { return false; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 0c23405bdc78e139c406b7ab0c48cd5f95042669..0a19a28030afdd86b96c0732b5774eeb9873e863 100644 +index 495fa66d1b0974e05a353ceba56b4fbb64ee758c..cb10b1ebb97691b2610997dfde1475eeec277307 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -213,6 +213,13 @@ public class PurpurWorldConfig { +@@ -216,6 +216,13 @@ public class PurpurWorldConfig { farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); } diff --git a/patches/server/0064-Make-lava-flow-speed-configurable.patch b/patches/server/0064-Make-lava-flow-speed-configurable.patch index 215b3ec00..b572ac878 100644 --- a/patches/server/0064-Make-lava-flow-speed-configurable.patch +++ b/patches/server/0064-Make-lava-flow-speed-configurable.patch @@ -18,10 +18,10 @@ index cd1a33a1f10d04a91358f51d736bda34110324c4..b0d671ba015d1ad37fdf600b8e70def2 @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 0a19a28030afdd86b96c0732b5774eeb9873e863..f6cf842119c7370923b04a46c21ec80c7725b47e 100644 +index cb10b1ebb97691b2610997dfde1475eeec277307..94de4e4edb07c033afa8d100d8267bc44fb94e3b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -215,9 +215,13 @@ public class PurpurWorldConfig { +@@ -218,9 +218,13 @@ public class PurpurWorldConfig { public boolean lavaInfinite = false; public int lavaInfiniteRequiredSources = 2; diff --git a/patches/server/0065-Add-player-death-exp-control-options.patch b/patches/server/0065-Add-player-death-exp-control-options.patch index b31a3aed3..a10adc533 100644 --- a/patches/server/0065-Add-player-death-exp-control-options.patch +++ b/patches/server/0065-Add-player-death-exp-control-options.patch @@ -31,10 +31,10 @@ index e0544699714fd4c6ef2deb17f49b8246a7021463..831a62e56c745884f34fb5d8f84f0375 return 0; } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index f6cf842119c7370923b04a46c21ec80c7725b47e..d4611e62be817a0a8bda984643bba73a2b723532 100644 +index 94de4e4edb07c033afa8d100d8267bc44fb94e3b..92e0e53a93f63b7f1301d0cc14f7a1178f639ced 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -164,6 +164,8 @@ public class PurpurWorldConfig { +@@ -167,6 +167,8 @@ public class PurpurWorldConfig { public int playerSpawnInvulnerableTicks = 60; public boolean playerInvulnerableWhileAcceptingResourcePack = false; public boolean playersShouldCramToDeath = true; @@ -43,7 +43,7 @@ index f6cf842119c7370923b04a46c21ec80c7725b47e..d4611e62be817a0a8bda984643bba73a 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); -@@ -172,6 +174,8 @@ public class PurpurWorldConfig { +@@ -175,6 +177,8 @@ public class PurpurWorldConfig { playerSpawnInvulnerableTicks = getInt("gameplay-mechanics.player.spawn-invulnerable-ticks", playerSpawnInvulnerableTicks); playerInvulnerableWhileAcceptingResourcePack = getBoolean("gameplay-mechanics.player.invulnerable-while-accepting-resource-pack", playerInvulnerableWhileAcceptingResourcePack); playersShouldCramToDeath = getBoolean("gameplay-mechanics.player.should-cram-to-death", playersShouldCramToDeath); diff --git a/patches/server/0066-Configurable-void-damage-height-and-damage.patch b/patches/server/0066-Configurable-void-damage-height-and-damage.patch index f83bf9563..af7098862 100644 --- a/patches/server/0066-Configurable-void-damage-height-and-damage.patch +++ b/patches/server/0066-Configurable-void-damage-height-and-damage.patch @@ -31,10 +31,10 @@ index 54bc16b6971259f6083ca530d4109909c86a3e1e..b4640aa8fe8a37a6f27a626862b68b63 protected void updateSwingTime() { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index d4611e62be817a0a8bda984643bba73a2b723532..16712332819ad3291d903f463698d920c4515a54 100644 +index 92e0e53a93f63b7f1301d0cc14f7a1178f639ced..905f75f78eabc61b1ab2a4157cbd806c53062990 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -206,10 +206,14 @@ public class PurpurWorldConfig { +@@ -209,10 +209,14 @@ public class PurpurWorldConfig { public boolean disableDropsOnCrammingDeath = false; public boolean milkCuresBadOmen = true; public double tridentLoyaltyVoidReturnHeight = 0.0D; diff --git a/patches/server/0068-Dispenser-curse-of-binding-protection.patch b/patches/server/0068-Dispenser-curse-of-binding-protection.patch index edacefb8e..a2e879f25 100644 --- a/patches/server/0068-Dispenser-curse-of-binding-protection.patch +++ b/patches/server/0068-Dispenser-curse-of-binding-protection.patch @@ -43,10 +43,10 @@ index aab4a63e61aced51b1b6c885fd8b8426a4f14408..ad095c6bc7e00d286c83e37f84d8ed5d // CraftBukkit start Level world = pointer.getLevel(); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 16712332819ad3291d903f463698d920c4515a54..6f0967578bf81229484ccf9aac62273c3a3682e2 100644 +index 905f75f78eabc61b1ab2a4157cbd806c53062990..a7604a133913100485deef79de96190eb851fbe1 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -216,6 +216,11 @@ public class PurpurWorldConfig { +@@ -219,6 +219,11 @@ public class PurpurWorldConfig { voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt); } diff --git a/patches/server/0069-Add-option-for-boats-to-eject-players-on-land.patch b/patches/server/0069-Add-option-for-boats-to-eject-players-on-land.patch index e62c8d925..c0dd58384 100644 --- a/patches/server/0069-Add-option-for-boats-to-eject-players-on-land.patch +++ b/patches/server/0069-Add-option-for-boats-to-eject-players-on-land.patch @@ -17,10 +17,10 @@ index aa7c022c4faade23bd9061311d4152cf845d3331..d4a19fc38027717e43353bc62ef23e56 } else { return Boat.Status.IN_AIR; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 6f0967578bf81229484ccf9aac62273c3a3682e2..d1345e754720fb5ad3452139348263b0943bd2e6 100644 +index a7604a133913100485deef79de96190eb851fbe1..bd17ffc80d855011ac389d00ff34fcdab35289b7 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -203,12 +203,14 @@ public class PurpurWorldConfig { +@@ -206,12 +206,14 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0070-Mending-mends-most-damages-equipment-first.patch b/patches/server/0070-Mending-mends-most-damages-equipment-first.patch index 5665fc05d..79abf9f3f 100644 --- a/patches/server/0070-Mending-mends-most-damages-equipment-first.patch +++ b/patches/server/0070-Mending-mends-most-damages-equipment-first.patch @@ -73,10 +73,10 @@ index e246bf034a86deba5a15e7c639f5e08213fe7eee..585b29a214d0306ac2d6a170125270c1 Entry entry = getRandomItemWith(enchantment, entityliving); return entry != null ? entry.getValue() : ItemStack.EMPTY; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index d1345e754720fb5ad3452139348263b0943bd2e6..ca84f4e542b99d7c54652e1435207377058ee40d 100644 +index bd17ffc80d855011ac389d00ff34fcdab35289b7..437997c9e221e2fa8cdda52ad0028a87e41ed081 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -203,6 +203,7 @@ public class PurpurWorldConfig { +@@ -206,6 +206,7 @@ public class PurpurWorldConfig { }); } @@ -84,7 +84,7 @@ index d1345e754720fb5ad3452139348263b0943bd2e6..ca84f4e542b99d7c54652e1435207377 public boolean boatEjectPlayersOnLand = false; public boolean disableDropsOnCrammingDeath = false; public boolean milkCuresBadOmen = true; -@@ -210,6 +211,7 @@ public class PurpurWorldConfig { +@@ -213,6 +214,7 @@ public class PurpurWorldConfig { public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; private void miscGameplayMechanicsSettings() { diff --git a/patches/server/0072-Implement-elytra-settings.patch b/patches/server/0072-Implement-elytra-settings.patch index b9c7276e0..d85d9cb2c 100644 --- a/patches/server/0072-Implement-elytra-settings.patch +++ b/patches/server/0072-Implement-elytra-settings.patch @@ -99,10 +99,10 @@ index 510ed67a7de2b503ab8b01db57ed09ee33b0d825..3f53dc8f250ad3f7616ce7ef0a2353ca entityhuman.startAutoSpinAttack(20); if (entityhuman.isOnGround()) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 19eb2faa78ea974d7d8e31bc35956aba15214e4c..782f59ae094bac5c7c86b5c21418e9a7383d3226 100644 +index 437997c9e221e2fa8cdda52ad0028a87e41ed081..93348fe8e75088755a53d4bc5e347bc5642b0635 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -95,6 +95,19 @@ public class PurpurWorldConfig { +@@ -98,6 +98,19 @@ public class PurpurWorldConfig { armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight); } diff --git a/patches/server/0073-Item-entity-immunities.patch b/patches/server/0073-Item-entity-immunities.patch index 6ed5fb8a1..4d4e6d43d 100644 --- a/patches/server/0073-Item-entity-immunities.patch +++ b/patches/server/0073-Item-entity-immunities.patch @@ -94,10 +94,10 @@ index 158719d46c96bb733a00e08c8285f41a48406abf..5201e59c7ce9e92790c185279ba69d7f + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index e5b1175d724598009d1276afece4b18980fdf823..1b609e93e29c505f8fefcf1c5991499cd0383f55 100644 +index 93348fe8e75088755a53d4bc5e347bc5642b0635..fa3e4e8fdfd5220aab2d84158f72d358feb75623 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -108,6 +108,49 @@ public class PurpurWorldConfig { +@@ -111,6 +111,49 @@ public class PurpurWorldConfig { elytraDamagePerTridentBoost = getInt("gameplay-mechanics.elytra.damage-per-boost.trident", elytraDamagePerTridentBoost); } diff --git a/patches/server/0077-Configurable-jockey-options.patch b/patches/server/0077-Configurable-jockey-options.patch index 0ba8376c7..3098ea4e9 100644 --- a/patches/server/0077-Configurable-jockey-options.patch +++ b/patches/server/0077-Configurable-jockey-options.patch @@ -167,10 +167,10 @@ index 04d09123f70a192f1283c0d7e8a8254f3d30889a..43ef93d2c0c59e0d7021ee9aa2b44345 @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 1b609e93e29c505f8fefcf1c5991499cd0383f55..d88ac515439a42a55d782b1940fb368dfce2d515 100644 +index fa3e4e8fdfd5220aab2d84158f72d358feb75623..0b995e10a38f7f418fa7ad1752d647637fb9d37f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -517,6 +517,9 @@ public class PurpurWorldConfig { +@@ -520,6 +520,9 @@ public class PurpurWorldConfig { public boolean drownedRidableInWater = false; public double drownedMaxHealth = 20.0D; public double drownedSpawnReinforcements = 0.1D; @@ -180,7 +180,7 @@ index 1b609e93e29c505f8fefcf1c5991499cd0383f55..d88ac515439a42a55d782b1940fb368d private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -527,6 +530,9 @@ public class PurpurWorldConfig { +@@ -530,6 +533,9 @@ public class PurpurWorldConfig { } drownedMaxHealth = getDouble("mobs.drowned.attributes.max_health", drownedMaxHealth); drownedSpawnReinforcements = getDouble("mobs.drowned.attributes.spawn_reinforcements", drownedSpawnReinforcements); @@ -190,7 +190,7 @@ index 1b609e93e29c505f8fefcf1c5991499cd0383f55..d88ac515439a42a55d782b1940fb368d } public boolean elderGuardianRidable = false; -@@ -739,6 +745,9 @@ public class PurpurWorldConfig { +@@ -742,6 +748,9 @@ public class PurpurWorldConfig { public boolean huskRidableInWater = false; public double huskMaxHealth = 20.0D; public double huskSpawnReinforcements = 0.1D; @@ -200,7 +200,7 @@ index 1b609e93e29c505f8fefcf1c5991499cd0383f55..d88ac515439a42a55d782b1940fb368d private void huskSettings() { huskRidable = getBoolean("mobs.husk.ridable", huskRidable); huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater); -@@ -749,6 +758,9 @@ public class PurpurWorldConfig { +@@ -752,6 +761,9 @@ public class PurpurWorldConfig { } huskMaxHealth = getDouble("mobs.husk.attributes.max_health", huskMaxHealth); huskSpawnReinforcements = getDouble("mobs.husk.attributes.spawn_reinforcements", huskSpawnReinforcements); @@ -210,7 +210,7 @@ index 1b609e93e29c505f8fefcf1c5991499cd0383f55..d88ac515439a42a55d782b1940fb368d } public boolean illusionerRidable = false; -@@ -1451,6 +1463,9 @@ public class PurpurWorldConfig { +@@ -1454,6 +1466,9 @@ public class PurpurWorldConfig { public boolean zombieRidableInWater = false; public double zombieMaxHealth = 20.0D; public double zombieSpawnReinforcements = 0.1D; @@ -220,7 +220,7 @@ index 1b609e93e29c505f8fefcf1c5991499cd0383f55..d88ac515439a42a55d782b1940fb368d private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1461,6 +1476,9 @@ public class PurpurWorldConfig { +@@ -1464,6 +1479,9 @@ public class PurpurWorldConfig { } zombieMaxHealth = getDouble("mobs.zombie.attributes.max_health", zombieMaxHealth); zombieSpawnReinforcements = getDouble("mobs.zombie.attributes.spawn_reinforcements", zombieSpawnReinforcements); @@ -230,7 +230,7 @@ index 1b609e93e29c505f8fefcf1c5991499cd0383f55..d88ac515439a42a55d782b1940fb368d } public boolean zombieHorseRidableInWater = false; -@@ -1494,6 +1512,9 @@ public class PurpurWorldConfig { +@@ -1497,6 +1515,9 @@ public class PurpurWorldConfig { public boolean zombieVillagerRidableInWater = false; public double zombieVillagerMaxHealth = 20.0D; public double zombieVillagerSpawnReinforcements = 0.1D; @@ -240,7 +240,7 @@ index 1b609e93e29c505f8fefcf1c5991499cd0383f55..d88ac515439a42a55d782b1940fb368d private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -1504,12 +1525,18 @@ public class PurpurWorldConfig { +@@ -1507,12 +1528,18 @@ public class PurpurWorldConfig { } zombieVillagerMaxHealth = getDouble("mobs.zombie_villager.attributes.max_health", zombieVillagerMaxHealth); zombieVillagerSpawnReinforcements = getDouble("mobs.zombie_villager.attributes.spawn_reinforcements", zombieVillagerSpawnReinforcements); @@ -259,7 +259,7 @@ index 1b609e93e29c505f8fefcf1c5991499cd0383f55..d88ac515439a42a55d782b1940fb368d private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -1520,5 +1547,8 @@ public class PurpurWorldConfig { +@@ -1523,5 +1550,8 @@ public class PurpurWorldConfig { } zombifiedPiglinMaxHealth = getDouble("mobs.zombified_piglin.attributes.max_health", zombifiedPiglinMaxHealth); zombifiedPiglinSpawnReinforcements = getDouble("mobs.zombified_piglin.attributes.spawn_reinforcements", zombifiedPiglinSpawnReinforcements); diff --git a/patches/server/0078-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch b/patches/server/0078-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch index c78b4b074..e7b8e5d2e 100644 --- a/patches/server/0078-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch +++ b/patches/server/0078-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch @@ -258,10 +258,10 @@ index 5e069ac0c57d2a3a23f6e4483d12ce298d172691..916c29d08fbcf245ad6f50f8e8cc1736 private float speed = 0.1F; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index d88ac515439a42a55d782b1940fb368dfce2d515..e9698b51080e8f1e8b7f717d6a624bb2c4854a3d 100644 +index 0b995e10a38f7f418fa7ad1752d647637fb9d37f..a989d32a6f9f69b739e726bfa90328134bc3d30f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -930,6 +930,9 @@ public class PurpurWorldConfig { +@@ -933,6 +933,9 @@ public class PurpurWorldConfig { public int phantomFlameFireTime = 8; public boolean phantomAllowGriefing = false; public double phantomMaxHealth = 20.0D; @@ -271,7 +271,7 @@ index d88ac515439a42a55d782b1940fb368dfce2d515..e9698b51080e8f1e8b7f717d6a624bb2 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -943,6 +946,9 @@ public class PurpurWorldConfig { +@@ -946,6 +949,9 @@ public class PurpurWorldConfig { set("mobs.phantom.attributes.max_health", oldValue); } phantomMaxHealth = getDouble("mobs.phantom.attributes.max_health", phantomMaxHealth); diff --git a/patches/server/0079-Add-phantom-spawning-options.patch b/patches/server/0079-Add-phantom-spawning-options.patch index 54e42ce0b..50086e20a 100644 --- a/patches/server/0079-Add-phantom-spawning-options.patch +++ b/patches/server/0079-Add-phantom-spawning-options.patch @@ -48,10 +48,10 @@ index 79504dc3448402e73b09c4232b1fd0488872cf68..300c9f136edace2babea4a574090b184 for (int l = 0; l < k; ++l) { // Paper start diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index e9698b51080e8f1e8b7f717d6a624bb2c4854a3d..fd23c88f09293f9686a8e28b0292b95eb6aaee9d 100644 +index a989d32a6f9f69b739e726bfa90328134bc3d30f..42df00cdb3d4878b9d73983e97a1778157a9c3b2 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -933,6 +933,18 @@ public class PurpurWorldConfig { +@@ -936,6 +936,18 @@ public class PurpurWorldConfig { public double phantomAttackedByCrystalRadius = 0.0D; public float phantomAttackedByCrystalDamage = 1.0F; public double phantomOrbitCrystalRadius = 0.0D; @@ -70,7 +70,7 @@ index e9698b51080e8f1e8b7f717d6a624bb2c4854a3d..fd23c88f09293f9686a8e28b0292b95e private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -949,6 +961,18 @@ public class PurpurWorldConfig { +@@ -952,6 +964,18 @@ public class PurpurWorldConfig { phantomAttackedByCrystalRadius = getDouble("mobs.phantom.attacked-by-crystal-range", phantomAttackedByCrystalRadius); phantomAttackedByCrystalDamage = (float) getDouble("mobs.phantom.attacked-by-crystal-damage", phantomAttackedByCrystalDamage); phantomOrbitCrystalRadius = getDouble("mobs.phantom.orbit-crystal-radius", phantomOrbitCrystalRadius); diff --git a/patches/server/0080-Implement-bed-explosion-options.patch b/patches/server/0080-Implement-bed-explosion-options.patch index c1b3cd96b..f9a3620cf 100644 --- a/patches/server/0080-Implement-bed-explosion-options.patch +++ b/patches/server/0080-Implement-bed-explosion-options.patch @@ -27,10 +27,10 @@ index 163a7861f987c3832aac51cc6df950c768546731..bf5765b6af9c7807d50f7daaacb5d524 } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index fd23c88f09293f9686a8e28b0292b95eb6aaee9d..8536887c6f7dd956bfed477404b956ec20847a5a 100644 +index 42df00cdb3d4878b9d73983e97a1778157a9c3b2..deca4f1f4597893cff4eba16c5266b61b43fc075 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -276,6 +276,22 @@ public class PurpurWorldConfig { +@@ -279,6 +279,22 @@ public class PurpurWorldConfig { voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt); } diff --git a/patches/server/0081-Implement-respawn-anchor-explosion-options.patch b/patches/server/0081-Implement-respawn-anchor-explosion-options.patch index e00a4ce32..06308d0ba 100644 --- a/patches/server/0081-Implement-respawn-anchor-explosion-options.patch +++ b/patches/server/0081-Implement-respawn-anchor-explosion-options.patch @@ -18,10 +18,10 @@ index af4eb4a8814491afef449a2874521636957d7557..365c28300ecfbe0161716972adf22a8a public static boolean canSetSpawn(Level world) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 8536887c6f7dd956bfed477404b956ec20847a5a..669c8da249c0aedb511848b34ac3bf28e4a8eefc 100644 +index deca4f1f4597893cff4eba16c5266b61b43fc075..783b0106d7320892250073c2cda5df05bafdf424 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -313,6 +313,22 @@ public class PurpurWorldConfig { +@@ -316,6 +316,22 @@ public class PurpurWorldConfig { lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether); } diff --git a/patches/server/0084-Entity-lifespan.patch b/patches/server/0084-Entity-lifespan.patch index 39d998e61..4c581c151 100644 --- a/patches/server/0084-Entity-lifespan.patch +++ b/patches/server/0084-Entity-lifespan.patch @@ -89,10 +89,10 @@ index de3f7b0798d803e6d13a3c95aaaef3045ea22fed..9b8b82bf5bb276be51b8ba5c023879b3 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 9b5123a723270a5f7a8ee3e207e8e6dd8e7ebfb9..241439c61b8c871176f4206f22f6dfcc046c3998 100644 +index 783b0106d7320892250073c2cda5df05bafdf424..eefc96db78ea9dfe4207357ce8e528c099856502 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -108,6 +108,11 @@ public class PurpurWorldConfig { +@@ -111,6 +111,11 @@ public class PurpurWorldConfig { elytraDamagePerTridentBoost = getInt("gameplay-mechanics.elytra.damage-per-boost.trident", elytraDamagePerTridentBoost); } diff --git a/patches/server/0085-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch b/patches/server/0085-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch index 064d8ce60..94e1e568d 100644 --- a/patches/server/0085-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch +++ b/patches/server/0085-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch @@ -55,10 +55,10 @@ index 7192cc7e5a78af2a611bfd853972ac92a5490f23..d96c4d52282e69180273322cb9a83f73 } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 5f3cdb4f286e53afdce0d14209e0bb85138b22e6..2405f4b3db32d633b74ed555a7d088272fb197bc 100644 +index eefc96db78ea9dfe4207357ce8e528c099856502..b3a3e2a88021fc0d6e28e8869bf367207295ce3e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -227,6 +227,7 @@ public class PurpurWorldConfig { +@@ -230,6 +230,7 @@ public class PurpurWorldConfig { public boolean playersShouldCramToDeath = true; public String playerDeathExpDropEquation = "expLevel * 7"; public int playerDeathExpDropMax = 100; @@ -66,7 +66,7 @@ index 5f3cdb4f286e53afdce0d14209e0bb85138b22e6..2405f4b3db32d633b74ed555a7d08827 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); -@@ -237,6 +238,7 @@ public class PurpurWorldConfig { +@@ -240,6 +241,7 @@ public class PurpurWorldConfig { playersShouldCramToDeath = getBoolean("gameplay-mechanics.player.should-cram-to-death", playersShouldCramToDeath); playerDeathExpDropEquation = getString("gameplay-mechanics.player.exp-dropped-on-death.equation", playerDeathExpDropEquation); playerDeathExpDropMax = getInt("gameplay-mechanics.player.exp-dropped-on-death.maximum", playerDeathExpDropMax); diff --git a/patches/server/0086-Squid-EAR-immunity.patch b/patches/server/0086-Squid-EAR-immunity.patch index 9338ea0fa..7be661a9f 100644 --- a/patches/server/0086-Squid-EAR-immunity.patch +++ b/patches/server/0086-Squid-EAR-immunity.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Squid EAR immunity diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 2405f4b3db32d633b74ed555a7d088272fb197bc..5fa1f90db6c6b3640968fd4ae2b9cd4953576b10 100644 +index b3a3e2a88021fc0d6e28e8869bf367207295ce3e..953ca17a43241e980197bad3084b9344f189de41 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1266,6 +1266,7 @@ public class PurpurWorldConfig { +@@ -1269,6 +1269,7 @@ public class PurpurWorldConfig { public boolean squidRidable = false; public double squidMaxHealth = 10.0D; @@ -16,7 +16,7 @@ index 2405f4b3db32d633b74ed555a7d088272fb197bc..5fa1f90db6c6b3640968fd4ae2b9cd49 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); if (PurpurConfig.version < 10) { -@@ -1274,6 +1275,7 @@ public class PurpurWorldConfig { +@@ -1277,6 +1278,7 @@ public class PurpurWorldConfig { set("mobs.squid.attributes.max_health", oldValue); } squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth); diff --git a/patches/server/0088-Phantoms-burn-in-light.patch b/patches/server/0088-Phantoms-burn-in-light.patch index 5cd1751d9..91befa505 100644 --- a/patches/server/0088-Phantoms-burn-in-light.patch +++ b/patches/server/0088-Phantoms-burn-in-light.patch @@ -47,10 +47,10 @@ index 916c29d08fbcf245ad6f50f8e8cc173677b01081..c55aba456aa144e58fc35877c61eff30 list.sort(Comparator.comparing(Entity::getY).reversed()); // Paper - remap fix Iterator iterator = list.iterator(); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 5fa1f90db6c6b3640968fd4ae2b9cd4953576b10..924f566b6b85c32be16c901b5cbeb8a9bccfc0de 100644 +index 953ca17a43241e980197bad3084b9344f189de41..f34926d9da4103b4b36fd023e05d7aa4285bcabf 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -984,6 +984,9 @@ public class PurpurWorldConfig { +@@ -987,6 +987,9 @@ public class PurpurWorldConfig { public int phantomSpawnOverheadRadius = 10; public int phantomSpawnMinPerAttempt = 1; public int phantomSpawnMaxPerAttempt = -1; @@ -60,7 +60,7 @@ index 5fa1f90db6c6b3640968fd4ae2b9cd4953576b10..924f566b6b85c32be16c901b5cbeb8a9 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1012,6 +1015,9 @@ public class PurpurWorldConfig { +@@ -1015,6 +1018,9 @@ public class PurpurWorldConfig { phantomSpawnOverheadRadius = getInt("mobs.phantom.spawn.overhead.radius", phantomSpawnOverheadRadius); phantomSpawnMinPerAttempt = getInt("mobs.phantom.spawn.per-attempt.min", phantomSpawnMinPerAttempt); phantomSpawnMaxPerAttempt = getInt("mobs.phantom.spawn.per-attempt.max", phantomSpawnMaxPerAttempt); diff --git a/patches/server/0089-Configurable-villager-breeding.patch b/patches/server/0089-Configurable-villager-breeding.patch index 88d0a73e7..ba5880d56 100644 --- a/patches/server/0089-Configurable-villager-breeding.patch +++ b/patches/server/0089-Configurable-villager-breeding.patch @@ -18,10 +18,10 @@ index 3865f16e027307f5b8b2a5617b66ffd8b9f85c60..bb3572370a86519a92b7b3dab0482cd1 private boolean hungry() { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 924f566b6b85c32be16c901b5cbeb8a9bccfc0de..23a8d74066fc65545cd7eb575c28535d1be6e1cf 100644 +index f34926d9da4103b4b36fd023e05d7aa4285bcabf..f8c2b2174a02be8756994c473c5676f6d5a41243 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1409,6 +1409,7 @@ public class PurpurWorldConfig { +@@ -1412,6 +1412,7 @@ public class PurpurWorldConfig { public boolean villagerCanBeLeashed = false; public int villagerSpawnIronGolemRadius = 0; public int villagerSpawnIronGolemLimit = 0; @@ -29,7 +29,7 @@ index 924f566b6b85c32be16c901b5cbeb8a9bccfc0de..23a8d74066fc65545cd7eb575c28535d private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1424,6 +1425,7 @@ public class PurpurWorldConfig { +@@ -1427,6 +1428,7 @@ public class PurpurWorldConfig { villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed); villagerSpawnIronGolemRadius = getInt("mobs.villager.spawn-iron-golem.radius", villagerSpawnIronGolemRadius); villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit); diff --git a/patches/server/0090-Redstone-deactivates-spawners.patch b/patches/server/0090-Redstone-deactivates-spawners.patch index f80adc543..f43cb6a2f 100644 --- a/patches/server/0090-Redstone-deactivates-spawners.patch +++ b/patches/server/0090-Redstone-deactivates-spawners.patch @@ -17,10 +17,10 @@ index 9228c0bc797fb95c8ac949bdc568eadafee84a80..f2c9f841d397f445cd3d0420f19e765c } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 23a8d74066fc65545cd7eb575c28535d1be6e1cf..cb1fbac4081f07f272802b654701fbcfb1bb587e 100644 +index f8c2b2174a02be8756994c473c5676f6d5a41243..1283e183c66629630726e48e6983afecb38e1204 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -343,6 +343,11 @@ public class PurpurWorldConfig { +@@ -346,6 +346,11 @@ public class PurpurWorldConfig { signRightClickEdit = getBoolean("blocks.sign.right-click-edit", signRightClickEdit); } diff --git a/patches/server/0091-Totems-work-in-inventory.patch b/patches/server/0091-Totems-work-in-inventory.patch index 895878202..437d4c044 100644 --- a/patches/server/0091-Totems-work-in-inventory.patch +++ b/patches/server/0091-Totems-work-in-inventory.patch @@ -29,10 +29,10 @@ index d96c4d52282e69180273322cb9a83f7365667fe3..0fa7a658af3dc1766e06d90d396a426c event.setCancelled(itemstack == null); this.level.getCraftServer().getPluginManager().callEvent(event); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index cb1fbac4081f07f272802b654701fbcfb1bb587e..0f1b5a1bc162ce859293511c8069e462cb47315b 100644 +index 1283e183c66629630726e48e6983afecb38e1204..a0fbd24dfb21c3ab0e345feee174536a8cda905f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -228,6 +228,7 @@ public class PurpurWorldConfig { +@@ -231,6 +231,7 @@ public class PurpurWorldConfig { public String playerDeathExpDropEquation = "expLevel * 7"; public int playerDeathExpDropMax = 100; public boolean teleportIfOutsideBorder = false; @@ -40,7 +40,7 @@ index cb1fbac4081f07f272802b654701fbcfb1bb587e..0f1b5a1bc162ce859293511c8069e462 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); -@@ -239,6 +240,7 @@ public class PurpurWorldConfig { +@@ -242,6 +243,7 @@ public class PurpurWorldConfig { playerDeathExpDropEquation = getString("gameplay-mechanics.player.exp-dropped-on-death.equation", playerDeathExpDropEquation); playerDeathExpDropMax = getInt("gameplay-mechanics.player.exp-dropped-on-death.maximum", playerDeathExpDropMax); teleportIfOutsideBorder = getBoolean("gameplay-mechanics.player.teleport-if-outside-border", teleportIfOutsideBorder); diff --git a/patches/server/0092-Add-vindicator-johnny-spawn-chance.patch b/patches/server/0092-Add-vindicator-johnny-spawn-chance.patch index 7c4a8bda9..447cb2b4a 100644 --- a/patches/server/0092-Add-vindicator-johnny-spawn-chance.patch +++ b/patches/server/0092-Add-vindicator-johnny-spawn-chance.patch @@ -30,10 +30,10 @@ index 76e6ea34db3942e9dd7646ad7ca1259f4387a4d8..9096c40ad5784d9097e889f0f43b6cf1 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 0f1b5a1bc162ce859293511c8069e462cb47315b..51baaed16bc600d1b420b2b81cceea25ae034615 100644 +index a0fbd24dfb21c3ab0e345feee174536a8cda905f..75c159b8251aaee446a8ec44490be2335bd6d822 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1438,6 +1438,7 @@ public class PurpurWorldConfig { +@@ -1441,6 +1441,7 @@ public class PurpurWorldConfig { public boolean vindicatorRidable = false; public boolean vindicatorRidableInWater = false; public double vindicatorMaxHealth = 24.0D; @@ -41,7 +41,7 @@ index 0f1b5a1bc162ce859293511c8069e462cb47315b..51baaed16bc600d1b420b2b81cceea25 private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -1447,6 +1448,7 @@ public class PurpurWorldConfig { +@@ -1450,6 +1451,7 @@ public class PurpurWorldConfig { set("mobs.vindicator.attributes.max_health", oldValue); } vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth); diff --git a/patches/server/0094-Dispensers-place-anvils-option.patch b/patches/server/0094-Dispensers-place-anvils-option.patch index 188eb1195..d8fb6b053 100644 --- a/patches/server/0094-Dispensers-place-anvils-option.patch +++ b/patches/server/0094-Dispensers-place-anvils-option.patch @@ -41,10 +41,10 @@ index 92623ae25249d63efb92be8bd6c95228f9155ad2..20bf6d01046488eff53a109f5239351a static void setEntityPokingOutOfBlock(BlockSource pointer, Entity entity, Direction direction) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 51baaed16bc600d1b420b2b81cceea25ae034615..4bdf3366c21a546ac3b04e67181f18dcc94a3b8e 100644 +index 75c159b8251aaee446a8ec44490be2335bd6d822..f34dfe5d2b235e482623214cd233e83475807491 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -302,8 +302,10 @@ public class PurpurWorldConfig { +@@ -305,8 +305,10 @@ public class PurpurWorldConfig { } public boolean dispenserApplyCursedArmor = true; diff --git a/patches/server/0095-Allow-anvil-colors.patch b/patches/server/0095-Allow-anvil-colors.patch index 613bdae5c..cfd7f013c 100644 --- a/patches/server/0095-Allow-anvil-colors.patch +++ b/patches/server/0095-Allow-anvil-colors.patch @@ -37,10 +37,10 @@ index c81af461fa01dac0b7b26becc1a5e7ae31bb5f95..2dbc71a3d76cc87e2683b8f351bd8db0 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 4bdf3366c21a546ac3b04e67181f18dcc94a3b8e..8d5c126d240ec7b69e5495580a4a6df5f51b5aac 100644 +index f34dfe5d2b235e482623214cd233e83475807491..40103cf35d15b2fbc88ea737eb74f7d76bbbbc7f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -285,6 +285,11 @@ public class PurpurWorldConfig { +@@ -288,6 +288,11 @@ public class PurpurWorldConfig { voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt); } diff --git a/patches/server/0096-Add-no-random-tick-block-list.patch b/patches/server/0096-Add-no-random-tick-block-list.patch index d14848d82..2bf374d50 100644 --- a/patches/server/0096-Add-no-random-tick-block-list.patch +++ b/patches/server/0096-Add-no-random-tick-block-list.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add no-random-tick block list diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index aabeccd82153b5886e7cc59beca5a0068cd70856..08da918c3673d1fce9b283807a113d62af0af9ee 100644 +index 0b22974ffe3ad2dd858f571980107eba9b56882e..f3a1eeb389e790d7c482626f5aee872ab298af66 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -488,7 +488,7 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl @@ -35,10 +35,10 @@ index 7538262e14c86e4da9cd4cb887b76f649bfef2e6..f34973be478de4f088a0593b45bd89e5 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 8d5c126d240ec7b69e5495580a4a6df5f51b5aac..fc54704ff8cb7613570860d848531a15937fb279 100644 +index 40103cf35d15b2fbc88ea737eb74f7d76bbbbc7f..d1a239672c16cfac3872f39ecd8c42e56cf2923b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -285,6 +285,28 @@ public class PurpurWorldConfig { +@@ -288,6 +288,28 @@ public class PurpurWorldConfig { voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt); } diff --git a/patches/server/0097-Add-option-to-disable-dolphin-treasure-searching.patch b/patches/server/0097-Add-option-to-disable-dolphin-treasure-searching.patch index 0961e464b..ecb97ac72 100644 --- a/patches/server/0097-Add-option-to-disable-dolphin-treasure-searching.patch +++ b/patches/server/0097-Add-option-to-disable-dolphin-treasure-searching.patch @@ -17,10 +17,10 @@ index c372d47a929e06c8cfb0df86cf4e9bfee4d4b300..2aead13e8f879b614445715fb1912a20 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index fc54704ff8cb7613570860d848531a15937fb279..05e8e1243a37cc08842882ad0a9cfcef42605930 100644 +index d1a239672c16cfac3872f39ecd8c42e56cf2923b..580f826622bb197da9e4439a556c840eb41087e8 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -551,6 +551,7 @@ public class PurpurWorldConfig { +@@ -554,6 +554,7 @@ public class PurpurWorldConfig { public float dolphinSpitSpeed = 1.0F; public float dolphinSpitDamage = 2.0F; public double dolphinMaxHealth = 10.0D; @@ -28,7 +28,7 @@ index fc54704ff8cb7613570860d848531a15937fb279..05e8e1243a37cc08842882ad0a9cfcef private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinSpitCooldown = getInt("mobs.dolphin.spit.cooldown", dolphinSpitCooldown); -@@ -562,6 +563,7 @@ public class PurpurWorldConfig { +@@ -565,6 +566,7 @@ public class PurpurWorldConfig { set("mobs.dolphin.attributes.max_health", oldValue); } dolphinMaxHealth = getDouble("mobs.dolphin.attributes.max_health", dolphinMaxHealth); diff --git a/patches/server/0099-Stop-squids-floating-on-top-of-water.patch b/patches/server/0099-Stop-squids-floating-on-top-of-water.patch index 88e132455..598e76911 100644 --- a/patches/server/0099-Stop-squids-floating-on-top-of-water.patch +++ b/patches/server/0099-Stop-squids-floating-on-top-of-water.patch @@ -60,10 +60,10 @@ index 6f7e6429c35eea346517cbf08cf223fc6d838a8c..6a77112180556675af38cb1b3ce0b38a + // Purpur } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 05e8e1243a37cc08842882ad0a9cfcef42605930..0f348d1c1941a4853dd4e4ee1335c95a2d904d4e 100644 +index 580f826622bb197da9e4439a556c840eb41087e8..2e924d6cf915b93b3c3f18e0d3dfddb45cdc2463 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1311,6 +1311,7 @@ public class PurpurWorldConfig { +@@ -1314,6 +1314,7 @@ public class PurpurWorldConfig { public boolean squidRidable = false; public double squidMaxHealth = 10.0D; public boolean squidImmuneToEAR = true; @@ -71,7 +71,7 @@ index 05e8e1243a37cc08842882ad0a9cfcef42605930..0f348d1c1941a4853dd4e4ee1335c95a private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); if (PurpurConfig.version < 10) { -@@ -1320,6 +1321,7 @@ public class PurpurWorldConfig { +@@ -1323,6 +1324,7 @@ public class PurpurWorldConfig { } squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth); squidImmuneToEAR = getBoolean("mobs.squid.immune-to-EAR", squidImmuneToEAR); diff --git a/patches/server/0102-Entities-can-use-portals-configuration.patch b/patches/server/0102-Entities-can-use-portals-configuration.patch index 58cff27fd..a6349e7ba 100644 --- a/patches/server/0102-Entities-can-use-portals-configuration.patch +++ b/patches/server/0102-Entities-can-use-portals-configuration.patch @@ -27,10 +27,10 @@ index e43b31f07d6f0cbb35f925dca952b5947fe1fd4f..cc5854281d976c2faa453c2a6b07b574 public float getBlockExplosionResistance(Explosion explosion, BlockGetter world, BlockPos pos, BlockState blockState, FluidState fluidState, float max) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 0f348d1c1941a4853dd4e4ee1335c95a2d904d4e..96998a9e692988b08b56b3eea43b7ea0851060f1 100644 +index 2e924d6cf915b93b3c3f18e0d3dfddb45cdc2463..5e1876ceed7ed597012f85df6e8e5f6d99868ee9 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -271,6 +271,7 @@ public class PurpurWorldConfig { +@@ -274,6 +274,7 @@ public class PurpurWorldConfig { public boolean useBetterMending = false; public boolean boatEjectPlayersOnLand = false; public boolean disableDropsOnCrammingDeath = false; @@ -38,7 +38,7 @@ index 0f348d1c1941a4853dd4e4ee1335c95a2d904d4e..96998a9e692988b08b56b3eea43b7ea0 public boolean milkCuresBadOmen = true; public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; -@@ -279,6 +280,7 @@ public class PurpurWorldConfig { +@@ -282,6 +283,7 @@ public class PurpurWorldConfig { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); disableDropsOnCrammingDeath = getBoolean("gameplay-mechanics.disable-drops-on-cramming-death", disableDropsOnCrammingDeath); diff --git a/patches/server/0104-Customizable-wither-health-and-healing.patch b/patches/server/0104-Customizable-wither-health-and-healing.patch index 30a9e23cc..4368d3051 100644 --- a/patches/server/0104-Customizable-wither-health-and-healing.patch +++ b/patches/server/0104-Customizable-wither-health-and-healing.patch @@ -23,10 +23,10 @@ index 22dd455b3b9c148f38a63f72901009f864e63a4b..689df66281ef84f0cc31d89c6f2e654c this.bossEvent.setProgress(this.getHealth() / this.getMaxHealth()); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 96998a9e692988b08b56b3eea43b7ea0851060f1..38cb0475121ae242c4174eefea9952f41339779c 100644 +index 5e1876ceed7ed597012f85df6e8e5f6d99868ee9..7ef7877013068fd76545b30d1afea899ff9298a6 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1522,6 +1522,8 @@ public class PurpurWorldConfig { +@@ -1525,6 +1525,8 @@ public class PurpurWorldConfig { public boolean witherRidableInWater = false; public double witherMaxY = 256D; public double witherMaxHealth = 300.0D; @@ -35,7 +35,7 @@ index 96998a9e692988b08b56b3eea43b7ea0851060f1..38cb0475121ae242c4174eefea9952f4 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1536,6 +1538,8 @@ public class PurpurWorldConfig { +@@ -1539,6 +1541,8 @@ public class PurpurWorldConfig { set("mobs.wither.attributes.max_health", oldValue); } witherMaxHealth = getDouble("mobs.wither.attributes.max_health", witherMaxHealth); diff --git a/patches/server/0105-Allow-toggling-special-MobSpawners-per-world.patch b/patches/server/0105-Allow-toggling-special-MobSpawners-per-world.patch index c7cb7c2f3..48d7bfa08 100644 --- a/patches/server/0105-Allow-toggling-special-MobSpawners-per-world.patch +++ b/patches/server/0105-Allow-toggling-special-MobSpawners-per-world.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Allow toggling special MobSpawners per world In vanilla, these are all hardcoded on for world type 0 (overworld) and hardcoded off for every other world type. Default config behaviour matches this. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index edcc1c8ff972c94983193b0057a9d11875ecc0c6..13bee6ce45fd718484a9cf08645556717c9934e8 100644 +index f3a1eeb389e790d7c482626f5aee872ab298af66..7620030f795604c49596ce972c0b39438341e4df 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -83,6 +83,7 @@ import net.minecraft.world.entity.MobCategory; @@ -94,10 +94,10 @@ index f8ede3588bfda9a7d4d5807311a3e9c2651fd0a3..56967cef0f184def046935e20148574f if (NaturalSpawner.isSpawnPositionOk(SpawnPlacements.Type.ON_GROUND, world, blockposition2, EntityType.WANDERING_TRADER)) { blockposition1 = blockposition2; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 2dabbe5d444e108fcf167dd001921c9c5c2294fd..ab389b70947d4410148f3e5f243346f63784981b 100644 +index 7ef7877013068fd76545b30d1afea899ff9298a6..8ae9ca467ea1d8803b8a97a2495b1edb8ef8dc40 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -69,6 +69,12 @@ public class PurpurWorldConfig { +@@ -72,6 +72,12 @@ public class PurpurWorldConfig { return PurpurConfig.config.getBoolean("world-settings." + worldName + "." + path, PurpurConfig.config.getBoolean("world-settings.default." + path)); } @@ -110,7 +110,7 @@ index 2dabbe5d444e108fcf167dd001921c9c5c2294fd..ab389b70947d4410148f3e5f243346f6 private double getDouble(String path, double def) { PurpurConfig.config.addDefault("world-settings.default." + path, def); return PurpurConfig.config.getDouble("world-settings." + worldName + "." + path, PurpurConfig.config.getDouble("world-settings.default." + path)); -@@ -218,6 +224,21 @@ public class PurpurWorldConfig { +@@ -221,6 +227,21 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0106-Raid-cooldown-setting.patch b/patches/server/0106-Raid-cooldown-setting.patch index fbfa91887..7f1c81281 100644 --- a/patches/server/0106-Raid-cooldown-setting.patch +++ b/patches/server/0106-Raid-cooldown-setting.patch @@ -52,10 +52,10 @@ index 45e369aa69a6b78def42b619b1b1b8259d4b30ea..de7443e7a27e51eabaed2d6d348ec8ea if (!this.raidMap.containsKey(raid.getId())) { this.raidMap.put(raid.getId(), raid); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 32973e3b449c6f954f49b9f8f5535ce4a6b7720d..817659cdc0ba25c3418a344661ffeb9394e91ab6 100644 +index 8ae9ca467ea1d8803b8a97a2495b1edb8ef8dc40..23e38d663bf5ab8d592d64e54128fe17dfe8f025 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -297,6 +297,7 @@ public class PurpurWorldConfig { +@@ -300,6 +300,7 @@ public class PurpurWorldConfig { public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; @@ -63,7 +63,7 @@ index 32973e3b449c6f954f49b9f8f5535ce4a6b7720d..817659cdc0ba25c3418a344661ffeb93 private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); -@@ -306,6 +307,7 @@ public class PurpurWorldConfig { +@@ -309,6 +310,7 @@ public class PurpurWorldConfig { tridentLoyaltyVoidReturnHeight = getDouble("gameplay-mechanics.trident-loyalty-void-return-height", tridentLoyaltyVoidReturnHeight); voidDamageHeight = getDouble("gameplay-mechanics.void-damage-height", voidDamageHeight); voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt); diff --git a/patches/server/0107-Despawn-rate-config-options-per-projectile-type.patch b/patches/server/0107-Despawn-rate-config-options-per-projectile-type.patch index 88c318cdb..4d72d287d 100644 --- a/patches/server/0107-Despawn-rate-config-options-per-projectile-type.patch +++ b/patches/server/0107-Despawn-rate-config-options-per-projectile-type.patch @@ -289,10 +289,10 @@ index 4a11f7417b438ee5711a720aca3321c88e970b2a..46b74271ce5f614f07754db14d2a552c + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 817659cdc0ba25c3418a344661ffeb9394e91ab6..35a775741175e0d92899ffbd16f2830103c7840d 100644 +index 23e38d663bf5ab8d592d64e54128fe17dfe8f025..30789fb3579896ac404eaa3941bc4c41a8979282 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -264,6 +264,35 @@ public class PurpurWorldConfig { +@@ -267,6 +267,35 @@ public class PurpurWorldConfig { totemOfUndyingWorksInInventory = getBoolean("gameplay-mechanics.player.totem-of-undying-works-in-inventory", totemOfUndyingWorksInInventory); } diff --git a/patches/server/0108-Add-option-to-disable-zombie-aggressiveness-towards-.patch b/patches/server/0108-Add-option-to-disable-zombie-aggressiveness-towards-.patch index 061304cbe..24c849794 100644 --- a/patches/server/0108-Add-option-to-disable-zombie-aggressiveness-towards-.patch +++ b/patches/server/0108-Add-option-to-disable-zombie-aggressiveness-towards-.patch @@ -71,10 +71,10 @@ index 77002a4c3b03e0397515fd922f14e56b8e81074a..b80f7c71cbf7b10bda6fac3cfe673ac7 this.targetSelector.addGoal(5, new NearestAttackableTargetGoal<>(this, Turtle.class, 10, true, false, Turtle.BABY_ON_LAND_SELECTOR)); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 35a775741175e0d92899ffbd16f2830103c7840d..92fd37fb254eea607f1e42df668ed1c5e8928be5 100644 +index 30789fb3579896ac404eaa3941bc4c41a8979282..fe946308f944b41d4839ed8654f8f0c721ec2759 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1645,6 +1645,7 @@ public class PurpurWorldConfig { +@@ -1648,6 +1648,7 @@ public class PurpurWorldConfig { public boolean zombieJockeyOnlyBaby = true; public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; @@ -82,7 +82,7 @@ index 35a775741175e0d92899ffbd16f2830103c7840d..92fd37fb254eea607f1e42df668ed1c5 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1658,6 +1659,7 @@ public class PurpurWorldConfig { +@@ -1661,6 +1662,7 @@ public class PurpurWorldConfig { zombieJockeyOnlyBaby = getBoolean("mobs.zombie.jockey.only-babies", zombieJockeyOnlyBaby); zombieJockeyChance = getDouble("mobs.zombie.jockey.chance", zombieJockeyChance); zombieJockeyTryExistingChickens = getBoolean("mobs.zombie.jockey.try-existing-chickens", zombieJockeyTryExistingChickens); diff --git a/patches/server/0109-Persistent-TileEntity-Lore-and-DisplayName.patch b/patches/server/0109-Persistent-TileEntity-Lore-and-DisplayName.patch index cc7432995..741e9ae2a 100644 --- a/patches/server/0109-Persistent-TileEntity-Lore-and-DisplayName.patch +++ b/patches/server/0109-Persistent-TileEntity-Lore-and-DisplayName.patch @@ -189,10 +189,10 @@ index c3a07ccccd5cc38552363c82398f432c8d624288..132c9e6a643995d9fde535a78d9edc9e + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 92fd37fb254eea607f1e42df668ed1c5e8928be5..3d3cd01c7997c05430bc70099f12c68d53cfdc40 100644 +index fe946308f944b41d4839ed8654f8f0c721ec2759..039b20dc90b37522563885fd9a35b089b2771e98 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -323,6 +323,7 @@ public class PurpurWorldConfig { +@@ -326,6 +326,7 @@ public class PurpurWorldConfig { public boolean disableDropsOnCrammingDeath = false; public boolean entitiesCanUsePortals = true; public boolean milkCuresBadOmen = true; @@ -200,7 +200,7 @@ index 92fd37fb254eea607f1e42df668ed1c5e8928be5..3d3cd01c7997c05430bc70099f12c68d public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -333,6 +334,7 @@ public class PurpurWorldConfig { +@@ -336,6 +337,7 @@ public class PurpurWorldConfig { disableDropsOnCrammingDeath = getBoolean("gameplay-mechanics.disable-drops-on-cramming-death", disableDropsOnCrammingDeath); entitiesCanUsePortals = getBoolean("gameplay-mechanics.entities-can-use-portals", entitiesCanUsePortals); milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); diff --git a/patches/server/0111-Flying-squids-Oh-my.patch b/patches/server/0111-Flying-squids-Oh-my.patch index c9a7c9467..6dd0e9947 100644 --- a/patches/server/0111-Flying-squids-Oh-my.patch +++ b/patches/server/0111-Flying-squids-Oh-my.patch @@ -58,10 +58,10 @@ index 2affff346a7fe81480e86cb61996039df0569853..12be4a2f25a7def8341acda47d10a256 float f1 = Mth.cos(f) * 0.2F; float f2 = -0.1F + this.squid.getRandom().nextFloat() * 0.2F; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 3d3cd01c7997c05430bc70099f12c68d53cfdc40..cf20518ee737bd8b086e6d4e5d0a8236edc45a8d 100644 +index 039b20dc90b37522563885fd9a35b089b2771e98..7308e5bdd235f2459b1debdaa123615c283539cb 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -810,9 +810,11 @@ public class PurpurWorldConfig { +@@ -813,9 +813,11 @@ public class PurpurWorldConfig { public boolean glowSquidRidable = false; public double glowSquidMaxHealth = 10.0D; @@ -73,7 +73,7 @@ index 3d3cd01c7997c05430bc70099f12c68d53cfdc40..cf20518ee737bd8b086e6d4e5d0a8236 } public boolean goatRidable = false; -@@ -1368,6 +1370,7 @@ public class PurpurWorldConfig { +@@ -1371,6 +1373,7 @@ public class PurpurWorldConfig { public double squidMaxHealth = 10.0D; public boolean squidImmuneToEAR = true; public double squidOffsetWaterCheck = 0.0D; @@ -81,7 +81,7 @@ index 3d3cd01c7997c05430bc70099f12c68d53cfdc40..cf20518ee737bd8b086e6d4e5d0a8236 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); if (PurpurConfig.version < 10) { -@@ -1378,6 +1381,7 @@ public class PurpurWorldConfig { +@@ -1381,6 +1384,7 @@ public class PurpurWorldConfig { squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth); squidImmuneToEAR = getBoolean("mobs.squid.immune-to-EAR", squidImmuneToEAR); squidOffsetWaterCheck = getDouble("mobs.squid.water-offset-check", squidOffsetWaterCheck); diff --git a/patches/server/0112-Infinity-bow-settings.patch b/patches/server/0112-Infinity-bow-settings.patch index 28cc86fa4..94eb7dcec 100644 --- a/patches/server/0112-Infinity-bow-settings.patch +++ b/patches/server/0112-Infinity-bow-settings.patch @@ -27,10 +27,10 @@ index afe33f20578177cb517e1c116e6319481642e66c..fe4695adbb506733b4029ecfabcfda3d } else { user.startUsingItem(hand); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 11db98679973399dc227bb0d63ac688c81426a97..63556973302e6073c2599730847549273a145755 100644 +index 7308e5bdd235f2459b1debdaa123615c283539cb..ab1a8250c90bc7b555f678ff0a119a90102a1356 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -119,6 +119,17 @@ public class PurpurWorldConfig { +@@ -122,6 +122,17 @@ public class PurpurWorldConfig { entityLifeSpan = getInt("gameplay-mechanics.entity-lifespan", entityLifeSpan); } diff --git a/patches/server/0113-Stonecutter-damage.patch b/patches/server/0113-Stonecutter-damage.patch index d63830d62..e89fb2ea4 100644 --- a/patches/server/0113-Stonecutter-damage.patch +++ b/patches/server/0113-Stonecutter-damage.patch @@ -61,10 +61,10 @@ index 2ad5ff9a1d7de54e75436e99da8a73db9dc91bde..60605a8a021cc56f9c3ba22bc43c43c3 } else if (blockState.is(Blocks.HONEY_BLOCK)) { return BlockPathTypes.STICKY_HONEY; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 2a19f9cdac1ca472ff48ede1745361df80046351..b046987913677bdcabe0134c8146cf41cf4e301a 100644 +index ab1a8250c90bc7b555f678ff0a119a90102a1356..cddccb3329be99ce11ea30b651184fb9eea243b3 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -446,6 +446,11 @@ public class PurpurWorldConfig { +@@ -449,6 +449,11 @@ public class PurpurWorldConfig { spawnerDeactivateByRedstone = getBoolean("blocks.spawner.deactivate-by-redstone", spawnerDeactivateByRedstone); } diff --git a/patches/server/0114-Configurable-daylight-cycle.patch b/patches/server/0114-Configurable-daylight-cycle.patch index bc8ef9ee1..6abd7f198 100644 --- a/patches/server/0114-Configurable-daylight-cycle.patch +++ b/patches/server/0114-Configurable-daylight-cycle.patch @@ -18,7 +18,7 @@ index 689ad22925b2561f7c8db961743eb1f821dbb25f..fa3c960992cc240161817e54659d83fe public ClientboundSetTimePacket(long time, long timeOfDay, boolean doDaylightCycle) { this.gameTime = time % 192000; // Paper - fix guardian beam diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 13bee6ce45fd718484a9cf08645556717c9934e8..07e6d7b7a6d275010797c991be977d6136478c8b 100644 +index 7620030f795604c49596ce972c0b39438341e4df..276fb2b9fc9d33dc2157903e799178168c69bc88 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -201,6 +201,7 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl @@ -70,10 +70,10 @@ index 13bee6ce45fd718484a9cf08645556717c9934e8..07e6d7b7a6d275010797c991be977d61 public void tickCustomSpawners(boolean spawnMonsters, boolean spawnAnimals) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 23c5b84db099b2ac72699cee41f8c2084adec0ed..e23b646a5f2661a26e069021bebaa06706185d80 100644 +index cddccb3329be99ce11ea30b651184fb9eea243b3..b91e2bda59fa82ab0d86f70a6d0185ae76126772 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -101,6 +101,13 @@ public class PurpurWorldConfig { +@@ -104,6 +104,13 @@ public class PurpurWorldConfig { armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight); } diff --git a/patches/server/0116-Furnace-uses-lava-from-underneath.patch b/patches/server/0116-Furnace-uses-lava-from-underneath.patch index fd1e7b7a0..cc51ff16d 100644 --- a/patches/server/0116-Furnace-uses-lava-from-underneath.patch +++ b/patches/server/0116-Furnace-uses-lava-from-underneath.patch @@ -48,10 +48,10 @@ index 348e485897c34cca19113cc35f055a58778ca38b..fb3f7e821224889b08c0f424d79e122c private static boolean canBurn(@Nullable Recipe recipe, NonNullList slots, int count) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 180a136f779935404845136319241c0b7aa1f3ea..aaa37f704948a458ec987e20879d2c7afa4a6640 100644 +index b91e2bda59fa82ab0d86f70a6d0185ae76126772..173cd963b74715943ba8d6ef49ffa9bcd0e4a09b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -414,6 +414,17 @@ public class PurpurWorldConfig { +@@ -417,6 +417,17 @@ public class PurpurWorldConfig { farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); } diff --git a/patches/server/0118-Ability-to-re-add-farmland-mechanics-from-Alpha.patch b/patches/server/0118-Ability-to-re-add-farmland-mechanics-from-Alpha.patch index c2b9fa591..e6df655e4 100644 --- a/patches/server/0118-Ability-to-re-add-farmland-mechanics-from-Alpha.patch +++ b/patches/server/0118-Ability-to-re-add-farmland-mechanics-from-Alpha.patch @@ -24,10 +24,10 @@ index 5d9d77cb382c8075af2713a0ce26c28a35a0aaa8..2d4d59eb5a534e4c283933b734c44776 return; } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index aaa37f704948a458ec987e20879d2c7afa4a6640..a5677367307af35b9a3f234372cc30581156b730 100644 +index 173cd963b74715943ba8d6ef49ffa9bcd0e4a09b..92651fe2b2fc2837d3c74a7a71192e8502bf013e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -410,8 +410,10 @@ public class PurpurWorldConfig { +@@ -413,8 +413,10 @@ public class PurpurWorldConfig { } public boolean farmlandGetsMoistFromBelow = false; diff --git a/patches/server/0119-Add-adjustable-breeding-cooldown-to-config.patch b/patches/server/0119-Add-adjustable-breeding-cooldown-to-config.patch index 943c76564..32d3dddb3 100644 --- a/patches/server/0119-Add-adjustable-breeding-cooldown-to-config.patch +++ b/patches/server/0119-Add-adjustable-breeding-cooldown-to-config.patch @@ -33,7 +33,7 @@ index 5a503a255b4e7e684a8f42d8190430397ca81683..7a90c6a628571730eee382e1efcfe1b9 entityageable.setBaby(true); entityageable.moveTo(this.getX(), this.getY(), this.getZ(), 0.0F, 0.0F); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 8a9d103a579bc2a1874b99b3f8543d875cd9119f..e2ce992486308f0edff1477d78a1bef3fa3e3346 100644 +index 0b673d8854f3afc79226bf10c00cd8098438eed0..132f6e7de8bd9072c41a14caba3167500f1e16e7 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -187,6 +187,49 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -95,10 +95,10 @@ index 8a9d103a579bc2a1874b99b3f8543d875cd9119f..e2ce992486308f0edff1477d78a1bef3 this.world = new CraftWorld((ServerLevel) this, gen, env); this.ticksPerAnimalSpawns = this.getCraftServer().getTicksPerAnimalSpawns(); // CraftBukkit diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index a5677367307af35b9a3f234372cc30581156b730..f3cb34b45579647047a28816b13d7e63cb40bb29 100644 +index 92651fe2b2fc2837d3c74a7a71192e8502bf013e..965ab0b3d77fa8a46fa64a149aed4308d38ee1dd 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -346,6 +346,7 @@ public class PurpurWorldConfig { +@@ -349,6 +349,7 @@ public class PurpurWorldConfig { public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; public int raidCooldownSeconds = 0; @@ -106,7 +106,7 @@ index a5677367307af35b9a3f234372cc30581156b730..f3cb34b45579647047a28816b13d7e63 private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); -@@ -357,6 +358,7 @@ public class PurpurWorldConfig { +@@ -360,6 +361,7 @@ public class PurpurWorldConfig { voidDamageHeight = getDouble("gameplay-mechanics.void-damage-height", voidDamageHeight); voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt); raidCooldownSeconds = getInt("gameplay-mechanics.raid-cooldown-seconds", raidCooldownSeconds); diff --git a/patches/server/0120-Make-entity-breeding-times-configurable.patch b/patches/server/0120-Make-entity-breeding-times-configurable.patch index 975bab521..ca7f6d7d7 100644 --- a/patches/server/0120-Make-entity-breeding-times-configurable.patch +++ b/patches/server/0120-Make-entity-breeding-times-configurable.patch @@ -474,10 +474,10 @@ index 5d289be8f0ef003abbce992e7662f6ddce4f4a99..5e3d7321a73144c3e4c43c18c5b748b2 @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af56735bd0210 100644 +index 965ab0b3d77fa8a46fa64a149aed4308d38ee1dd..4c03174509c6638ab3cf0f796b27a527d46d65b1 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -484,9 +484,11 @@ public class PurpurWorldConfig { +@@ -487,9 +487,11 @@ public class PurpurWorldConfig { public boolean axolotlRidable = false; public double axolotlMaxHealth = 14.0D; @@ -489,7 +489,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 } public boolean batRidable = false; -@@ -516,6 +518,7 @@ public class PurpurWorldConfig { +@@ -519,6 +521,7 @@ public class PurpurWorldConfig { public boolean beeRidableInWater = false; public double beeMaxY = 256D; public double beeMaxHealth = 10.0D; @@ -497,7 +497,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -526,6 +529,7 @@ public class PurpurWorldConfig { +@@ -529,6 +532,7 @@ public class PurpurWorldConfig { set("mobs.bee.attributes.max_health", oldValue); } beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth); @@ -505,7 +505,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 } public boolean blazeRidable = false; -@@ -550,6 +554,7 @@ public class PurpurWorldConfig { +@@ -553,6 +557,7 @@ public class PurpurWorldConfig { public int catSpawnDelay = 1200; public int catSpawnSwampHutScanRange = 16; public int catSpawnVillageScanRange = 48; @@ -513,7 +513,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -562,6 +567,7 @@ public class PurpurWorldConfig { +@@ -565,6 +570,7 @@ public class PurpurWorldConfig { catSpawnDelay = getInt("mobs.cat.spawn-delay", catSpawnDelay); catSpawnSwampHutScanRange = getInt("mobs.cat.scan-range-for-other-cats.swamp-hut", catSpawnSwampHutScanRange); catSpawnVillageScanRange = getInt("mobs.cat.scan-range-for-other-cats.village", catSpawnVillageScanRange); @@ -521,7 +521,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 } public boolean caveSpiderRidable = false; -@@ -582,6 +588,7 @@ public class PurpurWorldConfig { +@@ -585,6 +591,7 @@ public class PurpurWorldConfig { public boolean chickenRidableInWater = false; public double chickenMaxHealth = 4.0D; public boolean chickenRetaliate = false; @@ -529,7 +529,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -592,6 +599,7 @@ public class PurpurWorldConfig { +@@ -595,6 +602,7 @@ public class PurpurWorldConfig { } chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth); chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate); @@ -537,7 +537,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 } public boolean codRidable = false; -@@ -610,6 +618,7 @@ public class PurpurWorldConfig { +@@ -613,6 +621,7 @@ public class PurpurWorldConfig { public boolean cowRidableInWater = false; public double cowMaxHealth = 10.0D; public int cowFeedMushrooms = 0; @@ -545,7 +545,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 private void cowSettings() { cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); -@@ -620,6 +629,7 @@ public class PurpurWorldConfig { +@@ -623,6 +632,7 @@ public class PurpurWorldConfig { } cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth); cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms); @@ -553,7 +553,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 } public boolean creeperRidable = false; -@@ -667,6 +677,7 @@ public class PurpurWorldConfig { +@@ -670,6 +680,7 @@ public class PurpurWorldConfig { public double donkeyJumpStrengthMax = 0.5D; public double donkeyMovementSpeedMin = 0.175D; public double donkeyMovementSpeedMax = 0.175D; @@ -561,7 +561,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 private void donkeySettings() { donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater); if (PurpurConfig.version < 10) { -@@ -682,6 +693,7 @@ public class PurpurWorldConfig { +@@ -685,6 +696,7 @@ public class PurpurWorldConfig { donkeyJumpStrengthMax = getDouble("mobs.donkey.attributes.jump_strength.max", donkeyJumpStrengthMax); donkeyMovementSpeedMin = getDouble("mobs.donkey.attributes.movement_speed.min", donkeyMovementSpeedMin); donkeyMovementSpeedMax = getDouble("mobs.donkey.attributes.movement_speed.max", donkeyMovementSpeedMax); @@ -569,7 +569,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 } public boolean drownedRidable = false; -@@ -788,6 +800,7 @@ public class PurpurWorldConfig { +@@ -791,6 +803,7 @@ public class PurpurWorldConfig { public boolean foxRidableInWater = false; public double foxMaxHealth = 10.0D; public boolean foxTypeChangesWithTulips = false; @@ -577,7 +577,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -798,6 +811,7 @@ public class PurpurWorldConfig { +@@ -801,6 +814,7 @@ public class PurpurWorldConfig { } foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth); foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips); @@ -585,7 +585,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 } public boolean ghastRidable = false; -@@ -858,10 +872,12 @@ public class PurpurWorldConfig { +@@ -861,10 +875,12 @@ public class PurpurWorldConfig { public boolean goatRidable = false; public boolean goatRidableInWater = false; public double goatMaxHealth = 10.0D; @@ -598,7 +598,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 } public boolean guardianRidable = false; -@@ -879,6 +895,7 @@ public class PurpurWorldConfig { +@@ -882,6 +898,7 @@ public class PurpurWorldConfig { public boolean hoglinRidable = false; public boolean hoglinRidableInWater = false; public double hoglinMaxHealth = 40.0D; @@ -606,7 +606,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 private void hoglinSettings() { hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable); hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater); -@@ -888,6 +905,7 @@ public class PurpurWorldConfig { +@@ -891,6 +908,7 @@ public class PurpurWorldConfig { set("mobs.hoglin.attributes.max_health", oldValue); } hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth); @@ -614,7 +614,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 } public boolean horseRidableInWater = false; -@@ -897,6 +915,7 @@ public class PurpurWorldConfig { +@@ -900,6 +918,7 @@ public class PurpurWorldConfig { public double horseJumpStrengthMax = 1.0D; public double horseMovementSpeedMin = 0.1125D; public double horseMovementSpeedMax = 0.3375D; @@ -622,7 +622,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); if (PurpurConfig.version < 10) { -@@ -912,6 +931,7 @@ public class PurpurWorldConfig { +@@ -915,6 +934,7 @@ public class PurpurWorldConfig { horseJumpStrengthMax = getDouble("mobs.horse.attributes.jump_strength.max", horseJumpStrengthMax); horseMovementSpeedMin = getDouble("mobs.horse.attributes.movement_speed.min", horseMovementSpeedMin); horseMovementSpeedMax = getDouble("mobs.horse.attributes.movement_speed.max", horseMovementSpeedMax); @@ -630,7 +630,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 } public boolean huskRidable = false; -@@ -982,6 +1002,7 @@ public class PurpurWorldConfig { +@@ -985,6 +1005,7 @@ public class PurpurWorldConfig { public double llamaJumpStrengthMax = 0.5D; public double llamaMovementSpeedMin = 0.175D; public double llamaMovementSpeedMax = 0.175D; @@ -638,7 +638,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -998,6 +1019,7 @@ public class PurpurWorldConfig { +@@ -1001,6 +1022,7 @@ public class PurpurWorldConfig { llamaJumpStrengthMax = getDouble("mobs.llama.attributes.jump_strength.max", llamaJumpStrengthMax); llamaMovementSpeedMin = getDouble("mobs.llama.attributes.movement_speed.min", llamaMovementSpeedMin); llamaMovementSpeedMax = getDouble("mobs.llama.attributes.movement_speed.max", llamaMovementSpeedMax); @@ -646,7 +646,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 } public boolean magmaCubeRidable = false; -@@ -1017,6 +1039,7 @@ public class PurpurWorldConfig { +@@ -1020,6 +1042,7 @@ public class PurpurWorldConfig { public boolean mooshroomRidable = false; public boolean mooshroomRidableInWater = false; public double mooshroomMaxHealth = 10.0D; @@ -654,7 +654,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 private void mooshroomSettings() { mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater); -@@ -1026,6 +1049,7 @@ public class PurpurWorldConfig { +@@ -1029,6 +1052,7 @@ public class PurpurWorldConfig { set("mobs.mooshroom.attributes.max_health", oldValue); } mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth); @@ -662,7 +662,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 } public boolean muleRidableInWater = false; -@@ -1035,6 +1059,7 @@ public class PurpurWorldConfig { +@@ -1038,6 +1062,7 @@ public class PurpurWorldConfig { public double muleJumpStrengthMax = 0.5D; public double muleMovementSpeedMin = 0.175D; public double muleMovementSpeedMax = 0.175D; @@ -670,7 +670,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 private void muleSettings() { muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1050,11 +1075,13 @@ public class PurpurWorldConfig { +@@ -1053,11 +1078,13 @@ public class PurpurWorldConfig { muleJumpStrengthMax = getDouble("mobs.mule.attributes.jump_strength.max", muleJumpStrengthMax); muleMovementSpeedMin = getDouble("mobs.mule.attributes.movement_speed.min", muleMovementSpeedMin); muleMovementSpeedMax = getDouble("mobs.mule.attributes.movement_speed.max", muleMovementSpeedMax); @@ -684,7 +684,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -1064,11 +1091,13 @@ public class PurpurWorldConfig { +@@ -1067,11 +1094,13 @@ public class PurpurWorldConfig { set("mobs.ocelot.attributes.max_health", oldValue); } ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth); @@ -698,7 +698,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 private void pandaSettings() { pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater); -@@ -1078,6 +1107,7 @@ public class PurpurWorldConfig { +@@ -1081,6 +1110,7 @@ public class PurpurWorldConfig { set("mobs.panda.attributes.max_health", oldValue); } pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth); @@ -706,7 +706,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 } public boolean parrotRidable = false; -@@ -1158,6 +1188,7 @@ public class PurpurWorldConfig { +@@ -1161,6 +1191,7 @@ public class PurpurWorldConfig { public boolean pigRidableInWater = false; public double pigMaxHealth = 10.0D; public boolean pigGiveSaddleBack = false; @@ -714,7 +714,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -1168,6 +1199,7 @@ public class PurpurWorldConfig { +@@ -1171,6 +1202,7 @@ public class PurpurWorldConfig { } pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth); pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack); @@ -722,7 +722,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 } public boolean piglinRidable = false; -@@ -1217,6 +1249,7 @@ public class PurpurWorldConfig { +@@ -1220,6 +1252,7 @@ public class PurpurWorldConfig { public double polarBearMaxHealth = 30.0D; public String polarBearBreedableItemString = ""; public Item polarBearBreedableItem = null; @@ -730,7 +730,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -1229,6 +1262,7 @@ public class PurpurWorldConfig { +@@ -1232,6 +1265,7 @@ public class PurpurWorldConfig { polarBearBreedableItemString = getString("mobs.polar_bear.breedable-item", polarBearBreedableItemString); Item item = Registry.ITEM.get(new ResourceLocation(polarBearBreedableItemString)); if (item != Items.AIR) polarBearBreedableItem = item; @@ -738,7 +738,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 } public boolean pufferfishRidable = false; -@@ -1248,6 +1282,7 @@ public class PurpurWorldConfig { +@@ -1251,6 +1285,7 @@ public class PurpurWorldConfig { public double rabbitMaxHealth = 3.0D; public double rabbitNaturalToast = 0.0D; public double rabbitNaturalKiller = 0.0D; @@ -746,7 +746,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1259,6 +1294,7 @@ public class PurpurWorldConfig { +@@ -1262,6 +1297,7 @@ public class PurpurWorldConfig { rabbitMaxHealth = getDouble("mobs.rabbit.attributes.max_health", rabbitMaxHealth); rabbitNaturalToast = getDouble("mobs.rabbit.spawn-toast-chance", rabbitNaturalToast); rabbitNaturalKiller = getDouble("mobs.rabbit.spawn-killer-rabbit-chance", rabbitNaturalKiller); @@ -754,7 +754,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 } public boolean ravagerRidable = false; -@@ -1290,6 +1326,7 @@ public class PurpurWorldConfig { +@@ -1293,6 +1329,7 @@ public class PurpurWorldConfig { public boolean sheepRidable = false; public boolean sheepRidableInWater = false; public double sheepMaxHealth = 8.0D; @@ -762,7 +762,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -1299,6 +1336,7 @@ public class PurpurWorldConfig { +@@ -1302,6 +1339,7 @@ public class PurpurWorldConfig { set("mobs.sheep.attributes.max_health", oldValue); } sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth); @@ -770,7 +770,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 } public boolean shulkerRidable = false; -@@ -1453,6 +1491,7 @@ public class PurpurWorldConfig { +@@ -1456,6 +1494,7 @@ public class PurpurWorldConfig { public boolean striderRidable = false; public boolean striderRidableInWater = false; public double striderMaxHealth = 20.0D; @@ -778,7 +778,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1462,6 +1501,7 @@ public class PurpurWorldConfig { +@@ -1465,6 +1504,7 @@ public class PurpurWorldConfig { set("mobs.strider.attributes.max_health", oldValue); } striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth); @@ -786,7 +786,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 } public boolean traderLlamaRidable = false; -@@ -1472,6 +1512,7 @@ public class PurpurWorldConfig { +@@ -1475,6 +1515,7 @@ public class PurpurWorldConfig { public double traderLlamaJumpStrengthMax = 0.5D; public double traderLlamaMovementSpeedMin = 0.175D; public double traderLlamaMovementSpeedMax = 0.175D; @@ -794,7 +794,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -1488,6 +1529,7 @@ public class PurpurWorldConfig { +@@ -1491,6 +1532,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); @@ -802,7 +802,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 } public boolean tropicalFishRidable = false; -@@ -1508,6 +1550,7 @@ public class PurpurWorldConfig { +@@ -1511,6 +1553,7 @@ public class PurpurWorldConfig { public boolean turtleEggsBreakFromExpOrbs = true; public boolean turtleEggsBreakFromItems = true; public boolean turtleEggsBreakFromMinecarts = true; @@ -810,7 +810,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 private void turtleEggSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -1520,6 +1563,7 @@ public class PurpurWorldConfig { +@@ -1523,6 +1566,7 @@ public class PurpurWorldConfig { turtleEggsBreakFromExpOrbs = getBoolean("blocks.turtle_egg.break-from-exp-orbs", turtleEggsBreakFromExpOrbs); turtleEggsBreakFromItems = getBoolean("blocks.turtle_egg.break-from-items", turtleEggsBreakFromItems); turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts); @@ -818,7 +818,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 } public boolean vexRidable = false; -@@ -1548,6 +1592,7 @@ public class PurpurWorldConfig { +@@ -1551,6 +1595,7 @@ public class PurpurWorldConfig { public int villagerSpawnIronGolemRadius = 0; public int villagerSpawnIronGolemLimit = 0; public boolean villagerCanBreed = true; @@ -826,7 +826,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1564,6 +1609,7 @@ public class PurpurWorldConfig { +@@ -1567,6 +1612,7 @@ public class PurpurWorldConfig { villagerSpawnIronGolemRadius = getInt("mobs.villager.spawn-iron-golem.radius", villagerSpawnIronGolemRadius); villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit); villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed); @@ -834,7 +834,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 } public boolean vindicatorRidable = false; -@@ -1657,6 +1703,7 @@ public class PurpurWorldConfig { +@@ -1660,6 +1706,7 @@ public class PurpurWorldConfig { public boolean wolfRidable = false; public boolean wolfRidableInWater = false; public double wolfMaxHealth = 8.0D; @@ -842,7 +842,7 @@ index f3cb34b45579647047a28816b13d7e63cb40bb29..1329774a9e4c210de5d6686b1e3af567 private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -1666,6 +1713,7 @@ public class PurpurWorldConfig { +@@ -1669,6 +1716,7 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); diff --git a/patches/server/0121-Apply-display-names-from-item-forms-of-entities-to-e.patch b/patches/server/0121-Apply-display-names-from-item-forms-of-entities-to-e.patch index ebf9be4cf..1543ae4d1 100644 --- a/patches/server/0121-Apply-display-names-from-item-forms-of-entities-to-e.patch +++ b/patches/server/0121-Apply-display-names-from-item-forms-of-entities-to-e.patch @@ -142,10 +142,10 @@ index 282bfe4904637aaff1bd29e30ed18ba843c07cab..ddd50db8bb92c147d7c1eef4d1df3ac5 if (((HangingEntity) object).survives()) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 1329774a9e4c210de5d6686b1e3af56735bd0210..7d3d77547ad4f7d65130a8dc9d723ba04a81afa7 100644 +index 4c03174509c6638ab3cf0f796b27a527d46d65b1..12d554d7b05560795ee2064efac31cea976bb538 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -97,8 +97,10 @@ public class PurpurWorldConfig { +@@ -100,8 +100,10 @@ public class PurpurWorldConfig { } public float armorstandStepHeight = 0.0F; @@ -156,7 +156,7 @@ index 1329774a9e4c210de5d6686b1e3af56735bd0210..7d3d77547ad4f7d65130a8dc9d723ba0 } public int daytimeTicks = 12000; -@@ -342,6 +344,7 @@ public class PurpurWorldConfig { +@@ -345,6 +347,7 @@ public class PurpurWorldConfig { public boolean entitiesCanUsePortals = true; public boolean milkCuresBadOmen = true; public boolean persistentTileEntityDisplayNames = false; @@ -164,7 +164,7 @@ index 1329774a9e4c210de5d6686b1e3af56735bd0210..7d3d77547ad4f7d65130a8dc9d723ba0 public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -354,6 +357,7 @@ public class PurpurWorldConfig { +@@ -357,6 +360,7 @@ public class PurpurWorldConfig { entitiesCanUsePortals = getBoolean("gameplay-mechanics.entities-can-use-portals", entitiesCanUsePortals); milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); persistentTileEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-tileentity-display-names-and-lore", persistentTileEntityDisplayNames); diff --git a/patches/server/0122-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch b/patches/server/0122-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch index 8bc807698..6b433ae61 100644 --- a/patches/server/0122-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch +++ b/patches/server/0122-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch @@ -17,10 +17,10 @@ index 623f78c078fb3aa2665d7e8a37672438227bce6b..500c69e555c7247e20ef8cc59d834155 ((Mob) newEntityLiving).setPersistenceRequired(); // Paper end diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 3cbda02809a4be857b22941716cffc8f39109359..bc5b6c99697fd8fc31d5ec545756fa1d7a161176 100644 +index 12d554d7b05560795ee2064efac31cea976bb538..3df2529c8b606d44679c2cc32c34748db28762e3 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -98,9 +98,11 @@ public class PurpurWorldConfig { +@@ -101,9 +101,11 @@ public class PurpurWorldConfig { public float armorstandStepHeight = 0.0F; public boolean armorstandSetNameVisible = false; diff --git a/patches/server/0123-Add-twisting-and-weeping-vines-growth-rates.patch b/patches/server/0123-Add-twisting-and-weeping-vines-growth-rates.patch index d17ca4f4e..03d6da007 100644 --- a/patches/server/0123-Add-twisting-and-weeping-vines-growth-rates.patch +++ b/patches/server/0123-Add-twisting-and-weeping-vines-growth-rates.patch @@ -82,10 +82,10 @@ index 35b2bad76c45b5a94ba7f2e9c7a8cfeb8c3f498b..d2cb1a7e7ea364cb8e2af4c4e756d8e4 + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 9dea9e7d866c0fcc5ef22784408ca834b1571d30..2923ef03bdadbd36138e2717777525411dfd0a2a 100644 +index 3df2529c8b606d44679c2cc32c34748db28762e3..72653a7aebd68bc754488b5ebb9c5ebc9b77e973 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -410,6 +410,11 @@ public class PurpurWorldConfig { +@@ -413,6 +413,11 @@ public class PurpurWorldConfig { } } @@ -97,7 +97,7 @@ index 9dea9e7d866c0fcc5ef22784408ca834b1571d30..2923ef03bdadbd36138e271777752541 public boolean dispenserApplyCursedArmor = true; public boolean dispenserPlaceAnvils = false; private void dispenserSettings() { -@@ -479,6 +484,16 @@ public class PurpurWorldConfig { +@@ -482,6 +487,16 @@ public class PurpurWorldConfig { stonecutterDamage = (float) getDouble("blocks.stonecutter.damage", stonecutterDamage); } diff --git a/patches/server/0124-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch b/patches/server/0124-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch index 7776a268b..b8bef4909 100644 --- a/patches/server/0124-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch +++ b/patches/server/0124-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch @@ -103,10 +103,10 @@ index d2cb1a7e7ea364cb8e2af4c4e756d8e45bc0ca10..bb99dda3c5167f23b2500a1f37cbc1ca // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 2923ef03bdadbd36138e2717777525411dfd0a2a..3932003c23a4a46e6e74eb7f0cb01aca06371bf3 100644 +index 72653a7aebd68bc754488b5ebb9c5ebc9b77e973..d13e90639894a9707cbb47d3f681b2f800186405 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -411,8 +411,10 @@ public class PurpurWorldConfig { +@@ -414,8 +414,10 @@ public class PurpurWorldConfig { } public double caveVinesGrowthModifier = 0.10D; @@ -117,7 +117,7 @@ index 2923ef03bdadbd36138e2717777525411dfd0a2a..3932003c23a4a46e6e74eb7f0cb01aca } public boolean dispenserApplyCursedArmor = true; -@@ -451,6 +453,11 @@ public class PurpurWorldConfig { +@@ -454,6 +456,11 @@ public class PurpurWorldConfig { lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether); } @@ -129,7 +129,7 @@ index 2923ef03bdadbd36138e2717777525411dfd0a2a..3932003c23a4a46e6e74eb7f0cb01aca public boolean respawnAnchorExplode = true; public double respawnAnchorExplosionPower = 5.0D; public boolean respawnAnchorExplosionFire = true; -@@ -485,13 +492,17 @@ public class PurpurWorldConfig { +@@ -488,13 +495,17 @@ public class PurpurWorldConfig { } public double twistingVinesGrowthModifier = 0.10D; diff --git a/patches/server/0125-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch b/patches/server/0125-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch index f48af320e..20b91ba49 100644 --- a/patches/server/0125-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch +++ b/patches/server/0125-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch @@ -21,10 +21,10 @@ index 5ebedd6a156b06e98aded57c817f63429a1ae380..c99d295b999a28dd1eb504179250445d private static class EndermanFreezeWhenLookedAt extends Goal { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 3932003c23a4a46e6e74eb7f0cb01aca06371bf3..2623085fa56d2ddc6ee528c1df72ec2c1f89e2e3 100644 +index d13e90639894a9707cbb47d3f681b2f800186405..69f4a0978e84be0d8c2abe4ed11385616797f3fd 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -788,6 +788,7 @@ public class PurpurWorldConfig { +@@ -791,6 +791,7 @@ public class PurpurWorldConfig { public boolean endermanRidableInWater = false; public double endermanMaxHealth = 40.0D; public boolean endermanAllowGriefing = true; @@ -32,7 +32,7 @@ index 3932003c23a4a46e6e74eb7f0cb01aca06371bf3..2623085fa56d2ddc6ee528c1df72ec2c private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -798,6 +799,7 @@ public class PurpurWorldConfig { +@@ -801,6 +802,7 @@ public class PurpurWorldConfig { } endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth); endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing); diff --git a/patches/server/0127-Add-configurable-snowball-damage.patch b/patches/server/0127-Add-configurable-snowball-damage.patch index 4c9bef6ab..8c01c887c 100644 --- a/patches/server/0127-Add-configurable-snowball-damage.patch +++ b/patches/server/0127-Add-configurable-snowball-damage.patch @@ -18,10 +18,10 @@ index ed2f039c4042861bcfa2e41d8281eefd37daa9fa..d5d84893c77b4e60a19032d765d76bfd } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 2623085fa56d2ddc6ee528c1df72ec2c1f89e2e3..9f6599da865d4b0d02be3d6a8dfa0cb0bf1fa68e 100644 +index 69f4a0978e84be0d8c2abe4ed11385616797f3fd..ee88a19c7c2314aa284732a8e824bbf2edeb10a8 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -286,6 +286,11 @@ public class PurpurWorldConfig { +@@ -289,6 +289,11 @@ public class PurpurWorldConfig { totemOfUndyingWorksInInventory = getBoolean("gameplay-mechanics.player.totem-of-undying-works-in-inventory", totemOfUndyingWorksInInventory); } diff --git a/patches/server/0128-Zombie-break-door-minimum-difficulty-option.patch b/patches/server/0128-Zombie-break-door-minimum-difficulty-option.patch index 7c4fdfab0..a88102090 100644 --- a/patches/server/0128-Zombie-break-door-minimum-difficulty-option.patch +++ b/patches/server/0128-Zombie-break-door-minimum-difficulty-option.patch @@ -44,10 +44,10 @@ index fe045f8e35fe2aac51032a67ce52b27a53a8eff0..03bc86c776596ca5964c22adb757115d + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 9f6599da865d4b0d02be3d6a8dfa0cb0bf1fa68e..90a510705d2febd326c3cb376fcd11bf7c1837f6 100644 +index ee88a19c7c2314aa284732a8e824bbf2edeb10a8..d84f60a3d1148d9755246628744b31ceb0c86b4d 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1777,6 +1777,7 @@ public class PurpurWorldConfig { +@@ -1780,6 +1780,7 @@ public class PurpurWorldConfig { public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; @@ -55,7 +55,7 @@ index 9f6599da865d4b0d02be3d6a8dfa0cb0bf1fa68e..90a510705d2febd326c3cb376fcd11bf private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1791,6 +1792,11 @@ public class PurpurWorldConfig { +@@ -1794,6 +1795,11 @@ public class PurpurWorldConfig { zombieJockeyChance = getDouble("mobs.zombie.jockey.chance", zombieJockeyChance); zombieJockeyTryExistingChickens = getBoolean("mobs.zombie.jockey.try-existing-chickens", zombieJockeyTryExistingChickens); zombieAggressiveTowardsVillagerWhenLagging = getBoolean("mobs.zombie.aggressive-towards-villager-when-lagging", zombieAggressiveTowardsVillagerWhenLagging); diff --git a/patches/server/0130-Changeable-Mob-Left-Handed-Chance.patch b/patches/server/0130-Changeable-Mob-Left-Handed-Chance.patch index d710a63e4..2dedab6cf 100644 --- a/patches/server/0130-Changeable-Mob-Left-Handed-Chance.patch +++ b/patches/server/0130-Changeable-Mob-Left-Handed-Chance.patch @@ -18,10 +18,10 @@ index 9b8b82bf5bb276be51b8ba5c023879b3a45212cb..13b256c7d9723e38d1a1f5766fb2a28b } else { this.setLeftHanded(false); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 7658c497c374412df0b862c520036d9916d7a845..50ed815e0d91ffdcdc0a15186a42a32bebe12a9f 100644 +index d84f60a3d1148d9755246628744b31ceb0c86b4d..3ba0e248e3da3d80c4b696929c131e3bbb2ebe6a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -126,8 +126,10 @@ public class PurpurWorldConfig { +@@ -129,8 +129,10 @@ public class PurpurWorldConfig { } public int entityLifeSpan = 0; diff --git a/patches/server/0131-Add-boat-fall-damage-config.patch b/patches/server/0131-Add-boat-fall-damage-config.patch index 539e22e03..c48b62eff 100644 --- a/patches/server/0131-Add-boat-fall-damage-config.patch +++ b/patches/server/0131-Add-boat-fall-damage-config.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add boat fall damage config diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 8d427389756f173264da9d0da7b413763c41842a..269e422ea2860979bf08c9a280d17b165f456e93 100644 +index 2cfd9895b9a371e731b416ec8745aae839e0054b..93b8260c59c659ddd2e80660be23b9a825339a72 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -991,7 +991,16 @@ public class ServerPlayer extends Player { @@ -27,10 +27,10 @@ index 8d427389756f173264da9d0da7b413763c41842a..269e422ea2860979bf08c9a280d17b16 if (!flag && isSpawnInvulnerable() && source != DamageSource.OUT_OF_WORLD) { // Purpur diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index d78b29c42de7bad6a96b02b1f80911d5726abe2e..0b2a8538325204212bfe97c4e3fe5eb1ac88bd8f 100644 +index 3ba0e248e3da3d80c4b696929c131e3bbb2ebe6a..97d282f69bb48d4300bae4f2d03c8724c7383b2a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -349,6 +349,7 @@ public class PurpurWorldConfig { +@@ -352,6 +352,7 @@ public class PurpurWorldConfig { public boolean useBetterMending = false; public boolean boatEjectPlayersOnLand = false; @@ -38,7 +38,7 @@ index d78b29c42de7bad6a96b02b1f80911d5726abe2e..0b2a8538325204212bfe97c4e3fe5eb1 public boolean disableDropsOnCrammingDeath = false; public boolean entitiesCanUsePortals = true; public boolean milkCuresBadOmen = true; -@@ -362,6 +363,7 @@ public class PurpurWorldConfig { +@@ -365,6 +366,7 @@ public class PurpurWorldConfig { private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); diff --git a/patches/server/0132-Snow-Golem-rate-of-fire-config.patch b/patches/server/0132-Snow-Golem-rate-of-fire-config.patch index b666befdc..acaaedb5a 100644 --- a/patches/server/0132-Snow-Golem-rate-of-fire-config.patch +++ b/patches/server/0132-Snow-Golem-rate-of-fire-config.patch @@ -23,10 +23,10 @@ index 0733f9c057fef17fd79a4769f19b78f4c83a7784..1697b573ffd0c5d17d2d538c40f5ce4b this.goalSelector.addGoal(3, new LookAtPlayerGoal(this, Player.class, 6.0F)); this.goalSelector.addGoal(4, new RandomLookAroundGoal(this)); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 0b2a8538325204212bfe97c4e3fe5eb1ac88bd8f..5afa5cb7a62402ef6c54a925c06b566cf8be717c 100644 +index 97d282f69bb48d4300bae4f2d03c8724c7383b2a..b6d5f5c96b02c957d058e2b7c8616fb211f832d9 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1471,6 +1471,10 @@ public class PurpurWorldConfig { +@@ -1474,6 +1474,10 @@ public class PurpurWorldConfig { public double snowGolemMaxHealth = 4.0D; public boolean snowGolemDropsPumpkin = true; public boolean snowGolemPutPumpkinBack = false; @@ -37,7 +37,7 @@ index 0b2a8538325204212bfe97c4e3fe5eb1ac88bd8f..5afa5cb7a62402ef6c54a925c06b566c private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1483,6 +1487,10 @@ public class PurpurWorldConfig { +@@ -1486,6 +1490,10 @@ public class PurpurWorldConfig { snowGolemMaxHealth = getDouble("mobs.snow_golem.attributes.max_health", snowGolemMaxHealth); snowGolemDropsPumpkin = getBoolean("mobs.snow_golem.drop-pumpkin-when-sheared", snowGolemDropsPumpkin); snowGolemPutPumpkinBack = getBoolean("mobs.snow_golem.pumpkin-can-be-added-back", snowGolemPutPumpkinBack); diff --git a/patches/server/0135-Lobotomize-stuck-villagers.patch b/patches/server/0135-Lobotomize-stuck-villagers.patch index 17514107c..563eabda8 100644 --- a/patches/server/0135-Lobotomize-stuck-villagers.patch +++ b/patches/server/0135-Lobotomize-stuck-villagers.patch @@ -53,10 +53,10 @@ index bb3572370a86519a92b7b3dab0482cd1527de19d..9a460eeb48c14590d28d071cfa5a9251 if (this.assignProfessionWhenSpawned) { this.assignProfessionWhenSpawned = false; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 5afa5cb7a62402ef6c54a925c06b566cf8be717c..460361531b250648ec75c9165769b14d0b7f2aba 100644 +index b6d5f5c96b02c957d058e2b7c8616fb211f832d9..4c06f35032f02ac65fd4d13b9fb58f62cf1894a3 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1644,6 +1644,8 @@ public class PurpurWorldConfig { +@@ -1647,6 +1647,8 @@ public class PurpurWorldConfig { public int villagerSpawnIronGolemLimit = 0; public boolean villagerCanBreed = true; public int villagerBreedingTicks = 6000; @@ -65,7 +65,7 @@ index 5afa5cb7a62402ef6c54a925c06b566cf8be717c..460361531b250648ec75c9165769b14d private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1661,6 +1663,13 @@ public class PurpurWorldConfig { +@@ -1664,6 +1666,13 @@ public class PurpurWorldConfig { villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit); villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed); villagerBreedingTicks = getInt("mobs.villager.breeding-delay-ticks", villagerBreedingTicks); diff --git a/patches/server/0136-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch b/patches/server/0136-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch index 46aa07f7d..dd29e9ee8 100644 --- a/patches/server/0136-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch +++ b/patches/server/0136-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch @@ -185,10 +185,10 @@ index 901fc6520d58a5fa5f2cf1b4fa78fec6008aa409..9050cd25663c71197c597aac0ab2e612 public static final VillagerProfession FISHERMAN = register("fisherman", PoiType.FISHERMAN, SoundEvents.VILLAGER_WORK_FISHERMAN); public static final VillagerProfession FLETCHER = register("fletcher", PoiType.FLETCHER, SoundEvents.VILLAGER_WORK_FLETCHER); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 460361531b250648ec75c9165769b14d0b7f2aba..0f66cca38ec92a2dc12d64f02ff211f5fd675bac 100644 +index 4c06f35032f02ac65fd4d13b9fb58f62cf1894a3..009150862f6b9b86efc315031381b1c2ce7ad4dd 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1646,6 +1646,8 @@ public class PurpurWorldConfig { +@@ -1649,6 +1649,8 @@ public class PurpurWorldConfig { public int villagerBreedingTicks = 6000; public boolean villagerLobotomizeEnabled = false; public int villagerLobotomizeCheck = 60; @@ -197,7 +197,7 @@ index 460361531b250648ec75c9165769b14d0b7f2aba..0f66cca38ec92a2dc12d64f02ff211f5 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1670,6 +1672,8 @@ public class PurpurWorldConfig { +@@ -1673,6 +1675,8 @@ public class PurpurWorldConfig { } villagerLobotomizeEnabled = getBoolean("mobs.villager.lobotomize.enabled", villagerLobotomizeEnabled); villagerLobotomizeCheck = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheck); diff --git a/patches/server/0137-Toggle-for-Zombified-Piglin-death-always-counting-as.patch b/patches/server/0137-Toggle-for-Zombified-Piglin-death-always-counting-as.patch index d6895aa18..03e9ae99b 100644 --- a/patches/server/0137-Toggle-for-Zombified-Piglin-death-always-counting-as.patch +++ b/patches/server/0137-Toggle-for-Zombified-Piglin-death-always-counting-as.patch @@ -35,10 +35,10 @@ index 43ef93d2c0c59e0d7021ee9aa2b44345192cc0a9..ce780a2ba7dcbd9c1c9dc24c07387861 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 0f66cca38ec92a2dc12d64f02ff211f5fd675bac..94dc2b736de4b3c64eb95b0d035ce81d92eebb84 100644 +index 009150862f6b9b86efc315031381b1c2ce7ad4dd..d65ac43df8a03acd57fdbb46691fe4c62fcfd1e0 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1880,6 +1880,7 @@ public class PurpurWorldConfig { +@@ -1883,6 +1883,7 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinJockeyOnlyBaby = true; public double zombifiedPiglinJockeyChance = 0.05D; public boolean zombifiedPiglinJockeyTryExistingChickens = true; @@ -46,7 +46,7 @@ index 0f66cca38ec92a2dc12d64f02ff211f5fd675bac..94dc2b736de4b3c64eb95b0d035ce81d private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -1893,5 +1894,6 @@ public class PurpurWorldConfig { +@@ -1896,5 +1897,6 @@ public class PurpurWorldConfig { zombifiedPiglinJockeyOnlyBaby = getBoolean("mobs.zombified_piglin.jockey.only-babies", zombifiedPiglinJockeyOnlyBaby); zombifiedPiglinJockeyChance = getDouble("mobs.zombified_piglin.jockey.chance", zombifiedPiglinJockeyChance); zombifiedPiglinJockeyTryExistingChickens = getBoolean("mobs.zombified_piglin.jockey.try-existing-chickens", zombifiedPiglinJockeyTryExistingChickens); diff --git a/patches/server/0139-Configurable-chance-for-wolves-to-spawn-rabid.patch b/patches/server/0139-Configurable-chance-for-wolves-to-spawn-rabid.patch index dafc8bbfe..e00e3d9b2 100644 --- a/patches/server/0139-Configurable-chance-for-wolves-to-spawn-rabid.patch +++ b/patches/server/0139-Configurable-chance-for-wolves-to-spawn-rabid.patch @@ -201,10 +201,10 @@ index ef4abaf68de01b0879f7d0b330d2d57cc6bd10f9..3e7409ebf1f94b9cf55f2d0b0fe17ca8 return super.mobInteract(player, hand); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 94dc2b736de4b3c64eb95b0d035ce81d92eebb84..651860721d620c04a79643deb7705ab798a23313 100644 +index d65ac43df8a03acd57fdbb46691fe4c62fcfd1e0..b24ce184ee49f473c65c514662491a0960edd442 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1767,6 +1767,8 @@ public class PurpurWorldConfig { +@@ -1770,6 +1770,8 @@ public class PurpurWorldConfig { public boolean wolfRidable = false; public boolean wolfRidableInWater = false; public double wolfMaxHealth = 8.0D; @@ -213,7 +213,7 @@ index 94dc2b736de4b3c64eb95b0d035ce81d92eebb84..651860721d620c04a79643deb7705ab7 public int wolfBreedingTicks = 6000; private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); -@@ -1777,6 +1779,8 @@ public class PurpurWorldConfig { +@@ -1780,6 +1782,8 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); diff --git a/patches/server/0140-Configurable-default-wolf-collar-color.patch b/patches/server/0140-Configurable-default-wolf-collar-color.patch index 2e50bf912..de3fa19a5 100644 --- a/patches/server/0140-Configurable-default-wolf-collar-color.patch +++ b/patches/server/0140-Configurable-default-wolf-collar-color.patch @@ -24,10 +24,10 @@ index 3e7409ebf1f94b9cf55f2d0b0fe17ca8ec44659f..518dd0e6b4889c049e438b393baa795a @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 651860721d620c04a79643deb7705ab798a23313..45f44196245b2eab30ec59ce7a46f75e7dac07ad 100644 +index b24ce184ee49f473c65c514662491a0960edd442..b05073fdcaff86df2418f240c0aaf0ac1c120a10 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1767,6 +1767,7 @@ public class PurpurWorldConfig { +@@ -1770,6 +1770,7 @@ public class PurpurWorldConfig { public boolean wolfRidable = false; public boolean wolfRidableInWater = false; public double wolfMaxHealth = 8.0D; @@ -35,7 +35,7 @@ index 651860721d620c04a79643deb7705ab798a23313..45f44196245b2eab30ec59ce7a46f75e public boolean wolfMilkCuresRabies = true; public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; -@@ -1779,6 +1780,11 @@ public class PurpurWorldConfig { +@@ -1782,6 +1783,11 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); diff --git a/patches/server/0141-Phantom-flames-on-swoop.patch b/patches/server/0141-Phantom-flames-on-swoop.patch index 47ebffd53..00cb70553 100644 --- a/patches/server/0141-Phantom-flames-on-swoop.patch +++ b/patches/server/0141-Phantom-flames-on-swoop.patch @@ -17,10 +17,10 @@ index c55aba456aa144e58fc35877c61eff309eaa391f..c39e2d05fa81279a684532ee796880b1 @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 45f44196245b2eab30ec59ce7a46f75e7dac07ad..f61fe066c4b8c1b919227c60ab3ad7d7f9b18d29 100644 +index b05073fdcaff86df2418f240c0aaf0ac1c120a10..0d4406b661eed8e9f86f9ae85c81614f102d9636 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1175,6 +1175,7 @@ public class PurpurWorldConfig { +@@ -1178,6 +1178,7 @@ public class PurpurWorldConfig { public float phantomFlameDamage = 1.0F; public int phantomFlameFireTime = 8; public boolean phantomAllowGriefing = false; @@ -28,7 +28,7 @@ index 45f44196245b2eab30ec59ce7a46f75e7dac07ad..f61fe066c4b8c1b919227c60ab3ad7d7 public double phantomMaxHealth = 20.0D; public double phantomAttackedByCrystalRadius = 0.0D; public float phantomAttackedByCrystalDamage = 1.0F; -@@ -1201,6 +1202,7 @@ public class PurpurWorldConfig { +@@ -1204,6 +1205,7 @@ public class PurpurWorldConfig { phantomFlameDamage = (float) getDouble("mobs.phantom.flames.damage", phantomFlameDamage); phantomFlameFireTime = getInt("mobs.phantom.flames.fire-time", phantomFlameFireTime); phantomAllowGriefing = getBoolean("mobs.phantom.allow-griefing", phantomAllowGriefing); diff --git a/patches/server/0142-Option-for-chests-to-open-even-with-a-solid-block-on.patch b/patches/server/0142-Option-for-chests-to-open-even-with-a-solid-block-on.patch index cfc293ce9..fd86702a6 100644 --- a/patches/server/0142-Option-for-chests-to-open-even-with-a-solid-block-on.patch +++ b/patches/server/0142-Option-for-chests-to-open-even-with-a-solid-block-on.patch @@ -17,10 +17,10 @@ index d980a556785b52fe827310b83638139df0816b11..3c8c02fc92374def12254f7ffad604b2 return world.getBlockState(blockposition1).isRedstoneConductor(world, blockposition1); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index f61fe066c4b8c1b919227c60ab3ad7d7f9b18d29..ee23ec472f5668b83ad58b3ac7ddacd273455f6c 100644 +index 0d4406b661eed8e9f86f9ae85c81614f102d9636..d98de312e685e0db82f5591c6aac63890213d5ff 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -426,6 +426,11 @@ public class PurpurWorldConfig { +@@ -429,6 +429,11 @@ public class PurpurWorldConfig { caveVinesMaxGrowthAge = getInt("blocks.cave_vines.max-growth-age", caveVinesMaxGrowthAge); } diff --git a/patches/server/0144-Striders-give-saddle-back.patch b/patches/server/0144-Striders-give-saddle-back.patch index fb42a508e..7261b55c8 100644 --- a/patches/server/0144-Striders-give-saddle-back.patch +++ b/patches/server/0144-Striders-give-saddle-back.patch @@ -28,10 +28,10 @@ index 294f276fa8d2d754abde11ebc3d39e5e68996b05..b3928617f732b49cfc124e9bdb879110 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index ee23ec472f5668b83ad58b3ac7ddacd273455f6c..d972aa4fa5e184f439b5ceb8378c6c2836b203e6 100644 +index d98de312e685e0db82f5591c6aac63890213d5ff..eefa02c1c6b1ec9219bd3d5dc6b28b1851164a6e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1550,6 +1550,7 @@ public class PurpurWorldConfig { +@@ -1553,6 +1553,7 @@ public class PurpurWorldConfig { public boolean striderRidableInWater = false; public double striderMaxHealth = 20.0D; public int striderBreedingTicks = 6000; @@ -39,7 +39,7 @@ index ee23ec472f5668b83ad58b3ac7ddacd273455f6c..d972aa4fa5e184f439b5ceb8378c6c28 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1560,6 +1561,7 @@ public class PurpurWorldConfig { +@@ -1563,6 +1564,7 @@ public class PurpurWorldConfig { } striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth); striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks); diff --git a/patches/server/0146-Full-netherite-armor-grants-fire-resistance.patch b/patches/server/0146-Full-netherite-armor-grants-fire-resistance.patch index ca373eb79..8469659c4 100644 --- a/patches/server/0146-Full-netherite-armor-grants-fire-resistance.patch +++ b/patches/server/0146-Full-netherite-armor-grants-fire-resistance.patch @@ -26,10 +26,10 @@ index d4e6c16b08c5aaf9c50467941498b566f11cc5d2..f4f49b87b615a3c7ef56247896392de9 protected ItemCooldowns createItemCooldowns() { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 2b7e0928ef466157cc701f9f919ac72a4c3558ee..72f5c4cff712bad9a82ddbd84656dd1ef426b116 100644 +index eefa02c1c6b1ec9219bd3d5dc6b28b1851164a6e..b61ae4082a76056b9b8e115eb604e860603da875 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -263,6 +263,19 @@ public class PurpurWorldConfig { +@@ -266,6 +266,19 @@ public class PurpurWorldConfig { villageSiegeSpawning = getBoolean("gameplay-mechanics.mob-spawning.village-sieges", predicate); } diff --git a/patches/server/0149-Add-mobGriefing-bypass-to-everything-affected.patch b/patches/server/0149-Add-mobGriefing-bypass-to-everything-affected.patch index 430ad6a6e..29cbd0f43 100644 --- a/patches/server/0149-Add-mobGriefing-bypass-to-everything-affected.patch +++ b/patches/server/0149-Add-mobGriefing-bypass-to-everything-affected.patch @@ -393,10 +393,10 @@ index e98fc3c235f9160f1928a8afb0d7991a6d3430cb..db35f756b7adb6b113659ae13b08ab89 return true; // Purpur end diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index e0a6b836600906fa0214904e57d439024a953ac7..013d975bef604775558a0ce61da2ebe1c8681ef3 100644 +index b61ae4082a76056b9b8e115eb604e860603da875..a9cda879921260f350277cf49d11eac884adee0f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -365,9 +365,12 @@ public class PurpurWorldConfig { +@@ -368,9 +368,12 @@ public class PurpurWorldConfig { public boolean boatsDoFallDamage = true; public boolean disableDropsOnCrammingDeath = false; public boolean entitiesCanUsePortals = true; @@ -409,7 +409,7 @@ index e0a6b836600906fa0214904e57d439024a953ac7..013d975bef604775558a0ce61da2ebe1 public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -379,9 +382,12 @@ public class PurpurWorldConfig { +@@ -382,9 +385,12 @@ public class PurpurWorldConfig { boatsDoFallDamage = getBoolean("gameplay-mechanics.boat.do-fall-damage", boatsDoFallDamage); disableDropsOnCrammingDeath = getBoolean("gameplay-mechanics.disable-drops-on-cramming-death", disableDropsOnCrammingDeath); entitiesCanUsePortals = getBoolean("gameplay-mechanics.entities-can-use-portals", entitiesCanUsePortals); @@ -422,7 +422,7 @@ index e0a6b836600906fa0214904e57d439024a953ac7..013d975bef604775558a0ce61da2ebe1 tridentLoyaltyVoidReturnHeight = getDouble("gameplay-mechanics.trident-loyalty-void-return-height", tridentLoyaltyVoidReturnHeight); voidDamageHeight = getDouble("gameplay-mechanics.void-damage-height", voidDamageHeight); voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt); -@@ -451,9 +457,11 @@ public class PurpurWorldConfig { +@@ -454,9 +460,11 @@ public class PurpurWorldConfig { dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils); } @@ -434,7 +434,7 @@ index e0a6b836600906fa0214904e57d439024a953ac7..013d975bef604775558a0ce61da2ebe1 farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); farmlandAlpha = getBoolean("blocks.farmland.use-alpha-farmland", farmlandAlpha); } -@@ -485,6 +493,11 @@ public class PurpurWorldConfig { +@@ -488,6 +496,11 @@ public class PurpurWorldConfig { kelpMaxGrowthAge = getInt("blocks.kelp.max-growth-age", kelpMaxGrowthAge); } @@ -446,7 +446,7 @@ index e0a6b836600906fa0214904e57d439024a953ac7..013d975bef604775558a0ce61da2ebe1 public boolean respawnAnchorExplode = true; public double respawnAnchorExplosionPower = 5.0D; public boolean respawnAnchorExplosionFire = true; -@@ -518,6 +531,11 @@ public class PurpurWorldConfig { +@@ -521,6 +534,11 @@ public class PurpurWorldConfig { stonecutterDamage = (float) getDouble("blocks.stonecutter.damage", stonecutterDamage); } @@ -458,7 +458,7 @@ index e0a6b836600906fa0214904e57d439024a953ac7..013d975bef604775558a0ce61da2ebe1 public double twistingVinesGrowthModifier = 0.10D; public int twistingVinesMaxGrowthAge = 25; private void twistingVinesSettings() { -@@ -696,6 +714,7 @@ public class PurpurWorldConfig { +@@ -699,6 +717,7 @@ public class PurpurWorldConfig { public double creeperMaxHealth = 20.0D; public double creeperChargedChance = 0.0D; public boolean creeperAllowGriefing = true; @@ -466,7 +466,7 @@ index e0a6b836600906fa0214904e57d439024a953ac7..013d975bef604775558a0ce61da2ebe1 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -707,6 +726,7 @@ public class PurpurWorldConfig { +@@ -710,6 +729,7 @@ public class PurpurWorldConfig { creeperMaxHealth = getDouble("mobs.creeper.attributes.max_health", creeperMaxHealth); creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance); creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing); @@ -474,7 +474,7 @@ index e0a6b836600906fa0214904e57d439024a953ac7..013d975bef604775558a0ce61da2ebe1 } public boolean dolphinRidable = false; -@@ -794,6 +814,7 @@ public class PurpurWorldConfig { +@@ -797,6 +817,7 @@ public class PurpurWorldConfig { public double enderDragonMaxY = 256D; public double enderDragonMaxHealth = 200.0D; public boolean enderDragonAlwaysDropsFullExp = false; @@ -482,7 +482,7 @@ index e0a6b836600906fa0214904e57d439024a953ac7..013d975bef604775558a0ce61da2ebe1 private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -809,6 +830,7 @@ public class PurpurWorldConfig { +@@ -812,6 +833,7 @@ public class PurpurWorldConfig { } enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth); enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp); @@ -490,7 +490,7 @@ index e0a6b836600906fa0214904e57d439024a953ac7..013d975bef604775558a0ce61da2ebe1 } public boolean endermanRidable = false; -@@ -816,6 +838,7 @@ public class PurpurWorldConfig { +@@ -819,6 +841,7 @@ public class PurpurWorldConfig { public double endermanMaxHealth = 40.0D; public boolean endermanAllowGriefing = true; public boolean endermanDespawnEvenWithBlock = false; @@ -498,7 +498,7 @@ index e0a6b836600906fa0214904e57d439024a953ac7..013d975bef604775558a0ce61da2ebe1 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -827,6 +850,7 @@ public class PurpurWorldConfig { +@@ -830,6 +853,7 @@ public class PurpurWorldConfig { endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth); endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing); endermanDespawnEvenWithBlock = getBoolean("mobs.enderman.can-despawn-with-held-block", endermanDespawnEvenWithBlock); @@ -506,7 +506,7 @@ index e0a6b836600906fa0214904e57d439024a953ac7..013d975bef604775558a0ce61da2ebe1 } public boolean endermiteRidable = false; -@@ -846,6 +870,7 @@ public class PurpurWorldConfig { +@@ -849,6 +873,7 @@ public class PurpurWorldConfig { public boolean evokerRidable = false; public boolean evokerRidableInWater = false; public double evokerMaxHealth = 24.0D; @@ -514,7 +514,7 @@ index e0a6b836600906fa0214904e57d439024a953ac7..013d975bef604775558a0ce61da2ebe1 private void evokerSettings() { evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable); evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater); -@@ -855,6 +880,7 @@ public class PurpurWorldConfig { +@@ -858,6 +883,7 @@ public class PurpurWorldConfig { set("mobs.evoker.attributes.max_health", oldValue); } evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth); @@ -522,7 +522,7 @@ index e0a6b836600906fa0214904e57d439024a953ac7..013d975bef604775558a0ce61da2ebe1 } public boolean foxRidable = false; -@@ -862,6 +888,7 @@ public class PurpurWorldConfig { +@@ -865,6 +891,7 @@ public class PurpurWorldConfig { public double foxMaxHealth = 10.0D; public boolean foxTypeChangesWithTulips = false; public int foxBreedingTicks = 6000; @@ -530,7 +530,7 @@ index e0a6b836600906fa0214904e57d439024a953ac7..013d975bef604775558a0ce61da2ebe1 private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -873,6 +900,7 @@ public class PurpurWorldConfig { +@@ -876,6 +903,7 @@ public class PurpurWorldConfig { foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth); foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips); foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks); @@ -538,7 +538,7 @@ index e0a6b836600906fa0214904e57d439024a953ac7..013d975bef604775558a0ce61da2ebe1 } public boolean ghastRidable = false; -@@ -1268,6 +1296,7 @@ public class PurpurWorldConfig { +@@ -1271,6 +1299,7 @@ public class PurpurWorldConfig { public boolean piglinRidable = false; public boolean piglinRidableInWater = false; public double piglinMaxHealth = 16.0D; @@ -546,7 +546,7 @@ index e0a6b836600906fa0214904e57d439024a953ac7..013d975bef604775558a0ce61da2ebe1 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1277,6 +1306,7 @@ public class PurpurWorldConfig { +@@ -1280,6 +1309,7 @@ public class PurpurWorldConfig { set("mobs.piglin.attributes.max_health", oldValue); } piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth); @@ -554,7 +554,7 @@ index e0a6b836600906fa0214904e57d439024a953ac7..013d975bef604775558a0ce61da2ebe1 } public boolean piglinBruteRidable = false; -@@ -1296,6 +1326,7 @@ public class PurpurWorldConfig { +@@ -1299,6 +1329,7 @@ public class PurpurWorldConfig { public boolean pillagerRidable = false; public boolean pillagerRidableInWater = false; public double pillagerMaxHealth = 24.0D; @@ -562,7 +562,7 @@ index e0a6b836600906fa0214904e57d439024a953ac7..013d975bef604775558a0ce61da2ebe1 private void pillagerSettings() { pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); -@@ -1305,6 +1336,7 @@ public class PurpurWorldConfig { +@@ -1308,6 +1339,7 @@ public class PurpurWorldConfig { set("mobs.pillager.attributes.max_health", oldValue); } pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth); @@ -570,7 +570,7 @@ index e0a6b836600906fa0214904e57d439024a953ac7..013d975bef604775558a0ce61da2ebe1 } public boolean polarBearRidable = false; -@@ -1346,6 +1378,7 @@ public class PurpurWorldConfig { +@@ -1349,6 +1381,7 @@ public class PurpurWorldConfig { public double rabbitNaturalToast = 0.0D; public double rabbitNaturalKiller = 0.0D; public int rabbitBreedingTicks = 6000; @@ -578,7 +578,7 @@ index e0a6b836600906fa0214904e57d439024a953ac7..013d975bef604775558a0ce61da2ebe1 private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1358,11 +1391,13 @@ public class PurpurWorldConfig { +@@ -1361,11 +1394,13 @@ public class PurpurWorldConfig { rabbitNaturalToast = getDouble("mobs.rabbit.spawn-toast-chance", rabbitNaturalToast); rabbitNaturalKiller = getDouble("mobs.rabbit.spawn-killer-rabbit-chance", rabbitNaturalKiller); rabbitBreedingTicks = getInt("mobs.rabbit.breeding-delay-ticks", rabbitBreedingTicks); @@ -592,7 +592,7 @@ index e0a6b836600906fa0214904e57d439024a953ac7..013d975bef604775558a0ce61da2ebe1 private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -1372,6 +1407,7 @@ public class PurpurWorldConfig { +@@ -1375,6 +1410,7 @@ public class PurpurWorldConfig { set("mobs.ravager.attributes.max_health", oldValue); } ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth); @@ -600,7 +600,7 @@ index e0a6b836600906fa0214904e57d439024a953ac7..013d975bef604775558a0ce61da2ebe1 } public boolean salmonRidable = false; -@@ -1390,6 +1426,7 @@ public class PurpurWorldConfig { +@@ -1393,6 +1429,7 @@ public class PurpurWorldConfig { public boolean sheepRidableInWater = false; public double sheepMaxHealth = 8.0D; public int sheepBreedingTicks = 6000; @@ -608,7 +608,7 @@ index e0a6b836600906fa0214904e57d439024a953ac7..013d975bef604775558a0ce61da2ebe1 private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -1400,6 +1437,7 @@ public class PurpurWorldConfig { +@@ -1403,6 +1440,7 @@ public class PurpurWorldConfig { } sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth); sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks); @@ -616,7 +616,7 @@ index e0a6b836600906fa0214904e57d439024a953ac7..013d975bef604775558a0ce61da2ebe1 } public boolean shulkerRidable = false; -@@ -1419,6 +1457,7 @@ public class PurpurWorldConfig { +@@ -1422,6 +1460,7 @@ public class PurpurWorldConfig { public boolean silverfishRidable = false; public boolean silverfishRidableInWater = false; public double silverfishMaxHealth = 8.0D; @@ -624,7 +624,7 @@ index e0a6b836600906fa0214904e57d439024a953ac7..013d975bef604775558a0ce61da2ebe1 private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -1428,6 +1467,7 @@ public class PurpurWorldConfig { +@@ -1431,6 +1470,7 @@ public class PurpurWorldConfig { set("mobs.silverfish.attributes.max_health", oldValue); } silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth); @@ -632,7 +632,7 @@ index e0a6b836600906fa0214904e57d439024a953ac7..013d975bef604775558a0ce61da2ebe1 } public boolean skeletonRidable = false; -@@ -1495,6 +1535,7 @@ public class PurpurWorldConfig { +@@ -1498,6 +1538,7 @@ public class PurpurWorldConfig { public int snowGolemSnowBallMax = 20; public float snowGolemSnowBallModifier = 10.0F; public double snowGolemAttackDistance = 1.25D; @@ -640,7 +640,7 @@ index e0a6b836600906fa0214904e57d439024a953ac7..013d975bef604775558a0ce61da2ebe1 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1511,6 +1552,7 @@ public class PurpurWorldConfig { +@@ -1514,6 +1555,7 @@ public class PurpurWorldConfig { snowGolemSnowBallMax = getInt("mobs.snow_golem.max-shoot-interval-ticks", snowGolemSnowBallMax); snowGolemSnowBallModifier = (float) getDouble("mobs.snow_golem.snow-ball-modifier", snowGolemSnowBallModifier); snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance); @@ -648,7 +648,7 @@ index e0a6b836600906fa0214904e57d439024a953ac7..013d975bef604775558a0ce61da2ebe1 } public boolean squidRidable = false; -@@ -1670,6 +1712,7 @@ public class PurpurWorldConfig { +@@ -1673,6 +1715,7 @@ public class PurpurWorldConfig { public int villagerLobotomizeCheck = 60; public boolean villagerClericsFarmWarts = false; public boolean villagerClericFarmersThrowWarts = true; @@ -656,7 +656,7 @@ index e0a6b836600906fa0214904e57d439024a953ac7..013d975bef604775558a0ce61da2ebe1 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1696,6 +1739,7 @@ public class PurpurWorldConfig { +@@ -1699,6 +1742,7 @@ 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); @@ -664,7 +664,7 @@ index e0a6b836600906fa0214904e57d439024a953ac7..013d975bef604775558a0ce61da2ebe1 } public boolean vindicatorRidable = false; -@@ -1752,6 +1796,7 @@ public class PurpurWorldConfig { +@@ -1755,6 +1799,7 @@ public class PurpurWorldConfig { public double witherMaxHealth = 300.0D; public float witherHealthRegenAmount = 1.0f; public int witherHealthRegenDelay = 20; @@ -672,7 +672,7 @@ index e0a6b836600906fa0214904e57d439024a953ac7..013d975bef604775558a0ce61da2ebe1 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1768,6 +1813,7 @@ public class PurpurWorldConfig { +@@ -1771,6 +1816,7 @@ public class PurpurWorldConfig { witherMaxHealth = getDouble("mobs.wither.attributes.max_health", witherMaxHealth); witherHealthRegenAmount = (float) getDouble("mobs.wither.health-regen-amount", witherHealthRegenAmount); witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay); @@ -680,7 +680,7 @@ index e0a6b836600906fa0214904e57d439024a953ac7..013d975bef604775558a0ce61da2ebe1 } public boolean witherSkeletonRidable = false; -@@ -1835,6 +1881,7 @@ public class PurpurWorldConfig { +@@ -1838,6 +1884,7 @@ public class PurpurWorldConfig { public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; public Difficulty zombieBreakDoorMinDifficulty = Difficulty.HARD; @@ -688,7 +688,7 @@ index e0a6b836600906fa0214904e57d439024a953ac7..013d975bef604775558a0ce61da2ebe1 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1854,6 +1901,7 @@ public class PurpurWorldConfig { +@@ -1857,6 +1904,7 @@ public class PurpurWorldConfig { } catch (IllegalArgumentException ignore) { zombieBreakDoorMinDifficulty = Difficulty.HARD; } diff --git a/patches/server/0150-Config-to-allow-Note-Block-sounds-when-blocked.patch b/patches/server/0150-Config-to-allow-Note-Block-sounds-when-blocked.patch index 3c0c983a8..793b39e78 100644 --- a/patches/server/0150-Config-to-allow-Note-Block-sounds-when-blocked.patch +++ b/patches/server/0150-Config-to-allow-Note-Block-sounds-when-blocked.patch @@ -22,10 +22,10 @@ index d3c8fd8399629efb8bcbaf7d9a0c43340fcdfeda..c74df3b5c2a25469ad3fb6a853438bbc org.bukkit.event.block.NotePlayEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callNotePlayEvent(world, blockposition, data.getValue(NoteBlock.INSTRUMENT), data.getValue(NoteBlock.NOTE)); if (!event.isCancelled()) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 013d975bef604775558a0ce61da2ebe1c8681ef3..c1edb1afdab489bc1fea8d0783ea70ee060ce52d 100644 +index a9cda879921260f350277cf49d11eac884adee0f..d9eee62b0b9bce501a6db08c27925325d9ba49e4 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -368,6 +368,7 @@ public class PurpurWorldConfig { +@@ -371,6 +371,7 @@ public class PurpurWorldConfig { public boolean entitiesPickUpLootBypassMobGriefing = false; public boolean fireballsBypassMobGriefing = false; public boolean milkCuresBadOmen = true; @@ -33,7 +33,7 @@ index 013d975bef604775558a0ce61da2ebe1c8681ef3..c1edb1afdab489bc1fea8d0783ea70ee public boolean persistentTileEntityDisplayNames = false; public boolean persistentDroppableEntityDisplayNames = false; public boolean projectilesBypassMobGriefing = false; -@@ -385,6 +386,7 @@ public class PurpurWorldConfig { +@@ -388,6 +389,7 @@ public class PurpurWorldConfig { entitiesPickUpLootBypassMobGriefing = getBoolean("gameplay-mechanics.entities-pick-up-loot-bypass-mob-griefing", entitiesPickUpLootBypassMobGriefing); fireballsBypassMobGriefing = getBoolean("gameplay-mechanics.fireballs-bypass-mob-griefing", fireballsBypassMobGriefing); milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); diff --git a/patches/server/0151-Add-EntityTeleportHinderedEvent.patch b/patches/server/0151-Add-EntityTeleportHinderedEvent.patch index 785a68c6e..7996eaeb1 100644 --- a/patches/server/0151-Add-EntityTeleportHinderedEvent.patch +++ b/patches/server/0151-Add-EntityTeleportHinderedEvent.patch @@ -78,10 +78,10 @@ index 09cbce5aec6eabfa220f7de81b492a180cb8ca1e..265770975ad1190283103b04cdd52a07 blockEntity.teleportCooldown = 100; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index c1edb1afdab489bc1fea8d0783ea70ee060ce52d..d6b0d0473fe231825a8882eb07b4b98c1198164e 100644 +index d9eee62b0b9bce501a6db08c27925325d9ba49e4..6aa1e58038304f8eb2fe31bc9f1e41f5cfc27f3e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -367,6 +367,7 @@ public class PurpurWorldConfig { +@@ -370,6 +370,7 @@ public class PurpurWorldConfig { public boolean entitiesCanUsePortals = true; public boolean entitiesPickUpLootBypassMobGriefing = false; public boolean fireballsBypassMobGriefing = false; @@ -89,7 +89,7 @@ index c1edb1afdab489bc1fea8d0783ea70ee060ce52d..d6b0d0473fe231825a8882eb07b4b98c public boolean milkCuresBadOmen = true; public boolean noteBlockIgnoreAbove = false; public boolean persistentTileEntityDisplayNames = false; -@@ -385,6 +386,7 @@ public class PurpurWorldConfig { +@@ -388,6 +389,7 @@ public class PurpurWorldConfig { entitiesCanUsePortals = getBoolean("gameplay-mechanics.entities-can-use-portals", entitiesCanUsePortals); entitiesPickUpLootBypassMobGriefing = getBoolean("gameplay-mechanics.entities-pick-up-loot-bypass-mob-griefing", entitiesPickUpLootBypassMobGriefing); fireballsBypassMobGriefing = getBoolean("gameplay-mechanics.fireballs-bypass-mob-griefing", fireballsBypassMobGriefing); diff --git a/patches/server/0153-Farmland-trampling-changes.patch b/patches/server/0153-Farmland-trampling-changes.patch index bb2f1a3c0..82d27d55a 100644 --- a/patches/server/0153-Farmland-trampling-changes.patch +++ b/patches/server/0153-Farmland-trampling-changes.patch @@ -37,10 +37,10 @@ index aad204181c4f54ee533bfe3fc04a8705b847e371..16eb80e7926cf4fe421c17d7d851d457 if (CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.DIRT.defaultBlockState()).isCancelled()) { return; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index d6b0d0473fe231825a8882eb07b4b98c1198164e..720a693d7b6f455b79aca7080d6be37162618ca3 100644 +index 6aa1e58038304f8eb2fe31bc9f1e41f5cfc27f3e..2fd081c6b29638faf310189cec6f2fc87d8151c2 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -464,10 +464,16 @@ public class PurpurWorldConfig { +@@ -467,10 +467,16 @@ public class PurpurWorldConfig { public boolean farmlandBypassMobGriefing = false; public boolean farmlandGetsMoistFromBelow = false; public boolean farmlandAlpha = false; diff --git a/patches/server/0154-Movement-options-for-armor-stands.patch b/patches/server/0154-Movement-options-for-armor-stands.patch index 0506153b9..990469600 100644 --- a/patches/server/0154-Movement-options-for-armor-stands.patch +++ b/patches/server/0154-Movement-options-for-armor-stands.patch @@ -66,10 +66,10 @@ index 796ab61f4513c02b0d55d34044d2f7084c447796..d119f8ab447bc17deabc494463de4961 + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 7bdab60d4437acdbfb54787e4c62bb935d3b7651..309bfce0508b33e755f35875b025aa1413179955 100644 +index 2fd081c6b29638faf310189cec6f2fc87d8151c2..c0f24f9c8737a32a5314dfd9131d0133bd56f255 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -99,10 +99,16 @@ public class PurpurWorldConfig { +@@ -102,10 +102,16 @@ public class PurpurWorldConfig { public float armorstandStepHeight = 0.0F; public boolean armorstandSetNameVisible = false; public boolean armorstandFixNametags = false; diff --git a/patches/server/0155-Fix-stuck-in-portals.patch b/patches/server/0155-Fix-stuck-in-portals.patch index 67b8f4441..858d10983 100644 --- a/patches/server/0155-Fix-stuck-in-portals.patch +++ b/patches/server/0155-Fix-stuck-in-portals.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix stuck in portals diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 269e422ea2860979bf08c9a280d17b165f456e93..da66a86620a7f53f12693d2fc040446e036a8c37 100644 +index 93b8260c59c659ddd2e80660be23b9a825339a72..0c652c509c94d82a784acc8c6d4c2c6d037532db 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1141,6 +1141,7 @@ public class ServerPlayer extends Player { @@ -37,10 +37,10 @@ index 1029b004b526acbeecc1f2e82ddae00ff3de1196..1f06a8b4102d8736755e052f03d3bfb0 this.isInsidePortal = true; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 81eb889ccb63680abd674eac5f902458af924069..088b0f8bb5ab744f41dcbeb06a71163b20ebd849 100644 +index c0f24f9c8737a32a5314dfd9131d0133bd56f255..6bd19d153fcdb59b144ed40e8493e4a9f4c0e523 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -293,6 +293,7 @@ public class PurpurWorldConfig { +@@ -296,6 +296,7 @@ public class PurpurWorldConfig { public int playerDeathExpDropMax = 100; public boolean teleportIfOutsideBorder = false; public boolean totemOfUndyingWorksInInventory = false; @@ -48,7 +48,7 @@ index 81eb889ccb63680abd674eac5f902458af924069..088b0f8bb5ab744f41dcbeb06a71163b 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); -@@ -305,6 +306,7 @@ public class PurpurWorldConfig { +@@ -308,6 +309,7 @@ public class PurpurWorldConfig { playerDeathExpDropMax = getInt("gameplay-mechanics.player.exp-dropped-on-death.maximum", playerDeathExpDropMax); teleportIfOutsideBorder = getBoolean("gameplay-mechanics.player.teleport-if-outside-border", teleportIfOutsideBorder); totemOfUndyingWorksInInventory = getBoolean("gameplay-mechanics.player.totem-of-undying-works-in-inventory", totemOfUndyingWorksInInventory); diff --git a/patches/server/0156-Toggle-for-water-sensitive-mob-damage.patch b/patches/server/0156-Toggle-for-water-sensitive-mob-damage.patch index fa3daf4e7..193a48131 100644 --- a/patches/server/0156-Toggle-for-water-sensitive-mob-damage.patch +++ b/patches/server/0156-Toggle-for-water-sensitive-mob-damage.patch @@ -70,10 +70,10 @@ index b3928617f732b49cfc124e9bdb879110413defd7..1c6d29a30df66e9971cd50e264bb4455 @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 088b0f8bb5ab744f41dcbeb06a71163b20ebd849..e77673999cf539e92c450c9e25b984377e66de62 100644 +index 6bd19d153fcdb59b144ed40e8493e4a9f4c0e523..20298204893a4fab0e3b1be36eca7611eac7399e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -631,6 +631,7 @@ public class PurpurWorldConfig { +@@ -634,6 +634,7 @@ public class PurpurWorldConfig { public boolean blazeRidableInWater = false; public double blazeMaxY = 256D; public double blazeMaxHealth = 20.0D; @@ -81,7 +81,7 @@ index 088b0f8bb5ab744f41dcbeb06a71163b20ebd849..e77673999cf539e92c450c9e25b98437 private void blazeSettings() { blazeRidable = getBoolean("mobs.blaze.ridable", blazeRidable); blazeRidableInWater = getBoolean("mobs.blaze.ridable-in-water", blazeRidableInWater); -@@ -641,6 +642,7 @@ public class PurpurWorldConfig { +@@ -644,6 +645,7 @@ public class PurpurWorldConfig { set("mobs.blaze.attributes.max_health", oldValue); } blazeMaxHealth = getDouble("mobs.blaze.attributes.max_health", blazeMaxHealth); @@ -89,7 +89,7 @@ index 088b0f8bb5ab744f41dcbeb06a71163b20ebd849..e77673999cf539e92c450c9e25b98437 } public boolean catRidable = false; -@@ -857,6 +859,7 @@ public class PurpurWorldConfig { +@@ -860,6 +862,7 @@ public class PurpurWorldConfig { public boolean endermanAllowGriefing = true; public boolean endermanDespawnEvenWithBlock = false; public boolean endermanBypassMobGriefing = false; @@ -97,7 +97,7 @@ index 088b0f8bb5ab744f41dcbeb06a71163b20ebd849..e77673999cf539e92c450c9e25b98437 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -869,6 +872,7 @@ public class PurpurWorldConfig { +@@ -872,6 +875,7 @@ public class PurpurWorldConfig { endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing); endermanDespawnEvenWithBlock = getBoolean("mobs.enderman.can-despawn-with-held-block", endermanDespawnEvenWithBlock); endermanBypassMobGriefing = getBoolean("mobs.enderman.bypass-mob-griefing", endermanBypassMobGriefing); @@ -105,7 +105,7 @@ index 088b0f8bb5ab744f41dcbeb06a71163b20ebd849..e77673999cf539e92c450c9e25b98437 } public boolean endermiteRidable = false; -@@ -1554,6 +1558,7 @@ public class PurpurWorldConfig { +@@ -1557,6 +1561,7 @@ public class PurpurWorldConfig { public float snowGolemSnowBallModifier = 10.0F; public double snowGolemAttackDistance = 1.25D; public boolean snowGolemBypassMobGriefing = false; @@ -113,7 +113,7 @@ index 088b0f8bb5ab744f41dcbeb06a71163b20ebd849..e77673999cf539e92c450c9e25b98437 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1571,6 +1576,7 @@ public class PurpurWorldConfig { +@@ -1574,6 +1579,7 @@ public class PurpurWorldConfig { snowGolemSnowBallModifier = (float) getDouble("mobs.snow_golem.snow-ball-modifier", snowGolemSnowBallModifier); snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance); snowGolemBypassMobGriefing = getBoolean("mobs.snow_golem.bypass-mob-griefing", snowGolemBypassMobGriefing); @@ -121,7 +121,7 @@ index 088b0f8bb5ab744f41dcbeb06a71163b20ebd849..e77673999cf539e92c450c9e25b98437 } public boolean squidRidable = false; -@@ -1624,6 +1630,7 @@ public class PurpurWorldConfig { +@@ -1627,6 +1633,7 @@ public class PurpurWorldConfig { public double striderMaxHealth = 20.0D; public int striderBreedingTicks = 6000; public boolean striderGiveSaddleBack = false; @@ -129,7 +129,7 @@ index 088b0f8bb5ab744f41dcbeb06a71163b20ebd849..e77673999cf539e92c450c9e25b98437 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1635,6 +1642,7 @@ public class PurpurWorldConfig { +@@ -1638,6 +1645,7 @@ public class PurpurWorldConfig { striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth); striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks); striderGiveSaddleBack = getBoolean("mobs.strider.give-saddle-back", striderGiveSaddleBack); diff --git a/patches/server/0157-Config-to-always-tame-in-Creative.patch b/patches/server/0157-Config-to-always-tame-in-Creative.patch index 94a049446..d881dd8d4 100644 --- a/patches/server/0157-Config-to-always-tame-in-Creative.patch +++ b/patches/server/0157-Config-to-always-tame-in-Creative.patch @@ -59,10 +59,10 @@ index 518dd0e6b4889c049e438b393baa795a5eac3e7d..21e154c4e7fe261a41c891b481072fbd this.navigation.stop(); this.setTarget((LivingEntity) null); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index e77673999cf539e92c450c9e25b984377e66de62..227d03c46f00fb4aeacb8c0e11eb3649f5255fc6 100644 +index 20298204893a4fab0e3b1be36eca7611eac7399e..5bfa8b91be88790263ad0b2a25ba5c7bfd338dbf 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -369,6 +369,7 @@ public class PurpurWorldConfig { +@@ -372,6 +372,7 @@ public class PurpurWorldConfig { } public boolean useBetterMending = false; @@ -70,7 +70,7 @@ index e77673999cf539e92c450c9e25b984377e66de62..227d03c46f00fb4aeacb8c0e11eb3649 public boolean boatEjectPlayersOnLand = false; public boolean boatsDoFallDamage = true; public boolean disableDropsOnCrammingDeath = false; -@@ -388,6 +389,7 @@ public class PurpurWorldConfig { +@@ -391,6 +392,7 @@ public class PurpurWorldConfig { public int animalBreedingCooldownSeconds = 0; private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); diff --git a/patches/server/0158-End-crystal-explosion-options.patch b/patches/server/0158-End-crystal-explosion-options.patch index 0900d3063..aba2d5530 100644 --- a/patches/server/0158-End-crystal-explosion-options.patch +++ b/patches/server/0158-End-crystal-explosion-options.patch @@ -52,10 +52,10 @@ index 92e65f3fbc8f5d77bb8cc31e7a7780c2589f4227..0c46507ab0b904fb1f79bc5421c88c03 this.onDestroyedBy(source); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 227d03c46f00fb4aeacb8c0e11eb3649f5255fc6..6a814b743bc775b54026899c521379c2e87c0e0e 100644 +index 5bfa8b91be88790263ad0b2a25ba5c7bfd338dbf..230522b2ff5113786ddd0c04918f05a97ba1f152 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -471,6 +471,35 @@ public class PurpurWorldConfig { +@@ -474,6 +474,35 @@ public class PurpurWorldConfig { dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils); } diff --git a/patches/server/0160-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch b/patches/server/0160-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch index 35cb81148..0e57e6826 100644 --- a/patches/server/0160-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch +++ b/patches/server/0160-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch @@ -29,10 +29,10 @@ index 15d35d325b66e1a417eb7ba699597d627bd4eb54..36745f845f33c877595d572e46bd8e96 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 6a814b743bc775b54026899c521379c2e87c0e0e..3167b821798428e955daa421ca121b3403bc7ff4 100644 +index 230522b2ff5113786ddd0c04918f05a97ba1f152..56bed5e58d49196f1f94660dbd88a9fae99a9be7 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -866,6 +866,7 @@ public class PurpurWorldConfig { +@@ -869,6 +869,7 @@ public class PurpurWorldConfig { public double enderDragonMaxHealth = 200.0D; public boolean enderDragonAlwaysDropsFullExp = false; public boolean enderDragonBypassMobGriefing = false; @@ -40,7 +40,7 @@ index 6a814b743bc775b54026899c521379c2e87c0e0e..3167b821798428e955daa421ca121b34 private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -882,6 +883,7 @@ public class PurpurWorldConfig { +@@ -885,6 +886,7 @@ public class PurpurWorldConfig { enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth); enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp); enderDragonBypassMobGriefing = getBoolean("mobs.ender_dragon.bypass-mob-griefing", enderDragonBypassMobGriefing); @@ -48,7 +48,7 @@ index 6a814b743bc775b54026899c521379c2e87c0e0e..3167b821798428e955daa421ca121b34 } public boolean endermanRidable = false; -@@ -1854,6 +1856,7 @@ public class PurpurWorldConfig { +@@ -1857,6 +1859,7 @@ public class PurpurWorldConfig { public float witherHealthRegenAmount = 1.0f; public int witherHealthRegenDelay = 20; public boolean witherBypassMobGriefing = false; @@ -56,7 +56,7 @@ index 6a814b743bc775b54026899c521379c2e87c0e0e..3167b821798428e955daa421ca121b34 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1871,6 +1874,7 @@ public class PurpurWorldConfig { +@@ -1874,6 +1877,7 @@ public class PurpurWorldConfig { witherHealthRegenAmount = (float) getDouble("mobs.wither.health-regen-amount", witherHealthRegenAmount); witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay); witherBypassMobGriefing = getBoolean("mobs.wither.bypass-mob-griefing", witherBypassMobGriefing); diff --git a/patches/server/0161-Dont-run-with-scissors.patch b/patches/server/0161-Dont-run-with-scissors.patch index 080910915..6168c5bd6 100644 --- a/patches/server/0161-Dont-run-with-scissors.patch +++ b/patches/server/0161-Dont-run-with-scissors.patch @@ -43,10 +43,10 @@ index 00a5c65439a30499156a10b1822760fe48ee7776..3b68981645eb70df8828d437411564e8 public static int seedFeatureBamboo = -1; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 3167b821798428e955daa421ca121b3403bc7ff4..a9fd8ebf763b379a203c17a54fce5e841249d5ca 100644 +index 56bed5e58d49196f1f94660dbd88a9fae99a9be7..0cb4b3d9084646b493418dea60323752db3f13a0 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -153,6 +153,8 @@ public class PurpurWorldConfig { +@@ -156,6 +156,8 @@ public class PurpurWorldConfig { public List itemImmuneToExplosion = new ArrayList<>(); public List itemImmuneToFire = new ArrayList<>(); public List itemImmuneToLightning = new ArrayList<>(); @@ -55,7 +55,7 @@ index 3167b821798428e955daa421ca121b3403bc7ff4..a9fd8ebf763b379a203c17a54fce5e84 private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -190,6 +192,8 @@ public class PurpurWorldConfig { +@@ -193,6 +195,8 @@ public class PurpurWorldConfig { Item item = Registry.ITEM.get(new ResourceLocation(key.toString())); if (item != Items.AIR) itemImmuneToLightning.add(item); }); diff --git a/patches/server/0162-One-Punch-Man.patch b/patches/server/0162-One-Punch-Man.patch index b03b95035..e4ffd7487 100644 --- a/patches/server/0162-One-Punch-Man.patch +++ b/patches/server/0162-One-Punch-Man.patch @@ -30,10 +30,10 @@ index 5c82dd279fc3a5847e2e0ed6c9cf9e70acfb3bff..c123e723d4fc3202eb7a4c74a356ffcd if (human) { // PAIL: Be sure to drag all this code from the EntityHuman subclass each update. diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index a9fd8ebf763b379a203c17a54fce5e841249d5ca..8d3f8d49cef5e1699299e24bc856ae2c37d1169a 100644 +index 0cb4b3d9084646b493418dea60323752db3f13a0..568be31ce53d8f037e49a592c0cb548d9ca644d1 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -298,6 +298,7 @@ public class PurpurWorldConfig { +@@ -301,6 +301,7 @@ public class PurpurWorldConfig { public boolean teleportIfOutsideBorder = false; public boolean totemOfUndyingWorksInInventory = false; public boolean playerFixStuckPortal = false; @@ -41,7 +41,7 @@ index a9fd8ebf763b379a203c17a54fce5e841249d5ca..8d3f8d49cef5e1699299e24bc856ae2c 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); -@@ -311,6 +312,7 @@ public class PurpurWorldConfig { +@@ -314,6 +315,7 @@ public class PurpurWorldConfig { teleportIfOutsideBorder = getBoolean("gameplay-mechanics.player.teleport-if-outside-border", teleportIfOutsideBorder); totemOfUndyingWorksInInventory = getBoolean("gameplay-mechanics.player.totem-of-undying-works-in-inventory", totemOfUndyingWorksInInventory); playerFixStuckPortal = getBoolean("gameplay-mechanics.player.fix-stuck-in-portal", playerFixStuckPortal); diff --git a/patches/server/0163-Add-config-for-snow-on-blue-ice.patch b/patches/server/0163-Add-config-for-snow-on-blue-ice.patch index dd725d860..51ff3e6b7 100644 --- a/patches/server/0163-Add-config-for-snow-on-blue-ice.patch +++ b/patches/server/0163-Add-config-for-snow-on-blue-ice.patch @@ -29,10 +29,10 @@ index 0169d874247a96c2e10a65ecb9c0c093f5a6ecfb..b760e2d014b3ae70671878082bb853b7 @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 8d3f8d49cef5e1699299e24bc856ae2c37d1169a..f30b3007ff52344bfe17fa54f57b8072bf891d99 100644 +index 568be31ce53d8f037e49a592c0cb548d9ca644d1..f5c6f603165a0afa9432b8ef86dd72a4ce5cc24f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -532,6 +532,11 @@ public class PurpurWorldConfig { +@@ -535,6 +535,11 @@ public class PurpurWorldConfig { furnaceUseLavaFromUnderneath = getBoolean("blocks.furnace.use-lava-from-underneath", furnaceUseLavaFromUnderneath); } diff --git a/patches/server/0164-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch b/patches/server/0164-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch index 994db5fa4..64ff5c8a4 100644 --- a/patches/server/0164-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch +++ b/patches/server/0164-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch @@ -43,10 +43,10 @@ index 749ab72edc0d2e9c6f1161415ab8d59d3d6ca976..897c202c0905040072a06fdfa2032a7f // Paper end if (user instanceof net.minecraft.server.level.ServerPlayer) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index bfd78fd1c8877558d40aab90644fad1266450e3f..1f419bc31e90a4a09fd65ba3de4a46688292bbce 100644 +index f5c6f603165a0afa9432b8ef86dd72a4ce5cc24f..1a6c40ce6f3ee5e48280827952db51d00bae3908 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -155,6 +155,10 @@ public class PurpurWorldConfig { +@@ -158,6 +158,10 @@ public class PurpurWorldConfig { public List itemImmuneToLightning = new ArrayList<>(); public boolean dontRunWithScissors = false; public double scissorsRunningDamage = 1D; @@ -57,7 +57,7 @@ index bfd78fd1c8877558d40aab90644fad1266450e3f..1f419bc31e90a4a09fd65ba3de4a4668 private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -194,6 +198,10 @@ public class PurpurWorldConfig { +@@ -197,6 +201,10 @@ public class PurpurWorldConfig { }); dontRunWithScissors = getBoolean("gameplay-mechanics.item.shears.damage-if-sprinting", dontRunWithScissors); scissorsRunningDamage = getDouble("gameplay-mechanics.item.shears.sprinting-damage", scissorsRunningDamage); diff --git a/patches/server/0165-Config-to-ignore-nearby-mobs-when-sleeping.patch b/patches/server/0165-Config-to-ignore-nearby-mobs-when-sleeping.patch index 239fd52c3..13bdc5ddc 100644 --- a/patches/server/0165-Config-to-ignore-nearby-mobs-when-sleeping.patch +++ b/patches/server/0165-Config-to-ignore-nearby-mobs-when-sleeping.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config to ignore nearby mobs when sleeping diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index da66a86620a7f53f12693d2fc040446e036a8c37..02d20650dd74b93efb47f07fea7265e1ae32c726 100644 +index 0c652c509c94d82a784acc8c6d4c2c6d037532db..d4be590e81a966eddfdf8c7d9c8849435f29bdcf 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1304,7 +1304,7 @@ public class ServerPlayer extends Player { @@ -18,10 +18,10 @@ index da66a86620a7f53f12693d2fc040446e036a8c37..02d20650dd74b93efb47f07fea7265e1 } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index ab24cdcbea8906af1f68990c654778801b31443e..617e6151895ebc7c1b6d42619f0bd1b1a9f85efe 100644 +index 1a6c40ce6f3ee5e48280827952db51d00bae3908..469f61aa99f73cdae0fd9fd58c788c4e6c981e0b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -307,6 +307,7 @@ public class PurpurWorldConfig { +@@ -310,6 +310,7 @@ public class PurpurWorldConfig { public boolean totemOfUndyingWorksInInventory = false; public boolean playerFixStuckPortal = false; public boolean creativeOnePunch = false; @@ -29,7 +29,7 @@ index ab24cdcbea8906af1f68990c654778801b31443e..617e6151895ebc7c1b6d42619f0bd1b1 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); -@@ -321,6 +322,7 @@ public class PurpurWorldConfig { +@@ -324,6 +325,7 @@ public class PurpurWorldConfig { totemOfUndyingWorksInInventory = getBoolean("gameplay-mechanics.player.totem-of-undying-works-in-inventory", totemOfUndyingWorksInInventory); playerFixStuckPortal = getBoolean("gameplay-mechanics.player.fix-stuck-in-portal", playerFixStuckPortal); creativeOnePunch = getBoolean("gameplay-mechanics.player.one-punch-in-creative", creativeOnePunch); diff --git a/patches/server/0167-Config-Enderman-aggressiveness-towards-Endermites.patch b/patches/server/0167-Config-Enderman-aggressiveness-towards-Endermites.patch index d985b1cd5..62e82b0c0 100644 --- a/patches/server/0167-Config-Enderman-aggressiveness-towards-Endermites.patch +++ b/patches/server/0167-Config-Enderman-aggressiveness-towards-Endermites.patch @@ -18,10 +18,10 @@ index 3907b7cb559dabdd3cc347678d42071215c66a6c..e8779b23b5e1a399dde19fc66d820101 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 617e6151895ebc7c1b6d42619f0bd1b1a9f85efe..60e029e6416e6a1f1911ade3abbc04f34bd6422d 100644 +index 469f61aa99f73cdae0fd9fd58c788c4e6c981e0b..b3914c0665a11f85aa7e072a46ba2cab923d1665 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -914,6 +914,8 @@ public class PurpurWorldConfig { +@@ -917,6 +917,8 @@ public class PurpurWorldConfig { public boolean endermanDespawnEvenWithBlock = false; public boolean endermanBypassMobGriefing = false; public boolean endermanTakeDamageFromWater = true; @@ -30,7 +30,7 @@ index 617e6151895ebc7c1b6d42619f0bd1b1a9f85efe..60e029e6416e6a1f1911ade3abbc04f3 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -922,11 +924,17 @@ public class PurpurWorldConfig { +@@ -925,11 +927,17 @@ public class PurpurWorldConfig { set("mobs.enderman.attributes.max-health", null); set("mobs.enderman.attributes.max_health", oldValue); } diff --git a/patches/server/0168-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch b/patches/server/0168-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch index da760f00c..8d2e4a31d 100644 --- a/patches/server/0168-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch +++ b/patches/server/0168-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch @@ -20,10 +20,10 @@ index e8779b23b5e1a399dde19fc66d820101d61f36bc..ba61f78874d8578b862f317fe00a3162 } else { Vec3 vec3d = player.getViewVector(1.0F).normalize(); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 60e029e6416e6a1f1911ade3abbc04f34bd6422d..ec2ce1c5629eae5b50e814c1ac88026e08f83566 100644 +index b3914c0665a11f85aa7e072a46ba2cab923d1665..7c8cc0b04c6704a691b8ecf110454f64680921e3 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -916,6 +916,8 @@ public class PurpurWorldConfig { +@@ -919,6 +919,8 @@ public class PurpurWorldConfig { public boolean endermanTakeDamageFromWater = true; public boolean endermanAggroEndermites = true; public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false; @@ -32,7 +32,7 @@ index 60e029e6416e6a1f1911ade3abbc04f34bd6422d..ec2ce1c5629eae5b50e814c1ac88026e private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -935,6 +937,8 @@ public class PurpurWorldConfig { +@@ -938,6 +940,8 @@ public class PurpurWorldConfig { endermanTakeDamageFromWater = getBoolean("mobs.enderman.takes-damage-from-water", endermanTakeDamageFromWater); endermanAggroEndermites = getBoolean("mobs.enderman.aggressive-towards-endermites", endermanAggroEndermites); endermanAggroEndermitesOnlyIfPlayerSpawned = getBoolean("mobs.enderman.aggressive-towards-endermites-only-spawned-by-player-thrown-ender-pearls", endermanAggroEndermitesOnlyIfPlayerSpawned); diff --git a/patches/server/0169-Tick-fluids-config.patch b/patches/server/0169-Tick-fluids-config.patch index e631a805e..90f7f501b 100644 --- a/patches/server/0169-Tick-fluids-config.patch +++ b/patches/server/0169-Tick-fluids-config.patch @@ -36,10 +36,10 @@ index 087601ffdeea97ec4cbb9959607bdcbcbae7c6fa..ad24daa0c727df15dbe0549036290a6c } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index ec2ce1c5629eae5b50e814c1ac88026e08f83566..3ddaf7c698ea4274cde42441a99739379b5b9083 100644 +index 7c8cc0b04c6704a691b8ecf110454f64680921e3..ff0512c6d5735ba2c42b021efd075bf724d6996b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -398,6 +398,7 @@ public class PurpurWorldConfig { +@@ -401,6 +401,7 @@ public class PurpurWorldConfig { public boolean persistentTileEntityDisplayNames = false; public boolean persistentDroppableEntityDisplayNames = false; public boolean projectilesBypassMobGriefing = false; @@ -47,7 +47,7 @@ index ec2ce1c5629eae5b50e814c1ac88026e08f83566..3ddaf7c698ea4274cde42441a9973937 public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -418,6 +419,7 @@ public class PurpurWorldConfig { +@@ -421,6 +422,7 @@ public class PurpurWorldConfig { persistentTileEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-tileentity-display-names-and-lore", persistentTileEntityDisplayNames); persistentDroppableEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-droppable-entity-display-names", persistentDroppableEntityDisplayNames); projectilesBypassMobGriefing = getBoolean("gameplay-mechanics.projectiles-bypass-mob-griefing", projectilesBypassMobGriefing); diff --git a/patches/server/0170-Config-to-disable-Llama-caravans.patch b/patches/server/0170-Config-to-disable-Llama-caravans.patch index f04cae2bc..0033bff4e 100644 --- a/patches/server/0170-Config-to-disable-Llama-caravans.patch +++ b/patches/server/0170-Config-to-disable-Llama-caravans.patch @@ -32,10 +32,10 @@ index 93a05b945ac248df0ea7a0b9d7264a9c129c3bcf..8f12851f220bb23102f52f523a4c5d98 this.caravanHead.caravanTail = this; } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 3ddaf7c698ea4274cde42441a99739379b5b9083..809c6855d48c6d7fface4224bac7ea2ea5d1246c 100644 +index ff0512c6d5735ba2c42b021efd075bf724d6996b..5e9e84bed13ee76859ed10d9c40780ff6e171db7 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1182,6 +1182,7 @@ public class PurpurWorldConfig { +@@ -1185,6 +1185,7 @@ public class PurpurWorldConfig { public double llamaMovementSpeedMin = 0.175D; public double llamaMovementSpeedMax = 0.175D; public int llamaBreedingTicks = 6000; @@ -43,7 +43,7 @@ index 3ddaf7c698ea4274cde42441a99739379b5b9083..809c6855d48c6d7fface4224bac7ea2e private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1199,6 +1200,7 @@ public class PurpurWorldConfig { +@@ -1202,6 +1203,7 @@ public class PurpurWorldConfig { llamaMovementSpeedMin = getDouble("mobs.llama.attributes.movement_speed.min", llamaMovementSpeedMin); llamaMovementSpeedMax = getDouble("mobs.llama.attributes.movement_speed.max", llamaMovementSpeedMax); llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks); diff --git a/patches/server/0171-Config-to-make-Creepers-explode-on-death.patch b/patches/server/0171-Config-to-make-Creepers-explode-on-death.patch index 7092fc568..b72e3428a 100644 --- a/patches/server/0171-Config-to-make-Creepers-explode-on-death.patch +++ b/patches/server/0171-Config-to-make-Creepers-explode-on-death.patch @@ -50,10 +50,10 @@ index c550b8c19837ed9bf730a3eb777bc00de4e7ceb2..02494dcc8a342f65b2855612aebeb019 private void spawnLingeringCloud() { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 809c6855d48c6d7fface4224bac7ea2ea5d1246c..2ddfbfc181bef61feed6b3c9f7f82c4c6a7d0551 100644 +index 5e9e84bed13ee76859ed10d9c40780ff6e171db7..29b4a9648347ab354554d1526f38d6959af48e87 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -789,6 +789,7 @@ public class PurpurWorldConfig { +@@ -792,6 +792,7 @@ public class PurpurWorldConfig { public double creeperChargedChance = 0.0D; public boolean creeperAllowGriefing = true; public boolean creeperBypassMobGriefing = false; @@ -61,7 +61,7 @@ index 809c6855d48c6d7fface4224bac7ea2ea5d1246c..2ddfbfc181bef61feed6b3c9f7f82c4c private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -801,6 +802,7 @@ public class PurpurWorldConfig { +@@ -804,6 +805,7 @@ public class PurpurWorldConfig { creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance); creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing); creeperBypassMobGriefing = getBoolean("mobs.creeper.bypass-mob-griefing", creeperBypassMobGriefing); diff --git a/patches/server/0172-Configurable-ravager-griefable-blocks-list.patch b/patches/server/0172-Configurable-ravager-griefable-blocks-list.patch index 6fb579ddc..c3a57a3f1 100644 --- a/patches/server/0172-Configurable-ravager-griefable-blocks-list.patch +++ b/patches/server/0172-Configurable-ravager-griefable-blocks-list.patch @@ -31,10 +31,10 @@ index 3c51e6d419a244b9270119590aa299527163c331..b466b0430dd94777975a1e7ab9792166 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 2ddfbfc181bef61feed6b3c9f7f82c4c6a7d0551..2b78834abbf7ada84aa929024b683af2944053a9 100644 +index 29b4a9648347ab354554d1526f38d6959af48e87..1146a4de8dbfffec741b52c103563f67f7ed50b2 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1492,6 +1492,7 @@ public class PurpurWorldConfig { +@@ -1495,6 +1495,7 @@ public class PurpurWorldConfig { public boolean ravagerRidableInWater = false; public double ravagerMaxHealth = 100.0D; public boolean ravagerBypassMobGriefing = false; @@ -42,7 +42,7 @@ index 2ddfbfc181bef61feed6b3c9f7f82c4c6a7d0551..2b78834abbf7ada84aa929024b683af2 private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -1502,6 +1503,23 @@ public class PurpurWorldConfig { +@@ -1505,6 +1506,23 @@ public class PurpurWorldConfig { } ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth); ravagerBypassMobGriefing = getBoolean("mobs.ravager.bypass-mob-griefing", ravagerBypassMobGriefing); diff --git a/patches/server/0173-Sneak-to-bulk-process-composter.patch b/patches/server/0173-Sneak-to-bulk-process-composter.patch index b40849758..d6f331815 100644 --- a/patches/server/0173-Sneak-to-bulk-process-composter.patch +++ b/patches/server/0173-Sneak-to-bulk-process-composter.patch @@ -62,10 +62,10 @@ index 4c9ae6bdb2f0358798f84928271a2d783dcba7b4..47bf769a031ae39cc72d2191195d1378 int i = (Integer) iblockdata.getValue(ComposterBlock.LEVEL); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 2b78834abbf7ada84aa929024b683af2944053a9..521e8a604b5b99e0425846e788198c4f104a9343 100644 +index 1146a4de8dbfffec741b52c103563f67f7ed50b2..c05851072c293e47fc349c2137b41e969ad01be3 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -482,6 +482,11 @@ public class PurpurWorldConfig { +@@ -485,6 +485,11 @@ public class PurpurWorldConfig { chestOpenWithBlockOnTop = getBoolean("blocks.chest.open-with-solid-block-on-top", chestOpenWithBlockOnTop); } diff --git a/patches/server/0174-Config-for-skipping-night.patch b/patches/server/0174-Config-for-skipping-night.patch index d71101db9..0c359bd07 100644 --- a/patches/server/0174-Config-for-skipping-night.patch +++ b/patches/server/0174-Config-for-skipping-night.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config for skipping night diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 7b823fb8e94ba26a2f7209ebd8f71ad6b50e252d..84a94787952a4b588fad81e8840a0b124f0d5f78 100644 +index 276fb2b9fc9d33dc2157903e799178168c69bc88..68255224e72ae5e7e5eec88c2c29be0dfda64147 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -761,7 +761,7 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl @@ -18,10 +18,10 @@ index 7b823fb8e94ba26a2f7209ebd8f71ad6b50e252d..84a94787952a4b588fad81e8840a0b12 long l = this.levelData.getDayTime() + 24000L; TimeSkipEvent event = new TimeSkipEvent(this.getWorld(), TimeSkipEvent.SkipReason.NIGHT_SKIP, (l - l % 24000L) - this.getDayTime()); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 521e8a604b5b99e0425846e788198c4f104a9343..87aa9f5fd5dfeedb16eb52333a87e77b42d5110c 100644 +index c05851072c293e47fc349c2137b41e969ad01be3..45880d44c2f274d1f253872a324838ada0cc82ec 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -308,6 +308,7 @@ public class PurpurWorldConfig { +@@ -311,6 +311,7 @@ public class PurpurWorldConfig { public boolean playerFixStuckPortal = false; public boolean creativeOnePunch = false; public boolean playerSleepNearMonsters = false; @@ -29,7 +29,7 @@ index 521e8a604b5b99e0425846e788198c4f104a9343..87aa9f5fd5dfeedb16eb52333a87e77b 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); -@@ -323,6 +324,7 @@ public class PurpurWorldConfig { +@@ -326,6 +327,7 @@ public class PurpurWorldConfig { playerFixStuckPortal = getBoolean("gameplay-mechanics.player.fix-stuck-in-portal", playerFixStuckPortal); creativeOnePunch = getBoolean("gameplay-mechanics.player.one-punch-in-creative", creativeOnePunch); playerSleepNearMonsters = getBoolean("gameplay-mechanics.player.sleep-ignore-nearby-mobs", playerSleepNearMonsters); diff --git a/patches/server/0175-Add-config-for-villager-trading.patch b/patches/server/0175-Add-config-for-villager-trading.patch index 8a389308a..acabdb347 100644 --- a/patches/server/0175-Add-config-for-villager-trading.patch +++ b/patches/server/0175-Add-config-for-villager-trading.patch @@ -31,10 +31,10 @@ index c48935d35a6141c41db22e3ec172d5994fd317a2..fa4644c11cbb252734a6f5dc21c861d2 this.openTradingScreen(player, this.getDisplayName(), 1); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 87aa9f5fd5dfeedb16eb52333a87e77b42d5110c..049add966dd91dee8604b21d76468ebaaa211e1d 100644 +index 45880d44c2f274d1f253872a324838ada0cc82ec..09e2d114105e177cc2cb291b064718333cd13f6a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1836,6 +1836,7 @@ public class PurpurWorldConfig { +@@ -1839,6 +1839,7 @@ public class PurpurWorldConfig { public boolean villagerClericsFarmWarts = false; public boolean villagerClericFarmersThrowWarts = true; public boolean villagerBypassMobGriefing = false; @@ -42,7 +42,7 @@ index 87aa9f5fd5dfeedb16eb52333a87e77b42d5110c..049add966dd91dee8604b21d76468eba private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1863,6 +1864,7 @@ public class PurpurWorldConfig { +@@ -1866,6 +1867,7 @@ public class PurpurWorldConfig { villagerClericsFarmWarts = getBoolean("mobs.villager.clerics-farm-warts", villagerClericsFarmWarts); villagerClericFarmersThrowWarts = getBoolean("mobs.villager.cleric-wart-farmers-throw-warts-at-villagers", villagerClericFarmersThrowWarts); villagerBypassMobGriefing = getBoolean("mobs.villager.bypass-mob-griefing", villagerBypassMobGriefing); @@ -50,7 +50,7 @@ index 87aa9f5fd5dfeedb16eb52333a87e77b42d5110c..049add966dd91dee8604b21d76468eba } public boolean vindicatorRidable = false; -@@ -1886,6 +1888,7 @@ public class PurpurWorldConfig { +@@ -1889,6 +1891,7 @@ public class PurpurWorldConfig { public double wanderingTraderMaxHealth = 20.0D; public boolean wanderingTraderFollowEmeraldBlock = false; public boolean wanderingTraderCanBeLeashed = false; @@ -58,7 +58,7 @@ index 87aa9f5fd5dfeedb16eb52333a87e77b42d5110c..049add966dd91dee8604b21d76468eba private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -1897,6 +1900,7 @@ public class PurpurWorldConfig { +@@ -1900,6 +1903,7 @@ public class PurpurWorldConfig { wanderingTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", wanderingTraderMaxHealth); wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock); wanderingTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", wanderingTraderCanBeLeashed); diff --git a/patches/server/0177-Drowning-Settings.patch b/patches/server/0177-Drowning-Settings.patch index dc732bd61..8f0c1b74f 100644 --- a/patches/server/0177-Drowning-Settings.patch +++ b/patches/server/0177-Drowning-Settings.patch @@ -40,10 +40,10 @@ index c123e723d4fc3202eb7a4c74a356ffcde19e2ba5..0a50c0d3450430de9b6251aa65a8bfc8 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 294211ce6652726b4b71e2c3c537b7dd26ac9a3d..2924f2751239bde6ab0ae5c130720e73cb410ce0 100644 +index 09e2d114105e177cc2cb291b064718333cd13f6a..ed5d3690aff4583b9d1cdc2e7fe3d18330cd06ca 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -118,6 +118,15 @@ public class PurpurWorldConfig { +@@ -121,6 +121,15 @@ public class PurpurWorldConfig { nighttimeTicks = getInt("gameplay-mechanics.daylight-cycle-ticks.nighttime", nighttimeTicks); } diff --git a/patches/server/0178-Break-individual-slabs-when-sneaking.patch b/patches/server/0178-Break-individual-slabs-when-sneaking.patch index b7a413450..a26176d31 100644 --- a/patches/server/0178-Break-individual-slabs-when-sneaking.patch +++ b/patches/server/0178-Break-individual-slabs-when-sneaking.patch @@ -47,10 +47,10 @@ index eb7f8907bb362c0461194bbaf62917ce71c669f3..89f5e0d26500f1806dff9f91390546cd + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 57776ea61073dee3b0493c19e731d1a5c1f12a96..9ff72033527d6a1578ff69232bc1c75eea822756 100644 +index ed5d3690aff4583b9d1cdc2e7fe3d18330cd06ca..f1864d45312b69f2089c6e2043efb674606952b0 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -609,6 +609,11 @@ public class PurpurWorldConfig { +@@ -612,6 +612,11 @@ public class PurpurWorldConfig { signRightClickEdit = getBoolean("blocks.sign.right-click-edit", signRightClickEdit); } diff --git a/patches/server/0179-Config-to-disable-hostile-mob-spawn-on-ice.patch b/patches/server/0179-Config-to-disable-hostile-mob-spawn-on-ice.patch index f8bca63f2..278c775ea 100644 --- a/patches/server/0179-Config-to-disable-hostile-mob-spawn-on-ice.patch +++ b/patches/server/0179-Config-to-disable-hostile-mob-spawn-on-ice.patch @@ -22,10 +22,10 @@ index fc34cfa8bfb3b82a8e1b28d261f0e901d837467e..35d47bb0d8c4a2b8374564133f040899 return false; } else { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 9ff72033527d6a1578ff69232bc1c75eea822756..76ed1189124935f979bca5c2a7783261526815d1 100644 +index f1864d45312b69f2089c6e2043efb674606952b0..1c1f536a09b11c98c20a3875d7cee225963cd110 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -561,8 +561,12 @@ public class PurpurWorldConfig { +@@ -564,8 +564,12 @@ public class PurpurWorldConfig { } public boolean snowOnBlueIce = true; diff --git a/patches/server/0180-Config-to-show-Armor-Stand-arms-on-spawn.patch b/patches/server/0180-Config-to-show-Armor-Stand-arms-on-spawn.patch index fed5b28e4..ded2eb6cb 100644 --- a/patches/server/0180-Config-to-show-Armor-Stand-arms-on-spawn.patch +++ b/patches/server/0180-Config-to-show-Armor-Stand-arms-on-spawn.patch @@ -17,10 +17,10 @@ index d119f8ab447bc17deabc494463de496161c9b126..c9a44a4765f43b9c0247ed1005f4c134 public ArmorStand(Level world, double x, double y, double z) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 3b2aac804f0230fcf39523c62240de3ea1eed672..042bfcfa408412472deeed7e6f5660ad2028e141 100644 +index 1c1f536a09b11c98c20a3875d7cee225963cd110..37a163e436548c6ca58bdc017bf311abff1146f3 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -102,6 +102,7 @@ public class PurpurWorldConfig { +@@ -105,6 +105,7 @@ public class PurpurWorldConfig { public boolean armorstandMovement = true; public boolean armorstandWaterMovement = true; public boolean armorstandWaterFence = true; @@ -28,7 +28,7 @@ index 3b2aac804f0230fcf39523c62240de3ea1eed672..042bfcfa408412472deeed7e6f5660ad private void armorstandSettings() { armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight); armorstandSetNameVisible = getBoolean("gameplay-mechanics.armorstand.set-name-visible-when-placing-with-custom-name", armorstandSetNameVisible); -@@ -109,6 +110,7 @@ public class PurpurWorldConfig { +@@ -112,6 +113,7 @@ public class PurpurWorldConfig { armorstandMovement = getBoolean("gameplay-mechanics.armorstand.can-movement-tick", armorstandMovement); armorstandWaterMovement = getBoolean("gameplay-mechanics.armorstand.can-move-in-water", armorstandWaterMovement); armorstandWaterFence = getBoolean("gameplay-mechanics.armorstand.can-move-in-water-over-fence", armorstandWaterFence); diff --git a/patches/server/0181-Option-to-make-doors-require-redstone.patch b/patches/server/0181-Option-to-make-doors-require-redstone.patch index ce807be09..c077302e9 100644 --- a/patches/server/0181-Option-to-make-doors-require-redstone.patch +++ b/patches/server/0181-Option-to-make-doors-require-redstone.patch @@ -67,10 +67,10 @@ index c903a1a8d2234bb0fa354d1c44ff3ab2275b04c7..d01e4064a772710c1383927e0848b9b3 + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index f2b0168fd4f37503a03841f07019829080f92ab5..614bcefae853f48e7f86097579e39a06a060a28c 100644 +index 37a163e436548c6ca58bdc017bf311abff1146f3..91a4c067df251a67f858acc7b56ffc45b5c20b36 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -507,6 +507,16 @@ public class PurpurWorldConfig { +@@ -510,6 +510,16 @@ public class PurpurWorldConfig { dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils); } diff --git a/patches/server/0183-Configurable-sponge-absorption.patch b/patches/server/0183-Configurable-sponge-absorption.patch index 366c08fa5..2abf374da 100644 --- a/patches/server/0183-Configurable-sponge-absorption.patch +++ b/patches/server/0183-Configurable-sponge-absorption.patch @@ -43,10 +43,10 @@ index 1ef8eadd4e59f2e5d2bbd84f6f9bcf37b59db5bd..5b10e1110f938745c8f9ed0b55960566 } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 614bcefae853f48e7f86097579e39a06a060a28c..267161bdd72b0c10ba7358b59a164dc1de46997a 100644 +index 91a4c067df251a67f858acc7b56ffc45b5c20b36..67dff8cf85086a2123fa6076885b4d6123dedeb8 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -635,6 +635,13 @@ public class PurpurWorldConfig { +@@ -638,6 +638,13 @@ public class PurpurWorldConfig { spawnerDeactivateByRedstone = getBoolean("blocks.spawner.deactivate-by-redstone", spawnerDeactivateByRedstone); } diff --git a/patches/server/0184-Projectile-offset-config.patch b/patches/server/0184-Projectile-offset-config.patch index b68a2b215..de940aa17 100644 --- a/patches/server/0184-Projectile-offset-config.patch +++ b/patches/server/0184-Projectile-offset-config.patch @@ -96,10 +96,10 @@ index 3f53dc8f250ad3f7616ce7ef0a2353caa0ab1879..29130aa9673a3956030f3e43b784ac46 entitythrowntrident.pickup = AbstractArrow.Pickup.CREATIVE_ONLY; } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 267161bdd72b0c10ba7358b59a164dc1de46997a..7c3de614642c628e6f044e7b0ab955373766fbe6 100644 +index 67dff8cf85086a2123fa6076885b4d6123dedeb8..90023fad0e5fd2a209041676bfb70cfcd7b73ef7 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -372,6 +372,23 @@ public class PurpurWorldConfig { +@@ -375,6 +375,23 @@ public class PurpurWorldConfig { witherSkullDespawnRate = getInt("gameplay-mechanics.projectile-despawn-rates.wither_skull", witherSkullDespawnRate); } diff --git a/patches/server/0185-Config-for-powered-rail-activation-distance.patch b/patches/server/0185-Config-for-powered-rail-activation-distance.patch index 08f6b0f9e..cb7f3a807 100644 --- a/patches/server/0185-Config-for-powered-rail-activation-distance.patch +++ b/patches/server/0185-Config-for-powered-rail-activation-distance.patch @@ -18,10 +18,10 @@ index 7fddb6fa8fd30ef88346a59f7867aae792f13772..40893e71fe8447b695350273bef9623b } else { int j = pos.getX(); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 7c3de614642c628e6f044e7b0ab955373766fbe6..95b327075bd88a52b941576cf8a298150e69c2cc 100644 +index 90023fad0e5fd2a209041676bfb70cfcd7b73ef7..7de5f110939ef9a4b3ae0629c47d38fee741de0a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -647,6 +647,11 @@ public class PurpurWorldConfig { +@@ -650,6 +650,11 @@ public class PurpurWorldConfig { slabHalfBreak = getBoolean("blocks.slab.break-individual-slabs-when-sneaking", slabHalfBreak); } diff --git a/patches/server/0186-Piglin-portal-spawn-modifier.patch b/patches/server/0186-Piglin-portal-spawn-modifier.patch index ee9bd9de7..48768b30c 100644 --- a/patches/server/0186-Piglin-portal-spawn-modifier.patch +++ b/patches/server/0186-Piglin-portal-spawn-modifier.patch @@ -31,10 +31,10 @@ index fef1027829c44957e23c0a121033bfb7640d06f0..c42349d0f6b0025525278295b36f4030 pos = pos.below(); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 95b327075bd88a52b941576cf8a298150e69c2cc..3ec464db79dd1e30beb6fb8f9128cf39ae2a6fe4 100644 +index 7de5f110939ef9a4b3ae0629c47d38fee741de0a..c145e68a7ecc9d1c2077f46c1cb6007921a56e4d 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1457,6 +1457,7 @@ public class PurpurWorldConfig { +@@ -1460,6 +1460,7 @@ public class PurpurWorldConfig { public boolean piglinRidableInWater = false; public double piglinMaxHealth = 16.0D; public boolean piglinBypassMobGriefing = false; @@ -42,7 +42,7 @@ index 95b327075bd88a52b941576cf8a298150e69c2cc..3ec464db79dd1e30beb6fb8f9128cf39 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1467,6 +1468,7 @@ public class PurpurWorldConfig { +@@ -1470,6 +1471,7 @@ public class PurpurWorldConfig { } piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth); piglinBypassMobGriefing = getBoolean("mobs.piglin.bypass-mob-griefing", piglinBypassMobGriefing); diff --git a/patches/server/0188-Configurable-damage-settings-for-magma-blocks.patch b/patches/server/0188-Configurable-damage-settings-for-magma-blocks.patch index 1fc78d803..134edf738 100644 --- a/patches/server/0188-Configurable-damage-settings-for-magma-blocks.patch +++ b/patches/server/0188-Configurable-damage-settings-for-magma-blocks.patch @@ -31,10 +31,10 @@ index 5d844ed98b916298a657d5e9766ab7f383a304e0..0129460ce1ca199a47b6657f824c75fd entity.hurt(DamageSource.HOT_FLOOR, 1.0F); org.bukkit.craftbukkit.event.CraftEventFactory.blockDamage = null; // CraftBukkit diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 3ec464db79dd1e30beb6fb8f9128cf39ae2a6fe4..f999bf58d6f94ca65a2bd978fb806fa8c505cc09 100644 +index c145e68a7ecc9d1c2077f46c1cb6007921a56e4d..9032f55686979f29707670670ad65c82341ae524 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -614,6 +614,13 @@ public class PurpurWorldConfig { +@@ -617,6 +617,13 @@ public class PurpurWorldConfig { kelpMaxGrowthAge = getInt("blocks.kelp.max-growth-age", kelpMaxGrowthAge); } diff --git a/patches/server/0189-Config-for-wither-explosion-radius.patch b/patches/server/0189-Config-for-wither-explosion-radius.patch index 969e6a874..b730a4189 100644 --- a/patches/server/0189-Config-for-wither-explosion-radius.patch +++ b/patches/server/0189-Config-for-wither-explosion-radius.patch @@ -18,10 +18,10 @@ index 430aa10101d9f21561155941ff24441fd0c4103a..de91f0dd7f9a62e5a96b4cc3e4f505ec if (!event.isCancelled()) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index f999bf58d6f94ca65a2bd978fb806fa8c505cc09..6242a336b387dc4056ec3b4ffb1e179666a597bd 100644 +index 9032f55686979f29707670670ad65c82341ae524..d13e44d0e600a423f6b420c02bb435a703e336c9 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1993,6 +1993,7 @@ public class PurpurWorldConfig { +@@ -1996,6 +1996,7 @@ public class PurpurWorldConfig { public int witherHealthRegenDelay = 20; public boolean witherBypassMobGriefing = false; public boolean witherCanRideVehicles = false; @@ -29,7 +29,7 @@ index f999bf58d6f94ca65a2bd978fb806fa8c505cc09..6242a336b387dc4056ec3b4ffb1e1796 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2011,6 +2012,7 @@ public class PurpurWorldConfig { +@@ -2014,6 +2015,7 @@ public class PurpurWorldConfig { witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay); witherBypassMobGriefing = getBoolean("mobs.wither.bypass-mob-griefing", witherBypassMobGriefing); witherCanRideVehicles = getBoolean("mobs.wither.can-ride-vehicles", witherCanRideVehicles); diff --git a/patches/server/0191-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch b/patches/server/0191-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch index f19a0b672..8f4536add 100644 --- a/patches/server/0191-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch +++ b/patches/server/0191-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch @@ -18,10 +18,10 @@ index e5562b407bba35ab93bf8bc3c22ac9d45e8353cb..c688bb73cd062f36524cfc231cb691f2 if (blockState2 != null && level.getBlockState(blockPos.above()).isAir()) { level.playSound(player, blockPos, SoundEvents.SHOVEL_FLATTEN, SoundSource.BLOCKS, 1.0F, 1.0F); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 6242a336b387dc4056ec3b4ffb1e179666a597bd..d3786053460c0285be956ef1118669e0093f46c9 100644 +index d13e44d0e600a423f6b420c02bb435a703e336c9..78aefc7bf6be3063f7e8f6fc233ac4d2f2b964ef 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -389,6 +389,21 @@ public class PurpurWorldConfig { +@@ -392,6 +392,21 @@ public class PurpurWorldConfig { snowballProjectileOffset = getDouble("gameplay-mechanics.projectile-offset.snowball", snowballProjectileOffset); } diff --git a/patches/server/0192-Configurable-piston-push-limit.patch b/patches/server/0192-Configurable-piston-push-limit.patch index 3e9869083..d6dd395c1 100644 --- a/patches/server/0192-Configurable-piston-push-limit.patch +++ b/patches/server/0192-Configurable-piston-push-limit.patch @@ -36,10 +36,10 @@ index 744d91546d1a810f60a43c15ed74b4158f341a4a..354538daefa603f6df5a139b6bff87db } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index d3786053460c0285be956ef1118669e0093f46c9..4857f721d809d776398d5c822847c4e8da0841ec 100644 +index 78aefc7bf6be3063f7e8f6fc233ac4d2f2b964ef..b92bc1df5c9848671563a49cfdcc177636ff6b0a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -636,6 +636,11 @@ public class PurpurWorldConfig { +@@ -639,6 +639,11 @@ public class PurpurWorldConfig { magmaBlockDamageWithFrostWalker = getBoolean("blocks.magma-block.damage-with-frost-walker", magmaBlockDamageWithFrostWalker); } diff --git a/patches/server/0195-Configurable-mob-blindness.patch b/patches/server/0195-Configurable-mob-blindness.patch index ac5bde379..d893979ae 100644 --- a/patches/server/0195-Configurable-mob-blindness.patch +++ b/patches/server/0195-Configurable-mob-blindness.patch @@ -28,10 +28,10 @@ index 0a50c0d3450430de9b6251aa65a8bfc8633a8502..521a353a1de6573b7e4fcebc673494cd return d0; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 4857f721d809d776398d5c822847c4e8da0841ec..0a61318235c377eda1c172741ddf386f3b29d764 100644 +index b92bc1df5c9848671563a49cfdcc177636ff6b0a..d52d94699f392494081da802d5efece7831c42d8 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -444,6 +444,7 @@ public class PurpurWorldConfig { +@@ -447,6 +447,7 @@ public class PurpurWorldConfig { public boolean persistentDroppableEntityDisplayNames = false; public boolean projectilesBypassMobGriefing = false; public boolean tickFluids = true; @@ -39,7 +39,7 @@ index 4857f721d809d776398d5c822847c4e8da0841ec..0a61318235c377eda1c172741ddf386f public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -465,6 +466,7 @@ public class PurpurWorldConfig { +@@ -468,6 +469,7 @@ public class PurpurWorldConfig { persistentDroppableEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-droppable-entity-display-names", persistentDroppableEntityDisplayNames); projectilesBypassMobGriefing = getBoolean("gameplay-mechanics.projectiles-bypass-mob-griefing", projectilesBypassMobGriefing); tickFluids = getBoolean("gameplay-mechanics.tick-fluids", tickFluids); diff --git a/patches/server/0197-Config-for-health-to-impact-Creeper-explosion-radius.patch b/patches/server/0197-Config-for-health-to-impact-Creeper-explosion-radius.patch index ead1f27dd..ad7f00366 100644 --- a/patches/server/0197-Config-for-health-to-impact-Creeper-explosion-radius.patch +++ b/patches/server/0197-Config-for-health-to-impact-Creeper-explosion-radius.patch @@ -21,10 +21,10 @@ index 02494dcc8a342f65b2855612aebeb019095abf65..d66c8866f3c6b1412a6c1876c62e3b29 if (!event.isCancelled()) { this.dead = true; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 0a61318235c377eda1c172741ddf386f3b29d764..2c790011043065158a1ab092aa417fd8df45f246 100644 +index d52d94699f392494081da802d5efece7831c42d8..f240da91fc203aa7c99ff0cdfa9f977886527bcd 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -885,6 +885,7 @@ public class PurpurWorldConfig { +@@ -888,6 +888,7 @@ public class PurpurWorldConfig { public boolean creeperAllowGriefing = true; public boolean creeperBypassMobGriefing = false; public boolean creeperExplodeWhenKilled = false; @@ -32,7 +32,7 @@ index 0a61318235c377eda1c172741ddf386f3b29d764..2c790011043065158a1ab092aa417fd8 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -898,6 +899,7 @@ public class PurpurWorldConfig { +@@ -901,6 +902,7 @@ public class PurpurWorldConfig { creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing); creeperBypassMobGriefing = getBoolean("mobs.creeper.bypass-mob-griefing", creeperBypassMobGriefing); creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled); diff --git a/patches/server/0198-Iron-golem-poppy-calms-anger.patch b/patches/server/0198-Iron-golem-poppy-calms-anger.patch index 9b068e7a8..1ebebd722 100644 --- a/patches/server/0198-Iron-golem-poppy-calms-anger.patch +++ b/patches/server/0198-Iron-golem-poppy-calms-anger.patch @@ -17,10 +17,10 @@ index f4e983da7206923ee0b0f984e65a6c2b3a6a8aeb..cea3725009af1bc746a593c4db63ed63 this.goalSelector.addGoal(2, new MoveTowardsTargetGoal(this, 0.9D, 32.0F)); this.goalSelector.addGoal(2, new MoveBackToVillageGoal(this, 0.6D, false)); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 2c790011043065158a1ab092aa417fd8df45f246..1ca8fe623c69d5149d22902087be6a08b0aef73f 100644 +index f240da91fc203aa7c99ff0cdfa9f977886527bcd..8fd2a780131cda871c8a9150460a0b45adfa2997 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1260,6 +1260,7 @@ public class PurpurWorldConfig { +@@ -1263,6 +1263,7 @@ public class PurpurWorldConfig { public boolean ironGolemRidableInWater = false; public boolean ironGolemCanSwim = false; public double ironGolemMaxHealth = 100.0D; @@ -28,7 +28,7 @@ index 2c790011043065158a1ab092aa417fd8df45f246..1ca8fe623c69d5149d22902087be6a08 private void ironGolemSettings() { ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable); ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater); -@@ -1270,6 +1271,7 @@ public class PurpurWorldConfig { +@@ -1273,6 +1274,7 @@ public class PurpurWorldConfig { set("mobs.iron_golem.attributes.max_health", oldValue); } ironGolemMaxHealth = getDouble("mobs.iron_golem.attributes.max_health", ironGolemMaxHealth); diff --git a/patches/server/0199-Breedable-parrots.patch b/patches/server/0199-Breedable-parrots.patch index 482e0d907..a39588b50 100644 --- a/patches/server/0199-Breedable-parrots.patch +++ b/patches/server/0199-Breedable-parrots.patch @@ -50,10 +50,10 @@ index 553b0aff0ccc5baf41d5faae1a2fd88249dd5a74..3da2b68fb03a80676d7a5eed271499f6 @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 1ca8fe623c69d5149d22902087be6a08b0aef73f..0d541b04824a2ef3ef05f257e7a7243931ea9835 100644 +index 8fd2a780131cda871c8a9150460a0b45adfa2997..96dc85aac58aa65c7811bd10caaeddb9c94146ba 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1396,6 +1396,7 @@ public class PurpurWorldConfig { +@@ -1399,6 +1399,7 @@ public class PurpurWorldConfig { public boolean parrotRidableInWater = false; public double parrotMaxY = 256D; public double parrotMaxHealth = 6.0D; @@ -61,7 +61,7 @@ index 1ca8fe623c69d5149d22902087be6a08b0aef73f..0d541b04824a2ef3ef05f257e7a72439 private void parrotSettings() { parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable); parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater); -@@ -1406,6 +1407,7 @@ public class PurpurWorldConfig { +@@ -1409,6 +1410,7 @@ public class PurpurWorldConfig { set("mobs.parrot.attributes.max_health", oldValue); } parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth); diff --git a/patches/server/0200-Configurable-powered-rail-boost-modifier.patch b/patches/server/0200-Configurable-powered-rail-boost-modifier.patch index b9cee87bf..65c2a4346 100644 --- a/patches/server/0200-Configurable-powered-rail-boost-modifier.patch +++ b/patches/server/0200-Configurable-powered-rail-boost-modifier.patch @@ -18,10 +18,10 @@ index 1e3077a22d9d3d26356b865001dcce81c9c1d7e5..cc57ff699d159a0cc748e91b61d53965 Vec3 vec3d5 = this.getDeltaMovement(); double d21 = vec3d5.x; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 414f9f1ea859736d9bd23a35bf28752dfed8e1c7..bb350c1bc57ac6dca9901c75464f70da6d0ffaa6 100644 +index 96dc85aac58aa65c7811bd10caaeddb9c94146ba..ac21c3f7924a7e143d92a0987307799c63dbd1b6 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -223,6 +223,7 @@ public class PurpurWorldConfig { +@@ -226,6 +226,7 @@ public class PurpurWorldConfig { public boolean minecartControllableFallDamage = true; public double minecartControllableBaseSpeed = 0.1D; public Map minecartControllableBlockSpeeds = new HashMap<>(); @@ -29,7 +29,7 @@ index 414f9f1ea859736d9bd23a35bf28752dfed8e1c7..bb350c1bc57ac6dca9901c75464f70da private void minecartSettings() { if (PurpurConfig.version < 12) { boolean oldBool = getBoolean("gameplay-mechanics.controllable-minecarts.place-anywhere", minecartPlaceAnywhere); -@@ -275,6 +276,7 @@ public class PurpurWorldConfig { +@@ -278,6 +279,7 @@ public class PurpurWorldConfig { set("gameplay-mechanics.minecart.controllable.block-speed.grass_block", 0.3D); set("gameplay-mechanics.minecart.controllable.block-speed.stone", 0.5D); } diff --git a/patches/server/0201-Add-config-change-multiplier-critical-damage-value.patch b/patches/server/0201-Add-config-change-multiplier-critical-damage-value.patch index 79f722b38..6c42003b6 100644 --- a/patches/server/0201-Add-config-change-multiplier-critical-damage-value.patch +++ b/patches/server/0201-Add-config-change-multiplier-critical-damage-value.patch @@ -18,10 +18,10 @@ index f4f49b87b615a3c7ef56247896392de93eb1bb0d..dfe78217add616c761ba53fb4999cc65 f += f1; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index ff35f7077138c42df41ed1df7f195432e46456b2..55e1b691634a387046e16caa9307b76434100d9b 100644 +index ac21c3f7924a7e143d92a0987307799c63dbd1b6..00887732afbbc616ed6191fcce64565564eed0e1 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -322,6 +322,7 @@ public class PurpurWorldConfig { +@@ -325,6 +325,7 @@ public class PurpurWorldConfig { public boolean creativeOnePunch = false; public boolean playerSleepNearMonsters = false; public boolean playersSkipNight = true; @@ -29,7 +29,7 @@ index ff35f7077138c42df41ed1df7f195432e46456b2..55e1b691634a387046e16caa9307b764 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); -@@ -338,6 +339,7 @@ public class PurpurWorldConfig { +@@ -341,6 +342,7 @@ public class PurpurWorldConfig { creativeOnePunch = getBoolean("gameplay-mechanics.player.one-punch-in-creative", creativeOnePunch); playerSleepNearMonsters = getBoolean("gameplay-mechanics.player.sleep-ignore-nearby-mobs", playerSleepNearMonsters); playersSkipNight = getBoolean("gameplay-mechanics.player.can-skip-night", playersSkipNight); diff --git a/patches/server/0202-Option-to-disable-dragon-egg-teleporting.patch b/patches/server/0202-Option-to-disable-dragon-egg-teleporting.patch index a54c64dcc..14347ad4f 100644 --- a/patches/server/0202-Option-to-disable-dragon-egg-teleporting.patch +++ b/patches/server/0202-Option-to-disable-dragon-egg-teleporting.patch @@ -17,10 +17,10 @@ index 78f51f3dd0e7249af69228479da932e9aea982d6..d9d4421f7f316281487828739168cfd6 BlockPos blockposition1 = pos.offset(world.random.nextInt(16) - world.random.nextInt(16), world.random.nextInt(8) - world.random.nextInt(8), world.random.nextInt(16) - world.random.nextInt(16)); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 55e1b691634a387046e16caa9307b76434100d9b..f66f8067014252a89914e8e07cc702160b8f189b 100644 +index 00887732afbbc616ed6191fcce64565564eed0e1..a8e02eca9fc4aed1bcf9b43bb8f0483f2bdc6dce 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -555,6 +555,11 @@ public class PurpurWorldConfig { +@@ -558,6 +558,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0205-ShulkerBox-allow-oversized-stacks.patch b/patches/server/0205-ShulkerBox-allow-oversized-stacks.patch index b7d9cb9bc..05fb9e2d6 100644 --- a/patches/server/0205-ShulkerBox-allow-oversized-stacks.patch +++ b/patches/server/0205-ShulkerBox-allow-oversized-stacks.patch @@ -35,10 +35,10 @@ index b9c558060024d380e89116489c7fc12ad88db8ad..0a0a4be15bed899812fcd4af0e311f5f CompoundTag compoundTag = shulkerBoxBlockEntity.saveToTag(new CompoundTag()); if (!compoundTag.isEmpty()) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index f66f8067014252a89914e8e07cc702160b8f189b..189d859477bbb4a732c180ca2a5f8bff2de1eb4e 100644 +index a8e02eca9fc4aed1bcf9b43bb8f0483f2bdc6dce..90e14108ebe8d2cabead62c39b02d619e126f1a7 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -673,6 +673,11 @@ public class PurpurWorldConfig { +@@ -676,6 +676,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0206-Bee-can-work-when-raining-or-at-night.patch b/patches/server/0206-Bee-can-work-when-raining-or-at-night.patch index afb873b64..062a000b0 100644 --- a/patches/server/0206-Bee-can-work-when-raining-or-at-night.patch +++ b/patches/server/0206-Bee-can-work-when-raining-or-at-night.patch @@ -31,10 +31,10 @@ index ffacc4b8cc3ab8285c4131aec58e48ffa9e1952e..e0e039e2f614f2df48d8d1b6e8bbbe7a return false; } else { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 189d859477bbb4a732c180ca2a5f8bff2de1eb4e..571ccc470c88c5b0167bf41b79933282e6a9f893 100644 +index 90e14108ebe8d2cabead62c39b02d619e126f1a7..73b18882a242ea2239a5fb747805c0faf2c0b3c4 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -777,6 +777,8 @@ public class PurpurWorldConfig { +@@ -780,6 +780,8 @@ public class PurpurWorldConfig { public double beeMaxY = 256D; public double beeMaxHealth = 10.0D; public int beeBreedingTicks = 6000; @@ -43,7 +43,7 @@ index 189d859477bbb4a732c180ca2a5f8bff2de1eb4e..571ccc470c88c5b0167bf41b79933282 private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -788,6 +790,8 @@ public class PurpurWorldConfig { +@@ -791,6 +793,8 @@ public class PurpurWorldConfig { } beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth); beeBreedingTicks = getInt("mobs.bee.breeding-delay-ticks", beeBreedingTicks); diff --git a/patches/server/0209-Config-MobEffect-by-world.patch b/patches/server/0209-Config-MobEffect-by-world.patch index 0cc077d50..2ff60a3d1 100644 --- a/patches/server/0209-Config-MobEffect-by-world.patch +++ b/patches/server/0209-Config-MobEffect-by-world.patch @@ -40,10 +40,10 @@ index 79e036d79dec2ec4404baf02c23ba5ccad20cdce..6706d8e6d43cc5f3058f08fdfde77bed ((ServerPlayer) entityhuman).connection.send(new ClientboundSetHealthPacket(((ServerPlayer) entityhuman).getBukkitEntity().getScaledHealth(), entityhuman.getFoodData().foodLevel, entityhuman.getFoodData().saturationLevel)); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 4a4f1e80f1636949c3699b1718dea81656865bca..445004afc3b5c3c7aa4b2a85fb475776e01b7535 100644 +index 73b18882a242ea2239a5fb747805c0faf2c0b3c4..afa0f3921302fe6aa2f07aa43d7f8da7221babda 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -279,6 +279,21 @@ public class PurpurWorldConfig { +@@ -282,6 +282,21 @@ public class PurpurWorldConfig { poweredRailBoostModifier = getDouble("gameplay-mechanics.minecart.powered-rail.boost-modifier", poweredRailBoostModifier); } diff --git a/patches/server/0210-Beacon-Activation-Range-Configurable.patch b/patches/server/0210-Beacon-Activation-Range-Configurable.patch index 3a8805270..525337eb4 100644 --- a/patches/server/0210-Beacon-Activation-Range-Configurable.patch +++ b/patches/server/0210-Beacon-Activation-Range-Configurable.patch @@ -26,10 +26,10 @@ index 3281448bf37da8a1b4b7b44f10f4b2438b4a4f29..418c2ddf8ff50a5071b2a31585b77e9f } else { return effectRange; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index a158e5b9cadd540b33d8c6bb255e61fde5e323fe..bf664d25cbd21d73705d4b9419b559768e9294ed 100644 +index afa0f3921302fe6aa2f07aa43d7f8da7221babda..b712f6290e9f33ca51d43f7d514611efa62f420e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -520,6 +520,17 @@ public class PurpurWorldConfig { +@@ -523,6 +523,17 @@ public class PurpurWorldConfig { anvilAllowColors = getBoolean("blocks.anvil.allow-colors", anvilAllowColors); } diff --git a/patches/server/0211-Add-toggle-for-sand-duping-fix.patch b/patches/server/0211-Add-toggle-for-sand-duping-fix.patch index 847055b13..c1df3cf5f 100644 --- a/patches/server/0211-Add-toggle-for-sand-duping-fix.patch +++ b/patches/server/0211-Add-toggle-for-sand-duping-fix.patch @@ -27,10 +27,10 @@ index 8336ea928faa92c6f58f8cdfb9faf1d8e26c9ccf..c765c182081fe83eb0f30dcbf97d8126 } // Paper end - fix sand duping diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index bf664d25cbd21d73705d4b9419b559768e9294ed..5806beaddfbe07a3dad176dcfe1f81300d32eee8 100644 +index b712f6290e9f33ca51d43f7d514611efa62f420e..f2238699e9bdb601b218bfab765a1d4009bd5bb3 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -699,6 +699,11 @@ public class PurpurWorldConfig { +@@ -702,6 +702,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0212-Add-toggle-for-end-portal-safe-teleporting.patch b/patches/server/0212-Add-toggle-for-end-portal-safe-teleporting.patch index 09593cb9d..079fe247c 100644 --- a/patches/server/0212-Add-toggle-for-end-portal-safe-teleporting.patch +++ b/patches/server/0212-Add-toggle-for-end-portal-safe-teleporting.patch @@ -45,10 +45,10 @@ index 197482e1ace23c3de002242097a68c6cc297cd3f..428875a6a99a619d337e2a7bbd2cb182 entity.portalWorld = ((ServerLevel)world); entity.portalBlock = pos.immutable(); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 5806beaddfbe07a3dad176dcfe1f81300d32eee8..c3f064f747110d4b822cb6094dc00aac9d2e50b4 100644 +index f2238699e9bdb601b218bfab765a1d4009bd5bb3..85acb6af06b9e3401cd9b2ac873cc6f583c51b09 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -641,6 +641,11 @@ public class PurpurWorldConfig { +@@ -644,6 +644,11 @@ public class PurpurWorldConfig { furnaceUseLavaFromUnderneath = getBoolean("blocks.furnace.use-lava-from-underneath", furnaceUseLavaFromUnderneath); } diff --git a/patches/server/0215-Burp-after-eating-food-fills-hunger-bar-completely.patch b/patches/server/0215-Burp-after-eating-food-fills-hunger-bar-completely.patch index 741d3af0e..9e1f15f21 100644 --- a/patches/server/0215-Burp-after-eating-food-fills-hunger-bar-completely.patch +++ b/patches/server/0215-Burp-after-eating-food-fills-hunger-bar-completely.patch @@ -55,10 +55,10 @@ index 97133bd4af30d0ba92cbf884b83140f3399f92e2..c1130952e3fa22abaa27fcc1c4761c83 public void eat(Item item, ItemStack stack) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index c3f064f747110d4b822cb6094dc00aac9d2e50b4..7dd675af68134725d4398ed223f6e6a69cc56eb3 100644 +index 85acb6af06b9e3401cd9b2ac873cc6f583c51b09..fdca927b5111a49a27ceef89989e1b1a5b0a4377 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -338,6 +338,7 @@ public class PurpurWorldConfig { +@@ -341,6 +341,7 @@ public class PurpurWorldConfig { public boolean playerSleepNearMonsters = false; public boolean playersSkipNight = true; public double playerCriticalDamageMultiplier = 1.5D; @@ -66,7 +66,7 @@ index c3f064f747110d4b822cb6094dc00aac9d2e50b4..7dd675af68134725d4398ed223f6e6a6 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); -@@ -355,6 +356,7 @@ public class PurpurWorldConfig { +@@ -358,6 +359,7 @@ public class PurpurWorldConfig { playerSleepNearMonsters = getBoolean("gameplay-mechanics.player.sleep-ignore-nearby-mobs", playerSleepNearMonsters); playersSkipNight = getBoolean("gameplay-mechanics.player.can-skip-night", playersSkipNight); playerCriticalDamageMultiplier = getDouble("gameplay-mechanics.player.critical-damage-multiplier", playerCriticalDamageMultiplier); diff --git a/patches/server/0217-Populator-seed-controls.patch b/patches/server/0217-Populator-seed-controls.patch index 3821dfcb8..f1411f4f2 100644 --- a/patches/server/0217-Populator-seed-controls.patch +++ b/patches/server/0217-Populator-seed-controls.patch @@ -39,10 +39,10 @@ index a7a7e6cd87270e64a92448f03f8b0b0c7e375ec7..9fb19162c0e436122087d03d37b502a1 try { region.setCurrentlyGenerating(supplier3); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 7dd675af68134725d4398ed223f6e6a69cc56eb3..41c58f8034d812918857f01ee07d5bb478c0d9c1 100644 +index fdca927b5111a49a27ceef89989e1b1a5b0a4377..e24249b64432eb41e86972cdf76ee32e59e5dc3d 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -2259,4 +2259,20 @@ public class PurpurWorldConfig { +@@ -2262,4 +2262,20 @@ public class PurpurWorldConfig { zombifiedPiglinJockeyTryExistingChickens = getBoolean("mobs.zombified_piglin.jockey.try-existing-chickens", zombifiedPiglinJockeyTryExistingChickens); zombifiedPiglinCountAsPlayerKillWhenAngry = getBoolean("mobs.zombified_piglin.count-as-player-kill-when-angry", zombifiedPiglinCountAsPlayerKillWhenAngry); } diff --git a/patches/server/0219-Shulker-spawn-from-bullet-options.patch b/patches/server/0219-Shulker-spawn-from-bullet-options.patch index 0bcafb6e1..2571eb7e0 100644 --- a/patches/server/0219-Shulker-spawn-from-bullet-options.patch +++ b/patches/server/0219-Shulker-spawn-from-bullet-options.patch @@ -61,10 +61,10 @@ index f812a75985d26785639491c9a980387a3f261f2d..b11fb39b69f5225ca7da72ca1a2200c7 + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 41c58f8034d812918857f01ee07d5bb478c0d9c1..54895e94257936c302b01c2e8098b50a787d2db9 100644 +index e24249b64432eb41e86972cdf76ee32e59e5dc3d..938a1e41db57ae57a33863a1366213b5ecc18dcc 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1714,6 +1714,11 @@ public class PurpurWorldConfig { +@@ -1717,6 +1717,11 @@ public class PurpurWorldConfig { public boolean shulkerRidable = false; public boolean shulkerRidableInWater = false; public double shulkerMaxHealth = 30.0D; @@ -76,7 +76,7 @@ index 41c58f8034d812918857f01ee07d5bb478c0d9c1..54895e94257936c302b01c2e8098b50a private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -1723,6 +1728,11 @@ public class PurpurWorldConfig { +@@ -1726,6 +1731,11 @@ public class PurpurWorldConfig { set("mobs.shulker.attributes.max_health", oldValue); } shulkerMaxHealth = getDouble("mobs.shulker.attributes.max_health", shulkerMaxHealth); diff --git a/patches/server/0220-Eating-glow-berries-adds-glow-effect.patch b/patches/server/0220-Eating-glow-berries-adds-glow-effect.patch index c7185b10e..0a5f86d87 100644 --- a/patches/server/0220-Eating-glow-berries-adds-glow-effect.patch +++ b/patches/server/0220-Eating-glow-berries-adds-glow-effect.patch @@ -18,10 +18,10 @@ index 6322251336a4300649f207efdb4d404d25023c9a..35abd27226d953f42ca52476042c0d41 public static final Item SOUL_CAMPFIRE = registerBlock(Blocks.SOUL_CAMPFIRE, CreativeModeTab.TAB_DECORATIONS); public static final Item SHROOMLIGHT = registerBlock(Blocks.SHROOMLIGHT, CreativeModeTab.TAB_DECORATIONS); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 6d6e8931451554b3b21da546be7ee42bbdf804af..b959560ab95b506cf7bde1c638008e8ac61a0ca4 100644 +index 938a1e41db57ae57a33863a1366213b5ecc18dcc..4aeb8e0944152efe66e8fc74d92104d3359bc0ae 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -170,6 +170,7 @@ public class PurpurWorldConfig { +@@ -173,6 +173,7 @@ public class PurpurWorldConfig { public int enderPearlCooldown = 20; public int enderPearlCooldownCreative = 20; public float enderPearlEndermiteChance = 0.05F; @@ -29,7 +29,7 @@ index 6d6e8931451554b3b21da546be7ee42bbdf804af..b959560ab95b506cf7bde1c638008e8a private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -213,6 +214,7 @@ public class PurpurWorldConfig { +@@ -216,6 +217,7 @@ public class PurpurWorldConfig { enderPearlCooldown = getInt("gameplay-mechanics.item.ender-pearl.cooldown", enderPearlCooldown); enderPearlCooldownCreative = getInt("gameplay-mechanics.item.ender-pearl.creative-cooldown", enderPearlCooldownCreative); enderPearlEndermiteChance = (float) getDouble("gameplay-mechanics.item.ender-pearl.endermite-spawn-chance", enderPearlEndermiteChance); diff --git a/patches/server/0221-Option-to-make-drowned-break-doors.patch b/patches/server/0221-Option-to-make-drowned-break-doors.patch index 806038024..236893b1d 100644 --- a/patches/server/0221-Option-to-make-drowned-break-doors.patch +++ b/patches/server/0221-Option-to-make-drowned-break-doors.patch @@ -34,10 +34,10 @@ index 8d3ce6c97a8734c0d13844cafca251a3f4dce8a4..a004d59483dc3ffb404ae28daf76c807 @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 2df967fa05e4a59930f5a439bc315df37be818a3..4fc0a61f3704686dc7ee243d8a0dccb80aba10b1 100644 +index 4aeb8e0944152efe66e8fc74d92104d3359bc0ae..29d72fe1e0332e528b15f16bd647778a4167d7ee 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1013,6 +1013,7 @@ public class PurpurWorldConfig { +@@ -1016,6 +1016,7 @@ public class PurpurWorldConfig { public boolean drownedJockeyOnlyBaby = true; public double drownedJockeyChance = 0.05D; public boolean drownedJockeyTryExistingChickens = true; @@ -45,7 +45,7 @@ index 2df967fa05e4a59930f5a439bc315df37be818a3..4fc0a61f3704686dc7ee243d8a0dccb8 private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -1026,6 +1027,7 @@ public class PurpurWorldConfig { +@@ -1029,6 +1030,7 @@ public class PurpurWorldConfig { drownedJockeyOnlyBaby = getBoolean("mobs.drowned.jockey.only-babies", drownedJockeyOnlyBaby); drownedJockeyChance = getDouble("mobs.drowned.jockey.chance", drownedJockeyChance); drownedJockeyTryExistingChickens = getBoolean("mobs.drowned.jockey.try-existing-chickens", drownedJockeyTryExistingChickens); diff --git a/patches/server/0222-Configurable-hunger-starvation-damage.patch b/patches/server/0222-Configurable-hunger-starvation-damage.patch index 2cdd228a5..9e57713cf 100644 --- a/patches/server/0222-Configurable-hunger-starvation-damage.patch +++ b/patches/server/0222-Configurable-hunger-starvation-damage.patch @@ -18,10 +18,10 @@ index c1130952e3fa22abaa27fcc1c4761c831dc56cc3..1ac08eca469739cb52abd38483c431b6 this.tickTimer = 0; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 4fc0a61f3704686dc7ee243d8a0dccb80aba10b1..137f7149647aee2f94b670159bccd8068b807f62 100644 +index 29d72fe1e0332e528b15f16bd647778a4167d7ee..8fd5d9800bd94372474002eaeca2e83120541c9f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -2289,4 +2289,9 @@ public class PurpurWorldConfig { +@@ -2292,4 +2292,9 @@ public class PurpurWorldConfig { } randomPopulatorSeed = getBoolean("seed.random-populator-seed", randomPopulatorSeed); } diff --git a/patches/server/0224-Armor-click-equip-options.patch b/patches/server/0224-Armor-click-equip-options.patch index 118eff4b2..144978570 100644 --- a/patches/server/0224-Armor-click-equip-options.patch +++ b/patches/server/0224-Armor-click-equip-options.patch @@ -58,10 +58,10 @@ index 42f79d418ec4e2dbeac9a217d9dc144cda2ef714..250c0e31825f772d3fee7a523f150cb2 return InteractionResultHolder.fail(itemStack); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 137f7149647aee2f94b670159bccd8068b807f62..84c0b76e1cf7af8e78af7af6444a14783eeb4313 100644 +index 8fd5d9800bd94372474002eaeca2e83120541c9f..dc52aa05c402e72e44a8a3d783ccd3091baa7845 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -341,6 +341,8 @@ public class PurpurWorldConfig { +@@ -344,6 +344,8 @@ public class PurpurWorldConfig { public boolean playersSkipNight = true; public double playerCriticalDamageMultiplier = 1.5D; public boolean playerBurpWhenFull = false; @@ -70,7 +70,7 @@ index 137f7149647aee2f94b670159bccd8068b807f62..84c0b76e1cf7af8e78af7af6444a1478 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); -@@ -359,6 +361,8 @@ public class PurpurWorldConfig { +@@ -362,6 +364,8 @@ public class PurpurWorldConfig { playersSkipNight = getBoolean("gameplay-mechanics.player.can-skip-night", playersSkipNight); playerCriticalDamageMultiplier = getDouble("gameplay-mechanics.player.critical-damage-multiplier", playerCriticalDamageMultiplier); playerBurpWhenFull = getBoolean("gameplay-mechanics.player.burp-when-full", playerBurpWhenFull); diff --git a/patches/server/0227-Hoe-tilling-options.patch b/patches/server/0227-Hoe-tilling-options.patch deleted file mode 100644 index 0168ac5c5..000000000 --- a/patches/server/0227-Hoe-tilling-options.patch +++ /dev/null @@ -1,207 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: William Blake Galbreath -Date: Fri, 2 Jul 2021 20:54:29 -0500 -Subject: [PATCH] Hoe tilling options - - -diff --git a/src/main/java/net/minecraft/world/item/HoeItem.java b/src/main/java/net/minecraft/world/item/HoeItem.java -index 009dd6b59e27a9413b3ef115468a6d1dd0746d56..22e3992a30a35aa17c03882e97cd0213213c7238 100644 ---- a/src/main/java/net/minecraft/world/item/HoeItem.java -+++ b/src/main/java/net/minecraft/world/item/HoeItem.java -@@ -33,15 +33,15 @@ public class HoeItem extends DiggerItem { - public InteractionResult useOn(UseOnContext context) { - Level level = context.getLevel(); - BlockPos blockPos = context.getClickedPos(); -- Pair, Consumer> pair = TILLABLES.get(level.getBlockState(blockPos).getBlock()); -- if (pair == null) { -- return InteractionResult.PASS; -- } else { -- Predicate predicate = pair.getFirst(); -- Consumer consumer = pair.getSecond(); -+ // Purpur start -+ var tilling = level.purpurConfig.hoeTilling.get(level.getBlockState(blockPos).getBlock()); -+ if (tilling == null) { return InteractionResult.PASS; } else { -+ Predicate predicate = tilling.getCondition().getPredicate(); -+ Consumer consumer = performTilling(tilling); -+ // Purpur end - if (predicate.test(context)) { - Player player = context.getPlayer(); -- level.playSound(player, blockPos, SoundEvents.HOE_TILL, SoundSource.BLOCKS, 1.0F, 1.0F); -+ level.playSound(null, blockPos, SoundEvents.HOE_TILL, SoundSource.BLOCKS, 1.0F, 1.0F); // Purpur - force sound - if (!level.isClientSide) { - consumer.accept(context); - if (player != null) { -@@ -51,7 +51,7 @@ public class HoeItem extends DiggerItem { - } - } - -- return InteractionResult.sidedSuccess(level.isClientSide); -+ return InteractionResult.SUCCESS; // Purpur - force arm swing - } else { - return InteractionResult.PASS; - } -@@ -71,6 +71,19 @@ public class HoeItem extends DiggerItem { - }; - } - -+ // Purpur start -+ public static Consumer performTilling(net.pl3x.purpur.tool.Tilling tilling) { -+ return (context) -> { -+ context.getLevel().setBlock(context.getClickedPos(), tilling.getInto().defaultBlockState(), 11); -+ tilling.getDrops().forEach((drop, chance) -> { -+ if (context.getLevel().random.nextDouble() < chance) { -+ Block.popResourceFromFace(context.getLevel(), context.getClickedPos(), context.getClickedFace(), new ItemStack(drop)); -+ } -+ }); -+ }; -+ } -+ // Purpur end -+ - public static boolean onlyIfAirAbove(UseOnContext context) { - return context.getClickedFace() != Direction.DOWN && context.getLevel().getBlockState(context.getClickedPos().above()).isAir(); - } -diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 84c0b76e1cf7af8e78af7af6444a14783eeb4313..b20fdef329a9b1ef4a873502ed33f4769230f28b 100644 ---- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -456,6 +456,73 @@ public class PurpurWorldConfig { - }); - } - -+ public Map hoeTilling = new HashMap<>(); -+ private void toolSettings() { -+ hoeTilling.clear(); -+ getMap("tools.hoe.tilling", Map.of( -+ "minecraft:grass_block", Map.of( -+ "condition", "air_above", -+ "into", "minecraft:farmland", -+ "drops", new HashMap() -+ ), -+ "minecraft:dirt_path", Map.of( -+ "condition", "air_above", -+ "into", "minecraft:farmland", -+ "drops", new HashMap() -+ ), -+ "minecraft:dirt", Map.of( -+ "condition", "air_above", -+ "into", "minecraft:farmland", -+ "drops", new HashMap() -+ ), -+ "minecraft:coarse_dirt", Map.of( -+ "condition", "air_above", -+ "into", "minecraft:dirt", -+ "drops", new HashMap() -+ ), -+ "minecraft:rooted_dirt", Map.of( -+ "condition", "always", -+ "into", "minecraft:dirt", -+ "drops", Map.of("minecraft:hanging_roots", 1.0D) -+ )) -+ ).forEach((blockStr, obj) -> { -+ Block block = Registry.BLOCK.get(new ResourceLocation(blockStr)); -+ if (block == Blocks.AIR) { -+ PurpurConfig.log(Level.SEVERE, "Invalid block for `tools.hoe.tilling`: " + blockStr); -+ return; -+ } -+ if (!(obj instanceof Map map)) { -+ PurpurConfig.log(Level.SEVERE, "Invalid yaml for `tools.hoe.tilling." + blockStr + "`"); -+ return; -+ } -+ String conditionStr = (String) map.get("condition"); -+ Tilling.Condition condition = Tilling.Condition.get(conditionStr); -+ if (condition == null) { -+ PurpurConfig.log(Level.SEVERE, "Invalid condition for `tools.hoe.tilling.condition`: " + conditionStr); -+ return; -+ } -+ String intoStr = (String) map.get("into"); -+ Block into = Registry.BLOCK.get(new ResourceLocation(intoStr)); -+ if (into == Blocks.AIR) { -+ PurpurConfig.log(Level.SEVERE, "Invalid block for `tools.hoe.tilling.into`: " + intoStr); -+ return; -+ } -+ Map drops = new HashMap<>(); -+ Object dropsObj = map.get("drops"); -+ if (dropsObj instanceof Map dropsMap) { -+ dropsMap.forEach((itemStr, chance) -> { -+ Item item = Registry.ITEM.get(new ResourceLocation(itemStr.toString())); -+ if (item == Items.AIR) { -+ PurpurConfig.log(Level.SEVERE, "Invalid item for `tools.hoe.tilling.drops`: " + itemStr); -+ return; -+ } -+ drops.put(item, (double) chance); -+ }); -+ } -+ hoeTilling.put(block, new Tilling(condition, into, drops)); -+ }); -+ } -+ - public boolean useBetterMending = false; - public boolean alwaysTameInCreative = false; - public boolean boatEjectPlayersOnLand = false; -diff --git a/src/main/java/net/pl3x/purpur/tool/Tilling.java b/src/main/java/net/pl3x/purpur/tool/Tilling.java -new file mode 100644 -index 0000000000000000000000000000000000000000..b3d714653d5b2ddd60269aa85e3416e16f6018b8 ---- /dev/null -+++ b/src/main/java/net/pl3x/purpur/tool/Tilling.java -@@ -0,0 +1,61 @@ -+package net.pl3x.purpur.tool; -+ -+import net.minecraft.world.item.HoeItem; -+import net.minecraft.world.item.Item; -+import net.minecraft.world.item.context.UseOnContext; -+import net.minecraft.world.level.block.Block; -+ -+import java.util.HashMap; -+import java.util.Map; -+import java.util.function.Predicate; -+ -+public class Tilling { -+ private final Condition condition; -+ private final Block into; -+ private final Map drops; -+ -+ public Tilling(Condition condition, Block into, Map drops) { -+ this.condition = condition; -+ this.into = into; -+ this.drops = drops; -+ } -+ -+ public Condition getCondition() { -+ return condition; -+ } -+ -+ public Block getInto() { -+ return into; -+ } -+ -+ public Map getDrops() { -+ return drops; -+ } -+ -+ public enum Condition { -+ AIR_ABOVE(HoeItem::onlyIfAirAbove), -+ ALWAYS((useOnContext) -> true); -+ -+ private final Predicate predicate; -+ -+ Condition(Predicate predicate) { -+ this.predicate = predicate; -+ } -+ -+ public Predicate getPredicate() { -+ return predicate; -+ } -+ -+ private static final Map BY_NAME = new HashMap<>(); -+ -+ static { -+ for (Condition condition : values()) { -+ BY_NAME.put(condition.name(), condition); -+ } -+ } -+ -+ public static Condition get(String name) { -+ return BY_NAME.get(name.toUpperCase()); -+ } -+ } -+} diff --git a/patches/server/0227-Tool-actionable-options.patch b/patches/server/0227-Tool-actionable-options.patch new file mode 100644 index 000000000..4610a88da --- /dev/null +++ b/patches/server/0227-Tool-actionable-options.patch @@ -0,0 +1,408 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: William Blake Galbreath +Date: Fri, 2 Jul 2021 20:54:29 -0500 +Subject: [PATCH] Tool actionable options + + +diff --git a/src/main/java/net/minecraft/world/item/AxeItem.java b/src/main/java/net/minecraft/world/item/AxeItem.java +index 734276a74ad11f117a816b214c62415818c27dcc..b2fdfc62f1f273fd6f78ae6153444e9c1a863b00 100644 +--- a/src/main/java/net/minecraft/world/item/AxeItem.java ++++ b/src/main/java/net/minecraft/world/item/AxeItem.java +@@ -32,22 +32,22 @@ public class AxeItem extends DiggerItem { + BlockPos blockPos = context.getClickedPos(); + Player player = context.getPlayer(); + BlockState blockState = level.getBlockState(blockPos); +- Optional optional = this.getStripped(blockState); +- Optional optional2 = WeatheringCopper.getPrevious(blockState); +- Optional optional3 = Optional.ofNullable(HoneycombItem.WAX_OFF_BY_BLOCK.get().get(blockState.getBlock())).map((block) -> { +- return block.withPropertiesOf(blockState); +- }); ++ // Purpur start ++ Optional optional = Optional.ofNullable(level.purpurConfig.axeStrippables.get(blockState.getBlock())); ++ Optional optional2 = Optional.ofNullable(level.purpurConfig.axeWeatherables.get(blockState.getBlock())); ++ Optional optional3 = Optional.ofNullable(level.purpurConfig.axeWaxables.get(blockState.getBlock())); ++ // Purpur end + ItemStack itemStack = context.getItemInHand(); +- Optional optional4 = Optional.empty(); ++ Optional optional4 = Optional.empty(); // Purpur + if (optional.isPresent()) { +- level.playSound(player, blockPos, SoundEvents.AXE_STRIP, SoundSource.BLOCKS, 1.0F, 1.0F); ++ level.playSound(null, blockPos, SoundEvents.AXE_STRIP, SoundSource.BLOCKS, 1.0F, 1.0F); // Purpur - force sound + optional4 = optional; + } else if (optional2.isPresent()) { +- level.playSound(player, blockPos, SoundEvents.AXE_SCRAPE, SoundSource.BLOCKS, 1.0F, 1.0F); ++ level.playSound(null, blockPos, SoundEvents.AXE_SCRAPE, SoundSource.BLOCKS, 1.0F, 1.0F); // Purpur - force sound + level.levelEvent(player, 3005, blockPos, 0); + optional4 = optional2; + } else if (optional3.isPresent()) { +- level.playSound(player, blockPos, SoundEvents.AXE_WAX_OFF, SoundSource.BLOCKS, 1.0F, 1.0F); ++ level.playSound(null, blockPos, SoundEvents.AXE_WAX_OFF, SoundSource.BLOCKS, 1.0F, 1.0F); // Purpur - force sound + level.levelEvent(player, 3004, blockPos, 0); + optional4 = optional3; + } +@@ -57,14 +57,22 @@ public class AxeItem extends DiggerItem { + CriteriaTriggers.ITEM_USED_ON_BLOCK.trigger((ServerPlayer)player, blockPos, itemStack); + } + +- level.setBlock(blockPos, optional4.get(), 11); ++ // Purpur start ++ net.pl3x.purpur.tool.Actionable actionable = optional4.get(); ++ level.setBlock(blockPos, actionable.into().withPropertiesOf(blockState), 11); ++ actionable.drops().forEach((drop, chance) -> { ++ if (level.random.nextDouble() < chance) { ++ Block.popResourceFromFace(level, blockPos, context.getClickedFace(), new ItemStack(drop)); ++ } ++ }); ++ // Purpur end + if (player != null) { + itemStack.hurtAndBreak(1, player, (p) -> { + p.broadcastBreakEvent(context.getHand()); + }); + } + +- return InteractionResult.sidedSuccess(level.isClientSide); ++ return InteractionResult.SUCCESS; // Purpur - force arm swing + } else { + return InteractionResult.PASS; + } +diff --git a/src/main/java/net/minecraft/world/item/HoeItem.java b/src/main/java/net/minecraft/world/item/HoeItem.java +index 009dd6b59e27a9413b3ef115468a6d1dd0746d56..fdbc1378bc148f5a16b414a3e5867cdce91c73b4 100644 +--- a/src/main/java/net/minecraft/world/item/HoeItem.java ++++ b/src/main/java/net/minecraft/world/item/HoeItem.java +@@ -33,15 +33,22 @@ public class HoeItem extends DiggerItem { + public InteractionResult useOn(UseOnContext context) { + Level level = context.getLevel(); + BlockPos blockPos = context.getClickedPos(); +- Pair, Consumer> pair = TILLABLES.get(level.getBlockState(blockPos).getBlock()); +- if (pair == null) { +- return InteractionResult.PASS; +- } else { +- Predicate predicate = pair.getFirst(); +- Consumer consumer = pair.getSecond(); ++ // Purpur start ++ var tillable = level.purpurConfig.hoeTillables.get(level.getBlockState(blockPos).getBlock()); ++ if (tillable == null) { return InteractionResult.PASS; } else { ++ Predicate predicate = tillable.condition().predicate(); ++ Consumer consumer = (ctx) -> { ++ level.setBlock(blockPos, tillable.into().defaultBlockState(), 11); ++ tillable.drops().forEach((drop, chance) -> { ++ if (level.random.nextDouble() < chance) { ++ Block.popResourceFromFace(level, blockPos, ctx.getClickedFace(), new ItemStack(drop)); ++ } ++ }); ++ }; ++ // Purpur end + if (predicate.test(context)) { + Player player = context.getPlayer(); +- level.playSound(player, blockPos, SoundEvents.HOE_TILL, SoundSource.BLOCKS, 1.0F, 1.0F); ++ level.playSound(null, blockPos, SoundEvents.HOE_TILL, SoundSource.BLOCKS, 1.0F, 1.0F); // Purpur - force sound + if (!level.isClientSide) { + consumer.accept(context); + if (player != null) { +@@ -51,7 +58,7 @@ public class HoeItem extends DiggerItem { + } + } + +- return InteractionResult.sidedSuccess(level.isClientSide); ++ return InteractionResult.SUCCESS; // Purpur - force arm swing + } else { + return InteractionResult.PASS; + } +diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +index dc52aa05c402e72e44a8a3d783ccd3091baa7845..456a9d3144b0b1c7d955b03245ef9ae0445d72a9 100644 +--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java ++++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +@@ -459,6 +459,153 @@ public class PurpurWorldConfig { + }); + } + ++ public Map axeStrippables = new HashMap<>(); ++ public Map axeWaxables = new HashMap<>(); ++ public Map axeWeatherables = new HashMap<>(); ++ public Map hoeTillables = new HashMap<>(); ++ private void toolSettings() { ++ axeStrippables.clear(); ++ axeWaxables.clear(); ++ axeWeatherables.clear(); ++ hoeTillables.clear(); ++ if (PurpurConfig.version < 18) { ++ ConfigurationSection section = PurpurConfig.config.getConfigurationSection("world-settings." + worldName + ".tools.hoe.tilling"); ++ if (section != null) { ++ PurpurConfig.config.set("world-settings." + worldName + ".tools.hoe.tillables", section); ++ PurpurConfig.config.set("world-settings." + worldName + ".tools.hoe.tilling", null); ++ } ++ section = PurpurConfig.config.getConfigurationSection("world-settings.default.tools.hoe.tilling"); ++ if (section != null) { ++ PurpurConfig.config.set("world-settings.default.tools.hoe.tillables", section); ++ PurpurConfig.config.set("world-settings.default.tools.hoe.tilling", null); ++ } ++ } ++ getMap("tools.axe.strippables", Map.ofEntries( ++ Map.entry("minecraft:oak_wood", Map.of("into", "minecraft:stripped_oak_wood", "drops", new HashMap())), ++ Map.entry("minecraft:oak_log", Map.of("into", "minecraft:stripped_oak_log", "drops", new HashMap())), ++ Map.entry("minecraft:dark_oak_wood", Map.of("into", "minecraft:stripped_dark_oak_wood", "drops", new HashMap())), ++ Map.entry("minecraft:dark_oak_log", Map.of("into", "minecraft:stripped_dark_oak_log", "drops", new HashMap())), ++ Map.entry("minecraft:acacia_wood", Map.of("into", "minecraft:stripped_acacia_wood", "drops", new HashMap())), ++ Map.entry("minecraft:acacia_log", Map.of("into", "minecraft:stripped_acacia_log", "drops", new HashMap())), ++ Map.entry("minecraft:birch_wood", Map.of("into", "minecraft:stripped_birch_wood", "drops", new HashMap())), ++ Map.entry("minecraft:birch_log", Map.of("into", "minecraft:stripped_birch_log", "drops", new HashMap())), ++ Map.entry("minecraft:jungle_wood", Map.of("into", "minecraft:stripped_jungle_wood", "drops", new HashMap())), ++ Map.entry("minecraft:jungle_log", Map.of("into", "minecraft:stripped_jungle_log", "drops", new HashMap())), ++ Map.entry("minecraft:spruce_wood", Map.of("into", "minecraft:stripped_spruce_wood", "drops", new HashMap())), ++ Map.entry("minecraft:spruce_log", Map.of("into", "minecraft:stripped_spruce_log", "drops", new HashMap())), ++ Map.entry("minecraft:warped_stem", Map.of("into", "minecraft:stripped_warped_stem", "drops", new HashMap())), ++ Map.entry("minecraft:warped_hyphae", Map.of("into", "minecraft:stripped_warped_hyphae", "drops", new HashMap())), ++ Map.entry("minecraft:crimson_stem", Map.of("into", "minecraft:stripped_crimson_stem", "drops", new HashMap())), ++ Map.entry("minecraft:crimson_hyphae", Map.of("into", "minecraft:stripped_crimson_hyphae", "drops", new HashMap()))) ++ ).forEach((blockId, obj) -> { ++ Block block = Registry.BLOCK.get(new ResourceLocation(blockId)); ++ if (block == Blocks.AIR) { PurpurConfig.log(Level.SEVERE, "Invalid block for `tools.axe.strippables`: " + blockId); return; } ++ if (!(obj instanceof Map map)) { PurpurConfig.log(Level.SEVERE, "Invalid yaml for `tools.axe.strippables." + blockId + "`"); return; } ++ String intoId = (String) map.get("into"); ++ Block into = Registry.BLOCK.get(new ResourceLocation(intoId)); ++ if (into == Blocks.AIR) { PurpurConfig.log(Level.SEVERE, "Invalid block for `tools.axe.strippables." + blockId + ".into`: " + intoId); return; } ++ Object dropsObj = map.get("drops"); ++ if (!(dropsObj instanceof Map dropsMap)) { PurpurConfig.log(Level.SEVERE, "Invalid yaml for `tools.axe.strippables." + blockId + ".drops`"); return; } ++ Map drops = new HashMap<>(); ++ dropsMap.forEach((itemId, chance) -> { ++ Item item = Registry.ITEM.get(new ResourceLocation(itemId.toString())); ++ if (item == Items.AIR) { PurpurConfig.log(Level.SEVERE, "Invalid item for `tools.axe.strippables." + blockId + ".drops`: " + itemId); return; } ++ drops.put(item, (double) chance); ++ }); ++ axeStrippables.put(block, new Strippable(into, drops)); ++ }); ++ getMap("tools.axe.waxables", Map.ofEntries( ++ Map.entry("minecraft:waxed_copper_block", Map.of("into", "minecraft:copper_block", "drops", new HashMap())), ++ Map.entry("minecraft:waxed_exposed_copper", Map.of("into", "minecraft:exposed_copper", "drops", new HashMap())), ++ Map.entry("minecraft:waxed_weathered_copper", Map.of("into", "minecraft:weathered_copper", "drops", new HashMap())), ++ Map.entry("minecraft:waxed_oxidized_copper", Map.of("into", "minecraft:oxidized_copper", "drops", new HashMap())), ++ Map.entry("minecraft:waxed_cut_copper", Map.of("into", "minecraft:cut_copper", "drops", new HashMap())), ++ Map.entry("minecraft:waxed_exposed_cut_copper", Map.of("into", "minecraft:exposed_cut_copper", "drops", new HashMap())), ++ Map.entry("minecraft:waxed_weathered_cut_copper", Map.of("into", "minecraft:weathered_cut_copper", "drops", new HashMap())), ++ Map.entry("minecraft:waxed_oxidized_cut_copper", Map.of("into", "minecraft:oxidized_cut_copper", "drops", new HashMap())), ++ Map.entry("minecraft:waxed_cut_copper_slab", Map.of("into", "minecraft:cut_copper_slab", "drops", new HashMap())), ++ Map.entry("minecraft:waxed_exposed_cut_copper_slab", Map.of("into", "minecraft:exposed_cut_copper_slab", "drops", new HashMap())), ++ Map.entry("minecraft:waxed_weathered_cut_copper_slab", Map.of("into", "minecraft:weathered_cut_copper_slab", "drops", new HashMap())), ++ Map.entry("minecraft:waxed_oxidized_cut_copper_slab", Map.of("into", "minecraft:oxidized_cut_copper_slab", "drops", new HashMap())), ++ Map.entry("minecraft:waxed_cut_copper_stairs", Map.of("into", "minecraft:cut_copper_stairs", "drops", new HashMap())), ++ Map.entry("minecraft:waxed_exposed_cut_copper_stairs", Map.of("into", "minecraft:exposed_cut_copper_stairs", "drops", new HashMap())), ++ Map.entry("minecraft:waxed_weathered_cut_copper_stairs", Map.of("into", "minecraft:weathered_cut_copper_stairs", "drops", new HashMap())), ++ Map.entry("minecraft:waxed_oxidized_cut_copper_stairs", Map.of("into", "minecraft:oxidized_cut_copper_stairs", "drops", new HashMap()))) ++ ).forEach((blockId, obj) -> { ++ Block block = Registry.BLOCK.get(new ResourceLocation(blockId)); ++ if (block == Blocks.AIR) { PurpurConfig.log(Level.SEVERE, "Invalid block for `tools.axe.waxables`: " + blockId); return; } ++ if (!(obj instanceof Map map)) { PurpurConfig.log(Level.SEVERE, "Invalid yaml for `tools.axe.waxables." + blockId + "`"); return; } ++ String intoId = (String) map.get("into"); ++ Block into = Registry.BLOCK.get(new ResourceLocation(intoId)); ++ if (into == Blocks.AIR) { PurpurConfig.log(Level.SEVERE, "Invalid block for `tools.axe.waxables." + blockId + ".into`: " + intoId); return; } ++ Object dropsObj = map.get("drops"); ++ if (!(dropsObj instanceof Map dropsMap)) { PurpurConfig.log(Level.SEVERE, "Invalid yaml for `tools.axe.waxables." + blockId + ".drops`"); return; } ++ Map drops = new HashMap<>(); ++ dropsMap.forEach((itemId, chance) -> { ++ Item item = Registry.ITEM.get(new ResourceLocation(itemId.toString())); ++ if (item == Items.AIR) { PurpurConfig.log(Level.SEVERE, "Invalid item for `tools.axe.waxables." + blockId + ".drops`: " + itemId); return; } ++ drops.put(item, (double) chance); ++ }); ++ axeWaxables.put(block, new Waxable(into, drops)); ++ }); ++ getMap("tools.axe.weatherables", Map.ofEntries( ++ Map.entry("minecraft:exposed_copper", Map.of("into", "minecraft:copper_block", "drops", new HashMap())), ++ Map.entry("minecraft:weathered_copper", Map.of("into", "minecraft:exposed_copper", "drops", new HashMap())), ++ Map.entry("minecraft:oxidized_copper", Map.of("into", "minecraft:weathered_copper", "drops", new HashMap())), ++ Map.entry("minecraft:exposed_cut_copper", Map.of("into", "minecraft:cut_copper", "drops", new HashMap())), ++ Map.entry("minecraft:weathered_cut_copper", Map.of("into", "minecraft:exposed_cut_copper", "drops", new HashMap())), ++ Map.entry("minecraft:oxidized_cut_copper", Map.of("into", "minecraft:weathered_cut_copper", "drops", new HashMap())), ++ Map.entry("minecraft:exposed_cut_copper_slab", Map.of("into", "minecraft:cut_copper_slab", "drops", new HashMap())), ++ Map.entry("minecraft:weathered_cut_copper_slab", Map.of("into", "minecraft:exposed_cut_copper_slab", "drops", new HashMap())), ++ Map.entry("minecraft:oxidized_cut_copper_slab", Map.of("into", "minecraft:weathered_cut_copper_slab", "drops", new HashMap())), ++ Map.entry("minecraft:exposed_cut_copper_stairs", Map.of("into", "minecraft:cut_copper_stairs", "drops", new HashMap())), ++ Map.entry("minecraft:weathered_cut_copper_stairs", Map.of("into", "minecraft:exposed_cut_copper_stairs", "drops", new HashMap())), ++ Map.entry("minecraft:oxidized_cut_copper_stairs", Map.of("into", "minecraft:weathered_cut_copper_stairs", "drops", new HashMap()))) ++ ).forEach((blockId, obj) -> { ++ Block block = Registry.BLOCK.get(new ResourceLocation(blockId)); ++ if (block == Blocks.AIR) { PurpurConfig.log(Level.SEVERE, "Invalid block for `tools.axe.weatherables`: " + blockId); return; } ++ if (!(obj instanceof Map map)) { PurpurConfig.log(Level.SEVERE, "Invalid yaml for `tools.axe.weatherables." + blockId + "`"); return; } ++ String intoId = (String) map.get("into"); ++ Block into = Registry.BLOCK.get(new ResourceLocation(intoId)); ++ if (into == Blocks.AIR) { PurpurConfig.log(Level.SEVERE, "Invalid block for `tools.axe.weatherables." + blockId + ".into`: " + intoId); return; } ++ Object dropsObj = map.get("drops"); ++ if (!(dropsObj instanceof Map dropsMap)) { PurpurConfig.log(Level.SEVERE, "Invalid yaml for `tools.axe.weatherables." + blockId + ".drops`"); return; } ++ Map drops = new HashMap<>(); ++ dropsMap.forEach((itemId, chance) -> { ++ Item item = Registry.ITEM.get(new ResourceLocation(itemId.toString())); ++ if (item == Items.AIR) { PurpurConfig.log(Level.SEVERE, "Invalid item for `tools.axe.weatherables." + blockId + ".drops`: " + itemId); return; } ++ drops.put(item, (double) chance); ++ }); ++ axeWeatherables.put(block, new Weatherable(into, drops)); ++ }); ++ getMap("tools.hoe.tillables", Map.ofEntries( ++ Map.entry("minecraft:grass_block", Map.of("condition", "air_above", "into", "minecraft:farmland", "drops", new HashMap())), ++ Map.entry("minecraft:dirt_path", Map.of("condition", "air_above", "into", "minecraft:farmland", "drops", new HashMap())), ++ Map.entry("minecraft:dirt", Map.of("condition", "air_above", "into", "minecraft:farmland", "drops", new HashMap())), ++ Map.entry("minecraft:coarse_dirt", Map.of("condition", "air_above", "into", "minecraft:dirt", "drops", new HashMap())), ++ Map.entry("minecraft:rooted_dirt", Map.of("condition", "always", "into", "minecraft:dirt", "drops", Map.of("minecraft:hanging_roots", 1.0D)))) ++ ).forEach((blockId, obj) -> { ++ Block block = Registry.BLOCK.get(new ResourceLocation(blockId)); ++ if (block == Blocks.AIR) { PurpurConfig.log(Level.SEVERE, "Invalid block for `tools.hoe.tilling`: " + blockId); return; } ++ if (!(obj instanceof Map map)) { PurpurConfig.log(Level.SEVERE, "Invalid yaml for `tools.hoe.tilling." + blockId + "`"); return; } ++ String conditionId = (String) map.get("condition"); ++ Tillable.Condition condition = Tillable.Condition.get(conditionId); ++ if (condition == null) { PurpurConfig.log(Level.SEVERE, "Invalid condition for `tools.hoe.tilling." + blockId + ".condition`: " + conditionId); return; } ++ String intoId = (String) map.get("into"); ++ Block into = Registry.BLOCK.get(new ResourceLocation(intoId)); ++ if (into == Blocks.AIR) { PurpurConfig.log(Level.SEVERE, "Invalid block for `tools.hoe.tilling." + blockId + ".into`: " + intoId); return; } ++ Object dropsObj = map.get("drops"); ++ if (!(dropsObj instanceof Map dropsMap)) { PurpurConfig.log(Level.SEVERE, "Invalid yaml for `tools.hoe.tilling." + blockId + ".drops`"); return; } ++ Map drops = new HashMap<>(); ++ dropsMap.forEach((itemId, chance) -> { ++ Item item = Registry.ITEM.get(new ResourceLocation(itemId.toString())); ++ if (item == Items.AIR) { PurpurConfig.log(Level.SEVERE, "Invalid item for `tools.hoe.tilling." + blockId + ".drops`: " + itemId); return; } ++ drops.put(item, (double) chance); ++ }); ++ hoeTillables.put(block, new Tillable(condition, into, drops)); ++ }); ++ } ++ + public boolean useBetterMending = false; + public boolean alwaysTameInCreative = false; + public boolean boatEjectPlayersOnLand = false; +diff --git a/src/main/java/net/pl3x/purpur/tool/Actionable.java b/src/main/java/net/pl3x/purpur/tool/Actionable.java +new file mode 100644 +index 0000000000000000000000000000000000000000..9273eb5f5cacf00eedeb5a396616871a3a39a7a0 +--- /dev/null ++++ b/src/main/java/net/pl3x/purpur/tool/Actionable.java +@@ -0,0 +1,24 @@ ++package net.pl3x.purpur.tool; ++ ++import net.minecraft.world.item.Item; ++import net.minecraft.world.level.block.Block; ++ ++import java.util.Map; ++ ++public abstract class Actionable { ++ private final Block into; ++ private final Map drops; ++ ++ public Actionable(Block into, Map drops) { ++ this.into = into; ++ this.drops = drops; ++ } ++ ++ public Block into() { ++ return into; ++ } ++ ++ public Map drops() { ++ return drops; ++ } ++} +diff --git a/src/main/java/net/pl3x/purpur/tool/Strippable.java b/src/main/java/net/pl3x/purpur/tool/Strippable.java +new file mode 100644 +index 0000000000000000000000000000000000000000..c15b623db3331757963a4f565ae842d93471b769 +--- /dev/null ++++ b/src/main/java/net/pl3x/purpur/tool/Strippable.java +@@ -0,0 +1,12 @@ ++package net.pl3x.purpur.tool; ++ ++import net.minecraft.world.item.Item; ++import net.minecraft.world.level.block.Block; ++ ++import java.util.Map; ++ ++public class Strippable extends Actionable { ++ public Strippable(Block into, Map drops) { ++ super(into, drops); ++ } ++} +diff --git a/src/main/java/net/pl3x/purpur/tool/Tillable.java b/src/main/java/net/pl3x/purpur/tool/Tillable.java +new file mode 100644 +index 0000000000000000000000000000000000000000..ec2e3c4009e7a18592eed677697680926db67247 +--- /dev/null ++++ b/src/main/java/net/pl3x/purpur/tool/Tillable.java +@@ -0,0 +1,50 @@ ++package net.pl3x.purpur.tool; ++ ++import net.minecraft.world.item.HoeItem; ++import net.minecraft.world.item.Item; ++import net.minecraft.world.item.context.UseOnContext; ++import net.minecraft.world.level.block.Block; ++ ++import java.util.HashMap; ++import java.util.Map; ++import java.util.function.Predicate; ++ ++public class Tillable extends Actionable { ++ private final Condition condition; ++ ++ public Tillable(Condition condition, Block into, Map drops) { ++ super(into, drops); ++ this.condition = condition; ++ } ++ ++ public Condition condition() { ++ return condition; ++ } ++ ++ public enum Condition { ++ AIR_ABOVE(HoeItem::onlyIfAirAbove), ++ ALWAYS((useOnContext) -> true); ++ ++ private final Predicate predicate; ++ ++ Condition(Predicate predicate) { ++ this.predicate = predicate; ++ } ++ ++ public Predicate predicate() { ++ return predicate; ++ } ++ ++ private static final Map BY_NAME = new HashMap<>(); ++ ++ static { ++ for (Condition condition : values()) { ++ BY_NAME.put(condition.name(), condition); ++ } ++ } ++ ++ public static Condition get(String name) { ++ return BY_NAME.get(name.toUpperCase()); ++ } ++ } ++} +diff --git a/src/main/java/net/pl3x/purpur/tool/Waxable.java b/src/main/java/net/pl3x/purpur/tool/Waxable.java +new file mode 100644 +index 0000000000000000000000000000000000000000..45a8007a9aaf3f9f11b9387ed4d980fe4f1ab8e3 +--- /dev/null ++++ b/src/main/java/net/pl3x/purpur/tool/Waxable.java +@@ -0,0 +1,12 @@ ++package net.pl3x.purpur.tool; ++ ++import net.minecraft.world.item.Item; ++import net.minecraft.world.level.block.Block; ++ ++import java.util.Map; ++ ++public class Waxable extends Actionable { ++ public Waxable(Block into, Map drops) { ++ super(into, drops); ++ } ++} +diff --git a/src/main/java/net/pl3x/purpur/tool/Weatherable.java b/src/main/java/net/pl3x/purpur/tool/Weatherable.java +new file mode 100644 +index 0000000000000000000000000000000000000000..89c6a18580382d011aae000b39e8fede18d7c5ea +--- /dev/null ++++ b/src/main/java/net/pl3x/purpur/tool/Weatherable.java +@@ -0,0 +1,12 @@ ++package net.pl3x.purpur.tool; ++ ++import net.minecraft.world.item.Item; ++import net.minecraft.world.level.block.Block; ++ ++import java.util.Map; ++ ++public class Weatherable extends Actionable { ++ public Weatherable(Block into, Map drops) { ++ super(into, drops); ++ } ++} diff --git a/patches/server/0232-option-to-disable-shulker-box-items-from-dropping-co.patch b/patches/server/0232-option-to-disable-shulker-box-items-from-dropping-co.patch index 8d06b7d36..77629e973 100644 --- a/patches/server/0232-option-to-disable-shulker-box-items-from-dropping-co.patch +++ b/patches/server/0232-option-to-disable-shulker-box-items-from-dropping-co.patch @@ -19,10 +19,10 @@ index d9114ee2ef4f1dee7ae018f932a7804a61a90ef6..8b521ee48480d3eb5cc77051c425ff45 if (nbttagcompound != null) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index b20fdef329a9b1ef4a873502ed33f4769230f28b..4f93c8897180e7e3ad841d056799125c67d50752 100644 +index 456a9d3144b0b1c7d955b03245ef9ae0445d72a9..44a45ed22f8d8e9b58b7ba6ce0d5833f1a937c5d 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -171,6 +171,7 @@ public class PurpurWorldConfig { +@@ -174,6 +174,7 @@ public class PurpurWorldConfig { public int enderPearlCooldownCreative = 20; public float enderPearlEndermiteChance = 0.05F; public int glowBerriesEatGlowDuration = 0; @@ -30,7 +30,7 @@ index b20fdef329a9b1ef4a873502ed33f4769230f28b..4f93c8897180e7e3ad841d056799125c private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -215,6 +216,7 @@ public class PurpurWorldConfig { +@@ -218,6 +219,7 @@ public class PurpurWorldConfig { enderPearlCooldownCreative = getInt("gameplay-mechanics.item.ender-pearl.creative-cooldown", enderPearlCooldownCreative); enderPearlEndermiteChance = (float) getDouble("gameplay-mechanics.item.ender-pearl.endermite-spawn-chance", enderPearlEndermiteChance); glowBerriesEatGlowDuration = getInt("gameplay-mechanics.item.glow_berries.eat-glow-duration", glowBerriesEatGlowDuration);