diff --git a/Spigot-Server-Patches/0240-Add-ArmorStand-Item-Meta.patch b/Spigot-Server-Patches/0239-Add-ArmorStand-Item-Meta.patch similarity index 99% rename from Spigot-Server-Patches/0240-Add-ArmorStand-Item-Meta.patch rename to Spigot-Server-Patches/0239-Add-ArmorStand-Item-Meta.patch index 51ad64fe6c..9aa79a8bf8 100644 --- a/Spigot-Server-Patches/0240-Add-ArmorStand-Item-Meta.patch +++ b/Spigot-Server-Patches/0239-Add-ArmorStand-Item-Meta.patch @@ -1,4 +1,4 @@ -From 9f2c6acdcb96192da5d2ca929a2d729b450b95c2 Mon Sep 17 00:00:00 2001 +From 0530d0a31a3a726c633b09f58e383402b3f291a6 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Sat, 27 Jan 2018 17:04:14 -0500 Subject: [PATCH] Add ArmorStand Item Meta diff --git a/Spigot-Server-Patches/0239-MC-99321-Dont-check-for-blocked-double-chest-for-hop.patch b/Spigot-Server-Patches/0239-MC-99321-Dont-check-for-blocked-double-chest-for-hop.patch deleted file mode 100644 index ac2c95359a..0000000000 --- a/Spigot-Server-Patches/0239-MC-99321-Dont-check-for-blocked-double-chest-for-hop.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 97ab3dbce9bd88f8593e8cb5f1f01a1c9866fd72 Mon Sep 17 00:00:00 2001 -From: Aikar -Date: Wed, 24 Jan 2018 20:06:39 -0500 -Subject: [PATCH] MC-99321 - Dont check for blocked double chest for hoppers - etc - -This is a source of MAJOR lag for hoppers, as well as a gameplay bug. - -This removes the necessity to disable the cat on chest behavior to improve performance. - -now performance will be improved even if you have cat chest detection on. - -diff --git a/src/main/java/net/minecraft/server/BlockChest.java b/src/main/java/net/minecraft/server/BlockChest.java -index 633c75ffe..68cdd3970 100644 ---- a/src/main/java/net/minecraft/server/BlockChest.java -+++ b/src/main/java/net/minecraft/server/BlockChest.java -@@ -208,6 +208,7 @@ public class BlockChest extends BlockTileEntity implements IFluidSource, IFluidC - - if (blockpropertychesttype1 != BlockPropertyChestType.SINGLE && blockpropertychesttype != blockpropertychesttype1 && iblockdata1.get(BlockChest.FACING) == iblockdata.get(BlockChest.FACING)) { - if (!flag && this.a(world, blockposition1)) { -+ //if (!flag && this.e(world, blockposition1)) { // Paper - check for allowBlocked flag - MC-99321 - return null; - } - --- -2.18.0 - diff --git a/Spigot-Server-Patches/0241-Extend-Player-Interact-cancellation.patch b/Spigot-Server-Patches/0240-Extend-Player-Interact-cancellation.patch similarity index 99% rename from Spigot-Server-Patches/0241-Extend-Player-Interact-cancellation.patch rename to Spigot-Server-Patches/0240-Extend-Player-Interact-cancellation.patch index 0a93f77cf4..bc44753599 100644 --- a/Spigot-Server-Patches/0241-Extend-Player-Interact-cancellation.patch +++ b/Spigot-Server-Patches/0240-Extend-Player-Interact-cancellation.patch @@ -1,4 +1,4 @@ -From a4c8b999c8aaed77e0ec747c47b33db32c02b26d Mon Sep 17 00:00:00 2001 +From 2693e4099bc86fa04f9ea27d357ba5fe079d0133 Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Sun, 11 Feb 2018 10:43:46 +0000 Subject: [PATCH] Extend Player Interact cancellation diff --git a/Spigot-Server-Patches/0242-Tameable-getOwnerUniqueId-API.patch b/Spigot-Server-Patches/0241-Tameable-getOwnerUniqueId-API.patch similarity index 96% rename from Spigot-Server-Patches/0242-Tameable-getOwnerUniqueId-API.patch rename to Spigot-Server-Patches/0241-Tameable-getOwnerUniqueId-API.patch index ea6215c50f..9f9c22e96c 100644 --- a/Spigot-Server-Patches/0242-Tameable-getOwnerUniqueId-API.patch +++ b/Spigot-Server-Patches/0241-Tameable-getOwnerUniqueId-API.patch @@ -1,4 +1,4 @@ -From e325606ca11e0456e20de6f72ca536770e5a021c Mon Sep 17 00:00:00 2001 +From c96eff12be30c749b2571ac7d834fc2612402a0b Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 24 Feb 2018 01:14:55 -0500 Subject: [PATCH] Tameable#getOwnerUniqueId API diff --git a/Spigot-Server-Patches/0243-Toggleable-player-crits-helps-mitigate-hacked-client.patch b/Spigot-Server-Patches/0242-Toggleable-player-crits-helps-mitigate-hacked-client.patch similarity index 96% rename from Spigot-Server-Patches/0243-Toggleable-player-crits-helps-mitigate-hacked-client.patch rename to Spigot-Server-Patches/0242-Toggleable-player-crits-helps-mitigate-hacked-client.patch index 768121a7dd..6214ca1d21 100644 --- a/Spigot-Server-Patches/0243-Toggleable-player-crits-helps-mitigate-hacked-client.patch +++ b/Spigot-Server-Patches/0242-Toggleable-player-crits-helps-mitigate-hacked-client.patch @@ -1,4 +1,4 @@ -From 1ecf02a1bf80ad65f162f01219f809c6863cdcff Mon Sep 17 00:00:00 2001 +From e402212a84679d84734f72481807a00cad6f71a8 Mon Sep 17 00:00:00 2001 From: MiniDigger Date: Sat, 10 Mar 2018 00:50:24 +0100 Subject: [PATCH] Toggleable player crits, helps mitigate hacked clients. diff --git a/Spigot-Server-Patches/0244-Fix-NPE-when-getting-location-from-InventoryEnderChe.patch b/Spigot-Server-Patches/0243-Fix-NPE-when-getting-location-from-InventoryEnderChe.patch similarity index 95% rename from Spigot-Server-Patches/0244-Fix-NPE-when-getting-location-from-InventoryEnderChe.patch rename to Spigot-Server-Patches/0243-Fix-NPE-when-getting-location-from-InventoryEnderChe.patch index b800e5cf53..e80dddaec6 100644 --- a/Spigot-Server-Patches/0244-Fix-NPE-when-getting-location-from-InventoryEnderChe.patch +++ b/Spigot-Server-Patches/0243-Fix-NPE-when-getting-location-from-InventoryEnderChe.patch @@ -1,4 +1,4 @@ -From 9fda01cd67b4a4ad9eb1ee84b3094affa5ea844e Mon Sep 17 00:00:00 2001 +From 075334edd39aa0e1e1ac778032caea4ad9e6f4bc Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Sat, 10 Mar 2018 13:03:49 +0000 Subject: [PATCH] Fix NPE when getting location from InventoryEnderChest opened diff --git a/Spigot-Server-Patches/0245-Prevent-Frosted-Ice-from-loading-holding-chunks.patch b/Spigot-Server-Patches/0244-Prevent-Frosted-Ice-from-loading-holding-chunks.patch similarity index 96% rename from Spigot-Server-Patches/0245-Prevent-Frosted-Ice-from-loading-holding-chunks.patch rename to Spigot-Server-Patches/0244-Prevent-Frosted-Ice-from-loading-holding-chunks.patch index 59945df2ac..6b2677d6cd 100644 --- a/Spigot-Server-Patches/0245-Prevent-Frosted-Ice-from-loading-holding-chunks.patch +++ b/Spigot-Server-Patches/0244-Prevent-Frosted-Ice-from-loading-holding-chunks.patch @@ -1,4 +1,4 @@ -From 93093b0262f159749ed17fe570dc6c53640d2942 Mon Sep 17 00:00:00 2001 +From ab69b644e187d1ddfe69ff12be345f5d29a3f294 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 10 Mar 2018 16:33:15 -0500 Subject: [PATCH] Prevent Frosted Ice from loading/holding chunks diff --git a/Spigot-Server-Patches/0246-Disable-Explicit-Network-Manager-Flushing.patch b/Spigot-Server-Patches/0245-Disable-Explicit-Network-Manager-Flushing.patch similarity index 96% rename from Spigot-Server-Patches/0246-Disable-Explicit-Network-Manager-Flushing.patch rename to Spigot-Server-Patches/0245-Disable-Explicit-Network-Manager-Flushing.patch index 715f7a05d2..911ae66f4d 100644 --- a/Spigot-Server-Patches/0246-Disable-Explicit-Network-Manager-Flushing.patch +++ b/Spigot-Server-Patches/0245-Disable-Explicit-Network-Manager-Flushing.patch @@ -1,4 +1,4 @@ -From 2c3e67315b5181b36cb57ac67ebdd9597143ef48 Mon Sep 17 00:00:00 2001 +From 983d36016f7b3064b7a04143e990c790965a838b Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 11 Mar 2018 14:13:33 -0400 Subject: [PATCH] Disable Explicit Network Manager Flushing diff --git a/Spigot-Server-Patches/0247-Implement-extended-PaperServerListPingEvent.patch b/Spigot-Server-Patches/0246-Implement-extended-PaperServerListPingEvent.patch similarity index 99% rename from Spigot-Server-Patches/0247-Implement-extended-PaperServerListPingEvent.patch rename to Spigot-Server-Patches/0246-Implement-extended-PaperServerListPingEvent.patch index ecfc8b87aa..fdc07a37a0 100644 --- a/Spigot-Server-Patches/0247-Implement-extended-PaperServerListPingEvent.patch +++ b/Spigot-Server-Patches/0246-Implement-extended-PaperServerListPingEvent.patch @@ -1,4 +1,4 @@ -From 2ba4f6de1959bc2a38b489f254828ff3706a03a4 Mon Sep 17 00:00:00 2001 +From bf57920113426fb120ded5d0a7e25304dd7948b6 Mon Sep 17 00:00:00 2001 From: Minecrell Date: Wed, 11 Oct 2017 15:56:26 +0200 Subject: [PATCH] Implement extended PaperServerListPingEvent diff --git a/Spigot-Server-Patches/0248-Improved-Async-Task-Scheduler.patch b/Spigot-Server-Patches/0247-Improved-Async-Task-Scheduler.patch similarity index 99% rename from Spigot-Server-Patches/0248-Improved-Async-Task-Scheduler.patch rename to Spigot-Server-Patches/0247-Improved-Async-Task-Scheduler.patch index 2f51ba97e7..44af697aae 100644 --- a/Spigot-Server-Patches/0248-Improved-Async-Task-Scheduler.patch +++ b/Spigot-Server-Patches/0247-Improved-Async-Task-Scheduler.patch @@ -1,4 +1,4 @@ -From d3414ed95127b00fea16ba31ff5bffabb265c257 Mon Sep 17 00:00:00 2001 +From d16134eac30d00f1045815dab121d243f25310d8 Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 16 Mar 2018 22:59:43 -0400 Subject: [PATCH] Improved Async Task Scheduler diff --git a/Spigot-Server-Patches/0249-Ability-to-change-PlayerProfile-in-AsyncPreLoginEven.patch b/Spigot-Server-Patches/0248-Ability-to-change-PlayerProfile-in-AsyncPreLoginEven.patch similarity index 97% rename from Spigot-Server-Patches/0249-Ability-to-change-PlayerProfile-in-AsyncPreLoginEven.patch rename to Spigot-Server-Patches/0248-Ability-to-change-PlayerProfile-in-AsyncPreLoginEven.patch index a9fd875433..540fc4447b 100644 --- a/Spigot-Server-Patches/0249-Ability-to-change-PlayerProfile-in-AsyncPreLoginEven.patch +++ b/Spigot-Server-Patches/0248-Ability-to-change-PlayerProfile-in-AsyncPreLoginEven.patch @@ -1,4 +1,4 @@ -From 19cf35731b41ad71fec4fb25af08f7f1a7d0c935 Mon Sep 17 00:00:00 2001 +From 67709b897f88439ceea818e724fb08d91212b97b Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 18 Mar 2018 11:45:57 -0400 Subject: [PATCH] Ability to change PlayerProfile in AsyncPreLoginEvent diff --git a/Spigot-Server-Patches/0250-Call-PortalCreateEvent-for-exit-portals.patch b/Spigot-Server-Patches/0249-Call-PortalCreateEvent-for-exit-portals.patch similarity index 98% rename from Spigot-Server-Patches/0250-Call-PortalCreateEvent-for-exit-portals.patch rename to Spigot-Server-Patches/0249-Call-PortalCreateEvent-for-exit-portals.patch index 89eede2d5d..56d157239d 100644 --- a/Spigot-Server-Patches/0250-Call-PortalCreateEvent-for-exit-portals.patch +++ b/Spigot-Server-Patches/0249-Call-PortalCreateEvent-for-exit-portals.patch @@ -1,4 +1,4 @@ -From d8cf6f1f10e675b557b889766262bef7af449357 Mon Sep 17 00:00:00 2001 +From 772d05f6f0ea7b1618a3b09a976f96f896ba347b Mon Sep 17 00:00:00 2001 From: MiniDigger Date: Sun, 18 Mar 2018 15:44:44 +0100 Subject: [PATCH] Call PortalCreateEvent for exit portals diff --git a/Spigot-Server-Patches/0251-Player.setPlayerProfile-API.patch b/Spigot-Server-Patches/0250-Player.setPlayerProfile-API.patch similarity index 96% rename from Spigot-Server-Patches/0251-Player.setPlayerProfile-API.patch rename to Spigot-Server-Patches/0250-Player.setPlayerProfile-API.patch index 976356a23d..4fcf4e3807 100644 --- a/Spigot-Server-Patches/0251-Player.setPlayerProfile-API.patch +++ b/Spigot-Server-Patches/0250-Player.setPlayerProfile-API.patch @@ -1,4 +1,4 @@ -From dcfb0b8e176f2f568f19bc1b4277dc320fea2a49 Mon Sep 17 00:00:00 2001 +From 91ffaff0c7c58bb3cb3e6be558a3885e768adfac Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 18 Mar 2018 12:29:48 -0400 Subject: [PATCH] Player.setPlayerProfile API @@ -6,7 +6,7 @@ Subject: [PATCH] Player.setPlayerProfile API This can be useful for changing name or skins after a player has logged in. diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java -index 4fb300468..02f5d61c8 100644 +index 4fb300468..65f4ea6cc 100644 --- a/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java @@ -67,7 +67,7 @@ public abstract class EntityHuman extends EntityLiving { @@ -14,7 +14,7 @@ index 4fb300468..02f5d61c8 100644 protected float ca = 0.02F; private int g; - private final GameProfile h; -+ private final GameProfile h; public void setProfile(GameProfile profile) { this.h = profile; } // Paper - OBFHELPER ++ private GameProfile h; public void setProfile(GameProfile profile) { this.h = profile; } // Paper - OBFHELPER private ItemStack cd; private final ItemCooldown ce; @Nullable diff --git a/Spigot-Server-Patches/0252-Fix-Dragon-Server-Crashes.patch b/Spigot-Server-Patches/0251-Fix-Dragon-Server-Crashes.patch similarity index 95% rename from Spigot-Server-Patches/0252-Fix-Dragon-Server-Crashes.patch rename to Spigot-Server-Patches/0251-Fix-Dragon-Server-Crashes.patch index 4e0818a6be..480474ff3e 100644 --- a/Spigot-Server-Patches/0252-Fix-Dragon-Server-Crashes.patch +++ b/Spigot-Server-Patches/0251-Fix-Dragon-Server-Crashes.patch @@ -1,4 +1,4 @@ -From 728da88527f9ef0f97324222e0e3266ace89829b Mon Sep 17 00:00:00 2001 +From a301af865d9f1156ef56ff89782acc29abafc24b Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 21 Mar 2018 20:52:07 -0400 Subject: [PATCH] Fix Dragon Server Crashes diff --git a/Spigot-Server-Patches/0253-getPlayerUniqueId-API.patch b/Spigot-Server-Patches/0252-getPlayerUniqueId-API.patch similarity index 96% rename from Spigot-Server-Patches/0253-getPlayerUniqueId-API.patch rename to Spigot-Server-Patches/0252-getPlayerUniqueId-API.patch index 342d3d4e02..d2c54bc63c 100644 --- a/Spigot-Server-Patches/0253-getPlayerUniqueId-API.patch +++ b/Spigot-Server-Patches/0252-getPlayerUniqueId-API.patch @@ -1,4 +1,4 @@ -From 1239414baf466c554e8b32f4d0a2b62888dbd362 Mon Sep 17 00:00:00 2001 +From 5f0ce62baa4376aafa88151d7368bf7f7fd18b42 Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 22 Mar 2018 01:40:24 -0400 Subject: [PATCH] getPlayerUniqueId API diff --git a/Spigot-Server-Patches/0254-Make-player-data-saving-configurable.patch b/Spigot-Server-Patches/0253-Make-player-data-saving-configurable.patch similarity index 96% rename from Spigot-Server-Patches/0254-Make-player-data-saving-configurable.patch rename to Spigot-Server-Patches/0253-Make-player-data-saving-configurable.patch index f18530b015..715203badc 100644 --- a/Spigot-Server-Patches/0254-Make-player-data-saving-configurable.patch +++ b/Spigot-Server-Patches/0253-Make-player-data-saving-configurable.patch @@ -1,4 +1,4 @@ -From 10565b35573ebcedd4d04cd758e98b2ae9378382 Mon Sep 17 00:00:00 2001 +From f10e8a5ef24dc16f21bcd5dd130133f2e67d5cca Mon Sep 17 00:00:00 2001 From: Mark Vainomaa Date: Mon, 26 Mar 2018 18:30:53 +0300 Subject: [PATCH] Make player data saving configurable diff --git a/Spigot-Server-Patches/0255-Make-legacy-ping-handler-more-reliable.patch b/Spigot-Server-Patches/0254-Make-legacy-ping-handler-more-reliable.patch similarity index 98% rename from Spigot-Server-Patches/0255-Make-legacy-ping-handler-more-reliable.patch rename to Spigot-Server-Patches/0254-Make-legacy-ping-handler-more-reliable.patch index 86b715f3f4..8a600bd4ca 100644 --- a/Spigot-Server-Patches/0255-Make-legacy-ping-handler-more-reliable.patch +++ b/Spigot-Server-Patches/0254-Make-legacy-ping-handler-more-reliable.patch @@ -1,4 +1,4 @@ -From b14bde8370c3facc41743eccbbdca1c9d214a16e Mon Sep 17 00:00:00 2001 +From ea72b8b34d10d9f02cf2be8e5f7794398e5f5b6d Mon Sep 17 00:00:00 2001 From: Minecrell Date: Wed, 11 Oct 2017 18:22:50 +0200 Subject: [PATCH] Make legacy ping handler more reliable diff --git a/Spigot-Server-Patches/0256-Call-PaperServerListPingEvent-for-legacy-pings.patch b/Spigot-Server-Patches/0255-Call-PaperServerListPingEvent-for-legacy-pings.patch similarity index 99% rename from Spigot-Server-Patches/0256-Call-PaperServerListPingEvent-for-legacy-pings.patch rename to Spigot-Server-Patches/0255-Call-PaperServerListPingEvent-for-legacy-pings.patch index 372a831b93..4c5f276557 100644 --- a/Spigot-Server-Patches/0256-Call-PaperServerListPingEvent-for-legacy-pings.patch +++ b/Spigot-Server-Patches/0255-Call-PaperServerListPingEvent-for-legacy-pings.patch @@ -1,4 +1,4 @@ -From 5e73439660c4df0b0212c9f7024fdc4c0fb2a8d2 Mon Sep 17 00:00:00 2001 +From 7cf04502231cc70d52e9c3e0ac1c51b472bae3db Mon Sep 17 00:00:00 2001 From: Minecrell Date: Wed, 11 Oct 2017 19:30:51 +0200 Subject: [PATCH] Call PaperServerListPingEvent for legacy pings diff --git a/Spigot-Server-Patches/0257-Flag-to-disable-the-channel-limit.patch b/Spigot-Server-Patches/0256-Flag-to-disable-the-channel-limit.patch similarity index 96% rename from Spigot-Server-Patches/0257-Flag-to-disable-the-channel-limit.patch rename to Spigot-Server-Patches/0256-Flag-to-disable-the-channel-limit.patch index d07bed3977..77a58e8083 100644 --- a/Spigot-Server-Patches/0257-Flag-to-disable-the-channel-limit.patch +++ b/Spigot-Server-Patches/0256-Flag-to-disable-the-channel-limit.patch @@ -1,4 +1,4 @@ -From 475d170af8eca9b33672045e8ec912903c1e1721 Mon Sep 17 00:00:00 2001 +From f86f71a94e99da011a39ed9a64eab9061f32fdb0 Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Sat, 31 Mar 2018 17:04:26 +0100 Subject: [PATCH] Flag to disable the channel limit diff --git a/Spigot-Server-Patches/0258-Add-method-to-open-already-placed-sign.patch b/Spigot-Server-Patches/0257-Add-method-to-open-already-placed-sign.patch similarity index 95% rename from Spigot-Server-Patches/0258-Add-method-to-open-already-placed-sign.patch rename to Spigot-Server-Patches/0257-Add-method-to-open-already-placed-sign.patch index 7918c4fd6f..7869a5ec54 100644 --- a/Spigot-Server-Patches/0258-Add-method-to-open-already-placed-sign.patch +++ b/Spigot-Server-Patches/0257-Add-method-to-open-already-placed-sign.patch @@ -1,4 +1,4 @@ -From de65a13614de10f2b1156623744886ef1972815b Mon Sep 17 00:00:00 2001 +From 56a8afcb50c96195f362c2437f93e18f4e0c084c Mon Sep 17 00:00:00 2001 From: Mark Vainomaa Date: Sun, 1 Apr 2018 02:29:37 +0300 Subject: [PATCH] Add method to open already placed sign diff --git a/Spigot-Server-Patches/0259-Load-version-history-at-server-start.patch b/Spigot-Server-Patches/0258-Load-version-history-at-server-start.patch similarity index 93% rename from Spigot-Server-Patches/0259-Load-version-history-at-server-start.patch rename to Spigot-Server-Patches/0258-Load-version-history-at-server-start.patch index cf914e2455..37e4c97e65 100644 --- a/Spigot-Server-Patches/0259-Load-version-history-at-server-start.patch +++ b/Spigot-Server-Patches/0258-Load-version-history-at-server-start.patch @@ -1,4 +1,4 @@ -From 0603e9586214f19e3688d2e77b0cceda6d0af5a3 Mon Sep 17 00:00:00 2001 +From c087731552e99e275dd9e77406c2047402cc000e Mon Sep 17 00:00:00 2001 From: Kyle Wood Date: Thu, 1 Mar 2018 19:38:14 -0600 Subject: [PATCH] Load version history at server start diff --git a/Spigot-Server-Patches/0260-Configurable-sprint-interruption-on-attack.patch b/Spigot-Server-Patches/0259-Configurable-sprint-interruption-on-attack.patch similarity index 94% rename from Spigot-Server-Patches/0260-Configurable-sprint-interruption-on-attack.patch rename to Spigot-Server-Patches/0259-Configurable-sprint-interruption-on-attack.patch index 7d05752220..f8c05aa72a 100644 --- a/Spigot-Server-Patches/0260-Configurable-sprint-interruption-on-attack.patch +++ b/Spigot-Server-Patches/0259-Configurable-sprint-interruption-on-attack.patch @@ -1,4 +1,4 @@ -From 86b8ecd4561a6f79d1fc63cf647acdb61988f002 Mon Sep 17 00:00:00 2001 +From 3769a500e46acd96215769b0495c589417820678 Mon Sep 17 00:00:00 2001 From: Brokkonaut Date: Sat, 14 Apr 2018 20:20:46 +0200 Subject: [PATCH] Configurable sprint interruption on attack @@ -19,7 +19,7 @@ index 830b99cd7..87d2dd131 100644 + } } diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java -index 02f5d61c8..fc5263f08 100644 +index 65f4ea6cc..a766a1467 100644 --- a/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java @@ -1073,7 +1073,11 @@ public abstract class EntityHuman extends EntityLiving { diff --git a/Spigot-Server-Patches/0261-Fix-exploit-that-allowed-colored-signs-to-be-created.patch b/Spigot-Server-Patches/0260-Fix-exploit-that-allowed-colored-signs-to-be-created.patch similarity index 94% rename from Spigot-Server-Patches/0261-Fix-exploit-that-allowed-colored-signs-to-be-created.patch rename to Spigot-Server-Patches/0260-Fix-exploit-that-allowed-colored-signs-to-be-created.patch index aaf76eb312..6997e7ea62 100644 --- a/Spigot-Server-Patches/0261-Fix-exploit-that-allowed-colored-signs-to-be-created.patch +++ b/Spigot-Server-Patches/0260-Fix-exploit-that-allowed-colored-signs-to-be-created.patch @@ -1,4 +1,4 @@ -From d9383d732dda96c14becde6ac9fec90dfea7f475 Mon Sep 17 00:00:00 2001 +From 287e5fb213e2806e4e9ecfc08d7d98e55bdb6a12 Mon Sep 17 00:00:00 2001 From: 0x22 <0x22@futureclient.net> Date: Thu, 26 Apr 2018 04:41:11 -0400 Subject: [PATCH] Fix exploit that allowed colored signs to be created diff --git a/Spigot-Server-Patches/0262-EndermanEscapeEvent.patch b/Spigot-Server-Patches/0261-EndermanEscapeEvent.patch similarity index 85% rename from Spigot-Server-Patches/0262-EndermanEscapeEvent.patch rename to Spigot-Server-Patches/0261-EndermanEscapeEvent.patch index 8504519584..2dbc6e1c27 100644 --- a/Spigot-Server-Patches/0262-EndermanEscapeEvent.patch +++ b/Spigot-Server-Patches/0261-EndermanEscapeEvent.patch @@ -1,4 +1,4 @@ -From 03cfbe82ae05485c6623a88ff810729f97e83ea3 Mon Sep 17 00:00:00 2001 +From 716a9a72b32bac7bb06d4b971a4ad877c69aed57 Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 30 Apr 2018 13:15:55 -0400 Subject: [PATCH] EndermanEscapeEvent @@ -8,21 +8,18 @@ Fires an event anytime an enderman intends to teleport away from the player You may cancel this, enabling ranged attacks to damage the enderman for example. diff --git a/src/main/java/net/minecraft/server/EntityEnderman.java b/src/main/java/net/minecraft/server/EntityEnderman.java -index 96e29539b..a9020083d 100644 +index 96e29539b..e5eb0189d 100644 --- a/src/main/java/net/minecraft/server/EntityEnderman.java +++ b/src/main/java/net/minecraft/server/EntityEnderman.java -@@ -1,6 +1,10 @@ +@@ -1,6 +1,7 @@ package net.minecraft.server; import java.util.Optional; -+import com.destroystokyo.paper.event.entity.EndermanEscapeEvent; -+import com.google.common.base.Function; -+import com.google.common.base.Predicate; -+ ++import com.destroystokyo.paper.event.entity.EndermanEscapeEvent; // Paper import java.util.Random; import java.util.UUID; import java.util.function.Function; -@@ -56,6 +60,12 @@ public class EntityEnderman extends EntityMonster { +@@ -56,6 +57,12 @@ public class EntityEnderman extends EntityMonster { setGoalTarget(entityliving, org.bukkit.event.entity.EntityTargetEvent.TargetReason.UNKNOWN, true); } @@ -35,7 +32,7 @@ index 96e29539b..a9020083d 100644 @Override public boolean setGoalTarget(EntityLiving entityliving, org.bukkit.event.entity.EntityTargetEvent.TargetReason reason, boolean fireEvent) { if (!super.setGoalTarget(entityliving, reason, fireEvent)) { -@@ -168,7 +178,7 @@ public class EntityEnderman extends EntityMonster { +@@ -168,7 +175,7 @@ public class EntityEnderman extends EntityMonster { if (this.world.K() && this.ticksLived >= this.bE + 600) { float f = this.az(); @@ -44,7 +41,7 @@ index 96e29539b..a9020083d 100644 this.setGoalTarget((EntityLiving) null); this.dz(); } -@@ -247,7 +257,7 @@ public class EntityEnderman extends EntityMonster { +@@ -247,7 +254,7 @@ public class EntityEnderman extends EntityMonster { public boolean damageEntity(DamageSource damagesource, float f) { if (this.isInvulnerable(damagesource)) { return false; @@ -53,7 +50,7 @@ index 96e29539b..a9020083d 100644 for (int i = 0; i < 64; ++i) { if (this.dz()) { return true; -@@ -258,7 +268,7 @@ public class EntityEnderman extends EntityMonster { +@@ -258,7 +265,7 @@ public class EntityEnderman extends EntityMonster { } else { boolean flag = super.damageEntity(damagesource, f); @@ -62,7 +59,7 @@ index 96e29539b..a9020083d 100644 this.dz(); } -@@ -347,7 +357,7 @@ public class EntityEnderman extends EntityMonster { +@@ -347,7 +354,7 @@ public class EntityEnderman extends EntityMonster { static class PathfinderGoalPlayerWhoLookedAtTarget extends PathfinderGoalNearestAttackableTarget { @@ -71,7 +68,7 @@ index 96e29539b..a9020083d 100644 private EntityHuman j; private int k; private int l; -@@ -399,7 +409,7 @@ public class EntityEnderman extends EntityMonster { +@@ -399,7 +406,7 @@ public class EntityEnderman extends EntityMonster { } else { if (this.d != null) { if (this.i.f((EntityHuman) this.d)) { diff --git a/Spigot-Server-Patches/0263-Enderman.teleportRandomly.patch b/Spigot-Server-Patches/0262-Enderman.teleportRandomly.patch similarity index 90% rename from Spigot-Server-Patches/0263-Enderman.teleportRandomly.patch rename to Spigot-Server-Patches/0262-Enderman.teleportRandomly.patch index 912760c376..f049c6c304 100644 --- a/Spigot-Server-Patches/0263-Enderman.teleportRandomly.patch +++ b/Spigot-Server-Patches/0262-Enderman.teleportRandomly.patch @@ -1,4 +1,4 @@ -From f097db6d202bd03f02c915f70be4b4fc49923676 Mon Sep 17 00:00:00 2001 +From a458c0efb737ec62b90c43fa2c0b98d61a821a2c Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 30 Apr 2018 13:29:44 -0400 Subject: [PATCH] Enderman.teleportRandomly() @@ -6,10 +6,10 @@ Subject: [PATCH] Enderman.teleportRandomly() Ability to trigger the vanilla "teleport randomly" mechanic of an enderman. diff --git a/src/main/java/net/minecraft/server/EntityEnderman.java b/src/main/java/net/minecraft/server/EntityEnderman.java -index a9020083d..a5b517ba9 100644 +index e5eb0189d..df94b4ca9 100644 --- a/src/main/java/net/minecraft/server/EntityEnderman.java +++ b/src/main/java/net/minecraft/server/EntityEnderman.java -@@ -187,6 +187,7 @@ public class EntityEnderman extends EntityMonster { +@@ -184,6 +184,7 @@ public class EntityEnderman extends EntityMonster { super.mobTick(); } diff --git a/Spigot-Server-Patches/0264-Block-Enderpearl-Travel-Exploit.patch b/Spigot-Server-Patches/0263-Block-Enderpearl-Travel-Exploit.patch similarity index 97% rename from Spigot-Server-Patches/0264-Block-Enderpearl-Travel-Exploit.patch rename to Spigot-Server-Patches/0263-Block-Enderpearl-Travel-Exploit.patch index e6037b933a..36c3e48857 100644 --- a/Spigot-Server-Patches/0264-Block-Enderpearl-Travel-Exploit.patch +++ b/Spigot-Server-Patches/0263-Block-Enderpearl-Travel-Exploit.patch @@ -1,4 +1,4 @@ -From a14f188ea1d13b35c826a3639d2258ade1e36df7 Mon Sep 17 00:00:00 2001 +From ddfb42a51f7d673527b1b54e5ca22574f7cd417c Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 30 Apr 2018 17:15:26 -0400 Subject: [PATCH] Block Enderpearl Travel Exploit diff --git a/Spigot-Server-Patches/0297-Expand-World.spawnParticle-API-and-add-Builder.patch b/Spigot-Server-Patches/0264-Expand-World.spawnParticle-API-and-add-Builder.patch similarity index 66% rename from Spigot-Server-Patches/0297-Expand-World.spawnParticle-API-and-add-Builder.patch rename to Spigot-Server-Patches/0264-Expand-World.spawnParticle-API-and-add-Builder.patch index 1e7a082a20..ee2baf3fe0 100644 --- a/Spigot-Server-Patches/0297-Expand-World.spawnParticle-API-and-add-Builder.patch +++ b/Spigot-Server-Patches/0264-Expand-World.spawnParticle-API-and-add-Builder.patch @@ -1,4 +1,4 @@ -From d1902f093f9e9e05aa983daa6f46cf1c06269faa Mon Sep 17 00:00:00 2001 +From b994e6878b8b8ad432be2825adfbe0418b93321f Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 15 Aug 2017 22:29:12 -0400 Subject: [PATCH] Expand World.spawnParticle API and add Builder @@ -9,38 +9,43 @@ the standard API is to send the packet to everyone in the world, which is ineffe This adds a new Builder API which is much friendlier to use. diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index c06158e02..49019d54d 100644 +index c5da2cde3..4ac2d39c5 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -1399,12 +1399,17 @@ public class WorldServer extends World implements IAsyncTaskHandler { - sendParticles(null, enumparticle, flag, d0, d1, d2, i, d3, d4, d5, d6, aint); +@@ -1205,14 +1205,20 @@ public class WorldServer extends World implements IAsyncTaskHandler { + // CraftBukkit - visibility api support + return sendParticles(null, t0, d0, d1, d2, i, d3, d4, d5, d6); } - +- + // Paper start - Particle API Expansion - public void sendParticles(EntityPlayer sender, EnumParticle enumparticle, boolean flag, double d0, double d1, double d2, int i, double d3, double d4, double d5, double d6, int... aint) { -+ sendParticles(this.players, sender, enumparticle, flag, d0, d1, d2, i, d3, d4, d5, d6, aint); ++ // TODO: rework this, "flag" should probably be exposed as it was before + public int sendParticles(EntityPlayer sender, T t0, double d0, double d1, double d2, int i, double d3, double d4, double d5, double d6) { ++ return sendParticles(this.players, sender, t0, d0, d1, d2, i, d3, d5, d5, d6); + } -+ public void sendParticles(List receivers, EntityPlayer sender, EnumParticle enumparticle, boolean flag, double d0, double d1, double d2, int i, double d3, double d4, double d5, double d6, int... aint) { ++ ++ public int sendParticles(List receivers, EntityPlayer sender, T t0, double d0, double d1, double d2, int i, double d3, double d4, double d5, double d6) { + // Paper end // CraftBukkit end - PacketPlayOutWorldParticles packetplayoutworldparticles = new PacketPlayOutWorldParticles(enumparticle, flag, (float) d0, (float) d1, (float) d2, (float) d3, (float) d4, (float) d5, (float) d6, i, aint); + PacketPlayOutWorldParticles packetplayoutworldparticles = new PacketPlayOutWorldParticles(t0, false, (float) d0, (float) d1, (float) d2, (float) d3, (float) d4, (float) d5, (float) d6, i); + int j = 0; -- for (int j = 0; j < this.players.size(); ++j) { -- EntityPlayer entityplayer = (EntityPlayer) this.players.get(j); +- for (int k = 0; k < this.players.size(); ++k) { +- EntityPlayer entityplayer = (EntityPlayer) this.players.get(k); + for (EntityHuman entityhuman : receivers) { // Paper - Particle API Expansion + EntityPlayer entityplayer = (EntityPlayer) entityhuman; // Paper - Particle API Expansion if (sender != null && !entityplayer.getBukkitEntity().canSee(sender.getBukkitEntity())) continue; // CraftBukkit - BlockPosition blockposition = entityplayer.getChunkCoordinates(); - double d7 = blockposition.distanceSquared(d0, d1, d2); + + if (this.a(entityplayer, false, d0, d1, d2, packetplayoutworldparticles)) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 568a50ec4..36dd8ad60 100644 +index 817e29474..3ee663293 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1568,13 +1568,16 @@ public class CraftWorld implements World { +@@ -1596,13 +1596,17 @@ public class CraftWorld implements World { spawnParticle(particle, location.getX(), location.getY(), location.getZ(), count, offsetX, offsetY, offsetZ, extra, data); } + // Paper start - Particle API Expansion ++ // TODO: Add back extended? @Override - public void spawnParticle(Particle particle, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ, double extra, T data) { + public void spawnParticle(Particle particle, List receivers, Player sender, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ, double extra, T data) { @@ -52,9 +57,9 @@ index 568a50ec4..36dd8ad60 100644 - null, // Sender + receivers == null ? getHandle().players : receivers.stream().map(player -> ((CraftPlayer) player).getHandle()).collect(java.util.stream.Collectors.toList()), // Paper - Particle API Expansion + sender != null ? ((CraftPlayer) sender).getHandle() : null, // Sender // Paper - Particle API Expansion - CraftParticle.toNMS(particle), // Particle - true, // Extended range + CraftParticle.toNMS(particle, data), // Particle x, y, z, // Position + count, // Count -- 2.18.0 diff --git a/Spigot-Server-Patches/0298-EndermanAttackPlayerEvent.patch b/Spigot-Server-Patches/0265-EndermanAttackPlayerEvent.patch similarity index 84% rename from Spigot-Server-Patches/0298-EndermanAttackPlayerEvent.patch rename to Spigot-Server-Patches/0265-EndermanAttackPlayerEvent.patch index 8816b5921a..1b486b2b5c 100644 --- a/Spigot-Server-Patches/0298-EndermanAttackPlayerEvent.patch +++ b/Spigot-Server-Patches/0265-EndermanAttackPlayerEvent.patch @@ -1,4 +1,4 @@ -From c21ae9b442a22278ea808e3aca2ce55db5e3b4e2 Mon Sep 17 00:00:00 2001 +From bd1fc6d404b1757f48cf368e015fa2cd926ddc41 Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 1 May 2018 20:18:54 -0400 Subject: [PATCH] EndermanAttackPlayerEvent @@ -8,10 +8,10 @@ Allow control over whether or not an enderman aggros a player. This allows you to override/extend the pumpkin/stare logic. diff --git a/src/main/java/net/minecraft/server/EntityEnderman.java b/src/main/java/net/minecraft/server/EntityEnderman.java -index 4f8dd320f..2472edfc9 100644 +index df94b4ca9..f2fcba3d9 100644 --- a/src/main/java/net/minecraft/server/EntityEnderman.java +++ b/src/main/java/net/minecraft/server/EntityEnderman.java -@@ -149,7 +149,15 @@ public class EntityEnderman extends EntityMonster { +@@ -135,7 +135,15 @@ public class EntityEnderman extends EntityMonster { this.setCarried(iblockdata); } @@ -26,7 +26,7 @@ index 4f8dd320f..2472edfc9 100644 + // Paper end ItemStack itemstack = (ItemStack) entityhuman.inventory.armor.get(3); - if (itemstack.getItem() == Item.getItemOf(Blocks.PUMPKIN)) { + if (itemstack.getItem() == Blocks.CARVED_PUMPKIN.getItem()) { -- 2.18.0 diff --git a/Spigot-Server-Patches/0299-WitchConsumePotionEvent.patch b/Spigot-Server-Patches/0266-WitchConsumePotionEvent.patch similarity index 88% rename from Spigot-Server-Patches/0299-WitchConsumePotionEvent.patch rename to Spigot-Server-Patches/0266-WitchConsumePotionEvent.patch index 4960cbbd93..5fbd70298b 100644 --- a/Spigot-Server-Patches/0299-WitchConsumePotionEvent.patch +++ b/Spigot-Server-Patches/0266-WitchConsumePotionEvent.patch @@ -1,4 +1,4 @@ -From fecfe061f41f0aaced5637ec3813aac206c4bbfc Mon Sep 17 00:00:00 2001 +From 78e4b1a11e9bbbff769024b2c6b03f53703c4c96 Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 16 May 2018 20:35:16 -0400 Subject: [PATCH] WitchConsumePotionEvent @@ -6,10 +6,10 @@ Subject: [PATCH] WitchConsumePotionEvent Fires when a witch consumes the potion in their hand diff --git a/src/main/java/net/minecraft/server/EntityWitch.java b/src/main/java/net/minecraft/server/EntityWitch.java -index ffe72e037..3a00a37eb 100644 +index 71d8b6f8f..cf0669589 100644 --- a/src/main/java/net/minecraft/server/EntityWitch.java +++ b/src/main/java/net/minecraft/server/EntityWitch.java -@@ -71,7 +71,11 @@ public class EntityWitch extends EntityMonster implements IRangedEntity { +@@ -67,7 +67,11 @@ public class EntityWitch extends EntityMonster implements IRangedEntity { this.setSlot(EnumItemSlot.MAINHAND, ItemStack.a); if (itemstack.getItem() == Items.POTION) { diff --git a/Spigot-Server-Patches/0300-WitchThrowPotionEvent.patch b/Spigot-Server-Patches/0267-WitchThrowPotionEvent.patch similarity index 87% rename from Spigot-Server-Patches/0300-WitchThrowPotionEvent.patch rename to Spigot-Server-Patches/0267-WitchThrowPotionEvent.patch index c2d9f3ae9a..58edc2c8f7 100644 --- a/Spigot-Server-Patches/0300-WitchThrowPotionEvent.patch +++ b/Spigot-Server-Patches/0267-WitchThrowPotionEvent.patch @@ -1,4 +1,4 @@ -From f74306caa08b873b6451ea83f6266b636f92a846 Mon Sep 17 00:00:00 2001 +From 65cfb1a62b8a056b7df0cf88f36c9d1f91e794d7 Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 16 May 2018 20:44:58 -0400 Subject: [PATCH] WitchThrowPotionEvent @@ -6,11 +6,11 @@ Subject: [PATCH] WitchThrowPotionEvent Fired when a witch throws a potion at a player diff --git a/src/main/java/net/minecraft/server/EntityWitch.java b/src/main/java/net/minecraft/server/EntityWitch.java -index 3a00a37eb..bf029ad1c 100644 +index cf0669589..59f3f4404 100644 --- a/src/main/java/net/minecraft/server/EntityWitch.java +++ b/src/main/java/net/minecraft/server/EntityWitch.java -@@ -158,7 +158,15 @@ public class EntityWitch extends EntityMonster implements IRangedEntity { - potionregistry = Potions.I; +@@ -154,7 +154,15 @@ public class EntityWitch extends EntityMonster implements IRangedEntity { + potionregistry = Potions.M; } - EntityPotion entitypotion = new EntityPotion(this.world, this, PotionUtil.a(new ItemStack(Items.SPLASH_POTION), potionregistry)); diff --git a/Spigot-Server-Patches/0301-Allow-spawning-Item-entities-with-World.spawnEntity.patch b/Spigot-Server-Patches/0268-Allow-spawning-Item-entities-with-World.spawnEntity.patch similarity index 88% rename from Spigot-Server-Patches/0301-Allow-spawning-Item-entities-with-World.spawnEntity.patch rename to Spigot-Server-Patches/0268-Allow-spawning-Item-entities-with-World.spawnEntity.patch index 468ab50d67..00a3b48ed7 100644 --- a/Spigot-Server-Patches/0301-Allow-spawning-Item-entities-with-World.spawnEntity.patch +++ b/Spigot-Server-Patches/0268-Allow-spawning-Item-entities-with-World.spawnEntity.patch @@ -1,4 +1,4 @@ -From 4bc77441489cc2558b2ce88fa55a8ba6f424f4c5 Mon Sep 17 00:00:00 2001 +From be82462fb805084618fd8d81ff669d755683b5f8 Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 4 Jun 2018 20:39:20 -0400 Subject: [PATCH] Allow spawning Item entities with World.spawnEntity @@ -8,10 +8,10 @@ This API has more capabilities than .dropItem with the Consumer function Item can be set inside of the Consumer pre spawn function. diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 36dd8ad60..e88846bb5 100644 +index 3ee663293..65ad8e588 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -953,6 +953,10 @@ public class CraftWorld implements World { +@@ -956,6 +956,10 @@ public class CraftWorld implements World { if (Boat.class.isAssignableFrom(clazz)) { entity = new EntityBoat(world, x, y, z); entity.setPositionRotation(x, y, z, yaw, pitch); diff --git a/Spigot-Server-Patches/0269-Don-t-load-chunks-for-villager-door-checks.patch b/Spigot-Server-Patches/0269-Don-t-load-chunks-for-villager-door-checks.patch new file mode 100644 index 0000000000..1475ebc87b --- /dev/null +++ b/Spigot-Server-Patches/0269-Don-t-load-chunks-for-villager-door-checks.patch @@ -0,0 +1,27 @@ +From 167ec27d5b5c5e20f65383f55148e8594a74e71c Mon Sep 17 00:00:00 2001 +From: Aikar +Date: Tue, 5 Jun 2018 00:32:22 -0400 +Subject: [PATCH] Don't load chunks for villager door checks + +This avoids villages spam loading chunks sync + +diff --git a/src/main/java/net/minecraft/server/Village.java b/src/main/java/net/minecraft/server/Village.java +index dfcabb83a..22fe23e8e 100644 +--- a/src/main/java/net/minecraft/server/Village.java ++++ b/src/main/java/net/minecraft/server/Village.java +@@ -313,6 +313,12 @@ public class Village { + + private boolean g(BlockPosition blockposition) { + IBlockData iblockdata = this.a.getType(blockposition); ++ // Paper start ++ if (!this.a.isChunkLoaded(blockposition.getX() >> 4, blockposition.getZ() >> 4, true )) { ++ return false; ++ } ++ // Paper end ++ + Block block = iblockdata.getBlock(); + + return block instanceof BlockDoor ? iblockdata.getMaterial() == Material.WOOD : false; +-- +2.18.0 + diff --git a/Spigot-Server-Patches/0303-WitchReadyPotionEvent.patch b/Spigot-Server-Patches/0270-WitchReadyPotionEvent.patch similarity index 78% rename from Spigot-Server-Patches/0303-WitchReadyPotionEvent.patch rename to Spigot-Server-Patches/0270-WitchReadyPotionEvent.patch index c9295402c2..dfef5d1f42 100644 --- a/Spigot-Server-Patches/0303-WitchReadyPotionEvent.patch +++ b/Spigot-Server-Patches/0270-WitchReadyPotionEvent.patch @@ -1,14 +1,14 @@ -From 9b2c59ff0e6e55277a90fb849e165628e655b557 Mon Sep 17 00:00:00 2001 +From c595540dc8bbe9c2513d490d4f24da14ac678e90 Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 5 Jun 2018 22:47:26 -0400 Subject: [PATCH] WitchReadyPotionEvent diff --git a/src/main/java/net/minecraft/server/EntityWitch.java b/src/main/java/net/minecraft/server/EntityWitch.java -index bf029ad1c..035aa4a90 100644 +index 59f3f4404..45b6e2b7b 100644 --- a/src/main/java/net/minecraft/server/EntityWitch.java +++ b/src/main/java/net/minecraft/server/EntityWitch.java -@@ -104,7 +104,11 @@ public class EntityWitch extends EntityMonster implements IRangedEntity { +@@ -100,7 +100,11 @@ public class EntityWitch extends EntityMonster implements IRangedEntity { } if (potionregistry != null) { @@ -18,9 +18,9 @@ index bf029ad1c..035aa4a90 100644 + org.bukkit.inventory.ItemStack bukkitStack = com.destroystokyo.paper.event.entity.WitchReadyPotionEvent.process((org.bukkit.entity.Witch) this.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(potion)); + this.setSlot(EnumItemSlot.MAINHAND, org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(bukkitStack)); + // Paper end - this.bx = this.getItemInMainHand().m(); + this.bC = this.getItemInMainHand().k(); this.a(true); - this.world.a((EntityHuman) null, this.locX, this.locY, this.locZ, SoundEffects.iz, this.bK(), 1.0F, 0.8F + this.random.nextFloat() * 0.4F); + this.world.a((EntityHuman) null, this.locX, this.locY, this.locZ, SoundEffects.ENTITY_WITCH_DRINK, this.bV(), 1.0F, 0.8F + this.random.nextFloat() * 0.4F); -- 2.18.0 diff --git a/Spigot-Server-Patches/0304-ItemStack-getMaxItemUseDuration.patch b/Spigot-Server-Patches/0271-ItemStack-getMaxItemUseDuration.patch similarity index 77% rename from Spigot-Server-Patches/0304-ItemStack-getMaxItemUseDuration.patch rename to Spigot-Server-Patches/0271-ItemStack-getMaxItemUseDuration.patch index 9a070ba57e..491c6ffcec 100644 --- a/Spigot-Server-Patches/0304-ItemStack-getMaxItemUseDuration.patch +++ b/Spigot-Server-Patches/0271-ItemStack-getMaxItemUseDuration.patch @@ -1,4 +1,4 @@ -From addea0ca53003e381887f658b0a8bbd823c8c921 Mon Sep 17 00:00:00 2001 +From 742b78090e01bf2da099c7aa1cfb579b55a22404 Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 5 Jun 2018 23:00:29 -0400 Subject: [PATCH] ItemStack#getMaxItemUseDuration @@ -6,22 +6,22 @@ Subject: [PATCH] ItemStack#getMaxItemUseDuration Allows you to determine how long it takes to use a usable/consumable item diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java -index f6b802dc8..6521bb508 100644 +index be6205275..a4a5058da 100644 --- a/src/main/java/net/minecraft/server/ItemStack.java +++ b/src/main/java/net/minecraft/server/ItemStack.java -@@ -561,6 +561,7 @@ public final class ItemStack { +@@ -508,6 +508,7 @@ public final class ItemStack { this.getItem().b(this, world, entityhuman); } -+ public int getItemUseMaxDuration() { return m(); } // Paper - OBFHELPER - public int m() { - return this.getItem().e(this); ++ public int getItemUseMaxDuration() { return k(); } // Paper - OBFHELPER + public int k() { + return this.getItem().c(this); } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -index aa99254ff..be6589dbf 100644 +index b1e0d6185..03f611518 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -@@ -180,6 +180,13 @@ public final class CraftItemStack extends ItemStack { +@@ -182,6 +182,13 @@ public final class CraftItemStack extends ItemStack { return (handle == null) ? Material.AIR.getMaxStackSize() : handle.getItem().getMaxStackSize(); } diff --git a/Spigot-Server-Patches/0305-Implement-EntityTeleportEndGatewayEvent.patch b/Spigot-Server-Patches/0272-Implement-EntityTeleportEndGatewayEvent.patch similarity index 90% rename from Spigot-Server-Patches/0305-Implement-EntityTeleportEndGatewayEvent.patch rename to Spigot-Server-Patches/0272-Implement-EntityTeleportEndGatewayEvent.patch index 843effba6a..ac92743375 100644 --- a/Spigot-Server-Patches/0305-Implement-EntityTeleportEndGatewayEvent.patch +++ b/Spigot-Server-Patches/0272-Implement-EntityTeleportEndGatewayEvent.patch @@ -1,14 +1,14 @@ -From 9c9d717e44fe7c7f4eb708505ce8efde66b5902c Mon Sep 17 00:00:00 2001 +From b62ffab61e8f8a6ca78f1acb1da95db871cf408d Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Sat, 9 Jun 2018 14:08:39 +0200 Subject: [PATCH] Implement EntityTeleportEndGatewayEvent diff --git a/src/main/java/net/minecraft/server/TileEntityEndGateway.java b/src/main/java/net/minecraft/server/TileEntityEndGateway.java -index ecbc48b0c..557f06017 100644 +index c3d30dc94..fd9be7574 100644 --- a/src/main/java/net/minecraft/server/TileEntityEndGateway.java +++ b/src/main/java/net/minecraft/server/TileEntityEndGateway.java -@@ -136,8 +136,19 @@ public class TileEntityEndGateway extends TileEntityEnderPortal implements ITick +@@ -138,8 +138,19 @@ public class TileEntityEndGateway extends TileEntityEnderPortal implements ITick } // CraftBukkit end @@ -28,7 +28,7 @@ index ecbc48b0c..557f06017 100644 + // Paper end - EntityTeleportEndGatewayEvent } - this.h(); + this.f(); -- 2.18.0 diff --git a/Spigot-Server-Patches/0306-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch b/Spigot-Server-Patches/0273-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch similarity index 67% rename from Spigot-Server-Patches/0306-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch rename to Spigot-Server-Patches/0273-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch index 406f12a7ba..0dd3f46c22 100644 --- a/Spigot-Server-Patches/0306-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch +++ b/Spigot-Server-Patches/0273-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch @@ -1,4 +1,4 @@ -From 1509b59adc8a4d13fa996e12d2cd82db842edaa5 Mon Sep 17 00:00:00 2001 +From bb4b850e8fbe86ec7922235c37213b0fef34992c Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 10 Jun 2018 01:18:49 -0400 Subject: [PATCH] Unset Ignited flag on cancel of Explosion Event @@ -6,20 +6,20 @@ Subject: [PATCH] Unset Ignited flag on cancel of Explosion Event Otherwise the creeper infinite explodes diff --git a/src/main/java/net/minecraft/server/EntityCreeper.java b/src/main/java/net/minecraft/server/EntityCreeper.java -index 8098d4d9f..67ba72fc1 100644 +index f37169d73..86935f70a 100644 --- a/src/main/java/net/minecraft/server/EntityCreeper.java +++ b/src/main/java/net/minecraft/server/EntityCreeper.java @@ -12,7 +12,7 @@ public class EntityCreeper extends EntityMonster { private static final DataWatcherObject a = DataWatcher.a(EntityCreeper.class, DataWatcherRegistry.b); - private static final DataWatcherObject b = DataWatcher.a(EntityCreeper.class, DataWatcherRegistry.h); -- private static final DataWatcherObject c = DataWatcher.a(EntityCreeper.class, DataWatcherRegistry.h); -+ private static final DataWatcherObject c = DataWatcher.a(EntityCreeper.class, DataWatcherRegistry.h); private static final DataWatcherObject isIgnitedDW = c; // Paper OBFHELPER - private int bx; + private static final DataWatcherObject b = DataWatcher.a(EntityCreeper.class, DataWatcherRegistry.i); +- private static final DataWatcherObject c = DataWatcher.a(EntityCreeper.class, DataWatcherRegistry.i); ++ private static final DataWatcherObject c = DataWatcher.a(EntityCreeper.class, DataWatcherRegistry.i);private static final DataWatcherObject isIgnitedDW = c; // Paper OBFHELPER + private int bC; private int fuseTicks; - public int maxFuseTicks = 30; // PAIL private -> public -@@ -213,6 +213,7 @@ public class EntityCreeper extends EntityMonster { - this.ds(); + public int maxFuseTicks = 30; +@@ -205,6 +205,7 @@ public class EntityCreeper extends EntityMonster { + this.dF(); } else { fuseTicks = 0; + this.datawatcher.set(isIgnitedDW, Boolean.valueOf(false)); // Paper diff --git a/Spigot-Server-Patches/0307-Properly-remove-entities-on-dimension-teleport.patch b/Spigot-Server-Patches/0274-Properly-remove-entities-on-dimension-teleport.patch similarity index 87% rename from Spigot-Server-Patches/0307-Properly-remove-entities-on-dimension-teleport.patch rename to Spigot-Server-Patches/0274-Properly-remove-entities-on-dimension-teleport.patch index 30f2a43a6f..f5290c1c23 100644 --- a/Spigot-Server-Patches/0307-Properly-remove-entities-on-dimension-teleport.patch +++ b/Spigot-Server-Patches/0274-Properly-remove-entities-on-dimension-teleport.patch @@ -1,4 +1,4 @@ -From b770be1d1eb24d049cd7ca1af1a96bb87aed62e3 Mon Sep 17 00:00:00 2001 +From 0eda9304279c487452a245265cbe6424c3ffe621 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 10 Jun 2018 20:04:42 -0400 Subject: [PATCH] Properly remove entities on dimension teleport @@ -22,10 +22,10 @@ requirement, but plugins (such as my own) use this method to trigger a "reload" of the entity on the client. diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 7b17c32bb..d03e7c24f 100644 +index cd1639e26..ea42800ae 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -2449,7 +2449,7 @@ public abstract class Entity implements ICommandListener, KeyedObject { // Paper +@@ -2594,7 +2594,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } // CraftBukkit end */ @@ -35,10 +35,10 @@ index 7b17c32bb..d03e7c24f 100644 this.world.methodProfiler.a("reposition"); /* CraftBukkit start - Handled in calculateTarget diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 49019d54d..9fe5c4406 100644 +index 4ac2d39c5..d6d3ffa6f 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -1205,6 +1205,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { +@@ -1025,6 +1025,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { } protected void c(Entity entity) { diff --git a/Spigot-Server-Patches/0308-Fix-CraftEntity-hashCode.patch b/Spigot-Server-Patches/0275-Fix-CraftEntity-hashCode.patch similarity index 91% rename from Spigot-Server-Patches/0308-Fix-CraftEntity-hashCode.patch rename to Spigot-Server-Patches/0275-Fix-CraftEntity-hashCode.patch index efdbe82a13..7d76d726e6 100644 --- a/Spigot-Server-Patches/0308-Fix-CraftEntity-hashCode.patch +++ b/Spigot-Server-Patches/0275-Fix-CraftEntity-hashCode.patch @@ -1,4 +1,4 @@ -From 1918db5df9aff0309e3d25610f655a31c2cac838 Mon Sep 17 00:00:00 2001 +From 911bd570a1600cea8bd2063db8034d5f6ce2abf1 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 10 Jun 2018 20:20:15 -0400 Subject: [PATCH] Fix CraftEntity hashCode @@ -21,10 +21,10 @@ check is essentially the same as this.getHandle() == other.getHandle() However, replaced it too to make it clearer of intent. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index bf7e6ed3f..47edc0494 100644 +index 6d4dc539c..7da6a25f1 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -510,14 +510,15 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -525,14 +525,15 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { return false; } final CraftEntity other = (CraftEntity) obj; diff --git a/Spigot-Server-Patches/0309-Configurable-Alternative-LootPool-Luck-Formula.patch b/Spigot-Server-Patches/0276-Configurable-Alternative-LootPool-Luck-Formula.patch similarity index 97% rename from Spigot-Server-Patches/0309-Configurable-Alternative-LootPool-Luck-Formula.patch rename to Spigot-Server-Patches/0276-Configurable-Alternative-LootPool-Luck-Formula.patch index d69a4297e2..bf31b38ed9 100644 --- a/Spigot-Server-Patches/0309-Configurable-Alternative-LootPool-Luck-Formula.patch +++ b/Spigot-Server-Patches/0276-Configurable-Alternative-LootPool-Luck-Formula.patch @@ -1,4 +1,4 @@ -From 344d6a6d7a9064a574630afb79761a5f9fe55811 Mon Sep 17 00:00:00 2001 +From 54edbfe52febfcb3b7c58362af32cfcab27a5121 Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 15 Jun 2018 00:30:32 -0400 Subject: [PATCH] Configurable Alternative LootPool Luck Formula @@ -53,7 +53,7 @@ index b602bbf12..62bce1806 100644 + } } diff --git a/src/main/java/net/minecraft/server/LotoSelectorEntry.java b/src/main/java/net/minecraft/server/LotoSelectorEntry.java -index b2860555d..b5544bcf3 100644 +index a540167d6..d8a882191 100644 --- a/src/main/java/net/minecraft/server/LotoSelectorEntry.java +++ b/src/main/java/net/minecraft/server/LotoSelectorEntry.java @@ -14,8 +14,8 @@ import java.util.Random; diff --git a/Spigot-Server-Patches/0310-Print-Error-details-when-failing-to-save-player-data.patch b/Spigot-Server-Patches/0277-Print-Error-details-when-failing-to-save-player-data.patch similarity index 77% rename from Spigot-Server-Patches/0310-Print-Error-details-when-failing-to-save-player-data.patch rename to Spigot-Server-Patches/0277-Print-Error-details-when-failing-to-save-player-data.patch index 8413f33bdc..eec1084830 100644 --- a/Spigot-Server-Patches/0310-Print-Error-details-when-failing-to-save-player-data.patch +++ b/Spigot-Server-Patches/0277-Print-Error-details-when-failing-to-save-player-data.patch @@ -1,18 +1,18 @@ -From 2948ef6de198c4a1fb763df1d5590c77a3dc0128 Mon Sep 17 00:00:00 2001 +From 1264d06b00fbafc737c7ca4f6baf8b2276352e9a Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 15 Jun 2018 20:37:03 -0400 Subject: [PATCH] Print Error details when failing to save player data diff --git a/src/main/java/net/minecraft/server/WorldNBTStorage.java b/src/main/java/net/minecraft/server/WorldNBTStorage.java -index 4e33cc2f2..4bb6f600d 100644 +index cbfdb3cf7..9a243010d 100644 --- a/src/main/java/net/minecraft/server/WorldNBTStorage.java +++ b/src/main/java/net/minecraft/server/WorldNBTStorage.java -@@ -155,7 +155,7 @@ public class WorldNBTStorage implements IDataManager, IPlayerFileData { +@@ -157,7 +157,7 @@ public class WorldNBTStorage implements IDataManager, IPlayerFileData { file.renameTo(file1); } catch (Exception exception) { -- WorldNBTStorage.b.warn("Failed to save player data for {}", entityhuman.getName()); +- WorldNBTStorage.b.warn("Failed to save player data for {}", entityhuman.getDisplayName().getString()); + WorldNBTStorage.b.error("Failed to save player data for {}", entityhuman.getName(), exception); // Paper } diff --git a/Spigot-Server-Patches/0311-Make-shield-blocking-delay-configurable.patch b/Spigot-Server-Patches/0278-Make-shield-blocking-delay-configurable.patch similarity index 77% rename from Spigot-Server-Patches/0311-Make-shield-blocking-delay-configurable.patch rename to Spigot-Server-Patches/0278-Make-shield-blocking-delay-configurable.patch index 13087b6191..d031f39bee 100644 --- a/Spigot-Server-Patches/0311-Make-shield-blocking-delay-configurable.patch +++ b/Spigot-Server-Patches/0278-Make-shield-blocking-delay-configurable.patch @@ -1,14 +1,14 @@ -From 29599c88d5f36c9ade555f7a6d7890cc78c126f1 Mon Sep 17 00:00:00 2001 +From e3a3b4b4a047ad0c09193b186e6345da16427ef2 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Sat, 16 Jun 2018 01:18:16 -0500 Subject: [PATCH] Make shield blocking delay configurable diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 03a9a96fc..99ad40fa3 100644 +index 5a9c68e4f..650addb84 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -519,4 +519,9 @@ public class PaperWorldConfig { +@@ -434,4 +434,9 @@ public class PaperWorldConfig { disableEnderpearlExploit = getBoolean("game-mechanics.disable-unloaded-chunk-enderpearl-exploit", disableEnderpearlExploit); log("Disable Unloaded Chunk Enderpearl Exploit: " + (disableEnderpearlExploit ? "enabled" : "disabled")); } @@ -19,20 +19,20 @@ index 03a9a96fc..99ad40fa3 100644 + } } diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 9adcabd4f..65bc19b17 100644 +index 401410b87..1932d38a8 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -2481,7 +2481,7 @@ public abstract class EntityLiving extends Entity { +@@ -2584,7 +2584,7 @@ public abstract class EntityLiving extends Entity { if (this.isHandRaised() && !this.activeItem.isEmpty()) { Item item = this.activeItem.getItem(); -- return item.f(this.activeItem) != EnumAnimation.BLOCK ? false : item.e(this.activeItem) - this.bp >= 5; -+ return item.f(this.activeItem) != EnumAnimation.BLOCK ? false : item.e(this.activeItem) - this.bp >= getShieldBlockingDelay(); // Paper - shieldBlockingDelay +- return item.d(this.activeItem) != EnumAnimation.BLOCK ? false : item.c(this.activeItem) - this.bu >= 5; ++ return item.d(this.activeItem) != EnumAnimation.BLOCK ? false : item.c(this.activeItem) - this.bu >= getShieldBlockingDelay(); // Paper - shieldBlockingDelay } else { return false; } -@@ -2569,4 +2569,16 @@ public abstract class EntityLiving extends Entity { - public boolean cS() { +@@ -2672,4 +2672,16 @@ public abstract class EntityLiving extends Entity { + public boolean de() { return true; } + @@ -49,10 +49,10 @@ index 9adcabd4f..65bc19b17 100644 + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index a7b076377..14fb474f7 100644 +index 487bb9ece..0237ac769 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -515,5 +515,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -529,5 +529,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { public void setArrowsStuck(int arrows) { getHandle().setArrowCount(arrows); } diff --git a/Spigot-Server-Patches/0279-Ignore-Missing-Recipes-in-RecipeBook-to-avoid-data-e.patch b/Spigot-Server-Patches/0279-Ignore-Missing-Recipes-in-RecipeBook-to-avoid-data-e.patch new file mode 100644 index 0000000000..6aa62c522f --- /dev/null +++ b/Spigot-Server-Patches/0279-Ignore-Missing-Recipes-in-RecipeBook-to-avoid-data-e.patch @@ -0,0 +1,39 @@ +From 3699a4c4a5985731a052980b1daf296832225ba7 Mon Sep 17 00:00:00 2001 +From: Aikar +Date: Sat, 16 Jun 2018 16:23:38 -0400 +Subject: [PATCH] Ignore Missing Recipes in RecipeBook to avoid data errors + +This code was causing NPE's in saving player data, potentially related to reloads. + +diff --git a/src/main/java/net/minecraft/server/RecipeBookServer.java b/src/main/java/net/minecraft/server/RecipeBookServer.java +index 71d6c4552..893f67094 100644 +--- a/src/main/java/net/minecraft/server/RecipeBookServer.java ++++ b/src/main/java/net/minecraft/server/RecipeBookServer.java +@@ -77,7 +77,11 @@ public class RecipeBookServer extends RecipeBook { + while (iterator.hasNext()) { + MinecraftKey minecraftkey = (MinecraftKey) iterator.next(); + +- nbttaglist.add((NBTBase) (new NBTTagString(minecraftkey.toString()))); ++ // Paper start - ignore missing recipes ++ IRecipe recipe = this.h.a(minecraftkey); ++ if (recipe == null) continue; ++ nbttaglist.add(new NBTTagString(minecraftkey.toString())) ++ // Paper end + } + + nbttagcompound.set("recipes", nbttaglist); +@@ -87,6 +91,11 @@ public class RecipeBookServer extends RecipeBook { + while (iterator1.hasNext()) { + MinecraftKey minecraftkey1 = (MinecraftKey) iterator1.next(); + ++ // Paper start - ignore missing recipes ++ IRecipe recipe = this.h.a(minecraftkey1); ++ if (recipe == null) continue; ++ // Paper end ++ + nbttaglist1.add((NBTBase) (new NBTTagString(minecraftkey1.toString()))); + } + +-- +2.18.0 + diff --git a/Spigot-Server-Patches/0313-EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch b/Spigot-Server-Patches/0280-EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch similarity index 90% rename from Spigot-Server-Patches/0313-EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch rename to Spigot-Server-Patches/0280-EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch index 44f299efb7..8c815639e5 100644 --- a/Spigot-Server-Patches/0313-EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch +++ b/Spigot-Server-Patches/0280-EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch @@ -1,4 +1,4 @@ -From 1d8b96b5181f2c507c7022b773c8fcf384f065e4 Mon Sep 17 00:00:00 2001 +From 33ad36b25fb1f912a2f7c9af192694bcc0caf386 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 15 Jun 2013 19:51:17 -0400 Subject: [PATCH] EntityShootBowEvent consumeArrow and getArrowItem API @@ -6,10 +6,10 @@ Subject: [PATCH] EntityShootBowEvent consumeArrow and getArrowItem API Adds ability to get what arrow was shot, and control if it should be consumed. diff --git a/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java b/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java -index b92cf8e62..8f4b63c8d 100644 +index c2bc8060a..1ae967d1c 100644 --- a/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java +++ b/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java -@@ -161,7 +161,7 @@ public abstract class EntitySkeletonAbstract extends EntityMonster implements IR +@@ -160,7 +160,7 @@ public abstract class EntitySkeletonAbstract extends EntityMonster implements IR entityarrow.shoot(d0, d1 + d3 * 0.20000000298023224D, d2, 1.6F, (float) (14 - this.world.getDifficulty().a() * 4)); // CraftBukkit start @@ -19,10 +19,10 @@ index b92cf8e62..8f4b63c8d 100644 event.getProjectile().remove(); return; diff --git a/src/main/java/net/minecraft/server/ItemBow.java b/src/main/java/net/minecraft/server/ItemBow.java -index e943f8054..327d31e19 100644 +index 4aa3b6249..c8fc18045 100644 --- a/src/main/java/net/minecraft/server/ItemBow.java +++ b/src/main/java/net/minecraft/server/ItemBow.java -@@ -53,6 +53,7 @@ public class ItemBow extends Item { +@@ -57,6 +57,7 @@ public class ItemBow extends Item { if ((double) f >= 0.1D) { boolean flag1 = flag && itemstack1.getItem() == Items.ARROW; @@ -30,7 +30,7 @@ index e943f8054..327d31e19 100644 if (!world.isClientSide) { ItemArrow itemarrow = (ItemArrow) ((ItemArrow) (itemstack1.getItem() instanceof ItemArrow ? itemstack1.getItem() : Items.ARROW)); EntityArrow entityarrow = itemarrow.a(world, itemstack1, (EntityLiving) entityhuman); -@@ -85,14 +86,15 @@ public class ItemBow extends Item { +@@ -89,14 +90,15 @@ public class ItemBow extends Item { // CraftBukkit end } // CraftBukkit start @@ -48,17 +48,17 @@ index e943f8054..327d31e19 100644 entityarrow.fromPlayer = EntityArrow.PickupStatus.CREATIVE_ONLY; } -@@ -108,7 +110,7 @@ public class ItemBow extends Item { +@@ -112,7 +114,7 @@ public class ItemBow extends Item { } - world.a((EntityHuman) null, entityhuman.locX, entityhuman.locY, entityhuman.locZ, SoundEffects.w, SoundCategory.PLAYERS, 1.0F, 1.0F / (ItemBow.j.nextFloat() * 0.4F + 1.2F) + f * 0.5F); + world.a((EntityHuman) null, entityhuman.locX, entityhuman.locY, entityhuman.locZ, SoundEffects.ENTITY_ARROW_SHOOT, SoundCategory.PLAYERS, 1.0F, 1.0F / (ItemBow.k.nextFloat() * 0.4F + 1.2F) + f * 0.5F); - if (!flag1 && !entityhuman.abilities.canInstantlyBuild) { + if (!flag1 && !entityhuman.abilities.canInstantlyBuild && consumeArrow) { // Paper itemstack1.subtract(1); if (itemstack1.isEmpty()) { entityhuman.inventory.f(itemstack1); diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 5f816e44f..9b19c055d 100644 +index 3f9a66002..77973c1e8 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -241,7 +241,7 @@ public class CraftEventFactory { diff --git a/Spigot-Server-Patches/0314-PlayerReadyArrowEvent.patch b/Spigot-Server-Patches/0281-PlayerReadyArrowEvent.patch similarity index 77% rename from Spigot-Server-Patches/0314-PlayerReadyArrowEvent.patch rename to Spigot-Server-Patches/0281-PlayerReadyArrowEvent.patch index 83e1272956..267ac99bea 100644 --- a/Spigot-Server-Patches/0314-PlayerReadyArrowEvent.patch +++ b/Spigot-Server-Patches/0281-PlayerReadyArrowEvent.patch @@ -1,4 +1,4 @@ -From dd4eb3f1e29bd1c58e58a7cc75e02bd284c11938 Mon Sep 17 00:00:00 2001 +From cfa73fb04d7d4cdaba5282465c28d6abeed5f533 Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 18 Jun 2018 01:12:53 -0400 Subject: [PATCH] PlayerReadyArrowEvent @@ -7,7 +7,7 @@ Called when a player is firing a bow and the server is choosing an arrow to use. Plugins can skip selection of certain arrows and control which is used. diff --git a/src/main/java/net/minecraft/server/ItemBow.java b/src/main/java/net/minecraft/server/ItemBow.java -index 327d31e19..44e7be58e 100644 +index c8fc18045..de0d80361 100644 --- a/src/main/java/net/minecraft/server/ItemBow.java +++ b/src/main/java/net/minecraft/server/ItemBow.java @@ -1,5 +1,6 @@ @@ -17,35 +17,35 @@ index 327d31e19..44e7be58e 100644 import org.bukkit.event.entity.EntityCombustEvent; // CraftBukkit public class ItemBow extends Item { -@@ -14,16 +15,16 @@ public class ItemBow extends Item { - }); +@@ -18,16 +19,16 @@ public class ItemBow extends Item { + // CraftBukkit end } - private ItemStack a(EntityHuman entityhuman) { -- if (this.d(entityhuman.b(EnumHand.OFF_HAND))) { +- if (this.e_(entityhuman.b(EnumHand.OFF_HAND))) { + private ItemStack a(EntityHuman entityhuman, ItemStack bow) { // Paper -+ if (this.d(entityhuman, bow, entityhuman.b(EnumHand.OFF_HAND))) { // Paper ++ if (this.e_(entityhuman, bow, entityhuman.b(EnumHand.OFF_HAND))) { // Paper return entityhuman.b(EnumHand.OFF_HAND); -- } else if (this.d(entityhuman.b(EnumHand.MAIN_HAND))) { -+ } else if (this.d(entityhuman, bow, entityhuman.b(EnumHand.MAIN_HAND))) { // Paper +- } else if (this.e_(entityhuman.b(EnumHand.MAIN_HAND))) { ++ } else if (this.e_(entityhuman, bow, entityhuman.b(EnumHand.MAIN_HAND))) { return entityhuman.b(EnumHand.MAIN_HAND); } else { for (int i = 0; i < entityhuman.inventory.getSize(); ++i) { ItemStack itemstack = entityhuman.inventory.getItem(i); -- if (this.d(itemstack)) { -+ if (this.d(entityhuman, bow, itemstack)) { // Paper +- if (this.e_(itemstack)) { ++ if (this.e_(entityhuman, bow, itemstack)) { return itemstack; } } -@@ -32,15 +33,23 @@ public class ItemBow extends Item { +@@ -36,15 +37,23 @@ public class ItemBow extends Item { } } -- protected boolean d(ItemStack itemstack) { +- protected boolean e_(ItemStack itemstack) { - return itemstack.getItem() instanceof ItemArrow; + // Paper start -+ protected boolean d(EntityHuman player, ItemStack bow, ItemStack itemstack) { ++ protected boolean e_(EntityHuman player, ItemStack bow, ItemStack itemstack) { + return itemstack.getItem() instanceof ItemArrow && ( + !(player instanceof EntityPlayer) || + new com.destroystokyo.paper.event.player.PlayerReadyArrowEvent( @@ -65,7 +65,7 @@ index 327d31e19..44e7be58e 100644 if (!itemstack1.isEmpty() || flag) { if (itemstack1.isEmpty()) { -@@ -144,7 +153,7 @@ public class ItemBow extends Item { +@@ -148,7 +157,7 @@ public class ItemBow extends Item { public InteractionResultWrapper a(World world, EntityHuman entityhuman, EnumHand enumhand) { ItemStack itemstack = entityhuman.b(enumhand); diff --git a/Spigot-Server-Patches/0315-Fire-EntityShootBowEvent-for-Illusioner.patch b/Spigot-Server-Patches/0282-Fire-EntityShootBowEvent-for-Illusioner.patch similarity index 83% rename from Spigot-Server-Patches/0315-Fire-EntityShootBowEvent-for-Illusioner.patch rename to Spigot-Server-Patches/0282-Fire-EntityShootBowEvent-for-Illusioner.patch index 06c03bf07a..bf66a0bf58 100644 --- a/Spigot-Server-Patches/0315-Fire-EntityShootBowEvent-for-Illusioner.patch +++ b/Spigot-Server-Patches/0282-Fire-EntityShootBowEvent-for-Illusioner.patch @@ -1,11 +1,11 @@ -From 81e31ca23b57f80911c332ec7fe349b793807ff7 Mon Sep 17 00:00:00 2001 +From f1f4d49df927e056071d0adf4b9bfafdab70d248 Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 18 Jun 2018 22:19:36 -0400 Subject: [PATCH] Fire EntityShootBowEvent for Illusioner diff --git a/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java b/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java -index e03650448..ad81bd059 100644 +index d03fa6318..16c3be42e 100644 --- a/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java +++ b/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java @@ -123,8 +123,18 @@ public class EntityIllagerIllusioner extends EntityIllagerWizard implements IRan @@ -22,12 +22,12 @@ index e03650448..ad81bd059 100644 + if (event.getProjectile() == entityarrow.getBukkitEntity()) { + this.world.addEntity(entityarrow); + } - this.a(SoundEffects.gW, 1.0F, 1.0F / (this.getRandom().nextFloat() * 0.4F + 0.8F)); + this.a(SoundEffects.ENTITY_SKELETON_SHOOT, 1.0F, 1.0F / (this.getRandom().nextFloat() * 0.4F + 0.8F)); - this.world.addEntity(entityarrow); + // Paper end } - protected EntityArrow r(float f) { + protected EntityArrow v(float f) { -- 2.18.0 diff --git a/Spigot-Server-Patches/0316-Implement-EntityKnockbackByEntityEvent.patch b/Spigot-Server-Patches/0283-Implement-EntityKnockbackByEntityEvent.patch similarity index 88% rename from Spigot-Server-Patches/0316-Implement-EntityKnockbackByEntityEvent.patch rename to Spigot-Server-Patches/0283-Implement-EntityKnockbackByEntityEvent.patch index 48da86b61b..f6f733b898 100644 --- a/Spigot-Server-Patches/0316-Implement-EntityKnockbackByEntityEvent.patch +++ b/Spigot-Server-Patches/0283-Implement-EntityKnockbackByEntityEvent.patch @@ -1,4 +1,4 @@ -From ac9417f28697dc1441c73a1580541752f9dea2c3 Mon Sep 17 00:00:00 2001 +From 8388c79bcacf4deee2c48182f5e38a22cf27b937 Mon Sep 17 00:00:00 2001 From: Brokkonaut Date: Mon, 18 Jun 2018 15:46:23 +0200 Subject: [PATCH] Implement EntityKnockbackByEntityEvent @@ -6,10 +6,10 @@ Subject: [PATCH] Implement EntityKnockbackByEntityEvent This event is called when an entity receives knockback by another entity. diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 65bc19b17..156bf8ee0 100644 +index 1932d38a8..1d7b9c525 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -1160,6 +1160,12 @@ public abstract class EntityLiving extends Entity { +@@ -1168,6 +1168,12 @@ public abstract class EntityLiving extends Entity { this.impulse = true; float f1 = MathHelper.sqrt(d0 * d0 + d1 * d1); @@ -22,7 +22,7 @@ index 65bc19b17..156bf8ee0 100644 this.motX /= 2.0D; this.motZ /= 2.0D; this.motX -= d0 / (double) f1 * (double) f; -@@ -1172,6 +1178,18 @@ public abstract class EntityLiving extends Entity { +@@ -1180,6 +1186,18 @@ public abstract class EntityLiving extends Entity { } } diff --git a/Spigot-Server-Patches/0317-Expand-Explosions-API.patch b/Spigot-Server-Patches/0284-Expand-Explosions-API.patch similarity index 87% rename from Spigot-Server-Patches/0317-Expand-Explosions-API.patch rename to Spigot-Server-Patches/0284-Expand-Explosions-API.patch index 79a7f27ea9..de8ff2f469 100644 --- a/Spigot-Server-Patches/0317-Expand-Explosions-API.patch +++ b/Spigot-Server-Patches/0284-Expand-Explosions-API.patch @@ -1,4 +1,4 @@ -From 20e4111eafc2445a21fcfea8cee7670cf559ad23 Mon Sep 17 00:00:00 2001 +From 26362a9e57b185137802bd03984d13350fbb1c66 Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 20 Jun 2018 23:17:24 -0400 Subject: [PATCH] Expand Explosions API @@ -6,10 +6,10 @@ Subject: [PATCH] Expand Explosions API Add Entity as a Source capability, and add more API choices, and on Location. diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index e88846bb5..e2da30d88 100644 +index 65ad8e588..0640ca094 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -579,6 +579,11 @@ public class CraftWorld implements World { +@@ -568,6 +568,11 @@ public class CraftWorld implements World { public boolean createExplosion(double x, double y, double z, float power, boolean setFire, boolean breakBlocks) { return !world.createExplosion(null, x, y, z, power, setFire, breakBlocks).wasCanceled; } diff --git a/Spigot-Server-Patches/0318-LivingEntity-Hand-Raised-Item-Use-API.patch b/Spigot-Server-Patches/0285-LivingEntity-Hand-Raised-Item-Use-API.patch similarity index 70% rename from Spigot-Server-Patches/0318-LivingEntity-Hand-Raised-Item-Use-API.patch rename to Spigot-Server-Patches/0285-LivingEntity-Hand-Raised-Item-Use-API.patch index 0943993159..83b7e15f55 100644 --- a/Spigot-Server-Patches/0318-LivingEntity-Hand-Raised-Item-Use-API.patch +++ b/Spigot-Server-Patches/0285-LivingEntity-Hand-Raised-Item-Use-API.patch @@ -1,4 +1,4 @@ -From 14736699b8f04a3ba9fe7e1ded6ab047a0e9cb4d Mon Sep 17 00:00:00 2001 +From 35c788a70a57c803f5042576501d679b63acac95 Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 29 Jun 2018 00:21:28 -0400 Subject: [PATCH] LivingEntity Hand Raised/Item Use API @@ -6,32 +6,32 @@ Subject: [PATCH] LivingEntity Hand Raised/Item Use API How long an entity has raised hands to charge an attack or use an item diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 156bf8ee0..14637be49 100644 +index 1d7b9c525..6036915a8 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -2466,14 +2466,17 @@ public abstract class EntityLiving extends Entity { +@@ -2569,14 +2569,17 @@ public abstract class EntityLiving extends Entity { } -+ public ItemStack getActiveItem() { return cJ(); } // Paper - OBFHELPER - public ItemStack cJ() { ++ public ItemStack getActiveItem() { return cV(); } // Paper - OBFHELPER + public ItemStack cV() { return this.activeItem; } -+ public int getItemUseRemainingTime() { return cK(); } // Paper - OBFHELPER - public int cK() { - return this.bp; ++ public int getItemUseRemainingTime() { return cW(); } // Paper - OBFHELPER + public int cW() { + return this.bu; } -+ public int getHandRaisedTime() { return cL(); } // Paper - OBFHELPER - public int cL() { - return this.isHandRaised() ? this.activeItem.m() - this.cK() : 0; ++ public int getHandRaisedTime() { return cX(); } // Paper - OBFHELPER + public int cX() { + return this.isHandRaised() ? this.activeItem.k() - this.cW() : 0; } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 14fb474f7..9c750efc7 100644 +index 0237ac769..8b3659c82 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -525,5 +525,25 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -539,5 +539,25 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { public void setShieldBlockingDelay(int delay) { getHandle().setShieldBlockingDelay(delay); } diff --git a/Spigot-Server-Patches/0319-RangedEntity-API.patch b/Spigot-Server-Patches/0286-RangedEntity-API.patch similarity index 96% rename from Spigot-Server-Patches/0319-RangedEntity-API.patch rename to Spigot-Server-Patches/0286-RangedEntity-API.patch index ee741aea45..dd034abcd0 100644 --- a/Spigot-Server-Patches/0319-RangedEntity-API.patch +++ b/Spigot-Server-Patches/0286-RangedEntity-API.patch @@ -1,4 +1,4 @@ -From 52f2f41cf15f8c3bb9903e8e97692a3d903b6a1c Mon Sep 17 00:00:00 2001 +From c763b60d79c10df70c2010fd45cfc5c614ea4989 Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 26 Jun 2018 22:00:49 -0400 Subject: [PATCH] RangedEntity API @@ -32,19 +32,18 @@ index 000000000..696660b08 + } +} diff --git a/src/main/java/net/minecraft/server/IRangedEntity.java b/src/main/java/net/minecraft/server/IRangedEntity.java -index a8af5917c..ba8b47c02 100644 +index 4fd69850f..7fe65b7c2 100644 --- a/src/main/java/net/minecraft/server/IRangedEntity.java +++ b/src/main/java/net/minecraft/server/IRangedEntity.java -@@ -2,7 +2,8 @@ package net.minecraft.server; +@@ -2,7 +2,7 @@ package net.minecraft.server; public interface IRangedEntity { - void a(EntityLiving entityliving, float f); + void a(EntityLiving entityliving, float f); default void rangedAttack(EntityLiving entityliving, float f) { a(entityliving, f); } // Paper OBF HELPER -- void p(boolean flag); -+ -+ void p(boolean flag); default void setChargingAttack(boolean flag) { p(flag); } // Paper OBF HELPER +- void s(boolean flag); ++ void s(boolean flag); default void setChargingAttack(boolean flag) { s(flag); } // Paper OBF HELPER } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftIllusioner.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftIllusioner.java index 2ec1af8be..f31d3eed3 100644 diff --git a/Spigot-Server-Patches/0320-Add-SentientNPC-Interface-to-Entities.patch b/Spigot-Server-Patches/0287-Add-SentientNPC-Interface-to-Entities.patch similarity index 88% rename from Spigot-Server-Patches/0320-Add-SentientNPC-Interface-to-Entities.patch rename to Spigot-Server-Patches/0287-Add-SentientNPC-Interface-to-Entities.patch index 570f05bf04..ffb7b18cae 100644 --- a/Spigot-Server-Patches/0320-Add-SentientNPC-Interface-to-Entities.patch +++ b/Spigot-Server-Patches/0287-Add-SentientNPC-Interface-to-Entities.patch @@ -1,4 +1,4 @@ -From 5c342142d7b1abdbce2e22f61a6bcf1cdda3e2e4 Mon Sep 17 00:00:00 2001 +From 923fa0b5285af72441ed22be05ac210c2a88ea2d Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 1 Jul 2018 22:06:29 -0400 Subject: [PATCH] Add SentientNPC Interface to Entities @@ -160,25 +160,6 @@ index 6bf30c834..3768b9573 100644 public CraftSlime(CraftServer server, EntitySlime entity) { super(server, entity); -diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftWaterMob.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftWaterMob.java -index ee21d7b6e..f67dff38f 100644 ---- a/src/main/java/org/bukkit/craftbukkit/entity/CraftWaterMob.java -+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftWaterMob.java -@@ -1,12 +1,13 @@ - package org.bukkit.craftbukkit.entity; - -+import com.destroystokyo.paper.entity.CraftSentientNPC; - import net.minecraft.server.EntityWaterAnimal; - - import org.bukkit.craftbukkit.CraftServer; - import org.bukkit.entity.LivingEntity; - import org.bukkit.entity.WaterMob; - --public class CraftWaterMob extends CraftLivingEntity implements WaterMob { -+public class CraftWaterMob extends CraftLivingEntity implements WaterMob, CraftSentientNPC { // Paper - - public CraftWaterMob(CraftServer server, EntityWaterAnimal entity) { - super(server, entity); -- 2.18.0 diff --git a/Spigot-Server-Patches/0322-Improve-ProjectileHitEvent-to-include-the-BlockFace-.patch b/Spigot-Server-Patches/0288-Improve-ProjectileHitEvent-to-include-the-BlockFace-.patch similarity index 88% rename from Spigot-Server-Patches/0322-Improve-ProjectileHitEvent-to-include-the-BlockFace-.patch rename to Spigot-Server-Patches/0288-Improve-ProjectileHitEvent-to-include-the-BlockFace-.patch index 419bd9d90f..c7f3ceac9e 100644 --- a/Spigot-Server-Patches/0322-Improve-ProjectileHitEvent-to-include-the-BlockFace-.patch +++ b/Spigot-Server-Patches/0288-Improve-ProjectileHitEvent-to-include-the-BlockFace-.patch @@ -1,4 +1,4 @@ -From e66cac106ad45ebee9efc27046d70074f702add0 Mon Sep 17 00:00:00 2001 +From 2d3a37ac2163232c2248522bb60d1df3c5debeab Mon Sep 17 00:00:00 2001 From: Brokkonaut Date: Sat, 30 Jun 2018 05:45:39 +0200 Subject: [PATCH] Improve ProjectileHitEvent to include the BlockFace where the @@ -6,10 +6,10 @@ Subject: [PATCH] Improve ProjectileHitEvent to include the BlockFace where the diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 9b19c055d..248873fb4 100644 +index 77973c1e8..c129e8629 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -836,7 +836,7 @@ public class CraftEventFactory { +@@ -821,7 +821,7 @@ public class CraftEventFactory { hitBlock = entity.getBukkitEntity().getWorld().getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ()); } diff --git a/Spigot-Server-Patches/0323-Add-config-to-disable-ender-dragon-legacy-check.patch b/Spigot-Server-Patches/0289-Add-config-to-disable-ender-dragon-legacy-check.patch similarity index 83% rename from Spigot-Server-Patches/0323-Add-config-to-disable-ender-dragon-legacy-check.patch rename to Spigot-Server-Patches/0289-Add-config-to-disable-ender-dragon-legacy-check.patch index 318091227a..30fbf72e3b 100644 --- a/Spigot-Server-Patches/0323-Add-config-to-disable-ender-dragon-legacy-check.patch +++ b/Spigot-Server-Patches/0289-Add-config-to-disable-ender-dragon-legacy-check.patch @@ -1,14 +1,14 @@ -From 0928ca54d1f1a8ff9ab5cf229712c4eb7cf08359 Mon Sep 17 00:00:00 2001 +From 5c3b9b90ff445eb042d1153c33ee12c99abe7320 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Fri, 22 Jun 2018 10:38:31 -0500 Subject: [PATCH] Add config to disable ender dragon legacy check diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 99ad40fa3..06c54690f 100644 +index 650addb84..b2855f3ca 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -524,4 +524,9 @@ public class PaperWorldConfig { +@@ -439,4 +439,9 @@ public class PaperWorldConfig { private void shieldBlockingDelay() { shieldBlockingDelay = getInt("game-mechanics.shield-blocking-delay", 5); } @@ -19,10 +19,10 @@ index 99ad40fa3..06c54690f 100644 + } } diff --git a/src/main/java/net/minecraft/server/EnderDragonBattle.java b/src/main/java/net/minecraft/server/EnderDragonBattle.java -index ce0dcbc68..286069746 100644 +index a20d54ee3..48bcda0f5 100644 --- a/src/main/java/net/minecraft/server/EnderDragonBattle.java +++ b/src/main/java/net/minecraft/server/EnderDragonBattle.java -@@ -30,9 +30,12 @@ public class EnderDragonBattle { +@@ -29,9 +29,12 @@ public class EnderDragonBattle { private int h; private int i; private int j; @@ -35,9 +35,9 @@ index ce0dcbc68..286069746 100644 private boolean n; private BlockPosition o; private EnumDragonRespawn p; -@@ -42,7 +45,10 @@ public class EnderDragonBattle { +@@ -41,7 +44,10 @@ public class EnderDragonBattle { public EnderDragonBattle(WorldServer worldserver, NBTTagCompound nbttagcompound) { - this.c = (BossBattleServer) (new BossBattleServer(new ChatMessage("entity.EnderDragon.name", new Object[0]), BossBattle.BarColor.PINK, BossBattle.BarStyle.PROGRESS)).setPlayMusic(true).c(true); + this.c = (BossBattleServer) (new BossBattleServer(new ChatMessage("entity.minecraft.ender_dragon", new Object[0]), BossBattle.BarColor.PINK, BossBattle.BarStyle.PROGRESS)).setPlayMusic(true).c(true); this.e = Lists.newArrayList(); - this.n = true; + // Paper start diff --git a/Spigot-Server-Patches/0324-Implement-World.getEntity-UUID-API.patch b/Spigot-Server-Patches/0290-Implement-World.getEntity-UUID-API.patch similarity index 82% rename from Spigot-Server-Patches/0324-Implement-World.getEntity-UUID-API.patch rename to Spigot-Server-Patches/0290-Implement-World.getEntity-UUID-API.patch index 1a2c3f13d1..2cfa36cca6 100644 --- a/Spigot-Server-Patches/0324-Implement-World.getEntity-UUID-API.patch +++ b/Spigot-Server-Patches/0290-Implement-World.getEntity-UUID-API.patch @@ -1,14 +1,14 @@ -From 5ec6400e2dacd349692bfb12ae6dadce5fa2d394 Mon Sep 17 00:00:00 2001 +From d1cd6c4e02129546254dadf0314ac6da5c3027e5 Mon Sep 17 00:00:00 2001 From: Brokkonaut Date: Tue, 3 Jul 2018 16:08:14 +0200 Subject: [PATCH] Implement World.getEntity(UUID) API diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index e2da30d88..210e3bc4e 100644 +index 0640ca094..6705864a7 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -791,6 +791,14 @@ public class CraftWorld implements World { +@@ -776,6 +776,14 @@ public class CraftWorld implements World { return list; } diff --git a/Spigot-Server-Patches/0325-InventoryCloseEvent-Reason-API.patch b/Spigot-Server-Patches/0291-InventoryCloseEvent-Reason-API.patch similarity index 85% rename from Spigot-Server-Patches/0325-InventoryCloseEvent-Reason-API.patch rename to Spigot-Server-Patches/0291-InventoryCloseEvent-Reason-API.patch index 170ece7b5d..717ce7dcbb 100644 --- a/Spigot-Server-Patches/0325-InventoryCloseEvent-Reason-API.patch +++ b/Spigot-Server-Patches/0291-InventoryCloseEvent-Reason-API.patch @@ -1,4 +1,4 @@ -From c5d1182aa2daec8a3627d2295b105756845013b7 Mon Sep 17 00:00:00 2001 +From 99179af42801ba828a667ca89553996a07dc5389 Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 3 Jul 2018 21:56:23 -0400 Subject: [PATCH] InventoryCloseEvent Reason API @@ -7,10 +7,10 @@ Allows you to determine why an inventory was closed, enabling plugin developers to "confirm" things based on if it was player triggered close or not. diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 8c96e7318..3e80825f7 100644 +index f31524eb0..2612d4207 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java -@@ -873,7 +873,7 @@ public class Chunk { +@@ -886,7 +886,7 @@ public class Chunk implements IChunkAccess { { if ( h instanceof org.bukkit.craftbukkit.entity.CraftHumanEntity ) { @@ -19,7 +19,7 @@ index 8c96e7318..3e80825f7 100644 } } } -@@ -898,7 +898,7 @@ public class Chunk { +@@ -911,7 +911,7 @@ public class Chunk implements IChunkAccess { { if ( h instanceof org.bukkit.craftbukkit.entity.CraftHumanEntity ) { @@ -29,19 +29,19 @@ index 8c96e7318..3e80825f7 100644 } } diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java -index 0b51903e2..aa0b27f0e 100644 +index a766a1467..cbf663573 100644 --- a/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java -@@ -145,7 +145,7 @@ public abstract class EntityHuman extends EntityLiving { - - super.B_(); +@@ -153,7 +153,7 @@ public abstract class EntityHuman extends EntityLiving { + this.df(); + super.tick(); if (!this.world.isClientSide && this.activeContainer != null && !this.activeContainer.canUse(this)) { - this.closeInventory(); + this.closeInventory(org.bukkit.event.inventory.InventoryCloseEvent.Reason.CANT_USE); // Paper this.activeContainer = this.defaultContainer; } -@@ -294,6 +294,13 @@ public abstract class EntityHuman extends EntityLiving { +@@ -355,6 +355,13 @@ public abstract class EntityHuman extends EntityLiving { return this.getHealth() <= 0.0F || this.isSleeping(); } @@ -56,10 +56,10 @@ index 0b51903e2..aa0b27f0e 100644 this.activeContainer = this.defaultContainer; } diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index cce3f98da..4ff505cfa 100644 +index c91caf578..59dc239b8 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java -@@ -287,7 +287,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -343,7 +343,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } // Paper end if (!this.world.isClientSide && !this.activeContainer.canUse(this)) { @@ -68,7 +68,7 @@ index cce3f98da..4ff505cfa 100644 this.activeContainer = this.defaultContainer; } -@@ -483,7 +483,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -534,7 +534,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { this.inventory.clear(); } @@ -77,8 +77,8 @@ index cce3f98da..4ff505cfa 100644 this.setSpectatorTarget(this); // Remove spectated target // CraftBukkit end -@@ -837,7 +837,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { - this.a((new ChatMessage("container.spectatorCantOpen", new Object[0])).setChatModifier((new ChatModifier()).setColor(EnumChatFormat.RED)), true); +@@ -846,7 +846,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { + this.a((new ChatMessage("container.spectatorCantOpen", new Object[0])).a(EnumChatFormat.RED), true); } else { if (this.activeContainer != this.defaultContainer) { - this.closeInventory(); @@ -86,7 +86,7 @@ index cce3f98da..4ff505cfa 100644 } if (iinventory instanceof ITileInventory) { -@@ -903,7 +903,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -912,7 +912,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } // CraftBukkit end if (this.activeContainer != this.defaultContainer) { @@ -95,7 +95,7 @@ index cce3f98da..4ff505cfa 100644 } this.nextContainerCounter(); -@@ -968,7 +968,12 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -977,7 +977,12 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } public void closeInventory() { @@ -107,27 +107,27 @@ index cce3f98da..4ff505cfa 100644 + CraftEventFactory.handleInventoryCloseEvent(this, reason); // CraftBukkit + // Paper end this.playerConnection.sendPacket(new PacketPlayOutCloseWindow(this.activeContainer.windowId)); - this.r(); + this.m(); } diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 36833b961..a54203c56 100644 +index 5fe01e7ef..4ed107eac 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java -@@ -1759,7 +1759,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { - PlayerConnectionUtils.ensureMainThread(packetplayinclosewindow, this, this.player.x()); +@@ -2033,7 +2033,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { + PlayerConnectionUtils.ensureMainThread(packetplayinclosewindow, this, this.player.getWorldServer()); if (this.player.isFrozen()) return; // CraftBukkit - CraftEventFactory.handleInventoryCloseEvent(this.player); // CraftBukkit + CraftEventFactory.handleInventoryCloseEvent(this.player, org.bukkit.event.inventory.InventoryCloseEvent.Reason.PLAYER); // CraftBukkit // Paper - this.player.r(); + this.player.m(); } diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index b478f385a..eaaa54acd 100644 +index c1de6564a..d397c6c74 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -423,7 +423,7 @@ public abstract class PlayerList { - entityplayer.b(StatisticList.f); +@@ -421,7 +421,7 @@ public abstract class PlayerList { + entityplayer.a(StatisticList.LEAVE_GAME); // CraftBukkit start - Quitting must be before we do final save of data, in case plugins need to modify it - org.bukkit.craftbukkit.event.CraftEventFactory.handleInventoryCloseEvent(entityplayer); @@ -136,10 +136,10 @@ index b478f385a..eaaa54acd 100644 PlayerQuitEvent playerQuitEvent = new PlayerQuitEvent(cserver.getPlayer(entityplayer), "\u00A7e" + entityplayer.getName() + " left the game"); cserver.getPluginManager().callEvent(playerQuitEvent); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index d85b5defc..05ca403e8 100644 +index 4b9ecb4a6..b602a5d1b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -@@ -401,8 +401,13 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { +@@ -402,8 +402,13 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { } public void closeInventory() { @@ -155,10 +155,10 @@ index d85b5defc..05ca403e8 100644 public boolean isBlocking() { return getHandle().isBlocking(); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index c0f4cec4d..6cbf429ff 100644 +index 3b76c7080..79ade89c5 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -644,7 +644,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -687,7 +687,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { // Close any foreign inventory if (getHandle().activeContainer != getHandle().defaultContainer) { @@ -168,10 +168,10 @@ index c0f4cec4d..6cbf429ff 100644 // Check if the fromWorld and toWorld are the same. diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 248873fb4..cce4acc0b 100644 +index c129e8629..81ba63bab 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -927,8 +927,19 @@ public class CraftEventFactory { +@@ -911,8 +911,19 @@ public class CraftEventFactory { return event; } diff --git a/Spigot-Server-Patches/0326-Avoid-Chunk-Lookups-for-Entity-TileEntity-Current-Ch.patch b/Spigot-Server-Patches/0292-Avoid-Chunk-Lookups-for-Entity-TileEntity-Current-Ch.patch similarity index 71% rename from Spigot-Server-Patches/0326-Avoid-Chunk-Lookups-for-Entity-TileEntity-Current-Ch.patch rename to Spigot-Server-Patches/0292-Avoid-Chunk-Lookups-for-Entity-TileEntity-Current-Ch.patch index 1bf454c181..45daaeb21a 100644 --- a/Spigot-Server-Patches/0326-Avoid-Chunk-Lookups-for-Entity-TileEntity-Current-Ch.patch +++ b/Spigot-Server-Patches/0292-Avoid-Chunk-Lookups-for-Entity-TileEntity-Current-Ch.patch @@ -1,4 +1,4 @@ -From 855c50b43725ac1167d2735d0d0b0b60de73499f Mon Sep 17 00:00:00 2001 +From 9a8a8ceae6eaf17fa915b512f1ec3596e06973c7 Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 4 Jul 2018 03:39:51 -0400 Subject: [PATCH] Avoid Chunk Lookups for Entity/TileEntity Current Chunk @@ -10,59 +10,58 @@ to the object directly on the Entity/TileEntity object we can directly grab. Use that local value instead to reduce lookups in many hot places. diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 3e80825f7..4a94fd5a6 100644 +index 2612d4207..b3cdc0b7d 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java -@@ -704,6 +704,7 @@ public class Chunk { - // Spigot end +@@ -721,6 +721,7 @@ public class Chunk implements IChunkAccess { + ((HeightMap) this.heightMap.get(heightmap_type)).a(along); } + public void removeEntity(Entity entity) { b(entity); } // Paper - OBFHELPER public void b(Entity entity) { - this.a(entity, entity.ac); + this.a(entity, entity.af); } diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index c0816b9f8..52adee880 100644 +index ee061d693..1b9013ab4 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -1511,12 +1511,15 @@ public abstract class World implements IBlockAccess { +@@ -1213,12 +1213,15 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose int j; // Paper start - Set based removal lists - for (Entity e : this.f) { + for (Entity e : this.g) { + /* j = e.getChunkZ(); int k = e.getChunkX(); - if (e.isAddedToChunk() && this.isChunkLoaded(k, j, true)) { + if (e.inChunk && this.isChunkLoaded(k, j, true)) { this.getChunkAt(k, j).b(e); - } + }*/ -+ Chunk chunk = e.isAddedToChunk() ? e.getCurrentChunk() : null; ++ Chunk chunk = e.inChunk ? e.getCurrentChunk() : null; + if (chunk != null) chunk.removeEntity(e); } - for (Entity e : this.f) { -@@ -1577,12 +1580,17 @@ public abstract class World implements IBlockAccess { - this.methodProfiler.b(); + for (Entity e : this.g) { +@@ -1279,12 +1282,17 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose + this.methodProfiler.e(); this.methodProfiler.a("remove"); if (entity.dead) { + // Paper start + /* - j = entity.ab; - int l = entity.ad; + j = entity.ae; + int l = entity.ag; -- if (entity.aa && this.isChunkLoaded(j, l, true)) { -+ /*if (entity.aa && this.isChunkLoaded(j, l, true)) { + if (entity.inChunk && this.isChunkLoaded(j, l, true)) { this.getChunkAt(j, l).b(entity); - } + }*/ -+ Chunk chunk = entity.isAddedToChunk() ? entity.getCurrentChunk() : null; ++ Chunk chunk = entity.inChunk ? entity.getCurrentChunk() : null; + if (chunk != null) chunk.removeEntity(entity); + // Paper end guardEntityList = false; // Spigot this.entityList.remove(this.tickPosition--); // CraftBukkit - Use field for loop variable -@@ -1627,7 +1635,7 @@ public abstract class World implements IBlockAccess { +@@ -1329,7 +1337,7 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose BlockPosition blockposition = tileentity.getPosition(); // Paper start - Skip ticking in chunks scheduled for unload @@ -71,7 +70,7 @@ index c0816b9f8..52adee880 100644 boolean shouldTick = chunk != null; if(this.paperConfig.skipEntityTickingInChunksScheduledForUnload) shouldTick = shouldTick && !chunk.isUnloading() && chunk.scheduledForUnload == null; -@@ -1663,8 +1671,11 @@ public abstract class World implements IBlockAccess { +@@ -1365,8 +1373,11 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose tilesThisCycle--; this.tileEntityListTick.remove(tileTickPosition--); //this.tileEntityList.remove(tileentity); // Paper - remove unused list diff --git a/Spigot-Server-Patches/0327-Configurable-Bed-Search-Radius.patch b/Spigot-Server-Patches/0293-Configurable-Bed-Search-Radius.patch similarity index 73% rename from Spigot-Server-Patches/0327-Configurable-Bed-Search-Radius.patch rename to Spigot-Server-Patches/0293-Configurable-Bed-Search-Radius.patch index 4c0c811cb6..17a8ecd3a7 100644 --- a/Spigot-Server-Patches/0327-Configurable-Bed-Search-Radius.patch +++ b/Spigot-Server-Patches/0293-Configurable-Bed-Search-Radius.patch @@ -1,4 +1,4 @@ -From a246ceabeb00b56874af023516184f8ef320c62f Mon Sep 17 00:00:00 2001 +From ddc34e5fcf2fe579484ac244370c4bca24a5adc7 Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 4 Jul 2018 15:22:06 -0400 Subject: [PATCH] Configurable Bed Search Radius @@ -10,10 +10,10 @@ player at their bed should it of became obstructed. Defaults to vanilla 1. diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 06c54690f..50416f40a 100644 +index b2855f3ca..d30a8ff6c 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -529,4 +529,15 @@ public class PaperWorldConfig { +@@ -444,4 +444,15 @@ public class PaperWorldConfig { private void scanForLegacyEnderDragon() { scanForLegacyEnderDragon = getBoolean("game-mechanics.scan-for-legacy-ender-dragon", true); } @@ -30,13 +30,16 @@ index 06c54690f..50416f40a 100644 + } } diff --git a/src/main/java/net/minecraft/server/BlockBed.java b/src/main/java/net/minecraft/server/BlockBed.java -index 9346bddff..f1a107991 100644 +index 6832eaac5..b9cb59fa7 100644 --- a/src/main/java/net/minecraft/server/BlockBed.java +++ b/src/main/java/net/minecraft/server/BlockBed.java -@@ -155,6 +155,51 @@ public class BlockBed extends BlockFacingHorizontal implements ITileEntity { +@@ -172,7 +172,54 @@ public class BlockBed extends BlockFacingHorizontal implements ITileEntity { + @Nullable - public static BlockPosition a(World world, BlockPosition blockposition, int i) { - EnumDirection enumdirection = (EnumDirection) world.getType(blockposition).get(BlockBed.FACING); + public static BlockPosition a(IBlockAccess iblockaccess, BlockPosition blockposition, int i) { ++ World world = (World) iblockaccess; ++ + EnumDirection enumdirection = (EnumDirection) iblockaccess.getType(blockposition).get(BlockBed.FACING); + // Paper - replace whole method + int radius = world.paperConfig.bedSearchRadius; + for (int r = 1; r <= radius; r++) { @@ -85,7 +88,7 @@ index 9346bddff..f1a107991 100644 int j = blockposition.getX(); int k = blockposition.getY(); int l = blockposition.getZ(); -@@ -180,9 +225,12 @@ public class BlockBed extends BlockFacingHorizontal implements ITileEntity { +@@ -198,9 +245,12 @@ public class BlockBed extends BlockFacingHorizontal implements ITileEntity { } } @@ -93,11 +96,11 @@ index 9346bddff..f1a107991 100644 + return null;*/ // Paper } -+ protected static boolean isSafeRespawn(World world, BlockPosition blockposition) { // Paper - OBFHELPER + behavior improvement -+ return b(world, blockposition) && world.getType(blockposition.down()).getMaterial().isBuildable(); // Paper - ensure solid block ++ protected static boolean isSafeRespawn(IBlockAccess iblockaccess, BlockPosition blockposition) { // Paper - OBFHELPER + behavior improvement ++ return a(iblockaccess, blockposition) && iblockaccess.getType(blockposition.down()).getMaterial().isBuildable(); // Paper - ensure solid block + } - protected static boolean b(World world, BlockPosition blockposition) { - return world.getType(blockposition.down()).q() && !world.getType(blockposition).getMaterial().isBuildable() && !world.getType(blockposition.up()).getMaterial().isBuildable(); + protected static boolean a(IBlockAccess iblockaccess, BlockPosition blockposition) { + return iblockaccess.getType(blockposition.down()).q() && !iblockaccess.getType(blockposition).getMaterial().isBuildable() && !iblockaccess.getType(blockposition.up()).getMaterial().isBuildable(); } -- 2.18.0 diff --git a/Spigot-Server-Patches/0328-Vex-getOwner-API.patch b/Spigot-Server-Patches/0294-Vex-getOwner-API.patch similarity index 84% rename from Spigot-Server-Patches/0328-Vex-getOwner-API.patch rename to Spigot-Server-Patches/0294-Vex-getOwner-API.patch index 440b3ce622..e36e18e031 100644 --- a/Spigot-Server-Patches/0328-Vex-getOwner-API.patch +++ b/Spigot-Server-Patches/0294-Vex-getOwner-API.patch @@ -1,4 +1,4 @@ -From 5a08e37a76a354a044fa503b8f4f4c0d4f9be59a Mon Sep 17 00:00:00 2001 +From 2de376809dbe86316ab433888c0591c299dc6186 Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 4 Jul 2018 15:30:22 -0400 Subject: [PATCH] Vex#getOwner API @@ -6,15 +6,15 @@ Subject: [PATCH] Vex#getOwner API Get's the NPC that summoned this Vex diff --git a/src/main/java/net/minecraft/server/EntityVex.java b/src/main/java/net/minecraft/server/EntityVex.java -index a0abaf431..673c3ff3c 100644 +index 897d7c681..ba1109e03 100644 --- a/src/main/java/net/minecraft/server/EntityVex.java +++ b/src/main/java/net/minecraft/server/EntityVex.java -@@ -90,6 +90,7 @@ public class EntityVex extends EntityMonster { +@@ -86,6 +86,7 @@ public class EntityVex extends EntityMonster { } -+ public EntityInsentient getOwner() { return p(); } // Paper - OBFHELPER - public EntityInsentient p() { ++ public EntityInsentient getOwner() { return l(); } // Paper - OBFHELPER + public EntityInsentient l() { return this.b; } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVex.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVex.java diff --git a/Spigot-Server-Patches/0329-Refresh-player-inventory-when-cancelling-PlayerInter.patch b/Spigot-Server-Patches/0295-Refresh-player-inventory-when-cancelling-PlayerInter.patch similarity index 88% rename from Spigot-Server-Patches/0329-Refresh-player-inventory-when-cancelling-PlayerInter.patch rename to Spigot-Server-Patches/0295-Refresh-player-inventory-when-cancelling-PlayerInter.patch index 63e70a94da..b7f4f016f7 100644 --- a/Spigot-Server-Patches/0329-Refresh-player-inventory-when-cancelling-PlayerInter.patch +++ b/Spigot-Server-Patches/0295-Refresh-player-inventory-when-cancelling-PlayerInter.patch @@ -1,4 +1,4 @@ -From 2d88ccd486565ced7b650bed5f15c8d4bbf3c809 Mon Sep 17 00:00:00 2001 +From 4070e274a65887963631e09cf88e08da8d644bcc Mon Sep 17 00:00:00 2001 From: Minecrell Date: Fri, 13 Jul 2018 14:54:43 +0200 Subject: [PATCH] Refresh player inventory when cancelling @@ -16,10 +16,10 @@ Refresh the player inventory when PlayerInteractEntityEvent is cancelled to avoid this problem. diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index a54203c56..cc1152739 100644 +index 4ed107eac..472f40709 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java -@@ -1673,6 +1673,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { +@@ -1947,6 +1947,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { } if (event.isCancelled()) { diff --git a/Spigot-Server-Patches/0302-Don-t-load-chunks-for-villager-door-checks.patch b/Spigot-Server-Patches/0302-Don-t-load-chunks-for-villager-door-checks.patch deleted file mode 100644 index 2f11cdaf7c..0000000000 --- a/Spigot-Server-Patches/0302-Don-t-load-chunks-for-villager-door-checks.patch +++ /dev/null @@ -1,46 +0,0 @@ -From d6a8a38833e30365423d53a34ce66c467f13c403 Mon Sep 17 00:00:00 2001 -From: Aikar -Date: Tue, 5 Jun 2018 00:32:22 -0400 -Subject: [PATCH] Don't load chunks for villager door checks - -This avoids villages spam loading chunks sync - -diff --git a/src/main/java/net/minecraft/server/PersistentVillage.java b/src/main/java/net/minecraft/server/PersistentVillage.java -index 01f7cee38..a3aa9f82e 100644 ---- a/src/main/java/net/minecraft/server/PersistentVillage.java -+++ b/src/main/java/net/minecraft/server/PersistentVillage.java -@@ -226,7 +226,12 @@ public class PersistentVillage extends PersistentBase { - } - - private boolean f(BlockPosition blockposition) { -- IBlockData iblockdata = this.world.getType(blockposition); -+ // Paper start -+ IBlockData iblockdata = this.world.getTypeIfLoaded(blockposition); -+ if (iblockdata == null) { -+ return false; -+ } -+ // Paper end - Block block = iblockdata.getBlock(); - - return block instanceof BlockDoor ? iblockdata.getMaterial() == Material.WOOD : false; -diff --git a/src/main/java/net/minecraft/server/Village.java b/src/main/java/net/minecraft/server/Village.java -index 2eb33a986..9f1867ddd 100644 ---- a/src/main/java/net/minecraft/server/Village.java -+++ b/src/main/java/net/minecraft/server/Village.java -@@ -327,7 +327,12 @@ public class Village { - } - - private boolean f(BlockPosition blockposition) { -- IBlockData iblockdata = this.a.getType(blockposition); -+ // Paper start -+ IBlockData iblockdata = this.a.getTypeIfLoaded(blockposition); -+ if (iblockdata == null) { -+ return false; -+ } -+ // Paper end - Block block = iblockdata.getBlock(); - - return block instanceof BlockDoor ? iblockdata.getMaterial() == Material.WOOD : false; --- -2.18.0 - diff --git a/Spigot-Server-Patches/0312-Ignore-Missing-Recipes-in-RecipeBook-to-avoid-data-e.patch b/Spigot-Server-Patches/0312-Ignore-Missing-Recipes-in-RecipeBook-to-avoid-data-e.patch deleted file mode 100644 index c88299614a..0000000000 --- a/Spigot-Server-Patches/0312-Ignore-Missing-Recipes-in-RecipeBook-to-avoid-data-e.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 34db39b1a0906f9fce82f2970d924b95289a4bc7 Mon Sep 17 00:00:00 2001 -From: Aikar -Date: Sat, 16 Jun 2018 16:23:38 -0400 -Subject: [PATCH] Ignore Missing Recipes in RecipeBook to avoid data errors - -This code was causing NPE's in saving player data, potentially related to reloads. - -diff --git a/src/main/java/net/minecraft/server/RecipeBookServer.java b/src/main/java/net/minecraft/server/RecipeBookServer.java -index 7eecdc9da..f65e74ebd 100644 ---- a/src/main/java/net/minecraft/server/RecipeBookServer.java -+++ b/src/main/java/net/minecraft/server/RecipeBookServer.java -@@ -63,7 +63,11 @@ public class RecipeBookServer extends RecipeBook { - while (iterator.hasNext()) { - IRecipe irecipe = (IRecipe) iterator.next(); - -- nbttaglist.add(new NBTTagString(((MinecraftKey) CraftingManager.recipes.b(irecipe)).toString())); -+ // Paper start - ignore missing recipes -+ MinecraftKey key = CraftingManager.recipes.b(irecipe); -+ if (key == null) continue; -+ nbttaglist.add(new NBTTagString(key.toString())); -+ // Paper end - } - - nbttagcompound.set("recipes", nbttaglist); -@@ -71,9 +75,13 @@ public class RecipeBookServer extends RecipeBook { - Iterator iterator1 = this.e().iterator(); - - while (iterator1.hasNext()) { -- IRecipe irecipe1 = (IRecipe) iterator1.next(); -+ // Paper start - ignore missing recipes -+ IRecipe irecipe = (IRecipe) iterator1.next(); - -- nbttaglist1.add(new NBTTagString(((MinecraftKey) CraftingManager.recipes.b(irecipe1)).toString())); -+ MinecraftKey key = CraftingManager.recipes.b(irecipe); -+ if (key == null) continue; -+ nbttaglist1.add(new NBTTagString(key.toString())); -+ // Paper end - } - - nbttagcompound.set("toBeDisplayed", nbttaglist1); --- -2.18.0 - diff --git a/Spigot-Server-Patches/0321-Cleanup-allocated-favicon-ByteBuf.patch b/Spigot-Server-Patches/0321-Cleanup-allocated-favicon-ByteBuf.patch deleted file mode 100644 index f0393338df..0000000000 --- a/Spigot-Server-Patches/0321-Cleanup-allocated-favicon-ByteBuf.patch +++ /dev/null @@ -1,43 +0,0 @@ -From b42d9cfdd497370e9fe6d0b2b684ebcd6fe28ffd Mon Sep 17 00:00:00 2001 -From: Shane Freeder -Date: Tue, 3 Jul 2018 19:14:38 +0100 -Subject: [PATCH] Cleanup allocated favicon ByteBuf - -Cleanups a bytebuffer which was allocated during the encoding of the -favicon to be sent to the client. - -diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index f82e22b23..0399a48e1 100644 ---- a/src/main/java/net/minecraft/server/MinecraftServer.java -+++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -724,6 +724,7 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IAs - - if (file.isFile()) { - ByteBuf bytebuf = Unpooled.buffer(); -+ ByteBuf bytebuf1 = null; // Paper - cleanup favicon bytebuf - - try { - BufferedImage bufferedimage = ImageIO.read(file); -@@ -731,13 +732,18 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IAs - Validate.validState(bufferedimage.getWidth() == 64, "Must be 64 pixels wide", new Object[0]); - Validate.validState(bufferedimage.getHeight() == 64, "Must be 64 pixels high", new Object[0]); - ImageIO.write(bufferedimage, "PNG", new ByteBufOutputStream(bytebuf)); -- ByteBuf bytebuf1 = Base64.encode(bytebuf); -+ /*ByteBuf */ bytebuf1 = Base64.encode(bytebuf); // Paper - cleanup favicon bytebuf - - serverping.setFavicon("data:image/png;base64," + bytebuf1.toString(StandardCharsets.UTF_8)); - } catch (Exception exception) { - MinecraftServer.LOGGER.error("Couldn\'t load server icon", exception); - } finally { - bytebuf.release(); -+ // Paper start - cleanup favicon bytebuf -+ if (bytebuf1 != null) { -+ bytebuf1.release(); -+ } -+ // Paper end - cleanup favicon bytebuf - } - } - --- -2.18.0 -