From 1a325f68dc0e993f822b6ac621883c3ac6a4e98d Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 2 Jul 2021 21:09:45 -0500 Subject: [PATCH] Add hoe tilling options --- patches/server/0003-Purpur-config-files.patch | 58 ++++- patches/server/0005-Ridables.patch | 18 +- ...-Configurable-entity-base-attributes.patch | 14 +- patches/server/0007-Timings-stuff.patch | 4 +- .../0008-Barrels-and-enderchests-6-rows.patch | 4 +- patches/server/0011-AFK-API.patch | 10 +- .../0013-Configurable-server-mod-name.patch | 4 +- patches/server/0015-Lagging-threshold.patch | 4 +- .../0019-Player-invulnerabilities.patch | 8 +- ...21-Configurable-villager-brain-ticks.patch | 8 +- .../0022-Alternative-Keepalive-Handling.patch | 4 +- patches/server/0023-Silk-touch-spawners.patch | 4 +- ...772-Fix-Add-turtle-egg-block-options.patch | 6 +- ...-settings-suppressing-pointless-logs.patch | 4 +- patches/server/0028-Giants-AI-settings.patch | 6 +- .../0029-Zombie-horse-naturally-spawn.patch | 6 +- ...0030-Charged-creeper-naturally-spawn.patch | 6 +- ...bit-naturally-spawn-toast-and-killer.patch | 6 +- ...033-Dont-send-useless-entity-packets.patch | 4 +- .../server/0034-Tulips-change-fox-type.patch | 6 +- .../server/0035-Breedable-Polar-Bears.patch | 6 +- .../server/0036-Chickens-can-retaliate.patch | 6 +- ...option-to-set-armorstand-step-height.patch | 6 +- .../server/0038-Cat-spawning-options.patch | 6 +- patches/server/0040-Cows-eat-mushrooms.patch | 6 +- .../server/0042-Pigs-give-saddle-back.patch | 6 +- ...43-Snowman-drop-and-put-back-pumpkin.patch | 6 +- ...44-Ender-dragon-always-drop-full-exp.patch | 6 +- .../0045-Signs-editable-on-right-click.patch | 4 +- .../server/0046-Signs-allow-color-codes.patch | 4 +- ...moisten-from-water-directly-under-it.patch | 4 +- ...-Minecart-settings-and-WASD-controls.patch | 6 +- ...able-loot-drops-on-death-by-cramming.patch | 4 +- ...ption-to-toggle-milk-curing-bad-omen.patch | 4 +- ...-skeleton-takes-wither-damage-option.patch | 6 +- .../0057-Configurable-TPS-Catchup.patch | 4 +- ...low-loyalty-on-tridents-to-work-in-t.patch | 4 +- ...derman-and-creeper-griefing-controls.patch | 10 +- ...0060-Villagers-follow-emerald-blocks.patch | 12 +- .../0061-Allow-leashing-villagers.patch | 12 +- ...urable-search-radius-for-villagers-t.patch | 8 +- .../server/0063-Implement-infinite-lava.patch | 4 +- ...64-Make-lava-flow-speed-configurable.patch | 4 +- ...Add-player-death-exp-control-options.patch | 6 +- ...urable-void-damage-height-and-damage.patch | 4 +- ...ispenser-curse-of-binding-protection.patch | 4 +- ...n-for-boats-to-eject-players-on-land.patch | 4 +- ...g-mends-most-damages-equipment-first.patch | 6 +- .../0072-Implement-elytra-settings.patch | 4 +- .../server/0073-Item-entity-immunities.patch | 4 +- patches/server/0074-Add-ping-command.patch | 4 +- patches/server/0075-Add-demo-command.patch | 6 +- patches/server/0076-Add-credits-command.patch | 6 +- .../0077-Configurable-jockey-options.patch | 20 +- ...ed-to-crystals-and-crystals-shoot-ph.patch | 6 +- .../0079-Add-phantom-spawning-options.patch | 6 +- ...0080-Implement-bed-explosion-options.patch | 4 +- ...ent-respawn-anchor-explosion-options.patch | 4 +- ...-Add-allow-water-in-end-world-option.patch | 4 +- patches/server/0084-Entity-lifespan.patch | 4 +- ...leport-to-spawn-if-outside-world-bor.patch | 8 +- patches/server/0086-Squid-EAR-immunity.patch | 6 +- ...7-Configurable-feature-seed-settings.patch | 11 +- .../server/0088-Phantoms-burn-in-light.patch | 6 +- .../0089-Configurable-villager-breeding.patch | 8 +- .../0090-Redstone-deactivates-spawners.patch | 4 +- .../0091-Totems-work-in-inventory.patch | 6 +- ...2-Add-vindicator-johnny-spawn-chance.patch | 6 +- ...ion-to-disable-certain-block-updates.patch | 4 +- .../0094-Dispensers-place-anvils-option.patch | 4 +- patches/server/0095-Allow-anvil-colors.patch | 4 +- .../0096-Add-no-random-tick-block-list.patch | 4 +- ...o-disable-dolphin-treasure-searching.patch | 6 +- .../server/0098-Short-enderman-height.patch | 13 +- ...Stop-squids-floating-on-top-of-water.patch | 6 +- ...ing-obsidian-valid-for-portal-frames.patch | 6 +- ...tities-can-use-portals-configuration.patch | 6 +- ...stomizable-wither-health-and-healing.patch | 6 +- ...ggling-special-MobSpawners-per-world.patch | 6 +- .../server/0106-Raid-cooldown-setting.patch | 6 +- ...e-config-options-per-projectile-type.patch | 4 +- ...sable-zombie-aggressiveness-towards-.patch | 6 +- ...tent-TileEntity-Lore-and-DisplayName.patch | 6 +- patches/server/0111-Flying-squids-Oh-my.patch | 8 +- .../server/0112-Infinity-bow-settings.patch | 4 +- patches/server/0113-Stonecutter-damage.patch | 4 +- .../0114-Configurable-daylight-cycle.patch | 4 +- ...te-and-mending-enchantments-together.patch | 4 +- .../server/0116-Infinite-fuel-furnace.patch | 4 +- ...re-add-farmland-mechanics-from-Alpha.patch | 4 +- ...justable-breeding-cooldown-to-config.patch | 6 +- ...e-entity-breeding-times-configurable.patch | 90 ++++---- ...mes-from-item-forms-of-entities-to-e.patch | 8 +- ...-when-using-a-Name-Tag-on-an-Armor-S.patch | 4 +- ...sting-and-weeping-vines-growth-rates.patch | 6 +- ...-twisting-vines-configurable-max-gro.patch | 8 +- ...llowing-Endermen-to-despawn-even-whi.patch | 6 +- ...127-Add-configurable-snowball-damage.patch | 4 +- ...break-door-minimum-difficulty-option.patch | 6 +- ...30-Changeable-Mob-Left-Handed-Chance.patch | 4 +- .../0131-Add-boat-fall-damage-config.patch | 6 +- .../0132-Snow-Golem-rate-of-fire-config.patch | 6 +- ...C-Configurable-disable-give-dropping.patch | 4 +- .../0135-Lobotomize-stuck-villagers.patch | 8 +- ...Villager-Clerics-to-farm-Nether-Wart.patch | 8 +- ...fied-Piglin-death-always-counting-as.patch | 6 +- ...ble-chance-for-wolves-to-spawn-rabid.patch | 6 +- ...nfigurable-default-wolf-collar-color.patch | 6 +- .../server/0141-Phantom-flames-on-swoop.patch | 6 +- ...s-to-open-even-with-a-solid-block-on.patch | 4 +- .../0144-Striders-give-saddle-back.patch | 6 +- ...therite-armor-grants-fire-resistance.patch | 4 +- ...iefing-bypass-to-everything-affected.patch | 70 +++--- ...allow-Note-Block-sounds-when-blocked.patch | 6 +- ...0151-Add-EntityTeleportHinderedEvent.patch | 6 +- .../0153-Farmland-trampling-changes.patch | 4 +- ...54-Movement-options-for-armor-stands.patch | 4 +- .../server/0155-Fix-stuck-in-portals.patch | 8 +- ...oggle-for-water-sensitive-mob-damage.patch | 18 +- ...57-Config-to-always-tame-in-Creative.patch | 6 +- .../0158-End-crystal-explosion-options.patch | 4 +- ...ither-Ender-Dragon-can-ride-vehicles.patch | 10 +- .../server/0161-Dont-run-with-scissors.patch | 8 +- patches/server/0162-One-Punch-Man.patch | 6 +- ...0163-Add-config-for-snow-on-blue-ice.patch | 4 +- ...er-Pearl-cooldown-damage-and-Endermi.patch | 6 +- ...-to-ignore-nearby-mobs-when-sleeping.patch | 8 +- ...an-aggressiveness-towards-Endermites.patch | 6 +- ...-Dragon-Head-wearers-and-stare-aggro.patch | 6 +- patches/server/0169-Tick-fluids-config.patch | 6 +- ...170-Config-to-disable-Llama-caravans.patch | 6 +- ...ig-to-make-Creepers-explode-on-death.patch | 6 +- ...urable-ravager-griefable-blocks-list.patch | 6 +- ...0173-Sneak-to-bulk-process-composter.patch | 4 +- .../0174-Config-for-skipping-night.patch | 6 +- ...0175-Add-config-for-villager-trading.patch | 12 +- .../0176-Allow-infinity-on-crossbows.patch | 6 +- patches/server/0177-Drowning-Settings.patch | 4 +- ...Break-individual-slabs-when-sneaking.patch | 4 +- ...-to-disable-hostile-mob-spawn-on-ice.patch | 4 +- ...ig-to-show-Armor-Stand-arms-on-spawn.patch | 6 +- ...ption-to-make-doors-require-redstone.patch | 4 +- ...-Config-to-allow-for-unsafe-enchants.patch | 6 +- .../0183-Configurable-sponge-absorption.patch | 4 +- .../0184-Projectile-offset-config.patch | 4 +- ...for-powered-rail-activation-distance.patch | 4 +- .../0186-Piglin-portal-spawn-modifier.patch | 6 +- ...-Config-to-change-max-number-of-bees.patch | 6 +- ...ble-damage-settings-for-magma-blocks.patch | 4 +- ...9-Config-for-wither-explosion-radius.patch | 6 +- .../0190-Gamemode-extra-permissions.patch | 4 +- ...ing-the-blocks-that-turn-into-dirt-p.patch | 4 +- .../0192-Configurable-piston-push-limit.patch | 4 +- ...0193-Configurable-broadcast-settings.patch | 6 +- .../0195-Configurable-mob-blindness.patch | 6 +- ...-hidden-players-from-entity-selector.patch | 4 +- ...h-to-impact-Creeper-explosion-radius.patch | 6 +- .../0198-Iron-golem-poppy-calms-anger.patch | 6 +- patches/server/0199-Breedable-parrots.patch | 6 +- ...igurable-powered-rail-boost-modifier.patch | 6 +- ...nge-multiplier-critical-damage-value.patch | 6 +- ...on-to-disable-dragon-egg-teleporting.patch | 4 +- ...nfig-for-unverified-username-message.patch | 6 +- ...e-anvil-cumulative-cost-configurable.patch | 8 +- ...05-ShulkerBox-allow-oversized-stacks.patch | 4 +- ...ee-can-work-when-raining-or-at-night.patch | 6 +- .../0209-Config-MobEffect-by-world.patch | 4 +- ...Beacon-Activation-Range-Configurable.patch | 4 +- .../0211-Add-toggle-for-sand-duping-fix.patch | 4 +- ...ggle-for-end-portal-safe-teleporting.patch | 4 +- ...ake-lightning-rod-range-configurable.patch | 6 +- ...ing-food-fills-hunger-bar-completely.patch | 6 +- .../server/0217-Populator-seed-controls.patch | 4 +- ...19-Shulker-spawn-from-bullet-options.patch | 6 +- ...Eating-glow-berries-adds-glow-effect.patch | 6 +- ...1-Option-to-make-drowned-break-doors.patch | 6 +- ...onfigurable-hunger-starvation-damage.patch | 4 +- .../0224-Armor-click-equip-options.patch | 6 +- patches/server/0226-Add-uptime-command.patch | 8 +- .../server/0227-Structure-seed-options.patch | 6 +- patches/server/0228-Hoe-tilling-options.patch | 207 ++++++++++++++++++ 181 files changed, 845 insertions(+), 620 deletions(-) create mode 100644 patches/server/0228-Hoe-tilling-options.patch diff --git a/patches/server/0003-Purpur-config-files.patch b/patches/server/0003-Purpur-config-files.patch index a690beaff..819e84223 100644 --- a/patches/server/0003-Purpur-config-files.patch +++ b/patches/server/0003-Purpur-config-files.patch @@ -122,17 +122,22 @@ index 862553e98a7237d39a26036c615b9cbd001bd3bf..d11b463548b847382a22fdf50496b186 this.ticksPerAnimalSpawns = this.getCraftServer().getTicksPerAnimalSpawns(); // CraftBukkit diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java new file mode 100644 -index 0000000000000000000000000000000000000000..5bc7d1d72847fc200a5bcd19f083e45805546aeb +index 0000000000000000000000000000000000000000..1d76057b1b2dc9f0fc8e3fe5a5f6bfee23128007 --- /dev/null +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -0,0 +1,130 @@ +@@ -0,0 +1,157 @@ +package net.pl3x.purpur; + ++import co.aikar.timings.TimingsManager; +import com.google.common.base.Throwables; ++import com.google.common.collect.ImmutableMap; +import net.minecraft.server.MinecraftServer; ++import net.minecraft.world.entity.EntityDimensions; ++import net.minecraft.world.entity.EntityType; +import net.pl3x.purpur.command.PurpurCommand; +import org.bukkit.Bukkit; +import org.bukkit.command.Command; ++import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.configuration.InvalidConfigurationException; +import org.bukkit.configuration.file.YamlConfiguration; + @@ -146,6 +151,7 @@ index 0000000000000000000000000000000000000000..5bc7d1d72847fc200a5bcd19f083e458 +import java.util.Map; +import java.util.logging.Level; + ++@SuppressWarnings("unused") +public class PurpurConfig { + private static final String HEADER = "This is the main configuration file for Purpur.\n" + + "As you can see, there's tons to configure. Some options may impact gameplay, so use\n" @@ -231,6 +237,11 @@ index 0000000000000000000000000000000000000000..5bc7d1d72847fc200a5bcd19f083e458 + config.set(path, val); + } + ++ private static String getString(String path, String def) { ++ config.addDefault(path, def); ++ return config.getString(path, config.getString(path)); ++ } ++ + private static boolean getBoolean(String path, boolean def) { + config.addDefault(path, def); + return config.getBoolean(path, config.getBoolean(path)); @@ -251,23 +262,39 @@ index 0000000000000000000000000000000000000000..5bc7d1d72847fc200a5bcd19f083e458 + return config.getList(path, config.getList(path)); + } + -+ private static String getString(String path, String def) { -+ config.addDefault(path, def); -+ return config.getString(path, config.getString(path)); ++ static Map getMap(String path, Map def) { ++ if (def != null && config.getConfigurationSection(path) == null) { ++ config.addDefault(path, def); ++ return def; ++ } ++ return toMap(config.getConfigurationSection(path)); ++ } ++ ++ private static Map toMap(ConfigurationSection section) { ++ ImmutableMap.Builder builder = ImmutableMap.builder(); ++ if (section != null) { ++ for (String key : section.getKeys(false)) { ++ Object obj = section.get(key); ++ if (obj != null) { ++ builder.put(key, obj instanceof ConfigurationSection val ? toMap(val) : obj); ++ } ++ } ++ } ++ return builder.build(); + } +} 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..3cd897d4049323aeda85c89a73a3f50bd7b94d58 +index 0000000000000000000000000000000000000000..cde76bbcd50993de8b36f8a8fa168bed16708ec0 --- /dev/null +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -0,0 +1,85 @@ +@@ -0,0 +1,92 @@ +package net.pl3x.purpur; + +import com.tuinity.tuinity.config.TuinityConfig; -+import net.minecraft.server.level.ServerLevel; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceLocation; ++import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.Difficulty; +import net.minecraft.world.item.DyeColor; +import net.minecraft.world.item.Item; @@ -275,6 +302,7 @@ index 0000000000000000000000000000000000000000..3cd897d4049323aeda85c89a73a3f50b +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 org.apache.commons.lang.BooleanUtils; +import org.bukkit.World; +import org.bukkit.configuration.ConfigurationSection; @@ -287,9 +315,9 @@ index 0000000000000000000000000000000000000000..3cd897d4049323aeda85c89a73a3f50b +import java.util.Set; +import java.util.function.Predicate; +import java.util.logging.Level; -+ +import static net.pl3x.purpur.PurpurConfig.log; + ++@SuppressWarnings("unused") +public class PurpurWorldConfig { + + private final ServerLevel level; @@ -322,6 +350,11 @@ index 0000000000000000000000000000000000000000..3cd897d4049323aeda85c89a73a3f50b + return section != null ? section : PurpurConfig.config.getConfigurationSection("world-settings.default." + path); + } + ++ private String getString(String path, String def) { ++ PurpurConfig.config.addDefault("world-settings.default." + path, def); ++ return PurpurConfig.config.getString("world-settings." + worldName + "." + path, PurpurConfig.config.getString("world-settings.default." + path)); ++ } ++ + private boolean getBoolean(String path, boolean def) { + PurpurConfig.config.addDefault("world-settings.default." + path, def); + return PurpurConfig.config.getBoolean("world-settings." + worldName + "." + path, PurpurConfig.config.getBoolean("world-settings.default." + path)); @@ -342,9 +375,10 @@ index 0000000000000000000000000000000000000000..3cd897d4049323aeda85c89a73a3f50b + return PurpurConfig.config.getList("world-settings." + worldName + "." + path, PurpurConfig.config.getList("world-settings.default." + path)); + } + -+ private String getString(String path, String def) { -+ PurpurConfig.config.addDefault("world-settings.default." + path, def); -+ return PurpurConfig.config.getString("world-settings." + worldName + "." + path, PurpurConfig.config.getString("world-settings.default." + path)); ++ private Map getMap(String path, Map def) { ++ final Map fallback = PurpurConfig.getMap("world-settings.default." + path, def); ++ final Map value = PurpurConfig.getMap("world-settings." + worldName + "." + path, null); ++ return value.isEmpty() ? fallback : value; + } +} diff --git a/src/main/java/net/pl3x/purpur/command/PurpurCommand.java b/src/main/java/net/pl3x/purpur/command/PurpurCommand.java diff --git a/patches/server/0005-Ridables.patch b/patches/server/0005-Ridables.patch index 7604acb4e..b3f1438fb 100644 --- a/patches/server/0005-Ridables.patch +++ b/patches/server/0005-Ridables.patch @@ -4390,7 +4390,7 @@ index af579b2b6f6e18da70e67ce74431a57d9a1236dd..d01a8fe6dd5c84ea5b7370a90c0d5713 this.level.getProfiler().pop(); PiglinBruteAi.updateActivity(this); diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 43bb055f0f9ecb82c25e0f47258f45ce4182a75d..277fac3c160283454da18e003900b5193f82b23a 100644 +index dce94c04d20af637860559c1f27412d151e1b5af..32ae046d573d5625fdb44b690d1e7e229f8aff08 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -155,6 +155,23 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -4526,12 +4526,12 @@ index 69f439851fe1ff07d827eaed274940a5783d5f6c..07853aff3d42ce50799406ee1c14389b Projectile(EntityType type, Level world) { diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 5bc7d1d72847fc200a5bcd19f083e45805546aeb..46e792b67e15e31848a43d7fa2640ebb55cbe2b9 100644 +index 1d76057b1b2dc9f0fc8e3fe5a5f6bfee23128007..f7c46b8173d30192853c875675a1ed0f59170b34 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -127,4 +127,9 @@ public class PurpurConfig { - config.addDefault(path, def); - return config.getString(path, config.getString(path)); +@@ -154,4 +154,9 @@ public class PurpurConfig { + } + return builder.build(); } + + public static String cannotRideMob = "You cannot mount that mob"; @@ -4540,12 +4540,12 @@ index 5bc7d1d72847fc200a5bcd19f083e45805546aeb..46e792b67e15e31848a43d7fa2640ebb + } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 3cd897d4049323aeda85c89a73a3f50bd7b94d58..69f63641f5a2ae3e1579d3171bcb1c5e5b39b969 100644 +index cde76bbcd50993de8b36f8a8fa168bed16708ec0..0c11be83f0da7d05efbd2e277c5f5ae2251a1540 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -82,4 +82,532 @@ public class PurpurWorldConfig { - PurpurConfig.config.addDefault("world-settings.default." + path, def); - return PurpurConfig.config.getString("world-settings." + worldName + "." + path, PurpurConfig.config.getString("world-settings.default." + path)); +@@ -89,4 +89,532 @@ public class PurpurWorldConfig { + final Map value = PurpurConfig.getMap("world-settings." + worldName + "." + path, null); + return value.isEmpty() ? fallback : value; } + + public boolean babiesAreRidable = true; diff --git a/patches/server/0006-Configurable-entity-base-attributes.patch b/patches/server/0006-Configurable-entity-base-attributes.patch index 95cb2b4a9..346e24e31 100644 --- a/patches/server/0006-Configurable-entity-base-attributes.patch +++ b/patches/server/0006-Configurable-entity-base-attributes.patch @@ -491,7 +491,7 @@ index c0d85eb70dbe1d85d07b47a41a43d19506586399..9092eac3e7e15845d14175cad8030f4e @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java -index 919410ce27e7e42e297c2caba7d3d7c1b623aede..790f0940156b9c6d4aa1869a4ab50292faa246c5 100644 +index d91b6951dc25097e6f84296406634e48e1f13404..a580afaa886c04df3caf9037b9b9cf17b92cee7b 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java @@ -125,6 +125,32 @@ public abstract class AbstractHorse extends Animal implements ContainerListener, @@ -589,7 +589,7 @@ index c7b0d6a987644e0b589c143b0b6b68053be04f37..6c6d2ac7551ae24dec88bd9e6bce7aea @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java -index 0671185c358398fe0c4c1dbf4ede2f3e8c4794fb..397d9846ad645f98163a0bfae7a69ceaa6d5c3a4 100644 +index d336e2c63b39b22f9f3a7a84ee059c2d9d71239c..d664be25c2c2c527a44fa939e68e84d60effc144 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java @@ -107,6 +107,21 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { @@ -1390,7 +1390,7 @@ index d01a8fe6dd5c84ea5b7370a90c0d57130b27e447..9e66f8f2a92cb7b32cdb2cf749ca2737 public static AttributeSupplier.Builder createAttributes() { diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 277fac3c160283454da18e003900b5193f82b23a..07686c678cd47defd9e0b742a71fd13e83142870 100644 +index 32ae046d573d5625fdb44b690d1e7e229f8aff08..b7b25813aa00a49fd83edfbade27fa03d7fcd7c5 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -170,6 +170,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -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 69f63641f5a2ae3e1579d3171bcb1c5e5b39b969..36cbaefea53a60c4a7176bf699c03e7cac338976 100644 +index 0c11be83f0da7d05efbd2e277c5f5ae2251a1540..4da9ee5050eb708427e304ad0fd71ca3ab557b3e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -93,257 +93,573 @@ public class PurpurWorldConfig { +@@ -100,257 +100,573 @@ public class PurpurWorldConfig { } public boolean axolotlRidable = false; @@ -1999,7 +1999,7 @@ index 69f63641f5a2ae3e1579d3171bcb1c5e5b39b969..36cbaefea53a60c4a7176bf699c03e7c } public boolean phantomRidable = false; -@@ -352,6 +668,7 @@ public class PurpurWorldConfig { +@@ -359,6 +675,7 @@ public class PurpurWorldConfig { public float phantomFlameDamage = 1.0F; public int phantomFlameFireTime = 8; public boolean phantomAllowGriefing = false; @@ -2007,7 +2007,7 @@ index 69f63641f5a2ae3e1579d3171bcb1c5e5b39b969..36cbaefea53a60c4a7176bf699c03e7c private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -359,255 +676,559 @@ public class PurpurWorldConfig { +@@ -366,255 +683,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/0007-Timings-stuff.patch b/patches/server/0007-Timings-stuff.patch index fc9378c7e..cf3e2611c 100644 --- a/patches/server/0007-Timings-stuff.patch +++ b/patches/server/0007-Timings-stuff.patch @@ -55,10 +55,10 @@ index 9d920565ff65a84b1b9a2a4777fd8bc8f07e0153..33263af33b4355e5079fadfcfae77d03 String hostName = "BrokenHost"; try { diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 46e792b67e15e31848a43d7fa2640ebb55cbe2b9..056f2a94912a549f63744e2afa7d34735a962120 100644 +index f7c46b8173d30192853c875675a1ed0f59170b34..d2d602eda6f2899f809c31aa1082540e1c7855b9 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -132,4 +132,10 @@ public class PurpurConfig { +@@ -159,4 +159,10 @@ public class PurpurConfig { private static void messages() { cannotRideMob = getString("settings.messages.cannot-ride-mob", cannotRideMob); } diff --git a/patches/server/0008-Barrels-and-enderchests-6-rows.patch b/patches/server/0008-Barrels-and-enderchests-6-rows.patch index 943275221..1983c1da0 100644 --- a/patches/server/0008-Barrels-and-enderchests-6-rows.patch +++ b/patches/server/0008-Barrels-and-enderchests-6-rows.patch @@ -142,10 +142,10 @@ index f494063ead9c6303fb3ca880aba2a877ae8d83ab..3b027111ed933856ae86ad5f62aac744 } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 056f2a94912a549f63744e2afa7d34735a962120..be910f7950edcbfcd5c6192ff294166c470149e9 100644 +index d2d602eda6f2899f809c31aa1082540e1c7855b9..727d33bd76a3d10f2bbfb07c18fe74860a34f2f7 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -138,4 +138,23 @@ public class PurpurConfig { +@@ -165,4 +165,23 @@ public class PurpurConfig { timingsUrl = getString("settings.timings.url", timingsUrl); if (!co.aikar.timings.TimingsManager.hiddenConfigs.contains("server-ip")) co.aikar.timings.TimingsManager.hiddenConfigs.add("server-ip"); } diff --git a/patches/server/0011-AFK-API.patch b/patches/server/0011-AFK-API.patch index 8d1ff4fe6..5f48a24ac 100644 --- a/patches/server/0011-AFK-API.patch +++ b/patches/server/0011-AFK-API.patch @@ -177,10 +177,10 @@ index 6a4e44dd8935018d1b5283761dfb8e855be62987..afe70b0d5bd98d05bbb7afc756108f09 if (range < 0.0D || d < range * range) { return true; diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index be910f7950edcbfcd5c6192ff294166c470149e9..64a9288888cd5c008d48d919eb2927670eb35696 100644 +index 727d33bd76a3d10f2bbfb07c18fe74860a34f2f7..58486dcc2b17e64e09f428b5fd0b771646ac09b0 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -129,8 +129,16 @@ public class PurpurConfig { +@@ -156,8 +156,16 @@ public class PurpurConfig { } public static String cannotRideMob = "You cannot mount that mob"; @@ -198,11 +198,11 @@ index be910f7950edcbfcd5c6192ff294166c470149e9..64a9288888cd5c008d48d919eb292767 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 36cbaefea53a60c4a7176bf699c03e7cac338976..1b3ab9fd6a6d094d559e18a1d119e651c411a11e 100644 +index 4da9ee5050eb708427e304ad0fd71ca3ab557b3e..12e3804b2abd61b32a810162bef5e087a7c1d3c6 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -83,6 +83,17 @@ public class PurpurWorldConfig { - return PurpurConfig.config.getString("world-settings." + worldName + "." + path, PurpurConfig.config.getString("world-settings.default." + path)); +@@ -90,6 +90,17 @@ public class PurpurWorldConfig { + return value.isEmpty() ? fallback : value; } + public boolean idleTimeoutKick = true; diff --git a/patches/server/0013-Configurable-server-mod-name.patch b/patches/server/0013-Configurable-server-mod-name.patch index 8ecd4203e..ffe41d25e 100644 --- a/patches/server/0013-Configurable-server-mod-name.patch +++ b/patches/server/0013-Configurable-server-mod-name.patch @@ -18,10 +18,10 @@ index 06177ec182d79cd101da9cd43a841656d27d6d8b..0e0f7d48337f261481731917aabf45d8 public SystemReport fillSystemReport(SystemReport systemreport) { diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 64a9288888cd5c008d48d919eb2927670eb35696..bd8885362ddcad76d055612309257e310ba06718 100644 +index 58486dcc2b17e64e09f428b5fd0b771646ac09b0..0982cfdbe748dbb7c41624efc770ed0cd1c798fa 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -141,6 +141,11 @@ public class PurpurConfig { +@@ -168,6 +168,11 @@ public class PurpurConfig { afkTabListSuffix = getString("settings.messages.afk-tab-list-suffix", afkTabListSuffix); } diff --git a/patches/server/0015-Lagging-threshold.patch b/patches/server/0015-Lagging-threshold.patch index 02eededcf..4396fcf11 100644 --- a/patches/server/0015-Lagging-threshold.patch +++ b/patches/server/0015-Lagging-threshold.patch @@ -25,10 +25,10 @@ index 0e0f7d48337f261481731917aabf45d8445121a0..34e364afff8cfe060244e5dd7cc0c340 } // Tuinity - replace logic diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index bd8885362ddcad76d055612309257e310ba06718..615aa4230ae9eaa2f744dd039390637aaae01a91 100644 +index 0982cfdbe748dbb7c41624efc770ed0cd1c798fa..2744735f6a15f6fd20c2b93b9c5c0422923bec01 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -152,6 +152,11 @@ public class PurpurConfig { +@@ -179,6 +179,11 @@ public class PurpurConfig { if (!co.aikar.timings.TimingsManager.hiddenConfigs.contains("server-ip")) co.aikar.timings.TimingsManager.hiddenConfigs.add("server-ip"); } diff --git a/patches/server/0019-Player-invulnerabilities.patch b/patches/server/0019-Player-invulnerabilities.patch index 5f46b3267..472678679 100644 --- a/patches/server/0019-Player-invulnerabilities.patch +++ b/patches/server/0019-Player-invulnerabilities.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Player invulnerabilities diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 7e94441f543c1961c298d1f8699fac16f11440eb..2b70903b618d00e711f2078fb7cdd92d0d749125 100644 +index cf7945ec299ebbef1d5bb0319f0795b47987bb1a..bc7c87bf1d2f4e6eac9b094bfe111d289bea83f6 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -333,6 +333,7 @@ public class ServerPlayer extends Player { @@ -77,7 +77,7 @@ index af0c7bbce7641f5aa659abb440a6cd6f57019ede..71030d9e156ce28f1ef9e3ed6845f022 this.cserver.getPluginManager().callEvent(new PlayerResourcePackStatusEvent(this.getCraftPlayer(), packStatus)); // CraftBukkit // Paper end diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 5a344f68176bc9dcc31a1d75ada2afa5f1f3b8ce..62ba8ce35dc5827607c99163c6005ea0c4b7ee16 100644 +index ec98fb6d4a407d5be8faf64db0d73e935e16623d..3961f1908876206b86126a672b691bfc571ea2f0 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -991,6 +991,8 @@ public abstract class PlayerList { @@ -90,10 +90,10 @@ index 5a344f68176bc9dcc31a1d75ada2afa5f1f3b8ce..62ba8ce35dc5827607c99163c6005ea0 return entityplayer1; } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 1b3ab9fd6a6d094d559e18a1d119e651c411a11e..2d42f36e9f1ce6bf064588d84ed7ae52563f0e7a 100644 +index 12e3804b2abd61b32a810162bef5e087a7c1d3c6..f3f40ac229cbb48f536423b90b176f501ff0b907 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -87,11 +87,15 @@ public class PurpurWorldConfig { +@@ -94,11 +94,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 bf7bcf9aa..0388f70ce 100644 --- a/patches/server/0021-Configurable-villager-brain-ticks.patch +++ b/patches/server/0021-Configurable-villager-brain-ticks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable villager brain ticks diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 07686c678cd47defd9e0b742a71fd13e83142870..bd6a707962ac4d3961e1ce74570909e29ce4f4dd 100644 +index b7b25813aa00a49fd83edfbade27fa03d7fcd7c5..ed96780ededea9ae98bc0fb60d250587e6bc9854 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -141,6 +141,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -36,10 +36,10 @@ index 07686c678cd47defd9e0b742a71fd13e83142870..bd6a707962ac4d3961e1ce74570909e2 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 2d42f36e9f1ce6bf064588d84ed7ae52563f0e7a..65ca6e4a1c99555842804e5e21415d5f3193d526 100644 +index f3f40ac229cbb48f536423b90b176f501ff0b907..c6e5a08c7770255463ae6c3f50af5d1a2a544251 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1059,6 +1059,8 @@ public class PurpurWorldConfig { +@@ -1066,6 +1066,8 @@ public class PurpurWorldConfig { public boolean villagerRidable = false; public boolean villagerRidableInWater = false; public double villagerMaxHealth = 20.0D; @@ -48,7 +48,7 @@ index 2d42f36e9f1ce6bf064588d84ed7ae52563f0e7a..65ca6e4a1c99555842804e5e21415d5f private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1068,6 +1070,8 @@ public class PurpurWorldConfig { +@@ -1075,6 +1077,8 @@ public class PurpurWorldConfig { set("mobs.villager.attributes.max_health", oldValue); } villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth); diff --git a/patches/server/0022-Alternative-Keepalive-Handling.patch b/patches/server/0022-Alternative-Keepalive-Handling.patch index 37d1dd6f2..59af0598f 100644 --- a/patches/server/0022-Alternative-Keepalive-Handling.patch +++ b/patches/server/0022-Alternative-Keepalive-Handling.patch @@ -56,10 +56,10 @@ index 71030d9e156ce28f1ef9e3ed6845f022a62dfdaf..db8a8e81054e91161d43515fb19ab010 if (this.keepAlivePending && packet.getId() == this.keepAliveChallenge) { int i = (int) (Util.getMillis() - this.keepAliveTime); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 615aa4230ae9eaa2f744dd039390637aaae01a91..21e6157f85bb8b793a3e8d5e15e2045a1a6a057a 100644 +index 2744735f6a15f6fd20c2b93b9c5c0422923bec01..772fe2509cf2e421b2e9279e6b159e95cf8fc4ae 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -157,6 +157,11 @@ public class PurpurConfig { +@@ -184,6 +184,11 @@ public class PurpurConfig { laggingThreshold = getDouble("settings.lagging-threshold", laggingThreshold); } diff --git a/patches/server/0023-Silk-touch-spawners.patch b/patches/server/0023-Silk-touch-spawners.patch index eab84f696..9e96defa6 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 65ca6e4a1c99555842804e5e21415d5f3193d526..342bfb84a98292f50373fc3dd288fe37b9ba2eea 100644 +index c6e5a08c7770255463ae6c3f50af5d1a2a544251..84d5bf71d6eff746df8b5acdd876609411e31d30 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -98,6 +98,31 @@ public class PurpurWorldConfig { +@@ -105,6 +105,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 c1bb33f12..d474cafd7 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 342bfb84a98292f50373fc3dd288fe37b9ba2eea..302539a1ecf0ffe6dcae52bdd48565def3c637c1 100644 +index 84d5bf71d6eff746df8b5acdd876609411e31d30..aa511364fc48aa78b38a730ed8f0c3fb5453759c 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1054,7 +1054,10 @@ public class PurpurWorldConfig { +@@ -1061,7 +1061,10 @@ public class PurpurWorldConfig { public boolean turtleRidable = false; public boolean turtleRidableInWater = false; public double turtleMaxHealth = 30.0D; @@ -65,7 +65,7 @@ index 342bfb84a98292f50373fc3dd288fe37b9ba2eea..302539a1ecf0ffe6dcae52bdd48565de turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1063,6 +1066,9 @@ public class PurpurWorldConfig { +@@ -1070,6 +1073,9 @@ public class PurpurWorldConfig { set("mobs.turtle.attributes.max_health", oldValue); } turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth); diff --git a/patches/server/0026-Logger-settings-suppressing-pointless-logs.patch b/patches/server/0026-Logger-settings-suppressing-pointless-logs.patch index cf287a5ab..5009bd915 100644 --- a/patches/server/0026-Logger-settings-suppressing-pointless-logs.patch +++ b/patches/server/0026-Logger-settings-suppressing-pointless-logs.patch @@ -17,10 +17,10 @@ index 7d6dc0a8ee35274052b122bbc446bc54750de0a6..c46df052a5a39d92688f51377ee1f7b5 } // CraftBukkit end diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 21e6157f85bb8b793a3e8d5e15e2045a1a6a057a..8bfecd58ad2f1e6657414c9620fcd85c7f012ae4 100644 +index 772fe2509cf2e421b2e9279e6b159e95cf8fc4ae..e425f660e93db4186a9d0ef3f43137667d5ecd4f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -180,4 +180,11 @@ public class PurpurConfig { +@@ -207,4 +207,11 @@ public class PurpurConfig { org.bukkit.event.inventory.InventoryType.ENDER_CHEST.setDefaultSize(enderChestSixRows ? 54 : 27); enderChestPermissionRows = getBoolean("settings.blocks.ender_chest.use-permissions-for-rows", enderChestPermissionRows); } diff --git a/patches/server/0028-Giants-AI-settings.patch b/patches/server/0028-Giants-AI-settings.patch index 8881db223..3d7c64845 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 302539a1ecf0ffe6dcae52bdd48565def3c637c1..20b2888e9cca71931bacb27f7c1c3a25d2b4680f 100644 +index aa511364fc48aa78b38a730ed8f0c3fb5453759c..57f361750cbec0558fd39c1bb9bbc6878918bfbf 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -443,6 +443,10 @@ public class PurpurWorldConfig { +@@ -450,6 +450,10 @@ public class PurpurWorldConfig { public double giantMovementSpeed = 0.5D; public double giantAttackDamage = 50.0D; public double giantMaxHealth = 100.0D; @@ -134,7 +134,7 @@ index 302539a1ecf0ffe6dcae52bdd48565def3c637c1..20b2888e9cca71931bacb27f7c1c3a25 private void giantSettings() { giantRidable = getBoolean("mobs.giant.ridable", giantRidable); giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater); -@@ -458,6 +462,10 @@ public class PurpurWorldConfig { +@@ -465,6 +469,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 af104037c..e0dc08206 100644 --- a/patches/server/0029-Zombie-horse-naturally-spawn.patch +++ b/patches/server/0029-Zombie-horse-naturally-spawn.patch @@ -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 20b2888e9cca71931bacb27f7c1c3a25d2b4680f..a9f3ab3a505535581e75df5d3184f0d54e229983 100644 +index 57f361750cbec0558fd39c1bb9bbc6878918bfbf..5ccc74cc292d72e1d90ae3841c826c02a2c37447 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1241,6 +1241,7 @@ public class PurpurWorldConfig { +@@ -1248,6 +1248,7 @@ public class PurpurWorldConfig { public double zombieHorseJumpStrengthMax = 1.0D; public double zombieHorseMovementSpeedMin = 0.2D; public double zombieHorseMovementSpeedMax = 0.2D; @@ -53,7 +53,7 @@ index 20b2888e9cca71931bacb27f7c1c3a25d2b4680f..a9f3ab3a505535581e75df5d3184f0d5 private void zombieHorseSettings() { zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim); -@@ -1256,6 +1257,7 @@ public class PurpurWorldConfig { +@@ -1263,6 +1264,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 573427acb..a36320d3e 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 a9f3ab3a505535581e75df5d3184f0d54e229983..a5d1b872a557a13f58f27d0289027d48a97f9da2 100644 +index 5ccc74cc292d72e1d90ae3841c826c02a2c37447..d40a83d760641feb2fe4e23a51ace710325a2c9d 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -265,6 +265,7 @@ public class PurpurWorldConfig { +@@ -272,6 +272,7 @@ public class PurpurWorldConfig { public boolean creeperRidable = false; public boolean creeperRidableInWater = false; public double creeperMaxHealth = 20.0D; @@ -35,7 +35,7 @@ index a9f3ab3a505535581e75df5d3184f0d54e229983..a5d1b872a557a13f58f27d0289027d48 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -274,6 +275,7 @@ public class PurpurWorldConfig { +@@ -281,6 +282,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 440ed55f3..1398a8b75 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 a5d1b872a557a13f58f27d0289027d48a97f9da2..0419865e00cdaa0460a1e5eebbb35ec8df1e95c4 100644 +index d40a83d760641feb2fe4e23a51ace710325a2c9d..26d706f7cb814000196b251479f668385b53205d 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -819,6 +819,8 @@ public class PurpurWorldConfig { +@@ -826,6 +826,8 @@ public class PurpurWorldConfig { public boolean rabbitRidable = false; public boolean rabbitRidableInWater = false; public double rabbitMaxHealth = 3.0D; @@ -50,7 +50,7 @@ index a5d1b872a557a13f58f27d0289027d48a97f9da2..0419865e00cdaa0460a1e5eebbb35ec8 private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -828,6 +830,8 @@ public class PurpurWorldConfig { +@@ -835,6 +837,8 @@ public class PurpurWorldConfig { set("mobs.rabbit.attributes.max_health", oldValue); } rabbitMaxHealth = getDouble("mobs.rabbit.attributes.max_health", rabbitMaxHealth); diff --git a/patches/server/0033-Dont-send-useless-entity-packets.patch b/patches/server/0033-Dont-send-useless-entity-packets.patch index ed66a0b18..3c074a0cd 100644 --- a/patches/server/0033-Dont-send-useless-entity-packets.patch +++ b/patches/server/0033-Dont-send-useless-entity-packets.patch @@ -40,10 +40,10 @@ index a00627e0fa38632449042f59c053b4dac13e58bf..8218a074cdbe9df514f4de5aefd3c266 this.entity.stopSeenByPlayer(player); player.connection.send(new ClientboundRemoveEntityPacket(this.entity.getId())); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 8bfecd58ad2f1e6657414c9620fcd85c7f012ae4..09f1d0355f0dabbf742cdef544ae630666b455fb 100644 +index e425f660e93db4186a9d0ef3f43137667d5ecd4f..4fd18a3d1d8d72d42e14de2b59c2564a18721709 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -181,6 +181,11 @@ public class PurpurConfig { +@@ -208,6 +208,11 @@ public class PurpurConfig { enderChestPermissionRows = getBoolean("settings.blocks.ender_chest.use-permissions-for-rows", enderChestPermissionRows); } diff --git a/patches/server/0034-Tulips-change-fox-type.patch b/patches/server/0034-Tulips-change-fox-type.patch index 4ca17061c..3ad6c34ab 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 0419865e00cdaa0460a1e5eebbb35ec8df1e95c4..581c1853725d9cffc29885402a36a45e8b313e5d 100644 +index 26d706f7cb814000196b251479f668385b53205d..f52adabf70056ee282ca9640b20ad2bd8e9347e4 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -413,6 +413,7 @@ public class PurpurWorldConfig { +@@ -420,6 +420,7 @@ public class PurpurWorldConfig { public boolean foxRidable = false; public boolean foxRidableInWater = false; public double foxMaxHealth = 10.0D; @@ -86,7 +86,7 @@ index 0419865e00cdaa0460a1e5eebbb35ec8df1e95c4..581c1853725d9cffc29885402a36a45e private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -422,6 +423,7 @@ public class PurpurWorldConfig { +@@ -429,6 +430,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 22795864e..7794e90ee 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 581c1853725d9cffc29885402a36a45e8b313e5d..3b9f366fbb5e96b0b6be616b9184ba5e58c4a9f0 100644 +index f52adabf70056ee282ca9640b20ad2bd8e9347e4..4a2e4b82d5693e7e73fb9722aa4a09af13f61149 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -795,6 +795,8 @@ public class PurpurWorldConfig { +@@ -802,6 +802,8 @@ public class PurpurWorldConfig { public boolean polarBearRidable = false; public boolean polarBearRidableInWater = false; public double polarBearMaxHealth = 30.0D; @@ -71,7 +71,7 @@ index 581c1853725d9cffc29885402a36a45e8b313e5d..3b9f366fbb5e96b0b6be616b9184ba5e private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -804,6 +806,9 @@ public class PurpurWorldConfig { +@@ -811,6 +813,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 c4f9e17fa..0522b7e50 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 3b9f366fbb5e96b0b6be616b9184ba5e58c4a9f0..1153271f5e3dab623563c697bff563614f12404b 100644 +index 4a2e4b82d5693e7e73fb9722aa4a09af13f61149..321343f7bdb807f42d9529eeaa739110db496e50 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -225,6 +225,7 @@ public class PurpurWorldConfig { +@@ -232,6 +232,7 @@ public class PurpurWorldConfig { public boolean chickenRidable = false; public boolean chickenRidableInWater = false; public double chickenMaxHealth = 4.0D; @@ -62,7 +62,7 @@ index 3b9f366fbb5e96b0b6be616b9184ba5e58c4a9f0..1153271f5e3dab623563c697bff56361 private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -234,6 +235,7 @@ public class PurpurWorldConfig { +@@ -241,6 +242,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 7903b50a1..6a7837a0d 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,11 +17,11 @@ 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 631b7dccb648fdb12b7e7232403cac47b90d9125..41e3342f37c2b55655b01281c6411ec6dc94f336 100644 +index 321343f7bdb807f42d9529eeaa739110db496e50..2cd98ff6adad2ea8b9c3a46b59c8e162474f4375 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -83,6 +83,11 @@ public class PurpurWorldConfig { - return PurpurConfig.config.getString("world-settings." + worldName + "." + path, PurpurConfig.config.getString("world-settings.default." + path)); +@@ -90,6 +90,11 @@ public class PurpurWorldConfig { + return value.isEmpty() ? fallback : value; } + public float armorstandStepHeight = 0.0F; diff --git a/patches/server/0038-Cat-spawning-options.patch b/patches/server/0038-Cat-spawning-options.patch index cc2e84f48..7098e07d6 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 316fe00962caa5951a3dccb79f4745d3ab4eba22..5cea174102d346a66dafcbd9c1b524bde53d5168 100644 +index 2cd98ff6adad2ea8b9c3a46b59c8e162474f4375..def1c09fdefee27d6f1022eef979071109af4061 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -202,6 +202,9 @@ public class PurpurWorldConfig { +@@ -209,6 +209,9 @@ public class PurpurWorldConfig { public boolean catRidable = false; public boolean catRidableInWater = false; public double catMaxHealth = 10.0D; @@ -62,7 +62,7 @@ index 316fe00962caa5951a3dccb79f4745d3ab4eba22..5cea174102d346a66dafcbd9c1b524bd private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -211,6 +214,9 @@ public class PurpurWorldConfig { +@@ -218,6 +221,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 06b922746..f03b34d50 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 5cea174102d346a66dafcbd9c1b524bde53d5168..876fc6694f4116772bb6bf1c2249b8981f945f51 100644 +index def1c09fdefee27d6f1022eef979071109af4061..9b3698f9ced1c88ab8a8495bfe55225be191c3a1 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -264,6 +264,7 @@ public class PurpurWorldConfig { +@@ -271,6 +271,7 @@ public class PurpurWorldConfig { public boolean cowRidable = false; public boolean cowRidableInWater = false; public double cowMaxHealth = 10.0D; @@ -125,7 +125,7 @@ index 5cea174102d346a66dafcbd9c1b524bde53d5168..876fc6694f4116772bb6bf1c2249b898 private void cowSettings() { cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); -@@ -273,6 +274,7 @@ public class PurpurWorldConfig { +@@ -280,6 +281,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 b179d1126..6f75d0ce5 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 876fc6694f4116772bb6bf1c2249b8981f945f51..b24f63db425608772d18f956fe3245510b2e2d5b 100644 +index 9b3698f9ced1c88ab8a8495bfe55225be191c3a1..7f465785f21bfb98a0ee7917811d79cbab90defa 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -754,6 +754,7 @@ public class PurpurWorldConfig { +@@ -761,6 +761,7 @@ public class PurpurWorldConfig { public boolean pigRidable = false; public boolean pigRidableInWater = false; public double pigMaxHealth = 10.0D; @@ -39,7 +39,7 @@ index 876fc6694f4116772bb6bf1c2249b8981f945f51..b24f63db425608772d18f956fe324551 private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -763,6 +764,7 @@ public class PurpurWorldConfig { +@@ -770,6 +771,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 30f95a02e..97de150a7 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 b24f63db425608772d18f956fe3245510b2e2d5b..9e6228f51d4f9a381537389e55bb60670d3359b7 100644 +index 7f465785f21bfb98a0ee7917811d79cbab90defa..091629e631dca35f1aff23afe1dab32627689aee 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -985,6 +985,8 @@ public class PurpurWorldConfig { +@@ -992,6 +992,8 @@ public class PurpurWorldConfig { public boolean snowGolemRidableInWater = false; public boolean snowGolemLeaveTrailWhenRidden = false; public double snowGolemMaxHealth = 4.0D; @@ -44,7 +44,7 @@ index b24f63db425608772d18f956fe3245510b2e2d5b..9e6228f51d4f9a381537389e55bb6067 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -995,6 +997,8 @@ public class PurpurWorldConfig { +@@ -1002,6 +1004,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 b86b6b414..834e05664 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 9e6228f51d4f9a381537389e55bb60670d3359b7..9eedfb6293d56d8d9bc1ce108d7ef9a347748b92 100644 +index 091629e631dca35f1aff23afe1dab32627689aee..22e2beff55aa0fc6f8c4d6d8a6491b3a5e87e795 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 { +@@ -374,6 +374,7 @@ public class PurpurWorldConfig { public boolean enderDragonRidableInWater = false; public double enderDragonMaxY = 256D; public double enderDragonMaxHealth = 200.0D; @@ -29,7 +29,7 @@ index 9e6228f51d4f9a381537389e55bb60670d3359b7..9eedfb6293d56d8d9bc1ce108d7ef9a3 private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -381,6 +382,7 @@ public class PurpurWorldConfig { +@@ -388,6 +389,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 8e71c5338..c51b58c0b 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 9eedfb6293d56d8d9bc1ce108d7ef9a347748b92..530a6887900202340217e6b2f0db495e774881e8 100644 +index 22e2beff55aa0fc6f8c4d6d8a6491b3a5e87e795..7a794f951ba01f3b9e6b64c15eb6b265a3dce6ad 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -128,6 +128,11 @@ public class PurpurWorldConfig { +@@ -135,6 +135,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 a1b9259b3..8856530a1 100644 --- a/patches/server/0046-Signs-allow-color-codes.patch +++ b/patches/server/0046-Signs-allow-color-codes.patch @@ -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 530a6887900202340217e6b2f0db495e774881e8..11c4716dea2d944402330c525d9bd53b23a8e74f 100644 +index 7a794f951ba01f3b9e6b64c15eb6b265a3dce6ad..889760ed74af23f51415b92b42600a02145c38c8 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -128,8 +128,10 @@ public class PurpurWorldConfig { +@@ -135,8 +135,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 09d1bddf1..fc44da2dd 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 11c4716dea2d944402330c525d9bd53b23a8e74f..cc68e6dae4892d8d2efda3dbd9b433601338b6fa 100644 +index 889760ed74af23f51415b92b42600a02145c38c8..8b086b7cc7aa5ab001d5dfb840ca8146692152a6 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -128,6 +128,11 @@ public class PurpurWorldConfig { +@@ -135,6 +135,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 afff231cb..d80ff8146 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 373a0e9cb219a9ec3236771a28ba522a9cc452c3..182b9e850be72b72636d03c4d303fb264ca875f6 100644 +index eeec7eeb8c4ae0152e028e7a9859310f7351c313..056b679cab7fe660d4a9b8bf782674fb210dd8bb 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -986,6 +986,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 89d090233a42f7d53bcd6376a5a4b0eb2f592952..95d03cb21bdedf595df8aee46ff1ace6323b6a67 100644 +index 8b086b7cc7aa5ab001d5dfb840ca8146692152a6..9bf5e19912e39dd92cc868419ee28c2ea83d2be1 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -88,6 +88,68 @@ public class PurpurWorldConfig { +@@ -95,6 +95,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 42272e562..1183f541a 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 3c517e22d7882dbb4c156e11d7854add27c57a11..687402ae1949b99f78826be8d549e943230ab55f 100644 +index 9bf5e19912e39dd92cc868419ee28c2ea83d2be1..da2e7d146029d36472de7800c42fb5d72252da3a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -190,6 +190,11 @@ public class PurpurWorldConfig { +@@ -197,6 +197,11 @@ public class PurpurWorldConfig { }); } 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 f39f119a7..cca194f5f 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 687402ae1949b99f78826be8d549e943230ab55f..085549acf40b26f94098077dd90f2c1d4be2e87e 100644 +index da2e7d146029d36472de7800c42fb5d72252da3a..a692550385262523e71427b7eda3939e44ad0de5 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -191,8 +191,10 @@ public class PurpurWorldConfig { +@@ -198,8 +198,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 8806ef563..f11e67097 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 085549acf40b26f94098077dd90f2c1d4be2e87e..d8cd35bd0e52698e4fbd7e8dbab8258dfe6ede82 100644 +index a692550385262523e71427b7eda3939e44ad0de5..eac5609b34e73d3cbfa88b43b3544ca3ccd4cb48 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1295,6 +1295,7 @@ public class PurpurWorldConfig { +@@ -1302,6 +1302,7 @@ public class PurpurWorldConfig { public boolean witherSkeletonRidable = false; public boolean witherSkeletonRidableInWater = false; public double witherSkeletonMaxHealth = 20.0D; @@ -28,7 +28,7 @@ index 085549acf40b26f94098077dd90f2c1d4be2e87e..d8cd35bd0e52698e4fbd7e8dbab8258d private void witherSkeletonSettings() { witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable); witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater); -@@ -1304,6 +1305,7 @@ public class PurpurWorldConfig { +@@ -1311,6 +1312,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/0057-Configurable-TPS-Catchup.patch b/patches/server/0057-Configurable-TPS-Catchup.patch index 0fea2d351..b84dfd74f 100644 --- a/patches/server/0057-Configurable-TPS-Catchup.patch +++ b/patches/server/0057-Configurable-TPS-Catchup.patch @@ -24,10 +24,10 @@ index 34e364afff8cfe060244e5dd7cc0c34033dc6945..c5f1141d46acca284f5489d68d3b628e this.profiler.pop(); this.endMetricsRecordingTick(); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 09f1d0355f0dabbf742cdef544ae630666b455fb..f85849c637c338d42aa6f8d5f96b189113658422 100644 +index 4fd18a3d1d8d72d42e14de2b59c2564a18721709..db9c33cc36099fb6b203a5526b6399ca3a067d83 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -192,4 +192,9 @@ public class PurpurConfig { +@@ -219,4 +219,9 @@ public class PurpurConfig { loggerSuppressInitLegacyMaterialError = getBoolean("settings.logger.suppress-init-legacy-material-errors", loggerSuppressInitLegacyMaterialError); loggerSuppressIgnoredAdvancementWarnings = getBoolean("settings.logger.suppress-ignored-advancement-warnings", loggerSuppressIgnoredAdvancementWarnings); } 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 a7156c5d3..bf96d98de 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 d8cd35bd0e52698e4fbd7e8dbab8258dfe6ede82..ea1b04f44d15af4651fc068c5c514d82566e4d49 100644 +index eac5609b34e73d3cbfa88b43b3544ca3ccd4cb48..3d6d92986ab14d85cab4c35040bad47ca3c01caa 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -192,9 +192,11 @@ public class PurpurWorldConfig { +@@ -199,9 +199,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 c07b2fafc..fc98bd941 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 ea1b04f44d15af4651fc068c5c514d82566e4d49..503a6cddf4b652544ea884a6e8cb78c2fb8658a2 100644 +index 3d6d92986ab14d85cab4c35040bad47ca3c01caa..307b955876e8b7517f68b1fd581fb2dd3e3edae0 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -364,6 +364,7 @@ public class PurpurWorldConfig { +@@ -371,6 +371,7 @@ public class PurpurWorldConfig { public boolean creeperRidableInWater = false; public double creeperMaxHealth = 20.0D; public double creeperChargedChance = 0.0D; @@ -49,7 +49,7 @@ index ea1b04f44d15af4651fc068c5c514d82566e4d49..503a6cddf4b652544ea884a6e8cb78c2 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -374,6 +375,7 @@ public class PurpurWorldConfig { +@@ -381,6 +382,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 ea1b04f44d15af4651fc068c5c514d82566e4d49..503a6cddf4b652544ea884a6e8cb78c2 } public boolean dolphinRidable = false; -@@ -471,6 +473,7 @@ public class PurpurWorldConfig { +@@ -478,6 +480,7 @@ public class PurpurWorldConfig { public boolean endermanRidable = false; public boolean endermanRidableInWater = false; public double endermanMaxHealth = 40.0D; @@ -65,7 +65,7 @@ index ea1b04f44d15af4651fc068c5c514d82566e4d49..503a6cddf4b652544ea884a6e8cb78c2 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -480,6 +483,7 @@ public class PurpurWorldConfig { +@@ -487,6 +490,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 e15f9934e..8c8e66c08 100644 --- a/patches/server/0060-Villagers-follow-emerald-blocks.patch +++ b/patches/server/0060-Villagers-follow-emerald-blocks.patch @@ -17,7 +17,7 @@ index e59a77c80a1bbe62aaa61bd4792d21b12c895a5c..44e9d6d0b80203b152957efef953c2fa // CraftBukkit start private CraftMerchant craftMerchant; diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index bd6a707962ac4d3961e1ce74570909e29ce4f4dd..8fd1371f7931a97f6663914dc8780c5c9ed296f5 100644 +index ed96780ededea9ae98bc0fb60d250587e6bc9854..9e13eda42c781b6f95b63d58d775bb22cbd87a96 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -171,6 +171,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -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 503a6cddf4b652544ea884a6e8cb78c2fb8658a2..1a77066e85fd68af98126d3030649510fc6dccee 100644 +index 307b955876e8b7517f68b1fd581fb2dd3e3edae0..0b6d19d310993cf697cb546c33efb359bb60c4a6 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1223,6 +1223,7 @@ public class PurpurWorldConfig { +@@ -1230,6 +1230,7 @@ public class PurpurWorldConfig { public double villagerMaxHealth = 20.0D; public int villagerBrainTicks = 1; public boolean villagerUseBrainTicksOnlyWhenLagging = true; @@ -52,7 +52,7 @@ index 503a6cddf4b652544ea884a6e8cb78c2fb8658a2..1a77066e85fd68af98126d3030649510 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1234,6 +1235,7 @@ public class PurpurWorldConfig { +@@ -1241,6 +1242,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 503a6cddf4b652544ea884a6e8cb78c2fb8658a2..1a77066e85fd68af98126d3030649510 } public boolean vindicatorRidable = false; -@@ -1253,6 +1255,7 @@ public class PurpurWorldConfig { +@@ -1260,6 +1262,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderRidable = false; public boolean wanderingTraderRidableInWater = false; public double wanderingTraderMaxHealth = 20.0D; @@ -68,7 +68,7 @@ index 503a6cddf4b652544ea884a6e8cb78c2fb8658a2..1a77066e85fd68af98126d3030649510 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -1262,6 +1265,7 @@ public class PurpurWorldConfig { +@@ -1269,6 +1272,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 179625bc5..7f43e0817 100644 --- a/patches/server/0061-Allow-leashing-villagers.patch +++ b/patches/server/0061-Allow-leashing-villagers.patch @@ -17,7 +17,7 @@ index c35c5d58523be370732a19c52db4f8e94c88b12f..e07fbf6ba955a6c80ebf64db4d0f73f2 // Paper start - drop leash variable org.bukkit.event.player.PlayerUnleashEntityEvent event = CraftEventFactory.callPlayerUnleashEntityEvent(this, player, !player.getAbilities().instabuild); diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 8fd1371f7931a97f6663914dc8780c5c9ed296f5..52a592e569d020dca45916be7b5fad28c9d480de 100644 +index 9e13eda42c781b6f95b63d58d775bb22cbd87a96..e903fe670e50ff34187994d36a2d875d5f51bdb6 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -178,6 +178,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -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 1a77066e85fd68af98126d3030649510fc6dccee..c87fb386006003123c23d50b0f3f899820fad857 100644 +index 0b6d19d310993cf697cb546c33efb359bb60c4a6..e9b1939f69f3bc28e77647c534350f1deda6d8d5 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1224,6 +1224,7 @@ public class PurpurWorldConfig { +@@ -1231,6 +1231,7 @@ public class PurpurWorldConfig { public int villagerBrainTicks = 1; public boolean villagerUseBrainTicksOnlyWhenLagging = true; public boolean villagerFollowEmeraldBlock = false; @@ -60,7 +60,7 @@ index 1a77066e85fd68af98126d3030649510fc6dccee..c87fb386006003123c23d50b0f3f8998 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1236,6 +1237,7 @@ public class PurpurWorldConfig { +@@ -1243,6 +1244,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 1a77066e85fd68af98126d3030649510fc6dccee..c87fb386006003123c23d50b0f3f8998 } public boolean vindicatorRidable = false; -@@ -1256,6 +1258,7 @@ public class PurpurWorldConfig { +@@ -1263,6 +1265,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderRidableInWater = false; public double wanderingTraderMaxHealth = 20.0D; public boolean wanderingTraderFollowEmeraldBlock = false; @@ -76,7 +76,7 @@ index 1a77066e85fd68af98126d3030649510fc6dccee..c87fb386006003123c23d50b0f3f8998 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -1266,6 +1269,7 @@ public class PurpurWorldConfig { +@@ -1273,6 +1276,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 7f535de61..9feef327a 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 @@ -6,7 +6,7 @@ Subject: [PATCH] Implement configurable search radius for villagers to spawn diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 52a592e569d020dca45916be7b5fad28c9d480de..5e100dbdbd6cfb4aa34b0d6b1ce0913899f60b7c 100644 +index e903fe670e50ff34187994d36a2d875d5f51bdb6..3865f16e027307f5b8b2a5617b66ffd8b9f85c60 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -1033,6 +1033,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -18,10 +18,10 @@ index 52a592e569d020dca45916be7b5fad28c9d480de..5e100dbdbd6cfb4aa34b0d6b1ce09138 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 c87fb386006003123c23d50b0f3f899820fad857..8c400b11734f541c683186072f80c89c5f93093b 100644 +index e9b1939f69f3bc28e77647c534350f1deda6d8d5..67a4608aa553bc6e3c42c9e30cd1157bb82930f2 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1225,6 +1225,8 @@ public class PurpurWorldConfig { +@@ -1232,6 +1232,8 @@ public class PurpurWorldConfig { public boolean villagerUseBrainTicksOnlyWhenLagging = true; public boolean villagerFollowEmeraldBlock = false; public boolean villagerCanBeLeashed = false; @@ -30,7 +30,7 @@ index c87fb386006003123c23d50b0f3f899820fad857..8c400b11734f541c683186072f80c89c private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1238,6 +1240,8 @@ public class PurpurWorldConfig { +@@ -1245,6 +1247,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 9e0e8e0f6..4c0c3160d 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 8c400b11734f541c683186072f80c89c5f93093b..9cd572048951bb6be33bf86959ad8162780ecdbf 100644 +index 67a4608aa553bc6e3c42c9e30cd1157bb82930f2..d37d9dabe054185ceb40f7a7a1471099692fce1f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -204,6 +204,13 @@ public class PurpurWorldConfig { +@@ -211,6 +211,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 12c871921..37f078f8c 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 9cd572048951bb6be33bf86959ad8162780ecdbf..3aa045fd27de4a38cf90549e102258cc92a9ea12 100644 +index d37d9dabe054185ceb40f7a7a1471099692fce1f..abb50517868f17dba2d3f69bb97cc150b95047fa 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -206,9 +206,13 @@ public class PurpurWorldConfig { +@@ -213,9 +213,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 a151d3260..a0c03cc6e 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 2a2803a8c31f7779bd3bfd666885b8e8bbfc838b..7b3f7ef0df0d0c79c9d133632c57607fa4f3a494 100644 +index abb50517868f17dba2d3f69bb97cc150b95047fa..346c6048e0c7b72b14b2001a9071b56b4b0f37d2 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -156,6 +156,8 @@ public class PurpurWorldConfig { +@@ -163,6 +163,8 @@ public class PurpurWorldConfig { public boolean idleTimeoutUpdateTabList = false; public int playerSpawnInvulnerableTicks = 60; public boolean playerInvulnerableWhileAcceptingResourcePack = false; @@ -43,7 +43,7 @@ index 2a2803a8c31f7779bd3bfd666885b8e8bbfc838b..7b3f7ef0df0d0c79c9d133632c57607f 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); -@@ -163,6 +165,8 @@ public class PurpurWorldConfig { +@@ -170,6 +172,8 @@ 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/0066-Configurable-void-damage-height-and-damage.patch b/patches/server/0066-Configurable-void-damage-height-and-damage.patch index b5043290b..87fe700da 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 90f126acb69c4017753816f1cd3d4b2bd25b2f89..dc3eb512777f66c4f7fceb30c9b304f9fa29fbdb 100644 +index 346c6048e0c7b72b14b2001a9071b56b4b0f37d2..1decce49172573c4c5cbd8272c64483382feb09d 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -197,10 +197,14 @@ public class PurpurWorldConfig { +@@ -204,10 +204,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 dd3e2e618..fdbc650a1 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 dc3eb512777f66c4f7fceb30c9b304f9fa29fbdb..2010a7a7418d19aec51af7de102dd42eb4542a47 100644 +index 1decce49172573c4c5cbd8272c64483382feb09d..4dad41b88b5762bc9f93313558f37c3a1f078305 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -207,6 +207,11 @@ public class PurpurWorldConfig { +@@ -214,6 +214,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 4ce4b11f2..2f8565db5 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 2010a7a7418d19aec51af7de102dd42eb4542a47..24bacb54f53794862adc717004402318267d337b 100644 +index 4dad41b88b5762bc9f93313558f37c3a1f078305..a0365a7b10bb77f514437f7056c7a501b565382c 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -194,12 +194,14 @@ public class PurpurWorldConfig { +@@ -201,12 +201,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 8423f95f6..39d3e0ece 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 24bacb54f53794862adc717004402318267d337b..453b3d2758ce9b1b8c1d12524befc868b56f2cc6 100644 +index a0365a7b10bb77f514437f7056c7a501b565382c..19eb2faa78ea974d7d8e31bc35956aba15214e4c 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -194,6 +194,7 @@ public class PurpurWorldConfig { +@@ -201,6 +201,7 @@ public class PurpurWorldConfig { }); } @@ -84,7 +84,7 @@ index 24bacb54f53794862adc717004402318267d337b..453b3d2758ce9b1b8c1d12524befc868 public boolean boatEjectPlayersOnLand = false; public boolean disableDropsOnCrammingDeath = false; public boolean milkCuresBadOmen = true; -@@ -201,6 +202,7 @@ public class PurpurWorldConfig { +@@ -208,6 +209,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 c99f476a5..b9c7276e0 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 f3408e38ab06c60f3369b5795bed6d9efd53fe0f..de8e853a34738ab09d887361f9e60cfb7a726ce2 100644 +index 19eb2faa78ea974d7d8e31bc35956aba15214e4c..782f59ae094bac5c7c86b5c21418e9a7383d3226 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -88,6 +88,19 @@ public class PurpurWorldConfig { +@@ -95,6 +95,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 259dd2e3e..546e210f9 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 de8e853a34738ab09d887361f9e60cfb7a726ce2..572db67801321091942bb88bbdd1416ec9864d9c 100644 +index 782f59ae094bac5c7c86b5c21418e9a7383d3226..1804be45445fee8ba4e30950792693ff47eca9a8 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -101,6 +101,49 @@ public class PurpurWorldConfig { +@@ -108,6 +108,49 @@ public class PurpurWorldConfig { elytraDamagePerTridentBoost = getInt("gameplay-mechanics.elytra.damage-per-boost.trident", elytraDamagePerTridentBoost); } diff --git a/patches/server/0074-Add-ping-command.patch b/patches/server/0074-Add-ping-command.patch index 829948d98..e56041ab4 100644 --- a/patches/server/0074-Add-ping-command.patch +++ b/patches/server/0074-Add-ping-command.patch @@ -17,10 +17,10 @@ index d478627dcd2b6e3d3d95b3fa224a25d44e6bbafb..158fc5748f175708a0c3415a2217663f if (environment.includeIntegrated) { diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index f85849c637c338d42aa6f8d5f96b189113658422..e4031bdfca9cfd1b54d13187f276b15c640dea88 100644 +index db9c33cc36099fb6b203a5526b6399ca3a067d83..ce6ae54b8739d699b756bb8b46180cebd6fe353e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -133,12 +133,14 @@ public class PurpurConfig { +@@ -160,12 +160,14 @@ public class PurpurConfig { public static String afkBroadcastBack = "%s is no longer AFK"; public static String afkTabListPrefix = "[AFK] "; public static String afkTabListSuffix = ""; diff --git a/patches/server/0075-Add-demo-command.patch b/patches/server/0075-Add-demo-command.patch index dab529e68..5c67b9287 100644 --- a/patches/server/0075-Add-demo-command.patch +++ b/patches/server/0075-Add-demo-command.patch @@ -17,10 +17,10 @@ index 158fc5748f175708a0c3415a2217663f77271bc7..9cbaaf4cd138e6c1d2d51afcef24a81a } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index e4031bdfca9cfd1b54d13187f276b15c640dea88..47c71cf5793c8e0c72795effeb189c46f29d6a41 100644 +index ce6ae54b8739d699b756bb8b46180cebd6fe353e..e831b4dbf5dd702acc531a2ca7ee7068dff91408 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -133,6 +133,7 @@ public class PurpurConfig { +@@ -160,6 +160,7 @@ public class PurpurConfig { public static String afkBroadcastBack = "%s is no longer AFK"; public static String afkTabListPrefix = "[AFK] "; public static String afkTabListSuffix = ""; @@ -28,7 +28,7 @@ index e4031bdfca9cfd1b54d13187f276b15c640dea88..47c71cf5793c8e0c72795effeb189c46 public static String pingCommandOutput = "%s's ping is %sms"; private static void messages() { cannotRideMob = getString("settings.messages.cannot-ride-mob", cannotRideMob); -@@ -140,6 +141,7 @@ public class PurpurConfig { +@@ -167,6 +168,7 @@ public class PurpurConfig { afkBroadcastBack = getString("settings.messages.afk-broadcast-back", afkBroadcastBack); afkTabListPrefix = getString("settings.messages.afk-tab-list-prefix", afkTabListPrefix); afkTabListSuffix = getString("settings.messages.afk-tab-list-suffix", afkTabListSuffix); diff --git a/patches/server/0076-Add-credits-command.patch b/patches/server/0076-Add-credits-command.patch index 5b9a23a31..fd5139433 100644 --- a/patches/server/0076-Add-credits-command.patch +++ b/patches/server/0076-Add-credits-command.patch @@ -17,10 +17,10 @@ index 9cbaaf4cd138e6c1d2d51afcef24a81a3f2973c5..f164106a957c24bdb71bde85d82948a6 net.pl3x.purpur.command.PingCommand.register(this.dispatcher); // Purpur } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 47c71cf5793c8e0c72795effeb189c46f29d6a41..d847ef8fc7c156e44cc83929f2d7232eea3c0f14 100644 +index e831b4dbf5dd702acc531a2ca7ee7068dff91408..fa58d301da334cf901b7c2d4a747ef6da96db69d 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -133,6 +133,7 @@ public class PurpurConfig { +@@ -160,6 +160,7 @@ public class PurpurConfig { public static String afkBroadcastBack = "%s is no longer AFK"; public static String afkTabListPrefix = "[AFK] "; public static String afkTabListSuffix = ""; @@ -28,7 +28,7 @@ index 47c71cf5793c8e0c72795effeb189c46f29d6a41..d847ef8fc7c156e44cc83929f2d7232e public static String demoCommandOutput = "%s has been shown the demo screen"; public static String pingCommandOutput = "%s's ping is %sms"; private static void messages() { -@@ -141,6 +142,7 @@ public class PurpurConfig { +@@ -168,6 +169,7 @@ public class PurpurConfig { afkBroadcastBack = getString("settings.messages.afk-broadcast-back", afkBroadcastBack); afkTabListPrefix = getString("settings.messages.afk-tab-list-prefix", afkTabListPrefix); afkTabListSuffix = getString("settings.messages.afk-tab-list-suffix", afkTabListSuffix); diff --git a/patches/server/0077-Configurable-jockey-options.patch b/patches/server/0077-Configurable-jockey-options.patch index bc27bfb16..ce374deb6 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 9f602b143f277510988611b1b93e19c90708a582..0e7dee25ab748fe3529dd2e67de97e68b8cb8d03 100644 +index 1804be45445fee8ba4e30950792693ff47eca9a8..506b22fe75866f1c7dc1c3f15c18ae0e2bf23626 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -508,6 +508,9 @@ public class PurpurWorldConfig { +@@ -515,6 +515,9 @@ public class PurpurWorldConfig { public boolean drownedRidableInWater = false; public double drownedMaxHealth = 20.0D; public double drownedSpawnReinforcements = 0.1D; @@ -180,7 +180,7 @@ index 9f602b143f277510988611b1b93e19c90708a582..0e7dee25ab748fe3529dd2e67de97e68 private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -518,6 +521,9 @@ public class PurpurWorldConfig { +@@ -525,6 +528,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 9f602b143f277510988611b1b93e19c90708a582..0e7dee25ab748fe3529dd2e67de97e68 } public boolean elderGuardianRidable = false; -@@ -730,6 +736,9 @@ public class PurpurWorldConfig { +@@ -737,6 +743,9 @@ public class PurpurWorldConfig { public boolean huskRidableInWater = false; public double huskMaxHealth = 20.0D; public double huskSpawnReinforcements = 0.1D; @@ -200,7 +200,7 @@ index 9f602b143f277510988611b1b93e19c90708a582..0e7dee25ab748fe3529dd2e67de97e68 private void huskSettings() { huskRidable = getBoolean("mobs.husk.ridable", huskRidable); huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater); -@@ -740,6 +749,9 @@ public class PurpurWorldConfig { +@@ -747,6 +756,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 9f602b143f277510988611b1b93e19c90708a582..0e7dee25ab748fe3529dd2e67de97e68 } public boolean illusionerRidable = false; -@@ -1442,6 +1454,9 @@ public class PurpurWorldConfig { +@@ -1449,6 +1461,9 @@ public class PurpurWorldConfig { public boolean zombieRidableInWater = false; public double zombieMaxHealth = 20.0D; public double zombieSpawnReinforcements = 0.1D; @@ -220,7 +220,7 @@ index 9f602b143f277510988611b1b93e19c90708a582..0e7dee25ab748fe3529dd2e67de97e68 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1452,6 +1467,9 @@ public class PurpurWorldConfig { +@@ -1459,6 +1474,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 9f602b143f277510988611b1b93e19c90708a582..0e7dee25ab748fe3529dd2e67de97e68 } public boolean zombieHorseRidableInWater = false; -@@ -1485,6 +1503,9 @@ public class PurpurWorldConfig { +@@ -1492,6 +1510,9 @@ public class PurpurWorldConfig { public boolean zombieVillagerRidableInWater = false; public double zombieVillagerMaxHealth = 20.0D; public double zombieVillagerSpawnReinforcements = 0.1D; @@ -240,7 +240,7 @@ index 9f602b143f277510988611b1b93e19c90708a582..0e7dee25ab748fe3529dd2e67de97e68 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -1495,12 +1516,18 @@ public class PurpurWorldConfig { +@@ -1502,12 +1523,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 9f602b143f277510988611b1b93e19c90708a582..0e7dee25ab748fe3529dd2e67de97e68 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -1511,5 +1538,8 @@ public class PurpurWorldConfig { +@@ -1518,5 +1545,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 f7635e6e4..e82f71c2b 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 0e7dee25ab748fe3529dd2e67de97e68b8cb8d03..4bd850773e9cd77363f52e9bf186050a09d3419e 100644 +index 506b22fe75866f1c7dc1c3f15c18ae0e2bf23626..539b32290edd76080d369b9ea2ad63704d29cfcb 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -921,6 +921,9 @@ public class PurpurWorldConfig { +@@ -928,6 +928,9 @@ public class PurpurWorldConfig { public int phantomFlameFireTime = 8; public boolean phantomAllowGriefing = false; public double phantomMaxHealth = 20.0D; @@ -271,7 +271,7 @@ index 0e7dee25ab748fe3529dd2e67de97e68b8cb8d03..4bd850773e9cd77363f52e9bf186050a private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -934,6 +937,9 @@ public class PurpurWorldConfig { +@@ -941,6 +944,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 aa3abd844..7e3d61252 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 4bd850773e9cd77363f52e9bf186050a09d3419e..672009f1022b55559322823a93cf1463fa6c63c5 100644 +index 539b32290edd76080d369b9ea2ad63704d29cfcb..01240f698be684cea7cd5934c5588eaaf8fb718d 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -924,6 +924,18 @@ public class PurpurWorldConfig { +@@ -931,6 +931,18 @@ public class PurpurWorldConfig { public double phantomAttackedByCrystalRadius = 0.0D; public float phantomAttackedByCrystalDamage = 1.0F; public double phantomOrbitCrystalRadius = 0.0D; @@ -70,7 +70,7 @@ index 4bd850773e9cd77363f52e9bf186050a09d3419e..672009f1022b55559322823a93cf1463 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -940,6 +952,18 @@ public class PurpurWorldConfig { +@@ -947,6 +959,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 ce2a6c38e..13a75d83a 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 672009f1022b55559322823a93cf1463fa6c63c5..943a20291e88bbd45fff1885bfd1979e57082e92 100644 +index 01240f698be684cea7cd5934c5588eaaf8fb718d..7c37a655ca165bb5bc8b98b1c62ce74ec3424eac 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -267,6 +267,22 @@ public class PurpurWorldConfig { +@@ -274,6 +274,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 8ae380ddd..37df09414 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 943a20291e88bbd45fff1885bfd1979e57082e92..6cd97f728e06ae5c1732102bba2ce68c9bdc8327 100644 +index 7c37a655ca165bb5bc8b98b1c62ce74ec3424eac..9b5123a723270a5f7a8ee3e207e8e6dd8e7ebfb9 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -304,6 +304,22 @@ public class PurpurWorldConfig { +@@ -311,6 +311,22 @@ public class PurpurWorldConfig { lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether); } diff --git a/patches/server/0082-Add-allow-water-in-end-world-option.patch b/patches/server/0082-Add-allow-water-in-end-world-option.patch index 24a62a87a..e3e33fb81 100644 --- a/patches/server/0082-Add-allow-water-in-end-world-option.patch +++ b/patches/server/0082-Add-allow-water-in-end-world-option.patch @@ -68,10 +68,10 @@ index df4f2c729f09d5229553308e4876f29de648543f..f2b0278679fa649bbc2904660e0dc9ab } else { world.setBlockAndUpdate(pos, Blocks.WATER.defaultBlockState()); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index d847ef8fc7c156e44cc83929f2d7232eea3c0f14..9fb6bf4cd4d812481fc9bb11075a4ce9c7eaab0b 100644 +index fa58d301da334cf901b7c2d4a747ef6da96db69d..40559def56630d31bbe2627b66dff31e8a989c6c 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -192,6 +192,11 @@ public class PurpurConfig { +@@ -219,6 +219,11 @@ public class PurpurConfig { dontSendUselessEntityPackets = getBoolean("settings.dont-send-useless-entity-packets", dontSendUselessEntityPackets); } diff --git a/patches/server/0084-Entity-lifespan.patch b/patches/server/0084-Entity-lifespan.patch index fc880c4fa..39d998e61 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 af064d4ea1c64a5cd99b784a04599b650cd83d5d..8ba4f1abcb6832878339bd6bd3e12f5e7f046774 100644 +index 9b5123a723270a5f7a8ee3e207e8e6dd8e7ebfb9..241439c61b8c871176f4206f22f6dfcc046c3998 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -101,6 +101,11 @@ public class PurpurWorldConfig { +@@ -108,6 +108,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 7e80c558b..9ea8e0b71 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 @@ -5,7 +5,7 @@ Subject: [PATCH] Add option to teleport to spawn if outside world border diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index c6e33f674543841710d351235a1a2b2223422a0d..045bdac43418ff34381e5908cb666e616c77ece2 100644 +index 216ba235748215c80b6f6dc4914a24ac1d845024..1fbb9242f2dcc83befc1c91e55565e73f721af95 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -2457,5 +2457,25 @@ public class ServerPlayer extends Player { @@ -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 8ba4f1abcb6832878339bd6bd3e12f5e7f046774..43c8dc815f4e756e270b1a130ec67dba5f4cb453 100644 +index 241439c61b8c871176f4206f22f6dfcc046c3998..4c259296f1fb038739de113c9eb0f00c5673c6ac 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -219,6 +219,7 @@ public class PurpurWorldConfig { +@@ -226,6 +226,7 @@ public class PurpurWorldConfig { public boolean playerInvulnerableWhileAcceptingResourcePack = false; public String playerDeathExpDropEquation = "expLevel * 7"; public int playerDeathExpDropMax = 100; @@ -66,7 +66,7 @@ index 8ba4f1abcb6832878339bd6bd3e12f5e7f046774..43c8dc815f4e756e270b1a130ec67dba 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); -@@ -228,6 +229,7 @@ public class PurpurWorldConfig { +@@ -235,6 +236,7 @@ public class PurpurWorldConfig { playerInvulnerableWhileAcceptingResourcePack = getBoolean("gameplay-mechanics.player.invulnerable-while-accepting-resource-pack", playerInvulnerableWhileAcceptingResourcePack); 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 3413aa816..d9bf83ddd 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 89be0e1d958e7c1ed539895cb269296bb9599c64..2d3c95013d680a975943d403fa413e68102a400d 100644 +index 4c259296f1fb038739de113c9eb0f00c5673c6ac..7a504780ff7ce1fc3bd345d36202f42167df1b4e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1257,6 +1257,7 @@ public class PurpurWorldConfig { +@@ -1264,6 +1264,7 @@ public class PurpurWorldConfig { public boolean squidRidable = false; public double squidMaxHealth = 10.0D; @@ -16,7 +16,7 @@ index 89be0e1d958e7c1ed539895cb269296bb9599c64..2d3c95013d680a975943d403fa413e68 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); if (PurpurConfig.version < 10) { -@@ -1265,6 +1266,7 @@ public class PurpurWorldConfig { +@@ -1272,6 +1273,7 @@ public class PurpurWorldConfig { set("mobs.squid.attributes.max_health", oldValue); } squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth); diff --git a/patches/server/0087-Configurable-feature-seed-settings.patch b/patches/server/0087-Configurable-feature-seed-settings.patch index 9a6c3fb2b..d45510665 100644 --- a/patches/server/0087-Configurable-feature-seed-settings.patch +++ b/patches/server/0087-Configurable-feature-seed-settings.patch @@ -835,17 +835,10 @@ index ed3944a60d09495eb424dd11d00e8c3585177d51..fcf25cc905ece0213a0eb6365a0a5756 return false; } else { diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 9fb6bf4cd4d812481fc9bb11075a4ce9c7eaab0b..18af1952331ea6037495c1aa57ab41fbd080f0f9 100644 +index 40559def56630d31bbe2627b66dff31e8a989c6c..44286c661943cb147372b7864709485e747545c1 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -1,5 +1,6 @@ - package net.pl3x.purpur; - -+import co.aikar.timings.TimingsManager; - import com.google.common.base.Throwables; - import net.minecraft.server.MinecraftServer; - import net.pl3x.purpur.command.PurpurCommand; -@@ -147,6 +148,128 @@ public class PurpurConfig { +@@ -174,6 +174,128 @@ public class PurpurConfig { pingCommandOutput = getString("settings.messages.ping-command-output", pingCommandOutput); } diff --git a/patches/server/0088-Phantoms-burn-in-light.patch b/patches/server/0088-Phantoms-burn-in-light.patch index fb160a659..0386cd485 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 2d3c95013d680a975943d403fa413e68102a400d..fa699ad8f555131b71f83cb8a43b6ba10a37a00c 100644 +index 7a504780ff7ce1fc3bd345d36202f42167df1b4e..f478cd6f8f258c5a456c0a8e54ed1274a5b7526d 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -975,6 +975,9 @@ public class PurpurWorldConfig { +@@ -982,6 +982,9 @@ public class PurpurWorldConfig { public int phantomSpawnOverheadRadius = 10; public int phantomSpawnMinPerAttempt = 1; public int phantomSpawnMaxPerAttempt = -1; @@ -60,7 +60,7 @@ index 2d3c95013d680a975943d403fa413e68102a400d..fa699ad8f555131b71f83cb8a43b6ba1 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1003,6 +1006,9 @@ public class PurpurWorldConfig { +@@ -1010,6 +1013,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 d1d0f98f9..68184d8dd 100644 --- a/patches/server/0089-Configurable-villager-breeding.patch +++ b/patches/server/0089-Configurable-villager-breeding.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable villager breeding diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 5e100dbdbd6cfb4aa34b0d6b1ce0913899f60b7c..1e05cc98a332e5b115c4670e5331e679117c6629 100644 +index 3865f16e027307f5b8b2a5617b66ffd8b9f85c60..bb3572370a86519a92b7b3dab0482cd1527de19d 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -751,7 +751,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -18,10 +18,10 @@ index 5e100dbdbd6cfb4aa34b0d6b1ce0913899f60b7c..1e05cc98a332e5b115c4670e5331e679 private boolean hungry() { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index fa699ad8f555131b71f83cb8a43b6ba10a37a00c..df85b6c0f861b25422b69a08ada6a8e537afbb14 100644 +index f478cd6f8f258c5a456c0a8e54ed1274a5b7526d..2cf5ebe674ca8ecee7ebc7084259ac1dd8c17564 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1400,6 +1400,7 @@ public class PurpurWorldConfig { +@@ -1407,6 +1407,7 @@ public class PurpurWorldConfig { public boolean villagerCanBeLeashed = false; public int villagerSpawnIronGolemRadius = 0; public int villagerSpawnIronGolemLimit = 0; @@ -29,7 +29,7 @@ index fa699ad8f555131b71f83cb8a43b6ba10a37a00c..df85b6c0f861b25422b69a08ada6a8e5 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1415,6 +1416,7 @@ public class PurpurWorldConfig { +@@ -1422,6 +1423,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 0e8a7f578..a217e8c5b 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 df85b6c0f861b25422b69a08ada6a8e537afbb14..2fe461aa6b25bc1eda8f6e307914eab9760e504c 100644 +index 2cf5ebe674ca8ecee7ebc7084259ac1dd8c17564..d0e05b1020d3bf64a6ba23ef7aac1133a7779990 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -334,6 +334,11 @@ public class PurpurWorldConfig { +@@ -341,6 +341,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 b4227ffd7..a3a51df5b 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 edeb6fff3bdd716ed1771705b79853d913cd1bbc..1a3ea260a5532db2aa14bab3145f3a00d6683cea 100644 +index d0e05b1020d3bf64a6ba23ef7aac1133a7779990..7bcb4fdb7733e477f306ef15667958228704a5f0 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -220,6 +220,7 @@ public class PurpurWorldConfig { +@@ -227,6 +227,7 @@ public class PurpurWorldConfig { public String playerDeathExpDropEquation = "expLevel * 7"; public int playerDeathExpDropMax = 100; public boolean teleportIfOutsideBorder = false; @@ -40,7 +40,7 @@ index edeb6fff3bdd716ed1771705b79853d913cd1bbc..1a3ea260a5532db2aa14bab3145f3a00 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); -@@ -230,6 +231,7 @@ public class PurpurWorldConfig { +@@ -237,6 +238,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 513c0010a..1ee377c35 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 716898ec4ff67c64d96a47f5f76ea7096dbeb61c..ff4c9d73d3390c4367bb92e094a9eba5f5399ae5 100644 +index 7bcb4fdb7733e477f306ef15667958228704a5f0..0317bab2b696af2624d0384684d0e9b2e1abe749 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1429,6 +1429,7 @@ public class PurpurWorldConfig { +@@ -1436,6 +1436,7 @@ public class PurpurWorldConfig { public boolean vindicatorRidable = false; public boolean vindicatorRidableInWater = false; public double vindicatorMaxHealth = 24.0D; @@ -41,7 +41,7 @@ index 716898ec4ff67c64d96a47f5f76ea7096dbeb61c..ff4c9d73d3390c4367bb92e094a9eba5 private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -1438,6 +1439,7 @@ public class PurpurWorldConfig { +@@ -1445,6 +1446,7 @@ public class PurpurWorldConfig { set("mobs.vindicator.attributes.max_health", oldValue); } vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth); diff --git a/patches/server/0093-Add-option-to-disable-certain-block-updates.patch b/patches/server/0093-Add-option-to-disable-certain-block-updates.patch index b2f3e70ae..09e29f513 100644 --- a/patches/server/0093-Add-option-to-disable-certain-block-updates.patch +++ b/patches/server/0093-Add-option-to-disable-certain-block-updates.patch @@ -117,10 +117,10 @@ index f8e58d9f71703139a736d93e7f1996e027a29444..d3c8fd8399629efb8bcbaf7d9a0c4334 } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 18af1952331ea6037495c1aa57ab41fbd080f0f9..11694f63641932c165c343bec254d0b1a94358ea 100644 +index 44286c661943cb147372b7864709485e747545c1..96dc811c655672e6fdb23865d63b564331ec7d88 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -320,6 +320,15 @@ public class PurpurConfig { +@@ -346,6 +346,15 @@ public class PurpurConfig { allowWaterPlacementInTheEnd = getBoolean("settings.allow-water-placement-in-the-end", allowWaterPlacementInTheEnd); } diff --git a/patches/server/0094-Dispensers-place-anvils-option.patch b/patches/server/0094-Dispensers-place-anvils-option.patch index 150552cd0..ae380fa3f 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 ff4c9d73d3390c4367bb92e094a9eba5f5399ae5..81a6f90e1506fcb57b75281a09459c9c7b86494b 100644 +index 0317bab2b696af2624d0384684d0e9b2e1abe749..ff2f7ecafe75f8c5d17e44dd1271c24e40b57410 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -293,8 +293,10 @@ public class PurpurWorldConfig { +@@ -300,8 +300,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 656bea955..fab4218d2 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 81a6f90e1506fcb57b75281a09459c9c7b86494b..fbfb46f1a4ab5dd49059a51d5938431d76c880be 100644 +index ff2f7ecafe75f8c5d17e44dd1271c24e40b57410..3db1e63c7689c0fa12335d2b28f500f5b48e5f18 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -276,6 +276,11 @@ public class PurpurWorldConfig { +@@ -283,6 +283,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 542a2b100..f0db0efe5 100644 --- a/patches/server/0096-Add-no-random-tick-block-list.patch +++ b/patches/server/0096-Add-no-random-tick-block-list.patch @@ -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 fbfb46f1a4ab5dd49059a51d5938431d76c880be..17e473ffde0aa075e97b76c6dcb47648ad57cc99 100644 +index 3db1e63c7689c0fa12335d2b28f500f5b48e5f18..18ba4b452147cd2f320ac243f859f2edd39dafd1 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -276,6 +276,28 @@ public class PurpurWorldConfig { +@@ -283,6 +283,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 358fa75fa..d3fbd813d 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 17e473ffde0aa075e97b76c6dcb47648ad57cc99..d647f3bcebbacdfd603da7897d7b66a357e818d4 100644 +index 18ba4b452147cd2f320ac243f859f2edd39dafd1..8b1c836759edec76fa9337e60f8795daf9b92d22 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -542,6 +542,7 @@ public class PurpurWorldConfig { +@@ -549,6 +549,7 @@ public class PurpurWorldConfig { public float dolphinSpitSpeed = 1.0F; public float dolphinSpitDamage = 2.0F; public double dolphinMaxHealth = 10.0D; @@ -28,7 +28,7 @@ index 17e473ffde0aa075e97b76c6dcb47648ad57cc99..d647f3bcebbacdfd603da7897d7b66a3 private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinSpitCooldown = getInt("mobs.dolphin.spit.cooldown", dolphinSpitCooldown); -@@ -553,6 +554,7 @@ public class PurpurWorldConfig { +@@ -560,6 +561,7 @@ public class PurpurWorldConfig { set("mobs.dolphin.attributes.max_health", oldValue); } dolphinMaxHealth = getDouble("mobs.dolphin.attributes.max_health", dolphinMaxHealth); diff --git a/patches/server/0098-Short-enderman-height.patch b/patches/server/0098-Short-enderman-height.patch index 03878821d..8316db07d 100644 --- a/patches/server/0098-Short-enderman-height.patch +++ b/patches/server/0098-Short-enderman-height.patch @@ -31,19 +31,10 @@ index 6e0b5fbf5b0d216b6b7c647d45ef37cd6b591717..5ebedd6a156b06e98aded57c817f6342 if (this.tryEscape(com.destroystokyo.paper.event.entity.EndermanEscapeEvent.Reason.INDIRECT)) { // Paper start for (int i = 0; i < 64; ++i) { diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 11694f63641932c165c343bec254d0b1a94358ea..223d93c5c03a43076d8544232e3656c4c29ad2d0 100644 +index 96dc811c655672e6fdb23865d63b564331ec7d88..c283926d05fa60c576b8018bcaee465a03a699a5 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -3,6 +3,8 @@ package net.pl3x.purpur; - import co.aikar.timings.TimingsManager; - import com.google.common.base.Throwables; - import net.minecraft.server.MinecraftServer; -+import net.minecraft.world.entity.EntityDimensions; -+import net.minecraft.world.entity.EntityType; - import net.pl3x.purpur.command.PurpurCommand; - import org.bukkit.Bukkit; - import org.bukkit.command.Command; -@@ -310,6 +312,12 @@ public class PurpurConfig { +@@ -336,6 +336,12 @@ public class PurpurConfig { enderChestPermissionRows = getBoolean("settings.blocks.ender_chest.use-permissions-for-rows", enderChestPermissionRows); } 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 f2dc6e82e..b0aba5774 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 d647f3bcebbacdfd603da7897d7b66a357e818d4..556d5edc7ad8acb676cfb60ec18bca60e24dcfd8 100644 +index 8b1c836759edec76fa9337e60f8795daf9b92d22..fec1dd7acd0f466cb27753bc93357ec45ed86162 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1302,6 +1302,7 @@ public class PurpurWorldConfig { +@@ -1309,6 +1309,7 @@ public class PurpurWorldConfig { public boolean squidRidable = false; public double squidMaxHealth = 10.0D; public boolean squidImmuneToEAR = true; @@ -71,7 +71,7 @@ index d647f3bcebbacdfd603da7897d7b66a357e818d4..556d5edc7ad8acb676cfb60ec18bca60 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); if (PurpurConfig.version < 10) { -@@ -1311,6 +1312,7 @@ public class PurpurWorldConfig { +@@ -1318,6 +1319,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/0101-Crying-obsidian-valid-for-portal-frames.patch b/patches/server/0101-Crying-obsidian-valid-for-portal-frames.patch index e492c8af7..d8a6e7ae4 100644 --- a/patches/server/0101-Crying-obsidian-valid-for-portal-frames.patch +++ b/patches/server/0101-Crying-obsidian-valid-for-portal-frames.patch @@ -18,10 +18,10 @@ index c07b5d1f1ef8b5e6026c7555d476880c8802d6c5..068f1b184a3694603f564d49fa45d5ce private final LevelAccessor level; private final Direction.Axis axis; diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 223d93c5c03a43076d8544232e3656c4c29ad2d0..cd9f2217beba48a204edd3769429fa1ab312ab69 100644 +index c283926d05fa60c576b8018bcaee465a03a699a5..380bb11ea7cabd9513397dec5eb171f4269418bb 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -296,6 +296,7 @@ public class PurpurConfig { +@@ -320,6 +320,7 @@ public class PurpurConfig { public static boolean barrelSixRows = false; public static boolean enderChestSixRows = false; public static boolean enderChestPermissionRows = false; @@ -29,7 +29,7 @@ index 223d93c5c03a43076d8544232e3656c4c29ad2d0..cd9f2217beba48a204edd3769429fa1a private static void blockSettings() { if (version < 3) { boolean oldValue = getBoolean("settings.barrel.packed-barrels", true); -@@ -310,6 +311,7 @@ public class PurpurConfig { +@@ -334,6 +335,7 @@ public class PurpurConfig { enderChestSixRows = getBoolean("settings.blocks.ender_chest.six-rows", enderChestSixRows); org.bukkit.event.inventory.InventoryType.ENDER_CHEST.setDefaultSize(enderChestSixRows ? 54 : 27); enderChestPermissionRows = getBoolean("settings.blocks.ender_chest.use-permissions-for-rows", enderChestPermissionRows); diff --git a/patches/server/0102-Entities-can-use-portals-configuration.patch b/patches/server/0102-Entities-can-use-portals-configuration.patch index c1c3610b9..d3107ea99 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 556d5edc7ad8acb676cfb60ec18bca60e24dcfd8..888674faa5d804e1a011ca266043da5c7ecf6ce6 100644 +index fec1dd7acd0f466cb27753bc93357ec45ed86162..6dd08d200d17891e9277dbef396087a1e713dc2a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -262,6 +262,7 @@ public class PurpurWorldConfig { +@@ -269,6 +269,7 @@ public class PurpurWorldConfig { public boolean useBetterMending = false; public boolean boatEjectPlayersOnLand = false; public boolean disableDropsOnCrammingDeath = false; @@ -38,7 +38,7 @@ index 556d5edc7ad8acb676cfb60ec18bca60e24dcfd8..888674faa5d804e1a011ca266043da5c public boolean milkCuresBadOmen = true; public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; -@@ -270,6 +271,7 @@ public class PurpurWorldConfig { +@@ -277,6 +278,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 688c8f01d..ce7bc4cff 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 888674faa5d804e1a011ca266043da5c7ecf6ce6..a5123bea0e5da28591216d9365529aa99d199e5f 100644 +index 6dd08d200d17891e9277dbef396087a1e713dc2a..2dabbe5d444e108fcf167dd001921c9c5c2294fd 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1513,6 +1513,8 @@ public class PurpurWorldConfig { +@@ -1520,6 +1520,8 @@ public class PurpurWorldConfig { public boolean witherRidableInWater = false; public double witherMaxY = 256D; public double witherMaxHealth = 300.0D; @@ -35,7 +35,7 @@ index 888674faa5d804e1a011ca266043da5c7ecf6ce6..a5123bea0e5da28591216d9365529aa9 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1527,6 +1529,8 @@ public class PurpurWorldConfig { +@@ -1534,6 +1536,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 7a5a6bccd..c7cb7c2f3 100644 --- a/patches/server/0105-Allow-toggling-special-MobSpawners-per-world.patch +++ b/patches/server/0105-Allow-toggling-special-MobSpawners-per-world.patch @@ -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 093c44cba0675316479f5d96434092821804cfa0..2e2f5e7ca914abf1a1d22c8ea03f363643f46488 100644 +index 2dabbe5d444e108fcf167dd001921c9c5c2294fd..ab389b70947d4410148f3e5f243346f63784981b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -63,6 +63,12 @@ public class PurpurWorldConfig { +@@ -69,6 +69,12 @@ public class PurpurWorldConfig { return PurpurConfig.config.getBoolean("world-settings." + worldName + "." + path, PurpurConfig.config.getBoolean("world-settings.default." + path)); } @@ -110,7 +110,7 @@ index 093c44cba0675316479f5d96434092821804cfa0..2e2f5e7ca914abf1a1d22c8ea03f3636 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)); -@@ -211,6 +217,21 @@ public class PurpurWorldConfig { +@@ -218,6 +224,21 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0106-Raid-cooldown-setting.patch b/patches/server/0106-Raid-cooldown-setting.patch index b1ee1a660..6b3c368fa 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 b92862b331666f36a8cef0289b5241f03fe3bf9b..7a53ccbde201376248208090b598dc109ffd564e 100644 +index ab389b70947d4410148f3e5f243346f63784981b..f0137b639ffa7335943a7dc20d06cb582e2aee9d 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -288,6 +288,7 @@ public class PurpurWorldConfig { +@@ -295,6 +295,7 @@ public class PurpurWorldConfig { public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; @@ -63,7 +63,7 @@ index b92862b331666f36a8cef0289b5241f03fe3bf9b..7a53ccbde201376248208090b598dc10 private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); -@@ -297,6 +298,7 @@ public class PurpurWorldConfig { +@@ -304,6 +305,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 2ed81c949..718dc7ab5 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 c53852320909c7481f23b33433c771b96ae8557b..401621a9a9592558efd7c3aa043822a857ab6b41 100644 +index f0137b639ffa7335943a7dc20d06cb582e2aee9d..25a5d30c58b6cc7f1debe4a5e849968015c42a9a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -255,6 +255,35 @@ public class PurpurWorldConfig { +@@ -262,6 +262,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 1a6054edd..fece5a61b 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 7b81840051e2221b3287ad03108437256addaa76..6e2bc00cc363acfcc0d2d39053aa29352f6d79ff 100644 +index 25a5d30c58b6cc7f1debe4a5e849968015c42a9a..1789dba767f0d60c461f8e1feff3a862249bd03c 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1636,6 +1636,7 @@ public class PurpurWorldConfig { +@@ -1643,6 +1643,7 @@ public class PurpurWorldConfig { public boolean zombieJockeyOnlyBaby = true; public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; @@ -82,7 +82,7 @@ index 7b81840051e2221b3287ad03108437256addaa76..6e2bc00cc363acfcc0d2d39053aa2935 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1649,6 +1650,7 @@ public class PurpurWorldConfig { +@@ -1656,6 +1657,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 64124bf83..807e4a9ec 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 6e2bc00cc363acfcc0d2d39053aa29352f6d79ff..92dd97364a7c40c5ff05d408d40616ac4ed11116 100644 +index 1789dba767f0d60c461f8e1feff3a862249bd03c..467faae7c7a001d0c9a2eeedb60a9efc4f8024a3 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -314,6 +314,7 @@ public class PurpurWorldConfig { +@@ -321,6 +321,7 @@ public class PurpurWorldConfig { public boolean disableDropsOnCrammingDeath = false; public boolean entitiesCanUsePortals = true; public boolean milkCuresBadOmen = true; @@ -200,7 +200,7 @@ index 6e2bc00cc363acfcc0d2d39053aa29352f6d79ff..92dd97364a7c40c5ff05d408d40616ac public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -324,6 +325,7 @@ public class PurpurWorldConfig { +@@ -331,6 +332,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 048953b3a..08797bc5e 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 92dd97364a7c40c5ff05d408d40616ac4ed11116..024d03c318ab4c76f173599cdca8d7e4e1f7c4bd 100644 +index 467faae7c7a001d0c9a2eeedb60a9efc4f8024a3..11db98679973399dc227bb0d63ac688c81426a97 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -801,9 +801,11 @@ public class PurpurWorldConfig { +@@ -808,9 +808,11 @@ public class PurpurWorldConfig { public boolean glowSquidRidable = false; public double glowSquidMaxHealth = 10.0D; @@ -73,7 +73,7 @@ index 92dd97364a7c40c5ff05d408d40616ac4ed11116..024d03c318ab4c76f173599cdca8d7e4 } public boolean goatRidable = false; -@@ -1359,6 +1361,7 @@ public class PurpurWorldConfig { +@@ -1366,6 +1368,7 @@ public class PurpurWorldConfig { public double squidMaxHealth = 10.0D; public boolean squidImmuneToEAR = true; public double squidOffsetWaterCheck = 0.0D; @@ -81,7 +81,7 @@ index 92dd97364a7c40c5ff05d408d40616ac4ed11116..024d03c318ab4c76f173599cdca8d7e4 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); if (PurpurConfig.version < 10) { -@@ -1369,6 +1372,7 @@ public class PurpurWorldConfig { +@@ -1376,6 +1379,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 b8a758adc..28cc86fa4 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 f7baead9f97d680c45dd4e87e1e017bddd313494..18ffce02b1301659e898d5c7e656d6a90f6568df 100644 +index 11db98679973399dc227bb0d63ac688c81426a97..63556973302e6073c2599730847549273a145755 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -112,6 +112,17 @@ public class PurpurWorldConfig { +@@ -119,6 +119,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 f5585403a..3f998aee0 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 916674bd0ee39f6580d82026bf571f54fc3ec20e..6f5b372f0a9e9d9f98da61b7ead568a9c4ada3ae 100644 +index 63556973302e6073c2599730847549273a145755..23c5b84db099b2ac72699cee41f8c2084adec0ed 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -437,6 +437,11 @@ public class PurpurWorldConfig { +@@ -444,6 +444,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 23411f863..bc8ef9ee1 100644 --- a/patches/server/0114-Configurable-daylight-cycle.patch +++ b/patches/server/0114-Configurable-daylight-cycle.patch @@ -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 2cf088cc750aad13001859bbc8b49343e5459567..71d3d41eab2fc5068f34e8e1b20b43a19caa958e 100644 +index 23c5b84db099b2ac72699cee41f8c2084adec0ed..e23b646a5f2661a26e069021bebaa06706185d80 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -94,6 +94,13 @@ public class PurpurWorldConfig { +@@ -101,6 +101,13 @@ public class PurpurWorldConfig { armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight); } diff --git a/patches/server/0115-Allow-infinite-and-mending-enchantments-together.patch b/patches/server/0115-Allow-infinite-and-mending-enchantments-together.patch index 93238a2fb..ccbc91021 100644 --- a/patches/server/0115-Allow-infinite-and-mending-enchantments-together.patch +++ b/patches/server/0115-Allow-infinite-and-mending-enchantments-together.patch @@ -17,10 +17,10 @@ index 3aece8245060dd1ba269c08d226c84247a6f0a83..6763d0b96c83d1b462999f525bf1f31c } } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index cd9f2217beba48a204edd3769429fa1ab312ab69..327dc3b4a06ed180521153c4ce5c57dfdf560aef 100644 +index 380bb11ea7cabd9513397dec5eb171f4269418bb..1d9fa061b0a109296a1bcc7d06a7786ddc76d1b9 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -314,6 +314,16 @@ public class PurpurConfig { +@@ -338,6 +338,16 @@ public class PurpurConfig { cryingObsidianValidForPortalFrame = getBoolean("settings.blocks.crying_obsidian.valid-for-portal-frame", cryingObsidianValidForPortalFrame); } diff --git a/patches/server/0116-Infinite-fuel-furnace.patch b/patches/server/0116-Infinite-fuel-furnace.patch index c37177802..1a27b360a 100644 --- a/patches/server/0116-Infinite-fuel-furnace.patch +++ b/patches/server/0116-Infinite-fuel-furnace.patch @@ -48,10 +48,10 @@ index 348e485897c34cca19113cc35f055a58778ca38b..1eab83cefdf1484b8cf80072d9a0ee61 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 a3091e4c78544f8ee53d9ada1a8f7cd7b68de49d..fc75bc0436afb9531024a542616707fc1420a0ba 100644 +index e23b646a5f2661a26e069021bebaa06706185d80..8131cbb602e809770acbdb32a78b2ca36f310689 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -405,6 +405,11 @@ public class PurpurWorldConfig { +@@ -412,6 +412,11 @@ 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 7d281078c..73685c410 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 fc75bc0436afb9531024a542616707fc1420a0ba..f7cbd213c39cdc388651b133acf119d7c0d8387e 100644 +index 8131cbb602e809770acbdb32a78b2ca36f310689..a87f6bc71dfa8f5f98f592e13152a5a8384a445d 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -401,8 +401,10 @@ public class PurpurWorldConfig { +@@ -408,8 +408,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 678a4048e..ca5f2f88b 100644 --- a/patches/server/0119-Add-adjustable-breeding-cooldown-to-config.patch +++ b/patches/server/0119-Add-adjustable-breeding-cooldown-to-config.patch @@ -95,10 +95,10 @@ index 65aba9a17a76e56c0140220ab00645a1e02cc8b5..bfac7888f71232ac095e2615bddf05d7 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 f7cbd213c39cdc388651b133acf119d7c0d8387e..d7f9e34ea49b786e515a75969ba088fe8f84fb52 100644 +index a87f6bc71dfa8f5f98f592e13152a5a8384a445d..4dcff94e8ccf1af911be322c04871b8d561f60ca 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -337,6 +337,7 @@ public class PurpurWorldConfig { +@@ -344,6 +344,7 @@ public class PurpurWorldConfig { public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; public int raidCooldownSeconds = 0; @@ -106,7 +106,7 @@ index f7cbd213c39cdc388651b133acf119d7c0d8387e..d7f9e34ea49b786e515a75969ba088fe private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); -@@ -348,6 +349,7 @@ public class PurpurWorldConfig { +@@ -355,6 +356,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 c9d891af5..68e5b797f 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 d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa3b3cbef3 100644 +index 4dcff94e8ccf1af911be322c04871b8d561f60ca..f40cc359bb7f68e3332014c43c747b07455bff74 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -469,9 +469,11 @@ public class PurpurWorldConfig { +@@ -476,9 +476,11 @@ public class PurpurWorldConfig { public boolean axolotlRidable = false; public double axolotlMaxHealth = 14.0D; @@ -489,7 +489,7 @@ index d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa } public boolean batRidable = false; -@@ -501,6 +503,7 @@ public class PurpurWorldConfig { +@@ -508,6 +510,7 @@ public class PurpurWorldConfig { public boolean beeRidableInWater = false; public double beeMaxY = 256D; public double beeMaxHealth = 10.0D; @@ -497,7 +497,7 @@ index d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -511,6 +514,7 @@ public class PurpurWorldConfig { +@@ -518,6 +521,7 @@ public class PurpurWorldConfig { set("mobs.bee.attributes.max_health", oldValue); } beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth); @@ -505,7 +505,7 @@ index d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa } public boolean blazeRidable = false; -@@ -535,6 +539,7 @@ public class PurpurWorldConfig { +@@ -542,6 +546,7 @@ public class PurpurWorldConfig { public int catSpawnDelay = 1200; public int catSpawnSwampHutScanRange = 16; public int catSpawnVillageScanRange = 48; @@ -513,7 +513,7 @@ index d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -547,6 +552,7 @@ public class PurpurWorldConfig { +@@ -554,6 +559,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 d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa } public boolean caveSpiderRidable = false; -@@ -567,6 +573,7 @@ public class PurpurWorldConfig { +@@ -574,6 +580,7 @@ public class PurpurWorldConfig { public boolean chickenRidableInWater = false; public double chickenMaxHealth = 4.0D; public boolean chickenRetaliate = false; @@ -529,7 +529,7 @@ index d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -577,6 +584,7 @@ public class PurpurWorldConfig { +@@ -584,6 +591,7 @@ public class PurpurWorldConfig { } chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth); chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate); @@ -537,7 +537,7 @@ index d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa } public boolean codRidable = false; -@@ -595,6 +603,7 @@ public class PurpurWorldConfig { +@@ -602,6 +610,7 @@ public class PurpurWorldConfig { public boolean cowRidableInWater = false; public double cowMaxHealth = 10.0D; public int cowFeedMushrooms = 0; @@ -545,7 +545,7 @@ index d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa private void cowSettings() { cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); -@@ -605,6 +614,7 @@ public class PurpurWorldConfig { +@@ -612,6 +621,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 d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa } public boolean creeperRidable = false; -@@ -652,6 +662,7 @@ public class PurpurWorldConfig { +@@ -659,6 +669,7 @@ public class PurpurWorldConfig { public double donkeyJumpStrengthMax = 0.5D; public double donkeyMovementSpeedMin = 0.175D; public double donkeyMovementSpeedMax = 0.175D; @@ -561,7 +561,7 @@ index d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa private void donkeySettings() { donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater); if (PurpurConfig.version < 10) { -@@ -667,6 +678,7 @@ public class PurpurWorldConfig { +@@ -674,6 +685,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 d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa } public boolean drownedRidable = false; -@@ -773,6 +785,7 @@ public class PurpurWorldConfig { +@@ -780,6 +792,7 @@ public class PurpurWorldConfig { public boolean foxRidableInWater = false; public double foxMaxHealth = 10.0D; public boolean foxTypeChangesWithTulips = false; @@ -577,7 +577,7 @@ index d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -783,6 +796,7 @@ public class PurpurWorldConfig { +@@ -790,6 +803,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 d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa } public boolean ghastRidable = false; -@@ -843,10 +857,12 @@ public class PurpurWorldConfig { +@@ -850,10 +864,12 @@ public class PurpurWorldConfig { public boolean goatRidable = false; public boolean goatRidableInWater = false; public double goatMaxHealth = 10.0D; @@ -598,7 +598,7 @@ index d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa } public boolean guardianRidable = false; -@@ -864,6 +880,7 @@ public class PurpurWorldConfig { +@@ -871,6 +887,7 @@ public class PurpurWorldConfig { public boolean hoglinRidable = false; public boolean hoglinRidableInWater = false; public double hoglinMaxHealth = 40.0D; @@ -606,7 +606,7 @@ index d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa private void hoglinSettings() { hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable); hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater); -@@ -873,6 +890,7 @@ public class PurpurWorldConfig { +@@ -880,6 +897,7 @@ public class PurpurWorldConfig { set("mobs.hoglin.attributes.max_health", oldValue); } hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth); @@ -614,7 +614,7 @@ index d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa } public boolean horseRidableInWater = false; -@@ -882,6 +900,7 @@ public class PurpurWorldConfig { +@@ -889,6 +907,7 @@ public class PurpurWorldConfig { public double horseJumpStrengthMax = 1.0D; public double horseMovementSpeedMin = 0.1125D; public double horseMovementSpeedMax = 0.3375D; @@ -622,7 +622,7 @@ index d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); if (PurpurConfig.version < 10) { -@@ -897,6 +916,7 @@ public class PurpurWorldConfig { +@@ -904,6 +923,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 d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa } public boolean huskRidable = false; -@@ -967,6 +987,7 @@ public class PurpurWorldConfig { +@@ -974,6 +994,7 @@ public class PurpurWorldConfig { public double llamaJumpStrengthMax = 0.5D; public double llamaMovementSpeedMin = 0.175D; public double llamaMovementSpeedMax = 0.175D; @@ -638,7 +638,7 @@ index d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -983,6 +1004,7 @@ public class PurpurWorldConfig { +@@ -990,6 +1011,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 d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa } public boolean magmaCubeRidable = false; -@@ -1002,6 +1024,7 @@ public class PurpurWorldConfig { +@@ -1009,6 +1031,7 @@ public class PurpurWorldConfig { public boolean mooshroomRidable = false; public boolean mooshroomRidableInWater = false; public double mooshroomMaxHealth = 10.0D; @@ -654,7 +654,7 @@ index d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa private void mooshroomSettings() { mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater); -@@ -1011,6 +1034,7 @@ public class PurpurWorldConfig { +@@ -1018,6 +1041,7 @@ public class PurpurWorldConfig { set("mobs.mooshroom.attributes.max_health", oldValue); } mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth); @@ -662,7 +662,7 @@ index d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa } public boolean muleRidableInWater = false; -@@ -1020,6 +1044,7 @@ public class PurpurWorldConfig { +@@ -1027,6 +1051,7 @@ public class PurpurWorldConfig { public double muleJumpStrengthMax = 0.5D; public double muleMovementSpeedMin = 0.175D; public double muleMovementSpeedMax = 0.175D; @@ -670,7 +670,7 @@ index d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa private void muleSettings() { muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1035,11 +1060,13 @@ public class PurpurWorldConfig { +@@ -1042,11 +1067,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 d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -1049,11 +1076,13 @@ public class PurpurWorldConfig { +@@ -1056,11 +1083,13 @@ public class PurpurWorldConfig { set("mobs.ocelot.attributes.max_health", oldValue); } ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth); @@ -698,7 +698,7 @@ index d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa private void pandaSettings() { pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater); -@@ -1063,6 +1092,7 @@ public class PurpurWorldConfig { +@@ -1070,6 +1099,7 @@ public class PurpurWorldConfig { set("mobs.panda.attributes.max_health", oldValue); } pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth); @@ -706,7 +706,7 @@ index d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa } public boolean parrotRidable = false; -@@ -1143,6 +1173,7 @@ public class PurpurWorldConfig { +@@ -1150,6 +1180,7 @@ public class PurpurWorldConfig { public boolean pigRidableInWater = false; public double pigMaxHealth = 10.0D; public boolean pigGiveSaddleBack = false; @@ -714,7 +714,7 @@ index d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -1153,6 +1184,7 @@ public class PurpurWorldConfig { +@@ -1160,6 +1191,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 d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa } public boolean piglinRidable = false; -@@ -1202,6 +1234,7 @@ public class PurpurWorldConfig { +@@ -1209,6 +1241,7 @@ public class PurpurWorldConfig { public double polarBearMaxHealth = 30.0D; public String polarBearBreedableItemString = ""; public Item polarBearBreedableItem = null; @@ -730,7 +730,7 @@ index d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -1214,6 +1247,7 @@ public class PurpurWorldConfig { +@@ -1221,6 +1254,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 d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa } public boolean pufferfishRidable = false; -@@ -1233,6 +1267,7 @@ public class PurpurWorldConfig { +@@ -1240,6 +1274,7 @@ public class PurpurWorldConfig { public double rabbitMaxHealth = 3.0D; public double rabbitNaturalToast = 0.0D; public double rabbitNaturalKiller = 0.0D; @@ -746,7 +746,7 @@ index d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1244,6 +1279,7 @@ public class PurpurWorldConfig { +@@ -1251,6 +1286,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 d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa } public boolean ravagerRidable = false; -@@ -1275,6 +1311,7 @@ public class PurpurWorldConfig { +@@ -1282,6 +1318,7 @@ public class PurpurWorldConfig { public boolean sheepRidable = false; public boolean sheepRidableInWater = false; public double sheepMaxHealth = 8.0D; @@ -762,7 +762,7 @@ index d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -1284,6 +1321,7 @@ public class PurpurWorldConfig { +@@ -1291,6 +1328,7 @@ public class PurpurWorldConfig { set("mobs.sheep.attributes.max_health", oldValue); } sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth); @@ -770,7 +770,7 @@ index d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa } public boolean shulkerRidable = false; -@@ -1438,6 +1476,7 @@ public class PurpurWorldConfig { +@@ -1445,6 +1483,7 @@ public class PurpurWorldConfig { public boolean striderRidable = false; public boolean striderRidableInWater = false; public double striderMaxHealth = 20.0D; @@ -778,7 +778,7 @@ index d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1447,6 +1486,7 @@ public class PurpurWorldConfig { +@@ -1454,6 +1493,7 @@ public class PurpurWorldConfig { set("mobs.strider.attributes.max_health", oldValue); } striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth); @@ -786,7 +786,7 @@ index d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa } public boolean traderLlamaRidable = false; -@@ -1457,6 +1497,7 @@ public class PurpurWorldConfig { +@@ -1464,6 +1504,7 @@ public class PurpurWorldConfig { public double traderLlamaJumpStrengthMax = 0.5D; public double traderLlamaMovementSpeedMin = 0.175D; public double traderLlamaMovementSpeedMax = 0.175D; @@ -794,7 +794,7 @@ index d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -1473,6 +1514,7 @@ public class PurpurWorldConfig { +@@ -1480,6 +1521,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 d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa } public boolean tropicalFishRidable = false; -@@ -1493,6 +1535,7 @@ public class PurpurWorldConfig { +@@ -1500,6 +1542,7 @@ public class PurpurWorldConfig { public boolean turtleEggsBreakFromExpOrbs = true; public boolean turtleEggsBreakFromItems = true; public boolean turtleEggsBreakFromMinecarts = true; @@ -810,7 +810,7 @@ index d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa private void turtleEggSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -1505,6 +1548,7 @@ public class PurpurWorldConfig { +@@ -1512,6 +1555,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 d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa } public boolean vexRidable = false; -@@ -1533,6 +1577,7 @@ public class PurpurWorldConfig { +@@ -1540,6 +1584,7 @@ public class PurpurWorldConfig { public int villagerSpawnIronGolemRadius = 0; public int villagerSpawnIronGolemLimit = 0; public boolean villagerCanBreed = true; @@ -826,7 +826,7 @@ index d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1549,6 +1594,7 @@ public class PurpurWorldConfig { +@@ -1556,6 +1601,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 d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa } public boolean vindicatorRidable = false; -@@ -1642,6 +1688,7 @@ public class PurpurWorldConfig { +@@ -1649,6 +1695,7 @@ public class PurpurWorldConfig { public boolean wolfRidable = false; public boolean wolfRidableInWater = false; public double wolfMaxHealth = 8.0D; @@ -842,7 +842,7 @@ index d7f9e34ea49b786e515a75969ba088fe8f84fb52..8777f901c5b04e0465559aa00382dbfa private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -1651,6 +1698,7 @@ public class PurpurWorldConfig { +@@ -1658,6 +1705,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 d5e300ab0..df1e5e149 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 8777f901c5b04e0465559aa00382dbfa3b3cbef3..8cbbe6bcebe67ac1613747a94312994534395fa9 100644 +index f40cc359bb7f68e3332014c43c747b07455bff74..3cbda02809a4be857b22941716cffc8f39109359 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -90,8 +90,10 @@ public class PurpurWorldConfig { +@@ -97,8 +97,10 @@ public class PurpurWorldConfig { } public float armorstandStepHeight = 0.0F; @@ -156,7 +156,7 @@ index 8777f901c5b04e0465559aa00382dbfa3b3cbef3..8cbbe6bcebe67ac1613747a943129945 } public int daytimeTicks = 12000; -@@ -333,6 +335,7 @@ public class PurpurWorldConfig { +@@ -340,6 +342,7 @@ public class PurpurWorldConfig { public boolean entitiesCanUsePortals = true; public boolean milkCuresBadOmen = true; public boolean persistentTileEntityDisplayNames = false; @@ -164,7 +164,7 @@ index 8777f901c5b04e0465559aa00382dbfa3b3cbef3..8cbbe6bcebe67ac1613747a943129945 public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -345,6 +348,7 @@ public class PurpurWorldConfig { +@@ -352,6 +355,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 01875ec09..8bc807698 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 8d79d5737cf21f0f85d2110c77a045b033a9d7b9..2634fef87b0535e048f51e53a351540ab0c23584 100644 +index 3cbda02809a4be857b22941716cffc8f39109359..bc5b6c99697fd8fc31d5ec545756fa1d7a161176 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -91,9 +91,11 @@ public class PurpurWorldConfig { +@@ -98,9 +98,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 3783d6e85..f58dab978 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 18ddc7b26898a1f63bbdba02b63a0abcf10edd85..a5dee4b756e4e66255f634e025c069f874f592f4 100644 +index bc5b6c99697fd8fc31d5ec545756fa1d7a161176..97c50c0d0f2f5466f56f32afd544c7d85181d20e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -401,6 +401,11 @@ public class PurpurWorldConfig { +@@ -408,6 +408,11 @@ public class PurpurWorldConfig { } } @@ -97,7 +97,7 @@ index 18ddc7b26898a1f63bbdba02b63a0abcf10edd85..a5dee4b756e4e66255f634e025c069f8 public boolean dispenserApplyCursedArmor = true; public boolean dispenserPlaceAnvils = false; private void dispenserSettings() { -@@ -464,6 +469,16 @@ public class PurpurWorldConfig { +@@ -471,6 +476,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 3a21a2f3c..103743b12 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 a5dee4b756e4e66255f634e025c069f874f592f4..0888eaf81da0700f5dbb36ae3a89fbf653af92f7 100644 +index 97c50c0d0f2f5466f56f32afd544c7d85181d20e..241377857a5ba67b22300b1be407c8322b089f52 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -402,8 +402,10 @@ public class PurpurWorldConfig { +@@ -409,8 +409,10 @@ public class PurpurWorldConfig { } public double caveVinesGrowthModifier = 0.10D; @@ -117,7 +117,7 @@ index a5dee4b756e4e66255f634e025c069f874f592f4..0888eaf81da0700f5dbb36ae3a89fbf6 } public boolean dispenserApplyCursedArmor = true; -@@ -436,6 +438,11 @@ public class PurpurWorldConfig { +@@ -443,6 +445,11 @@ public class PurpurWorldConfig { lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether); } @@ -129,7 +129,7 @@ index a5dee4b756e4e66255f634e025c069f874f592f4..0888eaf81da0700f5dbb36ae3a89fbf6 public boolean respawnAnchorExplode = true; public double respawnAnchorExplosionPower = 5.0D; public boolean respawnAnchorExplosionFire = true; -@@ -470,13 +477,17 @@ public class PurpurWorldConfig { +@@ -477,13 +484,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 d3f9e1b3d..0542d8ca9 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 0888eaf81da0700f5dbb36ae3a89fbf653af92f7..cd4ea52298aa54c08363125888e18c0bc2046319 100644 +index 241377857a5ba67b22300b1be407c8322b089f52..b38a2ed581653fcd17995a66fb509a449390bc02 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -773,6 +773,7 @@ public class PurpurWorldConfig { +@@ -780,6 +780,7 @@ public class PurpurWorldConfig { public boolean endermanRidableInWater = false; public double endermanMaxHealth = 40.0D; public boolean endermanAllowGriefing = true; @@ -32,7 +32,7 @@ index 0888eaf81da0700f5dbb36ae3a89fbf653af92f7..cd4ea52298aa54c08363125888e18c0b private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -783,6 +784,7 @@ public class PurpurWorldConfig { +@@ -790,6 +791,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 a91c9f4f2..49f71d1fd 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 147681048f24ea75ba7ddb0a019a83703a191e74..aaca5c8007ce8a33ecec0b9ff057c59a4c2778a3 100644 +index b38a2ed581653fcd17995a66fb509a449390bc02..5628b807c63f371c2fddf544b24bd31d5a7fb452 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -277,6 +277,11 @@ public class PurpurWorldConfig { +@@ -284,6 +284,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 8ff574d72..8e15a9580 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 05238fefda24c5f2c21eae51a7ded213e10e9de0..bfaf307b04d20d6c9fa009ac7138a51a984e1e40 100644 +index 5628b807c63f371c2fddf544b24bd31d5a7fb452..7658c497c374412df0b862c520036d9916d7a845 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1762,6 +1762,7 @@ public class PurpurWorldConfig { +@@ -1769,6 +1769,7 @@ public class PurpurWorldConfig { public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; @@ -55,7 +55,7 @@ index 05238fefda24c5f2c21eae51a7ded213e10e9de0..bfaf307b04d20d6c9fa009ac7138a51a private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1776,6 +1777,11 @@ public class PurpurWorldConfig { +@@ -1783,6 +1784,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 3c001764a..d710a63e4 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 ef742c14be5920db31fb291f1b93b671c5f59e30..3572f04b329be012172451f552df3d0a0aaf72ae 100644 +index 7658c497c374412df0b862c520036d9916d7a845..50ed815e0d91ffdcdc0a15186a42a32bebe12a9f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -119,8 +119,10 @@ public class PurpurWorldConfig { +@@ -126,8 +126,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 a18604744..04f30f9ee 100644 --- a/patches/server/0131-Add-boat-fall-damage-config.patch +++ b/patches/server/0131-Add-boat-fall-damage-config.patch @@ -27,10 +27,10 @@ index 1fbb9242f2dcc83befc1c91e55565e73f721af95..790a60e9375e4eea741e0b3769dda393 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 02f129b381a9fe6e0c187658776d82679aed9926..89d26b983060315473d1eb9980dd913f75d341ba 100644 +index 50ed815e0d91ffdcdc0a15186a42a32bebe12a9f..9ca45be8960b08368057f2a1adae2fb7dea1346b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -340,6 +340,7 @@ public class PurpurWorldConfig { +@@ -347,6 +347,7 @@ public class PurpurWorldConfig { public boolean useBetterMending = false; public boolean boatEjectPlayersOnLand = false; @@ -38,7 +38,7 @@ index 02f129b381a9fe6e0c187658776d82679aed9926..89d26b983060315473d1eb9980dd913f public boolean disableDropsOnCrammingDeath = false; public boolean entitiesCanUsePortals = true; public boolean milkCuresBadOmen = true; -@@ -353,6 +354,7 @@ public class PurpurWorldConfig { +@@ -360,6 +361,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 f091dd4c0..2ef626a89 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 89d26b983060315473d1eb9980dd913f75d341ba..dade4cb0165e8ff5bab2164995dede96b8f17023 100644 +index 9ca45be8960b08368057f2a1adae2fb7dea1346b..4cdb6bbd43dad2e5e2504373cd50304dfc8cc28b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1456,6 +1456,10 @@ public class PurpurWorldConfig { +@@ -1463,6 +1463,10 @@ public class PurpurWorldConfig { public double snowGolemMaxHealth = 4.0D; public boolean snowGolemDropsPumpkin = true; public boolean snowGolemPutPumpkinBack = false; @@ -37,7 +37,7 @@ index 89d26b983060315473d1eb9980dd913f75d341ba..dade4cb0165e8ff5bab2164995dede96 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1468,6 +1472,10 @@ public class PurpurWorldConfig { +@@ -1475,6 +1479,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/0134-EMC-Configurable-disable-give-dropping.patch b/patches/server/0134-EMC-Configurable-disable-give-dropping.patch index d48becb09..6f904fb73 100644 --- a/patches/server/0134-EMC-Configurable-disable-give-dropping.patch +++ b/patches/server/0134-EMC-Configurable-disable-give-dropping.patch @@ -20,10 +20,10 @@ index a0dc380e90415de9068ea408d62a1605c82631df..60fd566f7e1499ecf2ad91216a667f12 itemStack.setCount(1); ItemEntity itemEntity2 = serverPlayer.drop(itemStack, false, false, true); // Paper - Fix duplicating /give items on item drop cancel diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 327dc3b4a06ed180521153c4ce5c57dfdf560aef..a5b9153286236eb2a88404f7d3321ecb32c8aa82 100644 +index 1d9fa061b0a109296a1bcc7d06a7786ddc76d1b9..9d2b3f57779b1bc9732636a4618ef58ce7f6f722 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -293,6 +293,11 @@ public class PurpurConfig { +@@ -317,6 +317,11 @@ public class PurpurConfig { useAlternateKeepAlive = getBoolean("settings.use-alternate-keepalive", useAlternateKeepAlive); } diff --git a/patches/server/0135-Lobotomize-stuck-villagers.patch b/patches/server/0135-Lobotomize-stuck-villagers.patch index 10a1d675a..068e33a87 100644 --- a/patches/server/0135-Lobotomize-stuck-villagers.patch +++ b/patches/server/0135-Lobotomize-stuck-villagers.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Lobotomize stuck villagers diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 1e05cc98a332e5b115c4670e5331e679117c6629..84142a42111ff03827297c522b7ce164b9a28276 100644 +index bb3572370a86519a92b7b3dab0482cd1527de19d..9a460eeb48c14590d28d071cfa5a925157e837c5 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -142,6 +142,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -53,10 +53,10 @@ index 1e05cc98a332e5b115c4670e5331e679117c6629..84142a42111ff03827297c522b7ce164 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 dade4cb0165e8ff5bab2164995dede96b8f17023..f7acaa7742b9a0e79db7d26d08de5128ae683f6a 100644 +index 4cdb6bbd43dad2e5e2504373cd50304dfc8cc28b..9deea399542b17539db47dcfad778bafe57f0fd1 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1629,6 +1629,8 @@ public class PurpurWorldConfig { +@@ -1636,6 +1636,8 @@ public class PurpurWorldConfig { public int villagerSpawnIronGolemLimit = 0; public boolean villagerCanBreed = true; public int villagerBreedingTicks = 6000; @@ -65,7 +65,7 @@ index dade4cb0165e8ff5bab2164995dede96b8f17023..f7acaa7742b9a0e79db7d26d08de5128 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1646,6 +1648,13 @@ public class PurpurWorldConfig { +@@ -1653,6 +1655,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 b0eb49526..75a64225b 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 @@ -145,7 +145,7 @@ index b615dc2a2127f0874775d1707e96edfb4d95b987..72ae6b3282aac806ae11b87024ee940e brain.setMemory(MemoryModuleType.SECONDARY_JOB_SITE, list); } else { diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 84142a42111ff03827297c522b7ce164b9a28276..3b404c12ba12d75caaeb2161eb18abaf3c14ae57 100644 +index 9a460eeb48c14590d28d071cfa5a925157e837c5..1cc8349d08ab6877a15075cf71236b7ae07314cc 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -236,7 +236,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -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 f7acaa7742b9a0e79db7d26d08de5128ae683f6a..13b445ded8bfe80617dd5e58ed94ebce630b786a 100644 +index 9deea399542b17539db47dcfad778bafe57f0fd1..46370a67f9da9f62949249fb00b74f33b51685e5 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1631,6 +1631,8 @@ public class PurpurWorldConfig { +@@ -1638,6 +1638,8 @@ public class PurpurWorldConfig { public int villagerBreedingTicks = 6000; public boolean villagerLobotomizeEnabled = false; public int villagerLobotomizeCheck = 60; @@ -197,7 +197,7 @@ index f7acaa7742b9a0e79db7d26d08de5128ae683f6a..13b445ded8bfe80617dd5e58ed94ebce private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1655,6 +1657,8 @@ public class PurpurWorldConfig { +@@ -1662,6 +1664,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 cf05b555d..6c3de661c 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 13b445ded8bfe80617dd5e58ed94ebce630b786a..e664e7bcecbe69894e3bf950374faf202f05c667 100644 +index 46370a67f9da9f62949249fb00b74f33b51685e5..5da92d2fba132cf48cd726da54fa51c487d434e0 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1865,6 +1865,7 @@ public class PurpurWorldConfig { +@@ -1872,6 +1872,7 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinJockeyOnlyBaby = true; public double zombifiedPiglinJockeyChance = 0.05D; public boolean zombifiedPiglinJockeyTryExistingChickens = true; @@ -46,7 +46,7 @@ index 13b445ded8bfe80617dd5e58ed94ebce630b786a..e664e7bcecbe69894e3bf950374faf20 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -1878,5 +1879,6 @@ public class PurpurWorldConfig { +@@ -1885,5 +1886,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 3245314aa..9c6e67141 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 e664e7bcecbe69894e3bf950374faf202f05c667..f5e385a371f7bd2da4d2d738b009e4ad62209019 100644 +index 5da92d2fba132cf48cd726da54fa51c487d434e0..3250e597d9cf9a7d9d98ed728049169786f94c71 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1752,6 +1752,8 @@ public class PurpurWorldConfig { +@@ -1759,6 +1759,8 @@ public class PurpurWorldConfig { public boolean wolfRidable = false; public boolean wolfRidableInWater = false; public double wolfMaxHealth = 8.0D; @@ -213,7 +213,7 @@ index e664e7bcecbe69894e3bf950374faf202f05c667..f5e385a371f7bd2da4d2d738b009e4ad public int wolfBreedingTicks = 6000; private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); -@@ -1762,6 +1764,8 @@ public class PurpurWorldConfig { +@@ -1769,6 +1771,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 41a94d13b..66ce864ac 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 f5e385a371f7bd2da4d2d738b009e4ad62209019..28a4e632d2c760d0b3a4d911a97fef0784a14b10 100644 +index 3250e597d9cf9a7d9d98ed728049169786f94c71..e4b61a59f497eb7749883e67a05303c457f8fb44 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1752,6 +1752,7 @@ public class PurpurWorldConfig { +@@ -1759,6 +1759,7 @@ public class PurpurWorldConfig { public boolean wolfRidable = false; public boolean wolfRidableInWater = false; public double wolfMaxHealth = 8.0D; @@ -35,7 +35,7 @@ index f5e385a371f7bd2da4d2d738b009e4ad62209019..28a4e632d2c760d0b3a4d911a97fef07 public boolean wolfMilkCuresRabies = true; public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; -@@ -1764,6 +1765,11 @@ public class PurpurWorldConfig { +@@ -1771,6 +1772,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 a9145ff4f..78ddd85fc 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 28a4e632d2c760d0b3a4d911a97fef0784a14b10..635c6ed621823b127b4806cee1e498b7f934640e 100644 +index e4b61a59f497eb7749883e67a05303c457f8fb44..97e3ac74041572bbb34e5327133eb3249b334f6a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1160,6 +1160,7 @@ public class PurpurWorldConfig { +@@ -1167,6 +1167,7 @@ public class PurpurWorldConfig { public float phantomFlameDamage = 1.0F; public int phantomFlameFireTime = 8; public boolean phantomAllowGriefing = false; @@ -28,7 +28,7 @@ index 28a4e632d2c760d0b3a4d911a97fef0784a14b10..635c6ed621823b127b4806cee1e498b7 public double phantomMaxHealth = 20.0D; public double phantomAttackedByCrystalRadius = 0.0D; public float phantomAttackedByCrystalDamage = 1.0F; -@@ -1186,6 +1187,7 @@ public class PurpurWorldConfig { +@@ -1193,6 +1194,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 750c424fd..b4fd55b27 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 635c6ed621823b127b4806cee1e498b7f934640e..a2ed1d40fbca48d227010a98c5bfceb7afb917c3 100644 +index 97e3ac74041572bbb34e5327133eb3249b334f6a..675bf59fc4762f2675cd17cc2429e297da8d458e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -417,6 +417,11 @@ public class PurpurWorldConfig { +@@ -424,6 +424,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 c062a6b4d..d1fa0cc72 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 a2ed1d40fbca48d227010a98c5bfceb7afb917c3..c70a6b4e706fedb3aceb9df0371bceff44f86492 100644 +index 675bf59fc4762f2675cd17cc2429e297da8d458e..2b7e0928ef466157cc701f9f919ac72a4c3558ee 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1535,6 +1535,7 @@ public class PurpurWorldConfig { +@@ -1542,6 +1542,7 @@ public class PurpurWorldConfig { public boolean striderRidableInWater = false; public double striderMaxHealth = 20.0D; public int striderBreedingTicks = 6000; @@ -39,7 +39,7 @@ index a2ed1d40fbca48d227010a98c5bfceb7afb917c3..c70a6b4e706fedb3aceb9df0371bceff private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1545,6 +1546,7 @@ public class PurpurWorldConfig { +@@ -1552,6 +1553,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 17f52bc00..ca373eb79 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 4309aff1fed072f63ed466fcd0dfb9872f0e91ea..cfff7b76f993d5bf134d1de27052d6e33dd03a66 100644 +index 2b7e0928ef466157cc701f9f919ac72a4c3558ee..72f5c4cff712bad9a82ddbd84656dd1ef426b116 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -256,6 +256,19 @@ public class PurpurWorldConfig { +@@ -263,6 +263,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 ab4c7e8c8..70ef9a856 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 070960881e097c69a9227893153ae352493e4f37..19fe72cb76aaf6ed87de8aae49f31aa9d5668c00 100644 +index 72f5c4cff712bad9a82ddbd84656dd1ef426b116..4f05a6242af095627d85ac34003208d092fb96cc 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -356,9 +356,12 @@ public class PurpurWorldConfig { +@@ -363,9 +363,12 @@ public class PurpurWorldConfig { public boolean boatsDoFallDamage = true; public boolean disableDropsOnCrammingDeath = false; public boolean entitiesCanUsePortals = true; @@ -409,7 +409,7 @@ index 070960881e097c69a9227893153ae352493e4f37..19fe72cb76aaf6ed87de8aae49f31aa9 public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -370,9 +373,12 @@ public class PurpurWorldConfig { +@@ -377,9 +380,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 070960881e097c69a9227893153ae352493e4f37..19fe72cb76aaf6ed87de8aae49f31aa9 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); -@@ -442,9 +448,11 @@ public class PurpurWorldConfig { +@@ -449,9 +455,11 @@ public class PurpurWorldConfig { dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils); } @@ -434,7 +434,7 @@ index 070960881e097c69a9227893153ae352493e4f37..19fe72cb76aaf6ed87de8aae49f31aa9 farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); farmlandAlpha = getBoolean("blocks.farmland.use-alpha-farmland", farmlandAlpha); } -@@ -470,6 +478,11 @@ public class PurpurWorldConfig { +@@ -477,6 +485,11 @@ public class PurpurWorldConfig { kelpMaxGrowthAge = getInt("blocks.kelp.max-growth-age", kelpMaxGrowthAge); } @@ -446,7 +446,7 @@ index 070960881e097c69a9227893153ae352493e4f37..19fe72cb76aaf6ed87de8aae49f31aa9 public boolean respawnAnchorExplode = true; public double respawnAnchorExplosionPower = 5.0D; public boolean respawnAnchorExplosionFire = true; -@@ -503,6 +516,11 @@ public class PurpurWorldConfig { +@@ -510,6 +523,11 @@ public class PurpurWorldConfig { stonecutterDamage = (float) getDouble("blocks.stonecutter.damage", stonecutterDamage); } @@ -458,7 +458,7 @@ index 070960881e097c69a9227893153ae352493e4f37..19fe72cb76aaf6ed87de8aae49f31aa9 public double twistingVinesGrowthModifier = 0.10D; public int twistingVinesMaxGrowthAge = 25; private void twistingVinesSettings() { -@@ -681,6 +699,7 @@ public class PurpurWorldConfig { +@@ -688,6 +706,7 @@ public class PurpurWorldConfig { public double creeperMaxHealth = 20.0D; public double creeperChargedChance = 0.0D; public boolean creeperAllowGriefing = true; @@ -466,7 +466,7 @@ index 070960881e097c69a9227893153ae352493e4f37..19fe72cb76aaf6ed87de8aae49f31aa9 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -692,6 +711,7 @@ public class PurpurWorldConfig { +@@ -699,6 +718,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 070960881e097c69a9227893153ae352493e4f37..19fe72cb76aaf6ed87de8aae49f31aa9 } public boolean dolphinRidable = false; -@@ -779,6 +799,7 @@ public class PurpurWorldConfig { +@@ -786,6 +806,7 @@ public class PurpurWorldConfig { public double enderDragonMaxY = 256D; public double enderDragonMaxHealth = 200.0D; public boolean enderDragonAlwaysDropsFullExp = false; @@ -482,7 +482,7 @@ index 070960881e097c69a9227893153ae352493e4f37..19fe72cb76aaf6ed87de8aae49f31aa9 private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -794,6 +815,7 @@ public class PurpurWorldConfig { +@@ -801,6 +822,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 070960881e097c69a9227893153ae352493e4f37..19fe72cb76aaf6ed87de8aae49f31aa9 } public boolean endermanRidable = false; -@@ -801,6 +823,7 @@ public class PurpurWorldConfig { +@@ -808,6 +830,7 @@ public class PurpurWorldConfig { public double endermanMaxHealth = 40.0D; public boolean endermanAllowGriefing = true; public boolean endermanDespawnEvenWithBlock = false; @@ -498,7 +498,7 @@ index 070960881e097c69a9227893153ae352493e4f37..19fe72cb76aaf6ed87de8aae49f31aa9 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -812,6 +835,7 @@ public class PurpurWorldConfig { +@@ -819,6 +842,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 070960881e097c69a9227893153ae352493e4f37..19fe72cb76aaf6ed87de8aae49f31aa9 } public boolean endermiteRidable = false; -@@ -831,6 +855,7 @@ public class PurpurWorldConfig { +@@ -838,6 +862,7 @@ public class PurpurWorldConfig { public boolean evokerRidable = false; public boolean evokerRidableInWater = false; public double evokerMaxHealth = 24.0D; @@ -514,7 +514,7 @@ index 070960881e097c69a9227893153ae352493e4f37..19fe72cb76aaf6ed87de8aae49f31aa9 private void evokerSettings() { evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable); evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater); -@@ -840,6 +865,7 @@ public class PurpurWorldConfig { +@@ -847,6 +872,7 @@ public class PurpurWorldConfig { set("mobs.evoker.attributes.max_health", oldValue); } evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth); @@ -522,7 +522,7 @@ index 070960881e097c69a9227893153ae352493e4f37..19fe72cb76aaf6ed87de8aae49f31aa9 } public boolean foxRidable = false; -@@ -847,6 +873,7 @@ public class PurpurWorldConfig { +@@ -854,6 +880,7 @@ public class PurpurWorldConfig { public double foxMaxHealth = 10.0D; public boolean foxTypeChangesWithTulips = false; public int foxBreedingTicks = 6000; @@ -530,7 +530,7 @@ index 070960881e097c69a9227893153ae352493e4f37..19fe72cb76aaf6ed87de8aae49f31aa9 private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -858,6 +885,7 @@ public class PurpurWorldConfig { +@@ -865,6 +892,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 070960881e097c69a9227893153ae352493e4f37..19fe72cb76aaf6ed87de8aae49f31aa9 } public boolean ghastRidable = false; -@@ -1253,6 +1281,7 @@ public class PurpurWorldConfig { +@@ -1260,6 +1288,7 @@ public class PurpurWorldConfig { public boolean piglinRidable = false; public boolean piglinRidableInWater = false; public double piglinMaxHealth = 16.0D; @@ -546,7 +546,7 @@ index 070960881e097c69a9227893153ae352493e4f37..19fe72cb76aaf6ed87de8aae49f31aa9 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1262,6 +1291,7 @@ public class PurpurWorldConfig { +@@ -1269,6 +1298,7 @@ public class PurpurWorldConfig { set("mobs.piglin.attributes.max_health", oldValue); } piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth); @@ -554,7 +554,7 @@ index 070960881e097c69a9227893153ae352493e4f37..19fe72cb76aaf6ed87de8aae49f31aa9 } public boolean piglinBruteRidable = false; -@@ -1281,6 +1311,7 @@ public class PurpurWorldConfig { +@@ -1288,6 +1318,7 @@ public class PurpurWorldConfig { public boolean pillagerRidable = false; public boolean pillagerRidableInWater = false; public double pillagerMaxHealth = 24.0D; @@ -562,7 +562,7 @@ index 070960881e097c69a9227893153ae352493e4f37..19fe72cb76aaf6ed87de8aae49f31aa9 private void pillagerSettings() { pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); -@@ -1290,6 +1321,7 @@ public class PurpurWorldConfig { +@@ -1297,6 +1328,7 @@ public class PurpurWorldConfig { set("mobs.pillager.attributes.max_health", oldValue); } pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth); @@ -570,7 +570,7 @@ index 070960881e097c69a9227893153ae352493e4f37..19fe72cb76aaf6ed87de8aae49f31aa9 } public boolean polarBearRidable = false; -@@ -1331,6 +1363,7 @@ public class PurpurWorldConfig { +@@ -1338,6 +1370,7 @@ public class PurpurWorldConfig { public double rabbitNaturalToast = 0.0D; public double rabbitNaturalKiller = 0.0D; public int rabbitBreedingTicks = 6000; @@ -578,7 +578,7 @@ index 070960881e097c69a9227893153ae352493e4f37..19fe72cb76aaf6ed87de8aae49f31aa9 private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1343,11 +1376,13 @@ public class PurpurWorldConfig { +@@ -1350,11 +1383,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 070960881e097c69a9227893153ae352493e4f37..19fe72cb76aaf6ed87de8aae49f31aa9 private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -1357,6 +1392,7 @@ public class PurpurWorldConfig { +@@ -1364,6 +1399,7 @@ public class PurpurWorldConfig { set("mobs.ravager.attributes.max_health", oldValue); } ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth); @@ -600,7 +600,7 @@ index 070960881e097c69a9227893153ae352493e4f37..19fe72cb76aaf6ed87de8aae49f31aa9 } public boolean salmonRidable = false; -@@ -1375,6 +1411,7 @@ public class PurpurWorldConfig { +@@ -1382,6 +1418,7 @@ public class PurpurWorldConfig { public boolean sheepRidableInWater = false; public double sheepMaxHealth = 8.0D; public int sheepBreedingTicks = 6000; @@ -608,7 +608,7 @@ index 070960881e097c69a9227893153ae352493e4f37..19fe72cb76aaf6ed87de8aae49f31aa9 private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -1385,6 +1422,7 @@ public class PurpurWorldConfig { +@@ -1392,6 +1429,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 070960881e097c69a9227893153ae352493e4f37..19fe72cb76aaf6ed87de8aae49f31aa9 } public boolean shulkerRidable = false; -@@ -1404,6 +1442,7 @@ public class PurpurWorldConfig { +@@ -1411,6 +1449,7 @@ public class PurpurWorldConfig { public boolean silverfishRidable = false; public boolean silverfishRidableInWater = false; public double silverfishMaxHealth = 8.0D; @@ -624,7 +624,7 @@ index 070960881e097c69a9227893153ae352493e4f37..19fe72cb76aaf6ed87de8aae49f31aa9 private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -1413,6 +1452,7 @@ public class PurpurWorldConfig { +@@ -1420,6 +1459,7 @@ public class PurpurWorldConfig { set("mobs.silverfish.attributes.max_health", oldValue); } silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth); @@ -632,7 +632,7 @@ index 070960881e097c69a9227893153ae352493e4f37..19fe72cb76aaf6ed87de8aae49f31aa9 } public boolean skeletonRidable = false; -@@ -1480,6 +1520,7 @@ public class PurpurWorldConfig { +@@ -1487,6 +1527,7 @@ public class PurpurWorldConfig { public int snowGolemSnowBallMax = 20; public float snowGolemSnowBallModifier = 10.0F; public double snowGolemAttackDistance = 1.25D; @@ -640,7 +640,7 @@ index 070960881e097c69a9227893153ae352493e4f37..19fe72cb76aaf6ed87de8aae49f31aa9 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1496,6 +1537,7 @@ public class PurpurWorldConfig { +@@ -1503,6 +1544,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 070960881e097c69a9227893153ae352493e4f37..19fe72cb76aaf6ed87de8aae49f31aa9 } public boolean squidRidable = false; -@@ -1655,6 +1697,7 @@ public class PurpurWorldConfig { +@@ -1662,6 +1704,7 @@ public class PurpurWorldConfig { public int villagerLobotomizeCheck = 60; public boolean villagerClericsFarmWarts = false; public boolean villagerClericFarmersThrowWarts = true; @@ -656,7 +656,7 @@ index 070960881e097c69a9227893153ae352493e4f37..19fe72cb76aaf6ed87de8aae49f31aa9 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1681,6 +1724,7 @@ public class PurpurWorldConfig { +@@ -1688,6 +1731,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 070960881e097c69a9227893153ae352493e4f37..19fe72cb76aaf6ed87de8aae49f31aa9 } public boolean vindicatorRidable = false; -@@ -1737,6 +1781,7 @@ public class PurpurWorldConfig { +@@ -1744,6 +1788,7 @@ public class PurpurWorldConfig { public double witherMaxHealth = 300.0D; public float witherHealthRegenAmount = 1.0f; public int witherHealthRegenDelay = 20; @@ -672,7 +672,7 @@ index 070960881e097c69a9227893153ae352493e4f37..19fe72cb76aaf6ed87de8aae49f31aa9 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1753,6 +1798,7 @@ public class PurpurWorldConfig { +@@ -1760,6 +1805,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 070960881e097c69a9227893153ae352493e4f37..19fe72cb76aaf6ed87de8aae49f31aa9 } public boolean witherSkeletonRidable = false; -@@ -1820,6 +1866,7 @@ public class PurpurWorldConfig { +@@ -1827,6 +1873,7 @@ public class PurpurWorldConfig { public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; public Difficulty zombieBreakDoorMinDifficulty = Difficulty.HARD; @@ -688,7 +688,7 @@ index 070960881e097c69a9227893153ae352493e4f37..19fe72cb76aaf6ed87de8aae49f31aa9 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1839,6 +1886,7 @@ public class PurpurWorldConfig { +@@ -1846,6 +1893,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 0b4d6bc99..d87054001 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 19fe72cb76aaf6ed87de8aae49f31aa9d5668c00..3d100010d35c3c13a9bef186d2b1620c91fc0ecb 100644 +index 4f05a6242af095627d85ac34003208d092fb96cc..0022a46299409d567c70d4bea5d1efc7c83e1dbb 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -359,6 +359,7 @@ public class PurpurWorldConfig { +@@ -366,6 +366,7 @@ public class PurpurWorldConfig { public boolean entitiesPickUpLootBypassMobGriefing = false; public boolean fireballsBypassMobGriefing = false; public boolean milkCuresBadOmen = true; @@ -33,7 +33,7 @@ index 19fe72cb76aaf6ed87de8aae49f31aa9d5668c00..3d100010d35c3c13a9bef186d2b1620c public boolean persistentTileEntityDisplayNames = false; public boolean persistentDroppableEntityDisplayNames = false; public boolean projectilesBypassMobGriefing = false; -@@ -376,6 +377,7 @@ public class PurpurWorldConfig { +@@ -383,6 +384,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 e286547ab..12d689785 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 3d100010d35c3c13a9bef186d2b1620c91fc0ecb..5e6a1e95d410abf68ee44abaa93fe15913ccba73 100644 +index 0022a46299409d567c70d4bea5d1efc7c83e1dbb..c25a85c7e167207b21bf53a802921fc54d21c1a8 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -358,6 +358,7 @@ public class PurpurWorldConfig { +@@ -365,6 +365,7 @@ public class PurpurWorldConfig { public boolean entitiesCanUsePortals = true; public boolean entitiesPickUpLootBypassMobGriefing = false; public boolean fireballsBypassMobGriefing = false; @@ -89,7 +89,7 @@ index 3d100010d35c3c13a9bef186d2b1620c91fc0ecb..5e6a1e95d410abf68ee44abaa93fe159 public boolean milkCuresBadOmen = true; public boolean noteBlockIgnoreAbove = false; public boolean persistentTileEntityDisplayNames = false; -@@ -376,6 +377,7 @@ public class PurpurWorldConfig { +@@ -383,6 +384,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 831040c0a..e6c8bd612 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 5e6a1e95d410abf68ee44abaa93fe15913ccba73..8b5c90fd29696aadd0c897de6ca1be82790511c0 100644 +index c25a85c7e167207b21bf53a802921fc54d21c1a8..7bdab60d4437acdbfb54787e4c62bb935d3b7651 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -455,10 +455,16 @@ public class PurpurWorldConfig { +@@ -462,10 +462,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 efffecafa..0506153b9 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 3fc168278c29de591e989e38acf24c39bc6aea3f..1ab68e01a3594334ce356200712f64e4e063563e 100644 +index 7bdab60d4437acdbfb54787e4c62bb935d3b7651..309bfce0508b33e755f35875b025aa1413179955 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -92,10 +92,16 @@ public class PurpurWorldConfig { +@@ -99,10 +99,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 16d0e0c89..f6f2715b3 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 d362c9efbad593a7cd7efbcdba4acf1457abe4f7..1747d80315d7b11b7ccb21dd41324434e655b628 100644 +index 790a60e9375e4eea741e0b3769dda3937338746e..d2fc063236003c9c69ec251b214dfab40becdd25 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1136,6 +1136,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 1ab68e01a3594334ce356200712f64e4e063563e..a621a705fba7b6cdd255eda900296defbe4476b5 100644 +index 309bfce0508b33e755f35875b025aa1413179955..e1aca2c5253f26125e1154e75c8c2cbcd98af496 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -285,6 +285,7 @@ public class PurpurWorldConfig { +@@ -292,6 +292,7 @@ public class PurpurWorldConfig { public int playerDeathExpDropMax = 100; public boolean teleportIfOutsideBorder = false; public boolean totemOfUndyingWorksInInventory = false; @@ -48,7 +48,7 @@ index 1ab68e01a3594334ce356200712f64e4e063563e..a621a705fba7b6cdd255eda900296def 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); -@@ -296,6 +297,7 @@ public class PurpurWorldConfig { +@@ -303,6 +304,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 d33b4b4b2..405152f20 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 0727c7755f81ac1b0f29f7d874892b5ad32c5f53..ddf51a9e9771e4c9a40751d9b860ea76ad5648d8 100644 +index e1aca2c5253f26125e1154e75c8c2cbcd98af496..5507cf137dfc3167efdb19a550148e88e96c4a6b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -616,6 +616,7 @@ public class PurpurWorldConfig { +@@ -623,6 +623,7 @@ public class PurpurWorldConfig { public boolean blazeRidableInWater = false; public double blazeMaxY = 256D; public double blazeMaxHealth = 20.0D; @@ -81,7 +81,7 @@ index 0727c7755f81ac1b0f29f7d874892b5ad32c5f53..ddf51a9e9771e4c9a40751d9b860ea76 private void blazeSettings() { blazeRidable = getBoolean("mobs.blaze.ridable", blazeRidable); blazeRidableInWater = getBoolean("mobs.blaze.ridable-in-water", blazeRidableInWater); -@@ -626,6 +627,7 @@ public class PurpurWorldConfig { +@@ -633,6 +634,7 @@ public class PurpurWorldConfig { set("mobs.blaze.attributes.max_health", oldValue); } blazeMaxHealth = getDouble("mobs.blaze.attributes.max_health", blazeMaxHealth); @@ -89,7 +89,7 @@ index 0727c7755f81ac1b0f29f7d874892b5ad32c5f53..ddf51a9e9771e4c9a40751d9b860ea76 } public boolean catRidable = false; -@@ -842,6 +844,7 @@ public class PurpurWorldConfig { +@@ -849,6 +851,7 @@ public class PurpurWorldConfig { public boolean endermanAllowGriefing = true; public boolean endermanDespawnEvenWithBlock = false; public boolean endermanBypassMobGriefing = false; @@ -97,7 +97,7 @@ index 0727c7755f81ac1b0f29f7d874892b5ad32c5f53..ddf51a9e9771e4c9a40751d9b860ea76 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -854,6 +857,7 @@ public class PurpurWorldConfig { +@@ -861,6 +864,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 0727c7755f81ac1b0f29f7d874892b5ad32c5f53..ddf51a9e9771e4c9a40751d9b860ea76 } public boolean endermiteRidable = false; -@@ -1539,6 +1543,7 @@ public class PurpurWorldConfig { +@@ -1546,6 +1550,7 @@ public class PurpurWorldConfig { public float snowGolemSnowBallModifier = 10.0F; public double snowGolemAttackDistance = 1.25D; public boolean snowGolemBypassMobGriefing = false; @@ -113,7 +113,7 @@ index 0727c7755f81ac1b0f29f7d874892b5ad32c5f53..ddf51a9e9771e4c9a40751d9b860ea76 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1556,6 +1561,7 @@ public class PurpurWorldConfig { +@@ -1563,6 +1568,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 0727c7755f81ac1b0f29f7d874892b5ad32c5f53..ddf51a9e9771e4c9a40751d9b860ea76 } public boolean squidRidable = false; -@@ -1609,6 +1615,7 @@ public class PurpurWorldConfig { +@@ -1616,6 +1622,7 @@ public class PurpurWorldConfig { public double striderMaxHealth = 20.0D; public int striderBreedingTicks = 6000; public boolean striderGiveSaddleBack = false; @@ -129,7 +129,7 @@ index 0727c7755f81ac1b0f29f7d874892b5ad32c5f53..ddf51a9e9771e4c9a40751d9b860ea76 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1620,6 +1627,7 @@ public class PurpurWorldConfig { +@@ -1627,6 +1634,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 c0beaa587..f49423b58 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 ddf51a9e9771e4c9a40751d9b860ea76ad5648d8..707bd788b637ab7663dc7d83c974c6f0560ded6b 100644 +index 5507cf137dfc3167efdb19a550148e88e96c4a6b..261873cbcbf1bfdd4aa6527d14b68a97f2aec90b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -360,6 +360,7 @@ public class PurpurWorldConfig { +@@ -367,6 +367,7 @@ public class PurpurWorldConfig { } public boolean useBetterMending = false; @@ -70,7 +70,7 @@ index ddf51a9e9771e4c9a40751d9b860ea76ad5648d8..707bd788b637ab7663dc7d83c974c6f0 public boolean boatEjectPlayersOnLand = false; public boolean boatsDoFallDamage = true; public boolean disableDropsOnCrammingDeath = false; -@@ -379,6 +380,7 @@ public class PurpurWorldConfig { +@@ -386,6 +387,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 59676af5b..f34448b43 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 707bd788b637ab7663dc7d83c974c6f0560ded6b..e2acaee70a19c4cfadcf75ab176c3492965d8314 100644 +index 261873cbcbf1bfdd4aa6527d14b68a97f2aec90b..031745f64c3e79f5a0067bf09c069c65496652d1 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -462,6 +462,35 @@ public class PurpurWorldConfig { +@@ -469,6 +469,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 1e2214c27..136114849 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 e2acaee70a19c4cfadcf75ab176c3492965d8314..8762fbd0e8ee7e016dda12b70ec5e4e5f4b467da 100644 +index 031745f64c3e79f5a0067bf09c069c65496652d1..5b9998121d52d2b8390b95f1a4449ddadf543c22 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -851,6 +851,7 @@ public class PurpurWorldConfig { +@@ -858,6 +858,7 @@ public class PurpurWorldConfig { public double enderDragonMaxHealth = 200.0D; public boolean enderDragonAlwaysDropsFullExp = false; public boolean enderDragonBypassMobGriefing = false; @@ -40,7 +40,7 @@ index e2acaee70a19c4cfadcf75ab176c3492965d8314..8762fbd0e8ee7e016dda12b70ec5e4e5 private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -867,6 +868,7 @@ public class PurpurWorldConfig { +@@ -874,6 +875,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 e2acaee70a19c4cfadcf75ab176c3492965d8314..8762fbd0e8ee7e016dda12b70ec5e4e5 } public boolean endermanRidable = false; -@@ -1839,6 +1841,7 @@ public class PurpurWorldConfig { +@@ -1846,6 +1848,7 @@ public class PurpurWorldConfig { public float witherHealthRegenAmount = 1.0f; public int witherHealthRegenDelay = 20; public boolean witherBypassMobGriefing = false; @@ -56,7 +56,7 @@ index e2acaee70a19c4cfadcf75ab176c3492965d8314..8762fbd0e8ee7e016dda12b70ec5e4e5 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1856,6 +1859,7 @@ public class PurpurWorldConfig { +@@ -1863,6 +1866,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 d94506146..d13ba9dba 100644 --- a/patches/server/0161-Dont-run-with-scissors.patch +++ b/patches/server/0161-Dont-run-with-scissors.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Dont run with scissors! diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index c65a6ab9a30ad269a2caad9ab5fad77c4c7ce3aa..082deb251fa793561cc4366cc7b03d7b73bd02ba 100644 +index 5f6def82949d62bdfc74bcd15dffb4d946c20354..00d36af8db88f314bed2904386f1b827d5ec082e 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1575,6 +1575,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -22,10 +22,10 @@ index c65a6ab9a30ad269a2caad9ab5fad77c4c7ce3aa..082deb251fa793561cc4366cc7b03d7b this.lastGoodX = this.player.getX(); this.lastGoodY = this.player.getY(); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index e56519d674ef5031c642b99497bf46f9cfab03a0..f46005346663a7e29b0fa938cf6f469f3a340177 100644 +index 5b9998121d52d2b8390b95f1a4449ddadf543c22..b12404430997b17139324aef7ea61cc56682c51f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -146,6 +146,8 @@ public class PurpurWorldConfig { +@@ -153,6 +153,8 @@ public class PurpurWorldConfig { public List itemImmuneToExplosion = new ArrayList<>(); public List itemImmuneToFire = new ArrayList<>(); public List itemImmuneToLightning = new ArrayList<>(); @@ -34,7 +34,7 @@ index e56519d674ef5031c642b99497bf46f9cfab03a0..f46005346663a7e29b0fa938cf6f469f private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -183,6 +185,8 @@ public class PurpurWorldConfig { +@@ -190,6 +192,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 6c25ec3e1..56c510e09 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 f46005346663a7e29b0fa938cf6f469f3a340177..260153f7f32558766b75985e6d7a76c21c2b49ac 100644 +index b12404430997b17139324aef7ea61cc56682c51f..5b056cd60d13100980f50b56217207e160562701 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -290,6 +290,7 @@ public class PurpurWorldConfig { +@@ -297,6 +297,7 @@ public class PurpurWorldConfig { public boolean teleportIfOutsideBorder = false; public boolean totemOfUndyingWorksInInventory = false; public boolean playerFixStuckPortal = false; @@ -41,7 +41,7 @@ index f46005346663a7e29b0fa938cf6f469f3a340177..260153f7f32558766b75985e6d7a76c2 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); -@@ -302,6 +303,7 @@ public class PurpurWorldConfig { +@@ -309,6 +310,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 702578895..317e91f85 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 d76a2b7e8976c20d60dd3aeb4c5c67c1f5f17b36..e316f24579498a53c4e79bbb086adde4e3cd460c 100644 +index 5b056cd60d13100980f50b56217207e160562701..bfd78fd1c8877558d40aab90644fad1266450e3f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -517,6 +517,11 @@ public class PurpurWorldConfig { +@@ -524,6 +524,11 @@ public class PurpurWorldConfig { furnaceInfiniteFuel = getBoolean("blocks.furnace.infinite-fuel", furnaceInfiniteFuel); } 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 4218210ee..994db5fa4 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 39b2dcd904a222bdcb4e723af43dfc6762d8518e..3045a4fb9c316b36b3b908e6a58510675fa372a6 100644 +index bfd78fd1c8877558d40aab90644fad1266450e3f..1f419bc31e90a4a09fd65ba3de4a46688292bbce 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -148,6 +148,10 @@ public class PurpurWorldConfig { +@@ -155,6 +155,10 @@ public class PurpurWorldConfig { public List itemImmuneToLightning = new ArrayList<>(); public boolean dontRunWithScissors = false; public double scissorsRunningDamage = 1D; @@ -57,7 +57,7 @@ index 39b2dcd904a222bdcb4e723af43dfc6762d8518e..3045a4fb9c316b36b3b908e6a5851067 private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -187,6 +191,10 @@ public class PurpurWorldConfig { +@@ -194,6 +198,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 9e1c62f11..78b9e97f4 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 1747d80315d7b11b7ccb21dd41324434e655b628..d5ee740792699f2eab3965d4920de913bd76f18e 100644 +index d2fc063236003c9c69ec251b214dfab40becdd25..fedd506fe05b259c64dba4ce5ffab06cd2e717a8 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1299,7 +1299,7 @@ public class ServerPlayer extends Player { @@ -18,10 +18,10 @@ index 1747d80315d7b11b7ccb21dd41324434e655b628..d5ee740792699f2eab3965d4920de913 } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 3045a4fb9c316b36b3b908e6a58510675fa372a6..3cdf1832a1552e10d8fc36d06200439bc36de7e1 100644 +index 1f419bc31e90a4a09fd65ba3de4a46688292bbce..0086dd4f784cfe8d8f3fb7c531b32091f7f19b0a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -299,6 +299,7 @@ public class PurpurWorldConfig { +@@ -306,6 +306,7 @@ public class PurpurWorldConfig { public boolean totemOfUndyingWorksInInventory = false; public boolean playerFixStuckPortal = false; public boolean creativeOnePunch = false; @@ -29,7 +29,7 @@ index 3045a4fb9c316b36b3b908e6a58510675fa372a6..3cdf1832a1552e10d8fc36d06200439b 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); -@@ -312,6 +313,7 @@ public class PurpurWorldConfig { +@@ -319,6 +320,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 c2cda3f2f..5d27009ae 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 3bf5226ab5e94880761a35c6c1c4eaf1c80754cd..cd8efb49bea29fb6b0ad8037af16a02de6d9d98c 100644 +index 0086dd4f784cfe8d8f3fb7c531b32091f7f19b0a..04bfce54196b1a05ffcd5950c96922153082b7ff 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -899,6 +899,8 @@ public class PurpurWorldConfig { +@@ -906,6 +906,8 @@ public class PurpurWorldConfig { public boolean endermanDespawnEvenWithBlock = false; public boolean endermanBypassMobGriefing = false; public boolean endermanTakeDamageFromWater = true; @@ -30,7 +30,7 @@ index 3bf5226ab5e94880761a35c6c1c4eaf1c80754cd..cd8efb49bea29fb6b0ad8037af16a02d private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -907,11 +909,17 @@ public class PurpurWorldConfig { +@@ -914,11 +916,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 462f91f12..21a1eb7bf 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 cd8efb49bea29fb6b0ad8037af16a02de6d9d98c..9551a20dfefd8b917a84d5051d2510e1d4a68dcb 100644 +index 04bfce54196b1a05ffcd5950c96922153082b7ff..b9e3ddb7905dbbd91b856e7265f5dde9ecea3857 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -901,6 +901,8 @@ public class PurpurWorldConfig { +@@ -908,6 +908,8 @@ public class PurpurWorldConfig { public boolean endermanTakeDamageFromWater = true; public boolean endermanAggroEndermites = true; public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false; @@ -32,7 +32,7 @@ index cd8efb49bea29fb6b0ad8037af16a02de6d9d98c..9551a20dfefd8b917a84d5051d2510e1 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -920,6 +922,8 @@ public class PurpurWorldConfig { +@@ -927,6 +929,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 6f60422fa..e2fb3cf06 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 9551a20dfefd8b917a84d5051d2510e1d4a68dcb..29adeade6cfa4bcd3f0c058ea337c784be0f39ee 100644 +index b9e3ddb7905dbbd91b856e7265f5dde9ecea3857..1a0fd073cc4264a9bb1d2788bc36791d9d64c3aa 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -389,6 +389,7 @@ public class PurpurWorldConfig { +@@ -396,6 +396,7 @@ public class PurpurWorldConfig { public boolean persistentTileEntityDisplayNames = false; public boolean persistentDroppableEntityDisplayNames = false; public boolean projectilesBypassMobGriefing = false; @@ -47,7 +47,7 @@ index 9551a20dfefd8b917a84d5051d2510e1d4a68dcb..29adeade6cfa4bcd3f0c058ea337c784 public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -409,6 +410,7 @@ public class PurpurWorldConfig { +@@ -416,6 +417,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 0b29bb6e0..e8a4ddd5b 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 29adeade6cfa4bcd3f0c058ea337c784be0f39ee..5bbd9de46131c56aa6c5fb7df88d6f39527202c6 100644 +index 1a0fd073cc4264a9bb1d2788bc36791d9d64c3aa..c0065c0f3269b68c724b0d1771cf0b1473049c15 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1167,6 +1167,7 @@ public class PurpurWorldConfig { +@@ -1174,6 +1174,7 @@ public class PurpurWorldConfig { public double llamaMovementSpeedMin = 0.175D; public double llamaMovementSpeedMax = 0.175D; public int llamaBreedingTicks = 6000; @@ -43,7 +43,7 @@ index 29adeade6cfa4bcd3f0c058ea337c784be0f39ee..5bbd9de46131c56aa6c5fb7df88d6f39 private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1184,6 +1185,7 @@ public class PurpurWorldConfig { +@@ -1191,6 +1192,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 1208e5f7d..a6828b734 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 5bbd9de46131c56aa6c5fb7df88d6f39527202c6..a7e993f9325dfa00085a7445270b68bc64b4b676 100644 +index c0065c0f3269b68c724b0d1771cf0b1473049c15..3e83426a6c3e0c836726fb487da7bc5cb7e4166c 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -774,6 +774,7 @@ public class PurpurWorldConfig { +@@ -781,6 +781,7 @@ public class PurpurWorldConfig { public double creeperChargedChance = 0.0D; public boolean creeperAllowGriefing = true; public boolean creeperBypassMobGriefing = false; @@ -61,7 +61,7 @@ index 5bbd9de46131c56aa6c5fb7df88d6f39527202c6..a7e993f9325dfa00085a7445270b68bc private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -786,6 +787,7 @@ public class PurpurWorldConfig { +@@ -793,6 +794,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 9713d979a..4f29afeb9 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 a7e993f9325dfa00085a7445270b68bc64b4b676..e314a4dc6cd686897ed5409110be5861659b3ef6 100644 +index 3e83426a6c3e0c836726fb487da7bc5cb7e4166c..6a7827fd7f47dd4a6d46b7769ac9d0da3a108b3b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1477,6 +1477,7 @@ public class PurpurWorldConfig { +@@ -1484,6 +1484,7 @@ public class PurpurWorldConfig { public boolean ravagerRidableInWater = false; public double ravagerMaxHealth = 100.0D; public boolean ravagerBypassMobGriefing = false; @@ -42,7 +42,7 @@ index a7e993f9325dfa00085a7445270b68bc64b4b676..e314a4dc6cd686897ed5409110be5861 private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -1487,6 +1488,23 @@ public class PurpurWorldConfig { +@@ -1494,6 +1495,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 fc63c1d26..3c13b5553 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 e314a4dc6cd686897ed5409110be5861659b3ef6..b8f73bf7bb771e4b04ac7d07323bb774f9be612c 100644 +index 6a7827fd7f47dd4a6d46b7769ac9d0da3a108b3b..9b4731e9a9c60efce9eae15995aa447dec045ec4 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -473,6 +473,11 @@ public class PurpurWorldConfig { +@@ -480,6 +480,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 1c28b6bc5..100c2fb05 100644 --- a/patches/server/0174-Config-for-skipping-night.patch +++ b/patches/server/0174-Config-for-skipping-night.patch @@ -18,10 +18,10 @@ index 07e6d7b7a6d275010797c991be977d6136478c8b..f94c1b943488806d1336bd28ac9e8efd 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 0bf00191954f1b08661677f88b0c1c43f483eb5d..3cae0929bd136ec3cfa5893980fa686fec9c9770 100644 +index 9b4731e9a9c60efce9eae15995aa447dec045ec4..fa9c318e229b74b5aabf1a43245d1a125f55c4c6 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -300,6 +300,7 @@ public class PurpurWorldConfig { +@@ -307,6 +307,7 @@ public class PurpurWorldConfig { public boolean playerFixStuckPortal = false; public boolean creativeOnePunch = false; public boolean playerSleepNearMonsters = false; @@ -29,7 +29,7 @@ index 0bf00191954f1b08661677f88b0c1c43f483eb5d..3cae0929bd136ec3cfa5893980fa686f 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); -@@ -314,6 +315,7 @@ public class PurpurWorldConfig { +@@ -321,6 +322,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 948e2b535..e31405a7a 100644 --- a/patches/server/0175-Add-config-for-villager-trading.patch +++ b/patches/server/0175-Add-config-for-villager-trading.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add config for villager trading diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 3b404c12ba12d75caaeb2161eb18abaf3c14ae57..65124562a96e1e1e601b790db7a5c5e128c75e5e 100644 +index 1cc8349d08ab6877a15075cf71236b7ae07314cc..fd5c077628733365527f339efc96f0a8620b8e1a 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -375,7 +375,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -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 8084386be71afd0138c7092e9a8a57bf7a0fc99b..763b4087eb9325aa4b34a4e47aa126dd9bcbfcbe 100644 +index fa9c318e229b74b5aabf1a43245d1a125f55c4c6..294211ce6652726b4b71e2c3c537b7dd26ac9a3d 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1821,6 +1821,7 @@ public class PurpurWorldConfig { +@@ -1828,6 +1828,7 @@ public class PurpurWorldConfig { public boolean villagerClericsFarmWarts = false; public boolean villagerClericFarmersThrowWarts = true; public boolean villagerBypassMobGriefing = false; @@ -42,7 +42,7 @@ index 8084386be71afd0138c7092e9a8a57bf7a0fc99b..763b4087eb9325aa4b34a4e47aa126dd private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1848,6 +1849,7 @@ public class PurpurWorldConfig { +@@ -1855,6 +1856,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 8084386be71afd0138c7092e9a8a57bf7a0fc99b..763b4087eb9325aa4b34a4e47aa126dd } public boolean vindicatorRidable = false; -@@ -1871,6 +1873,7 @@ public class PurpurWorldConfig { +@@ -1878,6 +1880,7 @@ public class PurpurWorldConfig { public double wanderingTraderMaxHealth = 20.0D; public boolean wanderingTraderFollowEmeraldBlock = false; public boolean wanderingTraderCanBeLeashed = false; @@ -58,7 +58,7 @@ index 8084386be71afd0138c7092e9a8a57bf7a0fc99b..763b4087eb9325aa4b34a4e47aa126dd private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -1882,6 +1885,7 @@ public class PurpurWorldConfig { +@@ -1889,6 +1892,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/0176-Allow-infinity-on-crossbows.patch b/patches/server/0176-Allow-infinity-on-crossbows.patch index ea9a189d0..1525192b0 100644 --- a/patches/server/0176-Allow-infinity-on-crossbows.patch +++ b/patches/server/0176-Allow-infinity-on-crossbows.patch @@ -59,10 +59,10 @@ index 6f6106ca4d74d50a7b74b086adc96c58c7906cb6..d6417c1e77ac8823e18a179dc9f61757 public abstract boolean canEnchant(Item item); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index a5b9153286236eb2a88404f7d3321ecb32c8aa82..4d22da0c2e4787c3f3b0c156d05148357b861887 100644 +index 9d2b3f57779b1bc9732636a4618ef58ce7f6f722..ec9c2d5ed7ee5ab2681b0364c4d2395481ea5585 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -320,6 +320,7 @@ public class PurpurConfig { +@@ -344,6 +344,7 @@ public class PurpurConfig { } public static boolean allowInfinityMending = false; @@ -70,7 +70,7 @@ index a5b9153286236eb2a88404f7d3321ecb32c8aa82..4d22da0c2e4787c3f3b0c156d0514835 private static void enchantmentSettings() { if (version < 5) { boolean oldValue = getBoolean("settings.enchantment.allow-infinite-and-mending-together", false); -@@ -327,6 +328,7 @@ public class PurpurConfig { +@@ -351,6 +352,7 @@ public class PurpurConfig { set("settings.enchantment.allow-infinite-and-mending-together", null); } allowInfinityMending = getBoolean("settings.enchantment.allow-infinity-and-mending-together", allowInfinityMending); diff --git a/patches/server/0177-Drowning-Settings.patch b/patches/server/0177-Drowning-Settings.patch index 4b8c99206..dc732bd61 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 8e711033337bacb669deb1986a2a47f17ad8dc98..b2af89516f18d16c87c949e66519cc693675d8e4 100644 +index 294211ce6652726b4b71e2c3c537b7dd26ac9a3d..2924f2751239bde6ab0ae5c130720e73cb410ce0 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -111,6 +111,15 @@ public class PurpurWorldConfig { +@@ -118,6 +118,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 470e06548..e095f2dd9 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 373ffc8229f35eb5268f8e8e3c52fe79c456587e..1e8aed0423c4eab66a3cf42bc5c459cb66c2b8c3 100644 +index 2924f2751239bde6ab0ae5c130720e73cb410ce0..823b905771dcba1e565c2b2fac85d9d8335c2452 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -594,6 +594,11 @@ public class PurpurWorldConfig { +@@ -601,6 +601,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 417810509..d43f5c924 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 1e8aed0423c4eab66a3cf42bc5c459cb66c2b8c3..67b5c6d2f516b6b90dbb1cda9366580eaf7b3b34 100644 +index 823b905771dcba1e565c2b2fac85d9d8335c2452..3b2aac804f0230fcf39523c62240de3ea1eed672 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -546,8 +546,12 @@ public class PurpurWorldConfig { +@@ -553,8 +553,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 34d4ae00e..fed5b28e4 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 3517de061b0278e2107be1539dd9e8ac7c2a75fe..897ab21292b3ec1dfff3802caa6cd4ee3b1c45b7 100644 +index 3b2aac804f0230fcf39523c62240de3ea1eed672..042bfcfa408412472deeed7e6f5660ad2028e141 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -95,6 +95,7 @@ public class PurpurWorldConfig { +@@ -102,6 +102,7 @@ public class PurpurWorldConfig { public boolean armorstandMovement = true; public boolean armorstandWaterMovement = true; public boolean armorstandWaterFence = true; @@ -28,7 +28,7 @@ index 3517de061b0278e2107be1539dd9e8ac7c2a75fe..897ab21292b3ec1dfff3802caa6cd4ee 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); -@@ -102,6 +103,7 @@ public class PurpurWorldConfig { +@@ -109,6 +110,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 92b1c5ffa..f5c781cec 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 f342958c4b46d3c81cd93c0cf8ad3255e6b7782b..2f91119af4f3880aa71cc4957ac0276f867fcf71 100644 +index 042bfcfa408412472deeed7e6f5660ad2028e141..87d4f1efd11f4e6e0e1559085ea72664158e827b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -498,6 +498,16 @@ public class PurpurWorldConfig { +@@ -505,6 +505,16 @@ public class PurpurWorldConfig { dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils); } diff --git a/patches/server/0182-Config-to-allow-for-unsafe-enchants.patch b/patches/server/0182-Config-to-allow-for-unsafe-enchants.patch index fd0bfe1c1..73959207d 100644 --- a/patches/server/0182-Config-to-allow-for-unsafe-enchants.patch +++ b/patches/server/0182-Config-to-allow-for-unsafe-enchants.patch @@ -75,10 +75,10 @@ index 5bd25f8b8a554b965665b3f5686c14189b51f28e..4be9924556e0f447dbe6a53c2d4cb7fb this.getOrCreateTag().put(key, tag); } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 4d22da0c2e4787c3f3b0c156d05148357b861887..2473554698b39690bcbc6a2c255e92e1decc1fdf 100644 +index ec9c2d5ed7ee5ab2681b0364c4d2395481ea5585..4216dd6d71dfa3bffa97bc5d86a9ab30337bb8bd 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -321,6 +321,7 @@ public class PurpurConfig { +@@ -345,6 +345,7 @@ public class PurpurConfig { public static boolean allowInfinityMending = false; public static boolean allowCrossbowInfinity = false; @@ -86,7 +86,7 @@ index 4d22da0c2e4787c3f3b0c156d05148357b861887..2473554698b39690bcbc6a2c255e92e1 private static void enchantmentSettings() { if (version < 5) { boolean oldValue = getBoolean("settings.enchantment.allow-infinite-and-mending-together", false); -@@ -329,6 +330,7 @@ public class PurpurConfig { +@@ -353,6 +354,7 @@ public class PurpurConfig { } allowInfinityMending = getBoolean("settings.enchantment.allow-infinity-and-mending-together", allowInfinityMending); allowCrossbowInfinity = getBoolean("settings.enchantment.allow-infinity-on-crossbow", allowCrossbowInfinity); diff --git a/patches/server/0183-Configurable-sponge-absorption.patch b/patches/server/0183-Configurable-sponge-absorption.patch index 9ea8b7360..b74b4e92c 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 2f91119af4f3880aa71cc4957ac0276f867fcf71..f80a22855c7c7b26f9af087f2c0c70c608b3d2fb 100644 +index 87d4f1efd11f4e6e0e1559085ea72664158e827b..543fcbaa0f1f4f26386b9e1528c85afc5715b519 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -620,6 +620,13 @@ public class PurpurWorldConfig { +@@ -627,6 +627,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 c4d08841c..20aac8a36 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 fd195e7263cd3efdd0a8161b474e2dc910261543..061db49f1c88a34e055fd8da01a7a68d3b067cca 100644 +index 543fcbaa0f1f4f26386b9e1528c85afc5715b519..1e00048d25ef3b977a65a58bd58f962e377f08d9 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -363,6 +363,23 @@ public class PurpurWorldConfig { +@@ -370,6 +370,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 2ea15bf68..fe6db78bd 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 4031de37a352217720a47046920798e362411a16..40ec3f14213767a877920b6fc8135d2a13177d92 100644 +index 1e00048d25ef3b977a65a58bd58f962e377f08d9..ec439090f6d1f58490e6a76d85c520ab997e3fc0 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -632,6 +632,11 @@ public class PurpurWorldConfig { +@@ -639,6 +639,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 54b1c58c7..571d1f230 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 40ec3f14213767a877920b6fc8135d2a13177d92..bb12871baa29c20f04b9116f35dde608df267652 100644 +index ec439090f6d1f58490e6a76d85c520ab997e3fc0..c2320195e330a5402b12ea653a9f300c904be159 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1442,6 +1442,7 @@ public class PurpurWorldConfig { +@@ -1449,6 +1449,7 @@ public class PurpurWorldConfig { public boolean piglinRidableInWater = false; public double piglinMaxHealth = 16.0D; public boolean piglinBypassMobGriefing = false; @@ -42,7 +42,7 @@ index 40ec3f14213767a877920b6fc8135d2a13177d92..bb12871baa29c20f04b9116f35dde608 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1452,6 +1453,7 @@ public class PurpurWorldConfig { +@@ -1459,6 +1460,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/0187-Config-to-change-max-number-of-bees.patch b/patches/server/0187-Config-to-change-max-number-of-bees.patch index 4cc39f739..a185e1dc2 100644 --- a/patches/server/0187-Config-to-change-max-number-of-bees.patch +++ b/patches/server/0187-Config-to-change-max-number-of-bees.patch @@ -18,10 +18,10 @@ index 8484e80a70129fb0358d56efab6fd54798b54e6e..ffacc4b8cc3ab8285c4131aec58e48ff public BeehiveBlockEntity(BlockPos pos, BlockState state) { super(BlockEntityType.BEEHIVE, pos, state); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 2473554698b39690bcbc6a2c255e92e1decc1fdf..3bfc5425da66a37034bfa7aa01246b695c4647cf 100644 +index 4216dd6d71dfa3bffa97bc5d86a9ab30337bb8bd..aa218a0f98c0cbb5f663f217baba73d9f6c29740 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -302,6 +302,7 @@ public class PurpurConfig { +@@ -326,6 +326,7 @@ public class PurpurConfig { public static boolean enderChestSixRows = false; public static boolean enderChestPermissionRows = false; public static boolean cryingObsidianValidForPortalFrame = false; @@ -29,7 +29,7 @@ index 2473554698b39690bcbc6a2c255e92e1decc1fdf..3bfc5425da66a37034bfa7aa01246b69 private static void blockSettings() { if (version < 3) { boolean oldValue = getBoolean("settings.barrel.packed-barrels", true); -@@ -317,6 +318,7 @@ public class PurpurConfig { +@@ -341,6 +342,7 @@ public class PurpurConfig { org.bukkit.event.inventory.InventoryType.ENDER_CHEST.setDefaultSize(enderChestSixRows ? 54 : 27); enderChestPermissionRows = getBoolean("settings.blocks.ender_chest.use-permissions-for-rows", enderChestPermissionRows); cryingObsidianValidForPortalFrame = getBoolean("settings.blocks.crying_obsidian.valid-for-portal-frame", cryingObsidianValidForPortalFrame); 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 589eddb20..861a3de61 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 bb12871baa29c20f04b9116f35dde608df267652..bcaa7aab4942a745a724fb9ff4f0e3947806250b 100644 +index c2320195e330a5402b12ea653a9f300c904be159..00a1fb7beb8d95ec74d0f11c75cf1f189817c1bf 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -599,6 +599,13 @@ public class PurpurWorldConfig { +@@ -606,6 +606,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 0bca0b99f..d537964de 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 bcaa7aab4942a745a724fb9ff4f0e3947806250b..e0d3cb85d3522fa0f679af7d04db806032fcffaa 100644 +index 00a1fb7beb8d95ec74d0f11c75cf1f189817c1bf..21b93ca575cd33ccd29699a2f93a635b4ec48de8 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1978,6 +1978,7 @@ public class PurpurWorldConfig { +@@ -1985,6 +1985,7 @@ public class PurpurWorldConfig { public int witherHealthRegenDelay = 20; public boolean witherBypassMobGriefing = false; public boolean witherCanRideVehicles = false; @@ -29,7 +29,7 @@ index bcaa7aab4942a745a724fb9ff4f0e3947806250b..e0d3cb85d3522fa0f679af7d04db8060 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1996,6 +1997,7 @@ public class PurpurWorldConfig { +@@ -2003,6 +2004,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/0190-Gamemode-extra-permissions.patch b/patches/server/0190-Gamemode-extra-permissions.patch index 30b56dd75..623d99d16 100644 --- a/patches/server/0190-Gamemode-extra-permissions.patch +++ b/patches/server/0190-Gamemode-extra-permissions.patch @@ -54,10 +54,10 @@ index 79f6089b934124c3309c6bee2e48b36b937252e0..dff8ef0a1a2e52792070d93685c29002 for(ServerPlayer serverPlayer : targets) { diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 3bfc5425da66a37034bfa7aa01246b695c4647cf..579ddb3560a812413af2fabe986abdd65ce93f99 100644 +index aa218a0f98c0cbb5f663f217baba73d9f6c29740..bc46e80e8dbe82d495d73a1b32bba763c0ca9715 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -298,6 +298,11 @@ public class PurpurConfig { +@@ -322,6 +322,11 @@ public class PurpurConfig { disableGiveCommandDrops = getBoolean("settings.disable-give-dropping", disableGiveCommandDrops); } 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 562e94a09..e330b31ae 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 f374f4feee29c798416eec156af3f90af96199b2..c5dd8489877f6ff62db785bc0811b506d5556350 100644 +index 21b93ca575cd33ccd29699a2f93a635b4ec48de8..3b18239e5389e91142f71e799c1826a252e4a1ce 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -380,6 +380,21 @@ public class PurpurWorldConfig { +@@ -387,6 +387,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 81805183a..bc36573d0 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 b726e74ef08626770450eb739afa66cba3a9d596..0c9d1d34b96a1624b346258702d03a6dbcea89e3 100644 +index 3b18239e5389e91142f71e799c1826a252e4a1ce..8ac0465f3576b47a18e3fd5a70a4ed091fa4f57d 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -621,6 +621,11 @@ public class PurpurWorldConfig { +@@ -628,6 +628,11 @@ public class PurpurWorldConfig { magmaBlockDamageWithFrostWalker = getBoolean("blocks.magma-block.damage-with-frost-walker", magmaBlockDamageWithFrostWalker); } diff --git a/patches/server/0193-Configurable-broadcast-settings.patch b/patches/server/0193-Configurable-broadcast-settings.patch index 7d8f438d6..b92576402 100644 --- a/patches/server/0193-Configurable-broadcast-settings.patch +++ b/patches/server/0193-Configurable-broadcast-settings.patch @@ -17,7 +17,7 @@ index c46df052a5a39d92688f51377ee1f7b5b5b36faa..d7d2a975386cecb0d50b4f7ed37de8ad // Paper end } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index d5ee740792699f2eab3965d4920de913bd76f18e..434558824edd85809a747a436f2ad429e57a618c 100644 +index fedd506fe05b259c64dba4ce5ffab06cd2e717a8..d2ea0e94785b6e1b37c50e4892a599a4f66a7ef8 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -874,6 +874,7 @@ public class ServerPlayer extends Player { @@ -29,10 +29,10 @@ index d5ee740792699f2eab3965d4920de913bd76f18e..434558824edd85809a747a436f2ad429 if (scoreboardteambase.getDeathMessageVisibility() == Team.Visibility.HIDE_FOR_OTHER_TEAMS) { this.server.getPlayerList().broadcastToTeam((Player) this, ichatbasecomponent); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 579ddb3560a812413af2fabe986abdd65ce93f99..6615bda9bb0a4e49daa40b29f9335ff08cec4207 100644 +index bc46e80e8dbe82d495d73a1b32bba763c0ca9715..246246836aa03801fe23495edb720d03562e26f0 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -150,6 +150,18 @@ public class PurpurConfig { +@@ -174,6 +174,18 @@ public class PurpurConfig { pingCommandOutput = getString("settings.messages.ping-command-output", pingCommandOutput); } diff --git a/patches/server/0195-Configurable-mob-blindness.patch b/patches/server/0195-Configurable-mob-blindness.patch index ed195b585..88ca4eccc 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 0c9d1d34b96a1624b346258702d03a6dbcea89e3..6bb05e0f8c575c0a163ca1f8e8571401e9acd161 100644 +index 8ac0465f3576b47a18e3fd5a70a4ed091fa4f57d..38800a6f2b272c1963a7dae218e888c40f4235e6 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -435,6 +435,7 @@ public class PurpurWorldConfig { +@@ -442,6 +442,7 @@ public class PurpurWorldConfig { public boolean persistentDroppableEntityDisplayNames = false; public boolean projectilesBypassMobGriefing = false; public boolean tickFluids = true; @@ -39,7 +39,7 @@ index 0c9d1d34b96a1624b346258702d03a6dbcea89e3..6bb05e0f8c575c0a163ca1f8e8571401 public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -456,6 +457,7 @@ public class PurpurWorldConfig { +@@ -463,6 +464,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/0196-Hide-hidden-players-from-entity-selector.patch b/patches/server/0196-Hide-hidden-players-from-entity-selector.patch index c8f53be1b..7b9c956af 100644 --- a/patches/server/0196-Hide-hidden-players-from-entity-selector.patch +++ b/patches/server/0196-Hide-hidden-players-from-entity-selector.patch @@ -59,10 +59,10 @@ index 0fb8f32427843f4bfd90ab88ecb3ab3e4a4fda31..f99f1ba7f912a2fd503e12c446b342a8 + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 6615bda9bb0a4e49daa40b29f9335ff08cec4207..587f9c75feb994b15c41e42d06139d1003cd15ab 100644 +index 246246836aa03801fe23495edb720d03562e26f0..76de3ed4b13b4c6b00656021236a7da5aaa0eaa2 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -311,8 +311,10 @@ public class PurpurConfig { +@@ -335,8 +335,10 @@ public class PurpurConfig { } public static boolean commandGamemodeRequiresPermission = false; 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 c4e66b0d0..960d5b3f8 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 6bb05e0f8c575c0a163ca1f8e8571401e9acd161..78d9845d53a3af8d8bd20389590e9250cd418e36 100644 +index 38800a6f2b272c1963a7dae218e888c40f4235e6..81af18ead6adeb276736a800b479cedac874f9b7 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -870,6 +870,7 @@ public class PurpurWorldConfig { +@@ -877,6 +877,7 @@ public class PurpurWorldConfig { public boolean creeperAllowGriefing = true; public boolean creeperBypassMobGriefing = false; public boolean creeperExplodeWhenKilled = false; @@ -32,7 +32,7 @@ index 6bb05e0f8c575c0a163ca1f8e8571401e9acd161..78d9845d53a3af8d8bd20389590e9250 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -883,6 +884,7 @@ public class PurpurWorldConfig { +@@ -890,6 +891,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 66de49b50..5bd735344 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 78d9845d53a3af8d8bd20389590e9250cd418e36..2ec81e3523c0ecc80e57dfb0b9985985a4d48265 100644 +index 81af18ead6adeb276736a800b479cedac874f9b7..b8f71bbca8fae048cc26ec1228cfab3a4a5bfabd 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1245,6 +1245,7 @@ public class PurpurWorldConfig { +@@ -1252,6 +1252,7 @@ public class PurpurWorldConfig { public boolean ironGolemRidableInWater = false; public boolean ironGolemCanSwim = false; public double ironGolemMaxHealth = 100.0D; @@ -28,7 +28,7 @@ index 78d9845d53a3af8d8bd20389590e9250cd418e36..2ec81e3523c0ecc80e57dfb0b9985985 private void ironGolemSettings() { ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable); ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater); -@@ -1255,6 +1256,7 @@ public class PurpurWorldConfig { +@@ -1262,6 +1263,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 e3e62df91..676d3aa24 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 2ec81e3523c0ecc80e57dfb0b9985985a4d48265..114bc422088e7a443c71ec0253f12d72c329a8ab 100644 +index b8f71bbca8fae048cc26ec1228cfab3a4a5bfabd..414f9f1ea859736d9bd23a35bf28752dfed8e1c7 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1381,6 +1381,7 @@ public class PurpurWorldConfig { +@@ -1388,6 +1388,7 @@ public class PurpurWorldConfig { public boolean parrotRidableInWater = false; public double parrotMaxY = 256D; public double parrotMaxHealth = 6.0D; @@ -61,7 +61,7 @@ index 2ec81e3523c0ecc80e57dfb0b9985985a4d48265..114bc422088e7a443c71ec0253f12d72 private void parrotSettings() { parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable); parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater); -@@ -1391,6 +1392,7 @@ public class PurpurWorldConfig { +@@ -1398,6 +1399,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 948eb8731..b9cee87bf 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 d479eed0bccc72b5dd38c308f0ed60ca969c6a32..29155dc3f7fd721a83510b1ba3a8435e97b30fc4 100644 +index 414f9f1ea859736d9bd23a35bf28752dfed8e1c7..bb350c1bc57ac6dca9901c75464f70da6d0ffaa6 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -216,6 +216,7 @@ public class PurpurWorldConfig { +@@ -223,6 +223,7 @@ public class PurpurWorldConfig { public boolean minecartControllableFallDamage = true; public double minecartControllableBaseSpeed = 0.1D; public Map minecartControllableBlockSpeeds = new HashMap<>(); @@ -29,7 +29,7 @@ index d479eed0bccc72b5dd38c308f0ed60ca969c6a32..29155dc3f7fd721a83510b1ba3a8435e private void minecartSettings() { if (PurpurConfig.version < 12) { boolean oldBool = getBoolean("gameplay-mechanics.controllable-minecarts.place-anywhere", minecartPlaceAnywhere); -@@ -268,6 +269,7 @@ public class PurpurWorldConfig { +@@ -275,6 +276,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 1e5bb82e4..028762a78 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 29155dc3f7fd721a83510b1ba3a8435e97b30fc4..db3fc52dd68f351d3719ce706a1577348324d904 100644 +index bb350c1bc57ac6dca9901c75464f70da6d0ffaa6..9c28a1cd6c48e0b909e34e30d4d919e1425d093a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -314,6 +314,7 @@ public class PurpurWorldConfig { +@@ -321,6 +321,7 @@ public class PurpurWorldConfig { public boolean creativeOnePunch = false; public boolean playerSleepNearMonsters = false; public boolean playersSkipNight = true; @@ -29,7 +29,7 @@ index 29155dc3f7fd721a83510b1ba3a8435e97b30fc4..db3fc52dd68f351d3719ce706a157734 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); -@@ -329,6 +330,7 @@ public class PurpurWorldConfig { +@@ -336,6 +337,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 a8e93bf4f..c34b38809 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 13b689c908857902f937bea6313af2952d62760c..1d2c735375bee28347fdc7ce7b1e6ba42d3d3f9b 100644 +index 9c28a1cd6c48e0b909e34e30d4d919e1425d093a..33d71c3d9c657ce8ce113eae8f4a8f39b2a65dd8 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -546,6 +546,11 @@ public class PurpurWorldConfig { +@@ -553,6 +553,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0203-Config-for-unverified-username-message.patch b/patches/server/0203-Config-for-unverified-username-message.patch index c35de338d..695c65498 100644 --- a/patches/server/0203-Config-for-unverified-username-message.patch +++ b/patches/server/0203-Config-for-unverified-username-message.patch @@ -18,10 +18,10 @@ index 5d26417b5d4e182fdefdf1ef5c81a0b7d7f2d4c1..43090b05642d252fd5b3d4a65149beab } } catch (AuthenticationUnavailableException authenticationunavailableexception) { diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 587f9c75feb994b15c41e42d06139d1003cd15ab..f7dffceb8c67bac36fdaf070894803e4cf90c30b 100644 +index 76de3ed4b13b4c6b00656021236a7da5aaa0eaa2..ccb10099d8b744effc772b738f84137c236c1e91 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -139,6 +139,7 @@ public class PurpurConfig { +@@ -163,6 +163,7 @@ public class PurpurConfig { public static String creditsCommandOutput = "%s has been shown the end credits"; public static String demoCommandOutput = "%s has been shown the demo screen"; public static String pingCommandOutput = "%s's ping is %sms"; @@ -29,7 +29,7 @@ index 587f9c75feb994b15c41e42d06139d1003cd15ab..f7dffceb8c67bac36fdaf070894803e4 private static void messages() { cannotRideMob = getString("settings.messages.cannot-ride-mob", cannotRideMob); afkBroadcastAway = getString("settings.messages.afk-broadcast-away", afkBroadcastAway); -@@ -148,6 +149,7 @@ public class PurpurConfig { +@@ -172,6 +173,7 @@ public class PurpurConfig { creditsCommandOutput = getString("settings.messages.credits-command-output", creditsCommandOutput); demoCommandOutput = getString("settings.messages.demo-command-output", demoCommandOutput); pingCommandOutput = getString("settings.messages.ping-command-output", pingCommandOutput); diff --git a/patches/server/0204-Make-anvil-cumulative-cost-configurable.patch b/patches/server/0204-Make-anvil-cumulative-cost-configurable.patch index 2b2b904cc..ba0e6c6df 100644 --- a/patches/server/0204-Make-anvil-cumulative-cost-configurable.patch +++ b/patches/server/0204-Make-anvil-cumulative-cost-configurable.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Make anvil cumulative cost configurable diff --git a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java -index 2dbc71a3d76cc87e2683b8f351bd8db04481855e..44ecc27fd9bd5a02656321cf8c69bbaea7a04640 100644 +index 168f16f3117b6b18279cbe597a32221bc04a0648..5c1a72a402895f2166a3f36691253d806a78261f 100644 --- a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java @@ -342,7 +342,7 @@ public class AnvilMenu extends ItemCombinerMenu { @@ -18,10 +18,10 @@ index 2dbc71a3d76cc87e2683b8f351bd8db04481855e..44ecc27fd9bd5a02656321cf8c69bbae public void setItemName(String newItemName) { diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index f7dffceb8c67bac36fdaf070894803e4cf90c30b..75149211662984cd74b5ab3a5836c096dc2da0c3 100644 +index ccb10099d8b744effc772b738f84137c236c1e91..b42f87fad204dd21ba843b78c1f6710e95452a3a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -324,6 +324,7 @@ public class PurpurConfig { +@@ -348,6 +348,7 @@ public class PurpurConfig { public static boolean enderChestPermissionRows = false; public static boolean cryingObsidianValidForPortalFrame = false; public static int beeInsideBeeHive = 3; @@ -29,7 +29,7 @@ index f7dffceb8c67bac36fdaf070894803e4cf90c30b..75149211662984cd74b5ab3a5836c096 private static void blockSettings() { if (version < 3) { boolean oldValue = getBoolean("settings.barrel.packed-barrels", true); -@@ -340,6 +341,7 @@ public class PurpurConfig { +@@ -364,6 +365,7 @@ public class PurpurConfig { enderChestPermissionRows = getBoolean("settings.blocks.ender_chest.use-permissions-for-rows", enderChestPermissionRows); cryingObsidianValidForPortalFrame = getBoolean("settings.blocks.crying_obsidian.valid-for-portal-frame", cryingObsidianValidForPortalFrame); beeInsideBeeHive = getInt("settings.blocks.beehive.max-bees-inside", beeInsideBeeHive); diff --git a/patches/server/0205-ShulkerBox-allow-oversized-stacks.patch b/patches/server/0205-ShulkerBox-allow-oversized-stacks.patch index d2166edb1..21e143bb5 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 1d2c735375bee28347fdc7ce7b1e6ba42d3d3f9b..9417b8d4ee80b18fa2c500055e3015eb4d8a2f0a 100644 +index 33d71c3d9c657ce8ce113eae8f4a8f39b2a65dd8..3b33312333005a370157c14267972facceea2cc5 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -658,6 +658,11 @@ public class PurpurWorldConfig { +@@ -665,6 +665,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 2efb01a67..d37e2f2cf 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 9417b8d4ee80b18fa2c500055e3015eb4d8a2f0a..0c40c38a956e4b4be9e58904160973ef4f67e769 100644 +index 3b33312333005a370157c14267972facceea2cc5..4a4f1e80f1636949c3699b1718dea81656865bca 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -762,6 +762,8 @@ public class PurpurWorldConfig { +@@ -769,6 +769,8 @@ public class PurpurWorldConfig { public double beeMaxY = 256D; public double beeMaxHealth = 10.0D; public int beeBreedingTicks = 6000; @@ -43,7 +43,7 @@ index 9417b8d4ee80b18fa2c500055e3015eb4d8a2f0a..0c40c38a956e4b4be9e58904160973ef private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -773,6 +775,8 @@ public class PurpurWorldConfig { +@@ -780,6 +782,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 42fcc37d2..0cc077d50 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 69bad8e2f93f888000ab8bfa195660413025048c..d7a26b6388ef65b44b607b89af75b3bb470b5ba6 100644 +index 4a4f1e80f1636949c3699b1718dea81656865bca..445004afc3b5c3c7aa4b2a85fb475776e01b7535 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -272,6 +272,21 @@ public class PurpurWorldConfig { +@@ -279,6 +279,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 ce5770c73..d789554e0 100644 --- a/patches/server/0210-Beacon-Activation-Range-Configurable.patch +++ b/patches/server/0210-Beacon-Activation-Range-Configurable.patch @@ -26,10 +26,10 @@ index c1a0b0d77b8783fd127b68449a209ec0e62e6005..4e7f7ac51a4777bbda4939c6ecc3edc9 } else { return effectRange; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 0c3c0eea65b6936c92939125fa3c20ad7895c94c..f003a4d2173cc104adca05001d538b0e41bc2c41 100644 +index 445004afc3b5c3c7aa4b2a85fb475776e01b7535..c38cd5ead9a3832971a2e859ba8758586d637a66 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -511,6 +511,17 @@ public class PurpurWorldConfig { +@@ -518,6 +518,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 173e5169c..dec4990c3 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 f003a4d2173cc104adca05001d538b0e41bc2c41..fd20551af50eb6532b4ee4dd7cfa140b77f7a284 100644 +index c38cd5ead9a3832971a2e859ba8758586d637a66..9d2187b4def519aa6ea4bebdca37ea4095fe07d4 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -684,6 +684,11 @@ public class PurpurWorldConfig { +@@ -691,6 +691,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 3cf1abd43..fc76e412d 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 fd20551af50eb6532b4ee4dd7cfa140b77f7a284..d8edac782ae15cb14d38661c597e1d461b4717b1 100644 +index 9d2187b4def519aa6ea4bebdca37ea4095fe07d4..7b99fcf3e05677ff1754fa33275dbe456d28082d 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -626,6 +626,11 @@ public class PurpurWorldConfig { +@@ -633,6 +633,11 @@ public class PurpurWorldConfig { furnaceInfiniteFuel = getBoolean("blocks.furnace.infinite-fuel", furnaceInfiniteFuel); } diff --git a/patches/server/0214-Make-lightning-rod-range-configurable.patch b/patches/server/0214-Make-lightning-rod-range-configurable.patch index b35b883dc..5e05e8cdc 100644 --- a/patches/server/0214-Make-lightning-rod-range-configurable.patch +++ b/patches/server/0214-Make-lightning-rod-range-configurable.patch @@ -18,10 +18,10 @@ index f94c1b943488806d1336bd28ac9e8efd9e1fedbd..84febe41f4b1bb8a7117ed4212b10388 return optional.map((blockposition1) -> { return blockposition1.above(1); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 75149211662984cd74b5ab3a5836c096dc2da0c3..e1d26386308dcac25a98f17ee3c640b42b3e41e8 100644 +index b42f87fad204dd21ba843b78c1f6710e95452a3a..505bcc6e2a3977af25c0f9de2b2477fa4657a6bd 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -325,6 +325,7 @@ public class PurpurConfig { +@@ -349,6 +349,7 @@ public class PurpurConfig { public static boolean cryingObsidianValidForPortalFrame = false; public static int beeInsideBeeHive = 3; public static boolean anvilCumulativeCost = true; @@ -29,7 +29,7 @@ index 75149211662984cd74b5ab3a5836c096dc2da0c3..e1d26386308dcac25a98f17ee3c640b4 private static void blockSettings() { if (version < 3) { boolean oldValue = getBoolean("settings.barrel.packed-barrels", true); -@@ -342,6 +343,7 @@ public class PurpurConfig { +@@ -366,6 +367,7 @@ public class PurpurConfig { cryingObsidianValidForPortalFrame = getBoolean("settings.blocks.crying_obsidian.valid-for-portal-frame", cryingObsidianValidForPortalFrame); beeInsideBeeHive = getInt("settings.blocks.beehive.max-bees-inside", beeInsideBeeHive); anvilCumulativeCost = getBoolean("settings.blocks.anvil.cumulative-cost", anvilCumulativeCost); 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 021078dd6..53838afd6 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 1a94a68e206eef5f9d4c3e5af49ef03690ee13ea..6629addad421042fae15d1b70c0a8d51ecf5f3e2 100644 +index 7b99fcf3e05677ff1754fa33275dbe456d28082d..0c6da1dba56019126736e2860bc5db24bd6e6551 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -330,6 +330,7 @@ public class PurpurWorldConfig { +@@ -337,6 +337,7 @@ public class PurpurWorldConfig { public boolean playerSleepNearMonsters = false; public boolean playersSkipNight = true; public double playerCriticalDamageMultiplier = 1.5D; @@ -66,7 +66,7 @@ index 1a94a68e206eef5f9d4c3e5af49ef03690ee13ea..6629addad421042fae15d1b70c0a8d51 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); -@@ -346,6 +347,7 @@ public class PurpurWorldConfig { +@@ -353,6 +354,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 1bbd1224d..627d68d5d 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 0df2b22c3da0b4ecf85c7d0cb334a62f4d53195f..70e06737ac5166fc6ba34028e236c449497d6edf 100644 +index 0c6da1dba56019126736e2860bc5db24bd6e6551..854a02059cd1c859682daeb1a5add5b4ed86fde2 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -2244,4 +2244,20 @@ public class PurpurWorldConfig { +@@ -2251,4 +2251,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 f3cc4007d..1e2cbeb66 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 70e06737ac5166fc6ba34028e236c449497d6edf..6622a27104810ee33564ec4ffe07b909db0d181e 100644 +index 854a02059cd1c859682daeb1a5add5b4ed86fde2..6d6e8931451554b3b21da546be7ee42bbdf804af 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1699,6 +1699,11 @@ public class PurpurWorldConfig { +@@ -1706,6 +1706,11 @@ public class PurpurWorldConfig { public boolean shulkerRidable = false; public boolean shulkerRidableInWater = false; public double shulkerMaxHealth = 30.0D; @@ -76,7 +76,7 @@ index 70e06737ac5166fc6ba34028e236c449497d6edf..6622a27104810ee33564ec4ffe07b909 private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -1708,6 +1713,11 @@ public class PurpurWorldConfig { +@@ -1715,6 +1720,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 2a5c38cb8..c7185b10e 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 fee63c51d52da28ca6c72216a95c874e8e55e52d..273ef02ba9f3bc5aea17ef082cf87005005d0927 100644 +index 6d6e8931451554b3b21da546be7ee42bbdf804af..b959560ab95b506cf7bde1c638008e8ac61a0ca4 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 { +@@ -170,6 +170,7 @@ public class PurpurWorldConfig { public int enderPearlCooldown = 20; public int enderPearlCooldownCreative = 20; public float enderPearlEndermiteChance = 0.05F; @@ -29,7 +29,7 @@ index fee63c51d52da28ca6c72216a95c874e8e55e52d..273ef02ba9f3bc5aea17ef082cf87005 private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -206,6 +207,7 @@ public class PurpurWorldConfig { +@@ -213,6 +214,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 5382958ff..5fcf5c8f4 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 f53c01554f2a8968b0f9dc15a7b80b0c5a9565db..d1e014402b166a56c8f4ebfd7d167e3d0af58ce8 100644 +index b959560ab95b506cf7bde1c638008e8ac61a0ca4..684e5c0931b2f5c0f528c3126c3dd1d624f774a5 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -998,6 +998,7 @@ public class PurpurWorldConfig { +@@ -1005,6 +1005,7 @@ public class PurpurWorldConfig { public boolean drownedJockeyOnlyBaby = true; public double drownedJockeyChance = 0.05D; public boolean drownedJockeyTryExistingChickens = true; @@ -45,7 +45,7 @@ index f53c01554f2a8968b0f9dc15a7b80b0c5a9565db..d1e014402b166a56c8f4ebfd7d167e3d private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -1011,6 +1012,7 @@ public class PurpurWorldConfig { +@@ -1018,6 +1019,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 e21155ade..dc304fa12 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 d1e014402b166a56c8f4ebfd7d167e3d0af58ce8..fc4afb4873eecb12b85f2449b319b846c34fea98 100644 +index 684e5c0931b2f5c0f528c3126c3dd1d624f774a5..b33f637908ca086efdd1a474043a1258c821d99a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -2274,4 +2274,9 @@ public class PurpurWorldConfig { +@@ -2281,4 +2281,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 f23d94e67..9164be3aa 100644 --- a/patches/server/0224-Armor-click-equip-options.patch +++ b/patches/server/0224-Armor-click-equip-options.patch @@ -38,10 +38,10 @@ index ad095c6bc7e00d286c83e37f84d8ed5d4a2c6881..1d1723873be1ec61c34e22e4f709f207 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 e3cba672d74930d2a8e160412d155eea0ca8b46a..0529ecc421c7aa89cd68b9d267c8634ff5753ed6 100644 +index b33f637908ca086efdd1a474043a1258c821d99a..926ea7e06b3d006bb29651a4772c731f96defdcd 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -333,6 +333,8 @@ public class PurpurWorldConfig { +@@ -340,6 +340,8 @@ public class PurpurWorldConfig { public boolean playersSkipNight = true; public double playerCriticalDamageMultiplier = 1.5D; public boolean playerBurpWhenFull = false; @@ -50,7 +50,7 @@ index e3cba672d74930d2a8e160412d155eea0ca8b46a..0529ecc421c7aa89cd68b9d267c8634f 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); -@@ -350,6 +352,8 @@ public class PurpurWorldConfig { +@@ -357,6 +359,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/0226-Add-uptime-command.patch b/patches/server/0226-Add-uptime-command.patch index 803ed429b..7c0c9f60d 100644 --- a/patches/server/0226-Add-uptime-command.patch +++ b/patches/server/0226-Add-uptime-command.patch @@ -29,10 +29,10 @@ index 108dadb24607ea42cf857879386c34c9bb72dbee..a87be8fe6fbed952bfee76bab49e313b public int autosavePeriod; public boolean serverAutoSave = false; // Paper diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index e1d26386308dcac25a98f17ee3c640b42b3e41e8..8b1372d5d5eb4477f60891233b0f0a7b729bcc47 100644 +index 505bcc6e2a3977af25c0f9de2b2477fa4657a6bd..2f829dcc2b21c6283d07b69d3d3b86ec5fd12b0b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -139,6 +139,7 @@ public class PurpurConfig { +@@ -163,6 +163,7 @@ public class PurpurConfig { public static String creditsCommandOutput = "%s has been shown the end credits"; public static String demoCommandOutput = "%s has been shown the demo screen"; public static String pingCommandOutput = "%s's ping is %sms"; @@ -40,7 +40,7 @@ index e1d26386308dcac25a98f17ee3c640b42b3e41e8..8b1372d5d5eb4477f60891233b0f0a7b public static String unverifiedUsername = "default"; private static void messages() { cannotRideMob = getString("settings.messages.cannot-ride-mob", cannotRideMob); -@@ -149,6 +150,7 @@ public class PurpurConfig { +@@ -173,6 +174,7 @@ public class PurpurConfig { creditsCommandOutput = getString("settings.messages.credits-command-output", creditsCommandOutput); demoCommandOutput = getString("settings.messages.demo-command-output", demoCommandOutput); pingCommandOutput = getString("settings.messages.ping-command-output", pingCommandOutput); @@ -48,7 +48,7 @@ index e1d26386308dcac25a98f17ee3c640b42b3e41e8..8b1372d5d5eb4477f60891233b0f0a7b unverifiedUsername = getString("settings.messages.unverified-username", unverifiedUsername); } -@@ -314,9 +316,27 @@ public class PurpurConfig { +@@ -338,9 +340,27 @@ public class PurpurConfig { public static boolean commandGamemodeRequiresPermission = false; public static boolean hideHiddenPlayersFromEntitySelector = false; diff --git a/patches/server/0227-Structure-seed-options.patch b/patches/server/0227-Structure-seed-options.patch index 7a99dcc1c..cb56b7342 100644 --- a/patches/server/0227-Structure-seed-options.patch +++ b/patches/server/0227-Structure-seed-options.patch @@ -27,10 +27,10 @@ index 6cd66a4edbe2010d2a34506baf1ba6fe3de38bb9..f3e67330c01f6a867ccd4e024a6695d9 updated.put(entry.getKey(), new StructureFeatureConfiguration(feature.spacing(), feature.separation(), seed)); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 8b1372d5d5eb4477f60891233b0f0a7b729bcc47..09db8d27331a4db0e28e220720d80b3f94050a7f 100644 +index 2f829dcc2b21c6283d07b69d3d3b86ec5fd12b0b..9592a9e6743e7fe0250de16680dd0d3e2e5e7776 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -219,6 +219,9 @@ public class PurpurConfig { +@@ -243,6 +243,9 @@ public class PurpurConfig { public static int seedFeatureVegetationPatch = -1; public static int seedFeatureWaterloggedVegetationPatch = -1; public static int seedFeatureWeepingVines = -1; @@ -40,7 +40,7 @@ index 8b1372d5d5eb4477f60891233b0f0a7b729bcc47..09db8d27331a4db0e28e220720d80b3f private static void seedSettings() { if (version < 14) { int oldValue = getInt("settings.seed.dungeon", -1); -@@ -284,6 +287,9 @@ public class PurpurConfig { +@@ -308,6 +311,9 @@ public class PurpurConfig { seedFeatureVegetationPatch = getInt("settings.seed.feature.vegetation_patch", seedFeatureVegetationPatch); seedFeatureWaterloggedVegetationPatch = getInt("settings.seed.feature.waterlogged_vegetation_patch", seedFeatureWaterloggedVegetationPatch); seedFeatureWeepingVines = getInt("settings.seed.feature.weeping_vines", seedFeatureWeepingVines); diff --git a/patches/server/0228-Hoe-tilling-options.patch b/patches/server/0228-Hoe-tilling-options.patch new file mode 100644 index 000000000..e5f81b6d9 --- /dev/null +++ b/patches/server/0228-Hoe-tilling-options.patch @@ -0,0 +1,207 @@ +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 926ea7e06b3d006bb29651a4772c731f96defdcd..b25b59e69ecc6efa1b972034ebc61438b7604ec8 100644 +--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java ++++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +@@ -454,6 +454,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()); ++ } ++ } ++}