From a176fe6a9ebbb52bcddafb6d16e3c117145d8f39 Mon Sep 17 00:00:00 2001 From: Encode42 Date: Fri, 30 Apr 2021 14:28:20 -0400 Subject: [PATCH 01/40] Add credits command --- patches/server/0204-Add-credits-command.patch | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 patches/server/0204-Add-credits-command.patch diff --git a/patches/server/0204-Add-credits-command.patch b/patches/server/0204-Add-credits-command.patch new file mode 100644 index 0000000000..b3e3ce8350 --- /dev/null +++ b/patches/server/0204-Add-credits-command.patch @@ -0,0 +1,89 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Encode42 +Date: Fri, 30 Apr 2021 14:03:06 -0400 +Subject: [PATCH] Add credits command + + +diff --git a/src/main/java/net/minecraft/commands/CommandDispatcher.java b/src/main/java/net/minecraft/commands/CommandDispatcher.java +index 324f475513eecab4242b8900084d7f088bd0e10b..25ef4280318c5b2073bad828f19b84812c019229 100644 +--- a/src/main/java/net/minecraft/commands/CommandDispatcher.java ++++ b/src/main/java/net/minecraft/commands/CommandDispatcher.java +@@ -191,6 +191,7 @@ public class CommandDispatcher { + CommandIdleTimeout.a(this.b); + CommandStop.a(this.b); + CommandWhitelist.a(this.b); ++ net.pl3x.purpur.command.CreditsCommand.register(getDispatcher()); // Purpur + net.pl3x.purpur.command.DemoCommand.register(getDispatcher()); // Purpur + net.pl3x.purpur.command.PingCommand.register(getDispatcher()); // Purpur + net.pl3x.purpur.command.TPSBarCommand.register(getDispatcher()); // Purpur +diff --git a/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutGameStateChange.java b/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutGameStateChange.java +index 0161657748d398b6827ef8bc2b00b8a63bf37c55..aaff933c5bf619303842ce6b9a9dc979bcfde7bd 100644 +--- a/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutGameStateChange.java ++++ b/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutGameStateChange.java +@@ -12,7 +12,7 @@ public class PacketPlayOutGameStateChange implements Packet dispatcher) { ++ dispatcher.register(CommandDispatcher.literal("credits") ++ .requires((listener) -> { ++ return listener.hasPermission(2); ++ }) ++ .executes((context) -> { ++ return execute(context.getSource(), Collections.singleton(context.getSource().getPlayerOrException())); ++ }) ++ .then(CommandDispatcher.argument("targets", ArgumentEntity.players()) ++ .executes((context) -> { ++ return execute(context.getSource(), ArgumentEntity.getPlayers(context, "targets")); ++ }) ++ ) ++ ).setPermission("bukkit.command.credits"); ++ } ++ ++ private static int execute(CommandListenerWrapper sender, Collection targets) { ++ for (EntityPlayer player : targets) { ++ PacketPlayOutGameStateChange packet = new PacketPlayOutGameStateChange(PacketPlayOutGameStateChange.credits(), 1F); ++ player.playerConnection.sendPacket(packet); ++ String output = String.format(PurpurConfig.creditsCommandOutput, player.getProfile().getName()); ++ sender.sendMessage(CraftChatMessage.fromStringOrNull(output), false); ++ } ++ return targets.size(); ++ } ++} From c3481c00024465300d5651723c25b1358070ff56 Mon Sep 17 00:00:00 2001 From: Encode42 Date: Fri, 30 Apr 2021 14:35:32 -0400 Subject: [PATCH 02/40] Initialize the credits command output in config --- ...mmand.patch => 0203-Add-credits-command.patch} | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) rename patches/server/{0204-Add-credits-command.patch => 0203-Add-credits-command.patch} (85%) diff --git a/patches/server/0204-Add-credits-command.patch b/patches/server/0203-Add-credits-command.patch similarity index 85% rename from patches/server/0204-Add-credits-command.patch rename to patches/server/0203-Add-credits-command.patch index b3e3ce8350..d42cfee19d 100644 --- a/patches/server/0204-Add-credits-command.patch +++ b/patches/server/0203-Add-credits-command.patch @@ -30,7 +30,7 @@ index 0161657748d398b6827ef8bc2b00b8a63bf37c55..aaff933c5bf619303842ce6b9a9dc979 public static final PacketPlayOutGameStateChange.a g = new PacketPlayOutGameStateChange.a(6); public static final PacketPlayOutGameStateChange.a h = new PacketPlayOutGameStateChange.a(7); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index c0ef121956ad42bbb555eb8ee6c46b1845dd9e0d..00733da228556230c7886939350007bd68b8639c 100644 +index c0ef121956ad42bbb555eb8ee6c46b1845dd9e0d..e0228fb58149ac8a9430d54157d5e92c93618f22 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -161,6 +161,7 @@ public class PurpurConfig { @@ -41,12 +41,20 @@ index c0ef121956ad42bbb555eb8ee6c46b1845dd9e0d..00733da228556230c7886939350007bd public static String pingCommandOutput = "§a%s's ping is %sms"; public static String cannotRideMob = "§cYou cannot mount that mob"; private static void messages() { +@@ -169,6 +170,7 @@ public class PurpurConfig { + afkTabListPrefix = getString("settings.messages.afk-tab-list-prefix", afkTabListPrefix); + afkTabListSuffix = getString("settings.messages.afk-tab-list-suffix", afkTabListSuffix); + demoCommandOutput = getString("settings.messages.demo-command-output", demoCommandOutput); ++ creditsCommandOutput = getString("settings.messages.credits-command-output", creditsCommandOutput); + pingCommandOutput = getString("settings.messages.ping-command-output", pingCommandOutput); + cannotRideMob = getString("settings.messages.cannot-ride-mob", cannotRideMob); + } diff --git a/src/main/java/net/pl3x/purpur/command/CreditsCommand.java b/src/main/java/net/pl3x/purpur/command/CreditsCommand.java new file mode 100644 -index 0000000000000000000000000000000000000000..533f067a5c8aaa4a1f83682ea24ffad2372afa78 +index 0000000000000000000000000000000000000000..ccb7b9de16c75cd2cddd0c4bbf8e4595e3c61dea --- /dev/null +++ b/src/main/java/net/pl3x/purpur/command/CreditsCommand.java -@@ -0,0 +1,40 @@ +@@ -0,0 +1,41 @@ +package net.pl3x.purpur.command; + +import net.minecraft.commands.CommandDispatcher; @@ -80,6 +88,7 @@ index 0000000000000000000000000000000000000000..533f067a5c8aaa4a1f83682ea24ffad2 + private static int execute(CommandListenerWrapper sender, Collection targets) { + for (EntityPlayer player : targets) { + PacketPlayOutGameStateChange packet = new PacketPlayOutGameStateChange(PacketPlayOutGameStateChange.credits(), 1F); ++ player.viewingCredits = true; + player.playerConnection.sendPacket(packet); + String output = String.format(PurpurConfig.creditsCommandOutput, player.getProfile().getName()); + sender.sendMessage(CraftChatMessage.fromStringOrNull(output), false); From 17c85734752484b948b883f22efc221e48ef5763 Mon Sep 17 00:00:00 2001 From: Encode42 Date: Fri, 30 Apr 2021 14:40:50 -0400 Subject: [PATCH 03/40] [CI-SKIP] Don't pass ping to demo command output --- patches/server/0135-Add-demo-command.patch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/patches/server/0135-Add-demo-command.patch b/patches/server/0135-Add-demo-command.patch index 9184f8f927..32d633c035 100644 --- a/patches/server/0135-Add-demo-command.patch +++ b/patches/server/0135-Add-demo-command.patch @@ -51,7 +51,7 @@ index b903a19e0fcf008cb8358be2d5050c89d2addf28..69d6d3fb4333531ea63acf5272ffa52e } diff --git a/src/main/java/net/pl3x/purpur/command/DemoCommand.java b/src/main/java/net/pl3x/purpur/command/DemoCommand.java new file mode 100644 -index 0000000000000000000000000000000000000000..d621dab3c40f5d093474444eccecd8e7c9e301a1 +index 0000000000000000000000000000000000000000..7ea2e07c95c26528e118541ca2bba4d6117ab28f --- /dev/null +++ b/src/main/java/net/pl3x/purpur/command/DemoCommand.java @@ -0,0 +1,39 @@ @@ -88,7 +88,7 @@ index 0000000000000000000000000000000000000000..d621dab3c40f5d093474444eccecd8e7 + for (EntityPlayer player : targets) { + PacketPlayOutGameStateChange packet = new PacketPlayOutGameStateChange(PacketPlayOutGameStateChange.demo(), 0); + player.playerConnection.sendPacket(packet); -+ String output = String.format(PurpurConfig.demoCommandOutput, player.getProfile().getName(), player.ping); ++ String output = String.format(PurpurConfig.demoCommandOutput, player.getProfile().getName()); + sender.sendMessage(CraftChatMessage.fromStringOrNull(output), false); + } + return targets.size(); From 4b0342a9313c2177f91ee36c9f9a34a9f61dcc8c Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Fri, 30 Apr 2021 14:49:16 -0500 Subject: [PATCH 04/40] Gamemode extra permissions --- .../0204-Gamemode-extra-permissions.patch | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 patches/server/0204-Gamemode-extra-permissions.patch diff --git a/patches/server/0204-Gamemode-extra-permissions.patch b/patches/server/0204-Gamemode-extra-permissions.patch new file mode 100644 index 0000000000..4f84f4d6ff --- /dev/null +++ b/patches/server/0204-Gamemode-extra-permissions.patch @@ -0,0 +1,78 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: BillyGalbreath +Date: Fri, 30 Apr 2021 13:39:39 -0500 +Subject: [PATCH] Gamemode extra permissions + + +diff --git a/src/main/java/net/minecraft/commands/CommandListenerWrapper.java b/src/main/java/net/minecraft/commands/CommandListenerWrapper.java +index 4480fe75cfad35a5104b5116c5ec2c80d18f15f5..d73daa29f784283e03ad2ea3126cca7e572602d4 100644 +--- a/src/main/java/net/minecraft/commands/CommandListenerWrapper.java ++++ b/src/main/java/net/minecraft/commands/CommandListenerWrapper.java +@@ -190,6 +190,21 @@ public class CommandListenerWrapper implements ICompletionProvider, com.destroys + } + // CraftBukkit end + ++ // Purpur start ++ public boolean testPermission(int i, String bukkitPermission) { ++ if (hasPermission(i, bukkitPermission)) { ++ return true; ++ } ++ String permissionMessage = getWorld().getServer().getPermissionMessage(); ++ if (permissionMessage.length() != 0) { ++ for (String line : permissionMessage.replace("", bukkitPermission).split("\n")) { ++ sendFailureMessage(new ChatComponentText(line)); ++ } ++ } ++ return false; ++ } ++ // Purpur end ++ + public Vec3D getPosition() { + return this.d; + } +diff --git a/src/main/java/net/minecraft/server/commands/CommandGamemode.java b/src/main/java/net/minecraft/server/commands/CommandGamemode.java +index 376d5eac9c17365266d8a4986bf4c19030454c9a..f004d027d673ec09c768c3ab0734b6b099921ef9 100644 +--- a/src/main/java/net/minecraft/server/commands/CommandGamemode.java ++++ b/src/main/java/net/minecraft/server/commands/CommandGamemode.java +@@ -55,6 +55,7 @@ public class CommandGamemode { + } + + private static int a(CommandContext commandcontext, Collection collection, EnumGamemode enumgamemode) { ++ if (net.pl3x.purpur.PurpurConfig.commandGamemodeRequiresPermission && !commandcontext.getSource().testPermission(2, "minecraft.command.gamemode." + enumgamemode.b())) return 0; // Purpur + int i = 0; + Iterator iterator = collection.iterator(); + +diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java +index e0228fb58149ac8a9430d54157d5e92c93618f22..878b86c643b90db2fddb7dd2d466e74f54012fe0 100644 +--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java ++++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java +@@ -211,6 +211,11 @@ public class PurpurConfig { + disableGiveCommandDrops = getBoolean("settings.disable-give-dropping", disableGiveCommandDrops); + } + ++ public static boolean commandGamemodeRequiresPermission = false; ++ private static void commandSettings() { ++ commandGamemodeRequiresPermission = getBoolean("settings.command.gamemode.requires-specific-command", commandGamemodeRequiresPermission); ++ } ++ + public static boolean barrelSixRows = false; + public static boolean enderChestSixRows = false; + public static boolean enderChestPermissionRows = false; +diff --git a/src/main/java/org/bukkit/craftbukkit/util/permissions/CommandPermissions.java b/src/main/java/org/bukkit/craftbukkit/util/permissions/CommandPermissions.java +index f0a57d225b81a505ff12425155ba838d8fad990c..81ead4723872528c53efa9e0f23799571447ac86 100644 +--- a/src/main/java/org/bukkit/craftbukkit/util/permissions/CommandPermissions.java ++++ b/src/main/java/org/bukkit/craftbukkit/util/permissions/CommandPermissions.java +@@ -23,7 +23,12 @@ public final class CommandPermissions { + DefaultPermissions.registerPermission(PREFIX + "kick", "Allows the user to kick players", PermissionDefault.OP, commands); + DefaultPermissions.registerPermission(PREFIX + "stop", "Allows the user to stop the server", PermissionDefault.OP, commands); + DefaultPermissions.registerPermission(PREFIX + "list", "Allows the user to list all online players", PermissionDefault.OP, commands); +- DefaultPermissions.registerPermission(PREFIX + "gamemode", "Allows the user to change the gamemode of another player", PermissionDefault.OP, commands); ++ // Purpur start ++ Permission gamemode = DefaultPermissions.registerPermission(PREFIX + "gamemode", "Allows the user to change the gamemode of another player", PermissionDefault.OP, commands); ++ for (net.minecraft.world.level.EnumGamemode enumgamemode : net.minecraft.world.level.EnumGamemode.values()) { ++ gamemode.addParent(DefaultPermissions.registerPermission(PREFIX + "gamemode." + enumgamemode.b(), "Allows the user to set " + enumgamemode.b() + " gamemode", PermissionDefault.OP), true); ++ } ++ // Purpur end + DefaultPermissions.registerPermission(PREFIX + "xp", "Allows the user to give themselves or others arbitrary values of experience", PermissionDefault.OP, commands); + DefaultPermissions.registerPermission(PREFIX + "toggledownfall", "Allows the user to toggle rain on/off for a given world", PermissionDefault.OP, commands); + DefaultPermissions.registerPermission(PREFIX + "defaultgamemode", "Allows the user to change the default gamemode of the server", PermissionDefault.OP, commands); From 3af86add35167af32fd9fa7f833f52c07d31140a Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Fri, 30 Apr 2021 14:51:13 -0500 Subject: [PATCH 05/40] Oopsie --- patches/server/0204-Gamemode-extra-permissions.patch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/patches/server/0204-Gamemode-extra-permissions.patch b/patches/server/0204-Gamemode-extra-permissions.patch index 4f84f4d6ff..af93f8e534 100644 --- a/patches/server/0204-Gamemode-extra-permissions.patch +++ b/patches/server/0204-Gamemode-extra-permissions.patch @@ -43,7 +43,7 @@ index 376d5eac9c17365266d8a4986bf4c19030454c9a..f004d027d673ec09c768c3ab0734b6b0 Iterator iterator = collection.iterator(); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index e0228fb58149ac8a9430d54157d5e92c93618f22..878b86c643b90db2fddb7dd2d466e74f54012fe0 100644 +index e0228fb58149ac8a9430d54157d5e92c93618f22..56424e45c04e7165c0671f74cdcd0147d1069af7 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -211,6 +211,11 @@ public class PurpurConfig { @@ -52,7 +52,7 @@ index e0228fb58149ac8a9430d54157d5e92c93618f22..878b86c643b90db2fddb7dd2d466e74f + public static boolean commandGamemodeRequiresPermission = false; + private static void commandSettings() { -+ commandGamemodeRequiresPermission = getBoolean("settings.command.gamemode.requires-specific-command", commandGamemodeRequiresPermission); ++ commandGamemodeRequiresPermission = getBoolean("settings.command.gamemode.requires-specific-permission", commandGamemodeRequiresPermission); + } + public static boolean barrelSixRows = false; From 1d3f71029710c47a4d6b889264d70f53ec8b7e93 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Fri, 30 Apr 2021 16:15:10 -0500 Subject: [PATCH 06/40] Updated Upstream (Paper) Upstream has released updates that appear to apply and compile correctly Paper Changes: 840e72091 [CI-SKIP] [Auto] Rebuild Patches a33232d4a Add beacon activation and deactivation events (#5121) bc7ea673a Add internal channel initialization listeners (#5557) b28ad17ac Check for world change in MoveEvent API methods 3095c7592 [Auto] Updated Upstream (CraftBukkit) f56989c97 Add RespawnFlags to PlayerRespawnEvent (#5533) 7579c2667 Add more API to PlayerMoveEvent (#5553) --- Paper | 2 +- .../server/0001-Tuinity-Server-Changes.patch | 8 +- .../0003-Multithreaded-entity-tracking.patch | 463 ------------------ ...{0004-Rebrand.patch => 0003-Rebrand.patch} | 0 ...s.patch => 0004-Purpur-config-files.patch} | 0 ...s-stuff.patch => 0005-Timings-stuff.patch} | 0 ...0006-Barrels-and-enderchests-6-rows.patch} | 0 ...t-API.patch => 0007-Advancement-API.patch} | 0 ...9-Llama-API.patch => 0008-Llama-API.patch} | 0 ...{0010-AFK-API.patch => 0009-AFK-API.patch} | 4 +- ...atch => 0010-Bring-back-server-name.patch} | 0 ...> 0011-Configurable-server-mod-name.patch} | 0 ... 0012-LivingEntity-safeFallDistance.patch} | 0 ...old.patch => 0013-Lagging-threshold.patch} | 0 ...h => 0014-ItemFactory-getMonsterEgg.patch} | 0 ...15-PlayerSetSpawnerTypeWithEggEvent.patch} | 0 ...ch => 0016-EMC-MonsterEggSpawnEvent.patch} | 0 ...ch => 0017-Player-invulnerabilities.patch} | 6 +- ...9-Anvil-API.patch => 0018-Anvil-API.patch} | 0 ...9-Configurable-villager-brain-ticks.patch} | 0 ...0020-Alternative-Keepalive-Handling.patch} | 2 +- ...s.patch => 0021-Silk-touch-spawners.patch} | 0 ...72-Fix-Add-turtle-egg-block-options.patch} | 0 ...-vanilla-command-permission-handler.patch} | 0 ...settings-suppressing-pointless-logs.patch} | 0 ...> 0025-Disable-outdated-build-check.patch} | 0 ...gs.patch => 0026-Giants-AI-settings.patch} | 0 ...tch => 0027-Illusioners-AI-settings.patch} | 0 ...> 0028-Zombie-horse-naturally-spawn.patch} | 0 ...029-Charged-creeper-naturally-spawn.patch} | 0 ...it-naturally-spawn-toast-and-killer.patch} | 0 ...er-showing-in-ping-before-server-fu.patch} | 0 ...patch => 0032-Make-Iron-Golems-Swim.patch} | 0 ...33-Dont-send-useless-entity-packets.patch} | 6 +- ...atch => 0034-Tulips-change-fox-type.patch} | 0 ...patch => 0035-Breedable-Polar-Bears.patch} | 0 ...atch => 0036-Chickens-can-retaliate.patch} | 0 ...ption-to-set-armorstand-step-height.patch} | 0 ....patch => 0038-Cat-spawning-options.patch} | 0 ...n-black-cats-spawning-in-swamp-huts.patch} | 0 ...ms.patch => 0040-Cows-eat-mushrooms.patch} | 0 ...ow-rotation-when-shearing-mooshroom.patch} | 0 ...patch => 0042-Pigs-give-saddle-back.patch} | 0 ...3-Snowman-drop-and-put-back-pumpkin.patch} | 0 ...4-Ender-dragon-always-drop-full-exp.patch} | 0 ... 0045-Signs-editable-on-right-click.patch} | 0 ...tch => 0046-Signs-allow-color-codes.patch} | 4 +- ...oisten-from-water-directly-under-it.patch} | 0 ...Minecart-settings-and-WASD-controls.patch} | 2 +- ...ble-loot-drops-on-death-by-cramming.patch} | 0 ...50-Players-should-not-cram-to-death.patch} | 2 +- ...tion-to-toggle-milk-curing-bad-omen.patch} | 0 ...ould-check-if-entity-can-use-portal.patch} | 0 ...053-Fix-the-dead-lagging-the-server.patch} | 0 ...Skip-events-if-there-s-no-listeners.patch} | 0 ... 0055-Add-permission-for-F3-N-debug.patch} | 2 +- ...skeleton-takes-wither-damage-option.patch} | 0 ...ch => 0057-Configurable-TPS-Catchup.patch} | 0 ...ow-loyalty-on-tridents-to-work-in-t.patch} | 0 ...erman-and-creeper-griefing-controls.patch} | 0 ...p-loot-bypass-mob-griefing-gamerule.patch} | 0 ...ng-can-bypass-mob-griefing-gamerule.patch} | 0 ...062-Villagers-follow-emerald-blocks.patch} | 0 ...ch => 0063-Allow-leashing-villagers.patch} | 0 ...rable-search-radius-for-villagers-t.patch} | 0 ...tch => 0065-Implement-infinite-lava.patch} | 0 ...6-Make-lava-flow-speed-configurable.patch} | 0 ...dd-player-death-exp-control-options.patch} | 0 ...=> 0068-Add-canSaveToDisk-to-Entity.patch} | 0 ...069-Configurable-void-damage-height.patch} | 0 ...spenser-curse-of-binding-protection.patch} | 0 ...-for-boats-to-eject-players-on-land.patch} | 0 ... 0072-Add-obfhelpers-for-plugin-use.patch} | 0 ...-mends-most-damages-equipment-first.patch} | 0 ...074-Add-5-second-tps-average-in-tps.patch} | 0 ...h => 0075-Implement-elytra-settings.patch} | 0 ...atch => 0076-Item-entity-immunities.patch} | 12 +- ...mand.patch => 0077-Add-ping-command.patch} | 0 ...=> 0078-Configurable-jockey-options.patch} | 0 ...d-to-crystals-and-crystals-shoot-ph.patch} | 0 ...> 0080-Add-phantom-spawning-options.patch} | 0 ...081-Implement-bed-explosion-options.patch} | 0 ...nt-respawn-anchor-explosion-options.patch} | 0 ...Add-allow-water-in-end-world-option.patch} | 0 ... => 0084-Allow-color-codes-in-books.patch} | 2 +- ...espan.patch => 0085-Entity-lifespan.patch} | 2 +- ...eport-to-spawn-if-outside-world-bor.patch} | 2 +- ...ty.patch => 0087-Squid-EAR-immunity.patch} | 0 ...=> 0088-Configurable-end-spike-seed.patch} | 0 ...h => 0089-Configurable-dungeon-seed.patch} | 0 ...atch => 0090-Phantoms-burn-in-light.patch} | 0 ...0091-Configurable-villager-breeding.patch} | 0 ... 0092-Redstone-deactivates-spawners.patch} | 0 ...ch => 0093-Totems-work-in-inventory.patch} | 0 ...tch => 0094-Populator-seed-controls.patch} | 0 ...-Add-vindicator-johnny-spawn-chance.patch} | 0 ...able-mushroom-and-note-block-update.patch} | 0 ...0097-Dispensers-place-anvils-option.patch} | 0 ...rs.patch => 0098-Allow-anvil-colors.patch} | 0 ... 0099-Add-no-random-tick-block-list.patch} | 0 ...-disable-dolphin-treasure-searching.patch} | 0 ...patch => 0101-Short-enderman-height.patch} | 0 ...top-squids-floating-on-top-of-water.patch} | 0 ...104-Ridables.patch => 0103-Ridables.patch} | 4 +- ...-height-for-nether-surface-builders.patch} | 0 ...ng-obsidian-valid-for-portal-frames.patch} | 0 ...ities-can-use-portals-configuration.patch} | 0 ...107-LivingEntity-broadcastItemBreak.patch} | 0 ...tomizable-wither-health-and-healing.patch} | 0 ...gling-special-MobSpawners-per-world.patch} | 0 ...patch => 0110-Raid-cooldown-setting.patch} | 0 ...-config-options-per-projectile-type.patch} | 0 ...able-zombie-aggressiveness-towards-.patch} | 0 ...ent-TileEntity-Lore-and-DisplayName.patch} | 0 ...-to-recipe-s-ExactChoice-ingredient.patch} | 0 ...y.patch => 0115-Flying-squids-Oh-my.patch} | 0 ...patch => 0116-Infinity-bow-settings.patch} | 0 ...ge.patch => 0117-Stonecutter-damage.patch} | 0 ...=> 0118-Configurable-daylight-cycle.patch} | 0 ...e-and-mending-enchantments-together.patch} | 0 ...patch => 0120-Infinite-fuel-furnace.patch} | 0 ...ws-should-not-reset-despawn-counter.patch} | 0 ...2-Add-tablist-suffix-option-for-afk.patch} | 2 +- ...e-add-farmland-mechanics-from-Alpha.patch} | 0 ...ustable-breeding-cooldown-to-config.patch} | 0 ...-entity-breeding-times-configurable.patch} | 0 ...es-from-item-forms-of-entities-to-e.patch} | 0 ...when-using-a-Name-Tag-on-an-Armor-S.patch} | 0 ...ting-and-weeping-vines-growth-rates.patch} | 0 ...twisting-vines-configurable-max-gro.patch} | 0 ...lowing-Endermen-to-despawn-even-whi.patch} | 0 ...check-to-EntityDamagedByEntityEvent.patch} | 0 ...32-Add-configurable-snowball-damage.patch} | 0 ...reak-door-minimum-difficulty-option.patch} | 0 ...mand.patch => 0134-Add-demo-command.patch} | 0 ...d-API.patch => 0135-Left-handed-API.patch} | 0 ...i-Fix-ProtocolLib-issues-on-Java-15.patch} | 0 ...7-Changeable-Mob-Left-Handed-Chance.patch} | 0 ...=> 0138-Add-boat-fall-damage-config.patch} | 2 +- ...disable-saving-projectiles-to-disk-.patch} | 0 ...0140-Snow-Golem-rate-of-fire-config.patch} | 0 ...-option-for-Piglins-guarding-chests.patch} | 0 ...-Configurable-disable-give-dropping.patch} | 0 ...climbing-should-not-bypass-cramming.patch} | 0 ... => 0144-Lobotomize-stuck-villagers.patch} | 0 ...illager-Clerics-to-farm-Nether-Wart.patch} | 0 ...ied-Piglin-death-always-counting-as.patch} | 0 ...-out-and-optimise-player-list-ticks.patch} | 2 +- ...le-chance-for-wolves-to-spawn-rabid.patch} | 0 ...figurable-default-wolf-collar-color.patch} | 0 ...Configurable-entity-base-attributes.patch} | 0 ...tch => 0151-Phantom-flames-on-swoop.patch} | 0 ...-to-open-even-with-a-solid-block-on.patch} | 0 ...SBar.patch => 0153-Implement-TPSBar.patch} | 2 +- ...h => 0154-Striders-give-saddle-back.patch} | 0 ...tch => 0155-PlayerBookTooLargeEvent.patch} | 2 +- ...herite-armor-grants-fire-resistance.patch} | 0 ...157-Fix-rotating-UP-DOWN-CW-and-CCW.patch} | 0 ...ack.patch => 0158-Add-MC-4-fix-back.patch} | 0 ...efing-bypass-to-everything-affected.patch} | 0 ...llow-Note-Block-sounds-when-blocked.patch} | 0 ...161-Add-EntityTeleportHinderedEvent.patch} | 0 ... => 0162-Add-StructureGenerateEvent.patch} | 0 ... => 0163-Farmland-trampling-changes.patch} | 0 ...4-Movement-options-for-armor-stands.patch} | 0 ....patch => 0165-Fix-stuck-in-portals.patch} | 2 +- ...to-use-infinity-bows-without-arrows.patch} | 0 ...ggle-for-water-sensitive-mob-damage.patch} | 0 ...8-Config-to-always-tame-in-Creative.patch} | 0 ... 0169-End-crystal-explosion-options.patch} | 0 ...Add-unsafe-Entity-serialization-API.patch} | 0 ...171-Add-ghast-allow-griefing-option.patch} | 0 ...ther-Ender-Dragon-can-ride-vehicles.patch} | 0 ...atch => 0173-Dont-run-with-scissors.patch} | 2 +- ...nch-Man.patch => 0174-One-Punch-Man.patch} | 0 ...175-Add-config-for-snow-on-blue-ice.patch} | 0 ...r-Pearl-cooldown-damage-and-Endermi.patch} | 0 ...to-ignore-nearby-mobs-when-sleeping.patch} | 2 +- ...nderman-to-aggro-spawned-Endermites.patch} | 0 ...Dragon-Head-wearers-and-stare-aggro.patch} | 0 ...> 0180-Re-enable-timings-by-default.patch} | 0 ...ig.patch => 0181-Tick-fluids-config.patch} | 0 ...82-Config-to-disable-Llama-caravans.patch} | 0 ...g-to-make-Creepers-explode-on-death.patch} | 0 ...rable-ravager-griefable-blocks-list.patch} | 0 ...185-Sneak-to-bulk-process-composter.patch} | 0 ...h => 0186-Config-for-skipping-night.patch} | 0 ...187-Add-config-for-villager-trading.patch} | 0 ...=> 0188-Allow-infinity-on-crossbows.patch} | 0 ...ngs.patch => 0189-Drowning-Settings.patch} | 0 ...reak-individual-slabs-when-sneaking.patch} | 0 ...to-disable-hostile-mob-spawn-on-ice.patch} | 0 ...g-to-show-Armor-Stand-arms-on-spawn.patch} | 0 ...tion-to-make-doors-require-redstone.patch} | 0 ...Config-to-allow-for-unsafe-enchants.patch} | 0 ...0195-Configurable-sponge-absorption.patch} | 0 ...ch => 0196-Projectile-offset-config.patch} | 0 ...or-powered-rail-activation-distance.patch} | 0 ...> 0198-Piglin-portal-spawn-modifier.patch} | 0 ...Config-to-change-max-number-of-bees.patch} | 0 ...le-damage-settings-for-magma-blocks.patch} | 0 ...-Config-for-wither-explosion-radius.patch} | 0 ...d.patch => 0202-Add-credits-command.patch} | 0 ... => 0203-Gamemode-extra-permissions.patch} | 0 204 files changed, 38 insertions(+), 501 deletions(-) delete mode 100644 patches/server/0003-Multithreaded-entity-tracking.patch rename patches/server/{0004-Rebrand.patch => 0003-Rebrand.patch} (100%) rename patches/server/{0005-Purpur-config-files.patch => 0004-Purpur-config-files.patch} (100%) rename patches/server/{0006-Timings-stuff.patch => 0005-Timings-stuff.patch} (100%) rename patches/server/{0007-Barrels-and-enderchests-6-rows.patch => 0006-Barrels-and-enderchests-6-rows.patch} (100%) rename patches/server/{0008-Advancement-API.patch => 0007-Advancement-API.patch} (100%) rename patches/server/{0009-Llama-API.patch => 0008-Llama-API.patch} (100%) rename patches/server/{0010-AFK-API.patch => 0009-AFK-API.patch} (98%) rename patches/server/{0011-Bring-back-server-name.patch => 0010-Bring-back-server-name.patch} (100%) rename patches/server/{0012-Configurable-server-mod-name.patch => 0011-Configurable-server-mod-name.patch} (100%) rename patches/server/{0013-LivingEntity-safeFallDistance.patch => 0012-LivingEntity-safeFallDistance.patch} (100%) rename patches/server/{0014-Lagging-threshold.patch => 0013-Lagging-threshold.patch} (100%) rename patches/server/{0015-ItemFactory-getMonsterEgg.patch => 0014-ItemFactory-getMonsterEgg.patch} (100%) rename patches/server/{0016-PlayerSetSpawnerTypeWithEggEvent.patch => 0015-PlayerSetSpawnerTypeWithEggEvent.patch} (100%) rename patches/server/{0017-EMC-MonsterEggSpawnEvent.patch => 0016-EMC-MonsterEggSpawnEvent.patch} (100%) rename patches/server/{0018-Player-invulnerabilities.patch => 0017-Player-invulnerabilities.patch} (95%) rename patches/server/{0019-Anvil-API.patch => 0018-Anvil-API.patch} (100%) rename patches/server/{0020-Configurable-villager-brain-ticks.patch => 0019-Configurable-villager-brain-ticks.patch} (100%) rename patches/server/{0021-Alternative-Keepalive-Handling.patch => 0020-Alternative-Keepalive-Handling.patch} (98%) rename patches/server/{0022-Silk-touch-spawners.patch => 0021-Silk-touch-spawners.patch} (100%) rename patches/server/{0023-MC-168772-Fix-Add-turtle-egg-block-options.patch => 0022-MC-168772-Fix-Add-turtle-egg-block-options.patch} (100%) rename patches/server/{0024-Fix-vanilla-command-permission-handler.patch => 0023-Fix-vanilla-command-permission-handler.patch} (100%) rename patches/server/{0025-Logger-settings-suppressing-pointless-logs.patch => 0024-Logger-settings-suppressing-pointless-logs.patch} (100%) rename patches/server/{0026-Disable-outdated-build-check.patch => 0025-Disable-outdated-build-check.patch} (100%) rename patches/server/{0027-Giants-AI-settings.patch => 0026-Giants-AI-settings.patch} (100%) rename patches/server/{0028-Illusioners-AI-settings.patch => 0027-Illusioners-AI-settings.patch} (100%) rename patches/server/{0029-Zombie-horse-naturally-spawn.patch => 0028-Zombie-horse-naturally-spawn.patch} (100%) rename patches/server/{0030-Charged-creeper-naturally-spawn.patch => 0029-Charged-creeper-naturally-spawn.patch} (100%) rename patches/server/{0031-Rabbit-naturally-spawn-toast-and-killer.patch => 0030-Rabbit-naturally-spawn-toast-and-killer.patch} (100%) rename patches/server/{0032-Fix-outdated-server-showing-in-ping-before-server-fu.patch => 0031-Fix-outdated-server-showing-in-ping-before-server-fu.patch} (100%) rename patches/server/{0033-Make-Iron-Golems-Swim.patch => 0032-Make-Iron-Golems-Swim.patch} (100%) rename patches/server/{0034-Dont-send-useless-entity-packets.patch => 0033-Dont-send-useless-entity-packets.patch} (95%) rename patches/server/{0035-Tulips-change-fox-type.patch => 0034-Tulips-change-fox-type.patch} (100%) rename patches/server/{0036-Breedable-Polar-Bears.patch => 0035-Breedable-Polar-Bears.patch} (100%) rename patches/server/{0037-Chickens-can-retaliate.patch => 0036-Chickens-can-retaliate.patch} (100%) rename patches/server/{0038-Add-option-to-set-armorstand-step-height.patch => 0037-Add-option-to-set-armorstand-step-height.patch} (100%) rename patches/server/{0039-Cat-spawning-options.patch => 0038-Cat-spawning-options.patch} (100%) rename patches/server/{0040-MC-147659-Fix-non-black-cats-spawning-in-swamp-huts.patch => 0039-MC-147659-Fix-non-black-cats-spawning-in-swamp-huts.patch} (100%) rename patches/server/{0041-Cows-eat-mushrooms.patch => 0040-Cows-eat-mushrooms.patch} (100%) rename patches/server/{0042-Fix-cow-rotation-when-shearing-mooshroom.patch => 0041-Fix-cow-rotation-when-shearing-mooshroom.patch} (100%) rename patches/server/{0043-Pigs-give-saddle-back.patch => 0042-Pigs-give-saddle-back.patch} (100%) rename patches/server/{0044-Snowman-drop-and-put-back-pumpkin.patch => 0043-Snowman-drop-and-put-back-pumpkin.patch} (100%) rename patches/server/{0045-Ender-dragon-always-drop-full-exp.patch => 0044-Ender-dragon-always-drop-full-exp.patch} (100%) rename patches/server/{0046-Signs-editable-on-right-click.patch => 0045-Signs-editable-on-right-click.patch} (100%) rename patches/server/{0047-Signs-allow-color-codes.patch => 0046-Signs-allow-color-codes.patch} (96%) rename patches/server/{0048-Allow-soil-to-moisten-from-water-directly-under-it.patch => 0047-Allow-soil-to-moisten-from-water-directly-under-it.patch} (100%) rename patches/server/{0049-Minecart-settings-and-WASD-controls.patch => 0048-Minecart-settings-and-WASD-controls.patch} (99%) rename patches/server/{0050-Disable-loot-drops-on-death-by-cramming.patch => 0049-Disable-loot-drops-on-death-by-cramming.patch} (100%) rename patches/server/{0051-Players-should-not-cram-to-death.patch => 0050-Players-should-not-cram-to-death.patch} (91%) rename patches/server/{0052-Option-to-toggle-milk-curing-bad-omen.patch => 0051-Option-to-toggle-milk-curing-bad-omen.patch} (100%) rename patches/server/{0053-End-gateway-should-check-if-entity-can-use-portal.patch => 0052-End-gateway-should-check-if-entity-can-use-portal.patch} (100%) rename patches/server/{0054-Fix-the-dead-lagging-the-server.patch => 0053-Fix-the-dead-lagging-the-server.patch} (100%) rename patches/server/{0055-Skip-events-if-there-s-no-listeners.patch => 0054-Skip-events-if-there-s-no-listeners.patch} (100%) rename patches/server/{0056-Add-permission-for-F3-N-debug.patch => 0055-Add-permission-for-F3-N-debug.patch} (89%) rename patches/server/{0057-Add-wither-skeleton-takes-wither-damage-option.patch => 0056-Add-wither-skeleton-takes-wither-damage-option.patch} (100%) rename patches/server/{0058-Configurable-TPS-Catchup.patch => 0057-Configurable-TPS-Catchup.patch} (100%) rename patches/server/{0059-Add-option-to-allow-loyalty-on-tridents-to-work-in-t.patch => 0058-Add-option-to-allow-loyalty-on-tridents-to-work-in-t.patch} (100%) rename patches/server/{0060-Add-enderman-and-creeper-griefing-controls.patch => 0059-Add-enderman-and-creeper-griefing-controls.patch} (100%) rename patches/server/{0061-Entities-pick-up-loot-bypass-mob-griefing-gamerule.patch => 0060-Entities-pick-up-loot-bypass-mob-griefing-gamerule.patch} (100%) rename patches/server/{0062-Villagers-farming-can-bypass-mob-griefing-gamerule.patch => 0061-Villagers-farming-can-bypass-mob-griefing-gamerule.patch} (100%) rename patches/server/{0063-Villagers-follow-emerald-blocks.patch => 0062-Villagers-follow-emerald-blocks.patch} (100%) rename patches/server/{0064-Allow-leashing-villagers.patch => 0063-Allow-leashing-villagers.patch} (100%) rename patches/server/{0065-Implement-configurable-search-radius-for-villagers-t.patch => 0064-Implement-configurable-search-radius-for-villagers-t.patch} (100%) rename patches/server/{0066-Implement-infinite-lava.patch => 0065-Implement-infinite-lava.patch} (100%) rename patches/server/{0067-Make-lava-flow-speed-configurable.patch => 0066-Make-lava-flow-speed-configurable.patch} (100%) rename patches/server/{0068-Add-player-death-exp-control-options.patch => 0067-Add-player-death-exp-control-options.patch} (100%) rename patches/server/{0069-Add-canSaveToDisk-to-Entity.patch => 0068-Add-canSaveToDisk-to-Entity.patch} (100%) rename patches/server/{0070-Configurable-void-damage-height.patch => 0069-Configurable-void-damage-height.patch} (100%) rename patches/server/{0071-Dispenser-curse-of-binding-protection.patch => 0070-Dispenser-curse-of-binding-protection.patch} (100%) rename patches/server/{0072-Add-option-for-boats-to-eject-players-on-land.patch => 0071-Add-option-for-boats-to-eject-players-on-land.patch} (100%) rename patches/server/{0073-Add-obfhelpers-for-plugin-use.patch => 0072-Add-obfhelpers-for-plugin-use.patch} (100%) rename patches/server/{0074-Mending-mends-most-damages-equipment-first.patch => 0073-Mending-mends-most-damages-equipment-first.patch} (100%) rename patches/server/{0075-Add-5-second-tps-average-in-tps.patch => 0074-Add-5-second-tps-average-in-tps.patch} (100%) rename patches/server/{0076-Implement-elytra-settings.patch => 0075-Implement-elytra-settings.patch} (100%) rename patches/server/{0077-Item-entity-immunities.patch => 0076-Item-entity-immunities.patch} (96%) rename patches/server/{0078-Add-ping-command.patch => 0077-Add-ping-command.patch} (100%) rename patches/server/{0079-Configurable-jockey-options.patch => 0078-Configurable-jockey-options.patch} (100%) rename patches/server/{0080-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch => 0079-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch} (100%) rename patches/server/{0081-Add-phantom-spawning-options.patch => 0080-Add-phantom-spawning-options.patch} (100%) rename patches/server/{0082-Implement-bed-explosion-options.patch => 0081-Implement-bed-explosion-options.patch} (100%) rename patches/server/{0083-Implement-respawn-anchor-explosion-options.patch => 0082-Implement-respawn-anchor-explosion-options.patch} (100%) rename patches/server/{0084-Add-allow-water-in-end-world-option.patch => 0083-Add-allow-water-in-end-world-option.patch} (100%) rename patches/server/{0085-Allow-color-codes-in-books.patch => 0084-Allow-color-codes-in-books.patch} (96%) rename patches/server/{0086-Entity-lifespan.patch => 0085-Entity-lifespan.patch} (98%) rename patches/server/{0087-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch => 0086-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch} (97%) rename patches/server/{0088-Squid-EAR-immunity.patch => 0087-Squid-EAR-immunity.patch} (100%) rename patches/server/{0089-Configurable-end-spike-seed.patch => 0088-Configurable-end-spike-seed.patch} (100%) rename patches/server/{0090-Configurable-dungeon-seed.patch => 0089-Configurable-dungeon-seed.patch} (100%) rename patches/server/{0091-Phantoms-burn-in-light.patch => 0090-Phantoms-burn-in-light.patch} (100%) rename patches/server/{0092-Configurable-villager-breeding.patch => 0091-Configurable-villager-breeding.patch} (100%) rename patches/server/{0093-Redstone-deactivates-spawners.patch => 0092-Redstone-deactivates-spawners.patch} (100%) rename patches/server/{0094-Totems-work-in-inventory.patch => 0093-Totems-work-in-inventory.patch} (100%) rename patches/server/{0095-Populator-seed-controls.patch => 0094-Populator-seed-controls.patch} (100%) rename patches/server/{0096-Add-vindicator-johnny-spawn-chance.patch => 0095-Add-vindicator-johnny-spawn-chance.patch} (100%) rename patches/server/{0097-Add-option-to-disable-mushroom-and-note-block-update.patch => 0096-Add-option-to-disable-mushroom-and-note-block-update.patch} (100%) rename patches/server/{0098-Dispensers-place-anvils-option.patch => 0097-Dispensers-place-anvils-option.patch} (100%) rename patches/server/{0099-Allow-anvil-colors.patch => 0098-Allow-anvil-colors.patch} (100%) rename patches/server/{0100-Add-no-random-tick-block-list.patch => 0099-Add-no-random-tick-block-list.patch} (100%) rename patches/server/{0101-Add-option-to-disable-dolphin-treasure-searching.patch => 0100-Add-option-to-disable-dolphin-treasure-searching.patch} (100%) rename patches/server/{0102-Short-enderman-height.patch => 0101-Short-enderman-height.patch} (100%) rename patches/server/{0103-Stop-squids-floating-on-top-of-water.patch => 0102-Stop-squids-floating-on-top-of-water.patch} (100%) rename patches/server/{0104-Ridables.patch => 0103-Ridables.patch} (99%) rename patches/server/{0105-Use-configured-height-for-nether-surface-builders.patch => 0104-Use-configured-height-for-nether-surface-builders.patch} (100%) rename patches/server/{0106-Crying-obsidian-valid-for-portal-frames.patch => 0105-Crying-obsidian-valid-for-portal-frames.patch} (100%) rename patches/server/{0107-Entities-can-use-portals-configuration.patch => 0106-Entities-can-use-portals-configuration.patch} (100%) rename patches/server/{0108-LivingEntity-broadcastItemBreak.patch => 0107-LivingEntity-broadcastItemBreak.patch} (100%) rename patches/server/{0109-Customizable-wither-health-and-healing.patch => 0108-Customizable-wither-health-and-healing.patch} (100%) rename patches/server/{0110-Allow-toggling-special-MobSpawners-per-world.patch => 0109-Allow-toggling-special-MobSpawners-per-world.patch} (100%) rename patches/server/{0111-Raid-cooldown-setting.patch => 0110-Raid-cooldown-setting.patch} (100%) rename patches/server/{0112-Despawn-rate-config-options-per-projectile-type.patch => 0111-Despawn-rate-config-options-per-projectile-type.patch} (100%) rename patches/server/{0113-Add-option-to-disable-zombie-aggressiveness-towards-.patch => 0112-Add-option-to-disable-zombie-aggressiveness-towards-.patch} (100%) rename patches/server/{0114-Persistent-TileEntity-Lore-and-DisplayName.patch => 0113-Persistent-TileEntity-Lore-and-DisplayName.patch} (100%) rename patches/server/{0115-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch => 0114-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch} (100%) rename patches/server/{0116-Flying-squids-Oh-my.patch => 0115-Flying-squids-Oh-my.patch} (100%) rename patches/server/{0117-Infinity-bow-settings.patch => 0116-Infinity-bow-settings.patch} (100%) rename patches/server/{0118-Stonecutter-damage.patch => 0117-Stonecutter-damage.patch} (100%) rename patches/server/{0119-Configurable-daylight-cycle.patch => 0118-Configurable-daylight-cycle.patch} (100%) rename patches/server/{0120-Allow-infinite-and-mending-enchantments-together.patch => 0119-Allow-infinite-and-mending-enchantments-together.patch} (100%) rename patches/server/{0121-Infinite-fuel-furnace.patch => 0120-Infinite-fuel-furnace.patch} (100%) rename patches/server/{0122-Arrows-should-not-reset-despawn-counter.patch => 0121-Arrows-should-not-reset-despawn-counter.patch} (100%) rename patches/server/{0123-Add-tablist-suffix-option-for-afk.patch => 0122-Add-tablist-suffix-option-for-afk.patch} (96%) rename patches/server/{0124-Ability-to-re-add-farmland-mechanics-from-Alpha.patch => 0123-Ability-to-re-add-farmland-mechanics-from-Alpha.patch} (100%) rename patches/server/{0125-Add-adjustable-breeding-cooldown-to-config.patch => 0124-Add-adjustable-breeding-cooldown-to-config.patch} (100%) rename patches/server/{0126-Make-entity-breeding-times-configurable.patch => 0125-Make-entity-breeding-times-configurable.patch} (100%) rename patches/server/{0127-Apply-display-names-from-item-forms-of-entities-to-e.patch => 0126-Apply-display-names-from-item-forms-of-entities-to-e.patch} (100%) rename patches/server/{0128-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch => 0127-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch} (100%) rename patches/server/{0129-Add-twisting-and-weeping-vines-growth-rates.patch => 0128-Add-twisting-and-weeping-vines-growth-rates.patch} (100%) rename patches/server/{0130-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch => 0129-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch} (100%) rename patches/server/{0131-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch => 0130-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch} (100%) rename patches/server/{0132-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch => 0131-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch} (100%) rename patches/server/{0133-Add-configurable-snowball-damage.patch => 0132-Add-configurable-snowball-damage.patch} (100%) rename patches/server/{0134-Zombie-break-door-minimum-difficulty-option.patch => 0133-Zombie-break-door-minimum-difficulty-option.patch} (100%) rename patches/server/{0135-Add-demo-command.patch => 0134-Add-demo-command.patch} (100%) rename patches/server/{0136-Left-handed-API.patch => 0135-Left-handed-API.patch} (100%) rename patches/server/{0137-Origami-Fix-ProtocolLib-issues-on-Java-15.patch => 0136-Origami-Fix-ProtocolLib-issues-on-Java-15.patch} (100%) rename patches/server/{0138-Changeable-Mob-Left-Handed-Chance.patch => 0137-Changeable-Mob-Left-Handed-Chance.patch} (100%) rename patches/server/{0139-Add-boat-fall-damage-config.patch => 0138-Add-boat-fall-damage-config.patch} (97%) rename patches/server/{0140-Config-migration-disable-saving-projectiles-to-disk-.patch => 0139-Config-migration-disable-saving-projectiles-to-disk-.patch} (100%) rename patches/server/{0141-Snow-Golem-rate-of-fire-config.patch => 0140-Snow-Golem-rate-of-fire-config.patch} (100%) rename patches/server/{0142-PaperPR-Config-option-for-Piglins-guarding-chests.patch => 0141-PaperPR-Config-option-for-Piglins-guarding-chests.patch} (100%) rename patches/server/{0143-EMC-Configurable-disable-give-dropping.patch => 0142-EMC-Configurable-disable-give-dropping.patch} (100%) rename patches/server/{0144-Config-migration-climbing-should-not-bypass-cramming.patch => 0143-Config-migration-climbing-should-not-bypass-cramming.patch} (100%) rename patches/server/{0145-Lobotomize-stuck-villagers.patch => 0144-Lobotomize-stuck-villagers.patch} (100%) rename patches/server/{0146-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch => 0145-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch} (100%) rename patches/server/{0147-Toggle-for-Zombified-Piglin-death-always-counting-as.patch => 0146-Toggle-for-Zombified-Piglin-death-always-counting-as.patch} (100%) rename patches/server/{0148-Spread-out-and-optimise-player-list-ticks.patch => 0147-Spread-out-and-optimise-player-list-ticks.patch} (97%) rename patches/server/{0149-Configurable-chance-for-wolves-to-spawn-rabid.patch => 0148-Configurable-chance-for-wolves-to-spawn-rabid.patch} (100%) rename patches/server/{0150-Configurable-default-wolf-collar-color.patch => 0149-Configurable-default-wolf-collar-color.patch} (100%) rename patches/server/{0151-Configurable-entity-base-attributes.patch => 0150-Configurable-entity-base-attributes.patch} (100%) rename patches/server/{0152-Phantom-flames-on-swoop.patch => 0151-Phantom-flames-on-swoop.patch} (100%) rename patches/server/{0153-Option-for-chests-to-open-even-with-a-solid-block-on.patch => 0152-Option-for-chests-to-open-even-with-a-solid-block-on.patch} (100%) rename patches/server/{0154-Implement-TPSBar.patch => 0153-Implement-TPSBar.patch} (98%) rename patches/server/{0155-Striders-give-saddle-back.patch => 0154-Striders-give-saddle-back.patch} (100%) rename patches/server/{0156-PlayerBookTooLargeEvent.patch => 0155-PlayerBookTooLargeEvent.patch} (96%) rename patches/server/{0157-Full-netherite-armor-grants-fire-resistance.patch => 0156-Full-netherite-armor-grants-fire-resistance.patch} (100%) rename patches/server/{0158-Fix-rotating-UP-DOWN-CW-and-CCW.patch => 0157-Fix-rotating-UP-DOWN-CW-and-CCW.patch} (100%) rename patches/server/{0159-Add-MC-4-fix-back.patch => 0158-Add-MC-4-fix-back.patch} (100%) rename patches/server/{0160-Add-mobGriefing-bypass-to-everything-affected.patch => 0159-Add-mobGriefing-bypass-to-everything-affected.patch} (100%) rename patches/server/{0161-Config-to-allow-Note-Block-sounds-when-blocked.patch => 0160-Config-to-allow-Note-Block-sounds-when-blocked.patch} (100%) rename patches/server/{0162-Add-EntityTeleportHinderedEvent.patch => 0161-Add-EntityTeleportHinderedEvent.patch} (100%) rename patches/server/{0163-Add-StructureGenerateEvent.patch => 0162-Add-StructureGenerateEvent.patch} (100%) rename patches/server/{0164-Farmland-trampling-changes.patch => 0163-Farmland-trampling-changes.patch} (100%) rename patches/server/{0165-Movement-options-for-armor-stands.patch => 0164-Movement-options-for-armor-stands.patch} (100%) rename patches/server/{0166-Fix-stuck-in-portals.patch => 0165-Fix-stuck-in-portals.patch} (96%) rename patches/server/{0167-Config-to-use-infinity-bows-without-arrows.patch => 0166-Config-to-use-infinity-bows-without-arrows.patch} (100%) rename patches/server/{0168-Toggle-for-water-sensitive-mob-damage.patch => 0167-Toggle-for-water-sensitive-mob-damage.patch} (100%) rename patches/server/{0169-Config-to-always-tame-in-Creative.patch => 0168-Config-to-always-tame-in-Creative.patch} (100%) rename patches/server/{0170-End-crystal-explosion-options.patch => 0169-End-crystal-explosion-options.patch} (100%) rename patches/server/{0171-Add-unsafe-Entity-serialization-API.patch => 0170-Add-unsafe-Entity-serialization-API.patch} (100%) rename patches/server/{0172-Add-ghast-allow-griefing-option.patch => 0171-Add-ghast-allow-griefing-option.patch} (100%) rename patches/server/{0173-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch => 0172-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch} (100%) rename patches/server/{0174-Dont-run-with-scissors.patch => 0173-Dont-run-with-scissors.patch} (96%) rename patches/server/{0175-One-Punch-Man.patch => 0174-One-Punch-Man.patch} (100%) rename patches/server/{0176-Add-config-for-snow-on-blue-ice.patch => 0175-Add-config-for-snow-on-blue-ice.patch} (100%) rename patches/server/{0177-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch => 0176-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch} (100%) rename patches/server/{0178-Config-to-ignore-nearby-mobs-when-sleeping.patch => 0177-Config-to-ignore-nearby-mobs-when-sleeping.patch} (96%) rename patches/server/{0179-Config-for-Enderman-to-aggro-spawned-Endermites.patch => 0178-Config-for-Enderman-to-aggro-spawned-Endermites.patch} (100%) rename patches/server/{0180-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch => 0179-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch} (100%) rename patches/server/{0181-Re-enable-timings-by-default.patch => 0180-Re-enable-timings-by-default.patch} (100%) rename patches/server/{0182-Tick-fluids-config.patch => 0181-Tick-fluids-config.patch} (100%) rename patches/server/{0183-Config-to-disable-Llama-caravans.patch => 0182-Config-to-disable-Llama-caravans.patch} (100%) rename patches/server/{0184-Config-to-make-Creepers-explode-on-death.patch => 0183-Config-to-make-Creepers-explode-on-death.patch} (100%) rename patches/server/{0185-Configurable-ravager-griefable-blocks-list.patch => 0184-Configurable-ravager-griefable-blocks-list.patch} (100%) rename patches/server/{0186-Sneak-to-bulk-process-composter.patch => 0185-Sneak-to-bulk-process-composter.patch} (100%) rename patches/server/{0187-Config-for-skipping-night.patch => 0186-Config-for-skipping-night.patch} (100%) rename patches/server/{0188-Add-config-for-villager-trading.patch => 0187-Add-config-for-villager-trading.patch} (100%) rename patches/server/{0189-Allow-infinity-on-crossbows.patch => 0188-Allow-infinity-on-crossbows.patch} (100%) rename patches/server/{0190-Drowning-Settings.patch => 0189-Drowning-Settings.patch} (100%) rename patches/server/{0191-Break-individual-slabs-when-sneaking.patch => 0190-Break-individual-slabs-when-sneaking.patch} (100%) rename patches/server/{0192-Config-to-disable-hostile-mob-spawn-on-ice.patch => 0191-Config-to-disable-hostile-mob-spawn-on-ice.patch} (100%) rename patches/server/{0193-Config-to-show-Armor-Stand-arms-on-spawn.patch => 0192-Config-to-show-Armor-Stand-arms-on-spawn.patch} (100%) rename patches/server/{0194-Option-to-make-doors-require-redstone.patch => 0193-Option-to-make-doors-require-redstone.patch} (100%) rename patches/server/{0195-Config-to-allow-for-unsafe-enchants.patch => 0194-Config-to-allow-for-unsafe-enchants.patch} (100%) rename patches/server/{0196-Configurable-sponge-absorption.patch => 0195-Configurable-sponge-absorption.patch} (100%) rename patches/server/{0197-Projectile-offset-config.patch => 0196-Projectile-offset-config.patch} (100%) rename patches/server/{0198-Config-for-powered-rail-activation-distance.patch => 0197-Config-for-powered-rail-activation-distance.patch} (100%) rename patches/server/{0199-Piglin-portal-spawn-modifier.patch => 0198-Piglin-portal-spawn-modifier.patch} (100%) rename patches/server/{0200-Config-to-change-max-number-of-bees.patch => 0199-Config-to-change-max-number-of-bees.patch} (100%) rename patches/server/{0201-Configurable-damage-settings-for-magma-blocks.patch => 0200-Configurable-damage-settings-for-magma-blocks.patch} (100%) rename patches/server/{0202-Config-for-wither-explosion-radius.patch => 0201-Config-for-wither-explosion-radius.patch} (100%) rename patches/server/{0203-Add-credits-command.patch => 0202-Add-credits-command.patch} (100%) rename patches/server/{0204-Gamemode-extra-permissions.patch => 0203-Gamemode-extra-permissions.patch} (100%) diff --git a/Paper b/Paper index ef60c01c4d..840e72091f 160000 --- a/Paper +++ b/Paper @@ -1 +1 @@ -Subproject commit ef60c01c4da777f07b72668a103c95e06730f259 +Subproject commit 840e72091f3e9a1eccfd9baed07ff0fb45b53686 diff --git a/patches/server/0001-Tuinity-Server-Changes.patch b/patches/server/0001-Tuinity-Server-Changes.patch index 897342fcab..95cb9a5494 100644 --- a/patches/server/0001-Tuinity-Server-Changes.patch +++ b/patches/server/0001-Tuinity-Server-Changes.patch @@ -15035,7 +15035,7 @@ index c67b94840e4c967baebf6eb351df15f0e4ead4be..ed836462123efc6903e406fa926e55e1 throw new IllegalStateException("Protocol error", cryptographyexception); } diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index b543776da3b799643893984a8c6f29477ed78d4a..159c38618d7745ea513ad179b1217d76c2c4897a 100644 +index 9455cb9bc849a330e57fdc466fb51902631e22d8..53320d1d134305c0b37442dfca9931629a6d196d 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -542,6 +542,12 @@ public class PlayerConnection implements PacketListenerPlayIn { @@ -15254,7 +15254,7 @@ index b543776da3b799643893984a8c6f29477ed78d4a..159c38618d7745ea513ad179b1217d76 Stream stream = iworldreader.d(this.player, this.player.getBoundingBox().shrink(9.999999747378752E-6D), (entity) -> { return true; diff --git a/src/main/java/net/minecraft/server/network/ServerConnection.java b/src/main/java/net/minecraft/server/network/ServerConnection.java -index dc362724ea0cc1b2f9d9ceffff483217b4356c40..70fde7bad2e0a6d7432d8509fdb7c46d9f020d4c 100644 +index 69fc2789df88344587b6052f93661ed38f24a503..92836f1200461ba7fff2f8bcb5e1755ec9a0c9ce 100644 --- a/src/main/java/net/minecraft/server/network/ServerConnection.java +++ b/src/main/java/net/minecraft/server/network/ServerConnection.java @@ -87,6 +87,11 @@ public class ServerConnection { @@ -15270,7 +15270,7 @@ index dc362724ea0cc1b2f9d9ceffff483217b4356c40..70fde7bad2e0a6d7432d8509fdb7c46d protected void initChannel(Channel channel) throws Exception { try { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index f8f0212497ad4fbb1273820a06a4ae6721053b8e..c705bf1e651a764d56b87ebc5a86a938d8bd34bb 100644 +index 6bfa8020c19721dd63e038e4b866a7d3a24e66ac..b5043eabe63fe703a321cff6c0f6449cf729cd0e 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -179,6 +179,7 @@ public abstract class PlayerList { @@ -16846,7 +16846,7 @@ index 2f8b3587f527620152609d5be342b328a7621e0f..e440d26c920c4efddf958c61bfdfa508 if (this.fromPlayer == EntityArrow.PickupStatus.ALLOWED && !entityhuman.inventory.pickup(itemstack)) { // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/entity/projectile/EntityFireball.java b/src/main/java/net/minecraft/world/entity/projectile/EntityFireball.java -index b9680f6f2e30ec9397d6a9c83e79563d9253aff6..546de0ec2b624a781480ac95f65b2cbfbb5dcf2e 100644 +index c4248531d4a6a11259d9d78ce1d7683a86840d40..f3077c22445949c484a73ee56eab593f527795a6 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/EntityFireball.java +++ b/src/main/java/net/minecraft/world/entity/projectile/EntityFireball.java @@ -83,7 +83,9 @@ public abstract class EntityFireball extends IProjectile { diff --git a/patches/server/0003-Multithreaded-entity-tracking.patch b/patches/server/0003-Multithreaded-entity-tracking.patch deleted file mode 100644 index 0dc1461773..0000000000 --- a/patches/server/0003-Multithreaded-entity-tracking.patch +++ /dev/null @@ -1,463 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Paul Sauve -Date: Fri, 12 Feb 2021 16:29:41 -0600 -Subject: [PATCH] Multithreaded entity tracking - -Adds a configuration option to run the tracker on multiple threads. -This will generally be faster than the single threaded approach, -unless you don't have a lot of entities/players. - -Airplane -Copyright (C) 2020 Technove LLC - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . - -diff --git a/src/main/java/com/tuinity/tuinity/util/maplist/IteratorSafeOrderedReferenceSet.java b/src/main/java/com/tuinity/tuinity/util/maplist/IteratorSafeOrderedReferenceSet.java -index be408aebbccbda46e8aa82ef337574137cfa0096..739839314fd8a88b5fca8b9678e1df07a166c35d 100644 ---- a/src/main/java/com/tuinity/tuinity/util/maplist/IteratorSafeOrderedReferenceSet.java -+++ b/src/main/java/com/tuinity/tuinity/util/maplist/IteratorSafeOrderedReferenceSet.java -@@ -16,11 +16,11 @@ public final class IteratorSafeOrderedReferenceSet { - - /* list impl */ - protected E[] listElements; -- protected int listSize; -+ protected int listSize; public int getListSize() { return this.listSize; } // Airplane - getter - - protected final double maxFragFactor; - -- protected int iteratorCount; -+ public int iteratorCount; // Airplane - public for debug - - private final boolean threadRestricted; - -diff --git a/src/main/java/gg/airplane/AirplaneConfig.java b/src/main/java/gg/airplane/AirplaneConfig.java -index 65adf3ceda012c8cfdea675c40e2bb27d34ebac7..bb87d8792fa6f4b888dd562d63353fe90d2bc588 100644 ---- a/src/main/java/gg/airplane/AirplaneConfig.java -+++ b/src/main/java/gg/airplane/AirplaneConfig.java -@@ -120,4 +120,17 @@ public class AirplaneConfig { - } - - -+ public static boolean multithreadedEntityTracker = false; -+ public static boolean entityTrackerAsyncPackets = false; -+ -+ private static void entityTracker() { -+ config.setComment("tracker", "Options to improve the performance of the entity tracker"); -+ -+ multithreadedEntityTracker = config.getBoolean("tracker.multithreaded", multithreadedEntityTracker, -+ "This enables the multithreading of the tracker."); -+ entityTrackerAsyncPackets = config.getBoolean("tracker.unsafe-async-packets", entityTrackerAsyncPackets, -+ "This option can break plugins that assume packets from the", -+ "entity tracker will be sent sync."); -+ } -+ - } -diff --git a/src/main/java/gg/airplane/commands/AirplaneCommands.java b/src/main/java/gg/airplane/commands/AirplaneCommands.java -index 66b20250a26d005427601b1cdee43bdd9eba70cc..f84e26b2d8ab9a9b2d9e92e18002483127121135 100644 ---- a/src/main/java/gg/airplane/commands/AirplaneCommands.java -+++ b/src/main/java/gg/airplane/commands/AirplaneCommands.java -@@ -2,11 +2,13 @@ package gg.airplane.commands; - - import gg.airplane.AirplaneCommand; - import gg.airplane.flare.FlareCommand; -+import gg.airplane.structs.TrackQueue; - import net.minecraft.server.MinecraftServer; - - public class AirplaneCommands { - public static void init() { - MinecraftServer.getServer().server.getCommandMap().register("airplane", "Airplane", new AirplaneCommand()); - MinecraftServer.getServer().server.getCommandMap().register("flare", "Airplane", new FlareCommand()); -+ TrackQueue.TrackQueueDebugCommand.register(); - } - } -diff --git a/src/main/java/gg/airplane/structs/TrackQueue.java b/src/main/java/gg/airplane/structs/TrackQueue.java -new file mode 100644 -index 0000000000000000000000000000000000000000..4419fbe94041f4b8a0ea848880798289d063b8e2 ---- /dev/null -+++ b/src/main/java/gg/airplane/structs/TrackQueue.java -@@ -0,0 +1,109 @@ -+package gg.airplane.structs; -+ -+import com.tuinity.tuinity.util.maplist.IteratorSafeOrderedReferenceSet; -+import net.minecraft.server.level.WorldServer; -+import net.minecraft.world.level.chunk.Chunk; -+import net.minecraft.server.MinecraftServer; -+import org.apache.logging.log4j.Level; -+import org.bukkit.command.Command; -+import org.bukkit.command.CommandSender; -+ -+import java.util.concurrent.ConcurrentLinkedQueue; -+import java.util.concurrent.ForkJoinPool; -+import java.util.concurrent.atomic.AtomicInteger; -+ -+/** -+ * Helper class to handle processing a track queue. -+ */ -+public class TrackQueue { -+ -+ public static class TrackQueueDebugCommand extends Command { -+ protected TrackQueueDebugCommand() { -+ super("trackqueuedebug"); -+ } -+ -+ public static void register() { -+ MinecraftServer.getServer().server.getCommandMap().register("trackqueuedebug", "Airplane", new TrackQueueDebugCommand()); -+ } -+ -+ @Override -+ public boolean execute(CommandSender sender, String commandLabel, String[] args) { -+ if (!sender.isOp()) { -+ return false; -+ } -+ for (WorldServer world : MinecraftServer.getServer().getWorlds()) { -+ IteratorSafeOrderedReferenceSet chunks = world.getChunkProvider().entityTickingChunks; -+ sender.sendMessage(world.getWorld().getName() + ": " + chunks.size() + " / " + chunks.getListSize() + " (iterators: " + chunks.iteratorCount + ")"); -+ } -+ return true; -+ } -+ } -+ -+ private final IteratorSafeOrderedReferenceSet chunks; -+ private final ForkJoinPool pool = new ForkJoinPool(Math.max(4, Runtime.getRuntime().availableProcessors() >> 2)); -+ private final AtomicInteger taskIndex = new AtomicInteger(); -+ -+ private final ConcurrentLinkedQueue mainThreadTasks; -+ -+ public TrackQueue(IteratorSafeOrderedReferenceSet chunks, ConcurrentLinkedQueue mainThreadTasks) { -+ this.chunks = chunks; -+ this.mainThreadTasks = mainThreadTasks; -+ } -+ -+ public void start() { -+ int iterator = this.chunks.createRawIterator(); -+ if (iterator == -1) { -+ return; -+ } -+ try { -+ this.taskIndex.set(iterator); -+ -+ for (int i = 0; i < this.pool.getParallelism(); i++) { -+ this.pool.execute(this::run); -+ } -+ -+ while (this.taskIndex.get() < this.chunks.getListSize()) { -+ this.runMainThreadTasks(); -+ this.handleTask(); // assist -+ } -+ this.runMainThreadTasks(); // finish tasks -+ } finally { -+ this.chunks.finishRawIterator(); -+ } -+ } -+ -+ private void runMainThreadTasks() { -+ Runnable task; -+ while ((task = this.mainThreadTasks.poll()) != null) { -+ try { -+ task.run(); -+ } catch (Throwable t) { -+ MinecraftServer.LOGGER.log(Level.WARN, "Tasks failed while ticking track queue", t); -+ } -+ } -+ -+ } -+ -+ private void run() { -+ while (handleTask()); -+ } -+ -+ private boolean handleTask() { -+ int index; -+ while ((index = this.taskIndex.getAndIncrement()) < this.chunks.getListSize()) { -+ Chunk chunk = this.chunks.rawGet(index); -+ if (chunk != null) { -+ try { -+ chunk.entityTracker.run(); -+ } catch (Throwable t) { -+ MinecraftServer.LOGGER.log(Level.WARN, "Ticking tracker failed", t); -+ } -+ -+ return true; -+ } -+ } -+ -+ return false; -+ } -+ -+} -diff --git a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java -index 207a9c3928aad7c6e89a120b54d87e003ebd232c..424cd048f905cd0ed3f7a4545a26ffde8da1f91f 100644 ---- a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java -+++ b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java -@@ -388,7 +388,7 @@ public class ChunkProviderServer extends IChunkProvider { - } - - final com.tuinity.tuinity.util.maplist.IteratorSafeOrderedReferenceSet tickingChunks = new com.tuinity.tuinity.util.maplist.IteratorSafeOrderedReferenceSet<>(4096, 0.75f, 4096, 0.15, true); -- final com.tuinity.tuinity.util.maplist.IteratorSafeOrderedReferenceSet entityTickingChunks = new com.tuinity.tuinity.util.maplist.IteratorSafeOrderedReferenceSet<>(4096, 0.75f, 4096, 0.15, true); -+ public final com.tuinity.tuinity.util.maplist.IteratorSafeOrderedReferenceSet entityTickingChunks = new com.tuinity.tuinity.util.maplist.IteratorSafeOrderedReferenceSet<>(4096, 0.75f, 4096, 0.15, true); // Airplane - public for debug - // Tuinity end - - public ChunkProviderServer(WorldServer worldserver, Convertable.ConversionSession convertable_conversionsession, DataFixer datafixer, DefinedStructureManager definedstructuremanager, Executor executor, ChunkGenerator chunkgenerator, int i, boolean flag, WorldLoadListener worldloadlistener, Supplier supplier) { -diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index fb61b6ac167b34486282a24e598020fb96081f28..b2e21e7034ad83a4ba1c99f860be5a0f5ee6a75f 100644 ---- a/src/main/java/net/minecraft/server/level/EntityPlayer.java -+++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java -@@ -182,7 +182,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { - public NetworkManager networkManager; // Paper - public final MinecraftServer server; - public final PlayerInteractManager playerInteractManager; -- public final Deque removeQueue = new ArrayDeque<>(); // Paper -+ public final Deque removeQueue = new java.util.concurrent.ConcurrentLinkedDeque<>(); // Paper // Airplane concurrent deque - private final AdvancementDataPlayer advancementDataPlayer; - private final ServerStatisticManager serverStatisticManager; - private float lastHealthScored = Float.MIN_VALUE; -diff --git a/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java -index 67ca28463f5add7c18f7f16b918c3f36f8feeeda..37e64e24ca3a90370cdf12e5ff9cd1fceede796b 100644 ---- a/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java -+++ b/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java -@@ -75,6 +75,10 @@ public class EntityTrackerEntry { - * Requested in https://github.com/PaperMC/Paper/issues/1537 to allow intercepting packets - */ - public void sendPlayerPacket(EntityPlayer player, Packet packet) { -+ if (!gg.airplane.AirplaneConfig.entityTrackerAsyncPackets && !org.bukkit.Bukkit.isPrimaryThread()) { -+ this.b.chunkProvider.playerChunkMap.trackerEnsureMain(() -> sendPlayerPacket(player, packet)); -+ return; -+ } - player.playerConnection.sendPacket(packet); - } - -@@ -103,7 +107,7 @@ public class EntityTrackerEntry { - - public final void tick() { this.a(); } // Paper - OBFHELPER - public void a() { -- com.tuinity.tuinity.util.TickThread.softEnsureTickThread("Tracker update"); // Tuinity -+ //com.tuinity.tuinity.util.TickThread.softEnsureTickThread("Tracker update"); // Tuinity // Airplane - allow multithreaded - List list = this.tracker.passengers; // Paper - do not copy list - - if (!list.equals(this.p)) { -@@ -116,6 +120,8 @@ public class EntityTrackerEntry { - ItemStack itemstack = entityitemframe.getItem(); - - if (this.tickCounter % 10 == 0 && itemstack.getItem() instanceof ItemWorldMap) { // CraftBukkit - Moved this.tickCounter % 10 logic here so item frames do not enter the other blocks -+ // Airplane start - process maps on main -+ this.b.chunkProvider.playerChunkMap.trackerEnsureMain(() -> { - WorldMap worldmap = ItemWorldMap.getSavedMap(itemstack, this.b); - Iterator iterator = this.trackedPlayers.iterator(); // CraftBukkit - -@@ -129,6 +135,8 @@ public class EntityTrackerEntry { - entityplayer.playerConnection.sendPacket(packet); - } - } -+ }); -+ // Airplane end - } - - this.c(); -@@ -263,18 +271,25 @@ public class EntityTrackerEntry { - // CraftBukkit start - Create PlayerVelocity event - boolean cancelled = false; - -- if (this.tracker instanceof EntityPlayer) { -+ if (this.tracker instanceof EntityPlayer && PlayerVelocityEvent.getHandlerList().getRegisteredListeners().length > 0) { // Airplane - ensure there's listeners -+ // Airplane start - run on main thread -+ this.b.chunkProvider.playerChunkMap.trackerEnsureMain(() -> { - Player player = (Player) this.tracker.getBukkitEntity(); - org.bukkit.util.Vector velocity = player.getVelocity(); - - PlayerVelocityEvent event = new PlayerVelocityEvent(player, velocity.clone()); - this.tracker.world.getServer().getPluginManager().callEvent(event); - -- if (event.isCancelled()) { -- cancelled = true; -- } else if (!velocity.equals(event.getVelocity())) { -+ if (!event.isCancelled() && !velocity.equals(event.getVelocity())) { - player.setVelocity(event.getVelocity()); - } -+ if (!event.isCancelled()) { -+ this.broadcastIncludingSelf(new PacketPlayOutEntityVelocity(this.tracker)); // duplicate from !cancelled below -+ } -+ -+ }); -+ cancelled = true; // don't broadcast until the event has finished -+ // Airplane end - } - - if (!cancelled) { -@@ -358,7 +373,9 @@ public class EntityTrackerEntry { - if (!list.isEmpty()) { - consumer.accept(new PacketPlayOutEntityEquipment(this.tracker.getId(), list)); - } -+ this.b.chunkProvider.playerChunkMap.trackerEnsureMain(() -> { // Airplane - ((EntityLiving) this.tracker).updateEquipment(); // CraftBukkit - SPIGOT-3789: sync again immediately after sending -+ }); // Airplane - } - - // CraftBukkit start - Fix for nonsensical head yaw -@@ -436,6 +453,10 @@ public class EntityTrackerEntry { - // Paper end - - private void broadcastIncludingSelf(Packet packet) { -+ if (!gg.airplane.AirplaneConfig.entityTrackerAsyncPackets && !org.bukkit.Bukkit.isPrimaryThread()) { -+ this.b.chunkProvider.playerChunkMap.trackerEnsureMain(() -> broadcastIncludingSelf(packet)); -+ return; -+ } - this.f.accept(packet); - if (this.tracker instanceof EntityPlayer) { - ((EntityPlayer) this.tracker).playerConnection.sendPacket(packet); -diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java -index 914c7a1b18151f29183cfe9474313ce18e7c4ae2..737851cde7752e7cccf226f1868a38d6411bfb31 100644 ---- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java -+++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java -@@ -769,6 +769,11 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { - return this.updatingChunks.getVisibleAsync(i); - // Tuinity end - Don't copy - } -+ // Airplane start - since neither map can be updated during tracker tick, it's safe to allow direct retrieval here -+ private PlayerChunk trackerGetVisibleChunk(long i) { -+ return this.updatingChunks.getVisibleAsync(i); -+ } -+ // Airplane end - - protected final IntSupplier getPrioritySupplier(long i) { return c(i); } // Paper - OBFHELPER - protected IntSupplier c(long i) { -@@ -2164,10 +2169,30 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { - entity.tracker = null; // Paper - We're no longer tracked - } - -+ // Airplane start - tools to ensure main thread -+ private final java.util.concurrent.ConcurrentLinkedQueue trackerMainQueue = new java.util.concurrent.ConcurrentLinkedQueue<>(); -+ private gg.airplane.structs.TrackQueue trackQueue; -+ -+ void trackerEnsureMain(Runnable runnable) { -+ if (this.world.serverThread == Thread.currentThread()) { -+ runnable.run(); -+ } else { -+ this.trackerMainQueue.add(runnable); -+ } -+ } -+ // Airplane end -+ - // Paper start - optimised tracker - private final void processTrackQueue() { - this.world.timings.tracker1.startTiming(); - try { -+ // Airplane start - multithreaded tracker -+ if (this.trackQueue == null) this.trackQueue = new gg.airplane.structs.TrackQueue(this.world.getChunkProvider().entityTickingChunks, trackerMainQueue); -+ if (gg.airplane.AirplaneConfig.multithreadedEntityTracker) { -+ this.trackQueue.start(); -+ return; -+ } -+ // Airplane end - com.tuinity.tuinity.util.maplist.IteratorSafeOrderedReferenceSet.Iterator iterator = this.world.getChunkProvider().entityTickingChunks.iterator(); - try { - while (iterator.hasNext()) { -@@ -2433,7 +2458,7 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially - public class EntityTracker { - - final EntityTrackerEntry trackerEntry; // Paper - private -> package private -- private final Entity tracker; -+ public final Entity tracker; // Airplane - public for chunk - private final int trackingDistance; - private SectionPosition e; - // Paper start -@@ -2452,7 +2477,9 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially - // Paper start - use distance map to optimise tracker - com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet lastTrackerCandidates; - -- final void updatePlayers(com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet newTrackerCandidates) { -+ public synchronized final void tickEntry() { this.trackerEntry.tick(); } // Airplane - move entry tick into sync block -+ -+ public synchronized final void updatePlayers(com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet newTrackerCandidates) { // Airplane - com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet oldTrackerCandidates = this.lastTrackerCandidates; - this.lastTrackerCandidates = newTrackerCandidates; - -@@ -2493,7 +2520,13 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially - return this.tracker.getId(); - } - -- public void broadcast(Packet packet) { -+ public synchronized void broadcast(Packet packet) { // Airplane - synchronized for tracked player -+ // Airplane start -+ if (!gg.airplane.AirplaneConfig.entityTrackerAsyncPackets && !org.bukkit.Bukkit.isPrimaryThread()) { -+ trackerEnsureMain(() -> broadcast(packet)); -+ return; -+ } -+ // Airplane end - Iterator iterator = this.trackedPlayers.iterator(); - - while (iterator.hasNext()) { -@@ -2505,6 +2538,12 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially - } - - public void broadcastIncludingSelf(Packet packet) { -+ // Airplane start -+ if (!gg.airplane.AirplaneConfig.entityTrackerAsyncPackets && !org.bukkit.Bukkit.isPrimaryThread()) { -+ trackerEnsureMain(() -> broadcastIncludingSelf(packet)); -+ return; -+ } -+ // Airplane end - this.broadcast(packet); - if (this.tracker instanceof EntityPlayer) { - ((EntityPlayer) this.tracker).playerConnection.sendPacket(packet); -@@ -2531,8 +2570,8 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially - - } - -- public void updatePlayer(EntityPlayer entityplayer) { -- org.spigotmc.AsyncCatcher.catchOp("player tracker update"); // Spigot -+ public synchronized void updatePlayer(EntityPlayer entityplayer) { // Airplane - sync for access to map -+ //org.spigotmc.AsyncCatcher.catchOp("player tracker update"); // Spigot // Airplane - allow sync for tracker - if (entityplayer != this.tracker) { - // Paper start - remove allocation of Vec3D here - //Vec3D vec3d = entityplayer.getPositionVector().d(this.tracker.getPositionVector()); // MC-155077, SPIGOT-5113 -@@ -2553,7 +2592,7 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially - */ - int x = this.tracker.chunkX, z = this.tracker.chunkZ; - long chunkcoordintpair = ChunkCoordIntPair.pair(x, z); -- PlayerChunk playerchunk = PlayerChunkMap.this.getVisibleChunk(chunkcoordintpair); -+ PlayerChunk playerchunk = PlayerChunkMap.this.trackerGetVisibleChunk(chunkcoordintpair); // Airplane - - if (playerchunk != null && playerchunk.getSendingChunk() != null && PlayerChunkMap.this.playerChunkManager.isChunkSent(entityplayer, MathHelper.floor(this.tracker.locX()) >> 4, MathHelper.floor(this.tracker.locZ()) >> 4)) { // Paper - no-tick view distance // Tuinity - don't broadcast in chunks the player hasn't received - flag1 = PlayerChunkMap.someDistanceCalculation(x, z, entityplayer, false) <= PlayerChunkMap.this.viewDistance; -diff --git a/src/main/java/net/minecraft/world/level/chunk/Chunk.java b/src/main/java/net/minecraft/world/level/chunk/Chunk.java -index 8f5809756b4fb358f1207c1d61c5cbe6df3fff00..2e8eb0bb8fb4f7ce6b92fe01a81327da30e614ae 100644 ---- a/src/main/java/net/minecraft/world/level/chunk/Chunk.java -+++ b/src/main/java/net/minecraft/world/level/chunk/Chunk.java -@@ -111,6 +111,26 @@ public class Chunk implements IChunkAccess { - } - // Airplane end - -+ // Airplane start - entity tracker runnable -+ // prevents needing to allocate new lambda in processTrackQueue -+ public final Runnable entityTracker = new Runnable() { -+ @Override -+ public void run() { -+ Entity[] entities = Chunk.this.entities.getRawData(); -+ for (int i = 0, len = Chunk.this.entities.size(); i < len; ++i) { -+ Entity entity = entities[i]; -+ if (entity != null) { -+ PlayerChunkMap.EntityTracker tracker = ((WorldServer) Chunk.this.getWorld()).getChunkProvider().playerChunkMap.trackedEntities.get(entity.getId()); -+ if (tracker != null) { -+ tracker.updatePlayers(tracker.tracker.getPlayersInTrackRange()); -+ tracker.tickEntry(); -+ } -+ } -+ } -+ } -+ }; -+ // Airplane end -+ - public Chunk(World world, ChunkCoordIntPair chunkcoordintpair, BiomeStorage biomestorage) { - this(world, chunkcoordintpair, biomestorage, ChunkConverter.a, TickListEmpty.b(), TickListEmpty.b(), 0L, (ChunkSection[]) null, (Consumer) null); - } diff --git a/patches/server/0004-Rebrand.patch b/patches/server/0003-Rebrand.patch similarity index 100% rename from patches/server/0004-Rebrand.patch rename to patches/server/0003-Rebrand.patch diff --git a/patches/server/0005-Purpur-config-files.patch b/patches/server/0004-Purpur-config-files.patch similarity index 100% rename from patches/server/0005-Purpur-config-files.patch rename to patches/server/0004-Purpur-config-files.patch diff --git a/patches/server/0006-Timings-stuff.patch b/patches/server/0005-Timings-stuff.patch similarity index 100% rename from patches/server/0006-Timings-stuff.patch rename to patches/server/0005-Timings-stuff.patch diff --git a/patches/server/0007-Barrels-and-enderchests-6-rows.patch b/patches/server/0006-Barrels-and-enderchests-6-rows.patch similarity index 100% rename from patches/server/0007-Barrels-and-enderchests-6-rows.patch rename to patches/server/0006-Barrels-and-enderchests-6-rows.patch diff --git a/patches/server/0008-Advancement-API.patch b/patches/server/0007-Advancement-API.patch similarity index 100% rename from patches/server/0008-Advancement-API.patch rename to patches/server/0007-Advancement-API.patch diff --git a/patches/server/0009-Llama-API.patch b/patches/server/0008-Llama-API.patch similarity index 100% rename from patches/server/0009-Llama-API.patch rename to patches/server/0008-Llama-API.patch diff --git a/patches/server/0010-AFK-API.patch b/patches/server/0009-AFK-API.patch similarity index 98% rename from patches/server/0010-AFK-API.patch rename to patches/server/0009-AFK-API.patch index 74b581bf45..b6d4d855b2 100644 --- a/patches/server/0010-AFK-API.patch +++ b/patches/server/0009-AFK-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] AFK API diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index b2e21e7034ad83a4ba1c99f860be5a0f5ee6a75f..598b30244e74a56d62dc4ace5362225447860a0a 100644 +index fb61b6ac167b34486282a24e598020fb96081f28..c42a2813b40152079786dde33231d945f3144580 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java @@ -2071,8 +2071,54 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -86,7 +86,7 @@ index 51bb2502e4efb052f55de6eabce07f59e936c9d9..4f1b055dfe38f6a48763f75c1795dcd6 } else if (entityplayer.isSleeping()) { ++j; diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 159c38618d7745ea513ad179b1217d76c2c4897a..15349a7bddcad5a4a6db07a8aa6ae8d06163b1f6 100644 +index 53320d1d134305c0b37442dfca9931629a6d196d..1f4e45f6e70032bfeeafe30d038e14e052e6ad9d 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -399,6 +399,12 @@ public class PlayerConnection implements PacketListenerPlayIn { diff --git a/patches/server/0011-Bring-back-server-name.patch b/patches/server/0010-Bring-back-server-name.patch similarity index 100% rename from patches/server/0011-Bring-back-server-name.patch rename to patches/server/0010-Bring-back-server-name.patch diff --git a/patches/server/0012-Configurable-server-mod-name.patch b/patches/server/0011-Configurable-server-mod-name.patch similarity index 100% rename from patches/server/0012-Configurable-server-mod-name.patch rename to patches/server/0011-Configurable-server-mod-name.patch diff --git a/patches/server/0013-LivingEntity-safeFallDistance.patch b/patches/server/0012-LivingEntity-safeFallDistance.patch similarity index 100% rename from patches/server/0013-LivingEntity-safeFallDistance.patch rename to patches/server/0012-LivingEntity-safeFallDistance.patch diff --git a/patches/server/0014-Lagging-threshold.patch b/patches/server/0013-Lagging-threshold.patch similarity index 100% rename from patches/server/0014-Lagging-threshold.patch rename to patches/server/0013-Lagging-threshold.patch diff --git a/patches/server/0015-ItemFactory-getMonsterEgg.patch b/patches/server/0014-ItemFactory-getMonsterEgg.patch similarity index 100% rename from patches/server/0015-ItemFactory-getMonsterEgg.patch rename to patches/server/0014-ItemFactory-getMonsterEgg.patch diff --git a/patches/server/0016-PlayerSetSpawnerTypeWithEggEvent.patch b/patches/server/0015-PlayerSetSpawnerTypeWithEggEvent.patch similarity index 100% rename from patches/server/0016-PlayerSetSpawnerTypeWithEggEvent.patch rename to patches/server/0015-PlayerSetSpawnerTypeWithEggEvent.patch diff --git a/patches/server/0017-EMC-MonsterEggSpawnEvent.patch b/patches/server/0016-EMC-MonsterEggSpawnEvent.patch similarity index 100% rename from patches/server/0017-EMC-MonsterEggSpawnEvent.patch rename to patches/server/0016-EMC-MonsterEggSpawnEvent.patch diff --git a/patches/server/0018-Player-invulnerabilities.patch b/patches/server/0017-Player-invulnerabilities.patch similarity index 95% rename from patches/server/0018-Player-invulnerabilities.patch rename to patches/server/0017-Player-invulnerabilities.patch index 7f93ac5338..19bcf3c1dd 100644 --- a/patches/server/0018-Player-invulnerabilities.patch +++ b/patches/server/0017-Player-invulnerabilities.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Player invulnerabilities diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index 598b30244e74a56d62dc4ace5362225447860a0a..f59d7e245aa3768004c7f82837a7482260a53406 100644 +index c42a2813b40152079786dde33231d945f3144580..6e3a3a50e01c41b40451bce05015714b5a7fe1e3 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java @@ -284,6 +284,8 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -67,7 +67,7 @@ index 598b30244e74a56d62dc4ace5362225447860a0a..f59d7e245aa3768004c7f82837a74822 public Scoreboard getScoreboard() { return getBukkitEntity().getScoreboard().getHandle(); diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 15349a7bddcad5a4a6db07a8aa6ae8d06163b1f6..37663436c1ffed4552cdcdac7a5c09fe9b632fee 100644 +index 1f4e45f6e70032bfeeafe30d038e14e052e6ad9d..568fea41d12f2817b09768ff3b03f76930ad676c 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -1896,6 +1896,7 @@ public class PlayerConnection implements PacketListenerPlayIn { @@ -79,7 +79,7 @@ index 15349a7bddcad5a4a6db07a8aa6ae8d06163b1f6..37663436c1ffed4552cdcdac7a5c09fe this.server.getPluginManager().callEvent(new PlayerResourcePackStatusEvent(getPlayer(), packStatus)); // 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 c705bf1e651a764d56b87ebc5a86a938d8bd34bb..9360d35581c6961a768973cc31341381ee26e234 100644 +index b5043eabe63fe703a321cff6c0f6449cf729cd0e..456d87ffb2303867ac1e586078b4f81c059b0e74 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1009,6 +1009,8 @@ public abstract class PlayerList { diff --git a/patches/server/0019-Anvil-API.patch b/patches/server/0018-Anvil-API.patch similarity index 100% rename from patches/server/0019-Anvil-API.patch rename to patches/server/0018-Anvil-API.patch diff --git a/patches/server/0020-Configurable-villager-brain-ticks.patch b/patches/server/0019-Configurable-villager-brain-ticks.patch similarity index 100% rename from patches/server/0020-Configurable-villager-brain-ticks.patch rename to patches/server/0019-Configurable-villager-brain-ticks.patch diff --git a/patches/server/0021-Alternative-Keepalive-Handling.patch b/patches/server/0020-Alternative-Keepalive-Handling.patch similarity index 98% rename from patches/server/0021-Alternative-Keepalive-Handling.patch rename to patches/server/0020-Alternative-Keepalive-Handling.patch index 210c1d15c2..82cbc12390 100644 --- a/patches/server/0021-Alternative-Keepalive-Handling.patch +++ b/patches/server/0020-Alternative-Keepalive-Handling.patch @@ -17,7 +17,7 @@ index b4c37287362907b8507d156b978ba5b9d961bb7b..9e6e6636539702507abb78515e002819 return this.a; } diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 37663436c1ffed4552cdcdac7a5c09fe9b632fee..f5ada346a11ac3becda4b87416beebd680ca16fa 100644 +index 568fea41d12f2817b09768ff3b03f76930ad676c..54327914233580282ee86e46712d1ba0d176bcc4 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -233,6 +233,7 @@ public class PlayerConnection implements PacketListenerPlayIn { diff --git a/patches/server/0022-Silk-touch-spawners.patch b/patches/server/0021-Silk-touch-spawners.patch similarity index 100% rename from patches/server/0022-Silk-touch-spawners.patch rename to patches/server/0021-Silk-touch-spawners.patch diff --git a/patches/server/0023-MC-168772-Fix-Add-turtle-egg-block-options.patch b/patches/server/0022-MC-168772-Fix-Add-turtle-egg-block-options.patch similarity index 100% rename from patches/server/0023-MC-168772-Fix-Add-turtle-egg-block-options.patch rename to patches/server/0022-MC-168772-Fix-Add-turtle-egg-block-options.patch diff --git a/patches/server/0024-Fix-vanilla-command-permission-handler.patch b/patches/server/0023-Fix-vanilla-command-permission-handler.patch similarity index 100% rename from patches/server/0024-Fix-vanilla-command-permission-handler.patch rename to patches/server/0023-Fix-vanilla-command-permission-handler.patch diff --git a/patches/server/0025-Logger-settings-suppressing-pointless-logs.patch b/patches/server/0024-Logger-settings-suppressing-pointless-logs.patch similarity index 100% rename from patches/server/0025-Logger-settings-suppressing-pointless-logs.patch rename to patches/server/0024-Logger-settings-suppressing-pointless-logs.patch diff --git a/patches/server/0026-Disable-outdated-build-check.patch b/patches/server/0025-Disable-outdated-build-check.patch similarity index 100% rename from patches/server/0026-Disable-outdated-build-check.patch rename to patches/server/0025-Disable-outdated-build-check.patch diff --git a/patches/server/0027-Giants-AI-settings.patch b/patches/server/0026-Giants-AI-settings.patch similarity index 100% rename from patches/server/0027-Giants-AI-settings.patch rename to patches/server/0026-Giants-AI-settings.patch diff --git a/patches/server/0028-Illusioners-AI-settings.patch b/patches/server/0027-Illusioners-AI-settings.patch similarity index 100% rename from patches/server/0028-Illusioners-AI-settings.patch rename to patches/server/0027-Illusioners-AI-settings.patch diff --git a/patches/server/0029-Zombie-horse-naturally-spawn.patch b/patches/server/0028-Zombie-horse-naturally-spawn.patch similarity index 100% rename from patches/server/0029-Zombie-horse-naturally-spawn.patch rename to patches/server/0028-Zombie-horse-naturally-spawn.patch diff --git a/patches/server/0030-Charged-creeper-naturally-spawn.patch b/patches/server/0029-Charged-creeper-naturally-spawn.patch similarity index 100% rename from patches/server/0030-Charged-creeper-naturally-spawn.patch rename to patches/server/0029-Charged-creeper-naturally-spawn.patch diff --git a/patches/server/0031-Rabbit-naturally-spawn-toast-and-killer.patch b/patches/server/0030-Rabbit-naturally-spawn-toast-and-killer.patch similarity index 100% rename from patches/server/0031-Rabbit-naturally-spawn-toast-and-killer.patch rename to patches/server/0030-Rabbit-naturally-spawn-toast-and-killer.patch diff --git a/patches/server/0032-Fix-outdated-server-showing-in-ping-before-server-fu.patch b/patches/server/0031-Fix-outdated-server-showing-in-ping-before-server-fu.patch similarity index 100% rename from patches/server/0032-Fix-outdated-server-showing-in-ping-before-server-fu.patch rename to patches/server/0031-Fix-outdated-server-showing-in-ping-before-server-fu.patch diff --git a/patches/server/0033-Make-Iron-Golems-Swim.patch b/patches/server/0032-Make-Iron-Golems-Swim.patch similarity index 100% rename from patches/server/0033-Make-Iron-Golems-Swim.patch rename to patches/server/0032-Make-Iron-Golems-Swim.patch diff --git a/patches/server/0034-Dont-send-useless-entity-packets.patch b/patches/server/0033-Dont-send-useless-entity-packets.patch similarity index 95% rename from patches/server/0034-Dont-send-useless-entity-packets.patch rename to patches/server/0033-Dont-send-useless-entity-packets.patch index 052206a8c8..aaca9df2aa 100644 --- a/patches/server/0034-Dont-send-useless-entity-packets.patch +++ b/patches/server/0033-Dont-send-useless-entity-packets.patch @@ -26,10 +26,10 @@ index 0eed10a6c4e0c7245f219d19ed1e2e5c94364db9..2b54a5f3347f788b751892105f888663 protected boolean h; protected boolean i; diff --git a/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java -index 37e64e24ca3a90370cdf12e5ff9cd1fceede796b..f63ec5fa5a1cb34f4809a06a29d01603efb178f1 100644 +index 67ca28463f5add7c18f7f16b918c3f36f8feeeda..53e773c14689967d5b12467bf209eefb05f7a812 100644 --- a/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java +++ b/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java -@@ -208,6 +208,7 @@ public class EntityTrackerEntry { +@@ -200,6 +200,7 @@ public class EntityTrackerEntry { this.o = 0; packet1 = new PacketPlayOutEntityTeleport(this.tracker); } @@ -37,7 +37,7 @@ index 37e64e24ca3a90370cdf12e5ff9cd1fceede796b..f63ec5fa5a1cb34f4809a06a29d01603 } if ((this.e || this.tracker.impulse || this.tracker instanceof EntityLiving && ((EntityLiving) this.tracker).isGliding()) && this.tickCounter > 0) { -@@ -301,6 +302,22 @@ public class EntityTrackerEntry { +@@ -286,6 +287,22 @@ public class EntityTrackerEntry { } diff --git a/patches/server/0035-Tulips-change-fox-type.patch b/patches/server/0034-Tulips-change-fox-type.patch similarity index 100% rename from patches/server/0035-Tulips-change-fox-type.patch rename to patches/server/0034-Tulips-change-fox-type.patch diff --git a/patches/server/0036-Breedable-Polar-Bears.patch b/patches/server/0035-Breedable-Polar-Bears.patch similarity index 100% rename from patches/server/0036-Breedable-Polar-Bears.patch rename to patches/server/0035-Breedable-Polar-Bears.patch diff --git a/patches/server/0037-Chickens-can-retaliate.patch b/patches/server/0036-Chickens-can-retaliate.patch similarity index 100% rename from patches/server/0037-Chickens-can-retaliate.patch rename to patches/server/0036-Chickens-can-retaliate.patch diff --git a/patches/server/0038-Add-option-to-set-armorstand-step-height.patch b/patches/server/0037-Add-option-to-set-armorstand-step-height.patch similarity index 100% rename from patches/server/0038-Add-option-to-set-armorstand-step-height.patch rename to patches/server/0037-Add-option-to-set-armorstand-step-height.patch diff --git a/patches/server/0039-Cat-spawning-options.patch b/patches/server/0038-Cat-spawning-options.patch similarity index 100% rename from patches/server/0039-Cat-spawning-options.patch rename to patches/server/0038-Cat-spawning-options.patch diff --git a/patches/server/0040-MC-147659-Fix-non-black-cats-spawning-in-swamp-huts.patch b/patches/server/0039-MC-147659-Fix-non-black-cats-spawning-in-swamp-huts.patch similarity index 100% rename from patches/server/0040-MC-147659-Fix-non-black-cats-spawning-in-swamp-huts.patch rename to patches/server/0039-MC-147659-Fix-non-black-cats-spawning-in-swamp-huts.patch diff --git a/patches/server/0041-Cows-eat-mushrooms.patch b/patches/server/0040-Cows-eat-mushrooms.patch similarity index 100% rename from patches/server/0041-Cows-eat-mushrooms.patch rename to patches/server/0040-Cows-eat-mushrooms.patch diff --git a/patches/server/0042-Fix-cow-rotation-when-shearing-mooshroom.patch b/patches/server/0041-Fix-cow-rotation-when-shearing-mooshroom.patch similarity index 100% rename from patches/server/0042-Fix-cow-rotation-when-shearing-mooshroom.patch rename to patches/server/0041-Fix-cow-rotation-when-shearing-mooshroom.patch diff --git a/patches/server/0043-Pigs-give-saddle-back.patch b/patches/server/0042-Pigs-give-saddle-back.patch similarity index 100% rename from patches/server/0043-Pigs-give-saddle-back.patch rename to patches/server/0042-Pigs-give-saddle-back.patch diff --git a/patches/server/0044-Snowman-drop-and-put-back-pumpkin.patch b/patches/server/0043-Snowman-drop-and-put-back-pumpkin.patch similarity index 100% rename from patches/server/0044-Snowman-drop-and-put-back-pumpkin.patch rename to patches/server/0043-Snowman-drop-and-put-back-pumpkin.patch diff --git a/patches/server/0045-Ender-dragon-always-drop-full-exp.patch b/patches/server/0044-Ender-dragon-always-drop-full-exp.patch similarity index 100% rename from patches/server/0045-Ender-dragon-always-drop-full-exp.patch rename to patches/server/0044-Ender-dragon-always-drop-full-exp.patch diff --git a/patches/server/0046-Signs-editable-on-right-click.patch b/patches/server/0045-Signs-editable-on-right-click.patch similarity index 100% rename from patches/server/0046-Signs-editable-on-right-click.patch rename to patches/server/0045-Signs-editable-on-right-click.patch diff --git a/patches/server/0047-Signs-allow-color-codes.patch b/patches/server/0046-Signs-allow-color-codes.patch similarity index 96% rename from patches/server/0047-Signs-allow-color-codes.patch rename to patches/server/0046-Signs-allow-color-codes.patch index 2d6e0522dc..7d01b04800 100644 --- a/patches/server/0047-Signs-allow-color-codes.patch +++ b/patches/server/0046-Signs-allow-color-codes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Signs allow color codes diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index f59d7e245aa3768004c7f82837a7482260a53406..c337b22a2f8ce5c76a1699956f6c06721046e814 100644 +index 6e3a3a50e01c41b40451bce05015714b5a7fe1e3..43900bb788f4baef420de0782c77d74dd7310f6e 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java @@ -1579,6 +1579,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -17,7 +17,7 @@ index f59d7e245aa3768004c7f82837a7482260a53406..c337b22a2f8ce5c76a1699956f6c0672 this.playerConnection.sendPacket(new PacketPlayOutOpenSignEditor(tileentitysign.getPosition())); } diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index f5ada346a11ac3becda4b87416beebd680ca16fa..4f094f026b118775cae84024b2ba6c33e14784e6 100644 +index 54327914233580282ee86e46712d1ba0d176bcc4..6451d5a6d491959ea537d11d0dde077578fed381 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -3073,6 +3073,15 @@ public class PlayerConnection implements PacketListenerPlayIn { diff --git a/patches/server/0048-Allow-soil-to-moisten-from-water-directly-under-it.patch b/patches/server/0047-Allow-soil-to-moisten-from-water-directly-under-it.patch similarity index 100% rename from patches/server/0048-Allow-soil-to-moisten-from-water-directly-under-it.patch rename to patches/server/0047-Allow-soil-to-moisten-from-water-directly-under-it.patch diff --git a/patches/server/0049-Minecart-settings-and-WASD-controls.patch b/patches/server/0048-Minecart-settings-and-WASD-controls.patch similarity index 99% rename from patches/server/0049-Minecart-settings-and-WASD-controls.patch rename to patches/server/0048-Minecart-settings-and-WASD-controls.patch index 6129cb8a36..dd2459642a 100644 --- a/patches/server/0049-Minecart-settings-and-WASD-controls.patch +++ b/patches/server/0048-Minecart-settings-and-WASD-controls.patch @@ -22,7 +22,7 @@ index 3c51ee00aa53e561c02bb779c7115d8475d70ed7..47381b2a804f1e2296d654933d77c2da super(i, j, k); } diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index c337b22a2f8ce5c76a1699956f6c06721046e814..7fd6c93e7c7cd8f86d06710d39e4431e001bd97b 100644 +index 43900bb788f4baef420de0782c77d74dd7310f6e..01d4aa706f5c1cf35210bbdbf25b4687d110eaa1 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java @@ -1132,6 +1132,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { diff --git a/patches/server/0050-Disable-loot-drops-on-death-by-cramming.patch b/patches/server/0049-Disable-loot-drops-on-death-by-cramming.patch similarity index 100% rename from patches/server/0050-Disable-loot-drops-on-death-by-cramming.patch rename to patches/server/0049-Disable-loot-drops-on-death-by-cramming.patch diff --git a/patches/server/0051-Players-should-not-cram-to-death.patch b/patches/server/0050-Players-should-not-cram-to-death.patch similarity index 91% rename from patches/server/0051-Players-should-not-cram-to-death.patch rename to patches/server/0050-Players-should-not-cram-to-death.patch index a45127b45b..359d457915 100644 --- a/patches/server/0051-Players-should-not-cram-to-death.patch +++ b/patches/server/0050-Players-should-not-cram-to-death.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Players should not cram to death diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index 7fd6c93e7c7cd8f86d06710d39e4431e001bd97b..0f6760c6922be4a4322ebbc6212b0d88494f5a52 100644 +index 01d4aa706f5c1cf35210bbdbf25b4687d110eaa1..257265a036a62c7d5fbcff17a10a41198ed880a4 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java @@ -1556,7 +1556,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { diff --git a/patches/server/0052-Option-to-toggle-milk-curing-bad-omen.patch b/patches/server/0051-Option-to-toggle-milk-curing-bad-omen.patch similarity index 100% rename from patches/server/0052-Option-to-toggle-milk-curing-bad-omen.patch rename to patches/server/0051-Option-to-toggle-milk-curing-bad-omen.patch diff --git a/patches/server/0053-End-gateway-should-check-if-entity-can-use-portal.patch b/patches/server/0052-End-gateway-should-check-if-entity-can-use-portal.patch similarity index 100% rename from patches/server/0053-End-gateway-should-check-if-entity-can-use-portal.patch rename to patches/server/0052-End-gateway-should-check-if-entity-can-use-portal.patch diff --git a/patches/server/0054-Fix-the-dead-lagging-the-server.patch b/patches/server/0053-Fix-the-dead-lagging-the-server.patch similarity index 100% rename from patches/server/0054-Fix-the-dead-lagging-the-server.patch rename to patches/server/0053-Fix-the-dead-lagging-the-server.patch diff --git a/patches/server/0055-Skip-events-if-there-s-no-listeners.patch b/patches/server/0054-Skip-events-if-there-s-no-listeners.patch similarity index 100% rename from patches/server/0055-Skip-events-if-there-s-no-listeners.patch rename to patches/server/0054-Skip-events-if-there-s-no-listeners.patch diff --git a/patches/server/0056-Add-permission-for-F3-N-debug.patch b/patches/server/0055-Add-permission-for-F3-N-debug.patch similarity index 89% rename from patches/server/0056-Add-permission-for-F3-N-debug.patch rename to patches/server/0055-Add-permission-for-F3-N-debug.patch index 1c43ba78af..baea78df5e 100644 --- a/patches/server/0056-Add-permission-for-F3-N-debug.patch +++ b/patches/server/0055-Add-permission-for-F3-N-debug.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add permission for F3+N debug diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 9360d35581c6961a768973cc31341381ee26e234..c742647c0c5e3e4925e4ee6d195a54a85435e65e 100644 +index 456d87ffb2303867ac1e586078b4f81c059b0e74..92d696ee1812e8cfb8a853b5254db3ef5e4d2266 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1168,6 +1168,7 @@ public abstract class PlayerList { diff --git a/patches/server/0057-Add-wither-skeleton-takes-wither-damage-option.patch b/patches/server/0056-Add-wither-skeleton-takes-wither-damage-option.patch similarity index 100% rename from patches/server/0057-Add-wither-skeleton-takes-wither-damage-option.patch rename to patches/server/0056-Add-wither-skeleton-takes-wither-damage-option.patch diff --git a/patches/server/0058-Configurable-TPS-Catchup.patch b/patches/server/0057-Configurable-TPS-Catchup.patch similarity index 100% rename from patches/server/0058-Configurable-TPS-Catchup.patch rename to patches/server/0057-Configurable-TPS-Catchup.patch diff --git a/patches/server/0059-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 similarity index 100% rename from patches/server/0059-Add-option-to-allow-loyalty-on-tridents-to-work-in-t.patch rename to patches/server/0058-Add-option-to-allow-loyalty-on-tridents-to-work-in-t.patch diff --git a/patches/server/0060-Add-enderman-and-creeper-griefing-controls.patch b/patches/server/0059-Add-enderman-and-creeper-griefing-controls.patch similarity index 100% rename from patches/server/0060-Add-enderman-and-creeper-griefing-controls.patch rename to patches/server/0059-Add-enderman-and-creeper-griefing-controls.patch diff --git a/patches/server/0061-Entities-pick-up-loot-bypass-mob-griefing-gamerule.patch b/patches/server/0060-Entities-pick-up-loot-bypass-mob-griefing-gamerule.patch similarity index 100% rename from patches/server/0061-Entities-pick-up-loot-bypass-mob-griefing-gamerule.patch rename to patches/server/0060-Entities-pick-up-loot-bypass-mob-griefing-gamerule.patch diff --git a/patches/server/0062-Villagers-farming-can-bypass-mob-griefing-gamerule.patch b/patches/server/0061-Villagers-farming-can-bypass-mob-griefing-gamerule.patch similarity index 100% rename from patches/server/0062-Villagers-farming-can-bypass-mob-griefing-gamerule.patch rename to patches/server/0061-Villagers-farming-can-bypass-mob-griefing-gamerule.patch diff --git a/patches/server/0063-Villagers-follow-emerald-blocks.patch b/patches/server/0062-Villagers-follow-emerald-blocks.patch similarity index 100% rename from patches/server/0063-Villagers-follow-emerald-blocks.patch rename to patches/server/0062-Villagers-follow-emerald-blocks.patch diff --git a/patches/server/0064-Allow-leashing-villagers.patch b/patches/server/0063-Allow-leashing-villagers.patch similarity index 100% rename from patches/server/0064-Allow-leashing-villagers.patch rename to patches/server/0063-Allow-leashing-villagers.patch diff --git a/patches/server/0065-Implement-configurable-search-radius-for-villagers-t.patch b/patches/server/0064-Implement-configurable-search-radius-for-villagers-t.patch similarity index 100% rename from patches/server/0065-Implement-configurable-search-radius-for-villagers-t.patch rename to patches/server/0064-Implement-configurable-search-radius-for-villagers-t.patch diff --git a/patches/server/0066-Implement-infinite-lava.patch b/patches/server/0065-Implement-infinite-lava.patch similarity index 100% rename from patches/server/0066-Implement-infinite-lava.patch rename to patches/server/0065-Implement-infinite-lava.patch diff --git a/patches/server/0067-Make-lava-flow-speed-configurable.patch b/patches/server/0066-Make-lava-flow-speed-configurable.patch similarity index 100% rename from patches/server/0067-Make-lava-flow-speed-configurable.patch rename to patches/server/0066-Make-lava-flow-speed-configurable.patch diff --git a/patches/server/0068-Add-player-death-exp-control-options.patch b/patches/server/0067-Add-player-death-exp-control-options.patch similarity index 100% rename from patches/server/0068-Add-player-death-exp-control-options.patch rename to patches/server/0067-Add-player-death-exp-control-options.patch diff --git a/patches/server/0069-Add-canSaveToDisk-to-Entity.patch b/patches/server/0068-Add-canSaveToDisk-to-Entity.patch similarity index 100% rename from patches/server/0069-Add-canSaveToDisk-to-Entity.patch rename to patches/server/0068-Add-canSaveToDisk-to-Entity.patch diff --git a/patches/server/0070-Configurable-void-damage-height.patch b/patches/server/0069-Configurable-void-damage-height.patch similarity index 100% rename from patches/server/0070-Configurable-void-damage-height.patch rename to patches/server/0069-Configurable-void-damage-height.patch diff --git a/patches/server/0071-Dispenser-curse-of-binding-protection.patch b/patches/server/0070-Dispenser-curse-of-binding-protection.patch similarity index 100% rename from patches/server/0071-Dispenser-curse-of-binding-protection.patch rename to patches/server/0070-Dispenser-curse-of-binding-protection.patch diff --git a/patches/server/0072-Add-option-for-boats-to-eject-players-on-land.patch b/patches/server/0071-Add-option-for-boats-to-eject-players-on-land.patch similarity index 100% rename from patches/server/0072-Add-option-for-boats-to-eject-players-on-land.patch rename to patches/server/0071-Add-option-for-boats-to-eject-players-on-land.patch diff --git a/patches/server/0073-Add-obfhelpers-for-plugin-use.patch b/patches/server/0072-Add-obfhelpers-for-plugin-use.patch similarity index 100% rename from patches/server/0073-Add-obfhelpers-for-plugin-use.patch rename to patches/server/0072-Add-obfhelpers-for-plugin-use.patch diff --git a/patches/server/0074-Mending-mends-most-damages-equipment-first.patch b/patches/server/0073-Mending-mends-most-damages-equipment-first.patch similarity index 100% rename from patches/server/0074-Mending-mends-most-damages-equipment-first.patch rename to patches/server/0073-Mending-mends-most-damages-equipment-first.patch diff --git a/patches/server/0075-Add-5-second-tps-average-in-tps.patch b/patches/server/0074-Add-5-second-tps-average-in-tps.patch similarity index 100% rename from patches/server/0075-Add-5-second-tps-average-in-tps.patch rename to patches/server/0074-Add-5-second-tps-average-in-tps.patch diff --git a/patches/server/0076-Implement-elytra-settings.patch b/patches/server/0075-Implement-elytra-settings.patch similarity index 100% rename from patches/server/0076-Implement-elytra-settings.patch rename to patches/server/0075-Implement-elytra-settings.patch diff --git a/patches/server/0077-Item-entity-immunities.patch b/patches/server/0076-Item-entity-immunities.patch similarity index 96% rename from patches/server/0077-Item-entity-immunities.patch rename to patches/server/0076-Item-entity-immunities.patch index e79764a262..96cbf67486 100644 --- a/patches/server/0077-Item-entity-immunities.patch +++ b/patches/server/0076-Item-entity-immunities.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Item entity immunities diff --git a/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java -index f63ec5fa5a1cb34f4809a06a29d01603efb178f1..b773480baef218d0aab2f524e7e305c18443517d 100644 +index 53e773c14689967d5b12467bf209eefb05f7a812..04c4012d2f57025c28607c12b71cd1737ed7cac5 100644 --- a/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java +++ b/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java @@ -31,6 +31,7 @@ import net.minecraft.world.entity.EntityLiving; @@ -25,7 +25,7 @@ index f63ec5fa5a1cb34f4809a06a29d01603efb178f1..b773480baef218d0aab2f524e7e305c1 // Paper start private java.util.Map trackedPlayerMap = null; -@@ -142,6 +143,15 @@ public class EntityTrackerEntry { +@@ -134,6 +135,15 @@ public class EntityTrackerEntry { this.c(); } @@ -42,16 +42,16 @@ index f63ec5fa5a1cb34f4809a06a29d01603efb178f1..b773480baef218d0aab2f524e7e305c1 int i; int j; diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java -index 737851cde7752e7cccf226f1868a38d6411bfb31..ae32fe66a70d583993fe81de4c95b7b2fe8a6fc8 100644 +index 914c7a1b18151f29183cfe9474313ce18e7c4ae2..12c0a0cebc9db542a654ff2a2826f1bcf4a72baa 100644 --- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java -@@ -2457,7 +2457,7 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially +@@ -2432,7 +2432,7 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially public class EntityTracker { - final EntityTrackerEntry trackerEntry; // Paper - private -> package private -+ public final EntityTrackerEntry trackerEntry; // Paper - private -> public - public final Entity tracker; // Airplane - public for chunk ++ public final EntityTrackerEntry trackerEntry; // Paper - private -> package private // Purpur -> public + private final Entity tracker; private final int trackingDistance; private SectionPosition e; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/patches/server/0078-Add-ping-command.patch b/patches/server/0077-Add-ping-command.patch similarity index 100% rename from patches/server/0078-Add-ping-command.patch rename to patches/server/0077-Add-ping-command.patch diff --git a/patches/server/0079-Configurable-jockey-options.patch b/patches/server/0078-Configurable-jockey-options.patch similarity index 100% rename from patches/server/0079-Configurable-jockey-options.patch rename to patches/server/0078-Configurable-jockey-options.patch diff --git a/patches/server/0080-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch b/patches/server/0079-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch similarity index 100% rename from patches/server/0080-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch rename to patches/server/0079-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch diff --git a/patches/server/0081-Add-phantom-spawning-options.patch b/patches/server/0080-Add-phantom-spawning-options.patch similarity index 100% rename from patches/server/0081-Add-phantom-spawning-options.patch rename to patches/server/0080-Add-phantom-spawning-options.patch diff --git a/patches/server/0082-Implement-bed-explosion-options.patch b/patches/server/0081-Implement-bed-explosion-options.patch similarity index 100% rename from patches/server/0082-Implement-bed-explosion-options.patch rename to patches/server/0081-Implement-bed-explosion-options.patch diff --git a/patches/server/0083-Implement-respawn-anchor-explosion-options.patch b/patches/server/0082-Implement-respawn-anchor-explosion-options.patch similarity index 100% rename from patches/server/0083-Implement-respawn-anchor-explosion-options.patch rename to patches/server/0082-Implement-respawn-anchor-explosion-options.patch diff --git a/patches/server/0084-Add-allow-water-in-end-world-option.patch b/patches/server/0083-Add-allow-water-in-end-world-option.patch similarity index 100% rename from patches/server/0084-Add-allow-water-in-end-world-option.patch rename to patches/server/0083-Add-allow-water-in-end-world-option.patch diff --git a/patches/server/0085-Allow-color-codes-in-books.patch b/patches/server/0084-Allow-color-codes-in-books.patch similarity index 96% rename from patches/server/0085-Allow-color-codes-in-books.patch rename to patches/server/0084-Allow-color-codes-in-books.patch index a9a4c0b81b..e3028bf3cc 100644 --- a/patches/server/0085-Allow-color-codes-in-books.patch +++ b/patches/server/0084-Allow-color-codes-in-books.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow color codes in books diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 4f094f026b118775cae84024b2ba6c33e14784e6..c4ef3fef4db2326a531694e6798bab6103c7061c 100644 +index 6451d5a6d491959ea537d11d0dde077578fed381..e63e7f30db64d30840037d996c153822ce80fbbd 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -1211,7 +1211,8 @@ public class PlayerConnection implements PacketListenerPlayIn { diff --git a/patches/server/0086-Entity-lifespan.patch b/patches/server/0085-Entity-lifespan.patch similarity index 98% rename from patches/server/0086-Entity-lifespan.patch rename to patches/server/0085-Entity-lifespan.patch index 6f7ffe99de..4d73870923 100644 --- a/patches/server/0086-Entity-lifespan.patch +++ b/patches/server/0085-Entity-lifespan.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Entity lifespan diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index c4ef3fef4db2326a531694e6798bab6103c7061c..92437cf4413ea76ef139b007adf2b76c2729dad2 100644 +index e63e7f30db64d30840037d996c153822ce80fbbd..1c7579a1426c831484fe095d13169c2c47906843 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -2458,6 +2458,7 @@ public class PlayerConnection implements PacketListenerPlayIn { diff --git a/patches/server/0087-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch b/patches/server/0086-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch similarity index 97% rename from patches/server/0087-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch rename to patches/server/0086-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch index b03c0c880f..45dee02210 100644 --- a/patches/server/0087-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch +++ b/patches/server/0086-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/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index 0f6760c6922be4a4322ebbc6212b0d88494f5a52..53c2bb5af825255e8c786bf02052f41c5d3e270b 100644 +index 257265a036a62c7d5fbcff17a10a41198ed880a4..da708df0dc50ea02441f9db2bfd52f04d9a8e3da 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java @@ -2556,4 +2556,26 @@ public class EntityPlayer extends EntityHuman implements ICrafting { diff --git a/patches/server/0088-Squid-EAR-immunity.patch b/patches/server/0087-Squid-EAR-immunity.patch similarity index 100% rename from patches/server/0088-Squid-EAR-immunity.patch rename to patches/server/0087-Squid-EAR-immunity.patch diff --git a/patches/server/0089-Configurable-end-spike-seed.patch b/patches/server/0088-Configurable-end-spike-seed.patch similarity index 100% rename from patches/server/0089-Configurable-end-spike-seed.patch rename to patches/server/0088-Configurable-end-spike-seed.patch diff --git a/patches/server/0090-Configurable-dungeon-seed.patch b/patches/server/0089-Configurable-dungeon-seed.patch similarity index 100% rename from patches/server/0090-Configurable-dungeon-seed.patch rename to patches/server/0089-Configurable-dungeon-seed.patch diff --git a/patches/server/0091-Phantoms-burn-in-light.patch b/patches/server/0090-Phantoms-burn-in-light.patch similarity index 100% rename from patches/server/0091-Phantoms-burn-in-light.patch rename to patches/server/0090-Phantoms-burn-in-light.patch diff --git a/patches/server/0092-Configurable-villager-breeding.patch b/patches/server/0091-Configurable-villager-breeding.patch similarity index 100% rename from patches/server/0092-Configurable-villager-breeding.patch rename to patches/server/0091-Configurable-villager-breeding.patch diff --git a/patches/server/0093-Redstone-deactivates-spawners.patch b/patches/server/0092-Redstone-deactivates-spawners.patch similarity index 100% rename from patches/server/0093-Redstone-deactivates-spawners.patch rename to patches/server/0092-Redstone-deactivates-spawners.patch diff --git a/patches/server/0094-Totems-work-in-inventory.patch b/patches/server/0093-Totems-work-in-inventory.patch similarity index 100% rename from patches/server/0094-Totems-work-in-inventory.patch rename to patches/server/0093-Totems-work-in-inventory.patch diff --git a/patches/server/0095-Populator-seed-controls.patch b/patches/server/0094-Populator-seed-controls.patch similarity index 100% rename from patches/server/0095-Populator-seed-controls.patch rename to patches/server/0094-Populator-seed-controls.patch diff --git a/patches/server/0096-Add-vindicator-johnny-spawn-chance.patch b/patches/server/0095-Add-vindicator-johnny-spawn-chance.patch similarity index 100% rename from patches/server/0096-Add-vindicator-johnny-spawn-chance.patch rename to patches/server/0095-Add-vindicator-johnny-spawn-chance.patch diff --git a/patches/server/0097-Add-option-to-disable-mushroom-and-note-block-update.patch b/patches/server/0096-Add-option-to-disable-mushroom-and-note-block-update.patch similarity index 100% rename from patches/server/0097-Add-option-to-disable-mushroom-and-note-block-update.patch rename to patches/server/0096-Add-option-to-disable-mushroom-and-note-block-update.patch diff --git a/patches/server/0098-Dispensers-place-anvils-option.patch b/patches/server/0097-Dispensers-place-anvils-option.patch similarity index 100% rename from patches/server/0098-Dispensers-place-anvils-option.patch rename to patches/server/0097-Dispensers-place-anvils-option.patch diff --git a/patches/server/0099-Allow-anvil-colors.patch b/patches/server/0098-Allow-anvil-colors.patch similarity index 100% rename from patches/server/0099-Allow-anvil-colors.patch rename to patches/server/0098-Allow-anvil-colors.patch diff --git a/patches/server/0100-Add-no-random-tick-block-list.patch b/patches/server/0099-Add-no-random-tick-block-list.patch similarity index 100% rename from patches/server/0100-Add-no-random-tick-block-list.patch rename to patches/server/0099-Add-no-random-tick-block-list.patch diff --git a/patches/server/0101-Add-option-to-disable-dolphin-treasure-searching.patch b/patches/server/0100-Add-option-to-disable-dolphin-treasure-searching.patch similarity index 100% rename from patches/server/0101-Add-option-to-disable-dolphin-treasure-searching.patch rename to patches/server/0100-Add-option-to-disable-dolphin-treasure-searching.patch diff --git a/patches/server/0102-Short-enderman-height.patch b/patches/server/0101-Short-enderman-height.patch similarity index 100% rename from patches/server/0102-Short-enderman-height.patch rename to patches/server/0101-Short-enderman-height.patch diff --git a/patches/server/0103-Stop-squids-floating-on-top-of-water.patch b/patches/server/0102-Stop-squids-floating-on-top-of-water.patch similarity index 100% rename from patches/server/0103-Stop-squids-floating-on-top-of-water.patch rename to patches/server/0102-Stop-squids-floating-on-top-of-water.patch diff --git a/patches/server/0104-Ridables.patch b/patches/server/0103-Ridables.patch similarity index 99% rename from patches/server/0104-Ridables.patch rename to patches/server/0103-Ridables.patch index 31616d053c..6da401c695 100644 --- a/patches/server/0104-Ridables.patch +++ b/patches/server/0103-Ridables.patch @@ -68,7 +68,7 @@ index 0000000000000000000000000000000000000000..8b66d1215a6eef1302b5ecb46a4b3d50 + } +} diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index 53c2bb5af825255e8c786bf02052f41c5d3e270b..af0253aecc8f3a4125b37aed4548c13b7ad6260a 100644 +index da708df0dc50ea02441f9db2bfd52f04d9a8e3da..867a6b7fe1788b20f8d0f4f1e42dd52bfc6a8c2a 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java @@ -642,6 +642,15 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -100,7 +100,7 @@ index 9fce5ff2a7980a02510fdc5d1e45d39336d1542a..535cd9faeeb8072b395bff7a3f7ca095 return new Throwable(entity + " Added to world at " + new java.util.Date()); } diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 92437cf4413ea76ef139b007adf2b76c2729dad2..07541f23ee853dae137440129e600d345774cd90 100644 +index 1c7579a1426c831484fe095d13169c2c47906843..59eedbe9d249fd09673393651a8be76232ab16e9 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -2467,6 +2467,8 @@ public class PlayerConnection implements PacketListenerPlayIn { diff --git a/patches/server/0105-Use-configured-height-for-nether-surface-builders.patch b/patches/server/0104-Use-configured-height-for-nether-surface-builders.patch similarity index 100% rename from patches/server/0105-Use-configured-height-for-nether-surface-builders.patch rename to patches/server/0104-Use-configured-height-for-nether-surface-builders.patch diff --git a/patches/server/0106-Crying-obsidian-valid-for-portal-frames.patch b/patches/server/0105-Crying-obsidian-valid-for-portal-frames.patch similarity index 100% rename from patches/server/0106-Crying-obsidian-valid-for-portal-frames.patch rename to patches/server/0105-Crying-obsidian-valid-for-portal-frames.patch diff --git a/patches/server/0107-Entities-can-use-portals-configuration.patch b/patches/server/0106-Entities-can-use-portals-configuration.patch similarity index 100% rename from patches/server/0107-Entities-can-use-portals-configuration.patch rename to patches/server/0106-Entities-can-use-portals-configuration.patch diff --git a/patches/server/0108-LivingEntity-broadcastItemBreak.patch b/patches/server/0107-LivingEntity-broadcastItemBreak.patch similarity index 100% rename from patches/server/0108-LivingEntity-broadcastItemBreak.patch rename to patches/server/0107-LivingEntity-broadcastItemBreak.patch diff --git a/patches/server/0109-Customizable-wither-health-and-healing.patch b/patches/server/0108-Customizable-wither-health-and-healing.patch similarity index 100% rename from patches/server/0109-Customizable-wither-health-and-healing.patch rename to patches/server/0108-Customizable-wither-health-and-healing.patch diff --git a/patches/server/0110-Allow-toggling-special-MobSpawners-per-world.patch b/patches/server/0109-Allow-toggling-special-MobSpawners-per-world.patch similarity index 100% rename from patches/server/0110-Allow-toggling-special-MobSpawners-per-world.patch rename to patches/server/0109-Allow-toggling-special-MobSpawners-per-world.patch diff --git a/patches/server/0111-Raid-cooldown-setting.patch b/patches/server/0110-Raid-cooldown-setting.patch similarity index 100% rename from patches/server/0111-Raid-cooldown-setting.patch rename to patches/server/0110-Raid-cooldown-setting.patch diff --git a/patches/server/0112-Despawn-rate-config-options-per-projectile-type.patch b/patches/server/0111-Despawn-rate-config-options-per-projectile-type.patch similarity index 100% rename from patches/server/0112-Despawn-rate-config-options-per-projectile-type.patch rename to patches/server/0111-Despawn-rate-config-options-per-projectile-type.patch diff --git a/patches/server/0113-Add-option-to-disable-zombie-aggressiveness-towards-.patch b/patches/server/0112-Add-option-to-disable-zombie-aggressiveness-towards-.patch similarity index 100% rename from patches/server/0113-Add-option-to-disable-zombie-aggressiveness-towards-.patch rename to patches/server/0112-Add-option-to-disable-zombie-aggressiveness-towards-.patch diff --git a/patches/server/0114-Persistent-TileEntity-Lore-and-DisplayName.patch b/patches/server/0113-Persistent-TileEntity-Lore-and-DisplayName.patch similarity index 100% rename from patches/server/0114-Persistent-TileEntity-Lore-and-DisplayName.patch rename to patches/server/0113-Persistent-TileEntity-Lore-and-DisplayName.patch diff --git a/patches/server/0115-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch b/patches/server/0114-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch similarity index 100% rename from patches/server/0115-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch rename to patches/server/0114-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch diff --git a/patches/server/0116-Flying-squids-Oh-my.patch b/patches/server/0115-Flying-squids-Oh-my.patch similarity index 100% rename from patches/server/0116-Flying-squids-Oh-my.patch rename to patches/server/0115-Flying-squids-Oh-my.patch diff --git a/patches/server/0117-Infinity-bow-settings.patch b/patches/server/0116-Infinity-bow-settings.patch similarity index 100% rename from patches/server/0117-Infinity-bow-settings.patch rename to patches/server/0116-Infinity-bow-settings.patch diff --git a/patches/server/0118-Stonecutter-damage.patch b/patches/server/0117-Stonecutter-damage.patch similarity index 100% rename from patches/server/0118-Stonecutter-damage.patch rename to patches/server/0117-Stonecutter-damage.patch diff --git a/patches/server/0119-Configurable-daylight-cycle.patch b/patches/server/0118-Configurable-daylight-cycle.patch similarity index 100% rename from patches/server/0119-Configurable-daylight-cycle.patch rename to patches/server/0118-Configurable-daylight-cycle.patch diff --git a/patches/server/0120-Allow-infinite-and-mending-enchantments-together.patch b/patches/server/0119-Allow-infinite-and-mending-enchantments-together.patch similarity index 100% rename from patches/server/0120-Allow-infinite-and-mending-enchantments-together.patch rename to patches/server/0119-Allow-infinite-and-mending-enchantments-together.patch diff --git a/patches/server/0121-Infinite-fuel-furnace.patch b/patches/server/0120-Infinite-fuel-furnace.patch similarity index 100% rename from patches/server/0121-Infinite-fuel-furnace.patch rename to patches/server/0120-Infinite-fuel-furnace.patch diff --git a/patches/server/0122-Arrows-should-not-reset-despawn-counter.patch b/patches/server/0121-Arrows-should-not-reset-despawn-counter.patch similarity index 100% rename from patches/server/0122-Arrows-should-not-reset-despawn-counter.patch rename to patches/server/0121-Arrows-should-not-reset-despawn-counter.patch diff --git a/patches/server/0123-Add-tablist-suffix-option-for-afk.patch b/patches/server/0122-Add-tablist-suffix-option-for-afk.patch similarity index 96% rename from patches/server/0123-Add-tablist-suffix-option-for-afk.patch rename to patches/server/0122-Add-tablist-suffix-option-for-afk.patch index f84593dc7e..2e79efc1bc 100644 --- a/patches/server/0123-Add-tablist-suffix-option-for-afk.patch +++ b/patches/server/0122-Add-tablist-suffix-option-for-afk.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add tablist suffix option for afk diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index af0253aecc8f3a4125b37aed4548c13b7ad6260a..38254784de3165e8546e1fcd4f780741abb78558 100644 +index 867a6b7fe1788b20f8d0f4f1e42dd52bfc6a8c2a..3f29cc87faa85f857c5fe2b8457d7c96d05515bc 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java @@ -2122,7 +2122,11 @@ public class EntityPlayer extends EntityHuman implements ICrafting { diff --git a/patches/server/0124-Ability-to-re-add-farmland-mechanics-from-Alpha.patch b/patches/server/0123-Ability-to-re-add-farmland-mechanics-from-Alpha.patch similarity index 100% rename from patches/server/0124-Ability-to-re-add-farmland-mechanics-from-Alpha.patch rename to patches/server/0123-Ability-to-re-add-farmland-mechanics-from-Alpha.patch diff --git a/patches/server/0125-Add-adjustable-breeding-cooldown-to-config.patch b/patches/server/0124-Add-adjustable-breeding-cooldown-to-config.patch similarity index 100% rename from patches/server/0125-Add-adjustable-breeding-cooldown-to-config.patch rename to patches/server/0124-Add-adjustable-breeding-cooldown-to-config.patch diff --git a/patches/server/0126-Make-entity-breeding-times-configurable.patch b/patches/server/0125-Make-entity-breeding-times-configurable.patch similarity index 100% rename from patches/server/0126-Make-entity-breeding-times-configurable.patch rename to patches/server/0125-Make-entity-breeding-times-configurable.patch diff --git a/patches/server/0127-Apply-display-names-from-item-forms-of-entities-to-e.patch b/patches/server/0126-Apply-display-names-from-item-forms-of-entities-to-e.patch similarity index 100% rename from patches/server/0127-Apply-display-names-from-item-forms-of-entities-to-e.patch rename to patches/server/0126-Apply-display-names-from-item-forms-of-entities-to-e.patch diff --git a/patches/server/0128-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch b/patches/server/0127-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch similarity index 100% rename from patches/server/0128-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch rename to patches/server/0127-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch diff --git a/patches/server/0129-Add-twisting-and-weeping-vines-growth-rates.patch b/patches/server/0128-Add-twisting-and-weeping-vines-growth-rates.patch similarity index 100% rename from patches/server/0129-Add-twisting-and-weeping-vines-growth-rates.patch rename to patches/server/0128-Add-twisting-and-weeping-vines-growth-rates.patch diff --git a/patches/server/0130-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch b/patches/server/0129-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch similarity index 100% rename from patches/server/0130-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch rename to patches/server/0129-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch diff --git a/patches/server/0131-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch b/patches/server/0130-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch similarity index 100% rename from patches/server/0131-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch rename to patches/server/0130-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch diff --git a/patches/server/0132-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch b/patches/server/0131-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch similarity index 100% rename from patches/server/0132-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch rename to patches/server/0131-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch diff --git a/patches/server/0133-Add-configurable-snowball-damage.patch b/patches/server/0132-Add-configurable-snowball-damage.patch similarity index 100% rename from patches/server/0133-Add-configurable-snowball-damage.patch rename to patches/server/0132-Add-configurable-snowball-damage.patch diff --git a/patches/server/0134-Zombie-break-door-minimum-difficulty-option.patch b/patches/server/0133-Zombie-break-door-minimum-difficulty-option.patch similarity index 100% rename from patches/server/0134-Zombie-break-door-minimum-difficulty-option.patch rename to patches/server/0133-Zombie-break-door-minimum-difficulty-option.patch diff --git a/patches/server/0135-Add-demo-command.patch b/patches/server/0134-Add-demo-command.patch similarity index 100% rename from patches/server/0135-Add-demo-command.patch rename to patches/server/0134-Add-demo-command.patch diff --git a/patches/server/0136-Left-handed-API.patch b/patches/server/0135-Left-handed-API.patch similarity index 100% rename from patches/server/0136-Left-handed-API.patch rename to patches/server/0135-Left-handed-API.patch diff --git a/patches/server/0137-Origami-Fix-ProtocolLib-issues-on-Java-15.patch b/patches/server/0136-Origami-Fix-ProtocolLib-issues-on-Java-15.patch similarity index 100% rename from patches/server/0137-Origami-Fix-ProtocolLib-issues-on-Java-15.patch rename to patches/server/0136-Origami-Fix-ProtocolLib-issues-on-Java-15.patch diff --git a/patches/server/0138-Changeable-Mob-Left-Handed-Chance.patch b/patches/server/0137-Changeable-Mob-Left-Handed-Chance.patch similarity index 100% rename from patches/server/0138-Changeable-Mob-Left-Handed-Chance.patch rename to patches/server/0137-Changeable-Mob-Left-Handed-Chance.patch diff --git a/patches/server/0139-Add-boat-fall-damage-config.patch b/patches/server/0138-Add-boat-fall-damage-config.patch similarity index 97% rename from patches/server/0139-Add-boat-fall-damage-config.patch rename to patches/server/0138-Add-boat-fall-damage-config.patch index e4a43e2169..a8f9012a33 100644 --- a/patches/server/0139-Add-boat-fall-damage-config.patch +++ b/patches/server/0138-Add-boat-fall-damage-config.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add boat fall damage config diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index 38254784de3165e8546e1fcd4f780741abb78558..8010b0c68b99c2e8986d01a4635e1a37f4313dbe 100644 +index 3f29cc87faa85f857c5fe2b8457d7c96d05515bc..a1d5662911ee3a038da427bf2e0b69a11f187149 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java @@ -1141,7 +1141,16 @@ public class EntityPlayer extends EntityHuman implements ICrafting { diff --git a/patches/server/0140-Config-migration-disable-saving-projectiles-to-disk-.patch b/patches/server/0139-Config-migration-disable-saving-projectiles-to-disk-.patch similarity index 100% rename from patches/server/0140-Config-migration-disable-saving-projectiles-to-disk-.patch rename to patches/server/0139-Config-migration-disable-saving-projectiles-to-disk-.patch diff --git a/patches/server/0141-Snow-Golem-rate-of-fire-config.patch b/patches/server/0140-Snow-Golem-rate-of-fire-config.patch similarity index 100% rename from patches/server/0141-Snow-Golem-rate-of-fire-config.patch rename to patches/server/0140-Snow-Golem-rate-of-fire-config.patch diff --git a/patches/server/0142-PaperPR-Config-option-for-Piglins-guarding-chests.patch b/patches/server/0141-PaperPR-Config-option-for-Piglins-guarding-chests.patch similarity index 100% rename from patches/server/0142-PaperPR-Config-option-for-Piglins-guarding-chests.patch rename to patches/server/0141-PaperPR-Config-option-for-Piglins-guarding-chests.patch diff --git a/patches/server/0143-EMC-Configurable-disable-give-dropping.patch b/patches/server/0142-EMC-Configurable-disable-give-dropping.patch similarity index 100% rename from patches/server/0143-EMC-Configurable-disable-give-dropping.patch rename to patches/server/0142-EMC-Configurable-disable-give-dropping.patch diff --git a/patches/server/0144-Config-migration-climbing-should-not-bypass-cramming.patch b/patches/server/0143-Config-migration-climbing-should-not-bypass-cramming.patch similarity index 100% rename from patches/server/0144-Config-migration-climbing-should-not-bypass-cramming.patch rename to patches/server/0143-Config-migration-climbing-should-not-bypass-cramming.patch diff --git a/patches/server/0145-Lobotomize-stuck-villagers.patch b/patches/server/0144-Lobotomize-stuck-villagers.patch similarity index 100% rename from patches/server/0145-Lobotomize-stuck-villagers.patch rename to patches/server/0144-Lobotomize-stuck-villagers.patch diff --git a/patches/server/0146-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch b/patches/server/0145-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch similarity index 100% rename from patches/server/0146-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch rename to patches/server/0145-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch diff --git a/patches/server/0147-Toggle-for-Zombified-Piglin-death-always-counting-as.patch b/patches/server/0146-Toggle-for-Zombified-Piglin-death-always-counting-as.patch similarity index 100% rename from patches/server/0147-Toggle-for-Zombified-Piglin-death-always-counting-as.patch rename to patches/server/0146-Toggle-for-Zombified-Piglin-death-always-counting-as.patch diff --git a/patches/server/0148-Spread-out-and-optimise-player-list-ticks.patch b/patches/server/0147-Spread-out-and-optimise-player-list-ticks.patch similarity index 97% rename from patches/server/0148-Spread-out-and-optimise-player-list-ticks.patch rename to patches/server/0147-Spread-out-and-optimise-player-list-ticks.patch index 31a9dd0269..528f599df6 100644 --- a/patches/server/0148-Spread-out-and-optimise-player-list-ticks.patch +++ b/patches/server/0147-Spread-out-and-optimise-player-list-ticks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Spread out and optimise player list ticks diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index c742647c0c5e3e4925e4ee6d195a54a85435e65e..8307b44718198f6f2325454f72bd296c33cba58a 100644 +index 92d696ee1812e8cfb8a853b5254db3ef5e4d2266..1f07751bf67b9fd1a0f19ebc8d05fd16a6c24322 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -151,7 +151,7 @@ public abstract class PlayerList { diff --git a/patches/server/0149-Configurable-chance-for-wolves-to-spawn-rabid.patch b/patches/server/0148-Configurable-chance-for-wolves-to-spawn-rabid.patch similarity index 100% rename from patches/server/0149-Configurable-chance-for-wolves-to-spawn-rabid.patch rename to patches/server/0148-Configurable-chance-for-wolves-to-spawn-rabid.patch diff --git a/patches/server/0150-Configurable-default-wolf-collar-color.patch b/patches/server/0149-Configurable-default-wolf-collar-color.patch similarity index 100% rename from patches/server/0150-Configurable-default-wolf-collar-color.patch rename to patches/server/0149-Configurable-default-wolf-collar-color.patch diff --git a/patches/server/0151-Configurable-entity-base-attributes.patch b/patches/server/0150-Configurable-entity-base-attributes.patch similarity index 100% rename from patches/server/0151-Configurable-entity-base-attributes.patch rename to patches/server/0150-Configurable-entity-base-attributes.patch diff --git a/patches/server/0152-Phantom-flames-on-swoop.patch b/patches/server/0151-Phantom-flames-on-swoop.patch similarity index 100% rename from patches/server/0152-Phantom-flames-on-swoop.patch rename to patches/server/0151-Phantom-flames-on-swoop.patch diff --git a/patches/server/0153-Option-for-chests-to-open-even-with-a-solid-block-on.patch b/patches/server/0152-Option-for-chests-to-open-even-with-a-solid-block-on.patch similarity index 100% rename from patches/server/0153-Option-for-chests-to-open-even-with-a-solid-block-on.patch rename to patches/server/0152-Option-for-chests-to-open-even-with-a-solid-block-on.patch diff --git a/patches/server/0154-Implement-TPSBar.patch b/patches/server/0153-Implement-TPSBar.patch similarity index 98% rename from patches/server/0154-Implement-TPSBar.patch rename to patches/server/0153-Implement-TPSBar.patch index 6094ad5bec..b8d6c31a81 100644 --- a/patches/server/0154-Implement-TPSBar.patch +++ b/patches/server/0153-Implement-TPSBar.patch @@ -42,7 +42,7 @@ index a76219e59c24862b9c1e09e4a2a29cf2a6260514..4f7fed0418df17b80cb41e16bb1978c5 } } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 8307b44718198f6f2325454f72bd296c33cba58a..c1f86c5cb6cf4c42dbc972f9ec14efa8452bad91 100644 +index 1f07751bf67b9fd1a0f19ebc8d05fd16a6c24322..33ef9699fdcf5dfd2ecaa53cb6388adb13da1697 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -598,6 +598,8 @@ public abstract class PlayerList { diff --git a/patches/server/0155-Striders-give-saddle-back.patch b/patches/server/0154-Striders-give-saddle-back.patch similarity index 100% rename from patches/server/0155-Striders-give-saddle-back.patch rename to patches/server/0154-Striders-give-saddle-back.patch diff --git a/patches/server/0156-PlayerBookTooLargeEvent.patch b/patches/server/0155-PlayerBookTooLargeEvent.patch similarity index 96% rename from patches/server/0156-PlayerBookTooLargeEvent.patch rename to patches/server/0155-PlayerBookTooLargeEvent.patch index 8a815c6efb..aa684ec4da 100644 --- a/patches/server/0156-PlayerBookTooLargeEvent.patch +++ b/patches/server/0155-PlayerBookTooLargeEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] PlayerBookTooLargeEvent diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 07541f23ee853dae137440129e600d345774cd90..5a2f84cd1456b072084e2db53a24c9863cb75563 100644 +index 59eedbe9d249fd09673393651a8be76232ab16e9..f55485094a5b676d8051d1f8d3151340bf176b33 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -1123,6 +1123,7 @@ public class PlayerConnection implements PacketListenerPlayIn { diff --git a/patches/server/0157-Full-netherite-armor-grants-fire-resistance.patch b/patches/server/0156-Full-netherite-armor-grants-fire-resistance.patch similarity index 100% rename from patches/server/0157-Full-netherite-armor-grants-fire-resistance.patch rename to patches/server/0156-Full-netherite-armor-grants-fire-resistance.patch diff --git a/patches/server/0158-Fix-rotating-UP-DOWN-CW-and-CCW.patch b/patches/server/0157-Fix-rotating-UP-DOWN-CW-and-CCW.patch similarity index 100% rename from patches/server/0158-Fix-rotating-UP-DOWN-CW-and-CCW.patch rename to patches/server/0157-Fix-rotating-UP-DOWN-CW-and-CCW.patch diff --git a/patches/server/0159-Add-MC-4-fix-back.patch b/patches/server/0158-Add-MC-4-fix-back.patch similarity index 100% rename from patches/server/0159-Add-MC-4-fix-back.patch rename to patches/server/0158-Add-MC-4-fix-back.patch diff --git a/patches/server/0160-Add-mobGriefing-bypass-to-everything-affected.patch b/patches/server/0159-Add-mobGriefing-bypass-to-everything-affected.patch similarity index 100% rename from patches/server/0160-Add-mobGriefing-bypass-to-everything-affected.patch rename to patches/server/0159-Add-mobGriefing-bypass-to-everything-affected.patch diff --git a/patches/server/0161-Config-to-allow-Note-Block-sounds-when-blocked.patch b/patches/server/0160-Config-to-allow-Note-Block-sounds-when-blocked.patch similarity index 100% rename from patches/server/0161-Config-to-allow-Note-Block-sounds-when-blocked.patch rename to patches/server/0160-Config-to-allow-Note-Block-sounds-when-blocked.patch diff --git a/patches/server/0162-Add-EntityTeleportHinderedEvent.patch b/patches/server/0161-Add-EntityTeleportHinderedEvent.patch similarity index 100% rename from patches/server/0162-Add-EntityTeleportHinderedEvent.patch rename to patches/server/0161-Add-EntityTeleportHinderedEvent.patch diff --git a/patches/server/0163-Add-StructureGenerateEvent.patch b/patches/server/0162-Add-StructureGenerateEvent.patch similarity index 100% rename from patches/server/0163-Add-StructureGenerateEvent.patch rename to patches/server/0162-Add-StructureGenerateEvent.patch diff --git a/patches/server/0164-Farmland-trampling-changes.patch b/patches/server/0163-Farmland-trampling-changes.patch similarity index 100% rename from patches/server/0164-Farmland-trampling-changes.patch rename to patches/server/0163-Farmland-trampling-changes.patch diff --git a/patches/server/0165-Movement-options-for-armor-stands.patch b/patches/server/0164-Movement-options-for-armor-stands.patch similarity index 100% rename from patches/server/0165-Movement-options-for-armor-stands.patch rename to patches/server/0164-Movement-options-for-armor-stands.patch diff --git a/patches/server/0166-Fix-stuck-in-portals.patch b/patches/server/0165-Fix-stuck-in-portals.patch similarity index 96% rename from patches/server/0166-Fix-stuck-in-portals.patch rename to patches/server/0165-Fix-stuck-in-portals.patch index a744a37758..419f6e2924 100644 --- a/patches/server/0166-Fix-stuck-in-portals.patch +++ b/patches/server/0165-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/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index 8010b0c68b99c2e8986d01a4635e1a37f4313dbe..ea9523fc977ec4a96bf113c33d0f9643f0cf7419 100644 +index a1d5662911ee3a038da427bf2e0b69a11f187149..9c520e7600986b7b7df3af96a715c91c5347f30d 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java @@ -1291,6 +1291,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { diff --git a/patches/server/0167-Config-to-use-infinity-bows-without-arrows.patch b/patches/server/0166-Config-to-use-infinity-bows-without-arrows.patch similarity index 100% rename from patches/server/0167-Config-to-use-infinity-bows-without-arrows.patch rename to patches/server/0166-Config-to-use-infinity-bows-without-arrows.patch diff --git a/patches/server/0168-Toggle-for-water-sensitive-mob-damage.patch b/patches/server/0167-Toggle-for-water-sensitive-mob-damage.patch similarity index 100% rename from patches/server/0168-Toggle-for-water-sensitive-mob-damage.patch rename to patches/server/0167-Toggle-for-water-sensitive-mob-damage.patch diff --git a/patches/server/0169-Config-to-always-tame-in-Creative.patch b/patches/server/0168-Config-to-always-tame-in-Creative.patch similarity index 100% rename from patches/server/0169-Config-to-always-tame-in-Creative.patch rename to patches/server/0168-Config-to-always-tame-in-Creative.patch diff --git a/patches/server/0170-End-crystal-explosion-options.patch b/patches/server/0169-End-crystal-explosion-options.patch similarity index 100% rename from patches/server/0170-End-crystal-explosion-options.patch rename to patches/server/0169-End-crystal-explosion-options.patch diff --git a/patches/server/0171-Add-unsafe-Entity-serialization-API.patch b/patches/server/0170-Add-unsafe-Entity-serialization-API.patch similarity index 100% rename from patches/server/0171-Add-unsafe-Entity-serialization-API.patch rename to patches/server/0170-Add-unsafe-Entity-serialization-API.patch diff --git a/patches/server/0172-Add-ghast-allow-griefing-option.patch b/patches/server/0171-Add-ghast-allow-griefing-option.patch similarity index 100% rename from patches/server/0172-Add-ghast-allow-griefing-option.patch rename to patches/server/0171-Add-ghast-allow-griefing-option.patch diff --git a/patches/server/0173-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch b/patches/server/0172-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch similarity index 100% rename from patches/server/0173-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch rename to patches/server/0172-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch diff --git a/patches/server/0174-Dont-run-with-scissors.patch b/patches/server/0173-Dont-run-with-scissors.patch similarity index 96% rename from patches/server/0174-Dont-run-with-scissors.patch rename to patches/server/0173-Dont-run-with-scissors.patch index d621022418..7fba08d0f8 100644 --- a/patches/server/0174-Dont-run-with-scissors.patch +++ b/patches/server/0173-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/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 5a2f84cd1456b072084e2db53a24c9863cb75563..40ad7f050b7f11f2810b07970c9e29354525de98 100644 +index f55485094a5b676d8051d1f8d3151340bf176b33..03a61aa91191b44284e9b4d02f2c57eaf2de7105 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -1547,6 +1547,12 @@ public class PlayerConnection implements PacketListenerPlayIn { diff --git a/patches/server/0175-One-Punch-Man.patch b/patches/server/0174-One-Punch-Man.patch similarity index 100% rename from patches/server/0175-One-Punch-Man.patch rename to patches/server/0174-One-Punch-Man.patch diff --git a/patches/server/0176-Add-config-for-snow-on-blue-ice.patch b/patches/server/0175-Add-config-for-snow-on-blue-ice.patch similarity index 100% rename from patches/server/0176-Add-config-for-snow-on-blue-ice.patch rename to patches/server/0175-Add-config-for-snow-on-blue-ice.patch diff --git a/patches/server/0177-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch b/patches/server/0176-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch similarity index 100% rename from patches/server/0177-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch rename to patches/server/0176-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch diff --git a/patches/server/0178-Config-to-ignore-nearby-mobs-when-sleeping.patch b/patches/server/0177-Config-to-ignore-nearby-mobs-when-sleeping.patch similarity index 96% rename from patches/server/0178-Config-to-ignore-nearby-mobs-when-sleeping.patch rename to patches/server/0177-Config-to-ignore-nearby-mobs-when-sleeping.patch index 62adf4ee46..80bc5392fb 100644 --- a/patches/server/0178-Config-to-ignore-nearby-mobs-when-sleeping.patch +++ b/patches/server/0177-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/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index ea9523fc977ec4a96bf113c33d0f9643f0cf7419..9e2c11fb728af209207627331c0acc98314ca125 100644 +index 9c520e7600986b7b7df3af96a715c91c5347f30d..4ec18d28c0022614b0ef6900774ddd4bda814308 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java @@ -1441,7 +1441,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { diff --git a/patches/server/0179-Config-for-Enderman-to-aggro-spawned-Endermites.patch b/patches/server/0178-Config-for-Enderman-to-aggro-spawned-Endermites.patch similarity index 100% rename from patches/server/0179-Config-for-Enderman-to-aggro-spawned-Endermites.patch rename to patches/server/0178-Config-for-Enderman-to-aggro-spawned-Endermites.patch diff --git a/patches/server/0180-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch b/patches/server/0179-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch similarity index 100% rename from patches/server/0180-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch rename to patches/server/0179-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch diff --git a/patches/server/0181-Re-enable-timings-by-default.patch b/patches/server/0180-Re-enable-timings-by-default.patch similarity index 100% rename from patches/server/0181-Re-enable-timings-by-default.patch rename to patches/server/0180-Re-enable-timings-by-default.patch diff --git a/patches/server/0182-Tick-fluids-config.patch b/patches/server/0181-Tick-fluids-config.patch similarity index 100% rename from patches/server/0182-Tick-fluids-config.patch rename to patches/server/0181-Tick-fluids-config.patch diff --git a/patches/server/0183-Config-to-disable-Llama-caravans.patch b/patches/server/0182-Config-to-disable-Llama-caravans.patch similarity index 100% rename from patches/server/0183-Config-to-disable-Llama-caravans.patch rename to patches/server/0182-Config-to-disable-Llama-caravans.patch diff --git a/patches/server/0184-Config-to-make-Creepers-explode-on-death.patch b/patches/server/0183-Config-to-make-Creepers-explode-on-death.patch similarity index 100% rename from patches/server/0184-Config-to-make-Creepers-explode-on-death.patch rename to patches/server/0183-Config-to-make-Creepers-explode-on-death.patch diff --git a/patches/server/0185-Configurable-ravager-griefable-blocks-list.patch b/patches/server/0184-Configurable-ravager-griefable-blocks-list.patch similarity index 100% rename from patches/server/0185-Configurable-ravager-griefable-blocks-list.patch rename to patches/server/0184-Configurable-ravager-griefable-blocks-list.patch diff --git a/patches/server/0186-Sneak-to-bulk-process-composter.patch b/patches/server/0185-Sneak-to-bulk-process-composter.patch similarity index 100% rename from patches/server/0186-Sneak-to-bulk-process-composter.patch rename to patches/server/0185-Sneak-to-bulk-process-composter.patch diff --git a/patches/server/0187-Config-for-skipping-night.patch b/patches/server/0186-Config-for-skipping-night.patch similarity index 100% rename from patches/server/0187-Config-for-skipping-night.patch rename to patches/server/0186-Config-for-skipping-night.patch diff --git a/patches/server/0188-Add-config-for-villager-trading.patch b/patches/server/0187-Add-config-for-villager-trading.patch similarity index 100% rename from patches/server/0188-Add-config-for-villager-trading.patch rename to patches/server/0187-Add-config-for-villager-trading.patch diff --git a/patches/server/0189-Allow-infinity-on-crossbows.patch b/patches/server/0188-Allow-infinity-on-crossbows.patch similarity index 100% rename from patches/server/0189-Allow-infinity-on-crossbows.patch rename to patches/server/0188-Allow-infinity-on-crossbows.patch diff --git a/patches/server/0190-Drowning-Settings.patch b/patches/server/0189-Drowning-Settings.patch similarity index 100% rename from patches/server/0190-Drowning-Settings.patch rename to patches/server/0189-Drowning-Settings.patch diff --git a/patches/server/0191-Break-individual-slabs-when-sneaking.patch b/patches/server/0190-Break-individual-slabs-when-sneaking.patch similarity index 100% rename from patches/server/0191-Break-individual-slabs-when-sneaking.patch rename to patches/server/0190-Break-individual-slabs-when-sneaking.patch diff --git a/patches/server/0192-Config-to-disable-hostile-mob-spawn-on-ice.patch b/patches/server/0191-Config-to-disable-hostile-mob-spawn-on-ice.patch similarity index 100% rename from patches/server/0192-Config-to-disable-hostile-mob-spawn-on-ice.patch rename to patches/server/0191-Config-to-disable-hostile-mob-spawn-on-ice.patch diff --git a/patches/server/0193-Config-to-show-Armor-Stand-arms-on-spawn.patch b/patches/server/0192-Config-to-show-Armor-Stand-arms-on-spawn.patch similarity index 100% rename from patches/server/0193-Config-to-show-Armor-Stand-arms-on-spawn.patch rename to patches/server/0192-Config-to-show-Armor-Stand-arms-on-spawn.patch diff --git a/patches/server/0194-Option-to-make-doors-require-redstone.patch b/patches/server/0193-Option-to-make-doors-require-redstone.patch similarity index 100% rename from patches/server/0194-Option-to-make-doors-require-redstone.patch rename to patches/server/0193-Option-to-make-doors-require-redstone.patch diff --git a/patches/server/0195-Config-to-allow-for-unsafe-enchants.patch b/patches/server/0194-Config-to-allow-for-unsafe-enchants.patch similarity index 100% rename from patches/server/0195-Config-to-allow-for-unsafe-enchants.patch rename to patches/server/0194-Config-to-allow-for-unsafe-enchants.patch diff --git a/patches/server/0196-Configurable-sponge-absorption.patch b/patches/server/0195-Configurable-sponge-absorption.patch similarity index 100% rename from patches/server/0196-Configurable-sponge-absorption.patch rename to patches/server/0195-Configurable-sponge-absorption.patch diff --git a/patches/server/0197-Projectile-offset-config.patch b/patches/server/0196-Projectile-offset-config.patch similarity index 100% rename from patches/server/0197-Projectile-offset-config.patch rename to patches/server/0196-Projectile-offset-config.patch diff --git a/patches/server/0198-Config-for-powered-rail-activation-distance.patch b/patches/server/0197-Config-for-powered-rail-activation-distance.patch similarity index 100% rename from patches/server/0198-Config-for-powered-rail-activation-distance.patch rename to patches/server/0197-Config-for-powered-rail-activation-distance.patch diff --git a/patches/server/0199-Piglin-portal-spawn-modifier.patch b/patches/server/0198-Piglin-portal-spawn-modifier.patch similarity index 100% rename from patches/server/0199-Piglin-portal-spawn-modifier.patch rename to patches/server/0198-Piglin-portal-spawn-modifier.patch diff --git a/patches/server/0200-Config-to-change-max-number-of-bees.patch b/patches/server/0199-Config-to-change-max-number-of-bees.patch similarity index 100% rename from patches/server/0200-Config-to-change-max-number-of-bees.patch rename to patches/server/0199-Config-to-change-max-number-of-bees.patch diff --git a/patches/server/0201-Configurable-damage-settings-for-magma-blocks.patch b/patches/server/0200-Configurable-damage-settings-for-magma-blocks.patch similarity index 100% rename from patches/server/0201-Configurable-damage-settings-for-magma-blocks.patch rename to patches/server/0200-Configurable-damage-settings-for-magma-blocks.patch diff --git a/patches/server/0202-Config-for-wither-explosion-radius.patch b/patches/server/0201-Config-for-wither-explosion-radius.patch similarity index 100% rename from patches/server/0202-Config-for-wither-explosion-radius.patch rename to patches/server/0201-Config-for-wither-explosion-radius.patch diff --git a/patches/server/0203-Add-credits-command.patch b/patches/server/0202-Add-credits-command.patch similarity index 100% rename from patches/server/0203-Add-credits-command.patch rename to patches/server/0202-Add-credits-command.patch diff --git a/patches/server/0204-Gamemode-extra-permissions.patch b/patches/server/0203-Gamemode-extra-permissions.patch similarity index 100% rename from patches/server/0204-Gamemode-extra-permissions.patch rename to patches/server/0203-Gamemode-extra-permissions.patch From b64f536ce27723e1b2f0bfd0965b97b14c2e7b9b Mon Sep 17 00:00:00 2001 From: 12emin34 <43503468+12emin34@users.noreply.github.com> Date: Fri, 30 Apr 2021 23:55:50 +0200 Subject: [PATCH 07/40] Config for changing the blocks that turn into paths (#303) Co-authored-by: BillyGalbreath --- ...g-it-possible-to-turn-dirt-into-path.patch | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 patches/server/0204-Config-for-making-it-possible-to-turn-dirt-into-path.patch diff --git a/patches/server/0204-Config-for-making-it-possible-to-turn-dirt-into-path.patch b/patches/server/0204-Config-for-making-it-possible-to-turn-dirt-into-path.patch new file mode 100644 index 0000000000..02c862a6d7 --- /dev/null +++ b/patches/server/0204-Config-for-making-it-possible-to-turn-dirt-into-path.patch @@ -0,0 +1,42 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: 12emin34 +Date: Thu, 29 Apr 2021 23:56:02 +0200 +Subject: [PATCH] Config for making it possible to turn dirt into paths + + +diff --git a/src/main/java/net/minecraft/world/item/ItemSpade.java b/src/main/java/net/minecraft/world/item/ItemSpade.java +index 9ba8ae49e18fb8714b434715bd669b8e22004cd7..c0c87d0dc8d6f02597219cd6a74e6ed7856ea229 100644 +--- a/src/main/java/net/minecraft/world/item/ItemSpade.java ++++ b/src/main/java/net/minecraft/world/item/ItemSpade.java +@@ -43,7 +43,7 @@ public class ItemSpade extends ItemTool { + return EnumInteractionResult.PASS; + } else { + EntityHuman entityhuman = itemactioncontext.getEntity(); +- IBlockData iblockdata1 = (IBlockData) ItemSpade.a.get(iblockdata.getBlock()); ++ IBlockData iblockdata1 = world.purpurConfig.shovelTurnsBlockToGrassPath.contains(iblockdata.getBlock()) ? Blocks.GRASS_PATH.getBlockData() : ItemSpade.a.get(iblockdata.getBlock()); // Purpur + IBlockData iblockdata2 = null; + + if (iblockdata1 != null && world.getType(blockposition.up()).isAir()) { +diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +index 69d6ced8e583a3a0625ced9d444caca21fa80723..cb5e89e544320746f1fc0f95dbce1cb110873267 100644 +--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java ++++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +@@ -457,6 +457,18 @@ public class PurpurWorldConfig { + totemOfUndyingWorksInInventory = getBoolean("gameplay-mechanics.player.totem-of-undying-works-in-inventory", totemOfUndyingWorksInInventory); + } + ++ public List shovelTurnsBlockToGrassPath = new ArrayList<>(); ++ private void shovelSettings() { ++ getList("gameplay-mechanics.shovel-turns-block-to-grass-path", new ArrayList(){{ ++ add("minecraft:grass_block"); ++ add("minecraft:dirt"); ++ add("minecraft:coarse_dirt"); ++ }}).forEach(key -> { ++ Block block = IRegistry.BLOCK.get(new MinecraftKey(key.toString())); ++ if (block != Blocks.AIR) shovelTurnsBlockToGrassPath.add(block); ++ }); ++ } ++ + public boolean silkTouchEnabled = false; + public String silkTouchSpawnerName = "Spawner"; + public List silkTouchSpawnerLore = new ArrayList<>(); From 60d8411fe09857cb840870181387703af05b5b90 Mon Sep 17 00:00:00 2001 From: Ben Kerllenevich Date: Fri, 30 Apr 2021 18:02:22 -0400 Subject: [PATCH 08/40] [ci-skip] fix patch name --- ...4-Config-for-changing-the-blocks-that-turn-into-paths.patch} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename patches/server/{0204-Config-for-making-it-possible-to-turn-dirt-into-path.patch => 0204-Config-for-changing-the-blocks-that-turn-into-paths.patch} (97%) diff --git a/patches/server/0204-Config-for-making-it-possible-to-turn-dirt-into-path.patch b/patches/server/0204-Config-for-changing-the-blocks-that-turn-into-paths.patch similarity index 97% rename from patches/server/0204-Config-for-making-it-possible-to-turn-dirt-into-path.patch rename to patches/server/0204-Config-for-changing-the-blocks-that-turn-into-paths.patch index 02c862a6d7..dcd14ca073 100644 --- a/patches/server/0204-Config-for-making-it-possible-to-turn-dirt-into-path.patch +++ b/patches/server/0204-Config-for-changing-the-blocks-that-turn-into-paths.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: 12emin34 Date: Thu, 29 Apr 2021 23:56:02 +0200 -Subject: [PATCH] Config for making it possible to turn dirt into paths +Subject: [PATCH] Config for changing the blocks that turn into paths diff --git a/src/main/java/net/minecraft/world/item/ItemSpade.java b/src/main/java/net/minecraft/world/item/ItemSpade.java From 786382bc3e2b922f07042f2325c4797400148f06 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Sat, 1 May 2021 13:50:32 -0500 Subject: [PATCH 09/40] Updated Upstream (Paper) Upstream has released updates that appear to apply and compile correctly Paper Changes: 9958447cb [Auto] Updated Upstream (Bukkit) --- Paper | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Paper b/Paper index 840e72091f..9958447cba 160000 --- a/Paper +++ b/Paper @@ -1 +1 @@ -Subproject commit 840e72091f3e9a1eccfd9baed07ff0fb45b53686 +Subproject commit 9958447cbaca4c3ca9dc4c625d7e95a932c82f52 From a30e5ac97188e2829ac84abf7f7c0706b90a3389 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Sat, 1 May 2021 15:02:10 -0500 Subject: [PATCH 10/40] Add config for void damage dealt --- ...rable-void-damage-height-and-damage.patch} | 21 ++++++-- ...ispenser-curse-of-binding-protection.patch | 4 +- ...n-for-boats-to-eject-players-on-land.patch | 7 +-- ...g-mends-most-damages-equipment-first.patch | 6 +-- .../0075-Implement-elytra-settings.patch | 8 +-- .../server/0076-Item-entity-immunities.patch | 2 +- .../0078-Configurable-jockey-options.patch | 8 +-- ...ed-to-crystals-and-crystals-shoot-ph.patch | 4 +- .../0080-Add-phantom-spawning-options.patch | 4 +- ...0081-Implement-bed-explosion-options.patch | 4 +- ...ent-respawn-anchor-explosion-options.patch | 4 +- patches/server/0085-Entity-lifespan.patch | 2 +- ...leport-to-spawn-if-outside-world-bor.patch | 6 +-- patches/server/0087-Squid-EAR-immunity.patch | 4 +- .../server/0090-Phantoms-burn-in-light.patch | 6 +-- .../0091-Configurable-villager-breeding.patch | 6 +-- .../0092-Redstone-deactivates-spawners.patch | 4 +- .../0093-Totems-work-in-inventory.patch | 6 +-- ...5-Add-vindicator-johnny-spawn-chance.patch | 2 +- .../0097-Dispensers-place-anvils-option.patch | 4 +- patches/server/0098-Allow-anvil-colors.patch | 4 +- .../0099-Add-no-random-tick-block-list.patch | 4 +- ...o-disable-dolphin-treasure-searching.patch | 4 +- ...Stop-squids-floating-on-top-of-water.patch | 4 +- patches/server/0103-Ridables.patch | 20 +++---- ...tities-can-use-portals-configuration.patch | 4 +- ...stomizable-wither-health-and-healing.patch | 4 +- ...ggling-special-MobSpawners-per-world.patch | 6 +-- .../server/0110-Raid-cooldown-setting.patch | 10 ++-- ...e-config-options-per-projectile-type.patch | 2 +- ...sable-zombie-aggressiveness-towards-.patch | 4 +- ...tent-TileEntity-Lore-and-DisplayName.patch | 8 +-- patches/server/0115-Flying-squids-Oh-my.patch | 4 +- .../server/0116-Infinity-bow-settings.patch | 2 +- patches/server/0117-Stonecutter-damage.patch | 4 +- .../0118-Configurable-daylight-cycle.patch | 2 +- .../server/0120-Infinite-fuel-furnace.patch | 4 +- ...re-add-farmland-mechanics-from-Alpha.patch | 4 +- ...justable-breeding-cooldown-to-config.patch | 10 ++-- ...e-entity-breeding-times-configurable.patch | 38 +++++++------- ...mes-from-item-forms-of-entities-to-e.patch | 8 +-- ...-when-using-a-Name-Tag-on-an-Armor-S.patch | 2 +- ...sting-and-weeping-vines-growth-rates.patch | 4 +- ...-twisting-vines-configurable-max-gro.patch | 6 +-- ...llowing-Endermen-to-despawn-even-whi.patch | 4 +- ...132-Add-configurable-snowball-damage.patch | 2 +- ...break-door-minimum-difficulty-option.patch | 6 +-- ...37-Changeable-Mob-Left-Handed-Chance.patch | 2 +- .../0138-Add-boat-fall-damage-config.patch | 4 +- ...-disable-saving-projectiles-to-disk-.patch | 2 +- .../0140-Snow-Golem-rate-of-fire-config.patch | 4 +- ...-climbing-should-not-bypass-cramming.patch | 2 +- .../0144-Lobotomize-stuck-villagers.patch | 6 +-- ...Villager-Clerics-to-farm-Nether-Wart.patch | 6 +-- ...fied-Piglin-death-always-counting-as.patch | 4 +- ...ble-chance-for-wolves-to-spawn-rabid.patch | 6 +-- ...nfigurable-default-wolf-collar-color.patch | 4 +- ...-Configurable-entity-base-attributes.patch | 52 +++++++++---------- .../server/0151-Phantom-flames-on-swoop.patch | 6 +-- ...s-to-open-even-with-a-solid-block-on.patch | 4 +- .../0154-Striders-give-saddle-back.patch | 4 +- ...therite-armor-grants-fire-resistance.patch | 4 +- ...iefing-bypass-to-everything-affected.patch | 42 +++++++-------- ...allow-Note-Block-sounds-when-blocked.patch | 4 +- ...0161-Add-EntityTeleportHinderedEvent.patch | 4 +- .../0163-Farmland-trampling-changes.patch | 4 +- ...64-Movement-options-for-armor-stands.patch | 2 +- .../server/0165-Fix-stuck-in-portals.patch | 4 +- ...-to-use-infinity-bows-without-arrows.patch | 2 +- ...oggle-for-water-sensitive-mob-damage.patch | 20 +++---- ...68-Config-to-always-tame-in-Creative.patch | 4 +- .../0169-End-crystal-explosion-options.patch | 4 +- ...0171-Add-ghast-allow-griefing-option.patch | 6 +-- ...ither-Ender-Dragon-can-ride-vehicles.patch | 10 ++-- .../server/0173-Dont-run-with-scissors.patch | 2 +- patches/server/0174-One-Punch-Man.patch | 12 ++--- ...0175-Add-config-for-snow-on-blue-ice.patch | 4 +- ...er-Pearl-cooldown-damage-and-Endermi.patch | 2 +- ...-to-ignore-nearby-mobs-when-sleeping.patch | 6 +-- ...Enderman-to-aggro-spawned-Endermites.patch | 6 +-- ...-Dragon-Head-wearers-and-stare-aggro.patch | 6 +-- patches/server/0181-Tick-fluids-config.patch | 2 +- ...182-Config-to-disable-Llama-caravans.patch | 6 +-- ...ig-to-make-Creepers-explode-on-death.patch | 4 +- ...urable-ravager-griefable-blocks-list.patch | 6 +-- ...0185-Sneak-to-bulk-process-composter.patch | 4 +- .../0186-Config-for-skipping-night.patch | 6 +-- ...0187-Add-config-for-villager-trading.patch | 10 ++-- patches/server/0189-Drowning-Settings.patch | 6 +-- ...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 | 2 +- ...ption-to-make-doors-require-redstone.patch | 4 +- .../0195-Configurable-sponge-absorption.patch | 4 +- .../0196-Projectile-offset-config.patch | 2 +- ...for-powered-rail-activation-distance.patch | 4 +- .../0198-Piglin-portal-spawn-modifier.patch | 6 +-- ...ble-damage-settings-for-magma-blocks.patch | 4 +- ...1-Config-for-wither-explosion-radius.patch | 6 +-- ...ging-the-blocks-that-turn-into-paths.patch | 4 +- 100 files changed, 322 insertions(+), 306 deletions(-) rename patches/server/{0069-Configurable-void-damage-height.patch => 0069-Configurable-void-damage-height-and-damage.patch} (69%) diff --git a/patches/server/0069-Configurable-void-damage-height.patch b/patches/server/0069-Configurable-void-damage-height-and-damage.patch similarity index 69% rename from patches/server/0069-Configurable-void-damage-height.patch rename to patches/server/0069-Configurable-void-damage-height-and-damage.patch index 272b9cd7da..e8bac08281 100644 --- a/patches/server/0069-Configurable-void-damage-height.patch +++ b/patches/server/0069-Configurable-void-damage-height-and-damage.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 27 Feb 2020 21:42:19 -0600 -Subject: [PATCH] Configurable void damage height +Subject: [PATCH] Configurable void damage height and damage diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java @@ -17,21 +17,36 @@ index 08f286a085cf36ce9a0ea420389f4ea33fb1cc1a..0950dcce2353504775813d9f60407361 && world.paperConfig.doNetherTopVoidDamage() && this.locY() >= world.paperConfig.netherVoidTopDamageHeight)) { this.doVoidDamage(); +diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java +index af08ec27f8c07653daa328d84bfc142bfc8a7f78..0d5bb154e4213283734c1c2c437aec2a8b8877fc 100644 +--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java ++++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java +@@ -2129,7 +2129,7 @@ public abstract class EntityLiving extends Entity { + + @Override + protected void an() { +- this.damageEntity(DamageSource.OUT_OF_WORLD, 4.0F); ++ this.damageEntity(DamageSource.OUT_OF_WORLD, (float) world.purpurConfig.voidDamageDealt); + } + + protected void dA() { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 32087bcc02c20448988c76e04dbc0dcc3db48641..dc63d6ee62a45ff4862c01327de3dc06021bf284 100644 +index 32087bcc02c20448988c76e04dbc0dcc3db48641..0e715362fcfb3d26825b51f4fd96d8cba810bf55 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -150,11 +150,13 @@ public class PurpurWorldConfig { +@@ -150,11 +150,15 @@ public class PurpurWorldConfig { public boolean entitiesPickUpLootBypassMobGriefing = false; public boolean milkCuresBadOmen = true; public double tridentLoyaltyVoidReturnHeight = 0.0D; + public double voidDamageHeight = -64.0D; ++ public double voidDamageDealt = 4.0D; private void miscGameplayMechanicsSettings() { disableDropsOnCrammingDeath = getBoolean("gameplay-mechanics.disable-drops-on-cramming-death", disableDropsOnCrammingDeath); entitiesPickUpLootBypassMobGriefing = getBoolean("gameplay-mechanics.entities-pick-up-loot-bypass-mob-griefing", entitiesPickUpLootBypassMobGriefing); milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); 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); } public String playerDeathExpDropEquation = "expLevel * 7"; diff --git a/patches/server/0070-Dispenser-curse-of-binding-protection.patch b/patches/server/0070-Dispenser-curse-of-binding-protection.patch index eefbe8cc0f..bf2489e631 100644 --- a/patches/server/0070-Dispenser-curse-of-binding-protection.patch +++ b/patches/server/0070-Dispenser-curse-of-binding-protection.patch @@ -52,10 +52,10 @@ index 7962808aebf67cf9bc1dc4c1e106e943536fdced..d072b604a1cd8835c1fe658831cdaf9f return this.b; } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index dc63d6ee62a45ff4862c01327de3dc06021bf284..d9c5f6f90c493dcf13199c488065d9dfbe34525e 100644 +index 0e715362fcfb3d26825b51f4fd96d8cba810bf55..d5095a9b20118bf9c35346fce95a446254872832 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -196,6 +196,11 @@ public class PurpurWorldConfig { +@@ -198,6 +198,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0071-Add-option-for-boats-to-eject-players-on-land.patch b/patches/server/0071-Add-option-for-boats-to-eject-players-on-land.patch index 59e133a733..ffcc465848 100644 --- a/patches/server/0071-Add-option-for-boats-to-eject-players-on-land.patch +++ b/patches/server/0071-Add-option-for-boats-to-eject-players-on-land.patch @@ -17,10 +17,10 @@ index 5e2c13bd6e52ffe182ef034e05ba6fe1cb301005..01839c7319e175477ded7001e00e5937 } else { return EntityBoat.EnumStatus.IN_AIR; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index d9c5f6f90c493dcf13199c488065d9dfbe34525e..f1a5bc297e67129351e4cf72bc67c44f4af64b91 100644 +index d5095a9b20118bf9c35346fce95a446254872832..06c6e181b753a840e0060539b6b0387a7a1511dc 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -146,12 +146,14 @@ public class PurpurWorldConfig { +@@ -146,6 +146,7 @@ public class PurpurWorldConfig { idleTimeoutUpdateTabList = getBoolean("gameplay-mechanics.player.idle-timeout.update-tab-list", idleTimeoutUpdateTabList); } @@ -28,8 +28,9 @@ index d9c5f6f90c493dcf13199c488065d9dfbe34525e..f1a5bc297e67129351e4cf72bc67c44f public boolean disableDropsOnCrammingDeath = false; public boolean entitiesPickUpLootBypassMobGriefing = false; public boolean milkCuresBadOmen = true; - public double tridentLoyaltyVoidReturnHeight = 0.0D; +@@ -153,6 +154,7 @@ public class PurpurWorldConfig { public double voidDamageHeight = -64.0D; + public double voidDamageDealt = 4.0D; private void miscGameplayMechanicsSettings() { + 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/0073-Mending-mends-most-damages-equipment-first.patch b/patches/server/0073-Mending-mends-most-damages-equipment-first.patch index 2b57ebf3e3..b4abe44ca7 100644 --- a/patches/server/0073-Mending-mends-most-damages-equipment-first.patch +++ b/patches/server/0073-Mending-mends-most-damages-equipment-first.patch @@ -78,7 +78,7 @@ index 72afbf8f537770540e90a2880ea81de137ea10f5..b2d28c2bf0a9e93d38583e2d734c12fe return a(enchantment, entityliving, (itemstack) -> { return true; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index f1a5bc297e67129351e4cf72bc67c44f4af64b91..7dd9a8af44fbf3e1a3fe48d9f259a4937a823f39 100644 +index 06c6e181b753a840e0060539b6b0387a7a1511dc..ce1d33315a7999fb304d6f7d843ab3d1f415eb17 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -146,6 +146,7 @@ public class PurpurWorldConfig { @@ -89,9 +89,9 @@ index f1a5bc297e67129351e4cf72bc67c44f4af64b91..7dd9a8af44fbf3e1a3fe48d9f259a493 public boolean boatEjectPlayersOnLand = false; public boolean disableDropsOnCrammingDeath = false; public boolean entitiesPickUpLootBypassMobGriefing = false; -@@ -153,6 +154,7 @@ public class PurpurWorldConfig { - public double tridentLoyaltyVoidReturnHeight = 0.0D; +@@ -154,6 +155,7 @@ public class PurpurWorldConfig { public double voidDamageHeight = -64.0D; + public double voidDamageDealt = 4.0D; 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/0075-Implement-elytra-settings.patch b/patches/server/0075-Implement-elytra-settings.patch index 34efff4b85..44c334ca89 100644 --- a/patches/server/0075-Implement-elytra-settings.patch +++ b/patches/server/0075-Implement-elytra-settings.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Implement elytra settings diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index af08ec27f8c07653daa328d84bfc142bfc8a7f78..135e8b14d8b295797b87b2524a084f682bbf98ab 100644 +index 0d5bb154e4213283734c1c2c437aec2a8b8877fc..90c931f95dffbf9697ae4678a23d7c142c504a81 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -2968,7 +2968,16 @@ public abstract class EntityLiving extends Entity { @@ -101,11 +101,11 @@ index 9896477b54cf91a88bdfc3d85018a59193b32859..0711d195c654edef5875f587e391bacf entityhuman.r(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 7dd9a8af44fbf3e1a3fe48d9f259a4937a823f39..321f1811da81ffb31bd26442d2e3386c48d30086 100644 +index ce1d33315a7999fb304d6f7d843ab3d1f415eb17..5e577cd97df14463f590919b2931a5065ac37033 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -163,6 +163,19 @@ public class PurpurWorldConfig { - voidDamageHeight = getDouble("gameplay-mechanics.void-damage-height", voidDamageHeight); +@@ -165,6 +165,19 @@ public class PurpurWorldConfig { + voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt); } + public int elytraDamagePerSecond = 1; diff --git a/patches/server/0076-Item-entity-immunities.patch b/patches/server/0076-Item-entity-immunities.patch index 96cbf67486..5017886019 100644 --- a/patches/server/0076-Item-entity-immunities.patch +++ b/patches/server/0076-Item-entity-immunities.patch @@ -137,7 +137,7 @@ index 5dc3670f35b04d933e96c4b42aa9fbcf941e69c7..3b84039a76843a0784e2d71bb66dc322 + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 321f1811da81ffb31bd26442d2e3386c48d30086..12c3708150475ec16b394c79a78f4f0d740ea611 100644 +index 5e577cd97df14463f590919b2931a5065ac37033..0a5661faee288bafc6683a8ed67ba74cd30adc75 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -135,6 +135,39 @@ public class PurpurWorldConfig { diff --git a/patches/server/0078-Configurable-jockey-options.patch b/patches/server/0078-Configurable-jockey-options.patch index 4325f3ab11..e6eacab683 100644 --- a/patches/server/0078-Configurable-jockey-options.patch +++ b/patches/server/0078-Configurable-jockey-options.patch @@ -193,10 +193,10 @@ index f341759f6110b51c856de09248d2f523c58aa712..99d0932e5352589cfbcc48a5e789651d protected void initDatawatcher() { super.initDatawatcher(); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 12c3708150475ec16b394c79a78f4f0d740ea611..b01d82d76e07a482fd36a754b46ac22139114232 100644 +index 0a5661faee288bafc6683a8ed67ba74cd30adc75..9e39cff151d6edc671ecb4d09e8eaace21974f67 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -309,6 +309,15 @@ public class PurpurWorldConfig { +@@ -311,6 +311,15 @@ public class PurpurWorldConfig { creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance); } @@ -212,7 +212,7 @@ index 12c3708150475ec16b394c79a78f4f0d740ea611..b01d82d76e07a482fd36a754b46ac221 public boolean enderDragonAlwaysDropsFullExp = false; private void enderDragonSettings() { enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp); -@@ -346,6 +355,15 @@ public class PurpurWorldConfig { +@@ -348,6 +357,15 @@ public class PurpurWorldConfig { giantMaxHealth = getDouble("mobs.giant.attributes.max-health", giantMaxHealth); } @@ -228,7 +228,7 @@ index 12c3708150475ec16b394c79a78f4f0d740ea611..b01d82d76e07a482fd36a754b46ac221 public double illusionerMovementSpeed = 0.5D; public double illusionerFollowRange = 18.0D; public double illusionerMaxHealth = 32.0D; -@@ -421,8 +439,35 @@ public class PurpurWorldConfig { +@@ -423,8 +441,35 @@ public class PurpurWorldConfig { witherSkeletonTakesWitherDamage = getBoolean("mobs.wither_skeleton.takes-wither-damage", witherSkeletonTakesWitherDamage); } diff --git a/patches/server/0079-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch b/patches/server/0079-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch index 8b62666365..cd0163432f 100644 --- a/patches/server/0079-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch +++ b/patches/server/0079-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch @@ -350,10 +350,10 @@ index 42cf3fa42b73739182d26fbb524ee5b304c799b2..daf738e8f0987aa6ab200189d7a26d16 return entityliving != null ? EntityPhantom.this.a(EntityPhantom.this.getGoalTarget(), PathfinderTargetCondition.a) : false; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index b01d82d76e07a482fd36a754b46ac22139114232..3194e8e31e9e98ed5ab81ebb45b4c765938db5f6 100644 +index 9e39cff151d6edc671ecb4d09e8eaace21974f67..7382624113fba008c55bd32a5e31afb36c6e4268 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -383,6 +383,15 @@ public class PurpurWorldConfig { +@@ -385,6 +385,15 @@ public class PurpurWorldConfig { ironGolemCanSwim = getBoolean("mobs.iron_golem.can-swim", ironGolemCanSwim); } diff --git a/patches/server/0080-Add-phantom-spawning-options.patch b/patches/server/0080-Add-phantom-spawning-options.patch index 00be25533c..b7ebcd39f2 100644 --- a/patches/server/0080-Add-phantom-spawning-options.patch +++ b/patches/server/0080-Add-phantom-spawning-options.patch @@ -262,10 +262,10 @@ index e4f5e570636862481aac92ec9b74d6cf5723eb6e..e954adeff4fbfc1aa85ac3785c0c4c86 } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 3194e8e31e9e98ed5ab81ebb45b4c765938db5f6..041415d72d1c738dfa97c68ca47d0eaf473f33a2 100644 +index 7382624113fba008c55bd32a5e31afb36c6e4268..f2bde528e766c330a3e8b2d08e590a760ac38df5 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -386,10 +386,34 @@ public class PurpurWorldConfig { +@@ -388,10 +388,34 @@ public class PurpurWorldConfig { public double phantomAttackedByCrystalRadius = 0.0D; public float phantomAttackedByCrystalDamage = 1.0F; public double phantomOrbitCrystalRadius = 0.0D; diff --git a/patches/server/0081-Implement-bed-explosion-options.patch b/patches/server/0081-Implement-bed-explosion-options.patch index da06739d6b..88b27cfb0f 100644 --- a/patches/server/0081-Implement-bed-explosion-options.patch +++ b/patches/server/0081-Implement-bed-explosion-options.patch @@ -18,7 +18,7 @@ index abe0a1c309d526de37efcac44922fa259e1d112c..db9ef25d0578538fd7c7950a3b3d0345 } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 041415d72d1c738dfa97c68ca47d0eaf473f33a2..7f934f3f630188e5ebcd3c216e2ae64ab2dc9dbf 100644 +index f2bde528e766c330a3e8b2d08e590a760ac38df5..f7e2f48c192c2f07e3664591a53ecf1ddc3509a4 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -1,6 +1,7 @@ @@ -37,7 +37,7 @@ index 041415d72d1c738dfa97c68ca47d0eaf473f33a2..7f934f3f630188e5ebcd3c216e2ae64a import static net.pl3x.purpur.PurpurConfig.log; -@@ -246,6 +248,22 @@ public class PurpurWorldConfig { +@@ -248,6 +250,22 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0082-Implement-respawn-anchor-explosion-options.patch b/patches/server/0082-Implement-respawn-anchor-explosion-options.patch index 0f6152cd3f..cc8f983a8e 100644 --- a/patches/server/0082-Implement-respawn-anchor-explosion-options.patch +++ b/patches/server/0082-Implement-respawn-anchor-explosion-options.patch @@ -30,10 +30,10 @@ index 028e98decf8b0496b4ebcd1aad3aa474e5c4e7c1..9b7a7f1ae50baf53d314bbf1588afeb8 public static boolean a(World world) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 7f934f3f630188e5ebcd3c216e2ae64ab2dc9dbf..09320a6d1d4390b59941381d1e0a4d365bb8beab 100644 +index f7e2f48c192c2f07e3664591a53ecf1ddc3509a4..1a5a2df0b1fbd483977a5056231c02375adca42d 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -285,6 +285,22 @@ public class PurpurWorldConfig { +@@ -287,6 +287,22 @@ public class PurpurWorldConfig { lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether); } diff --git a/patches/server/0085-Entity-lifespan.patch b/patches/server/0085-Entity-lifespan.patch index 4d73870923..23e7dc885c 100644 --- a/patches/server/0085-Entity-lifespan.patch +++ b/patches/server/0085-Entity-lifespan.patch @@ -104,7 +104,7 @@ index 84995be65d033dd712211e1e479675815099c3b1..e10377b379079bc467a60abe719075c5 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 09320a6d1d4390b59941381d1e0a4d365bb8beab..2289c2ea20bddd4bdd93b1e25c04ed8ad8967053 100644 +index 1a5a2df0b1fbd483977a5056231c02375adca42d..521c3739a1ca08619f30839c77618cae83ad8345 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -137,6 +137,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0086-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch b/patches/server/0086-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch index 45dee02210..d61a3eac35 100644 --- a/patches/server/0086-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch +++ b/patches/server/0086-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch @@ -36,7 +36,7 @@ index 257265a036a62c7d5fbcff17a10a41198ed880a4..da708df0dc50ea02441f9db2bfd52f04 + // Purpur end } diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index 135e8b14d8b295797b87b2524a084f682bbf98ab..9c4bcc691ad2f6896b28d83f386fc8daa2777a3a 100644 +index 90c931f95dffbf9697ae4678a23d7c142c504a81..620bccdc44d3325dcb4450af979363ee94ba3f97 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -45,6 +45,7 @@ import net.minecraft.network.syncher.DataWatcher; @@ -56,10 +56,10 @@ index 135e8b14d8b295797b87b2524a084f682bbf98ab..9c4bcc691ad2f6896b28d83f386fc8da } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 2289c2ea20bddd4bdd93b1e25c04ed8ad8967053..22d3b094f23bde7d3195125c46bb09e7fa3c2346 100644 +index 521c3739a1ca08619f30839c77618cae83ad8345..c51ae8047c9c91f5e0016095ac4383a5874a7dfb 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -230,6 +230,11 @@ public class PurpurWorldConfig { +@@ -232,6 +232,11 @@ public class PurpurWorldConfig { playerInvulnerableWhileAcceptingResourcePack = getBoolean("gameplay-mechanics.player.invulnerable-while-accepting-resource-pack", playerInvulnerableWhileAcceptingResourcePack); } diff --git a/patches/server/0087-Squid-EAR-immunity.patch b/patches/server/0087-Squid-EAR-immunity.patch index 9904ce5653..002899c163 100644 --- a/patches/server/0087-Squid-EAR-immunity.patch +++ b/patches/server/0087-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 22d3b094f23bde7d3195125c46bb09e7fa3c2346..9db3bc1540787e16f7d0033f9af5b04079775818 100644 +index c51ae8047c9c91f5e0016095ac4383a5874a7dfb..923e119d3dc3f3a8c5e5d4770cf15d8fdf5b0746 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -487,6 +487,11 @@ public class PurpurWorldConfig { +@@ -489,6 +489,11 @@ public class PurpurWorldConfig { snowGolemPutPumpkinBack = getBoolean("mobs.snow_golem.pumpkin-can-be-added-back", snowGolemPutPumpkinBack); } diff --git a/patches/server/0090-Phantoms-burn-in-light.patch b/patches/server/0090-Phantoms-burn-in-light.patch index 7f79e512dc..5d2f98094b 100644 --- a/patches/server/0090-Phantoms-burn-in-light.patch +++ b/patches/server/0090-Phantoms-burn-in-light.patch @@ -86,10 +86,10 @@ index 993a88a5937417016821ef9d7cd58e4ee097491c..64b4fcf6f43c39db0fe57fc7a74f0d95 public static final Item dr = a(Blocks.JACK_O_LANTERN, CreativeModeTab.b); public static final Item ds = a(Blocks.OAK_TRAPDOOR, CreativeModeTab.d); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 9db3bc1540787e16f7d0033f9af5b04079775818..ecb26650c17109ea51d4ad4842464e22835c0450 100644 +index 923e119d3dc3f3a8c5e5d4770cf15d8fdf5b0746..ec43eb76340c8d0e3c1dbabc5d0ebd80096f24a7 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -442,6 +442,9 @@ public class PurpurWorldConfig { +@@ -444,6 +444,9 @@ public class PurpurWorldConfig { public int phantomSpawnOverheadRadius = 10; public int phantomSpawnMinPerAttempt = 1; public int phantomSpawnMaxPerAttempt = -1; @@ -99,7 +99,7 @@ index 9db3bc1540787e16f7d0033f9af5b04079775818..ecb26650c17109ea51d4ad4842464e22 private void phantomSettings() { phantomAttackedByCrystalRadius = getDouble("mobs.phantom.attacked-by-crystal-range", phantomAttackedByCrystalRadius); phantomAttackedByCrystalDamage = (float) getDouble("mobs.phantom.attacked-by-crystal-damage", phantomAttackedByCrystalDamage); -@@ -458,6 +461,9 @@ public class PurpurWorldConfig { +@@ -460,6 +463,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/0091-Configurable-villager-breeding.patch b/patches/server/0091-Configurable-villager-breeding.patch index 7a303b9bac..323f922882 100644 --- a/patches/server/0091-Configurable-villager-breeding.patch +++ b/patches/server/0091-Configurable-villager-breeding.patch @@ -18,10 +18,10 @@ index 2fad37812bfa39872e99c4432e1982d62f65efb7..d3032682af94428419daa02f55b60400 private boolean fr() { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index ecb26650c17109ea51d4ad4842464e22835c0450..70a4fff198851c97de6c36c88bf579be51b8c0da 100644 +index ec43eb76340c8d0e3c1dbabc5d0ebd80096f24a7..7f449035819f148d5b8cf492da059f1c40cdf1be 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -505,6 +505,7 @@ public class PurpurWorldConfig { +@@ -507,6 +507,7 @@ public class PurpurWorldConfig { public boolean villagerFollowEmeraldBlock = false; public int villagerSpawnIronGolemRadius = 0; public int villagerSpawnIronGolemLimit = 0; @@ -29,7 +29,7 @@ index ecb26650c17109ea51d4ad4842464e22835c0450..70a4fff198851c97de6c36c88bf579be private void villagerSettings() { villagerBrainTicks = getInt("mobs.villager.brain-ticks", villagerBrainTicks); villagerUseBrainTicksOnlyWhenLagging = getBoolean("mobs.villager.use-brain-ticks-only-when-lagging", villagerUseBrainTicksOnlyWhenLagging); -@@ -513,6 +514,7 @@ public class PurpurWorldConfig { +@@ -515,6 +516,7 @@ public class PurpurWorldConfig { villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock); villagerSpawnIronGolemRadius = getInt("mobs.villager.spawn-iron-golem.radius", villagerSpawnIronGolemRadius); villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit); diff --git a/patches/server/0092-Redstone-deactivates-spawners.patch b/patches/server/0092-Redstone-deactivates-spawners.patch index 779f61a28d..75cca15927 100644 --- a/patches/server/0092-Redstone-deactivates-spawners.patch +++ b/patches/server/0092-Redstone-deactivates-spawners.patch @@ -26,10 +26,10 @@ index 5538404456dfee42257fad9040fcc0fefdfc5fab..b3a03dc66e803d9dc7000cc7d6960e87 public abstract BlockPosition b(); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 70a4fff198851c97de6c36c88bf579be51b8c0da..6bfa7faa7c2093c9da55d98343a87bcc6a182ca4 100644 +index 7f449035819f148d5b8cf492da059f1c40cdf1be..263925da88463f0a6faec5b4cc5f0d1b50d177f3 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -318,6 +318,11 @@ public class PurpurWorldConfig { +@@ -320,6 +320,11 @@ public class PurpurWorldConfig { signRightClickEdit = getBoolean("blocks.sign.right-click-edit", signRightClickEdit); } diff --git a/patches/server/0093-Totems-work-in-inventory.patch b/patches/server/0093-Totems-work-in-inventory.patch index 1e1faa2261..7d0cac085e 100644 --- a/patches/server/0093-Totems-work-in-inventory.patch +++ b/patches/server/0093-Totems-work-in-inventory.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Totems work in inventory diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index 9c4bcc691ad2f6896b28d83f386fc8daa2777a3a..69101211dc01e5fbd1f156cbd612b4231098da5a 100644 +index 620bccdc44d3325dcb4450af979363ee94ba3f97..c9caa6919d47283331a9e0c79b22590b80293693 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -1426,6 +1426,19 @@ public abstract class EntityLiving extends Entity { @@ -29,10 +29,10 @@ index 9c4bcc691ad2f6896b28d83f386fc8daa2777a3a..69101211dc01e5fbd1f156cbd612b423 event.setCancelled(itemstack == null); this.world.getServer().getPluginManager().callEvent(event); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 6bfa7faa7c2093c9da55d98343a87bcc6a182ca4..1ddd2ca349e303c75e0bb9b848c25f92383e84b5 100644 +index 263925da88463f0a6faec5b4cc5f0d1b50d177f3..286816d379da807dc9bcd4b4c56d2aebc854131d 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -235,6 +235,11 @@ public class PurpurWorldConfig { +@@ -237,6 +237,11 @@ public class PurpurWorldConfig { teleportIfOutsideBorder = getBoolean("gameplay-mechanics.player.teleport-if-outside-border", teleportIfOutsideBorder); } diff --git a/patches/server/0095-Add-vindicator-johnny-spawn-chance.patch b/patches/server/0095-Add-vindicator-johnny-spawn-chance.patch index cf02983f96..53cee01f69 100644 --- a/patches/server/0095-Add-vindicator-johnny-spawn-chance.patch +++ b/patches/server/0095-Add-vindicator-johnny-spawn-chance.patch @@ -30,7 +30,7 @@ index f0eda0b83bab8e3a8adbb569b5997402b0e08e9a..fe84d6d2b74b6ae00c4c66682107296a } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 1ddd2ca349e303c75e0bb9b848c25f92383e84b5..55d7c48f0dd03c690b0d0b1fee4f3a5306de8d1d 100644 +index 286816d379da807dc9bcd4b4c56d2aebc854131d..1dd4d35251c68f8e862e9cb6ac0c38a460b09ffb 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -40,6 +40,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0097-Dispensers-place-anvils-option.patch b/patches/server/0097-Dispensers-place-anvils-option.patch index d95be60247..03062b6505 100644 --- a/patches/server/0097-Dispensers-place-anvils-option.patch +++ b/patches/server/0097-Dispensers-place-anvils-option.patch @@ -69,10 +69,10 @@ index 93093c05da53e5ddc59fac179081af2e0893706d..a6f74fc09843de9ad5af5c45e303e754 static void a(ISourceBlock isourceblock, Entity entity, EnumDirection enumdirection) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 55d7c48f0dd03c690b0d0b1fee4f3a5306de8d1d..0d29894033d648c3588f4d02646ebe6cdd11f334 100644 +index 1dd4d35251c68f8e862e9cb6ac0c38a460b09ffb..d05a5ddc6991a47763cd95f72e4ea265557468ca 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -285,8 +285,10 @@ public class PurpurWorldConfig { +@@ -287,8 +287,10 @@ public class PurpurWorldConfig { } public boolean dispenserApplyCursedArmor = true; diff --git a/patches/server/0098-Allow-anvil-colors.patch b/patches/server/0098-Allow-anvil-colors.patch index a5449f5809..0d7df31642 100644 --- a/patches/server/0098-Allow-anvil-colors.patch +++ b/patches/server/0098-Allow-anvil-colors.patch @@ -41,10 +41,10 @@ index 1b2d633f3d5d735039f18f27fb1387bd5a74f0d8..77810fbb70bf2e1ad03c28c0d69ceaa6 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 0d29894033d648c3588f4d02646ebe6cdd11f334..87eb9d7a9d15640fe8d5892ae609d63dc6754379 100644 +index d05a5ddc6991a47763cd95f72e4ea265557468ca..7c59d8432ec6a98b3b7ebffc7ee4ee903535e1ec 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -268,6 +268,11 @@ public class PurpurWorldConfig { +@@ -270,6 +270,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0099-Add-no-random-tick-block-list.patch b/patches/server/0099-Add-no-random-tick-block-list.patch index 5bae683817..c10059442f 100644 --- a/patches/server/0099-Add-no-random-tick-block-list.patch +++ b/patches/server/0099-Add-no-random-tick-block-list.patch @@ -43,7 +43,7 @@ index 6124b56d935386784371422960a07d518f848cf3..e5f66cdf95b6073545efc8d1527b0a5e } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 87eb9d7a9d15640fe8d5892ae609d63dc6754379..895480fdb4ce200a2194ab5d0873b5ab1a0b9325 100644 +index 7c59d8432ec6a98b3b7ebffc7ee4ee903535e1ec..69c2a66615cf6fe790afa1a7d9010a4b89f6cc0e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -11,8 +11,10 @@ import org.bukkit.configuration.ConfigurationSection; @@ -57,7 +57,7 @@ index 87eb9d7a9d15640fe8d5892ae609d63dc6754379..895480fdb4ce200a2194ab5d0873b5ab import java.util.logging.Level; import static net.pl3x.purpur.PurpurConfig.log; -@@ -235,6 +237,28 @@ public class PurpurWorldConfig { +@@ -237,6 +239,28 @@ public class PurpurWorldConfig { playerInvulnerableWhileAcceptingResourcePack = getBoolean("gameplay-mechanics.player.invulnerable-while-accepting-resource-pack", playerInvulnerableWhileAcceptingResourcePack); } diff --git a/patches/server/0100-Add-option-to-disable-dolphin-treasure-searching.patch b/patches/server/0100-Add-option-to-disable-dolphin-treasure-searching.patch index ec2fe0d8f8..11a799114b 100644 --- a/patches/server/0100-Add-option-to-disable-dolphin-treasure-searching.patch +++ b/patches/server/0100-Add-option-to-disable-dolphin-treasure-searching.patch @@ -17,10 +17,10 @@ index 5d18e19eafd5dc01a6caa45075d8c0598f1bb709..e0a9b931c26dbd4e7739d09ae45e1cee } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 895480fdb4ce200a2194ab5d0873b5ab1a0b9325..4fa9ca53480538687b3045bac74cbe74136e5fec 100644 +index 69c2a66615cf6fe790afa1a7d9010a4b89f6cc0e..cad041b7beb787b4509727dad778bb3ab4dd3df1 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -399,6 +399,11 @@ public class PurpurWorldConfig { +@@ -401,6 +401,11 @@ public class PurpurWorldConfig { creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance); } diff --git a/patches/server/0102-Stop-squids-floating-on-top-of-water.patch b/patches/server/0102-Stop-squids-floating-on-top-of-water.patch index 085e376d2b..c297923fa7 100644 --- a/patches/server/0102-Stop-squids-floating-on-top-of-water.patch +++ b/patches/server/0102-Stop-squids-floating-on-top-of-water.patch @@ -51,10 +51,10 @@ index 1f5f3e0d209426b97e32b82dd15176b800f85816..e6757b22497c6e274c3999d58671653e protected void initPathfinder() { this.goalSelector.a(0, new EntitySquid.PathfinderGoalSquid(this)); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 4fa9ca53480538687b3045bac74cbe74136e5fec..ffb53daed6bb08d4f448f4d0a6fee6d10710541b 100644 +index cad041b7beb787b4509727dad778bb3ab4dd3df1..cad6cd337bb0f4279dd22b012d32bc3070563a92 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -545,8 +545,10 @@ public class PurpurWorldConfig { +@@ -547,8 +547,10 @@ public class PurpurWorldConfig { } public boolean squidImmuneToEAR = true; diff --git a/patches/server/0103-Ridables.patch b/patches/server/0103-Ridables.patch index 6da401c695..a1ac1c3842 100644 --- a/patches/server/0103-Ridables.patch +++ b/patches/server/0103-Ridables.patch @@ -419,7 +419,7 @@ index e10377b379079bc467a60abe719075c5ef73e858..df33b46ff1267f0f2692a8956438f3bd + // Purpur end } diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index 69101211dc01e5fbd1f156cbd612b4231098da5a..2d3ec6505b91a2cb43a1e2285a7d4e57a54e243c 100644 +index c9caa6919d47283331a9e0c79b22590b80293693..84cb148faacb0587e771410680a0b053822cebf8 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -559,7 +559,7 @@ public abstract class EntityLiving extends Entity { @@ -5559,7 +5559,7 @@ index 3b20793e3eb4349f8a4ce724f8fc0d6366bb28c2..9789d0f9f73540a486befcdd4901014e public static int dungeonSeed = -1; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index ffb53daed6bb08d4f448f4d0a6fee6d10710541b..8db7dca08fe4f0e88c950179f62ecd0d17bc329c 100644 +index cad6cd337bb0f4279dd22b012d32bc3070563a92..ad557e945364f0cd889e76513f67f717fbb1787b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -42,11 +42,6 @@ public class PurpurWorldConfig { @@ -5574,7 +5574,7 @@ index ffb53daed6bb08d4f448f4d0a6fee6d10710541b..8db7dca08fe4f0e88c950179f62ecd0d private ConfigurationSection getConfigurationSection(String path) { ConfigurationSection section = PurpurConfig.config.getConfigurationSection("world-settings." + worldName + "." + path); return section != null ? section : PurpurConfig.config.getConfigurationSection("world-settings.default." + path); -@@ -373,61 +368,186 @@ public class PurpurWorldConfig { +@@ -375,61 +370,186 @@ public class PurpurWorldConfig { turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts); } @@ -5761,7 +5761,7 @@ index ffb53daed6bb08d4f448f4d0a6fee6d10710541b..8db7dca08fe4f0e88c950179f62ecd0d public float giantStepHeight = 2.0F; public float giantJumpHeight = 1.0F; public double giantMovementSpeed = 0.5D; -@@ -436,6 +556,8 @@ public class PurpurWorldConfig { +@@ -438,6 +558,8 @@ public class PurpurWorldConfig { public boolean giantHaveHostileAI = false; public double giantMaxHealth = 100.0D; private void giantSettings() { @@ -5770,7 +5770,7 @@ index ffb53daed6bb08d4f448f4d0a6fee6d10710541b..8db7dca08fe4f0e88c950179f62ecd0d giantStepHeight = (float) getDouble("mobs.giant.step-height", giantStepHeight); giantJumpHeight = (float) getDouble("mobs.giant.jump-height", giantJumpHeight); giantMovementSpeed = getDouble("mobs.giant.movement-speed", giantMovementSpeed); -@@ -450,19 +572,44 @@ public class PurpurWorldConfig { +@@ -452,19 +574,44 @@ public class PurpurWorldConfig { giantMaxHealth = getDouble("mobs.giant.attributes.max-health", giantMaxHealth); } @@ -5815,7 +5815,7 @@ index ffb53daed6bb08d4f448f4d0a6fee6d10710541b..8db7dca08fe4f0e88c950179f62ecd0d illusionerMovementSpeed = getDouble("mobs.illusioner.movement-speed", illusionerMovementSpeed); illusionerFollowRange = getDouble("mobs.illusioner.follow-range", illusionerFollowRange); if (PurpurConfig.version < 8) { -@@ -473,11 +620,76 @@ public class PurpurWorldConfig { +@@ -475,11 +622,76 @@ public class PurpurWorldConfig { illusionerMaxHealth = getDouble("mobs.illusioner.attributes.max-health", illusionerMaxHealth); } @@ -5892,7 +5892,7 @@ index ffb53daed6bb08d4f448f4d0a6fee6d10710541b..8db7dca08fe4f0e88c950179f62ecd0d public double phantomAttackedByCrystalRadius = 0.0D; public float phantomAttackedByCrystalDamage = 1.0F; public double phantomOrbitCrystalRadius = 0.0D; -@@ -496,7 +708,13 @@ public class PurpurWorldConfig { +@@ -498,7 +710,13 @@ public class PurpurWorldConfig { public int phantomBurnInLight = 0; public boolean phantomIgnorePlayersWithTorch = false; public boolean phantomBurnInDaylight = true; @@ -5906,7 +5906,7 @@ index ffb53daed6bb08d4f448f4d0a6fee6d10710541b..8db7dca08fe4f0e88c950179f62ecd0d 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); -@@ -515,42 +733,187 @@ public class PurpurWorldConfig { +@@ -517,42 +735,187 @@ public class PurpurWorldConfig { phantomBurnInLight = getInt("mobs.phantom.burn-in-light", phantomBurnInLight); phantomBurnInDaylight = getBoolean("mobs.phantom.burn-in-daylight", phantomBurnInDaylight); phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch); @@ -6094,7 +6094,7 @@ index ffb53daed6bb08d4f448f4d0a6fee6d10710541b..8db7dca08fe4f0e88c950179f62ecd0d public int villagerBrainTicks = 1; public boolean villagerUseBrainTicksOnlyWhenLagging = true; public boolean villagerCanBeLeashed = false; -@@ -560,6 +923,8 @@ public class PurpurWorldConfig { +@@ -562,6 +925,8 @@ public class PurpurWorldConfig { public int villagerSpawnIronGolemLimit = 0; public boolean villagerCanBreed = true; private void villagerSettings() { @@ -6103,7 +6103,7 @@ index ffb53daed6bb08d4f448f4d0a6fee6d10710541b..8db7dca08fe4f0e88c950179f62ecd0d villagerBrainTicks = getInt("mobs.villager.brain-ticks", villagerBrainTicks); villagerUseBrainTicksOnlyWhenLagging = getBoolean("mobs.villager.use-brain-ticks-only-when-lagging", villagerUseBrainTicksOnlyWhenLagging); villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed); -@@ -570,45 +935,108 @@ public class PurpurWorldConfig { +@@ -572,45 +937,108 @@ public class PurpurWorldConfig { villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed); } diff --git a/patches/server/0106-Entities-can-use-portals-configuration.patch b/patches/server/0106-Entities-can-use-portals-configuration.patch index d6076709bb..067cf0fed6 100644 --- a/patches/server/0106-Entities-can-use-portals-configuration.patch +++ b/patches/server/0106-Entities-can-use-portals-configuration.patch @@ -27,7 +27,7 @@ index 4e1363050bef7fff9117250b79cbf35bf6bfc537..918edab475a8d33a253e3d6cd3c56557 public float a(Explosion explosion, IBlockAccess iblockaccess, BlockPosition blockposition, IBlockData iblockdata, Fluid fluid, float f) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 8db7dca08fe4f0e88c950179f62ecd0d17bc329c..d6bf755d3f978adaec04e5feaab659445d49305e 100644 +index ad557e945364f0cd889e76513f67f717fbb1787b..af38248fec91adaff82c52144cfc6334ea35a646 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -192,6 +192,7 @@ public class PurpurWorldConfig { @@ -38,7 +38,7 @@ index 8db7dca08fe4f0e88c950179f62ecd0d17bc329c..d6bf755d3f978adaec04e5feaab65944 public boolean milkCuresBadOmen = true; public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; -@@ -200,6 +201,7 @@ public class PurpurWorldConfig { +@@ -201,6 +202,7 @@ public class PurpurWorldConfig { boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); disableDropsOnCrammingDeath = getBoolean("gameplay-mechanics.disable-drops-on-cramming-death", disableDropsOnCrammingDeath); entitiesPickUpLootBypassMobGriefing = getBoolean("gameplay-mechanics.entities-pick-up-loot-bypass-mob-griefing", entitiesPickUpLootBypassMobGriefing); diff --git a/patches/server/0108-Customizable-wither-health-and-healing.patch b/patches/server/0108-Customizable-wither-health-and-healing.patch index 9ccabcdef0..20f30a2a9d 100644 --- a/patches/server/0108-Customizable-wither-health-and-healing.patch +++ b/patches/server/0108-Customizable-wither-health-and-healing.patch @@ -44,10 +44,10 @@ index 4c0a555cdb5bc34c73040b9533beaee56cbce70a..beb4d59faf4bd7501468b2eaa0e86661 //this.bossBattle.setProgress(this.getHealth() / this.getMaxHealth()); // Paper - Moved down diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index d6bf755d3f978adaec04e5feaab659445d49305e..c4e04c2986d7029e76a930c33842c0355110244b 100644 +index af38248fec91adaff82c52144cfc6334ea35a646..3e5bad2cd2551196279e1ab6b43bfc66d2d51f1e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -967,10 +967,21 @@ public class PurpurWorldConfig { +@@ -969,10 +969,21 @@ public class PurpurWorldConfig { public boolean witherRidable = false; public boolean witherRidableInWater = false; public double witherMaxY = 256D; diff --git a/patches/server/0109-Allow-toggling-special-MobSpawners-per-world.patch b/patches/server/0109-Allow-toggling-special-MobSpawners-per-world.patch index 8dea22a103..5f05774ac2 100644 --- a/patches/server/0109-Allow-toggling-special-MobSpawners-per-world.patch +++ b/patches/server/0109-Allow-toggling-special-MobSpawners-per-world.patch @@ -106,7 +106,7 @@ index 36b416636b4ded816701a065ff2ff0c3890e0987..4c85525fe461fc3d52c538ab2610c109 this.world = new CraftWorld((WorldServer) this, gen, env); this.ticksPerAnimalSpawns = this.getServer().getTicksPerAnimalSpawns(); // CraftBukkit diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index c4e04c2986d7029e76a930c33842c0355110244b..954f2b3b0df6b15731fc4389366a8063498cd7d3 100644 +index 3e5bad2cd2551196279e1ab6b43bfc66d2d51f1e..1ca0ba958b304f12f964fbc54b2d226305c3855f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -7,6 +7,8 @@ import net.minecraft.world.level.block.Blocks; @@ -152,8 +152,8 @@ index c4e04c2986d7029e76a930c33842c0355110244b..954f2b3b0df6b15731fc4389366a8063 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)); -@@ -207,6 +218,21 @@ public class PurpurWorldConfig { - voidDamageHeight = getDouble("gameplay-mechanics.void-damage-height", voidDamageHeight); +@@ -209,6 +220,21 @@ public class PurpurWorldConfig { + voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt); } + public boolean catSpawning; diff --git a/patches/server/0110-Raid-cooldown-setting.patch b/patches/server/0110-Raid-cooldown-setting.patch index 3157e88410..ed027c8802 100644 --- a/patches/server/0110-Raid-cooldown-setting.patch +++ b/patches/server/0110-Raid-cooldown-setting.patch @@ -52,21 +52,21 @@ index c939ca087af4588e14669a2d53d7c116dcb59f16..11271762dcf5783c3179de1afc6a882c if (!this.raids.containsKey(raid.getId())) { this.raids.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 954f2b3b0df6b15731fc4389366a8063498cd7d3..7fc194d11ffeb82890d2faa1841bdb94f68336c2 100644 +index 1ca0ba958b304f12f964fbc54b2d226305c3855f..23c07245ca69c9f5cb3507527c5155504fb96a95 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -207,6 +207,7 @@ public class PurpurWorldConfig { - public boolean milkCuresBadOmen = true; +@@ -208,6 +208,7 @@ public class PurpurWorldConfig { public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; + public double voidDamageDealt = 4.0D; + public int raidCooldownSeconds = 0; private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); -@@ -216,6 +217,7 @@ public class PurpurWorldConfig { - milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); +@@ -218,6 +219,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); + raidCooldownSeconds = getInt("gameplay-mechanics.raid-cooldown-seconds", raidCooldownSeconds); } diff --git a/patches/server/0111-Despawn-rate-config-options-per-projectile-type.patch b/patches/server/0111-Despawn-rate-config-options-per-projectile-type.patch index 168ede3078..a2bb868b7d 100644 --- a/patches/server/0111-Despawn-rate-config-options-per-projectile-type.patch +++ b/patches/server/0111-Despawn-rate-config-options-per-projectile-type.patch @@ -300,7 +300,7 @@ index 3914081629669aea19d50530db996728bbfa607f..62fa5be9090c8789e91bf9b9f614e74a public boolean checkIfLeftOwner() { return this.h(); } // Purpur - OBFHELPER diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 7fc194d11ffeb82890d2faa1841bdb94f68336c2..8312461ed8c4b47049ec0eb0501306c14ebfee94 100644 +index 23c07245ca69c9f5cb3507527c5155504fb96a95..4fc8e2db66103b3abb2513cf734db78c0d490cb1 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -199,6 +199,35 @@ public class PurpurWorldConfig { diff --git a/patches/server/0112-Add-option-to-disable-zombie-aggressiveness-towards-.patch b/patches/server/0112-Add-option-to-disable-zombie-aggressiveness-towards-.patch index f48cfed042..2abd457a37 100644 --- a/patches/server/0112-Add-option-to-disable-zombie-aggressiveness-towards-.patch +++ b/patches/server/0112-Add-option-to-disable-zombie-aggressiveness-towards-.patch @@ -69,10 +69,10 @@ index 901fe8d224130c67bad00636b065bc798859a18e..88264b7b2c21a377f4b0dd857065e401 this.targetSelector.a(5, new PathfinderGoalNearestAttackableTarget<>(this, EntityTurtle.class, 10, true, false, EntityTurtle.bo)); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 8312461ed8c4b47049ec0eb0501306c14ebfee94..b6ad75695b80c4ec2249caa908b2fd2f4bbfbfaf 100644 +index 4fc8e2db66103b3abb2513cf734db78c0d490cb1..a90be0701d8dc8a3b42a565e44457b1264b16bcb 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1069,12 +1069,14 @@ public class PurpurWorldConfig { +@@ -1071,12 +1071,14 @@ public class PurpurWorldConfig { public boolean zombieJockeyOnlyBaby = true; public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; diff --git a/patches/server/0113-Persistent-TileEntity-Lore-and-DisplayName.patch b/patches/server/0113-Persistent-TileEntity-Lore-and-DisplayName.patch index c83b96a9c1..4209fa3bec 100644 --- a/patches/server/0113-Persistent-TileEntity-Lore-and-DisplayName.patch +++ b/patches/server/0113-Persistent-TileEntity-Lore-and-DisplayName.patch @@ -214,7 +214,7 @@ index 93d02ccb87c17404c55884f52ae40c7b7ddfb103..35c4d5414db66b977a354ac50d35a6aa + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index b6ad75695b80c4ec2249caa908b2fd2f4bbfbfaf..1a5a8242a11f5b5851c9184d0a216110a591df8e 100644 +index a90be0701d8dc8a3b42a565e44457b1264b16bcb..3cda51fa1401aa47e928fc91dc634fc17cd88726 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -234,6 +234,7 @@ public class PurpurWorldConfig { @@ -224,12 +224,12 @@ index b6ad75695b80c4ec2249caa908b2fd2f4bbfbfaf..1a5a8242a11f5b5851c9184d0a216110 + public boolean persistentTileEntityDisplayNames = false; public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; - public int raidCooldownSeconds = 0; -@@ -244,6 +245,7 @@ public class PurpurWorldConfig { + public double voidDamageDealt = 4.0D; +@@ -245,6 +246,7 @@ public class PurpurWorldConfig { entitiesPickUpLootBypassMobGriefing = getBoolean("gameplay-mechanics.entities-pick-up-loot-bypass-mob-griefing", entitiesPickUpLootBypassMobGriefing); 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); tridentLoyaltyVoidReturnHeight = getDouble("gameplay-mechanics.trident-loyalty-void-return-height", tridentLoyaltyVoidReturnHeight); voidDamageHeight = getDouble("gameplay-mechanics.void-damage-height", voidDamageHeight); - raidCooldownSeconds = getInt("gameplay-mechanics.raid-cooldown-seconds", raidCooldownSeconds); + voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt); diff --git a/patches/server/0115-Flying-squids-Oh-my.patch b/patches/server/0115-Flying-squids-Oh-my.patch index 03e2962320..17fbf0bb95 100644 --- a/patches/server/0115-Flying-squids-Oh-my.patch +++ b/patches/server/0115-Flying-squids-Oh-my.patch @@ -38,10 +38,10 @@ index a9fa18931d93dd7fa428b8cd6a414d4b3a3b4fbb..be48e12dd6c9a390bf383129953bcd3d float f1 = MathHelper.cos(f) * 0.2F; float f2 = -0.1F + this.b.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 1a5a8242a11f5b5851c9184d0a216110a591df8e..630e6b38d391112a42c60650af78f79afe6a190e 100644 +index 3cda51fa1401aa47e928fc91dc634fc17cd88726..fded4e2ed984926acc6ee6070b109dee6340e702 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -925,10 +925,12 @@ public class PurpurWorldConfig { +@@ -927,10 +927,12 @@ public class PurpurWorldConfig { public boolean squidRidable = false; public boolean squidImmuneToEAR = true; public double squidOffsetWaterCheck = 0.0D; diff --git a/patches/server/0116-Infinity-bow-settings.patch b/patches/server/0116-Infinity-bow-settings.patch index 28df332c18..9125ec9681 100644 --- a/patches/server/0116-Infinity-bow-settings.patch +++ b/patches/server/0116-Infinity-bow-settings.patch @@ -26,7 +26,7 @@ index 015f4d71f35a9d512814389b6e6cab74c0daf116..c7e20b25b4d09463fa54c66e62208e90 entityhuman.b(StatisticList.ITEM_USED.b(this)); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 630e6b38d391112a42c60650af78f79afe6a190e..7c89bda2330b1a3fe5a5c83ee0038936938b7ae0 100644 +index fded4e2ed984926acc6ee6070b109dee6340e702..585e1f9240c95b044d54e7509fb82ed2e3e9363a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -199,6 +199,15 @@ public class PurpurWorldConfig { diff --git a/patches/server/0117-Stonecutter-damage.patch b/patches/server/0117-Stonecutter-damage.patch index d3842ac3d8..e70aa8e5a1 100644 --- a/patches/server/0117-Stonecutter-damage.patch +++ b/patches/server/0117-Stonecutter-damage.patch @@ -49,10 +49,10 @@ index 7b92a54cfb64fb77af99e6bf66eacbdb9e769dc1..9d08094165cf18d99116b5c721fff888 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 7c89bda2330b1a3fe5a5c83ee0038936938b7ae0..b8929df319ccb260b0f8fc841c9665c6aa2548eb 100644 +index 585e1f9240c95b044d54e7509fb82ed2e3e9363a..0904a8433175814adb331229f8e81fc4633e97de 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -429,6 +429,11 @@ public class PurpurWorldConfig { +@@ -431,6 +431,11 @@ public class PurpurWorldConfig { spawnerDeactivateByRedstone = getBoolean("blocks.spawner.deactivate-by-redstone", spawnerDeactivateByRedstone); } diff --git a/patches/server/0118-Configurable-daylight-cycle.patch b/patches/server/0118-Configurable-daylight-cycle.patch index 515819368b..8a1413fb53 100644 --- a/patches/server/0118-Configurable-daylight-cycle.patch +++ b/patches/server/0118-Configurable-daylight-cycle.patch @@ -82,7 +82,7 @@ index 64feabfb860ac29a7f7692bcc9972369dbdc2e02..028911ebe843751080564d90e9630652 public void doMobSpawning(boolean flag, boolean flag1) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index b8929df319ccb260b0f8fc841c9665c6aa2548eb..fb694fd7be60dc9ae7305b4a03a767b6ae169778 100644 +index 0904a8433175814adb331229f8e81fc4633e97de..3c97ca864bfcb13d832310cdecc6d7a86fef12ec 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -150,6 +150,13 @@ public class PurpurWorldConfig { diff --git a/patches/server/0120-Infinite-fuel-furnace.patch b/patches/server/0120-Infinite-fuel-furnace.patch index 17ef2aa9da..f1c7af1149 100644 --- a/patches/server/0120-Infinite-fuel-furnace.patch +++ b/patches/server/0120-Infinite-fuel-furnace.patch @@ -57,10 +57,10 @@ index 9ce19b89c16eb6edd3d5d5cc87a966a37f66895c..ac42fd627009a87709448354f232d8b5 if (flag1) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index fb694fd7be60dc9ae7305b4a03a767b6ae169778..1ee44467f98f8ecffa7c7d61a6169ba0b727f234 100644 +index 3c97ca864bfcb13d832310cdecc6d7a86fef12ec..c33a386c74d1224afb23bd424983ba2d312790c2 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -397,6 +397,11 @@ public class PurpurWorldConfig { +@@ -399,6 +399,11 @@ public class PurpurWorldConfig { farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); } diff --git a/patches/server/0123-Ability-to-re-add-farmland-mechanics-from-Alpha.patch b/patches/server/0123-Ability-to-re-add-farmland-mechanics-from-Alpha.patch index 35814292fd..c5a7244b26 100644 --- a/patches/server/0123-Ability-to-re-add-farmland-mechanics-from-Alpha.patch +++ b/patches/server/0123-Ability-to-re-add-farmland-mechanics-from-Alpha.patch @@ -24,10 +24,10 @@ index 2bbaa2fb426869223a9b2f07406496c1b0daff3f..3e8893bf76b8ffda4c595c81086556ea return; } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 1ee44467f98f8ecffa7c7d61a6169ba0b727f234..c29f923872dea87fa3fcbb9e4e8554947b569121 100644 +index c33a386c74d1224afb23bd424983ba2d312790c2..d09687f565505941c04efd367d6be2c19a219ef9 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -393,8 +393,10 @@ public class PurpurWorldConfig { +@@ -395,8 +395,10 @@ public class PurpurWorldConfig { } public boolean farmlandGetsMoistFromBelow = false; diff --git a/patches/server/0124-Add-adjustable-breeding-cooldown-to-config.patch b/patches/server/0124-Add-adjustable-breeding-cooldown-to-config.patch index 8bbae10b3f..4f3fc50c0e 100644 --- a/patches/server/0124-Add-adjustable-breeding-cooldown-to-config.patch +++ b/patches/server/0124-Add-adjustable-breeding-cooldown-to-config.patch @@ -102,20 +102,20 @@ index 4c85525fe461fc3d52c538ab2610c1098c9d0151..b03865ca77c3fbd4fe61db450ffd3ced this.world = new CraftWorld((WorldServer) this, gen, env); this.ticksPerAnimalSpawns = this.getServer().getTicksPerAnimalSpawns(); // CraftBukkit diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index c29f923872dea87fa3fcbb9e4e8554947b569121..def36f72153b25094693b82e962366cc19ae4d13 100644 +index d09687f565505941c04efd367d6be2c19a219ef9..9bc3aff37addd694f840eea6189d47e9131e1f27 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -254,6 +254,7 @@ public class PurpurWorldConfig { - public double tridentLoyaltyVoidReturnHeight = 0.0D; +@@ -255,6 +255,7 @@ public class PurpurWorldConfig { public double voidDamageHeight = -64.0D; + public double voidDamageDealt = 4.0D; public int raidCooldownSeconds = 0; + public int animalBreedingCooldownSeconds = 0; private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); -@@ -265,6 +266,7 @@ public class PurpurWorldConfig { - tridentLoyaltyVoidReturnHeight = getDouble("gameplay-mechanics.trident-loyalty-void-return-height", tridentLoyaltyVoidReturnHeight); +@@ -267,6 +268,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); + animalBreedingCooldownSeconds = getInt("gameplay-mechanics.animal-breeding-cooldown-seconds", animalBreedingCooldownSeconds); } diff --git a/patches/server/0125-Make-entity-breeding-times-configurable.patch b/patches/server/0125-Make-entity-breeding-times-configurable.patch index 7d677e8973..102b6b2749 100644 --- a/patches/server/0125-Make-entity-breeding-times-configurable.patch +++ b/patches/server/0125-Make-entity-breeding-times-configurable.patch @@ -428,10 +428,10 @@ index 64253428ef66145d07f74f8d0e5bdeb5aa5fe02b..828d01abe8202a246ce07c1c652a17cb @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index def36f72153b25094693b82e962366cc19ae4d13..1ac6394340aaf61c899b758351cfb667f6d9bc09 100644 +index 9bc3aff37addd694f840eea6189d47e9131e1f27..c70a22d8c5d8cdab04e923b22002ae35e703485e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -480,10 +480,12 @@ public class PurpurWorldConfig { +@@ -482,10 +482,12 @@ public class PurpurWorldConfig { public boolean beeRidable = false; public boolean beeRidableInWater = false; public double beeMaxY = 256D; @@ -444,7 +444,7 @@ index def36f72153b25094693b82e962366cc19ae4d13..1ac6394340aaf61c899b758351cfb667 } public boolean blazeRidable = false; -@@ -500,12 +502,14 @@ public class PurpurWorldConfig { +@@ -502,12 +504,14 @@ public class PurpurWorldConfig { public int catSpawnDelay = 1200; public int catSpawnSwampHutScanRange = 16; public int catSpawnVillageScanRange = 48; @@ -459,7 +459,7 @@ index def36f72153b25094693b82e962366cc19ae4d13..1ac6394340aaf61c899b758351cfb667 } public boolean caveSpiderRidable = false; -@@ -518,10 +522,12 @@ public class PurpurWorldConfig { +@@ -520,10 +524,12 @@ public class PurpurWorldConfig { public boolean chickenRidable = false; public boolean chickenRidableInWater = false; public boolean chickenRetaliate = false; @@ -472,7 +472,7 @@ index def36f72153b25094693b82e962366cc19ae4d13..1ac6394340aaf61c899b758351cfb667 } public boolean codRidable = false; -@@ -532,10 +538,12 @@ public class PurpurWorldConfig { +@@ -534,10 +540,12 @@ public class PurpurWorldConfig { public boolean cowRidable = false; public boolean cowRidableInWater = false; public int cowFeedMushrooms = 0; @@ -485,7 +485,7 @@ index def36f72153b25094693b82e962366cc19ae4d13..1ac6394340aaf61c899b758351cfb667 } public boolean creeperRidable = false; -@@ -563,8 +571,10 @@ public class PurpurWorldConfig { +@@ -565,8 +573,10 @@ public class PurpurWorldConfig { } public boolean donkeyRidableInWater = false; @@ -496,7 +496,7 @@ index def36f72153b25094693b82e962366cc19ae4d13..1ac6394340aaf61c899b758351cfb667 } public boolean drownedRidable = false; -@@ -622,10 +632,12 @@ public class PurpurWorldConfig { +@@ -624,10 +634,12 @@ public class PurpurWorldConfig { public boolean foxRidable = false; public boolean foxRidableInWater = false; public boolean foxTypeChangesWithTulips = false; @@ -509,7 +509,7 @@ index def36f72153b25094693b82e962366cc19ae4d13..1ac6394340aaf61c899b758351cfb667 } public boolean ghastRidable = false; -@@ -670,14 +682,18 @@ public class PurpurWorldConfig { +@@ -672,14 +684,18 @@ public class PurpurWorldConfig { public boolean hoglinRidable = false; public boolean hoglinRidableInWater = false; @@ -528,7 +528,7 @@ index def36f72153b25094693b82e962366cc19ae4d13..1ac6394340aaf61c899b758351cfb667 } public boolean huskRidable = false; -@@ -722,9 +738,11 @@ public class PurpurWorldConfig { +@@ -724,9 +740,11 @@ public class PurpurWorldConfig { public boolean llamaRidable = false; public boolean llamaRidableInWater = false; @@ -540,7 +540,7 @@ index def36f72153b25094693b82e962366cc19ae4d13..1ac6394340aaf61c899b758351cfb667 } public boolean llamaTraderRidable = false; -@@ -743,28 +761,36 @@ public class PurpurWorldConfig { +@@ -745,28 +763,36 @@ public class PurpurWorldConfig { public boolean mooshroomRidable = false; public boolean mooshroomRidableInWater = false; @@ -577,7 +577,7 @@ index def36f72153b25094693b82e962366cc19ae4d13..1ac6394340aaf61c899b758351cfb667 } public boolean parrotRidable = false; -@@ -830,10 +856,12 @@ public class PurpurWorldConfig { +@@ -832,10 +858,12 @@ public class PurpurWorldConfig { public boolean pigRidable = false; public boolean pigRidableInWater = false; public boolean pigGiveSaddleBack = false; @@ -590,7 +590,7 @@ index def36f72153b25094693b82e962366cc19ae4d13..1ac6394340aaf61c899b758351cfb667 } public boolean piglinRidable = false; -@@ -861,12 +889,14 @@ public class PurpurWorldConfig { +@@ -863,12 +891,14 @@ public class PurpurWorldConfig { public boolean polarBearRidableInWater = false; public String polarBearBreedableItemString = ""; public Item polarBearBreedableItem = null; @@ -605,7 +605,7 @@ index def36f72153b25094693b82e962366cc19ae4d13..1ac6394340aaf61c899b758351cfb667 } public boolean pufferfishRidable = false; -@@ -878,11 +908,13 @@ public class PurpurWorldConfig { +@@ -880,11 +910,13 @@ public class PurpurWorldConfig { public boolean rabbitRidableInWater = false; public double rabbitNaturalToast = 0.0D; public double rabbitNaturalKiller = 0.0D; @@ -619,7 +619,7 @@ index def36f72153b25094693b82e962366cc19ae4d13..1ac6394340aaf61c899b758351cfb667 } public boolean ravagerRidable = false; -@@ -899,9 +931,11 @@ public class PurpurWorldConfig { +@@ -901,9 +933,11 @@ public class PurpurWorldConfig { public boolean sheepRidable = false; public boolean sheepRidableInWater = false; @@ -631,7 +631,7 @@ index def36f72153b25094693b82e962366cc19ae4d13..1ac6394340aaf61c899b758351cfb667 } public boolean shulkerRidable = false; -@@ -979,9 +1013,11 @@ public class PurpurWorldConfig { +@@ -981,9 +1015,11 @@ public class PurpurWorldConfig { public boolean striderRidable = false; public boolean striderRidableInWater = false; @@ -643,7 +643,7 @@ index def36f72153b25094693b82e962366cc19ae4d13..1ac6394340aaf61c899b758351cfb667 } public boolean tropicalFishRidable = false; -@@ -991,9 +1027,11 @@ public class PurpurWorldConfig { +@@ -993,9 +1029,11 @@ public class PurpurWorldConfig { public boolean turtleRidable = false; public boolean turtleRidableInWater = false; @@ -655,7 +655,7 @@ index def36f72153b25094693b82e962366cc19ae4d13..1ac6394340aaf61c899b758351cfb667 } public boolean vexRidable = false; -@@ -1015,6 +1053,7 @@ public class PurpurWorldConfig { +@@ -1017,6 +1055,7 @@ public class PurpurWorldConfig { public int villagerSpawnIronGolemRadius = 0; public int villagerSpawnIronGolemLimit = 0; public boolean villagerCanBreed = true; @@ -663,7 +663,7 @@ index def36f72153b25094693b82e962366cc19ae4d13..1ac6394340aaf61c899b758351cfb667 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1026,6 +1065,7 @@ public class PurpurWorldConfig { +@@ -1028,6 +1067,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); @@ -671,7 +671,7 @@ index def36f72153b25094693b82e962366cc19ae4d13..1ac6394340aaf61c899b758351cfb667 } public boolean villagerTraderRidable = false; -@@ -1086,9 +1126,11 @@ public class PurpurWorldConfig { +@@ -1088,9 +1128,11 @@ public class PurpurWorldConfig { public boolean wolfRidable = false; public boolean wolfRidableInWater = false; diff --git a/patches/server/0126-Apply-display-names-from-item-forms-of-entities-to-e.patch b/patches/server/0126-Apply-display-names-from-item-forms-of-entities-to-e.patch index 59b5a91622..3587568b29 100644 --- a/patches/server/0126-Apply-display-names-from-item-forms-of-entities-to-e.patch +++ b/patches/server/0126-Apply-display-names-from-item-forms-of-entities-to-e.patch @@ -154,7 +154,7 @@ index 81e2ccfa4f6cf6a4ad9236cf0ce94df8dc3ec5b6..132972755ac74838f3386e0fac503338 NBTTagCompound nbttagcompound = this.a("display"); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 1ac6394340aaf61c899b758351cfb667f6d9bc09..0c159098cff5a67bc2ebc9374138843172316f01 100644 +index c70a22d8c5d8cdab04e923b22002ae35e703485e..52841e2df9098f1e32349510c2d439b61ca79286 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -83,8 +83,10 @@ public class PurpurWorldConfig { @@ -175,12 +175,12 @@ index 1ac6394340aaf61c899b758351cfb667f6d9bc09..0c159098cff5a67bc2ebc93741388431 + public boolean persistentDroppableEntityDisplayNames = false; public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; - public int raidCooldownSeconds = 0; -@@ -263,6 +266,7 @@ public class PurpurWorldConfig { + public double voidDamageDealt = 4.0D; +@@ -264,6 +267,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); + persistentDroppableEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-droppable-entity-display-names", persistentDroppableEntityDisplayNames); tridentLoyaltyVoidReturnHeight = getDouble("gameplay-mechanics.trident-loyalty-void-return-height", tridentLoyaltyVoidReturnHeight); voidDamageHeight = getDouble("gameplay-mechanics.void-damage-height", voidDamageHeight); - raidCooldownSeconds = getInt("gameplay-mechanics.raid-cooldown-seconds", raidCooldownSeconds); + voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt); diff --git a/patches/server/0127-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch b/patches/server/0127-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch index 4745abc916..60e66ee2f3 100644 --- a/patches/server/0127-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch +++ b/patches/server/0127-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch @@ -29,7 +29,7 @@ index b9b2b27e534ba87a1aae3c521f393a066a18a199..4f4e9ebb9af4970fe920a540d40dbc56 ((EntityInsentient) newEntityLiving).setPersistent(); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 0c159098cff5a67bc2ebc9374138843172316f01..4cd8acf6ef170193f38c3926e467aa2e9c7acf63 100644 +index 52841e2df9098f1e32349510c2d439b61ca79286..61923263c9cf388a897a150ce1030ad978eef8d7 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -84,9 +84,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0128-Add-twisting-and-weeping-vines-growth-rates.patch b/patches/server/0128-Add-twisting-and-weeping-vines-growth-rates.patch index 34a7c54966..86aa42a6d6 100644 --- a/patches/server/0128-Add-twisting-and-weeping-vines-growth-rates.patch +++ b/patches/server/0128-Add-twisting-and-weeping-vines-growth-rates.patch @@ -91,10 +91,10 @@ index 2552631084926c2fad40b3f21ae479c0e1cfdb77..198bd8857571872ed3f7437529c330dc + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 4cd8acf6ef170193f38c3926e467aa2e9c7acf63..495c8fc0e632dfc4f73d2929b1da9adea18345a5 100644 +index 61923263c9cf388a897a150ce1030ad978eef8d7..071921d17cb0bbe3c39cc43c107431a8def5501b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -465,6 +465,16 @@ public class PurpurWorldConfig { +@@ -467,6 +467,16 @@ public class PurpurWorldConfig { turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts); } diff --git a/patches/server/0129-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch b/patches/server/0129-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch index cf86764322..2b047a61a9 100644 --- a/patches/server/0129-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch +++ b/patches/server/0129-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch @@ -89,10 +89,10 @@ index 198bd8857571872ed3f7437529c330dceeb825db..a71f97e87ee7210f3246e542dd768403 // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 495c8fc0e632dfc4f73d2929b1da9adea18345a5..15ea799b677b8be82f38ce4ab152878fd577d174 100644 +index 071921d17cb0bbe3c39cc43c107431a8def5501b..3d71a3ccb259d36d4d59091b42ae7f42fbb40f91 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -412,6 +412,11 @@ public class PurpurWorldConfig { +@@ -414,6 +414,11 @@ public class PurpurWorldConfig { furnaceInfiniteFuel = getBoolean("blocks.furnace.infinite-fuel", furnaceInfiniteFuel); } @@ -104,7 +104,7 @@ index 495c8fc0e632dfc4f73d2929b1da9adea18345a5..15ea799b677b8be82f38ce4ab152878f public boolean lavaInfinite = false; public int lavaInfiniteRequiredSources = 2; public int lavaSpeedNether = 10; -@@ -466,13 +471,17 @@ public class PurpurWorldConfig { +@@ -468,13 +473,17 @@ public class PurpurWorldConfig { } public double twistingVinesGrowthModifier = 0.10D; diff --git a/patches/server/0130-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch b/patches/server/0130-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch index 4bf8428019..36c8b1d212 100644 --- a/patches/server/0130-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch +++ b/patches/server/0130-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch @@ -21,10 +21,10 @@ index 03fa2cfc1d5bc27e03e9979b3f33d88362c19066..18b3f8d1fadd1424327261d92b49977a static class PathfinderGoalEndermanPickupBlock extends PathfinderGoal { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 15ea799b677b8be82f38ce4ab152878fd577d174..fb3d98999a926763f7319b24c35cdf0116ff0682 100644 +index 3d71a3ccb259d36d4d59091b42ae7f42fbb40f91..605ee4272077fccbb347c2a8a42b9a84dec3164e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -634,10 +634,12 @@ public class PurpurWorldConfig { +@@ -636,10 +636,12 @@ public class PurpurWorldConfig { public boolean endermanRidable = false; public boolean endermanRidableInWater = false; public boolean endermanAllowGriefing = true; diff --git a/patches/server/0132-Add-configurable-snowball-damage.patch b/patches/server/0132-Add-configurable-snowball-damage.patch index 3dd5d8cbcb..0842f1b855 100644 --- a/patches/server/0132-Add-configurable-snowball-damage.patch +++ b/patches/server/0132-Add-configurable-snowball-damage.patch @@ -18,7 +18,7 @@ index 0d3b9c81e47eef645335e49a1d6d88db7338aa4b..6bfd3f57e6c04ed426870d6dbf068bf3 entity.damageEntity(DamageSource.projectile(this, this.getShooter()), (float) i); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index fb3d98999a926763f7319b24c35cdf0116ff0682..c9ba9beabf41905f892e8f657d40de9bc78ca337 100644 +index 605ee4272077fccbb347c2a8a42b9a84dec3164e..223779ca665c86491733c902c94faadea503a2e7 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -248,6 +248,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0133-Zombie-break-door-minimum-difficulty-option.patch b/patches/server/0133-Zombie-break-door-minimum-difficulty-option.patch index a3f4740589..3faf3d3e46 100644 --- a/patches/server/0133-Zombie-break-door-minimum-difficulty-option.patch +++ b/patches/server/0133-Zombie-break-door-minimum-difficulty-option.patch @@ -50,7 +50,7 @@ index 10ee8a0a717354f50b29e7ebeab0ee2aa7bf42f7..d785066e2a52699c18315f7244d80db6 + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index c9ba9beabf41905f892e8f657d40de9bc78ca337..af4725f4d224bbb8c1fb1fac78c217343e9717a8 100644 +index 223779ca665c86491733c902c94faadea503a2e7..cca020ef20d0a025b86d0a964da85463bd74b059 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -1,6 +1,7 @@ @@ -61,7 +61,7 @@ index c9ba9beabf41905f892e8f657d40de9bc78ca337..af4725f4d224bbb8c1fb1fac78c21734 import net.minecraft.world.level.Explosion; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; -@@ -1178,6 +1179,7 @@ public class PurpurWorldConfig { +@@ -1180,6 +1181,7 @@ public class PurpurWorldConfig { public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; @@ -69,7 +69,7 @@ index c9ba9beabf41905f892e8f657d40de9bc78ca337..af4725f4d224bbb8c1fb1fac78c21734 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1185,6 +1187,11 @@ public class PurpurWorldConfig { +@@ -1187,6 +1189,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/0137-Changeable-Mob-Left-Handed-Chance.patch b/patches/server/0137-Changeable-Mob-Left-Handed-Chance.patch index 8955091c65..f0a049fa00 100644 --- a/patches/server/0137-Changeable-Mob-Left-Handed-Chance.patch +++ b/patches/server/0137-Changeable-Mob-Left-Handed-Chance.patch @@ -18,7 +18,7 @@ index df33b46ff1267f0f2692a8956438f3bd1e2a3086..a6ea96683b0f4d35015dff6168f3bf45 } 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 af4725f4d224bbb8c1fb1fac78c217343e9717a8..0baa0b3c33d91f79030d639091628224bb27bdc6 100644 +index cca020ef20d0a025b86d0a964da85463bd74b059..8ce9b10c71ae45eea849e810c305b3adb2cce75e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -163,8 +163,10 @@ public class PurpurWorldConfig { diff --git a/patches/server/0138-Add-boat-fall-damage-config.patch b/patches/server/0138-Add-boat-fall-damage-config.patch index a8f9012a33..e0f9f26e13 100644 --- a/patches/server/0138-Add-boat-fall-damage-config.patch +++ b/patches/server/0138-Add-boat-fall-damage-config.patch @@ -27,7 +27,7 @@ index 3f29cc87faa85f857c5fe2b8457d7c96d05515bc..a1d5662911ee3a038da427bf2e0b69a1 if (!flag && isSpawnInvulnerable() && damagesource != 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 0baa0b3c33d91f79030d639091628224bb27bdc6..d0aa12148e5abe3b2df3b4341b11b55feb73535e 100644 +index 8ce9b10c71ae45eea849e810c305b3adb2cce75e..e04af8007b5650d20165e82767c288452de48ebc 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -258,6 +258,7 @@ public class PurpurWorldConfig { @@ -38,7 +38,7 @@ index 0baa0b3c33d91f79030d639091628224bb27bdc6..d0aa12148e5abe3b2df3b4341b11b55f public boolean disableDropsOnCrammingDeath = false; public boolean entitiesPickUpLootBypassMobGriefing = false; public boolean entitiesCanUsePortals = true; -@@ -271,6 +272,7 @@ public class PurpurWorldConfig { +@@ -272,6 +273,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/0139-Config-migration-disable-saving-projectiles-to-disk-.patch b/patches/server/0139-Config-migration-disable-saving-projectiles-to-disk-.patch index fa155d874a..516b8dd1f5 100644 --- a/patches/server/0139-Config-migration-disable-saving-projectiles-to-disk-.patch +++ b/patches/server/0139-Config-migration-disable-saving-projectiles-to-disk-.patch @@ -36,7 +36,7 @@ index 69d6d3fb4333531ea63acf5272ffa52ed296346f..457a20aee6f7aa25be052bec202bbcb8 public static String afkBroadcastBack = "§e§o%s is no longer AFK"; public static String afkTabListPrefix = "[AFK] "; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index d0aa12148e5abe3b2df3b4341b11b55feb73535e..81cd441842e63c0465bd64d9f9009852fed1296a 100644 +index e04af8007b5650d20165e82767c288452de48ebc..ac5c770735650d4a7821ee0f2551de63d8c5fdbb 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -1,5 +1,6 @@ diff --git a/patches/server/0140-Snow-Golem-rate-of-fire-config.patch b/patches/server/0140-Snow-Golem-rate-of-fire-config.patch index ce3317645e..158caf5265 100644 --- a/patches/server/0140-Snow-Golem-rate-of-fire-config.patch +++ b/patches/server/0140-Snow-Golem-rate-of-fire-config.patch @@ -23,10 +23,10 @@ index cfcf67e99ae345f77a55771e6a25bdcdb4a9740a..28b5c22ecfe573ac9d91b74e54ebd3e3 this.goalSelector.a(3, new PathfinderGoalLookAtPlayer(this, EntityHuman.class, 6.0F)); this.goalSelector.a(4, new PathfinderGoalRandomLookaround(this)); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 81cd441842e63c0465bd64d9f9009852fed1296a..f534924050ac90716979e9f2b66c8a0752454fad 100644 +index ac5c770735650d4a7821ee0f2551de63d8c5fdbb..afabf27d4f966dfc0d12d54c0b5eb6f0e5c38a73 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1027,12 +1027,20 @@ public class PurpurWorldConfig { +@@ -1029,12 +1029,20 @@ public class PurpurWorldConfig { public boolean snowGolemLeaveTrailWhenRidden = false; public boolean snowGolemDropsPumpkin = true; public boolean snowGolemPutPumpkinBack = false; diff --git a/patches/server/0143-Config-migration-climbing-should-not-bypass-cramming.patch b/patches/server/0143-Config-migration-climbing-should-not-bypass-cramming.patch index fd8cdf7e23..a17db7f54c 100644 --- a/patches/server/0143-Config-migration-climbing-should-not-bypass-cramming.patch +++ b/patches/server/0143-Config-migration-climbing-should-not-bypass-cramming.patch @@ -28,7 +28,7 @@ index 521604b37ca61b849420f206fde88210b582cd3c..116f17bcc02d15951fa248c6ce4e2cf3 public static String afkBroadcastBack = "§e§o%s is no longer AFK"; public static String afkTabListPrefix = "[AFK] "; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index f534924050ac90716979e9f2b66c8a0752454fad..efd2bce6fa4572093acb7ef67d85aac1a989bcf3 100644 +index afabf27d4f966dfc0d12d54c0b5eb6f0e5c38a73..818712824f714b522296d5bd9d160a2045c53ea0 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -96,6 +96,17 @@ public class PurpurWorldConfig { diff --git a/patches/server/0144-Lobotomize-stuck-villagers.patch b/patches/server/0144-Lobotomize-stuck-villagers.patch index d349b92eb4..7fe1f7dcf7 100644 --- a/patches/server/0144-Lobotomize-stuck-villagers.patch +++ b/patches/server/0144-Lobotomize-stuck-villagers.patch @@ -99,10 +99,10 @@ index a0f0d5e0909da5cfe87078d4722b030635cfeadd..bc14e242f97f9f6d8e581d12319c95ae long i = this.bC + 12000L; long j = this.world.getTime(); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index efd2bce6fa4572093acb7ef67d85aac1a989bcf3..300fb6bb60fa961f2321183553c293730d4c4cd0 100644 +index 818712824f714b522296d5bd9d160a2045c53ea0..afc3587e1b9cda48d0483c5faf3dc4569b867b5e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1122,6 +1122,8 @@ public class PurpurWorldConfig { +@@ -1124,6 +1124,8 @@ public class PurpurWorldConfig { public int villagerSpawnIronGolemLimit = 0; public boolean villagerCanBreed = true; public int villagerBreedingTicks = 6000; @@ -111,7 +111,7 @@ index efd2bce6fa4572093acb7ef67d85aac1a989bcf3..300fb6bb60fa961f2321183553c29373 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1134,6 +1136,13 @@ public class PurpurWorldConfig { +@@ -1136,6 +1138,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/0145-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch b/patches/server/0145-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch index ecba7bf1e4..c3f5df553f 100644 --- a/patches/server/0145-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch +++ b/patches/server/0145-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch @@ -224,10 +224,10 @@ index 69de7588eebba7557cdaec129f19ec1fc2c675c5..dd9b678481620856fb7eaaa04c3b812c public static final VillagerProfession FISHERMAN = a("fisherman", VillagePlaceType.i, SoundEffects.ENTITY_VILLAGER_WORK_FISHERMAN); public static final VillagerProfession FLETCHER = a("fletcher", VillagePlaceType.j, SoundEffects.ENTITY_VILLAGER_WORK_FLETCHER); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 300fb6bb60fa961f2321183553c293730d4c4cd0..bf82602521eacbe2ae18b548e2f2013f9179c23b 100644 +index afc3587e1b9cda48d0483c5faf3dc4569b867b5e..d6f4638717376c321496d747d12fe970032b2373 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1124,6 +1124,8 @@ public class PurpurWorldConfig { +@@ -1126,6 +1126,8 @@ public class PurpurWorldConfig { public int villagerBreedingTicks = 6000; public boolean villagerLobotomizeEnabled = false; public int villagerLobotomizeCheck = 60; @@ -236,7 +236,7 @@ index 300fb6bb60fa961f2321183553c293730d4c4cd0..bf82602521eacbe2ae18b548e2f2013f private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1143,6 +1145,8 @@ public class PurpurWorldConfig { +@@ -1145,6 +1147,8 @@ public class PurpurWorldConfig { } villagerLobotomizeEnabled = getBoolean("mobs.villager.lobotomize.enabled", villagerLobotomizeEnabled); villagerLobotomizeCheck = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheck); diff --git a/patches/server/0146-Toggle-for-Zombified-Piglin-death-always-counting-as.patch b/patches/server/0146-Toggle-for-Zombified-Piglin-death-always-counting-as.patch index bd0b9c9c7c..26d2e823de 100644 --- a/patches/server/0146-Toggle-for-Zombified-Piglin-death-always-counting-as.patch +++ b/patches/server/0146-Toggle-for-Zombified-Piglin-death-always-counting-as.patch @@ -35,10 +35,10 @@ index 9f50054211db48e7fe764434e8d71aab0995e57a..82279ab2f3c1edec14c24c3a7ad24d09 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index bf82602521eacbe2ae18b548e2f2013f9179c23b..4ff49f042f1573162b1db59d1e3aeba72b0ef448 100644 +index d6f4638717376c321496d747d12fe970032b2373..fa29113e3b7a337191495a7b1b02de50bd7f9567 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1256,12 +1256,14 @@ public class PurpurWorldConfig { +@@ -1258,12 +1258,14 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinJockeyOnlyBaby = true; public double zombifiedPiglinJockeyChance = 0.05D; public boolean zombifiedPiglinJockeyTryExistingChickens = true; diff --git a/patches/server/0148-Configurable-chance-for-wolves-to-spawn-rabid.patch b/patches/server/0148-Configurable-chance-for-wolves-to-spawn-rabid.patch index 1c440e4dfc..acdc23f4cd 100644 --- a/patches/server/0148-Configurable-chance-for-wolves-to-spawn-rabid.patch +++ b/patches/server/0148-Configurable-chance-for-wolves-to-spawn-rabid.patch @@ -7,7 +7,7 @@ Configurable chance to spawn a wolf that is rabid. Rabid wolves attack all players, mobs, and animals. diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index 2d3ec6505b91a2cb43a1e2285a7d4e57a54e243c..f0a485056f3ad94e7375fbdfd512026b969a0eed 100644 +index 84cb148faacb0587e771410680a0b053822cebf8..4099ff50644aa68cddf16203c84ca0bbfd1c20ed 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -2213,6 +2213,7 @@ public abstract class EntityLiving extends Entity { @@ -242,10 +242,10 @@ index dd3c7ad7701ad18ccaf86d73fde7051090ed3d57..e8c6aca70db693250224d1c162e3c268 return super.b(entityhuman, enumhand); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 4ff49f042f1573162b1db59d1e3aeba72b0ef448..5b549ab625890cd49e6820e31a15e80680b78237 100644 +index fa29113e3b7a337191495a7b1b02de50bd7f9567..e925e208c3bd4e24f510bbc11f98a4369a43d2c2 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1207,10 +1207,14 @@ public class PurpurWorldConfig { +@@ -1209,10 +1209,14 @@ public class PurpurWorldConfig { public boolean wolfRidable = false; public boolean wolfRidableInWater = false; diff --git a/patches/server/0149-Configurable-default-wolf-collar-color.patch b/patches/server/0149-Configurable-default-wolf-collar-color.patch index 298a43f99f..f221a19944 100644 --- a/patches/server/0149-Configurable-default-wolf-collar-color.patch +++ b/patches/server/0149-Configurable-default-wolf-collar-color.patch @@ -24,7 +24,7 @@ index e8c6aca70db693250224d1c162e3c2684687ea41..e33aadead6e6c5e0a7b39ef95e7aeb0f @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 5b549ab625890cd49e6820e31a15e80680b78237..7ddb0119baa33a6641599fce7c7112d05dd7fb5d 100644 +index e925e208c3bd4e24f510bbc11f98a4369a43d2c2..4cf5c279ed04c94db513e08f091838378b103412 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -3,6 +3,7 @@ package net.pl3x.purpur; @@ -35,7 +35,7 @@ index 5b549ab625890cd49e6820e31a15e80680b78237..7ddb0119baa33a6641599fce7c7112d0 import net.minecraft.world.level.Explosion; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; -@@ -1207,12 +1208,18 @@ public class PurpurWorldConfig { +@@ -1209,12 +1210,18 @@ public class PurpurWorldConfig { public boolean wolfRidable = false; public boolean wolfRidableInWater = false; diff --git a/patches/server/0150-Configurable-entity-base-attributes.patch b/patches/server/0150-Configurable-entity-base-attributes.patch index dcd7377a4f..89414b3a97 100644 --- a/patches/server/0150-Configurable-entity-base-attributes.patch +++ b/patches/server/0150-Configurable-entity-base-attributes.patch @@ -1407,10 +1407,10 @@ index 90cbef7fe8803295f82bddd6709fdf303aedcaba..b84916c0c58fd208ef5547299f8db846 @Nullable diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 7ddb0119baa33a6641599fce7c7112d05dd7fb5d..464d6e35970b42319934d74a1f41076cf4f8b784 100644 +index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa507ad497ec 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -530,30 +530,58 @@ public class PurpurWorldConfig { +@@ -532,30 +532,58 @@ public class PurpurWorldConfig { public boolean batRidable = false; public boolean batRidableInWater = false; public double batMaxY = 256D; @@ -1469,7 +1469,7 @@ index 7ddb0119baa33a6641599fce7c7112d05dd7fb5d..464d6e35970b42319934d74a1f41076c } public boolean catRidable = false; -@@ -562,6 +590,7 @@ public class PurpurWorldConfig { +@@ -564,6 +592,7 @@ public class PurpurWorldConfig { public int catSpawnSwampHutScanRange = 16; public int catSpawnVillageScanRange = 48; public int catBreedingTicks = 6000; @@ -1477,7 +1477,7 @@ index 7ddb0119baa33a6641599fce7c7112d05dd7fb5d..464d6e35970b42319934d74a1f41076c private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -569,51 +598,92 @@ public class PurpurWorldConfig { +@@ -571,51 +600,92 @@ public class PurpurWorldConfig { catSpawnSwampHutScanRange = getInt("mobs.cat.scan-range-for-other-cats.swamp-hut", catSpawnSwampHutScanRange); catSpawnVillageScanRange = getInt("mobs.cat.scan-range-for-other-cats.village", catSpawnVillageScanRange); catBreedingTicks = getInt("mobs.cat.breeding-delay-ticks", catBreedingTicks); @@ -1570,7 +1570,7 @@ index 7ddb0119baa33a6641599fce7c7112d05dd7fb5d..464d6e35970b42319934d74a1f41076c } public boolean dolphinRidable = false; -@@ -621,19 +691,45 @@ public class PurpurWorldConfig { +@@ -623,19 +693,45 @@ public class PurpurWorldConfig { public float dolphinSpitSpeed = 1.0F; public float dolphinSpitDamage = 2.0F; public boolean dolphinDisableTreasureSearching = false; @@ -1616,7 +1616,7 @@ index 7ddb0119baa33a6641599fce7c7112d05dd7fb5d..464d6e35970b42319934d74a1f41076c } public boolean drownedRidable = false; -@@ -641,73 +737,135 @@ public class PurpurWorldConfig { +@@ -643,73 +739,135 @@ public class PurpurWorldConfig { public boolean drownedJockeyOnlyBaby = true; public double drownedJockeyChance = 0.05D; public boolean drownedJockeyTryExistingChickens = true; @@ -1752,7 +1752,7 @@ index 7ddb0119baa33a6641599fce7c7112d05dd7fb5d..464d6e35970b42319934d74a1f41076c } public boolean giantRidable = false; -@@ -730,31 +888,68 @@ public class PurpurWorldConfig { +@@ -732,31 +890,68 @@ public class PurpurWorldConfig { giantHaveHostileAI = getBoolean("mobs.giant.have-hostile-ai", giantHaveHostileAI); if (PurpurConfig.version < 8) { double oldValue = getDouble("mobs.giant.max-health", giantMaxHealth); @@ -1823,7 +1823,7 @@ index 7ddb0119baa33a6641599fce7c7112d05dd7fb5d..464d6e35970b42319934d74a1f41076c } public boolean huskRidable = false; -@@ -762,12 +957,21 @@ public class PurpurWorldConfig { +@@ -764,12 +959,21 @@ public class PurpurWorldConfig { public boolean huskJockeyOnlyBaby = true; public double huskJockeyChance = 0.05D; public boolean huskJockeyTryExistingChickens = true; @@ -1845,7 +1845,7 @@ index 7ddb0119baa33a6641599fce7c7112d05dd7fb5d..464d6e35970b42319934d74a1f41076c } public boolean illusionerRidable = false; -@@ -782,85 +986,188 @@ public class PurpurWorldConfig { +@@ -784,85 +988,188 @@ public class PurpurWorldConfig { illusionerFollowRange = getDouble("mobs.illusioner.follow-range", illusionerFollowRange); if (PurpurConfig.version < 8) { double oldValue = getDouble("mobs.illusioner.max-health", illusionerMaxHealth); @@ -2036,7 +2036,7 @@ index 7ddb0119baa33a6641599fce7c7112d05dd7fb5d..464d6e35970b42319934d74a1f41076c } public boolean phantomRidable = false; -@@ -887,6 +1194,7 @@ public class PurpurWorldConfig { +@@ -889,6 +1196,7 @@ public class PurpurWorldConfig { public boolean phantomIgnorePlayersWithTorch = false; public boolean phantomBurnInDaylight = true; public boolean phantomAllowGriefing = false; @@ -2044,7 +2044,7 @@ index 7ddb0119baa33a6641599fce7c7112d05dd7fb5d..464d6e35970b42319934d74a1f41076c private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -912,38 +1220,72 @@ public class PurpurWorldConfig { +@@ -914,38 +1222,72 @@ public class PurpurWorldConfig { phantomBurnInDaylight = getBoolean("mobs.phantom.burn-in-daylight", phantomBurnInDaylight); phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch); phantomAllowGriefing = getBoolean("mobs.phantom.allow-griefing", phantomAllowGriefing); @@ -2117,7 +2117,7 @@ index 7ddb0119baa33a6641599fce7c7112d05dd7fb5d..464d6e35970b42319934d74a1f41076c } public boolean polarBearRidable = false; -@@ -951,6 +1293,7 @@ public class PurpurWorldConfig { +@@ -953,6 +1295,7 @@ public class PurpurWorldConfig { public String polarBearBreedableItemString = ""; public Item polarBearBreedableItem = null; public int polarBearBreedingTicks = 6000; @@ -2125,7 +2125,7 @@ index 7ddb0119baa33a6641599fce7c7112d05dd7fb5d..464d6e35970b42319934d74a1f41076c private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -958,11 +1301,24 @@ public class PurpurWorldConfig { +@@ -960,11 +1303,24 @@ public class PurpurWorldConfig { Item item = IRegistry.ITEM.get(new MinecraftKey(polarBearBreedableItemString)); if (item != Items.AIR) polarBearBreedableItem = item; polarBearBreedingTicks = getInt("mobs.polar_bear.breeding-delay-ticks", polarBearBreedingTicks); @@ -2150,7 +2150,7 @@ index 7ddb0119baa33a6641599fce7c7112d05dd7fb5d..464d6e35970b42319934d74a1f41076c } public boolean rabbitRidable = false; -@@ -970,68 +1326,144 @@ public class PurpurWorldConfig { +@@ -972,68 +1328,144 @@ public class PurpurWorldConfig { public double rabbitNaturalToast = 0.0D; public double rabbitNaturalKiller = 0.0D; public int rabbitBreedingTicks = 6000; @@ -2295,7 +2295,7 @@ index 7ddb0119baa33a6641599fce7c7112d05dd7fb5d..464d6e35970b42319934d74a1f41076c } public boolean snowGolemRidable = false; -@@ -1043,6 +1475,7 @@ public class PurpurWorldConfig { +@@ -1045,6 +1477,7 @@ public class PurpurWorldConfig { public int snowGolemSnowBallMax = 20; public float snowGolemSnowBallModifier = 10.0F; public double snowGolemAttackDistance = 1.25D; @@ -2303,7 +2303,7 @@ index 7ddb0119baa33a6641599fce7c7112d05dd7fb5d..464d6e35970b42319934d74a1f41076c private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1053,63 +1486,118 @@ public class PurpurWorldConfig { +@@ -1055,63 +1488,118 @@ public class PurpurWorldConfig { snowGolemSnowBallMax = getInt("mobs.snow_golem.max-shoot-interval-ticks", snowGolemSnowBallMax); snowGolemSnowBallModifier = (float) getDouble("mobs.snow_golem.snow-ball-modifier", snowGolemSnowBallModifier); snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance); @@ -2422,7 +2422,7 @@ index 7ddb0119baa33a6641599fce7c7112d05dd7fb5d..464d6e35970b42319934d74a1f41076c } public boolean villagerRidable = false; -@@ -1127,6 +1615,7 @@ public class PurpurWorldConfig { +@@ -1129,6 +1617,7 @@ public class PurpurWorldConfig { public int villagerLobotomizeCheck = 60; public boolean villagerClericsFarmWarts = false; public boolean villagerClericFarmersThrowWarts = true; @@ -2430,7 +2430,7 @@ index 7ddb0119baa33a6641599fce7c7112d05dd7fb5d..464d6e35970b42319934d74a1f41076c private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1148,33 +1637,60 @@ public class PurpurWorldConfig { +@@ -1150,33 +1639,60 @@ public class PurpurWorldConfig { villagerLobotomizeCheck = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheck); villagerClericsFarmWarts = getBoolean("mobs.villager.clerics-farm-warts", villagerClericsFarmWarts); villagerClericFarmersThrowWarts = getBoolean("mobs.villager.cleric-wart-farmers-throw-warts-at-villagers", villagerClericFarmersThrowWarts); @@ -2491,7 +2491,7 @@ index 7ddb0119baa33a6641599fce7c7112d05dd7fb5d..464d6e35970b42319934d74a1f41076c } public boolean witherRidable = false; -@@ -1191,19 +1707,30 @@ public class PurpurWorldConfig { +@@ -1193,19 +1709,30 @@ public class PurpurWorldConfig { witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay); if (PurpurConfig.version < 8) { double oldValue = getDouble("mobs.wither.max-health", witherMaxHealth); @@ -2524,7 +2524,7 @@ index 7ddb0119baa33a6641599fce7c7112d05dd7fb5d..464d6e35970b42319934d74a1f41076c } public boolean wolfRidable = false; -@@ -1212,6 +1739,7 @@ public class PurpurWorldConfig { +@@ -1214,6 +1741,7 @@ public class PurpurWorldConfig { public boolean wolfMilkCuresRabies = true; public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; @@ -2532,7 +2532,7 @@ index 7ddb0119baa33a6641599fce7c7112d05dd7fb5d..464d6e35970b42319934d74a1f41076c private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -1223,13 +1751,26 @@ public class PurpurWorldConfig { +@@ -1225,13 +1753,26 @@ public class PurpurWorldConfig { wolfMilkCuresRabies = getBoolean("mobs.wolf.milk-cures-rabid-wolves", wolfMilkCuresRabies); wolfNaturalRabid = getDouble("mobs.wolf.spawn-rabid-chance", wolfNaturalRabid); wolfBreedingTicks = getInt("mobs.wolf.breeding-delay-ticks", wolfBreedingTicks); @@ -2559,7 +2559,7 @@ index 7ddb0119baa33a6641599fce7c7112d05dd7fb5d..464d6e35970b42319934d74a1f41076c } public boolean zombieRidable = false; -@@ -1239,6 +1780,8 @@ public class PurpurWorldConfig { +@@ -1241,6 +1782,8 @@ public class PurpurWorldConfig { public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; public EnumDifficulty zombieBreakDoorMinDifficulty = EnumDifficulty.HARD; @@ -2568,7 +2568,7 @@ index 7ddb0119baa33a6641599fce7c7112d05dd7fb5d..464d6e35970b42319934d74a1f41076c private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1251,15 +1794,40 @@ public class PurpurWorldConfig { +@@ -1253,15 +1796,40 @@ public class PurpurWorldConfig { } catch (IllegalArgumentException ignore) { zombieBreakDoorMinDifficulty = EnumDifficulty.HARD; } @@ -2609,7 +2609,7 @@ index 7ddb0119baa33a6641599fce7c7112d05dd7fb5d..464d6e35970b42319934d74a1f41076c } public boolean zombifiedPiglinRidable = false; -@@ -1268,6 +1836,8 @@ public class PurpurWorldConfig { +@@ -1270,6 +1838,8 @@ public class PurpurWorldConfig { public double zombifiedPiglinJockeyChance = 0.05D; public boolean zombifiedPiglinJockeyTryExistingChickens = true; public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true; @@ -2618,7 +2618,7 @@ index 7ddb0119baa33a6641599fce7c7112d05dd7fb5d..464d6e35970b42319934d74a1f41076c private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -1275,6 +1845,13 @@ public class PurpurWorldConfig { +@@ -1277,6 +1847,13 @@ public class PurpurWorldConfig { zombifiedPiglinJockeyChance = getDouble("mobs.zombified_piglin.jockey.chance", zombifiedPiglinJockeyChance); zombifiedPiglinJockeyTryExistingChickens = getBoolean("mobs.zombified_piglin.jockey.try-existing-chickens", zombifiedPiglinJockeyTryExistingChickens); zombifiedPiglinCountAsPlayerKillWhenAngry = getBoolean("mobs.zombified_piglin.count-as-player-kill-when-angry", zombifiedPiglinCountAsPlayerKillWhenAngry); @@ -2632,7 +2632,7 @@ index 7ddb0119baa33a6641599fce7c7112d05dd7fb5d..464d6e35970b42319934d74a1f41076c } public boolean zombieVillagerRidable = false; -@@ -1282,11 +1859,20 @@ public class PurpurWorldConfig { +@@ -1284,11 +1861,20 @@ public class PurpurWorldConfig { public boolean zombieVillagerJockeyOnlyBaby = true; public double zombieVillagerJockeyChance = 0.05D; public boolean zombieVillagerJockeyTryExistingChickens = true; diff --git a/patches/server/0151-Phantom-flames-on-swoop.patch b/patches/server/0151-Phantom-flames-on-swoop.patch index 3e2e1cd1fb..ee39921ce6 100644 --- a/patches/server/0151-Phantom-flames-on-swoop.patch +++ b/patches/server/0151-Phantom-flames-on-swoop.patch @@ -17,10 +17,10 @@ index 902b26d609aef8dd46e8875cb7c06f187511e8d5..4f3d4f2596c69881f0653bddcc3bf2b9 @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 464d6e35970b42319934d74a1f41076cf4f8b784..8484e197272327722b6f20c23f92af44525311df 100644 +index 06a65bb15e926865ac43ff257dbbaa507ad497ec..6b4388b80be8f2a3ca54b667d9fd694f15abb00e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1194,6 +1194,7 @@ public class PurpurWorldConfig { +@@ -1196,6 +1196,7 @@ public class PurpurWorldConfig { public boolean phantomIgnorePlayersWithTorch = false; public boolean phantomBurnInDaylight = true; public boolean phantomAllowGriefing = false; @@ -28,7 +28,7 @@ index 464d6e35970b42319934d74a1f41076cf4f8b784..8484e197272327722b6f20c23f92af44 public double phantomMaxHealth = 20.0D; private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); -@@ -1220,6 +1221,7 @@ public class PurpurWorldConfig { +@@ -1222,6 +1223,7 @@ public class PurpurWorldConfig { phantomBurnInDaylight = getBoolean("mobs.phantom.burn-in-daylight", phantomBurnInDaylight); phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch); phantomAllowGriefing = getBoolean("mobs.phantom.allow-griefing", phantomAllowGriefing); diff --git a/patches/server/0152-Option-for-chests-to-open-even-with-a-solid-block-on.patch b/patches/server/0152-Option-for-chests-to-open-even-with-a-solid-block-on.patch index a8432a8053..3cc73edf53 100644 --- a/patches/server/0152-Option-for-chests-to-open-even-with-a-solid-block-on.patch +++ b/patches/server/0152-Option-for-chests-to-open-even-with-a-solid-block-on.patch @@ -17,10 +17,10 @@ index a45ee959f41e7f349ff2c309f21fa44ec671cb87..cddf8e3d34385eb264cd28ba6b4392d6 return iblockaccess.getType(blockposition1).isOccluding(iblockaccess, blockposition1); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 8484e197272327722b6f20c23f92af44525311df..62cdf46803a178de52150d3180d2db7bc1e5e84f 100644 +index 6b4388b80be8f2a3ca54b667d9fd694f15abb00e..b021462c7dd5fe9d12f4fcf196bf7eb17bdffb19 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -427,6 +427,11 @@ public class PurpurWorldConfig { +@@ -429,6 +429,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0154-Striders-give-saddle-back.patch b/patches/server/0154-Striders-give-saddle-back.patch index fedf483d67..60f0dfafc1 100644 --- a/patches/server/0154-Striders-give-saddle-back.patch +++ b/patches/server/0154-Striders-give-saddle-back.patch @@ -28,10 +28,10 @@ index 892aa844a98ae0d192737c6fc6df0a219256a47b..5e4cc99a746d98231bbb71672fbc0243 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 62cdf46803a178de52150d3180d2db7bc1e5e84f..c9faf726d5f64142946438966b887655e75759af 100644 +index b021462c7dd5fe9d12f4fcf196bf7eb17bdffb19..1b4275c3a810da7b464b07e3fe33637258c683b7 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1550,11 +1550,13 @@ public class PurpurWorldConfig { +@@ -1552,11 +1552,13 @@ public class PurpurWorldConfig { public boolean striderRidable = false; public boolean striderRidableInWater = false; public int striderBreedingTicks = 6000; diff --git a/patches/server/0156-Full-netherite-armor-grants-fire-resistance.patch b/patches/server/0156-Full-netherite-armor-grants-fire-resistance.patch index 2b19153394..72be8b55e6 100644 --- a/patches/server/0156-Full-netherite-armor-grants-fire-resistance.patch +++ b/patches/server/0156-Full-netherite-armor-grants-fire-resistance.patch @@ -26,10 +26,10 @@ index af10d5aea7909ee9f38982264233f0a45c153003..5a2678cf3a8441344629b6a0bf4b6be5 protected ItemCooldown i() { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index c9faf726d5f64142946438966b887655e75759af..2d9d963773b1df9a5d7520a5c295d40ebf56761f 100644 +index 1b4275c3a810da7b464b07e3fe33637258c683b7..59a19ab449287226938852a06b88d20c2062a43c 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -344,6 +344,19 @@ public class PurpurWorldConfig { +@@ -346,6 +346,19 @@ public class PurpurWorldConfig { playerDeathExpDropMax = getInt("gameplay-mechanics.player.exp-dropped-on-death.maximum", playerDeathExpDropMax); } diff --git a/patches/server/0159-Add-mobGriefing-bypass-to-everything-affected.patch b/patches/server/0159-Add-mobGriefing-bypass-to-everything-affected.patch index 63a6c0fef2..a6fad1c2a4 100644 --- a/patches/server/0159-Add-mobGriefing-bypass-to-everything-affected.patch +++ b/patches/server/0159-Add-mobGriefing-bypass-to-everything-affected.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add mobGriefing bypass to everything affected This adds the "bypass-mob-griefing" world config option to everything that is affected by the gamerule. diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index f0a485056f3ad94e7375fbdfd512026b969a0eed..e866531958c9d0171d39ba7f6963fe92eb2d42cc 100644 +index 4099ff50644aa68cddf16203c84ca0bbfd1c20ed..56ea148ddff1674e46c258f2658d0f4b5313e63a 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -1571,7 +1571,7 @@ public abstract class EntityLiving extends Entity { @@ -338,7 +338,7 @@ index 04504901b1933ed760b34b8abb994de8ec340a4e..e18be05c9a9230105ec54395d4391c86 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 2d9d963773b1df9a5d7520a5c295d40ebf56761f..751558a0a3fcb0433d7b580e5618755bdb277292 100644 +index 59a19ab449287226938852a06b88d20c2062a43c..bad517f152bf660d75e9c9ceaea31d0d8b13b279 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -286,6 +286,7 @@ public class PurpurWorldConfig { @@ -349,7 +349,7 @@ index 2d9d963773b1df9a5d7520a5c295d40ebf56761f..751558a0a3fcb0433d7b580e5618755b public boolean milkCuresBadOmen = true; public boolean persistentTileEntityDisplayNames = false; public boolean persistentDroppableEntityDisplayNames = false; -@@ -300,6 +301,7 @@ public class PurpurWorldConfig { +@@ -301,6 +302,7 @@ public class PurpurWorldConfig { disableDropsOnCrammingDeath = getBoolean("gameplay-mechanics.disable-drops-on-cramming-death", disableDropsOnCrammingDeath); entitiesPickUpLootBypassMobGriefing = getBoolean("gameplay-mechanics.entities-pick-up-loot-bypass-mob-griefing", entitiesPickUpLootBypassMobGriefing); entitiesCanUsePortals = getBoolean("gameplay-mechanics.entities-can-use-portals", entitiesCanUsePortals); @@ -357,7 +357,7 @@ index 2d9d963773b1df9a5d7520a5c295d40ebf56761f..751558a0a3fcb0433d7b580e5618755b milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); persistentTileEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-tileentity-display-names-and-lore", persistentTileEntityDisplayNames); persistentDroppableEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-droppable-entity-display-names", persistentDroppableEntityDisplayNames); -@@ -452,9 +454,11 @@ public class PurpurWorldConfig { +@@ -454,9 +456,11 @@ public class PurpurWorldConfig { dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils); } @@ -369,7 +369,7 @@ index 2d9d963773b1df9a5d7520a5c295d40ebf56761f..751558a0a3fcb0433d7b580e5618755b farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); farmlandAlpha = getBoolean("blocks.farmland.use-alpha-farmland", farmlandAlpha); } -@@ -513,10 +517,12 @@ public class PurpurWorldConfig { +@@ -515,10 +519,12 @@ public class PurpurWorldConfig { stonecutterDamage = (float) getDouble("blocks.stonecutter.damage", stonecutterDamage); } @@ -382,7 +382,7 @@ index 2d9d963773b1df9a5d7520a5c295d40ebf56761f..751558a0a3fcb0433d7b580e5618755b 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); -@@ -788,12 +794,14 @@ public class PurpurWorldConfig { +@@ -790,12 +796,14 @@ public class PurpurWorldConfig { public boolean enderDragonRidableInWater = false; public double enderDragonMaxY = 256D; public boolean enderDragonAlwaysDropsFullExp = false; @@ -397,7 +397,7 @@ index 2d9d963773b1df9a5d7520a5c295d40ebf56761f..751558a0a3fcb0433d7b580e5618755b if (PurpurConfig.version < 8) { double oldValue = getDouble("mobs.ender_dragon.max-health", enderDragonMaxHealth); set("mobs.ender_dragon.max-health", null); -@@ -809,12 +817,14 @@ public class PurpurWorldConfig { +@@ -811,12 +819,14 @@ public class PurpurWorldConfig { public boolean endermanRidable = false; public boolean endermanRidableInWater = false; public boolean endermanAllowGriefing = true; @@ -412,7 +412,7 @@ index 2d9d963773b1df9a5d7520a5c295d40ebf56761f..751558a0a3fcb0433d7b580e5618755b endermanDespawnEvenWithBlock = getBoolean("mobs.enderman.can-despawn-with-held-block", endermanDespawnEvenWithBlock); if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.enderman.attributes.max-health", endermanMaxHealth); -@@ -840,10 +850,12 @@ public class PurpurWorldConfig { +@@ -842,10 +852,12 @@ public class PurpurWorldConfig { public boolean evokerRidable = false; public boolean evokerRidableInWater = false; @@ -425,7 +425,7 @@ index 2d9d963773b1df9a5d7520a5c295d40ebf56761f..751558a0a3fcb0433d7b580e5618755b if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.evoker.attributes.max-health", evokerMaxHealth); set("mobs.evoker.attributes.max-health", null); -@@ -854,12 +866,14 @@ public class PurpurWorldConfig { +@@ -856,12 +868,14 @@ public class PurpurWorldConfig { public boolean foxRidable = false; public boolean foxRidableInWater = false; @@ -440,7 +440,7 @@ index 2d9d963773b1df9a5d7520a5c295d40ebf56761f..751558a0a3fcb0433d7b580e5618755b foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips); foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks); if (PurpurConfig.version < 10) { -@@ -1296,10 +1310,12 @@ public class PurpurWorldConfig { +@@ -1298,10 +1312,12 @@ public class PurpurWorldConfig { public boolean pillagerRidable = false; public boolean pillagerRidableInWater = false; @@ -453,7 +453,7 @@ index 2d9d963773b1df9a5d7520a5c295d40ebf56761f..751558a0a3fcb0433d7b580e5618755b if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.pillager.attributes.max-health", pillagerMaxHealth); set("mobs.pillager.attributes.max-health", null); -@@ -1343,6 +1359,7 @@ public class PurpurWorldConfig { +@@ -1345,6 +1361,7 @@ public class PurpurWorldConfig { public boolean rabbitRidable = false; public boolean rabbitRidableInWater = false; @@ -461,7 +461,7 @@ index 2d9d963773b1df9a5d7520a5c295d40ebf56761f..751558a0a3fcb0433d7b580e5618755b public double rabbitNaturalToast = 0.0D; public double rabbitNaturalKiller = 0.0D; public int rabbitBreedingTicks = 6000; -@@ -1350,6 +1367,7 @@ public class PurpurWorldConfig { +@@ -1352,6 +1369,7 @@ public class PurpurWorldConfig { private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); @@ -469,7 +469,7 @@ index 2d9d963773b1df9a5d7520a5c295d40ebf56761f..751558a0a3fcb0433d7b580e5618755b 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); -@@ -1363,10 +1381,12 @@ public class PurpurWorldConfig { +@@ -1365,10 +1383,12 @@ public class PurpurWorldConfig { public boolean ravagerRidable = false; public boolean ravagerRidableInWater = false; @@ -482,7 +482,7 @@ index 2d9d963773b1df9a5d7520a5c295d40ebf56761f..751558a0a3fcb0433d7b580e5618755b if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.ravager.attributes.max-health", ravagerMaxHealth); set("mobs.ravager.attributes.max-health", null); -@@ -1390,11 +1410,13 @@ public class PurpurWorldConfig { +@@ -1392,11 +1412,13 @@ public class PurpurWorldConfig { public boolean sheepRidable = false; public boolean sheepRidableInWater = false; public int sheepBreedingTicks = 6000; @@ -496,7 +496,7 @@ index 2d9d963773b1df9a5d7520a5c295d40ebf56761f..751558a0a3fcb0433d7b580e5618755b if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.sheep.attributes.max-health", sheepMaxHealth); set("mobs.sheep.attributes.max-health", null); -@@ -1419,10 +1441,12 @@ public class PurpurWorldConfig { +@@ -1421,10 +1443,12 @@ public class PurpurWorldConfig { public boolean silverfishRidable = false; public boolean silverfishRidableInWater = false; @@ -509,7 +509,7 @@ index 2d9d963773b1df9a5d7520a5c295d40ebf56761f..751558a0a3fcb0433d7b580e5618755b if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.silverfish.attributes.max-health", silverfishMaxHealth); set("mobs.silverfish.attributes.max-health", null); -@@ -1489,6 +1513,7 @@ public class PurpurWorldConfig { +@@ -1491,6 +1515,7 @@ public class PurpurWorldConfig { public boolean snowGolemRidable = false; public boolean snowGolemRidableInWater = false; public boolean snowGolemLeaveTrailWhenRidden = false; @@ -517,7 +517,7 @@ index 2d9d963773b1df9a5d7520a5c295d40ebf56761f..751558a0a3fcb0433d7b580e5618755b public boolean snowGolemDropsPumpkin = true; public boolean snowGolemPutPumpkinBack = false; public int snowGolemSnowBallMin = 20; -@@ -1500,6 +1525,7 @@ public class PurpurWorldConfig { +@@ -1502,6 +1527,7 @@ public class PurpurWorldConfig { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); snowGolemLeaveTrailWhenRidden = getBoolean("mobs.snow_golem.leave-trail-when-ridden", snowGolemLeaveTrailWhenRidden); @@ -525,7 +525,7 @@ index 2d9d963773b1df9a5d7520a5c295d40ebf56761f..751558a0a3fcb0433d7b580e5618755b snowGolemDropsPumpkin = getBoolean("mobs.snow_golem.drop-pumpkin-when-sheared", snowGolemDropsPumpkin); snowGolemPutPumpkinBack = getBoolean("mobs.snow_golem.pumpkin-can-be-added-back", snowGolemPutPumpkinBack); snowGolemSnowBallMin = getInt("mobs.snow_golem.min-shoot-interval-ticks", snowGolemSnowBallMin); -@@ -1718,6 +1744,7 @@ public class PurpurWorldConfig { +@@ -1720,6 +1746,7 @@ public class PurpurWorldConfig { public boolean witherRidable = false; public boolean witherRidableInWater = false; public double witherMaxY = 256D; @@ -533,7 +533,7 @@ index 2d9d963773b1df9a5d7520a5c295d40ebf56761f..751558a0a3fcb0433d7b580e5618755b public float witherHealthRegenAmount = 1.0f; public int witherHealthRegenDelay = 20; public double witherMaxHealth = 300.0D; -@@ -1725,6 +1752,7 @@ public class PurpurWorldConfig { +@@ -1727,6 +1754,7 @@ public class PurpurWorldConfig { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); witherMaxY = getDouble("mobs.wither.ridable-max-y", witherMaxY); @@ -541,7 +541,7 @@ index 2d9d963773b1df9a5d7520a5c295d40ebf56761f..751558a0a3fcb0433d7b580e5618755b witherHealthRegenAmount = (float) getDouble("mobs.wither.health-regen-amount", witherHealthRegenAmount); witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay); if (PurpurConfig.version < 8) { -@@ -1797,6 +1825,7 @@ public class PurpurWorldConfig { +@@ -1799,6 +1827,7 @@ public class PurpurWorldConfig { public boolean zombieRidable = false; public boolean zombieRidableInWater = false; @@ -549,7 +549,7 @@ index 2d9d963773b1df9a5d7520a5c295d40ebf56761f..751558a0a3fcb0433d7b580e5618755b public boolean zombieJockeyOnlyBaby = true; public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; -@@ -1807,6 +1836,7 @@ public class PurpurWorldConfig { +@@ -1809,6 +1838,7 @@ public class PurpurWorldConfig { private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); diff --git a/patches/server/0160-Config-to-allow-Note-Block-sounds-when-blocked.patch b/patches/server/0160-Config-to-allow-Note-Block-sounds-when-blocked.patch index 6bd91842c2..14c729572e 100644 --- a/patches/server/0160-Config-to-allow-Note-Block-sounds-when-blocked.patch +++ b/patches/server/0160-Config-to-allow-Note-Block-sounds-when-blocked.patch @@ -22,7 +22,7 @@ index 148718f8f96d94e76a4a7a96d5955b624c2dc661..075987567cd4412c8f0fb4e31b786394 org.bukkit.event.block.NotePlayEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callNotePlayEvent(world, blockposition, data.get(BlockNote.INSTRUMENT), data.get(BlockNote.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 751558a0a3fcb0433d7b580e5618755bdb277292..681e4d41aed335b62fb9aaa030f7fc119cfbfa88 100644 +index bad517f152bf660d75e9c9ceaea31d0d8b13b279..42699837ebade38add65b702d4daaf6a88900c4e 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 { @@ -33,7 +33,7 @@ index 751558a0a3fcb0433d7b580e5618755bdb277292..681e4d41aed335b62fb9aaa030f7fc11 public boolean persistentTileEntityDisplayNames = false; public boolean persistentDroppableEntityDisplayNames = false; public double tridentLoyaltyVoidReturnHeight = 0.0D; -@@ -303,6 +304,7 @@ public class PurpurWorldConfig { +@@ -304,6 +305,7 @@ public class PurpurWorldConfig { entitiesCanUsePortals = getBoolean("gameplay-mechanics.entities-can-use-portals", entitiesCanUsePortals); fireballsBypassMobGriefing = getBoolean("gameplay-mechanics.fireballs-bypass-mob-griefing", fireballsBypassMobGriefing); milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); diff --git a/patches/server/0161-Add-EntityTeleportHinderedEvent.patch b/patches/server/0161-Add-EntityTeleportHinderedEvent.patch index a31f33df93..deb17c153b 100644 --- a/patches/server/0161-Add-EntityTeleportHinderedEvent.patch +++ b/patches/server/0161-Add-EntityTeleportHinderedEvent.patch @@ -94,10 +94,10 @@ index 23a3b1b317b6b3e9d812f5a7b09b099b0528c59e..4f40c6c3397596c81147fae4a6a51bfd public void a(IBlockData iblockdata, World world, BlockPosition blockposition, Entity entity) {} diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 681e4d41aed335b62fb9aaa030f7fc119cfbfa88..82963c98c127ae3e5d5dddb321771f08aee9b9a7 100644 +index 42699837ebade38add65b702d4daaf6a88900c4e..ed615dc6c009bb149bd2f2271ea205453dcde6e3 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1929,4 +1929,9 @@ public class PurpurWorldConfig { +@@ -1931,4 +1931,9 @@ public class PurpurWorldConfig { zombieVillagerMaxHealth = getDouble("mobs.zombie_villager.attributes.max_health", zombieVillagerMaxHealth); zombieVillagerSpawnReinforcements = getDouble("mobs.zombie_villager.attributes.spawn_reinforcements", zombieVillagerSpawnReinforcements); } diff --git a/patches/server/0163-Farmland-trampling-changes.patch b/patches/server/0163-Farmland-trampling-changes.patch index d74cefa312..1fe60ab5b9 100644 --- a/patches/server/0163-Farmland-trampling-changes.patch +++ b/patches/server/0163-Farmland-trampling-changes.patch @@ -54,10 +54,10 @@ index d3fd0b418b9088b621e44f5da452db74b433efe8..e7e5ee52cb7ac7e406c837db686d0a96 if (CraftEventFactory.callEntityChangeBlockEvent(entity, blockposition, Blocks.DIRT.getBlockData()).isCancelled()) { return; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 82963c98c127ae3e5d5dddb321771f08aee9b9a7..9fe79ccb92bfc0fca6660d159c4bc209d8302fd5 100644 +index ed615dc6c009bb149bd2f2271ea205453dcde6e3..e0eb88dcbde7c270b050f067dc324cbb42986ad5 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -459,10 +459,16 @@ public class PurpurWorldConfig { +@@ -461,10 +461,16 @@ public class PurpurWorldConfig { public boolean farmlandBypassMobGriefing = false; public boolean farmlandGetsMoistFromBelow = false; public boolean farmlandAlpha = false; diff --git a/patches/server/0164-Movement-options-for-armor-stands.patch b/patches/server/0164-Movement-options-for-armor-stands.patch index 296679f31e..8e2ba2674d 100644 --- a/patches/server/0164-Movement-options-for-armor-stands.patch +++ b/patches/server/0164-Movement-options-for-armor-stands.patch @@ -74,7 +74,7 @@ index 43dc0925887e2e9e86445cccff57be7994ca0d58..ecb797e67554d30e35b3aca4d0fc9b0e + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 9fe79ccb92bfc0fca6660d159c4bc209d8302fd5..edb7f82c0ebadd05095917f303be9c6f72a4a893 100644 +index e0eb88dcbde7c270b050f067dc324cbb42986ad5..37be98ab5fd1bf2db727137e35f9744074576f9b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -111,10 +111,16 @@ public class PurpurWorldConfig { diff --git a/patches/server/0165-Fix-stuck-in-portals.patch b/patches/server/0165-Fix-stuck-in-portals.patch index 419f6e2924..36d7c0dbc0 100644 --- a/patches/server/0165-Fix-stuck-in-portals.patch +++ b/patches/server/0165-Fix-stuck-in-portals.patch @@ -37,10 +37,10 @@ index 2545b0891a299301a8d9e194e795b0f3856f2178..fdd374232ced8f4da675afaee3f5278c this.inPortal = true; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index edb7f82c0ebadd05095917f303be9c6f72a4a893..3dd8868ab3f1675ff5e7547285f9a89b9d56cd63 100644 +index 37be98ab5fd1bf2db727137e35f9744074576f9b..1baff8389841b21dbfa00adf6d6213dffb94f47e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -396,6 +396,11 @@ public class PurpurWorldConfig { +@@ -398,6 +398,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0166-Config-to-use-infinity-bows-without-arrows.patch b/patches/server/0166-Config-to-use-infinity-bows-without-arrows.patch index 3eb40f8d00..b9da57e3be 100644 --- a/patches/server/0166-Config-to-use-infinity-bows-without-arrows.patch +++ b/patches/server/0166-Config-to-use-infinity-bows-without-arrows.patch @@ -20,7 +20,7 @@ index c7e20b25b4d09463fa54c66e62208e90515013e2..59b803ec4552058f2dda269e9435daf6 } else { entityhuman.c(enumhand); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 3dd8868ab3f1675ff5e7547285f9a89b9d56cd63..235eba799c4b92738a57b62bc6bb572dd417a45b 100644 +index 1baff8389841b21dbfa00adf6d6213dffb94f47e..bd81fcec811b65205f77ff3fa81ba649337e0046 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -243,10 +243,12 @@ public class PurpurWorldConfig { diff --git a/patches/server/0167-Toggle-for-water-sensitive-mob-damage.patch b/patches/server/0167-Toggle-for-water-sensitive-mob-damage.patch index 560369b1a7..77f52996f6 100644 --- a/patches/server/0167-Toggle-for-water-sensitive-mob-damage.patch +++ b/patches/server/0167-Toggle-for-water-sensitive-mob-damage.patch @@ -19,7 +19,7 @@ index a6ea96683b0f4d35015dff6168f3bf458346fb6f..95c08c31cb4d9df73f0af8f0e3b61236 } return; diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index e866531958c9d0171d39ba7f6963fe92eb2d42cc..d0adfc802371f562fe87c3f8ebe2368ff133776a 100644 +index 56ea148ddff1674e46c258f2658d0f4b5313e63a..b4a203be4de6b9aba280dfef22a91c02266c9f36 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -2990,6 +2990,7 @@ public abstract class EntityLiving extends Entity { @@ -83,10 +83,10 @@ index 5e4cc99a746d98231bbb71672fbc02431e4fab48..f52ae7446c16d5b8ac51bd2e12bb51d2 @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 235eba799c4b92738a57b62bc6bb572dd417a45b..aa73eb1ec79ae552d60c31d0168a0e91cdabb4f5 100644 +index bd81fcec811b65205f77ff3fa81ba649337e0046..7cdc7502649e24aefabedbe9965a15c2177ef78f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -617,6 +617,7 @@ public class PurpurWorldConfig { +@@ -619,6 +619,7 @@ public class PurpurWorldConfig { public boolean blazeRidableInWater = false; public double blazeMaxY = 256D; public double blazeMaxHealth = 20.0D; @@ -94,7 +94,7 @@ index 235eba799c4b92738a57b62bc6bb572dd417a45b..aa73eb1ec79ae552d60c31d0168a0e91 private void blazeSettings() { blazeRidable = getBoolean("mobs.blaze.ridable", blazeRidable); blazeRidableInWater = getBoolean("mobs.blaze.ridable-in-water", blazeRidableInWater); -@@ -627,6 +628,7 @@ public class PurpurWorldConfig { +@@ -629,6 +630,7 @@ public class PurpurWorldConfig { set("mobs.blaze.attributes.max_health", oldValue); } blazeMaxHealth = getDouble("mobs.blaze.attributes.max_health", blazeMaxHealth); @@ -102,7 +102,7 @@ index 235eba799c4b92738a57b62bc6bb572dd417a45b..aa73eb1ec79ae552d60c31d0168a0e91 } public boolean catRidable = false; -@@ -841,6 +843,7 @@ public class PurpurWorldConfig { +@@ -843,6 +845,7 @@ public class PurpurWorldConfig { public boolean endermanBypassMobGriefing = false; public boolean endermanDespawnEvenWithBlock = false; public double endermanMaxHealth = 40.0D; @@ -110,7 +110,7 @@ index 235eba799c4b92738a57b62bc6bb572dd417a45b..aa73eb1ec79ae552d60c31d0168a0e91 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -853,6 +856,7 @@ public class PurpurWorldConfig { +@@ -855,6 +858,7 @@ public class PurpurWorldConfig { set("mobs.enderman.attributes.max_health", oldValue); } endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth); @@ -118,7 +118,7 @@ index 235eba799c4b92738a57b62bc6bb572dd417a45b..aa73eb1ec79ae552d60c31d0168a0e91 } public boolean endermiteRidable = false; -@@ -1542,6 +1546,7 @@ public class PurpurWorldConfig { +@@ -1544,6 +1548,7 @@ public class PurpurWorldConfig { public float snowGolemSnowBallModifier = 10.0F; public double snowGolemAttackDistance = 1.25D; public double snowGolemMaxHealth = 4.0D; @@ -126,7 +126,7 @@ index 235eba799c4b92738a57b62bc6bb572dd417a45b..aa73eb1ec79ae552d60c31d0168a0e91 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1559,6 +1564,7 @@ public class PurpurWorldConfig { +@@ -1561,6 +1566,7 @@ public class PurpurWorldConfig { set("mobs.snow_golem.attributes.max_health", oldValue); } snowGolemMaxHealth = getDouble("mobs.snow_golem.attributes.max_health", snowGolemMaxHealth); @@ -134,7 +134,7 @@ index 235eba799c4b92738a57b62bc6bb572dd417a45b..aa73eb1ec79ae552d60c31d0168a0e91 } public boolean squidRidable = false; -@@ -1612,6 +1618,7 @@ public class PurpurWorldConfig { +@@ -1614,6 +1620,7 @@ public class PurpurWorldConfig { public int striderBreedingTicks = 6000; public boolean striderGiveSaddleBack = false; public double striderMaxHealth = 20.0D; @@ -142,7 +142,7 @@ index 235eba799c4b92738a57b62bc6bb572dd417a45b..aa73eb1ec79ae552d60c31d0168a0e91 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1623,6 +1630,7 @@ public class PurpurWorldConfig { +@@ -1625,6 +1632,7 @@ public class PurpurWorldConfig { set("mobs.strider.attributes.max_health", oldValue); } striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth); diff --git a/patches/server/0168-Config-to-always-tame-in-Creative.patch b/patches/server/0168-Config-to-always-tame-in-Creative.patch index ee61a022f3..7a678b562b 100644 --- a/patches/server/0168-Config-to-always-tame-in-Creative.patch +++ b/patches/server/0168-Config-to-always-tame-in-Creative.patch @@ -59,7 +59,7 @@ index 090903fbc8f6cd1522c7afb358f708f5ae3395f4..884a3f03c73efb8fb0863976615fba5e this.navigation.o(); this.setGoalTarget((EntityLiving) null); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index aa73eb1ec79ae552d60c31d0168a0e91cdabb4f5..447188e570bbab37a225f9c2583a8481a90a22ef 100644 +index 7cdc7502649e24aefabedbe9965a15c2177ef78f..9db449d678840ab1532515ac5f54f285f1d3add9 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -289,6 +289,7 @@ public class PurpurWorldConfig { @@ -70,7 +70,7 @@ index aa73eb1ec79ae552d60c31d0168a0e91cdabb4f5..447188e570bbab37a225f9c2583a8481 public boolean boatEjectPlayersOnLand = false; public boolean boatsDoFallDamage = true; public boolean disableDropsOnCrammingDeath = false; -@@ -305,6 +306,7 @@ public class PurpurWorldConfig { +@@ -306,6 +307,7 @@ public class PurpurWorldConfig { public int animalBreedingCooldownSeconds = 0; private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); diff --git a/patches/server/0169-End-crystal-explosion-options.patch b/patches/server/0169-End-crystal-explosion-options.patch index 0aa2171260..9c52b98c03 100644 --- a/patches/server/0169-End-crystal-explosion-options.patch +++ b/patches/server/0169-End-crystal-explosion-options.patch @@ -52,10 +52,10 @@ index 2c983e6a092464d1867fcbe875b2e1461ec8556b..a92c900a6092c07b34711428fac268f4 this.a(damagesource); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 447188e570bbab37a225f9c2583a8481a90a22ef..d98671c6db4d86a9324f120c68e610364337bee6 100644 +index 9db449d678840ab1532515ac5f54f285f1d3add9..aed8a7492268f0193556998fb0713d1f9ee84372 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1963,4 +1963,33 @@ public class PurpurWorldConfig { +@@ -1965,4 +1965,33 @@ public class PurpurWorldConfig { private void imposeTeleportRestrictionsOnGateways() { imposeTeleportRestrictionsOnGateways = getBoolean("gameplay-mechanics.impose-teleport-restrictions-on-gateways", imposeTeleportRestrictionsOnGateways); } diff --git a/patches/server/0171-Add-ghast-allow-griefing-option.patch b/patches/server/0171-Add-ghast-allow-griefing-option.patch index c60936e16f..8af4ea2630 100644 --- a/patches/server/0171-Add-ghast-allow-griefing-option.patch +++ b/patches/server/0171-Add-ghast-allow-griefing-option.patch @@ -38,10 +38,10 @@ index 61f06eacb4ea4ef869b60c9014cc23b25583eead..627915ee205fdcc93c5424ad7d7ea057 // CraftBukkit start - fire ExplosionPrimeEvent ExplosionPrimeEvent event = new ExplosionPrimeEvent((org.bukkit.entity.Explosive) this.getBukkitEntity()); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index d98671c6db4d86a9324f120c68e610364337bee6..fa3c9dbcdea3701cdecd2e4324690528af47247f 100644 +index aed8a7492268f0193556998fb0713d1f9ee84372..e2b0487edbf8eaea38875d93f9eaca9f011a3ce4 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -914,6 +914,7 @@ public class PurpurWorldConfig { +@@ -916,6 +916,7 @@ public class PurpurWorldConfig { public boolean ghastRidable = false; public boolean ghastRidableInWater = false; public double ghastMaxY = 256D; @@ -49,7 +49,7 @@ index d98671c6db4d86a9324f120c68e610364337bee6..fa3c9dbcdea3701cdecd2e4324690528 public double ghastMaxHealth = 10.0D; private void ghastSettings() { ghastRidable = getBoolean("mobs.ghast.ridable", ghastRidable); -@@ -924,6 +925,7 @@ public class PurpurWorldConfig { +@@ -926,6 +927,7 @@ public class PurpurWorldConfig { set("mobs.ghast.attributes.max-health", null); set("mobs.ghast.attributes.max_health", oldValue); } diff --git a/patches/server/0172-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch b/patches/server/0172-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch index 2b0fb75afb..dc4a862256 100644 --- a/patches/server/0172-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch +++ b/patches/server/0172-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch @@ -42,10 +42,10 @@ index fa6b72c7a12b20f8ccffa360a3895e4d8f4277e4..4a3e0f7f59ca4fd64be62a580d08b6ab } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index fa3c9dbcdea3701cdecd2e4324690528af47247f..b82cf670d693096884f801e72efbcb535d0952a7 100644 +index e2b0487edbf8eaea38875d93f9eaca9f011a3ce4..5f1f3403351503e08c71486571439b672936a1be 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -821,6 +821,7 @@ public class PurpurWorldConfig { +@@ -823,6 +823,7 @@ public class PurpurWorldConfig { public boolean enderDragonAlwaysDropsFullExp = false; public boolean enderDragonBypassMobGriefing = false; public double enderDragonMaxHealth = 200.0D; @@ -53,7 +53,7 @@ index fa3c9dbcdea3701cdecd2e4324690528af47247f..b82cf670d693096884f801e72efbcb53 private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -837,6 +838,7 @@ public class PurpurWorldConfig { +@@ -839,6 +840,7 @@ public class PurpurWorldConfig { set("mobs.ender_dragon.attributes.max_health", oldValue); } enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth); @@ -61,7 +61,7 @@ index fa3c9dbcdea3701cdecd2e4324690528af47247f..b82cf670d693096884f801e72efbcb53 } public boolean endermanRidable = false; -@@ -1781,6 +1783,7 @@ public class PurpurWorldConfig { +@@ -1783,6 +1785,7 @@ public class PurpurWorldConfig { public float witherHealthRegenAmount = 1.0f; public int witherHealthRegenDelay = 20; public double witherMaxHealth = 300.0D; @@ -69,7 +69,7 @@ index fa3c9dbcdea3701cdecd2e4324690528af47247f..b82cf670d693096884f801e72efbcb53 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1798,6 +1801,7 @@ public class PurpurWorldConfig { +@@ -1800,6 +1803,7 @@ public class PurpurWorldConfig { set("mobs.wither.attributes.max_health", oldValue); } witherMaxHealth = getDouble("mobs.wither.attributes.max_health", witherMaxHealth); diff --git a/patches/server/0173-Dont-run-with-scissors.patch b/patches/server/0173-Dont-run-with-scissors.patch index 7fba08d0f8..8bfef934b2 100644 --- a/patches/server/0173-Dont-run-with-scissors.patch +++ b/patches/server/0173-Dont-run-with-scissors.patch @@ -22,7 +22,7 @@ index f55485094a5b676d8051d1f8d3151340bf176b33..03a61aa91191b44284e9b4d02f2c57ea this.o = this.player.locX(); this.p = this.player.locY(); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index b82cf670d693096884f801e72efbcb535d0952a7..6e37207d2c1d83a18d39cde4436b9b16c693df77 100644 +index 5f1f3403351503e08c71486571439b672936a1be..e9b77536de0ce19afc00d28996837cdb83cda689 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -202,6 +202,8 @@ public class PurpurWorldConfig { diff --git a/patches/server/0174-One-Punch-Man.patch b/patches/server/0174-One-Punch-Man.patch index a338b15bdf..b99a7c8dae 100644 --- a/patches/server/0174-One-Punch-Man.patch +++ b/patches/server/0174-One-Punch-Man.patch @@ -5,7 +5,7 @@ Subject: [PATCH] One Punch Man! diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index d0adfc802371f562fe87c3f8ebe2368ff133776a..93f8aa6d40b1eba6535f170bf0a79417d7d21069 100644 +index b4a203be4de6b9aba280dfef22a91c02266c9f36..535fbd84b23275398954d312bf825b321b87da4d 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -2032,6 +2032,23 @@ public abstract class EntityLiving extends Entity { @@ -45,19 +45,19 @@ index 132972755ac74838f3386e0fac5033380b71fce5..26fff0540e3d8863e83b0a60df220542 Object object; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 6e37207d2c1d83a18d39cde4436b9b16c693df77..087ab9b2b9be1a02f472563226fb7d8fb96a4dc3 100644 +index e9b77536de0ce19afc00d28996837cdb83cda689..4cb48812344272c9d93aec60e68a7db7f602850e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -308,6 +308,7 @@ public class PurpurWorldConfig { - public double voidDamageHeight = -64.0D; +@@ -309,6 +309,7 @@ public class PurpurWorldConfig { + public double voidDamageDealt = 4.0D; public int raidCooldownSeconds = 0; public int animalBreedingCooldownSeconds = 0; + public boolean creativeOnePunch = false; private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); alwaysTameInCreative = getBoolean("gameplay-mechanics.always-tame-in-creative", alwaysTameInCreative); -@@ -325,6 +326,7 @@ public class PurpurWorldConfig { - voidDamageHeight = getDouble("gameplay-mechanics.void-damage-height", voidDamageHeight); +@@ -327,6 +328,7 @@ public class PurpurWorldConfig { + voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt); raidCooldownSeconds = getInt("gameplay-mechanics.raid-cooldown-seconds", raidCooldownSeconds); animalBreedingCooldownSeconds = getInt("gameplay-mechanics.animal-breeding-cooldown-seconds", animalBreedingCooldownSeconds); + creativeOnePunch = getBoolean("gameplay-mechanics.player.one-punch-in-creative", creativeOnePunch); diff --git a/patches/server/0175-Add-config-for-snow-on-blue-ice.patch b/patches/server/0175-Add-config-for-snow-on-blue-ice.patch index f40427dcd8..d937532aa8 100644 --- a/patches/server/0175-Add-config-for-snow-on-blue-ice.patch +++ b/patches/server/0175-Add-config-for-snow-on-blue-ice.patch @@ -29,10 +29,10 @@ index d44b88185ce58346007c6ef70b76f8e0df23e95c..4b7497acc5b26da48375625b4a31fb05 @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 087ab9b2b9be1a02f472563226fb7d8fb96a4dc3..c207b7004cd6da7de11bbe88ae7b84a1a9874bbc 100644 +index 4cb48812344272c9d93aec60e68a7db7f602850e..cd5deda81433a9ac738e3598e3d0bddd697756ec 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -465,6 +465,11 @@ public class PurpurWorldConfig { +@@ -467,6 +467,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0176-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch b/patches/server/0176-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch index 7a071516c2..91ee89f71c 100644 --- a/patches/server/0176-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch +++ b/patches/server/0176-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch @@ -43,7 +43,7 @@ index 9896d77381e7fadf1ef2619210713e190c1445d0..61512c6755f29cb2c228ae3e80b1e083 // Paper end if (entityhuman instanceof net.minecraft.server.level.EntityPlayer) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index c207b7004cd6da7de11bbe88ae7b84a1a9874bbc..ecbf06ad3c649f1175ac0885591ed6f1190c737a 100644 +index cd5deda81433a9ac738e3598e3d0bddd697756ec..c0d75601fb8fe1221bbd47433174ceb14c70755f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -204,6 +204,10 @@ public class PurpurWorldConfig { diff --git a/patches/server/0177-Config-to-ignore-nearby-mobs-when-sleeping.patch b/patches/server/0177-Config-to-ignore-nearby-mobs-when-sleeping.patch index 80bc5392fb..6bdceaa7ec 100644 --- a/patches/server/0177-Config-to-ignore-nearby-mobs-when-sleeping.patch +++ b/patches/server/0177-Config-to-ignore-nearby-mobs-when-sleeping.patch @@ -18,10 +18,10 @@ index 9c520e7600986b7b7df3af96a715c91c5347f30d..4ec18d28c0022614b0ef6900774ddd4b } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index ecbf06ad3c649f1175ac0885591ed6f1190c737a..feff8cc3a8e38c67f06e08a593b51e99c4d8381f 100644 +index c0d75601fb8fe1221bbd47433174ceb14c70755f..35cfc470a83e7643eec2473bb5efe187964b3d6b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -317,6 +317,7 @@ public class PurpurWorldConfig { +@@ -318,6 +318,7 @@ public class PurpurWorldConfig { public int raidCooldownSeconds = 0; public int animalBreedingCooldownSeconds = 0; public boolean creativeOnePunch = false; @@ -29,7 +29,7 @@ index ecbf06ad3c649f1175ac0885591ed6f1190c737a..feff8cc3a8e38c67f06e08a593b51e99 private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); alwaysTameInCreative = getBoolean("gameplay-mechanics.always-tame-in-creative", alwaysTameInCreative); -@@ -335,6 +336,7 @@ public class PurpurWorldConfig { +@@ -337,6 +338,7 @@ public class PurpurWorldConfig { raidCooldownSeconds = getInt("gameplay-mechanics.raid-cooldown-seconds", raidCooldownSeconds); animalBreedingCooldownSeconds = getInt("gameplay-mechanics.animal-breeding-cooldown-seconds", animalBreedingCooldownSeconds); creativeOnePunch = getBoolean("gameplay-mechanics.player.one-punch-in-creative", creativeOnePunch); diff --git a/patches/server/0178-Config-for-Enderman-to-aggro-spawned-Endermites.patch b/patches/server/0178-Config-for-Enderman-to-aggro-spawned-Endermites.patch index 54951ea3f2..f107c113e5 100644 --- a/patches/server/0178-Config-for-Enderman-to-aggro-spawned-Endermites.patch +++ b/patches/server/0178-Config-for-Enderman-to-aggro-spawned-Endermites.patch @@ -19,10 +19,10 @@ index d290787f74579dd4c138eb827e44544814bfe315..46143a710e057378ebe0ad644de27560 private int br = Integer.MIN_VALUE; private int bs; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index feff8cc3a8e38c67f06e08a593b51e99c4d8381f..76d63988772452525ece58e5d717fd84f3bad2f6 100644 +index 35cfc470a83e7643eec2473bb5efe187964b3d6b..7d345347edac1a376299c4de8f7b334e55e98d8c 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -869,6 +869,7 @@ public class PurpurWorldConfig { +@@ -871,6 +871,7 @@ public class PurpurWorldConfig { public boolean endermanDespawnEvenWithBlock = false; public double endermanMaxHealth = 40.0D; public boolean endermanTakeDamageFromWater = true; @@ -30,7 +30,7 @@ index feff8cc3a8e38c67f06e08a593b51e99c4d8381f..76d63988772452525ece58e5d717fd84 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -882,6 +883,7 @@ public class PurpurWorldConfig { +@@ -884,6 +885,7 @@ public class PurpurWorldConfig { } endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth); endermanTakeDamageFromWater = getBoolean("mobs.enderman.takes-damage-from-water", endermanTakeDamageFromWater); diff --git a/patches/server/0179-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch b/patches/server/0179-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch index 2327ecb734..52cc978a62 100644 --- a/patches/server/0179-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch +++ b/patches/server/0179-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch @@ -28,10 +28,10 @@ index 46143a710e057378ebe0ad644de275604b11d886..0ed19429c1a9021e636fdfffa582b4e0 } else { Vec3D vec3d = entityhuman.f(1.0F).d(); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 76d63988772452525ece58e5d717fd84f3bad2f6..673d55a3458dcb4bca61779757d3329598bd305d 100644 +index 7d345347edac1a376299c4de8f7b334e55e98d8c..2ef2b93e1b9fd9cc85c4255c8ff85d65099f5e98 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -870,6 +870,8 @@ public class PurpurWorldConfig { +@@ -872,6 +872,8 @@ public class PurpurWorldConfig { public double endermanMaxHealth = 40.0D; public boolean endermanTakeDamageFromWater = true; public boolean endermanAggroSpawnedEndermites = false; @@ -40,7 +40,7 @@ index 76d63988772452525ece58e5d717fd84f3bad2f6..673d55a3458dcb4bca61779757d33295 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -884,6 +886,8 @@ public class PurpurWorldConfig { +@@ -886,6 +888,8 @@ public class PurpurWorldConfig { endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth); endermanTakeDamageFromWater = getBoolean("mobs.enderman.takes-damage-from-water", endermanTakeDamageFromWater); endermanAggroSpawnedEndermites = getBoolean("mobs.enderman.aggressive-towards-spawned-endermites", endermanAggroSpawnedEndermites); diff --git a/patches/server/0181-Tick-fluids-config.patch b/patches/server/0181-Tick-fluids-config.patch index bdd95da414..62ee89cd35 100644 --- a/patches/server/0181-Tick-fluids-config.patch +++ b/patches/server/0181-Tick-fluids-config.patch @@ -36,7 +36,7 @@ index 0ed8d938b8fafdb03e01a00a201ba3f8597ac6e9..0eff89bf9e114271c34c37cad1b98691 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 673d55a3458dcb4bca61779757d3329598bd305d..4d40319188375b71cb7feeecf1907693c3cbd021 100644 +index 2ef2b93e1b9fd9cc85c4255c8ff85d65099f5e98..044dddc01b3dcae64d8e9e7b6e49e5453ff63a3a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -295,6 +295,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0182-Config-to-disable-Llama-caravans.patch b/patches/server/0182-Config-to-disable-Llama-caravans.patch index 7dedb9e66b..8c7bba25bc 100644 --- a/patches/server/0182-Config-to-disable-Llama-caravans.patch +++ b/patches/server/0182-Config-to-disable-Llama-caravans.patch @@ -32,10 +32,10 @@ index 762fed5ba27474951c1962e6f034e8494b1035d6..567a1da3c167c20ae3fb86c2a1f3608e this.bB.bC = this; } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 4d40319188375b71cb7feeecf1907693c3cbd021..1ac22df208eccccfa290c1e3e5a15b6d2b675b9e 100644 +index 044dddc01b3dcae64d8e9e7b6e49e5453ff63a3a..e6c439191483dff645fb2f216f9065d23533ff2e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1109,6 +1109,7 @@ public class PurpurWorldConfig { +@@ -1111,6 +1111,7 @@ public class PurpurWorldConfig { public boolean llamaRidable = false; public boolean llamaRidableInWater = false; @@ -43,7 +43,7 @@ index 4d40319188375b71cb7feeecf1907693c3cbd021..1ac22df208eccccfa290c1e3e5a15b6d public int llamaBreedingTicks = 6000; public double llamaMaxHealthMin = 15.0D; public double llamaMaxHealthMax = 30.0D; -@@ -1119,6 +1120,7 @@ public class PurpurWorldConfig { +@@ -1121,6 +1122,7 @@ public class PurpurWorldConfig { private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); diff --git a/patches/server/0183-Config-to-make-Creepers-explode-on-death.patch b/patches/server/0183-Config-to-make-Creepers-explode-on-death.patch index 35b5b28081..e0459ae47d 100644 --- a/patches/server/0183-Config-to-make-Creepers-explode-on-death.patch +++ b/patches/server/0183-Config-to-make-Creepers-explode-on-death.patch @@ -57,10 +57,10 @@ index 62d40f726355283baddde349c52bee0599bb293c..014091f35ee5aac0ee2f155ccec2daf5 private void createEffectCloud() { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 1ac22df208eccccfa290c1e3e5a15b6d2b675b9e..f32c331bb904326070cacf00337a207af8509226 100644 +index e6c439191483dff645fb2f216f9065d23533ff2e..4d6eb4a86ee0c6e0f93fc70e68969ea9f984cbde 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -745,12 +745,14 @@ public class PurpurWorldConfig { +@@ -747,12 +747,14 @@ public class PurpurWorldConfig { public boolean creeperRidable = false; public boolean creeperRidableInWater = false; diff --git a/patches/server/0184-Configurable-ravager-griefable-blocks-list.patch b/patches/server/0184-Configurable-ravager-griefable-blocks-list.patch index 4dd4625590..4e9ffa4e3b 100644 --- a/patches/server/0184-Configurable-ravager-griefable-blocks-list.patch +++ b/patches/server/0184-Configurable-ravager-griefable-blocks-list.patch @@ -31,10 +31,10 @@ index 5f8366beeaac7153a0421554f9bf91fbf265edca..7fca4d1713e8061d9de825cdae484012 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index f32c331bb904326070cacf00337a207af8509226..1199e500376d442ffdc5028bda3169ec7bc29985 100644 +index 4d6eb4a86ee0c6e0f93fc70e68969ea9f984cbde..430f0fe008e74410737e11fbd3960d0645a2c264 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1450,6 +1450,7 @@ public class PurpurWorldConfig { +@@ -1452,6 +1452,7 @@ public class PurpurWorldConfig { public boolean ravagerRidableInWater = false; public boolean ravagerBypassMobGriefing = false; public double ravagerMaxHealth = 100.0D; @@ -42,7 +42,7 @@ index f32c331bb904326070cacf00337a207af8509226..1199e500376d442ffdc5028bda3169ec private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -1460,6 +1461,23 @@ public class PurpurWorldConfig { +@@ -1462,6 +1463,23 @@ public class PurpurWorldConfig { set("mobs.ravager.attributes.max_health", oldValue); } ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth); diff --git a/patches/server/0185-Sneak-to-bulk-process-composter.patch b/patches/server/0185-Sneak-to-bulk-process-composter.patch index 36d164a238..b3e63c097f 100644 --- a/patches/server/0185-Sneak-to-bulk-process-composter.patch +++ b/patches/server/0185-Sneak-to-bulk-process-composter.patch @@ -44,10 +44,10 @@ index e4e519ba773388b8d26a8f794a6eff51e3d8f72e..c0b235d5edf3cd14021696d1b4f76ce3 // CraftBukkit start double rand = worldserver.getRandom().nextDouble(); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 1199e500376d442ffdc5028bda3169ec7bc29985..e5fc4fbd6bb417607ced21d84ca0e85804d107cb 100644 +index 430f0fe008e74410737e11fbd3960d0645a2c264..47426ce54de82a14113cbb1484f86a193c93ff47 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -490,6 +490,11 @@ public class PurpurWorldConfig { +@@ -492,6 +492,11 @@ public class PurpurWorldConfig { chestOpenWithBlockOnTop = getBoolean("blocks.chest.open-with-solid-block-on-top", chestOpenWithBlockOnTop); } diff --git a/patches/server/0186-Config-for-skipping-night.patch b/patches/server/0186-Config-for-skipping-night.patch index c112d3b0d2..6387a54d6d 100644 --- a/patches/server/0186-Config-for-skipping-night.patch +++ b/patches/server/0186-Config-for-skipping-night.patch @@ -18,10 +18,10 @@ index 028911ebe843751080564d90e96306524e5a2e21..f84066233f551be145a7db2694b3c7cb })) { // CraftBukkit start diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index e5fc4fbd6bb417607ced21d84ca0e85804d107cb..2932b5f7a5a10dcc83755066c692f5edf7fafa1a 100644 +index 47426ce54de82a14113cbb1484f86a193c93ff47..a2e67a30bcf76405c150f207f784f5713f7ed74c 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -323,6 +323,7 @@ public class PurpurWorldConfig { +@@ -324,6 +324,7 @@ public class PurpurWorldConfig { public int animalBreedingCooldownSeconds = 0; public boolean creativeOnePunch = false; public boolean playerSleepNearMonsters = false; @@ -29,7 +29,7 @@ index e5fc4fbd6bb417607ced21d84ca0e85804d107cb..2932b5f7a5a10dcc83755066c692f5ed private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); alwaysTameInCreative = getBoolean("gameplay-mechanics.always-tame-in-creative", alwaysTameInCreative); -@@ -342,6 +343,7 @@ public class PurpurWorldConfig { +@@ -344,6 +345,7 @@ public class PurpurWorldConfig { animalBreedingCooldownSeconds = getInt("gameplay-mechanics.animal-breeding-cooldown-seconds", animalBreedingCooldownSeconds); 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/0187-Add-config-for-villager-trading.patch b/patches/server/0187-Add-config-for-villager-trading.patch index e28397b9ef..fde48c44be 100644 --- a/patches/server/0187-Add-config-for-villager-trading.patch +++ b/patches/server/0187-Add-config-for-villager-trading.patch @@ -31,10 +31,10 @@ index b84916c0c58fd208ef5547299f8db8462d1c42fe..0b6b6aa6b358759c45bbcf4a9ffa5377 this.openTrade(entityhuman, this.getScoreboardDisplayName(), 1); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 2932b5f7a5a10dcc83755066c692f5edf7fafa1a..82f1a60b57c94f4e301b8048c6b1de15c9f7b41f 100644 +index a2e67a30bcf76405c150f207f784f5713f7ed74c..6a140fc847e428f1b7063aa65223b3fd5edecdee 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1760,6 +1760,7 @@ public class PurpurWorldConfig { +@@ -1762,6 +1762,7 @@ public class PurpurWorldConfig { public boolean villagerClericsFarmWarts = false; public boolean villagerClericFarmersThrowWarts = true; public double villagerMaxHealth = 20.0D; @@ -42,7 +42,7 @@ index 2932b5f7a5a10dcc83755066c692f5edf7fafa1a..82f1a60b57c94f4e301b8048c6b1de15 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1787,6 +1788,7 @@ public class PurpurWorldConfig { +@@ -1789,6 +1790,7 @@ public class PurpurWorldConfig { set("mobs.villager.attributes.max_health", oldValue); } villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth); @@ -50,7 +50,7 @@ index 2932b5f7a5a10dcc83755066c692f5edf7fafa1a..82f1a60b57c94f4e301b8048c6b1de15 } public boolean villagerTraderRidable = false; -@@ -1794,6 +1796,7 @@ public class PurpurWorldConfig { +@@ -1796,6 +1798,7 @@ public class PurpurWorldConfig { public boolean villagerTraderCanBeLeashed = false; public boolean villagerTraderFollowEmeraldBlock = false; public double villagerTraderMaxHealth = 20.0D; @@ -58,7 +58,7 @@ index 2932b5f7a5a10dcc83755066c692f5edf7fafa1a..82f1a60b57c94f4e301b8048c6b1de15 private void villagerTraderSettings() { villagerTraderRidable = getBoolean("mobs.wandering_trader.ridable", villagerTraderRidable); villagerTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", villagerTraderRidableInWater); -@@ -1805,6 +1808,7 @@ public class PurpurWorldConfig { +@@ -1807,6 +1810,7 @@ public class PurpurWorldConfig { set("mobs.wandering_trader.attributes.max_health", oldValue); } villagerTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", villagerTraderMaxHealth); diff --git a/patches/server/0189-Drowning-Settings.patch b/patches/server/0189-Drowning-Settings.patch index 03420f7216..d9186ddaaf 100644 --- a/patches/server/0189-Drowning-Settings.patch +++ b/patches/server/0189-Drowning-Settings.patch @@ -18,7 +18,7 @@ index f3151969e5841861d31ac50abdfef3c65e5198a3..706a1e2fadb0880277093be5de63f4dc public Iterable bn() { diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index 93f8aa6d40b1eba6535f170bf0a79417d7d21069..8db61c8b392c8e95f6896b6e48e4d74ddd6b8708 100644 +index 535fbd84b23275398954d312bf825b321b87da4d..89b8840e5cfc0fe0aa023882375c9b83826d1037 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -394,7 +394,7 @@ public abstract class EntityLiving extends Entity { @@ -40,10 +40,10 @@ index 93f8aa6d40b1eba6535f170bf0a79417d7d21069..8db61c8b392c8e95f6896b6e48e4d74d } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 82f1a60b57c94f4e301b8048c6b1de15c9f7b41f..0c79d6af4604d900bfa33f544ac0e0e56932de50 100644 +index 6a140fc847e428f1b7063aa65223b3fd5edecdee..ee8178e4dd105caf586483434cb2e2c1d7e9deb7 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -2035,6 +2035,15 @@ public class PurpurWorldConfig { +@@ -2037,6 +2037,15 @@ public class PurpurWorldConfig { imposeTeleportRestrictionsOnGateways = getBoolean("gameplay-mechanics.impose-teleport-restrictions-on-gateways", imposeTeleportRestrictionsOnGateways); } diff --git a/patches/server/0190-Break-individual-slabs-when-sneaking.patch b/patches/server/0190-Break-individual-slabs-when-sneaking.patch index 435ed3ebb8..e60b0ed369 100644 --- a/patches/server/0190-Break-individual-slabs-when-sneaking.patch +++ b/patches/server/0190-Break-individual-slabs-when-sneaking.patch @@ -57,10 +57,10 @@ index 12c0fa5072755fd2a4f575b0cc5e4222617490ce..94965b216d50b29b95f09fa9019c177b + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 0c79d6af4604d900bfa33f544ac0e0e56932de50..a927869cdb6e935226a20200827bd297aac4e8b2 100644 +index ee8178e4dd105caf586483434cb2e2c1d7e9deb7..84dd2a7f11b9d732acf671561c6804d3c84abc3c 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -563,6 +563,11 @@ public class PurpurWorldConfig { +@@ -565,6 +565,11 @@ public class PurpurWorldConfig { signRightClickEdit = getBoolean("blocks.sign.right-click-edit", signRightClickEdit); } diff --git a/patches/server/0191-Config-to-disable-hostile-mob-spawn-on-ice.patch b/patches/server/0191-Config-to-disable-hostile-mob-spawn-on-ice.patch index cc0a2cb2b9..cf8383a6b0 100644 --- a/patches/server/0191-Config-to-disable-hostile-mob-spawn-on-ice.patch +++ b/patches/server/0191-Config-to-disable-hostile-mob-spawn-on-ice.patch @@ -22,10 +22,10 @@ index c484e27650364b6537fe6b2e8e14de98382b86a3..096a7b76e0ae42ba8b859159e20fb72e return false; } else { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index a927869cdb6e935226a20200827bd297aac4e8b2..2f544d8bb44a1bee18468cb8611591413507c521 100644 +index 84dd2a7f11b9d732acf671561c6804d3c84abc3c..627dec10edf379e132f3fc512671d930cb4e1ddd 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -483,8 +483,12 @@ public class PurpurWorldConfig { +@@ -485,8 +485,12 @@ public class PurpurWorldConfig { } public boolean snowOnBlueIce = true; diff --git a/patches/server/0192-Config-to-show-Armor-Stand-arms-on-spawn.patch b/patches/server/0192-Config-to-show-Armor-Stand-arms-on-spawn.patch index 717ade0e64..3185531bbe 100644 --- a/patches/server/0192-Config-to-show-Armor-Stand-arms-on-spawn.patch +++ b/patches/server/0192-Config-to-show-Armor-Stand-arms-on-spawn.patch @@ -17,7 +17,7 @@ index ecb797e67554d30e35b3aca4d0fc9b0e3f6c1a50..ddc1c3383cdc32fa832485f3922c7418 public EntityArmorStand(World world, double d0, double d1, double d2) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 2f544d8bb44a1bee18468cb8611591413507c521..47f5be1a1adb8cf98b84324e346cbf60099840c0 100644 +index 627dec10edf379e132f3fc512671d930cb4e1ddd..9457e0f4a8cef60ca73e40bebb3b1d5561391555 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -114,6 +114,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0193-Option-to-make-doors-require-redstone.patch b/patches/server/0193-Option-to-make-doors-require-redstone.patch index a59f6c328b..9bbf6a9c12 100644 --- a/patches/server/0193-Option-to-make-doors-require-redstone.patch +++ b/patches/server/0193-Option-to-make-doors-require-redstone.patch @@ -70,10 +70,10 @@ index 453b46851f021d4285be123bedc8982fc8844da2..2a7695c899b12c87ab89d00116b6f0dd + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 47f5be1a1adb8cf98b84324e346cbf60099840c0..813752be37c5f2956c4f10dcd974e4437020906c 100644 +index 9457e0f4a8cef60ca73e40bebb3b1d5561391555..b1b662a2b6b0cca1e9e7bc290da977385fd1a0cc 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -484,6 +484,16 @@ public class PurpurWorldConfig { +@@ -486,6 +486,16 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0195-Configurable-sponge-absorption.patch b/patches/server/0195-Configurable-sponge-absorption.patch index e3553be729..9e44ab40ab 100644 --- a/patches/server/0195-Configurable-sponge-absorption.patch +++ b/patches/server/0195-Configurable-sponge-absorption.patch @@ -43,10 +43,10 @@ index d80eee47390ab202eea0368571421bbc94655ab1..b36536d4cc95797c59549f5db1f67b34 } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 813752be37c5f2956c4f10dcd974e4437020906c..e2504bf2846b66563936fc9329561da66e8ae985 100644 +index b1b662a2b6b0cca1e9e7bc290da977385fd1a0cc..79465cc5126f7e4da89b37b9673c7778180ba84b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -589,6 +589,13 @@ public class PurpurWorldConfig { +@@ -591,6 +591,13 @@ public class PurpurWorldConfig { spawnerDeactivateByRedstone = getBoolean("blocks.spawner.deactivate-by-redstone", spawnerDeactivateByRedstone); } diff --git a/patches/server/0196-Projectile-offset-config.patch b/patches/server/0196-Projectile-offset-config.patch index 3f9fbdde7f..9817e09bb5 100644 --- a/patches/server/0196-Projectile-offset-config.patch +++ b/patches/server/0196-Projectile-offset-config.patch @@ -96,7 +96,7 @@ index 0711d195c654edef5875f587e391bacfdea096da..2341c98859faa61662d7ed343e6ed157 entitythrowntrident.fromPlayer = EntityArrow.PickupStatus.CREATIVE_ONLY; } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index e2504bf2846b66563936fc9329561da66e8ae985..75cae460f560a3825915a96126f28ce3d4f9e182 100644 +index 79465cc5126f7e4da89b37b9673c7778180ba84b..480363d2b1e9b22d5bee82c269f16203d4a5fbeb 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -307,6 +307,23 @@ public class PurpurWorldConfig { diff --git a/patches/server/0197-Config-for-powered-rail-activation-distance.patch b/patches/server/0197-Config-for-powered-rail-activation-distance.patch index 5c008316ca..9406f857b2 100644 --- a/patches/server/0197-Config-for-powered-rail-activation-distance.patch +++ b/patches/server/0197-Config-for-powered-rail-activation-distance.patch @@ -18,10 +18,10 @@ index b26e168fbf49bbe7ec981b5b186c94ca67827f4a..bc91c96a29dcc60c578b342055b8eaf3 } else { int j = blockposition.getX(); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 75cae460f560a3825915a96126f28ce3d4f9e182..3b380cd47061724b20e153d97bac865d344a2eec 100644 +index 480363d2b1e9b22d5bee82c269f16203d4a5fbeb..d0bcc928a80264debc92ddf22275c38281fdc4af 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -573,6 +573,11 @@ public class PurpurWorldConfig { +@@ -575,6 +575,11 @@ public class PurpurWorldConfig { lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether); } diff --git a/patches/server/0198-Piglin-portal-spawn-modifier.patch b/patches/server/0198-Piglin-portal-spawn-modifier.patch index fa7f95737c..ac34abcf9c 100644 --- a/patches/server/0198-Piglin-portal-spawn-modifier.patch +++ b/patches/server/0198-Piglin-portal-spawn-modifier.patch @@ -31,10 +31,10 @@ index ac5ce96ab62ec210816e7af85a4269073b7a9270..84140e01eba780ffb8289bff75d1b58a blockposition = blockposition.down(); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 3b380cd47061724b20e153d97bac865d344a2eec..f3cde1e3d06da82b7a54898df5d331f279b2a954 100644 +index d0bcc928a80264debc92ddf22275c38281fdc4af..4f96d43389b0fd725ec3843a6388bf47eadd1782 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1407,6 +1407,7 @@ public class PurpurWorldConfig { +@@ -1409,6 +1409,7 @@ public class PurpurWorldConfig { public boolean piglinRidable = false; public boolean piglinRidableInWater = false; public double piglinMaxHealth = 16.0D; @@ -42,7 +42,7 @@ index 3b380cd47061724b20e153d97bac865d344a2eec..f3cde1e3d06da82b7a54898df5d331f2 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1416,6 +1417,7 @@ public class PurpurWorldConfig { +@@ -1418,6 +1419,7 @@ public class PurpurWorldConfig { set("mobs.piglin.attributes.max_health", oldValue); } piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth); diff --git a/patches/server/0200-Configurable-damage-settings-for-magma-blocks.patch b/patches/server/0200-Configurable-damage-settings-for-magma-blocks.patch index fe2252a90f..20476cd3d0 100644 --- a/patches/server/0200-Configurable-damage-settings-for-magma-blocks.patch +++ b/patches/server/0200-Configurable-damage-settings-for-magma-blocks.patch @@ -51,10 +51,10 @@ index 4559085fa4452d3a9f59ed967ccb69a7823718e5..f1c53428c8f9eb0922fc16f152c6566d entity.damageEntity(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 f3cde1e3d06da82b7a54898df5d331f279b2a954..78e39c9424c296bf07f89d63ce42b02b96c2cd35 100644 +index 4f96d43389b0fd725ec3843a6388bf47eadd1782..1e8ec6f6cd7740fe6935d9c7a068c19490e16f9b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -2124,4 +2124,11 @@ public class PurpurWorldConfig { +@@ -2126,4 +2126,11 @@ public class PurpurWorldConfig { baseCrystalExplosionEffect = Explosion.Effect.DESTROY; } } diff --git a/patches/server/0201-Config-for-wither-explosion-radius.patch b/patches/server/0201-Config-for-wither-explosion-radius.patch index 478a88895d..9c723c3f84 100644 --- a/patches/server/0201-Config-for-wither-explosion-radius.patch +++ b/patches/server/0201-Config-for-wither-explosion-radius.patch @@ -18,10 +18,10 @@ index 616b5267d1d94b2be37ec48983b45e4478502fb5..052cffb156e4e6f31df3935fd8312eb3 if (!event.isCancelled()) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 78e39c9424c296bf07f89d63ce42b02b96c2cd35..69d6ced8e583a3a0625ced9d444caca21fa80723 100644 +index 1e8ec6f6cd7740fe6935d9c7a068c19490e16f9b..a2ee911497783f79a8da1142082a8236b28c9c6f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1901,6 +1901,7 @@ public class PurpurWorldConfig { +@@ -1903,6 +1903,7 @@ public class PurpurWorldConfig { public int witherHealthRegenDelay = 20; public double witherMaxHealth = 300.0D; public boolean witherCanRideVehicles = false; @@ -29,7 +29,7 @@ index 78e39c9424c296bf07f89d63ce42b02b96c2cd35..69d6ced8e583a3a0625ced9d444caca2 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1919,6 +1920,7 @@ public class PurpurWorldConfig { +@@ -1921,6 +1922,7 @@ public class PurpurWorldConfig { } witherMaxHealth = getDouble("mobs.wither.attributes.max_health", witherMaxHealth); witherCanRideVehicles = getBoolean("mobs.wither.can-ride-vehicles", witherCanRideVehicles); diff --git a/patches/server/0204-Config-for-changing-the-blocks-that-turn-into-paths.patch b/patches/server/0204-Config-for-changing-the-blocks-that-turn-into-paths.patch index dcd14ca073..35022c8c90 100644 --- a/patches/server/0204-Config-for-changing-the-blocks-that-turn-into-paths.patch +++ b/patches/server/0204-Config-for-changing-the-blocks-that-turn-into-paths.patch @@ -18,10 +18,10 @@ index 9ba8ae49e18fb8714b434715bd669b8e22004cd7..c0c87d0dc8d6f02597219cd6a74e6ed7 if (iblockdata1 != null && world.getType(blockposition.up()).isAir()) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 69d6ced8e583a3a0625ced9d444caca21fa80723..cb5e89e544320746f1fc0f95dbce1cb110873267 100644 +index a2ee911497783f79a8da1142082a8236b28c9c6f..10590525f70e080ce7ffe6d7a3d908c2b60f8810 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -457,6 +457,18 @@ public class PurpurWorldConfig { +@@ -459,6 +459,18 @@ public class PurpurWorldConfig { totemOfUndyingWorksInInventory = getBoolean("gameplay-mechanics.player.totem-of-undying-works-in-inventory", totemOfUndyingWorksInInventory); } From 7ee3393e30673d71815b0bb8b0047d3f45469f54 Mon Sep 17 00:00:00 2001 From: Bierque Jason Date: Mon, 3 May 2021 00:42:41 +0200 Subject: [PATCH 11/40] Add config for the piston push limit (#311) --- ...ange-the-thrust-limit-of-a-piston-by.patch | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 patches/server/0205-Allows-you-to-change-the-thrust-limit-of-a-piston-by.patch diff --git a/patches/server/0205-Allows-you-to-change-the-thrust-limit-of-a-piston-by.patch b/patches/server/0205-Allows-you-to-change-the-thrust-limit-of-a-piston-by.patch new file mode 100644 index 0000000000..e533584de0 --- /dev/null +++ b/patches/server/0205-Allows-you-to-change-the-thrust-limit-of-a-piston-by.patch @@ -0,0 +1,60 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: DoctaEnkoda +Date: Sun, 2 May 2021 23:14:54 +0200 +Subject: [PATCH] Allows you to change the thrust limit of a piston by World + + +diff --git a/src/main/java/net/minecraft/world/level/block/piston/PistonExtendsChecker.java b/src/main/java/net/minecraft/world/level/block/piston/PistonExtendsChecker.java +index 6c9c4ab65b7e42efa68027057242e25b70313081..cbe34059659e0f80ff384508b01e516cd7c5e28a 100644 +--- a/src/main/java/net/minecraft/world/level/block/piston/PistonExtendsChecker.java ++++ b/src/main/java/net/minecraft/world/level/block/piston/PistonExtendsChecker.java +@@ -12,7 +12,7 @@ import net.minecraft.world.level.material.EnumPistonReaction; + + public class PistonExtendsChecker { + +- private final World a; ++ private final World a; public World getWorld() { return a; } // Purpur - OBFHELPER + private final BlockPosition b; + private final boolean c; + private final BlockPosition d; +@@ -86,7 +86,7 @@ public class PistonExtendsChecker { + } else { + int i = 1; + +- if (i + this.f.size() > 12) { ++ if (i + this.f.size() > this.getWorld().purpurConfig.pistonBlockPushLimit) { // Purpur + return false; + } else { + while (a(block)) { +@@ -100,7 +100,7 @@ public class PistonExtendsChecker { + } + + ++i; +- if (i + this.f.size() > 12) { ++ if (i + this.f.size() > this.getWorld().purpurConfig.pistonBlockPushLimit) { // Purpur + return false; + } + } +@@ -148,7 +148,7 @@ public class PistonExtendsChecker { + return true; + } + +- if (this.f.size() >= 12) { ++ if (this.f.size() >= this.getWorld().purpurConfig.pistonBlockPushLimit) { // Purpur + return false; + } + +diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +index 10590525f70e080ce7ffe6d7a3d908c2b60f8810..d9c836dd20d104cb9997d7fa0b88bb87d70d0bce 100644 +--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java ++++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +@@ -2147,4 +2147,9 @@ public class PurpurWorldConfig { + magmaBlockDamageWhenSneaking = getBoolean("blocks.magma-block.damage-when-sneaking", magmaBlockDamageWhenSneaking); + magmaBlockDamageWithFrostWalker = getBoolean("blocks.magma-block.damage-with-frost-walker", magmaBlockDamageWithFrostWalker); + } ++ ++ public int pistonBlockPushLimit = 12; ++ private void pistonSettings() { ++ pistonBlockPushLimit = getInt("blocks.piston.block-push-limit", pistonBlockPushLimit); ++ } + } From 8b2607c7b171209e5e0e9cb6fc3e1dc0d1843555 Mon Sep 17 00:00:00 2001 From: Bierque Jason Date: Mon, 3 May 2021 17:22:27 +0200 Subject: [PATCH 12/40] Config for only sending advancements to affected players (#312) --- ...y-progress-messages-by-player-instea.patch | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 patches/server/0206-Allows-to-display-progress-messages-by-player-instea.patch diff --git a/patches/server/0206-Allows-to-display-progress-messages-by-player-instea.patch b/patches/server/0206-Allows-to-display-progress-messages-by-player-instea.patch new file mode 100644 index 0000000000..a472daa7ae --- /dev/null +++ b/patches/server/0206-Allows-to-display-progress-messages-by-player-instea.patch @@ -0,0 +1,74 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: DoctaEnkoda +Date: Mon, 3 May 2021 01:33:14 +0200 +Subject: [PATCH] Allows to display progress messages by player instead to + everyone on the server. + + +diff --git a/src/main/java/net/minecraft/advancements/Advancement.java b/src/main/java/net/minecraft/advancements/Advancement.java +index 8bfd20ff9a3c96fa9ff5cc618ca7e858e62943a0..97479cacc2a3f7850df8647f78d7dbb5710ae27b 100644 +--- a/src/main/java/net/minecraft/advancements/Advancement.java ++++ b/src/main/java/net/minecraft/advancements/Advancement.java +@@ -125,6 +125,7 @@ public class Advancement { + return this.requirements; + } + ++ public IChatBaseComponent getChatComponent() { return j(); } // Purpur - OBFHELPER + public IChatBaseComponent j() { + return this.chatComponent; + } +diff --git a/src/main/java/net/minecraft/advancements/AdvancementFrameType.java b/src/main/java/net/minecraft/advancements/AdvancementFrameType.java +index f096ecf8d77b085e6c2ef4c3b64f0b65409bb287..bfa86826b93a2eee7f22203ca09250e15f12d217 100644 +--- a/src/main/java/net/minecraft/advancements/AdvancementFrameType.java ++++ b/src/main/java/net/minecraft/advancements/AdvancementFrameType.java +@@ -31,6 +31,7 @@ public enum AdvancementFrameType { + this.g = new ChatMessage("advancements.toast." + s); + } + ++ public String getName() { return a(); } // Purpur - OBFHELPER + public String a() { + return this.d; + } +diff --git a/src/main/java/net/minecraft/server/AdvancementDataPlayer.java b/src/main/java/net/minecraft/server/AdvancementDataPlayer.java +index 59d781b5e61c5d2c004bc92300d8d42e81821308..e43c96c493b91ec62c75f75f9ca3022cb49de279 100644 +--- a/src/main/java/net/minecraft/server/AdvancementDataPlayer.java ++++ b/src/main/java/net/minecraft/server/AdvancementDataPlayer.java +@@ -59,7 +59,7 @@ public class AdvancementDataPlayer { + private static final TypeToken> c = new TypeToken>() { + }; + private final DataFixer d; +- private final PlayerList e; ++ private final PlayerList e; public PlayerList getPlayerList() { return e; } // Purpur - OBFHELPER + private final File f; + public final Map data = Maps.newLinkedHashMap(); + private final Set h = Sets.newLinkedHashSet(); +@@ -317,7 +317,14 @@ public class AdvancementDataPlayer { + this.player.world.getServer().getPluginManager().callEvent(new org.bukkit.event.player.PlayerAdvancementDoneEvent(this.player.getBukkitEntity(), advancement.bukkit)); // CraftBukkit + advancement.d().a(this.player); + if (advancement.c() != null && advancement.c().i() && this.player.world.getGameRules().getBoolean(GameRules.ANNOUNCE_ADVANCEMENTS)) { +- this.e.sendMessage(new ChatMessage("chat.type.advancement." + advancement.c().e().a(), new Object[]{this.player.getScoreboardDisplayName(), advancement.j()}), ChatMessageType.SYSTEM, SystemUtils.b); ++ // Purpur Start - AdvancementMessage By Player ++ ChatMessage advancementMessage = new ChatMessage("chat.type.advancement." + advancement.getDisplay().getFrameType().getName(), this.player.getScoreboardDisplayName(), advancement.getChatComponent()); ++ if (net.pl3x.purpur.PurpurConfig.advancementOnlyBroadcastToAffectedPlayer) { ++ this.player.sendMessage(advancementMessage, SystemUtils.getNullUUID()); ++ } else { ++ getPlayerList().sendMessage(advancementMessage, ChatMessageType.SYSTEM, SystemUtils.getNullUUID()); ++ } ++ // Purpur End + } + } + } +diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java +index 56424e45c04e7165c0671f74cdcd0147d1069af7..7e8654e4df61527f33d4fce2afdb14e29b90a4c2 100644 +--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java ++++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java +@@ -287,4 +287,9 @@ public class PurpurConfig { + private static void tpsCatchup() { + tpsCatchup = getBoolean("settings.tps-catchup", tpsCatchup); + } ++ ++ public static boolean advancementOnlyBroadcastToAffectedPlayer = false; ++ private static void advancementSettings() { ++ advancementOnlyBroadcastToAffectedPlayer = getBoolean("settings.advancement.only-broadcast-to-affected-player", advancementOnlyBroadcastToAffectedPlayer ); ++ } + } From a86555bb5de40b5c73b495295ceedb7504b0921b Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Mon, 3 May 2021 10:41:46 -0500 Subject: [PATCH 13/40] Updated Upstream (Paper) Upstream has released updates that appear to apply and compile correctly Paper Changes: 99a66a583 [Auto] Updated Upstream (CraftBukkit) 976c6d425 [CI-SKIP] [Auto] Rebuild Patches 51deec726 Drop unneeded portal patch (#5566) 07a18c457 [Auto] Updated Upstream (CraftBukkit) 6733d7875 [Auto] Updated Upstream (Bukkit) --- Paper | 2 +- patches/server/0097-Dispensers-place-anvils-option.patch | 4 ++-- ...Allows-to-display-progress-messages-by-player-instea.patch | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Paper b/Paper index 9958447cba..99a66a5838 160000 --- a/Paper +++ b/Paper @@ -1 +1 @@ -Subproject commit 9958447cbaca4c3ca9dc4c625d7e95a932c82f52 +Subproject commit 99a66a583831628db1c31dd8da30be48e4bdcea3 diff --git a/patches/server/0097-Dispensers-place-anvils-option.patch b/patches/server/0097-Dispensers-place-anvils-option.patch index 03062b6505..7b0f898285 100644 --- a/patches/server/0097-Dispensers-place-anvils-option.patch +++ b/patches/server/0097-Dispensers-place-anvils-option.patch @@ -33,7 +33,7 @@ index 0a40df2151bd388b6633a6f50b14f1f41ed4ce62..3ff1d8b3dfaeb875e5e70b97abb79a21 return this.k; } diff --git a/src/main/java/net/minecraft/core/dispenser/IDispenseBehavior.java b/src/main/java/net/minecraft/core/dispenser/IDispenseBehavior.java -index 93093c05da53e5ddc59fac179081af2e0893706d..a6f74fc09843de9ad5af5c45e303e754ceea2c6d 100644 +index 0055a96b51a1d38d31e129c417c97bcfc9d0b745..31237773907341ee64c71507b5e1bf247ef2c524 100644 --- a/src/main/java/net/minecraft/core/dispenser/IDispenseBehavior.java +++ b/src/main/java/net/minecraft/core/dispenser/IDispenseBehavior.java @@ -52,6 +52,7 @@ import net.minecraft.world.level.IMaterial; @@ -44,7 +44,7 @@ index 93093c05da53e5ddc59fac179081af2e0893706d..a6f74fc09843de9ad5af5c45e303e754 import net.minecraft.world.level.block.BlockBeehive; import net.minecraft.world.level.block.BlockCampfire; import net.minecraft.world.level.block.BlockDispenser; -@@ -989,6 +990,23 @@ public interface IDispenseBehavior { +@@ -995,6 +996,23 @@ public interface IDispenseBehavior { } })); BlockDispenser.a((IMaterial) Items.SHEARS.getItem(), (IDispenseBehavior) (new DispenseBehaviorShears())); diff --git a/patches/server/0206-Allows-to-display-progress-messages-by-player-instea.patch b/patches/server/0206-Allows-to-display-progress-messages-by-player-instea.patch index a472daa7ae..b8d9435ffe 100644 --- a/patches/server/0206-Allows-to-display-progress-messages-by-player-instea.patch +++ b/patches/server/0206-Allows-to-display-progress-messages-by-player-instea.patch @@ -30,7 +30,7 @@ index f096ecf8d77b085e6c2ef4c3b64f0b65409bb287..bfa86826b93a2eee7f22203ca09250e1 return this.d; } diff --git a/src/main/java/net/minecraft/server/AdvancementDataPlayer.java b/src/main/java/net/minecraft/server/AdvancementDataPlayer.java -index 59d781b5e61c5d2c004bc92300d8d42e81821308..e43c96c493b91ec62c75f75f9ca3022cb49de279 100644 +index 59d781b5e61c5d2c004bc92300d8d42e81821308..b81a0e1c3ff3d749b6bbd9efdbc7823d1c631b8e 100644 --- a/src/main/java/net/minecraft/server/AdvancementDataPlayer.java +++ b/src/main/java/net/minecraft/server/AdvancementDataPlayer.java @@ -59,7 +59,7 @@ public class AdvancementDataPlayer { From 83665826a919ff5a481f0917975254e80ea08489 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Mon, 3 May 2021 13:32:36 -0500 Subject: [PATCH 14/40] Resolve #286 - Add config and API for item immunity to lightning --- patches/api/0025-Item-entity-immunities.patch | 18 ++- .../server/0076-Item-entity-immunities.patch | 113 ++++++++---------- .../0078-Configurable-jockey-options.patch | 8 +- ...ed-to-crystals-and-crystals-shoot-ph.patch | 4 +- .../0080-Add-phantom-spawning-options.patch | 4 +- ...0081-Implement-bed-explosion-options.patch | 4 +- ...ent-respawn-anchor-explosion-options.patch | 4 +- patches/server/0085-Entity-lifespan.patch | 2 +- ...leport-to-spawn-if-outside-world-bor.patch | 4 +- patches/server/0087-Squid-EAR-immunity.patch | 4 +- .../server/0090-Phantoms-burn-in-light.patch | 6 +- .../0091-Configurable-villager-breeding.patch | 6 +- .../0092-Redstone-deactivates-spawners.patch | 4 +- .../0093-Totems-work-in-inventory.patch | 4 +- ...5-Add-vindicator-johnny-spawn-chance.patch | 2 +- .../0097-Dispensers-place-anvils-option.patch | 4 +- patches/server/0098-Allow-anvil-colors.patch | 4 +- .../0099-Add-no-random-tick-block-list.patch | 4 +- ...o-disable-dolphin-treasure-searching.patch | 4 +- ...Stop-squids-floating-on-top-of-water.patch | 4 +- patches/server/0103-Ridables.patch | 18 +-- ...tities-can-use-portals-configuration.patch | 6 +- ...stomizable-wither-health-and-healing.patch | 4 +- ...ggling-special-MobSpawners-per-world.patch | 4 +- .../server/0110-Raid-cooldown-setting.patch | 6 +- ...e-config-options-per-projectile-type.patch | 4 +- ...sable-zombie-aggressiveness-towards-.patch | 4 +- ...tent-TileEntity-Lore-and-DisplayName.patch | 6 +- patches/server/0115-Flying-squids-Oh-my.patch | 4 +- .../server/0116-Infinity-bow-settings.patch | 4 +- patches/server/0117-Stonecutter-damage.patch | 4 +- .../0118-Configurable-daylight-cycle.patch | 2 +- .../server/0120-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 | 38 +++--- ...mes-from-item-forms-of-entities-to-e.patch | 6 +- ...-when-using-a-Name-Tag-on-an-Armor-S.patch | 2 +- ...sting-and-weeping-vines-growth-rates.patch | 4 +- ...-twisting-vines-configurable-max-gro.patch | 6 +- ...llowing-Endermen-to-despawn-even-whi.patch | 4 +- ...132-Add-configurable-snowball-damage.patch | 4 +- ...break-door-minimum-difficulty-option.patch | 6 +- ...37-Changeable-Mob-Left-Handed-Chance.patch | 2 +- .../0138-Add-boat-fall-damage-config.patch | 6 +- ...-disable-saving-projectiles-to-disk-.patch | 2 +- .../0140-Snow-Golem-rate-of-fire-config.patch | 4 +- ...-climbing-should-not-bypass-cramming.patch | 2 +- .../0144-Lobotomize-stuck-villagers.patch | 6 +- ...Villager-Clerics-to-farm-Nether-Wart.patch | 6 +- ...fied-Piglin-death-always-counting-as.patch | 4 +- ...ble-chance-for-wolves-to-spawn-rabid.patch | 4 +- ...nfigurable-default-wolf-collar-color.patch | 4 +- ...-Configurable-entity-base-attributes.patch | 52 ++++---- .../server/0151-Phantom-flames-on-swoop.patch | 6 +- ...s-to-open-even-with-a-solid-block-on.patch | 4 +- .../0154-Striders-give-saddle-back.patch | 4 +- ...therite-armor-grants-fire-resistance.patch | 4 +- patches/server/0158-Add-MC-4-fix-back.patch | 4 +- ...iefing-bypass-to-everything-affected.patch | 42 +++---- ...allow-Note-Block-sounds-when-blocked.patch | 6 +- ...0161-Add-EntityTeleportHinderedEvent.patch | 4 +- .../0163-Farmland-trampling-changes.patch | 4 +- ...64-Movement-options-for-armor-stands.patch | 2 +- .../server/0165-Fix-stuck-in-portals.patch | 4 +- ...-to-use-infinity-bows-without-arrows.patch | 4 +- ...oggle-for-water-sensitive-mob-damage.patch | 18 +-- ...68-Config-to-always-tame-in-Creative.patch | 6 +- .../0169-End-crystal-explosion-options.patch | 4 +- ...0171-Add-ghast-allow-griefing-option.patch | 6 +- ...ither-Ender-Dragon-can-ride-vehicles.patch | 10 +- .../server/0173-Dont-run-with-scissors.patch | 10 +- patches/server/0174-One-Punch-Man.patch | 6 +- ...0175-Add-config-for-snow-on-blue-ice.patch | 4 +- ...er-Pearl-cooldown-damage-and-Endermi.patch | 8 +- ...-to-ignore-nearby-mobs-when-sleeping.patch | 6 +- ...Enderman-to-aggro-spawned-Endermites.patch | 6 +- ...-Dragon-Head-wearers-and-stare-aggro.patch | 6 +- patches/server/0181-Tick-fluids-config.patch | 4 +- ...182-Config-to-disable-Llama-caravans.patch | 6 +- ...ig-to-make-Creepers-explode-on-death.patch | 4 +- ...urable-ravager-griefable-blocks-list.patch | 6 +- ...0185-Sneak-to-bulk-process-composter.patch | 4 +- .../0186-Config-for-skipping-night.patch | 6 +- ...0187-Add-config-for-villager-trading.patch | 10 +- patches/server/0189-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 | 2 +- ...ption-to-make-doors-require-redstone.patch | 4 +- .../0195-Configurable-sponge-absorption.patch | 4 +- .../0196-Projectile-offset-config.patch | 4 +- ...for-powered-rail-activation-distance.patch | 4 +- .../0198-Piglin-portal-spawn-modifier.patch | 6 +- ...ble-damage-settings-for-magma-blocks.patch | 4 +- ...1-Config-for-wither-explosion-radius.patch | 6 +- ...ging-the-blocks-that-turn-into-paths.patch | 4 +- ...ange-the-thrust-limit-of-a-piston-by.patch | 4 +- 98 files changed, 362 insertions(+), 359 deletions(-) diff --git a/patches/api/0025-Item-entity-immunities.patch b/patches/api/0025-Item-entity-immunities.patch index 7356fb0bc1..0d320bc5f8 100644 --- a/patches/api/0025-Item-entity-immunities.patch +++ b/patches/api/0025-Item-entity-immunities.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Item entity immunities diff --git a/src/main/java/org/bukkit/entity/Item.java b/src/main/java/org/bukkit/entity/Item.java -index 0ee072645ecf1bf5feb74de6960947ef76db366e..69dae9157053c521a9e2bbdd7f89c17fc8d24840 100644 +index 0ee072645ecf1bf5feb74de6960947ef76db366e..5b9a20e0695218f1239d2bf1d0368291e2a10c06 100644 --- a/src/main/java/org/bukkit/entity/Item.java +++ b/src/main/java/org/bukkit/entity/Item.java -@@ -120,4 +120,48 @@ public interface Item extends Entity { +@@ -120,4 +120,62 @@ public interface Item extends Entity { */ public void setWillAge(boolean willAge); // Paper end @@ -55,5 +55,19 @@ index 0ee072645ecf1bf5feb74de6960947ef76db366e..69dae9157053c521a9e2bbdd7f89c17f + * @return True if immune to fire + */ + boolean isImmuneToFire(); ++ ++ /** ++ * Set whether or not this item is immune to lightning ++ * ++ * @param immuneToLightning True to make immune to lightning ++ */ ++ void setImmuneToLightning(boolean immuneToLightning); ++ ++ /** ++ * Check if item is immune to lightning ++ * ++ * @return True if immune to lightning ++ */ ++ boolean isImmuneToLightning(); + // Purpur end } diff --git a/patches/server/0076-Item-entity-immunities.patch b/patches/server/0076-Item-entity-immunities.patch index 5017886019..3eecce6832 100644 --- a/patches/server/0076-Item-entity-immunities.patch +++ b/patches/server/0076-Item-entity-immunities.patch @@ -5,18 +5,10 @@ Subject: [PATCH] Item entity immunities diff --git a/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java -index 53e773c14689967d5b12467bf209eefb05f7a812..04c4012d2f57025c28607c12b71cd1737ed7cac5 100644 +index 53e773c14689967d5b12467bf209eefb05f7a812..b8f9238c598a55ba796951cb775cd35f3a401fa8 100644 --- a/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java +++ b/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java -@@ -31,6 +31,7 @@ import net.minecraft.world.entity.EntityLiving; - import net.minecraft.world.entity.EnumItemSlot; - import net.minecraft.world.entity.ai.attributes.AttributeModifiable; - import net.minecraft.world.entity.decoration.EntityItemFrame; -+import net.minecraft.world.entity.item.EntityItem; - import net.minecraft.world.entity.player.EntityHuman; - import net.minecraft.world.entity.projectile.EntityArrow; - import net.minecraft.world.item.ItemStack; -@@ -67,7 +68,7 @@ public class EntityTrackerEntry { +@@ -67,7 +67,7 @@ public class EntityTrackerEntry { private boolean q; private boolean r; // CraftBukkit start @@ -25,22 +17,6 @@ index 53e773c14689967d5b12467bf209eefb05f7a812..04c4012d2f57025c28607c12b71cd173 // Paper start private java.util.Map trackedPlayerMap = null; -@@ -134,6 +135,15 @@ public class EntityTrackerEntry { - this.c(); - } - -+ // Purpur start - respawn burning item entities on client (client kills them) -+ if (tracker.fireTicks > 0 && tracker instanceof EntityItem) { -+ EntityItem item = (EntityItem) tracker; -+ if (item.immuneToFire && !item.dead) { -+ item.respawnOnClient(); -+ } -+ } -+ // Purpur end -+ - if (this.tickCounter % this.d == 0 || this.tracker.impulse || this.tracker.getDataWatcher().a()) { - int i; - int j; diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java index 914c7a1b18151f29183cfe9474313ce18e7c4ae2..12c0a0cebc9db542a654ff2a2826f1bcf4a72baa 100644 --- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java @@ -67,60 +43,53 @@ index 0950dcce2353504775813d9f60407361981c801d..6c0b1bc0c710d5795d559fe98af6319a return this.O == tag; } diff --git a/src/main/java/net/minecraft/world/entity/item/EntityItem.java b/src/main/java/net/minecraft/world/entity/item/EntityItem.java -index 5dc3670f35b04d933e96c4b42aa9fbcf941e69c7..3b84039a76843a0784e2d71bb66dc322450c2cab 100644 +index 5dc3670f35b04d933e96c4b42aa9fbcf941e69c7..92cd61cd6b085a03c502223f3861540d8c9f27e1 100644 --- a/src/main/java/net/minecraft/world/entity/item/EntityItem.java +++ b/src/main/java/net/minecraft/world/entity/item/EntityItem.java -@@ -10,10 +10,12 @@ import net.minecraft.nbt.NBTTagCompound; - import net.minecraft.network.chat.ChatMessage; - import net.minecraft.network.chat.IChatBaseComponent; - import net.minecraft.network.protocol.Packet; -+import net.minecraft.network.protocol.game.PacketPlayOutEntityMetadata; - import net.minecraft.network.protocol.game.PacketPlayOutSpawnEntity; - import net.minecraft.network.syncher.DataWatcher; - import net.minecraft.network.syncher.DataWatcherObject; - import net.minecraft.network.syncher.DataWatcherRegistry; -+import net.minecraft.server.level.EntityPlayer; - import net.minecraft.server.level.WorldServer; - import net.minecraft.sounds.SoundEffects; - import net.minecraft.stats.StatisticList; -@@ -50,6 +52,9 @@ public class EntityItem extends Entity { +@@ -50,6 +50,12 @@ public class EntityItem extends Entity { public final float b; private int lastTick = MinecraftServer.currentTick - 1; // CraftBukkit public boolean canMobPickup = true; // Paper -+ public boolean immuneToCactus = false; // Purpur -+ public boolean immuneToExplosion = false; // Purpur -+ public boolean immuneToFire = false; // Purpur ++ // Purpur start ++ public boolean immuneToCactus = false; ++ public boolean immuneToExplosion = false; ++ public boolean immuneToFire = false; ++ public boolean immuneToLightning = false; ++ // Purpur end public EntityItem(EntityTypes entitytypes, World world) { super(entitytypes, world); -@@ -301,6 +306,16 @@ public class EntityItem extends Entity { +@@ -301,6 +307,16 @@ public class EntityItem extends Entity { return false; } else if (!this.getItemStack().getItem().a(damagesource)) { return false; + // Purpur start -+ } else if (immuneToCactus && damagesource == DamageSource.CACTUS) { -+ respawnOnClient(); -+ return false; -+ } else if (immuneToFire && (damagesource.isFire() || damagesource == DamageSource.FIRE)) { -+ return false; -+ } else if (immuneToExplosion && damagesource.isExplosion()) { ++ } else if ( ++ (immuneToCactus && damagesource == DamageSource.CACTUS) || ++ (immuneToFire && (damagesource.isFire() || damagesource == DamageSource.FIRE)) || ++ (immuneToLightning && damagesource == DamageSource.LIGHTNING) || ++ (immuneToExplosion && damagesource.isExplosion()) ++ ) { + respawnOnClient(); + return false; + // Purpur end } else { // CraftBukkit start if (org.bukkit.craftbukkit.event.CraftEventFactory.handleNonLivingEntityDamageEvent(this, damagesource, f)) { -@@ -481,6 +496,9 @@ public class EntityItem extends Entity { +@@ -481,6 +497,12 @@ public class EntityItem extends Entity { com.google.common.base.Preconditions.checkArgument(!itemstack.isEmpty(), "Cannot drop air"); // CraftBukkit this.getDataWatcher().set(EntityItem.ITEM, itemstack); this.getDataWatcher().markDirty(EntityItem.ITEM); // CraftBukkit - SPIGOT-4591, must mark dirty -+ if (world.purpurConfig.itemImmuneToCactus.contains(itemstack.getItem())) immuneToCactus = true; // Purpur -+ if (world.purpurConfig.itemImmuneToExplosion.contains(itemstack.getItem())) immuneToExplosion = true; // Purpur -+ if (world.purpurConfig.itemImmuneToFire.contains(itemstack.getItem())) immuneToFire = true; // Purpur ++ // Purpur start ++ if (world.purpurConfig.itemImmuneToCactus.contains(itemstack.getItem())) immuneToCactus = true; ++ if (world.purpurConfig.itemImmuneToExplosion.contains(itemstack.getItem())) immuneToExplosion = true; ++ if (world.purpurConfig.itemImmuneToFire.contains(itemstack.getItem())) immuneToFire = true; ++ if (world.purpurConfig.itemImmuneToLightning.contains(itemstack.getItem())) immuneToLightning = true; ++ // Purpur end } @Override -@@ -562,4 +580,15 @@ public class EntityItem extends Entity { +@@ -562,4 +584,15 @@ public class EntityItem extends Entity { super.setPositionRaw(x, y, z); } // Paper end - fix MC-4 @@ -128,8 +97,8 @@ index 5dc3670f35b04d933e96c4b42aa9fbcf941e69c7..3b84039a76843a0784e2d71bb66dc322 + // Purpur start + public void respawnOnClient() { + Packet spawnPacket = new PacketPlayOutSpawnEntity(this); -+ Packet metadataPacket = new PacketPlayOutEntityMetadata(getId(), getDataWatcher(), true); -+ for (EntityPlayer entityplayer : this.tracker.trackerEntry.trackedPlayers) { ++ Packet metadataPacket = new net.minecraft.network.protocol.game.PacketPlayOutEntityMetadata(getId(), getDataWatcher(), true); ++ for (net.minecraft.server.level.EntityPlayer entityplayer : this.tracker.trackerEntry.trackedPlayers) { + entityplayer.playerConnection.sendPacket(spawnPacket); + entityplayer.playerConnection.sendPacket(metadataPacket); + } @@ -137,16 +106,17 @@ index 5dc3670f35b04d933e96c4b42aa9fbcf941e69c7..3b84039a76843a0784e2d71bb66dc322 + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 5e577cd97df14463f590919b2931a5065ac37033..0a5661faee288bafc6683a8ed67ba74cd30adc75 100644 +index 5e577cd97df14463f590919b2931a5065ac37033..dfcceebc9fbfa62fc14f3c53217af8e39025307d 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -135,6 +135,39 @@ public class PurpurWorldConfig { +@@ -135,6 +135,49 @@ public class PurpurWorldConfig { } } + public List itemImmuneToCactus = new ArrayList<>(); + public List itemImmuneToExplosion = new ArrayList<>(); + public List itemImmuneToFire = new ArrayList<>(); ++ public List itemImmuneToLightning = new ArrayList<>(); + private void itemSettings() { + itemImmuneToCactus.clear(); + getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { @@ -175,16 +145,25 @@ index 5e577cd97df14463f590919b2931a5065ac37033..0a5661faee288bafc6683a8ed67ba74c + Item item = IRegistry.ITEM.get(new MinecraftKey(key.toString())); + if (item != Items.AIR) itemImmuneToFire.add(item); + }); ++ itemImmuneToLightning.clear(); ++ getList("gameplay-mechanics.item.immune.lightning", new ArrayList<>()).forEach(key -> { ++ if (key.toString().equals("*")) { ++ IRegistry.ITEM.g().filter(item -> item != Items.AIR).forEach((item) -> itemImmuneToLightning.add(item)); ++ return; ++ } ++ Item item = IRegistry.ITEM.get(new MinecraftKey(key.toString())); ++ if (item != Items.AIR) itemImmuneToLightning.add(item); ++ }); + } + public boolean idleTimeoutKick = true; public boolean idleTimeoutTickNearbyEntities = true; public boolean idleTimeoutCountAsSleeping = false; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java -index 7a78ef2f6f673568c0528fa46168c69d21f51a66..0418291a69216081353c05c99d11dcd913b6b8cb 100644 +index 7a78ef2f6f673568c0528fa46168c69d21f51a66..f91a04abe39f9a75530a213cd84e5024059752d1 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java -@@ -114,4 +114,36 @@ public class CraftItem extends CraftEntity implements Item { +@@ -114,4 +114,46 @@ public class CraftItem extends CraftEntity implements Item { public EntityType getType() { return EntityType.DROPPED_ITEM; } @@ -219,5 +198,15 @@ index 7a78ef2f6f673568c0528fa46168c69d21f51a66..0418291a69216081353c05c99d11dcd9 + public boolean isImmuneToFire() { + return item.immuneToFire; + } ++ ++ @Override ++ public void setImmuneToLightning(boolean immuneToLightning) { ++ item.immuneToLightning = immuneToLightning; ++ } ++ ++ @Override ++ public boolean isImmuneToLightning() { ++ return item.immuneToLightning; ++ } + // Purpur end } diff --git a/patches/server/0078-Configurable-jockey-options.patch b/patches/server/0078-Configurable-jockey-options.patch index e6eacab683..fae4b907ef 100644 --- a/patches/server/0078-Configurable-jockey-options.patch +++ b/patches/server/0078-Configurable-jockey-options.patch @@ -193,10 +193,10 @@ index f341759f6110b51c856de09248d2f523c58aa712..99d0932e5352589cfbcc48a5e789651d protected void initDatawatcher() { super.initDatawatcher(); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 0a5661faee288bafc6683a8ed67ba74cd30adc75..9e39cff151d6edc671ecb4d09e8eaace21974f67 100644 +index dfcceebc9fbfa62fc14f3c53217af8e39025307d..a12c2ae8291114f17bbb05761272bf724f848b1c 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -311,6 +311,15 @@ public class PurpurWorldConfig { +@@ -321,6 +321,15 @@ public class PurpurWorldConfig { creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance); } @@ -212,7 +212,7 @@ index 0a5661faee288bafc6683a8ed67ba74cd30adc75..9e39cff151d6edc671ecb4d09e8eaace public boolean enderDragonAlwaysDropsFullExp = false; private void enderDragonSettings() { enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp); -@@ -348,6 +357,15 @@ public class PurpurWorldConfig { +@@ -358,6 +367,15 @@ public class PurpurWorldConfig { giantMaxHealth = getDouble("mobs.giant.attributes.max-health", giantMaxHealth); } @@ -228,7 +228,7 @@ index 0a5661faee288bafc6683a8ed67ba74cd30adc75..9e39cff151d6edc671ecb4d09e8eaace public double illusionerMovementSpeed = 0.5D; public double illusionerFollowRange = 18.0D; public double illusionerMaxHealth = 32.0D; -@@ -423,8 +441,35 @@ public class PurpurWorldConfig { +@@ -433,8 +451,35 @@ public class PurpurWorldConfig { witherSkeletonTakesWitherDamage = getBoolean("mobs.wither_skeleton.takes-wither-damage", witherSkeletonTakesWitherDamage); } diff --git a/patches/server/0079-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch b/patches/server/0079-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch index cd0163432f..5d442f7434 100644 --- a/patches/server/0079-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch +++ b/patches/server/0079-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch @@ -350,10 +350,10 @@ index 42cf3fa42b73739182d26fbb524ee5b304c799b2..daf738e8f0987aa6ab200189d7a26d16 return entityliving != null ? EntityPhantom.this.a(EntityPhantom.this.getGoalTarget(), PathfinderTargetCondition.a) : false; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 9e39cff151d6edc671ecb4d09e8eaace21974f67..7382624113fba008c55bd32a5e31afb36c6e4268 100644 +index a12c2ae8291114f17bbb05761272bf724f848b1c..3aec221db2cd425bc5188979bb0fc0625ca40f4a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -385,6 +385,15 @@ public class PurpurWorldConfig { +@@ -395,6 +395,15 @@ public class PurpurWorldConfig { ironGolemCanSwim = getBoolean("mobs.iron_golem.can-swim", ironGolemCanSwim); } diff --git a/patches/server/0080-Add-phantom-spawning-options.patch b/patches/server/0080-Add-phantom-spawning-options.patch index b7ebcd39f2..7b59963d51 100644 --- a/patches/server/0080-Add-phantom-spawning-options.patch +++ b/patches/server/0080-Add-phantom-spawning-options.patch @@ -262,10 +262,10 @@ index e4f5e570636862481aac92ec9b74d6cf5723eb6e..e954adeff4fbfc1aa85ac3785c0c4c86 } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 7382624113fba008c55bd32a5e31afb36c6e4268..f2bde528e766c330a3e8b2d08e590a760ac38df5 100644 +index 3aec221db2cd425bc5188979bb0fc0625ca40f4a..d957ee4c10fde8596442f2f05f0347994df7bae5 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -388,10 +388,34 @@ public class PurpurWorldConfig { +@@ -398,10 +398,34 @@ public class PurpurWorldConfig { public double phantomAttackedByCrystalRadius = 0.0D; public float phantomAttackedByCrystalDamage = 1.0F; public double phantomOrbitCrystalRadius = 0.0D; diff --git a/patches/server/0081-Implement-bed-explosion-options.patch b/patches/server/0081-Implement-bed-explosion-options.patch index 88b27cfb0f..fb42837554 100644 --- a/patches/server/0081-Implement-bed-explosion-options.patch +++ b/patches/server/0081-Implement-bed-explosion-options.patch @@ -18,7 +18,7 @@ index abe0a1c309d526de37efcac44922fa259e1d112c..db9ef25d0578538fd7c7950a3b3d0345 } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index f2bde528e766c330a3e8b2d08e590a760ac38df5..f7e2f48c192c2f07e3664591a53ecf1ddc3509a4 100644 +index d957ee4c10fde8596442f2f05f0347994df7bae5..83f43b44946a9e5aeecacae776684934685d79ac 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -1,6 +1,7 @@ @@ -37,7 +37,7 @@ index f2bde528e766c330a3e8b2d08e590a760ac38df5..f7e2f48c192c2f07e3664591a53ecf1d import static net.pl3x.purpur.PurpurConfig.log; -@@ -248,6 +250,22 @@ public class PurpurWorldConfig { +@@ -258,6 +260,22 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0082-Implement-respawn-anchor-explosion-options.patch b/patches/server/0082-Implement-respawn-anchor-explosion-options.patch index cc8f983a8e..9c9686eed2 100644 --- a/patches/server/0082-Implement-respawn-anchor-explosion-options.patch +++ b/patches/server/0082-Implement-respawn-anchor-explosion-options.patch @@ -30,10 +30,10 @@ index 028e98decf8b0496b4ebcd1aad3aa474e5c4e7c1..9b7a7f1ae50baf53d314bbf1588afeb8 public static boolean a(World world) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index f7e2f48c192c2f07e3664591a53ecf1ddc3509a4..1a5a2df0b1fbd483977a5056231c02375adca42d 100644 +index 83f43b44946a9e5aeecacae776684934685d79ac..9d7f7fc586200206ff87dfa463479150ed8cd5f1 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -287,6 +287,22 @@ public class PurpurWorldConfig { +@@ -297,6 +297,22 @@ public class PurpurWorldConfig { lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether); } diff --git a/patches/server/0085-Entity-lifespan.patch b/patches/server/0085-Entity-lifespan.patch index 23e7dc885c..573138967a 100644 --- a/patches/server/0085-Entity-lifespan.patch +++ b/patches/server/0085-Entity-lifespan.patch @@ -104,7 +104,7 @@ index 84995be65d033dd712211e1e479675815099c3b1..e10377b379079bc467a60abe719075c5 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 1a5a2df0b1fbd483977a5056231c02375adca42d..521c3739a1ca08619f30839c77618cae83ad8345 100644 +index 9d7f7fc586200206ff87dfa463479150ed8cd5f1..fa003079da19ee63a02045d57ea3d6cf64578ebd 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -137,6 +137,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0086-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch b/patches/server/0086-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch index d61a3eac35..137f5119d9 100644 --- a/patches/server/0086-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch +++ b/patches/server/0086-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch @@ -56,10 +56,10 @@ index 90c931f95dffbf9697ae4678a23d7c142c504a81..620bccdc44d3325dcb4450af979363ee } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 521c3739a1ca08619f30839c77618cae83ad8345..c51ae8047c9c91f5e0016095ac4383a5874a7dfb 100644 +index fa003079da19ee63a02045d57ea3d6cf64578ebd..cd9970db68b6c2f358115b616c36f52ad324fc90 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -232,6 +232,11 @@ public class PurpurWorldConfig { +@@ -242,6 +242,11 @@ public class PurpurWorldConfig { playerInvulnerableWhileAcceptingResourcePack = getBoolean("gameplay-mechanics.player.invulnerable-while-accepting-resource-pack", playerInvulnerableWhileAcceptingResourcePack); } diff --git a/patches/server/0087-Squid-EAR-immunity.patch b/patches/server/0087-Squid-EAR-immunity.patch index 002899c163..222d6917cd 100644 --- a/patches/server/0087-Squid-EAR-immunity.patch +++ b/patches/server/0087-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 c51ae8047c9c91f5e0016095ac4383a5874a7dfb..923e119d3dc3f3a8c5e5d4770cf15d8fdf5b0746 100644 +index cd9970db68b6c2f358115b616c36f52ad324fc90..86578f20429aa6bf5f3de1233c6287ce26be9827 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -489,6 +489,11 @@ public class PurpurWorldConfig { +@@ -499,6 +499,11 @@ public class PurpurWorldConfig { snowGolemPutPumpkinBack = getBoolean("mobs.snow_golem.pumpkin-can-be-added-back", snowGolemPutPumpkinBack); } diff --git a/patches/server/0090-Phantoms-burn-in-light.patch b/patches/server/0090-Phantoms-burn-in-light.patch index 5d2f98094b..847da03927 100644 --- a/patches/server/0090-Phantoms-burn-in-light.patch +++ b/patches/server/0090-Phantoms-burn-in-light.patch @@ -86,10 +86,10 @@ index 993a88a5937417016821ef9d7cd58e4ee097491c..64b4fcf6f43c39db0fe57fc7a74f0d95 public static final Item dr = a(Blocks.JACK_O_LANTERN, CreativeModeTab.b); public static final Item ds = a(Blocks.OAK_TRAPDOOR, CreativeModeTab.d); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 923e119d3dc3f3a8c5e5d4770cf15d8fdf5b0746..ec43eb76340c8d0e3c1dbabc5d0ebd80096f24a7 100644 +index 86578f20429aa6bf5f3de1233c6287ce26be9827..201974ec4db915e5a79ed36625f0870a7ff84207 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -444,6 +444,9 @@ public class PurpurWorldConfig { +@@ -454,6 +454,9 @@ public class PurpurWorldConfig { public int phantomSpawnOverheadRadius = 10; public int phantomSpawnMinPerAttempt = 1; public int phantomSpawnMaxPerAttempt = -1; @@ -99,7 +99,7 @@ index 923e119d3dc3f3a8c5e5d4770cf15d8fdf5b0746..ec43eb76340c8d0e3c1dbabc5d0ebd80 private void phantomSettings() { phantomAttackedByCrystalRadius = getDouble("mobs.phantom.attacked-by-crystal-range", phantomAttackedByCrystalRadius); phantomAttackedByCrystalDamage = (float) getDouble("mobs.phantom.attacked-by-crystal-damage", phantomAttackedByCrystalDamage); -@@ -460,6 +463,9 @@ public class PurpurWorldConfig { +@@ -470,6 +473,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/0091-Configurable-villager-breeding.patch b/patches/server/0091-Configurable-villager-breeding.patch index 323f922882..77dee4bdd4 100644 --- a/patches/server/0091-Configurable-villager-breeding.patch +++ b/patches/server/0091-Configurable-villager-breeding.patch @@ -18,10 +18,10 @@ index 2fad37812bfa39872e99c4432e1982d62f65efb7..d3032682af94428419daa02f55b60400 private boolean fr() { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index ec43eb76340c8d0e3c1dbabc5d0ebd80096f24a7..7f449035819f148d5b8cf492da059f1c40cdf1be 100644 +index 201974ec4db915e5a79ed36625f0870a7ff84207..db5638c4f2b6d672e619c9ba44184b6d9fe113a1 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -507,6 +507,7 @@ public class PurpurWorldConfig { +@@ -517,6 +517,7 @@ public class PurpurWorldConfig { public boolean villagerFollowEmeraldBlock = false; public int villagerSpawnIronGolemRadius = 0; public int villagerSpawnIronGolemLimit = 0; @@ -29,7 +29,7 @@ index ec43eb76340c8d0e3c1dbabc5d0ebd80096f24a7..7f449035819f148d5b8cf492da059f1c private void villagerSettings() { villagerBrainTicks = getInt("mobs.villager.brain-ticks", villagerBrainTicks); villagerUseBrainTicksOnlyWhenLagging = getBoolean("mobs.villager.use-brain-ticks-only-when-lagging", villagerUseBrainTicksOnlyWhenLagging); -@@ -515,6 +516,7 @@ public class PurpurWorldConfig { +@@ -525,6 +526,7 @@ public class PurpurWorldConfig { villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock); villagerSpawnIronGolemRadius = getInt("mobs.villager.spawn-iron-golem.radius", villagerSpawnIronGolemRadius); villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit); diff --git a/patches/server/0092-Redstone-deactivates-spawners.patch b/patches/server/0092-Redstone-deactivates-spawners.patch index 75cca15927..281da9a683 100644 --- a/patches/server/0092-Redstone-deactivates-spawners.patch +++ b/patches/server/0092-Redstone-deactivates-spawners.patch @@ -26,10 +26,10 @@ index 5538404456dfee42257fad9040fcc0fefdfc5fab..b3a03dc66e803d9dc7000cc7d6960e87 public abstract BlockPosition b(); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 7f449035819f148d5b8cf492da059f1c40cdf1be..263925da88463f0a6faec5b4cc5f0d1b50d177f3 100644 +index db5638c4f2b6d672e619c9ba44184b6d9fe113a1..a36b9ea779fd984a16332e66f122d9505fad67de 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -320,6 +320,11 @@ public class PurpurWorldConfig { +@@ -330,6 +330,11 @@ public class PurpurWorldConfig { signRightClickEdit = getBoolean("blocks.sign.right-click-edit", signRightClickEdit); } diff --git a/patches/server/0093-Totems-work-in-inventory.patch b/patches/server/0093-Totems-work-in-inventory.patch index 7d0cac085e..8509b4b755 100644 --- a/patches/server/0093-Totems-work-in-inventory.patch +++ b/patches/server/0093-Totems-work-in-inventory.patch @@ -29,10 +29,10 @@ index 620bccdc44d3325dcb4450af979363ee94ba3f97..c9caa6919d47283331a9e0c79b22590b event.setCancelled(itemstack == null); this.world.getServer().getPluginManager().callEvent(event); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 263925da88463f0a6faec5b4cc5f0d1b50d177f3..286816d379da807dc9bcd4b4c56d2aebc854131d 100644 +index a36b9ea779fd984a16332e66f122d9505fad67de..ad4da617cf718e1c03e1532a9b45d7f927539a14 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -237,6 +237,11 @@ public class PurpurWorldConfig { +@@ -247,6 +247,11 @@ public class PurpurWorldConfig { teleportIfOutsideBorder = getBoolean("gameplay-mechanics.player.teleport-if-outside-border", teleportIfOutsideBorder); } diff --git a/patches/server/0095-Add-vindicator-johnny-spawn-chance.patch b/patches/server/0095-Add-vindicator-johnny-spawn-chance.patch index 53cee01f69..389e35cf6a 100644 --- a/patches/server/0095-Add-vindicator-johnny-spawn-chance.patch +++ b/patches/server/0095-Add-vindicator-johnny-spawn-chance.patch @@ -30,7 +30,7 @@ index f0eda0b83bab8e3a8adbb569b5997402b0e08e9a..fe84d6d2b74b6ae00c4c66682107296a } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 286816d379da807dc9bcd4b4c56d2aebc854131d..1dd4d35251c68f8e862e9cb6ac0c38a460b09ffb 100644 +index ad4da617cf718e1c03e1532a9b45d7f927539a14..b328c9f69fd43ca7ed57ee7f5b46ca998f2cb672 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -40,6 +40,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0097-Dispensers-place-anvils-option.patch b/patches/server/0097-Dispensers-place-anvils-option.patch index 7b0f898285..557ecd82bd 100644 --- a/patches/server/0097-Dispensers-place-anvils-option.patch +++ b/patches/server/0097-Dispensers-place-anvils-option.patch @@ -69,10 +69,10 @@ index 0055a96b51a1d38d31e129c417c97bcfc9d0b745..31237773907341ee64c71507b5e1bf24 static void a(ISourceBlock isourceblock, Entity entity, EnumDirection enumdirection) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 1dd4d35251c68f8e862e9cb6ac0c38a460b09ffb..d05a5ddc6991a47763cd95f72e4ea265557468ca 100644 +index b328c9f69fd43ca7ed57ee7f5b46ca998f2cb672..54b8021bfac69800d4cec996a94c2fea53249130 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -287,8 +287,10 @@ public class PurpurWorldConfig { +@@ -297,8 +297,10 @@ public class PurpurWorldConfig { } public boolean dispenserApplyCursedArmor = true; diff --git a/patches/server/0098-Allow-anvil-colors.patch b/patches/server/0098-Allow-anvil-colors.patch index 0d7df31642..21f2238b64 100644 --- a/patches/server/0098-Allow-anvil-colors.patch +++ b/patches/server/0098-Allow-anvil-colors.patch @@ -41,10 +41,10 @@ index 1b2d633f3d5d735039f18f27fb1387bd5a74f0d8..77810fbb70bf2e1ad03c28c0d69ceaa6 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index d05a5ddc6991a47763cd95f72e4ea265557468ca..7c59d8432ec6a98b3b7ebffc7ee4ee903535e1ec 100644 +index 54b8021bfac69800d4cec996a94c2fea53249130..96e5aaec4e35bd092e9a71ca5cb61c6a66b9c0fc 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -270,6 +270,11 @@ public class PurpurWorldConfig { +@@ -280,6 +280,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0099-Add-no-random-tick-block-list.patch b/patches/server/0099-Add-no-random-tick-block-list.patch index c10059442f..2949a5c51e 100644 --- a/patches/server/0099-Add-no-random-tick-block-list.patch +++ b/patches/server/0099-Add-no-random-tick-block-list.patch @@ -43,7 +43,7 @@ index 6124b56d935386784371422960a07d518f848cf3..e5f66cdf95b6073545efc8d1527b0a5e } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 7c59d8432ec6a98b3b7ebffc7ee4ee903535e1ec..69c2a66615cf6fe790afa1a7d9010a4b89f6cc0e 100644 +index 96e5aaec4e35bd092e9a71ca5cb61c6a66b9c0fc..aa4302ba319c0968632025524d5a9c5479a693e2 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -11,8 +11,10 @@ import org.bukkit.configuration.ConfigurationSection; @@ -57,7 +57,7 @@ index 7c59d8432ec6a98b3b7ebffc7ee4ee903535e1ec..69c2a66615cf6fe790afa1a7d9010a4b import java.util.logging.Level; import static net.pl3x.purpur.PurpurConfig.log; -@@ -237,6 +239,28 @@ public class PurpurWorldConfig { +@@ -247,6 +249,28 @@ public class PurpurWorldConfig { playerInvulnerableWhileAcceptingResourcePack = getBoolean("gameplay-mechanics.player.invulnerable-while-accepting-resource-pack", playerInvulnerableWhileAcceptingResourcePack); } diff --git a/patches/server/0100-Add-option-to-disable-dolphin-treasure-searching.patch b/patches/server/0100-Add-option-to-disable-dolphin-treasure-searching.patch index 11a799114b..b6405f16c0 100644 --- a/patches/server/0100-Add-option-to-disable-dolphin-treasure-searching.patch +++ b/patches/server/0100-Add-option-to-disable-dolphin-treasure-searching.patch @@ -17,10 +17,10 @@ index 5d18e19eafd5dc01a6caa45075d8c0598f1bb709..e0a9b931c26dbd4e7739d09ae45e1cee } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 69c2a66615cf6fe790afa1a7d9010a4b89f6cc0e..cad041b7beb787b4509727dad778bb3ab4dd3df1 100644 +index aa4302ba319c0968632025524d5a9c5479a693e2..c2e4a8a50b0e70283fccce265e76fa78841f47b9 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 { +@@ -411,6 +411,11 @@ public class PurpurWorldConfig { creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance); } diff --git a/patches/server/0102-Stop-squids-floating-on-top-of-water.patch b/patches/server/0102-Stop-squids-floating-on-top-of-water.patch index c297923fa7..4feb464d7b 100644 --- a/patches/server/0102-Stop-squids-floating-on-top-of-water.patch +++ b/patches/server/0102-Stop-squids-floating-on-top-of-water.patch @@ -51,10 +51,10 @@ index 1f5f3e0d209426b97e32b82dd15176b800f85816..e6757b22497c6e274c3999d58671653e protected void initPathfinder() { this.goalSelector.a(0, new EntitySquid.PathfinderGoalSquid(this)); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index cad041b7beb787b4509727dad778bb3ab4dd3df1..cad6cd337bb0f4279dd22b012d32bc3070563a92 100644 +index c2e4a8a50b0e70283fccce265e76fa78841f47b9..f16f99517999ccbb0b5a678ffcb3befc93a3ae45 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -547,8 +547,10 @@ public class PurpurWorldConfig { +@@ -557,8 +557,10 @@ public class PurpurWorldConfig { } public boolean squidImmuneToEAR = true; diff --git a/patches/server/0103-Ridables.patch b/patches/server/0103-Ridables.patch index a1ac1c3842..6bd4070c3f 100644 --- a/patches/server/0103-Ridables.patch +++ b/patches/server/0103-Ridables.patch @@ -5559,7 +5559,7 @@ index 3b20793e3eb4349f8a4ce724f8fc0d6366bb28c2..9789d0f9f73540a486befcdd4901014e public static int dungeonSeed = -1; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index cad6cd337bb0f4279dd22b012d32bc3070563a92..ad557e945364f0cd889e76513f67f717fbb1787b 100644 +index f16f99517999ccbb0b5a678ffcb3befc93a3ae45..9fcc63a2f4a4c363ace85087665bf3a978d3d648 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -42,11 +42,6 @@ public class PurpurWorldConfig { @@ -5574,7 +5574,7 @@ index cad6cd337bb0f4279dd22b012d32bc3070563a92..ad557e945364f0cd889e76513f67f717 private ConfigurationSection getConfigurationSection(String path) { ConfigurationSection section = PurpurConfig.config.getConfigurationSection("world-settings." + worldName + "." + path); return section != null ? section : PurpurConfig.config.getConfigurationSection("world-settings.default." + path); -@@ -375,61 +370,186 @@ public class PurpurWorldConfig { +@@ -385,61 +380,186 @@ public class PurpurWorldConfig { turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts); } @@ -5761,7 +5761,7 @@ index cad6cd337bb0f4279dd22b012d32bc3070563a92..ad557e945364f0cd889e76513f67f717 public float giantStepHeight = 2.0F; public float giantJumpHeight = 1.0F; public double giantMovementSpeed = 0.5D; -@@ -438,6 +558,8 @@ public class PurpurWorldConfig { +@@ -448,6 +568,8 @@ public class PurpurWorldConfig { public boolean giantHaveHostileAI = false; public double giantMaxHealth = 100.0D; private void giantSettings() { @@ -5770,7 +5770,7 @@ index cad6cd337bb0f4279dd22b012d32bc3070563a92..ad557e945364f0cd889e76513f67f717 giantStepHeight = (float) getDouble("mobs.giant.step-height", giantStepHeight); giantJumpHeight = (float) getDouble("mobs.giant.jump-height", giantJumpHeight); giantMovementSpeed = getDouble("mobs.giant.movement-speed", giantMovementSpeed); -@@ -452,19 +574,44 @@ public class PurpurWorldConfig { +@@ -462,19 +584,44 @@ public class PurpurWorldConfig { giantMaxHealth = getDouble("mobs.giant.attributes.max-health", giantMaxHealth); } @@ -5815,7 +5815,7 @@ index cad6cd337bb0f4279dd22b012d32bc3070563a92..ad557e945364f0cd889e76513f67f717 illusionerMovementSpeed = getDouble("mobs.illusioner.movement-speed", illusionerMovementSpeed); illusionerFollowRange = getDouble("mobs.illusioner.follow-range", illusionerFollowRange); if (PurpurConfig.version < 8) { -@@ -475,11 +622,76 @@ public class PurpurWorldConfig { +@@ -485,11 +632,76 @@ public class PurpurWorldConfig { illusionerMaxHealth = getDouble("mobs.illusioner.attributes.max-health", illusionerMaxHealth); } @@ -5892,7 +5892,7 @@ index cad6cd337bb0f4279dd22b012d32bc3070563a92..ad557e945364f0cd889e76513f67f717 public double phantomAttackedByCrystalRadius = 0.0D; public float phantomAttackedByCrystalDamage = 1.0F; public double phantomOrbitCrystalRadius = 0.0D; -@@ -498,7 +710,13 @@ public class PurpurWorldConfig { +@@ -508,7 +720,13 @@ public class PurpurWorldConfig { public int phantomBurnInLight = 0; public boolean phantomIgnorePlayersWithTorch = false; public boolean phantomBurnInDaylight = true; @@ -5906,7 +5906,7 @@ index cad6cd337bb0f4279dd22b012d32bc3070563a92..ad557e945364f0cd889e76513f67f717 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); -@@ -517,42 +735,187 @@ public class PurpurWorldConfig { +@@ -527,42 +745,187 @@ public class PurpurWorldConfig { phantomBurnInLight = getInt("mobs.phantom.burn-in-light", phantomBurnInLight); phantomBurnInDaylight = getBoolean("mobs.phantom.burn-in-daylight", phantomBurnInDaylight); phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch); @@ -6094,7 +6094,7 @@ index cad6cd337bb0f4279dd22b012d32bc3070563a92..ad557e945364f0cd889e76513f67f717 public int villagerBrainTicks = 1; public boolean villagerUseBrainTicksOnlyWhenLagging = true; public boolean villagerCanBeLeashed = false; -@@ -562,6 +925,8 @@ public class PurpurWorldConfig { +@@ -572,6 +935,8 @@ public class PurpurWorldConfig { public int villagerSpawnIronGolemLimit = 0; public boolean villagerCanBreed = true; private void villagerSettings() { @@ -6103,7 +6103,7 @@ index cad6cd337bb0f4279dd22b012d32bc3070563a92..ad557e945364f0cd889e76513f67f717 villagerBrainTicks = getInt("mobs.villager.brain-ticks", villagerBrainTicks); villagerUseBrainTicksOnlyWhenLagging = getBoolean("mobs.villager.use-brain-ticks-only-when-lagging", villagerUseBrainTicksOnlyWhenLagging); villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed); -@@ -572,45 +937,108 @@ public class PurpurWorldConfig { +@@ -582,45 +947,108 @@ public class PurpurWorldConfig { villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed); } diff --git a/patches/server/0106-Entities-can-use-portals-configuration.patch b/patches/server/0106-Entities-can-use-portals-configuration.patch index 067cf0fed6..3cd10391ef 100644 --- a/patches/server/0106-Entities-can-use-portals-configuration.patch +++ b/patches/server/0106-Entities-can-use-portals-configuration.patch @@ -27,10 +27,10 @@ index 4e1363050bef7fff9117250b79cbf35bf6bfc537..918edab475a8d33a253e3d6cd3c56557 public float a(Explosion explosion, IBlockAccess iblockaccess, BlockPosition blockposition, IBlockData iblockdata, Fluid fluid, float f) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index ad557e945364f0cd889e76513f67f717fbb1787b..af38248fec91adaff82c52144cfc6334ea35a646 100644 +index 9fcc63a2f4a4c363ace85087665bf3a978d3d648..55366240f249c05cf3d40eaf29f2cd21cd86cd07 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -192,6 +192,7 @@ public class PurpurWorldConfig { +@@ -202,6 +202,7 @@ public class PurpurWorldConfig { public boolean boatEjectPlayersOnLand = false; public boolean disableDropsOnCrammingDeath = false; public boolean entitiesPickUpLootBypassMobGriefing = false; @@ -38,7 +38,7 @@ index ad557e945364f0cd889e76513f67f717fbb1787b..af38248fec91adaff82c52144cfc6334 public boolean milkCuresBadOmen = true; public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; -@@ -201,6 +202,7 @@ public class PurpurWorldConfig { +@@ -211,6 +212,7 @@ public class PurpurWorldConfig { boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); disableDropsOnCrammingDeath = getBoolean("gameplay-mechanics.disable-drops-on-cramming-death", disableDropsOnCrammingDeath); entitiesPickUpLootBypassMobGriefing = getBoolean("gameplay-mechanics.entities-pick-up-loot-bypass-mob-griefing", entitiesPickUpLootBypassMobGriefing); diff --git a/patches/server/0108-Customizable-wither-health-and-healing.patch b/patches/server/0108-Customizable-wither-health-and-healing.patch index 20f30a2a9d..58d2321e8b 100644 --- a/patches/server/0108-Customizable-wither-health-and-healing.patch +++ b/patches/server/0108-Customizable-wither-health-and-healing.patch @@ -44,10 +44,10 @@ index 4c0a555cdb5bc34c73040b9533beaee56cbce70a..beb4d59faf4bd7501468b2eaa0e86661 //this.bossBattle.setProgress(this.getHealth() / this.getMaxHealth()); // Paper - Moved down diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index af38248fec91adaff82c52144cfc6334ea35a646..3e5bad2cd2551196279e1ab6b43bfc66d2d51f1e 100644 +index 55366240f249c05cf3d40eaf29f2cd21cd86cd07..db9deac5b43626b264f1237d8a2d2535d7bb639b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -969,10 +969,21 @@ public class PurpurWorldConfig { +@@ -979,10 +979,21 @@ public class PurpurWorldConfig { public boolean witherRidable = false; public boolean witherRidableInWater = false; public double witherMaxY = 256D; diff --git a/patches/server/0109-Allow-toggling-special-MobSpawners-per-world.patch b/patches/server/0109-Allow-toggling-special-MobSpawners-per-world.patch index 5f05774ac2..1f48edcff6 100644 --- a/patches/server/0109-Allow-toggling-special-MobSpawners-per-world.patch +++ b/patches/server/0109-Allow-toggling-special-MobSpawners-per-world.patch @@ -106,7 +106,7 @@ index 36b416636b4ded816701a065ff2ff0c3890e0987..4c85525fe461fc3d52c538ab2610c109 this.world = new CraftWorld((WorldServer) this, gen, env); this.ticksPerAnimalSpawns = this.getServer().getTicksPerAnimalSpawns(); // CraftBukkit diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 3e5bad2cd2551196279e1ab6b43bfc66d2d51f1e..1ca0ba958b304f12f964fbc54b2d226305c3855f 100644 +index db9deac5b43626b264f1237d8a2d2535d7bb639b..63cf32fe3359eb00f5e526689a9b10f673911a86 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -7,6 +7,8 @@ import net.minecraft.world.level.block.Blocks; @@ -152,7 +152,7 @@ index 3e5bad2cd2551196279e1ab6b43bfc66d2d51f1e..1ca0ba958b304f12f964fbc54b2d2263 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)); -@@ -209,6 +220,21 @@ public class PurpurWorldConfig { +@@ -219,6 +230,21 @@ public class PurpurWorldConfig { voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt); } diff --git a/patches/server/0110-Raid-cooldown-setting.patch b/patches/server/0110-Raid-cooldown-setting.patch index ed027c8802..06c3376f12 100644 --- a/patches/server/0110-Raid-cooldown-setting.patch +++ b/patches/server/0110-Raid-cooldown-setting.patch @@ -52,10 +52,10 @@ index c939ca087af4588e14669a2d53d7c116dcb59f16..11271762dcf5783c3179de1afc6a882c if (!this.raids.containsKey(raid.getId())) { this.raids.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 1ca0ba958b304f12f964fbc54b2d226305c3855f..23c07245ca69c9f5cb3507527c5155504fb96a95 100644 +index 63cf32fe3359eb00f5e526689a9b10f673911a86..1e0af82c74259783fdc86a7824b18ff1d14fe938 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -208,6 +208,7 @@ public class PurpurWorldConfig { +@@ -218,6 +218,7 @@ public class PurpurWorldConfig { public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; @@ -63,7 +63,7 @@ index 1ca0ba958b304f12f964fbc54b2d226305c3855f..23c07245ca69c9f5cb3507527c515550 private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); -@@ -218,6 +219,7 @@ public class PurpurWorldConfig { +@@ -228,6 +229,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/0111-Despawn-rate-config-options-per-projectile-type.patch b/patches/server/0111-Despawn-rate-config-options-per-projectile-type.patch index a2bb868b7d..603396ed61 100644 --- a/patches/server/0111-Despawn-rate-config-options-per-projectile-type.patch +++ b/patches/server/0111-Despawn-rate-config-options-per-projectile-type.patch @@ -300,10 +300,10 @@ index 3914081629669aea19d50530db996728bbfa607f..62fa5be9090c8789e91bf9b9f614e74a public boolean checkIfLeftOwner() { return this.h(); } // Purpur - OBFHELPER diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 23c07245ca69c9f5cb3507527c5155504fb96a95..4fc8e2db66103b3abb2513cf734db78c0d490cb1 100644 +index 1e0af82c74259783fdc86a7824b18ff1d14fe938..c9fa235746dd8cf148ae88c3cca4c4a9639d0f61 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -199,6 +199,35 @@ public class PurpurWorldConfig { +@@ -209,6 +209,35 @@ public class PurpurWorldConfig { idleTimeoutUpdateTabList = getBoolean("gameplay-mechanics.player.idle-timeout.update-tab-list", idleTimeoutUpdateTabList); } diff --git a/patches/server/0112-Add-option-to-disable-zombie-aggressiveness-towards-.patch b/patches/server/0112-Add-option-to-disable-zombie-aggressiveness-towards-.patch index 2abd457a37..30f3457d4a 100644 --- a/patches/server/0112-Add-option-to-disable-zombie-aggressiveness-towards-.patch +++ b/patches/server/0112-Add-option-to-disable-zombie-aggressiveness-towards-.patch @@ -69,10 +69,10 @@ index 901fe8d224130c67bad00636b065bc798859a18e..88264b7b2c21a377f4b0dd857065e401 this.targetSelector.a(5, new PathfinderGoalNearestAttackableTarget<>(this, EntityTurtle.class, 10, true, false, EntityTurtle.bo)); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 4fc8e2db66103b3abb2513cf734db78c0d490cb1..a90be0701d8dc8a3b42a565e44457b1264b16bcb 100644 +index c9fa235746dd8cf148ae88c3cca4c4a9639d0f61..94681a3cb57950b0cd074927aa63bf84e3ef0cf7 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1071,12 +1071,14 @@ public class PurpurWorldConfig { +@@ -1081,12 +1081,14 @@ public class PurpurWorldConfig { public boolean zombieJockeyOnlyBaby = true; public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; diff --git a/patches/server/0113-Persistent-TileEntity-Lore-and-DisplayName.patch b/patches/server/0113-Persistent-TileEntity-Lore-and-DisplayName.patch index 4209fa3bec..85543dcf7e 100644 --- a/patches/server/0113-Persistent-TileEntity-Lore-and-DisplayName.patch +++ b/patches/server/0113-Persistent-TileEntity-Lore-and-DisplayName.patch @@ -214,10 +214,10 @@ index 93d02ccb87c17404c55884f52ae40c7b7ddfb103..35c4d5414db66b977a354ac50d35a6aa + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index a90be0701d8dc8a3b42a565e44457b1264b16bcb..3cda51fa1401aa47e928fc91dc634fc17cd88726 100644 +index 94681a3cb57950b0cd074927aa63bf84e3ef0cf7..a9f4732ece4764cabb1ae7b55fa9c273996f7d9d 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -234,6 +234,7 @@ public class PurpurWorldConfig { +@@ -244,6 +244,7 @@ public class PurpurWorldConfig { public boolean entitiesPickUpLootBypassMobGriefing = false; public boolean entitiesCanUsePortals = true; public boolean milkCuresBadOmen = true; @@ -225,7 +225,7 @@ index a90be0701d8dc8a3b42a565e44457b1264b16bcb..3cda51fa1401aa47e928fc91dc634fc1 public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -245,6 +246,7 @@ public class PurpurWorldConfig { +@@ -255,6 +256,7 @@ public class PurpurWorldConfig { entitiesPickUpLootBypassMobGriefing = getBoolean("gameplay-mechanics.entities-pick-up-loot-bypass-mob-griefing", entitiesPickUpLootBypassMobGriefing); entitiesCanUsePortals = getBoolean("gameplay-mechanics.entities-can-use-portals", entitiesCanUsePortals); milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); diff --git a/patches/server/0115-Flying-squids-Oh-my.patch b/patches/server/0115-Flying-squids-Oh-my.patch index 17fbf0bb95..db60800a23 100644 --- a/patches/server/0115-Flying-squids-Oh-my.patch +++ b/patches/server/0115-Flying-squids-Oh-my.patch @@ -38,10 +38,10 @@ index a9fa18931d93dd7fa428b8cd6a414d4b3a3b4fbb..be48e12dd6c9a390bf383129953bcd3d float f1 = MathHelper.cos(f) * 0.2F; float f2 = -0.1F + this.b.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 3cda51fa1401aa47e928fc91dc634fc17cd88726..fded4e2ed984926acc6ee6070b109dee6340e702 100644 +index a9f4732ece4764cabb1ae7b55fa9c273996f7d9d..9a18d3612d38cdd3d85cc69fba6df355b6cc6829 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -927,10 +927,12 @@ public class PurpurWorldConfig { +@@ -937,10 +937,12 @@ public class PurpurWorldConfig { public boolean squidRidable = false; public boolean squidImmuneToEAR = true; public double squidOffsetWaterCheck = 0.0D; diff --git a/patches/server/0116-Infinity-bow-settings.patch b/patches/server/0116-Infinity-bow-settings.patch index 9125ec9681..51c938b3fc 100644 --- a/patches/server/0116-Infinity-bow-settings.patch +++ b/patches/server/0116-Infinity-bow-settings.patch @@ -26,10 +26,10 @@ index 015f4d71f35a9d512814389b6e6cab74c0daf116..c7e20b25b4d09463fa54c66e62208e90 entityhuman.b(StatisticList.ITEM_USED.b(this)); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index fded4e2ed984926acc6ee6070b109dee6340e702..585e1f9240c95b044d54e7509fb82ed2e3e9363a 100644 +index 9a18d3612d38cdd3d85cc69fba6df355b6cc6829..e982733732e3dfd9d34cf5d9e87a9caa3af2d6e8 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -199,6 +199,15 @@ public class PurpurWorldConfig { +@@ -209,6 +209,15 @@ public class PurpurWorldConfig { idleTimeoutUpdateTabList = getBoolean("gameplay-mechanics.player.idle-timeout.update-tab-list", idleTimeoutUpdateTabList); } diff --git a/patches/server/0117-Stonecutter-damage.patch b/patches/server/0117-Stonecutter-damage.patch index e70aa8e5a1..ebcada52ff 100644 --- a/patches/server/0117-Stonecutter-damage.patch +++ b/patches/server/0117-Stonecutter-damage.patch @@ -49,10 +49,10 @@ index 7b92a54cfb64fb77af99e6bf66eacbdb9e769dc1..9d08094165cf18d99116b5c721fff888 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 585e1f9240c95b044d54e7509fb82ed2e3e9363a..0904a8433175814adb331229f8e81fc4633e97de 100644 +index e982733732e3dfd9d34cf5d9e87a9caa3af2d6e8..11f699eb7d68013df708a874a214da6be3fe6773 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -431,6 +431,11 @@ public class PurpurWorldConfig { +@@ -441,6 +441,11 @@ public class PurpurWorldConfig { spawnerDeactivateByRedstone = getBoolean("blocks.spawner.deactivate-by-redstone", spawnerDeactivateByRedstone); } diff --git a/patches/server/0118-Configurable-daylight-cycle.patch b/patches/server/0118-Configurable-daylight-cycle.patch index 8a1413fb53..0587f8178f 100644 --- a/patches/server/0118-Configurable-daylight-cycle.patch +++ b/patches/server/0118-Configurable-daylight-cycle.patch @@ -82,7 +82,7 @@ index 64feabfb860ac29a7f7692bcc9972369dbdc2e02..028911ebe843751080564d90e9630652 public void doMobSpawning(boolean flag, boolean flag1) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 0904a8433175814adb331229f8e81fc4633e97de..3c97ca864bfcb13d832310cdecc6d7a86fef12ec 100644 +index 11f699eb7d68013df708a874a214da6be3fe6773..b11a71a1dda78098f1995f289a1fb45c9a02eeb6 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -150,6 +150,13 @@ public class PurpurWorldConfig { diff --git a/patches/server/0120-Infinite-fuel-furnace.patch b/patches/server/0120-Infinite-fuel-furnace.patch index f1c7af1149..5e29941e01 100644 --- a/patches/server/0120-Infinite-fuel-furnace.patch +++ b/patches/server/0120-Infinite-fuel-furnace.patch @@ -57,10 +57,10 @@ index 9ce19b89c16eb6edd3d5d5cc87a966a37f66895c..ac42fd627009a87709448354f232d8b5 if (flag1) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 3c97ca864bfcb13d832310cdecc6d7a86fef12ec..c33a386c74d1224afb23bd424983ba2d312790c2 100644 +index b11a71a1dda78098f1995f289a1fb45c9a02eeb6..30ca0eaf588b7056963e9c6ecb4682608b46a463 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -399,6 +399,11 @@ public class PurpurWorldConfig { +@@ -409,6 +409,11 @@ public class PurpurWorldConfig { farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); } diff --git a/patches/server/0123-Ability-to-re-add-farmland-mechanics-from-Alpha.patch b/patches/server/0123-Ability-to-re-add-farmland-mechanics-from-Alpha.patch index c5a7244b26..a4c3052aaf 100644 --- a/patches/server/0123-Ability-to-re-add-farmland-mechanics-from-Alpha.patch +++ b/patches/server/0123-Ability-to-re-add-farmland-mechanics-from-Alpha.patch @@ -24,10 +24,10 @@ index 2bbaa2fb426869223a9b2f07406496c1b0daff3f..3e8893bf76b8ffda4c595c81086556ea return; } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index c33a386c74d1224afb23bd424983ba2d312790c2..d09687f565505941c04efd367d6be2c19a219ef9 100644 +index 30ca0eaf588b7056963e9c6ecb4682608b46a463..44c27c6dd4993add42410373191a46f4cc92f42f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -395,8 +395,10 @@ public class PurpurWorldConfig { +@@ -405,8 +405,10 @@ public class PurpurWorldConfig { } public boolean farmlandGetsMoistFromBelow = false; diff --git a/patches/server/0124-Add-adjustable-breeding-cooldown-to-config.patch b/patches/server/0124-Add-adjustable-breeding-cooldown-to-config.patch index 4f3fc50c0e..c36d559cbd 100644 --- a/patches/server/0124-Add-adjustable-breeding-cooldown-to-config.patch +++ b/patches/server/0124-Add-adjustable-breeding-cooldown-to-config.patch @@ -102,10 +102,10 @@ index 4c85525fe461fc3d52c538ab2610c1098c9d0151..b03865ca77c3fbd4fe61db450ffd3ced this.world = new CraftWorld((WorldServer) this, gen, env); this.ticksPerAnimalSpawns = this.getServer().getTicksPerAnimalSpawns(); // CraftBukkit diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index d09687f565505941c04efd367d6be2c19a219ef9..9bc3aff37addd694f840eea6189d47e9131e1f27 100644 +index 44c27c6dd4993add42410373191a46f4cc92f42f..b92715b115332e8197d5a02a2f308a1ab0f447b6 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -255,6 +255,7 @@ public class PurpurWorldConfig { +@@ -265,6 +265,7 @@ public class PurpurWorldConfig { public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; public int raidCooldownSeconds = 0; @@ -113,7 +113,7 @@ index d09687f565505941c04efd367d6be2c19a219ef9..9bc3aff37addd694f840eea6189d47e9 private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); -@@ -267,6 +268,7 @@ public class PurpurWorldConfig { +@@ -277,6 +278,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/0125-Make-entity-breeding-times-configurable.patch b/patches/server/0125-Make-entity-breeding-times-configurable.patch index 102b6b2749..f8f86a7c21 100644 --- a/patches/server/0125-Make-entity-breeding-times-configurable.patch +++ b/patches/server/0125-Make-entity-breeding-times-configurable.patch @@ -428,10 +428,10 @@ index 64253428ef66145d07f74f8d0e5bdeb5aa5fe02b..828d01abe8202a246ce07c1c652a17cb @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 9bc3aff37addd694f840eea6189d47e9131e1f27..c70a22d8c5d8cdab04e923b22002ae35e703485e 100644 +index b92715b115332e8197d5a02a2f308a1ab0f447b6..bd37234624a720c1077aabf0123de61a0d4e05cb 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -482,10 +482,12 @@ public class PurpurWorldConfig { +@@ -492,10 +492,12 @@ public class PurpurWorldConfig { public boolean beeRidable = false; public boolean beeRidableInWater = false; public double beeMaxY = 256D; @@ -444,7 +444,7 @@ index 9bc3aff37addd694f840eea6189d47e9131e1f27..c70a22d8c5d8cdab04e923b22002ae35 } public boolean blazeRidable = false; -@@ -502,12 +504,14 @@ public class PurpurWorldConfig { +@@ -512,12 +514,14 @@ public class PurpurWorldConfig { public int catSpawnDelay = 1200; public int catSpawnSwampHutScanRange = 16; public int catSpawnVillageScanRange = 48; @@ -459,7 +459,7 @@ index 9bc3aff37addd694f840eea6189d47e9131e1f27..c70a22d8c5d8cdab04e923b22002ae35 } public boolean caveSpiderRidable = false; -@@ -520,10 +524,12 @@ public class PurpurWorldConfig { +@@ -530,10 +534,12 @@ public class PurpurWorldConfig { public boolean chickenRidable = false; public boolean chickenRidableInWater = false; public boolean chickenRetaliate = false; @@ -472,7 +472,7 @@ index 9bc3aff37addd694f840eea6189d47e9131e1f27..c70a22d8c5d8cdab04e923b22002ae35 } public boolean codRidable = false; -@@ -534,10 +540,12 @@ public class PurpurWorldConfig { +@@ -544,10 +550,12 @@ public class PurpurWorldConfig { public boolean cowRidable = false; public boolean cowRidableInWater = false; public int cowFeedMushrooms = 0; @@ -485,7 +485,7 @@ index 9bc3aff37addd694f840eea6189d47e9131e1f27..c70a22d8c5d8cdab04e923b22002ae35 } public boolean creeperRidable = false; -@@ -565,8 +573,10 @@ public class PurpurWorldConfig { +@@ -575,8 +583,10 @@ public class PurpurWorldConfig { } public boolean donkeyRidableInWater = false; @@ -496,7 +496,7 @@ index 9bc3aff37addd694f840eea6189d47e9131e1f27..c70a22d8c5d8cdab04e923b22002ae35 } public boolean drownedRidable = false; -@@ -624,10 +634,12 @@ public class PurpurWorldConfig { +@@ -634,10 +644,12 @@ public class PurpurWorldConfig { public boolean foxRidable = false; public boolean foxRidableInWater = false; public boolean foxTypeChangesWithTulips = false; @@ -509,7 +509,7 @@ index 9bc3aff37addd694f840eea6189d47e9131e1f27..c70a22d8c5d8cdab04e923b22002ae35 } public boolean ghastRidable = false; -@@ -672,14 +684,18 @@ public class PurpurWorldConfig { +@@ -682,14 +694,18 @@ public class PurpurWorldConfig { public boolean hoglinRidable = false; public boolean hoglinRidableInWater = false; @@ -528,7 +528,7 @@ index 9bc3aff37addd694f840eea6189d47e9131e1f27..c70a22d8c5d8cdab04e923b22002ae35 } public boolean huskRidable = false; -@@ -724,9 +740,11 @@ public class PurpurWorldConfig { +@@ -734,9 +750,11 @@ public class PurpurWorldConfig { public boolean llamaRidable = false; public boolean llamaRidableInWater = false; @@ -540,7 +540,7 @@ index 9bc3aff37addd694f840eea6189d47e9131e1f27..c70a22d8c5d8cdab04e923b22002ae35 } public boolean llamaTraderRidable = false; -@@ -745,28 +763,36 @@ public class PurpurWorldConfig { +@@ -755,28 +773,36 @@ public class PurpurWorldConfig { public boolean mooshroomRidable = false; public boolean mooshroomRidableInWater = false; @@ -577,7 +577,7 @@ index 9bc3aff37addd694f840eea6189d47e9131e1f27..c70a22d8c5d8cdab04e923b22002ae35 } public boolean parrotRidable = false; -@@ -832,10 +858,12 @@ public class PurpurWorldConfig { +@@ -842,10 +868,12 @@ public class PurpurWorldConfig { public boolean pigRidable = false; public boolean pigRidableInWater = false; public boolean pigGiveSaddleBack = false; @@ -590,7 +590,7 @@ index 9bc3aff37addd694f840eea6189d47e9131e1f27..c70a22d8c5d8cdab04e923b22002ae35 } public boolean piglinRidable = false; -@@ -863,12 +891,14 @@ public class PurpurWorldConfig { +@@ -873,12 +901,14 @@ public class PurpurWorldConfig { public boolean polarBearRidableInWater = false; public String polarBearBreedableItemString = ""; public Item polarBearBreedableItem = null; @@ -605,7 +605,7 @@ index 9bc3aff37addd694f840eea6189d47e9131e1f27..c70a22d8c5d8cdab04e923b22002ae35 } public boolean pufferfishRidable = false; -@@ -880,11 +910,13 @@ public class PurpurWorldConfig { +@@ -890,11 +920,13 @@ public class PurpurWorldConfig { public boolean rabbitRidableInWater = false; public double rabbitNaturalToast = 0.0D; public double rabbitNaturalKiller = 0.0D; @@ -619,7 +619,7 @@ index 9bc3aff37addd694f840eea6189d47e9131e1f27..c70a22d8c5d8cdab04e923b22002ae35 } public boolean ravagerRidable = false; -@@ -901,9 +933,11 @@ public class PurpurWorldConfig { +@@ -911,9 +943,11 @@ public class PurpurWorldConfig { public boolean sheepRidable = false; public boolean sheepRidableInWater = false; @@ -631,7 +631,7 @@ index 9bc3aff37addd694f840eea6189d47e9131e1f27..c70a22d8c5d8cdab04e923b22002ae35 } public boolean shulkerRidable = false; -@@ -981,9 +1015,11 @@ public class PurpurWorldConfig { +@@ -991,9 +1025,11 @@ public class PurpurWorldConfig { public boolean striderRidable = false; public boolean striderRidableInWater = false; @@ -643,7 +643,7 @@ index 9bc3aff37addd694f840eea6189d47e9131e1f27..c70a22d8c5d8cdab04e923b22002ae35 } public boolean tropicalFishRidable = false; -@@ -993,9 +1029,11 @@ public class PurpurWorldConfig { +@@ -1003,9 +1039,11 @@ public class PurpurWorldConfig { public boolean turtleRidable = false; public boolean turtleRidableInWater = false; @@ -655,7 +655,7 @@ index 9bc3aff37addd694f840eea6189d47e9131e1f27..c70a22d8c5d8cdab04e923b22002ae35 } public boolean vexRidable = false; -@@ -1017,6 +1055,7 @@ public class PurpurWorldConfig { +@@ -1027,6 +1065,7 @@ public class PurpurWorldConfig { public int villagerSpawnIronGolemRadius = 0; public int villagerSpawnIronGolemLimit = 0; public boolean villagerCanBreed = true; @@ -663,7 +663,7 @@ index 9bc3aff37addd694f840eea6189d47e9131e1f27..c70a22d8c5d8cdab04e923b22002ae35 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1028,6 +1067,7 @@ public class PurpurWorldConfig { +@@ -1038,6 +1077,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); @@ -671,7 +671,7 @@ index 9bc3aff37addd694f840eea6189d47e9131e1f27..c70a22d8c5d8cdab04e923b22002ae35 } public boolean villagerTraderRidable = false; -@@ -1088,9 +1128,11 @@ public class PurpurWorldConfig { +@@ -1098,9 +1138,11 @@ public class PurpurWorldConfig { public boolean wolfRidable = false; public boolean wolfRidableInWater = false; diff --git a/patches/server/0126-Apply-display-names-from-item-forms-of-entities-to-e.patch b/patches/server/0126-Apply-display-names-from-item-forms-of-entities-to-e.patch index 3587568b29..cf941a80ba 100644 --- a/patches/server/0126-Apply-display-names-from-item-forms-of-entities-to-e.patch +++ b/patches/server/0126-Apply-display-names-from-item-forms-of-entities-to-e.patch @@ -154,7 +154,7 @@ index 81e2ccfa4f6cf6a4ad9236cf0ce94df8dc3ec5b6..132972755ac74838f3386e0fac503338 NBTTagCompound nbttagcompound = this.a("display"); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index c70a22d8c5d8cdab04e923b22002ae35e703485e..52841e2df9098f1e32349510c2d439b61ca79286 100644 +index bd37234624a720c1077aabf0123de61a0d4e05cb..b650293ff3315760e29307113e29fb2731af472b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -83,8 +83,10 @@ public class PurpurWorldConfig { @@ -168,7 +168,7 @@ index c70a22d8c5d8cdab04e923b22002ae35e703485e..52841e2df9098f1e32349510c2d439b6 armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight); } -@@ -251,6 +253,7 @@ public class PurpurWorldConfig { +@@ -261,6 +263,7 @@ public class PurpurWorldConfig { public boolean entitiesCanUsePortals = true; public boolean milkCuresBadOmen = true; public boolean persistentTileEntityDisplayNames = false; @@ -176,7 +176,7 @@ index c70a22d8c5d8cdab04e923b22002ae35e703485e..52841e2df9098f1e32349510c2d439b6 public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -264,6 +267,7 @@ public class PurpurWorldConfig { +@@ -274,6 +277,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/0127-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch b/patches/server/0127-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch index 60e66ee2f3..facfc49577 100644 --- a/patches/server/0127-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch +++ b/patches/server/0127-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch @@ -29,7 +29,7 @@ index b9b2b27e534ba87a1aae3c521f393a066a18a199..4f4e9ebb9af4970fe920a540d40dbc56 ((EntityInsentient) newEntityLiving).setPersistent(); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 52841e2df9098f1e32349510c2d439b61ca79286..61923263c9cf388a897a150ce1030ad978eef8d7 100644 +index b650293ff3315760e29307113e29fb2731af472b..dc1418f8f324eae24af3e993c6c720ff73702c92 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -84,9 +84,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0128-Add-twisting-and-weeping-vines-growth-rates.patch b/patches/server/0128-Add-twisting-and-weeping-vines-growth-rates.patch index 86aa42a6d6..def89357ce 100644 --- a/patches/server/0128-Add-twisting-and-weeping-vines-growth-rates.patch +++ b/patches/server/0128-Add-twisting-and-weeping-vines-growth-rates.patch @@ -91,10 +91,10 @@ index 2552631084926c2fad40b3f21ae479c0e1cfdb77..198bd8857571872ed3f7437529c330dc + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 61923263c9cf388a897a150ce1030ad978eef8d7..071921d17cb0bbe3c39cc43c107431a8def5501b 100644 +index dc1418f8f324eae24af3e993c6c720ff73702c92..17bbe2ceea016bcb00dc5542bea47e083e723ea5 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -467,6 +467,16 @@ public class PurpurWorldConfig { +@@ -477,6 +477,16 @@ public class PurpurWorldConfig { turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts); } diff --git a/patches/server/0129-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch b/patches/server/0129-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch index 2b047a61a9..bdd2fc3d55 100644 --- a/patches/server/0129-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch +++ b/patches/server/0129-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch @@ -89,10 +89,10 @@ index 198bd8857571872ed3f7437529c330dceeb825db..a71f97e87ee7210f3246e542dd768403 // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 071921d17cb0bbe3c39cc43c107431a8def5501b..3d71a3ccb259d36d4d59091b42ae7f42fbb40f91 100644 +index 17bbe2ceea016bcb00dc5542bea47e083e723ea5..221b6d3c98afe1c72481a922ac7eeff9801d8c2f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -414,6 +414,11 @@ public class PurpurWorldConfig { +@@ -424,6 +424,11 @@ public class PurpurWorldConfig { furnaceInfiniteFuel = getBoolean("blocks.furnace.infinite-fuel", furnaceInfiniteFuel); } @@ -104,7 +104,7 @@ index 071921d17cb0bbe3c39cc43c107431a8def5501b..3d71a3ccb259d36d4d59091b42ae7f42 public boolean lavaInfinite = false; public int lavaInfiniteRequiredSources = 2; public int lavaSpeedNether = 10; -@@ -468,13 +473,17 @@ public class PurpurWorldConfig { +@@ -478,13 +483,17 @@ public class PurpurWorldConfig { } public double twistingVinesGrowthModifier = 0.10D; diff --git a/patches/server/0130-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch b/patches/server/0130-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch index 36c8b1d212..5f8c995433 100644 --- a/patches/server/0130-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch +++ b/patches/server/0130-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch @@ -21,10 +21,10 @@ index 03fa2cfc1d5bc27e03e9979b3f33d88362c19066..18b3f8d1fadd1424327261d92b49977a static class PathfinderGoalEndermanPickupBlock extends PathfinderGoal { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 3d71a3ccb259d36d4d59091b42ae7f42fbb40f91..605ee4272077fccbb347c2a8a42b9a84dec3164e 100644 +index 221b6d3c98afe1c72481a922ac7eeff9801d8c2f..3b9898ee7ae0fb826cfc3102d3b84bc5323d163d 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -636,10 +636,12 @@ public class PurpurWorldConfig { +@@ -646,10 +646,12 @@ public class PurpurWorldConfig { public boolean endermanRidable = false; public boolean endermanRidableInWater = false; public boolean endermanAllowGriefing = true; diff --git a/patches/server/0132-Add-configurable-snowball-damage.patch b/patches/server/0132-Add-configurable-snowball-damage.patch index 0842f1b855..f5b27b088f 100644 --- a/patches/server/0132-Add-configurable-snowball-damage.patch +++ b/patches/server/0132-Add-configurable-snowball-damage.patch @@ -18,10 +18,10 @@ index 0d3b9c81e47eef645335e49a1d6d88db7338aa4b..6bfd3f57e6c04ed426870d6dbf068bf3 entity.damageEntity(DamageSource.projectile(this, this.getShooter()), (float) i); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 605ee4272077fccbb347c2a8a42b9a84dec3164e..223779ca665c86491733c902c94faadea503a2e7 100644 +index 3b9898ee7ae0fb826cfc3102d3b84bc5323d163d..b6a3d73dc0866d98b00f52d65a39646ab001a1f2 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -248,6 +248,11 @@ public class PurpurWorldConfig { +@@ -258,6 +258,11 @@ public class PurpurWorldConfig { witherSkullDespawnRate = getInt("gameplay-mechanics.projectile-despawn-rates.wither_skull", witherSkullDespawnRate); } diff --git a/patches/server/0133-Zombie-break-door-minimum-difficulty-option.patch b/patches/server/0133-Zombie-break-door-minimum-difficulty-option.patch index 3faf3d3e46..ced0497c3f 100644 --- a/patches/server/0133-Zombie-break-door-minimum-difficulty-option.patch +++ b/patches/server/0133-Zombie-break-door-minimum-difficulty-option.patch @@ -50,7 +50,7 @@ index 10ee8a0a717354f50b29e7ebeab0ee2aa7bf42f7..d785066e2a52699c18315f7244d80db6 + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 223779ca665c86491733c902c94faadea503a2e7..cca020ef20d0a025b86d0a964da85463bd74b059 100644 +index b6a3d73dc0866d98b00f52d65a39646ab001a1f2..1ea011a2fbf6b6d2b7f9ff59e86303d17d130831 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -1,6 +1,7 @@ @@ -61,7 +61,7 @@ index 223779ca665c86491733c902c94faadea503a2e7..cca020ef20d0a025b86d0a964da85463 import net.minecraft.world.level.Explosion; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; -@@ -1180,6 +1181,7 @@ public class PurpurWorldConfig { +@@ -1190,6 +1191,7 @@ public class PurpurWorldConfig { public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; @@ -69,7 +69,7 @@ index 223779ca665c86491733c902c94faadea503a2e7..cca020ef20d0a025b86d0a964da85463 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1187,6 +1189,11 @@ public class PurpurWorldConfig { +@@ -1197,6 +1199,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/0137-Changeable-Mob-Left-Handed-Chance.patch b/patches/server/0137-Changeable-Mob-Left-Handed-Chance.patch index f0a049fa00..a749c06509 100644 --- a/patches/server/0137-Changeable-Mob-Left-Handed-Chance.patch +++ b/patches/server/0137-Changeable-Mob-Left-Handed-Chance.patch @@ -18,7 +18,7 @@ index df33b46ff1267f0f2692a8956438f3bd1e2a3086..a6ea96683b0f4d35015dff6168f3bf45 } 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 cca020ef20d0a025b86d0a964da85463bd74b059..8ce9b10c71ae45eea849e810c305b3adb2cce75e 100644 +index 1ea011a2fbf6b6d2b7f9ff59e86303d17d130831..5e3b23d50b6e8494066c71bdf7c14edc4a4a3716 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -163,8 +163,10 @@ public class PurpurWorldConfig { diff --git a/patches/server/0138-Add-boat-fall-damage-config.patch b/patches/server/0138-Add-boat-fall-damage-config.patch index e0f9f26e13..bea819c769 100644 --- a/patches/server/0138-Add-boat-fall-damage-config.patch +++ b/patches/server/0138-Add-boat-fall-damage-config.patch @@ -27,10 +27,10 @@ index 3f29cc87faa85f857c5fe2b8457d7c96d05515bc..a1d5662911ee3a038da427bf2e0b69a1 if (!flag && isSpawnInvulnerable() && damagesource != 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 8ce9b10c71ae45eea849e810c305b3adb2cce75e..e04af8007b5650d20165e82767c288452de48ebc 100644 +index 5e3b23d50b6e8494066c71bdf7c14edc4a4a3716..944c1bbcb868e2e24f26db04b588f6f0c13164e5 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -258,6 +258,7 @@ public class PurpurWorldConfig { +@@ -268,6 +268,7 @@ public class PurpurWorldConfig { public boolean useBetterMending = false; public boolean boatEjectPlayersOnLand = false; @@ -38,7 +38,7 @@ index 8ce9b10c71ae45eea849e810c305b3adb2cce75e..e04af8007b5650d20165e82767c28845 public boolean disableDropsOnCrammingDeath = false; public boolean entitiesPickUpLootBypassMobGriefing = false; public boolean entitiesCanUsePortals = true; -@@ -272,6 +273,7 @@ public class PurpurWorldConfig { +@@ -282,6 +283,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/0139-Config-migration-disable-saving-projectiles-to-disk-.patch b/patches/server/0139-Config-migration-disable-saving-projectiles-to-disk-.patch index 516b8dd1f5..112f4b895d 100644 --- a/patches/server/0139-Config-migration-disable-saving-projectiles-to-disk-.patch +++ b/patches/server/0139-Config-migration-disable-saving-projectiles-to-disk-.patch @@ -36,7 +36,7 @@ index 69d6d3fb4333531ea63acf5272ffa52ed296346f..457a20aee6f7aa25be052bec202bbcb8 public static String afkBroadcastBack = "§e§o%s is no longer AFK"; public static String afkTabListPrefix = "[AFK] "; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index e04af8007b5650d20165e82767c288452de48ebc..ac5c770735650d4a7821ee0f2551de63d8c5fdbb 100644 +index 944c1bbcb868e2e24f26db04b588f6f0c13164e5..c2044a89fd1547092fd3d6be671570fcf2a60f09 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -1,5 +1,6 @@ diff --git a/patches/server/0140-Snow-Golem-rate-of-fire-config.patch b/patches/server/0140-Snow-Golem-rate-of-fire-config.patch index 158caf5265..d3930464d2 100644 --- a/patches/server/0140-Snow-Golem-rate-of-fire-config.patch +++ b/patches/server/0140-Snow-Golem-rate-of-fire-config.patch @@ -23,10 +23,10 @@ index cfcf67e99ae345f77a55771e6a25bdcdb4a9740a..28b5c22ecfe573ac9d91b74e54ebd3e3 this.goalSelector.a(3, new PathfinderGoalLookAtPlayer(this, EntityHuman.class, 6.0F)); this.goalSelector.a(4, new PathfinderGoalRandomLookaround(this)); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index ac5c770735650d4a7821ee0f2551de63d8c5fdbb..afabf27d4f966dfc0d12d54c0b5eb6f0e5c38a73 100644 +index c2044a89fd1547092fd3d6be671570fcf2a60f09..ed2b682b3717e58eb18ef12c18f362a75174f069 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1029,12 +1029,20 @@ public class PurpurWorldConfig { +@@ -1039,12 +1039,20 @@ public class PurpurWorldConfig { public boolean snowGolemLeaveTrailWhenRidden = false; public boolean snowGolemDropsPumpkin = true; public boolean snowGolemPutPumpkinBack = false; diff --git a/patches/server/0143-Config-migration-climbing-should-not-bypass-cramming.patch b/patches/server/0143-Config-migration-climbing-should-not-bypass-cramming.patch index a17db7f54c..b87b4c702c 100644 --- a/patches/server/0143-Config-migration-climbing-should-not-bypass-cramming.patch +++ b/patches/server/0143-Config-migration-climbing-should-not-bypass-cramming.patch @@ -28,7 +28,7 @@ index 521604b37ca61b849420f206fde88210b582cd3c..116f17bcc02d15951fa248c6ce4e2cf3 public static String afkBroadcastBack = "§e§o%s is no longer AFK"; public static String afkTabListPrefix = "[AFK] "; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index afabf27d4f966dfc0d12d54c0b5eb6f0e5c38a73..818712824f714b522296d5bd9d160a2045c53ea0 100644 +index ed2b682b3717e58eb18ef12c18f362a75174f069..3e2898e3582efc00764885739e1df3a2ab5d5f6e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -96,6 +96,17 @@ public class PurpurWorldConfig { diff --git a/patches/server/0144-Lobotomize-stuck-villagers.patch b/patches/server/0144-Lobotomize-stuck-villagers.patch index 7fe1f7dcf7..b36c645d17 100644 --- a/patches/server/0144-Lobotomize-stuck-villagers.patch +++ b/patches/server/0144-Lobotomize-stuck-villagers.patch @@ -99,10 +99,10 @@ index a0f0d5e0909da5cfe87078d4722b030635cfeadd..bc14e242f97f9f6d8e581d12319c95ae long i = this.bC + 12000L; long j = this.world.getTime(); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 818712824f714b522296d5bd9d160a2045c53ea0..afc3587e1b9cda48d0483c5faf3dc4569b867b5e 100644 +index 3e2898e3582efc00764885739e1df3a2ab5d5f6e..6f4aab0495e168afe3927b994e9c42ddce59dc20 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1124,6 +1124,8 @@ public class PurpurWorldConfig { +@@ -1134,6 +1134,8 @@ public class PurpurWorldConfig { public int villagerSpawnIronGolemLimit = 0; public boolean villagerCanBreed = true; public int villagerBreedingTicks = 6000; @@ -111,7 +111,7 @@ index 818712824f714b522296d5bd9d160a2045c53ea0..afc3587e1b9cda48d0483c5faf3dc456 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1136,6 +1138,13 @@ public class PurpurWorldConfig { +@@ -1146,6 +1148,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/0145-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch b/patches/server/0145-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch index c3f5df553f..69e7f1aaea 100644 --- a/patches/server/0145-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch +++ b/patches/server/0145-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch @@ -224,10 +224,10 @@ index 69de7588eebba7557cdaec129f19ec1fc2c675c5..dd9b678481620856fb7eaaa04c3b812c public static final VillagerProfession FISHERMAN = a("fisherman", VillagePlaceType.i, SoundEffects.ENTITY_VILLAGER_WORK_FISHERMAN); public static final VillagerProfession FLETCHER = a("fletcher", VillagePlaceType.j, SoundEffects.ENTITY_VILLAGER_WORK_FLETCHER); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index afc3587e1b9cda48d0483c5faf3dc4569b867b5e..d6f4638717376c321496d747d12fe970032b2373 100644 +index 6f4aab0495e168afe3927b994e9c42ddce59dc20..efe82464beb6741413b73bbd6adc5c45eba7bcd6 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1126,6 +1126,8 @@ public class PurpurWorldConfig { +@@ -1136,6 +1136,8 @@ public class PurpurWorldConfig { public int villagerBreedingTicks = 6000; public boolean villagerLobotomizeEnabled = false; public int villagerLobotomizeCheck = 60; @@ -236,7 +236,7 @@ index afc3587e1b9cda48d0483c5faf3dc4569b867b5e..d6f4638717376c321496d747d12fe970 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1145,6 +1147,8 @@ public class PurpurWorldConfig { +@@ -1155,6 +1157,8 @@ public class PurpurWorldConfig { } villagerLobotomizeEnabled = getBoolean("mobs.villager.lobotomize.enabled", villagerLobotomizeEnabled); villagerLobotomizeCheck = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheck); diff --git a/patches/server/0146-Toggle-for-Zombified-Piglin-death-always-counting-as.patch b/patches/server/0146-Toggle-for-Zombified-Piglin-death-always-counting-as.patch index 26d2e823de..e2cc2138e5 100644 --- a/patches/server/0146-Toggle-for-Zombified-Piglin-death-always-counting-as.patch +++ b/patches/server/0146-Toggle-for-Zombified-Piglin-death-always-counting-as.patch @@ -35,10 +35,10 @@ index 9f50054211db48e7fe764434e8d71aab0995e57a..82279ab2f3c1edec14c24c3a7ad24d09 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index d6f4638717376c321496d747d12fe970032b2373..fa29113e3b7a337191495a7b1b02de50bd7f9567 100644 +index efe82464beb6741413b73bbd6adc5c45eba7bcd6..7d32788c5e538be6eff9b6ff4655f279ac1e0e6b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1258,12 +1258,14 @@ public class PurpurWorldConfig { +@@ -1268,12 +1268,14 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinJockeyOnlyBaby = true; public double zombifiedPiglinJockeyChance = 0.05D; public boolean zombifiedPiglinJockeyTryExistingChickens = true; diff --git a/patches/server/0148-Configurable-chance-for-wolves-to-spawn-rabid.patch b/patches/server/0148-Configurable-chance-for-wolves-to-spawn-rabid.patch index acdc23f4cd..6fd4a3b7dd 100644 --- a/patches/server/0148-Configurable-chance-for-wolves-to-spawn-rabid.patch +++ b/patches/server/0148-Configurable-chance-for-wolves-to-spawn-rabid.patch @@ -242,10 +242,10 @@ index dd3c7ad7701ad18ccaf86d73fde7051090ed3d57..e8c6aca70db693250224d1c162e3c268 return super.b(entityhuman, enumhand); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index fa29113e3b7a337191495a7b1b02de50bd7f9567..e925e208c3bd4e24f510bbc11f98a4369a43d2c2 100644 +index 7d32788c5e538be6eff9b6ff4655f279ac1e0e6b..5a05d4e511bf7c96d3e01c59e6e53b105bf7baf6 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1209,10 +1209,14 @@ public class PurpurWorldConfig { +@@ -1219,10 +1219,14 @@ public class PurpurWorldConfig { public boolean wolfRidable = false; public boolean wolfRidableInWater = false; diff --git a/patches/server/0149-Configurable-default-wolf-collar-color.patch b/patches/server/0149-Configurable-default-wolf-collar-color.patch index f221a19944..b2e3efadbc 100644 --- a/patches/server/0149-Configurable-default-wolf-collar-color.patch +++ b/patches/server/0149-Configurable-default-wolf-collar-color.patch @@ -24,7 +24,7 @@ index e8c6aca70db693250224d1c162e3c2684687ea41..e33aadead6e6c5e0a7b39ef95e7aeb0f @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index e925e208c3bd4e24f510bbc11f98a4369a43d2c2..4cf5c279ed04c94db513e08f091838378b103412 100644 +index 5a05d4e511bf7c96d3e01c59e6e53b105bf7baf6..0666c523f82b9083ed8e81570faa923bbeb00ab8 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -3,6 +3,7 @@ package net.pl3x.purpur; @@ -35,7 +35,7 @@ index e925e208c3bd4e24f510bbc11f98a4369a43d2c2..4cf5c279ed04c94db513e08f09183837 import net.minecraft.world.level.Explosion; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; -@@ -1209,12 +1210,18 @@ public class PurpurWorldConfig { +@@ -1219,12 +1220,18 @@ public class PurpurWorldConfig { public boolean wolfRidable = false; public boolean wolfRidableInWater = false; diff --git a/patches/server/0150-Configurable-entity-base-attributes.patch b/patches/server/0150-Configurable-entity-base-attributes.patch index 89414b3a97..b6d39b48b5 100644 --- a/patches/server/0150-Configurable-entity-base-attributes.patch +++ b/patches/server/0150-Configurable-entity-base-attributes.patch @@ -1407,10 +1407,10 @@ index 90cbef7fe8803295f82bddd6709fdf303aedcaba..b84916c0c58fd208ef5547299f8db846 @Nullable diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa507ad497ec 100644 +index 0666c523f82b9083ed8e81570faa923bbeb00ab8..f0f8165c51c17855d0c719d47bea194b80ff7847 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -532,30 +532,58 @@ public class PurpurWorldConfig { +@@ -542,30 +542,58 @@ public class PurpurWorldConfig { public boolean batRidable = false; public boolean batRidableInWater = false; public double batMaxY = 256D; @@ -1469,7 +1469,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50 } public boolean catRidable = false; -@@ -564,6 +592,7 @@ public class PurpurWorldConfig { +@@ -574,6 +602,7 @@ public class PurpurWorldConfig { public int catSpawnSwampHutScanRange = 16; public int catSpawnVillageScanRange = 48; public int catBreedingTicks = 6000; @@ -1477,7 +1477,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50 private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -571,51 +600,92 @@ public class PurpurWorldConfig { +@@ -581,51 +610,92 @@ public class PurpurWorldConfig { catSpawnSwampHutScanRange = getInt("mobs.cat.scan-range-for-other-cats.swamp-hut", catSpawnSwampHutScanRange); catSpawnVillageScanRange = getInt("mobs.cat.scan-range-for-other-cats.village", catSpawnVillageScanRange); catBreedingTicks = getInt("mobs.cat.breeding-delay-ticks", catBreedingTicks); @@ -1570,7 +1570,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50 } public boolean dolphinRidable = false; -@@ -623,19 +693,45 @@ public class PurpurWorldConfig { +@@ -633,19 +703,45 @@ public class PurpurWorldConfig { public float dolphinSpitSpeed = 1.0F; public float dolphinSpitDamage = 2.0F; public boolean dolphinDisableTreasureSearching = false; @@ -1616,7 +1616,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50 } public boolean drownedRidable = false; -@@ -643,73 +739,135 @@ public class PurpurWorldConfig { +@@ -653,73 +749,135 @@ public class PurpurWorldConfig { public boolean drownedJockeyOnlyBaby = true; public double drownedJockeyChance = 0.05D; public boolean drownedJockeyTryExistingChickens = true; @@ -1752,7 +1752,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50 } public boolean giantRidable = false; -@@ -732,31 +890,68 @@ public class PurpurWorldConfig { +@@ -742,31 +900,68 @@ public class PurpurWorldConfig { giantHaveHostileAI = getBoolean("mobs.giant.have-hostile-ai", giantHaveHostileAI); if (PurpurConfig.version < 8) { double oldValue = getDouble("mobs.giant.max-health", giantMaxHealth); @@ -1823,7 +1823,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50 } public boolean huskRidable = false; -@@ -764,12 +959,21 @@ public class PurpurWorldConfig { +@@ -774,12 +969,21 @@ public class PurpurWorldConfig { public boolean huskJockeyOnlyBaby = true; public double huskJockeyChance = 0.05D; public boolean huskJockeyTryExistingChickens = true; @@ -1845,7 +1845,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50 } public boolean illusionerRidable = false; -@@ -784,85 +988,188 @@ public class PurpurWorldConfig { +@@ -794,85 +998,188 @@ public class PurpurWorldConfig { illusionerFollowRange = getDouble("mobs.illusioner.follow-range", illusionerFollowRange); if (PurpurConfig.version < 8) { double oldValue = getDouble("mobs.illusioner.max-health", illusionerMaxHealth); @@ -2036,7 +2036,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50 } public boolean phantomRidable = false; -@@ -889,6 +1196,7 @@ public class PurpurWorldConfig { +@@ -899,6 +1206,7 @@ public class PurpurWorldConfig { public boolean phantomIgnorePlayersWithTorch = false; public boolean phantomBurnInDaylight = true; public boolean phantomAllowGriefing = false; @@ -2044,7 +2044,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -914,38 +1222,72 @@ public class PurpurWorldConfig { +@@ -924,38 +1232,72 @@ public class PurpurWorldConfig { phantomBurnInDaylight = getBoolean("mobs.phantom.burn-in-daylight", phantomBurnInDaylight); phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch); phantomAllowGriefing = getBoolean("mobs.phantom.allow-griefing", phantomAllowGriefing); @@ -2117,7 +2117,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50 } public boolean polarBearRidable = false; -@@ -953,6 +1295,7 @@ public class PurpurWorldConfig { +@@ -963,6 +1305,7 @@ public class PurpurWorldConfig { public String polarBearBreedableItemString = ""; public Item polarBearBreedableItem = null; public int polarBearBreedingTicks = 6000; @@ -2125,7 +2125,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50 private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -960,11 +1303,24 @@ public class PurpurWorldConfig { +@@ -970,11 +1313,24 @@ public class PurpurWorldConfig { Item item = IRegistry.ITEM.get(new MinecraftKey(polarBearBreedableItemString)); if (item != Items.AIR) polarBearBreedableItem = item; polarBearBreedingTicks = getInt("mobs.polar_bear.breeding-delay-ticks", polarBearBreedingTicks); @@ -2150,7 +2150,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50 } public boolean rabbitRidable = false; -@@ -972,68 +1328,144 @@ public class PurpurWorldConfig { +@@ -982,68 +1338,144 @@ public class PurpurWorldConfig { public double rabbitNaturalToast = 0.0D; public double rabbitNaturalKiller = 0.0D; public int rabbitBreedingTicks = 6000; @@ -2295,7 +2295,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50 } public boolean snowGolemRidable = false; -@@ -1045,6 +1477,7 @@ public class PurpurWorldConfig { +@@ -1055,6 +1487,7 @@ public class PurpurWorldConfig { public int snowGolemSnowBallMax = 20; public float snowGolemSnowBallModifier = 10.0F; public double snowGolemAttackDistance = 1.25D; @@ -2303,7 +2303,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1055,63 +1488,118 @@ public class PurpurWorldConfig { +@@ -1065,63 +1498,118 @@ public class PurpurWorldConfig { snowGolemSnowBallMax = getInt("mobs.snow_golem.max-shoot-interval-ticks", snowGolemSnowBallMax); snowGolemSnowBallModifier = (float) getDouble("mobs.snow_golem.snow-ball-modifier", snowGolemSnowBallModifier); snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance); @@ -2422,7 +2422,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50 } public boolean villagerRidable = false; -@@ -1129,6 +1617,7 @@ public class PurpurWorldConfig { +@@ -1139,6 +1627,7 @@ public class PurpurWorldConfig { public int villagerLobotomizeCheck = 60; public boolean villagerClericsFarmWarts = false; public boolean villagerClericFarmersThrowWarts = true; @@ -2430,7 +2430,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1150,33 +1639,60 @@ public class PurpurWorldConfig { +@@ -1160,33 +1649,60 @@ public class PurpurWorldConfig { villagerLobotomizeCheck = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheck); villagerClericsFarmWarts = getBoolean("mobs.villager.clerics-farm-warts", villagerClericsFarmWarts); villagerClericFarmersThrowWarts = getBoolean("mobs.villager.cleric-wart-farmers-throw-warts-at-villagers", villagerClericFarmersThrowWarts); @@ -2491,7 +2491,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50 } public boolean witherRidable = false; -@@ -1193,19 +1709,30 @@ public class PurpurWorldConfig { +@@ -1203,19 +1719,30 @@ public class PurpurWorldConfig { witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay); if (PurpurConfig.version < 8) { double oldValue = getDouble("mobs.wither.max-health", witherMaxHealth); @@ -2524,7 +2524,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50 } public boolean wolfRidable = false; -@@ -1214,6 +1741,7 @@ public class PurpurWorldConfig { +@@ -1224,6 +1751,7 @@ public class PurpurWorldConfig { public boolean wolfMilkCuresRabies = true; public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; @@ -2532,7 +2532,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50 private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -1225,13 +1753,26 @@ public class PurpurWorldConfig { +@@ -1235,13 +1763,26 @@ public class PurpurWorldConfig { wolfMilkCuresRabies = getBoolean("mobs.wolf.milk-cures-rabid-wolves", wolfMilkCuresRabies); wolfNaturalRabid = getDouble("mobs.wolf.spawn-rabid-chance", wolfNaturalRabid); wolfBreedingTicks = getInt("mobs.wolf.breeding-delay-ticks", wolfBreedingTicks); @@ -2559,7 +2559,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50 } public boolean zombieRidable = false; -@@ -1241,6 +1782,8 @@ public class PurpurWorldConfig { +@@ -1251,6 +1792,8 @@ public class PurpurWorldConfig { public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; public EnumDifficulty zombieBreakDoorMinDifficulty = EnumDifficulty.HARD; @@ -2568,7 +2568,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1253,15 +1796,40 @@ public class PurpurWorldConfig { +@@ -1263,15 +1806,40 @@ public class PurpurWorldConfig { } catch (IllegalArgumentException ignore) { zombieBreakDoorMinDifficulty = EnumDifficulty.HARD; } @@ -2609,7 +2609,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50 } public boolean zombifiedPiglinRidable = false; -@@ -1270,6 +1838,8 @@ public class PurpurWorldConfig { +@@ -1280,6 +1848,8 @@ public class PurpurWorldConfig { public double zombifiedPiglinJockeyChance = 0.05D; public boolean zombifiedPiglinJockeyTryExistingChickens = true; public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true; @@ -2618,7 +2618,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -1277,6 +1847,13 @@ public class PurpurWorldConfig { +@@ -1287,6 +1857,13 @@ public class PurpurWorldConfig { zombifiedPiglinJockeyChance = getDouble("mobs.zombified_piglin.jockey.chance", zombifiedPiglinJockeyChance); zombifiedPiglinJockeyTryExistingChickens = getBoolean("mobs.zombified_piglin.jockey.try-existing-chickens", zombifiedPiglinJockeyTryExistingChickens); zombifiedPiglinCountAsPlayerKillWhenAngry = getBoolean("mobs.zombified_piglin.count-as-player-kill-when-angry", zombifiedPiglinCountAsPlayerKillWhenAngry); @@ -2632,7 +2632,7 @@ index 4cf5c279ed04c94db513e08f091838378b103412..06a65bb15e926865ac43ff257dbbaa50 } public boolean zombieVillagerRidable = false; -@@ -1284,11 +1861,20 @@ public class PurpurWorldConfig { +@@ -1294,11 +1871,20 @@ public class PurpurWorldConfig { public boolean zombieVillagerJockeyOnlyBaby = true; public double zombieVillagerJockeyChance = 0.05D; public boolean zombieVillagerJockeyTryExistingChickens = true; diff --git a/patches/server/0151-Phantom-flames-on-swoop.patch b/patches/server/0151-Phantom-flames-on-swoop.patch index ee39921ce6..d4d78cad2e 100644 --- a/patches/server/0151-Phantom-flames-on-swoop.patch +++ b/patches/server/0151-Phantom-flames-on-swoop.patch @@ -17,10 +17,10 @@ index 902b26d609aef8dd46e8875cb7c06f187511e8d5..4f3d4f2596c69881f0653bddcc3bf2b9 @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 06a65bb15e926865ac43ff257dbbaa507ad497ec..6b4388b80be8f2a3ca54b667d9fd694f15abb00e 100644 +index f0f8165c51c17855d0c719d47bea194b80ff7847..c84a331c157ea1180813cba1107bf901a35b2833 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1196,6 +1196,7 @@ public class PurpurWorldConfig { +@@ -1206,6 +1206,7 @@ public class PurpurWorldConfig { public boolean phantomIgnorePlayersWithTorch = false; public boolean phantomBurnInDaylight = true; public boolean phantomAllowGriefing = false; @@ -28,7 +28,7 @@ index 06a65bb15e926865ac43ff257dbbaa507ad497ec..6b4388b80be8f2a3ca54b667d9fd694f public double phantomMaxHealth = 20.0D; private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); -@@ -1222,6 +1223,7 @@ public class PurpurWorldConfig { +@@ -1232,6 +1233,7 @@ public class PurpurWorldConfig { phantomBurnInDaylight = getBoolean("mobs.phantom.burn-in-daylight", phantomBurnInDaylight); phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch); phantomAllowGriefing = getBoolean("mobs.phantom.allow-griefing", phantomAllowGriefing); diff --git a/patches/server/0152-Option-for-chests-to-open-even-with-a-solid-block-on.patch b/patches/server/0152-Option-for-chests-to-open-even-with-a-solid-block-on.patch index 3cc73edf53..3f720b22d0 100644 --- a/patches/server/0152-Option-for-chests-to-open-even-with-a-solid-block-on.patch +++ b/patches/server/0152-Option-for-chests-to-open-even-with-a-solid-block-on.patch @@ -17,10 +17,10 @@ index a45ee959f41e7f349ff2c309f21fa44ec671cb87..cddf8e3d34385eb264cd28ba6b4392d6 return iblockaccess.getType(blockposition1).isOccluding(iblockaccess, blockposition1); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 6b4388b80be8f2a3ca54b667d9fd694f15abb00e..b021462c7dd5fe9d12f4fcf196bf7eb17bdffb19 100644 +index c84a331c157ea1180813cba1107bf901a35b2833..3d1cfd550b12c8dd4bd536c518ac169ff6bbfe50 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -429,6 +429,11 @@ public class PurpurWorldConfig { +@@ -439,6 +439,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0154-Striders-give-saddle-back.patch b/patches/server/0154-Striders-give-saddle-back.patch index 60f0dfafc1..350d49ac69 100644 --- a/patches/server/0154-Striders-give-saddle-back.patch +++ b/patches/server/0154-Striders-give-saddle-back.patch @@ -28,10 +28,10 @@ index 892aa844a98ae0d192737c6fc6df0a219256a47b..5e4cc99a746d98231bbb71672fbc0243 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index b021462c7dd5fe9d12f4fcf196bf7eb17bdffb19..1b4275c3a810da7b464b07e3fe33637258c683b7 100644 +index 3d1cfd550b12c8dd4bd536c518ac169ff6bbfe50..130dc441be74963c272381e992ea39883804f9f7 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1552,11 +1552,13 @@ public class PurpurWorldConfig { +@@ -1562,11 +1562,13 @@ public class PurpurWorldConfig { public boolean striderRidable = false; public boolean striderRidableInWater = false; public int striderBreedingTicks = 6000; diff --git a/patches/server/0156-Full-netherite-armor-grants-fire-resistance.patch b/patches/server/0156-Full-netherite-armor-grants-fire-resistance.patch index 72be8b55e6..aa08c83cae 100644 --- a/patches/server/0156-Full-netherite-armor-grants-fire-resistance.patch +++ b/patches/server/0156-Full-netherite-armor-grants-fire-resistance.patch @@ -26,10 +26,10 @@ index af10d5aea7909ee9f38982264233f0a45c153003..5a2678cf3a8441344629b6a0bf4b6be5 protected ItemCooldown i() { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 1b4275c3a810da7b464b07e3fe33637258c683b7..59a19ab449287226938852a06b88d20c2062a43c 100644 +index 130dc441be74963c272381e992ea39883804f9f7..318513f5612a694c2b240840b24a39210457c202 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -346,6 +346,19 @@ public class PurpurWorldConfig { +@@ -356,6 +356,19 @@ public class PurpurWorldConfig { playerDeathExpDropMax = getInt("gameplay-mechanics.player.exp-dropped-on-death.maximum", playerDeathExpDropMax); } diff --git a/patches/server/0158-Add-MC-4-fix-back.patch b/patches/server/0158-Add-MC-4-fix-back.patch index c3d1fe8bf4..6651ddd114 100644 --- a/patches/server/0158-Add-MC-4-fix-back.patch +++ b/patches/server/0158-Add-MC-4-fix-back.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add MC-4 fix back diff --git a/src/main/java/net/minecraft/world/entity/item/EntityItem.java b/src/main/java/net/minecraft/world/entity/item/EntityItem.java -index 3b84039a76843a0784e2d71bb66dc322450c2cab..8640472dba341285a37edb086e1bea387204fd04 100644 +index 92cd61cd6b085a03c502223f3861540d8c9f27e1..51663e58def93cc38157a99069db86603faf4c0a 100644 --- a/src/main/java/net/minecraft/world/entity/item/EntityItem.java +++ b/src/main/java/net/minecraft/world/entity/item/EntityItem.java -@@ -571,7 +571,7 @@ public class EntityItem extends Entity { +@@ -575,7 +575,7 @@ public class EntityItem extends Entity { // Paper start - fix MC-4 public void setPositionRaw(double x, double y, double z) { diff --git a/patches/server/0159-Add-mobGriefing-bypass-to-everything-affected.patch b/patches/server/0159-Add-mobGriefing-bypass-to-everything-affected.patch index a6fad1c2a4..f9ae45282d 100644 --- a/patches/server/0159-Add-mobGriefing-bypass-to-everything-affected.patch +++ b/patches/server/0159-Add-mobGriefing-bypass-to-everything-affected.patch @@ -338,10 +338,10 @@ index 04504901b1933ed760b34b8abb994de8ec340a4e..e18be05c9a9230105ec54395d4391c86 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 59a19ab449287226938852a06b88d20c2062a43c..bad517f152bf660d75e9c9ceaea31d0d8b13b279 100644 +index 318513f5612a694c2b240840b24a39210457c202..6943af6037c1b8832c2fa652b92b9a2badf8bac5 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -286,6 +286,7 @@ public class PurpurWorldConfig { +@@ -296,6 +296,7 @@ public class PurpurWorldConfig { public boolean disableDropsOnCrammingDeath = false; public boolean entitiesPickUpLootBypassMobGriefing = false; public boolean entitiesCanUsePortals = true; @@ -349,7 +349,7 @@ index 59a19ab449287226938852a06b88d20c2062a43c..bad517f152bf660d75e9c9ceaea31d0d public boolean milkCuresBadOmen = true; public boolean persistentTileEntityDisplayNames = false; public boolean persistentDroppableEntityDisplayNames = false; -@@ -301,6 +302,7 @@ public class PurpurWorldConfig { +@@ -311,6 +312,7 @@ public class PurpurWorldConfig { disableDropsOnCrammingDeath = getBoolean("gameplay-mechanics.disable-drops-on-cramming-death", disableDropsOnCrammingDeath); entitiesPickUpLootBypassMobGriefing = getBoolean("gameplay-mechanics.entities-pick-up-loot-bypass-mob-griefing", entitiesPickUpLootBypassMobGriefing); entitiesCanUsePortals = getBoolean("gameplay-mechanics.entities-can-use-portals", entitiesCanUsePortals); @@ -357,7 +357,7 @@ index 59a19ab449287226938852a06b88d20c2062a43c..bad517f152bf660d75e9c9ceaea31d0d milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); persistentTileEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-tileentity-display-names-and-lore", persistentTileEntityDisplayNames); persistentDroppableEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-droppable-entity-display-names", persistentDroppableEntityDisplayNames); -@@ -454,9 +456,11 @@ public class PurpurWorldConfig { +@@ -464,9 +466,11 @@ public class PurpurWorldConfig { dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils); } @@ -369,7 +369,7 @@ index 59a19ab449287226938852a06b88d20c2062a43c..bad517f152bf660d75e9c9ceaea31d0d farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); farmlandAlpha = getBoolean("blocks.farmland.use-alpha-farmland", farmlandAlpha); } -@@ -515,10 +519,12 @@ public class PurpurWorldConfig { +@@ -525,10 +529,12 @@ public class PurpurWorldConfig { stonecutterDamage = (float) getDouble("blocks.stonecutter.damage", stonecutterDamage); } @@ -382,7 +382,7 @@ index 59a19ab449287226938852a06b88d20c2062a43c..bad517f152bf660d75e9c9ceaea31d0d 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); -@@ -790,12 +796,14 @@ public class PurpurWorldConfig { +@@ -800,12 +806,14 @@ public class PurpurWorldConfig { public boolean enderDragonRidableInWater = false; public double enderDragonMaxY = 256D; public boolean enderDragonAlwaysDropsFullExp = false; @@ -397,7 +397,7 @@ index 59a19ab449287226938852a06b88d20c2062a43c..bad517f152bf660d75e9c9ceaea31d0d if (PurpurConfig.version < 8) { double oldValue = getDouble("mobs.ender_dragon.max-health", enderDragonMaxHealth); set("mobs.ender_dragon.max-health", null); -@@ -811,12 +819,14 @@ public class PurpurWorldConfig { +@@ -821,12 +829,14 @@ public class PurpurWorldConfig { public boolean endermanRidable = false; public boolean endermanRidableInWater = false; public boolean endermanAllowGriefing = true; @@ -412,7 +412,7 @@ index 59a19ab449287226938852a06b88d20c2062a43c..bad517f152bf660d75e9c9ceaea31d0d endermanDespawnEvenWithBlock = getBoolean("mobs.enderman.can-despawn-with-held-block", endermanDespawnEvenWithBlock); if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.enderman.attributes.max-health", endermanMaxHealth); -@@ -842,10 +852,12 @@ public class PurpurWorldConfig { +@@ -852,10 +862,12 @@ public class PurpurWorldConfig { public boolean evokerRidable = false; public boolean evokerRidableInWater = false; @@ -425,7 +425,7 @@ index 59a19ab449287226938852a06b88d20c2062a43c..bad517f152bf660d75e9c9ceaea31d0d if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.evoker.attributes.max-health", evokerMaxHealth); set("mobs.evoker.attributes.max-health", null); -@@ -856,12 +868,14 @@ public class PurpurWorldConfig { +@@ -866,12 +878,14 @@ public class PurpurWorldConfig { public boolean foxRidable = false; public boolean foxRidableInWater = false; @@ -440,7 +440,7 @@ index 59a19ab449287226938852a06b88d20c2062a43c..bad517f152bf660d75e9c9ceaea31d0d foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips); foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks); if (PurpurConfig.version < 10) { -@@ -1298,10 +1312,12 @@ public class PurpurWorldConfig { +@@ -1308,10 +1322,12 @@ public class PurpurWorldConfig { public boolean pillagerRidable = false; public boolean pillagerRidableInWater = false; @@ -453,7 +453,7 @@ index 59a19ab449287226938852a06b88d20c2062a43c..bad517f152bf660d75e9c9ceaea31d0d if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.pillager.attributes.max-health", pillagerMaxHealth); set("mobs.pillager.attributes.max-health", null); -@@ -1345,6 +1361,7 @@ public class PurpurWorldConfig { +@@ -1355,6 +1371,7 @@ public class PurpurWorldConfig { public boolean rabbitRidable = false; public boolean rabbitRidableInWater = false; @@ -461,7 +461,7 @@ index 59a19ab449287226938852a06b88d20c2062a43c..bad517f152bf660d75e9c9ceaea31d0d public double rabbitNaturalToast = 0.0D; public double rabbitNaturalKiller = 0.0D; public int rabbitBreedingTicks = 6000; -@@ -1352,6 +1369,7 @@ public class PurpurWorldConfig { +@@ -1362,6 +1379,7 @@ public class PurpurWorldConfig { private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); @@ -469,7 +469,7 @@ index 59a19ab449287226938852a06b88d20c2062a43c..bad517f152bf660d75e9c9ceaea31d0d 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); -@@ -1365,10 +1383,12 @@ public class PurpurWorldConfig { +@@ -1375,10 +1393,12 @@ public class PurpurWorldConfig { public boolean ravagerRidable = false; public boolean ravagerRidableInWater = false; @@ -482,7 +482,7 @@ index 59a19ab449287226938852a06b88d20c2062a43c..bad517f152bf660d75e9c9ceaea31d0d if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.ravager.attributes.max-health", ravagerMaxHealth); set("mobs.ravager.attributes.max-health", null); -@@ -1392,11 +1412,13 @@ public class PurpurWorldConfig { +@@ -1402,11 +1422,13 @@ public class PurpurWorldConfig { public boolean sheepRidable = false; public boolean sheepRidableInWater = false; public int sheepBreedingTicks = 6000; @@ -496,7 +496,7 @@ index 59a19ab449287226938852a06b88d20c2062a43c..bad517f152bf660d75e9c9ceaea31d0d if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.sheep.attributes.max-health", sheepMaxHealth); set("mobs.sheep.attributes.max-health", null); -@@ -1421,10 +1443,12 @@ public class PurpurWorldConfig { +@@ -1431,10 +1453,12 @@ public class PurpurWorldConfig { public boolean silverfishRidable = false; public boolean silverfishRidableInWater = false; @@ -509,7 +509,7 @@ index 59a19ab449287226938852a06b88d20c2062a43c..bad517f152bf660d75e9c9ceaea31d0d if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.silverfish.attributes.max-health", silverfishMaxHealth); set("mobs.silverfish.attributes.max-health", null); -@@ -1491,6 +1515,7 @@ public class PurpurWorldConfig { +@@ -1501,6 +1525,7 @@ public class PurpurWorldConfig { public boolean snowGolemRidable = false; public boolean snowGolemRidableInWater = false; public boolean snowGolemLeaveTrailWhenRidden = false; @@ -517,7 +517,7 @@ index 59a19ab449287226938852a06b88d20c2062a43c..bad517f152bf660d75e9c9ceaea31d0d public boolean snowGolemDropsPumpkin = true; public boolean snowGolemPutPumpkinBack = false; public int snowGolemSnowBallMin = 20; -@@ -1502,6 +1527,7 @@ public class PurpurWorldConfig { +@@ -1512,6 +1537,7 @@ public class PurpurWorldConfig { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); snowGolemLeaveTrailWhenRidden = getBoolean("mobs.snow_golem.leave-trail-when-ridden", snowGolemLeaveTrailWhenRidden); @@ -525,7 +525,7 @@ index 59a19ab449287226938852a06b88d20c2062a43c..bad517f152bf660d75e9c9ceaea31d0d snowGolemDropsPumpkin = getBoolean("mobs.snow_golem.drop-pumpkin-when-sheared", snowGolemDropsPumpkin); snowGolemPutPumpkinBack = getBoolean("mobs.snow_golem.pumpkin-can-be-added-back", snowGolemPutPumpkinBack); snowGolemSnowBallMin = getInt("mobs.snow_golem.min-shoot-interval-ticks", snowGolemSnowBallMin); -@@ -1720,6 +1746,7 @@ public class PurpurWorldConfig { +@@ -1730,6 +1756,7 @@ public class PurpurWorldConfig { public boolean witherRidable = false; public boolean witherRidableInWater = false; public double witherMaxY = 256D; @@ -533,7 +533,7 @@ index 59a19ab449287226938852a06b88d20c2062a43c..bad517f152bf660d75e9c9ceaea31d0d public float witherHealthRegenAmount = 1.0f; public int witherHealthRegenDelay = 20; public double witherMaxHealth = 300.0D; -@@ -1727,6 +1754,7 @@ public class PurpurWorldConfig { +@@ -1737,6 +1764,7 @@ public class PurpurWorldConfig { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); witherMaxY = getDouble("mobs.wither.ridable-max-y", witherMaxY); @@ -541,7 +541,7 @@ index 59a19ab449287226938852a06b88d20c2062a43c..bad517f152bf660d75e9c9ceaea31d0d witherHealthRegenAmount = (float) getDouble("mobs.wither.health-regen-amount", witherHealthRegenAmount); witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay); if (PurpurConfig.version < 8) { -@@ -1799,6 +1827,7 @@ public class PurpurWorldConfig { +@@ -1809,6 +1837,7 @@ public class PurpurWorldConfig { public boolean zombieRidable = false; public boolean zombieRidableInWater = false; @@ -549,7 +549,7 @@ index 59a19ab449287226938852a06b88d20c2062a43c..bad517f152bf660d75e9c9ceaea31d0d public boolean zombieJockeyOnlyBaby = true; public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; -@@ -1809,6 +1838,7 @@ public class PurpurWorldConfig { +@@ -1819,6 +1848,7 @@ public class PurpurWorldConfig { private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); diff --git a/patches/server/0160-Config-to-allow-Note-Block-sounds-when-blocked.patch b/patches/server/0160-Config-to-allow-Note-Block-sounds-when-blocked.patch index 14c729572e..5f989a5327 100644 --- a/patches/server/0160-Config-to-allow-Note-Block-sounds-when-blocked.patch +++ b/patches/server/0160-Config-to-allow-Note-Block-sounds-when-blocked.patch @@ -22,10 +22,10 @@ index 148718f8f96d94e76a4a7a96d5955b624c2dc661..075987567cd4412c8f0fb4e31b786394 org.bukkit.event.block.NotePlayEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callNotePlayEvent(world, blockposition, data.get(BlockNote.INSTRUMENT), data.get(BlockNote.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 bad517f152bf660d75e9c9ceaea31d0d8b13b279..42699837ebade38add65b702d4daaf6a88900c4e 100644 +index 6943af6037c1b8832c2fa652b92b9a2badf8bac5..a0df754d98e4be46720ba0962bdf7bf62f3425bb 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 { +@@ -298,6 +298,7 @@ public class PurpurWorldConfig { public boolean entitiesCanUsePortals = true; public boolean fireballsBypassMobGriefing = false; public boolean milkCuresBadOmen = true; @@ -33,7 +33,7 @@ index bad517f152bf660d75e9c9ceaea31d0d8b13b279..42699837ebade38add65b702d4daaf6a public boolean persistentTileEntityDisplayNames = false; public boolean persistentDroppableEntityDisplayNames = false; public double tridentLoyaltyVoidReturnHeight = 0.0D; -@@ -304,6 +305,7 @@ public class PurpurWorldConfig { +@@ -314,6 +315,7 @@ public class PurpurWorldConfig { entitiesCanUsePortals = getBoolean("gameplay-mechanics.entities-can-use-portals", entitiesCanUsePortals); fireballsBypassMobGriefing = getBoolean("gameplay-mechanics.fireballs-bypass-mob-griefing", fireballsBypassMobGriefing); milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); diff --git a/patches/server/0161-Add-EntityTeleportHinderedEvent.patch b/patches/server/0161-Add-EntityTeleportHinderedEvent.patch index deb17c153b..0676bfa812 100644 --- a/patches/server/0161-Add-EntityTeleportHinderedEvent.patch +++ b/patches/server/0161-Add-EntityTeleportHinderedEvent.patch @@ -94,10 +94,10 @@ index 23a3b1b317b6b3e9d812f5a7b09b099b0528c59e..4f40c6c3397596c81147fae4a6a51bfd public void a(IBlockData iblockdata, World world, BlockPosition blockposition, Entity entity) {} diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 42699837ebade38add65b702d4daaf6a88900c4e..ed615dc6c009bb149bd2f2271ea205453dcde6e3 100644 +index a0df754d98e4be46720ba0962bdf7bf62f3425bb..c8b510a49ba5c299ec38ea1a56f5245ec6161b55 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1931,4 +1931,9 @@ public class PurpurWorldConfig { +@@ -1941,4 +1941,9 @@ public class PurpurWorldConfig { zombieVillagerMaxHealth = getDouble("mobs.zombie_villager.attributes.max_health", zombieVillagerMaxHealth); zombieVillagerSpawnReinforcements = getDouble("mobs.zombie_villager.attributes.spawn_reinforcements", zombieVillagerSpawnReinforcements); } diff --git a/patches/server/0163-Farmland-trampling-changes.patch b/patches/server/0163-Farmland-trampling-changes.patch index 1fe60ab5b9..b5727a7c3e 100644 --- a/patches/server/0163-Farmland-trampling-changes.patch +++ b/patches/server/0163-Farmland-trampling-changes.patch @@ -54,10 +54,10 @@ index d3fd0b418b9088b621e44f5da452db74b433efe8..e7e5ee52cb7ac7e406c837db686d0a96 if (CraftEventFactory.callEntityChangeBlockEvent(entity, blockposition, Blocks.DIRT.getBlockData()).isCancelled()) { return; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index ed615dc6c009bb149bd2f2271ea205453dcde6e3..e0eb88dcbde7c270b050f067dc324cbb42986ad5 100644 +index c8b510a49ba5c299ec38ea1a56f5245ec6161b55..e639519a78bababc5d8034841e9ab2c20d34e4f7 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -461,10 +461,16 @@ public class PurpurWorldConfig { +@@ -471,10 +471,16 @@ public class PurpurWorldConfig { public boolean farmlandBypassMobGriefing = false; public boolean farmlandGetsMoistFromBelow = false; public boolean farmlandAlpha = false; diff --git a/patches/server/0164-Movement-options-for-armor-stands.patch b/patches/server/0164-Movement-options-for-armor-stands.patch index 8e2ba2674d..2fc83e6436 100644 --- a/patches/server/0164-Movement-options-for-armor-stands.patch +++ b/patches/server/0164-Movement-options-for-armor-stands.patch @@ -74,7 +74,7 @@ index 43dc0925887e2e9e86445cccff57be7994ca0d58..ecb797e67554d30e35b3aca4d0fc9b0e + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index e0eb88dcbde7c270b050f067dc324cbb42986ad5..37be98ab5fd1bf2db727137e35f9744074576f9b 100644 +index e639519a78bababc5d8034841e9ab2c20d34e4f7..9d8056d7766925fec57b17b55f56dd8c67382b0a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -111,10 +111,16 @@ public class PurpurWorldConfig { diff --git a/patches/server/0165-Fix-stuck-in-portals.patch b/patches/server/0165-Fix-stuck-in-portals.patch index 36d7c0dbc0..b41c3f644c 100644 --- a/patches/server/0165-Fix-stuck-in-portals.patch +++ b/patches/server/0165-Fix-stuck-in-portals.patch @@ -37,10 +37,10 @@ index 2545b0891a299301a8d9e194e795b0f3856f2178..fdd374232ced8f4da675afaee3f5278c this.inPortal = true; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 37be98ab5fd1bf2db727137e35f9744074576f9b..1baff8389841b21dbfa00adf6d6213dffb94f47e 100644 +index 9d8056d7766925fec57b17b55f56dd8c67382b0a..742db39c2bcd0a1416108e6ee57bd8156b50c0b8 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -398,6 +398,11 @@ public class PurpurWorldConfig { +@@ -408,6 +408,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0166-Config-to-use-infinity-bows-without-arrows.patch b/patches/server/0166-Config-to-use-infinity-bows-without-arrows.patch index b9da57e3be..ce6517eeeb 100644 --- a/patches/server/0166-Config-to-use-infinity-bows-without-arrows.patch +++ b/patches/server/0166-Config-to-use-infinity-bows-without-arrows.patch @@ -20,10 +20,10 @@ index c7e20b25b4d09463fa54c66e62208e90515013e2..59b803ec4552058f2dda269e9435daf6 } else { entityhuman.c(enumhand); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 1baff8389841b21dbfa00adf6d6213dffb94f47e..bd81fcec811b65205f77ff3fa81ba649337e0046 100644 +index 742db39c2bcd0a1416108e6ee57bd8156b50c0b8..7b0babbd727421ecd05523eadbff3abb758fab6f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -243,10 +243,12 @@ public class PurpurWorldConfig { +@@ -253,10 +253,12 @@ public class PurpurWorldConfig { idleTimeoutUpdateTabList = getBoolean("gameplay-mechanics.player.idle-timeout.update-tab-list", idleTimeoutUpdateTabList); } diff --git a/patches/server/0167-Toggle-for-water-sensitive-mob-damage.patch b/patches/server/0167-Toggle-for-water-sensitive-mob-damage.patch index 77f52996f6..d14f4bc88f 100644 --- a/patches/server/0167-Toggle-for-water-sensitive-mob-damage.patch +++ b/patches/server/0167-Toggle-for-water-sensitive-mob-damage.patch @@ -83,10 +83,10 @@ index 5e4cc99a746d98231bbb71672fbc02431e4fab48..f52ae7446c16d5b8ac51bd2e12bb51d2 @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index bd81fcec811b65205f77ff3fa81ba649337e0046..7cdc7502649e24aefabedbe9965a15c2177ef78f 100644 +index 7b0babbd727421ecd05523eadbff3abb758fab6f..faa5df044857f19503b35bbcf7366ac13b2fa2a9 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -619,6 +619,7 @@ public class PurpurWorldConfig { +@@ -629,6 +629,7 @@ public class PurpurWorldConfig { public boolean blazeRidableInWater = false; public double blazeMaxY = 256D; public double blazeMaxHealth = 20.0D; @@ -94,7 +94,7 @@ index bd81fcec811b65205f77ff3fa81ba649337e0046..7cdc7502649e24aefabedbe9965a15c2 private void blazeSettings() { blazeRidable = getBoolean("mobs.blaze.ridable", blazeRidable); blazeRidableInWater = getBoolean("mobs.blaze.ridable-in-water", blazeRidableInWater); -@@ -629,6 +630,7 @@ public class PurpurWorldConfig { +@@ -639,6 +640,7 @@ public class PurpurWorldConfig { set("mobs.blaze.attributes.max_health", oldValue); } blazeMaxHealth = getDouble("mobs.blaze.attributes.max_health", blazeMaxHealth); @@ -102,7 +102,7 @@ index bd81fcec811b65205f77ff3fa81ba649337e0046..7cdc7502649e24aefabedbe9965a15c2 } public boolean catRidable = false; -@@ -843,6 +845,7 @@ public class PurpurWorldConfig { +@@ -853,6 +855,7 @@ public class PurpurWorldConfig { public boolean endermanBypassMobGriefing = false; public boolean endermanDespawnEvenWithBlock = false; public double endermanMaxHealth = 40.0D; @@ -110,7 +110,7 @@ index bd81fcec811b65205f77ff3fa81ba649337e0046..7cdc7502649e24aefabedbe9965a15c2 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -855,6 +858,7 @@ public class PurpurWorldConfig { +@@ -865,6 +868,7 @@ public class PurpurWorldConfig { set("mobs.enderman.attributes.max_health", oldValue); } endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth); @@ -118,7 +118,7 @@ index bd81fcec811b65205f77ff3fa81ba649337e0046..7cdc7502649e24aefabedbe9965a15c2 } public boolean endermiteRidable = false; -@@ -1544,6 +1548,7 @@ public class PurpurWorldConfig { +@@ -1554,6 +1558,7 @@ public class PurpurWorldConfig { public float snowGolemSnowBallModifier = 10.0F; public double snowGolemAttackDistance = 1.25D; public double snowGolemMaxHealth = 4.0D; @@ -126,7 +126,7 @@ index bd81fcec811b65205f77ff3fa81ba649337e0046..7cdc7502649e24aefabedbe9965a15c2 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1561,6 +1566,7 @@ public class PurpurWorldConfig { +@@ -1571,6 +1576,7 @@ public class PurpurWorldConfig { set("mobs.snow_golem.attributes.max_health", oldValue); } snowGolemMaxHealth = getDouble("mobs.snow_golem.attributes.max_health", snowGolemMaxHealth); @@ -134,7 +134,7 @@ index bd81fcec811b65205f77ff3fa81ba649337e0046..7cdc7502649e24aefabedbe9965a15c2 } public boolean squidRidable = false; -@@ -1614,6 +1620,7 @@ public class PurpurWorldConfig { +@@ -1624,6 +1630,7 @@ public class PurpurWorldConfig { public int striderBreedingTicks = 6000; public boolean striderGiveSaddleBack = false; public double striderMaxHealth = 20.0D; @@ -142,7 +142,7 @@ index bd81fcec811b65205f77ff3fa81ba649337e0046..7cdc7502649e24aefabedbe9965a15c2 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1625,6 +1632,7 @@ public class PurpurWorldConfig { +@@ -1635,6 +1642,7 @@ public class PurpurWorldConfig { set("mobs.strider.attributes.max_health", oldValue); } striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth); diff --git a/patches/server/0168-Config-to-always-tame-in-Creative.patch b/patches/server/0168-Config-to-always-tame-in-Creative.patch index 7a678b562b..edd6d0edfd 100644 --- a/patches/server/0168-Config-to-always-tame-in-Creative.patch +++ b/patches/server/0168-Config-to-always-tame-in-Creative.patch @@ -59,10 +59,10 @@ index 090903fbc8f6cd1522c7afb358f708f5ae3395f4..884a3f03c73efb8fb0863976615fba5e this.navigation.o(); this.setGoalTarget((EntityLiving) null); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 7cdc7502649e24aefabedbe9965a15c2177ef78f..9db449d678840ab1532515ac5f54f285f1d3add9 100644 +index faa5df044857f19503b35bbcf7366ac13b2fa2a9..88e28b680e144e1b0bb919e93644b86a48b553e1 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -289,6 +289,7 @@ public class PurpurWorldConfig { +@@ -299,6 +299,7 @@ public class PurpurWorldConfig { } public boolean useBetterMending = false; @@ -70,7 +70,7 @@ index 7cdc7502649e24aefabedbe9965a15c2177ef78f..9db449d678840ab1532515ac5f54f285 public boolean boatEjectPlayersOnLand = false; public boolean boatsDoFallDamage = true; public boolean disableDropsOnCrammingDeath = false; -@@ -306,6 +307,7 @@ public class PurpurWorldConfig { +@@ -316,6 +317,7 @@ public class PurpurWorldConfig { public int animalBreedingCooldownSeconds = 0; private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); diff --git a/patches/server/0169-End-crystal-explosion-options.patch b/patches/server/0169-End-crystal-explosion-options.patch index 9c52b98c03..30f429f991 100644 --- a/patches/server/0169-End-crystal-explosion-options.patch +++ b/patches/server/0169-End-crystal-explosion-options.patch @@ -52,10 +52,10 @@ index 2c983e6a092464d1867fcbe875b2e1461ec8556b..a92c900a6092c07b34711428fac268f4 this.a(damagesource); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 9db449d678840ab1532515ac5f54f285f1d3add9..aed8a7492268f0193556998fb0713d1f9ee84372 100644 +index 88e28b680e144e1b0bb919e93644b86a48b553e1..266b64abb949fca2cc667395d175c962c55435db 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1965,4 +1965,33 @@ public class PurpurWorldConfig { +@@ -1975,4 +1975,33 @@ public class PurpurWorldConfig { private void imposeTeleportRestrictionsOnGateways() { imposeTeleportRestrictionsOnGateways = getBoolean("gameplay-mechanics.impose-teleport-restrictions-on-gateways", imposeTeleportRestrictionsOnGateways); } diff --git a/patches/server/0171-Add-ghast-allow-griefing-option.patch b/patches/server/0171-Add-ghast-allow-griefing-option.patch index 8af4ea2630..388d033b98 100644 --- a/patches/server/0171-Add-ghast-allow-griefing-option.patch +++ b/patches/server/0171-Add-ghast-allow-griefing-option.patch @@ -38,10 +38,10 @@ index 61f06eacb4ea4ef869b60c9014cc23b25583eead..627915ee205fdcc93c5424ad7d7ea057 // CraftBukkit start - fire ExplosionPrimeEvent ExplosionPrimeEvent event = new ExplosionPrimeEvent((org.bukkit.entity.Explosive) this.getBukkitEntity()); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index aed8a7492268f0193556998fb0713d1f9ee84372..e2b0487edbf8eaea38875d93f9eaca9f011a3ce4 100644 +index 266b64abb949fca2cc667395d175c962c55435db..23f7a3af8f92fd6e89601b0e1b4b2d1635dfe0b0 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -916,6 +916,7 @@ public class PurpurWorldConfig { +@@ -926,6 +926,7 @@ public class PurpurWorldConfig { public boolean ghastRidable = false; public boolean ghastRidableInWater = false; public double ghastMaxY = 256D; @@ -49,7 +49,7 @@ index aed8a7492268f0193556998fb0713d1f9ee84372..e2b0487edbf8eaea38875d93f9eaca9f public double ghastMaxHealth = 10.0D; private void ghastSettings() { ghastRidable = getBoolean("mobs.ghast.ridable", ghastRidable); -@@ -926,6 +927,7 @@ public class PurpurWorldConfig { +@@ -936,6 +937,7 @@ public class PurpurWorldConfig { set("mobs.ghast.attributes.max-health", null); set("mobs.ghast.attributes.max_health", oldValue); } diff --git a/patches/server/0172-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch b/patches/server/0172-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch index dc4a862256..c16d926ee1 100644 --- a/patches/server/0172-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch +++ b/patches/server/0172-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch @@ -42,10 +42,10 @@ index fa6b72c7a12b20f8ccffa360a3895e4d8f4277e4..4a3e0f7f59ca4fd64be62a580d08b6ab } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index e2b0487edbf8eaea38875d93f9eaca9f011a3ce4..5f1f3403351503e08c71486571439b672936a1be 100644 +index 23f7a3af8f92fd6e89601b0e1b4b2d1635dfe0b0..b2d7e4ee4ecef476d633278c960130110c862520 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -823,6 +823,7 @@ public class PurpurWorldConfig { +@@ -833,6 +833,7 @@ public class PurpurWorldConfig { public boolean enderDragonAlwaysDropsFullExp = false; public boolean enderDragonBypassMobGriefing = false; public double enderDragonMaxHealth = 200.0D; @@ -53,7 +53,7 @@ index e2b0487edbf8eaea38875d93f9eaca9f011a3ce4..5f1f3403351503e08c71486571439b67 private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -839,6 +840,7 @@ public class PurpurWorldConfig { +@@ -849,6 +850,7 @@ public class PurpurWorldConfig { set("mobs.ender_dragon.attributes.max_health", oldValue); } enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth); @@ -61,7 +61,7 @@ index e2b0487edbf8eaea38875d93f9eaca9f011a3ce4..5f1f3403351503e08c71486571439b67 } public boolean endermanRidable = false; -@@ -1783,6 +1785,7 @@ public class PurpurWorldConfig { +@@ -1793,6 +1795,7 @@ public class PurpurWorldConfig { public float witherHealthRegenAmount = 1.0f; public int witherHealthRegenDelay = 20; public double witherMaxHealth = 300.0D; @@ -69,7 +69,7 @@ index e2b0487edbf8eaea38875d93f9eaca9f011a3ce4..5f1f3403351503e08c71486571439b67 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1800,6 +1803,7 @@ public class PurpurWorldConfig { +@@ -1810,6 +1813,7 @@ public class PurpurWorldConfig { set("mobs.wither.attributes.max_health", oldValue); } witherMaxHealth = getDouble("mobs.wither.attributes.max_health", witherMaxHealth); diff --git a/patches/server/0173-Dont-run-with-scissors.patch b/patches/server/0173-Dont-run-with-scissors.patch index 8bfef934b2..bcf1a87050 100644 --- a/patches/server/0173-Dont-run-with-scissors.patch +++ b/patches/server/0173-Dont-run-with-scissors.patch @@ -22,21 +22,21 @@ index f55485094a5b676d8051d1f8d3151340bf176b33..03a61aa91191b44284e9b4d02f2c57ea this.o = this.player.locX(); this.p = this.player.locY(); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 5f1f3403351503e08c71486571439b672936a1be..e9b77536de0ce19afc00d28996837cdb83cda689 100644 +index b2d7e4ee4ecef476d633278c960130110c862520..02ebb0fc704b5e77cf508893d67feef036df80ed 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -202,6 +202,8 @@ public class PurpurWorldConfig { - public List itemImmuneToCactus = new ArrayList<>(); +@@ -203,6 +203,8 @@ public class PurpurWorldConfig { public List itemImmuneToExplosion = new ArrayList<>(); public List itemImmuneToFire = new ArrayList<>(); + public List itemImmuneToLightning = new ArrayList<>(); + public boolean dontRunWithScissors = false; + public double scissorsRunningDamage = 1D; private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -230,6 +232,8 @@ public class PurpurWorldConfig { +@@ -240,6 +242,8 @@ public class PurpurWorldConfig { Item item = IRegistry.ITEM.get(new MinecraftKey(key.toString())); - if (item != Items.AIR) itemImmuneToFire.add(item); + if (item != Items.AIR) itemImmuneToLightning.add(item); }); + dontRunWithScissors = getBoolean("gameplay-mechanics.item.shears.damage-if-sprinting", dontRunWithScissors); + scissorsRunningDamage = getDouble("gameplay-mechanics.item.shears.sprinting-damage", scissorsRunningDamage); diff --git a/patches/server/0174-One-Punch-Man.patch b/patches/server/0174-One-Punch-Man.patch index b99a7c8dae..e62229247b 100644 --- a/patches/server/0174-One-Punch-Man.patch +++ b/patches/server/0174-One-Punch-Man.patch @@ -45,10 +45,10 @@ index 132972755ac74838f3386e0fac5033380b71fce5..26fff0540e3d8863e83b0a60df220542 Object object; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index e9b77536de0ce19afc00d28996837cdb83cda689..4cb48812344272c9d93aec60e68a7db7f602850e 100644 +index 02ebb0fc704b5e77cf508893d67feef036df80ed..f577b1054f8bdd2be933f7dae3ffe18dfeb87fe5 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -309,6 +309,7 @@ public class PurpurWorldConfig { +@@ -319,6 +319,7 @@ public class PurpurWorldConfig { public double voidDamageDealt = 4.0D; public int raidCooldownSeconds = 0; public int animalBreedingCooldownSeconds = 0; @@ -56,7 +56,7 @@ index e9b77536de0ce19afc00d28996837cdb83cda689..4cb48812344272c9d93aec60e68a7db7 private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); alwaysTameInCreative = getBoolean("gameplay-mechanics.always-tame-in-creative", alwaysTameInCreative); -@@ -327,6 +328,7 @@ public class PurpurWorldConfig { +@@ -337,6 +338,7 @@ public class PurpurWorldConfig { voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt); raidCooldownSeconds = getInt("gameplay-mechanics.raid-cooldown-seconds", raidCooldownSeconds); animalBreedingCooldownSeconds = getInt("gameplay-mechanics.animal-breeding-cooldown-seconds", animalBreedingCooldownSeconds); diff --git a/patches/server/0175-Add-config-for-snow-on-blue-ice.patch b/patches/server/0175-Add-config-for-snow-on-blue-ice.patch index d937532aa8..45beedc6b9 100644 --- a/patches/server/0175-Add-config-for-snow-on-blue-ice.patch +++ b/patches/server/0175-Add-config-for-snow-on-blue-ice.patch @@ -29,10 +29,10 @@ index d44b88185ce58346007c6ef70b76f8e0df23e95c..4b7497acc5b26da48375625b4a31fb05 @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 4cb48812344272c9d93aec60e68a7db7f602850e..cd5deda81433a9ac738e3598e3d0bddd697756ec 100644 +index f577b1054f8bdd2be933f7dae3ffe18dfeb87fe5..8cf40f10dccd9b4f52507e432dcfd6b2015e90f2 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -467,6 +467,11 @@ public class PurpurWorldConfig { +@@ -477,6 +477,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0176-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch b/patches/server/0176-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch index 91ee89f71c..e7f886dc58 100644 --- a/patches/server/0176-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch +++ b/patches/server/0176-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch @@ -43,11 +43,11 @@ index 9896d77381e7fadf1ef2619210713e190c1445d0..61512c6755f29cb2c228ae3e80b1e083 // Paper end if (entityhuman instanceof net.minecraft.server.level.EntityPlayer) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index cd5deda81433a9ac738e3598e3d0bddd697756ec..c0d75601fb8fe1221bbd47433174ceb14c70755f 100644 +index 8cf40f10dccd9b4f52507e432dcfd6b2015e90f2..129fef2e4da94bcd80153379a7246590e4ea9cdd 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -204,6 +204,10 @@ public class PurpurWorldConfig { - public List itemImmuneToFire = new ArrayList<>(); +@@ -205,6 +205,10 @@ public class PurpurWorldConfig { + public List itemImmuneToLightning = new ArrayList<>(); public boolean dontRunWithScissors = false; public double scissorsRunningDamage = 1D; + public float enderPearlDamage = 5.0F; @@ -57,7 +57,7 @@ index cd5deda81433a9ac738e3598e3d0bddd697756ec..c0d75601fb8fe1221bbd47433174ceb1 private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -234,6 +238,10 @@ public class PurpurWorldConfig { +@@ -244,6 +248,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/0177-Config-to-ignore-nearby-mobs-when-sleeping.patch b/patches/server/0177-Config-to-ignore-nearby-mobs-when-sleeping.patch index 6bdceaa7ec..228c989c24 100644 --- a/patches/server/0177-Config-to-ignore-nearby-mobs-when-sleeping.patch +++ b/patches/server/0177-Config-to-ignore-nearby-mobs-when-sleeping.patch @@ -18,10 +18,10 @@ index 9c520e7600986b7b7df3af96a715c91c5347f30d..4ec18d28c0022614b0ef6900774ddd4b } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index c0d75601fb8fe1221bbd47433174ceb14c70755f..35cfc470a83e7643eec2473bb5efe187964b3d6b 100644 +index 129fef2e4da94bcd80153379a7246590e4ea9cdd..eaaaf9e5490095cd70ca892fa927017e6ea9de9d 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -318,6 +318,7 @@ public class PurpurWorldConfig { +@@ -328,6 +328,7 @@ public class PurpurWorldConfig { public int raidCooldownSeconds = 0; public int animalBreedingCooldownSeconds = 0; public boolean creativeOnePunch = false; @@ -29,7 +29,7 @@ index c0d75601fb8fe1221bbd47433174ceb14c70755f..35cfc470a83e7643eec2473bb5efe187 private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); alwaysTameInCreative = getBoolean("gameplay-mechanics.always-tame-in-creative", alwaysTameInCreative); -@@ -337,6 +338,7 @@ public class PurpurWorldConfig { +@@ -347,6 +348,7 @@ public class PurpurWorldConfig { raidCooldownSeconds = getInt("gameplay-mechanics.raid-cooldown-seconds", raidCooldownSeconds); animalBreedingCooldownSeconds = getInt("gameplay-mechanics.animal-breeding-cooldown-seconds", animalBreedingCooldownSeconds); creativeOnePunch = getBoolean("gameplay-mechanics.player.one-punch-in-creative", creativeOnePunch); diff --git a/patches/server/0178-Config-for-Enderman-to-aggro-spawned-Endermites.patch b/patches/server/0178-Config-for-Enderman-to-aggro-spawned-Endermites.patch index f107c113e5..88ef17f3de 100644 --- a/patches/server/0178-Config-for-Enderman-to-aggro-spawned-Endermites.patch +++ b/patches/server/0178-Config-for-Enderman-to-aggro-spawned-Endermites.patch @@ -19,10 +19,10 @@ index d290787f74579dd4c138eb827e44544814bfe315..46143a710e057378ebe0ad644de27560 private int br = Integer.MIN_VALUE; private int bs; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 35cfc470a83e7643eec2473bb5efe187964b3d6b..7d345347edac1a376299c4de8f7b334e55e98d8c 100644 +index eaaaf9e5490095cd70ca892fa927017e6ea9de9d..bb8ad6a4ac87c4c34d12c5fc1dd92f3d63b84bc1 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -871,6 +871,7 @@ public class PurpurWorldConfig { +@@ -881,6 +881,7 @@ public class PurpurWorldConfig { public boolean endermanDespawnEvenWithBlock = false; public double endermanMaxHealth = 40.0D; public boolean endermanTakeDamageFromWater = true; @@ -30,7 +30,7 @@ index 35cfc470a83e7643eec2473bb5efe187964b3d6b..7d345347edac1a376299c4de8f7b334e private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -884,6 +885,7 @@ public class PurpurWorldConfig { +@@ -894,6 +895,7 @@ public class PurpurWorldConfig { } endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth); endermanTakeDamageFromWater = getBoolean("mobs.enderman.takes-damage-from-water", endermanTakeDamageFromWater); diff --git a/patches/server/0179-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch b/patches/server/0179-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch index 52cc978a62..89b12676ee 100644 --- a/patches/server/0179-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch +++ b/patches/server/0179-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch @@ -28,10 +28,10 @@ index 46143a710e057378ebe0ad644de275604b11d886..0ed19429c1a9021e636fdfffa582b4e0 } else { Vec3D vec3d = entityhuman.f(1.0F).d(); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 7d345347edac1a376299c4de8f7b334e55e98d8c..2ef2b93e1b9fd9cc85c4255c8ff85d65099f5e98 100644 +index bb8ad6a4ac87c4c34d12c5fc1dd92f3d63b84bc1..838f97829dcb2926a56e3c34c4cbcdb9a13d6d84 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -872,6 +872,8 @@ public class PurpurWorldConfig { +@@ -882,6 +882,8 @@ public class PurpurWorldConfig { public double endermanMaxHealth = 40.0D; public boolean endermanTakeDamageFromWater = true; public boolean endermanAggroSpawnedEndermites = false; @@ -40,7 +40,7 @@ index 7d345347edac1a376299c4de8f7b334e55e98d8c..2ef2b93e1b9fd9cc85c4255c8ff85d65 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -886,6 +888,8 @@ public class PurpurWorldConfig { +@@ -896,6 +898,8 @@ public class PurpurWorldConfig { endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth); endermanTakeDamageFromWater = getBoolean("mobs.enderman.takes-damage-from-water", endermanTakeDamageFromWater); endermanAggroSpawnedEndermites = getBoolean("mobs.enderman.aggressive-towards-spawned-endermites", endermanAggroSpawnedEndermites); diff --git a/patches/server/0181-Tick-fluids-config.patch b/patches/server/0181-Tick-fluids-config.patch index 62ee89cd35..4f9630e591 100644 --- a/patches/server/0181-Tick-fluids-config.patch +++ b/patches/server/0181-Tick-fluids-config.patch @@ -36,10 +36,10 @@ index 0ed8d938b8fafdb03e01a00a201ba3f8597ac6e9..0eff89bf9e114271c34c37cad1b98691 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 2ef2b93e1b9fd9cc85c4255c8ff85d65099f5e98..044dddc01b3dcae64d8e9e7b6e49e5453ff63a3a 100644 +index 838f97829dcb2926a56e3c34c4cbcdb9a13d6d84..d9fee278a2a5c04cc1a1796df2a6a77b432f47cc 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -295,6 +295,11 @@ public class PurpurWorldConfig { +@@ -305,6 +305,11 @@ public class PurpurWorldConfig { witherSkullDespawnRate = getInt("gameplay-mechanics.projectile-despawn-rates.wither_skull", witherSkullDespawnRate); } diff --git a/patches/server/0182-Config-to-disable-Llama-caravans.patch b/patches/server/0182-Config-to-disable-Llama-caravans.patch index 8c7bba25bc..bd95b49c79 100644 --- a/patches/server/0182-Config-to-disable-Llama-caravans.patch +++ b/patches/server/0182-Config-to-disable-Llama-caravans.patch @@ -32,10 +32,10 @@ index 762fed5ba27474951c1962e6f034e8494b1035d6..567a1da3c167c20ae3fb86c2a1f3608e this.bB.bC = this; } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 044dddc01b3dcae64d8e9e7b6e49e5453ff63a3a..e6c439191483dff645fb2f216f9065d23533ff2e 100644 +index d9fee278a2a5c04cc1a1796df2a6a77b432f47cc..c58a64f8ff38cde2de70ef9e06c1a6ca9e263669 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1111,6 +1111,7 @@ public class PurpurWorldConfig { +@@ -1121,6 +1121,7 @@ public class PurpurWorldConfig { public boolean llamaRidable = false; public boolean llamaRidableInWater = false; @@ -43,7 +43,7 @@ index 044dddc01b3dcae64d8e9e7b6e49e5453ff63a3a..e6c439191483dff645fb2f216f9065d2 public int llamaBreedingTicks = 6000; public double llamaMaxHealthMin = 15.0D; public double llamaMaxHealthMax = 30.0D; -@@ -1121,6 +1122,7 @@ public class PurpurWorldConfig { +@@ -1131,6 +1132,7 @@ public class PurpurWorldConfig { private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); diff --git a/patches/server/0183-Config-to-make-Creepers-explode-on-death.patch b/patches/server/0183-Config-to-make-Creepers-explode-on-death.patch index e0459ae47d..8965bc9cc7 100644 --- a/patches/server/0183-Config-to-make-Creepers-explode-on-death.patch +++ b/patches/server/0183-Config-to-make-Creepers-explode-on-death.patch @@ -57,10 +57,10 @@ index 62d40f726355283baddde349c52bee0599bb293c..014091f35ee5aac0ee2f155ccec2daf5 private void createEffectCloud() { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index e6c439191483dff645fb2f216f9065d23533ff2e..4d6eb4a86ee0c6e0f93fc70e68969ea9f984cbde 100644 +index c58a64f8ff38cde2de70ef9e06c1a6ca9e263669..1fcd11d5f14458cd42e8ff54d4f244067ab0736e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -747,12 +747,14 @@ public class PurpurWorldConfig { +@@ -757,12 +757,14 @@ public class PurpurWorldConfig { public boolean creeperRidable = false; public boolean creeperRidableInWater = false; diff --git a/patches/server/0184-Configurable-ravager-griefable-blocks-list.patch b/patches/server/0184-Configurable-ravager-griefable-blocks-list.patch index 4e9ffa4e3b..f556a3192a 100644 --- a/patches/server/0184-Configurable-ravager-griefable-blocks-list.patch +++ b/patches/server/0184-Configurable-ravager-griefable-blocks-list.patch @@ -31,10 +31,10 @@ index 5f8366beeaac7153a0421554f9bf91fbf265edca..7fca4d1713e8061d9de825cdae484012 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 4d6eb4a86ee0c6e0f93fc70e68969ea9f984cbde..430f0fe008e74410737e11fbd3960d0645a2c264 100644 +index 1fcd11d5f14458cd42e8ff54d4f244067ab0736e..e360409a15feeb793bd3b4be82f9eda89b5660d7 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1452,6 +1452,7 @@ public class PurpurWorldConfig { +@@ -1462,6 +1462,7 @@ public class PurpurWorldConfig { public boolean ravagerRidableInWater = false; public boolean ravagerBypassMobGriefing = false; public double ravagerMaxHealth = 100.0D; @@ -42,7 +42,7 @@ index 4d6eb4a86ee0c6e0f93fc70e68969ea9f984cbde..430f0fe008e74410737e11fbd3960d06 private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -1462,6 +1463,23 @@ public class PurpurWorldConfig { +@@ -1472,6 +1473,23 @@ public class PurpurWorldConfig { set("mobs.ravager.attributes.max_health", oldValue); } ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth); diff --git a/patches/server/0185-Sneak-to-bulk-process-composter.patch b/patches/server/0185-Sneak-to-bulk-process-composter.patch index b3e63c097f..0e61afadf0 100644 --- a/patches/server/0185-Sneak-to-bulk-process-composter.patch +++ b/patches/server/0185-Sneak-to-bulk-process-composter.patch @@ -44,10 +44,10 @@ index e4e519ba773388b8d26a8f794a6eff51e3d8f72e..c0b235d5edf3cd14021696d1b4f76ce3 // CraftBukkit start double rand = worldserver.getRandom().nextDouble(); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 430f0fe008e74410737e11fbd3960d0645a2c264..47426ce54de82a14113cbb1484f86a193c93ff47 100644 +index e360409a15feeb793bd3b4be82f9eda89b5660d7..bb3c5d34b58ccf9bbaa1102e36b82a56f0dda7e3 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -492,6 +492,11 @@ public class PurpurWorldConfig { +@@ -502,6 +502,11 @@ public class PurpurWorldConfig { chestOpenWithBlockOnTop = getBoolean("blocks.chest.open-with-solid-block-on-top", chestOpenWithBlockOnTop); } diff --git a/patches/server/0186-Config-for-skipping-night.patch b/patches/server/0186-Config-for-skipping-night.patch index 6387a54d6d..432b2584d1 100644 --- a/patches/server/0186-Config-for-skipping-night.patch +++ b/patches/server/0186-Config-for-skipping-night.patch @@ -18,10 +18,10 @@ index 028911ebe843751080564d90e96306524e5a2e21..f84066233f551be145a7db2694b3c7cb })) { // CraftBukkit start diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 47426ce54de82a14113cbb1484f86a193c93ff47..a2e67a30bcf76405c150f207f784f5713f7ed74c 100644 +index bb3c5d34b58ccf9bbaa1102e36b82a56f0dda7e3..c87ce9aed539f382e91fcfae956339068a618b79 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -324,6 +324,7 @@ public class PurpurWorldConfig { +@@ -334,6 +334,7 @@ public class PurpurWorldConfig { public int animalBreedingCooldownSeconds = 0; public boolean creativeOnePunch = false; public boolean playerSleepNearMonsters = false; @@ -29,7 +29,7 @@ index 47426ce54de82a14113cbb1484f86a193c93ff47..a2e67a30bcf76405c150f207f784f571 private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); alwaysTameInCreative = getBoolean("gameplay-mechanics.always-tame-in-creative", alwaysTameInCreative); -@@ -344,6 +345,7 @@ public class PurpurWorldConfig { +@@ -354,6 +355,7 @@ public class PurpurWorldConfig { animalBreedingCooldownSeconds = getInt("gameplay-mechanics.animal-breeding-cooldown-seconds", animalBreedingCooldownSeconds); 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/0187-Add-config-for-villager-trading.patch b/patches/server/0187-Add-config-for-villager-trading.patch index fde48c44be..13980ff119 100644 --- a/patches/server/0187-Add-config-for-villager-trading.patch +++ b/patches/server/0187-Add-config-for-villager-trading.patch @@ -31,10 +31,10 @@ index b84916c0c58fd208ef5547299f8db8462d1c42fe..0b6b6aa6b358759c45bbcf4a9ffa5377 this.openTrade(entityhuman, this.getScoreboardDisplayName(), 1); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index a2e67a30bcf76405c150f207f784f5713f7ed74c..6a140fc847e428f1b7063aa65223b3fd5edecdee 100644 +index c87ce9aed539f382e91fcfae956339068a618b79..c2314380e7064459dd104b09b900c5a28b592b71 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 { +@@ -1772,6 +1772,7 @@ public class PurpurWorldConfig { public boolean villagerClericsFarmWarts = false; public boolean villagerClericFarmersThrowWarts = true; public double villagerMaxHealth = 20.0D; @@ -42,7 +42,7 @@ index a2e67a30bcf76405c150f207f784f5713f7ed74c..6a140fc847e428f1b7063aa65223b3fd private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1789,6 +1790,7 @@ public class PurpurWorldConfig { +@@ -1799,6 +1800,7 @@ public class PurpurWorldConfig { set("mobs.villager.attributes.max_health", oldValue); } villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth); @@ -50,7 +50,7 @@ index a2e67a30bcf76405c150f207f784f5713f7ed74c..6a140fc847e428f1b7063aa65223b3fd } public boolean villagerTraderRidable = false; -@@ -1796,6 +1798,7 @@ public class PurpurWorldConfig { +@@ -1806,6 +1808,7 @@ public class PurpurWorldConfig { public boolean villagerTraderCanBeLeashed = false; public boolean villagerTraderFollowEmeraldBlock = false; public double villagerTraderMaxHealth = 20.0D; @@ -58,7 +58,7 @@ index a2e67a30bcf76405c150f207f784f5713f7ed74c..6a140fc847e428f1b7063aa65223b3fd private void villagerTraderSettings() { villagerTraderRidable = getBoolean("mobs.wandering_trader.ridable", villagerTraderRidable); villagerTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", villagerTraderRidableInWater); -@@ -1807,6 +1810,7 @@ public class PurpurWorldConfig { +@@ -1817,6 +1820,7 @@ public class PurpurWorldConfig { set("mobs.wandering_trader.attributes.max_health", oldValue); } villagerTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", villagerTraderMaxHealth); diff --git a/patches/server/0189-Drowning-Settings.patch b/patches/server/0189-Drowning-Settings.patch index d9186ddaaf..1a2ac38acf 100644 --- a/patches/server/0189-Drowning-Settings.patch +++ b/patches/server/0189-Drowning-Settings.patch @@ -40,10 +40,10 @@ index 535fbd84b23275398954d312bf825b321b87da4d..89b8840e5cfc0fe0aa023882375c9b83 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 6a140fc847e428f1b7063aa65223b3fd5edecdee..ee8178e4dd105caf586483434cb2e2c1d7e9deb7 100644 +index c2314380e7064459dd104b09b900c5a28b592b71..82da1dd5bb8b02c948be51fa941d3b31a3f0dc20 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -2037,6 +2037,15 @@ public class PurpurWorldConfig { +@@ -2047,6 +2047,15 @@ public class PurpurWorldConfig { imposeTeleportRestrictionsOnGateways = getBoolean("gameplay-mechanics.impose-teleport-restrictions-on-gateways", imposeTeleportRestrictionsOnGateways); } diff --git a/patches/server/0190-Break-individual-slabs-when-sneaking.patch b/patches/server/0190-Break-individual-slabs-when-sneaking.patch index e60b0ed369..989dfd74b2 100644 --- a/patches/server/0190-Break-individual-slabs-when-sneaking.patch +++ b/patches/server/0190-Break-individual-slabs-when-sneaking.patch @@ -57,10 +57,10 @@ index 12c0fa5072755fd2a4f575b0cc5e4222617490ce..94965b216d50b29b95f09fa9019c177b + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index ee8178e4dd105caf586483434cb2e2c1d7e9deb7..84dd2a7f11b9d732acf671561c6804d3c84abc3c 100644 +index 82da1dd5bb8b02c948be51fa941d3b31a3f0dc20..accfdc659f97fb75387776326f4d1b6bd1742aaf 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -565,6 +565,11 @@ public class PurpurWorldConfig { +@@ -575,6 +575,11 @@ public class PurpurWorldConfig { signRightClickEdit = getBoolean("blocks.sign.right-click-edit", signRightClickEdit); } diff --git a/patches/server/0191-Config-to-disable-hostile-mob-spawn-on-ice.patch b/patches/server/0191-Config-to-disable-hostile-mob-spawn-on-ice.patch index cf8383a6b0..91f4ba15f8 100644 --- a/patches/server/0191-Config-to-disable-hostile-mob-spawn-on-ice.patch +++ b/patches/server/0191-Config-to-disable-hostile-mob-spawn-on-ice.patch @@ -22,10 +22,10 @@ index c484e27650364b6537fe6b2e8e14de98382b86a3..096a7b76e0ae42ba8b859159e20fb72e return false; } else { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 84dd2a7f11b9d732acf671561c6804d3c84abc3c..627dec10edf379e132f3fc512671d930cb4e1ddd 100644 +index accfdc659f97fb75387776326f4d1b6bd1742aaf..cb20d4cccbaf52d71df7e1e4f877f6938f2969e3 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -485,8 +485,12 @@ public class PurpurWorldConfig { +@@ -495,8 +495,12 @@ public class PurpurWorldConfig { } public boolean snowOnBlueIce = true; diff --git a/patches/server/0192-Config-to-show-Armor-Stand-arms-on-spawn.patch b/patches/server/0192-Config-to-show-Armor-Stand-arms-on-spawn.patch index 3185531bbe..9955fb63f3 100644 --- a/patches/server/0192-Config-to-show-Armor-Stand-arms-on-spawn.patch +++ b/patches/server/0192-Config-to-show-Armor-Stand-arms-on-spawn.patch @@ -17,7 +17,7 @@ index ecb797e67554d30e35b3aca4d0fc9b0e3f6c1a50..ddc1c3383cdc32fa832485f3922c7418 public EntityArmorStand(World world, double d0, double d1, double d2) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 627dec10edf379e132f3fc512671d930cb4e1ddd..9457e0f4a8cef60ca73e40bebb3b1d5561391555 100644 +index cb20d4cccbaf52d71df7e1e4f877f6938f2969e3..295cc5427a1bdc8f89a0b0c34b3c1f1db7c47a2f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -114,6 +114,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0193-Option-to-make-doors-require-redstone.patch b/patches/server/0193-Option-to-make-doors-require-redstone.patch index 9bbf6a9c12..086353f9ff 100644 --- a/patches/server/0193-Option-to-make-doors-require-redstone.patch +++ b/patches/server/0193-Option-to-make-doors-require-redstone.patch @@ -70,10 +70,10 @@ index 453b46851f021d4285be123bedc8982fc8844da2..2a7695c899b12c87ab89d00116b6f0dd + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 9457e0f4a8cef60ca73e40bebb3b1d5561391555..b1b662a2b6b0cca1e9e7bc290da977385fd1a0cc 100644 +index 295cc5427a1bdc8f89a0b0c34b3c1f1db7c47a2f..9cb06d3e3109c08b2e9f3336365dd14241c4faca 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -486,6 +486,16 @@ public class PurpurWorldConfig { +@@ -496,6 +496,16 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0195-Configurable-sponge-absorption.patch b/patches/server/0195-Configurable-sponge-absorption.patch index 9e44ab40ab..b5c4dbcd16 100644 --- a/patches/server/0195-Configurable-sponge-absorption.patch +++ b/patches/server/0195-Configurable-sponge-absorption.patch @@ -43,10 +43,10 @@ index d80eee47390ab202eea0368571421bbc94655ab1..b36536d4cc95797c59549f5db1f67b34 } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index b1b662a2b6b0cca1e9e7bc290da977385fd1a0cc..79465cc5126f7e4da89b37b9673c7778180ba84b 100644 +index 9cb06d3e3109c08b2e9f3336365dd14241c4faca..8be800300b6cbbd17ede87f279ebb04e9c9123fc 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -591,6 +591,13 @@ public class PurpurWorldConfig { +@@ -601,6 +601,13 @@ public class PurpurWorldConfig { spawnerDeactivateByRedstone = getBoolean("blocks.spawner.deactivate-by-redstone", spawnerDeactivateByRedstone); } diff --git a/patches/server/0196-Projectile-offset-config.patch b/patches/server/0196-Projectile-offset-config.patch index 9817e09bb5..3ffdffca30 100644 --- a/patches/server/0196-Projectile-offset-config.patch +++ b/patches/server/0196-Projectile-offset-config.patch @@ -96,10 +96,10 @@ index 0711d195c654edef5875f587e391bacfdea096da..2341c98859faa61662d7ed343e6ed157 entitythrowntrident.fromPlayer = EntityArrow.PickupStatus.CREATIVE_ONLY; } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 79465cc5126f7e4da89b37b9673c7778180ba84b..480363d2b1e9b22d5bee82c269f16203d4a5fbeb 100644 +index 8be800300b6cbbd17ede87f279ebb04e9c9123fc..ad2e2ae106295a8ce84b404998de535724fd9427 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -307,6 +307,23 @@ public class PurpurWorldConfig { +@@ -317,6 +317,23 @@ public class PurpurWorldConfig { snowballDamage = getInt("gameplay-mechanics.projectile-damage.snowball", snowballDamage); } diff --git a/patches/server/0197-Config-for-powered-rail-activation-distance.patch b/patches/server/0197-Config-for-powered-rail-activation-distance.patch index 9406f857b2..a045e1947e 100644 --- a/patches/server/0197-Config-for-powered-rail-activation-distance.patch +++ b/patches/server/0197-Config-for-powered-rail-activation-distance.patch @@ -18,10 +18,10 @@ index b26e168fbf49bbe7ec981b5b186c94ca67827f4a..bc91c96a29dcc60c578b342055b8eaf3 } else { int j = blockposition.getX(); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 480363d2b1e9b22d5bee82c269f16203d4a5fbeb..d0bcc928a80264debc92ddf22275c38281fdc4af 100644 +index ad2e2ae106295a8ce84b404998de535724fd9427..37835f19ce917b36cb56e0d0d58d9be349919cab 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -575,6 +575,11 @@ public class PurpurWorldConfig { +@@ -585,6 +585,11 @@ public class PurpurWorldConfig { lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether); } diff --git a/patches/server/0198-Piglin-portal-spawn-modifier.patch b/patches/server/0198-Piglin-portal-spawn-modifier.patch index ac34abcf9c..c0636e3aaf 100644 --- a/patches/server/0198-Piglin-portal-spawn-modifier.patch +++ b/patches/server/0198-Piglin-portal-spawn-modifier.patch @@ -31,10 +31,10 @@ index ac5ce96ab62ec210816e7af85a4269073b7a9270..84140e01eba780ffb8289bff75d1b58a blockposition = blockposition.down(); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index d0bcc928a80264debc92ddf22275c38281fdc4af..4f96d43389b0fd725ec3843a6388bf47eadd1782 100644 +index 37835f19ce917b36cb56e0d0d58d9be349919cab..78e4ef0103e1c9f96ec160e74b870902eda5e842 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1409,6 +1409,7 @@ public class PurpurWorldConfig { +@@ -1419,6 +1419,7 @@ public class PurpurWorldConfig { public boolean piglinRidable = false; public boolean piglinRidableInWater = false; public double piglinMaxHealth = 16.0D; @@ -42,7 +42,7 @@ index d0bcc928a80264debc92ddf22275c38281fdc4af..4f96d43389b0fd725ec3843a6388bf47 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1418,6 +1419,7 @@ public class PurpurWorldConfig { +@@ -1428,6 +1429,7 @@ public class PurpurWorldConfig { set("mobs.piglin.attributes.max_health", oldValue); } piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth); diff --git a/patches/server/0200-Configurable-damage-settings-for-magma-blocks.patch b/patches/server/0200-Configurable-damage-settings-for-magma-blocks.patch index 20476cd3d0..f1c3551853 100644 --- a/patches/server/0200-Configurable-damage-settings-for-magma-blocks.patch +++ b/patches/server/0200-Configurable-damage-settings-for-magma-blocks.patch @@ -51,10 +51,10 @@ index 4559085fa4452d3a9f59ed967ccb69a7823718e5..f1c53428c8f9eb0922fc16f152c6566d entity.damageEntity(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 4f96d43389b0fd725ec3843a6388bf47eadd1782..1e8ec6f6cd7740fe6935d9c7a068c19490e16f9b 100644 +index 78e4ef0103e1c9f96ec160e74b870902eda5e842..9ad9d80331ea52c08500cd9155ba6fdc1bc22a3a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -2126,4 +2126,11 @@ public class PurpurWorldConfig { +@@ -2136,4 +2136,11 @@ public class PurpurWorldConfig { baseCrystalExplosionEffect = Explosion.Effect.DESTROY; } } diff --git a/patches/server/0201-Config-for-wither-explosion-radius.patch b/patches/server/0201-Config-for-wither-explosion-radius.patch index 9c723c3f84..3ae87def39 100644 --- a/patches/server/0201-Config-for-wither-explosion-radius.patch +++ b/patches/server/0201-Config-for-wither-explosion-radius.patch @@ -18,10 +18,10 @@ index 616b5267d1d94b2be37ec48983b45e4478502fb5..052cffb156e4e6f31df3935fd8312eb3 if (!event.isCancelled()) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 1e8ec6f6cd7740fe6935d9c7a068c19490e16f9b..a2ee911497783f79a8da1142082a8236b28c9c6f 100644 +index 9ad9d80331ea52c08500cd9155ba6fdc1bc22a3a..3d3e4e686cd74145b002b2df276e61762697918b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1903,6 +1903,7 @@ public class PurpurWorldConfig { +@@ -1913,6 +1913,7 @@ public class PurpurWorldConfig { public int witherHealthRegenDelay = 20; public double witherMaxHealth = 300.0D; public boolean witherCanRideVehicles = false; @@ -29,7 +29,7 @@ index 1e8ec6f6cd7740fe6935d9c7a068c19490e16f9b..a2ee911497783f79a8da1142082a8236 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1921,6 +1922,7 @@ public class PurpurWorldConfig { +@@ -1931,6 +1932,7 @@ public class PurpurWorldConfig { } witherMaxHealth = getDouble("mobs.wither.attributes.max_health", witherMaxHealth); witherCanRideVehicles = getBoolean("mobs.wither.can-ride-vehicles", witherCanRideVehicles); diff --git a/patches/server/0204-Config-for-changing-the-blocks-that-turn-into-paths.patch b/patches/server/0204-Config-for-changing-the-blocks-that-turn-into-paths.patch index 35022c8c90..2ac77e0c08 100644 --- a/patches/server/0204-Config-for-changing-the-blocks-that-turn-into-paths.patch +++ b/patches/server/0204-Config-for-changing-the-blocks-that-turn-into-paths.patch @@ -18,10 +18,10 @@ index 9ba8ae49e18fb8714b434715bd669b8e22004cd7..c0c87d0dc8d6f02597219cd6a74e6ed7 if (iblockdata1 != null && world.getType(blockposition.up()).isAir()) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index a2ee911497783f79a8da1142082a8236b28c9c6f..10590525f70e080ce7ffe6d7a3d908c2b60f8810 100644 +index 3d3e4e686cd74145b002b2df276e61762697918b..63a1b0f569c8f034e7577c304ec23a7a96c666f7 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -459,6 +459,18 @@ public class PurpurWorldConfig { +@@ -469,6 +469,18 @@ public class PurpurWorldConfig { totemOfUndyingWorksInInventory = getBoolean("gameplay-mechanics.player.totem-of-undying-works-in-inventory", totemOfUndyingWorksInInventory); } diff --git a/patches/server/0205-Allows-you-to-change-the-thrust-limit-of-a-piston-by.patch b/patches/server/0205-Allows-you-to-change-the-thrust-limit-of-a-piston-by.patch index e533584de0..bd4c96804c 100644 --- a/patches/server/0205-Allows-you-to-change-the-thrust-limit-of-a-piston-by.patch +++ b/patches/server/0205-Allows-you-to-change-the-thrust-limit-of-a-piston-by.patch @@ -45,10 +45,10 @@ index 6c9c4ab65b7e42efa68027057242e25b70313081..cbe34059659e0f80ff384508b01e516c } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 10590525f70e080ce7ffe6d7a3d908c2b60f8810..d9c836dd20d104cb9997d7fa0b88bb87d70d0bce 100644 +index 63a1b0f569c8f034e7577c304ec23a7a96c666f7..a08bf2a374a486cf44128a87667567df65329e0c 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -2147,4 +2147,9 @@ public class PurpurWorldConfig { +@@ -2157,4 +2157,9 @@ public class PurpurWorldConfig { magmaBlockDamageWhenSneaking = getBoolean("blocks.magma-block.damage-when-sneaking", magmaBlockDamageWhenSneaking); magmaBlockDamageWithFrostWalker = getBoolean("blocks.magma-block.damage-with-frost-walker", magmaBlockDamageWithFrostWalker); } From 5bc5dfdf4f8bed2eb08ec368c5ffcba2b7805d0c Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Wed, 5 May 2021 02:04:57 -0500 Subject: [PATCH 15/40] Fix #318 - Stonecutter does not damage when sneaking --- patches/server/0117-Stonecutter-damage.patch | 33 ++++++++++--------- .../0144-Lobotomize-stuck-villagers.patch | 2 +- ...64-Movement-options-for-armor-stands.patch | 2 +- .../server/0165-Fix-stuck-in-portals.patch | 2 +- ...ither-Ender-Dragon-can-ride-vehicles.patch | 2 +- patches/server/0189-Drowning-Settings.patch | 2 +- ...ble-damage-settings-for-magma-blocks.patch | 19 ++++------- 7 files changed, 29 insertions(+), 33 deletions(-) diff --git a/patches/server/0117-Stonecutter-damage.patch b/patches/server/0117-Stonecutter-damage.patch index ebcada52ff..36aa4fbf2f 100644 --- a/patches/server/0117-Stonecutter-damage.patch +++ b/patches/server/0117-Stonecutter-damage.patch @@ -4,31 +4,34 @@ Date: Mon, 5 Oct 2020 12:15:14 -0500 Subject: [PATCH] Stonecutter damage +diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java +index 918edab475a8d33a253e3d6cd3c5655748d10dc0..b17443821b8a4ca4954eb430ea70b255ac336f0d 100644 +--- a/src/main/java/net/minecraft/world/entity/Entity.java ++++ b/src/main/java/net/minecraft/world/entity/Entity.java +@@ -894,7 +894,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne + } + // CraftBukkit end + +- if (this.onGround && !this.bv()) { ++ if (this.onGround && (!this.bv() || (block == Blocks.STONECUTTER && world.purpurConfig.stonecutterDamage > 0.0F))) { // Purpur + block.stepOn(this.world, blockposition, this); + } + diff --git a/src/main/java/net/minecraft/world/level/block/BlockStonecutter.java b/src/main/java/net/minecraft/world/level/block/BlockStonecutter.java -index 54c9586cd7f8c9691a1c7ded9c9c96b0f316b0b6..988204918854e982e334eb2417b83914b58cbcf6 100644 +index 54c9586cd7f8c9691a1c7ded9c9c96b0f316b0b6..68c6f090a10564a790f3bf175e2378d1f7103b8e 100644 --- a/src/main/java/net/minecraft/world/level/block/BlockStonecutter.java +++ b/src/main/java/net/minecraft/world/level/block/BlockStonecutter.java -@@ -10,6 +10,9 @@ import net.minecraft.world.EnumHand; - import net.minecraft.world.EnumInteractionResult; - import net.minecraft.world.ITileInventory; - import net.minecraft.world.TileInventory; -+import net.minecraft.world.damagesource.DamageSource; -+import net.minecraft.world.entity.Entity; -+import net.minecraft.world.entity.EntityLiving; - import net.minecraft.world.entity.player.EntityHuman; - import net.minecraft.world.inventory.ContainerAccess; - import net.minecraft.world.inventory.ContainerStonecutter; -@@ -94,4 +97,16 @@ public class BlockStonecutter extends Block { +@@ -94,4 +94,16 @@ public class BlockStonecutter extends Block { public boolean a(IBlockData iblockdata, IBlockAccess iblockaccess, BlockPosition blockposition, PathMode pathmode) { return false; } + + // Purpur start + @Override -+ public void stepOn(World world, BlockPosition pos, Entity entity) { -+ if (world.purpurConfig.stonecutterDamage > 0.0F && entity instanceof EntityLiving) { ++ public void stepOn(World world, BlockPosition pos, net.minecraft.world.entity.Entity entity) { ++ if (world.purpurConfig.stonecutterDamage > 0.0F && entity instanceof net.minecraft.world.entity.EntityLiving) { + org.bukkit.craftbukkit.event.CraftEventFactory.blockDamage = world.getWorld().getBlockAt(pos.getX(), pos.getY(), pos.getZ()); -+ entity.damageEntity(DamageSource.CACTUS, world.purpurConfig.stonecutterDamage); ++ entity.damageEntity(net.minecraft.world.damagesource.DamageSource.CACTUS, world.purpurConfig.stonecutterDamage); + org.bukkit.craftbukkit.event.CraftEventFactory.blockDamage = null; + } + super.stepOn(world, pos, entity); diff --git a/patches/server/0144-Lobotomize-stuck-villagers.patch b/patches/server/0144-Lobotomize-stuck-villagers.patch index b36c645d17..2ae2916100 100644 --- a/patches/server/0144-Lobotomize-stuck-villagers.patch +++ b/patches/server/0144-Lobotomize-stuck-villagers.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Lobotomize stuck villagers diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 918edab475a8d33a253e3d6cd3c5655748d10dc0..4d64fb19c3c9cce41e89ba4d702e687b34620b7e 100644 +index b17443821b8a4ca4954eb430ea70b255ac336f0d..c6128dc68be7cd60cf49db90ff5e816e4e14c4cf 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -207,7 +207,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne diff --git a/patches/server/0164-Movement-options-for-armor-stands.patch b/patches/server/0164-Movement-options-for-armor-stands.patch index 2fc83e6436..4880fe0f61 100644 --- a/patches/server/0164-Movement-options-for-armor-stands.patch +++ b/patches/server/0164-Movement-options-for-armor-stands.patch @@ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 4d64fb19c3c9cce41e89ba4d702e687b34620b7e..2545b0891a299301a8d9e194e795b0f3856f2178 100644 +index c6128dc68be7cd60cf49db90ff5e816e4e14c4cf..a198829b370b66e4e58ad47dcb4aa27f1990bcc1 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1500,7 +1500,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne diff --git a/patches/server/0165-Fix-stuck-in-portals.patch b/patches/server/0165-Fix-stuck-in-portals.patch index b41c3f644c..03eb8d6c1f 100644 --- a/patches/server/0165-Fix-stuck-in-portals.patch +++ b/patches/server/0165-Fix-stuck-in-portals.patch @@ -17,7 +17,7 @@ index a1d5662911ee3a038da427bf2e0b69a11f187149..9c520e7600986b7b7df3af96a715c91c // CraftBukkit end this.spawnIn(worldserver); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 2545b0891a299301a8d9e194e795b0f3856f2178..fdd374232ced8f4da675afaee3f5278c036ef112 100644 +index a198829b370b66e4e58ad47dcb4aa27f1990bcc1..1f306bd4f29086cae8839b36a87f477d03394295 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2551,12 +2551,15 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne diff --git a/patches/server/0172-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch b/patches/server/0172-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch index c16d926ee1..5bef17badb 100644 --- a/patches/server/0172-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch +++ b/patches/server/0172-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configs for if Wither/Ender Dragon can ride vehicles diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index fdd374232ced8f4da675afaee3f5278c036ef112..f3151969e5841861d31ac50abdfef3c65e5198a3 100644 +index 1f306bd4f29086cae8839b36a87f477d03394295..f140574c7f35a0424b523054553c41c3717c8035 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2401,7 +2401,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne diff --git a/patches/server/0189-Drowning-Settings.patch b/patches/server/0189-Drowning-Settings.patch index 1a2ac38acf..2fbfcb960e 100644 --- a/patches/server/0189-Drowning-Settings.patch +++ b/patches/server/0189-Drowning-Settings.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Drowning Settings diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index f3151969e5841861d31ac50abdfef3c65e5198a3..706a1e2fadb0880277093be5de63f4dc0792fb72 100644 +index f140574c7f35a0424b523054553c41c3717c8035..013586baa739156cc34c47eba201f36b44ad56c9 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2606,7 +2606,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne diff --git a/patches/server/0200-Configurable-damage-settings-for-magma-blocks.patch b/patches/server/0200-Configurable-damage-settings-for-magma-blocks.patch index f1c3551853..8856fc659b 100644 --- a/patches/server/0200-Configurable-damage-settings-for-magma-blocks.patch +++ b/patches/server/0200-Configurable-damage-settings-for-magma-blocks.patch @@ -5,25 +5,18 @@ Subject: [PATCH] Configurable damage settings for magma blocks diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 706a1e2fadb0880277093be5de63f4dc0792fb72..f498bba37f3a40060a0847500b70e7cb55c745cd 100644 +index 013586baa739156cc34c47eba201f36b44ad56c9..96c876960a1a8a5534802cba3ed30d0f71aee71e 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -894,9 +894,15 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -894,7 +894,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne } // CraftBukkit end -+ // Purpur start -+ if (block instanceof net.minecraft.world.level.block.BlockMagma && this.onGround) { -+ block.stepOn(this.world, blockposition, this); -+ } else { - if (this.onGround && !this.bv()) { +- if (this.onGround && (!this.bv() || (block == Blocks.STONECUTTER && world.purpurConfig.stonecutterDamage > 0.0F))) { // Purpur ++ if (this.onGround && (!this.bv() || (block == Blocks.STONECUTTER && world.purpurConfig.stonecutterDamage > 0.0F) || (block == Blocks.MAGMA_BLOCK && world.purpurConfig.magmaBlockDamageWhenSneaking))) { // Purpur block.stepOn(this.world, blockposition, this); } -+ } -+ // Purpur end - if (this.playStepSound() && !this.isPassenger()) { - double d0 = vec3d1.x; diff --git a/src/main/java/net/minecraft/world/item/enchantment/EnchantmentManager.java b/src/main/java/net/minecraft/world/item/enchantment/EnchantmentManager.java index b2d28c2bf0a9e93d38583e2d734c12fed4f63d5d..b889e5426781da215b5c26477015d04457142213 100644 --- a/src/main/java/net/minecraft/world/item/enchantment/EnchantmentManager.java @@ -38,7 +31,7 @@ index b2d28c2bf0a9e93d38583e2d734c12fed4f63d5d..b889e5426781da215b5c26477015d044 } diff --git a/src/main/java/net/minecraft/world/level/block/BlockMagma.java b/src/main/java/net/minecraft/world/level/block/BlockMagma.java -index 4559085fa4452d3a9f59ed967ccb69a7823718e5..f1c53428c8f9eb0922fc16f152c6566d1a32cac0 100644 +index 4559085fa4452d3a9f59ed967ccb69a7823718e5..0d9e9f972066c1114971d825468b64f53a4af1d2 100644 --- a/src/main/java/net/minecraft/world/level/block/BlockMagma.java +++ b/src/main/java/net/minecraft/world/level/block/BlockMagma.java @@ -27,7 +27,7 @@ public class BlockMagma extends Block { @@ -46,7 +39,7 @@ index 4559085fa4452d3a9f59ed967ccb69a7823718e5..f1c53428c8f9eb0922fc16f152c6566d @Override public void stepOn(World world, BlockPosition blockposition, Entity entity) { - if (!entity.isFireProof() && entity instanceof EntityLiving && !EnchantmentManager.i((EntityLiving) entity)) { -+ if (!entity.isFireProof() && entity instanceof EntityLiving && (world.purpurConfig.magmaBlockDamageWhenSneaking || !entity.isSneaking()) && (world.purpurConfig.magmaBlockDamageWithFrostWalker || !EnchantmentManager.hasFrostWalker((EntityLiving) entity))) { // Purpur ++ if (!entity.isFireProof() && entity instanceof EntityLiving && (world.purpurConfig.magmaBlockDamageWithFrostWalker || !EnchantmentManager.hasFrostWalker((EntityLiving) entity))) { // Purpur org.bukkit.craftbukkit.event.CraftEventFactory.blockDamage = world.getWorld().getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ()); // CraftBukkit entity.damageEntity(DamageSource.HOT_FLOOR, 1.0F); org.bukkit.craftbukkit.event.CraftEventFactory.blockDamage = null; // CraftBukkit From ebc07658d10b0822ade1b720c505563f631f6628 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Wed, 5 May 2021 02:13:22 -0500 Subject: [PATCH 16/40] Updated Upstream (Paper) Upstream has released updates that appear to apply and compile correctly Paper Changes: 21fbc3196 [CI-SKIP] Add Other textarea to issue templates (#5562) 453e983e4 fix isProxyOnlineMode coverage, don't lookup UUIDs in offline mode (Fixes #2011) 81cc4f928 Send empty commands if tab completion is disabled (Closes #5519) 9ed3e470d Keep moveToWorld with old method signature --- Paper | 2 +- .../server/0001-Tuinity-Server-Changes.patch | 24 +++++++++---------- .../server/0002-Airplane-Server-Changes.patch | 2 +- patches/server/0003-Rebrand.patch | 2 +- patches/server/0004-Purpur-config-files.patch | 4 ++-- .../server/0010-Bring-back-server-name.patch | 4 ++-- patches/server/0013-Lagging-threshold.patch | 4 ++-- .../0017-Player-invulnerabilities.patch | 4 ++-- ...-Skip-events-if-there-s-no-listeners.patch | 6 ++--- .../0055-Add-permission-for-F3-N-debug.patch | 4 ++-- ...0074-Add-5-second-tps-average-in-tps.patch | 4 ++-- patches/server/0077-Add-ping-command.patch | 6 ++--- patches/server/0134-Add-demo-command.patch | 2 +- ...d-out-and-optimise-player-list-ticks.patch | 4 ++-- patches/server/0153-Implement-TPSBar.patch | 4 ++-- patches/server/0202-Add-credits-command.patch | 2 +- 16 files changed, 39 insertions(+), 39 deletions(-) diff --git a/Paper b/Paper index 99a66a5838..21fbc31963 160000 --- a/Paper +++ b/Paper @@ -1 +1 @@ -Subproject commit 99a66a583831628db1c31dd8da30be48e4bdcea3 +Subproject commit 21fbc319639d72e8fa325527994373a0ebc538bd diff --git a/patches/server/0001-Tuinity-Server-Changes.patch b/patches/server/0001-Tuinity-Server-Changes.patch index 95cb9a5494..489cf3671c 100644 --- a/patches/server/0001-Tuinity-Server-Changes.patch +++ b/patches/server/0001-Tuinity-Server-Changes.patch @@ -15270,7 +15270,7 @@ index 69fc2789df88344587b6052f93661ed38f24a503..92836f1200461ba7fff2f8bcb5e1755e protected void initChannel(Channel channel) throws Exception { try { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 6bfa8020c19721dd63e038e4b866a7d3a24e66ac..b5043eabe63fe703a321cff6c0f6449cf729cd0e 100644 +index aaa6f3aeaf1b47275a1c8fc22ee99475e62c32a0..76ba1e038fb68eafa2c2039fa1cdd74d060dcf9f 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -179,6 +179,7 @@ public abstract class PlayerList { @@ -15299,7 +15299,7 @@ index 6bfa8020c19721dd63e038e4b866a7d3a24e66ac..b5043eabe63fe703a321cff6c0f6449c Player player = entity.getBukkitEntity(); PlayerLoginEvent event = new PlayerLoginEvent(player, hostname, ((java.net.InetSocketAddress) socketaddress).getAddress(), ((java.net.InetSocketAddress) loginlistener.networkManager.getRawAddress()).getAddress()); -@@ -945,13 +946,13 @@ public abstract class PlayerList { +@@ -951,13 +952,13 @@ public abstract class PlayerList { worldserver1.getChunkProvider().addTicket(TicketType.POST_TELEPORT, new ChunkCoordIntPair(location.getBlockX() >> 4, location.getBlockZ() >> 4), 1, entityplayer.getId()); // Paper entityplayer1.forceCheckHighPriority(); // Player @@ -15315,7 +15315,7 @@ index 6bfa8020c19721dd63e038e4b866a7d3a24e66ac..b5043eabe63fe703a321cff6c0f6449c entityplayer1.spawnIn(worldserver1); entityplayer1.dead = false; entityplayer1.playerConnection.teleport(new Location(worldserver1.getWorld(), entityplayer1.locX(), entityplayer1.locY(), entityplayer1.locZ(), entityplayer1.yaw, entityplayer1.pitch)); -@@ -1220,7 +1221,7 @@ public abstract class PlayerList { +@@ -1226,7 +1227,7 @@ public abstract class PlayerList { // Really shouldn't happen... backingSet = world != null ? world.players.toArray() : players.toArray(); } else { @@ -15325,7 +15325,7 @@ index 6bfa8020c19721dd63e038e4b866a7d3a24e66ac..b5043eabe63fe703a321cff6c0f6449c return; } diff --git a/src/main/java/net/minecraft/server/players/UserCache.java b/src/main/java/net/minecraft/server/players/UserCache.java -index e813d4dd1a46734d16b42905808caa889811afcc..ee5c038c4ede294ec5b9b9b9f705ba46b6c7ac8c 100644 +index c617b7dd5a992770fc87113987807947ae68be81..7ce5bd130441a3bc32ee5fa3630edce23dadd0b8 100644 --- a/src/main/java/net/minecraft/server/players/UserCache.java +++ b/src/main/java/net/minecraft/server/players/UserCache.java @@ -52,6 +52,11 @@ public class UserCache { @@ -15356,7 +15356,7 @@ index e813d4dd1a46734d16b42905808caa889811afcc..ee5c038c4ede294ec5b9b9b9f705ba46 } -@@ -110,7 +117,7 @@ public class UserCache { +@@ -111,7 +118,7 @@ public class UserCache { } public void saveProfile(GameProfile gameprofile) { a(gameprofile); } // Paper - OBFHELPER @@ -15365,7 +15365,7 @@ index e813d4dd1a46734d16b42905808caa889811afcc..ee5c038c4ede294ec5b9b9b9f705ba46 Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); -@@ -127,8 +134,9 @@ public class UserCache { +@@ -128,8 +135,9 @@ public class UserCache { } @Nullable @@ -15376,7 +15376,7 @@ index e813d4dd1a46734d16b42905808caa889811afcc..ee5c038c4ede294ec5b9b9b9f705ba46 UserCache.UserCacheEntry usercache_usercacheentry = (UserCache.UserCacheEntry) this.c.get(s1); boolean flag = false; -@@ -142,10 +150,14 @@ public class UserCache { +@@ -143,10 +151,14 @@ public class UserCache { GameProfile gameprofile; if (usercache_usercacheentry != null) { @@ -15391,7 +15391,7 @@ index e813d4dd1a46734d16b42905808caa889811afcc..ee5c038c4ede294ec5b9b9b9f705ba46 if (gameprofile != null) { this.a(gameprofile); flag = false; -@@ -157,6 +169,7 @@ public class UserCache { +@@ -158,6 +170,7 @@ public class UserCache { } return gameprofile; @@ -15399,7 +15399,7 @@ index e813d4dd1a46734d16b42905808caa889811afcc..ee5c038c4ede294ec5b9b9b9f705ba46 } // Paper start -@@ -291,7 +304,9 @@ public class UserCache { +@@ -292,7 +305,9 @@ public class UserCache { } private Stream a(int i) { @@ -20820,7 +20820,7 @@ index e50731723d266ba65b2163df2e935afb8b013a93..a6736d15282715d920bab85eb92074cd } value.append("},"); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 03b8d67a5f0088c0254b2099f27e8dcae32a6221..fd3333fef4112e6469ccd316ba2c82926c04e5db 100644 +index 1a0b3e2313b87c6a5eb049838ec72304dcc8f543..ce2fb6288edb871414c44d003ac63ff4045a820a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -232,7 +232,7 @@ import javax.annotation.Nullable; // Paper @@ -20848,7 +20848,7 @@ index 03b8d67a5f0088c0254b2099f27e8dcae32a6221..fd3333fef4112e6469ccd316ba2c8292 } Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper -@@ -1910,7 +1912,10 @@ public final class CraftServer implements Server { +@@ -1909,7 +1911,10 @@ public final class CraftServer implements Server { @Override public boolean isPrimaryThread() { @@ -20860,7 +20860,7 @@ index 03b8d67a5f0088c0254b2099f27e8dcae32a6221..fd3333fef4112e6469ccd316ba2c8292 } // Paper start -@@ -2344,6 +2349,14 @@ public final class CraftServer implements Server { +@@ -2343,6 +2348,14 @@ public final class CraftServer implements Server { return com.destroystokyo.paper.PaperConfig.config; } diff --git a/patches/server/0002-Airplane-Server-Changes.patch b/patches/server/0002-Airplane-Server-Changes.patch index d08455cb93..9e81034d36 100644 --- a/patches/server/0002-Airplane-Server-Changes.patch +++ b/patches/server/0002-Airplane-Server-Changes.patch @@ -3057,7 +3057,7 @@ index 95d0c9f22d79194ca83ca6f6a8e6d91180a3c8da..20cc04be75ab202d4c4ee9a07e9876ce public LootTableInfo build(LootContextParameterSet lootcontextparameterset) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index fd3333fef4112e6469ccd316ba2c82926c04e5db..aec6c036ed42078a6cc3540f1f6e46a551e87a2f 100644 +index ce2fb6288edb871414c44d003ac63ff4045a820a..34b9fe484ba16193cfcb938cb0dc51b2066acc5f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -232,7 +232,7 @@ import javax.annotation.Nullable; // Paper diff --git a/patches/server/0003-Rebrand.patch b/patches/server/0003-Rebrand.patch index 73b576e1f0..677ce2034a 100644 --- a/patches/server/0003-Rebrand.patch +++ b/patches/server/0003-Rebrand.patch @@ -230,7 +230,7 @@ index 0000000000000000000000000000000000000000..cabfcebf9f944f7a2a2a1cffc7401435 + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index aec6c036ed42078a6cc3540f1f6e46a551e87a2f..f9913d7bd66935f975b756f31e26153ec160b3b1 100644 +index 34b9fe484ba16193cfcb938cb0dc51b2066acc5f..1c67be65972a374d1e8fac393ce3064c7fca25e1 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -232,7 +232,7 @@ import javax.annotation.Nullable; // Paper diff --git a/patches/server/0004-Purpur-config-files.patch b/patches/server/0004-Purpur-config-files.patch index 10f52d7bbc..558972440b 100644 --- a/patches/server/0004-Purpur-config-files.patch +++ b/patches/server/0004-Purpur-config-files.patch @@ -357,7 +357,7 @@ index 0000000000000000000000000000000000000000..536955124afaec5c8a070249c7432cb9 + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index f9913d7bd66935f975b756f31e26153ec160b3b1..3e0b92259ad00541a8da595a918275c1a5b2bc39 100644 +index 1c67be65972a374d1e8fac393ce3064c7fca25e1..555685c32aa9b0dfbdf0e2ed4a2802eafd37495a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -865,6 +865,7 @@ public final class CraftServer implements Server { @@ -384,7 +384,7 @@ index f9913d7bd66935f975b756f31e26153ec160b3b1..3e0b92259ad00541a8da595a918275c1 overrideAllCommandBlockCommands = commandsConfiguration.getStringList("command-block-overrides").contains("*"); ignoreVanillaPermissions = commandsConfiguration.getBoolean("ignore-vanilla-permissions"); -@@ -2362,6 +2365,18 @@ public final class CraftServer implements Server { +@@ -2361,6 +2364,18 @@ public final class CraftServer implements Server { } // Tuinity end - add config to timings report diff --git a/patches/server/0010-Bring-back-server-name.patch b/patches/server/0010-Bring-back-server-name.patch index d68487a2c4..dec8bf113a 100644 --- a/patches/server/0010-Bring-back-server-name.patch +++ b/patches/server/0010-Bring-back-server-name.patch @@ -17,10 +17,10 @@ index 1fab9b9c7d41a0d2a551096c2c15f741a887fa2d..f33309f4c1ad92960d0634f3f5b8105c public final boolean spawnNpcs = this.getBoolean("spawn-npcs", true); public final boolean pvp = this.getBoolean("pvp", true); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 3e0b92259ad00541a8da595a918275c1a5b2bc39..f200827a22acc6f6dd454b4c309a5b1e149f9c46 100644 +index 555685c32aa9b0dfbdf0e2ed4a2802eafd37495a..f33f770a259ca59c50270ae70e4a14ed879967a2 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2525,4 +2525,11 @@ public final class CraftServer implements Server { +@@ -2524,4 +2524,11 @@ public final class CraftServer implements Server { return mobGoals; } // Paper end diff --git a/patches/server/0013-Lagging-threshold.patch b/patches/server/0013-Lagging-threshold.patch index f590bdfeea..56cb5c744e 100644 --- a/patches/server/0013-Lagging-threshold.patch +++ b/patches/server/0013-Lagging-threshold.patch @@ -41,10 +41,10 @@ index 7eadf925c4e4429fa63fb02af9e87bf2ed68efa6..60ef024891e78e18c64435b7ee811807 public static boolean enderChestSixRows = false; public static boolean enderChestPermissionRows = false; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index f200827a22acc6f6dd454b4c309a5b1e149f9c46..b770d3a11fde20dddacd2ea9c317f1f187f76e6d 100644 +index f33f770a259ca59c50270ae70e4a14ed879967a2..c462a3aa61e23178fb04622e9a65fb5e83e22174 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2531,5 +2531,10 @@ public final class CraftServer implements Server { +@@ -2530,5 +2530,10 @@ public final class CraftServer implements Server { public String getServerName() { return getProperties().serverName; } diff --git a/patches/server/0017-Player-invulnerabilities.patch b/patches/server/0017-Player-invulnerabilities.patch index 19bcf3c1dd..27843a7f6b 100644 --- a/patches/server/0017-Player-invulnerabilities.patch +++ b/patches/server/0017-Player-invulnerabilities.patch @@ -79,10 +79,10 @@ index 1f4e45f6e70032bfeeafe30d038e14e052e6ad9d..568fea41d12f2817b09768ff3b03f769 this.server.getPluginManager().callEvent(new PlayerResourcePackStatusEvent(getPlayer(), packStatus)); // 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 b5043eabe63fe703a321cff6c0f6449cf729cd0e..456d87ffb2303867ac1e586078b4f81c059b0e74 100644 +index 76ba1e038fb68eafa2c2039fa1cdd74d060dcf9f..2e5afd00bc7a2a58fd66c3bf1b38293762408662 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1009,6 +1009,8 @@ public abstract class PlayerList { +@@ -1015,6 +1015,8 @@ public abstract class PlayerList { } // Paper end diff --git a/patches/server/0054-Skip-events-if-there-s-no-listeners.patch b/patches/server/0054-Skip-events-if-there-s-no-listeners.patch index 8fd44bfa0b..d04cf73517 100644 --- a/patches/server/0054-Skip-events-if-there-s-no-listeners.patch +++ b/patches/server/0054-Skip-events-if-there-s-no-listeners.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Skip events if there's no listeners diff --git a/src/main/java/net/minecraft/commands/CommandDispatcher.java b/src/main/java/net/minecraft/commands/CommandDispatcher.java -index 988d1c9e9f4f29325043eb083123d12dd5f8081d..c25440e810e61bcdc299a0caebaec54b6862dd3c 100644 +index 87ddccc0808189cb80bef9d2c9eced362d025140..7cb062043a8a5e997557a23bdf71cbdf8dd457ae 100644 --- a/src/main/java/net/minecraft/commands/CommandDispatcher.java +++ b/src/main/java/net/minecraft/commands/CommandDispatcher.java -@@ -362,6 +362,7 @@ public class CommandDispatcher { +@@ -364,6 +364,7 @@ public class CommandDispatcher { } private void runSync(EntityPlayer entityplayer, Collection bukkit, RootCommandNode rootcommandnode) { @@ -16,7 +16,7 @@ index 988d1c9e9f4f29325043eb083123d12dd5f8081d..c25440e810e61bcdc299a0caebaec54b // Paper end - Async command map building new com.destroystokyo.paper.event.brigadier.AsyncPlayerSendCommandsEvent(entityplayer.getBukkitEntity(), (RootCommandNode) rootcommandnode, false).callEvent(); // Paper PlayerCommandSendEvent event = new PlayerCommandSendEvent(entityplayer.getBukkitEntity(), new LinkedHashSet<>(bukkit)); -@@ -374,6 +375,7 @@ public class CommandDispatcher { +@@ -376,6 +377,7 @@ public class CommandDispatcher { } } // CraftBukkit end diff --git a/patches/server/0055-Add-permission-for-F3-N-debug.patch b/patches/server/0055-Add-permission-for-F3-N-debug.patch index baea78df5e..0bae63f24f 100644 --- a/patches/server/0055-Add-permission-for-F3-N-debug.patch +++ b/patches/server/0055-Add-permission-for-F3-N-debug.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add permission for F3+N debug diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 456d87ffb2303867ac1e586078b4f81c059b0e74..92d696ee1812e8cfb8a853b5254db3ef5e4d2266 100644 +index 2e5afd00bc7a2a58fd66c3bf1b38293762408662..3622ea01edfb9dfaab254ceaf09582d9e8993174 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1168,6 +1168,7 @@ public abstract class PlayerList { +@@ -1174,6 +1174,7 @@ public abstract class PlayerList { } else { b0 = (byte) (24 + i); } diff --git a/patches/server/0074-Add-5-second-tps-average-in-tps.patch b/patches/server/0074-Add-5-second-tps-average-in-tps.patch index 43175802ee..471e610d32 100644 --- a/patches/server/0074-Add-5-second-tps-average-in-tps.patch +++ b/patches/server/0074-Add-5-second-tps-average-in-tps.patch @@ -69,10 +69,10 @@ index dccff89fcacdafe4961cd3121eb38ff8844e10da..409c272629ca935dcbaa9e73e10ace4a lagging = recentTps[0] < net.pl3x.purpur.PurpurConfig.laggingThreshold; // Purpur tickSection = curTime; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index b770d3a11fde20dddacd2ea9c317f1f187f76e6d..d57292e524cad6306c99c1cf6c5790fe1d07d815 100644 +index c462a3aa61e23178fb04622e9a65fb5e83e22174..49214eaab41998781b1d2e519f65075366754fea 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2311,6 +2311,7 @@ public final class CraftServer implements Server { +@@ -2310,6 +2310,7 @@ public final class CraftServer implements Server { @Override public double[] getTPS() { return new double[] { diff --git a/patches/server/0077-Add-ping-command.patch b/patches/server/0077-Add-ping-command.patch index e280c942ce..ca445cd7c8 100644 --- a/patches/server/0077-Add-ping-command.patch +++ b/patches/server/0077-Add-ping-command.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add /ping command diff --git a/src/main/java/net/minecraft/commands/CommandDispatcher.java b/src/main/java/net/minecraft/commands/CommandDispatcher.java -index c25440e810e61bcdc299a0caebaec54b6862dd3c..cf3776591446ad7b3d1ee1285c5aeffcb5e9495e 100644 +index 7cb062043a8a5e997557a23bdf71cbdf8dd457ae..5afee94075efcaf480c494360778570b1a02b726 100644 --- a/src/main/java/net/minecraft/commands/CommandDispatcher.java +++ b/src/main/java/net/minecraft/commands/CommandDispatcher.java @@ -191,6 +191,7 @@ public class CommandDispatcher { @@ -16,7 +16,7 @@ index c25440e810e61bcdc299a0caebaec54b6862dd3c..cf3776591446ad7b3d1ee1285c5aeffc } if (commanddispatcher_servertype.d) { -@@ -422,10 +423,12 @@ public class CommandDispatcher { +@@ -424,10 +425,12 @@ public class CommandDispatcher { } @@ -29,7 +29,7 @@ index c25440e810e61bcdc299a0caebaec54b6862dd3c..cf3776591446ad7b3d1ee1285c5aeffc public static RequiredArgumentBuilder a(String s, ArgumentType argumenttype) { return RequiredArgumentBuilder.argument(s, argumenttype); } -@@ -441,6 +444,7 @@ public class CommandDispatcher { +@@ -443,6 +446,7 @@ public class CommandDispatcher { }; } diff --git a/patches/server/0134-Add-demo-command.patch b/patches/server/0134-Add-demo-command.patch index 32d633c035..139375bc53 100644 --- a/patches/server/0134-Add-demo-command.patch +++ b/patches/server/0134-Add-demo-command.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add demo command diff --git a/src/main/java/net/minecraft/commands/CommandDispatcher.java b/src/main/java/net/minecraft/commands/CommandDispatcher.java -index cf3776591446ad7b3d1ee1285c5aeffcb5e9495e..0982b14a4b39c40a68ee900d506b4e44f840299d 100644 +index 5afee94075efcaf480c494360778570b1a02b726..1a008ddade0f3bfb31661ff00404655316e68b49 100644 --- a/src/main/java/net/minecraft/commands/CommandDispatcher.java +++ b/src/main/java/net/minecraft/commands/CommandDispatcher.java @@ -191,6 +191,7 @@ public class CommandDispatcher { diff --git a/patches/server/0147-Spread-out-and-optimise-player-list-ticks.patch b/patches/server/0147-Spread-out-and-optimise-player-list-ticks.patch index 528f599df6..9bf25312f0 100644 --- a/patches/server/0147-Spread-out-and-optimise-player-list-ticks.patch +++ b/patches/server/0147-Spread-out-and-optimise-player-list-ticks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Spread out and optimise player list ticks diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 92d696ee1812e8cfb8a853b5254db3ef5e4d2266..1f07751bf67b9fd1a0f19ebc8d05fd16a6c24322 100644 +index 3622ea01edfb9dfaab254ceaf09582d9e8993174..070de6c066b2e293e0bc0ea9722a9a3dcf520431 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -151,7 +151,7 @@ public abstract class PlayerList { @@ -17,7 +17,7 @@ index 92d696ee1812e8cfb8a853b5254db3ef5e4d2266..1f07751bf67b9fd1a0f19ebc8d05fd16 // CraftBukkit start private CraftServer cserver; -@@ -1023,22 +1023,23 @@ public abstract class PlayerList { +@@ -1029,22 +1029,23 @@ public abstract class PlayerList { } public void tick() { diff --git a/patches/server/0153-Implement-TPSBar.patch b/patches/server/0153-Implement-TPSBar.patch index b8d6c31a81..a9627e43d4 100644 --- a/patches/server/0153-Implement-TPSBar.patch +++ b/patches/server/0153-Implement-TPSBar.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Implement TPSBar diff --git a/src/main/java/net/minecraft/commands/CommandDispatcher.java b/src/main/java/net/minecraft/commands/CommandDispatcher.java -index 0982b14a4b39c40a68ee900d506b4e44f840299d..324f475513eecab4242b8900084d7f088bd0e10b 100644 +index 1a008ddade0f3bfb31661ff00404655316e68b49..52f9b41c91af4af0e9fd66083319b18156f80dc8 100644 --- a/src/main/java/net/minecraft/commands/CommandDispatcher.java +++ b/src/main/java/net/minecraft/commands/CommandDispatcher.java @@ -193,6 +193,7 @@ public class CommandDispatcher { @@ -42,7 +42,7 @@ index a76219e59c24862b9c1e09e4a2a29cf2a6260514..4f7fed0418df17b80cb41e16bb1978c5 } } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 1f07751bf67b9fd1a0f19ebc8d05fd16a6c24322..33ef9699fdcf5dfd2ecaa53cb6388adb13da1697 100644 +index 070de6c066b2e293e0bc0ea9722a9a3dcf520431..d8d54274b5a294391b8bf2bc660c6b623914f5bf 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -598,6 +598,8 @@ public abstract class PlayerList { diff --git a/patches/server/0202-Add-credits-command.patch b/patches/server/0202-Add-credits-command.patch index d42cfee19d..98d1f88713 100644 --- a/patches/server/0202-Add-credits-command.patch +++ b/patches/server/0202-Add-credits-command.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add credits command diff --git a/src/main/java/net/minecraft/commands/CommandDispatcher.java b/src/main/java/net/minecraft/commands/CommandDispatcher.java -index 324f475513eecab4242b8900084d7f088bd0e10b..25ef4280318c5b2073bad828f19b84812c019229 100644 +index 52f9b41c91af4af0e9fd66083319b18156f80dc8..079b8444d13121f0f01860e88cea25cce9d0cc7e 100644 --- a/src/main/java/net/minecraft/commands/CommandDispatcher.java +++ b/src/main/java/net/minecraft/commands/CommandDispatcher.java @@ -191,6 +191,7 @@ public class CommandDispatcher { From a24b31b74c9768810263f8eca9b2109d7d8d3b9e Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Thu, 6 May 2021 20:24:05 -0500 Subject: [PATCH 17/40] Updated Upstream (Paper) Upstream has released updates that appear to apply and compile correctly Paper Changes: 8fcef3c1f Return after sending empty commands (#5586) 2a67a9e51 Fix missing CraftMetaBook#toBuilder override 48aa06106 Add more Wandering Trader API (#5020) 8cec462a5 [CI-SKIP] Remove Astei from the MIT list (#5577) --- Paper | 2 +- ...javadoc-warnings-missing-param-and-return.patch | 4 ++-- ...lict-on-change-for-adventure-deprecations.patch | 14 +++++++------- .../0054-Skip-events-if-there-s-no-listeners.patch | 6 +++--- .../0062-Villagers-follow-emerald-blocks.patch | 4 ++-- patches/server/0063-Allow-leashing-villagers.patch | 4 ++-- patches/server/0077-Add-ping-command.patch | 6 +++--- patches/server/0103-Ridables.patch | 10 +++++----- patches/server/0134-Add-demo-command.patch | 2 +- .../0150-Configurable-entity-base-attributes.patch | 4 ++-- patches/server/0153-Implement-TPSBar.patch | 2 +- .../0187-Add-config-for-villager-trading.patch | 4 ++-- patches/server/0202-Add-credits-command.patch | 2 +- 13 files changed, 32 insertions(+), 32 deletions(-) diff --git a/Paper b/Paper index 21fbc31963..8fcef3c1f6 160000 --- a/Paper +++ b/Paper @@ -1 +1 @@ -Subproject commit 21fbc319639d72e8fa325527994373a0ebc538bd +Subproject commit 8fcef3c1f6df0c7dcacf36c056e4feb9759f0953 diff --git a/patches/api/0033-Fix-javadoc-warnings-missing-param-and-return.patch b/patches/api/0033-Fix-javadoc-warnings-missing-param-and-return.patch index 888478589a..1f43b11a3c 100644 --- a/patches/api/0033-Fix-javadoc-warnings-missing-param-and-return.patch +++ b/patches/api/0033-Fix-javadoc-warnings-missing-param-and-return.patch @@ -1490,10 +1490,10 @@ index e7d905b1146b2bdd2da5bdeb6bf3541fb181d59e..1fab68c9de96b0d362ebf85fd675cc19 /** diff --git a/src/main/java/org/bukkit/inventory/meta/BookMeta.java b/src/main/java/org/bukkit/inventory/meta/BookMeta.java -index 0cfd4b02cc2095da56b4dc8d4ea4e9b4a95f513c..1378c8fc2fd187035fc159c8d025d58b5a61f535 100644 +index fdbd32c4bb6428f2dde484ecb53acdaaba2a0d18..7357c166115f346a1efebd0f0f2d5491de6a9a39 100644 --- a/src/main/java/org/bukkit/inventory/meta/BookMeta.java +++ b/src/main/java/org/bukkit/inventory/meta/BookMeta.java -@@ -305,6 +305,9 @@ public interface BookMeta extends ItemMeta, net.kyori.adventure.inventory.Book { +@@ -313,6 +313,9 @@ public interface BookMeta extends ItemMeta, net.kyori.adventure.inventory.Book { BookMeta clone(); // Spigot start diff --git a/patches/api/0039-Conflict-on-change-for-adventure-deprecations.patch b/patches/api/0039-Conflict-on-change-for-adventure-deprecations.patch index 81563c3e9a..e8e50ed68b 100644 --- a/patches/api/0039-Conflict-on-change-for-adventure-deprecations.patch +++ b/patches/api/0039-Conflict-on-change-for-adventure-deprecations.patch @@ -626,10 +626,10 @@ index b06995aa57aa9cba0bb59f1d26d81015619a08e6..5e33fe46ab9bb034acc6a38a3c00c33c public abstract String getTitle(); } diff --git a/src/main/java/org/bukkit/inventory/meta/BookMeta.java b/src/main/java/org/bukkit/inventory/meta/BookMeta.java -index 1378c8fc2fd187035fc159c8d025d58b5a61f535..2cbeb4ced49cab055e96268077df2ee2e445c980 100644 +index 7357c166115f346a1efebd0f0f2d5491de6a9a39..b90cb7aa98ea40573557a80ca5c7be7c5c494956 100644 --- a/src/main/java/org/bukkit/inventory/meta/BookMeta.java +++ b/src/main/java/org/bukkit/inventory/meta/BookMeta.java -@@ -234,7 +234,7 @@ public interface BookMeta extends ItemMeta, net.kyori.adventure.inventory.Book { +@@ -242,7 +242,7 @@ public interface BookMeta extends ItemMeta, net.kyori.adventure.inventory.Book { * @deprecated in favour of {@link #page(int)} */ @NotNull @@ -638,7 +638,7 @@ index 1378c8fc2fd187035fc159c8d025d58b5a61f535..2cbeb4ced49cab055e96268077df2ee2 String getPage(int page); /** -@@ -250,7 +250,7 @@ public interface BookMeta extends ItemMeta, net.kyori.adventure.inventory.Book { +@@ -258,7 +258,7 @@ public interface BookMeta extends ItemMeta, net.kyori.adventure.inventory.Book { * @param data the data to set for that page * @deprecated in favour of {@link #page(int, net.kyori.adventure.text.Component)} */ @@ -647,7 +647,7 @@ index 1378c8fc2fd187035fc159c8d025d58b5a61f535..2cbeb4ced49cab055e96268077df2ee2 void setPage(int page, @NotNull String data); /** -@@ -260,7 +260,7 @@ public interface BookMeta extends ItemMeta, net.kyori.adventure.inventory.Book { +@@ -268,7 +268,7 @@ public interface BookMeta extends ItemMeta, net.kyori.adventure.inventory.Book { * @deprecated in favour of {@link #pages()} */ @NotNull @@ -656,7 +656,7 @@ index 1378c8fc2fd187035fc159c8d025d58b5a61f535..2cbeb4ced49cab055e96268077df2ee2 List getPages(); /** -@@ -270,7 +270,7 @@ public interface BookMeta extends ItemMeta, net.kyori.adventure.inventory.Book { +@@ -278,7 +278,7 @@ public interface BookMeta extends ItemMeta, net.kyori.adventure.inventory.Book { * @param pages A list of pages to set the book to use * @deprecated in favour of {@link #pages(List)} */ @@ -665,7 +665,7 @@ index 1378c8fc2fd187035fc159c8d025d58b5a61f535..2cbeb4ced49cab055e96268077df2ee2 void setPages(@NotNull List pages); /** -@@ -280,7 +280,7 @@ public interface BookMeta extends ItemMeta, net.kyori.adventure.inventory.Book { +@@ -288,7 +288,7 @@ public interface BookMeta extends ItemMeta, net.kyori.adventure.inventory.Book { * @param pages A list of strings, each being a page * @deprecated in favour of {@link #pages(net.kyori.adventure.text.Component...)} */ @@ -674,7 +674,7 @@ index 1378c8fc2fd187035fc159c8d025d58b5a61f535..2cbeb4ced49cab055e96268077df2ee2 void setPages(@NotNull String... pages); /** -@@ -290,7 +290,7 @@ public interface BookMeta extends ItemMeta, net.kyori.adventure.inventory.Book { +@@ -298,7 +298,7 @@ public interface BookMeta extends ItemMeta, net.kyori.adventure.inventory.Book { * @param pages A list of strings, each being a page * @deprecated in favour of {@link #addPages(net.kyori.adventure.text.Component...)} */ diff --git a/patches/server/0054-Skip-events-if-there-s-no-listeners.patch b/patches/server/0054-Skip-events-if-there-s-no-listeners.patch index d04cf73517..8a72a4f713 100644 --- a/patches/server/0054-Skip-events-if-there-s-no-listeners.patch +++ b/patches/server/0054-Skip-events-if-there-s-no-listeners.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Skip events if there's no listeners diff --git a/src/main/java/net/minecraft/commands/CommandDispatcher.java b/src/main/java/net/minecraft/commands/CommandDispatcher.java -index 87ddccc0808189cb80bef9d2c9eced362d025140..7cb062043a8a5e997557a23bdf71cbdf8dd457ae 100644 +index 29a395e69aab9c50a45c5fd5ab8795fd8e3ef727..5ae31658fb1183eab66f682cc5477bc526c27753 100644 --- a/src/main/java/net/minecraft/commands/CommandDispatcher.java +++ b/src/main/java/net/minecraft/commands/CommandDispatcher.java -@@ -364,6 +364,7 @@ public class CommandDispatcher { +@@ -367,6 +367,7 @@ public class CommandDispatcher { } private void runSync(EntityPlayer entityplayer, Collection bukkit, RootCommandNode rootcommandnode) { @@ -16,7 +16,7 @@ index 87ddccc0808189cb80bef9d2c9eced362d025140..7cb062043a8a5e997557a23bdf71cbdf // Paper end - Async command map building new com.destroystokyo.paper.event.brigadier.AsyncPlayerSendCommandsEvent(entityplayer.getBukkitEntity(), (RootCommandNode) rootcommandnode, false).callEvent(); // Paper PlayerCommandSendEvent event = new PlayerCommandSendEvent(entityplayer.getBukkitEntity(), new LinkedHashSet<>(bukkit)); -@@ -376,6 +377,7 @@ public class CommandDispatcher { +@@ -379,6 +380,7 @@ public class CommandDispatcher { } } // CraftBukkit end diff --git a/patches/server/0062-Villagers-follow-emerald-blocks.patch b/patches/server/0062-Villagers-follow-emerald-blocks.patch index 3b2b6d203b..e99278e8cb 100644 --- a/patches/server/0062-Villagers-follow-emerald-blocks.patch +++ b/patches/server/0062-Villagers-follow-emerald-blocks.patch @@ -58,7 +58,7 @@ index 49821f0f26864c35be84a4a4288857a04668fbba..91142526187f96615b5cbd3ed3b68d91 private CraftMerchant craftMerchant; diff --git a/src/main/java/net/minecraft/world/entity/npc/EntityVillagerTrader.java b/src/main/java/net/minecraft/world/entity/npc/EntityVillagerTrader.java -index 37e1b2bf33510c3603efadf219b462e667f573c2..6c13a34a7ab220a3bba1c091f4f6a9e1340212f6 100644 +index 69044827ed6b34924ffd89a977afa06df0dcefc3..6fab69bf5800ef8a37f29c3b6b2103051f36fedf 100644 --- a/src/main/java/net/minecraft/world/entity/npc/EntityVillagerTrader.java +++ b/src/main/java/net/minecraft/world/entity/npc/EntityVillagerTrader.java @@ -26,6 +26,7 @@ import net.minecraft.world.entity.ai.goal.PathfinderGoalLookAtTradingPlayer; @@ -69,7 +69,7 @@ index 37e1b2bf33510c3603efadf219b462e667f573c2..6c13a34a7ab220a3bba1c091f4f6a9e1 import net.minecraft.world.entity.ai.goal.PathfinderGoalTradeWithPlayer; import net.minecraft.world.entity.ai.goal.PathfinderGoalUseItem; import net.minecraft.world.entity.monster.EntityEvoker; -@@ -85,6 +86,7 @@ public class EntityVillagerTrader extends EntityVillagerAbstract { +@@ -89,6 +90,7 @@ public class EntityVillagerTrader extends EntityVillagerAbstract { this.goalSelector.a(1, new PathfinderGoalPanic(this, 0.5D)); this.goalSelector.a(1, new PathfinderGoalLookAtTradingPlayer(this)); this.goalSelector.a(2, new EntityVillagerTrader.a(this, 2.0D, 0.35D)); diff --git a/patches/server/0063-Allow-leashing-villagers.patch b/patches/server/0063-Allow-leashing-villagers.patch index f5e6e6bcd3..4f156979ac 100644 --- a/patches/server/0063-Allow-leashing-villagers.patch +++ b/patches/server/0063-Allow-leashing-villagers.patch @@ -41,10 +41,10 @@ index 2464f1a5a922a5557e2d00233033714533acad76..aeb3c82afeda3f1688b1b6617c6d05da @Override diff --git a/src/main/java/net/minecraft/world/entity/npc/EntityVillagerTrader.java b/src/main/java/net/minecraft/world/entity/npc/EntityVillagerTrader.java -index 6c13a34a7ab220a3bba1c091f4f6a9e1340212f6..e0324cdb2d4c85714eaad490a7a5c826b38e6b16 100644 +index 6fab69bf5800ef8a37f29c3b6b2103051f36fedf..8df4d985e3124ddc1643da8385b15348937bc320 100644 --- a/src/main/java/net/minecraft/world/entity/npc/EntityVillagerTrader.java +++ b/src/main/java/net/minecraft/world/entity/npc/EntityVillagerTrader.java -@@ -93,6 +93,13 @@ public class EntityVillagerTrader extends EntityVillagerAbstract { +@@ -97,6 +97,13 @@ public class EntityVillagerTrader extends EntityVillagerAbstract { this.goalSelector.a(10, new PathfinderGoalLookAtPlayer(this, EntityInsentient.class, 8.0F)); } diff --git a/patches/server/0077-Add-ping-command.patch b/patches/server/0077-Add-ping-command.patch index ca445cd7c8..a3b75b0f05 100644 --- a/patches/server/0077-Add-ping-command.patch +++ b/patches/server/0077-Add-ping-command.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add /ping command diff --git a/src/main/java/net/minecraft/commands/CommandDispatcher.java b/src/main/java/net/minecraft/commands/CommandDispatcher.java -index 7cb062043a8a5e997557a23bdf71cbdf8dd457ae..5afee94075efcaf480c494360778570b1a02b726 100644 +index 5ae31658fb1183eab66f682cc5477bc526c27753..94ed3811cbcc6f60a2c8bb033920f9c1ae2e91d6 100644 --- a/src/main/java/net/minecraft/commands/CommandDispatcher.java +++ b/src/main/java/net/minecraft/commands/CommandDispatcher.java @@ -191,6 +191,7 @@ public class CommandDispatcher { @@ -16,7 +16,7 @@ index 7cb062043a8a5e997557a23bdf71cbdf8dd457ae..5afee94075efcaf480c494360778570b } if (commanddispatcher_servertype.d) { -@@ -424,10 +425,12 @@ public class CommandDispatcher { +@@ -427,10 +428,12 @@ public class CommandDispatcher { } @@ -29,7 +29,7 @@ index 7cb062043a8a5e997557a23bdf71cbdf8dd457ae..5afee94075efcaf480c494360778570b public static RequiredArgumentBuilder a(String s, ArgumentType argumenttype) { return RequiredArgumentBuilder.argument(s, argumenttype); } -@@ -443,6 +446,7 @@ public class CommandDispatcher { +@@ -446,6 +449,7 @@ public class CommandDispatcher { }; } diff --git a/patches/server/0103-Ridables.patch b/patches/server/0103-Ridables.patch index 6bd4070c3f..abd08850a7 100644 --- a/patches/server/0103-Ridables.patch +++ b/patches/server/0103-Ridables.patch @@ -5367,7 +5367,7 @@ index d3032682af94428419daa02f55b6040090d8df73..a0f0d5e0909da5cfe87078d4722b0306 this.h(entityhuman); } diff --git a/src/main/java/net/minecraft/world/entity/npc/EntityVillagerTrader.java b/src/main/java/net/minecraft/world/entity/npc/EntityVillagerTrader.java -index e0324cdb2d4c85714eaad490a7a5c826b38e6b16..90cbef7fe8803295f82bddd6709fdf303aedcaba 100644 +index 8df4d985e3124ddc1643da8385b15348937bc320..6c390fb20c7f29133a60780a75676d8d3d6eab29 100644 --- a/src/main/java/net/minecraft/world/entity/npc/EntityVillagerTrader.java +++ b/src/main/java/net/minecraft/world/entity/npc/EntityVillagerTrader.java @@ -6,6 +6,7 @@ import net.minecraft.core.BlockPosition; @@ -5378,15 +5378,15 @@ index e0324cdb2d4c85714eaad490a7a5c826b38e6b16..90cbef7fe8803295f82bddd6709fdf30 import net.minecraft.server.level.WorldServer; import net.minecraft.sounds.SoundEffect; import net.minecraft.sounds.SoundEffects; -@@ -69,6 +70,7 @@ public class EntityVillagerTrader extends EntityVillagerAbstract { +@@ -73,6 +74,7 @@ public class EntityVillagerTrader extends EntityVillagerAbstract { @Override protected void initPathfinder() { this.goalSelector.a(0, new PathfinderGoalFloat(this)); + this.goalSelector.a(0, new PathfinderGoalHasRider(this)); // Purpur this.goalSelector.a(0, new PathfinderGoalUseItem<>(this, PotionUtil.a(new ItemStack(Items.POTION), Potions.INVISIBILITY), SoundEffects.ENTITY_WANDERING_TRADER_DISAPPEARED, (entityvillagertrader) -> { - return this.world.isNight() && !entityvillagertrader.isInvisible(); + return canDrinkPotion && this.world.isNight() && !entityvillagertrader.isInvisible(); // Paper - Add more WanderingTrader API })); -@@ -94,6 +96,16 @@ public class EntityVillagerTrader extends EntityVillagerAbstract { +@@ -98,6 +100,16 @@ public class EntityVillagerTrader extends EntityVillagerAbstract { } // Purpur - start @@ -5403,7 +5403,7 @@ index e0324cdb2d4c85714eaad490a7a5c826b38e6b16..90cbef7fe8803295f82bddd6709fdf30 @Override public boolean a(EntityHuman entityhuman) { return world.purpurConfig.villagerTraderCanBeLeashed && !this.isLeashed(); -@@ -121,8 +133,9 @@ public class EntityVillagerTrader extends EntityVillagerAbstract { +@@ -125,8 +137,9 @@ public class EntityVillagerTrader extends EntityVillagerAbstract { } if (this.getOffers().isEmpty()) { diff --git a/patches/server/0134-Add-demo-command.patch b/patches/server/0134-Add-demo-command.patch index 139375bc53..be372b730c 100644 --- a/patches/server/0134-Add-demo-command.patch +++ b/patches/server/0134-Add-demo-command.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add demo command diff --git a/src/main/java/net/minecraft/commands/CommandDispatcher.java b/src/main/java/net/minecraft/commands/CommandDispatcher.java -index 5afee94075efcaf480c494360778570b1a02b726..1a008ddade0f3bfb31661ff00404655316e68b49 100644 +index 94ed3811cbcc6f60a2c8bb033920f9c1ae2e91d6..2f5e8ed345ace0d9abb7edebe1fd47e562b1d272 100644 --- a/src/main/java/net/minecraft/commands/CommandDispatcher.java +++ b/src/main/java/net/minecraft/commands/CommandDispatcher.java @@ -191,6 +191,7 @@ public class CommandDispatcher { diff --git a/patches/server/0150-Configurable-entity-base-attributes.patch b/patches/server/0150-Configurable-entity-base-attributes.patch index b6d39b48b5..8efad4af3a 100644 --- a/patches/server/0150-Configurable-entity-base-attributes.patch +++ b/patches/server/0150-Configurable-entity-base-attributes.patch @@ -1383,7 +1383,7 @@ index 0924e0c13b3c57e46f6dc40232707088f96e98c7..16933de70a23414859019e19545bfa5b @Override diff --git a/src/main/java/net/minecraft/world/entity/npc/EntityVillagerTrader.java b/src/main/java/net/minecraft/world/entity/npc/EntityVillagerTrader.java -index 90cbef7fe8803295f82bddd6709fdf303aedcaba..b84916c0c58fd208ef5547299f8db8462d1c42fe 100644 +index 6c390fb20c7f29133a60780a75676d8d3d6eab29..f6e0a92037d22de102c42cc1953ea90919bd3a34 100644 --- a/src/main/java/net/minecraft/world/entity/npc/EntityVillagerTrader.java +++ b/src/main/java/net/minecraft/world/entity/npc/EntityVillagerTrader.java @@ -18,6 +18,7 @@ import net.minecraft.world.entity.EntityAgeable; @@ -1394,7 +1394,7 @@ index 90cbef7fe8803295f82bddd6709fdf303aedcaba..b84916c0c58fd208ef5547299f8db846 import net.minecraft.world.entity.ai.goal.PathfinderGoal; import net.minecraft.world.entity.ai.goal.PathfinderGoalAvoidTarget; import net.minecraft.world.entity.ai.goal.PathfinderGoalFloat; -@@ -110,6 +111,11 @@ public class EntityVillagerTrader extends EntityVillagerAbstract { +@@ -114,6 +115,11 @@ public class EntityVillagerTrader extends EntityVillagerAbstract { public boolean a(EntityHuman entityhuman) { return world.purpurConfig.villagerTraderCanBeLeashed && !this.isLeashed(); } diff --git a/patches/server/0153-Implement-TPSBar.patch b/patches/server/0153-Implement-TPSBar.patch index a9627e43d4..ce1c18e6ba 100644 --- a/patches/server/0153-Implement-TPSBar.patch +++ b/patches/server/0153-Implement-TPSBar.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Implement TPSBar diff --git a/src/main/java/net/minecraft/commands/CommandDispatcher.java b/src/main/java/net/minecraft/commands/CommandDispatcher.java -index 1a008ddade0f3bfb31661ff00404655316e68b49..52f9b41c91af4af0e9fd66083319b18156f80dc8 100644 +index 2f5e8ed345ace0d9abb7edebe1fd47e562b1d272..ce95a7d9c967d723bad468bd00a5c0a6b887aa33 100644 --- a/src/main/java/net/minecraft/commands/CommandDispatcher.java +++ b/src/main/java/net/minecraft/commands/CommandDispatcher.java @@ -193,6 +193,7 @@ public class CommandDispatcher { diff --git a/patches/server/0187-Add-config-for-villager-trading.patch b/patches/server/0187-Add-config-for-villager-trading.patch index 13980ff119..7779be1dca 100644 --- a/patches/server/0187-Add-config-for-villager-trading.patch +++ b/patches/server/0187-Add-config-for-villager-trading.patch @@ -18,10 +18,10 @@ index 16933de70a23414859019e19545bfa5baa38091a..a02748bff911415d95bea344f179ad27 } diff --git a/src/main/java/net/minecraft/world/entity/npc/EntityVillagerTrader.java b/src/main/java/net/minecraft/world/entity/npc/EntityVillagerTrader.java -index b84916c0c58fd208ef5547299f8db8462d1c42fe..0b6b6aa6b358759c45bbcf4a9ffa53777c8efa1d 100644 +index f6e0a92037d22de102c42cc1953ea90919bd3a34..03e811e854034c6ca9cd11d35ed0a2dbd14c6097 100644 --- a/src/main/java/net/minecraft/world/entity/npc/EntityVillagerTrader.java +++ b/src/main/java/net/minecraft/world/entity/npc/EntityVillagerTrader.java -@@ -142,7 +142,7 @@ public class EntityVillagerTrader extends EntityVillagerAbstract { +@@ -146,7 +146,7 @@ public class EntityVillagerTrader extends EntityVillagerAbstract { return tryRide(entityhuman, enumhand); // Purpur } else { if (world.purpurConfig.villagerTraderRidable && itemstack.isEmpty()) return tryRide(entityhuman, enumhand); // Purpur diff --git a/patches/server/0202-Add-credits-command.patch b/patches/server/0202-Add-credits-command.patch index 98d1f88713..993d994edc 100644 --- a/patches/server/0202-Add-credits-command.patch +++ b/patches/server/0202-Add-credits-command.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add credits command diff --git a/src/main/java/net/minecraft/commands/CommandDispatcher.java b/src/main/java/net/minecraft/commands/CommandDispatcher.java -index 52f9b41c91af4af0e9fd66083319b18156f80dc8..079b8444d13121f0f01860e88cea25cce9d0cc7e 100644 +index ce95a7d9c967d723bad468bd00a5c0a6b887aa33..0703148d079d86921dac42ef90e514d3584bf569 100644 --- a/src/main/java/net/minecraft/commands/CommandDispatcher.java +++ b/src/main/java/net/minecraft/commands/CommandDispatcher.java @@ -191,6 +191,7 @@ public class CommandDispatcher { From 73ab4e64ff35106ab4f0122c5a7b857ef2f84037 Mon Sep 17 00:00:00 2001 From: Roan-V <77012724+Roan-V@users.noreply.github.com> Date: Fri, 7 May 2021 19:47:50 +0200 Subject: [PATCH 18/40] Update the "changing the blocks that turn into paths" defaults to reflect the vanilla defaults. (#322) * Update the "changing the blocks that turn into paths" defaults to reflect the vanilla defaults * Apparently grass is the only one that can change to paths in 1.16 * Rebuild patches Co-authored-by: Encode42 --- ...onfig-for-changing-the-blocks-that-turn-into-paths.patch | 6 ++---- ...lows-you-to-change-the-thrust-limit-of-a-piston-by.patch | 4 ++-- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/patches/server/0204-Config-for-changing-the-blocks-that-turn-into-paths.patch b/patches/server/0204-Config-for-changing-the-blocks-that-turn-into-paths.patch index 2ac77e0c08..a4558dd3ef 100644 --- a/patches/server/0204-Config-for-changing-the-blocks-that-turn-into-paths.patch +++ b/patches/server/0204-Config-for-changing-the-blocks-that-turn-into-paths.patch @@ -18,10 +18,10 @@ index 9ba8ae49e18fb8714b434715bd669b8e22004cd7..c0c87d0dc8d6f02597219cd6a74e6ed7 if (iblockdata1 != null && world.getType(blockposition.up()).isAir()) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 3d3e4e686cd74145b002b2df276e61762697918b..63a1b0f569c8f034e7577c304ec23a7a96c666f7 100644 +index 3d3e4e686cd74145b002b2df276e61762697918b..e082de2fdbd4803f5c79699b813062291f8e2bb7 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -469,6 +469,18 @@ public class PurpurWorldConfig { +@@ -469,6 +469,16 @@ public class PurpurWorldConfig { totemOfUndyingWorksInInventory = getBoolean("gameplay-mechanics.player.totem-of-undying-works-in-inventory", totemOfUndyingWorksInInventory); } @@ -29,8 +29,6 @@ index 3d3e4e686cd74145b002b2df276e61762697918b..63a1b0f569c8f034e7577c304ec23a7a + private void shovelSettings() { + getList("gameplay-mechanics.shovel-turns-block-to-grass-path", new ArrayList(){{ + add("minecraft:grass_block"); -+ add("minecraft:dirt"); -+ add("minecraft:coarse_dirt"); + }}).forEach(key -> { + Block block = IRegistry.BLOCK.get(new MinecraftKey(key.toString())); + if (block != Blocks.AIR) shovelTurnsBlockToGrassPath.add(block); diff --git a/patches/server/0205-Allows-you-to-change-the-thrust-limit-of-a-piston-by.patch b/patches/server/0205-Allows-you-to-change-the-thrust-limit-of-a-piston-by.patch index bd4c96804c..8c5c9d2d1f 100644 --- a/patches/server/0205-Allows-you-to-change-the-thrust-limit-of-a-piston-by.patch +++ b/patches/server/0205-Allows-you-to-change-the-thrust-limit-of-a-piston-by.patch @@ -45,10 +45,10 @@ index 6c9c4ab65b7e42efa68027057242e25b70313081..cbe34059659e0f80ff384508b01e516c } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 63a1b0f569c8f034e7577c304ec23a7a96c666f7..a08bf2a374a486cf44128a87667567df65329e0c 100644 +index e082de2fdbd4803f5c79699b813062291f8e2bb7..07c66f9d41e7a74021dde6702d654710e400e93b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -2157,4 +2157,9 @@ public class PurpurWorldConfig { +@@ -2155,4 +2155,9 @@ public class PurpurWorldConfig { magmaBlockDamageWhenSneaking = getBoolean("blocks.magma-block.damage-when-sneaking", magmaBlockDamageWhenSneaking); magmaBlockDamageWithFrostWalker = getBoolean("blocks.magma-block.damage-with-frost-walker", magmaBlockDamageWithFrostWalker); } From 3b1531ad73daceb1d670bf714e17277fe97ac3fb Mon Sep 17 00:00:00 2001 From: jmp Date: Fri, 7 May 2021 18:17:25 -0700 Subject: [PATCH 19/40] [ci-skip] Add wrapper validation step to actions --- .github/workflows/pull_request.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index c25a16f6f2..680537ef9f 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -5,6 +5,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 + - uses: gradle/wrapper-validation-action@v1 - name: Set up JDK uses: actions/setup-java@v2 with: From bedac1823f16f6392cda1a57f5fe211c6a2f054b Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Sun, 9 May 2021 00:33:37 -0500 Subject: [PATCH 20/40] Updated Upstream (Paper, Tuinity, & Airplane) Upstream has released updates that appear to apply and compile correctly Paper Changes: 8ed45920c Don't annotate type parameters using JetBrains annotations (#5600) d7625d926 Add new methods from PlayerMoveEvent to EntityMoveEvent (#5591) 29785297b Allow for Component suggestion tooltips in AsyncTabCompleteEvent (#5504) 0aea6c2ff Use JsonSerializationContext#serialize instead of recursion for AdventureComponents - fixes #5580 and #5371 Tuinity Changes: 3350246ce Updated Upstream (Paper) f773caf21 Fix rare ticket level recursion crash 0fa8a0e92 Starlight Handle concurrent chunk generation and lighting better Airplane Changes: fad74c215 Fix JB annotations for gradle (credit jpenilla) d02f034e6 Updated Upstream (Tuinity) --- Paper | 2 +- .../server/0001-Tuinity-Server-Changes.patch | 206 +++++++----------- .../server/0002-Airplane-Server-Changes.patch | 4 +- patches/server/0009-AFK-API.patch | 8 +- .../0017-Player-invulnerabilities.patch | 4 +- .../0020-Alternative-Keepalive-Handling.patch | 4 +- .../0028-Zombie-horse-naturally-spawn.patch | 2 +- .../server/0046-Signs-allow-color-codes.patch | 4 +- .../0084-Allow-color-codes-in-books.patch | 8 +- patches/server/0085-Entity-lifespan.patch | 4 +- .../0099-Add-no-random-tick-block-list.patch | 2 +- patches/server/0103-Ridables.patch | 6 +- ...ggling-special-MobSpawners-per-world.patch | 2 +- .../0118-Configurable-daylight-cycle.patch | 2 +- .../server/0155-PlayerBookTooLargeEvent.patch | 8 +- .../server/0173-Dont-run-with-scissors.patch | 4 +- .../0186-Config-for-skipping-night.patch | 2 +- 17 files changed, 116 insertions(+), 156 deletions(-) diff --git a/Paper b/Paper index 8fcef3c1f6..8ed45920cf 160000 --- a/Paper +++ b/Paper @@ -1 +1 @@ -Subproject commit 8fcef3c1f6df0c7dcacf36c056e4feb9759f0953 +Subproject commit 8ed45920cfaaf0fd971117021b86b04c347c4787 diff --git a/patches/server/0001-Tuinity-Server-Changes.patch b/patches/server/0001-Tuinity-Server-Changes.patch index 489cf3671c..5a0926cde5 100644 --- a/patches/server/0001-Tuinity-Server-Changes.patch +++ b/patches/server/0001-Tuinity-Server-Changes.patch @@ -2059,7 +2059,7 @@ index 0000000000000000000000000000000000000000..5ea5b3933725d80dd193e815ac507ee5 \ No newline at end of file diff --git a/src/main/java/com/tuinity/tuinity/chunk/light/BlockStarLightEngine.java b/src/main/java/com/tuinity/tuinity/chunk/light/BlockStarLightEngine.java new file mode 100644 -index 0000000000000000000000000000000000000000..331f0ae05384b29ceb59f2846c52a2194658bb39 +index 0000000000000000000000000000000000000000..f722f9838424f345b69aef11510c194c6629e439 --- /dev/null +++ b/src/main/java/com/tuinity/tuinity/chunk/light/BlockStarLightEngine.java @@ -0,0 +1,289 @@ @@ -2298,16 +2298,16 @@ index 0000000000000000000000000000000000000000..331f0ae05384b29ceb59f2846c52a219 + + return ret.iterator(); + } else { -+ if (chunk instanceof ProtoChunk) { -+ ProtoChunk protoChunk = (ProtoChunk)chunk; -+ protoChunk.lockLightSources(); ++ // world gen and lighting run in parallel, and if lighting keeps up it can be lighting chunks that are ++ // being generated. In the nether, lava will add a lot of sources. This resulted in quite a few CME crashes. ++ // So all we do spinloop until we can collect a list of sources, and even if it is out of date we will pick up ++ // the missing sources from checkBlock. ++ for (;;) { + try { -+ return new ArrayList<>(chunk.getLightSources().collect(Collectors.toList())).iterator(); -+ } finally { -+ protoChunk.releaseLightSources(); ++ return chunk.getLightSources().collect(Collectors.toList()).iterator(); ++ } catch (final Exception cme) { ++ continue; + } -+ } else { -+ return new ArrayList<>(chunk.getLightSources().collect(Collectors.toList())).iterator(); + } + } + } @@ -5514,10 +5514,10 @@ index 0000000000000000000000000000000000000000..df686b97460796004cad1477760647a9 +} diff --git a/src/main/java/com/tuinity/tuinity/chunk/light/VariableBlockLightHandler.java b/src/main/java/com/tuinity/tuinity/chunk/light/VariableBlockLightHandler.java new file mode 100644 -index 0000000000000000000000000000000000000000..b8df658c09a6dc739ff3f4d6e18c9cef7caea6c9 +index 0000000000000000000000000000000000000000..20309334d81011f18fbb67be209a1eec25447b5c --- /dev/null +++ b/src/main/java/com/tuinity/tuinity/chunk/light/VariableBlockLightHandler.java -@@ -0,0 +1,30 @@ +@@ -0,0 +1,33 @@ +package com.tuinity.tuinity.chunk.light; + +import net.minecraft.core.BlockPosition; @@ -5526,7 +5526,10 @@ index 0000000000000000000000000000000000000000..b8df658c09a6dc739ff3f4d6e18c9cef +/** + * Recommended implementation is {@link VariableBlockLightHandlerImpl}, but you can implement this interface yourself + * if you want. ++ * ++ * @deprecated To be removed in 1.17 due to Mojang adding a custom light block. + */ ++@Deprecated +public interface VariableBlockLightHandler { + + /** @@ -11199,7 +11202,7 @@ index df8270c40ed7ce6f628686ff6f4fa4cf96af6738..fa7a78549a9bb92b93c305dc16f43a9a if (this.remoteControlListener != null) { diff --git a/src/main/java/net/minecraft/server/level/ChunkMapDistance.java b/src/main/java/net/minecraft/server/level/ChunkMapDistance.java -index 3644e8b24b082e17752ef52934625416130aaa08..a5fc023312c99e591fc269999c28a766a46f8849 100644 +index 3644e8b24b082e17752ef52934625416130aaa08..58e14c174cdf76cdea861fd3d4d1195fa27f888a 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMapDistance.java +++ b/src/main/java/net/minecraft/server/level/ChunkMapDistance.java @@ -8,6 +8,7 @@ import it.unimi.dsi.fastutil.longs.Long2ByteOpenHashMap; @@ -11401,31 +11404,32 @@ index 3644e8b24b082e17752ef52934625416130aaa08..a5fc023312c99e591fc269999c28a766 - if (!this.l.isEmpty()) { - LongIterator longiterator = this.l.iterator(); + // Tuinity start - replace level propagator -+ if (!this.ticketLevelUpdates.isEmpty()) { ++ ticket_update_loop: ++ while (!this.ticketLevelUpdates.isEmpty()) { ++ flag = true; + +- while (longiterator.hasNext()) { +- long j = longiterator.nextLong(); + boolean oldPolling = this.pollingPendingChunkUpdates; + this.pollingPendingChunkUpdates = true; + try { -+ for (java.util.Iterator iterator = this.ticketLevelUpdates.long2IntEntrySet().fastIterator(); iterator.hasNext(); ) { ++ for (java.util.Iterator iterator = this.ticketLevelUpdates.long2IntEntrySet().fastIterator(); iterator.hasNext();) { + Long2IntMap.Entry entry = iterator.next(); + long key = entry.getLongKey(); + int newLevel = entry.getIntValue(); + PlayerChunk chunk = this.getUpdatingChunk(key); - -- while (longiterator.hasNext()) { -- long j = longiterator.nextLong(); ++ + if (chunk == null && newLevel > PlayerChunkMap.GOLDEN_TICKET) { + // not loaded and it shouldn't be loaded! + continue; + } ++ ++ int currentLevel = chunk == null ? PlayerChunkMap.GOLDEN_TICKET + 1 : chunk.getTicketLevel(); - if (this.e(j).stream().anyMatch((ticket) -> { - return ticket.getTicketType() == TicketType.PLAYER; - })) { - PlayerChunk playerchunk = playerchunkmap.getUpdatingChunk(j); -+ int currentLevel = chunk == null ? PlayerChunkMap.GOLDEN_TICKET + 1 : chunk.getTicketLevel(); - -- if (playerchunk == null) { -- throw new IllegalStateException(); + if (currentLevel == newLevel) { + // nothing to do + continue; @@ -11433,7 +11437,9 @@ index 3644e8b24b082e17752ef52934625416130aaa08..a5fc023312c99e591fc269999c28a766 + + this.updateTicketLevel(key, newLevel, chunk, currentLevel); + } -+ + +- if (playerchunk == null) { +- throw new IllegalStateException(); + long recursiveCheck = ++this.ticketLevelUpdateCount; + while (!this.ticketLevelUpdates.isEmpty()) { + long key = this.ticketLevelUpdates.firstLongKey(); @@ -11464,31 +11470,29 @@ index 3644e8b24b082e17752ef52934625416130aaa08..a5fc023312c99e591fc269999c28a766 + + chunk.handleLevelUpdate(playerchunkmap); + if (recursiveCheck != this.ticketLevelUpdateCount) { -+ if (!this.ticketLevelUpdates.isEmpty()) { -+ throw new IllegalStateException("Recursive call should have processed updates"); -+ } -+ break; ++ // back to the start, we must create player chunks and update the ticket level fields before ++ // processing the actual level updates ++ continue ticket_update_loop; } } - this.l.clear(); +- } + for (;;) { + if (recursiveCheck != this.ticketLevelUpdateCount) { -+ break; ++ continue ticket_update_loop; + } + PlayerChunk pendingUpdate = this.pendingChunkUpdates.poll(); + if (pendingUpdate == null) { + break; + } -+ + +- return flag; + pendingUpdate.handleLevelUpdate(playerchunkmap); + } + } finally { + this.pollingPendingChunkUpdates = oldPolling; - } - -- return flag; -+ return true; ++ } } + + return flag; @@ -12351,7 +12355,7 @@ index 4ee7070364a8989eece4fa4237b529926821f9c9..f22ab98d2e250081df8949be8a997370 this.a(Long.MAX_VALUE, i, j, flag); } diff --git a/src/main/java/net/minecraft/server/level/LightEngineThreaded.java b/src/main/java/net/minecraft/server/level/LightEngineThreaded.java -index 0b80569648c1df01aab52d0b8d47028cda925d86..ad584ba21c6e201b778f32cea6d7cc5bf67f9746 100644 +index 0b80569648c1df01aab52d0b8d47028cda925d86..76ac408021c5124fd634682cba97dc63392642f5 100644 --- a/src/main/java/net/minecraft/server/level/LightEngineThreaded.java +++ b/src/main/java/net/minecraft/server/level/LightEngineThreaded.java @@ -2,6 +2,11 @@ package net.minecraft.server.level; @@ -12380,7 +12384,7 @@ index 0b80569648c1df01aab52d0b8d47028cda925d86..ad584ba21c6e201b778f32cea6d7cc5b PlayerChunk playerChunk = playerChunkMap.getVisibleChunk(pair); if (playerChunk == null) { return false; -@@ -169,13 +175,184 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { +@@ -169,13 +175,191 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { private volatile int f = 5; private final AtomicBoolean g = new AtomicBoolean(); @@ -12451,8 +12455,8 @@ index 0b80569648c1df01aab52d0b8d47028cda925d86..ad584ba21c6e201b778f32cea6d7cc5b + this.queueUpdate(); + + return totalChunks; - } - ++ } ++ + protected final Long2IntOpenHashMap holdingChunks = new Long2IntOpenHashMap(); + protected final LongArrayList postWorkTicketRelease = new LongArrayList(); + @@ -12499,20 +12503,27 @@ index 0b80569648c1df01aab52d0b8d47028cda925d86..ad584ba21c6e201b778f32cea6d7cc5b + } + + return CompletableFuture.completedFuture(playerChunk.getAvailableChunkNow()); -+ } -+ + } + + // note: task is discarded if the chunk is not at light status or if the chunk is not lit + protected final void scheduleLightWorkTask(int chunkX, int chunkZ, LightEngineThreaded.Update type, Runnable task) { -+ if (!org.bukkit.Bukkit.isPrimaryThread()) { -+ this.playerChunkMap.mainInvokingExecutor.execute(() -> { -+ this.scheduleLightWorkTask(chunkX, chunkZ, type, task); -+ }); ++ IChunkAccess current = this.getChunk(chunkX, chunkZ); ++ ++ if (current == null || !current.getChunkStatus().isAtLeastStatus(ChunkStatus.LIGHT)) { + return; + } + -+ IChunkAccess current = this.getChunk(chunkX, chunkZ); ++ if (current.getChunkStatus() != ChunkStatus.FULL) { ++ // do not keep chunk loaded, we are probably in a gen thread ++ // if we proceed to add a ticket the chunk will be loaded, which is not what we want (avoid cascading gen) ++ this.scheduleTask(chunkX, chunkZ, type, task); ++ return; ++ } + -+ if (current == null || !current.isLit() || !current.getChunkStatus().isAtLeastStatus(ChunkStatus.LIGHT)) { ++ if (!org.bukkit.Bukkit.isPrimaryThread()) { ++ this.playerChunkMap.mainInvokingExecutor.execute(() -> { ++ this.scheduleLightWorkTask(chunkX, chunkZ, type, task); ++ }); + return; + } + @@ -12565,7 +12576,7 @@ index 0b80569648c1df01aab52d0b8d47028cda925d86..ad584ba21c6e201b778f32cea6d7cc5b public void close() {} @Override -@@ -192,6 +369,15 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { +@@ -192,6 +376,15 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { public void a(BlockPosition blockposition) { BlockPosition blockposition1 = blockposition.immutableCopy(); @@ -12581,7 +12592,7 @@ index 0b80569648c1df01aab52d0b8d47028cda925d86..ad584ba21c6e201b778f32cea6d7cc5b this.a(blockposition.getX() >> 4, blockposition.getZ() >> 4, LightEngineThreaded.Update.POST_UPDATE, SystemUtils.a(() -> { super.a(blockposition1); }, () -> { -@@ -200,6 +386,11 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { +@@ -200,6 +393,11 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { } protected void a(ChunkCoordIntPair chunkcoordintpair) { @@ -12593,7 +12604,7 @@ index 0b80569648c1df01aab52d0b8d47028cda925d86..ad584ba21c6e201b778f32cea6d7cc5b this.a(chunkcoordintpair.x, chunkcoordintpair.z, () -> { return 0; }, LightEngineThreaded.Update.PRE_UPDATE, SystemUtils.a(() -> { -@@ -224,6 +415,14 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { +@@ -224,6 +422,14 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { @Override public void a(SectionPosition sectionposition, boolean flag) { @@ -12608,7 +12619,7 @@ index 0b80569648c1df01aab52d0b8d47028cda925d86..ad584ba21c6e201b778f32cea6d7cc5b this.a(sectionposition.a(), sectionposition.c(), () -> { return 0; }, LightEngineThreaded.Update.PRE_UPDATE, SystemUtils.a(() -> { -@@ -235,6 +434,11 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { +@@ -235,6 +441,11 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { @Override public void a(ChunkCoordIntPair chunkcoordintpair, boolean flag) { @@ -12620,7 +12631,7 @@ index 0b80569648c1df01aab52d0b8d47028cda925d86..ad584ba21c6e201b778f32cea6d7cc5b this.a(chunkcoordintpair.x, chunkcoordintpair.z, LightEngineThreaded.Update.PRE_UPDATE, SystemUtils.a(() -> { super.a(chunkcoordintpair, flag); }, () -> { -@@ -244,6 +448,11 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { +@@ -244,6 +455,11 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { @Override public void a(EnumSkyBlock enumskyblock, SectionPosition sectionposition, @Nullable NibbleArray nibblearray, boolean flag) { @@ -12632,7 +12643,7 @@ index 0b80569648c1df01aab52d0b8d47028cda925d86..ad584ba21c6e201b778f32cea6d7cc5b this.a(sectionposition.a(), sectionposition.c(), () -> { return 0; }, LightEngineThreaded.Update.PRE_UPDATE, SystemUtils.a(() -> { -@@ -253,6 +462,7 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { +@@ -253,6 +469,7 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { })); } @@ -12640,7 +12651,7 @@ index 0b80569648c1df01aab52d0b8d47028cda925d86..ad584ba21c6e201b778f32cea6d7cc5b private void a(int i, int j, LightEngineThreaded.Update lightenginethreaded_update, Runnable runnable) { this.a(i, j, this.d.c(ChunkCoordIntPair.pair(i, j)), lightenginethreaded_update, runnable); } -@@ -265,6 +475,11 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { +@@ -265,6 +482,11 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { @Override public void b(ChunkCoordIntPair chunkcoordintpair, boolean flag) { @@ -12652,7 +12663,7 @@ index 0b80569648c1df01aab52d0b8d47028cda925d86..ad584ba21c6e201b778f32cea6d7cc5b this.a(chunkcoordintpair.x, chunkcoordintpair.z, () -> { return 0; }, LightEngineThreaded.Update.PRE_UPDATE, SystemUtils.a(() -> { -@@ -277,6 +492,35 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { +@@ -277,6 +499,35 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { public CompletableFuture a(IChunkAccess ichunkaccess, boolean flag) { ChunkCoordIntPair chunkcoordintpair = ichunkaccess.getPos(); @@ -12688,7 +12699,7 @@ index 0b80569648c1df01aab52d0b8d47028cda925d86..ad584ba21c6e201b778f32cea6d7cc5b // Paper start //ichunkaccess.b(false); // Don't need to disable this long pair = chunkcoordintpair.pair(); -@@ -324,7 +568,7 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { +@@ -324,7 +575,7 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { } public void queueUpdate() { @@ -12697,7 +12708,7 @@ index 0b80569648c1df01aab52d0b8d47028cda925d86..ad584ba21c6e201b778f32cea6d7cc5b this.b.a((() -> { // Paper - decompile error this.b(); this.g.set(false); -@@ -338,17 +582,36 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { +@@ -338,17 +589,36 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { private final java.util.List pre = new java.util.ArrayList<>(); private final java.util.List post = new java.util.ArrayList<>(); private void b() { @@ -14043,7 +14054,7 @@ index 3c804c7b20a14ea6e510810e2be10c1cc89ff5c1..3738c51b5e673c439d88a7ef7f4614f3 return new TicketType<>(s, comparator, 0L); } diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 47fbb8df04b2b77e10314666e87eaef621cffb3b..58e61aa19d71011c40c69a691f5644b3e823ad68 100644 +index 47fbb8df04b2b77e10314666e87eaef621cffb3b..a42d3c6c227a74d691278a65a9c516f6507b6865 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -168,12 +168,13 @@ import org.bukkit.event.server.MapInitializeEvent; @@ -14786,11 +14797,11 @@ index 47fbb8df04b2b77e10314666e87eaef621cffb3b..58e61aa19d71011c40c69a691f5644b3 + } + chunk.a(entity); + // Tuinity end - gotta be careful here, sync load can teleport entity. - } ++ } + // Tuinity start + if (entity.inChunk && (oldRegionX != newRegionX || oldRegionZ != newRegionZ)) { + this.addNavigatorsIfPathingToRegion(entity); -+ } + } + // Tuinity end } @@ -15008,19 +15019,6 @@ index 47fbb8df04b2b77e10314666e87eaef621cffb3b..58e61aa19d71011c40c69a691f5644b3 this.tickingEntities = wasTicking; // Paper } -@@ -2072,8 +2708,11 @@ public class WorldServer extends World implements GeneratorAccessSeed { - Optional optional = VillagePlaceType.b(iblockdata); - Optional optional1 = VillagePlaceType.b(iblockdata1); - -+ // Paper start -+ // Tuinity - oh god not for each block set - if (!Objects.equals(optional, optional1)) { -- BlockPosition blockposition1 = blockposition.immutableCopy(); -+ BlockPosition blockposition1 = blockposition.immutableCopy(); // Tuinity - oh god not for each block set -+ // Paper end - - optional.ifPresent((villageplacetype) -> { - this.getMinecraftServer().execute(() -> { diff --git a/src/main/java/net/minecraft/server/network/LoginListener.java b/src/main/java/net/minecraft/server/network/LoginListener.java index c67b94840e4c967baebf6eb351df15f0e4ead4be..ed836462123efc6903e406fa926e55e1cedddb95 100644 --- a/src/main/java/net/minecraft/server/network/LoginListener.java @@ -15035,7 +15033,7 @@ index c67b94840e4c967baebf6eb351df15f0e4ead4be..ed836462123efc6903e406fa926e55e1 throw new IllegalStateException("Protocol error", cryptographyexception); } diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 9455cb9bc849a330e57fdc466fb51902631e22d8..53320d1d134305c0b37442dfca9931629a6d196d 100644 +index 8c9e97bb093c0e6297397edc71d72deebbcfbed9..e0c606bb6ecf23f2118a65775c05b437a09826d3 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -542,6 +542,12 @@ public class PlayerConnection implements PacketListenerPlayIn { @@ -15145,7 +15143,7 @@ index 9455cb9bc849a330e57fdc466fb51902631e22d8..53320d1d134305c0b37442dfca993162 } @Override -@@ -1219,7 +1263,7 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1224,7 +1268,7 @@ public class PlayerConnection implements PacketListenerPlayIn { } if (this.teleportPos != null) { @@ -15154,7 +15152,7 @@ index 9455cb9bc849a330e57fdc466fb51902631e22d8..53320d1d134305c0b37442dfca993162 this.A = this.e; this.a(this.teleportPos.x, this.teleportPos.y, this.teleportPos.z, this.player.yaw, this.player.pitch); } -@@ -1257,6 +1301,12 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1262,6 +1306,12 @@ public class PlayerConnection implements PacketListenerPlayIn { double currDeltaZ = toZ - prevZ; double d11 = Math.max(d7 * d7 + d8 * d8 + d9 * d9, (currDeltaX * currDeltaX + currDeltaY * currDeltaY + currDeltaZ * currDeltaZ) - 1); // Paper end - fix large move vectors killing the server @@ -15167,7 +15165,7 @@ index 9455cb9bc849a330e57fdc466fb51902631e22d8..53320d1d134305c0b37442dfca993162 if (this.player.isSleeping()) { if (d11 > 1.0D) { -@@ -1289,7 +1339,7 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1294,7 +1344,7 @@ public class PlayerConnection implements PacketListenerPlayIn { speed = player.abilities.walkSpeed * 10f; } // Paper start - Prevent moving into unloaded chunks @@ -15176,7 +15174,7 @@ index 9455cb9bc849a330e57fdc466fb51902631e22d8..53320d1d134305c0b37442dfca993162 this.internalTeleport(this.player.locX(), this.player.locY(), this.player.locZ(), this.player.yaw, this.player.pitch, Collections.emptySet()); return; } -@@ -1306,11 +1356,11 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1311,11 +1361,11 @@ public class PlayerConnection implements PacketListenerPlayIn { } } @@ -15192,7 +15190,7 @@ index 9455cb9bc849a330e57fdc466fb51902631e22d8..53320d1d134305c0b37442dfca993162 boolean flag = d8 > 0.0D; if (this.player.isOnGround() && !packetplayinflying.b() && flag) { -@@ -1345,6 +1395,7 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1350,6 +1400,7 @@ public class PlayerConnection implements PacketListenerPlayIn { } this.player.move(EnumMoveType.PLAYER, new Vec3D(d7, d8, d9)); @@ -15200,7 +15198,7 @@ index 9455cb9bc849a330e57fdc466fb51902631e22d8..53320d1d134305c0b37442dfca993162 this.player.setOnGround(packetplayinflying.b()); // CraftBukkit - SPIGOT-5810, SPIGOT-5835: reset by this.player.move // Paper start - prevent position desync if (this.teleportPos != null) { -@@ -1364,12 +1415,23 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1369,12 +1420,23 @@ public class PlayerConnection implements PacketListenerPlayIn { boolean flag1 = false; if (!this.player.H() && d11 > org.spigotmc.SpigotConfig.movedWronglyThreshold && !this.player.isSleeping() && !this.player.playerInteractManager.isCreative() && this.player.playerInteractManager.getGameMode() != EnumGamemode.SPECTATOR) { // Spigot @@ -15226,7 +15224,7 @@ index 9455cb9bc849a330e57fdc466fb51902631e22d8..53320d1d134305c0b37442dfca993162 this.a(d0, d1, d2, f, f1); } else { // CraftBukkit start - fire PlayerMoveEvent -@@ -1456,6 +1518,26 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1461,6 +1523,26 @@ public class PlayerConnection implements PacketListenerPlayIn { } } @@ -18727,7 +18725,7 @@ index 0fec15e141051863dbf51a2b3e1ace5028cd2fc1..d7757e60402be9939fc2d90ad79b2bb7 public String toString() { diff --git a/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java b/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java -index 7bfac4e852c4a6697435647dab173913df6034e9..c90f530b9cf556da950d8f61156159941815bd99 100644 +index 7bfac4e852c4a6697435647dab173913df6034e9..1658f0bb379653c205d08c771a7c23242d50f66d 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java @@ -54,7 +54,7 @@ public class ProtoChunk implements IChunkAccess { @@ -18739,7 +18737,7 @@ index 7bfac4e852c4a6697435647dab173913df6034e9..c90f530b9cf556da950d8f6115615994 private final ShortList[] m; private final Map, StructureStart> n; private final Map, LongSet> o; -@@ -66,6 +66,73 @@ public class ProtoChunk implements IChunkAccess { +@@ -66,6 +66,53 @@ public class ProtoChunk implements IChunkAccess { private volatile boolean u; final World world; // Paper - Anti-Xray - Add world // Paper - private -> default @@ -18788,55 +18786,17 @@ index 7bfac4e852c4a6697435647dab173913df6034e9..c90f530b9cf556da950d8f6115615994 + public void setBlockEmptinessMap(boolean[] emptinessMap) { + this.blockEmptinessMap = emptinessMap; + } -+ -+ private void checkLightSourceLock() { -+ if (!this.lightSourcesLocked.get()) { -+ return; -+ } -+ -+ IllegalStateException thr = new IllegalStateException("Concurrent access of light sources by thread '" + Thread.currentThread().getName() + "'"); -+ LOGGER.fatal(thr.getMessage(), thr); -+ throw thr; -+ } -+ -+ public void lockLightSources() { -+ if (this.lightSourcesLocked.getAndSet(true)) { -+ throw new IllegalStateException("Light sources is already locked!"); -+ } -+ } -+ -+ public void releaseLightSources() { -+ this.lightSourcesLocked.set(false); -+ } + // Tuinity end - rewrite light engine + // Paper start - Anti-Xray - Add world @Deprecated public ProtoChunk(ChunkCoordIntPair chunkcoordintpair, ChunkConverter chunkconverter) { this(chunkcoordintpair, chunkconverter, null); } // Notice for updates: Please make sure this constructor isn't used anywhere public ProtoChunk(ChunkCoordIntPair chunkcoordintpair, ChunkConverter chunkconverter, World world) { -@@ -170,7 +237,9 @@ public class ProtoChunk implements IChunkAccess { - } - - public void k(BlockPosition blockposition) { -+ this.checkLightSourceLock(); // Tuinity - make sure we don't access this concurrently - this.l.add(blockposition.immutableCopy()); -+ this.checkLightSourceLock(); // Tuinity - make sure we don't access this concurrently - } - - @Nullable -@@ -185,26 +254,25 @@ public class ProtoChunk implements IChunkAccess { - return iblockdata; - } else { - if (iblockdata.f() > 0) { -+ this.checkLightSourceLock(); // Tuinity - make sure we don't access this concurrently - this.l.add(new BlockPosition((i & 15) + this.getPos().d(), j, (k & 15) + this.getPos().e())); -+ this.checkLightSourceLock(); // Tuinity - make sure we don't access this concurrently - } - +@@ -191,20 +238,17 @@ public class ProtoChunk implements IChunkAccess { ChunkSection chunksection = this.a(j >> 4); IBlockData iblockdata1 = chunksection.setType(i & 15, j & 15, k & 15, iblockdata); - if (this.g.b(ChunkStatus.FEATURES) && iblockdata != iblockdata1 && (iblockdata.b((IBlockAccess) this, blockposition) != iblockdata1.b((IBlockAccess) this, blockposition) || iblockdata.f() != iblockdata1.f() || iblockdata.e() || iblockdata1.e())) { -+ if ((com.tuinity.tuinity.config.TuinityConfig.useNewLightEngine ? (this.g.b(ChunkStatus.LIGHT) && this.isLit()) : (this.g.b(ChunkStatus.FEATURES))) && iblockdata != iblockdata1 && (iblockdata.b((IBlockAccess) this, blockposition) != iblockdata1.b((IBlockAccess) this, blockposition) || iblockdata.f() != iblockdata1.f() || iblockdata.e() || iblockdata1.e())) { // Tuinity - move block updates to only happen after lighting occurs ++ if ((com.tuinity.tuinity.config.TuinityConfig.useNewLightEngine ? (this.g.b(ChunkStatus.LIGHT)) : (this.g.b(ChunkStatus.FEATURES))) && iblockdata != iblockdata1 && (iblockdata.b((IBlockAccess) this, blockposition) != iblockdata1.b((IBlockAccess) this, blockposition) || iblockdata.f() != iblockdata1.f() || iblockdata.e() || iblockdata1.e())) { // Tuinity - move block updates to only happen after lighting occurs (or during, thanks chunk system) LightEngine lightengine = this.e(); lightengine.a(blockposition); @@ -18846,17 +18806,17 @@ index 7bfac4e852c4a6697435647dab173913df6034e9..c90f530b9cf556da950d8f6115615994 + HeightMap.Type[] enumset = this.getChunkStatus().heightMaps; // Tuinity - reduce iterator creation EnumSet enumset1 = null; - Iterator iterator = enumset.iterator(); +- +- HeightMap.Type heightmap_type; + // Tuinity - reduce iterator creation -- HeightMap.Type heightmap_type; -- - while (iterator.hasNext()) { - heightmap_type = (HeightMap.Type) iterator.next(); + for (HeightMap.Type heightmap_type : enumset) { // Tuinity - reduce iterator creation HeightMap heightmap = (HeightMap) this.f.get(heightmap_type); if (heightmap == null) { -@@ -220,10 +288,9 @@ public class ProtoChunk implements IChunkAccess { +@@ -220,10 +264,9 @@ public class ProtoChunk implements IChunkAccess { HeightMap.a(this, enumset1); } diff --git a/patches/server/0002-Airplane-Server-Changes.patch b/patches/server/0002-Airplane-Server-Changes.patch index 9e81034d36..5a267e8f33 100644 --- a/patches/server/0002-Airplane-Server-Changes.patch +++ b/patches/server/0002-Airplane-Server-Changes.patch @@ -1651,7 +1651,7 @@ index fa7a78549a9bb92b93c305dc16f43a9ace7f6f43..858bd62d2a17c15ee573c5cd607a876d this.setPVP(dedicatedserverproperties.pvp); this.setAllowFlight(dedicatedserverproperties.allowFlight); diff --git a/src/main/java/net/minecraft/server/level/ChunkMapDistance.java b/src/main/java/net/minecraft/server/level/ChunkMapDistance.java -index a5fc023312c99e591fc269999c28a766a46f8849..fb4d006f86229fd093f1a9ea8cab2add0a4cacfa 100644 +index 58e14c174cdf76cdea861fd3d4d1195fa27f888a..fedd0482bd4ff8cc5857a71f509700df4490b8fb 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMapDistance.java +++ b/src/main/java/net/minecraft/server/level/ChunkMapDistance.java @@ -215,7 +215,7 @@ public abstract class ChunkMapDistance { @@ -1783,7 +1783,7 @@ index b28995ecfd7f45e6b6197be96c418aa0d05d3383..914c7a1b18151f29183cfe9474313ce1 return this.a(i); } diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 58e61aa19d71011c40c69a691f5644b3e823ad68..51bb2502e4efb052f55de6eabce07f59e936c9d9 100644 +index a42d3c6c227a74d691278a65a9c516f6507b6865..136faf61770011a830cc58259d1dad11830ca808 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -1107,7 +1107,28 @@ public class WorldServer extends World implements GeneratorAccessSeed { diff --git a/patches/server/0009-AFK-API.patch b/patches/server/0009-AFK-API.patch index b6d4d855b2..e670d959af 100644 --- a/patches/server/0009-AFK-API.patch +++ b/patches/server/0009-AFK-API.patch @@ -64,7 +64,7 @@ index fb61b6ac167b34486282a24e598020fb96081f28..c42a2813b40152079786dde33231d945 return this.serverStatisticManager; } diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 51bb2502e4efb052f55de6eabce07f59e936c9d9..4f1b055dfe38f6a48763f75c1795dcd6dae9d378 100644 +index 136faf61770011a830cc58259d1dad11830ca808..5cfab6b49d7b1f13fcf90a175c758f40bccea18a 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -1002,7 +1002,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { @@ -86,7 +86,7 @@ index 51bb2502e4efb052f55de6eabce07f59e936c9d9..4f1b055dfe38f6a48763f75c1795dcd6 } else if (entityplayer.isSleeping()) { ++j; diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 53320d1d134305c0b37442dfca9931629a6d196d..1f4e45f6e70032bfeeafe30d038e14e052e6ad9d 100644 +index e0c606bb6ecf23f2118a65775c05b437a09826d3..85964e7fe2cc96ad3b967dadd9ee5d095ee60e2a 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -399,6 +399,12 @@ public class PlayerConnection implements PacketListenerPlayIn { @@ -111,7 +111,7 @@ index 53320d1d134305c0b37442dfca9931629a6d196d..1f4e45f6e70032bfeeafe30d038e14e0 // Skip the first time we do this if (true) { // Spigot - don't skip any move events Location oldTo = to.clone(); -@@ -1416,7 +1424,7 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1421,7 +1429,7 @@ public class PlayerConnection implements PacketListenerPlayIn { if (!this.player.H() && d11 > org.spigotmc.SpigotConfig.movedWronglyThreshold && !this.player.isSleeping() && !this.player.playerInteractManager.isCreative() && this.player.playerInteractManager.getGameMode() != EnumGamemode.SPECTATOR) { // Spigot flag1 = true; // Tuinity - diff on change, this should be moved wrongly @@ -120,7 +120,7 @@ index 53320d1d134305c0b37442dfca9931629a6d196d..1f4e45f6e70032bfeeafe30d038e14e0 } this.player.setLocation(d4, d5, d6, f, f1); -@@ -1466,6 +1474,8 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1471,6 +1479,8 @@ public class PlayerConnection implements PacketListenerPlayIn { this.lastYaw = to.getYaw(); this.lastPitch = to.getPitch(); diff --git a/patches/server/0017-Player-invulnerabilities.patch b/patches/server/0017-Player-invulnerabilities.patch index 27843a7f6b..0fe9709652 100644 --- a/patches/server/0017-Player-invulnerabilities.patch +++ b/patches/server/0017-Player-invulnerabilities.patch @@ -67,10 +67,10 @@ index c42a2813b40152079786dde33231d945f3144580..6e3a3a50e01c41b40451bce05015714b public Scoreboard getScoreboard() { return getBukkitEntity().getScoreboard().getHandle(); diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 1f4e45f6e70032bfeeafe30d038e14e052e6ad9d..568fea41d12f2817b09768ff3b03f76930ad676c 100644 +index 85964e7fe2cc96ad3b967dadd9ee5d095ee60e2a..71ab9f136144aa7b06494144671b41e2af85de48 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java -@@ -1896,6 +1896,7 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1901,6 +1901,7 @@ public class PlayerConnection implements PacketListenerPlayIn { PlayerConnectionUtils.ensureMainThread(packetplayinresourcepackstatus, this, this.player.getWorldServer()); // Paper start PlayerResourcePackStatusEvent.Status packStatus = PlayerResourcePackStatusEvent.Status.values()[packetplayinresourcepackstatus.status.ordinal()]; diff --git a/patches/server/0020-Alternative-Keepalive-Handling.patch b/patches/server/0020-Alternative-Keepalive-Handling.patch index 82cbc12390..f288707095 100644 --- a/patches/server/0020-Alternative-Keepalive-Handling.patch +++ b/patches/server/0020-Alternative-Keepalive-Handling.patch @@ -17,7 +17,7 @@ index b4c37287362907b8507d156b978ba5b9d961bb7b..9e6e6636539702507abb78515e002819 return this.a; } diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 568fea41d12f2817b09768ff3b03f76930ad676c..54327914233580282ee86e46712d1ba0d176bcc4 100644 +index 71ab9f136144aa7b06494144671b41e2af85de48..a0a476d55afdf5ed9850368e99ab25af019075a8 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -233,6 +233,7 @@ public class PlayerConnection implements PacketListenerPlayIn { @@ -50,7 +50,7 @@ index 568fea41d12f2817b09768ff3b03f76930ad676c..54327914233580282ee86e46712d1ba0 if (this.isPendingPing()) { if (!this.processedDisconnect && elapsedTime >= KEEPALIVE_LIMIT) { // check keepalive limit, don't fire if already disconnected PlayerConnection.LOGGER.warn("{} was kicked due to keepalive timeout!", this.player.getName()); // more info -@@ -3079,6 +3095,16 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -3084,6 +3100,16 @@ public class PlayerConnection implements PacketListenerPlayIn { @Override public void a(PacketPlayInKeepAlive packetplayinkeepalive) { diff --git a/patches/server/0028-Zombie-horse-naturally-spawn.patch b/patches/server/0028-Zombie-horse-naturally-spawn.patch index eff0f785f3..6218a2f54b 100644 --- a/patches/server/0028-Zombie-horse-naturally-spawn.patch +++ b/patches/server/0028-Zombie-horse-naturally-spawn.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Zombie horse naturally spawn diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 4f1b055dfe38f6a48763f75c1795dcd6dae9d378..06517693aacc22c7507a09c15739e0779dbb82b0 100644 +index 5cfab6b49d7b1f13fcf90a175c758f40bccea18a..da73ce172419224e8737e37b91de1d9bb119cbd0 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -96,6 +96,7 @@ import net.minecraft.world.entity.ai.village.poi.VillagePlace; diff --git a/patches/server/0046-Signs-allow-color-codes.patch b/patches/server/0046-Signs-allow-color-codes.patch index 7d01b04800..2409733418 100644 --- a/patches/server/0046-Signs-allow-color-codes.patch +++ b/patches/server/0046-Signs-allow-color-codes.patch @@ -17,10 +17,10 @@ index 6e3a3a50e01c41b40451bce05015714b5a7fe1e3..43900bb788f4baef420de0782c77d74d this.playerConnection.sendPacket(new PacketPlayOutOpenSignEditor(tileentitysign.getPosition())); } diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 54327914233580282ee86e46712d1ba0d176bcc4..6451d5a6d491959ea537d11d0dde077578fed381 100644 +index a0a476d55afdf5ed9850368e99ab25af019075a8..3559f52e2fa30a8a7600334ece981fe34896bd68 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java -@@ -3073,6 +3073,15 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -3078,6 +3078,15 @@ public class PlayerConnection implements PacketListenerPlayIn { } } // Paper end diff --git a/patches/server/0084-Allow-color-codes-in-books.patch b/patches/server/0084-Allow-color-codes-in-books.patch index e3028bf3cc..1b4f978ded 100644 --- a/patches/server/0084-Allow-color-codes-in-books.patch +++ b/patches/server/0084-Allow-color-codes-in-books.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow color codes in books diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 6451d5a6d491959ea537d11d0dde077578fed381..e63e7f30db64d30840037d996c153822ce80fbbd 100644 +index 3559f52e2fa30a8a7600334ece981fe34896bd68..9998f20c9cc9857612f94f91d27e77da9c632323 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java -@@ -1211,7 +1211,8 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1216,7 +1216,8 @@ public class PlayerConnection implements PacketListenerPlayIn { if (itemstack.getItem() == Items.WRITABLE_BOOK) { NBTTagList nbttaglist = new NBTTagList(); @@ -18,7 +18,7 @@ index 6451d5a6d491959ea537d11d0dde077578fed381..e63e7f30db64d30840037d996c153822 ItemStack old = itemstack.cloneItemStack(); // CraftBukkit itemstack.a("pages", (NBTBase) nbttaglist); this.player.inventory.setItem(i, CraftEventFactory.handleEditBookEvent(player, i, old, itemstack)); // CraftBukkit // Paper - Don't ignore result (see other callsite for handleEditBookEvent) -@@ -1229,13 +1230,14 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1234,13 +1235,14 @@ public class PlayerConnection implements PacketListenerPlayIn { itemstack1.setTag(nbttagcompound.clone()); } @@ -35,7 +35,7 @@ index 6451d5a6d491959ea537d11d0dde077578fed381..e63e7f30db64d30840037d996c153822 ChatComponentText chatcomponenttext = new ChatComponentText(s1); String s2 = IChatBaseComponent.ChatSerializer.a((IChatBaseComponent) chatcomponenttext); -@@ -1247,6 +1249,16 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1252,6 +1254,16 @@ public class PlayerConnection implements PacketListenerPlayIn { } } diff --git a/patches/server/0085-Entity-lifespan.patch b/patches/server/0085-Entity-lifespan.patch index 573138967a..1b59ab5443 100644 --- a/patches/server/0085-Entity-lifespan.patch +++ b/patches/server/0085-Entity-lifespan.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entity lifespan diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index e63e7f30db64d30840037d996c153822ce80fbbd..1c7579a1426c831484fe095d13169c2c47906843 100644 +index 9998f20c9cc9857612f94f91d27e77da9c632323..4e43cd877c45a014add62547a4dbfadbd09082d2 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java -@@ -2458,6 +2458,7 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -2463,6 +2463,7 @@ public class PlayerConnection implements PacketListenerPlayIn { boolean triggerLeashUpdate = itemInHand != null && itemInHand.getItem() == Items.LEAD && entity instanceof EntityInsentient; Item origItem = this.player.inventory.getItemInHand() == null ? null : this.player.inventory.getItemInHand().getItem(); PlayerInteractEntityEvent event; diff --git a/patches/server/0099-Add-no-random-tick-block-list.patch b/patches/server/0099-Add-no-random-tick-block-list.patch index 2949a5c51e..e84f7ed084 100644 --- a/patches/server/0099-Add-no-random-tick-block-list.patch +++ b/patches/server/0099-Add-no-random-tick-block-list.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add no-random-tick block list diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 06517693aacc22c7507a09c15739e0779dbb82b0..9fce5ff2a7980a02510fdc5d1e45d39336d1542a 100644 +index da73ce172419224e8737e37b91de1d9bb119cbd0..6da14a9190a0c863e620d6a065bcd8d86456da53 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -532,14 +532,14 @@ public class WorldServer extends World implements GeneratorAccessSeed { diff --git a/patches/server/0103-Ridables.patch b/patches/server/0103-Ridables.patch index abd08850a7..f751eb0ce8 100644 --- a/patches/server/0103-Ridables.patch +++ b/patches/server/0103-Ridables.patch @@ -88,7 +88,7 @@ index da708df0dc50ea02441f9db2bfd52f04d9a8e3da..867a6b7fe1788b20f8d0f4f1e42dd52b public void playerTick() { diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 9fce5ff2a7980a02510fdc5d1e45d39336d1542a..535cd9faeeb8072b395bff7a3f7ca095afb02df4 100644 +index 6da14a9190a0c863e620d6a065bcd8d86456da53..bf08a625d169aae69115a9385dfd6dfb444ce03d 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -216,6 +216,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { @@ -100,10 +100,10 @@ index 9fce5ff2a7980a02510fdc5d1e45d39336d1542a..535cd9faeeb8072b395bff7a3f7ca095 return new Throwable(entity + " Added to world at " + new java.util.Date()); } diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 1c7579a1426c831484fe095d13169c2c47906843..59eedbe9d249fd09673393651a8be76232ab16e9 100644 +index 4e43cd877c45a014add62547a4dbfadbd09082d2..bf6c040cfe68f96fa25511967091677abdaf4f0e 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java -@@ -2467,6 +2467,8 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -2472,6 +2472,8 @@ public class PlayerConnection implements PacketListenerPlayIn { } this.server.getPluginManager().callEvent(event); diff --git a/patches/server/0109-Allow-toggling-special-MobSpawners-per-world.patch b/patches/server/0109-Allow-toggling-special-MobSpawners-per-world.patch index 1f48edcff6..2e4315b51e 100644 --- a/patches/server/0109-Allow-toggling-special-MobSpawners-per-world.patch +++ b/patches/server/0109-Allow-toggling-special-MobSpawners-per-world.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Allow toggling special MobSpawners per world In vanilla, these are all hardcoded on for world type 0 (overworld) and hardcoded off for every other world type. Default config behaviour matches this. diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 535cd9faeeb8072b395bff7a3f7ca095afb02df4..64feabfb860ac29a7f7692bcc9972369dbdc2e02 100644 +index bf08a625d169aae69115a9385dfd6dfb444ce03d..ed0e5282a0718768ed2e7ab7f56b1dfa82403335 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -92,6 +92,7 @@ import net.minecraft.world.entity.EnumCreatureType; diff --git a/patches/server/0118-Configurable-daylight-cycle.patch b/patches/server/0118-Configurable-daylight-cycle.patch index 0587f8178f..9806e2c4d8 100644 --- a/patches/server/0118-Configurable-daylight-cycle.patch +++ b/patches/server/0118-Configurable-daylight-cycle.patch @@ -18,7 +18,7 @@ index 3086ee023685781d94e2fb99fc8dff5264f01165..74c1047305cac5673e274096709c757e public PacketPlayOutUpdateTime() {} diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 64feabfb860ac29a7f7692bcc9972369dbdc2e02..028911ebe843751080564d90e96306524e5a2e21 100644 +index ed0e5282a0718768ed2e7ab7f56b1dfa82403335..5fe1665275cadf276a1560f7b13765e7f191ee61 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -64,6 +64,7 @@ import net.minecraft.network.protocol.game.PacketPlayOutExplosion; diff --git a/patches/server/0155-PlayerBookTooLargeEvent.patch b/patches/server/0155-PlayerBookTooLargeEvent.patch index aa684ec4da..d49560e556 100644 --- a/patches/server/0155-PlayerBookTooLargeEvent.patch +++ b/patches/server/0155-PlayerBookTooLargeEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] PlayerBookTooLargeEvent diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 59eedbe9d249fd09673393651a8be76232ab16e9..f55485094a5b676d8051d1f8d3151340bf176b33 100644 +index bf6c040cfe68f96fa25511967091677abdaf4f0e..fbfb3eba79ded3720edf93b3d1c18cbc02c086dd 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java -@@ -1123,6 +1123,7 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1128,6 +1128,7 @@ public class PlayerConnection implements PacketListenerPlayIn { NBTTagList pageList = testStack.getTag().getList("pages", 8); if (pageList.size() > 100) { PlayerConnection.LOGGER.warn(this.player.getName() + " tried to send a book with too many pages"); @@ -16,7 +16,7 @@ index 59eedbe9d249fd09673393651a8be76232ab16e9..f55485094a5b676d8051d1f8d3151340 minecraftServer.scheduleOnMain(() -> this.disconnect("Book too large!")); return; } -@@ -1135,6 +1136,7 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1140,6 +1141,7 @@ public class PlayerConnection implements PacketListenerPlayIn { int byteLength = testString.getBytes(java.nio.charset.StandardCharsets.UTF_8).length; if (byteLength > 256 * 4) { PlayerConnection.LOGGER.warn(this.player.getName() + " tried to send a book with with a page too large!"); @@ -24,7 +24,7 @@ index 59eedbe9d249fd09673393651a8be76232ab16e9..f55485094a5b676d8051d1f8d3151340 minecraftServer.scheduleOnMain(() -> this.disconnect("Book too large!")); return; } -@@ -1158,6 +1160,7 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1163,6 +1165,7 @@ public class PlayerConnection implements PacketListenerPlayIn { if (byteTotal > byteAllowed) { PlayerConnection.LOGGER.warn(this.player.getName() + " tried to send too large of a book. Book Size: " + byteTotal + " - Allowed: "+ byteAllowed + " - Pages: " + pageList.size()); diff --git a/patches/server/0173-Dont-run-with-scissors.patch b/patches/server/0173-Dont-run-with-scissors.patch index bcf1a87050..370a0f7961 100644 --- a/patches/server/0173-Dont-run-with-scissors.patch +++ b/patches/server/0173-Dont-run-with-scissors.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Dont run with scissors! diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index f55485094a5b676d8051d1f8d3151340bf176b33..03a61aa91191b44284e9b4d02f2c57eaf2de7105 100644 +index fbfb3eba79ded3720edf93b3d1c18cbc02c086dd..0bed1f132200876122f92f0ca539e53afa222c14 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java -@@ -1547,6 +1547,12 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1552,6 +1552,12 @@ public class PlayerConnection implements PacketListenerPlayIn { this.player.fallDistance = 0.0F; } diff --git a/patches/server/0186-Config-for-skipping-night.patch b/patches/server/0186-Config-for-skipping-night.patch index 432b2584d1..27790da12f 100644 --- a/patches/server/0186-Config-for-skipping-night.patch +++ b/patches/server/0186-Config-for-skipping-night.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config for skipping night diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 028911ebe843751080564d90e96306524e5a2e21..f84066233f551be145a7db2694b3c7cb0c918128 100644 +index 5fe1665275cadf276a1560f7b13765e7f191ee61..01d6691ec3284ac0d29025b1a67743f9845bf74b 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -1028,7 +1028,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { From 90339c5ae3b1a201ec1c0a120db771fd6d81715b Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Sun, 9 May 2021 17:46:42 -0500 Subject: [PATCH 21/40] Add missing netherite from Material#isArmor --- patches/api/0019-ItemStack-convenience-methods.patch | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/patches/api/0019-ItemStack-convenience-methods.patch b/patches/api/0019-ItemStack-convenience-methods.patch index c29a2c3609..595c55bee3 100644 --- a/patches/api/0019-ItemStack-convenience-methods.patch +++ b/patches/api/0019-ItemStack-convenience-methods.patch @@ -5,10 +5,10 @@ Subject: [PATCH] ItemStack convenience methods diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java -index 9b1c9e60dba9ea3ef8d8e164f13dd76daf57db8e..5b41f1016ed2d5ace2b47d3dd398314230af84b7 100644 +index 9b1c9e60dba9ea3ef8d8e164f13dd76daf57db8e..b04e9de7183f00a9a47c1fce26895c83c8c0cfd8 100644 --- a/src/main/java/org/bukkit/Material.java +++ b/src/main/java/org/bukkit/Material.java -@@ -8718,4 +8718,36 @@ public enum Material implements Keyed { +@@ -8718,4 +8718,40 @@ public enum Material implements Keyed { // } } @@ -37,6 +37,10 @@ index 9b1c9e60dba9ea3ef8d8e164f13dd76daf57db8e..5b41f1016ed2d5ace2b47d3dd3983142 + case DIAMOND_CHESTPLATE: + case DIAMOND_HELMET: + case DIAMOND_LEGGINGS: ++ case NETHERITE_BOOTS: ++ case NETHERITE_CHESTPLATE: ++ case NETHERITE_HELMET: ++ case NETHERITE_LEGGINGS: + case TURTLE_HELMET: + return true; + default: From a80e5b60e1166225813ebe25bd95e2f20fb0813b Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Sun, 9 May 2021 17:57:07 -0500 Subject: [PATCH 22/40] Dont create item meta when checking if meta properties exist --- .../0019-ItemStack-convenience-methods.patch | 33 +++++++++---------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/patches/api/0019-ItemStack-convenience-methods.patch b/patches/api/0019-ItemStack-convenience-methods.patch index 595c55bee3..ea63eb4a96 100644 --- a/patches/api/0019-ItemStack-convenience-methods.patch +++ b/patches/api/0019-ItemStack-convenience-methods.patch @@ -50,7 +50,7 @@ index 9b1c9e60dba9ea3ef8d8e164f13dd76daf57db8e..b04e9de7183f00a9a47c1fce26895c83 + // Purpur end } diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java -index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670e52ba684 100644 +index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..9154ad938505a8ade190a78574eb49348525fd6a 100644 --- a/src/main/java/org/bukkit/inventory/ItemStack.java +++ b/src/main/java/org/bukkit/inventory/ItemStack.java @@ -17,6 +17,18 @@ import org.bukkit.inventory.meta.ItemMeta; @@ -72,7 +72,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670 /** * Represents a stack of items. -@@ -843,4 +855,627 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, net.kyor +@@ -843,4 +855,626 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, net.kyor return itemMeta != null && itemMeta.hasItemFlag(flag); } // Paper end @@ -108,7 +108,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670 + * @return true if this has a display name + */ + public boolean hasDisplayName() { -+ return getItemMeta().hasDisplayName(); ++ return hasItemMeta() && getItemMeta().hasDisplayName(); + } + + /** @@ -141,7 +141,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670 + * @return true if this has a localized name + */ + public boolean hasLocalizedName() { -+ return getItemMeta().hasLocalizedName(); ++ return hasItemMeta() && getItemMeta().hasLocalizedName(); + } + + /** @@ -150,7 +150,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670 + * @return true if this has lore + */ + public boolean hasLore() { -+ return getItemMeta().hasLore(); ++ return hasItemMeta() && getItemMeta().hasLore(); + } + + /** @@ -160,7 +160,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670 + * @return true if this enchantment exists for this meta + */ + public boolean hasEnchant(@NotNull Enchantment ench) { -+ return getItemMeta().hasEnchant(ench); ++ return hasItemMeta() && getItemMeta().hasEnchant(ench); + } + + /** @@ -221,7 +221,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670 + * @return true if an enchantment exists on this meta + */ + public boolean hasEnchants() { -+ return getItemMeta().hasEnchants(); ++ return hasItemMeta() && getItemMeta().hasEnchants(); + } + + /** @@ -232,7 +232,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670 + * @return true if the enchantment conflicts, false otherwise + */ + public boolean hasConflictingEnchant(@NotNull Enchantment ench) { -+ return getItemMeta().hasConflictingEnchant(ench); ++ return hasItemMeta() && getItemMeta().hasConflictingEnchant(ench); + } + + /** @@ -273,7 +273,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670 + * @return true if this has custom model data + */ + public boolean hasCustomModelData() { -+ return getItemMeta().hasCustomModelData(); ++ return hasItemMeta() && getItemMeta().hasCustomModelData(); + } + + /** @@ -282,7 +282,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670 + * @return whether block data is already attached + */ + public boolean hasBlockData() { -+ return ((BlockDataMeta) getItemMeta()).hasBlockData(); ++ return hasItemMeta() && ((BlockDataMeta) getItemMeta()).hasBlockData(); + } + + /** @@ -339,7 +339,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670 + * @return true if this has a repair penalty + */ + public boolean hasRepairCost() { -+ return ((Repairable) getItemMeta()).hasRepairCost(); ++ return hasItemMeta() && ((Repairable) getItemMeta()).hasRepairCost(); + } + + /** @@ -349,7 +349,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670 + * @return true if the unbreakable tag is true + */ + public boolean isUnbreakable() { -+ return getItemMeta().isUnbreakable(); ++ return hasItemMeta() && getItemMeta().isUnbreakable(); + } + + /** @@ -369,7 +369,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670 + * @return true if any AttributeModifiers exist + */ + public boolean hasAttributeModifiers() { -+ return getItemMeta().hasAttributeModifiers(); ++ return hasItemMeta() && getItemMeta().hasAttributeModifiers(); + } + + /** @@ -533,7 +533,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670 + * @return true if this has damage + */ + public boolean hasDamage() { -+ return ((Damageable) getItemMeta()).hasDamage(); ++ return hasItemMeta() && ((Damageable) getItemMeta()).hasDamage(); + } + + /** @@ -605,7 +605,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670 + * @return true if this item has placeable keys + */ + public boolean hasPlaceableKeys() { -+ return getItemMeta().hasPlaceableKeys(); ++ return hasItemMeta() && getItemMeta().hasPlaceableKeys(); + } + + /** @@ -614,7 +614,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670 + * @return true if this item has destroyable keys + */ + public boolean hasDestroyableKeys() { -+ return getItemMeta().hasDestroyableKeys(); ++ return hasItemMeta() && getItemMeta().hasDestroyableKeys(); + } + + /** @@ -697,6 +697,5 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670 + } + return random.nextInt(unbreaking + 1) > 0; + } -+ + // Purpur end } From f5c3dae3d54fcf839bcc34647693d958dc8301dd Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Sun, 9 May 2021 18:14:49 -0500 Subject: [PATCH 23/40] Updated Upstream (Paper) Upstream has released updates that appear to apply and compile correctly Paper Changes: aeb6e7dd2 Updated Upstream (Bukkit/CraftBukkit/Spigot) (#5601) b0a4f353b fix cancelling block falling causing client desync (fixes #5386) (#5419) --- Paper | 2 +- patches/api/0001-Tuinity-API-Changes.patch | 4 +- patches/api/0008-AFK-API.patch | 4 +- .../api/0017-Player-invulnerabilities.patch | 4 +- ...oc-warnings-missing-param-and-return.patch | 6 +- ...on-change-for-adventure-deprecations.patch | 4 +- .../server/0001-Tuinity-Server-Changes.patch | 123 ++---------------- .../server/0002-Airplane-Server-Changes.patch | 6 +- patches/server/0009-AFK-API.patch | 6 +- .../0017-Player-invulnerabilities.patch | 4 +- ...19-Configurable-villager-brain-ticks.patch | 2 +- .../0028-Zombie-horse-naturally-spawn.patch | 2 +- ...0062-Villagers-follow-emerald-blocks.patch | 2 +- .../0063-Allow-leashing-villagers.patch | 2 +- ...urable-search-radius-for-villagers-t.patch | 4 +- .../0091-Configurable-villager-breeding.patch | 2 +- .../0099-Add-no-random-tick-block-list.patch | 4 +- patches/server/0103-Ridables.patch | 24 ++-- ...ing-obsidian-valid-for-portal-frames.patch | 6 +- ...ggling-special-MobSpawners-per-world.patch | 2 +- ...e-config-options-per-projectile-type.patch | 28 ++-- .../0118-Configurable-daylight-cycle.patch | 2 +- ...ows-should-not-reset-despawn-counter.patch | 4 +- ...-check-to-EntityDamagedByEntityEvent.patch | 4 +- .../0144-Lobotomize-stuck-villagers.patch | 2 +- ...Villager-Clerics-to-farm-Nether-Wart.patch | 4 +- ...d-out-and-optimise-player-list-ticks.patch | 2 +- ...-Configurable-entity-base-attributes.patch | 2 +- ...0161-Add-EntityTeleportHinderedEvent.patch | 4 +- .../0186-Config-for-skipping-night.patch | 2 +- ...0187-Add-config-for-villager-trading.patch | 2 +- 31 files changed, 83 insertions(+), 186 deletions(-) diff --git a/Paper b/Paper index 8ed45920cf..aeb6e7dd25 160000 --- a/Paper +++ b/Paper @@ -1 +1 @@ -Subproject commit 8ed45920cfaaf0fd971117021b86b04c347c4787 +Subproject commit aeb6e7dd25439d23f11f956215927bcbf03a8e87 diff --git a/patches/api/0001-Tuinity-API-Changes.patch b/patches/api/0001-Tuinity-API-Changes.patch index 06755eb1b9..6eaa6ee77d 100644 --- a/patches/api/0001-Tuinity-API-Changes.patch +++ b/patches/api/0001-Tuinity-API-Changes.patch @@ -248,10 +248,10 @@ index a1496fe00a2d5ba6c1af054d4327f868b2cd7344..6ca9aa2c438810b5537dc196b3fd89b0 // Spigot start diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 2ea531eaef8c455fdd503f0c0258813fe9136085..a84ea92d02d34cd48174152e0391f1af6c6b5def 100644 +index 34b51466ffb281b05f531b3f7deda245ae7fd96a..4a4f041c6acfd335871fa67d6d1c7f723229c8a7 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -1768,23 +1768,63 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1783,23 +1783,63 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * Gets the view distance for this player * * @return the player's view distance diff --git a/patches/api/0008-AFK-API.patch b/patches/api/0008-AFK-API.patch index 4bca6d769d..8e684afca1 100644 --- a/patches/api/0008-AFK-API.patch +++ b/patches/api/0008-AFK-API.patch @@ -81,10 +81,10 @@ index 0000000000000000000000000000000000000000..0c8b3e5e4ba412624357ea5662a78862 + } +} diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index a84ea92d02d34cd48174152e0391f1af6c6b5def..023ca23e8c91a6525cc31d483d873dfe14e97da3 100644 +index 4a4f041c6acfd335871fa67d6d1c7f723229c8a7..2ab8d8f3439ee2571df5df385f8874909605ff5c 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2116,4 +2116,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2131,4 +2131,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @Override Spigot spigot(); // Spigot end diff --git a/patches/api/0017-Player-invulnerabilities.patch b/patches/api/0017-Player-invulnerabilities.patch index f47925a571..399d2c4366 100644 --- a/patches/api/0017-Player-invulnerabilities.patch +++ b/patches/api/0017-Player-invulnerabilities.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Player invulnerabilities diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 023ca23e8c91a6525cc31d483d873dfe14e97da3..3dd208c763a71f4211b89a32a936a2317555f265 100644 +index 2ab8d8f3439ee2571df5df385f8874909605ff5c..24408c9bac75182d3cb6146aa25c51a45b53a3af 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2136,5 +2136,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2151,5 +2151,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * Reset the idle timer back to 0 */ void resetIdleTimer(); diff --git a/patches/api/0033-Fix-javadoc-warnings-missing-param-and-return.patch b/patches/api/0033-Fix-javadoc-warnings-missing-param-and-return.patch index 1f43b11a3c..29a5ac071c 100644 --- a/patches/api/0033-Fix-javadoc-warnings-missing-param-and-return.patch +++ b/patches/api/0033-Fix-javadoc-warnings-missing-param-and-return.patch @@ -994,10 +994,10 @@ index a6a7429ed2e1eefb2b12b7480ed74fcc3963a864..e8027e1d505dda6effbb1698550016e8 NORMAL(false), diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 3dd208c763a71f4211b89a32a936a2317555f265..2ed61f79fc7a625d00b86ee434d591232518ca3c 100644 +index 24408c9bac75182d3cb6146aa25c51a45b53a3af..24059b686cca36f594b2efb18666c646f391cea7 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -1938,6 +1938,8 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1953,6 +1953,8 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM void resetCooldown(); /** @@ -1006,7 +1006,7 @@ index 3dd208c763a71f4211b89a32a936a2317555f265..2ed61f79fc7a625d00b86ee434d59123 * @return the client option value of the player */ @NotNull -@@ -1977,6 +1979,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1992,6 +1994,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM // Paper end // Spigot start diff --git a/patches/api/0039-Conflict-on-change-for-adventure-deprecations.patch b/patches/api/0039-Conflict-on-change-for-adventure-deprecations.patch index e8e50ed68b..c265cbed11 100644 --- a/patches/api/0039-Conflict-on-change-for-adventure-deprecations.patch +++ b/patches/api/0039-Conflict-on-change-for-adventure-deprecations.patch @@ -170,7 +170,7 @@ index 6ea9b54d95d80070c01a612c0ce2ab37f0b4ad41..fe9ec9cb7875df4a40d1c4155e13cca9 /** diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 2ed61f79fc7a625d00b86ee434d591232518ca3c..c0b75477ab8af71e73b37a66568693a84c5bce74 100644 +index 24059b686cca36f594b2efb18666c646f391cea7..cf1c631b80b5573a2a8b57e774f4faf57f98235b 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -72,7 +72,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @@ -281,7 +281,7 @@ index 2ed61f79fc7a625d00b86ee434d591232518ca3c..c0b75477ab8af71e73b37a66568693a8 public void sendSignChange(@NotNull Location loc, @Nullable String[] lines, @NotNull DyeColor dyeColor) throws IllegalArgumentException; /** -@@ -1746,7 +1746,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1761,7 +1761,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @deprecated in favour of {@link #locale()} */ @NotNull diff --git a/patches/server/0001-Tuinity-Server-Changes.patch b/patches/server/0001-Tuinity-Server-Changes.patch index 5a0926cde5..ae9e34fff7 100644 --- a/patches/server/0001-Tuinity-Server-Changes.patch +++ b/patches/server/0001-Tuinity-Server-Changes.patch @@ -14054,7 +14054,7 @@ index 3c804c7b20a14ea6e510810e2be10c1cc89ff5c1..3738c51b5e673c439d88a7ef7f4614f3 return new TicketType<>(s, comparator, 0L); } diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 47fbb8df04b2b77e10314666e87eaef621cffb3b..a42d3c6c227a74d691278a65a9c516f6507b6865 100644 +index 7e032845fe9a46d33236444d62405a41e29daa17..a8a2c29874e95dc08b85eb41882fc947108fbe5b 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -168,12 +168,13 @@ import org.bukkit.event.server.MapInitializeEvent; @@ -14973,7 +14973,7 @@ index 47fbb8df04b2b77e10314666e87eaef621cffb3b..a42d3c6c227a74d691278a65a9c516f6 throw (IllegalStateException) SystemUtils.c((Throwable) (new IllegalStateException("Removing entity while ticking!"))); } else { this.removeEntityFromChunk(entity); -@@ -1684,20 +2304,33 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1683,20 +2303,33 @@ public class WorldServer extends World implements GeneratorAccessSeed { @Override public void notify(BlockPosition blockposition, IBlockData iblockdata, IBlockData iblockdata1, int i) { @@ -15009,7 +15009,7 @@ index 47fbb8df04b2b77e10314666e87eaef621cffb3b..a42d3c6c227a74d691278a65a9c516f6 } catch (java.util.ConcurrentModificationException ex) { // This can happen because the pathfinder update below may trigger a chunk load, which in turn may cause more navigators to register // In this case we just run the update again across all the iterators as the chunk will then be loaded -@@ -1711,6 +2344,9 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1710,6 +2343,9 @@ public class WorldServer extends World implements GeneratorAccessSeed { navigationabstract.b(blockposition); } } @@ -16820,20 +16820,10 @@ index c39c50e53549e9cb9d3520bc7e8b7e89cfa20163..5bce47fa8f191bc1d33c04c9865cb0ef public void closeInventory() { this.activeContainer = this.defaultContainer; diff --git a/src/main/java/net/minecraft/world/entity/projectile/EntityArrow.java b/src/main/java/net/minecraft/world/entity/projectile/EntityArrow.java -index 2f8b3587f527620152609d5be342b328a7621e0f..e440d26c920c4efddf958c61bfdfa508273062cc 100644 +index b0e8e9934edbb0cf7ac063e4903452be526afbc7..42c1a7e8d51868c74e92d97f1df8d36fcaab6252 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/EntityArrow.java +++ b/src/main/java/net/minecraft/world/entity/projectile/EntityArrow.java -@@ -211,7 +211,9 @@ public abstract class EntityArrow extends IProjectile { - // Paper end - - if (object != null && !flag) { -+ if (org.bukkit.craftbukkit.event.CraftEventFactory.callProjectileHitEvent(this, (MovingObjectPosition) object)) { // CraftBukkit - Call event // Paper - make cancellable // Tuinity - implement cancellation properly - this.a((MovingObjectPosition) object); -+ } // Tuinity - implement cancellation properly - this.impulse = true; - } - -@@ -545,7 +547,8 @@ public abstract class EntityArrow extends IProjectile { +@@ -545,7 +545,8 @@ public abstract class EntityArrow extends IProjectile { } itemstack = item.getItemStack(); } @@ -16843,101 +16833,6 @@ index 2f8b3587f527620152609d5be342b328a7621e0f..e440d26c920c4efddf958c61bfdfa508 if (this.fromPlayer == EntityArrow.PickupStatus.ALLOWED && !entityhuman.inventory.pickup(itemstack)) { // CraftBukkit end -diff --git a/src/main/java/net/minecraft/world/entity/projectile/EntityFireball.java b/src/main/java/net/minecraft/world/entity/projectile/EntityFireball.java -index c4248531d4a6a11259d9d78ce1d7683a86840d40..f3077c22445949c484a73ee56eab593f527795a6 100644 ---- a/src/main/java/net/minecraft/world/entity/projectile/EntityFireball.java -+++ b/src/main/java/net/minecraft/world/entity/projectile/EntityFireball.java -@@ -83,7 +83,9 @@ public abstract class EntityFireball extends IProjectile { - // Paper end - - if (movingobjectposition != null && movingobjectposition.getType() != MovingObjectPosition.EnumMovingObjectType.MISS) { // Paper - add null check in case cancelled -+ if (org.bukkit.craftbukkit.event.CraftEventFactory.callProjectileHitEvent(this, movingobjectposition)) { // CraftBukkit - Call event // Paper - make cancellable // Tuinity - implement cancellation properly - this.a(movingobjectposition); -+ } // Tuinity - implement cancellation properly - - // CraftBukkit start - Fire ProjectileHitEvent - if (this.dead) { -diff --git a/src/main/java/net/minecraft/world/entity/projectile/EntityFireworks.java b/src/main/java/net/minecraft/world/entity/projectile/EntityFireworks.java -index 9cc59439ae2c4e758c44b2a92b78bc328efdfa1b..f9a355c847d778a9aad1987882fc816af92450ba 100644 ---- a/src/main/java/net/minecraft/world/entity/projectile/EntityFireworks.java -+++ b/src/main/java/net/minecraft/world/entity/projectile/EntityFireworks.java -@@ -149,7 +149,9 @@ public class EntityFireworks extends IProjectile { - MovingObjectPosition movingobjectposition = ProjectileHelper.a((Entity) this, this::a); - - if (!this.noclip) { -+ if (org.bukkit.craftbukkit.event.CraftEventFactory.callProjectileHitEvent(this, movingobjectposition)) { // CraftBukkit - Call event // Paper - make cancellable // Tuinity - implement cancellation properly - this.a(movingobjectposition); -+ } // Tuinity - implement cancellation properly - this.impulse = true; - } - -diff --git a/src/main/java/net/minecraft/world/entity/projectile/EntityFishingHook.java b/src/main/java/net/minecraft/world/entity/projectile/EntityFishingHook.java -index addea9c1309a308b76c93ee71e839c915bc773e8..dc6d279766ccc83a8f450028a09491b1c88f524c 100644 ---- a/src/main/java/net/minecraft/world/entity/projectile/EntityFishingHook.java -+++ b/src/main/java/net/minecraft/world/entity/projectile/EntityFishingHook.java -@@ -265,7 +265,9 @@ public class EntityFishingHook extends IProjectile { - private void m() { - MovingObjectPosition movingobjectposition = ProjectileHelper.a((Entity) this, this::a); - -+ if (org.bukkit.craftbukkit.event.CraftEventFactory.callProjectileHitEvent(this, movingobjectposition)) { // CraftBukkit - Call event // Paper - make cancellable // Tuinity - implement cancellation properly - this.a(movingobjectposition); -+ } // Tuinity - implement cancellation properly - } - - @Override -diff --git a/src/main/java/net/minecraft/world/entity/projectile/EntityLlamaSpit.java b/src/main/java/net/minecraft/world/entity/projectile/EntityLlamaSpit.java -index 39b34e619cf7ac3ad308f98551c796ac47073484..8aef834a6e8fcf5d44986745affb8f27bc3dfd6b 100644 ---- a/src/main/java/net/minecraft/world/entity/projectile/EntityLlamaSpit.java -+++ b/src/main/java/net/minecraft/world/entity/projectile/EntityLlamaSpit.java -@@ -34,7 +34,9 @@ public class EntityLlamaSpit extends IProjectile { - MovingObjectPosition movingobjectposition = ProjectileHelper.a((Entity) this, this::a); - - if (movingobjectposition != null) { -+ if (org.bukkit.craftbukkit.event.CraftEventFactory.callProjectileHitEvent(this, movingobjectposition)) { // CraftBukkit - Call event // Paper - make cancellable // Tuinity - implement cancellation properly - this.a(movingobjectposition); -+ } // Tuinity - implement cancellation properly - } - - double d0 = this.locX() + vec3d.x; -diff --git a/src/main/java/net/minecraft/world/entity/projectile/EntityProjectile.java b/src/main/java/net/minecraft/world/entity/projectile/EntityProjectile.java -index 3b379e83b79bd9b46dbdd4a48ac3842abc4dfbb8..e55061b6c04b4bde92404a6ef58ba9a52cd99c1d 100644 ---- a/src/main/java/net/minecraft/world/entity/projectile/EntityProjectile.java -+++ b/src/main/java/net/minecraft/world/entity/projectile/EntityProjectile.java -@@ -65,7 +65,7 @@ public abstract class EntityProjectile extends IProjectile { - movingobjectposition = null; - } - } -- if (movingobjectposition != null) { -+ if (movingobjectposition != null && org.bukkit.craftbukkit.event.CraftEventFactory.callProjectileHitEvent(this, movingobjectposition)) { // Tuinity - implement cancellation properly - // Paper end - this.a(movingobjectposition); - } // Paper -diff --git a/src/main/java/net/minecraft/world/entity/projectile/EntityShulkerBullet.java b/src/main/java/net/minecraft/world/entity/projectile/EntityShulkerBullet.java -index c3dcebad0706386e52ef2d28f2074cb6aed9f9e4..1ae528ccd09a6536b3aac320e6218f03c274d6a9 100644 ---- a/src/main/java/net/minecraft/world/entity/projectile/EntityShulkerBullet.java -+++ b/src/main/java/net/minecraft/world/entity/projectile/EntityShulkerBullet.java -@@ -230,7 +230,7 @@ public class EntityShulkerBullet extends IProjectile { - - MovingObjectPosition movingobjectposition = ProjectileHelper.a((Entity) this, this::a); - -- if (movingobjectposition.getType() != MovingObjectPosition.EnumMovingObjectType.MISS) { -+ if (movingobjectposition.getType() != MovingObjectPosition.EnumMovingObjectType.MISS && org.bukkit.craftbukkit.event.CraftEventFactory.callProjectileHitEvent(this, movingobjectposition)) { // Tuinity - implement cancellation properly - this.a(movingobjectposition); - } - } -diff --git a/src/main/java/net/minecraft/world/entity/projectile/IProjectile.java b/src/main/java/net/minecraft/world/entity/projectile/IProjectile.java -index 9f2e7d345d98f50e6d47cbf4bb35714852fa42da..2e2e4ee98619cfbeaecffa1ebae78ccc1d7666ca 100644 ---- a/src/main/java/net/minecraft/world/entity/projectile/IProjectile.java -+++ b/src/main/java/net/minecraft/world/entity/projectile/IProjectile.java -@@ -130,7 +130,7 @@ public abstract class IProjectile extends Entity { - } - - protected void a(MovingObjectPosition movingobjectposition) { -- if (!org.bukkit.craftbukkit.event.CraftEventFactory.callProjectileHitEvent(this, movingobjectposition)) return; // CraftBukkit - Call event // Paper - make cancellable -+ // Tuinity - proper cancellation requires moving this into the caller (see method overrides) - TODO this unfortunately means we need to manually inspect each call on update - MovingObjectPosition.EnumMovingObjectType movingobjectposition_enummovingobjecttype = movingobjectposition.getType(); - - if (movingobjectposition_enummovingobjecttype == MovingObjectPosition.EnumMovingObjectType.ENTITY) { diff --git a/src/main/java/net/minecraft/world/item/ItemEnderEye.java b/src/main/java/net/minecraft/world/item/ItemEnderEye.java index f74685a7cdb905af8e9712ca8597e7ed3dc8b120..feedbd8c97c1b1c56eaff359e6a940696d416906 100644 --- a/src/main/java/net/minecraft/world/item/ItemEnderEye.java @@ -17748,7 +17643,7 @@ index 15096a9c2719b8b4c099f62d0a1c808e56b63a8e..9bbd175f7e20591bbefdbddcb5e998e7 } } diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java -index 3fdafc0ff0c4148ec844dbdc1455d17cdcb4a75a..6124b56d935386784371422960a07d518f848cf3 100644 +index 0d26250887f80d0c250bcd6bc7de303362427d3e..1d82f719440c95765c01a588f4785d630b8b527a 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java @@ -348,21 +348,23 @@ public abstract class BlockBase { @@ -17873,7 +17768,7 @@ index 3fdafc0ff0c4148ec844dbdc1455d17cdcb4a75a..6124b56d935386784371422960a07d51 } public final boolean e() { // Paper -@@ -728,9 +784,9 @@ public abstract class BlockBase { +@@ -729,9 +785,9 @@ public abstract class BlockBase { private static final int f = EnumBlockSupport.values().length; protected final boolean a; private final boolean g; @@ -21085,10 +20980,10 @@ index 295ffab08672d77d88aca368cb5b56f80bc4f1b5..dee4d12a49468d38f077784b219199f0 @Override public boolean teleport(Location location) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index e5549439b3d4d608cf37dd33b6c8c9e10dfe9328..45e786565ac988abadffda2e7ba3ff1e2880b786 100644 +index f150ba393bc62e52840e6ebbf3d7696b670ff7e4..51d68fc13fcb8c30c10e21063f4d658f403df8ce 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2257,15 +2257,70 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2262,15 +2262,70 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } } diff --git a/patches/server/0002-Airplane-Server-Changes.patch b/patches/server/0002-Airplane-Server-Changes.patch index 5a267e8f33..5c35ad4bd4 100644 --- a/patches/server/0002-Airplane-Server-Changes.patch +++ b/patches/server/0002-Airplane-Server-Changes.patch @@ -1783,7 +1783,7 @@ index b28995ecfd7f45e6b6197be96c418aa0d05d3383..914c7a1b18151f29183cfe9474313ce1 return this.a(i); } diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index a42d3c6c227a74d691278a65a9c516f6507b6865..136faf61770011a830cc58259d1dad11830ca808 100644 +index a8a2c29874e95dc08b85eb41882fc947108fbe5b..e9c95187b5162e394ddbd528bacb5b1f1fb3a29f 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -1107,7 +1107,28 @@ public class WorldServer extends World implements GeneratorAccessSeed { @@ -2337,7 +2337,7 @@ index f2f65dc0612cc232009ea7ff12f5c1ba4e6b15ea..48acef830eb1d919499e9b79dc6a9af4 @Override diff --git a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java -index 2d0b83923d58cc7b6918b4e2ff2bece13ca26899..d8028675fc82883d716bcfb44431ca6ac7dfda36 100644 +index 3f081177814dc874047e35e294ed18609f082d76..d74ba20808d42acd10c3861b5314afd45fddb438 100644 --- a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java +++ b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java @@ -231,11 +231,17 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation @@ -2422,7 +2422,7 @@ index 2df3ae0b72ccb5f816d55fed15396ba5a1affb7f..754a3ea18905b79ae5ae4fc2442c94f0 return false; } diff --git a/src/main/java/net/minecraft/world/entity/projectile/EntityProjectile.java b/src/main/java/net/minecraft/world/entity/projectile/EntityProjectile.java -index e55061b6c04b4bde92404a6ef58ba9a52cd99c1d..24d205dd1f31ece82d5cf516b8642eb0172e1a97 100644 +index 8bc65e9c0fa5e134a8eb4e03f0da5b2ccd06cd7c..c48bcb89464ecffeb8805eae460d76ae8b37ccb6 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/EntityProjectile.java +++ b/src/main/java/net/minecraft/world/entity/projectile/EntityProjectile.java @@ -4,6 +4,8 @@ import net.minecraft.core.BlockPosition; diff --git a/patches/server/0009-AFK-API.patch b/patches/server/0009-AFK-API.patch index e670d959af..92f8487c8b 100644 --- a/patches/server/0009-AFK-API.patch +++ b/patches/server/0009-AFK-API.patch @@ -64,7 +64,7 @@ index fb61b6ac167b34486282a24e598020fb96081f28..c42a2813b40152079786dde33231d945 return this.serverStatisticManager; } diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 136faf61770011a830cc58259d1dad11830ca808..5cfab6b49d7b1f13fcf90a175c758f40bccea18a 100644 +index e9c95187b5162e394ddbd528bacb5b1f1fb3a29f..c3b9f28fbc153bf366093f6288272fd1c3c25a40 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -1002,7 +1002,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { @@ -263,10 +263,10 @@ index 361f7857e461578e90cb71e15027dadaf794cb69..2578a4677d1ee060f687be531e696b7c + } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 45e786565ac988abadffda2e7ba3ff1e2880b786..f4052aaa2235894b996d65c569a083f1a09b59a3 100644 +index 51d68fc13fcb8c30c10e21063f4d658f403df8ce..9e07a1e59bf756101a0aaff9891361cc7486854d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2491,4 +2491,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2496,4 +2496,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return spigot; } // Spigot end diff --git a/patches/server/0017-Player-invulnerabilities.patch b/patches/server/0017-Player-invulnerabilities.patch index 0fe9709652..27e0f97c9a 100644 --- a/patches/server/0017-Player-invulnerabilities.patch +++ b/patches/server/0017-Player-invulnerabilities.patch @@ -108,10 +108,10 @@ index 2578a4677d1ee060f687be531e696b7c7be89e84..c441fcea9b2b5a77b801c8a69541cf42 + } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index f4052aaa2235894b996d65c569a083f1a09b59a3..1ff48eae5e5b732fbd1e720c55e08a30669bebfa 100644 +index 9e07a1e59bf756101a0aaff9891361cc7486854d..1c5bcc17a702f5af514ce4db7f5d096d5f449dd6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2507,5 +2507,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2512,5 +2512,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public void resetIdleTimer() { getHandle().resetIdleTimer(); } diff --git a/patches/server/0019-Configurable-villager-brain-ticks.patch b/patches/server/0019-Configurable-villager-brain-ticks.patch index ec74523868..017e483867 100644 --- a/patches/server/0019-Configurable-villager-brain-ticks.patch +++ b/patches/server/0019-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/EntityVillager.java b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java -index d8028675fc82883d716bcfb44431ca6ac7dfda36..5539c4cbea46398e92ab6ec56bb9b821e5f01e02 100644 +index d74ba20808d42acd10c3861b5314afd45fddb438..4c2b01774403211bf9af8b5c9f75bfa1b30e1746 100644 --- a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java +++ b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java @@ -127,6 +127,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation diff --git a/patches/server/0028-Zombie-horse-naturally-spawn.patch b/patches/server/0028-Zombie-horse-naturally-spawn.patch index 6218a2f54b..313b581c23 100644 --- a/patches/server/0028-Zombie-horse-naturally-spawn.patch +++ b/patches/server/0028-Zombie-horse-naturally-spawn.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Zombie horse naturally spawn diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 5cfab6b49d7b1f13fcf90a175c758f40bccea18a..da73ce172419224e8737e37b91de1d9bb119cbd0 100644 +index c3b9f28fbc153bf366093f6288272fd1c3c25a40..ed81ed932abba0ea72668950f2359c6bc5438c03 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -96,6 +96,7 @@ import net.minecraft.world.entity.ai.village.poi.VillagePlace; diff --git a/patches/server/0062-Villagers-follow-emerald-blocks.patch b/patches/server/0062-Villagers-follow-emerald-blocks.patch index e99278e8cb..7d3c5372db 100644 --- a/patches/server/0062-Villagers-follow-emerald-blocks.patch +++ b/patches/server/0062-Villagers-follow-emerald-blocks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Villagers follow emerald blocks diff --git a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java -index 5539c4cbea46398e92ab6ec56bb9b821e5f01e02..2464f1a5a922a5557e2d00233033714533acad76 100644 +index 4c2b01774403211bf9af8b5c9f75bfa1b30e1746..9b23d1a4d65523840c98aa3d9a7b0daffa1723db 100644 --- a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java +++ b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java @@ -59,6 +59,7 @@ import net.minecraft.world.entity.ai.BehaviorController; diff --git a/patches/server/0063-Allow-leashing-villagers.patch b/patches/server/0063-Allow-leashing-villagers.patch index 4f156979ac..16e5b2eff4 100644 --- a/patches/server/0063-Allow-leashing-villagers.patch +++ b/patches/server/0063-Allow-leashing-villagers.patch @@ -25,7 +25,7 @@ index 92d8c5e716678862deadd7755db8e9270daafeda..4b4578e02fd4be72f20458c54a878892 // Paper start - drop leash variable PlayerUnleashEntityEvent event = CraftEventFactory.callPlayerUnleashEntityEvent(this, entityhuman, !entityhuman.abilities.canInstantlyBuild); diff --git a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java -index 2464f1a5a922a5557e2d00233033714533acad76..aeb3c82afeda3f1688b1b6617c6d05da2e7a3c76 100644 +index 9b23d1a4d65523840c98aa3d9a7b0daffa1723db..e588a16eab9ff30e45e49ca074252e74d70d3a85 100644 --- a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java +++ b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java @@ -149,6 +149,11 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation diff --git a/patches/server/0064-Implement-configurable-search-radius-for-villagers-t.patch b/patches/server/0064-Implement-configurable-search-radius-for-villagers-t.patch index afc15f3988..f3e1c3bba7 100644 --- a/patches/server/0064-Implement-configurable-search-radius-for-villagers-t.patch +++ b/patches/server/0064-Implement-configurable-search-radius-for-villagers-t.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Implement configurable search radius for villagers to spawn diff --git a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java -index aeb3c82afeda3f1688b1b6617c6d05da2e7a3c76..2fad37812bfa39872e99c4432e1982d62f65efb7 100644 +index e588a16eab9ff30e45e49ca074252e74d70d3a85..e06f7cfe2d7020f4f6c416d5b82958d3821a1529 100644 --- a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java +++ b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java -@@ -970,6 +970,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation +@@ -977,6 +977,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation @Nullable private EntityIronGolem d(WorldServer worldserver) { diff --git a/patches/server/0091-Configurable-villager-breeding.patch b/patches/server/0091-Configurable-villager-breeding.patch index 77dee4bdd4..c6bcc6a614 100644 --- a/patches/server/0091-Configurable-villager-breeding.patch +++ b/patches/server/0091-Configurable-villager-breeding.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable villager breeding diff --git a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java -index 2fad37812bfa39872e99c4432e1982d62f65efb7..d3032682af94428419daa02f55b6040090d8df73 100644 +index e06f7cfe2d7020f4f6c416d5b82958d3821a1529..e2779521977716aa58bb713de67cb2d9fa8cbe5f 100644 --- a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java +++ b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java @@ -718,7 +718,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation diff --git a/patches/server/0099-Add-no-random-tick-block-list.patch b/patches/server/0099-Add-no-random-tick-block-list.patch index e84f7ed084..9a0651d3bb 100644 --- a/patches/server/0099-Add-no-random-tick-block-list.patch +++ b/patches/server/0099-Add-no-random-tick-block-list.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add no-random-tick block list diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index da73ce172419224e8737e37b91de1d9bb119cbd0..6da14a9190a0c863e620d6a065bcd8d86456da53 100644 +index ed81ed932abba0ea72668950f2359c6bc5438c03..449822699f5d9f78a89d747f01e16a64064c57cd 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -532,14 +532,14 @@ public class WorldServer extends World implements GeneratorAccessSeed { @@ -26,7 +26,7 @@ index da73ce172419224e8737e37b91de1d9bb119cbd0..6da14a9190a0c863e620d6a065bcd8d8 this.nextTickListFluid = new TickListServer<>(this, (fluidtype) -> { return fluidtype == null || fluidtype == FluidTypes.EMPTY; diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java -index 6124b56d935386784371422960a07d518f848cf3..e5f66cdf95b6073545efc8d1527b0a5e2741f79d 100644 +index 1d82f719440c95765c01a588f4785d630b8b527a..0ea0a1fc5f4d879d48bbdf24731dabec10dbccd1 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java @@ -671,10 +671,12 @@ public abstract class BlockBase { diff --git a/patches/server/0103-Ridables.patch b/patches/server/0103-Ridables.patch index f751eb0ce8..03c75ef23b 100644 --- a/patches/server/0103-Ridables.patch +++ b/patches/server/0103-Ridables.patch @@ -88,7 +88,7 @@ index da708df0dc50ea02441f9db2bfd52f04d9a8e3da..867a6b7fe1788b20f8d0f4f1e42dd52b public void playerTick() { diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 6da14a9190a0c863e620d6a065bcd8d86456da53..bf08a625d169aae69115a9385dfd6dfb444ce03d 100644 +index 449822699f5d9f78a89d747f01e16a64064c57cd..132cf3beabc9206c7ba5fb557bb487fa813cc5a7 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -216,6 +216,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { @@ -5315,7 +5315,7 @@ index 3d85501791fce621335f34bf508becb74b80210d..da2220b08a9cd9c2d7d3fd06702e6690 PiglinBruteAI.b(this); PiglinBruteAI.c(this); diff --git a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java -index d3032682af94428419daa02f55b6040090d8df73..a0f0d5e0909da5cfe87078d4722b030635cfeadd 100644 +index e2779521977716aa58bb713de67cb2d9fa8cbe5f..bd56b7a009a8bcbdd353d7bdcb2a2a7310ab45cc 100644 --- a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java +++ b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java @@ -32,6 +32,7 @@ import net.minecraft.network.syncher.DataWatcherObject; @@ -5444,7 +5444,7 @@ index 1b130b50888113d515ce1e200a157c3bbff3b625..fedfb18e71300807a83e2ed2729fe192 + // Purpur end } diff --git a/src/main/java/net/minecraft/world/entity/projectile/IProjectile.java b/src/main/java/net/minecraft/world/entity/projectile/IProjectile.java -index 2e2e4ee98619cfbeaecffa1ebae78ccc1d7666ca..3914081629669aea19d50530db996728bbfa607f 100644 +index 8fe98404ebb8b3b5d1fdac0896b27da10736026d..390023a7a825eed850a13572b719f47ed534c003 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/IProjectile.java +++ b/src/main/java/net/minecraft/world/entity/projectile/IProjectile.java @@ -24,7 +24,7 @@ public abstract class IProjectile extends Entity { @@ -5454,9 +5454,9 @@ index 2e2e4ee98619cfbeaecffa1ebae78ccc1d7666ca..3914081629669aea19d50530db996728 - private boolean d; + private boolean d; public boolean leftOwner() { return d; } public void setLeftOwner(boolean leftOwner) { this.d = leftOwner; } // Purpur - OBFHELPER - IProjectile(EntityTypes entitytypes, World world) { - super(entitytypes, world); -@@ -86,6 +86,7 @@ public abstract class IProjectile extends Entity { + // CraftBukkit start + private boolean hitCancelled = false; +@@ -90,6 +90,7 @@ public abstract class IProjectile extends Entity { super.tick(); } @@ -5464,7 +5464,7 @@ index 2e2e4ee98619cfbeaecffa1ebae78ccc1d7666ca..3914081629669aea19d50530db996728 private boolean h() { Entity entity = this.getShooter(); -@@ -149,7 +150,7 @@ public abstract class IProjectile extends Entity { +@@ -167,7 +168,7 @@ public abstract class IProjectile extends Entity { iblockdata.a(this.world, iblockdata, movingobjectpositionblock, this); } @@ -6885,10 +6885,10 @@ index dee4d12a49468d38f077784b219199f0070786f2..c524a0994f1c9ef1d0534403efa4e448 + // Purpur end } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index ac89b7f0de0e5015c599648dc93cbcae760744f2..c44a15cd7b2d67c77eac7a1d2a7e9569f9dce48c 100644 +index b14cec316b16e46d54d389650372c5c9ce1e5a4d..81ea6ffb6be8a7aed281c6538f0535bbaf00b068 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -544,6 +544,18 @@ public class CraftEventFactory { +@@ -545,6 +545,18 @@ public class CraftEventFactory { } craftServer.getPluginManager().callEvent(event); @@ -6907,7 +6907,7 @@ index ac89b7f0de0e5015c599648dc93cbcae760744f2..c44a15cd7b2d67c77eac7a1d2a7e9569 return event; } -@@ -944,6 +956,7 @@ public class CraftEventFactory { +@@ -948,6 +960,7 @@ public class CraftEventFactory { damageCause = DamageCause.ENTITY_EXPLOSION; } event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), entity.getBukkitEntity(), damageCause, modifiers, modifierFunctions); @@ -6915,7 +6915,7 @@ index ac89b7f0de0e5015c599648dc93cbcae760744f2..c44a15cd7b2d67c77eac7a1d2a7e9569 } event.setCancelled(cancelled); -@@ -1028,6 +1041,7 @@ public class CraftEventFactory { +@@ -1032,6 +1045,7 @@ public class CraftEventFactory { if (!event.isCancelled()) { event.getEntity().setLastDamageCause(event); } @@ -6923,7 +6923,7 @@ index ac89b7f0de0e5015c599648dc93cbcae760744f2..c44a15cd7b2d67c77eac7a1d2a7e9569 return event; } -@@ -1077,6 +1091,7 @@ public class CraftEventFactory { +@@ -1081,6 +1095,7 @@ public class CraftEventFactory { EntityDamageEvent event; if (damager != null) { event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), damagee.getBukkitEntity(), cause, modifiers, modifierFunctions); diff --git a/patches/server/0105-Crying-obsidian-valid-for-portal-frames.patch b/patches/server/0105-Crying-obsidian-valid-for-portal-frames.patch index 779adfe864..3b86a4d61b 100644 --- a/patches/server/0105-Crying-obsidian-valid-for-portal-frames.patch +++ b/patches/server/0105-Crying-obsidian-valid-for-portal-frames.patch @@ -17,13 +17,13 @@ index fb7d5fa53c51766f348271285a2e921be1ca0497..1bc6380a805c1f76ffde67951d32d911 return this == block; } diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java -index e5f66cdf95b6073545efc8d1527b0a5e2741f79d..23a3b1b317b6b3e9d812f5a7b09b099b0528c59e 100644 +index 0ea0a1fc5f4d879d48bbdf24731dabec10dbccd1..df595dc52858807479584ce8da49390a25695990 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java -@@ -741,6 +741,7 @@ public abstract class BlockBase { - return this.getBlock().a(tag) && predicate.test(this); +@@ -742,6 +742,7 @@ public abstract class BlockBase { } + public final boolean isSameInstance(Block block) { return a(block); } // Paper - OBFHELPER + public boolean equals(Block block) { return a(block); } // Purpur - OBFHELPER public boolean a(Block block) { return this.getBlock().a(block); diff --git a/patches/server/0109-Allow-toggling-special-MobSpawners-per-world.patch b/patches/server/0109-Allow-toggling-special-MobSpawners-per-world.patch index 2e4315b51e..bbfac6c304 100644 --- a/patches/server/0109-Allow-toggling-special-MobSpawners-per-world.patch +++ b/patches/server/0109-Allow-toggling-special-MobSpawners-per-world.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Allow toggling special MobSpawners per world In vanilla, these are all hardcoded on for world type 0 (overworld) and hardcoded off for every other world type. Default config behaviour matches this. diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index bf08a625d169aae69115a9385dfd6dfb444ce03d..ed0e5282a0718768ed2e7ab7f56b1dfa82403335 100644 +index 132cf3beabc9206c7ba5fb557bb487fa813cc5a7..9d5d71d9bfe24a0a5504fd9f70fbfed1591570f2 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -92,6 +92,7 @@ import net.minecraft.world.entity.EnumCreatureType; diff --git a/patches/server/0111-Despawn-rate-config-options-per-projectile-type.patch b/patches/server/0111-Despawn-rate-config-options-per-projectile-type.patch index 603396ed61..625a596c5c 100644 --- a/patches/server/0111-Despawn-rate-config-options-per-projectile-type.patch +++ b/patches/server/0111-Despawn-rate-config-options-per-projectile-type.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Despawn rate config options per projectile type Default values of -1 respect vanilla behaviour. diff --git a/src/main/java/net/minecraft/world/entity/projectile/EntityArrow.java b/src/main/java/net/minecraft/world/entity/projectile/EntityArrow.java -index e440d26c920c4efddf958c61bfdfa508273062cc..3ee404effe339a5742926255da6a9c41d1bc9367 100644 +index 42c1a7e8d51868c74e92d97f1df8d36fcaab6252..5775a28cb9d94b94b6e6bbc810fe31260810632e 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/EntityArrow.java +++ b/src/main/java/net/minecraft/world/entity/projectile/EntityArrow.java @@ -61,7 +61,7 @@ public abstract class EntityArrow extends IProjectile { @@ -18,7 +18,7 @@ index e440d26c920c4efddf958c61bfdfa508273062cc..3ee404effe339a5742926255da6a9c41 private double damage; public int knockbackStrength; private SoundEffect ak; -@@ -295,13 +295,23 @@ public abstract class EntityArrow extends IProjectile { +@@ -293,13 +293,23 @@ public abstract class EntityArrow extends IProjectile { } @@ -96,10 +96,10 @@ index efdf5bc4f07231690c680429b3f77bd07970eee0..cf2c691357c41a7e7044f7a719144db2 + // Purpur end } diff --git a/src/main/java/net/minecraft/world/entity/projectile/EntityFireworks.java b/src/main/java/net/minecraft/world/entity/projectile/EntityFireworks.java -index f9a355c847d778a9aad1987882fc816af92450ba..9b4b8b1a0f7654c9c30ca614cac6f485f82db5ef 100644 +index ca7a10c4b04766d7eb55be9252e96ef939e76df3..6a6ed24640c152bd5d6637b30ccce3efdf8a4856 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/EntityFireworks.java +++ b/src/main/java/net/minecraft/world/entity/projectile/EntityFireworks.java -@@ -325,4 +325,11 @@ public class EntityFireworks extends IProjectile { +@@ -323,4 +323,11 @@ public class EntityFireworks extends IProjectile { public Packet P() { return new PacketPlayOutSpawnEntity(this); } @@ -112,10 +112,10 @@ index f9a355c847d778a9aad1987882fc816af92450ba..9b4b8b1a0f7654c9c30ca614cac6f485 + // Purpur end } diff --git a/src/main/java/net/minecraft/world/entity/projectile/EntityFishingHook.java b/src/main/java/net/minecraft/world/entity/projectile/EntityFishingHook.java -index dc6d279766ccc83a8f450028a09491b1c88f524c..5a5773209183331d849368c6b300367ac0ebe203 100644 +index 45f0f004e97b20e5c6c5b1f205b088bf8aa86017..242ba2c1feb07f9e582a722f34e6362dd84f27cc 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/EntityFishingHook.java +++ b/src/main/java/net/minecraft/world/entity/projectile/EntityFishingHook.java -@@ -617,4 +617,11 @@ public class EntityFishingHook extends IProjectile { +@@ -615,4 +615,11 @@ public class EntityFishingHook extends IProjectile { private HookState() {} } @@ -144,10 +144,10 @@ index cf2663d9883654f53b327246d85ee63c3990cd71..e860737bacfea0a1d728dbaaf41d6216 + // Purpur end } diff --git a/src/main/java/net/minecraft/world/entity/projectile/EntityLlamaSpit.java b/src/main/java/net/minecraft/world/entity/projectile/EntityLlamaSpit.java -index 8aef834a6e8fcf5d44986745affb8f27bc3dfd6b..0bfb80331cea6bd2cf85a9475b6416691edd8b0b 100644 +index 6f497fc1b1eb33d0d9dfb0dc014b25b7eeb0dfac..56de41fc11720f4a37ee4e1e7cbec1b2dbe3ab76 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/EntityLlamaSpit.java +++ b/src/main/java/net/minecraft/world/entity/projectile/EntityLlamaSpit.java -@@ -88,4 +88,11 @@ public class EntityLlamaSpit extends IProjectile { +@@ -86,4 +86,11 @@ public class EntityLlamaSpit extends IProjectile { public Packet P() { return new PacketPlayOutSpawnEntity(this); } @@ -176,7 +176,7 @@ index dbc0afc5fb9e358a3e6d596692f57fb28303c4da..a3344719bcf178df5b63cda6f6a854c2 + // Purpur end } diff --git a/src/main/java/net/minecraft/world/entity/projectile/EntityShulkerBullet.java b/src/main/java/net/minecraft/world/entity/projectile/EntityShulkerBullet.java -index 1ae528ccd09a6536b3aac320e6218f03c274d6a9..cfc1376bfed9399daa6f27f54780ccf8e05753c6 100644 +index 24076f3de298173e293507f2024105532f833455..96c609aa888b4fb83db6eddba259bd553fe0dd0a 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/EntityShulkerBullet.java +++ b/src/main/java/net/minecraft/world/entity/projectile/EntityShulkerBullet.java @@ -337,4 +337,11 @@ public class EntityShulkerBullet extends IProjectile { @@ -257,16 +257,18 @@ index 021a7e31dc3650c0c404a893374528e6a63dfbad..2fe0e32a1158cccb3060f5a986c9fc41 + // Purpur end } diff --git a/src/main/java/net/minecraft/world/entity/projectile/IProjectile.java b/src/main/java/net/minecraft/world/entity/projectile/IProjectile.java -index 3914081629669aea19d50530db996728bbfa607f..62fa5be9090c8789e91bf9b9f614e74a4a6babdd 100644 +index 390023a7a825eed850a13572b719f47ed534c003..8df2b646df701b4d21f956b9870d7c09c13e2b6d 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/IProjectile.java +++ b/src/main/java/net/minecraft/world/entity/projectile/IProjectile.java -@@ -25,11 +25,25 @@ public abstract class IProjectile extends Entity { +@@ -25,6 +25,7 @@ public abstract class IProjectile extends Entity { private UUID shooter; private int c; private boolean d; public boolean leftOwner() { return d; } public void setLeftOwner(boolean leftOwner) { this.d = leftOwner; } // Purpur - OBFHELPER + public int despawnCounter; // Purpur - moved from EntityArrow - IProjectile(EntityTypes entitytypes, World world) { + // CraftBukkit start + private boolean hitCancelled = false; +@@ -34,6 +35,19 @@ public abstract class IProjectile extends Entity { super(entitytypes, world); } @@ -286,7 +288,7 @@ index 3914081629669aea19d50530db996728bbfa607f..62fa5be9090c8789e91bf9b9f614e74a public void setShooter(@Nullable Entity entity) { if (entity != null) { this.shooter = entity.getUniqueID(); -@@ -84,6 +98,12 @@ public abstract class IProjectile extends Entity { +@@ -88,6 +102,12 @@ public abstract class IProjectile extends Entity { } super.tick(); diff --git a/patches/server/0118-Configurable-daylight-cycle.patch b/patches/server/0118-Configurable-daylight-cycle.patch index 9806e2c4d8..280f2eab5f 100644 --- a/patches/server/0118-Configurable-daylight-cycle.patch +++ b/patches/server/0118-Configurable-daylight-cycle.patch @@ -18,7 +18,7 @@ index 3086ee023685781d94e2fb99fc8dff5264f01165..74c1047305cac5673e274096709c757e public PacketPlayOutUpdateTime() {} diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index ed0e5282a0718768ed2e7ab7f56b1dfa82403335..5fe1665275cadf276a1560f7b13765e7f191ee61 100644 +index 9d5d71d9bfe24a0a5504fd9f70fbfed1591570f2..e76e54fb833ce69968d08f78836acf23e6436653 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -64,6 +64,7 @@ import net.minecraft.network.protocol.game.PacketPlayOutExplosion; diff --git a/patches/server/0121-Arrows-should-not-reset-despawn-counter.patch b/patches/server/0121-Arrows-should-not-reset-despawn-counter.patch index 7074af8b97..e0af66b86d 100644 --- a/patches/server/0121-Arrows-should-not-reset-despawn-counter.patch +++ b/patches/server/0121-Arrows-should-not-reset-despawn-counter.patch @@ -7,10 +7,10 @@ This prevents keeping arrows alive indefinitely (such as when the block the arrow is stuck in gets removed, like a piston head going up/down) diff --git a/src/main/java/net/minecraft/world/entity/projectile/EntityArrow.java b/src/main/java/net/minecraft/world/entity/projectile/EntityArrow.java -index 3ee404effe339a5742926255da6a9c41d1bc9367..6f0a306449844dc50426202262219d0e952459cc 100644 +index 5775a28cb9d94b94b6e6bbc810fe31260810632e..7861b9e28b0fcc7ab931498fc7c96404456b9998 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/EntityArrow.java +++ b/src/main/java/net/minecraft/world/entity/projectile/EntityArrow.java -@@ -283,7 +283,7 @@ public abstract class EntityArrow extends IProjectile { +@@ -281,7 +281,7 @@ public abstract class EntityArrow extends IProjectile { Vec3D vec3d = this.getMot(); this.setMot(vec3d.d((double) (this.random.nextFloat() * 0.2F), (double) (this.random.nextFloat() * 0.2F), (double) (this.random.nextFloat() * 0.2F))); diff --git a/patches/server/0131-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch b/patches/server/0131-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch index fe8789395e..3ade4d3945 100644 --- a/patches/server/0131-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch +++ b/patches/server/0131-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch @@ -33,10 +33,10 @@ index fedfb18e71300807a83e2ed2729fe192a8f9aa33..af10d5aea7909ee9f38982264233f0a4 if (flag5) { if (i > 0) { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index c44a15cd7b2d67c77eac7a1d2a7e9569f9dce48c..ad325f58198fcae7b9cae55e4c9675c8498838d1 100644 +index 81ea6ffb6be8a7aed281c6538f0535bbaf00b068..064256873da7660815aeb416a6cfe55c24e6838d 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1090,7 +1090,7 @@ public class CraftEventFactory { +@@ -1094,7 +1094,7 @@ public class CraftEventFactory { private static EntityDamageEvent callEntityDamageEvent(Entity damager, Entity damagee, DamageCause cause, Map modifiers, Map> modifierFunctions, boolean cancelled) { EntityDamageEvent event; if (damager != null) { diff --git a/patches/server/0144-Lobotomize-stuck-villagers.patch b/patches/server/0144-Lobotomize-stuck-villagers.patch index 2ae2916100..12d4d67813 100644 --- a/patches/server/0144-Lobotomize-stuck-villagers.patch +++ b/patches/server/0144-Lobotomize-stuck-villagers.patch @@ -30,7 +30,7 @@ index 48e6a4c588ef39a4bde067d79b96a656c68750ce..ac7bad10697c6fde7d512753992d5971 // Paper start - add target parameter return this.a(blockposition, null, i); diff --git a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java -index a0f0d5e0909da5cfe87078d4722b030635cfeadd..bc14e242f97f9f6d8e581d12319c95ae5f70f250 100644 +index bd56b7a009a8bcbdd353d7bdcb2a2a7310ab45cc..45739558f10687870b475711735342d839859e03 100644 --- a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java +++ b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java @@ -89,6 +89,7 @@ import net.minecraft.world.level.IWorldReader; diff --git a/patches/server/0145-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch b/patches/server/0145-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch index 69e7f1aaea..0e63f1fe8b 100644 --- a/patches/server/0145-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch +++ b/patches/server/0145-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch @@ -186,7 +186,7 @@ index 25c10973c74f98224dd1d2ae5e7178b9781374aa..d50b5632f0e53147ea23109f1ed627b4 behaviorcontroller.removeMemory(MemoryModuleType.SECONDARY_JOB_SITE); } diff --git a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java -index bc14e242f97f9f6d8e581d12319c95ae5f70f250..0924e0c13b3c57e46f6dc40232707088f96e98c7 100644 +index 45739558f10687870b475711735342d839859e03..0699d835da44296ede8ee6458a7bf8ebccc313ae 100644 --- a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java +++ b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java @@ -203,7 +203,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation @@ -198,7 +198,7 @@ index bc14e242f97f9f6d8e581d12319c95ae5f70f250..0924e0c13b3c57e46f6dc40232707088 } behaviorcontroller.a(Activity.CORE, Behaviors.a(villagerprofession, 0.5F)); -@@ -944,6 +944,11 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation +@@ -951,6 +951,11 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation } public boolean canPlant() { diff --git a/patches/server/0147-Spread-out-and-optimise-player-list-ticks.patch b/patches/server/0147-Spread-out-and-optimise-player-list-ticks.patch index 9bf25312f0..ca0fc3b9e6 100644 --- a/patches/server/0147-Spread-out-and-optimise-player-list-ticks.patch +++ b/patches/server/0147-Spread-out-and-optimise-player-list-ticks.patch @@ -56,7 +56,7 @@ index 3622ea01edfb9dfaab254ceaf09582d9e8993174..070de6c066b2e293e0bc0ea9722a9a3d public void sendAll(Packet packet) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 1ff48eae5e5b732fbd1e720c55e08a30669bebfa..ca465a53a0c6232f912287704fc63cdcc59a28bd 100644 +index 1c5bcc17a702f5af514ce4db7f5d096d5f449dd6..e204374c8f17ca5514e9bcfd24d411069285de29 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1444,7 +1444,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0150-Configurable-entity-base-attributes.patch b/patches/server/0150-Configurable-entity-base-attributes.patch index 8efad4af3a..2fa29090c8 100644 --- a/patches/server/0150-Configurable-entity-base-attributes.patch +++ b/patches/server/0150-Configurable-entity-base-attributes.patch @@ -1367,7 +1367,7 @@ index da2220b08a9cd9c2d7d3fd06702e6690e12f095e..c441d6b2ce29d914a29c2f39d70adb14 public static AttributeProvider.Builder eS() { diff --git a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java -index 0924e0c13b3c57e46f6dc40232707088f96e98c7..16933de70a23414859019e19545bfa5baa38091a 100644 +index 0699d835da44296ede8ee6458a7bf8ebccc313ae..f911cd4cf2ad82e81b09f92063abd573797fe5d6 100644 --- a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java +++ b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java @@ -167,6 +167,11 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation diff --git a/patches/server/0161-Add-EntityTeleportHinderedEvent.patch b/patches/server/0161-Add-EntityTeleportHinderedEvent.patch index 0676bfa812..5310ad2801 100644 --- a/patches/server/0161-Add-EntityTeleportHinderedEvent.patch +++ b/patches/server/0161-Add-EntityTeleportHinderedEvent.patch @@ -82,7 +82,7 @@ index d918194e45953764fa3fd286b715714330a60941..70496562faa89e92da34a4f7b891f845 if (this.exitPortal == null && this.world.getTypeKey() == DimensionManager.THE_END) { // CraftBukkit - work in alternate worlds this.a((WorldServer) this.world); diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java -index 23a3b1b317b6b3e9d812f5a7b09b099b0528c59e..4f40c6c3397596c81147fae4a6a51bfd517643d2 100644 +index df595dc52858807479584ce8da49390a25695990..0990eb8b2e2d8a5f7c1a2640727d86c37a50298e 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java @@ -303,6 +303,7 @@ public abstract class BlockBase { @@ -123,7 +123,7 @@ index c524a0994f1c9ef1d0534403efa4e4481955b2f3..a80f664d2cf713fd751421be3735e2f4 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index ca465a53a0c6232f912287704fc63cdcc59a28bd..37564214c6595dfc07534124f749bf65002325c2 100644 +index e204374c8f17ca5514e9bcfd24d411069285de29..7e0b3aa37af39db2bc2f630e479008dd9a443776 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -126,6 +126,7 @@ import org.bukkit.entity.EntityType; diff --git a/patches/server/0186-Config-for-skipping-night.patch b/patches/server/0186-Config-for-skipping-night.patch index 27790da12f..e468115857 100644 --- a/patches/server/0186-Config-for-skipping-night.patch +++ b/patches/server/0186-Config-for-skipping-night.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config for skipping night diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 5fe1665275cadf276a1560f7b13765e7f191ee61..01d6691ec3284ac0d29025b1a67743f9845bf74b 100644 +index e76e54fb833ce69968d08f78836acf23e6436653..db91e4ca583f676fe74d35a2368b3c39ab58cd9a 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -1028,7 +1028,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { diff --git a/patches/server/0187-Add-config-for-villager-trading.patch b/patches/server/0187-Add-config-for-villager-trading.patch index 7779be1dca..b96d228c3f 100644 --- a/patches/server/0187-Add-config-for-villager-trading.patch +++ b/patches/server/0187-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/EntityVillager.java b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java -index 16933de70a23414859019e19545bfa5baa38091a..a02748bff911415d95bea344f179ad27ff9d6092 100644 +index f911cd4cf2ad82e81b09f92063abd573797fe5d6..4903d79ad1036df8f52aded6ddaca604d4a8434a 100644 --- a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java +++ b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java @@ -373,7 +373,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation From 7a728f80d180e4b80e1d3b26447ad713ae01ccf2 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Mon, 10 May 2021 04:39:46 -0500 Subject: [PATCH 24/40] Fix #325 - Fix SPIGOT-6278 --- patches/server/0207-Fix-SPIGOT-6278.patch | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 patches/server/0207-Fix-SPIGOT-6278.patch diff --git a/patches/server/0207-Fix-SPIGOT-6278.patch b/patches/server/0207-Fix-SPIGOT-6278.patch new file mode 100644 index 0000000000..f3497e4255 --- /dev/null +++ b/patches/server/0207-Fix-SPIGOT-6278.patch @@ -0,0 +1,19 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: BillyGalbreath +Date: Mon, 10 May 2021 02:08:53 -0500 +Subject: [PATCH] Fix SPIGOT-6278 + + +diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java +index 99fc16aae085da564c5236e68925a8a2225f5c27..c6f51a483c919d032edb5b8b16a95c0750cef71b 100644 +--- a/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java ++++ b/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java +@@ -172,7 +172,7 @@ public class EntityPiglin extends EntityPiglinAbstract implements ICrossbow { + + @Override + public boolean isTypeNotPersistent(double d0) { +- return !this.isPersistent(); ++ return true || !this.isPersistent(); // Purpur - fix SPIGOT-6278 + } + + @Override From adfe5d355fd5dc09cd6445eb0c239bebeadb2e2d Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Mon, 10 May 2021 04:41:04 -0500 Subject: [PATCH 25/40] Updated Upstream (Paper) Upstream has released updates that appear to apply and compile correctly Paper Changes: b3cc88799 Add the ability to clear entities from block storage (#5598) f50171f3b Add missing rarity method on ItemStack (#5594) --- Paper | 2 +- patches/api/0019-ItemStack-convenience-methods.patch | 6 +++--- .../server/0199-Config-to-change-max-number-of-bees.patch | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Paper b/Paper index aeb6e7dd25..b3cc88799f 160000 --- a/Paper +++ b/Paper @@ -1 +1 @@ -Subproject commit aeb6e7dd25439d23f11f956215927bcbf03a8e87 +Subproject commit b3cc88799f83500b0d4277a46818e422a6a623f6 diff --git a/patches/api/0019-ItemStack-convenience-methods.patch b/patches/api/0019-ItemStack-convenience-methods.patch index ea63eb4a96..33492a011c 100644 --- a/patches/api/0019-ItemStack-convenience-methods.patch +++ b/patches/api/0019-ItemStack-convenience-methods.patch @@ -50,7 +50,7 @@ index 9b1c9e60dba9ea3ef8d8e164f13dd76daf57db8e..b04e9de7183f00a9a47c1fce26895c83 + // Purpur end } diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java -index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..9154ad938505a8ade190a78574eb49348525fd6a 100644 +index 3c64c6ef397af102a3e085fe6b77a888d5c3de84..8c6d6399b8562631f391a5a18cbde7ae5ef4a46b 100644 --- a/src/main/java/org/bukkit/inventory/ItemStack.java +++ b/src/main/java/org/bukkit/inventory/ItemStack.java @@ -17,6 +17,18 @@ import org.bukkit.inventory.meta.ItemMeta; @@ -72,8 +72,8 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..9154ad938505a8ade190a78574eb4934 /** * Represents a stack of items. -@@ -843,4 +855,626 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, net.kyor - return itemMeta != null && itemMeta.hasItemFlag(flag); +@@ -853,4 +865,626 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, net.kyor + return Bukkit.getUnsafe().getItemStackRarity(this); } // Paper end + diff --git a/patches/server/0199-Config-to-change-max-number-of-bees.patch b/patches/server/0199-Config-to-change-max-number-of-bees.patch index 63d5396a09..c21f11fb7a 100644 --- a/patches/server/0199-Config-to-change-max-number-of-bees.patch +++ b/patches/server/0199-Config-to-change-max-number-of-bees.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config to change max number of bees diff --git a/src/main/java/net/minecraft/world/level/block/entity/TileEntityBeehive.java b/src/main/java/net/minecraft/world/level/block/entity/TileEntityBeehive.java -index 3cbcbb028b864f1d14e004628bbc0829f71ab476..3ce6a1b1f75443d1d1c6740d6f3f730f06a34f6a 100644 +index 80083a6666a28372946cf0e68ded44d075357f7d..58bf1008ab19340bce5111e006a8de0e7f39e0e5 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/TileEntityBeehive.java +++ b/src/main/java/net/minecraft/world/level/block/entity/TileEntityBeehive.java @@ -29,7 +29,7 @@ public class TileEntityBeehive extends TileEntity implements ITickable { From e8839915801e10267063ab4bc53a4e217016ba3e Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Mon, 10 May 2021 17:51:34 -0500 Subject: [PATCH 26/40] Fix compatibility with MyPet --- patches/server/0103-Ridables.patch | 494 +++++++++++------- ...tities-can-use-portals-configuration.patch | 6 +- ...stomizable-wither-health-and-healing.patch | 8 +- patches/server/0115-Flying-squids-Oh-my.patch | 2 +- patches/server/0117-Stonecutter-damage.patch | 4 +- ...22-Add-tablist-suffix-option-for-afk.patch | 4 +- ...e-entity-breeding-times-configurable.patch | 26 +- ...llowing-Endermen-to-despawn-even-whi.patch | 2 +- ...-check-to-EntityDamagedByEntityEvent.patch | 8 +- ...37-Changeable-Mob-Left-Handed-Chance.patch | 4 +- .../0138-Add-boat-fall-damage-config.patch | 4 +- .../0140-Snow-Golem-rate-of-fire-config.patch | 2 +- .../0144-Lobotomize-stuck-villagers.patch | 4 +- ...ble-chance-for-wolves-to-spawn-rabid.patch | 2 +- ...-Configurable-entity-base-attributes.patch | 60 +-- .../server/0151-Phantom-flames-on-swoop.patch | 2 +- ...therite-armor-grants-fire-resistance.patch | 4 +- ...iefing-bypass-to-everything-affected.patch | 26 +- ...0161-Add-EntityTeleportHinderedEvent.patch | 4 +- ...64-Movement-options-for-armor-stands.patch | 4 +- .../server/0165-Fix-stuck-in-portals.patch | 8 +- ...oggle-for-water-sensitive-mob-damage.patch | 12 +- ...68-Config-to-always-tame-in-Creative.patch | 4 +- ...-Add-unsafe-Entity-serialization-API.patch | 4 +- ...0171-Add-ghast-allow-griefing-option.patch | 2 +- ...ither-Ender-Dragon-can-ride-vehicles.patch | 10 +- patches/server/0174-One-Punch-Man.patch | 2 +- ...-to-ignore-nearby-mobs-when-sleeping.patch | 4 +- ...Enderman-to-aggro-spawned-Endermites.patch | 2 +- ...-Dragon-Head-wearers-and-stare-aggro.patch | 2 +- ...182-Config-to-disable-Llama-caravans.patch | 2 +- ...ig-to-make-Creepers-explode-on-death.patch | 2 +- ...urable-ravager-griefable-blocks-list.patch | 4 +- patches/server/0189-Drowning-Settings.patch | 6 +- ...ble-damage-settings-for-magma-blocks.patch | 4 +- patches/server/0207-Fix-SPIGOT-6278.patch | 2 +- 36 files changed, 425 insertions(+), 315 deletions(-) diff --git a/patches/server/0103-Ridables.patch b/patches/server/0103-Ridables.patch index 03c75ef23b..06ce1bb82f 100644 --- a/patches/server/0103-Ridables.patch +++ b/patches/server/0103-Ridables.patch @@ -18,7 +18,7 @@ index 409c272629ca935dcbaa9e73e10ace4a0bd8f9b7..4ceaa8e905c9ba7277ee00cea020d01d this.methodProfiler.a(() -> { diff --git a/src/main/java/net/minecraft/server/PathfinderGoalHasRider.java b/src/main/java/net/minecraft/server/PathfinderGoalHasRider.java new file mode 100644 -index 0000000000000000000000000000000000000000..70961ec1d385dfd7c17fed6f33e4eb7fd57bc34a +index 0000000000000000000000000000000000000000..4c5dd9431b9afb2f110228d058d2b0f0808f0ab9 --- /dev/null +++ b/src/main/java/net/minecraft/server/PathfinderGoalHasRider.java @@ -0,0 +1,21 @@ @@ -40,7 +40,7 @@ index 0000000000000000000000000000000000000000..70961ec1d385dfd7c17fed6f33e4eb7f + // shouldExecute + @Override + public boolean a() { -+ return entity.hasRider(); ++ return entity.hasPurpurRider(); + } +} diff --git a/src/main/java/net/minecraft/server/PathfinderGoalHorseHasRider.java b/src/main/java/net/minecraft/server/PathfinderGoalHorseHasRider.java @@ -68,16 +68,32 @@ index 0000000000000000000000000000000000000000..8b66d1215a6eef1302b5ecb46a4b3d50 + } +} diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index da708df0dc50ea02441f9db2bfd52f04d9a8e3da..867a6b7fe1788b20f8d0f4f1e42dd52bfc6a8c2a 100644 +index da708df0dc50ea02441f9db2bfd52f04d9a8e3da..0ed513afdab9b4f8e91b55ffc05f6d26bbd14d22 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java -@@ -642,6 +642,15 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -80,7 +80,6 @@ import net.minecraft.server.network.PlayerConnection; + import net.minecraft.server.players.PlayerList; + import net.minecraft.sounds.SoundCategory; + import net.minecraft.sounds.SoundEffect; +-import net.minecraft.stats.RecipeBook; + import net.minecraft.stats.RecipeBookServer; + import net.minecraft.stats.ServerStatisticManager; + import net.minecraft.stats.Statistic; +@@ -132,7 +131,6 @@ import net.minecraft.world.level.block.entity.TileEntityCommand; + import net.minecraft.world.level.block.entity.TileEntitySign; + import net.minecraft.world.level.block.state.IBlockData; + import net.minecraft.world.level.portal.ShapeDetectorShape; +-import net.minecraft.world.level.storage.WorldData; + import net.minecraft.world.phys.AxisAlignedBB; + import net.minecraft.world.phys.Vec3D; + import net.minecraft.world.scores.ScoreboardScore; +@@ -642,6 +640,15 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } this.advancementDataPlayer.b(this); + + // Purpur start -+ if (this.world.purpurConfig.useNightVisionWhenRiding && this.getVehicle() != null && this.getVehicle().getRider() == this && world.getTime() % 100 == 0) { // 5 seconds ++ if (this.world.purpurConfig.useNightVisionWhenRiding && this.getVehicle() != null && this.getVehicle().getPurpurRider() == this && world.getTime() % 100 == 0) { // 5 seconds + MobEffect nightVision = this.getEffect(MobEffects.NIGHT_VISION); + if (nightVision == null || nightVision.getDuration() <= 300) { // 15 seconds + this.addEffect(new MobEffect(MobEffects.NIGHT_VISION, 400, 0)); // 20 seconds @@ -133,7 +149,7 @@ index 6ba14f603b8ec69597c70677cc317f802d6afae9..24fd920394774bf38d2818a4cd013670 this.B = true; return this; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 4e084e26e0430422b0348a0a91f0e412ff3a9eff..4e1363050bef7fff9117250b79cbf35bf6bfc537 100644 +index 4e084e26e0430422b0348a0a91f0e412ff3a9eff..2fed41af0416174a6e23282e3931f0b7d4f6f29f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -22,6 +22,7 @@ import net.minecraft.BlockUtil; @@ -144,7 +160,15 @@ index 4e084e26e0430422b0348a0a91f0e412ff3a9eff..4e1363050bef7fff9117250b79cbf35b import net.minecraft.advancements.CriterionTriggers; import net.minecraft.commands.CommandListenerWrapper; import net.minecraft.commands.ICommandListener; -@@ -197,7 +198,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -104,7 +105,6 @@ import net.minecraft.world.phys.AxisAlignedBB; + import net.minecraft.world.phys.MovingObjectPosition; + import net.minecraft.world.phys.Vec2F; + import net.minecraft.world.phys.Vec3D; +-import net.minecraft.world.phys.shapes.OperatorBoolean; + import net.minecraft.world.phys.shapes.VoxelShape; + import net.minecraft.world.phys.shapes.VoxelShapeCollision; + import net.minecraft.world.phys.shapes.VoxelShapes; +@@ -197,7 +197,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne private int id; public boolean i; public final boolean blocksEntitySpawning() { return this.i; } // Paper - OBFHELPER public final List passengers; @@ -153,7 +177,7 @@ index 4e084e26e0430422b0348a0a91f0e412ff3a9eff..4e1363050bef7fff9117250b79cbf35b @Nullable private Entity vehicle; public boolean attachedToPlayer; -@@ -213,7 +214,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -213,7 +213,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne public float lastYaw; public float lastPitch; private AxisAlignedBB boundingBox; @@ -162,7 +186,7 @@ index 4e084e26e0430422b0348a0a91f0e412ff3a9eff..4e1363050bef7fff9117250b79cbf35b public boolean positionChanged; public boolean v; public boolean velocityChanged; -@@ -269,7 +270,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -269,7 +269,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne private boolean az; private final double[] aA; private long aB; @@ -171,7 +195,7 @@ index 4e084e26e0430422b0348a0a91f0e412ff3a9eff..4e1363050bef7fff9117250b79cbf35b private float headHeight; // CraftBukkit start public boolean persist = true; -@@ -1621,6 +1622,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -1621,6 +1621,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne return !this.justCreated && this.M.getDouble(TagsFluid.LAVA) > 0.0D; } @@ -179,7 +203,7 @@ index 4e084e26e0430422b0348a0a91f0e412ff3a9eff..4e1363050bef7fff9117250b79cbf35b public void a(float f, Vec3D vec3d) { Vec3D vec3d1 = a(vec3d, f, this.yaw); -@@ -2377,6 +2379,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -2377,6 +2378,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne return this.a(entity, false); } @@ -187,7 +211,7 @@ index 4e084e26e0430422b0348a0a91f0e412ff3a9eff..4e1363050bef7fff9117250b79cbf35b public boolean a(Entity entity, boolean flag) { for (Entity entity1 = entity; entity1.vehicle != null; entity1 = entity1.vehicle) { if (entity1.vehicle == this) { -@@ -2472,6 +2475,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -2472,6 +2474,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne this.passengers.add(entity); } @@ -195,26 +219,26 @@ index 4e084e26e0430422b0348a0a91f0e412ff3a9eff..4e1363050bef7fff9117250b79cbf35b + if (isRidable() && passengers.get(0) == entity && entity instanceof EntityHuman) { + EntityHuman entityhuman = (EntityHuman) entity; + onMount(entityhuman); -+ this.rider = entityhuman; ++ this.purpurRider = entityhuman; + } + // Purpur end } return true; // CraftBukkit } -@@ -2512,6 +2522,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -2512,6 +2521,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne return false; } // Spigot end + // Purpur start -+ if (rider != null && passengers.get(0) == rider) { -+ onDismount(rider); -+ this.rider = null; ++ if (purpurRider != null && passengers.get(0) == purpurRider) { ++ onDismount(purpurRider); ++ this.purpurRider = null; + } + // Purpur end this.passengers.remove(entity); entity.j = 60; } -@@ -2677,6 +2693,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -2677,6 +2692,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne this.setFlag(4, flag); } @@ -222,7 +246,7 @@ index 4e084e26e0430422b0348a0a91f0e412ff3a9eff..4e1363050bef7fff9117250b79cbf35b public boolean bE() { return this.glowing || this.world.isClientSide && this.getFlag(6); } -@@ -2899,6 +2916,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -2899,6 +2915,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne public void setHeadRotation(float f) {} @@ -230,7 +254,7 @@ index 4e084e26e0430422b0348a0a91f0e412ff3a9eff..4e1363050bef7fff9117250b79cbf35b public void n(float f) {} public boolean bL() { -@@ -3340,6 +3358,18 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -3340,6 +3357,18 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne return false; } @@ -249,20 +273,20 @@ index 4e084e26e0430422b0348a0a91f0e412ff3a9eff..4e1363050bef7fff9117250b79cbf35b @Override public void sendMessage(IChatBaseComponent ichatbasecomponent, UUID uuid) {} -@@ -3792,4 +3822,47 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -3792,4 +3821,47 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne return ((ChunkProviderServer) world.getChunkProvider()).isInEntityTickingChunk(this); } // Paper end + + // Purpur start -+ private EntityHuman rider; ++ private EntityHuman purpurRider; + -+ public EntityHuman getRider() { -+ return rider; ++ public EntityHuman getPurpurRider() { ++ return purpurRider; + } + -+ public boolean hasRider() { -+ return rider != null; ++ public boolean hasPurpurRider() { ++ return purpurRider != null; + } + + public boolean isRidable() { @@ -298,10 +322,19 @@ index 4e084e26e0430422b0348a0a91f0e412ff3a9eff..4e1363050bef7fff9117250b79cbf35b + // Purpur end } diff --git a/src/main/java/net/minecraft/world/entity/EntityInsentient.java b/src/main/java/net/minecraft/world/entity/EntityInsentient.java -index e10377b379079bc467a60abe719075c5ef73e858..df33b46ff1267f0f2692a8956438f3bd1e2a3086 100644 +index e10377b379079bc467a60abe719075c5ef73e858..a5e3809d60a78d4638c81a2279ce15e6a66fd336 100644 --- a/src/main/java/net/minecraft/world/entity/EntityInsentient.java +++ b/src/main/java/net/minecraft/world/entity/EntityInsentient.java -@@ -100,7 +100,7 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -46,8 +46,6 @@ import net.minecraft.world.entity.ai.sensing.EntitySenses; + import net.minecraft.world.entity.decoration.EntityHanging; + import net.minecraft.world.entity.decoration.EntityLeash; + import net.minecraft.world.entity.item.EntityItem; +-import net.minecraft.world.entity.monster.EntityBlaze; +-import net.minecraft.world.entity.monster.EntityEnderman; + import net.minecraft.world.entity.monster.IMonster; + import net.minecraft.world.entity.npc.EntityVillagerAbstract; + import net.minecraft.world.entity.player.EntityHuman; +@@ -100,7 +98,7 @@ public abstract class EntityInsentient extends EntityLiving { protected int f; protected ControllerLook lookController; protected ControllerMove moveController; @@ -310,7 +343,7 @@ index e10377b379079bc467a60abe719075c5ef73e858..df33b46ff1267f0f2692a8956438f3bd private final EntityAIBodyControl c; protected NavigationAbstract navigation; public PathfinderGoalSelector goalSelector; -@@ -138,8 +138,8 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -138,8 +136,8 @@ public abstract class EntityInsentient extends EntityLiving { this.bA = -1.0F; this.goalSelector = new PathfinderGoalSelector(world.getMethodProfilerSupplier()); this.targetSelector = new PathfinderGoalSelector(world.getMethodProfilerSupplier()); @@ -321,7 +354,7 @@ index e10377b379079bc467a60abe719075c5ef73e858..df33b46ff1267f0f2692a8956438f3bd this.bi = new ControllerJump(this); this.c = this.r(); this.navigation = this.b(world); -@@ -328,10 +328,10 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -328,10 +326,10 @@ public abstract class EntityInsentient extends EntityLiving { // Purpur start private void incrementTicksSinceLastInteraction() { ++ticksSinceLastInteraction; @@ -329,14 +362,14 @@ index e10377b379079bc467a60abe719075c5ef73e858..df33b46ff1267f0f2692a8956438f3bd - // ticksSinceLastInteraction = 0; - // return; - //} -+ if (hasRider()) { ++ if (hasPurpurRider()) { + ticksSinceLastInteraction = 0; + return; + } if (world.purpurConfig.entityLifeSpan <= 0) { return; // feature disabled } -@@ -626,14 +626,17 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -626,14 +624,17 @@ public abstract class EntityInsentient extends EntityLiving { return super.dp(); } @@ -354,7 +387,7 @@ index e10377b379079bc467a60abe719075c5ef73e858..df33b46ff1267f0f2692a8956438f3bd public void v(float f) { this.aR = f; } -@@ -1332,7 +1335,7 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -1332,7 +1333,7 @@ public abstract class EntityInsentient extends EntityLiving { protected void a(EntityHuman entityhuman, EntityInsentient entityinsentient) {} protected EnumInteractionResult b(EntityHuman entityhuman, EnumHand enumhand) { @@ -363,7 +396,7 @@ index e10377b379079bc467a60abe719075c5ef73e858..df33b46ff1267f0f2692a8956438f3bd } public boolean ev() { -@@ -1713,4 +1716,54 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -1713,4 +1714,54 @@ public abstract class EntityInsentient extends EntityLiving { this.unleash(true, event.isDropLeash()); // Paper end } @@ -419,7 +452,7 @@ index e10377b379079bc467a60abe719075c5ef73e858..df33b46ff1267f0f2692a8956438f3bd + // Purpur end } diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index c9caa6919d47283331a9e0c79b22590b80293693..84cb148faacb0587e771410680a0b053822cebf8 100644 +index c9caa6919d47283331a9e0c79b22590b80293693..8b7a2eaa4f73b72f9022dbf58a46239541c81ff7 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -559,7 +559,7 @@ public abstract class EntityLiving extends Entity { @@ -471,12 +504,12 @@ index c9caa6919d47283331a9e0c79b22590b80293693..84cb148faacb0587e771410680a0b053 } } + // Purpur start -+ if (hasRider()) { -+ getRider().resetIdleTimer(); ++ if (hasPurpurRider()) { ++ getPurpurRider().resetIdleTimer(); + if (((WorldServer) world).hasRidableMoveEvent && this instanceof EntityInsentient) { + Location from = new Location(world.getWorld(), lastX, lastY, lastZ, lastYaw, lastPitch); + Location to = new Location(world.getWorld(), locX(), locY(), locZ(), yaw, pitch); -+ net.pl3x.purpur.event.entity.RidableMoveEvent event = new net.pl3x.purpur.event.entity.RidableMoveEvent((org.bukkit.entity.Mob) getBukkitLivingEntity(), (Player) getRider().getBukkitEntity(), from, to.clone()); ++ net.pl3x.purpur.event.entity.RidableMoveEvent event = new net.pl3x.purpur.event.entity.RidableMoveEvent((org.bukkit.entity.Mob) getBukkitLivingEntity(), (Player) getPurpurRider().getBukkitEntity(), from, to.clone()); + if (!event.callEvent()) { + setLocation(from.getX(), from.getY(), from.getZ(), from.getYaw(), from.getPitch()); + } else if (!to.equals(event.getTo())) { @@ -646,7 +679,7 @@ index 2aa5789437ba7eb20579da238c407a65a25b1d44..434229b146978ba7dc08a83ea55fdb3a public ControllerMove(EntityInsentient entityinsentient) { diff --git a/src/main/java/net/minecraft/world/entity/ambient/EntityBat.java b/src/main/java/net/minecraft/world/entity/ambient/EntityBat.java -index 341b95f73a839a548b202e7bf97fd18760c71fd8..eed98fd7e84b4f390b8b356258f5011da561a343 100644 +index 341b95f73a839a548b202e7bf97fd18760c71fd8..a99c2b4281196ad3b93292da52fc4c6bf4207181 100644 --- a/src/main/java/net/minecraft/world/entity/ambient/EntityBat.java +++ b/src/main/java/net/minecraft/world/entity/ambient/EntityBat.java @@ -22,6 +22,7 @@ import net.minecraft.world.entity.EntityPose; @@ -693,7 +726,7 @@ index 341b95f73a839a548b202e7bf97fd18760c71fd8..eed98fd7e84b4f390b8b356258f5011d + @Override + public void g(Vec3D vec3d) { + super.g(vec3d); -+ if (hasRider() && !onGround) { ++ if (hasPurpurRider() && !onGround) { + float speed = (float) getAttributeInstance(GenericAttributes.FLYING_SPEED).getValue() * 2; + setSpeed(speed); + Vec3D mot = getMot(); @@ -720,7 +753,7 @@ index 341b95f73a839a548b202e7bf97fd18760c71fd8..eed98fd7e84b4f390b8b356258f5011d @Override protected void mobTick() { + // Purpur start -+ if (hasRider()) { ++ if (hasPurpurRider()) { + Vec3D mot = getMot(); + setMot(mot.x, mot.y + (getVertical() > 0 ? 0.07D : 0.0D), mot.z); + return; @@ -730,7 +763,7 @@ index 341b95f73a839a548b202e7bf97fd18760c71fd8..eed98fd7e84b4f390b8b356258f5011d BlockPosition blockposition = this.getChunkCoordinates(); BlockPosition blockposition1 = blockposition.up(); diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityBee.java b/src/main/java/net/minecraft/world/entity/animal/EntityBee.java -index 1d1f71a995a99b2101891a7a5bda7bec5d67f118..0c6d3dae70eeea844a31f9edf54410db13e0b04b 100644 +index 1d1f71a995a99b2101891a7a5bda7bec5d67f118..bcd510e0bf647a240edfaac1348119c5e1d7dc42 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityBee.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityBee.java @@ -22,6 +22,7 @@ import net.minecraft.network.protocol.game.PacketDebug; @@ -741,7 +774,7 @@ index 1d1f71a995a99b2101891a7a5bda7bec5d67f118..0c6d3dae70eeea844a31f9edf54410db import net.minecraft.server.level.WorldServer; import net.minecraft.sounds.SoundEffect; import net.minecraft.sounds.SoundEffects; -@@ -44,6 +45,7 @@ import net.minecraft.world.entity.EntityPose; +@@ -44,10 +45,10 @@ import net.minecraft.world.entity.EntityPose; import net.minecraft.world.entity.EntitySize; import net.minecraft.world.entity.EntityTypes; import net.minecraft.world.entity.EnumMonsterType; @@ -749,7 +782,11 @@ index 1d1f71a995a99b2101891a7a5bda7bec5d67f118..0c6d3dae70eeea844a31f9edf54410db import net.minecraft.world.entity.IEntityAngerable; import net.minecraft.world.entity.ai.attributes.AttributeProvider; import net.minecraft.world.entity.ai.attributes.GenericAttributes; -@@ -111,6 +113,7 @@ public class EntityBee extends EntityAnimal implements IEntityAngerable, EntityB +-import net.minecraft.world.entity.ai.control.ControllerLook; + import net.minecraft.world.entity.ai.control.ControllerMoveFlying; + import net.minecraft.world.entity.ai.goal.PathfinderGoal; + import net.minecraft.world.entity.ai.goal.PathfinderGoalBreed; +@@ -111,6 +112,7 @@ public class EntityBee extends EntityAnimal implements IEntityAngerable, EntityB public EntityBee(EntityTypes entitytypes, World world) { super(entitytypes, world); @@ -757,7 +794,7 @@ index 1d1f71a995a99b2101891a7a5bda7bec5d67f118..0c6d3dae70eeea844a31f9edf54410db // Paper start - apply gravity to bees when they get stuck in the void, fixes MC-167279 this.moveController = new ControllerMoveFlying(this, 20, true) { @Override -@@ -120,6 +123,22 @@ public class EntityBee extends EntityAnimal implements IEntityAngerable, EntityB +@@ -120,6 +122,22 @@ public class EntityBee extends EntityAnimal implements IEntityAngerable, EntityB } super.tick(); } @@ -765,8 +802,8 @@ index 1d1f71a995a99b2101891a7a5bda7bec5d67f118..0c6d3dae70eeea844a31f9edf54410db + // Purpur start + @Override + public void a() { // tick -+ if (getEntity().hasRider()) { -+ flyingController.tick(getEntity().getRider()); ++ if (getEntity().hasPurpurRider()) { ++ flyingController.tick(getEntity().getPurpurRider()); + } else { + tick(); + } @@ -774,13 +811,13 @@ index 1d1f71a995a99b2101891a7a5bda7bec5d67f118..0c6d3dae70eeea844a31f9edf54410db + + @Override + public boolean b() { // isUpdating -+ return getEntity().hasRider() || super.b(); ++ return getEntity().hasPurpurRider() || super.b(); + } + // Purpur end }; // Paper end this.lookController = new EntityBee.j(this); -@@ -130,6 +149,35 @@ public class EntityBee extends EntityAnimal implements IEntityAngerable, EntityB +@@ -130,6 +148,35 @@ public class EntityBee extends EntityAnimal implements IEntityAngerable, EntityB this.a(PathType.FENCE, -1.0F); } @@ -803,7 +840,7 @@ index 1d1f71a995a99b2101891a7a5bda7bec5d67f118..0c6d3dae70eeea844a31f9edf54410db + @Override + public void g(Vec3D vec3d) { + super.g(vec3d); -+ if (hasRider() && !onGround) { ++ if (hasPurpurRider() && !onGround) { + float speed = (float) getAttributeInstance(GenericAttributes.FLYING_SPEED).getValue() * 2; + setSpeed(speed); + Vec3D mot = getMot(); @@ -816,7 +853,7 @@ index 1d1f71a995a99b2101891a7a5bda7bec5d67f118..0c6d3dae70eeea844a31f9edf54410db @Override protected void initDatawatcher() { super.initDatawatcher(); -@@ -144,6 +192,7 @@ public class EntityBee extends EntityAnimal implements IEntityAngerable, EntityB +@@ -144,6 +191,7 @@ public class EntityBee extends EntityAnimal implements IEntityAngerable, EntityB @Override protected void initPathfinder() { @@ -824,7 +861,7 @@ index 1d1f71a995a99b2101891a7a5bda7bec5d67f118..0c6d3dae70eeea844a31f9edf54410db this.goalSelector.a(0, new EntityBee.b(this, 1.399999976158142D, true)); this.goalSelector.a(1, new EntityBee.d()); this.goalSelector.a(2, new PathfinderGoalBreed(this, 1.0D)); -@@ -159,6 +208,7 @@ public class EntityBee extends EntityAnimal implements IEntityAngerable, EntityB +@@ -159,6 +207,7 @@ public class EntityBee extends EntityAnimal implements IEntityAngerable, EntityB this.goalSelector.a(7, new EntityBee.g()); this.goalSelector.a(8, new EntityBee.l()); this.goalSelector.a(9, new PathfinderGoalFloat(this)); @@ -832,7 +869,7 @@ index 1d1f71a995a99b2101891a7a5bda7bec5d67f118..0c6d3dae70eeea844a31f9edf54410db this.targetSelector.a(1, (new EntityBee.h(this)).a(new Class[0])); this.targetSelector.a(2, new EntityBee.c(this)); this.targetSelector.a(3, new PathfinderGoalUniversalAngerReset<>(this, true)); -@@ -629,6 +679,7 @@ public class EntityBee extends EntityAnimal implements IEntityAngerable, EntityB +@@ -629,6 +678,7 @@ public class EntityBee extends EntityAnimal implements IEntityAngerable, EntityB private d() { super(); // CraftBukkit - decompile error @@ -840,7 +877,7 @@ index 1d1f71a995a99b2101891a7a5bda7bec5d67f118..0c6d3dae70eeea844a31f9edf54410db } @Override -@@ -691,6 +742,7 @@ public class EntityBee extends EntityAnimal implements IEntityAngerable, EntityB +@@ -691,6 +741,7 @@ public class EntityBee extends EntityAnimal implements IEntityAngerable, EntityB private g() { super(); // CraftBukkit - decompile error @@ -848,7 +885,7 @@ index 1d1f71a995a99b2101891a7a5bda7bec5d67f118..0c6d3dae70eeea844a31f9edf54410db } @Override -@@ -755,6 +807,7 @@ public class EntityBee extends EntityAnimal implements IEntityAngerable, EntityB +@@ -755,6 +806,7 @@ public class EntityBee extends EntityAnimal implements IEntityAngerable, EntityB private i() { super(); // CraftBukkit - decompile error @@ -856,7 +893,7 @@ index 1d1f71a995a99b2101891a7a5bda7bec5d67f118..0c6d3dae70eeea844a31f9edf54410db } @Override -@@ -978,16 +1031,16 @@ public class EntityBee extends EntityAnimal implements IEntityAngerable, EntityB +@@ -978,16 +1030,16 @@ public class EntityBee extends EntityAnimal implements IEntityAngerable, EntityB } } @@ -877,7 +914,7 @@ index 1d1f71a995a99b2101891a7a5bda7bec5d67f118..0c6d3dae70eeea844a31f9edf54410db } diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityCat.java b/src/main/java/net/minecraft/world/entity/animal/EntityCat.java -index c8f529b3fd227ce3354f442038b27cd716f57254..3efb010d0e045d14051a33bd7465669e415c26bd 100644 +index c8f529b3fd227ce3354f442038b27cd716f57254..bac3035e2382df2d79e592b02395753eee08fa4b 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityCat.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityCat.java @@ -14,6 +14,7 @@ import net.minecraft.network.syncher.DataWatcher; @@ -952,7 +989,7 @@ index c8f529b3fd227ce3354f442038b27cd716f57254..3efb010d0e045d14051a33bd7465669e @Override public EnumInteractionResult b(EntityHuman entityhuman, EnumHand enumhand) { -+ if (hasRider()) return EnumInteractionResult.PASS; // Purpur ++ if (hasPurpurRider()) return EnumInteractionResult.PASS; // Purpur ItemStack itemstack = entityhuman.b(enumhand); Item item = itemstack.getItem(); @@ -1033,7 +1070,7 @@ index aac7992a30a0b69cb34097aeb0fe021f54a3cdac..897e0d5ca44a0c475634f08e7d4fcf12 protected ItemStack eK() { return new ItemStack(Items.COD_BUCKET); diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityCow.java b/src/main/java/net/minecraft/world/entity/animal/EntityCow.java -index 962dde5fcc617bc39b7d06a1e295370b9d60696c..cad256514c7df92847522c8d7ddf45ebe02658c4 100644 +index 962dde5fcc617bc39b7d06a1e295370b9d60696c..b2d3fc3151a952ac783101443772736a206a6a3b 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityCow.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityCow.java @@ -2,6 +2,7 @@ package net.minecraft.world.entity.animal; @@ -1071,7 +1108,7 @@ index 962dde5fcc617bc39b7d06a1e295370b9d60696c..cad256514c7df92847522c8d7ddf45eb @Override public EnumInteractionResult b(EntityHuman entityhuman, EnumHand enumhand) { -+ if (hasRider()) return EnumInteractionResult.PASS; // Purpur ++ if (hasPurpurRider()) return EnumInteractionResult.PASS; // Purpur ItemStack itemstack = entityhuman.b(enumhand); if (itemstack.getItem() == Items.BUCKET && !this.isBaby()) { @@ -1125,7 +1162,7 @@ index 962dde5fcc617bc39b7d06a1e295370b9d60696c..cad256514c7df92847522c8d7ddf45eb this.world.addEntity(mooshroom); this.die(); diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityDolphin.java b/src/main/java/net/minecraft/world/entity/animal/EntityDolphin.java -index e0a9b931c26dbd4e7739d09ae45e1cee72ab210c..880c3aaf4e684209879dc921480619e7c61ee4a0 100644 +index e0a9b931c26dbd4e7739d09ae45e1cee72ab210c..e4442716b329f3101bfd39fc7ce13d5419b427bf 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityDolphin.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityDolphin.java @@ -16,6 +16,7 @@ import net.minecraft.network.syncher.DataWatcher; @@ -1161,13 +1198,13 @@ index e0a9b931c26dbd4e7739d09ae45e1cee72ab210c..880c3aaf4e684209879dc921480619e7 + + @Override + public boolean onSpacebar() { -+ if (spitCooldown == 0 && hasRider()) { ++ if (spitCooldown == 0 && hasPurpurRider()) { + spitCooldown = world.purpurConfig.dolphinSpitCooldown; -+ if (!hasRider()) { ++ if (!hasPurpurRider()) { + return false; + } + -+ org.bukkit.craftbukkit.entity.CraftPlayer player = (org.bukkit.craftbukkit.entity.CraftPlayer) getRider().getBukkitEntity(); ++ org.bukkit.craftbukkit.entity.CraftPlayer player = (org.bukkit.craftbukkit.entity.CraftPlayer) getPurpurRider().getBukkitEntity(); + if (!player.hasPermission("allow.special.dolphin")) { + return false; + } @@ -1266,10 +1303,18 @@ index e0a9b931c26dbd4e7739d09ae45e1cee72ab210c..880c3aaf4e684209879dc921480619e7 this.i.setMot(this.i.getMot().add(0.0D, 0.005D, 0.0D)); } diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityFish.java b/src/main/java/net/minecraft/world/entity/animal/EntityFish.java -index cbd7c37cd1d6f5dddcbc515ecc2d9df46e109bfa..bdbb389407a68d7f9fd7db366d710777ec3e2649 100644 +index cbd7c37cd1d6f5dddcbc515ecc2d9df46e109bfa..d9a5d5fb718f8c3d66844279622eae44fe826fff 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityFish.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityFish.java -@@ -8,6 +8,7 @@ import net.minecraft.nbt.NBTTagCompound; +@@ -1,13 +1,14 @@ + package net.minecraft.world.entity.animal; + + import java.util.Random; +-import java.util.function.Predicate; ++ + import net.minecraft.advancements.CriterionTriggers; + import net.minecraft.core.BlockPosition; + import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.syncher.DataWatcher; import net.minecraft.network.syncher.DataWatcherObject; import net.minecraft.network.syncher.DataWatcherRegistry; @@ -1277,7 +1322,15 @@ index cbd7c37cd1d6f5dddcbc515ecc2d9df46e109bfa..bdbb389407a68d7f9fd7db366d710777 import net.minecraft.server.level.EntityPlayer; import net.minecraft.sounds.SoundEffect; import net.minecraft.sounds.SoundEffects; -@@ -116,13 +117,12 @@ public abstract class EntityFish extends EntityWaterAnimal { +@@ -29,7 +30,6 @@ import net.minecraft.world.entity.ai.control.ControllerMove; + import net.minecraft.world.entity.ai.goal.PathfinderGoalAvoidTarget; + import net.minecraft.world.entity.ai.goal.PathfinderGoalPanic; + import net.minecraft.world.entity.ai.goal.PathfinderGoalRandomSwim; +-import net.minecraft.world.entity.ai.goal.PathfinderGoalSelector; + import net.minecraft.world.entity.ai.navigation.NavigationAbstract; + import net.minecraft.world.entity.ai.navigation.NavigationGuardian; + import net.minecraft.world.entity.player.EntityHuman; +@@ -116,13 +116,12 @@ public abstract class EntityFish extends EntityWaterAnimal { @Override protected void initPathfinder() { super.initPathfinder(); @@ -1297,16 +1350,16 @@ index cbd7c37cd1d6f5dddcbc515ecc2d9df46e109bfa..bdbb389407a68d7f9fd7db366d710777 } @Override -@@ -133,7 +133,7 @@ public abstract class EntityFish extends EntityWaterAnimal { +@@ -133,7 +132,7 @@ public abstract class EntityFish extends EntityWaterAnimal { @Override public void g(Vec3D vec3d) { if (this.doAITick() && this.isInWater()) { - this.a(0.01F, vec3d); -+ this.a(hasRider() ? getSpeed() : 0.01F, vec3d); // Purpur ++ this.a(hasPurpurRider() ? getSpeed() : 0.01F, vec3d); // Purpur this.move(EnumMoveType.SELF, this.getMot()); this.setMot(this.getMot().a(0.9D)); if (this.getGoalTarget() == null) { -@@ -220,9 +220,9 @@ public abstract class EntityFish extends EntityWaterAnimal { +@@ -220,9 +219,9 @@ public abstract class EntityFish extends EntityWaterAnimal { @Override protected void b(BlockPosition blockposition, IBlockData iblockdata) {} @@ -1318,7 +1371,7 @@ index cbd7c37cd1d6f5dddcbc515ecc2d9df46e109bfa..bdbb389407a68d7f9fd7db366d710777 a(EntityFish entityfish) { super(entityfish); -@@ -230,7 +230,15 @@ public abstract class EntityFish extends EntityWaterAnimal { +@@ -230,7 +229,15 @@ public abstract class EntityFish extends EntityWaterAnimal { } @Override @@ -1349,7 +1402,7 @@ index 21780f5dbcd4384649f08161f0812202ee94c96d..a03b0ed0a3f74ccb7572e1c4fa8e345a @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityFox.java b/src/main/java/net/minecraft/world/entity/animal/EntityFox.java -index cea46348c0876e168376061fbaf258048e9358cb..0c1151b598aa681e63ddaac29e4a589f917fd03b 100644 +index cea46348c0876e168376061fbaf258048e9358cb..f14e5958db1219277ce8529f0781a49382bf3a3e 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityFox.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityFox.java @@ -21,6 +21,7 @@ import net.minecraft.network.syncher.DataWatcher; @@ -1360,7 +1413,16 @@ index cea46348c0876e168376061fbaf258048e9358cb..0c1151b598aa681e63ddaac29e4a589f import net.minecraft.server.level.EntityPlayer; import net.minecraft.server.level.WorldServer; import net.minecraft.sounds.SoundEffect; -@@ -127,6 +128,39 @@ public class EntityFox extends EntityAnimal { +@@ -48,8 +49,6 @@ import net.minecraft.world.entity.GroupDataEntity; + import net.minecraft.world.entity.IEntitySelector; + import net.minecraft.world.entity.ai.attributes.AttributeProvider; + import net.minecraft.world.entity.ai.attributes.GenericAttributes; +-import net.minecraft.world.entity.ai.control.ControllerLook; +-import net.minecraft.world.entity.ai.control.ControllerMove; + import net.minecraft.world.entity.ai.goal.PathfinderGoal; + import net.minecraft.world.entity.ai.goal.PathfinderGoalAvoidTarget; + import net.minecraft.world.entity.ai.goal.PathfinderGoalBreed; +@@ -127,6 +126,39 @@ public class EntityFox extends EntityAnimal { this.setCanPickupLoot(true); } @@ -1377,7 +1439,7 @@ index cea46348c0876e168376061fbaf258048e9358cb..0c1151b598aa681e63ddaac29e4a589f + + @Override + public float getJumpHeight() { -+ return !hasRider() ? super.getJumpHeight() : 0.5F; ++ return !hasPurpurRider() ? super.getJumpHeight() : 0.5F; + } + + @Override @@ -1400,7 +1462,7 @@ index cea46348c0876e168376061fbaf258048e9358cb..0c1151b598aa681e63ddaac29e4a589f @Override protected void initDatawatcher() { super.initDatawatcher(); -@@ -146,6 +180,7 @@ public class EntityFox extends EntityAnimal { +@@ -146,6 +178,7 @@ public class EntityFox extends EntityAnimal { return entityliving instanceof EntityFishSchool; }); this.goalSelector.a(0, new EntityFox.g()); @@ -1408,7 +1470,7 @@ index cea46348c0876e168376061fbaf258048e9358cb..0c1151b598aa681e63ddaac29e4a589f this.goalSelector.a(1, new EntityFox.b()); this.goalSelector.a(2, new EntityFox.n(2.2D)); this.goalSelector.a(3, new EntityFox.e(1.0D)); -@@ -171,6 +206,7 @@ public class EntityFox extends EntityAnimal { +@@ -171,6 +204,7 @@ public class EntityFox extends EntityAnimal { this.goalSelector.a(11, new EntityFox.p()); this.goalSelector.a(12, new EntityFox.j(this, EntityHuman.class, 24.0F)); this.goalSelector.a(13, new EntityFox.r()); @@ -1416,7 +1478,7 @@ index cea46348c0876e168376061fbaf258048e9358cb..0c1151b598aa681e63ddaac29e4a589f this.targetSelector.a(3, new EntityFox.a(EntityLiving.class, false, false, (entityliving) -> { return EntityFox.bt.test(entityliving) && !this.c(entityliving.getUniqueID()); })); -@@ -458,6 +494,7 @@ public class EntityFox extends EntityAnimal { +@@ -458,6 +492,7 @@ public class EntityFox extends EntityAnimal { return itemstack1.isEmpty() || this.bD > 0 && item.isFood() && !itemstack1.getItem().isFood(); } @@ -1424,7 +1486,7 @@ index cea46348c0876e168376061fbaf258048e9358cb..0c1151b598aa681e63ddaac29e4a589f private void m(ItemStack itemstack) { if (!itemstack.isEmpty() && !this.world.isClientSide) { EntityItem entityitem = new EntityItem(this.world, this.locX() + this.getLookDirection().x, this.locY() + 1.0D, this.locZ() + this.getLookDirection().z, itemstack); -@@ -553,6 +590,7 @@ public class EntityFox extends EntityAnimal { +@@ -553,6 +588,7 @@ public class EntityFox extends EntityAnimal { return this.t(16); } @@ -1432,7 +1494,7 @@ index cea46348c0876e168376061fbaf258048e9358cb..0c1151b598aa681e63ddaac29e4a589f public void u(boolean flag) { this.d(16, flag); } -@@ -595,6 +633,7 @@ public class EntityFox extends EntityAnimal { +@@ -595,6 +631,7 @@ public class EntityFox extends EntityAnimal { this.setSleeping(false); } @@ -1440,7 +1502,7 @@ index cea46348c0876e168376061fbaf258048e9358cb..0c1151b598aa681e63ddaac29e4a589f private void fd() { this.w(false); this.setCrouching(false); -@@ -760,16 +799,16 @@ public class EntityFox extends EntityAnimal { +@@ -760,16 +797,16 @@ public class EntityFox extends EntityAnimal { } } @@ -1460,7 +1522,7 @@ index cea46348c0876e168376061fbaf258048e9358cb..0c1151b598aa681e63ddaac29e4a589f } } -@@ -1439,16 +1478,16 @@ public class EntityFox extends EntityAnimal { +@@ -1439,16 +1476,16 @@ public class EntityFox extends EntityAnimal { } } @@ -1771,7 +1833,7 @@ index 711b322007a0973ff0aebf3c25efbae8fc7741d0..0d912399e1975d9c0d5525f5b89049f4 } } diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityParrot.java b/src/main/java/net/minecraft/world/entity/animal/EntityParrot.java -index 699dd0ac1f8d0d340ab1a560106336fc7cc95d5b..5c26eea7e3e93dc7bcd8b86519e84db58b70cecb 100644 +index 699dd0ac1f8d0d340ab1a560106336fc7cc95d5b..9f705b75a14ba456808485ce4ddef9550aac3fe9 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityParrot.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityParrot.java @@ -16,6 +16,7 @@ import net.minecraft.nbt.NBTTagCompound; @@ -1800,8 +1862,8 @@ index 699dd0ac1f8d0d340ab1a560106336fc7cc95d5b..5c26eea7e3e93dc7bcd8b86519e84db5 + this.moveController = new ControllerMoveFlying(this, 10, false) { + @Override + public void a() { // tick -+ if (getEntity().hasRider()) { -+ flyingController.tick(getEntity().getRider()); ++ if (getEntity().hasPurpurRider()) { ++ flyingController.tick(getEntity().getPurpurRider()); + } else { + tick(); + } @@ -1809,7 +1871,7 @@ index 699dd0ac1f8d0d340ab1a560106336fc7cc95d5b..5c26eea7e3e93dc7bcd8b86519e84db5 + + @Override + public boolean b() { // isUpdating -+ return getEntity().hasRider() ? getForward() != 0 || getStrafe() != 0 : super.b(); ++ return getEntity().hasPurpurRider() ? getForward() != 0 || getStrafe() != 0 : super.b(); + } + }; + // Purpur end @@ -1837,7 +1899,7 @@ index 699dd0ac1f8d0d340ab1a560106336fc7cc95d5b..5c26eea7e3e93dc7bcd8b86519e84db5 + @Override + public void g(Vec3D vec3d) { + super.g(vec3d); -+ if (hasRider() && !onGround) { ++ if (hasPurpurRider() && !onGround) { + float speed = (float) getAttributeInstance(GenericAttributes.FLYING_SPEED).getValue() * 2; + setSpeed(speed); + Vec3D mot = getMot(); @@ -1898,7 +1960,7 @@ index 1a540e41e6161d011ca4ed30c68ae9df4567b8db..cef69f99d7bc9b6605b9654c50f43a1e this.goalSelector.a(3, new PathfinderGoalBreed(this, 1.0D)); this.goalSelector.a(4, new PathfinderGoalTempt(this, 1.2D, RecipeItemStack.a(Items.CARROT_ON_A_STICK), false)); diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityPolarBear.java b/src/main/java/net/minecraft/world/entity/animal/EntityPolarBear.java -index f25f5ced218555af0d62844a78842cfc7599d608..e686491a469573a3fc466c46be1b7430ff02ba53 100644 +index f25f5ced218555af0d62844a78842cfc7599d608..b46315700b8857318b03b83097fcf829047f8ca4 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityPolarBear.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityPolarBear.java @@ -14,6 +14,7 @@ import net.minecraft.network.syncher.DataWatcher; @@ -1933,7 +1995,7 @@ index f25f5ced218555af0d62844a78842cfc7599d608..e686491a469573a3fc466c46be1b7430 + @Override + public boolean onSpacebar() { + if (!isStanding()) { -+ if (hasRider() && getRider().getForward() == 0 && getRider().getStrafe() == 0) { ++ if (hasPurpurRider() && getPurpurRider().getForward() == 0 && getPurpurRider().getStrafe() == 0) { + setStanding(true); + playSound(SoundEffects.ENTITY_POLAR_BEAR_WARNING, 1.0F, 1.0F); + } @@ -2013,7 +2075,7 @@ index e9f20d387ccdacfbb1a48dc31e2a6cd4843a0d7b..38fe79872b4b7f4ad4a030fbdf505efb @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityRabbit.java b/src/main/java/net/minecraft/world/entity/animal/EntityRabbit.java -index 180fc927074dc683ad4d482a00dd4e04ff7923d0..fff6bcff9d44c7d49cd2d0c334ea702531c74ea1 100644 +index 180fc927074dc683ad4d482a00dd4e04ff7923d0..4660f37bc89418e0c3767305d390a53f5c0d3c55 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityRabbit.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityRabbit.java @@ -10,6 +10,7 @@ import net.minecraft.network.syncher.DataWatcher; @@ -2024,7 +2086,15 @@ index 180fc927074dc683ad4d482a00dd4e04ff7923d0..fff6bcff9d44c7d49cd2d0c334ea7025 import net.minecraft.server.level.WorldServer; import net.minecraft.sounds.SoundCategory; import net.minecraft.sounds.SoundEffect; -@@ -75,6 +76,18 @@ public class EntityRabbit extends EntityAnimal { +@@ -27,7 +28,6 @@ import net.minecraft.world.entity.GroupDataEntity; + import net.minecraft.world.entity.ai.attributes.AttributeProvider; + import net.minecraft.world.entity.ai.attributes.GenericAttributes; + import net.minecraft.world.entity.ai.control.ControllerJump; +-import net.minecraft.world.entity.ai.control.ControllerMove; + import net.minecraft.world.entity.ai.goal.PathfinderGoalAvoidTarget; + import net.minecraft.world.entity.ai.goal.PathfinderGoalBreed; + import net.minecraft.world.entity.ai.goal.PathfinderGoalFloat; +@@ -75,6 +75,18 @@ public class EntityRabbit extends EntityAnimal { this.initializePathFinderGoals(); // CraftBukkit - moved code } @@ -2043,7 +2113,7 @@ index 180fc927074dc683ad4d482a00dd4e04ff7923d0..fff6bcff9d44c7d49cd2d0c334ea7025 // CraftBukkit start - code from constructor public void initializePathFinderGoals(){ this.i(0.0D); -@@ -83,7 +96,8 @@ public class EntityRabbit extends EntityAnimal { +@@ -83,7 +95,8 @@ public class EntityRabbit extends EntityAnimal { @Override public void initPathfinder() { @@ -2053,14 +2123,14 @@ index 180fc927074dc683ad4d482a00dd4e04ff7923d0..fff6bcff9d44c7d49cd2d0c334ea7025 this.goalSelector.a(1, new EntityRabbit.PathfinderGoalRabbitPanic(this, 2.2D)); this.goalSelector.a(2, new PathfinderGoalBreed(this, 0.8D)); this.goalSelector.a(3, new PathfinderGoalTempt(this, 1.0D, RecipeItemStack.a(Items.CARROT, Items.GOLDEN_CARROT, Blocks.DANDELION), false)); -@@ -96,7 +110,15 @@ public class EntityRabbit extends EntityAnimal { +@@ -96,7 +109,15 @@ public class EntityRabbit extends EntityAnimal { } @Override - protected float dJ() { + // Purpur start + public float getJumpHeight() { -+ if (hasRider()) { ++ if (hasPurpurRider()) { + if (getForward() < 0) { + setSpeed(getForward() * 2F); + } @@ -2070,7 +2140,7 @@ index 180fc927074dc683ad4d482a00dd4e04ff7923d0..fff6bcff9d44c7d49cd2d0c334ea7025 if (!this.positionChanged && (!this.moveController.b() || this.moveController.e() <= this.locY() + 0.5D)) { PathEntity pathentity = this.navigation.k(); -@@ -115,7 +137,7 @@ public class EntityRabbit extends EntityAnimal { +@@ -115,7 +136,7 @@ public class EntityRabbit extends EntityAnimal { } @Override @@ -2079,7 +2149,7 @@ index 180fc927074dc683ad4d482a00dd4e04ff7923d0..fff6bcff9d44c7d49cd2d0c334ea7025 super.jump(); double d0 = this.moveController.c(); -@@ -147,6 +169,7 @@ public class EntityRabbit extends EntityAnimal { +@@ -147,6 +168,7 @@ public class EntityRabbit extends EntityAnimal { } @@ -2087,12 +2157,12 @@ index 180fc927074dc683ad4d482a00dd4e04ff7923d0..fff6bcff9d44c7d49cd2d0c334ea7025 public void eK() { this.setJumping(true); this.br = 10; -@@ -161,6 +184,13 @@ public class EntityRabbit extends EntityAnimal { +@@ -161,6 +183,13 @@ public class EntityRabbit extends EntityAnimal { @Override public void mobTick() { + // Purpur start -+ if (hasRider()) { ++ if (hasPurpurRider()) { + handleJumping(); + return; + } @@ -2101,7 +2171,7 @@ index 180fc927074dc683ad4d482a00dd4e04ff7923d0..fff6bcff9d44c7d49cd2d0c334ea7025 if (this.bt > 0) { --this.bt; } -@@ -211,6 +241,39 @@ public class EntityRabbit extends EntityAnimal { +@@ -211,6 +240,39 @@ public class EntityRabbit extends EntityAnimal { this.bs = this.onGround; } @@ -2141,7 +2211,7 @@ index 180fc927074dc683ad4d482a00dd4e04ff7923d0..fff6bcff9d44c7d49cd2d0c334ea7025 @Override public boolean aO() { return false; -@@ -540,7 +603,7 @@ public class EntityRabbit extends EntityAnimal { +@@ -540,7 +602,7 @@ public class EntityRabbit extends EntityAnimal { } } @@ -2150,7 +2220,7 @@ index 180fc927074dc683ad4d482a00dd4e04ff7923d0..fff6bcff9d44c7d49cd2d0c334ea7025 private final EntityRabbit i; private double j; -@@ -551,14 +614,14 @@ public class EntityRabbit extends EntityAnimal { +@@ -551,14 +613,14 @@ public class EntityRabbit extends EntityAnimal { } @Override @@ -2167,7 +2237,7 @@ index 180fc927074dc683ad4d482a00dd4e04ff7923d0..fff6bcff9d44c7d49cd2d0c334ea7025 } @Override -@@ -585,14 +648,17 @@ public class EntityRabbit extends EntityAnimal { +@@ -585,14 +647,17 @@ public class EntityRabbit extends EntityAnimal { this.c = entityrabbit; } @@ -2245,7 +2315,7 @@ index 88bed962bc17242ee6a9c93b7e0fec8bc578b35f..8f3296031f220dd7bb3ae9fe2443e479 this.goalSelector.a(2, new PathfinderGoalBreed(this, 1.0D)); this.goalSelector.a(3, new PathfinderGoalTempt(this, 1.1D, RecipeItemStack.a(Items.WHEAT), false)); diff --git a/src/main/java/net/minecraft/world/entity/animal/EntitySnowman.java b/src/main/java/net/minecraft/world/entity/animal/EntitySnowman.java -index 44119f52a4f169ffcea53fb69393bfedfd1a62a7..cfcf67e99ae345f77a55771e6a25bdcdb4a9740a 100644 +index 44119f52a4f169ffcea53fb69393bfedfd1a62a7..a692b973717ecc56d808039418599a11aedc2c5a 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntitySnowman.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntitySnowman.java @@ -6,6 +6,7 @@ import net.minecraft.nbt.NBTTagCompound; @@ -2287,7 +2357,7 @@ index 44119f52a4f169ffcea53fb69393bfedfd1a62a7..cfcf67e99ae345f77a55771e6a25bdcd return; } -+ if (hasRider() && !world.purpurConfig.snowGolemLeaveTrailWhenRidden) return; // Purpur - don't leave snow trail when being ridden ++ if (hasPurpurRider() && !world.purpurConfig.snowGolemLeaveTrailWhenRidden) return; // Purpur - don't leave snow trail when being ridden IBlockData iblockdata = Blocks.SNOW.getBlockData(); for (int l = 0; l < 4; ++l) { @@ -2310,7 +2380,7 @@ index 44119f52a4f169ffcea53fb69393bfedfd1a62a7..cfcf67e99ae345f77a55771e6a25bdcd } diff --git a/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java b/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java -index e6757b22497c6e274c3999d58671653e931ebe2b..a9fa18931d93dd7fa428b8cd6a414d4b3a3b4fbb 100644 +index e6757b22497c6e274c3999d58671653e931ebe2b..777c3bcf267d6cf31300588826d3af6b55cab350 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java @@ -4,6 +4,7 @@ package net.minecraft.world.entity.animal; @@ -2392,7 +2462,7 @@ index e6757b22497c6e274c3999d58671653e931ebe2b..a9fa18931d93dd7fa428b8cd6a414d4b public void e() { + // Purpur start + EntitySquid squid = getSquid(); -+ EntityHuman rider = squid.getRider(); ++ EntityHuman rider = squid.getPurpurRider(); + if (rider != null) { + if (rider.jumping) { + squid.onSpacebar(); @@ -2784,7 +2854,7 @@ index 2e448a40dbf2fa5b4df4493f14738210615bab38..d57e7c02268e5d8a00b0b5897fa03dce + protected void eV() { if (world.purpurConfig.zombieHorseCanSwim) goalSelector.a(0, new PathfinderGoalFloat(this)); } // Purpur } diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/EntityLlama.java b/src/main/java/net/minecraft/world/entity/animal/horse/EntityLlama.java -index 1c6435bf2cd870b795f87368057d8dfc1e1c938a..d1bd7b9a6a8cfb6b609db4229b2f42a40b8b484f 100644 +index 1c6435bf2cd870b795f87368057d8dfc1e1c938a..d25177f9500a084e0f18a20b1eb1c4ac170048ec 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/EntityLlama.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/EntityLlama.java @@ -8,6 +8,7 @@ import net.minecraft.nbt.NBTTagCompound; @@ -2803,8 +2873,8 @@ index 1c6435bf2cd870b795f87368057d8dfc1e1c938a..d1bd7b9a6a8cfb6b609db4229b2f42a4 + this.moveController = new net.pl3x.purpur.controller.ControllerMoveWASD(this) { + @Override + public void a() { // tick -+ if (entity.hasRider() && hasSaddle()) { -+ tick(entity.getRider()); ++ if (entity.hasPurpurRider() && hasSaddle()) { ++ tick(entity.getPurpurRider()); + } else { + tick(); + } @@ -2813,8 +2883,8 @@ index 1c6435bf2cd870b795f87368057d8dfc1e1c938a..d1bd7b9a6a8cfb6b609db4229b2f42a4 + this.lookController = new net.pl3x.purpur.controller.ControllerLookWASD(this) { + @Override + public void a() { // tick -+ if (entity.hasRider() && hasSaddle()) { -+ tick(entity.getRider()); ++ if (entity.hasPurpurRider() && hasSaddle()) { ++ tick(entity.getPurpurRider()); + } else { + tick(); + } @@ -2927,7 +2997,7 @@ index f1065c2a37835d760fb57194f7edfd029f426b48..3f2065e2939be54639f44501f7aa8ee5 + // Purpur end } diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EntityEnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EntityEnderDragon.java -index 3fff101637708a1a12f9a457bd3512ae94a8f884..7f583c6c15f0191219eb911d901ea28d86c11489 100644 +index 3fff101637708a1a12f9a457bd3512ae94a8f884..b2d1a0144353a1da61221b59a0acc028b0cf746e 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EntityEnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EntityEnderDragon.java @@ -23,6 +23,7 @@ import net.minecraft.world.entity.Entity; @@ -2996,7 +3066,7 @@ index 3fff101637708a1a12f9a457bd3512ae94a8f884..7f583c6c15f0191219eb911d901ea28d @Override public void movementTick() { + // Purpur start -+ boolean hasRider = getRider() != null; ++ boolean hasRider = getPurpurRider() != null; + if (hasRider) { + if (!hadRider) { + hadRider = true; @@ -3077,7 +3147,7 @@ index 3fff101637708a1a12f9a457bd3512ae94a8f884..7f583c6c15f0191219eb911d901ea28d this.bF.b(this); } diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/EntityWither.java b/src/main/java/net/minecraft/world/entity/boss/wither/EntityWither.java -index 930fc752ec0a988b17bc556cd428161638a14f27..4c0a555cdb5bc34c73040b9533beaee56cbce70a 100644 +index 930fc752ec0a988b17bc556cd428161638a14f27..73875b925cbf527f91a7c0ec09d350a7a2ec1260 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/EntityWither.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/EntityWither.java @@ -12,6 +12,7 @@ import net.minecraft.network.chat.IChatBaseComponent; @@ -3104,7 +3174,7 @@ index 930fc752ec0a988b17bc556cd428161638a14f27..4c0a555cdb5bc34c73040b9533beaee5 import net.minecraft.world.entity.ai.attributes.AttributeProvider; import net.minecraft.world.entity.ai.attributes.GenericAttributes; import net.minecraft.world.entity.ai.goal.PathfinderGoal; -@@ -48,8 +51,12 @@ import net.minecraft.world.item.Items; +@@ -48,14 +51,16 @@ import net.minecraft.world.item.Items; import net.minecraft.world.level.Explosion; import net.minecraft.world.level.GameRules; import net.minecraft.world.level.IMaterial; @@ -3117,7 +3187,13 @@ index 930fc752ec0a988b17bc556cd428161638a14f27..4c0a555cdb5bc34c73040b9533beaee5 import net.minecraft.world.phys.Vec3D; // CraftBukkit start -@@ -82,6 +89,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity { + import net.minecraft.network.protocol.game.PacketPlayOutWorldEvent; +-import net.minecraft.server.MinecraftServer; +-import net.minecraft.server.level.WorldServer; + import net.minecraft.world.level.block.Blocks; + import org.bukkit.craftbukkit.event.CraftEventFactory; + import org.bukkit.event.entity.EntityRegainHealthEvent; +@@ -82,6 +87,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity { return entityliving.getMonsterType() != EnumMonsterType.UNDEAD && entityliving.ei(); }; private static final PathfinderTargetCondition bz = (new PathfinderTargetCondition()).a(20.0D).a(EntityWither.by); @@ -3125,7 +3201,7 @@ index 930fc752ec0a988b17bc556cd428161638a14f27..4c0a555cdb5bc34c73040b9533beaee5 // Paper start private boolean canPortal = false; -@@ -94,15 +102,122 @@ public class EntityWither extends EntityMonster implements IRangedEntity { +@@ -94,15 +100,122 @@ public class EntityWither extends EntityMonster implements IRangedEntity { this.setHealth(this.getMaxHealth()); this.getNavigation().d(true); this.f = 50; @@ -3151,7 +3227,7 @@ index 930fc752ec0a988b17bc556cd428161638a14f27..4c0a555cdb5bc34c73040b9533beaee5 + @Override + public void g(Vec3D vec3d) { + super.g(vec3d); -+ if (hasRider() && !onGround) { ++ if (hasPurpurRider() && !onGround) { + float speed = (float) getAttributeInstance(GenericAttributes.FLYING_SPEED).getValue() * 5F; + setSpeed(speed); + Vec3D mot = getMot(); @@ -3172,7 +3248,7 @@ index 930fc752ec0a988b17bc556cd428161638a14f27..4c0a555cdb5bc34c73040b9533beaee5 + + @Override + public boolean onClick(EnumHand hand) { -+ return shoot(getRider(), hand == EnumHand.MAIN_HAND ? new int[]{1} : new int[]{2}); ++ return shoot(getPurpurRider(), hand == EnumHand.MAIN_HAND ? new int[]{1} : new int[]{2}); + } + + public boolean shoot(EntityHuman rider, int[] heads) { @@ -3249,12 +3325,12 @@ index 930fc752ec0a988b17bc556cd428161638a14f27..4c0a555cdb5bc34c73040b9533beaee5 this.targetSelector.a(1, new PathfinderGoalHurtByTarget(this, new Class[0])); if(this.world.paperConfig.fixWitherTargetingBug) this.targetSelector.a(2, new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, 0, false, false, null)); // Paper - Fix MC-29274 this.targetSelector.a(2, new PathfinderGoalNearestAttackableTarget<>(this, EntityInsentient.class, 0, false, false, EntityWither.by)); -@@ -245,6 +360,16 @@ public class EntityWither extends EntityMonster implements IRangedEntity { +@@ -245,6 +358,16 @@ public class EntityWither extends EntityMonster implements IRangedEntity { @Override protected void mobTick() { + // Purpur start -+ if (hasRider()) { ++ if (hasPurpurRider()) { + Vec3D mot = getMot(); + setMot(mot.x, mot.y + (getVertical() > 0 ? 0.07D : 0.0D), mot.z); + } @@ -3266,7 +3342,7 @@ index 930fc752ec0a988b17bc556cd428161638a14f27..4c0a555cdb5bc34c73040b9533beaee5 int i; if (this.getInvul() > 0) { -@@ -428,7 +553,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity { +@@ -428,7 +551,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity { this.bossBattle.removePlayer(entityplayer); } @@ -3275,7 +3351,7 @@ index 930fc752ec0a988b17bc556cd428161638a14f27..4c0a555cdb5bc34c73040b9533beaee5 if (i <= 0) { return this.locX(); } else { -@@ -439,11 +564,11 @@ public class EntityWither extends EntityMonster implements IRangedEntity { +@@ -439,11 +562,11 @@ public class EntityWither extends EntityMonster implements IRangedEntity { } } @@ -3289,7 +3365,7 @@ index 930fc752ec0a988b17bc556cd428161638a14f27..4c0a555cdb5bc34c73040b9533beaee5 if (i <= 0) { return this.locZ(); } else { -@@ -567,7 +692,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity { +@@ -567,7 +690,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity { } public static AttributeProvider.Builder eK() { @@ -3298,22 +3374,22 @@ index 930fc752ec0a988b17bc556cd428161638a14f27..4c0a555cdb5bc34c73040b9533beaee5 } public int getInvul() { -@@ -579,11 +704,11 @@ public class EntityWither extends EntityMonster implements IRangedEntity { +@@ -579,11 +702,11 @@ public class EntityWither extends EntityMonster implements IRangedEntity { } public int getHeadTarget(int i) { - return (Integer) this.datawatcher.get((DataWatcherObject) EntityWither.bo.get(i)); -+ return hasRider() ? 0 : this.datawatcher.get(EntityWither.bo.get(i)); // Purpur ++ return hasPurpurRider() ? 0 : this.datawatcher.get(EntityWither.bo.get(i)); // Purpur } public void setHeadTarget(int i, int j) { - this.datawatcher.set((DataWatcherObject) EntityWither.bo.get(i), j); -+ if (!hasRider()) this.datawatcher.set(EntityWither.bo.get(i), j); // Purpur ++ if (!hasPurpurRider()) this.datawatcher.set(EntityWither.bo.get(i), j); // Purpur } public final boolean isPowered() { return this.S_(); } // Paper - OBFHELPER diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityBlaze.java b/src/main/java/net/minecraft/world/entity/monster/EntityBlaze.java -index 88a4dcf9feaa5f66da1394c139b795582c00a8ac..9a109ed062e5abedaad295383aca6441321da276 100644 +index 88a4dcf9feaa5f66da1394c139b795582c00a8ac..6553fd92c26d71ac0a60bd046c7f968f2dfe6667 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityBlaze.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityBlaze.java @@ -5,6 +5,7 @@ import net.minecraft.core.particles.Particles; @@ -3363,7 +3439,7 @@ index 88a4dcf9feaa5f66da1394c139b795582c00a8ac..9a109ed062e5abedaad295383aca6441 + @Override + public void g(Vec3D vec3d) { + super.g(vec3d); -+ if (hasRider() && !onGround) { ++ if (hasPurpurRider() && !onGround) { + float speed = (float) getAttributeInstance(GenericAttributes.FLYING_SPEED).getValue(); + setSpeed(speed); + Vec3D mot = getMot(); @@ -3398,7 +3474,7 @@ index 88a4dcf9feaa5f66da1394c139b795582c00a8ac..9a109ed062e5abedaad295383aca6441 @Override protected void mobTick() { + // Purpur start -+ if (hasRider()) { ++ if (hasPurpurRider()) { + Vec3D mot = getMot(); + setMot(mot.x, getVertical() > 0 ? 0.07D : -0.07D, mot.z); + return; @@ -3432,7 +3508,7 @@ index 65d0027186f19f10292ea64976ebb93c12b98394..27baf5cde99d8f25b1e7583c30339fcc return EntitySpider.eK().a(GenericAttributes.MAX_HEALTH, 12.0D); } diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java b/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java -index 09df2bd3b523072de0e9858e6e707e3721474422..2cb9908a5c53528b2e02a1231752adc5ad8354f8 100644 +index 09df2bd3b523072de0e9858e6e707e3721474422..1daacdd75c709cd5508434b41589bd57032de27c 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java @@ -6,6 +6,7 @@ import net.minecraft.nbt.NBTTagCompound; @@ -3481,8 +3557,8 @@ index 09df2bd3b523072de0e9858e6e707e3721474422..2cb9908a5c53528b2e02a1231752adc5 + if (powerToggleDelay > 0) { + powerToggleDelay--; + } -+ if (hasRider()) { -+ if (getRider().getForward() != 0 || getRider().getStrafe() != 0) { ++ if (hasPurpurRider()) { ++ if (getPurpurRider().getForward() != 0 || getPurpurRider().getStrafe() != 0) { + spacebarCharge = 0; + setIgnited(false); + } @@ -3508,7 +3584,7 @@ index 09df2bd3b523072de0e9858e6e707e3721474422..2cb9908a5c53528b2e02a1231752adc5 + spacebarCharge++; + if (spacebarCharge > maxFuseTicks - 2) { + spacebarCharge = 0; -+ if (getRider().getBukkitEntity().hasPermission("allow.powered.creeper")) { ++ if (getPurpurRider().getBukkitEntity().hasPermission("allow.powered.creeper")) { + powerToggleDelay = 20; + setPowered(!isPowered()); + setIgnited(false); @@ -3516,8 +3592,8 @@ index 09df2bd3b523072de0e9858e6e707e3721474422..2cb9908a5c53528b2e02a1231752adc5 + } + } + if (!isIgnited()) { -+ if (hasRider() && getRider().getForward() == 0 && getRider().getStrafe() == 0 && -+ getRider().getBukkitEntity().hasPermission("allow.special.creeper")) { ++ if (hasPurpurRider() && getPurpurRider().getForward() == 0 && getPurpurRider().getStrafe() == 0 && ++ getPurpurRider().getBukkitEntity().hasPermission("allow.special.creeper")) { + setIgnited(true); + return true; + } @@ -3614,7 +3690,7 @@ index ea776755767f29e49de2792afa30f79420d0fa4c..1d4039d61a2c77a38a31947010cee26f @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java b/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java -index 52aa47036acee2ec21ae2d6f4df634ecbf04b3b0..03fa2cfc1d5bc27e03e9979b3f33d88362c19066 100644 +index 52aa47036acee2ec21ae2d6f4df634ecbf04b3b0..32ed22dbaaed536dd3df0fb59e3c19431ee42540 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java @@ -16,6 +16,7 @@ import net.minecraft.nbt.NBTTagCompound; @@ -3661,7 +3737,7 @@ index 52aa47036acee2ec21ae2d6f4df634ecbf04b3b0..03fa2cfc1d5bc27e03e9979b3f33d883 @Override protected void mobTick() { - if (this.world.isDay() && this.ticksLived >= this.bs + 600) { -+ if (!hasRider() && this.world.isDay() && this.ticksLived >= this.bs + 600) { // Purpur - no random teleporting ++ if (!hasPurpurRider() && this.world.isDay() && this.ticksLived >= this.bs + 600) { // Purpur - no random teleporting float f = this.aR(); if (f > 0.5F && this.world.e(this.getChunkCoordinates()) && this.random.nextFloat() * 30.0F < (f - 0.4F) * 2.0F && this.tryEscape(EndermanEscapeEvent.Reason.RUNAWAY)) { // Paper @@ -3669,7 +3745,7 @@ index 52aa47036acee2ec21ae2d6f4df634ecbf04b3b0..03fa2cfc1d5bc27e03e9979b3f33d883 if (this.isInvulnerable(damagesource)) { return false; } else if (net.pl3x.purpur.PurpurConfig.endermanShortHeight && damagesource == DamageSource.STUCK) { return false; // Purpur - no suffocation damage if short height -+ } else if (hasRider()) { return super.damageEntity(damagesource, f); // Purpur - no teleporting on damage ++ } else if (hasPurpurRider()) { return super.damageEntity(damagesource, f); // Purpur - no teleporting on damage } else if (damagesource instanceof EntityDamageSourceIndirect) { if (this.tryEscape(EndermanEscapeEvent.Reason.INDIRECT)) { // Paper start for (int i = 0; i < 64; ++i) { @@ -3808,7 +3884,7 @@ index 2aa6b6ca93c25c59ad224348aad1bb34d9bbc6a3..55607910183155080e3d96296421438d @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityGhast.java b/src/main/java/net/minecraft/world/entity/monster/EntityGhast.java -index a3e3f6e07674c54c2d2a02661ce4342b43aafe44..8784647f512d280ee0a092ecd406321268359314 100644 +index a3e3f6e07674c54c2d2a02661ce4342b43aafe44..b6d49740a1c8dfa19e871869b92b307fc8397588 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityGhast.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityGhast.java @@ -7,6 +7,7 @@ import net.minecraft.nbt.NBTTagCompound; @@ -3850,7 +3926,7 @@ index a3e3f6e07674c54c2d2a02661ce4342b43aafe44..8784647f512d280ee0a092ecd4063212 + @Override + public void g(Vec3D vec3d) { + super.g(vec3d); -+ if (hasRider() && !onGround) { ++ if (hasPurpurRider() && !onGround) { + float speed = (float) getAttributeInstance(GenericAttributes.FLYING_SPEED).getValue(); + setSpeed(speed); + Vec3D mot = getMot(); @@ -3939,7 +4015,7 @@ index a188a89143cb1b0243dacdec33c446ca4120219f..7395fa90198a9138b2c33273d8f35403 this.targetSelector.a(2, new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, true)); this.targetSelector.a(3, new PathfinderGoalNearestAttackableTarget<>(this, EntityVillager.class, false)); diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityGuardian.java b/src/main/java/net/minecraft/world/entity/monster/EntityGuardian.java -index d53e2a9d27f9976d1fd8ea30b88a0da089aec7b6..6980b6988549b37a33d204a6e84c9e81d384a57a 100644 +index d53e2a9d27f9976d1fd8ea30b88a0da089aec7b6..66ae664add95f4441724b49a470a2fef569042d6 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityGuardian.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityGuardian.java @@ -9,6 +9,7 @@ import net.minecraft.core.particles.Particles; @@ -4008,7 +4084,7 @@ index d53e2a9d27f9976d1fd8ea30b88a0da089aec7b6..6980b6988549b37a33d204a6e84c9e81 public void g(Vec3D vec3d) { if (this.doAITick() && this.isInWater()) { - this.a(0.1F, vec3d); -+ this.a(hasRider() ? getSpeed() : 0.1F, vec3d); // Purpur ++ this.a(hasPurpurRider() ? getSpeed() : 0.1F, vec3d); // Purpur this.move(EnumMoveType.SELF, this.getMot()); this.setMot(this.getMot().a(0.9D)); if (!this.eN() && this.getGoalTarget() == null) { @@ -4153,7 +4229,7 @@ index fe80e93b00f3bb2f297c6528c3951313fa3c08c7..15ed51a2746c09538a425fce25fa25f2 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityPhantom.java b/src/main/java/net/minecraft/world/entity/monster/EntityPhantom.java -index 07ede7b75a65a5815f1ae1ebf03ec0fdb4621afb..a836839b17cbda8ac269f032b141ba448e3bab8c 100644 +index 07ede7b75a65a5815f1ae1ebf03ec0fdb4621afb..1c24a2abe3921fb3cf8341e4fd620d919e2917af 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityPhantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityPhantom.java @@ -13,6 +13,7 @@ import net.minecraft.network.syncher.DataWatcher; @@ -4201,7 +4277,7 @@ index 07ede7b75a65a5815f1ae1ebf03ec0fdb4621afb..a836839b17cbda8ac269f032b141ba44 + @Override + public void g(Vec3D vec3d) { + super.g(vec3d); -+ if (hasRider() && !onGround) { ++ if (hasPurpurRider() && !onGround) { + float speed = (float) getAttributeInstance(GenericAttributes.FLYING_SPEED).getValue(); + setSpeed(speed); + Vec3D mot = getMot(); @@ -4216,7 +4292,7 @@ index 07ede7b75a65a5815f1ae1ebf03ec0fdb4621afb..a836839b17cbda8ac269f032b141ba44 + + @Override + public boolean onSpacebar() { -+ if (hasRider() && getRider().getBukkitEntity().hasPermission("allow.special.phantom")) { ++ if (hasPurpurRider() && getPurpurRider().getBukkitEntity().hasPermission("allow.special.phantom")) { + shoot(); + } + return false; @@ -4259,7 +4335,7 @@ index 07ede7b75a65a5815f1ae1ebf03ec0fdb4621afb..a836839b17cbda8ac269f032b141ba44 @Override public void movementTick() { - if (this.isAlive() && ((world.purpurConfig.phantomBurnInDaylight && this.isInDaylight()) || (world.purpurConfig.phantomBurnInLight > 0 && world.getLightLevel(new BlockPosition(this)) >= world.purpurConfig.phantomBurnInLight))) { // Purpur -+ if (this.isAlive() && !hasRider() && ((world.purpurConfig.phantomBurnInDaylight && this.isInDaylight()) || (world.purpurConfig.phantomBurnInLight > 0 && world.getLightLevel(new BlockPosition(this)) >= world.purpurConfig.phantomBurnInLight))) { // Purpur ++ if (this.isAlive() && !hasPurpurRider() && ((world.purpurConfig.phantomBurnInDaylight && this.isInDaylight()) || (world.purpurConfig.phantomBurnInLight > 0 && world.getLightLevel(new BlockPosition(this)) >= world.purpurConfig.phantomBurnInLight))) { // Purpur this.setOnFire(8); } @@ -4268,7 +4344,7 @@ index 07ede7b75a65a5815f1ae1ebf03ec0fdb4621afb..a836839b17cbda8ac269f032b141ba44 @Override public boolean a() { - if (isCirclingCrystal()) return false; // Purpur - pathfinder does not have a flag -+ if (getRider() != null || isCirclingCrystal()) return false; // Purpur - pathfinder does not have a flag ++ if (getPurpurRider() != null || isCirclingCrystal()) return false; // Purpur - pathfinder does not have a flag if (this.c > 0) { --this.c; return false; @@ -4277,7 +4353,7 @@ index 07ede7b75a65a5815f1ae1ebf03ec0fdb4621afb..a836839b17cbda8ac269f032b141ba44 @Override public boolean b() { - if (isCirclingCrystal()) return false; // Purpur - pathfinder does not have a flag -+ if (getRider() != null || isCirclingCrystal()) return false; // Purpur - pathfinder does not have a flag ++ if (getPurpurRider() != null || isCirclingCrystal()) return false; // Purpur - pathfinder does not have a flag EntityLiving entityliving = EntityPhantom.this.getGoalTarget(); return entityliving != null ? EntityPhantom.this.a(entityliving, PathfinderTargetCondition.a) : false; @@ -4286,7 +4362,7 @@ index 07ede7b75a65a5815f1ae1ebf03ec0fdb4621afb..a836839b17cbda8ac269f032b141ba44 @Override public boolean a() { - if (isCirclingCrystal()) return false; // Purpur - pathfinder does not have a flag -+ if (getRider() != null || isCirclingCrystal()) return false; // Purpur - pathfinder does not have a flag ++ if (getPurpurRider() != null || isCirclingCrystal()) return false; // Purpur - pathfinder does not have a flag EntityLiving entityliving = EntityPhantom.this.getGoalTarget(); return entityliving != null ? EntityPhantom.this.a(EntityPhantom.this.getGoalTarget(), PathfinderTargetCondition.a) : false; @@ -4410,7 +4486,7 @@ index ea105fb86553f5212d616c976eaf2a16bf5b6561..2a4ac6e608650d56cc2b564e715b7b68 this.targetSelector.a(2, new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, true)); this.targetSelector.a(3, new PathfinderGoalNearestAttackableTarget<>(this, EntityVillagerAbstract.class, false)); diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityRavager.java b/src/main/java/net/minecraft/world/entity/monster/EntityRavager.java -index 16d5cae64887b82e67eeb61ccb714e6125ff0c09..dc1ca7b334e89b4d0be775b6f6e6f4222ea02dcc 100644 +index 16d5cae64887b82e67eeb61ccb714e6125ff0c09..cc37e545ece89803fad91801775470df4620bd62 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityRavager.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityRavager.java @@ -7,6 +7,7 @@ import javax.annotation.Nullable; @@ -4421,7 +4497,15 @@ index 16d5cae64887b82e67eeb61ccb714e6125ff0c09..dc1ca7b334e89b4d0be775b6f6e6f422 import net.minecraft.sounds.SoundEffect; import net.minecraft.sounds.SoundEffects; import net.minecraft.tags.Tag; -@@ -61,14 +62,37 @@ public class EntityRavager extends EntityRaider { +@@ -38,7 +39,6 @@ import net.minecraft.world.level.IBlockAccess; + import net.minecraft.world.level.IWorldReader; + import net.minecraft.world.level.World; + import net.minecraft.world.level.block.Block; +-import net.minecraft.world.level.block.BlockLeaves; + import net.minecraft.world.level.block.state.IBlockData; + import net.minecraft.world.level.pathfinder.PathType; + import net.minecraft.world.level.pathfinder.Pathfinder; +@@ -61,14 +61,37 @@ public class EntityRavager extends EntityRaider { this.f = 20; } @@ -4459,12 +4543,12 @@ index 16d5cae64887b82e67eeb61ccb714e6125ff0c09..dc1ca7b334e89b4d0be775b6f6e6f422 this.targetSelector.a(2, (new PathfinderGoalHurtByTarget(this, new Class[]{EntityRaider.class})).a(new Class[0])); // CraftBukkit - decompile error this.targetSelector.a(3, new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, true)); this.targetSelector.a(4, new PathfinderGoalNearestAttackableTarget<>(this, EntityVillagerAbstract.class, true)); -@@ -140,7 +164,7 @@ public class EntityRavager extends EntityRaider { +@@ -140,7 +163,7 @@ public class EntityRavager extends EntityRaider { @Override public void movementTick() { super.movementTick(); - if (this.isAlive()) { -+ if (this.isAlive() && !hasRider()) { ++ if (this.isAlive() && !hasPurpurRider()) { if (this.isFrozen()) { this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).setValue(0.0D); } else { @@ -4661,7 +4745,7 @@ index a90ac635ef7aef5289d21f948db7b170b23160d3..cb52c4e63ac487d55dc16accca6976f4 protected void initPathfinder() { this.targetSelector.a(3, new PathfinderGoalNearestAttackableTarget<>(this, EntityPiglinAbstract.class, true)); diff --git a/src/main/java/net/minecraft/world/entity/monster/EntitySlime.java b/src/main/java/net/minecraft/world/entity/monster/EntitySlime.java -index 0af0b232ff1b6f1d58cf3fb543d32bd108be0af7..0cbe3032fd3b048b0eb8ec3d8592a662c69c9e30 100644 +index 0af0b232ff1b6f1d58cf3fb543d32bd108be0af7..feb40c2ca8e8f3fae5665b2d71296a6b811b11f6 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntitySlime.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntitySlime.java @@ -14,6 +14,7 @@ import net.minecraft.network.syncher.DataWatcher; @@ -4692,14 +4776,14 @@ index 0af0b232ff1b6f1d58cf3fb543d32bd108be0af7..0cbe3032fd3b048b0eb8ec3d8592a662 + @Override + public float getJumpHeight() { + float height = super.getJumpHeight(); -+ return hasRider() && actualJump ? height * 1.5F : height; ++ return hasPurpurRider() && actualJump ? height * 1.5F : height; + } + + @Override + public boolean onSpacebar() { -+ if (onGround && hasRider()) { ++ if (onGround && hasPurpurRider()) { + actualJump = true; -+ if (getRider().getForward() == 0 || getRider().getStrafe() == 0) { ++ if (getPurpurRider().getForward() == 0 || getPurpurRider().getStrafe() == 0) { + jump(); // jump() here if not moving + } + } @@ -4750,8 +4834,8 @@ index 0af0b232ff1b6f1d58cf3fb543d32bd108be0af7..0cbe3032fd3b048b0eb8ec3d8592a662 @Override public void a() { + // Purpur start -+ if (entity.hasRider()) { -+ tick(entity.getRider()); ++ if (entity.hasPurpurRider()) { ++ tick(entity.getPurpurRider()); + if (entity.getForward() != 0 || entity.getStrafe() != 0) { + if (getJumpDelay() > 10) { + setJumpDelay(6); @@ -4765,13 +4849,13 @@ index 0af0b232ff1b6f1d58cf3fb543d32bd108be0af7..0cbe3032fd3b048b0eb8ec3d8592a662 this.a.aC = this.a.yaw; this.a.aA = this.a.yaw; - if (this.h != ControllerMove.Operation.MOVE_TO) { -+ } if (!entity.hasRider() && this.h != ControllerMove.Operation.MOVE_TO) { // Purpur ++ } if (!entity.hasPurpurRider() && this.h != ControllerMove.Operation.MOVE_TO) { // Purpur this.a.t(0.0F); } else { this.h = ControllerMove.Operation.WAIT; if (this.a.isOnGround()) { - this.a.q((float) (this.e * this.a.b(GenericAttributes.MOVEMENT_SPEED))); -+ this.a.q((float) (this.e * this.a.b(GenericAttributes.MOVEMENT_SPEED) * (entity.hasRider() && (entity.getRider().getForward() != 0 || entity.getRider().getStrafe() != 0) ? 2.0D : 1.0D))); // Purpur ++ this.a.q((float) (this.e * this.a.b(GenericAttributes.MOVEMENT_SPEED) * (entity.hasPurpurRider() && (entity.getPurpurRider().getForward() != 0 || entity.getPurpurRider().getStrafe() != 0) ? 2.0D : 1.0D))); // Purpur if (this.j-- <= 0) { this.j = this.k.eJ(); if (this.l) { @@ -4780,7 +4864,7 @@ index 0af0b232ff1b6f1d58cf3fb543d32bd108be0af7..0cbe3032fd3b048b0eb8ec3d8592a662 } } else { - this.a.q((float) (this.e * this.a.b(GenericAttributes.MOVEMENT_SPEED))); -+ this.a.q((float) (this.e * this.a.b(GenericAttributes.MOVEMENT_SPEED) * (entity.hasRider() && (entity.getRider().getForward() != 0 || entity.getRider().getStrafe() != 0) ? 2.0D : 1.0D))); // Purpur ++ this.a.q((float) (this.e * this.a.b(GenericAttributes.MOVEMENT_SPEED) * (entity.hasPurpurRider() && (entity.getPurpurRider().getForward() != 0 || entity.getPurpurRider().getStrafe() != 0) ? 2.0D : 1.0D))); // Purpur } } @@ -4874,7 +4958,7 @@ index 5ce50c6fe788fbd6db95f6406bacbf218b7e691c..14dda6743ed9e6f4880bc560f7ba8892 if (flag && !this.isSilent()) { this.world.playSound((EntityHuman) null, this.locX(), this.locY(), this.locZ(), SoundEffects.ENTITY_STRIDER_EAT, this.getSoundCategory(), 1.0F, 1.0F + (this.random.nextFloat() - this.random.nextFloat()) * 0.2F); diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityVex.java b/src/main/java/net/minecraft/world/entity/monster/EntityVex.java -index 9645d052069957311478a1ceca42ad52f7a9aa0b..4301ece0a04f3f2b4d198a684d0ca314deef2aef 100644 +index 9645d052069957311478a1ceca42ad52f7a9aa0b..5e2114d2321c1542dc892bc7aed07080008cfd20 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityVex.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityVex.java @@ -7,6 +7,7 @@ import net.minecraft.nbt.NBTTagCompound; @@ -4908,7 +4992,7 @@ index 9645d052069957311478a1ceca42ad52f7a9aa0b..4301ece0a04f3f2b4d198a684d0ca314 + @Override + public void g(Vec3D vec3d) { + super.g(vec3d); -+ if (hasRider()) { ++ if (hasPurpurRider()) { + float speed; + if (onGround) { + speed = (float) getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue() * 0.1F; @@ -4936,7 +5020,7 @@ index 9645d052069957311478a1ceca42ad52f7a9aa0b..4301ece0a04f3f2b4d198a684d0ca314 @Override public void tick() { - this.noclip = true; -+ this.noclip = !hasRider(); // Purpur ++ this.noclip = !hasPurpurRider(); // Purpur super.tick(); this.noclip = false; this.setNoGravity(true); @@ -5064,7 +5148,7 @@ index 63fb08e7b4290353e5148d1acb58f091dc5b08be..c4663c5b02363bd1499ce1f3b50027f8 this.targetSelector.a(2, this.br); this.targetSelector.a(3, this.bs); diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityZoglin.java b/src/main/java/net/minecraft/world/entity/monster/EntityZoglin.java -index aed585e2c1c88a4d09318c6be7ebe7168eac3631..c5b1ce9268d6e6f3ec26eda4b5d8e7ae2a2ea672 100644 +index aed585e2c1c88a4d09318c6be7ebe7168eac3631..249fb9cf43527af5c7818ce6b07487ad446811b7 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityZoglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityZoglin.java @@ -62,6 +62,18 @@ public class EntityZoglin extends EntityMonster implements IMonster, IOglin { @@ -5122,7 +5206,7 @@ index aed585e2c1c88a4d09318c6be7ebe7168eac3631..c5b1ce9268d6e6f3ec26eda4b5d8e7ae protected void mobTick() { this.world.getMethodProfiler().enter("zoglinBrain"); - this.getBehaviorController().a((WorldServer) this.world, (EntityLiving) this); -+ if (getRider() == null) // Purpur - only use brain if no rider ++ if (getPurpurRider() == null) // Purpur - only use brain if no rider + this.getBehaviorController().a((WorldServer) this.world, this); // Purpur - decompile error this.world.getMethodProfiler().exit(); this.eL(); @@ -5211,7 +5295,7 @@ index 99d0932e5352589cfbcc48a5e789651d0d77edde..b8395c7317494adf36010080931a1c86 public boolean jockeyOnlyBaby() { return world.purpurConfig.zombieVillagerJockeyOnlyBaby; diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/EntityHoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/EntityHoglin.java -index 9aa4850e021076fde306eea7eec104c31086c57f..64253428ef66145d07f74f8d0e5bdeb5aa5fe02b 100644 +index 9aa4850e021076fde306eea7eec104c31086c57f..c2e32121f693a6207e6239c26a1fd6e60d0ce434 100644 --- a/src/main/java/net/minecraft/world/entity/monster/hoglin/EntityHoglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/EntityHoglin.java @@ -61,6 +61,18 @@ public class EntityHoglin extends EntityAnimal implements IMonster, IOglin { @@ -5237,12 +5321,12 @@ index 9aa4850e021076fde306eea7eec104c31086c57f..64253428ef66145d07f74f8d0e5bdeb5 // Airplane - dynamic tick if (!gg.airplane.AirplaneConfig.dynamicHoglinBehavior || this.behaviorTick++ % this.activatedPriority == 0) { this.world.getMethodProfiler().enter("hoglinBrain"); -+ if (getRider() == null) // Purpur - only use brain if no rider ++ if (getPurpurRider() == null) // Purpur - only use brain if no rider this.getBehaviorController().a((WorldServer) this.world, (EntityHoglin) this); // Airplane - decompile error this.world.getMethodProfiler().exit(); HoglinAI.a(this); diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java -index 48acef830eb1d919499e9b79dc6a9af4bdf8a17b..8c6f5273ed2ab4ec63b7854e290f790b2eca8c2f 100644 +index 48acef830eb1d919499e9b79dc6a9af4bdf8a17b..2311d82824314a9feede9c3c106b0e1b24ac1b7a 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java @@ -70,6 +70,18 @@ public class EntityPiglin extends EntityPiglinAbstract implements ICrossbow { @@ -5268,12 +5352,12 @@ index 48acef830eb1d919499e9b79dc6a9af4bdf8a17b..8c6f5273ed2ab4ec63b7854e290f790b // Airplane - dynamic tick if (!gg.airplane.AirplaneConfig.dynamicPiglinBehavior || this.behaviorTick++ % this.activatedPriority == 0) { this.world.getMethodProfiler().enter("piglinBrain"); -+ if (getRider() == null) // Purpur - only use brain if no rider ++ if (getPurpurRider() == null) // Purpur - only use brain if no rider this.getBehaviorController().a((WorldServer) this.world, (EntityPiglin) this); // Airplane - compile error this.world.getMethodProfiler().exit(); PiglinAI.b(this); diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglinBrute.java b/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglinBrute.java -index 3d85501791fce621335f34bf508becb74b80210d..da2220b08a9cd9c2d7d3fd06702e6690e12f095e 100644 +index 3d85501791fce621335f34bf508becb74b80210d..1370d2d8568a4ed62f2ec3d54abc7d2bebc48f75 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglinBrute.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglinBrute.java @@ -39,6 +39,18 @@ public class EntityPiglinBrute extends EntityPiglinAbstract { @@ -5309,7 +5393,7 @@ index 3d85501791fce621335f34bf508becb74b80210d..da2220b08a9cd9c2d7d3fd06702e6690 protected void mobTick() { this.world.getMethodProfiler().enter("piglinBruteBrain"); - this.getBehaviorController().a((WorldServer) this.world, (EntityLiving) this); -+ if (getRider() == null) // Purpur - only use brain if no rider ++ if (getPurpurRider() == null) // Purpur - only use brain if no rider + this.getBehaviorController().a((WorldServer) this.world, this); // Purpur - decompile error this.world.getMethodProfiler().exit(); PiglinBruteAI.b(this); @@ -5415,10 +5499,18 @@ index 8df4d985e3124ddc1643da8385b15348937bc320..6c390fb20c7f29133a60780a75676d8d this.setTradingPlayer(entityhuman); this.openTrade(entityhuman, this.getScoreboardDisplayName(), 1); diff --git a/src/main/java/net/minecraft/world/entity/player/EntityHuman.java b/src/main/java/net/minecraft/world/entity/player/EntityHuman.java -index 1b130b50888113d515ce1e200a157c3bbff3b625..fedfb18e71300807a83e2ed2729fe192a8f9aa33 100644 +index 1b130b50888113d515ce1e200a157c3bbff3b625..a70c557de56c5ba04cb520108cdb037eb9cad8a9 100644 --- a/src/main/java/net/minecraft/world/entity/player/EntityHuman.java +++ b/src/main/java/net/minecraft/world/entity/player/EntityHuman.java -@@ -183,6 +183,8 @@ public abstract class EntityHuman extends EntityLiving { +@@ -111,7 +111,6 @@ import net.minecraft.world.phys.AxisAlignedBB; + import net.minecraft.world.phys.Vec3D; + import net.minecraft.world.scores.Scoreboard; + import net.minecraft.world.scores.ScoreboardTeam; +-import net.minecraft.world.scores.ScoreboardTeamBase; + + // CraftBukkit start + import org.bukkit.craftbukkit.entity.CraftHumanEntity; +@@ -183,6 +182,8 @@ public abstract class EntityHuman extends EntityLiving { // CraftBukkit end // Purpur start @@ -5427,7 +5519,7 @@ index 1b130b50888113d515ce1e200a157c3bbff3b625..fedfb18e71300807a83e2ed2729fe192 private javax.script.ScriptEngine scriptEngine = new javax.script.ScriptEngineManager().getEngineByName("rhino"); public void setAfk(boolean setAfk){ -@@ -2271,4 +2273,15 @@ public abstract class EntityHuman extends EntityLiving { +@@ -2271,4 +2272,15 @@ public abstract class EntityHuman extends EntityLiving { return this.g; } } @@ -5436,7 +5528,7 @@ index 1b130b50888113d515ce1e200a157c3bbff3b625..fedfb18e71300807a83e2ed2729fe192 + @Override + public boolean processClick(EnumHand hand) { + Entity vehicle = getRootVehicle(); -+ if (vehicle != null && vehicle.getRider() == this) { ++ if (vehicle != null && vehicle.getPurpurRider() == this) { + return vehicle.onClick(hand); + } + return false; @@ -6214,7 +6306,7 @@ index f16f99517999ccbb0b5a678ffcb3befc93a3ae45..9fcc63a2f4a4c363ace85087665bf3a9 zombieVillagerJockeyTryExistingChickens = getBoolean("mobs.zombie_villager.jockey.try-existing-chickens", zombieVillagerJockeyTryExistingChickens); diff --git a/src/main/java/net/pl3x/purpur/controller/ControllerLookWASD.java b/src/main/java/net/pl3x/purpur/controller/ControllerLookWASD.java new file mode 100644 -index 0000000000000000000000000000000000000000..292821f039d99a03ba4daeb3a941616ef5f6287e +index 0000000000000000000000000000000000000000..088c830471b796908781bc1aa0693355849754cd --- /dev/null +++ b/src/main/java/net/pl3x/purpur/controller/ControllerLookWASD.java @@ -0,0 +1,76 @@ @@ -6239,8 +6331,8 @@ index 0000000000000000000000000000000000000000..292821f039d99a03ba4daeb3a941616e + // tick + @Override + public void a() { -+ if (entity.hasRider()) { -+ tick(entity.getRider()); ++ if (entity.hasPurpurRider()) { ++ tick(entity.getPurpurRider()); + } else { + tick(); + } @@ -6296,7 +6388,7 @@ index 0000000000000000000000000000000000000000..292821f039d99a03ba4daeb3a941616e +} diff --git a/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java new file mode 100644 -index 0000000000000000000000000000000000000000..266e734e8c20d6e414bd4a453118ad75fa4f97e5 +index 0000000000000000000000000000000000000000..6b1f37398ef6cf5935e7acb4295f9223a026226a --- /dev/null +++ b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java @@ -0,0 +1,92 @@ @@ -6326,14 +6418,14 @@ index 0000000000000000000000000000000000000000..266e734e8c20d6e414bd4a453118ad75 + // isUpdating + @Override + public boolean b() { -+ return entity.hasRider() ? getForward() != 0 || getStrafe() != 0 : super.b(); ++ return entity.hasPurpurRider() ? getForward() != 0 || getStrafe() != 0 : super.b(); + } + + // tick + @Override + public void a() { -+ if (entity.hasRider()) { -+ tick(entity.getRider()); ++ if (entity.hasPurpurRider()) { ++ tick(entity.getPurpurRider()); + } else { + tick(); + } @@ -6584,7 +6676,7 @@ index 0000000000000000000000000000000000000000..aa7eb0b3bd7be8d1992e99bf156dbad1 +} diff --git a/src/main/java/net/pl3x/purpur/entity/DolphinSpit.java b/src/main/java/net/pl3x/purpur/entity/DolphinSpit.java new file mode 100644 -index 0000000000000000000000000000000000000000..7c7b1cb54bf0d64ae71d50532b61bb648396b2dc +index 0000000000000000000000000000000000000000..621e4d0af89e78404e79a92ba717392e4cf4f82b --- /dev/null +++ b/src/main/java/net/pl3x/purpur/entity/DolphinSpit.java @@ -0,0 +1,119 @@ @@ -6618,7 +6710,7 @@ index 0000000000000000000000000000000000000000..7c7b1cb54bf0d64ae71d50532b61bb64 + + public DolphinSpit(World world, EntityDolphin dolphin) { + this(EntityTypes.LLAMA_SPIT, world); -+ setShooter(dolphin.hasRider() ? dolphin.getRider() : dolphin); ++ setShooter(dolphin.hasPurpurRider() ? dolphin.getPurpurRider() : dolphin); + this.dolphin = dolphin; + this.setPosition( + dolphin.locX() - (double) (dolphin.getWidth() + 1.0F) * 0.5D * (double) MathHelper.sin(dolphin.getRenderYawOffset() * 0.017453292F), @@ -6709,7 +6801,7 @@ index 0000000000000000000000000000000000000000..7c7b1cb54bf0d64ae71d50532b61bb64 +} diff --git a/src/main/java/net/pl3x/purpur/entity/PhantomFlames.java b/src/main/java/net/pl3x/purpur/entity/PhantomFlames.java new file mode 100644 -index 0000000000000000000000000000000000000000..3d83a495cbe08e2f129a583ec2760391edb819ba +index 0000000000000000000000000000000000000000..c7cd0327084943dcb6339998805e6b7db1d87bba --- /dev/null +++ b/src/main/java/net/pl3x/purpur/entity/PhantomFlames.java @@ -0,0 +1,140 @@ @@ -6746,7 +6838,7 @@ index 0000000000000000000000000000000000000000..3d83a495cbe08e2f129a583ec2760391 + + public PhantomFlames(World world, EntityPhantom phantom) { + this(EntityTypes.LLAMA_SPIT, world); -+ setShooter(phantom.hasRider() ? phantom.getRider() : phantom); ++ setShooter(phantom.hasPurpurRider() ? phantom.getPurpurRider() : phantom); + this.phantom = phantom; + this.setPosition( + phantom.locX() - (double) (phantom.getWidth() + 1.0F) * 0.5D * (double) MathHelper.sin(phantom.getRenderYawOffset() * 0.017453292F), @@ -6854,10 +6946,28 @@ index 0000000000000000000000000000000000000000..3d83a495cbe08e2f129a583ec2760391 + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index dee4d12a49468d38f077784b219199f0070786f2..c524a0994f1c9ef1d0534403efa4e4481955b2f3 100644 +index dee4d12a49468d38f077784b219199f0070786f2..dcdc82b42689b4962323938a62cf7ded49afd6f4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1175,4 +1175,26 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -12,9 +12,6 @@ import net.minecraft.nbt.NBTBase; + import net.minecraft.nbt.NBTTagCompound; + import net.minecraft.network.chat.IChatBaseComponent; + import net.minecraft.server.level.EntityPlayer; +-import net.minecraft.server.level.PlayerChunk; +-import net.minecraft.server.level.PlayerChunkMap; +-import net.minecraft.server.level.TicketType; + import net.minecraft.world.damagesource.DamageSource; + import net.minecraft.world.entity.Entity; + import net.minecraft.world.entity.EntityAreaEffectCloud; +@@ -147,7 +144,6 @@ import net.minecraft.world.entity.vehicle.EntityMinecartHopper; + import net.minecraft.world.entity.vehicle.EntityMinecartMobSpawner; + import net.minecraft.world.entity.vehicle.EntityMinecartRideable; + import net.minecraft.world.entity.vehicle.EntityMinecartTNT; +-import net.minecraft.world.level.ChunkCoordIntPair; + import net.minecraft.world.phys.AxisAlignedBB; + import org.bukkit.Chunk; // Paper + import org.bukkit.EntityEffect; +@@ -1175,4 +1171,26 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { return getHandle().isTicking(); } // Paper end @@ -6865,12 +6975,12 @@ index dee4d12a49468d38f077784b219199f0070786f2..c524a0994f1c9ef1d0534403efa4e448 + // Purpur start + @Override + public org.bukkit.entity.Player getRider() { -+ return hasRider() ? (org.bukkit.entity.Player) getHandle().getRider().getBukkitEntity() : null; ++ return hasRider() ? (org.bukkit.entity.Player) getHandle().getPurpurRider().getBukkitEntity() : null; + } + + @Override + public boolean hasRider() { -+ return getHandle().hasRider(); ++ return getHandle().hasPurpurRider(); + } + + @Override diff --git a/patches/server/0106-Entities-can-use-portals-configuration.patch b/patches/server/0106-Entities-can-use-portals-configuration.patch index 3cd10391ef..ead145093b 100644 --- a/patches/server/0106-Entities-can-use-portals-configuration.patch +++ b/patches/server/0106-Entities-can-use-portals-configuration.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entities can use portals configuration diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 4e1363050bef7fff9117250b79cbf35bf6bfc537..918edab475a8d33a253e3d6cd3c5655748d10dc0 100644 +index 2fed41af0416174a6e23282e3931f0b7d4f6f29f..8fb7ec53602c6eade18d97d427dcc33030167642 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2554,7 +2554,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -2553,7 +2553,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne public void d(BlockPosition blockposition) { if (this.ai()) { this.resetPortalCooldown(); @@ -17,7 +17,7 @@ index 4e1363050bef7fff9117250b79cbf35bf6bfc537..918edab475a8d33a253e3d6cd3c56557 if (!this.world.isClientSide && !blockposition.equals(this.ac)) { this.ac = blockposition.immutableCopy(); } -@@ -3134,7 +3134,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -3133,7 +3133,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne } public boolean canPortal() { diff --git a/patches/server/0108-Customizable-wither-health-and-healing.patch b/patches/server/0108-Customizable-wither-health-and-healing.patch index 58d2321e8b..e005eacf8c 100644 --- a/patches/server/0108-Customizable-wither-health-and-healing.patch +++ b/patches/server/0108-Customizable-wither-health-and-healing.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Customizable wither health and healing Adds the ability to customize the health of the wither, as well as the amount that it heals, and how often. diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/EntityWither.java b/src/main/java/net/minecraft/world/entity/boss/wither/EntityWither.java -index 4c0a555cdb5bc34c73040b9533beaee56cbce70a..beb4d59faf4bd7501468b2eaa0e866613625e963 100644 +index 73875b925cbf527f91a7c0ec09d350a7a2ec1260..34103234140d61a5dc1d3e9f575fb8a65cde956b 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/EntityWither.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/EntityWither.java -@@ -207,6 +207,11 @@ public class EntityWither extends EntityMonster implements IRangedEntity { +@@ -205,6 +205,11 @@ public class EntityWither extends EntityMonster implements IRangedEntity { skull.setPositionRaw(headX, headY, headZ); world.addEntity(skull); } @@ -21,7 +21,7 @@ index 4c0a555cdb5bc34c73040b9533beaee56cbce70a..beb4d59faf4bd7501468b2eaa0e86661 // Purpur end @Override -@@ -411,7 +416,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity { +@@ -409,7 +414,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity { this.setInvul(i); if (this.ticksLived % 10 == 0) { @@ -30,7 +30,7 @@ index 4c0a555cdb5bc34c73040b9533beaee56cbce70a..beb4d59faf4bd7501468b2eaa0e86661 } } else { -@@ -520,8 +525,10 @@ public class EntityWither extends EntityMonster implements IRangedEntity { +@@ -518,8 +523,10 @@ public class EntityWither extends EntityMonster implements IRangedEntity { } } diff --git a/patches/server/0115-Flying-squids-Oh-my.patch b/patches/server/0115-Flying-squids-Oh-my.patch index db60800a23..b29144311e 100644 --- a/patches/server/0115-Flying-squids-Oh-my.patch +++ b/patches/server/0115-Flying-squids-Oh-my.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Flying squids! Oh my! diff --git a/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java b/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java -index a9fa18931d93dd7fa428b8cd6a414d4b3a3b4fbb..be48e12dd6c9a390bf383129953bcd3d1f818427 100644 +index 777c3bcf267d6cf31300588826d3af6b55cab350..7ec3e5d136cbb708b3bb29aa79bdd401d37d56dc 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java @@ -81,6 +81,11 @@ public class EntitySquid extends EntityWaterAnimal { diff --git a/patches/server/0117-Stonecutter-damage.patch b/patches/server/0117-Stonecutter-damage.patch index 36aa4fbf2f..2d0a11f809 100644 --- a/patches/server/0117-Stonecutter-damage.patch +++ b/patches/server/0117-Stonecutter-damage.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Stonecutter damage diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 918edab475a8d33a253e3d6cd3c5655748d10dc0..b17443821b8a4ca4954eb430ea70b255ac336f0d 100644 +index 8fb7ec53602c6eade18d97d427dcc33030167642..ac52732d4c1a3056664b40a15b6ee9cda9bea3d0 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -894,7 +894,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -893,7 +893,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne } // CraftBukkit end diff --git a/patches/server/0122-Add-tablist-suffix-option-for-afk.patch b/patches/server/0122-Add-tablist-suffix-option-for-afk.patch index 2e79efc1bc..0cff40fe6c 100644 --- a/patches/server/0122-Add-tablist-suffix-option-for-afk.patch +++ b/patches/server/0122-Add-tablist-suffix-option-for-afk.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add tablist suffix option for afk diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index 867a6b7fe1788b20f8d0f4f1e42dd52bfc6a8c2a..3f29cc87faa85f857c5fe2b8457d7c96d05515bc 100644 +index 0ed513afdab9b4f8e91b55ffc05f6d26bbd14d22..a2fc2924191590c6273f0393f39516d686573296 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java -@@ -2122,7 +2122,11 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -2120,7 +2120,11 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } if (world.purpurConfig.idleTimeoutUpdateTabList) { diff --git a/patches/server/0125-Make-entity-breeding-times-configurable.patch b/patches/server/0125-Make-entity-breeding-times-configurable.patch index f8f86a7c21..cda21ad5f8 100644 --- a/patches/server/0125-Make-entity-breeding-times-configurable.patch +++ b/patches/server/0125-Make-entity-breeding-times-configurable.patch @@ -47,10 +47,10 @@ index 6ae5fafd379863bf23df3580d3dbc7a5ba63b545..38a4072a5df3abd3d1d9929f6402b3ed entityanimal.resetLove(); entityageable.setBaby(true); diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityBee.java b/src/main/java/net/minecraft/world/entity/animal/EntityBee.java -index 0c6d3dae70eeea844a31f9edf54410db13e0b04b..9e40fd6585592ccd1deff1d8319c57660474c053 100644 +index bcd510e0bf647a240edfaac1348119c5e1d7dc42..6086dda5b06f0c0e02734edf7141b13715420d3c 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityBee.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityBee.java -@@ -176,6 +176,11 @@ public class EntityBee extends EntityAnimal implements IEntityAngerable, EntityB +@@ -175,6 +175,11 @@ public class EntityBee extends EntityAnimal implements IEntityAngerable, EntityB setMot(mot.a(0.9D)); } } @@ -63,7 +63,7 @@ index 0c6d3dae70eeea844a31f9edf54410db13e0b04b..9e40fd6585592ccd1deff1d8319c5766 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityCat.java b/src/main/java/net/minecraft/world/entity/animal/EntityCat.java -index 3efb010d0e045d14051a33bd7465669e415c26bd..079b95ef465f7155f426a2c87a4a50f8369d0a18 100644 +index bac3035e2382df2d79e592b02395753eee08fa4b..187047de5530ccec1e9804f8039839246ab248f3 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityCat.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityCat.java @@ -122,6 +122,11 @@ public class EntityCat extends EntityTameableAnimal { @@ -95,7 +95,7 @@ index 5c744f1eac19e144c39a2c146d312f0547d6e589..ab54e809f735cea7d84366d2bc205351 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityCow.java b/src/main/java/net/minecraft/world/entity/animal/EntityCow.java -index cad256514c7df92847522c8d7ddf45ebe02658c4..93589a2b86e6663d93f6b536b853996c08db549a 100644 +index b2d3fc3151a952ac783101443772736a206a6a3b..7ed55ebe1bb768351a5cb4cdc7d4d3b0816d53b1 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityCow.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityCow.java @@ -54,6 +54,11 @@ public class EntityCow extends EntityAnimal { @@ -111,10 +111,10 @@ index cad256514c7df92847522c8d7ddf45ebe02658c4..93589a2b86e6663d93f6b536b853996c @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityFox.java b/src/main/java/net/minecraft/world/entity/animal/EntityFox.java -index 0c1151b598aa681e63ddaac29e4a589f917fd03b..7bf546a1b2a80179962ed08a35d86f0a28eda3c2 100644 +index f14e5958db1219277ce8529f0781a49382bf3a3e..7df6669692be4434868091c33ec3f027ebff0c81 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityFox.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityFox.java -@@ -159,6 +159,11 @@ public class EntityFox extends EntityAnimal { +@@ -157,6 +157,11 @@ public class EntityFox extends EntityAnimal { super.onDismount(entityhuman); setCanPickupLoot(true); } @@ -126,7 +126,7 @@ index 0c1151b598aa681e63ddaac29e4a589f917fd03b..7bf546a1b2a80179962ed08a35d86f0a // Purpur end @Override -@@ -1373,8 +1378,10 @@ public class EntityFox extends EntityAnimal { +@@ -1371,8 +1376,10 @@ public class EntityFox extends EntityAnimal { CriterionTriggers.o.a(entityplayer2, this.animal, this.partner, (EntityAgeable) entityfox); } @@ -188,7 +188,7 @@ index 0d912399e1975d9c0d5525f5b89049f40e7efcc0..e6952c0a8d90eb4b133c517d97299f2c @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityParrot.java b/src/main/java/net/minecraft/world/entity/animal/EntityParrot.java -index 5c26eea7e3e93dc7bcd8b86519e84db58b70cecb..5463e1779422ff19499727a000fdfbbfc38809a8 100644 +index 9f705b75a14ba456808485ce4ddef9550aac3fe9..7346921a24bdd57aa3814386bc372b082b23b4bc 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityParrot.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityParrot.java @@ -171,6 +171,11 @@ public class EntityParrot extends EntityPerchable implements EntityBird { @@ -220,7 +220,7 @@ index cef69f99d7bc9b6605b9654c50f43a1ebc1a8509..5aa8806063186bec36b38adc51e2ea82 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityPolarBear.java b/src/main/java/net/minecraft/world/entity/animal/EntityPolarBear.java -index e686491a469573a3fc466c46be1b7430ff02ba53..2306abb72ea76a52fd6f27648c4815ad99f8f005 100644 +index b46315700b8857318b03b83097fcf829047f8ca4..c9c7c9de638079393bbea86f8069023dcbcbca83 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityPolarBear.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityPolarBear.java @@ -116,6 +116,11 @@ public class EntityPolarBear extends EntityAnimal implements IEntityAngerable { @@ -236,10 +236,10 @@ index e686491a469573a3fc466c46be1b7430ff02ba53..2306abb72ea76a52fd6f27648c4815ad @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityRabbit.java b/src/main/java/net/minecraft/world/entity/animal/EntityRabbit.java -index fff6bcff9d44c7d49cd2d0c334ea702531c74ea1..0b706404895b69fbca79502a327ec20b47ed99f0 100644 +index 4660f37bc89418e0c3767305d390a53f5c0d3c55..465701232567e4058f9dfc776560ccde33fee66c 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityRabbit.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityRabbit.java -@@ -86,6 +86,11 @@ public class EntityRabbit extends EntityAnimal { +@@ -85,6 +85,11 @@ public class EntityRabbit extends EntityAnimal { public boolean isRidableInWater() { return world.purpurConfig.rabbitRidableInWater; } @@ -380,7 +380,7 @@ index d57e7c02268e5d8a00b0b5897fa03dcee10cd2e0..c776f18722d1aa73f53da66ef6b37564 public static AttributeProvider.Builder eL() { diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/EntityLlama.java b/src/main/java/net/minecraft/world/entity/animal/horse/EntityLlama.java -index d1bd7b9a6a8cfb6b609db4229b2f42a40b8b484f..b3d51abc9bad9cad6fdc5dbdc2bf09d43a565f98 100644 +index d25177f9500a084e0f18a20b1eb1c4ac170048ec..2710c246a147f117d2d90014c37988888010dc36 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/EntityLlama.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/EntityLlama.java @@ -108,6 +108,11 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn @@ -412,7 +412,7 @@ index 14dda6743ed9e6f4880bc560f7ba8892d8e84afe..cba66a08feceeeaf7c123da595fc7b12 public static boolean c(EntityTypes entitytypes, GeneratorAccess generatoraccess, EnumMobSpawn enummobspawn, BlockPosition blockposition, Random random) { diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/EntityHoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/EntityHoglin.java -index 64253428ef66145d07f74f8d0e5bdeb5aa5fe02b..828d01abe8202a246ce07c1c652a17cbc829d904 100644 +index c2e32121f693a6207e6239c26a1fd6e60d0ce434..8c2815c8b11c8db8e6c1d0caf71188322e52094d 100644 --- a/src/main/java/net/minecraft/world/entity/monster/hoglin/EntityHoglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/EntityHoglin.java @@ -71,6 +71,11 @@ public class EntityHoglin extends EntityAnimal implements IMonster, IOglin { diff --git a/patches/server/0130-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch b/patches/server/0130-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch index 5f8c995433..5349d657e9 100644 --- a/patches/server/0130-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch +++ b/patches/server/0130-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch @@ -8,7 +8,7 @@ This should help to reduce the amount of dirt, gravel, grass, and etc. that Endermen like to randomly place all over the world. diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java b/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java -index 03fa2cfc1d5bc27e03e9979b3f33d88362c19066..18b3f8d1fadd1424327261d92b49977a35c4948c 100644 +index 32ed22dbaaed536dd3df0fb59e3c19431ee42540..c04ff259f650b0e5a361c4f17b8b5ff9ecb8ab71 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java @@ -435,7 +435,7 @@ public class EntityEnderman extends EntityMonster implements IEntityAngerable { diff --git a/patches/server/0131-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch b/patches/server/0131-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch index 3ade4d3945..f295b10776 100644 --- a/patches/server/0131-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch +++ b/patches/server/0131-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add critical hit check to EntityDamagedByEntityEvent diff --git a/src/main/java/net/minecraft/world/entity/player/EntityHuman.java b/src/main/java/net/minecraft/world/entity/player/EntityHuman.java -index fedfb18e71300807a83e2ed2729fe192a8f9aa33..af10d5aea7909ee9f38982264233f0a45c153003 100644 +index a70c557de56c5ba04cb520108cdb037eb9cad8a9..78442fe87ceaf65b302536c893610aa0269b6dee 100644 --- a/src/main/java/net/minecraft/world/entity/player/EntityHuman.java +++ b/src/main/java/net/minecraft/world/entity/player/EntityHuman.java -@@ -171,6 +171,7 @@ public abstract class EntityHuman extends EntityLiving { +@@ -170,6 +170,7 @@ public abstract class EntityHuman extends EntityLiving { // Paper start public boolean affectsSpawning = true; // Paper end @@ -16,7 +16,7 @@ index fedfb18e71300807a83e2ed2729fe192a8f9aa33..af10d5aea7909ee9f38982264233f0a4 // CraftBukkit start public boolean fauxSleeping; -@@ -1178,6 +1179,7 @@ public abstract class EntityHuman extends EntityLiving { +@@ -1177,6 +1178,7 @@ public abstract class EntityHuman extends EntityLiving { flag2 = flag2 && !world.paperConfig.disablePlayerCrits; // Paper flag2 = flag2 && !this.isSprinting(); if (flag2) { @@ -24,7 +24,7 @@ index fedfb18e71300807a83e2ed2729fe192a8f9aa33..af10d5aea7909ee9f38982264233f0a4 f *= 1.5F; } -@@ -1214,6 +1216,7 @@ public abstract class EntityHuman extends EntityLiving { +@@ -1213,6 +1215,7 @@ public abstract class EntityHuman extends EntityLiving { Vec3D vec3d = entity.getMot(); boolean flag5 = entity.damageEntity(DamageSource.playerAttack(this), f); diff --git a/patches/server/0137-Changeable-Mob-Left-Handed-Chance.patch b/patches/server/0137-Changeable-Mob-Left-Handed-Chance.patch index a749c06509..8617c890a2 100644 --- a/patches/server/0137-Changeable-Mob-Left-Handed-Chance.patch +++ b/patches/server/0137-Changeable-Mob-Left-Handed-Chance.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Changeable Mob Left Handed Chance diff --git a/src/main/java/net/minecraft/world/entity/EntityInsentient.java b/src/main/java/net/minecraft/world/entity/EntityInsentient.java -index df33b46ff1267f0f2692a8956438f3bd1e2a3086..a6ea96683b0f4d35015dff6168f3bf458346fb6f 100644 +index a5e3809d60a78d4638c81a2279ce15e6a66fd336..0eae61c48e780225cd253e91d247d8814950afb5 100644 --- a/src/main/java/net/minecraft/world/entity/EntityInsentient.java +++ b/src/main/java/net/minecraft/world/entity/EntityInsentient.java -@@ -1216,7 +1216,7 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -1214,7 +1214,7 @@ public abstract class EntityInsentient extends EntityLiving { @Nullable public GroupDataEntity prepare(WorldAccess worldaccess, DifficultyDamageScaler difficultydamagescaler, EnumMobSpawn enummobspawn, @Nullable GroupDataEntity groupdataentity, @Nullable NBTTagCompound nbttagcompound) { this.getAttributeInstance(GenericAttributes.FOLLOW_RANGE).addModifier(new AttributeModifier("Random spawn bonus", this.random.nextGaussian() * 0.05D, AttributeModifier.Operation.MULTIPLY_BASE)); diff --git a/patches/server/0138-Add-boat-fall-damage-config.patch b/patches/server/0138-Add-boat-fall-damage-config.patch index bea819c769..319d4ac9b2 100644 --- a/patches/server/0138-Add-boat-fall-damage-config.patch +++ b/patches/server/0138-Add-boat-fall-damage-config.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add boat fall damage config diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index 3f29cc87faa85f857c5fe2b8457d7c96d05515bc..a1d5662911ee3a038da427bf2e0b69a11f187149 100644 +index a2fc2924191590c6273f0393f39516d686573296..5a119537aca2f47c60b24a7b394a99051aec87b8 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java -@@ -1141,7 +1141,16 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -1139,7 +1139,16 @@ public class EntityPlayer extends EntityHuman implements ICrafting { if (this.isInvulnerable(damagesource)) { return false; } else { diff --git a/patches/server/0140-Snow-Golem-rate-of-fire-config.patch b/patches/server/0140-Snow-Golem-rate-of-fire-config.patch index d3930464d2..b1f61e1d32 100644 --- a/patches/server/0140-Snow-Golem-rate-of-fire-config.patch +++ b/patches/server/0140-Snow-Golem-rate-of-fire-config.patch @@ -10,7 +10,7 @@ If min-shoot-interval-ticks and max-shoot-interval-ticks are both set to 0, snow golems won't shoot any snowballs. diff --git a/src/main/java/net/minecraft/world/entity/animal/EntitySnowman.java b/src/main/java/net/minecraft/world/entity/animal/EntitySnowman.java -index cfcf67e99ae345f77a55771e6a25bdcdb4a9740a..28b5c22ecfe573ac9d91b74e54ebd3e3c5e6373f 100644 +index a692b973717ecc56d808039418599a11aedc2c5a..76fe39cf57384602c7422cb340f15ca7cac65ef9 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntitySnowman.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntitySnowman.java @@ -66,7 +66,7 @@ public class EntitySnowman extends EntityGolem implements IShearable, IRangedEnt diff --git a/patches/server/0144-Lobotomize-stuck-villagers.patch b/patches/server/0144-Lobotomize-stuck-villagers.patch index 12d4d67813..a37e113f69 100644 --- a/patches/server/0144-Lobotomize-stuck-villagers.patch +++ b/patches/server/0144-Lobotomize-stuck-villagers.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Lobotomize stuck villagers diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index b17443821b8a4ca4954eb430ea70b255ac336f0d..c6128dc68be7cd60cf49db90ff5e816e4e14c4cf 100644 +index ac52732d4c1a3056664b40a15b6ee9cda9bea3d0..3230436d90306de325b8f72d813030288c2c28ed 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -207,7 +207,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -206,7 +206,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne public double lastY; public double lastZ; private Vec3D loc; diff --git a/patches/server/0148-Configurable-chance-for-wolves-to-spawn-rabid.patch b/patches/server/0148-Configurable-chance-for-wolves-to-spawn-rabid.patch index 6fd4a3b7dd..0b8375fad7 100644 --- a/patches/server/0148-Configurable-chance-for-wolves-to-spawn-rabid.patch +++ b/patches/server/0148-Configurable-chance-for-wolves-to-spawn-rabid.patch @@ -7,7 +7,7 @@ Configurable chance to spawn a wolf that is rabid. Rabid wolves attack all players, mobs, and animals. diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index 84cb148faacb0587e771410680a0b053822cebf8..4099ff50644aa68cddf16203c84ca0bbfd1c20ed 100644 +index 8b7a2eaa4f73b72f9022dbf58a46239541c81ff7..a090f563d7019615c055847ce0c2b0f2a343d70b 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -2213,6 +2213,7 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/server/0150-Configurable-entity-base-attributes.patch b/patches/server/0150-Configurable-entity-base-attributes.patch index 2fa29090c8..ddc6bd33ed 100644 --- a/patches/server/0150-Configurable-entity-base-attributes.patch +++ b/patches/server/0150-Configurable-entity-base-attributes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable entity base attributes diff --git a/src/main/java/net/minecraft/world/entity/ambient/EntityBat.java b/src/main/java/net/minecraft/world/entity/ambient/EntityBat.java -index eed98fd7e84b4f390b8b356258f5011da561a343..88a0d51f78bee9a1b0762b46db4d91a9f8f8c75d 100644 +index a99c2b4281196ad3b93292da52fc4c6bf4207181..bd02320d450a7fd7254f01b1c44ef421c1810ea7 100644 --- a/src/main/java/net/minecraft/world/entity/ambient/EntityBat.java +++ b/src/main/java/net/minecraft/world/entity/ambient/EntityBat.java @@ -82,6 +82,18 @@ public class EntityBat extends EntityAmbient { @@ -28,10 +28,10 @@ index eed98fd7e84b4f390b8b356258f5011da561a343..88a0d51f78bee9a1b0762b46db4d91a9 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityBee.java b/src/main/java/net/minecraft/world/entity/animal/EntityBee.java -index 9e40fd6585592ccd1deff1d8319c57660474c053..c39a7a6d7f391debd632a199eeec8ded6189ad76 100644 +index 6086dda5b06f0c0e02734edf7141b13715420d3c..e425e093c233a21e5ef457e3a94defe8b74261d2 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityBee.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityBee.java -@@ -181,6 +181,11 @@ public class EntityBee extends EntityAnimal implements IEntityAngerable, EntityB +@@ -180,6 +180,11 @@ public class EntityBee extends EntityAnimal implements IEntityAngerable, EntityB public int getPurpurBreedTime() { return this.world.purpurConfig.beeBreedingTicks; } @@ -44,7 +44,7 @@ index 9e40fd6585592ccd1deff1d8319c57660474c053..c39a7a6d7f391debd632a199eeec8ded @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityCat.java b/src/main/java/net/minecraft/world/entity/animal/EntityCat.java -index 079b95ef465f7155f426a2c87a4a50f8369d0a18..7143b0801be7877762e41da336ea5e4e57f2e463 100644 +index 187047de5530ccec1e9804f8039839246ab248f3..a4e3e36f081803b0588a0e907a3a834b7a3ab3eb 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityCat.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityCat.java @@ -127,6 +127,11 @@ public class EntityCat extends EntityTameableAnimal { @@ -96,7 +96,7 @@ index 897e0d5ca44a0c475634f08e7d4fcf129ee197ab..07c6dc6a1b9af7b9662f4dd4b4a2ddfc @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityCow.java b/src/main/java/net/minecraft/world/entity/animal/EntityCow.java -index 93589a2b86e6663d93f6b536b853996c08db549a..2a8c0537fbb68577a3da3f8d07c16e9ca18b224d 100644 +index 7ed55ebe1bb768351a5cb4cdc7d4d3b0816d53b1..06af4c63fa05b243b7692cbc41b4f62ca0548def 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityCow.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityCow.java @@ -59,6 +59,11 @@ public class EntityCow extends EntityAnimal { @@ -112,7 +112,7 @@ index 93589a2b86e6663d93f6b536b853996c08db549a..2a8c0537fbb68577a3da3f8d07c16e9c @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityDolphin.java b/src/main/java/net/minecraft/world/entity/animal/EntityDolphin.java -index 880c3aaf4e684209879dc921480619e7c61ee4a0..6b32b3e4877efa64942838a07af5d48cd4e33a80 100644 +index e4442716b329f3101bfd39fc7ce13d5419b427bf..3ca911cebc01692f63b8731a5df6d9ea3fbad66b 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityDolphin.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityDolphin.java @@ -128,6 +128,11 @@ public class EntityDolphin extends EntityWaterAnimal { @@ -128,10 +128,10 @@ index 880c3aaf4e684209879dc921480619e7c61ee4a0..6b32b3e4877efa64942838a07af5d48c @Nullable diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityFox.java b/src/main/java/net/minecraft/world/entity/animal/EntityFox.java -index 7bf546a1b2a80179962ed08a35d86f0a28eda3c2..b8b0ee65798dc94d707fa64bd53fdda5506331d9 100644 +index 7df6669692be4434868091c33ec3f027ebff0c81..a3d1489fe37dc8d9545e9832602e5d78e612bc27 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityFox.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityFox.java -@@ -164,6 +164,11 @@ public class EntityFox extends EntityAnimal { +@@ -162,6 +162,11 @@ public class EntityFox extends EntityAnimal { public int getPurpurBreedTime() { return this.world.purpurConfig.foxBreedingTicks; } @@ -240,7 +240,7 @@ index e6952c0a8d90eb4b133c517d97299f2c3db7e329..94141b8c1ad62e6d187726734d25dd0e if (this.isLazy()) { diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityParrot.java b/src/main/java/net/minecraft/world/entity/animal/EntityParrot.java -index 5463e1779422ff19499727a000fdfbbfc38809a8..efa4318989893c946e9d7671d0dead6c4a6e315f 100644 +index 7346921a24bdd57aa3814386bc372b082b23b4bc..7500de8bcdd32f08bf6d32e70cfe09baf097cc2b 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityParrot.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityParrot.java @@ -176,6 +176,11 @@ public class EntityParrot extends EntityPerchable implements EntityBird { @@ -272,7 +272,7 @@ index 5aa8806063186bec36b38adc51e2ea82bf6ff21a..8d24855f230a5ca6280f885d5b1c26ec @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityPolarBear.java b/src/main/java/net/minecraft/world/entity/animal/EntityPolarBear.java -index 2306abb72ea76a52fd6f27648c4815ad99f8f005..5a496d55b40f98609b0a9aac25929f6b5c0311ba 100644 +index c9c7c9de638079393bbea86f8069023dcbcbca83..83494d3c989a120297c21a1bd560bc37734dc86a 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityPolarBear.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityPolarBear.java @@ -121,6 +121,11 @@ public class EntityPolarBear extends EntityAnimal implements IEntityAngerable { @@ -312,10 +312,10 @@ index 38fe79872b4b7f4ad4a030fbdf505efbc0352fc0..0d32590cf4cfdd95da6aceac5190d42c @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityRabbit.java b/src/main/java/net/minecraft/world/entity/animal/EntityRabbit.java -index 0b706404895b69fbca79502a327ec20b47ed99f0..284c52276b2fd816990c23b7b8a9ee50e70ab005 100644 +index 465701232567e4058f9dfc776560ccde33fee66c..ef031ac08b06e78d8826579c49cf5e43683318f9 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityRabbit.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityRabbit.java -@@ -91,6 +91,11 @@ public class EntityRabbit extends EntityAnimal { +@@ -90,6 +90,11 @@ public class EntityRabbit extends EntityAnimal { public int getPurpurBreedTime() { return this.world.purpurConfig.rabbitBreedingTicks; } @@ -368,7 +368,7 @@ index ff6fc821085e4430a3b1008140b0b7fcacc59d2e..365f70117a287fab2fbf63ee8d89a10a @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/EntitySnowman.java b/src/main/java/net/minecraft/world/entity/animal/EntitySnowman.java -index 28b5c22ecfe573ac9d91b74e54ebd3e3c5e6373f..88db8ff8cb415b84ab98cc0550c705d5a472230c 100644 +index 76fe39cf57384602c7422cb340f15ca7cac65ef9..3934966b06eb9880ed316cee84d099edd80c09b9 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntitySnowman.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntitySnowman.java @@ -61,6 +61,11 @@ public class EntitySnowman extends EntityGolem implements IShearable, IRangedEnt @@ -384,7 +384,7 @@ index 28b5c22ecfe573ac9d91b74e54ebd3e3c5e6373f..88db8ff8cb415b84ab98cc0550c705d5 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java b/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java -index be48e12dd6c9a390bf383129953bcd3d1f818427..1e7632d2ca4440dee4e406e26da61411ec5bc88f 100644 +index 7ec3e5d136cbb708b3bb29aa79bdd401d37d56dc..fa629ebc4946a0c3e891e5e2dd881277b3e25347 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java @@ -86,6 +86,11 @@ public class EntitySquid extends EntityWaterAnimal { @@ -653,7 +653,7 @@ index c776f18722d1aa73f53da66ef6b37564eeaddd2a..1820c2d225d1fa919de2b1c0593370a8 public static AttributeProvider.Builder eL() { diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/EntityLlama.java b/src/main/java/net/minecraft/world/entity/animal/horse/EntityLlama.java -index b3d51abc9bad9cad6fdc5dbdc2bf09d43a565f98..762fed5ba27474951c1962e6f034e8494b1035d6 100644 +index 2710c246a147f117d2d90014c37988888010dc36..4bea68fa35177d84a35dc5ced3e501a87e2a5391 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/EntityLlama.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/EntityLlama.java @@ -113,6 +113,21 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn @@ -705,7 +705,7 @@ index 0fb651bcde1109b0eb30b60226d3512648dceb41..73f59982d70093d308c6dc6a9a569334 @Override diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EntityEnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EntityEnderDragon.java -index 7f583c6c15f0191219eb911d901ea28d86c11489..999a6d17eccd6305c0063e1558abfe70d72c39fe 100644 +index b2d1a0144353a1da61221b59a0acc028b0cf746e..aeff46b575a05145fb509b5e5a489b2067776e2f 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EntityEnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EntityEnderDragon.java @@ -147,6 +147,11 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster { @@ -721,7 +721,7 @@ index 7f583c6c15f0191219eb911d901ea28d86c11489..999a6d17eccd6305c0063e1558abfe70 public static AttributeProvider.Builder m() { diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityBlaze.java b/src/main/java/net/minecraft/world/entity/monster/EntityBlaze.java -index 9a109ed062e5abedaad295383aca6441321da276..45e69d2f8da4c5babfd2e67055cc0a4c6d3baac7 100644 +index 6553fd92c26d71ac0a60bd046c7f968f2dfe6667..55b6f483aca8cbb5c30b3759e23c86a699e19569 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityBlaze.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityBlaze.java @@ -72,6 +72,11 @@ public class EntityBlaze extends EntityMonster { @@ -753,7 +753,7 @@ index 27baf5cde99d8f25b1e7583c30339fcc71a3786f..72b298642f17c13f0f5959034e345a47 public static AttributeProvider.Builder m() { diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java b/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java -index 2cb9908a5c53528b2e02a1231752adc5ad8354f8..62d40f726355283baddde349c52bee0599bb293c 100644 +index 1daacdd75c709cd5508434b41589bd57032de27c..d049aac0208386198d1da4e9470e64898d27b1c9 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java @@ -137,6 +137,11 @@ public class EntityCreeper extends EntityMonster { @@ -789,7 +789,7 @@ index 93946f4e3cad07e20189a44ce512682b4cbc163b..926a38adb52b7d99ce2a9fcc52eb4878 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java b/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java -index 18b3f8d1fadd1424327261d92b49977a35c4948c..478ac5bfdc69b5c3e24906bb5e0ea1dff81cea98 100644 +index c04ff259f650b0e5a361c4f17b8b5ff9ecb8ab71..a1cc0b414479e693de9428412ba837fd9bf57751 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java @@ -96,6 +96,11 @@ public class EntityEnderman extends EntityMonster implements IEntityAngerable { @@ -837,7 +837,7 @@ index 55607910183155080e3d96296421438d17f19c8f..8d7b8d2ac9a7340e2cfd0d1b8963e4e4 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityGhast.java b/src/main/java/net/minecraft/world/entity/monster/EntityGhast.java -index 8784647f512d280ee0a092ecd406321268359314..5c39a9aec865d25a9aa5edcfd3a0fd6d1166cbd1 100644 +index b6d49740a1c8dfa19e871869b92b307fc8397588..e83d9aae4a04fc67587d40cec1f24ba5ebb58e10 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityGhast.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityGhast.java @@ -73,6 +73,11 @@ public class EntityGhast extends EntityFlying implements IMonster { @@ -853,7 +853,7 @@ index 8784647f512d280ee0a092ecd406321268359314..5c39a9aec865d25a9aa5edcfd3a0fd6d @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityGuardian.java b/src/main/java/net/minecraft/world/entity/monster/EntityGuardian.java -index 6980b6988549b37a33d204a6e84c9e81d384a57a..248c64ea21de214bfbb2fa39f289382fd4f76202 100644 +index 66ae664add95f4441724b49a470a2fef569042d6..291b2e0defe4d63d4f746a3879c1fee59d2997d7 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityGuardian.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityGuardian.java @@ -86,6 +86,11 @@ public class EntityGuardian extends EntityMonster { @@ -905,7 +905,7 @@ index 15ed51a2746c09538a425fce25fa25f2619b7033..626a207cdb727866cb75f4e53a688086 public static AttributeProvider.Builder m() { diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityPhantom.java b/src/main/java/net/minecraft/world/entity/monster/EntityPhantom.java -index a836839b17cbda8ac269f032b141ba448e3bab8c..902b26d609aef8dd46e8875cb7c06f187511e8d5 100644 +index 1c24a2abe3921fb3cf8341e4fd620d919e2917af..11e45bfa1086f56cdbd87e3ced194ee82f36d142 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityPhantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityPhantom.java @@ -120,6 +120,11 @@ public class EntityPhantom extends EntityFlying implements IMonster { @@ -966,10 +966,10 @@ index 2a4ac6e608650d56cc2b564e715b7b685e7f3f62..43a1a31db5ddfd30b66c63c6b2cceb1d @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityRavager.java b/src/main/java/net/minecraft/world/entity/monster/EntityRavager.java -index dc1ca7b334e89b4d0be775b6f6e6f4222ea02dcc..80c3cd540a46e249e85586e8d7a2f0f6226091fc 100644 +index cc37e545ece89803fad91801775470df4620bd62..7e3b59e2302a27f7b8a3f43b75527199722a896f 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityRavager.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityRavager.java -@@ -81,6 +81,11 @@ public class EntityRavager extends EntityRaider { +@@ -80,6 +80,11 @@ public class EntityRavager extends EntityRaider { double speed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getBaseValue(); getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).setValue(speed); } @@ -1078,7 +1078,7 @@ index cb52c4e63ac487d55dc16accca6976f44f904112..62f1808a456f46a6c7fbb5e030d9ed65 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/EntitySlime.java b/src/main/java/net/minecraft/world/entity/monster/EntitySlime.java -index 0cbe3032fd3b048b0eb8ec3d8592a662c69c9e30..ce0d52a501dbff7c4eb70270bafa3e2a77599107 100644 +index feb40c2ca8e8f3fae5665b2d71296a6b811b11f6..2b826dadb4b9132541c9844d144ce7050829250b 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntitySlime.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntitySlime.java @@ -51,6 +51,7 @@ import com.destroystokyo.paper.event.entity.SlimeChangeDirectionEvent; @@ -1170,7 +1170,7 @@ index cba66a08feceeeaf7c123da595fc7b12c5749783..892aa844a98ae0d192737c6fc6df0a21 public static boolean c(EntityTypes entitytypes, GeneratorAccess generatoraccess, EnumMobSpawn enummobspawn, BlockPosition blockposition, Random random) { diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityVex.java b/src/main/java/net/minecraft/world/entity/monster/EntityVex.java -index 4301ece0a04f3f2b4d198a684d0ca314deef2aef..69d47697442fa80fbed08a11bb9e66057d059101 100644 +index 5e2114d2321c1542dc892bc7aed07080008cfd20..6835abd1badd1f03401870f4fed2b6911211d931 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityVex.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityVex.java @@ -92,6 +92,11 @@ public class EntityVex extends EntityMonster { @@ -1218,7 +1218,7 @@ index c4663c5b02363bd1499ce1f3b50027f8aa7c68e7..a119923ee8d8ac00892f594a8af6d392 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityZoglin.java b/src/main/java/net/minecraft/world/entity/monster/EntityZoglin.java -index c5b1ce9268d6e6f3ec26eda4b5d8e7ae2a2ea672..17c96e8eaa5cde028024f5ad4b853e3399a942d5 100644 +index 249fb9cf43527af5c7818ce6b07487ad446811b7..4d03a2dc2aed9b292ac17dc57d560f13e655cf4a 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityZoglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityZoglin.java @@ -72,6 +72,11 @@ public class EntityZoglin extends EntityMonster implements IMonster, IOglin { @@ -1319,7 +1319,7 @@ index b8395c7317494adf36010080931a1c8635ab6cfa..aeeee97a87680f072188d1fcc9ec55b5 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/EntityHoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/EntityHoglin.java -index 828d01abe8202a246ce07c1c652a17cbc829d904..b271df48d04f12a68e0b7abf2f1375749a9a0f08 100644 +index 8c2815c8b11c8db8e6c1d0caf71188322e52094d..0b6c80e908392025197b68d1ba6b3eed6d69c9b2 100644 --- a/src/main/java/net/minecraft/world/entity/monster/hoglin/EntityHoglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/EntityHoglin.java @@ -76,6 +76,11 @@ public class EntityHoglin extends EntityAnimal implements IMonster, IOglin { @@ -1335,7 +1335,7 @@ index 828d01abe8202a246ce07c1c652a17cbc829d904..b271df48d04f12a68e0b7abf2f137574 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java -index 8c6f5273ed2ab4ec63b7854e290f790b2eca8c2f..99fc16aae085da564c5236e68925a8a2225f5c27 100644 +index 2311d82824314a9feede9c3c106b0e1b24ac1b7a..17dde4532714378f7480f55991d94fc82e9a2b05 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java @@ -80,6 +80,11 @@ public class EntityPiglin extends EntityPiglinAbstract implements ICrossbow { @@ -1351,7 +1351,7 @@ index 8c6f5273ed2ab4ec63b7854e290f790b2eca8c2f..99fc16aae085da564c5236e68925a8a2 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglinBrute.java b/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglinBrute.java -index da2220b08a9cd9c2d7d3fd06702e6690e12f095e..c441d6b2ce29d914a29c2f39d70adb14e9ab31a6 100644 +index 1370d2d8568a4ed62f2ec3d54abc7d2bebc48f75..201b78ffb5062254a6b3447f217df03dfb498710 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglinBrute.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglinBrute.java @@ -49,6 +49,11 @@ public class EntityPiglinBrute extends EntityPiglinAbstract { diff --git a/patches/server/0151-Phantom-flames-on-swoop.patch b/patches/server/0151-Phantom-flames-on-swoop.patch index d4d78cad2e..2da268d8ba 100644 --- a/patches/server/0151-Phantom-flames-on-swoop.patch +++ b/patches/server/0151-Phantom-flames-on-swoop.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Phantom flames on swoop diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityPhantom.java b/src/main/java/net/minecraft/world/entity/monster/EntityPhantom.java -index 902b26d609aef8dd46e8875cb7c06f187511e8d5..4f3d4f2596c69881f0653bddcc3bf2b9ede3ca8f 100644 +index 11e45bfa1086f56cdbd87e3ced194ee82f36d142..0e78d383347fa15a008bde543b08c707bb5bd54a 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityPhantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityPhantom.java @@ -226,6 +226,7 @@ public class EntityPhantom extends EntityFlying implements IMonster { diff --git a/patches/server/0156-Full-netherite-armor-grants-fire-resistance.patch b/patches/server/0156-Full-netherite-armor-grants-fire-resistance.patch index aa08c83cae..8fba6eb366 100644 --- a/patches/server/0156-Full-netherite-armor-grants-fire-resistance.patch +++ b/patches/server/0156-Full-netherite-armor-grants-fire-resistance.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Full netherite armor grants fire resistance diff --git a/src/main/java/net/minecraft/world/entity/player/EntityHuman.java b/src/main/java/net/minecraft/world/entity/player/EntityHuman.java -index af10d5aea7909ee9f38982264233f0a45c153003..5a2678cf3a8441344629b6a0bf4b6be538baae4f 100644 +index 78442fe87ceaf65b302536c893610aa0269b6dee..663dfa707dd948df2f25dab287fa4a0580070b75 100644 --- a/src/main/java/net/minecraft/world/entity/player/EntityHuman.java +++ b/src/main/java/net/minecraft/world/entity/player/EntityHuman.java -@@ -341,6 +341,16 @@ public abstract class EntityHuman extends EntityLiving { +@@ -340,6 +340,16 @@ public abstract class EntityHuman extends EntityLiving { this.addEffect(new MobEffect(MobEffects.WATER_BREATHING, 200, 0, false, false, true), org.bukkit.event.entity.EntityPotionEffectEvent.Cause.TURTLE_HELMET); // CraftBukkit } diff --git a/patches/server/0159-Add-mobGriefing-bypass-to-everything-affected.patch b/patches/server/0159-Add-mobGriefing-bypass-to-everything-affected.patch index f9ae45282d..270799986d 100644 --- a/patches/server/0159-Add-mobGriefing-bypass-to-everything-affected.patch +++ b/patches/server/0159-Add-mobGriefing-bypass-to-everything-affected.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add mobGriefing bypass to everything affected This adds the "bypass-mob-griefing" world config option to everything that is affected by the gamerule. diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index 4099ff50644aa68cddf16203c84ca0bbfd1c20ed..56ea148ddff1674e46c258f2658d0f4b5313e63a 100644 +index a090f563d7019615c055847ce0c2b0f2a343d70b..6447830095d02af5535fcf1f154b8c5260b90d33 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -1571,7 +1571,7 @@ public abstract class EntityLiving extends Entity { @@ -76,10 +76,10 @@ index 61a62c093b24c43064f116630d85096159e082d3..2519a78f7e5dd759680a1f47a1047885 } else if (this.c > 0) { --this.c; diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityFox.java b/src/main/java/net/minecraft/world/entity/animal/EntityFox.java -index b8b0ee65798dc94d707fa64bd53fdda5506331d9..355735c2efbba62481d059b8e733c9c70e834be1 100644 +index a3d1489fe37dc8d9545e9832602e5d78e612bc27..85086fde18c4c6a5146de3a90d5a94893f69854d 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityFox.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityFox.java -@@ -1075,7 +1075,7 @@ public class EntityFox extends EntityAnimal { +@@ -1073,7 +1073,7 @@ public class EntityFox extends EntityAnimal { } protected void n() { @@ -89,10 +89,10 @@ index b8b0ee65798dc94d707fa64bd53fdda5506331d9..355735c2efbba62481d059b8e733c9c7 if (iblockdata.a(Blocks.SWEET_BERRY_BUSH)) { diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityRabbit.java b/src/main/java/net/minecraft/world/entity/animal/EntityRabbit.java -index 284c52276b2fd816990c23b7b8a9ee50e70ab005..acb4c79b23fada090c5605cd352a573bdb0667bf 100644 +index ef031ac08b06e78d8826579c49cf5e43683318f9..a5be1a9d4e6f08f23215b49a30c1121167cc7a89 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityRabbit.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityRabbit.java -@@ -518,7 +518,7 @@ public class EntityRabbit extends EntityAnimal { +@@ -517,7 +517,7 @@ public class EntityRabbit extends EntityAnimal { @Override public boolean a() { if (this.c <= 0) { @@ -102,7 +102,7 @@ index 284c52276b2fd816990c23b7b8a9ee50e70ab005..acb4c79b23fada090c5605cd352a573b } diff --git a/src/main/java/net/minecraft/world/entity/animal/EntitySnowman.java b/src/main/java/net/minecraft/world/entity/animal/EntitySnowman.java -index 88db8ff8cb415b84ab98cc0550c705d5a472230c..17f27d2bf5be746a0fa0e1e0fecab8158b2b3587 100644 +index 3934966b06eb9880ed316cee84d099edd80c09b9..b13cd3f344a0e2c4c02b30f80ca9a81d93cc1954 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntitySnowman.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntitySnowman.java @@ -123,7 +123,7 @@ public class EntitySnowman extends EntityGolem implements IShearable, IRangedEnt @@ -115,7 +115,7 @@ index 88db8ff8cb415b84ab98cc0550c705d5a472230c..17f27d2bf5be746a0fa0e1e0fecab815 } diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EntityEnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EntityEnderDragon.java -index 999a6d17eccd6305c0063e1558abfe70d72c39fe..a81d782877ff6116477792fa4cec0846e56ed384 100644 +index aeff46b575a05145fb509b5e5a489b2067776e2f..0614483830336f3bbd348319ca3eed8767568852 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EntityEnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EntityEnderDragon.java @@ -539,7 +539,7 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster { @@ -128,10 +128,10 @@ index 999a6d17eccd6305c0063e1558abfe70d72c39fe..a81d782877ff6116477792fa4cec0846 // flag1 = this.world.a(blockposition, false) || flag1; flag1 = true; diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/EntityWither.java b/src/main/java/net/minecraft/world/entity/boss/wither/EntityWither.java -index beb4d59faf4bd7501468b2eaa0e866613625e963..fa6b72c7a12b20f8ccffa360a3895e4d8f4277e4 100644 +index 34103234140d61a5dc1d3e9f575fb8a65cde956b..9a152b7cd351380e696640a51e5f8b64225f25f0 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/EntityWither.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/EntityWither.java -@@ -380,7 +380,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity { +@@ -378,7 +378,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity { if (this.getInvul() > 0) { i = this.getInvul() - 1; if (i <= 0) { @@ -140,7 +140,7 @@ index beb4d59faf4bd7501468b2eaa0e866613625e963..fa6b72c7a12b20f8ccffa360a3895e4d // CraftBukkit start // this.world.createExplosion(this, this.locX(), this.getHeadY(), this.locZ(), 7.0F, false, explosion_effect); ExplosionPrimeEvent event = new ExplosionPrimeEvent(this.getBukkitEntity(), 7.0F, false); -@@ -492,7 +492,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity { +@@ -490,7 +490,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity { if (this.bw > 0) { --this.bw; @@ -150,7 +150,7 @@ index beb4d59faf4bd7501468b2eaa0e866613625e963..fa6b72c7a12b20f8ccffa360a3895e4d j = MathHelper.floor(this.locX()); int j1 = MathHelper.floor(this.locZ()); diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java b/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java -index 478ac5bfdc69b5c3e24906bb5e0ea1dff81cea98..ea500a6080f73dcc35d83a3b5a170f57dedaa431 100644 +index a1cc0b414479e693de9428412ba837fd9bf57751..d8c568d821b859bac0a9839c42c9596cf964b16e 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java @@ -455,7 +455,7 @@ public class EntityEnderman extends EntityMonster implements IEntityAngerable { @@ -185,10 +185,10 @@ index 8d7b8d2ac9a7340e2cfd0d1b8963e4e4d97e8bc8..8a219ac18307c715913f5c2a80b1ff35 } else { List list = EntityEvoker.this.world.a(EntitySheep.class, this.e, EntityEvoker.this, EntityEvoker.this.getBoundingBox().grow(16.0D, 4.0D, 16.0D)); diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityRavager.java b/src/main/java/net/minecraft/world/entity/monster/EntityRavager.java -index 80c3cd540a46e249e85586e8d7a2f0f6226091fc..6809c93fe435d183a27204fb4460fd68a86aa04f 100644 +index 7e3b59e2302a27f7b8a3f43b75527199722a896f..16da85620c067b005ce029c8b9c5ea1642a794f0 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityRavager.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityRavager.java -@@ -179,7 +179,7 @@ public class EntityRavager extends EntityRaider { +@@ -178,7 +178,7 @@ public class EntityRavager extends EntityRaider { this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).setValue(MathHelper.d(0.1D, d1, d0)); } diff --git a/patches/server/0161-Add-EntityTeleportHinderedEvent.patch b/patches/server/0161-Add-EntityTeleportHinderedEvent.patch index 5310ad2801..fcd808b33b 100644 --- a/patches/server/0161-Add-EntityTeleportHinderedEvent.patch +++ b/patches/server/0161-Add-EntityTeleportHinderedEvent.patch @@ -108,10 +108,10 @@ index a0df754d98e4be46720ba0962bdf7bf62f3425bb..c8b510a49ba5c299ec38ea1a56f5245e + } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index c524a0994f1c9ef1d0534403efa4e4481955b2f3..a80f664d2cf713fd751421be3735e2f4779f0056 100644 +index dcdc82b42689b4962323938a62cf7ded49afd6f4..4a70d657fd83627e8d66b52cb5f87381b43ad76a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -554,6 +554,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -550,6 +550,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { location.checkFinite(); if (entity.isVehicle() || entity.dead) { diff --git a/patches/server/0164-Movement-options-for-armor-stands.patch b/patches/server/0164-Movement-options-for-armor-stands.patch index 4880fe0f61..304545ff7f 100644 --- a/patches/server/0164-Movement-options-for-armor-stands.patch +++ b/patches/server/0164-Movement-options-for-armor-stands.patch @@ -17,10 +17,10 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c6128dc68be7cd60cf49db90ff5e816e4e14c4cf..a198829b370b66e4e58ad47dcb4aa27f1990bcc1 100644 +index 3230436d90306de325b8f72d813030288c2c28ed..6ad5d690b43b9eabc39a72e9e0ff4c0abf498175 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1500,7 +1500,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -1499,7 +1499,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne return this.isInWater() || flag; } diff --git a/patches/server/0165-Fix-stuck-in-portals.patch b/patches/server/0165-Fix-stuck-in-portals.patch index 03eb8d6c1f..0f2a529d15 100644 --- a/patches/server/0165-Fix-stuck-in-portals.patch +++ b/patches/server/0165-Fix-stuck-in-portals.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix stuck in portals diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index a1d5662911ee3a038da427bf2e0b69a11f187149..9c520e7600986b7b7df3af96a715c91c5347f30d 100644 +index 5a119537aca2f47c60b24a7b394a99051aec87b8..75871b1556f7c54a13488d9f985051f732d68d67 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java -@@ -1291,6 +1291,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -1289,6 +1289,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { playerlist.d(this); worldserver1.removePlayer(this); this.dead = false; @@ -17,10 +17,10 @@ index a1d5662911ee3a038da427bf2e0b69a11f187149..9c520e7600986b7b7df3af96a715c91c // CraftBukkit end this.spawnIn(worldserver); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index a198829b370b66e4e58ad47dcb4aa27f1990bcc1..1f306bd4f29086cae8839b36a87f477d03394295 100644 +index 6ad5d690b43b9eabc39a72e9e0ff4c0abf498175..90d625a7d653a9eb2763f806e635795e2a5f32e3 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2551,12 +2551,15 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -2550,12 +2550,15 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne return new Vec2F(this.pitch, this.yaw); } diff --git a/patches/server/0167-Toggle-for-water-sensitive-mob-damage.patch b/patches/server/0167-Toggle-for-water-sensitive-mob-damage.patch index d14f4bc88f..c2a2562b33 100644 --- a/patches/server/0167-Toggle-for-water-sensitive-mob-damage.patch +++ b/patches/server/0167-Toggle-for-water-sensitive-mob-damage.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Toggle for water sensitive mob damage diff --git a/src/main/java/net/minecraft/world/entity/EntityInsentient.java b/src/main/java/net/minecraft/world/entity/EntityInsentient.java -index a6ea96683b0f4d35015dff6168f3bf458346fb6f..95c08c31cb4d9df73f0af8f0e3b61236e1b46faa 100644 +index 0eae61c48e780225cd253e91d247d8814950afb5..d838f5a85d561444f9a96e6f61161a2e4470c4c4 100644 --- a/src/main/java/net/minecraft/world/entity/EntityInsentient.java +++ b/src/main/java/net/minecraft/world/entity/EntityInsentient.java -@@ -863,7 +863,8 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -861,7 +861,8 @@ public abstract class EntityInsentient extends EntityLiving { if (goalFloat.validConditions()) goalFloat.update(); this.getControllerJump().jumpIfSet(); } @@ -19,7 +19,7 @@ index a6ea96683b0f4d35015dff6168f3bf458346fb6f..95c08c31cb4d9df73f0af8f0e3b61236 } return; diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index 56ea148ddff1674e46c258f2658d0f4b5313e63a..b4a203be4de6b9aba280dfef22a91c02266c9f36 100644 +index 6447830095d02af5535fcf1f154b8c5260b90d33..bcd8938d71c617ad5c2fdc57f8153800765ffabb 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -2990,6 +2990,7 @@ public abstract class EntityLiving extends Entity { @@ -31,7 +31,7 @@ index 56ea148ddff1674e46c258f2658d0f4b5313e63a..b4a203be4de6b9aba280dfef22a91c02 return false; } diff --git a/src/main/java/net/minecraft/world/entity/animal/EntitySnowman.java b/src/main/java/net/minecraft/world/entity/animal/EntitySnowman.java -index 17f27d2bf5be746a0fa0e1e0fecab8158b2b3587..ad30cc92333aabf7d9fb3fb046e7ecb63629ee5b 100644 +index b13cd3f344a0e2c4c02b30f80ca9a81d93cc1954..d7aa3bd329eef71d58a8ea9be5735c58a598222b 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntitySnowman.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntitySnowman.java @@ -108,7 +108,7 @@ public class EntitySnowman extends EntityGolem implements IShearable, IRangedEnt @@ -44,7 +44,7 @@ index 17f27d2bf5be746a0fa0e1e0fecab8158b2b3587..ad30cc92333aabf7d9fb3fb046e7ecb6 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityBlaze.java b/src/main/java/net/minecraft/world/entity/monster/EntityBlaze.java -index 45e69d2f8da4c5babfd2e67055cc0a4c6d3baac7..f90a0fcd41996cfb6935a2299306e6a4bf19701a 100644 +index 55b6f483aca8cbb5c30b3759e23c86a699e19569..09f8f792bb800a274f7b127bc925c07416906ed5 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityBlaze.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityBlaze.java @@ -143,7 +143,7 @@ public class EntityBlaze extends EntityMonster { @@ -57,7 +57,7 @@ index 45e69d2f8da4c5babfd2e67055cc0a4c6d3baac7..f90a0fcd41996cfb6935a2299306e6a4 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java b/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java -index ea500a6080f73dcc35d83a3b5a170f57dedaa431..d290787f74579dd4c138eb827e44544814bfe315 100644 +index d8c568d821b859bac0a9839c42c9596cf964b16e..402a07551d9e78bac5e0f45e30b0abb7a4c82704 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java @@ -290,7 +290,7 @@ public class EntityEnderman extends EntityMonster implements IEntityAngerable { diff --git a/patches/server/0168-Config-to-always-tame-in-Creative.patch b/patches/server/0168-Config-to-always-tame-in-Creative.patch index edd6d0edfd..97db59cb96 100644 --- a/patches/server/0168-Config-to-always-tame-in-Creative.patch +++ b/patches/server/0168-Config-to-always-tame-in-Creative.patch @@ -20,7 +20,7 @@ index d285f5aa66fa81a2f56920c05afb4506cb82fa54..39e348847bcecd91013452e71ef16729 return; } diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityCat.java b/src/main/java/net/minecraft/world/entity/animal/EntityCat.java -index 7143b0801be7877762e41da336ea5e4e57f2e463..a099d8e0c5a3e4b804c8af978161ec1747ee7fa3 100644 +index a4e3e36f081803b0588a0e907a3a834b7a3ab3eb..84784e91eb6c4bee7e66a6dee8736b948414a7a5 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityCat.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityCat.java @@ -439,7 +439,7 @@ public class EntityCat extends EntityTameableAnimal { @@ -33,7 +33,7 @@ index 7143b0801be7877762e41da336ea5e4e57f2e463..a099d8e0c5a3e4b804c8af978161ec17 this.setWillSit(true); this.world.broadcastEntityEffect(this, (byte) 7); diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityParrot.java b/src/main/java/net/minecraft/world/entity/animal/EntityParrot.java -index efa4318989893c946e9d7671d0dead6c4a6e315f..b2a8bfc3e53a2071ab7451fbdb3d49d97f0c430a 100644 +index 7500de8bcdd32f08bf6d32e70cfe09baf097cc2b..2f51e80a02817f1e36c8fe9542809ab881263a16 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityParrot.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityParrot.java @@ -301,7 +301,7 @@ public class EntityParrot extends EntityPerchable implements EntityBird { diff --git a/patches/server/0170-Add-unsafe-Entity-serialization-API.patch b/patches/server/0170-Add-unsafe-Entity-serialization-API.patch index 210d0d565a..e993370a8d 100644 --- a/patches/server/0170-Add-unsafe-Entity-serialization-API.patch +++ b/patches/server/0170-Add-unsafe-Entity-serialization-API.patch @@ -29,10 +29,10 @@ index e1ef642f06078202fb782ac16b268e6429c5e202..778c981d4458957533fc3ac44095051b return SystemUtils.a(a(nbttagcompound).map((entitytypes) -> { return entitytypes.a(world); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index a80f664d2cf713fd751421be3735e2f4779f0056..6c37bf58bd269c2d7e1c84e5791e8245e4c75aea 100644 +index 4a70d657fd83627e8d66b52cb5f87381b43ad76a..af69023b241560031f6aa116561d7407b2502578 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1200,5 +1200,12 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -1196,5 +1196,12 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { public boolean isRidableInWater() { return getHandle().isRidableInWater(); } diff --git a/patches/server/0171-Add-ghast-allow-griefing-option.patch b/patches/server/0171-Add-ghast-allow-griefing-option.patch index 388d033b98..fc94c688b2 100644 --- a/patches/server/0171-Add-ghast-allow-griefing-option.patch +++ b/patches/server/0171-Add-ghast-allow-griefing-option.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add ghast allow-griefing option diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityGhast.java b/src/main/java/net/minecraft/world/entity/monster/EntityGhast.java -index 5c39a9aec865d25a9aa5edcfd3a0fd6d1166cbd1..4bc8b6ec44a03390ced313e84b03ab6662a3c0a2 100644 +index e83d9aae4a04fc67587d40cec1f24ba5ebb58e10..5834b38ab206a9db6d3e336074095ce85bdbcc50 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityGhast.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityGhast.java @@ -230,6 +230,7 @@ public class EntityGhast extends EntityFlying implements IMonster { diff --git a/patches/server/0172-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch b/patches/server/0172-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch index 5bef17badb..d05ebea2ce 100644 --- a/patches/server/0172-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch +++ b/patches/server/0172-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configs for if Wither/Ender Dragon can ride vehicles diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 1f306bd4f29086cae8839b36a87f477d03394295..f140574c7f35a0424b523054553c41c3717c8035 100644 +index 90d625a7d653a9eb2763f806e635795e2a5f32e3..3d9116d9e562e70cd20a6fa8ca561dff04f20907 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2401,7 +2401,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -2400,7 +2400,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne } } @@ -18,7 +18,7 @@ index 1f306bd4f29086cae8839b36a87f477d03394295..f140574c7f35a0424b523054553c41c3 } diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EntityEnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EntityEnderDragon.java -index a81d782877ff6116477792fa4cec0846e56ed384..6b0a71ce1c51e587ee17c8d60aaa52bbc87fb321 100644 +index 0614483830336f3bbd348319ca3eed8767568852..d27f61959e924e1ce6c7d76c905d98a762823e91 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EntityEnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EntityEnderDragon.java @@ -1073,6 +1073,7 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster { @@ -30,10 +30,10 @@ index a81d782877ff6116477792fa4cec0846e56ed384..6b0a71ce1c51e587ee17c8d60aaa52bb } diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/EntityWither.java b/src/main/java/net/minecraft/world/entity/boss/wither/EntityWither.java -index fa6b72c7a12b20f8ccffa360a3895e4d8f4277e4..4a3e0f7f59ca4fd64be62a580d08b6ab84649ee8 100644 +index 9a152b7cd351380e696640a51e5f8b64225f25f0..e34e25d62bd677fc7373e73b4118898a4f7f4d26 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/EntityWither.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/EntityWither.java -@@ -730,6 +730,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity { +@@ -728,6 +728,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity { @Override protected boolean n(Entity entity) { diff --git a/patches/server/0174-One-Punch-Man.patch b/patches/server/0174-One-Punch-Man.patch index e62229247b..672977a7ba 100644 --- a/patches/server/0174-One-Punch-Man.patch +++ b/patches/server/0174-One-Punch-Man.patch @@ -5,7 +5,7 @@ Subject: [PATCH] One Punch Man! diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index b4a203be4de6b9aba280dfef22a91c02266c9f36..535fbd84b23275398954d312bf825b321b87da4d 100644 +index bcd8938d71c617ad5c2fdc57f8153800765ffabb..008c97dc6f5b9c08c86d6c2743a6389086d3359e 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -2032,6 +2032,23 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/server/0177-Config-to-ignore-nearby-mobs-when-sleeping.patch b/patches/server/0177-Config-to-ignore-nearby-mobs-when-sleeping.patch index 228c989c24..0f9d3ecc99 100644 --- a/patches/server/0177-Config-to-ignore-nearby-mobs-when-sleeping.patch +++ b/patches/server/0177-Config-to-ignore-nearby-mobs-when-sleeping.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Config to ignore nearby mobs when sleeping diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index 9c520e7600986b7b7df3af96a715c91c5347f30d..4ec18d28c0022614b0ef6900774ddd4bda814308 100644 +index 75871b1556f7c54a13488d9f985051f732d68d67..1288c946865c2be32fafbd7dbe419a98c8050194 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java -@@ -1441,7 +1441,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -1439,7 +1439,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { return entitymonster.f((EntityHuman) this); }); diff --git a/patches/server/0178-Config-for-Enderman-to-aggro-spawned-Endermites.patch b/patches/server/0178-Config-for-Enderman-to-aggro-spawned-Endermites.patch index 88ef17f3de..95fbae18c8 100644 --- a/patches/server/0178-Config-for-Enderman-to-aggro-spawned-Endermites.patch +++ b/patches/server/0178-Config-for-Enderman-to-aggro-spawned-Endermites.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Config for Enderman to aggro spawned Endermites By default, Enderman do not attack Endermites unless spawned by an Ender Pearl. diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java b/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java -index d290787f74579dd4c138eb827e44544814bfe315..46143a710e057378ebe0ad644de275604b11d886 100644 +index 402a07551d9e78bac5e0f45e30b0abb7a4c82704..f113d5106bbee6fb0a5267547154f0839d03d089 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java @@ -72,7 +72,7 @@ public class EntityEnderman extends EntityMonster implements IEntityAngerable { diff --git a/patches/server/0179-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch b/patches/server/0179-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch index 89b12676ee..2dfe053f1a 100644 --- a/patches/server/0179-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch +++ b/patches/server/0179-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch @@ -7,7 +7,7 @@ Prevents Enderman from becoming aggresive towards players that are wearing a Dra Adds functionality to a useless item! diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java b/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java -index 46143a710e057378ebe0ad644de275604b11d886..0ed19429c1a9021e636fdfffa582b4e093fbc2e7 100644 +index f113d5106bbee6fb0a5267547154f0839d03d089..bd03e91861237eeda50e607af4e26c1ad2d71297 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java @@ -50,6 +50,7 @@ import net.minecraft.world.entity.ai.goal.target.PathfinderGoalUniversalAngerRes diff --git a/patches/server/0182-Config-to-disable-Llama-caravans.patch b/patches/server/0182-Config-to-disable-Llama-caravans.patch index bd95b49c79..baaca271c1 100644 --- a/patches/server/0182-Config-to-disable-Llama-caravans.patch +++ b/patches/server/0182-Config-to-disable-Llama-caravans.patch @@ -19,7 +19,7 @@ index 34a854131dd939693a6df4d52103714ebe373dc3..ea02a78c31ed43220a2b83be4bd2a896 List list = this.a.world.getEntities(this.a, this.a.getBoundingBox().grow(9.0D, 4.0D, 9.0D), (entity) -> { EntityTypes entitytypes = entity.getEntityType(); diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/EntityLlama.java b/src/main/java/net/minecraft/world/entity/animal/horse/EntityLlama.java -index 762fed5ba27474951c1962e6f034e8494b1035d6..567a1da3c167c20ae3fb86c2a1f3608ebb1056b6 100644 +index 4bea68fa35177d84a35dc5ced3e501a87e2a5391..f91e9dc5ae635329257f6b78b88c9c7c89e2f43d 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/EntityLlama.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/EntityLlama.java @@ -518,7 +518,7 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn diff --git a/patches/server/0183-Config-to-make-Creepers-explode-on-death.patch b/patches/server/0183-Config-to-make-Creepers-explode-on-death.patch index 8965bc9cc7..d2b096238a 100644 --- a/patches/server/0183-Config-to-make-Creepers-explode-on-death.patch +++ b/patches/server/0183-Config-to-make-Creepers-explode-on-death.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Config to make Creepers explode on death Creepers exploded after being killed in the alpha days. This brings that back. diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java b/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java -index 62d40f726355283baddde349c52bee0599bb293c..014091f35ee5aac0ee2f155ccec2daf586e4d3d3 100644 +index d049aac0208386198d1da4e9470e64898d27b1c9..27d5e9fc5ec1396e95180fc14e8a61b030cfd1e6 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java @@ -7,6 +7,7 @@ import net.minecraft.network.syncher.DataWatcher; diff --git a/patches/server/0184-Configurable-ravager-griefable-blocks-list.patch b/patches/server/0184-Configurable-ravager-griefable-blocks-list.patch index f556a3192a..b2374c463f 100644 --- a/patches/server/0184-Configurable-ravager-griefable-blocks-list.patch +++ b/patches/server/0184-Configurable-ravager-griefable-blocks-list.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable ravager griefable blocks list diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityRavager.java b/src/main/java/net/minecraft/world/entity/monster/EntityRavager.java -index 6809c93fe435d183a27204fb4460fd68a86aa04f..aee5e370907d238cb0a0fb55a45341c8f60ed7d0 100644 +index 16da85620c067b005ce029c8b9c5ea1642a794f0..c2a6f1cb399c2cd659e2b2191edbc2a687a40eeb 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityRavager.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityRavager.java -@@ -189,7 +189,7 @@ public class EntityRavager extends EntityRaider { +@@ -188,7 +188,7 @@ public class EntityRavager extends EntityRaider { IBlockData iblockdata = this.world.getType(blockposition); Block block = iblockdata.getBlock(); diff --git a/patches/server/0189-Drowning-Settings.patch b/patches/server/0189-Drowning-Settings.patch index 2fbfcb960e..c4cf3aabfe 100644 --- a/patches/server/0189-Drowning-Settings.patch +++ b/patches/server/0189-Drowning-Settings.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Drowning Settings diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index f140574c7f35a0424b523054553c41c3717c8035..013586baa739156cc34c47eba201f36b44ad56c9 100644 +index 3d9116d9e562e70cd20a6fa8ca561dff04f20907..6d8197c6c3f430c1f218431ffe72d0fddad82674 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2606,7 +2606,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -2605,7 +2605,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne } public int getDefaultPortalCooldown() { @@ -18,7 +18,7 @@ index f140574c7f35a0424b523054553c41c3717c8035..013586baa739156cc34c47eba201f36b public Iterable bn() { diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index 535fbd84b23275398954d312bf825b321b87da4d..89b8840e5cfc0fe0aa023882375c9b83826d1037 100644 +index 008c97dc6f5b9c08c86d6c2743a6389086d3359e..aa2106e038ff882924be5b956af7cb3e8ff00397 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -394,7 +394,7 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/server/0200-Configurable-damage-settings-for-magma-blocks.patch b/patches/server/0200-Configurable-damage-settings-for-magma-blocks.patch index 8856fc659b..cc6f278c5d 100644 --- a/patches/server/0200-Configurable-damage-settings-for-magma-blocks.patch +++ b/patches/server/0200-Configurable-damage-settings-for-magma-blocks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable damage settings for magma blocks diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 013586baa739156cc34c47eba201f36b44ad56c9..96c876960a1a8a5534802cba3ed30d0f71aee71e 100644 +index 6d8197c6c3f430c1f218431ffe72d0fddad82674..d52ac77516cbf62293afbbfdd96f5a4861a3025f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -894,7 +894,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -893,7 +893,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne } // CraftBukkit end diff --git a/patches/server/0207-Fix-SPIGOT-6278.patch b/patches/server/0207-Fix-SPIGOT-6278.patch index f3497e4255..65fa089056 100644 --- a/patches/server/0207-Fix-SPIGOT-6278.patch +++ b/patches/server/0207-Fix-SPIGOT-6278.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix SPIGOT-6278 diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java -index 99fc16aae085da564c5236e68925a8a2225f5c27..c6f51a483c919d032edb5b8b16a95c0750cef71b 100644 +index 17dde4532714378f7480f55991d94fc82e9a2b05..31de422d9ad5809653c0ce129ebc565d12352e65 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java @@ -172,7 +172,7 @@ public class EntityPiglin extends EntityPiglinAbstract implements ICrossbow { From cb42dec0dac878b559cea54aac8fd32a6bafb92a Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Mon, 10 May 2021 21:12:32 -0500 Subject: [PATCH 27/40] Updated Upstream (Paper) Upstream has released updates that appear to apply and compile correctly Paper Changes: c5fa3f0d4 Add Adventure message to PlayerAdvancementDoneEvent (#5030) 69c09cdb0 Updated Upstream (CraftBukkit) (#5607) --- Paper | 2 +- .../server/0001-Tuinity-Server-Changes.patch | 36 ++++++++-------- .../server/0002-Airplane-Server-Changes.patch | 8 ++-- patches/server/0007-Advancement-API.patch | 20 ++++----- ...-settings-suppressing-pointless-logs.patch | 4 +- .../server/0076-Item-entity-immunities.patch | 4 +- ...y-progress-messages-by-player-instea.patch | 43 ++++--------------- 7 files changed, 45 insertions(+), 72 deletions(-) diff --git a/Paper b/Paper index b3cc88799f..c5fa3f0d4c 160000 --- a/Paper +++ b/Paper @@ -1 +1 @@ -Subproject commit b3cc88799f83500b0d4277a46818e422a6a623f6 +Subproject commit c5fa3f0d4cd2698283dcc5b7c7c39940d0fe69ff diff --git a/patches/server/0001-Tuinity-Server-Changes.patch b/patches/server/0001-Tuinity-Server-Changes.patch index ae9e34fff7..b47f1904a3 100644 --- a/patches/server/0001-Tuinity-Server-Changes.patch +++ b/patches/server/0001-Tuinity-Server-Changes.patch @@ -12977,7 +12977,7 @@ index a323b76f68c273a73cb3f20167a668b2100f4944..86f156587a0939b28c5cf6f64907255c if (chunk != null) { playerchunkmap.callbackExecutor.execute(() -> { diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java -index 300884804bf9ac3fba7c30a04d8adf52e3dd2e3e..b28995ecfd7f45e6b6197be96c418aa0d05d3383 100644 +index 6835401bd7863bbd655502547a9fd4ae0f298da1..33429be7da4d4c2b2469b8140e46e66d9921652c 100644 --- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java @@ -103,6 +103,7 @@ import net.minecraft.world.level.storage.WorldDataServer; @@ -13624,7 +13624,7 @@ index 300884804bf9ac3fba7c30a04d8adf52e3dd2e3e..b28995ecfd7f45e6b6197be96c418aa0 protected void c(ChunkCoordIntPair chunkcoordintpair) { this.executor.a(SystemUtils.a(() -> { this.chunkDistanceManager.b(TicketType.LIGHT, chunkcoordintpair, 33 + ChunkStatus.a(ChunkStatus.FEATURES), chunkcoordintpair); -@@ -1470,9 +1546,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -1478,9 +1554,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { chunk.B(); return chunk; }); @@ -13635,7 +13635,7 @@ index 300884804bf9ac3fba7c30a04d8adf52e3dd2e3e..b28995ecfd7f45e6b6197be96c418aa0 } public int c() { -@@ -1553,39 +1627,27 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -1561,39 +1635,27 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { } public void setViewDistance(int i) { // Paper - public @@ -13680,7 +13680,7 @@ index 300884804bf9ac3fba7c30a04d8adf52e3dd2e3e..b28995ecfd7f45e6b6197be96c418aa0 if (entityplayer.world == this.world) { if (flag1 && !flag) { PlayerChunk playerchunk = this.getVisibleChunk(chunkcoordintpair.pair()); -@@ -1609,7 +1671,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -1617,7 +1679,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { } public int d() { @@ -13689,7 +13689,7 @@ index 300884804bf9ac3fba7c30a04d8adf52e3dd2e3e..b28995ecfd7f45e6b6197be96c418aa0 } protected PlayerChunkMap.a e() { -@@ -1681,7 +1743,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -1689,7 +1751,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { if (Thread.currentThread() != com.destroystokyo.paper.io.PaperFileIOThread.Holder.INSTANCE) { com.destroystokyo.paper.io.PaperFileIOThread.Holder.INSTANCE.scheduleSave( this.world, chunkcoordintpair.x, chunkcoordintpair.z, null, nbttagcompound, @@ -13698,7 +13698,7 @@ index 300884804bf9ac3fba7c30a04d8adf52e3dd2e3e..b28995ecfd7f45e6b6197be96c418aa0 return; } super.write(chunkcoordintpair, nbttagcompound); -@@ -1765,6 +1827,11 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -1773,6 +1835,11 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { return chunkHolder == null ? null : chunkHolder.getAvailableChunkNow(); } // Paper end @@ -13710,7 +13710,7 @@ index 300884804bf9ac3fba7c30a04d8adf52e3dd2e3e..b28995ecfd7f45e6b6197be96c418aa0 // Paper start - async io -@@ -1974,6 +2041,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -1982,6 +2049,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { }*/ // Paper end - replaced by distance map this.updateMaps(entityplayer); // Paper - distance maps @@ -13718,7 +13718,7 @@ index 300884804bf9ac3fba7c30a04d8adf52e3dd2e3e..b28995ecfd7f45e6b6197be96c418aa0 } -@@ -1982,7 +2050,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -1990,7 +2058,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { // Paper start - per player view distance // there can be potential desync with player's last mapped section and the view distance map, so use the // view distance map here. @@ -13727,7 +13727,7 @@ index 300884804bf9ac3fba7c30a04d8adf52e3dd2e3e..b28995ecfd7f45e6b6197be96c418aa0 if (inRange == null) { return Stream.empty(); -@@ -1998,8 +2066,9 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -2006,8 +2074,9 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { continue; } EntityPlayer player = (EntityPlayer)temp; @@ -13739,7 +13739,7 @@ index 300884804bf9ac3fba7c30a04d8adf52e3dd2e3e..b28995ecfd7f45e6b6197be96c418aa0 int distX = Math.abs(MCUtil.getCoordinateX(lastPosition) - chunkcoordintpair.x); int distZ = Math.abs(MCUtil.getCoordinateZ(lastPosition) - chunkcoordintpair.z); -@@ -2014,6 +2083,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -2022,6 +2091,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { continue; } EntityPlayer player = (EntityPlayer)temp; @@ -13747,7 +13747,7 @@ index 300884804bf9ac3fba7c30a04d8adf52e3dd2e3e..b28995ecfd7f45e6b6197be96c418aa0 players.add(player); } } -@@ -2092,22 +2162,25 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -2100,22 +2170,25 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { private final void processTrackQueue() { this.world.timings.tracker1.startTiming(); try { @@ -13786,7 +13786,7 @@ index 300884804bf9ac3fba7c30a04d8adf52e3dd2e3e..b28995ecfd7f45e6b6197be96c418aa0 } } // Paper end - optimised tracker -@@ -2229,6 +2302,7 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially +@@ -2237,6 +2310,7 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially apacket[1] = new PacketPlayOutLightUpdate(chunk.getPos(), this.lightEngine, true); // Paper start - Fix MC-162253 @@ -13794,7 +13794,7 @@ index 300884804bf9ac3fba7c30a04d8adf52e3dd2e3e..b28995ecfd7f45e6b6197be96c418aa0 final int lightMask = getLightMask(chunk); int i = 1; for (int x = -1; x <= 1; x++) { -@@ -2253,10 +2327,12 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially +@@ -2261,10 +2335,12 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially apacket[i] = new PacketPlayOutLightUpdate(new ChunkCoordIntPair(chunk.getPos().x + x, chunk.getPos().z + z), lightEngine, updateLightMask, 0, true); } } @@ -13809,7 +13809,7 @@ index 300884804bf9ac3fba7c30a04d8adf52e3dd2e3e..b28995ecfd7f45e6b6197be96c418aa0 int j = 1; for (int x = -1; x <= 1; x++) { -@@ -2281,6 +2357,7 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially +@@ -2289,6 +2365,7 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially entityplayer.playerConnection.sendPacket(packet); } } @@ -13817,7 +13817,7 @@ index 300884804bf9ac3fba7c30a04d8adf52e3dd2e3e..b28995ecfd7f45e6b6197be96c418aa0 // Paper end - Fix MC-162253 entityplayer.a(chunk.getPos(), apacket[0], apacket[1]); -@@ -2356,7 +2433,7 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially +@@ -2364,7 +2441,7 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially // Paper start // Replace trackedPlayers Set with a Map. The value is true until the player receives // their first update (which is forced to have absolute coordinates), false afterward. @@ -13826,7 +13826,7 @@ index 300884804bf9ac3fba7c30a04d8adf52e3dd2e3e..b28995ecfd7f45e6b6197be96c418aa0 public Set trackedPlayers = trackedPlayerMap.keySet(); public EntityTracker(Entity entity, int i, int j, boolean flag) { -@@ -2457,7 +2534,7 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially +@@ -2465,7 +2542,7 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially double vec3d_dy = entityplayer.locY() - this.tracker.locY(); double vec3d_dz = entityplayer.locZ() - this.tracker.locZ(); // Paper end - remove allocation of Vec3D here @@ -13835,7 +13835,7 @@ index 300884804bf9ac3fba7c30a04d8adf52e3dd2e3e..b28995ecfd7f45e6b6197be96c418aa0 boolean flag = vec3d_dx >= (double) (-i) && vec3d_dx <= (double) i && vec3d_dz >= (double) (-i) && vec3d_dz <= (double) i && this.tracker.a(entityplayer); // Paper - remove allocation of Vec3D here if (flag) { -@@ -2467,7 +2544,7 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially +@@ -2475,7 +2552,7 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(this.tracker.chunkX, this.tracker.chunkZ); PlayerChunk playerchunk = PlayerChunkMap.this.getVisibleChunk(chunkcoordintpair.pair()); @@ -13844,7 +13844,7 @@ index 300884804bf9ac3fba7c30a04d8adf52e3dd2e3e..b28995ecfd7f45e6b6197be96c418aa0 flag1 = PlayerChunkMap.b(chunkcoordintpair, entityplayer, false) <= PlayerChunkMap.this.viewDistance; } } -@@ -2507,7 +2584,7 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially +@@ -2515,7 +2592,7 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially int j = entity.getEntityType().getChunkRange() * 16; j = org.spigotmc.TrackingRange.getEntityTrackingRange(entity, j); // Paper diff --git a/patches/server/0002-Airplane-Server-Changes.patch b/patches/server/0002-Airplane-Server-Changes.patch index 5c35ad4bd4..cedb03926a 100644 --- a/patches/server/0002-Airplane-Server-Changes.patch +++ b/patches/server/0002-Airplane-Server-Changes.patch @@ -1706,7 +1706,7 @@ index 86f156587a0939b28c5cf6f64907255c1c4f8b35..06157bb07cce3ba24087ceaca7138b56 this.u = playerchunk_c; this.players = playerchunk_d; diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java -index b28995ecfd7f45e6b6197be96c418aa0d05d3383..914c7a1b18151f29183cfe9474313ce18e7c4ae2 100644 +index 33429be7da4d4c2b2469b8140e46e66d9921652c..0b48961a18da76dd25c0930f393f0ac9f709ad78 100644 --- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java @@ -705,7 +705,9 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { @@ -1741,7 +1741,7 @@ index b28995ecfd7f45e6b6197be96c418aa0d05d3383..914c7a1b18151f29183cfe9474313ce1 return Math.max(Math.abs(k), Math.abs(l)); } -@@ -2541,11 +2547,17 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially +@@ -2549,11 +2555,17 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially boolean flag1 = this.tracker.attachedToPlayer; if (!flag1) { @@ -1761,7 +1761,7 @@ index b28995ecfd7f45e6b6197be96c418aa0d05d3383..914c7a1b18151f29183cfe9474313ce1 } } -@@ -2575,8 +2587,10 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially +@@ -2583,8 +2595,10 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially } private int b() { @@ -1773,7 +1773,7 @@ index b28995ecfd7f45e6b6197be96c418aa0d05d3383..914c7a1b18151f29183cfe9474313ce1 Iterator iterator = collection.iterator(); while (iterator.hasNext()) { -@@ -2588,6 +2602,8 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially +@@ -2596,6 +2610,8 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially i = j; } } diff --git a/patches/server/0007-Advancement-API.patch b/patches/server/0007-Advancement-API.patch index 7fb48f16a6..40477e4e7e 100644 --- a/patches/server/0007-Advancement-API.patch +++ b/patches/server/0007-Advancement-API.patch @@ -5,12 +5,12 @@ Subject: [PATCH] Advancement API diff --git a/src/main/java/net/minecraft/advancements/Advancement.java b/src/main/java/net/minecraft/advancements/Advancement.java -index e3d5d55a2fe5d86db621d3e0c9322f553386d731..8bfd20ff9a3c96fa9ff5cc618ca7e858e62943a0 100644 +index 2f3d9e5b849093027d3c2ef434494cd600f52a31..23567430901284ab9d4d4873e53a1c8a06da6862 100644 --- a/src/main/java/net/minecraft/advancements/Advancement.java +++ b/src/main/java/net/minecraft/advancements/Advancement.java -@@ -77,7 +77,7 @@ public class Advancement { - } +@@ -78,7 +78,7 @@ public class Advancement { + public final @Nullable AdvancementDisplay getAdvancementDisplay() { return this.c(); } // Paper - OBFHELPER @Nullable - public AdvancementDisplay c() { + public AdvancementDisplay c() { return getDisplay(); } public AdvancementDisplay getDisplay() { // Purpur @@ -18,7 +18,7 @@ index e3d5d55a2fe5d86db621d3e0c9322f553386d731..8bfd20ff9a3c96fa9ff5cc618ca7e858 } diff --git a/src/main/java/net/minecraft/advancements/AdvancementDisplay.java b/src/main/java/net/minecraft/advancements/AdvancementDisplay.java -index 721d7fbab447117349994f710338ca616ab11067..35b84373da154a070f691b0049086cc788f7de4d 100644 +index adc6779e53e7b2ee04a80e2ea714e3378b8e6f39..3335c96ec15eb8d8f0b67f51846038f728f6f9fc 100644 --- a/src/main/java/net/minecraft/advancements/AdvancementDisplay.java +++ b/src/main/java/net/minecraft/advancements/AdvancementDisplay.java @@ -25,10 +25,11 @@ public class AdvancementDisplay { @@ -35,7 +35,7 @@ index 721d7fbab447117349994f710338ca616ab11067..35b84373da154a070f691b0049086cc7 public AdvancementDisplay(ItemStack itemstack, IChatBaseComponent ichatbasecomponent, IChatBaseComponent ichatbasecomponent1, @Nullable MinecraftKey minecraftkey, AdvancementFrameType advancementframetype, boolean flag, boolean flag1, boolean flag2) { this.a = ichatbasecomponent; -@@ -46,22 +47,29 @@ public class AdvancementDisplay { +@@ -46,10 +47,12 @@ public class AdvancementDisplay { this.j = f1; } @@ -48,14 +48,12 @@ index 721d7fbab447117349994f710338ca616ab11067..35b84373da154a070f691b0049086cc7 public IChatBaseComponent b() { return this.b; } - -+ public AdvancementFrameType getFrameType() { return e(); } // Purpur - OBFHELPER - public AdvancementFrameType e() { +@@ -59,11 +62,14 @@ public class AdvancementDisplay { return this.e; } -+ public void setShouldAnnounceToChat(boolean announce) { this.g = announce; } // Purpur - OBFHELPER -+ public boolean shouldAnnounceToChat() { return i(); } // Purpur - OBFHELPER ++ public final void setShouldAnnounceToChat(boolean announce) { this.g = announce; } // Purpur - OBFHELPER + public final boolean shouldAnnounceToChat() { return this.i(); } // Paper - OBFHELPER public boolean i() { return this.g; } @@ -66,7 +64,7 @@ index 721d7fbab447117349994f710338ca616ab11067..35b84373da154a070f691b0049086cc7 return this.h; } diff --git a/src/main/java/net/minecraft/advancements/AdvancementFrameType.java b/src/main/java/net/minecraft/advancements/AdvancementFrameType.java -index f5d24950d317c78a971472821595fc1b44befc6e..f096ecf8d77b085e6c2ef4c3b64f0b65409bb287 100644 +index 32380346555e194227423999a79f1ebcbbe38d3b..173266c81be66f85db06dd28d9c9d720e21f8bc4 100644 --- a/src/main/java/net/minecraft/advancements/AdvancementFrameType.java +++ b/src/main/java/net/minecraft/advancements/AdvancementFrameType.java @@ -4,16 +4,27 @@ import net.minecraft.EnumChatFormat; diff --git a/patches/server/0024-Logger-settings-suppressing-pointless-logs.patch b/patches/server/0024-Logger-settings-suppressing-pointless-logs.patch index b357cfb29a..6f9d05321a 100644 --- a/patches/server/0024-Logger-settings-suppressing-pointless-logs.patch +++ b/patches/server/0024-Logger-settings-suppressing-pointless-logs.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Logger settings (suppressing pointless logs) diff --git a/src/main/java/net/minecraft/server/AdvancementDataPlayer.java b/src/main/java/net/minecraft/server/AdvancementDataPlayer.java -index 7a8a1960882e291c46301d07da3e1c5415516893..59d781b5e61c5d2c004bc92300d8d42e81821308 100644 +index dfdbc028f68ced197ad179248ed3b1e9d70ba057..a1ee1066108985a95abddb03ff447b5a14f4f85f 100644 --- a/src/main/java/net/minecraft/server/AdvancementDataPlayer.java +++ b/src/main/java/net/minecraft/server/AdvancementDataPlayer.java -@@ -189,6 +189,7 @@ public class AdvancementDataPlayer { +@@ -190,6 +190,7 @@ public class AdvancementDataPlayer { if (advancement == null) { // CraftBukkit start if (entry.getKey().getNamespace().equals("minecraft")) { diff --git a/patches/server/0076-Item-entity-immunities.patch b/patches/server/0076-Item-entity-immunities.patch index 3eecce6832..48fc9c89fd 100644 --- a/patches/server/0076-Item-entity-immunities.patch +++ b/patches/server/0076-Item-entity-immunities.patch @@ -18,10 +18,10 @@ index 53e773c14689967d5b12467bf209eefb05f7a812..b8f9238c598a55ba796951cb775cd35f private java.util.Map trackedPlayerMap = null; diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java -index 914c7a1b18151f29183cfe9474313ce18e7c4ae2..12c0a0cebc9db542a654ff2a2826f1bcf4a72baa 100644 +index 0b48961a18da76dd25c0930f393f0ac9f709ad78..7444878986c802ff10f67e9d5d9ba277db709af4 100644 --- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java -@@ -2432,7 +2432,7 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially +@@ -2440,7 +2440,7 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially public class EntityTracker { diff --git a/patches/server/0206-Allows-to-display-progress-messages-by-player-instea.patch b/patches/server/0206-Allows-to-display-progress-messages-by-player-instea.patch index b8d9435ffe..5037fba494 100644 --- a/patches/server/0206-Allows-to-display-progress-messages-by-player-instea.patch +++ b/patches/server/0206-Allows-to-display-progress-messages-by-player-instea.patch @@ -5,35 +5,11 @@ Subject: [PATCH] Allows to display progress messages by player instead to everyone on the server. -diff --git a/src/main/java/net/minecraft/advancements/Advancement.java b/src/main/java/net/minecraft/advancements/Advancement.java -index 8bfd20ff9a3c96fa9ff5cc618ca7e858e62943a0..97479cacc2a3f7850df8647f78d7dbb5710ae27b 100644 ---- a/src/main/java/net/minecraft/advancements/Advancement.java -+++ b/src/main/java/net/minecraft/advancements/Advancement.java -@@ -125,6 +125,7 @@ public class Advancement { - return this.requirements; - } - -+ public IChatBaseComponent getChatComponent() { return j(); } // Purpur - OBFHELPER - public IChatBaseComponent j() { - return this.chatComponent; - } -diff --git a/src/main/java/net/minecraft/advancements/AdvancementFrameType.java b/src/main/java/net/minecraft/advancements/AdvancementFrameType.java -index f096ecf8d77b085e6c2ef4c3b64f0b65409bb287..bfa86826b93a2eee7f22203ca09250e15f12d217 100644 ---- a/src/main/java/net/minecraft/advancements/AdvancementFrameType.java -+++ b/src/main/java/net/minecraft/advancements/AdvancementFrameType.java -@@ -31,6 +31,7 @@ public enum AdvancementFrameType { - this.g = new ChatMessage("advancements.toast." + s); - } - -+ public String getName() { return a(); } // Purpur - OBFHELPER - public String a() { - return this.d; - } diff --git a/src/main/java/net/minecraft/server/AdvancementDataPlayer.java b/src/main/java/net/minecraft/server/AdvancementDataPlayer.java -index 59d781b5e61c5d2c004bc92300d8d42e81821308..b81a0e1c3ff3d749b6bbd9efdbc7823d1c631b8e 100644 +index a1ee1066108985a95abddb03ff447b5a14f4f85f..4720644ae82f76f835f14c0b3a00e7b7874fb1e2 100644 --- a/src/main/java/net/minecraft/server/AdvancementDataPlayer.java +++ b/src/main/java/net/minecraft/server/AdvancementDataPlayer.java -@@ -59,7 +59,7 @@ public class AdvancementDataPlayer { +@@ -60,7 +60,7 @@ public class AdvancementDataPlayer { private static final TypeToken> c = new TypeToken>() { }; private final DataFixer d; @@ -42,22 +18,21 @@ index 59d781b5e61c5d2c004bc92300d8d42e81821308..b81a0e1c3ff3d749b6bbd9efdbc7823d private final File f; public final Map data = Maps.newLinkedHashMap(); private final Set h = Sets.newLinkedHashSet(); -@@ -317,7 +317,14 @@ public class AdvancementDataPlayer { - this.player.world.getServer().getPluginManager().callEvent(new org.bukkit.event.player.PlayerAdvancementDoneEvent(this.player.getBukkitEntity(), advancement.bukkit)); // CraftBukkit +@@ -325,7 +325,13 @@ public class AdvancementDataPlayer { advancement.d().a(this.player); - if (advancement.c() != null && advancement.c().i() && this.player.world.getGameRules().getBoolean(GameRules.ANNOUNCE_ADVANCEMENTS)) { -- this.e.sendMessage(new ChatMessage("chat.type.advancement." + advancement.c().e().a(), new Object[]{this.player.getScoreboardDisplayName(), advancement.j()}), ChatMessageType.SYSTEM, SystemUtils.b); + // Paper start - Add Adventure message to PlayerAdvancementDoneEvent + if (message != null && this.player.world.getGameRules().getBoolean(GameRules.ANNOUNCE_ADVANCEMENTS)) { +- this.e.sendMessage(PaperAdventure.asVanilla(message), ChatMessageType.SYSTEM, SystemUtils.getNullUUID()); + // Purpur Start - AdvancementMessage By Player -+ ChatMessage advancementMessage = new ChatMessage("chat.type.advancement." + advancement.getDisplay().getFrameType().getName(), this.player.getScoreboardDisplayName(), advancement.getChatComponent()); + if (net.pl3x.purpur.PurpurConfig.advancementOnlyBroadcastToAffectedPlayer) { -+ this.player.sendMessage(advancementMessage, SystemUtils.getNullUUID()); ++ this.player.sendMessage(PaperAdventure.asVanilla(message), SystemUtils.getNullUUID()); + } else { -+ getPlayerList().sendMessage(advancementMessage, ChatMessageType.SYSTEM, SystemUtils.getNullUUID()); ++ getPlayerList().sendMessage(PaperAdventure.asVanilla(message), ChatMessageType.SYSTEM, SystemUtils.getNullUUID()); + } + // Purpur End + // Paper end } } - } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java index 56424e45c04e7165c0671f74cdcd0147d1069af7..7e8654e4df61527f33d4fce2afdb14e29b90a4c2 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java From fbd28d86d9033a8fc740a3864bcda074197b4bde Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Tue, 11 May 2021 01:12:59 -0500 Subject: [PATCH 28/40] Updated Upstream (Paper & Tuinity) Upstream has released updates that appear to apply and compile correctly Paper Changes: 750049fa2 Fix incorrect colors in some log messages (#5609) Tuinity Changes: 138247324 Null check chunk in block changes for Starlight --- Paper | 2 +- .../server/0001-Tuinity-Server-Changes.patch | 48 +++++++------------ .../server/0002-Airplane-Server-Changes.patch | 6 +-- patches/server/0003-Rebrand.patch | 4 +- .../0011-Configurable-server-mod-name.patch | 4 +- patches/server/0013-Lagging-threshold.patch | 6 +-- .../0057-Configurable-TPS-Catchup.patch | 4 +- ...0074-Add-5-second-tps-average-in-tps.patch | 8 ++-- patches/server/0103-Ridables.patch | 4 +- patches/server/0153-Implement-TPSBar.patch | 4 +- 10 files changed, 39 insertions(+), 51 deletions(-) diff --git a/Paper b/Paper index c5fa3f0d4c..750049fa2b 160000 --- a/Paper +++ b/Paper @@ -1 +1 @@ -Subproject commit c5fa3f0d4cd2698283dcc5b7c7c39940d0fe69ff +Subproject commit 750049fa2b03d3880b17431625f96e1044bc7b9d diff --git a/patches/server/0001-Tuinity-Server-Changes.patch b/patches/server/0001-Tuinity-Server-Changes.patch index b47f1904a3..e5d1484083 100644 --- a/patches/server/0001-Tuinity-Server-Changes.patch +++ b/patches/server/0001-Tuinity-Server-Changes.patch @@ -3397,10 +3397,10 @@ index 0000000000000000000000000000000000000000..86a880d0f13f0fee70b09626c394c9e2 +} diff --git a/src/main/java/com/tuinity/tuinity/chunk/light/StarLightEngine.java b/src/main/java/com/tuinity/tuinity/chunk/light/StarLightEngine.java new file mode 100644 -index 0000000000000000000000000000000000000000..e40cf190c945754bd8b5342f76cd7fe2efd127cb +index 0000000000000000000000000000000000000000..2b0455b7475a75bba010fd71798eaa204bcf9562 --- /dev/null +++ b/src/main/java/com/tuinity/tuinity/chunk/light/StarLightEngine.java -@@ -0,0 +1,1615 @@ +@@ -0,0 +1,1603 @@ +package com.tuinity.tuinity.chunk.light; + +import com.tuinity.tuinity.util.CoordinateUtils; @@ -3847,7 +3847,7 @@ index 0000000000000000000000000000000000000000..e40cf190c945754bd8b5342f76cd7fe2 + try { + this.changedBlocksSet = positions; + final IChunkAccess chunk = this.getChunkInCache(chunkX, chunkZ); -+ if (this.isClientSide && chunk == null) { ++ if (chunk == null) { + return; + } + if (changedSections != null) { @@ -4146,18 +4146,6 @@ index 0000000000000000000000000000000000000000..e40cf190c945754bd8b5342f76cd7fe2 + final Boolean[] emptinessChanges) { + this.setupCaches(lightAccess, chunkX * 16 + 7, 128, chunkZ * 16 + 7, true, true); + try { -+ if (this.isClientSide) { -+ // force current chunk into cache -+ final IChunkAccess chunk = (IChunkAccess)lightAccess.getFeaturesReadyChunk(chunkX, chunkZ); -+ if (chunk == null) { -+ // unloaded this frame (or last), and we were still queued -+ return; -+ } -+ this.setChunkInCache(chunkX, chunkZ, chunk); -+ this.setBlocksForChunkInCache(chunkX, chunkZ, chunk.getSections()); -+ this.setNibblesForChunkInCache(chunkX, chunkZ, this.getNibblesOnChunk(chunk)); -+ this.setEmptinessMapCache(chunkX, chunkZ, this.getEmptinessMap(chunk)); -+ } + final IChunkAccess chunk = this.getChunkInCache(chunkX, chunkZ); + if (chunk == null) { + return; @@ -10947,10 +10935,10 @@ index 1d72af9cace7aa8f1d20c7c1c5be621f533e2dad..b7399d17dd64ca8b1f1fab405cb0ac91 worldData.addProperty("keep-spawn-loaded-range", world.paperConfig.keepLoadedRange); worldData.addProperty("visible-chunk-count", visibleChunks.size()); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 61712ae515b329a6b85dbe2e5960e4e864dc7731..2767a9369ddc922f1d9c7cb6c7acc8270545535a 100644 +index 35bb4d0b9ed131e6570cce0b43ae78c5557a0bff..8adbb9a77ff304f14ad3defa0f4f7ec25b0d2a2a 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -267,6 +267,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant processQueue = new java.util.concurrent.ConcurrentLinkedQueue(); public int autosavePeriod; public boolean serverAutoSave = false; // Paper -@@ -877,10 +878,11 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant { @@ -11114,7 +11102,7 @@ index 61712ae515b329a6b85dbe2e5960e4e864dc7731..2767a9369ddc922f1d9c7cb6c7acc827 return !this.canOversleep(); }); isOversleep = false;MinecraftTimings.serverOversleep.stopTiming(); -@@ -1392,6 +1452,8 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant 0; // Paper worldserver.hasEntityMoveEvent = EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper diff --git a/patches/server/0153-Implement-TPSBar.patch b/patches/server/0153-Implement-TPSBar.patch index ce1c18e6ba..f8ef7ff85c 100644 --- a/patches/server/0153-Implement-TPSBar.patch +++ b/patches/server/0153-Implement-TPSBar.patch @@ -17,10 +17,10 @@ index 2f5e8ed345ace0d9abb7edebe1fd47e562b1d272..ce95a7d9c967d723bad468bd00a5c0a6 if (commanddispatcher_servertype.d) { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 4ceaa8e905c9ba7277ee00cea020d01d14ae2178..137c52999666ea331ac52c230f0674d489a95524 100644 +index e3c3b2eb03ad132a91140cb459fd8f378154ee2e..176fc4c8b7c5ef45b29cb8aaa1b1ff16dbfc9b7c 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -989,6 +989,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant Date: Tue, 11 May 2021 03:03:48 -0700 Subject: [PATCH 29/40] Update Gradle to 7.0.1 --- gradle/wrapper/gradle-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 442d9132ea..e5338d370b 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From 6e98c88bbc8d0d9d20d9dfde39174210259a814a Mon Sep 17 00:00:00 2001 From: jmp Date: Tue, 11 May 2021 03:06:41 -0700 Subject: [PATCH 30/40] Add missing repo to settings.gradle.kts --- settings.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/settings.gradle.kts b/settings.gradle.kts index 8869843a3f..e33bf0a93d 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -2,6 +2,7 @@ import java.util.Locale pluginManagement { repositories { + gradlePluginPortal() mavenCentral() jcenter() maven("https://repo.jpenilla.xyz/snapshots") From 3f9958b4e9683c7d3b021054e674ce1f2a4555c0 Mon Sep 17 00:00:00 2001 From: Encode42 Date: Tue, 11 May 2021 23:58:54 -0400 Subject: [PATCH 31/40] Implement the Mob Blindness mod --- .../server/0208-Implement-Mob-Blindness.patch | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 patches/server/0208-Implement-Mob-Blindness.patch diff --git a/patches/server/0208-Implement-Mob-Blindness.patch b/patches/server/0208-Implement-Mob-Blindness.patch new file mode 100644 index 0000000000..9e5bdccfae --- /dev/null +++ b/patches/server/0208-Implement-Mob-Blindness.patch @@ -0,0 +1,46 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Encode42 +Date: Tue, 11 May 2021 21:00:53 -0400 +Subject: [PATCH] Implement Mob Blindness + +Ported from https://github.com/raltsmc/mobblindness + +diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java +index aa2106e038ff882924be5b956af7cb3e8ff00397..2dc40e11eae98400b426175ceb2c92cd5942291c 100644 +--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java ++++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java +@@ -925,6 +925,18 @@ public abstract class EntityLiving extends Entity { + // Airplane end + d0 *= 0.5D; + } ++ ++ // Purpur start ++ if (entity instanceof EntityLiving) { ++ EntityLiving livingEntity = (EntityLiving) entity; ++ if (livingEntity.hasEffect(MobEffects.BLINDNESS)) { ++ int amplifier = livingEntity.getEffect(MobEffects.BLINDNESS).getAmplifier(); ++ for (int i = 0; i < amplifier; i++) { ++ d0 *= world.purpurConfig.mobsBlindnessMultiplier; ++ } ++ } ++ } ++ // Purpur end + } + + return d0; +diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +index 07c66f9d41e7a74021dde6702d654710e400e93b..1aa5a4849411eee5419a9daf7fe2b197e1d37153 100644 +--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java ++++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +@@ -542,6 +542,11 @@ public class PurpurWorldConfig { + mobsSpawnOnBlueIce = getBoolean("blocks.blue_ice.allow-mob-spawns", mobsSpawnOnBlueIce); + } + ++ public int mobsBlindnessMultiplier = 1; ++ private void blindnessSettings() { ++ mobsBlindnessMultiplier = getInt("gameplay-mechanics.entity-blindness-multiplier", mobsBlindnessMultiplier); ++ } ++ + public boolean chestOpenWithBlockOnTop = false; + private void chestSettings() { + chestOpenWithBlockOnTop = getBoolean("blocks.chest.open-with-solid-block-on-top", chestOpenWithBlockOnTop); From c1efe3c229fc7d7e91ef5e3414b0f67e7ecd9106 Mon Sep 17 00:00:00 2001 From: Encode42 Date: Wed, 12 May 2021 00:03:03 -0400 Subject: [PATCH 32/40] It's meant to be double :facepalm: --- patches/server/0208-Implement-Mob-Blindness.patch | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/patches/server/0208-Implement-Mob-Blindness.patch b/patches/server/0208-Implement-Mob-Blindness.patch index 9e5bdccfae..c5c186649e 100644 --- a/patches/server/0208-Implement-Mob-Blindness.patch +++ b/patches/server/0208-Implement-Mob-Blindness.patch @@ -29,16 +29,16 @@ index aa2106e038ff882924be5b956af7cb3e8ff00397..2dc40e11eae98400b426175ceb2c92cd return d0; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 07c66f9d41e7a74021dde6702d654710e400e93b..1aa5a4849411eee5419a9daf7fe2b197e1d37153 100644 +index 07c66f9d41e7a74021dde6702d654710e400e93b..b8622f687b4fd70aaee5fa44cc50b8ee38582582 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -542,6 +542,11 @@ public class PurpurWorldConfig { mobsSpawnOnBlueIce = getBoolean("blocks.blue_ice.allow-mob-spawns", mobsSpawnOnBlueIce); } -+ public int mobsBlindnessMultiplier = 1; ++ public double mobsBlindnessMultiplier = 1; + private void blindnessSettings() { -+ mobsBlindnessMultiplier = getInt("gameplay-mechanics.entity-blindness-multiplier", mobsBlindnessMultiplier); ++ mobsBlindnessMultiplier = getDouble("gameplay-mechanics.entity-blindness-multiplier", mobsBlindnessMultiplier); + } + public boolean chestOpenWithBlockOnTop = false; From beed258ee98084b941c67bbb5ba796b1620660f9 Mon Sep 17 00:00:00 2001 From: Bierque Jason Date: Thu, 13 May 2021 01:37:14 +0200 Subject: [PATCH 33/40] Better offline mode warning (#330) --- patches/server/0003-Rebrand.patch | 19 +++++++++++++++++++ patches/server/0004-Purpur-config-files.patch | 2 +- patches/server/0153-Implement-TPSBar.patch | 4 ++-- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/patches/server/0003-Rebrand.patch b/patches/server/0003-Rebrand.patch index 8a96caf8c5..f6f2b8b92d 100644 --- a/patches/server/0003-Rebrand.patch +++ b/patches/server/0003-Rebrand.patch @@ -104,6 +104,25 @@ index dd0daf3138a38d0c8a399e6cb54bbc58af47f710..53d847b863a957639ff2e58280861316 } public CrashReport b(CrashReport crashreport) { +diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +index 858bd62d2a17c15ee573c5cd607a876d3a99c2b1..8eab794e5c8d245b94faaab8abd45a5a5091be51 100644 +--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java ++++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +@@ -260,11 +260,12 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer + DedicatedServer.LOGGER.warn("**** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!"); + DedicatedServer.LOGGER.warn("The server will make no attempt to authenticate usernames. Beware."); + // Spigot start +- if (org.spigotmc.SpigotConfig.bungee) { +- DedicatedServer.LOGGER.warn("Whilst this makes it possible to use BungeeCord, unless access to your server is properly restricted, it also opens up the ability for hackers to connect with any username they choose."); ++ if (com.destroystokyo.paper.PaperConfig.isProxyOnlineMode()) { // Purpur ++ DedicatedServer.LOGGER.warn("Whilst this makes it possible to use BungeeCord or Velocity, unless access to your server is properly restricted, it also opens up the ability for hackers to connect with any username they choose."); // Purpur + DedicatedServer.LOGGER.warn("Please see http://www.spigotmc.org/wiki/firewall-guide/ for further information."); + } else { + DedicatedServer.LOGGER.warn("While this makes the game possible to play without internet access, it also opens up the ability for hackers to connect with any username they choose."); ++ DedicatedServer.LOGGER.warn("You will not be offered any support as long as the server allows offline-mode players to join."); // Purpur + } + // Spigot end + DedicatedServer.LOGGER.warn("To change this, set \"online-mode\" to \"true\" in the server.properties file."); diff --git a/src/main/java/net/pl3x/purpur/PurpurVersionFetcher.java b/src/main/java/net/pl3x/purpur/PurpurVersionFetcher.java new file mode 100644 index 0000000000000000000000000000000000000000..cabfcebf9f944f7a2a2a1cffc7401435803a8741 diff --git a/patches/server/0004-Purpur-config-files.patch b/patches/server/0004-Purpur-config-files.patch index 558972440b..bb5e1c94e4 100644 --- a/patches/server/0004-Purpur-config-files.patch +++ b/patches/server/0004-Purpur-config-files.patch @@ -45,7 +45,7 @@ index 14ac28d4d6b1ab0f0a70dfefc589f7723a1d2e1a..4eb122cfd31902df9789d2e8ff261520 config.save(CONFIG_FILE); } catch (IOException ex) { diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 858bd62d2a17c15ee573c5cd607a876d3a99c2b1..a76219e59c24862b9c1e09e4a2a29cf2a6260514 100644 +index 8eab794e5c8d245b94faaab8abd45a5a5091be51..017e19620ddf6b05cd12256f2381b9d611350bc4 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -212,6 +212,15 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer diff --git a/patches/server/0153-Implement-TPSBar.patch b/patches/server/0153-Implement-TPSBar.patch index f8ef7ff85c..aa8f78aad8 100644 --- a/patches/server/0153-Implement-TPSBar.patch +++ b/patches/server/0153-Implement-TPSBar.patch @@ -29,10 +29,10 @@ index e3c3b2eb03ad132a91140cb459fd8f378154ee2e..176fc4c8b7c5ef45b29cb8aaa1b1ff16 this.isRestarting = isRestarting; this.hasLoggedStop = true; // Paper diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index a76219e59c24862b9c1e09e4a2a29cf2a6260514..4f7fed0418df17b80cb41e16bb1978c5cb284810 100644 +index 017e19620ddf6b05cd12256f2381b9d611350bc4..9fd4a40170737b993678144790eceb0a98e9b6d1 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -@@ -324,6 +324,8 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer +@@ -325,6 +325,8 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer MinecraftServerBeans.a((MinecraftServer) this); } From 2d4611b790826dbf7ca5470a7412f7523f521e47 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Thu, 13 May 2021 14:58:16 -0500 Subject: [PATCH 34/40] Updated Upstream (Paper) Upstream has released updates that appear to apply and compile correctly Paper Changes: 453c7f05c Add ItemStack#displayName to get the formatted display name of an ItemStack (#5628) 4efe8b498 Update Java version warning (#5621) e0a021ccc Add ItemStack#getTranslationKey() (#5616) 53d71b717 Add setPotionUseTimeLeft to Witch (#5597) 239935d18 Add Inventory#close (#5610) 29bf6cd41 Updated Upstream (CraftBukkit) ad45f316c Add raw address to AsyncPlayerPreLoginEvent (#5614) 28865335a [Auto] Updated Upstream (CraftBukkit) --- Paper | 2 +- .../api/0013-ItemFactory-getMonsterEgg.patch | 4 +- .../0019-ItemStack-convenience-methods.patch | 4 +- ...oc-warnings-missing-param-and-return.patch | 14 +++--- ...-Add-unsafe-Entity-serialization-API.patch | 4 +- ...on-change-for-adventure-deprecations.patch | 8 ++-- .../server/0001-Tuinity-Server-Changes.patch | 8 ++-- .../server/0002-Airplane-Server-Changes.patch | 4 +- patches/server/0003-Rebrand.patch | 23 +--------- patches/server/0004-Purpur-config-files.patch | 6 +-- .../0006-Barrels-and-enderchests-6-rows.patch | 2 +- .../server/0010-Bring-back-server-name.patch | 4 +- patches/server/0013-Lagging-threshold.patch | 4 +- .../0014-ItemFactory-getMonsterEgg.patch | 4 +- .../server/0034-Tulips-change-fox-type.patch | 2 +- ...-Minecart-settings-and-WASD-controls.patch | 2 +- .../0072-Add-obfhelpers-for-plugin-use.patch | 2 +- ...g-mends-most-damages-equipment-first.patch | 2 +- ...0074-Add-5-second-tps-average-in-tps.patch | 4 +- .../0075-Implement-elytra-settings.patch | 2 +- patches/server/0103-Ridables.patch | 2 +- ...ing-obsidian-valid-for-portal-frames.patch | 2 +- ...tent-TileEntity-Lore-and-DisplayName.patch | 2 +- ...justable-breeding-cooldown-to-config.patch | 6 +-- ...e-entity-breeding-times-configurable.patch | 26 +++++------ ...mes-from-item-forms-of-entities-to-e.patch | 2 +- ...-Configurable-entity-base-attributes.patch | 2 +- patches/server/0153-Implement-TPSBar.patch | 4 +- ...iefing-bypass-to-everything-affected.patch | 2 +- ...-Add-unsafe-Entity-serialization-API.patch | 2 +- patches/server/0174-One-Punch-Man.patch | 2 +- .../server/0208-Implement-Mob-Blindness.patch | 46 ------------------- 32 files changed, 69 insertions(+), 134 deletions(-) delete mode 100644 patches/server/0208-Implement-Mob-Blindness.patch diff --git a/Paper b/Paper index 750049fa2b..453c7f05c7 160000 --- a/Paper +++ b/Paper @@ -1 +1 @@ -Subproject commit 750049fa2b03d3880b17431625f96e1044bc7b9d +Subproject commit 453c7f05c7ee48aa2252a1e882fd3422297de26e diff --git a/patches/api/0013-ItemFactory-getMonsterEgg.patch b/patches/api/0013-ItemFactory-getMonsterEgg.patch index 4701a2509e..eda7fa85aa 100644 --- a/patches/api/0013-ItemFactory-getMonsterEgg.patch +++ b/patches/api/0013-ItemFactory-getMonsterEgg.patch @@ -5,10 +5,10 @@ Subject: [PATCH] ItemFactory#getMonsterEgg diff --git a/src/main/java/org/bukkit/inventory/ItemFactory.java b/src/main/java/org/bukkit/inventory/ItemFactory.java -index eab52f8615b329a795b3fe3a3719e5687e105061..0c5e488fca4370a18fede705f58bff25f3a7b4cb 100644 +index 673477470d110c53922e9e774158d4dc58f1bba0..4b37b6108dd40c6d091a0e5e6b2188ff60567492 100644 --- a/src/main/java/org/bukkit/inventory/ItemFactory.java +++ b/src/main/java/org/bukkit/inventory/ItemFactory.java -@@ -233,4 +233,15 @@ public interface ItemFactory { +@@ -242,4 +242,15 @@ public interface ItemFactory { @Deprecated net.md_5.bungee.api.chat.hover.content.Content hoverContentOf(@NotNull org.bukkit.entity.Entity entity, @NotNull net.md_5.bungee.api.chat.BaseComponent[] customName); // Paper end diff --git a/patches/api/0019-ItemStack-convenience-methods.patch b/patches/api/0019-ItemStack-convenience-methods.patch index 33492a011c..e5f9e1fa68 100644 --- a/patches/api/0019-ItemStack-convenience-methods.patch +++ b/patches/api/0019-ItemStack-convenience-methods.patch @@ -50,7 +50,7 @@ index 9b1c9e60dba9ea3ef8d8e164f13dd76daf57db8e..b04e9de7183f00a9a47c1fce26895c83 + // Purpur end } diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java -index 3c64c6ef397af102a3e085fe6b77a888d5c3de84..8c6d6399b8562631f391a5a18cbde7ae5ef4a46b 100644 +index fccfae41f53a175e1a6a670c793e464456de6b60..54af7fb0b5eaeffc7ec05dd58028bf927f71bb9e 100644 --- a/src/main/java/org/bukkit/inventory/ItemStack.java +++ b/src/main/java/org/bukkit/inventory/ItemStack.java @@ -17,6 +17,18 @@ import org.bukkit.inventory.meta.ItemMeta; @@ -72,7 +72,7 @@ index 3c64c6ef397af102a3e085fe6b77a888d5c3de84..8c6d6399b8562631f391a5a18cbde7ae /** * Represents a stack of items. -@@ -853,4 +865,626 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, net.kyor +@@ -874,4 +886,626 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, net.kyor return Bukkit.getUnsafe().getItemStackRarity(this); } // Paper end diff --git a/patches/api/0033-Fix-javadoc-warnings-missing-param-and-return.patch b/patches/api/0033-Fix-javadoc-warnings-missing-param-and-return.patch index 29a5ac071c..ac8774b674 100644 --- a/patches/api/0033-Fix-javadoc-warnings-missing-param-and-return.patch +++ b/patches/api/0033-Fix-javadoc-warnings-missing-param-and-return.patch @@ -534,7 +534,7 @@ index 28a1fe3af1546daa779df46468e0ff8ad823f9ca..7a3be414ef9d54d7a852ba92d704011f @NotNull diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java -index 3bf6e58b2351cee935e23abec1cea289e31943dc..5f2d5e12f11b471662943680b2012c99a8466306 100644 +index 6dbd520182b1e7713a68baad09b7f613424ef619..14244cc7f11035c4da4613bbdf49dac51f0da3cf 100644 --- a/src/main/java/org/bukkit/UnsafeValues.java +++ b/src/main/java/org/bukkit/UnsafeValues.java @@ -87,6 +87,8 @@ public interface UnsafeValues { @@ -549,7 +549,7 @@ index 3bf6e58b2351cee935e23abec1cea289e31943dc..5f2d5e12f11b471662943680b2012c99 @@ -105,6 +107,8 @@ public interface UnsafeValues { /** * Return the translation key for the Material, so the client can translate it into the active - * locale when using a TranslatableComponent. + * locale when using a {@link net.kyori.adventure.text.TranslatableComponent}. + * + * @param mat Material to check * @return the translation key @@ -558,7 +558,7 @@ index 3bf6e58b2351cee935e23abec1cea289e31943dc..5f2d5e12f11b471662943680b2012c99 @@ -112,6 +116,8 @@ public interface UnsafeValues { /** * Return the translation key for the Block, so the client can translate it into the active - * locale when using a TranslatableComponent. + * locale when using a {@link net.kyori.adventure.text.TranslatableComponent}. + * + * @param block Block to check * @return the translation key @@ -566,14 +566,14 @@ index 3bf6e58b2351cee935e23abec1cea289e31943dc..5f2d5e12f11b471662943680b2012c99 String getTranslationKey(org.bukkit.block.Block block); @@ -120,6 +126,8 @@ public interface UnsafeValues { * Return the translation key for the EntityType, so the client can translate it into the active - * locale when using a TranslatableComponent.
+ * locale when using a {@link net.kyori.adventure.text.TranslatableComponent}.
* This is null, when the EntityType isn't known to NMS (custom entities) + * + * @param type EntityType to check * @return the translation key */ String getTranslationKey(org.bukkit.entity.EntityType type); -@@ -128,6 +136,8 @@ public interface UnsafeValues { +@@ -135,6 +143,8 @@ public interface UnsafeValues { * Creates and returns the next EntityId available. *

* Use this when sending custom packets, so that there are no collisions on the client or server. @@ -1416,7 +1416,7 @@ index c7b17eabf07b829a02afe7c1f27a5127b6bfea70..d4e2bcf8ce8fc2af851b471490147f00 /** diff --git a/src/main/java/org/bukkit/inventory/ItemFactory.java b/src/main/java/org/bukkit/inventory/ItemFactory.java -index 0c5e488fca4370a18fede705f58bff25f3a7b4cb..551bed4f91fe23d36f3299b1b1576546722eb799 100644 +index 4b37b6108dd40c6d091a0e5e6b2188ff60567492..0c4aa68f47f6ccab578dc1593cf6de5eea0e17d4 100644 --- a/src/main/java/org/bukkit/inventory/ItemFactory.java +++ b/src/main/java/org/bukkit/inventory/ItemFactory.java @@ -148,6 +148,7 @@ public interface ItemFactory { @@ -1427,7 +1427,7 @@ index 0c5e488fca4370a18fede705f58bff25f3a7b4cb..551bed4f91fe23d36f3299b1b1576546 * @return A hover event */ @NotNull -@@ -179,7 +180,7 @@ public interface ItemFactory { +@@ -188,7 +189,7 @@ public interface ItemFactory { /** * Creates a {@link net.md_5.bungee.api.chat.hover.content.Content} of that ItemStack for displaying. * diff --git a/patches/api/0038-Add-unsafe-Entity-serialization-API.patch b/patches/api/0038-Add-unsafe-Entity-serialization-API.patch index 4c53312361..b52163d449 100644 --- a/patches/api/0038-Add-unsafe-Entity-serialization-API.patch +++ b/patches/api/0038-Add-unsafe-Entity-serialization-API.patch @@ -17,10 +17,10 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java -index 5f2d5e12f11b471662943680b2012c99a8466306..7395fe0261da696d1b16c845d244ad5d6957d92a 100644 +index 14244cc7f11035c4da4613bbdf49dac51f0da3cf..7899609b7a3041477d5240deaeee9b80159c2db3 100644 --- a/src/main/java/org/bukkit/UnsafeValues.java +++ b/src/main/java/org/bukkit/UnsafeValues.java -@@ -165,4 +165,28 @@ public interface UnsafeValues { +@@ -172,4 +172,28 @@ public interface UnsafeValues { */ int getProtocolVersion(); // Paper end diff --git a/patches/api/0039-Conflict-on-change-for-adventure-deprecations.patch b/patches/api/0039-Conflict-on-change-for-adventure-deprecations.patch index c265cbed11..1d6144537b 100644 --- a/patches/api/0039-Conflict-on-change-for-adventure-deprecations.patch +++ b/patches/api/0039-Conflict-on-change-for-adventure-deprecations.patch @@ -370,10 +370,10 @@ index 129eac25da4f27489038fb15ab1aeecb172b60cc..670aca11bbaa2d155cd9d2105ac94c9d return title; } diff --git a/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java b/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java -index c9af02b0f62b3d18da1e91d1ea02ce0864fc60b9..5e4ade542c79b87a5174e7affb649d818d546362 100644 +index 77aefda5aac4602bf5bf71c29600e7450defdd4e..240552d61ae12fbec826f771f0f366500e72d941 100644 --- a/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java +++ b/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java -@@ -161,7 +161,7 @@ public class AsyncPlayerPreLoginEvent extends Event { +@@ -179,7 +179,7 @@ public class AsyncPlayerPreLoginEvent extends Event { * @deprecated in favour of {@link #kickMessage()} */ @NotNull @@ -382,7 +382,7 @@ index c9af02b0f62b3d18da1e91d1ea02ce0864fc60b9..5e4ade542c79b87a5174e7affb649d81 public String getKickMessage() { return org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().serialize(this.message); // Paper } -@@ -172,7 +172,7 @@ public class AsyncPlayerPreLoginEvent extends Event { +@@ -190,7 +190,7 @@ public class AsyncPlayerPreLoginEvent extends Event { * @param message New kick message * @deprecated in favour of {@link #kickMessage(net.kyori.adventure.text.Component)} */ @@ -391,7 +391,7 @@ index c9af02b0f62b3d18da1e91d1ea02ce0864fc60b9..5e4ade542c79b87a5174e7affb649d81 public void setKickMessage(@NotNull final String message) { this.message = org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(message); // Paper } -@@ -192,7 +192,7 @@ public class AsyncPlayerPreLoginEvent extends Event { +@@ -210,7 +210,7 @@ public class AsyncPlayerPreLoginEvent extends Event { * @param message Kick message to display to the user * @deprecated in favour of {@link #disallow(org.bukkit.event.player.AsyncPlayerPreLoginEvent.Result, net.kyori.adventure.text.Component)} */ diff --git a/patches/server/0001-Tuinity-Server-Changes.patch b/patches/server/0001-Tuinity-Server-Changes.patch index e5d1484083..8ff7342da2 100644 --- a/patches/server/0001-Tuinity-Server-Changes.patch +++ b/patches/server/0001-Tuinity-Server-Changes.patch @@ -15008,7 +15008,7 @@ index 7e032845fe9a46d33236444d62405a41e29daa17..a8a2c29874e95dc08b85eb41882fc947 this.tickingEntities = wasTicking; // Paper } diff --git a/src/main/java/net/minecraft/server/network/LoginListener.java b/src/main/java/net/minecraft/server/network/LoginListener.java -index c67b94840e4c967baebf6eb351df15f0e4ead4be..ed836462123efc6903e406fa926e55e1cedddb95 100644 +index f54af7cabc6b4e062948dc97e577e7fe04b5add4..4e28b58731c7e76a727ed8f0967150f8fe22ab66 100644 --- a/src/main/java/net/minecraft/server/network/LoginListener.java +++ b/src/main/java/net/minecraft/server/network/LoginListener.java @@ -256,7 +256,7 @@ public class LoginListener implements PacketLoginInListener { @@ -20663,7 +20663,7 @@ index e50731723d266ba65b2163df2e935afb8b013a93..a6736d15282715d920bab85eb92074cd } value.append("},"); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 1a0b3e2313b87c6a5eb049838ec72304dcc8f543..ce2fb6288edb871414c44d003ac63ff4045a820a 100644 +index 6cc8eb04f42592aa12f76bb4a0a863ea509741b2..55f2834373ccc7362836b4fab4ae2f069f31fd63 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -232,7 +232,7 @@ import javax.annotation.Nullable; // Paper @@ -20691,7 +20691,7 @@ index 1a0b3e2313b87c6a5eb049838ec72304dcc8f543..ce2fb6288edb871414c44d003ac63ff4 } Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper -@@ -1909,7 +1911,10 @@ public final class CraftServer implements Server { +@@ -1917,7 +1919,10 @@ public final class CraftServer implements Server { @Override public boolean isPrimaryThread() { @@ -20703,7 +20703,7 @@ index 1a0b3e2313b87c6a5eb049838ec72304dcc8f543..ce2fb6288edb871414c44d003ac63ff4 } // Paper start -@@ -2343,6 +2348,14 @@ public final class CraftServer implements Server { +@@ -2351,6 +2356,14 @@ public final class CraftServer implements Server { return com.destroystokyo.paper.PaperConfig.config; } diff --git a/patches/server/0002-Airplane-Server-Changes.patch b/patches/server/0002-Airplane-Server-Changes.patch index c4724c1a82..388ffa7a54 100644 --- a/patches/server/0002-Airplane-Server-Changes.patch +++ b/patches/server/0002-Airplane-Server-Changes.patch @@ -2792,7 +2792,7 @@ index af01f5d635eada7175b9d7fdb47a65530686a539..51e6cd6119465f9fd638507299797144 // Paper start - Prevent armor stands from doing entity lookups @Override diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java -index 596b4597313b87296d39027b13555b5ad1cba9e6..f8a982add50862f1bc977f3039e7e9aeed9138ae 100644 +index 7279893d599351785652279c8827fe0efbd72f12..96d7990c66bd569b1b5ee287c0238c7dbb4c503e 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java @@ -392,6 +392,7 @@ public class Block extends BlockBase implements IMaterial { @@ -3057,7 +3057,7 @@ index 95d0c9f22d79194ca83ca6f6a8e6d91180a3c8da..20cc04be75ab202d4c4ee9a07e9876ce public LootTableInfo build(LootContextParameterSet lootcontextparameterset) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index ce2fb6288edb871414c44d003ac63ff4045a820a..34b9fe484ba16193cfcb938cb0dc51b2066acc5f 100644 +index 55f2834373ccc7362836b4fab4ae2f069f31fd63..6aa14f959e8f53ad16839e94315eae0727ad0b42 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -232,7 +232,7 @@ import javax.annotation.Nullable; // Paper diff --git a/patches/server/0003-Rebrand.patch b/patches/server/0003-Rebrand.patch index f6f2b8b92d..7725e9e4c1 100644 --- a/patches/server/0003-Rebrand.patch +++ b/patches/server/0003-Rebrand.patch @@ -104,25 +104,6 @@ index dd0daf3138a38d0c8a399e6cb54bbc58af47f710..53d847b863a957639ff2e58280861316 } public CrashReport b(CrashReport crashreport) { -diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 858bd62d2a17c15ee573c5cd607a876d3a99c2b1..8eab794e5c8d245b94faaab8abd45a5a5091be51 100644 ---- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -@@ -260,11 +260,12 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer - DedicatedServer.LOGGER.warn("**** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!"); - DedicatedServer.LOGGER.warn("The server will make no attempt to authenticate usernames. Beware."); - // Spigot start -- if (org.spigotmc.SpigotConfig.bungee) { -- DedicatedServer.LOGGER.warn("Whilst this makes it possible to use BungeeCord, unless access to your server is properly restricted, it also opens up the ability for hackers to connect with any username they choose."); -+ if (com.destroystokyo.paper.PaperConfig.isProxyOnlineMode()) { // Purpur -+ DedicatedServer.LOGGER.warn("Whilst this makes it possible to use BungeeCord or Velocity, unless access to your server is properly restricted, it also opens up the ability for hackers to connect with any username they choose."); // Purpur - DedicatedServer.LOGGER.warn("Please see http://www.spigotmc.org/wiki/firewall-guide/ for further information."); - } else { - DedicatedServer.LOGGER.warn("While this makes the game possible to play without internet access, it also opens up the ability for hackers to connect with any username they choose."); -+ DedicatedServer.LOGGER.warn("You will not be offered any support as long as the server allows offline-mode players to join."); // Purpur - } - // Spigot end - DedicatedServer.LOGGER.warn("To change this, set \"online-mode\" to \"true\" in the server.properties file."); diff --git a/src/main/java/net/pl3x/purpur/PurpurVersionFetcher.java b/src/main/java/net/pl3x/purpur/PurpurVersionFetcher.java new file mode 100644 index 0000000000000000000000000000000000000000..cabfcebf9f944f7a2a2a1cffc7401435803a8741 @@ -249,7 +230,7 @@ index 0000000000000000000000000000000000000000..cabfcebf9f944f7a2a2a1cffc7401435 + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 34b9fe484ba16193cfcb938cb0dc51b2066acc5f..1c67be65972a374d1e8fac393ce3064c7fca25e1 100644 +index 6aa14f959e8f53ad16839e94315eae0727ad0b42..066d4b2a2f8dff451a5fc8174dd7532a5f9b67d2 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -232,7 +232,7 @@ import javax.annotation.Nullable; // Paper @@ -262,7 +243,7 @@ index 34b9fe484ba16193cfcb938cb0dc51b2066acc5f..1c67be65972a374d1e8fac393ce3064c private final String bukkitVersion = Versioning.getBukkitVersion(); private final Logger logger = Logger.getLogger("Minecraft"); diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 6141e86278d876e42dbed6e8f2275280babcef77..67f93f252a26f8b598a4b48c63c321728b246cae 100644 +index 697949abbe662a55fc31ad811863717e35b9d1b6..ed290f61ec5adcb3033c7cb7e0fcca8d9722c234 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -397,7 +397,7 @@ public final class CraftMagicNumbers implements UnsafeValues { diff --git a/patches/server/0004-Purpur-config-files.patch b/patches/server/0004-Purpur-config-files.patch index bb5e1c94e4..f075e08b33 100644 --- a/patches/server/0004-Purpur-config-files.patch +++ b/patches/server/0004-Purpur-config-files.patch @@ -45,7 +45,7 @@ index 14ac28d4d6b1ab0f0a70dfefc589f7723a1d2e1a..4eb122cfd31902df9789d2e8ff261520 config.save(CONFIG_FILE); } catch (IOException ex) { diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 8eab794e5c8d245b94faaab8abd45a5a5091be51..017e19620ddf6b05cd12256f2381b9d611350bc4 100644 +index 858bd62d2a17c15ee573c5cd607a876d3a99c2b1..a76219e59c24862b9c1e09e4a2a29cf2a6260514 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -212,6 +212,15 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer @@ -357,7 +357,7 @@ index 0000000000000000000000000000000000000000..536955124afaec5c8a070249c7432cb9 + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 1c67be65972a374d1e8fac393ce3064c7fca25e1..555685c32aa9b0dfbdf0e2ed4a2802eafd37495a 100644 +index 066d4b2a2f8dff451a5fc8174dd7532a5f9b67d2..de05b0abd9fcd1de0955b493ba0a684d9a3dbc6c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -865,6 +865,7 @@ public final class CraftServer implements Server { @@ -384,7 +384,7 @@ index 1c67be65972a374d1e8fac393ce3064c7fca25e1..555685c32aa9b0dfbdf0e2ed4a2802ea overrideAllCommandBlockCommands = commandsConfiguration.getStringList("command-block-overrides").contains("*"); ignoreVanillaPermissions = commandsConfiguration.getBoolean("ignore-vanilla-permissions"); -@@ -2361,6 +2364,18 @@ public final class CraftServer implements Server { +@@ -2369,6 +2372,18 @@ public final class CraftServer implements Server { } // Tuinity end - add config to timings report diff --git a/patches/server/0006-Barrels-and-enderchests-6-rows.patch b/patches/server/0006-Barrels-and-enderchests-6-rows.patch index 9120d01b60..84973036b3 100644 --- a/patches/server/0006-Barrels-and-enderchests-6-rows.patch +++ b/patches/server/0006-Barrels-and-enderchests-6-rows.patch @@ -175,7 +175,7 @@ index 614ab2d73db2293116f2272f6cd5c16da446132d..2885dc250f171917393c0356a005b476 case DISPENSER: case DROPPER: diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java -index c3fa97ac34e1fc61ae02f224f8afe5a0b486fb4d..40e5a2fae032445467ac453f1fab7e366e911283 100644 +index f6001047ada8308cfa1d9b26677a7a5d7774de51..922a15097bdfe64be657fdf157145d1e882b6a40 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java @@ -82,7 +82,7 @@ public class CraftInventory implements Inventory { diff --git a/patches/server/0010-Bring-back-server-name.patch b/patches/server/0010-Bring-back-server-name.patch index dec8bf113a..6d195f551b 100644 --- a/patches/server/0010-Bring-back-server-name.patch +++ b/patches/server/0010-Bring-back-server-name.patch @@ -17,10 +17,10 @@ index 1fab9b9c7d41a0d2a551096c2c15f741a887fa2d..f33309f4c1ad92960d0634f3f5b8105c public final boolean spawnNpcs = this.getBoolean("spawn-npcs", true); public final boolean pvp = this.getBoolean("pvp", true); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 555685c32aa9b0dfbdf0e2ed4a2802eafd37495a..f33f770a259ca59c50270ae70e4a14ed879967a2 100644 +index de05b0abd9fcd1de0955b493ba0a684d9a3dbc6c..bfc575546f166e5d94859eb859ecb92c695acc1d 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2524,4 +2524,11 @@ public final class CraftServer implements Server { +@@ -2532,4 +2532,11 @@ public final class CraftServer implements Server { return mobGoals; } // Paper end diff --git a/patches/server/0013-Lagging-threshold.patch b/patches/server/0013-Lagging-threshold.patch index 1b745e0d01..b3f771d1a0 100644 --- a/patches/server/0013-Lagging-threshold.patch +++ b/patches/server/0013-Lagging-threshold.patch @@ -41,10 +41,10 @@ index 7eadf925c4e4429fa63fb02af9e87bf2ed68efa6..60ef024891e78e18c64435b7ee811807 public static boolean enderChestSixRows = false; public static boolean enderChestPermissionRows = false; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index f33f770a259ca59c50270ae70e4a14ed879967a2..c462a3aa61e23178fb04622e9a65fb5e83e22174 100644 +index bfc575546f166e5d94859eb859ecb92c695acc1d..7cf34ecbeecd9cd82c6b768ecf5f5e115a504f0e 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2530,5 +2530,10 @@ public final class CraftServer implements Server { +@@ -2538,5 +2538,10 @@ public final class CraftServer implements Server { public String getServerName() { return getProperties().serverName; } diff --git a/patches/server/0014-ItemFactory-getMonsterEgg.patch b/patches/server/0014-ItemFactory-getMonsterEgg.patch index 224c07da8c..92ec66aca4 100644 --- a/patches/server/0014-ItemFactory-getMonsterEgg.patch +++ b/patches/server/0014-ItemFactory-getMonsterEgg.patch @@ -18,10 +18,10 @@ index 4d965e504a40eb52777575df839856c825a0900a..addddb64956c63563fc072b35cc511d3 private final int c; private final EntityTypes d; diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -index 6966b9d1ce674232d3f867798fa58bd0933ff69e..1cc473eb4d346b1b498a7b170973fb44d8b8aea6 100644 +index 347c23d4b7d47198f214c3f95354e8abb660b191..4ec0e93d93936080d876ffa017ebe181d2896b22 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -@@ -396,4 +396,18 @@ public final class CraftItemFactory implements ItemFactory { +@@ -401,4 +401,18 @@ public final class CraftItemFactory implements ItemFactory { new net.md_5.bungee.api.chat.TextComponent(customName)); } // Paper end diff --git a/patches/server/0034-Tulips-change-fox-type.patch b/patches/server/0034-Tulips-change-fox-type.patch index 4c440e6ed5..0a18c286fe 100644 --- a/patches/server/0034-Tulips-change-fox-type.patch +++ b/patches/server/0034-Tulips-change-fox-type.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Tulips change fox type diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityFox.java b/src/main/java/net/minecraft/world/entity/animal/EntityFox.java -index a3b714a9d63c6bb33a2731fb9293c9d155754b17..cea46348c0876e168376061fbaf258048e9358cb 100644 +index b7fa24318ef43918b6b10ff4ea8acb960527296e..19a9affdaba52d8e7dc1c4c20d5c0d52829f4989 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityFox.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityFox.java @@ -30,6 +30,8 @@ import net.minecraft.tags.Tag; diff --git a/patches/server/0048-Minecart-settings-and-WASD-controls.patch b/patches/server/0048-Minecart-settings-and-WASD-controls.patch index dd2459642a..f53a36aa67 100644 --- a/patches/server/0048-Minecart-settings-and-WASD-controls.patch +++ b/patches/server/0048-Minecart-settings-and-WASD-controls.patch @@ -170,7 +170,7 @@ index 527f3ed664854cdd938c34f00a064bc2f77148cc..1a1de9491a50e9e746e714fcb35633c2 } } diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java -index f8a982add50862f1bc977f3039e7e9aeed9138ae..fb7d5fa53c51766f348271285a2e921be1ca0497 100644 +index 96d7990c66bd569b1b5ee287c0238c7dbb4c503e..2448ff8e3a9c60d6d99dd8f4d3033553b2780c77 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java @@ -83,6 +83,7 @@ public class Block extends BlockBase implements IMaterial { diff --git a/patches/server/0072-Add-obfhelpers-for-plugin-use.patch b/patches/server/0072-Add-obfhelpers-for-plugin-use.patch index 793fe557ff..3bfcad3aac 100644 --- a/patches/server/0072-Add-obfhelpers-for-plugin-use.patch +++ b/patches/server/0072-Add-obfhelpers-for-plugin-use.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add obfhelpers for plugin use diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index fee862951f2767d4a3c5268dff157c185378a939..91a1b2e955b04f0cc1ca05d7ee4d832d9efb97cb 100644 +index 366ceb65d40c685117d1c79a933864ab91d8aa11..a342174cf35ee6ac1f10028b60c5a19e1b547ef4 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -694,6 +694,7 @@ public final class ItemStack { diff --git a/patches/server/0073-Mending-mends-most-damages-equipment-first.patch b/patches/server/0073-Mending-mends-most-damages-equipment-first.patch index b4abe44ca7..67fe1f720c 100644 --- a/patches/server/0073-Mending-mends-most-damages-equipment-first.patch +++ b/patches/server/0073-Mending-mends-most-damages-equipment-first.patch @@ -18,7 +18,7 @@ index a7551e95185895a290be70d501496279eaf884ae..31d36ead273e8397ba2c826b791a2cf5 if (entry != null) { ItemStack itemstack = (ItemStack) entry.getValue(); diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 91a1b2e955b04f0cc1ca05d7ee4d832d9efb97cb..fcc6ee9481d577d39339cd0ac24dab06bd76e5c6 100644 +index a342174cf35ee6ac1f10028b60c5a19e1b547ef4..72400425d6177ba938057ec145f9499eb1160288 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -468,10 +468,19 @@ public final class ItemStack { diff --git a/patches/server/0074-Add-5-second-tps-average-in-tps.patch b/patches/server/0074-Add-5-second-tps-average-in-tps.patch index f90c8c2870..9cbc40fc07 100644 --- a/patches/server/0074-Add-5-second-tps-average-in-tps.patch +++ b/patches/server/0074-Add-5-second-tps-average-in-tps.patch @@ -69,10 +69,10 @@ index 9fbec9f98bd0dd727ef58d7f3f18a8a8ab9910e2..0cea9db58772d8c69b5cfdd4a2987593 lagging = recentTps[0] < net.pl3x.purpur.PurpurConfig.laggingThreshold; // Purpur tickSection = curTime; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index c462a3aa61e23178fb04622e9a65fb5e83e22174..49214eaab41998781b1d2e519f65075366754fea 100644 +index 7cf34ecbeecd9cd82c6b768ecf5f5e115a504f0e..8294cbf0a0ff33099f2b87f6888e61775912b6b0 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2310,6 +2310,7 @@ public final class CraftServer implements Server { +@@ -2318,6 +2318,7 @@ public final class CraftServer implements Server { @Override public double[] getTPS() { return new double[] { diff --git a/patches/server/0075-Implement-elytra-settings.patch b/patches/server/0075-Implement-elytra-settings.patch index 44c334ca89..98caaaa3e7 100644 --- a/patches/server/0075-Implement-elytra-settings.patch +++ b/patches/server/0075-Implement-elytra-settings.patch @@ -54,7 +54,7 @@ index e7f958d137257da912ce9b83db017b4423959943..210b95f1d67ec12566d6fc93b8234e11 itemstack.subtract(1); } else ((EntityPlayer) entityhuman).getBukkitEntity().updateInventory(); diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index fcc6ee9481d577d39339cd0ac24dab06bd76e5c6..81e2ccfa4f6cf6a4ad9236cf0ce94df8dc3ec5b6 100644 +index 72400425d6177ba938057ec145f9499eb1160288..2aa761656ce75f78732c502fd4ce65034b6c2919 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -500,7 +500,7 @@ public final class ItemStack { diff --git a/patches/server/0103-Ridables.patch b/patches/server/0103-Ridables.patch index fc23c08833..abef96672a 100644 --- a/patches/server/0103-Ridables.patch +++ b/patches/server/0103-Ridables.patch @@ -1402,7 +1402,7 @@ index 21780f5dbcd4384649f08161f0812202ee94c96d..a03b0ed0a3f74ccb7572e1c4fa8e345a @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityFox.java b/src/main/java/net/minecraft/world/entity/animal/EntityFox.java -index cea46348c0876e168376061fbaf258048e9358cb..f14e5958db1219277ce8529f0781a49382bf3a3e 100644 +index 19a9affdaba52d8e7dc1c4c20d5c0d52829f4989..7b1a6d846f25d8bc659a541fce59df79347ba9bc 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityFox.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityFox.java @@ -21,6 +21,7 @@ import net.minecraft.network.syncher.DataWatcher; diff --git a/patches/server/0105-Crying-obsidian-valid-for-portal-frames.patch b/patches/server/0105-Crying-obsidian-valid-for-portal-frames.patch index 3b86a4d61b..b590241a0a 100644 --- a/patches/server/0105-Crying-obsidian-valid-for-portal-frames.patch +++ b/patches/server/0105-Crying-obsidian-valid-for-portal-frames.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Crying obsidian valid for portal frames diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java -index fb7d5fa53c51766f348271285a2e921be1ca0497..1bc6380a805c1f76ffde67951d32d911e8f1f4a7 100644 +index 2448ff8e3a9c60d6d99dd8f4d3033553b2780c77..fa43eb5e31a9e3c6d6725ef770a7d1b3aec4d663 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java @@ -140,6 +140,7 @@ public class Block extends BlockBase implements IMaterial { diff --git a/patches/server/0113-Persistent-TileEntity-Lore-and-DisplayName.patch b/patches/server/0113-Persistent-TileEntity-Lore-and-DisplayName.patch index 85543dcf7e..1a90317e28 100644 --- a/patches/server/0113-Persistent-TileEntity-Lore-and-DisplayName.patch +++ b/patches/server/0113-Persistent-TileEntity-Lore-and-DisplayName.patch @@ -61,7 +61,7 @@ index 59d52c252b2e59923b8e513dd4d2e1ec9ce34dc7..4be1c8ee85f411a8b01be50b8cc3dc38 @Nullable diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java -index 1bc6380a805c1f76ffde67951d32d911e8f1f4a7..1e3adc491f0454edf4e19fb0bdf5d2cb7c8e842d 100644 +index fa43eb5e31a9e3c6d6725ef770a7d1b3aec4d663..a835285d230ea0dffa1b28c2a7a006041f2e6b2a 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java @@ -15,10 +15,15 @@ import net.minecraft.core.EnumDirection; diff --git a/patches/server/0124-Add-adjustable-breeding-cooldown-to-config.patch b/patches/server/0124-Add-adjustable-breeding-cooldown-to-config.patch index c36d559cbd..918de7cdc6 100644 --- a/patches/server/0124-Add-adjustable-breeding-cooldown-to-config.patch +++ b/patches/server/0124-Add-adjustable-breeding-cooldown-to-config.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add adjustable breeding cooldown to config diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityAnimal.java b/src/main/java/net/minecraft/world/entity/animal/EntityAnimal.java -index 28dd42921961c6a47f2d85a5f93b8298f2c228d3..6ae5fafd379863bf23df3580d3dbc7a5ba63b545 100644 +index 4de0a733819d408e8b9a55b604f455281d7732c5..94b5874c1eb90c02a557179a2a1170b1da85deb4 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityAnimal.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityAnimal.java @@ -145,7 +145,7 @@ public abstract class EntityAnimal extends EntityAgeable { @@ -30,8 +30,8 @@ index 28dd42921961c6a47f2d85a5f93b8298f2c228d3..6ae5fafd379863bf23df3580d3dbc7a5 + } + // Purpur end // CraftBukkit start - call EntityBreedEvent - int experience = this.getRandom().nextInt(7) + 1; - org.bukkit.event.entity.EntityBreedEvent entityBreedEvent = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityBreedEvent(entityageable, this, entityanimal, entityplayer, this.breedItem, experience); + entityageable.setBaby(true); + entityageable.setPositionRotation(this.locX(), this.locY(), this.locZ(), 0.0F, 0.0F); diff --git a/src/main/java/net/minecraft/world/level/World.java b/src/main/java/net/minecraft/world/level/World.java index 4c85525fe461fc3d52c538ab2610c1098c9d0151..b03865ca77c3fbd4fe61db450ffd3cede9613568 100644 --- a/src/main/java/net/minecraft/world/level/World.java diff --git a/patches/server/0125-Make-entity-breeding-times-configurable.patch b/patches/server/0125-Make-entity-breeding-times-configurable.patch index cda21ad5f8..9f54bbcc85 100644 --- a/patches/server/0125-Make-entity-breeding-times-configurable.patch +++ b/patches/server/0125-Make-entity-breeding-times-configurable.patch @@ -5,24 +5,24 @@ Subject: [PATCH] Make entity breeding times configurable diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/BehaviorMakeLove.java b/src/main/java/net/minecraft/world/entity/ai/behavior/BehaviorMakeLove.java -index a68428554b93f4aba9f0cb0b3af03985896830b7..c1e8b9562eb37cee3d47034b93d4ef0c998eb52f 100644 +index 79989c143fc8393172475e33d356510b3547afb9..d1315f4b6e026f70e04a0b54289fd13b4be17cde 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/BehaviorMakeLove.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/BehaviorMakeLove.java -@@ -115,8 +115,10 @@ public class BehaviorMakeLove extends Behavior { - if (entityvillager2 == null) { - return Optional.empty(); - } else { +@@ -117,8 +117,10 @@ public class BehaviorMakeLove extends Behavior { + return Optional.empty(); + } + // CraftBukkit end - entityvillager.setAgeRaw(6000); - entityvillager1.setAgeRaw(6000); + // Purpur start + entityvillager.setAgeRaw(worldserver.purpurConfig.villagerBreedingTicks); + entityvillager1.setAgeRaw(worldserver.purpurConfig.villagerBreedingTicks); + // Purpur end - entityvillager2.setAgeRaw(-24000); - entityvillager2.setPositionRotation(entityvillager.locX(), entityvillager.locY(), entityvillager.locZ(), 0.0F, 0.0F); worldserver.addAllEntities(entityvillager2, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.BREEDING); // CraftBukkit - added SpawnReason + worldserver.broadcastEntityEffect(entityvillager2, (byte) 12); + return Optional.of(entityvillager2); diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityAnimal.java b/src/main/java/net/minecraft/world/entity/animal/EntityAnimal.java -index 6ae5fafd379863bf23df3580d3dbc7a5ba63b545..38a4072a5df3abd3d1d9929f6402b3edfdd6c197 100644 +index 94b5874c1eb90c02a557179a2a1170b1da85deb4..181bb648dd32f71c7f9d3fbb4974e2a1afba61ac 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityAnimal.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityAnimal.java @@ -38,6 +38,7 @@ public abstract class EntityAnimal extends EntityAgeable { @@ -33,7 +33,7 @@ index 6ae5fafd379863bf23df3580d3dbc7a5ba63b545..38a4072a5df3abd3d1d9929f6402b3ed protected EntityAnimal(EntityTypes entitytypes, World world) { super(entitytypes, world); -@@ -259,8 +260,10 @@ public abstract class EntityAnimal extends EntityAgeable { +@@ -261,8 +262,10 @@ public abstract class EntityAnimal extends EntityAgeable { CriterionTriggers.o.a(entityplayer, this, entityanimal, entityageable); } @@ -45,7 +45,7 @@ index 6ae5fafd379863bf23df3580d3dbc7a5ba63b545..38a4072a5df3abd3d1d9929f6402b3ed + // Purpur end this.resetLove(); entityanimal.resetLove(); - entityageable.setBaby(true); + worldserver.addAllEntities(entityageable, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.BREEDING); // CraftBukkit - added SpawnReason diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityBee.java b/src/main/java/net/minecraft/world/entity/animal/EntityBee.java index bcd510e0bf647a240edfaac1348119c5e1d7dc42..6086dda5b06f0c0e02734edf7141b13715420d3c 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityBee.java @@ -111,7 +111,7 @@ index b2d3fc3151a952ac783101443772736a206a6a3b..7ed55ebe1bb768351a5cb4cdc7d4d3b0 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityFox.java b/src/main/java/net/minecraft/world/entity/animal/EntityFox.java -index f14e5958db1219277ce8529f0781a49382bf3a3e..7df6669692be4434868091c33ec3f027ebff0c81 100644 +index 7b1a6d846f25d8bc659a541fce59df79347ba9bc..70369d03985250fa5eaf398fa98d35a2c2a06ff1 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityFox.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityFox.java @@ -157,6 +157,11 @@ public class EntityFox extends EntityAnimal { @@ -126,7 +126,7 @@ index f14e5958db1219277ce8529f0781a49382bf3a3e..7df6669692be4434868091c33ec3f027 // Purpur end @Override -@@ -1371,8 +1376,10 @@ public class EntityFox extends EntityAnimal { +@@ -1373,8 +1378,10 @@ public class EntityFox extends EntityAnimal { CriterionTriggers.o.a(entityplayer2, this.animal, this.partner, (EntityAgeable) entityfox); } @@ -138,7 +138,7 @@ index f14e5958db1219277ce8529f0781a49382bf3a3e..7df6669692be4434868091c33ec3f027 + // Purpur end this.animal.resetLove(); this.partner.resetLove(); - entityfox.setAgeRaw(-24000); + worldserver.addAllEntities(entityfox, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.BREEDING); // CraftBukkit - added SpawnReason diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityMushroomCow.java b/src/main/java/net/minecraft/world/entity/animal/EntityMushroomCow.java index 815e907e8db721f2a6f0f831b69c44a9573b5c9b..ab4a8ee6e1912f230cbf3353eb42c3bc8a9db58e 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityMushroomCow.java diff --git a/patches/server/0126-Apply-display-names-from-item-forms-of-entities-to-e.patch b/patches/server/0126-Apply-display-names-from-item-forms-of-entities-to-e.patch index cf941a80ba..52b56cbf0c 100644 --- a/patches/server/0126-Apply-display-names-from-item-forms-of-entities-to-e.patch +++ b/patches/server/0126-Apply-display-names-from-item-forms-of-entities-to-e.patch @@ -142,7 +142,7 @@ index bbd3bb2d12e500d15485598783d39b0cb63a6d83..8e4c3304779cfccf7d45d4843f9c15bf if (((EntityHanging) object).survives()) { diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 81e2ccfa4f6cf6a4ad9236cf0ce94df8dc3ec5b6..132972755ac74838f3386e0fac5033380b71fce5 100644 +index 2aa761656ce75f78732c502fd4ce65034b6c2919..a4c41caae425e054db3f40a9abc41f45ccd20730 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -788,6 +788,7 @@ public final class ItemStack { diff --git a/patches/server/0150-Configurable-entity-base-attributes.patch b/patches/server/0150-Configurable-entity-base-attributes.patch index ddc6bd33ed..a4e8dfae57 100644 --- a/patches/server/0150-Configurable-entity-base-attributes.patch +++ b/patches/server/0150-Configurable-entity-base-attributes.patch @@ -128,7 +128,7 @@ index e4442716b329f3101bfd39fc7ce13d5419b427bf..3ca911cebc01692f63b8731a5df6d9ea @Nullable diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityFox.java b/src/main/java/net/minecraft/world/entity/animal/EntityFox.java -index 7df6669692be4434868091c33ec3f027ebff0c81..a3d1489fe37dc8d9545e9832602e5d78e612bc27 100644 +index 70369d03985250fa5eaf398fa98d35a2c2a06ff1..5a2e624f1b6636f058cc69989324914f174a271a 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityFox.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityFox.java @@ -162,6 +162,11 @@ public class EntityFox extends EntityAnimal { diff --git a/patches/server/0153-Implement-TPSBar.patch b/patches/server/0153-Implement-TPSBar.patch index aa8f78aad8..f8ef7ff85c 100644 --- a/patches/server/0153-Implement-TPSBar.patch +++ b/patches/server/0153-Implement-TPSBar.patch @@ -29,10 +29,10 @@ index e3c3b2eb03ad132a91140cb459fd8f378154ee2e..176fc4c8b7c5ef45b29cb8aaa1b1ff16 this.isRestarting = isRestarting; this.hasLoggedStop = true; // Paper diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 017e19620ddf6b05cd12256f2381b9d611350bc4..9fd4a40170737b993678144790eceb0a98e9b6d1 100644 +index a76219e59c24862b9c1e09e4a2a29cf2a6260514..4f7fed0418df17b80cb41e16bb1978c5cb284810 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -@@ -325,6 +325,8 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer +@@ -324,6 +324,8 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer MinecraftServerBeans.a((MinecraftServer) this); } diff --git a/patches/server/0159-Add-mobGriefing-bypass-to-everything-affected.patch b/patches/server/0159-Add-mobGriefing-bypass-to-everything-affected.patch index 270799986d..f1ec5ef442 100644 --- a/patches/server/0159-Add-mobGriefing-bypass-to-everything-affected.patch +++ b/patches/server/0159-Add-mobGriefing-bypass-to-everything-affected.patch @@ -76,7 +76,7 @@ index 61a62c093b24c43064f116630d85096159e082d3..2519a78f7e5dd759680a1f47a1047885 } else if (this.c > 0) { --this.c; diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityFox.java b/src/main/java/net/minecraft/world/entity/animal/EntityFox.java -index a3d1489fe37dc8d9545e9832602e5d78e612bc27..85086fde18c4c6a5146de3a90d5a94893f69854d 100644 +index 5a2e624f1b6636f058cc69989324914f174a271a..03fee11004b27402ec9da39c617c226175242bb4 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityFox.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityFox.java @@ -1073,7 +1073,7 @@ public class EntityFox extends EntityAnimal { diff --git a/patches/server/0170-Add-unsafe-Entity-serialization-API.patch b/patches/server/0170-Add-unsafe-Entity-serialization-API.patch index e993370a8d..0cdc1d0da8 100644 --- a/patches/server/0170-Add-unsafe-Entity-serialization-API.patch +++ b/patches/server/0170-Add-unsafe-Entity-serialization-API.patch @@ -46,7 +46,7 @@ index 4a70d657fd83627e8d66b52cb5f87381b43ad76a..af69023b241560031f6aa116561d7407 // Purpur end } diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 67f93f252a26f8b598a4b48c63c321728b246cae..b05b6e911026b8b8ad2e12b7a6705364ec90769d 100644 +index ed290f61ec5adcb3033c7cb7e0fcca8d9722c234..2ccceec865a44edfe606beac06508c30a5e398f0 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -410,9 +410,14 @@ public final class CraftMagicNumbers implements UnsafeValues { diff --git a/patches/server/0174-One-Punch-Man.patch b/patches/server/0174-One-Punch-Man.patch index 672977a7ba..0518f43c53 100644 --- a/patches/server/0174-One-Punch-Man.patch +++ b/patches/server/0174-One-Punch-Man.patch @@ -33,7 +33,7 @@ index bcd8938d71c617ad5c2fdc57f8153800765ffabb..008c97dc6f5b9c08c86d6c2743a63890 if (human) { // PAIL: Be sure to drag all this code from the EntityHuman subclass each update. diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 132972755ac74838f3386e0fac5033380b71fce5..26fff0540e3d8863e83b0a60df2205422d50f1e1 100644 +index a4c41caae425e054db3f40a9abc41f45ccd20730..2e4bc664412feb8657c7b9995d281203a14d48fd 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -897,6 +897,7 @@ public final class ItemStack { diff --git a/patches/server/0208-Implement-Mob-Blindness.patch b/patches/server/0208-Implement-Mob-Blindness.patch deleted file mode 100644 index c5c186649e..0000000000 --- a/patches/server/0208-Implement-Mob-Blindness.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Encode42 -Date: Tue, 11 May 2021 21:00:53 -0400 -Subject: [PATCH] Implement Mob Blindness - -Ported from https://github.com/raltsmc/mobblindness - -diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index aa2106e038ff882924be5b956af7cb3e8ff00397..2dc40e11eae98400b426175ceb2c92cd5942291c 100644 ---- a/src/main/java/net/minecraft/world/entity/EntityLiving.java -+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java -@@ -925,6 +925,18 @@ public abstract class EntityLiving extends Entity { - // Airplane end - d0 *= 0.5D; - } -+ -+ // Purpur start -+ if (entity instanceof EntityLiving) { -+ EntityLiving livingEntity = (EntityLiving) entity; -+ if (livingEntity.hasEffect(MobEffects.BLINDNESS)) { -+ int amplifier = livingEntity.getEffect(MobEffects.BLINDNESS).getAmplifier(); -+ for (int i = 0; i < amplifier; i++) { -+ d0 *= world.purpurConfig.mobsBlindnessMultiplier; -+ } -+ } -+ } -+ // Purpur end - } - - return d0; -diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 07c66f9d41e7a74021dde6702d654710e400e93b..b8622f687b4fd70aaee5fa44cc50b8ee38582582 100644 ---- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -542,6 +542,11 @@ public class PurpurWorldConfig { - mobsSpawnOnBlueIce = getBoolean("blocks.blue_ice.allow-mob-spawns", mobsSpawnOnBlueIce); - } - -+ public double mobsBlindnessMultiplier = 1; -+ private void blindnessSettings() { -+ mobsBlindnessMultiplier = getDouble("gameplay-mechanics.entity-blindness-multiplier", mobsBlindnessMultiplier); -+ } -+ - public boolean chestOpenWithBlockOnTop = false; - private void chestSettings() { - chestOpenWithBlockOnTop = getBoolean("blocks.chest.open-with-solid-block-on-top", chestOpenWithBlockOnTop); From 3ba8c81233f82409f081ada12431f88ec03b47c1 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Thu, 13 May 2021 15:19:03 -0500 Subject: [PATCH 35/40] Ya'll didn't see nothing.. --- ...oc-warnings-missing-param-and-return.patch | 31 ++++++++++++- ...-Add-unsafe-Entity-serialization-API.patch | 33 ------------- patches/server/0003-Rebrand.patch | 19 ++++++++ patches/server/0004-Purpur-config-files.patch | 2 +- patches/server/0153-Implement-TPSBar.patch | 4 +- .../server/0208-Implement-Mob-Blindness.patch | 46 +++++++++++++++++++ 6 files changed, 98 insertions(+), 37 deletions(-) create mode 100644 patches/server/0208-Implement-Mob-Blindness.patch diff --git a/patches/api/0033-Fix-javadoc-warnings-missing-param-and-return.patch b/patches/api/0033-Fix-javadoc-warnings-missing-param-and-return.patch index ac8774b674..91345e10e8 100644 --- a/patches/api/0033-Fix-javadoc-warnings-missing-param-and-return.patch +++ b/patches/api/0033-Fix-javadoc-warnings-missing-param-and-return.patch @@ -534,7 +534,7 @@ index 28a1fe3af1546daa779df46468e0ff8ad823f9ca..7a3be414ef9d54d7a852ba92d704011f @NotNull diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java -index 6dbd520182b1e7713a68baad09b7f613424ef619..14244cc7f11035c4da4613bbdf49dac51f0da3cf 100644 +index 6dbd520182b1e7713a68baad09b7f613424ef619..7899609b7a3041477d5240deaeee9b80159c2db3 100644 --- a/src/main/java/org/bukkit/UnsafeValues.java +++ b/src/main/java/org/bukkit/UnsafeValues.java @@ -87,6 +87,8 @@ public interface UnsafeValues { @@ -582,6 +582,35 @@ index 6dbd520182b1e7713a68baad09b7f613424ef619..14244cc7f11035c4da4613bbdf49dac5 */ public int nextEntityId(); +@@ -162,4 +172,28 @@ public interface UnsafeValues { + */ + int getProtocolVersion(); + // Paper end ++ ++ // Purpur start ++ ++ /** ++ * Serialize entity to byte array ++ * ++ * @param entity entity to serialize ++ * @return serialized entity ++ */ ++ byte[] serializeEntity(org.bukkit.entity.Entity entity); ++ ++ /** ++ * Deserialize an entity from byte array ++ *

++ * The entity is not automatically spawned in the world. You will have to spawn ++ * the entity yourself with {@link org.bukkit.entity.Entity#spawnAt(Location)} or ++ * {@link org.bukkit.entity.Entity#spawnAt(Location, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason)} ++ * ++ * @param data serialized entity ++ * @param world world entity belongs in ++ * @return deserialized entity ++ */ ++ org.bukkit.entity.Entity deserializeEntity(byte[] data, org.bukkit.World world); ++ // Purpur end + } diff --git a/src/main/java/org/bukkit/WorldBorder.java b/src/main/java/org/bukkit/WorldBorder.java index afb7b136b461202026290624836446cff9f9e45d..087579fdff09237409c9f80446e7a15a78f9040c 100644 --- a/src/main/java/org/bukkit/WorldBorder.java diff --git a/patches/api/0038-Add-unsafe-Entity-serialization-API.patch b/patches/api/0038-Add-unsafe-Entity-serialization-API.patch index b52163d449..90919d39e5 100644 --- a/patches/api/0038-Add-unsafe-Entity-serialization-API.patch +++ b/patches/api/0038-Add-unsafe-Entity-serialization-API.patch @@ -16,39 +16,6 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . -diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java -index 14244cc7f11035c4da4613bbdf49dac51f0da3cf..7899609b7a3041477d5240deaeee9b80159c2db3 100644 ---- a/src/main/java/org/bukkit/UnsafeValues.java -+++ b/src/main/java/org/bukkit/UnsafeValues.java -@@ -172,4 +172,28 @@ public interface UnsafeValues { - */ - int getProtocolVersion(); - // Paper end -+ -+ // Purpur start -+ -+ /** -+ * Serialize entity to byte array -+ * -+ * @param entity entity to serialize -+ * @return serialized entity -+ */ -+ byte[] serializeEntity(org.bukkit.entity.Entity entity); -+ -+ /** -+ * Deserialize an entity from byte array -+ *

-+ * The entity is not automatically spawned in the world. You will have to spawn -+ * the entity yourself with {@link org.bukkit.entity.Entity#spawnAt(Location)} or -+ * {@link org.bukkit.entity.Entity#spawnAt(Location, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason)} -+ * -+ * @param data serialized entity -+ * @param world world entity belongs in -+ * @return deserialized entity -+ */ -+ org.bukkit.entity.Entity deserializeEntity(byte[] data, org.bukkit.World world); -+ // Purpur end - } diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java index b47e31d2b9b41b39b46892fe10bf36d82c5d8e1b..7fa5242bd44c9b19648d79fa8fecbb7ee125288e 100644 --- a/src/main/java/org/bukkit/entity/Entity.java diff --git a/patches/server/0003-Rebrand.patch b/patches/server/0003-Rebrand.patch index 7725e9e4c1..9c23a2a0b4 100644 --- a/patches/server/0003-Rebrand.patch +++ b/patches/server/0003-Rebrand.patch @@ -104,6 +104,25 @@ index dd0daf3138a38d0c8a399e6cb54bbc58af47f710..53d847b863a957639ff2e58280861316 } public CrashReport b(CrashReport crashreport) { +diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +index 858bd62d2a17c15ee573c5cd607a876d3a99c2b1..3e63ea5ae2d31a502fa639806a926cd1ab8b6796 100644 +--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java ++++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +@@ -260,11 +260,12 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer + DedicatedServer.LOGGER.warn("**** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!"); + DedicatedServer.LOGGER.warn("The server will make no attempt to authenticate usernames. Beware."); + // Spigot start +- if (org.spigotmc.SpigotConfig.bungee) { +- DedicatedServer.LOGGER.warn("Whilst this makes it possible to use BungeeCord, unless access to your server is properly restricted, it also opens up the ability for hackers to connect with any username they choose."); ++ if (com.destroystokyo.paper.PaperConfig.isProxyOnlineMode()) { // Purpur ++ DedicatedServer.LOGGER.warn("Whilst this makes it possible to use BungeeCord or Velocity, unless access to your server is properly restricted, it also opens up the ability for hackers to connect with any username they choose."); // Purpur + DedicatedServer.LOGGER.warn("Please see http://www.spigotmc.org/wiki/firewall-guide/ for further information."); + } else { + DedicatedServer.LOGGER.warn("While this makes the game possible to play without internet access, it also opens up the ability for hackers to connect with any username they choose."); ++ DedicatedServer.LOGGER.warn("You will not be offered any support as long as the server allows offline-mode players to join."); // Purpur + } + // Spigot end + DedicatedServer.LOGGER.warn("To change this, set \"online-mode\" to \"true\" in the server.properties file."); diff --git a/src/main/java/net/pl3x/purpur/PurpurVersionFetcher.java b/src/main/java/net/pl3x/purpur/PurpurVersionFetcher.java new file mode 100644 index 0000000000000000000000000000000000000000..cabfcebf9f944f7a2a2a1cffc7401435803a8741 diff --git a/patches/server/0004-Purpur-config-files.patch b/patches/server/0004-Purpur-config-files.patch index f075e08b33..2ea645f7c3 100644 --- a/patches/server/0004-Purpur-config-files.patch +++ b/patches/server/0004-Purpur-config-files.patch @@ -45,7 +45,7 @@ index 14ac28d4d6b1ab0f0a70dfefc589f7723a1d2e1a..4eb122cfd31902df9789d2e8ff261520 config.save(CONFIG_FILE); } catch (IOException ex) { diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 858bd62d2a17c15ee573c5cd607a876d3a99c2b1..a76219e59c24862b9c1e09e4a2a29cf2a6260514 100644 +index 3e63ea5ae2d31a502fa639806a926cd1ab8b6796..cbccb889167f8e235f417e224bbf5f025a6304f5 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -212,6 +212,15 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer diff --git a/patches/server/0153-Implement-TPSBar.patch b/patches/server/0153-Implement-TPSBar.patch index f8ef7ff85c..8514179557 100644 --- a/patches/server/0153-Implement-TPSBar.patch +++ b/patches/server/0153-Implement-TPSBar.patch @@ -29,10 +29,10 @@ index e3c3b2eb03ad132a91140cb459fd8f378154ee2e..176fc4c8b7c5ef45b29cb8aaa1b1ff16 this.isRestarting = isRestarting; this.hasLoggedStop = true; // Paper diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index a76219e59c24862b9c1e09e4a2a29cf2a6260514..4f7fed0418df17b80cb41e16bb1978c5cb284810 100644 +index cbccb889167f8e235f417e224bbf5f025a6304f5..df6eaa94f2928242dbd69a918d0b0b919bd3436b 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -@@ -324,6 +324,8 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer +@@ -325,6 +325,8 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer MinecraftServerBeans.a((MinecraftServer) this); } diff --git a/patches/server/0208-Implement-Mob-Blindness.patch b/patches/server/0208-Implement-Mob-Blindness.patch new file mode 100644 index 0000000000..c5c186649e --- /dev/null +++ b/patches/server/0208-Implement-Mob-Blindness.patch @@ -0,0 +1,46 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Encode42 +Date: Tue, 11 May 2021 21:00:53 -0400 +Subject: [PATCH] Implement Mob Blindness + +Ported from https://github.com/raltsmc/mobblindness + +diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java +index aa2106e038ff882924be5b956af7cb3e8ff00397..2dc40e11eae98400b426175ceb2c92cd5942291c 100644 +--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java ++++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java +@@ -925,6 +925,18 @@ public abstract class EntityLiving extends Entity { + // Airplane end + d0 *= 0.5D; + } ++ ++ // Purpur start ++ if (entity instanceof EntityLiving) { ++ EntityLiving livingEntity = (EntityLiving) entity; ++ if (livingEntity.hasEffect(MobEffects.BLINDNESS)) { ++ int amplifier = livingEntity.getEffect(MobEffects.BLINDNESS).getAmplifier(); ++ for (int i = 0; i < amplifier; i++) { ++ d0 *= world.purpurConfig.mobsBlindnessMultiplier; ++ } ++ } ++ } ++ // Purpur end + } + + return d0; +diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +index 07c66f9d41e7a74021dde6702d654710e400e93b..b8622f687b4fd70aaee5fa44cc50b8ee38582582 100644 +--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java ++++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +@@ -542,6 +542,11 @@ public class PurpurWorldConfig { + mobsSpawnOnBlueIce = getBoolean("blocks.blue_ice.allow-mob-spawns", mobsSpawnOnBlueIce); + } + ++ public double mobsBlindnessMultiplier = 1; ++ private void blindnessSettings() { ++ mobsBlindnessMultiplier = getDouble("gameplay-mechanics.entity-blindness-multiplier", mobsBlindnessMultiplier); ++ } ++ + public boolean chestOpenWithBlockOnTop = false; + private void chestSettings() { + chestOpenWithBlockOnTop = getBoolean("blocks.chest.open-with-solid-block-on-top", chestOpenWithBlockOnTop); From 445496d7f5c985754e24f0491fcec7aab340e2f2 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Thu, 13 May 2021 15:24:07 -0500 Subject: [PATCH 36/40] [ci-skip] fix this too, now.. jfc --- ...oc-warnings-missing-param-and-return.patch | 31 +---------------- ...-Add-unsafe-Entity-serialization-API.patch | 33 +++++++++++++++++++ 2 files changed, 34 insertions(+), 30 deletions(-) diff --git a/patches/api/0033-Fix-javadoc-warnings-missing-param-and-return.patch b/patches/api/0033-Fix-javadoc-warnings-missing-param-and-return.patch index 91345e10e8..ac8774b674 100644 --- a/patches/api/0033-Fix-javadoc-warnings-missing-param-and-return.patch +++ b/patches/api/0033-Fix-javadoc-warnings-missing-param-and-return.patch @@ -534,7 +534,7 @@ index 28a1fe3af1546daa779df46468e0ff8ad823f9ca..7a3be414ef9d54d7a852ba92d704011f @NotNull diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java -index 6dbd520182b1e7713a68baad09b7f613424ef619..7899609b7a3041477d5240deaeee9b80159c2db3 100644 +index 6dbd520182b1e7713a68baad09b7f613424ef619..14244cc7f11035c4da4613bbdf49dac51f0da3cf 100644 --- a/src/main/java/org/bukkit/UnsafeValues.java +++ b/src/main/java/org/bukkit/UnsafeValues.java @@ -87,6 +87,8 @@ public interface UnsafeValues { @@ -582,35 +582,6 @@ index 6dbd520182b1e7713a68baad09b7f613424ef619..7899609b7a3041477d5240deaeee9b80 */ public int nextEntityId(); -@@ -162,4 +172,28 @@ public interface UnsafeValues { - */ - int getProtocolVersion(); - // Paper end -+ -+ // Purpur start -+ -+ /** -+ * Serialize entity to byte array -+ * -+ * @param entity entity to serialize -+ * @return serialized entity -+ */ -+ byte[] serializeEntity(org.bukkit.entity.Entity entity); -+ -+ /** -+ * Deserialize an entity from byte array -+ *

-+ * The entity is not automatically spawned in the world. You will have to spawn -+ * the entity yourself with {@link org.bukkit.entity.Entity#spawnAt(Location)} or -+ * {@link org.bukkit.entity.Entity#spawnAt(Location, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason)} -+ * -+ * @param data serialized entity -+ * @param world world entity belongs in -+ * @return deserialized entity -+ */ -+ org.bukkit.entity.Entity deserializeEntity(byte[] data, org.bukkit.World world); -+ // Purpur end - } diff --git a/src/main/java/org/bukkit/WorldBorder.java b/src/main/java/org/bukkit/WorldBorder.java index afb7b136b461202026290624836446cff9f9e45d..087579fdff09237409c9f80446e7a15a78f9040c 100644 --- a/src/main/java/org/bukkit/WorldBorder.java diff --git a/patches/api/0038-Add-unsafe-Entity-serialization-API.patch b/patches/api/0038-Add-unsafe-Entity-serialization-API.patch index 90919d39e5..b52163d449 100644 --- a/patches/api/0038-Add-unsafe-Entity-serialization-API.patch +++ b/patches/api/0038-Add-unsafe-Entity-serialization-API.patch @@ -16,6 +16,39 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . +diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java +index 14244cc7f11035c4da4613bbdf49dac51f0da3cf..7899609b7a3041477d5240deaeee9b80159c2db3 100644 +--- a/src/main/java/org/bukkit/UnsafeValues.java ++++ b/src/main/java/org/bukkit/UnsafeValues.java +@@ -172,4 +172,28 @@ public interface UnsafeValues { + */ + int getProtocolVersion(); + // Paper end ++ ++ // Purpur start ++ ++ /** ++ * Serialize entity to byte array ++ * ++ * @param entity entity to serialize ++ * @return serialized entity ++ */ ++ byte[] serializeEntity(org.bukkit.entity.Entity entity); ++ ++ /** ++ * Deserialize an entity from byte array ++ *

++ * The entity is not automatically spawned in the world. You will have to spawn ++ * the entity yourself with {@link org.bukkit.entity.Entity#spawnAt(Location)} or ++ * {@link org.bukkit.entity.Entity#spawnAt(Location, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason)} ++ * ++ * @param data serialized entity ++ * @param world world entity belongs in ++ * @return deserialized entity ++ */ ++ org.bukkit.entity.Entity deserializeEntity(byte[] data, org.bukkit.World world); ++ // Purpur end + } diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java index b47e31d2b9b41b39b46892fe10bf36d82c5d8e1b..7fa5242bd44c9b19648d79fa8fecbb7ee125288e 100644 --- a/src/main/java/org/bukkit/entity/Entity.java From 21906a2b4a794b1955a844866b44c539fe7d29bd Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Thu, 13 May 2021 16:33:16 -0500 Subject: [PATCH 37/40] Hide hidden players from entity selector --- ...-hidden-players-from-entity-selector.patch | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 patches/server/0209-Hide-hidden-players-from-entity-selector.patch diff --git a/patches/server/0209-Hide-hidden-players-from-entity-selector.patch b/patches/server/0209-Hide-hidden-players-from-entity-selector.patch new file mode 100644 index 0000000000..56b931e9a4 --- /dev/null +++ b/patches/server/0209-Hide-hidden-players-from-entity-selector.patch @@ -0,0 +1,61 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: BillyGalbreath +Date: Thu, 13 May 2021 16:18:29 -0500 +Subject: [PATCH] Hide hidden players from entity selector + + +diff --git a/src/main/java/net/minecraft/commands/arguments/selector/EntitySelector.java b/src/main/java/net/minecraft/commands/arguments/selector/EntitySelector.java +index ee3123ac8a568d915ca4e1b42fc1196c269b287e..10c0eb9387da3ca4a8fddebd4f4d7fef3e0ccd23 100644 +--- a/src/main/java/net/minecraft/commands/arguments/selector/EntitySelector.java ++++ b/src/main/java/net/minecraft/commands/arguments/selector/EntitySelector.java +@@ -169,10 +169,10 @@ public class EntitySelector { + + if (this.j != null) { + entityplayer = commandlistenerwrapper.getServer().getPlayerList().getPlayer(this.j); +- return (List) (entityplayer == null ? Collections.emptyList() : Lists.newArrayList(new EntityPlayer[]{entityplayer})); ++ return entityplayer == null || !canSee(commandlistenerwrapper, entityplayer) ? Collections.emptyList() : Lists.newArrayList(entityplayer); // Purpur + } else if (this.k != null) { + entityplayer = commandlistenerwrapper.getServer().getPlayerList().getPlayer(this.k); +- return (List) (entityplayer == null ? Collections.emptyList() : Lists.newArrayList(new EntityPlayer[]{entityplayer})); ++ return entityplayer == null || !canSee(commandlistenerwrapper, entityplayer) ? Collections.emptyList() : Lists.newArrayList(entityplayer); // Purpur + } else { + Vec3D vec3d = (Vec3D) this.f.apply(commandlistenerwrapper.getPosition()); + Predicate predicate = this.a(vec3d); +@@ -182,7 +182,7 @@ public class EntitySelector { + EntityPlayer entityplayer1 = (EntityPlayer) commandlistenerwrapper.getEntity(); + + if (predicate.test(entityplayer1)) { +- return Lists.newArrayList(new EntityPlayer[]{entityplayer1}); ++ return !canSee(commandlistenerwrapper, entityplayer1) ? Collections.emptyList() : Lists.newArrayList(entityplayer1); // Purpur + } + } + +@@ -195,6 +195,7 @@ public class EntitySelector { + + predicate.getClass(); + object = worldserver.a(predicate::test); ++ ((List) object).removeIf(entityplayer3 -> !canSee(commandlistenerwrapper, (EntityPlayer) entityplayer3)); // Purpur + } else { + object = Lists.newArrayList(); + Iterator iterator = commandlistenerwrapper.getServer().getPlayerList().getPlayers().iterator(); +@@ -202,7 +203,7 @@ public class EntitySelector { + while (iterator.hasNext()) { + EntityPlayer entityplayer2 = (EntityPlayer) iterator.next(); + +- if (predicate.test(entityplayer2)) { ++ if (predicate.test(entityplayer2) && canSee(commandlistenerwrapper, entityplayer2)) { // Purpur + ((List) object).add(entityplayer2); + } + } +@@ -244,4 +245,11 @@ public class EntitySelector { + public static IChatMutableComponent a(List list) { + return ChatComponentUtils.b(list, Entity::getScoreboardDisplayName); + } ++ ++ // Purpur start ++ private boolean canSee(CommandListenerWrapper commandlistenerwrapper, EntityPlayer target) { ++ Entity entity = commandlistenerwrapper.getEntity(); ++ return !(entity instanceof EntityPlayer) || ((EntityPlayer) entity).getBukkitEntity().canSee(target.getBukkitEntity()); ++ } ++ // Purpur end + } From 8f7bce4567dc4cfe73359f370aaa14005cbba087 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Thu, 13 May 2021 16:39:13 -0500 Subject: [PATCH 38/40] Add config for hidden from entity selector patch --- ...-hidden-players-from-entity-selector.patch | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/patches/server/0209-Hide-hidden-players-from-entity-selector.patch b/patches/server/0209-Hide-hidden-players-from-entity-selector.patch index 56b931e9a4..e555fb33ce 100644 --- a/patches/server/0209-Hide-hidden-players-from-entity-selector.patch +++ b/patches/server/0209-Hide-hidden-players-from-entity-selector.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Hide hidden players from entity selector diff --git a/src/main/java/net/minecraft/commands/arguments/selector/EntitySelector.java b/src/main/java/net/minecraft/commands/arguments/selector/EntitySelector.java -index ee3123ac8a568d915ca4e1b42fc1196c269b287e..10c0eb9387da3ca4a8fddebd4f4d7fef3e0ccd23 100644 +index ee3123ac8a568d915ca4e1b42fc1196c269b287e..82125185233bdc59ef93d376e7327180c98c794d 100644 --- a/src/main/java/net/minecraft/commands/arguments/selector/EntitySelector.java +++ b/src/main/java/net/minecraft/commands/arguments/selector/EntitySelector.java @@ -169,10 +169,10 @@ public class EntitySelector { @@ -55,7 +55,22 @@ index ee3123ac8a568d915ca4e1b42fc1196c269b287e..10c0eb9387da3ca4a8fddebd4f4d7fef + // Purpur start + private boolean canSee(CommandListenerWrapper commandlistenerwrapper, EntityPlayer target) { + Entity entity = commandlistenerwrapper.getEntity(); -+ return !(entity instanceof EntityPlayer) || ((EntityPlayer) entity).getBukkitEntity().canSee(target.getBukkitEntity()); ++ return !net.pl3x.purpur.PurpurConfig.hideHiddenPlayersFromEntitySelector || !(entity instanceof EntityPlayer) || ((EntityPlayer) entity).getBukkitEntity().canSee(target.getBukkitEntity()); + } + // Purpur end } +diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java +index 7e8654e4df61527f33d4fce2afdb14e29b90a4c2..61f385021e8e870a4cb1b9c2744105988c8b709a 100644 +--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java ++++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java +@@ -212,8 +212,10 @@ public class PurpurConfig { + } + + public static boolean commandGamemodeRequiresPermission = false; ++ public static boolean hideHiddenPlayersFromEntitySelector = false; + private static void commandSettings() { + commandGamemodeRequiresPermission = getBoolean("settings.command.gamemode.requires-specific-permission", commandGamemodeRequiresPermission); ++ hideHiddenPlayersFromEntitySelector = getBoolean("settings.command.hide-hidden-players-from-entity-selector", hideHiddenPlayersFromEntitySelector); + } + + public static boolean barrelSixRows = false; From 40cd77f67ef977f72bdebc86416dee533f34ed23 Mon Sep 17 00:00:00 2001 From: Encode42 Date: Thu, 29 Apr 2021 20:39:55 -0400 Subject: [PATCH 39/40] Config for health to impact Creeper explosion radius --- ...h-to-impact-Creeper-explosion-radius.patch | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 patches/server/0203-Config-for-health-to-impact-Creeper-explosion-radius.patch diff --git a/patches/server/0203-Config-for-health-to-impact-Creeper-explosion-radius.patch b/patches/server/0203-Config-for-health-to-impact-Creeper-explosion-radius.patch new file mode 100644 index 0000000000..4e7006ee73 --- /dev/null +++ b/patches/server/0203-Config-for-health-to-impact-Creeper-explosion-radius.patch @@ -0,0 +1,42 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Encode42 +Date: Thu, 29 Apr 2021 20:28:18 -0400 +Subject: [PATCH] Config for health to impact Creeper explosion radius + + +diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java b/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java +index 014091f35ee5aac0ee2f155ccec2daf586e4d3d3..79b61879e0b05d3ac50b92128ad35d10b7804f6b 100644 +--- a/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java ++++ b/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java +@@ -341,9 +341,10 @@ public class EntityCreeper extends EntityMonster { + if (!this.world.isClientSide) { + Explosion.Effect explosion_effect = this.world.getGameRules().getBoolean(GameRules.MOB_GRIEFING) && world.purpurConfig.creeperAllowGriefing ? Explosion.Effect.DESTROY : Explosion.Effect.NONE; // Purpur + float f = this.isPowered() ? 2.0F : 1.0F; ++ float multiplier = this.world.purpurConfig.creeperHealthRadius ? this.getHealth() / this.getMaxHealth() : 1; // Purpur + + // CraftBukkit start +- ExplosionPrimeEvent event = new ExplosionPrimeEvent(this.getBukkitEntity(), this.explosionRadius * f, false); ++ ExplosionPrimeEvent event = new ExplosionPrimeEvent(this.getBukkitEntity(), multiplier * (this.explosionRadius * f), false); // Purpur + this.world.getServer().getPluginManager().callEvent(event); + if (!event.isCancelled()) { + this.killed = true; +diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +index 69d6ced8e583a3a0625ced9d444caca21fa80723..280a01f184c9c8b55a257d38b47e73e8cbd0cb6c 100644 +--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java ++++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +@@ -803,6 +803,7 @@ public class PurpurWorldConfig { + public boolean creeperRidable = false; + public boolean creeperRidableInWater = false; + public boolean creeperExplodeWhenKilled = false; ++ public boolean creeperHealthRadius = false; + public boolean creeperAllowGriefing = true; + public double creeperChargedChance = 0.0D; + public double creeperMaxHealth = 20.0D; +@@ -810,6 +811,7 @@ public class PurpurWorldConfig { + creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); + creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); + creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled); ++ creeperHealthRadius = getBoolean("mobs.creeper.health-impacts-explosion", creeperHealthRadius); + creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing); + creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance); + if (PurpurConfig.version < 10) { From f82f22b7965ccdb315ca55420dfb1e10f2018c01 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Thu, 13 May 2021 17:25:33 -0500 Subject: [PATCH 40/40] rebase --- ...g-for-health-to-impact-Creeper-explosion-radius.patch} | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) rename patches/server/{0203-Config-for-health-to-impact-Creeper-explosion-radius.patch => 0210-Config-for-health-to-impact-Creeper-explosion-radius.patch} (90%) diff --git a/patches/server/0203-Config-for-health-to-impact-Creeper-explosion-radius.patch b/patches/server/0210-Config-for-health-to-impact-Creeper-explosion-radius.patch similarity index 90% rename from patches/server/0203-Config-for-health-to-impact-Creeper-explosion-radius.patch rename to patches/server/0210-Config-for-health-to-impact-Creeper-explosion-radius.patch index 4e7006ee73..3ef06697b5 100644 --- a/patches/server/0203-Config-for-health-to-impact-Creeper-explosion-radius.patch +++ b/patches/server/0210-Config-for-health-to-impact-Creeper-explosion-radius.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config for health to impact Creeper explosion radius diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java b/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java -index 014091f35ee5aac0ee2f155ccec2daf586e4d3d3..79b61879e0b05d3ac50b92128ad35d10b7804f6b 100644 +index 27d5e9fc5ec1396e95180fc14e8a61b030cfd1e6..d2ae28bb1a2db6dde2aa7c95589656b6eaf3072d 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java @@ -341,9 +341,10 @@ public class EntityCreeper extends EntityMonster { @@ -21,10 +21,10 @@ index 014091f35ee5aac0ee2f155ccec2daf586e4d3d3..79b61879e0b05d3ac50b92128ad35d10 if (!event.isCancelled()) { this.killed = true; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 69d6ced8e583a3a0625ced9d444caca21fa80723..280a01f184c9c8b55a257d38b47e73e8cbd0cb6c 100644 +index b8622f687b4fd70aaee5fa44cc50b8ee38582582..5659e75177f3c5acb935b0f6dc0b720853602108 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -803,6 +803,7 @@ public class PurpurWorldConfig { +@@ -830,6 +830,7 @@ public class PurpurWorldConfig { public boolean creeperRidable = false; public boolean creeperRidableInWater = false; public boolean creeperExplodeWhenKilled = false; @@ -32,7 +32,7 @@ index 69d6ced8e583a3a0625ced9d444caca21fa80723..280a01f184c9c8b55a257d38b47e73e8 public boolean creeperAllowGriefing = true; public double creeperChargedChance = 0.0D; public double creeperMaxHealth = 20.0D; -@@ -810,6 +811,7 @@ public class PurpurWorldConfig { +@@ -837,6 +838,7 @@ public class PurpurWorldConfig { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled);