From 7e8ae207bd1ee40e4cb8086877b8f19cd2b6520e Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Thu, 11 Jul 2019 17:59:21 +0100 Subject: [PATCH] Updated Upstream (Bukkit/CraftBukkit/Spigot) Upstream has released updates that appears to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: e99c9444 Add Plugin Chunk Ticket API 6a235f06 Fix incorrect nullability annotations for PlayerJoinEvent's join message CraftBukkit Changes: 5f889388 Tweak build expiration to 7 days 572c02b0 MC-155077, SPIGOT-5113: EntityTracker desync 7ad3a1f4 SPIGOT-5146: BlockDataMeta does not work 60860983 SPIGOT-5155: Setting EntityExplodeEvent yield to 0 still causes blocks to drop 087a2cf4 Print number of force loaded chunks per plugin in crash reports 07b5b06d Add Plugin Chunk Ticket API 7ffb2a27 SPIGOT-5149: resetRecipes does nothing a2275f19 SPIGOT-5141: World.generateTree() causes ClassCastException with huge mushrooms 31d4a777 SPIGOT-5142: Ignore invalid firework effects Spigot Changes: 5e4e7f32 BUILDTOOLS-471: Rebuild patches 6e944739 SPIGOT-5159: Raider activation range overridden by Monster range --- Spigot-API-Patches/0004-Timings-v2.patch | 84 ++++++++-------- .../0017-Add-exception-reporting-event.patch | 39 ++++---- ...eload-permissions.yml-and-require-co.patch | 14 +-- ...rovide-E-TE-Chunk-count-stat-methods.patch | 8 +- ...upstream-javadoc-warnings-and-errors.patch | 20 ++-- ...tional-world.getNearbyEntities-API-s.patch | 10 +- ...ld.spawnParticle-API-and-add-Builder.patch | 12 +-- ...lose-Plugin-Class-Loaders-on-Disable.patch | 16 ++-- .../0112-Expand-Explosions-API.patch | 10 +- .../0116-Add-World.getEntity-UUID-API.patch | 8 +- ...deadlock-risk-in-firing-async-events.patch | 20 ++-- ...vide-Chunk-Coordinates-as-a-Long-API.patch | 12 +-- .../0133-Async-Chunks-API.patch | 10 +- ...ile-Entities-from-a-chunk-without-sn.patch | 8 +- ...Blocks-to-be-accessed-via-a-long-key.patch | 12 +-- .../0139-isChunkGenerated-API.patch | 10 +- .../0158-Add-sun-related-API.patch | 10 +- .../0181-Add-Heightmap-API.patch | 12 +-- Spigot-Server-Patches/0003-MC-Dev-fixes.patch | 95 ++++--------------- ...ient-crashes-server-lists-and-Mojang.patch | 14 +-- ...064-Handle-Item-Meta-Inconsistencies.patch | 46 ++++----- ...rovide-E-TE-Chunk-count-stat-methods.patch | 6 +- ...PI-for-Reason-Source-Triggering-play.patch | 36 +++---- .../0170-Fix-this-stupid-bullshit.patch | 6 +- .../0201-Add-ArmorStand-Item-Meta.patch | 8 +- ...ld.spawnParticle-API-and-add-Builder.patch | 8 +- ...Item-entities-with-World.spawnEntity.patch | 6 +- .../0242-Expand-Explosions-API.patch | 6 +- ...6-Implement-World.getEntity-UUID-API.patch | 6 +- ...3-Vanished-players-don-t-have-rights.patch | 18 ++-- ...ead-Entities-in-entityList-iteration.patch | 20 ++-- ...ile-Entities-from-a-chunk-without-sn.patch | 8 +- ...ets-from-world-player-list-not-serve.patch | 10 +- ...291-Optimize-CraftBlockData-Creation.patch | 8 +- ...loadChunk-int-int-false-load-unconve.patch | 6 +- ...-for-CanPlaceOn-and-CanDestroy-NBT-v.patch | 36 +++---- .../0320-Add-sun-related-API.patch | 12 +-- ...-after-profile-lookups-if-not-needed.patch | 28 +++--- .../0380-Add-Heightmap-API.patch | 8 +- .../0384-Async-Chunk-placeholder.patch | 12 +-- ...391-improve-CraftWorld-isChunkLoaded.patch | 6 +- ...le-Keep-Spawn-Loaded-range-per-world.patch | 16 ++-- .../0398-Chunk-debug-command.patch | 35 +++---- ...401-Fix-World-isChunkGenerated-calls.patch | 24 ++--- .../0403-Fix-MC-154214.patch | 12 +-- ...7-Anti-Xray.patch => 0406-Anti-Xray.patch} | 50 +++++----- .../0406-Fix-tracker-desync-issue.patch | 34 ------- work/Bukkit | 2 +- work/CraftBukkit | 2 +- work/Spigot | 2 +- 50 files changed, 402 insertions(+), 499 deletions(-) rename Spigot-Server-Patches/{0407-Anti-Xray.patch => 0406-Anti-Xray.patch} (98%) delete mode 100644 Spigot-Server-Patches/0406-Fix-tracker-desync-issue.patch diff --git a/Spigot-API-Patches/0004-Timings-v2.patch b/Spigot-API-Patches/0004-Timings-v2.patch index 16dcff0f95..a490d74aa3 100644 --- a/Spigot-API-Patches/0004-Timings-v2.patch +++ b/Spigot-API-Patches/0004-Timings-v2.patch @@ -1,4 +1,4 @@ -From 175f1620b7fba6b7a0a189cbd2c1e734498950a7 Mon Sep 17 00:00:00 2001 +From 5b14068add26b91b006e51d745d5de6118e4c154 Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 29 Feb 2016 18:48:17 -0600 Subject: [PATCH] Timings v2 @@ -6,7 +6,7 @@ Subject: [PATCH] Timings v2 diff --git a/src/main/java/co/aikar/timings/FullServerTickHandler.java b/src/main/java/co/aikar/timings/FullServerTickHandler.java new file mode 100644 -index 000000000..64531fcce +index 00000000..64531fcc --- /dev/null +++ b/src/main/java/co/aikar/timings/FullServerTickHandler.java @@ -0,0 +1,84 @@ @@ -96,7 +96,7 @@ index 000000000..64531fcce +} diff --git a/src/main/java/co/aikar/timings/NullTimingHandler.java b/src/main/java/co/aikar/timings/NullTimingHandler.java new file mode 100644 -index 000000000..9b45ce887 +index 00000000..9b45ce88 --- /dev/null +++ b/src/main/java/co/aikar/timings/NullTimingHandler.java @@ -0,0 +1,68 @@ @@ -170,7 +170,7 @@ index 000000000..9b45ce887 +} diff --git a/src/main/java/co/aikar/timings/TimedEventExecutor.java b/src/main/java/co/aikar/timings/TimedEventExecutor.java new file mode 100644 -index 000000000..933ecf9bd +index 00000000..933ecf9b --- /dev/null +++ b/src/main/java/co/aikar/timings/TimedEventExecutor.java @@ -0,0 +1,83 @@ @@ -259,7 +259,7 @@ index 000000000..933ecf9bd +} diff --git a/src/main/java/co/aikar/timings/Timing.java b/src/main/java/co/aikar/timings/Timing.java new file mode 100644 -index 000000000..a21e5ead5 +index 00000000..a21e5ead --- /dev/null +++ b/src/main/java/co/aikar/timings/Timing.java @@ -0,0 +1,83 @@ @@ -348,7 +348,7 @@ index 000000000..a21e5ead5 +} diff --git a/src/main/java/co/aikar/timings/TimingData.java b/src/main/java/co/aikar/timings/TimingData.java new file mode 100644 -index 000000000..a5d13a1e4 +index 00000000..a5d13a1e --- /dev/null +++ b/src/main/java/co/aikar/timings/TimingData.java @@ -0,0 +1,122 @@ @@ -476,7 +476,7 @@ index 000000000..a5d13a1e4 +} diff --git a/src/main/java/co/aikar/timings/TimingHandler.java b/src/main/java/co/aikar/timings/TimingHandler.java new file mode 100644 -index 000000000..cc0390c06 +index 00000000..cc0390c0 --- /dev/null +++ b/src/main/java/co/aikar/timings/TimingHandler.java @@ -0,0 +1,227 @@ @@ -709,7 +709,7 @@ index 000000000..cc0390c06 +} diff --git a/src/main/java/co/aikar/timings/TimingHistory.java b/src/main/java/co/aikar/timings/TimingHistory.java new file mode 100644 -index 000000000..ddaed8127 +index 00000000..ddaed812 --- /dev/null +++ b/src/main/java/co/aikar/timings/TimingHistory.java @@ -0,0 +1,354 @@ @@ -1069,7 +1069,7 @@ index 000000000..ddaed8127 +} diff --git a/src/main/java/co/aikar/timings/TimingHistoryEntry.java b/src/main/java/co/aikar/timings/TimingHistoryEntry.java new file mode 100644 -index 000000000..86d5ac6bd +index 00000000..86d5ac6b --- /dev/null +++ b/src/main/java/co/aikar/timings/TimingHistoryEntry.java @@ -0,0 +1,58 @@ @@ -1133,7 +1133,7 @@ index 000000000..86d5ac6bd +} diff --git a/src/main/java/co/aikar/timings/TimingIdentifier.java b/src/main/java/co/aikar/timings/TimingIdentifier.java new file mode 100644 -index 000000000..df142a89b +index 00000000..df142a89 --- /dev/null +++ b/src/main/java/co/aikar/timings/TimingIdentifier.java @@ -0,0 +1,116 @@ @@ -1255,7 +1255,7 @@ index 000000000..df142a89b +} diff --git a/src/main/java/co/aikar/timings/Timings.java b/src/main/java/co/aikar/timings/Timings.java new file mode 100644 -index 000000000..0b34e0d01 +index 00000000..0b34e0d0 --- /dev/null +++ b/src/main/java/co/aikar/timings/Timings.java @@ -0,0 +1,293 @@ @@ -1554,7 +1554,7 @@ index 000000000..0b34e0d01 +} diff --git a/src/main/java/co/aikar/timings/TimingsCommand.java b/src/main/java/co/aikar/timings/TimingsCommand.java new file mode 100644 -index 000000000..c0d8f2016 +index 00000000..c0d8f201 --- /dev/null +++ b/src/main/java/co/aikar/timings/TimingsCommand.java @@ -0,0 +1,122 @@ @@ -1682,7 +1682,7 @@ index 000000000..c0d8f2016 +} diff --git a/src/main/java/co/aikar/timings/TimingsExport.java b/src/main/java/co/aikar/timings/TimingsExport.java new file mode 100644 -index 000000000..23eb8c65c +index 00000000..23eb8c65 --- /dev/null +++ b/src/main/java/co/aikar/timings/TimingsExport.java @@ -0,0 +1,355 @@ @@ -2043,7 +2043,7 @@ index 000000000..23eb8c65c +} diff --git a/src/main/java/co/aikar/timings/TimingsManager.java b/src/main/java/co/aikar/timings/TimingsManager.java new file mode 100644 -index 000000000..ef824d701 +index 00000000..ef824d70 --- /dev/null +++ b/src/main/java/co/aikar/timings/TimingsManager.java @@ -0,0 +1,188 @@ @@ -2237,7 +2237,7 @@ index 000000000..ef824d701 +} diff --git a/src/main/java/co/aikar/timings/TimingsReportListener.java b/src/main/java/co/aikar/timings/TimingsReportListener.java new file mode 100644 -index 000000000..bf3e059fe +index 00000000..bf3e059f --- /dev/null +++ b/src/main/java/co/aikar/timings/TimingsReportListener.java @@ -0,0 +1,75 @@ @@ -2318,7 +2318,7 @@ index 000000000..bf3e059fe +} diff --git a/src/main/java/co/aikar/timings/UnsafeTimingHandler.java b/src/main/java/co/aikar/timings/UnsafeTimingHandler.java new file mode 100644 -index 000000000..632c49615 +index 00000000..632c4961 --- /dev/null +++ b/src/main/java/co/aikar/timings/UnsafeTimingHandler.java @@ -0,0 +1,53 @@ @@ -2377,7 +2377,7 @@ index 000000000..632c49615 +} diff --git a/src/main/java/co/aikar/util/Counter.java b/src/main/java/co/aikar/util/Counter.java new file mode 100644 -index 000000000..80155072d +index 00000000..80155072 --- /dev/null +++ b/src/main/java/co/aikar/util/Counter.java @@ -0,0 +1,38 @@ @@ -2421,7 +2421,7 @@ index 000000000..80155072d +} diff --git a/src/main/java/co/aikar/util/JSONUtil.java b/src/main/java/co/aikar/util/JSONUtil.java new file mode 100644 -index 000000000..190bf0598 +index 00000000..190bf059 --- /dev/null +++ b/src/main/java/co/aikar/util/JSONUtil.java @@ -0,0 +1,140 @@ @@ -2567,7 +2567,7 @@ index 000000000..190bf0598 +} diff --git a/src/main/java/co/aikar/util/LoadingIntMap.java b/src/main/java/co/aikar/util/LoadingIntMap.java new file mode 100644 -index 000000000..63a899c7d +index 00000000..63a899c7 --- /dev/null +++ b/src/main/java/co/aikar/util/LoadingIntMap.java @@ -0,0 +1,76 @@ @@ -2649,7 +2649,7 @@ index 000000000..63a899c7d +} diff --git a/src/main/java/co/aikar/util/LoadingMap.java b/src/main/java/co/aikar/util/LoadingMap.java new file mode 100644 -index 000000000..aedbb0332 +index 00000000..aedbb033 --- /dev/null +++ b/src/main/java/co/aikar/util/LoadingMap.java @@ -0,0 +1,368 @@ @@ -3023,7 +3023,7 @@ index 000000000..aedbb0332 +} diff --git a/src/main/java/co/aikar/util/MRUMapCache.java b/src/main/java/co/aikar/util/MRUMapCache.java new file mode 100644 -index 000000000..5989ee212 +index 00000000..5989ee21 --- /dev/null +++ b/src/main/java/co/aikar/util/MRUMapCache.java @@ -0,0 +1,111 @@ @@ -3139,7 +3139,7 @@ index 000000000..5989ee212 + } +} diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 0822b8e53..940c643df 100644 +index 0822b8e5..940c643d 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java @@ -574,7 +574,6 @@ public final class Bukkit { @@ -3151,7 +3151,7 @@ index 0822b8e53..940c643df 100644 /** diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 11c5c2054..c197e3811 100644 +index 11c5c205..c197e381 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java @@ -1250,6 +1250,26 @@ public interface Server extends PluginMessageRecipient { @@ -3182,7 +3182,7 @@ index 11c5c2054..c197e3811 100644 * Sends the component to the player * diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java -index 247d194f8..72c5501e8 100644 +index 247d194f..72c5501e 100644 --- a/src/main/java/org/bukkit/UnsafeValues.java +++ b/src/main/java/org/bukkit/UnsafeValues.java @@ -69,4 +69,12 @@ public interface UnsafeValues { @@ -3200,7 +3200,7 @@ index 247d194f8..72c5501e8 100644 } diff --git a/src/main/java/org/bukkit/command/BufferedCommandSender.java b/src/main/java/org/bukkit/command/BufferedCommandSender.java new file mode 100644 -index 000000000..f9a00aecc +index 00000000..f9a00aec --- /dev/null +++ b/src/main/java/org/bukkit/command/BufferedCommandSender.java @@ -0,0 +1,21 @@ @@ -3226,7 +3226,7 @@ index 000000000..f9a00aecc + } +} diff --git a/src/main/java/org/bukkit/command/Command.java b/src/main/java/org/bukkit/command/Command.java -index 4bfc21468..03bdc1622 100644 +index 4bfc2146..03bdc162 100644 --- a/src/main/java/org/bukkit/command/Command.java +++ b/src/main/java/org/bukkit/command/Command.java @@ -33,7 +33,8 @@ public abstract class Command { @@ -3256,7 +3256,7 @@ index 4bfc21468..03bdc1622 100644 return true; } diff --git a/src/main/java/org/bukkit/command/FormattedCommandAlias.java b/src/main/java/org/bukkit/command/FormattedCommandAlias.java -index d6c8938b1..a6ad94ef9 100644 +index d6c8938b..a6ad94ef 100644 --- a/src/main/java/org/bukkit/command/FormattedCommandAlias.java +++ b/src/main/java/org/bukkit/command/FormattedCommandAlias.java @@ -9,6 +9,7 @@ public class FormattedCommandAlias extends Command { @@ -3280,7 +3280,7 @@ index d6c8938b1..a6ad94ef9 100644 } diff --git a/src/main/java/org/bukkit/command/MessageCommandSender.java b/src/main/java/org/bukkit/command/MessageCommandSender.java new file mode 100644 -index 000000000..ca1893e9f +index 00000000..ca1893e9 --- /dev/null +++ b/src/main/java/org/bukkit/command/MessageCommandSender.java @@ -0,0 +1,114 @@ @@ -3399,7 +3399,7 @@ index 000000000..ca1893e9f + +} diff --git a/src/main/java/org/bukkit/command/SimpleCommandMap.java b/src/main/java/org/bukkit/command/SimpleCommandMap.java -index 81e4fa573..f020cb04e 100644 +index 81e4fa57..f020cb04 100644 --- a/src/main/java/org/bukkit/command/SimpleCommandMap.java +++ b/src/main/java/org/bukkit/command/SimpleCommandMap.java @@ -15,7 +15,6 @@ import org.bukkit.command.defaults.BukkitCommand; @@ -3456,7 +3456,7 @@ index 81e4fa573..f020cb04e 100644 diff --git a/src/main/java/org/bukkit/command/defaults/TimingsCommand.java b/src/main/java/org/bukkit/command/defaults/TimingsCommand.java deleted file mode 100644 -index 6023e4f61..000000000 +index 6023e4f6..00000000 --- a/src/main/java/org/bukkit/command/defaults/TimingsCommand.java +++ /dev/null @@ -1,253 +0,0 @@ @@ -3714,7 +3714,7 @@ index 6023e4f61..000000000 - // Spigot end -} diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index ae6274d70..bf0b8bf19 100644 +index ae6274d7..bf0b8bf1 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -1601,6 +1601,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @@ -3730,10 +3730,10 @@ index ae6274d70..bf0b8bf19 100644 @NotNull diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -index f648c5989..78a2d2f8d 100644 +index 2dfb8529..53e5045f 100644 --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java +++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -@@ -297,7 +297,6 @@ public final class SimplePluginManager implements PluginManager { +@@ -298,7 +298,6 @@ public final class SimplePluginManager implements PluginManager { } } @@ -3741,7 +3741,7 @@ index f648c5989..78a2d2f8d 100644 return result.toArray(new Plugin[result.size()]); } -@@ -336,7 +335,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -337,7 +336,7 @@ public final class SimplePluginManager implements PluginManager { if (result != null) { plugins.add(result); @@ -3750,7 +3750,7 @@ index f648c5989..78a2d2f8d 100644 } return result; -@@ -364,7 +363,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -365,7 +364,7 @@ public final class SimplePluginManager implements PluginManager { @Override @Nullable public synchronized Plugin getPlugin(@NotNull String name) { @@ -3759,7 +3759,7 @@ index f648c5989..78a2d2f8d 100644 } @Override -@@ -577,7 +576,8 @@ public final class SimplePluginManager implements PluginManager { +@@ -586,7 +585,8 @@ public final class SimplePluginManager implements PluginManager { throw new IllegalPluginAccessException("Plugin attempted to register " + event + " while not enabled"); } @@ -3769,7 +3769,7 @@ index f648c5989..78a2d2f8d 100644 getEventListeners(event).register(new TimedRegisteredListener(listener, executor, priority, plugin, ignoreCancelled)); } else { getEventListeners(event).register(new RegisteredListener(listener, executor, priority, plugin, ignoreCancelled)); -@@ -774,7 +774,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -783,7 +783,7 @@ public final class SimplePluginManager implements PluginManager { @Override public boolean useTimings() { @@ -3778,7 +3778,7 @@ index f648c5989..78a2d2f8d 100644 } /** -@@ -783,6 +783,6 @@ public final class SimplePluginManager implements PluginManager { +@@ -792,6 +792,6 @@ public final class SimplePluginManager implements PluginManager { * @param use True if per event timing code should be used */ public void useTimings(boolean use) { @@ -3787,7 +3787,7 @@ index f648c5989..78a2d2f8d 100644 } } diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java -index 1173e433a..82e379d16 100644 +index 1173e433..82e379d1 100644 --- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java +++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java @@ -53,7 +53,6 @@ public final class JavaPluginLoader implements PluginLoader { @@ -3830,7 +3830,7 @@ index 1173e433a..82e379d16 100644 eventSet.add(new TimedRegisteredListener(listener, executor, eh.priority(), plugin, eh.ignoreCancelled())); } else { diff --git a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java -index 0ffc1dfdb..b859796b4 100644 +index 0ffc1dfd..b859796b 100644 --- a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java +++ b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java @@ -24,7 +24,8 @@ import org.jetbrains.annotations.Nullable; @@ -3844,7 +3844,7 @@ index 0ffc1dfdb..b859796b4 100644 private final Map> classes = new ConcurrentHashMap>(); private final PluginDescriptionFile description; diff --git a/src/main/java/org/bukkit/util/CachedServerIcon.java b/src/main/java/org/bukkit/util/CachedServerIcon.java -index 5ca863b36..612958a33 100644 +index 5ca863b3..612958a3 100644 --- a/src/main/java/org/bukkit/util/CachedServerIcon.java +++ b/src/main/java/org/bukkit/util/CachedServerIcon.java @@ -2,6 +2,7 @@ package org.bukkit.util; @@ -3867,7 +3867,7 @@ index 5ca863b36..612958a33 100644 + +} diff --git a/src/main/java/org/spigotmc/CustomTimingsHandler.java b/src/main/java/org/spigotmc/CustomTimingsHandler.java -index b71235f69..3cbe5c2bb 100644 +index b71235f6..3cbe5c2b 100644 --- a/src/main/java/org/spigotmc/CustomTimingsHandler.java +++ b/src/main/java/org/spigotmc/CustomTimingsHandler.java @@ -1,3 +1,26 @@ diff --git a/Spigot-API-Patches/0017-Add-exception-reporting-event.patch b/Spigot-API-Patches/0017-Add-exception-reporting-event.patch index e87a2430c2..624486a9e4 100644 --- a/Spigot-API-Patches/0017-Add-exception-reporting-event.patch +++ b/Spigot-API-Patches/0017-Add-exception-reporting-event.patch @@ -1,4 +1,4 @@ -From 401bfc4793c0cc35396033e5fff9e5169f09ab8b Mon Sep 17 00:00:00 2001 +From 40c4b5f00a9beeed4c2533dccb9e786bce2862f7 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Mon, 29 Feb 2016 20:24:35 -0600 Subject: [PATCH] Add exception reporting event @@ -6,7 +6,7 @@ Subject: [PATCH] Add exception reporting event diff --git a/src/main/java/com/destroystokyo/paper/event/server/ServerExceptionEvent.java b/src/main/java/com/destroystokyo/paper/event/server/ServerExceptionEvent.java new file mode 100644 -index 000000000..d3b00f741 +index 00000000..d3b00f74 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/event/server/ServerExceptionEvent.java @@ -0,0 +1,41 @@ @@ -53,7 +53,7 @@ index 000000000..d3b00f741 +} diff --git a/src/main/java/com/destroystokyo/paper/exception/ServerCommandException.java b/src/main/java/com/destroystokyo/paper/exception/ServerCommandException.java new file mode 100644 -index 000000000..6fb39af04 +index 00000000..6fb39af0 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/exception/ServerCommandException.java @@ -0,0 +1,64 @@ @@ -123,7 +123,7 @@ index 000000000..6fb39af04 +} diff --git a/src/main/java/com/destroystokyo/paper/exception/ServerEventException.java b/src/main/java/com/destroystokyo/paper/exception/ServerEventException.java new file mode 100644 -index 000000000..410b24139 +index 00000000..410b2413 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/exception/ServerEventException.java @@ -0,0 +1,52 @@ @@ -181,7 +181,7 @@ index 000000000..410b24139 +} diff --git a/src/main/java/com/destroystokyo/paper/exception/ServerException.java b/src/main/java/com/destroystokyo/paper/exception/ServerException.java new file mode 100644 -index 000000000..c06ea3942 +index 00000000..c06ea394 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/exception/ServerException.java @@ -0,0 +1,23 @@ @@ -210,7 +210,7 @@ index 000000000..c06ea3942 +} diff --git a/src/main/java/com/destroystokyo/paper/exception/ServerInternalException.java b/src/main/java/com/destroystokyo/paper/exception/ServerInternalException.java new file mode 100644 -index 000000000..e762ed0db +index 00000000..e762ed0d --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/exception/ServerInternalException.java @@ -0,0 +1,35 @@ @@ -251,7 +251,7 @@ index 000000000..e762ed0db +} diff --git a/src/main/java/com/destroystokyo/paper/exception/ServerPluginEnableDisableException.java b/src/main/java/com/destroystokyo/paper/exception/ServerPluginEnableDisableException.java new file mode 100644 -index 000000000..f016ba3b1 +index 00000000..f016ba3b --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/exception/ServerPluginEnableDisableException.java @@ -0,0 +1,20 @@ @@ -278,7 +278,7 @@ index 000000000..f016ba3b1 \ No newline at end of file diff --git a/src/main/java/com/destroystokyo/paper/exception/ServerPluginException.java b/src/main/java/com/destroystokyo/paper/exception/ServerPluginException.java new file mode 100644 -index 000000000..6defac287 +index 00000000..6defac28 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/exception/ServerPluginException.java @@ -0,0 +1,38 @@ @@ -322,7 +322,7 @@ index 000000000..6defac287 +} diff --git a/src/main/java/com/destroystokyo/paper/exception/ServerPluginMessageException.java b/src/main/java/com/destroystokyo/paper/exception/ServerPluginMessageException.java new file mode 100644 -index 000000000..89e132525 +index 00000000..89e13252 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/exception/ServerPluginMessageException.java @@ -0,0 +1,64 @@ @@ -392,7 +392,7 @@ index 000000000..89e132525 +} diff --git a/src/main/java/com/destroystokyo/paper/exception/ServerSchedulerException.java b/src/main/java/com/destroystokyo/paper/exception/ServerSchedulerException.java new file mode 100644 -index 000000000..2d0b2d4a9 +index 00000000..2d0b2d4a --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/exception/ServerSchedulerException.java @@ -0,0 +1,37 @@ @@ -435,7 +435,7 @@ index 000000000..2d0b2d4a9 +} diff --git a/src/main/java/com/destroystokyo/paper/exception/ServerTabCompleteException.java b/src/main/java/com/destroystokyo/paper/exception/ServerTabCompleteException.java new file mode 100644 -index 000000000..5582999fe +index 00000000..5582999f --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/exception/ServerTabCompleteException.java @@ -0,0 +1,22 @@ @@ -462,7 +462,7 @@ index 000000000..5582999fe + } +} diff --git a/src/main/java/org/bukkit/command/SimpleCommandMap.java b/src/main/java/org/bukkit/command/SimpleCommandMap.java -index f020cb04e..adfc7aae2 100644 +index f020cb04..adfc7aae 100644 --- a/src/main/java/org/bukkit/command/SimpleCommandMap.java +++ b/src/main/java/org/bukkit/command/SimpleCommandMap.java @@ -8,6 +8,10 @@ import java.util.HashMap; @@ -504,7 +504,7 @@ index f020cb04e..adfc7aae2 100644 } diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -index 78a2d2f8d..aa0c809a6 100644 +index 53e5045f..9a09b4d2 100644 --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java +++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java @@ -19,6 +19,10 @@ import java.util.WeakHashMap; @@ -517,8 +517,8 @@ index 78a2d2f8d..aa0c809a6 100644 +import com.destroystokyo.paper.exception.ServerPluginEnableDisableException; import org.apache.commons.lang.Validate; import org.bukkit.Server; - import org.bukkit.command.Command; -@@ -414,7 +418,8 @@ public final class SimplePluginManager implements PluginManager { + import org.bukkit.World; +@@ -415,7 +419,8 @@ public final class SimplePluginManager implements PluginManager { try { plugin.getPluginLoader().enablePlugin(plugin); } catch (Throwable ex) { @@ -528,7 +528,7 @@ index 78a2d2f8d..aa0c809a6 100644 } HandlerList.bakeAll(); -@@ -435,36 +440,48 @@ public final class SimplePluginManager implements PluginManager { +@@ -436,32 +441,37 @@ public final class SimplePluginManager implements PluginManager { try { plugin.getPluginLoader().disablePlugin(plugin); } catch (Throwable ex) { @@ -569,6 +569,9 @@ index 78a2d2f8d..aa0c809a6 100644 + handlePluginException("Error occurred (in the plugin loader) while unregistering plugin channels for " + + plugin.getDescription().getFullName() + " (Is it up to date?)", ex, plugin); // Paper } + + try { +@@ -474,6 +484,13 @@ public final class SimplePluginManager implements PluginManager { } } @@ -582,7 +585,7 @@ index 78a2d2f8d..aa0c809a6 100644 @Override public void clearPlugins() { synchronized (this) { -@@ -531,7 +548,13 @@ public final class SimplePluginManager implements PluginManager { +@@ -540,7 +557,13 @@ public final class SimplePluginManager implements PluginManager { )); } } catch (Throwable ex) { @@ -598,5 +601,5 @@ index 78a2d2f8d..aa0c809a6 100644 } } -- -2.21.0 +2.22.0 diff --git a/Spigot-API-Patches/0025-Add-command-to-reload-permissions.yml-and-require-co.patch b/Spigot-API-Patches/0025-Add-command-to-reload-permissions.yml-and-require-co.patch index ec62c06d5a..9447838efc 100644 --- a/Spigot-API-Patches/0025-Add-command-to-reload-permissions.yml-and-require-co.patch +++ b/Spigot-API-Patches/0025-Add-command-to-reload-permissions.yml-and-require-co.patch @@ -1,4 +1,4 @@ -From 7cb7e67c183da92f4851a923932160fd2e5d8c2a Mon Sep 17 00:00:00 2001 +From b573cff5fd3fc21d5fd4528473ad4b574900ce4b Mon Sep 17 00:00:00 2001 From: William Date: Fri, 18 Mar 2016 03:28:07 -0400 Subject: [PATCH] Add command to reload permissions.yml and require confirm to @@ -6,7 +6,7 @@ Subject: [PATCH] Add command to reload permissions.yml and require confirm to diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index b92304e9b..a3682b291 100644 +index b92304e9..a3682b29 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java @@ -1516,6 +1516,13 @@ public final class Bukkit { @@ -24,7 +24,7 @@ index b92304e9b..a3682b291 100644 @NotNull diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index d35d2deff..18faba0e2 100644 +index d35d2def..18faba0e 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java @@ -1338,4 +1338,6 @@ public interface Server extends PluginMessageRecipient { @@ -35,7 +35,7 @@ index d35d2deff..18faba0e2 100644 + void reloadPermissions(); // Paper } diff --git a/src/main/java/org/bukkit/command/defaults/ReloadCommand.java b/src/main/java/org/bukkit/command/defaults/ReloadCommand.java -index 50cc311be..c62da4131 100644 +index 50cc311b..c62da413 100644 --- a/src/main/java/org/bukkit/command/defaults/ReloadCommand.java +++ b/src/main/java/org/bukkit/command/defaults/ReloadCommand.java @@ -13,15 +13,35 @@ public class ReloadCommand extends BukkitCommand { @@ -85,10 +85,10 @@ index 50cc311be..c62da4131 100644 } } diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -index aa0c809a6..4cbec1f11 100644 +index 9a09b4d2..c7388d51 100644 --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java +++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -@@ -808,4 +808,13 @@ public final class SimplePluginManager implements PluginManager { +@@ -817,4 +817,13 @@ public final class SimplePluginManager implements PluginManager { public void useTimings(boolean use) { co.aikar.timings.Timings.setTimingsEnabled(use); // Paper } @@ -103,5 +103,5 @@ index aa0c809a6..4cbec1f11 100644 + } -- -2.21.0 +2.22.0 diff --git a/Spigot-API-Patches/0047-Provide-E-TE-Chunk-count-stat-methods.patch b/Spigot-API-Patches/0047-Provide-E-TE-Chunk-count-stat-methods.patch index 3da26824be..97c8574532 100644 --- a/Spigot-API-Patches/0047-Provide-E-TE-Chunk-count-stat-methods.patch +++ b/Spigot-API-Patches/0047-Provide-E-TE-Chunk-count-stat-methods.patch @@ -1,4 +1,4 @@ -From a9222d3c4350c8a74f59350de1232146f4b4630b Mon Sep 17 00:00:00 2001 +From 41416263ef8de31d9129e830cfffaf406bc56060 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 7 Jan 2017 15:23:03 -0500 Subject: [PATCH] Provide E/TE/Chunk count stat methods @@ -7,10 +7,10 @@ Provides counts without the ineffeciency of using .getEntities().size() which creates copy of the collections. diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index ac7ef3c8b..d1d64fb60 100644 +index 4af195b4..58414e01 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -38,6 +38,33 @@ import org.jetbrains.annotations.Nullable; +@@ -39,6 +39,33 @@ import org.jetbrains.annotations.Nullable; */ public interface World extends PluginMessageRecipient, Metadatable { @@ -45,5 +45,5 @@ index ac7ef3c8b..d1d64fb60 100644 * Gets the {@link Block} at the given coordinates * -- -2.21.0 +2.22.0 diff --git a/Spigot-API-Patches/0051-Fix-upstream-javadoc-warnings-and-errors.patch b/Spigot-API-Patches/0051-Fix-upstream-javadoc-warnings-and-errors.patch index 9911a58ee0..a25bd36528 100644 --- a/Spigot-API-Patches/0051-Fix-upstream-javadoc-warnings-and-errors.patch +++ b/Spigot-API-Patches/0051-Fix-upstream-javadoc-warnings-and-errors.patch @@ -1,4 +1,4 @@ -From 9ad73aaf9aa66daca16e4f2ae7482ef3f2c8fe07 Mon Sep 17 00:00:00 2001 +From bb553c5f1fecc0bde9c2adf69e47645a07389865 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Sat, 10 Jun 2017 16:59:40 -0500 Subject: [PATCH] Fix upstream javadoc warnings and errors @@ -6,10 +6,10 @@ Subject: [PATCH] Fix upstream javadoc warnings and errors Upstream still refuses to use Java 8 with the API so they are likely unaware these are even issues. diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index d1d64fb6..2fe46faf 100644 +index 58414e01..3cd4bff1 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -1657,6 +1657,7 @@ public interface World extends PluginMessageRecipient, Metadatable { +@@ -1746,6 +1746,7 @@ public interface World extends PluginMessageRecipient, Metadatable { * @param count the number of particles * @param data the data to use for the particle or null, * the type of this depends on {@link Particle#getDataType()} @@ -17,7 +17,7 @@ index d1d64fb6..2fe46faf 100644 */ public void spawnParticle(@NotNull Particle particle, @NotNull Location location, int count, @Nullable T data); -@@ -1673,6 +1674,7 @@ public interface World extends PluginMessageRecipient, Metadatable { +@@ -1762,6 +1763,7 @@ public interface World extends PluginMessageRecipient, Metadatable { * @param count the number of particles * @param data the data to use for the particle or null, * the type of this depends on {@link Particle#getDataType()} @@ -25,7 +25,7 @@ index d1d64fb6..2fe46faf 100644 */ public void spawnParticle(@NotNull Particle particle, double x, double y, double z, int count, @Nullable T data); -@@ -1723,6 +1725,7 @@ public interface World extends PluginMessageRecipient, Metadatable { +@@ -1812,6 +1814,7 @@ public interface World extends PluginMessageRecipient, Metadatable { * @param offsetZ the maximum random offset on the Z axis * @param data the data to use for the particle or null, * the type of this depends on {@link Particle#getDataType()} @@ -33,7 +33,7 @@ index d1d64fb6..2fe46faf 100644 */ public void spawnParticle(@NotNull Particle particle, @NotNull Location location, int count, double offsetX, double offsetY, double offsetZ, @Nullable T data); -@@ -1743,6 +1746,7 @@ public interface World extends PluginMessageRecipient, Metadatable { +@@ -1832,6 +1835,7 @@ public interface World extends PluginMessageRecipient, Metadatable { * @param offsetZ the maximum random offset on the Z axis * @param data the data to use for the particle or null, * the type of this depends on {@link Particle#getDataType()} @@ -41,7 +41,7 @@ index d1d64fb6..2fe46faf 100644 */ public void spawnParticle(@NotNull Particle particle, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ, @Nullable T data); -@@ -1799,6 +1803,7 @@ public interface World extends PluginMessageRecipient, Metadatable { +@@ -1888,6 +1892,7 @@ public interface World extends PluginMessageRecipient, Metadatable { * particle used (normally speed) * @param data the data to use for the particle or null, * the type of this depends on {@link Particle#getDataType()} @@ -49,7 +49,7 @@ index d1d64fb6..2fe46faf 100644 */ public void spawnParticle(@NotNull Particle particle, @NotNull Location location, int count, double offsetX, double offsetY, double offsetZ, double extra, @Nullable T data); -@@ -1821,6 +1826,7 @@ public interface World extends PluginMessageRecipient, Metadatable { +@@ -1910,6 +1915,7 @@ public interface World extends PluginMessageRecipient, Metadatable { * particle used (normally speed) * @param data the data to use for the particle or null, * the type of this depends on {@link Particle#getDataType()} @@ -57,7 +57,7 @@ index d1d64fb6..2fe46faf 100644 */ public void spawnParticle(@NotNull Particle particle, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ, double extra, @Nullable T data); -@@ -1844,6 +1850,7 @@ public interface World extends PluginMessageRecipient, Metadatable { +@@ -1933,6 +1939,7 @@ public interface World extends PluginMessageRecipient, Metadatable { * @param force whether to send the particle to players within an extended * range and encourage their client to render it regardless of * settings @@ -65,7 +65,7 @@ index d1d64fb6..2fe46faf 100644 */ public void spawnParticle(@NotNull Particle particle, @NotNull Location location, int count, double offsetX, double offsetY, double offsetZ, double extra, @Nullable T data, boolean force); -@@ -1869,6 +1876,7 @@ public interface World extends PluginMessageRecipient, Metadatable { +@@ -1958,6 +1965,7 @@ public interface World extends PluginMessageRecipient, Metadatable { * @param force whether to send the particle to players within an extended * range and encourage their client to render it regardless of * settings diff --git a/Spigot-API-Patches/0095-Additional-world.getNearbyEntities-API-s.patch b/Spigot-API-Patches/0095-Additional-world.getNearbyEntities-API-s.patch index 9da915c756..8d4cbe9590 100644 --- a/Spigot-API-Patches/0095-Additional-world.getNearbyEntities-API-s.patch +++ b/Spigot-API-Patches/0095-Additional-world.getNearbyEntities-API-s.patch @@ -1,4 +1,4 @@ -From b6d5548e3c0283d1890cd693fa897857dbd51753 Mon Sep 17 00:00:00 2001 +From 8086435d3bbd0275e9ac6bf4e5d5492e8646e3f7 Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 30 Apr 2018 17:55:28 -0400 Subject: [PATCH] Additional world.getNearbyEntities API's @@ -6,7 +6,7 @@ Subject: [PATCH] Additional world.getNearbyEntities API's Provides more methods to get nearby entities, and filter by types and predicates diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 2fe46faf0..e1e674bab 100644 +index 3cd4bff1..36ec897f 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -1,6 +1,9 @@ @@ -19,7 +19,7 @@ index 2fe46faf0..e1e674bab 100644 import java.util.Collection; import java.util.HashMap; import java.util.List; -@@ -497,6 +500,256 @@ public interface World extends PluginMessageRecipient, Metadatable { +@@ -586,6 +589,256 @@ public interface World extends PluginMessageRecipient, Metadatable { @NotNull public Collection getEntitiesByClasses(@NotNull Class... classes); @@ -277,7 +277,7 @@ index 2fe46faf0..e1e674bab 100644 * Get a list of all players in this World * diff --git a/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java b/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java -index 6c09ea6c6..76c4a1a6e 100644 +index 6c09ea6c..76c4a1a6 100644 --- a/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java +++ b/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java @@ -42,8 +42,7 @@ public class AsyncPlayerPreLoginEvent extends Event { @@ -291,5 +291,5 @@ index 6c09ea6c6..76c4a1a6e 100644 */ public void setPlayerProfile(@NotNull PlayerProfile profile) { -- -2.21.0 +2.22.0 diff --git a/Spigot-API-Patches/0097-Expand-World.spawnParticle-API-and-add-Builder.patch b/Spigot-API-Patches/0097-Expand-World.spawnParticle-API-and-add-Builder.patch index 2fc1321bb0..e8442a60ba 100644 --- a/Spigot-API-Patches/0097-Expand-World.spawnParticle-API-and-add-Builder.patch +++ b/Spigot-API-Patches/0097-Expand-World.spawnParticle-API-and-add-Builder.patch @@ -1,4 +1,4 @@ -From e549038128456cfdb7cf53fb683c7575dc6348cb Mon Sep 17 00:00:00 2001 +From 23f4f165f9e35104affa80198efc5aaddcc1fc22 Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 29 Aug 2017 23:58:48 -0400 Subject: [PATCH] Expand World.spawnParticle API and add Builder @@ -10,7 +10,7 @@ This adds a new Builder API which is much friendlier to use. diff --git a/src/main/java/com/destroystokyo/paper/ParticleBuilder.java b/src/main/java/com/destroystokyo/paper/ParticleBuilder.java new file mode 100644 -index 000000000..06f1602f5 +index 00000000..06f1602f --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/ParticleBuilder.java @@ -0,0 +1,478 @@ @@ -493,7 +493,7 @@ index 000000000..06f1602f5 + } +} diff --git a/src/main/java/org/bukkit/Particle.java b/src/main/java/org/bukkit/Particle.java -index 68cb74420..69aae30a3 100644 +index 68cb7442..69aae30a 100644 --- a/src/main/java/org/bukkit/Particle.java +++ b/src/main/java/org/bukkit/Particle.java @@ -92,6 +92,17 @@ public enum Particle { @@ -515,10 +515,10 @@ index 68cb74420..69aae30a3 100644 * Options which can be applied to redstone dust particles - a particle * color and size. diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index e1e674bab..fbd61137d 100644 +index 36ec897f..57cc72a1 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -2081,7 +2081,57 @@ public interface World extends PluginMessageRecipient, Metadatable { +@@ -2170,7 +2170,57 @@ public interface World extends PluginMessageRecipient, Metadatable { * the type of this depends on {@link Particle#getDataType()} * @param Type */ @@ -578,5 +578,5 @@ index e1e674bab..fbd61137d 100644 /** * Spawns the particle (the number of times specified by count) -- -2.21.0 +2.22.0 diff --git a/Spigot-API-Patches/0099-Close-Plugin-Class-Loaders-on-Disable.patch b/Spigot-API-Patches/0099-Close-Plugin-Class-Loaders-on-Disable.patch index d6f5a92c53..26705cfb77 100644 --- a/Spigot-API-Patches/0099-Close-Plugin-Class-Loaders-on-Disable.patch +++ b/Spigot-API-Patches/0099-Close-Plugin-Class-Loaders-on-Disable.patch @@ -1,4 +1,4 @@ -From da5e5bf8a3dba0a6586ef65001ab662466726386 Mon Sep 17 00:00:00 2001 +From 14c718e37affff0ccd3d443a988c9d38c332e1ec Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 1 May 2018 21:33:35 -0400 Subject: [PATCH] Close Plugin Class Loaders on Disable @@ -7,7 +7,7 @@ This should close more memory leaks from /reload and disabling plugins, by closing the class loader and the jar file. diff --git a/src/main/java/org/bukkit/plugin/PluginLoader.java b/src/main/java/org/bukkit/plugin/PluginLoader.java -index a88733f1c..6ab9cd821 100644 +index a88733f1..6ab9cd82 100644 --- a/src/main/java/org/bukkit/plugin/PluginLoader.java +++ b/src/main/java/org/bukkit/plugin/PluginLoader.java @@ -77,4 +77,18 @@ public interface PluginLoader { @@ -30,7 +30,7 @@ index a88733f1c..6ab9cd821 100644 + // Paper end - close Classloader on disable } diff --git a/src/main/java/org/bukkit/plugin/PluginManager.java b/src/main/java/org/bukkit/plugin/PluginManager.java -index 41e26451f..86cc5025a 100644 +index 41e26451..86cc5025 100644 --- a/src/main/java/org/bukkit/plugin/PluginManager.java +++ b/src/main/java/org/bukkit/plugin/PluginManager.java @@ -161,6 +161,18 @@ public interface PluginManager { @@ -53,10 +53,10 @@ index 41e26451f..86cc5025a 100644 * Gets a {@link Permission} from its fully qualified name * diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -index 4cbec1f11..da3cd63ba 100644 +index c7388d51..132c861c 100644 --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java +++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -@@ -428,17 +428,28 @@ public final class SimplePluginManager implements PluginManager { +@@ -429,17 +429,28 @@ public final class SimplePluginManager implements PluginManager { @Override public void disablePlugins() { @@ -87,7 +87,7 @@ index 4cbec1f11..da3cd63ba 100644 } catch (Throwable ex) { handlePluginException("Error occurred (in the plugin loader) while disabling " + plugin.getDescription().getFullName() + " (Is it up to date?)", ex, plugin); // Paper -@@ -485,7 +496,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -494,7 +505,7 @@ public final class SimplePluginManager implements PluginManager { @Override public void clearPlugins() { synchronized (this) { @@ -97,7 +97,7 @@ index 4cbec1f11..da3cd63ba 100644 lookupNames.clear(); HandlerList.unregisterAll(); diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java -index 06b6724fa..bc7bf6a35 100644 +index 06b6724f..bc7bf6a3 100644 --- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java +++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java @@ -332,7 +332,7 @@ public final class JavaPluginLoader implements PluginLoader { @@ -140,5 +140,5 @@ index 06b6724fa..bc7bf6a35 100644 } } -- -2.21.0 +2.22.0 diff --git a/Spigot-API-Patches/0112-Expand-Explosions-API.patch b/Spigot-API-Patches/0112-Expand-Explosions-API.patch index 68c1b594e6..4d4e9c1332 100644 --- a/Spigot-API-Patches/0112-Expand-Explosions-API.patch +++ b/Spigot-API-Patches/0112-Expand-Explosions-API.patch @@ -1,4 +1,4 @@ -From ca078fe03ed09a84d9259845420a2ba39b6fb3c2 Mon Sep 17 00:00:00 2001 +From 3fa86b529ef58e6c6640f2e5706ba66fbce7aa72 Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 19 Dec 2017 16:24:42 -0500 Subject: [PATCH] Expand Explosions API @@ -6,7 +6,7 @@ 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/Location.java b/src/main/java/org/bukkit/Location.java -index 5730d5f46..b226d7e4c 100644 +index 5730d5f4..b226d7e4 100644 --- a/src/main/java/org/bukkit/Location.java +++ b/src/main/java/org/bukkit/Location.java @@ -7,6 +7,7 @@ import java.util.HashMap; @@ -106,10 +106,10 @@ index 5730d5f46..b226d7e4c 100644 * Returns a list of entities within a bounding box centered around a Location. * diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index fbd61137d..8f69dced1 100644 +index 57cc72a1..8c767a0b 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -1201,6 +1201,102 @@ public interface World extends PluginMessageRecipient, Metadatable { +@@ -1290,6 +1290,102 @@ public interface World extends PluginMessageRecipient, Metadatable { */ public boolean createExplosion(@NotNull Location loc, float power, boolean setFire); @@ -213,5 +213,5 @@ index fbd61137d..8f69dced1 100644 * Gets the {@link Environment} type of this world * -- -2.21.0 +2.22.0 diff --git a/Spigot-API-Patches/0116-Add-World.getEntity-UUID-API.patch b/Spigot-API-Patches/0116-Add-World.getEntity-UUID-API.patch index 8b9c3cea57..992e530bab 100644 --- a/Spigot-API-Patches/0116-Add-World.getEntity-UUID-API.patch +++ b/Spigot-API-Patches/0116-Add-World.getEntity-UUID-API.patch @@ -1,14 +1,14 @@ -From efe1b331eec301bd30a17c3f48dd3f0f22356f03 Mon Sep 17 00:00:00 2001 +From 0bb3c623b122920cdc6ebddc18810ed271f63d76 Mon Sep 17 00:00:00 2001 From: Brokkonaut Date: Tue, 3 Jul 2018 16:07:16 +0200 Subject: [PATCH] Add World.getEntity(UUID) API diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 8f69dced1..0b3283153 100644 +index 8c767a0b..fec5cdc3 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -776,6 +776,17 @@ public interface World extends PluginMessageRecipient, Metadatable { +@@ -865,6 +865,17 @@ public interface World extends PluginMessageRecipient, Metadatable { @NotNull public Collection getNearbyEntities(@NotNull Location location, double x, double y, double z); @@ -27,5 +27,5 @@ index 8f69dced1..0b3283153 100644 * Returns a list of entities within a bounding box centered around a * Location. -- -2.21.0 +2.22.0 diff --git a/Spigot-API-Patches/0129-Remove-deadlock-risk-in-firing-async-events.patch b/Spigot-API-Patches/0129-Remove-deadlock-risk-in-firing-async-events.patch index ae19a54d2c..08958d255c 100644 --- a/Spigot-API-Patches/0129-Remove-deadlock-risk-in-firing-async-events.patch +++ b/Spigot-API-Patches/0129-Remove-deadlock-risk-in-firing-async-events.patch @@ -1,4 +1,4 @@ -From 47329276123baf9d077f10ba1686f54e85ef861f Mon Sep 17 00:00:00 2001 +From e724746a98cf149f377d9a442782dc448abb8405 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 9 Sep 2018 00:32:05 -0400 Subject: [PATCH] Remove deadlock risk in firing async events @@ -16,7 +16,7 @@ which results in a hard crash. This change removes the synchronize and adds some protection around enable/disable diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index adca48f18..2d3cee140 100644 +index adca48f1..2d3cee14 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java @@ -28,7 +28,7 @@ import org.jetbrains.annotations.Nullable; @@ -29,10 +29,10 @@ index adca48f18..2d3cee140 100644 * * @return a new copy of Location containing the position of this entity diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -index da3cd63ba..5eefb4b5b 100644 +index 132c861c..d0e735bc 100644 --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java +++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -@@ -398,7 +398,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -399,7 +399,7 @@ public final class SimplePluginManager implements PluginManager { * @return true if the plugin is enabled, otherwise false */ @Override @@ -41,7 +41,7 @@ index da3cd63ba..5eefb4b5b 100644 if ((plugin != null) && (plugins.contains(plugin))) { return plugin.isEnabled(); } else { -@@ -407,7 +407,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -408,7 +408,7 @@ public final class SimplePluginManager implements PluginManager { } @Override @@ -50,7 +50,7 @@ index da3cd63ba..5eefb4b5b 100644 if (!plugin.isEnabled()) { List pluginCommands = PluginCommandYamlParser.parse(plugin); -@@ -445,7 +445,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -446,7 +446,7 @@ public final class SimplePluginManager implements PluginManager { } @Override @@ -59,7 +59,7 @@ index da3cd63ba..5eefb4b5b 100644 // Paper end - close Classloader on disable if (plugin.isEnabled()) { try { -@@ -506,6 +506,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -515,6 +515,7 @@ public final class SimplePluginManager implements PluginManager { defaultPerms.get(false).clear(); } } @@ -67,7 +67,7 @@ index da3cd63ba..5eefb4b5b 100644 /** * Calls an event with the given details. -@@ -516,25 +517,13 @@ public final class SimplePluginManager implements PluginManager { +@@ -525,25 +526,13 @@ public final class SimplePluginManager implements PluginManager { */ @Override public void callEvent(@NotNull Event event) { @@ -99,7 +99,7 @@ index da3cd63ba..5eefb4b5b 100644 RegisteredListener[] listeners = handlers.getRegisteredListeners(); diff --git a/src/test/java/org/bukkit/plugin/PluginManagerTest.java b/src/test/java/org/bukkit/plugin/PluginManagerTest.java -index 17dbe9139..bae26ce73 100644 +index 17dbe913..bae26ce7 100644 --- a/src/test/java/org/bukkit/plugin/PluginManagerTest.java +++ b/src/test/java/org/bukkit/plugin/PluginManagerTest.java @@ -17,7 +17,7 @@ public class PluginManagerTest { @@ -138,5 +138,5 @@ index 17dbe9139..bae26ce73 100644 @Test public void testRemovePermissionByNameLower() { -- -2.21.0 +2.22.0 diff --git a/Spigot-API-Patches/0132-Provide-Chunk-Coordinates-as-a-Long-API.patch b/Spigot-API-Patches/0132-Provide-Chunk-Coordinates-as-a-Long-API.patch index c2edc76b33..001d050454 100644 --- a/Spigot-API-Patches/0132-Provide-Chunk-Coordinates-as-a-Long-API.patch +++ b/Spigot-API-Patches/0132-Provide-Chunk-Coordinates-as-a-Long-API.patch @@ -1,4 +1,4 @@ -From 1e67701a6678aa3fb65e60d79fc74ac0c52f91db Mon Sep 17 00:00:00 2001 +From 8be7e3993740a66b5065a9c12d4557a874e9f8cc Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 4 Aug 2018 19:37:35 -0400 Subject: [PATCH] Provide Chunk Coordinates as a Long API @@ -7,10 +7,10 @@ Allows you to easily access the chunks X/z as a long, and a method to look up by the long key too. diff --git a/src/main/java/org/bukkit/Chunk.java b/src/main/java/org/bukkit/Chunk.java -index aab292e1a..fe77e33ae 100644 +index 58cf0dde..b00c5613 100644 --- a/src/main/java/org/bukkit/Chunk.java +++ b/src/main/java/org/bukkit/Chunk.java -@@ -24,6 +24,32 @@ public interface Chunk { +@@ -26,6 +26,32 @@ public interface Chunk { */ int getZ(); @@ -44,10 +44,10 @@ index aab292e1a..fe77e33ae 100644 * Gets the world containing this chunk * diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 0b3283153..32be52109 100644 +index fec5cdc3..189df011 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -157,6 +157,22 @@ public interface World extends PluginMessageRecipient, Metadatable { +@@ -158,6 +158,22 @@ public interface World extends PluginMessageRecipient, Metadatable { @NotNull public Chunk getChunkAt(@NotNull Block block); @@ -71,5 +71,5 @@ index 0b3283153..32be52109 100644 * Checks if the specified {@link Chunk} is loaded * -- -2.21.0 +2.22.0 diff --git a/Spigot-API-Patches/0133-Async-Chunks-API.patch b/Spigot-API-Patches/0133-Async-Chunks-API.patch index 7f26344bed..c1a33e7873 100644 --- a/Spigot-API-Patches/0133-Async-Chunks-API.patch +++ b/Spigot-API-Patches/0133-Async-Chunks-API.patch @@ -1,4 +1,4 @@ -From e866bb6eb7f296f05896484fce73762e59f2d3d9 Mon Sep 17 00:00:00 2001 +From b8c066af3a770415b3ca9f8a8a16f19a6b1a6f8c Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 29 Feb 2016 17:43:33 -0600 Subject: [PATCH] Async Chunks API @@ -8,10 +8,10 @@ Adds API's to load or generate chunks asynchronously. Also adds utility methods to Entity to teleport asynchronously. diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 32be52109..0981675de 100644 +index 189df011..d4fcbf60 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -171,6 +171,358 @@ public interface World extends PluginMessageRecipient, Metadatable { +@@ -172,6 +172,358 @@ public interface World extends PluginMessageRecipient, Metadatable { public default Chunk getChunkAt(long chunkKey) { return getChunkAt((int) chunkKey, (int) (chunkKey >> 32)); } @@ -371,7 +371,7 @@ index 32be52109..0981675de 100644 /** diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 2d3cee140..f41243f92 100644 +index 2d3cee14..f41243f9 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java @@ -157,6 +157,30 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent @@ -406,5 +406,5 @@ index 2d3cee140..f41243f92 100644 * Returns a list of entities within a bounding box centered around this * entity -- -2.21.0 +2.22.0 diff --git a/Spigot-API-Patches/0135-Ability-to-get-Tile-Entities-from-a-chunk-without-sn.patch b/Spigot-API-Patches/0135-Ability-to-get-Tile-Entities-from-a-chunk-without-sn.patch index becd5811e5..7090646c0a 100644 --- a/Spigot-API-Patches/0135-Ability-to-get-Tile-Entities-from-a-chunk-without-sn.patch +++ b/Spigot-API-Patches/0135-Ability-to-get-Tile-Entities-from-a-chunk-without-sn.patch @@ -1,14 +1,14 @@ -From 70a70adf0677f59455399810bd75c9244acbda2b Mon Sep 17 00:00:00 2001 +From c450f7747478f3c2ca042ba4afc6aa65f76b156a Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 15 Aug 2018 01:04:58 -0400 Subject: [PATCH] Ability to get Tile Entities from a chunk without snapshots diff --git a/src/main/java/org/bukkit/Chunk.java b/src/main/java/org/bukkit/Chunk.java -index fe77e33ae..6d45a4213 100644 +index b00c5613..0abd4377 100644 --- a/src/main/java/org/bukkit/Chunk.java +++ b/src/main/java/org/bukkit/Chunk.java -@@ -99,13 +99,26 @@ public interface Chunk { +@@ -101,13 +101,26 @@ public interface Chunk { @NotNull Entity[] getEntities(); @@ -37,5 +37,5 @@ index fe77e33ae..6d45a4213 100644 /** * Checks if the chunk is loaded. -- -2.21.0 +2.22.0 diff --git a/Spigot-API-Patches/0137-Allow-Blocks-to-be-accessed-via-a-long-key.patch b/Spigot-API-Patches/0137-Allow-Blocks-to-be-accessed-via-a-long-key.patch index bd2bcb1d39..0952961514 100644 --- a/Spigot-API-Patches/0137-Allow-Blocks-to-be-accessed-via-a-long-key.patch +++ b/Spigot-API-Patches/0137-Allow-Blocks-to-be-accessed-via-a-long-key.patch @@ -1,4 +1,4 @@ -From f3e2fafbc28097c5d98f6b06eac3312f7b3359df Mon Sep 17 00:00:00 2001 +From 039fde9628b4eb210babf96765eb25678fda8959 Mon Sep 17 00:00:00 2001 From: Spottedleaf Date: Tue, 14 Aug 2018 21:42:10 -0700 Subject: [PATCH] Allow Blocks to be accessed via a long key @@ -18,7 +18,7 @@ Y range: [0, 1023] X, Z range: [-67 108 864, 67 108 863] diff --git a/src/main/java/org/bukkit/Location.java b/src/main/java/org/bukkit/Location.java -index 884862ab7..6dc399899 100644 +index 884862ab..6dc39989 100644 --- a/src/main/java/org/bukkit/Location.java +++ b/src/main/java/org/bukkit/Location.java @@ -15,7 +15,6 @@ import org.jetbrains.annotations.Nullable; @@ -48,10 +48,10 @@ index 884862ab7..6dc399899 100644 * @return A new location where X/Y/Z are the center of the block */ diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 0981675de..c840d4744 100644 +index d4fcbf60..ce128016 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -88,6 +88,38 @@ public interface World extends PluginMessageRecipient, Metadatable { +@@ -89,6 +89,38 @@ public interface World extends PluginMessageRecipient, Metadatable { @NotNull public Block getBlockAt(@NotNull Location location); @@ -91,7 +91,7 @@ index 0981675de..c840d4744 100644 * Gets the y coordinate of the lowest block at this position such that the * block and all blocks above it are transparent for lighting purposes. diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java -index af4ffada0..87185a812 100644 +index af4ffada..87185a81 100644 --- a/src/main/java/org/bukkit/block/Block.java +++ b/src/main/java/org/bukkit/block/Block.java @@ -152,6 +152,72 @@ public interface Block extends Metadatable { @@ -168,5 +168,5 @@ index af4ffada0..87185a812 100644 * Gets the Location of the block * -- -2.21.0 +2.22.0 diff --git a/Spigot-API-Patches/0139-isChunkGenerated-API.patch b/Spigot-API-Patches/0139-isChunkGenerated-API.patch index d4e4c1a439..b0a2f6c48c 100644 --- a/Spigot-API-Patches/0139-isChunkGenerated-API.patch +++ b/Spigot-API-Patches/0139-isChunkGenerated-API.patch @@ -1,11 +1,11 @@ -From f5af00ccb749947bd86f23094347818c36e6baa6 Mon Sep 17 00:00:00 2001 +From bebdec693bd0350c7d1be2671eb057542d66db03 Mon Sep 17 00:00:00 2001 From: cswhite2000 <18whitechristop@gmail.com> Date: Tue, 21 Aug 2018 19:39:46 -0700 Subject: [PATCH] isChunkGenerated API diff --git a/src/main/java/org/bukkit/Location.java b/src/main/java/org/bukkit/Location.java -index 6dc399899..4e69f277b 100644 +index 6dc39989..4e69f277 100644 --- a/src/main/java/org/bukkit/Location.java +++ b/src/main/java/org/bukkit/Location.java @@ -3,6 +3,7 @@ package org.bukkit; @@ -34,10 +34,10 @@ index 6dc399899..4e69f277b 100644 /** * Sets the position of this Location and returns itself diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index c840d4744..93dd8742a 100644 +index ce128016..30b3d9a8 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -204,6 +204,17 @@ public interface World extends PluginMessageRecipient, Metadatable { +@@ -205,6 +205,17 @@ public interface World extends PluginMessageRecipient, Metadatable { return getChunkAt((int) chunkKey, (int) (chunkKey >> 32)); } @@ -56,5 +56,5 @@ index c840d4744..93dd8742a 100644 * This is the Legacy API before Java 8 was supported. Java 8 Consumer is provided, * as well as future support -- -2.21.0 +2.22.0 diff --git a/Spigot-API-Patches/0158-Add-sun-related-API.patch b/Spigot-API-Patches/0158-Add-sun-related-API.patch index 89288e49d7..ea35a48e68 100644 --- a/Spigot-API-Patches/0158-Add-sun-related-API.patch +++ b/Spigot-API-Patches/0158-Add-sun-related-API.patch @@ -1,14 +1,14 @@ -From 746192f54fde62f5440a02e2331ba996199dcdab Mon Sep 17 00:00:00 2001 +From 2da2459f920db384979afaf261bf21c33bf24bb7 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Sun, 7 Oct 2018 00:54:15 -0500 Subject: [PATCH] Add sun related API diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 93dd8742a..1818e158f 100644 +index 30b3d9a8..b02cda3e 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -1508,6 +1508,16 @@ public interface World extends PluginMessageRecipient, Metadatable { +@@ -1597,6 +1597,16 @@ public interface World extends PluginMessageRecipient, Metadatable { */ public void setFullTime(long time); @@ -26,7 +26,7 @@ index 93dd8742a..1818e158f 100644 * Returns whether the world has an ongoing storm. * diff --git a/src/main/java/org/bukkit/entity/Mob.java b/src/main/java/org/bukkit/entity/Mob.java -index afdc103fe..784db447d 100644 +index afdc103f..784db447 100644 --- a/src/main/java/org/bukkit/entity/Mob.java +++ b/src/main/java/org/bukkit/entity/Mob.java @@ -16,6 +16,13 @@ public interface Mob extends LivingEntity, Lootable { @@ -44,5 +44,5 @@ index afdc103fe..784db447d 100644 /** -- -2.21.0 +2.22.0 diff --git a/Spigot-API-Patches/0181-Add-Heightmap-API.patch b/Spigot-API-Patches/0181-Add-Heightmap-API.patch index fcbc60271a..0904ac66f2 100644 --- a/Spigot-API-Patches/0181-Add-Heightmap-API.patch +++ b/Spigot-API-Patches/0181-Add-Heightmap-API.patch @@ -1,4 +1,4 @@ -From 72dc38ce5099686082ed1b2f03f692b261783650 Mon Sep 17 00:00:00 2001 +From 8f07bbb425c028ff4d52daf6f08197239c8436e1 Mon Sep 17 00:00:00 2001 From: Spottedleaf Date: Sat, 1 Dec 2018 19:00:36 -0800 Subject: [PATCH] Add Heightmap API @@ -6,7 +6,7 @@ Subject: [PATCH] Add Heightmap API diff --git a/src/main/java/com/destroystokyo/paper/HeightmapType.java b/src/main/java/com/destroystokyo/paper/HeightmapType.java new file mode 100644 -index 000000000..4cd9b5ed0 +index 00000000..4cd9b5ed --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/HeightmapType.java @@ -0,0 +1,35 @@ @@ -46,7 +46,7 @@ index 000000000..4cd9b5ed0 + SOLID_OR_LIQUID_NO_LEAVES; +} diff --git a/src/main/java/org/bukkit/Location.java b/src/main/java/org/bukkit/Location.java -index 2a40da99f..3e1ca4c9f 100644 +index 2a40da99..3e1ca4c9 100644 --- a/src/main/java/org/bukkit/Location.java +++ b/src/main/java/org/bukkit/Location.java @@ -638,6 +638,33 @@ public class Location implements Cloneable, ConfigurationSerializable { @@ -84,10 +84,10 @@ index 2a40da99f..3e1ca4c9f 100644 * Creates explosion at this location with given power * diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 1818e158f..65dc80229 100644 +index b02cda3e..1e7b633c 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -161,6 +161,79 @@ public interface World extends PluginMessageRecipient, Metadatable { +@@ -162,6 +162,79 @@ public interface World extends PluginMessageRecipient, Metadatable { @NotNull public Block getHighestBlockAt(@NotNull Location location); @@ -168,5 +168,5 @@ index 1818e158f..65dc80229 100644 * Gets the {@link Chunk} at the given coordinates * -- -2.21.0 +2.22.0 diff --git a/Spigot-Server-Patches/0003-MC-Dev-fixes.patch b/Spigot-Server-Patches/0003-MC-Dev-fixes.patch index a1b555bc32..48f464516b 100644 --- a/Spigot-Server-Patches/0003-MC-Dev-fixes.patch +++ b/Spigot-Server-Patches/0003-MC-Dev-fixes.patch @@ -1,11 +1,11 @@ -From 2d1aec7e30853380405652873ea3b306ef965af3 Mon Sep 17 00:00:00 2001 +From 659ea460bfdd40bc6b027dc326f40bcf22efb79a Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 30 Mar 2016 19:36:20 -0400 Subject: [PATCH] MC Dev fixes diff --git a/src/main/java/net/minecraft/server/BiomeBase.java b/src/main/java/net/minecraft/server/BiomeBase.java -index 26fa6e7b64..9a839d6540 100644 +index 26fa6e7b6..9a839d654 100644 --- a/src/main/java/net/minecraft/server/BiomeBase.java +++ b/src/main/java/net/minecraft/server/BiomeBase.java @@ -42,7 +42,7 @@ public abstract class BiomeBase { @@ -27,7 +27,7 @@ index 26fa6e7b64..9a839d6540 100644 public List> e() { diff --git a/src/main/java/net/minecraft/server/BlockDataAbstract.java b/src/main/java/net/minecraft/server/BlockDataAbstract.java -index adc9981868..b370316574 100644 +index adc998186..b37031657 100644 --- a/src/main/java/net/minecraft/server/BlockDataAbstract.java +++ b/src/main/java/net/minecraft/server/BlockDataAbstract.java @@ -29,7 +29,7 @@ public abstract class BlockDataAbstract implements IBlockDataHolder { @@ -72,7 +72,7 @@ index adc9981868..b370316574 100644 S s0 = this.f.get(iblockstate, v0); diff --git a/src/main/java/net/minecraft/server/BlockPosition.java b/src/main/java/net/minecraft/server/BlockPosition.java -index 6a8e8f7a67..daf406637c 100644 +index 6a8e8f7a6..daf406637 100644 --- a/src/main/java/net/minecraft/server/BlockPosition.java +++ b/src/main/java/net/minecraft/server/BlockPosition.java @@ -57,12 +57,12 @@ public class BlockPosition extends BaseBlockPosition implements MinecraftSeriali @@ -92,7 +92,7 @@ index 6a8e8f7a67..daf406637c 100644 }); } diff --git a/src/main/java/net/minecraft/server/BlockStateEnum.java b/src/main/java/net/minecraft/server/BlockStateEnum.java -index b4c8722f04..59d86fc66e 100644 +index b4c8722f0..59d86fc66 100644 --- a/src/main/java/net/minecraft/server/BlockStateEnum.java +++ b/src/main/java/net/minecraft/server/BlockStateEnum.java @@ -20,10 +20,10 @@ public class BlockStateEnum & INamable> extends BlockState @@ -108,48 +108,8 @@ index b4c8722f04..59d86fc66e 100644 String s1 = ((INamable) t0).getName(); if (this.b.containsKey(s1)) { -diff --git a/src/main/java/net/minecraft/server/ChunkMapDistance.java b/src/main/java/net/minecraft/server/ChunkMapDistance.java -index 958354a31d..ed4e8d69ca 100644 ---- a/src/main/java/net/minecraft/server/ChunkMapDistance.java -+++ b/src/main/java/net/minecraft/server/ChunkMapDistance.java -@@ -61,7 +61,7 @@ public abstract class ChunkMapDistance { - while (objectiterator.hasNext()) { - Entry>> entry = (Entry) objectiterator.next(); - -- if (((ObjectSortedSet) entry.getValue()).removeIf((ticket) -> { -+ if ((entry.getValue()).removeIf((ticket) -> { // Paper - decompile fix - return ticket.a(this.currentTick); - })) { - this.e.b(entry.getLongKey(), this.a((ObjectSortedSet) entry.getValue()), false); -@@ -124,7 +124,7 @@ public abstract class ChunkMapDistance { - - completablefuture.thenAccept((either) -> { - this.m.execute(() -> { -- this.k.a((Object) ChunkTaskQueueSorter.a(() -> { -+ this.k.a(ChunkTaskQueueSorter.a(() -> { // Paper - decompile fix - }, j, false)); - }); - }); -@@ -333,7 +333,7 @@ public abstract class ChunkMapDistance { - Ticket ticket = new Ticket<>(TicketType.PLAYER, ChunkMapDistance.b, new ChunkCoordIntPair(i), ChunkMapDistance.this.currentTick); - - if (flag1) { -- ChunkMapDistance.this.j.a((Object) ChunkTaskQueueSorter.a(() -> { -+ ChunkMapDistance.this.j.a(ChunkTaskQueueSorter.a(() -> { // Paper - decompile fix - ChunkMapDistance.this.m.execute(() -> { - ChunkMapDistance.this.a(i, ticket); - ChunkMapDistance.this.l.add(i); -@@ -342,7 +342,7 @@ public abstract class ChunkMapDistance { - return j; - })); - } else { -- ChunkMapDistance.this.k.a((Object) ChunkTaskQueueSorter.a(() -> { -+ ChunkMapDistance.this.k.a(ChunkTaskQueueSorter.a(() -> { // Paper - decompile fix - ChunkMapDistance.this.m.execute(() -> { - ChunkMapDistance.this.b(i, ticket); - }); diff --git a/src/main/java/net/minecraft/server/ChunkSection.java b/src/main/java/net/minecraft/server/ChunkSection.java -index d4b7074ca1..f4605e3937 100644 +index d4b7074ca..f4605e393 100644 --- a/src/main/java/net/minecraft/server/ChunkSection.java +++ b/src/main/java/net/minecraft/server/ChunkSection.java @@ -148,6 +148,6 @@ public class ChunkSection { @@ -161,7 +121,7 @@ index d4b7074ca1..f4605e3937 100644 } } diff --git a/src/main/java/net/minecraft/server/ChunkStatus.java b/src/main/java/net/minecraft/server/ChunkStatus.java -index 26db8f135f..dd1822d6ff 100644 +index 26db8f135..dd1822d6f 100644 --- a/src/main/java/net/minecraft/server/ChunkStatus.java +++ b/src/main/java/net/minecraft/server/ChunkStatus.java @@ -84,7 +84,7 @@ public class ChunkStatus { @@ -174,7 +134,7 @@ index 26db8f135f..dd1822d6ff 100644 for (int j = a().size() - 1; j >= 0; --j) { diff --git a/src/main/java/net/minecraft/server/CraftingManager.java b/src/main/java/net/minecraft/server/CraftingManager.java -index d0b4bf8b7e..6fb734c64f 100644 +index d0b4bf8b7..6fb734c64 100644 --- a/src/main/java/net/minecraft/server/CraftingManager.java +++ b/src/main/java/net/minecraft/server/CraftingManager.java @@ -58,7 +58,7 @@ public class CraftingManager extends ResourceDataJson { @@ -187,7 +147,7 @@ index d0b4bf8b7e..6fb734c64f 100644 CraftingManager.LOGGER.info("Loaded {} recipes", map1.size()); } diff --git a/src/main/java/net/minecraft/server/EntityVindicator.java b/src/main/java/net/minecraft/server/EntityVindicator.java -index 85af024c9c..daa7bf330f 100644 +index 85af024c9..daa7bf330 100644 --- a/src/main/java/net/minecraft/server/EntityVindicator.java +++ b/src/main/java/net/minecraft/server/EntityVindicator.java @@ -25,7 +25,7 @@ public class EntityVindicator extends EntityIllagerAbstract { @@ -200,7 +160,7 @@ index 85af024c9c..daa7bf330f 100644 this.targetSelector.a(3, new PathfinderGoalNearestAttackableTarget<>(this, EntityVillagerAbstract.class, true)); this.targetSelector.a(3, new PathfinderGoalNearestAttackableTarget<>(this, EntityIronGolem.class, true)); diff --git a/src/main/java/net/minecraft/server/IAsyncTaskHandler.java b/src/main/java/net/minecraft/server/IAsyncTaskHandler.java -index 053d408d36..4510018d6f 100644 +index 053d408d3..4510018d6 100644 --- a/src/main/java/net/minecraft/server/IAsyncTaskHandler.java +++ b/src/main/java/net/minecraft/server/IAsyncTaskHandler.java @@ -51,7 +51,7 @@ public abstract class IAsyncTaskHandler implements Mailbox 1.0D && d13 > 1.0D && d14 > 1.0D) { diff --git a/src/main/java/net/minecraft/server/IBlockData.java b/src/main/java/net/minecraft/server/IBlockData.java -index 21321805ee..452602d43e 100644 +index 21321805e..452602d43 100644 --- a/src/main/java/net/minecraft/server/IBlockData.java +++ b/src/main/java/net/minecraft/server/IBlockData.java @@ -269,12 +269,12 @@ public class IBlockData extends BlockDataAbstract implements @@ -274,7 +234,7 @@ index 21321805ee..452602d43e 100644 for (int j = 0; j < i; ++j) { diff --git a/src/main/java/net/minecraft/server/IEntityAccess.java b/src/main/java/net/minecraft/server/IEntityAccess.java -index b4b73e5f04..3a86c519c0 100644 +index b4b73e5f0..3a86c519c 100644 --- a/src/main/java/net/minecraft/server/IEntityAccess.java +++ b/src/main/java/net/minecraft/server/IEntityAccess.java @@ -39,7 +39,7 @@ public interface IEntityAccess { @@ -329,7 +289,7 @@ index b4b73e5f04..3a86c519c0 100644 if (pathfindertargetcondition.a(entityliving, t0)) { list1.add(t0); diff --git a/src/main/java/net/minecraft/server/LootSelectorEntry.java b/src/main/java/net/minecraft/server/LootSelectorEntry.java -index 9290534917..1016325bd7 100644 +index 929053491..1016325bd 100644 --- a/src/main/java/net/minecraft/server/LootSelectorEntry.java +++ b/src/main/java/net/minecraft/server/LootSelectorEntry.java @@ -127,7 +127,7 @@ public abstract class LootSelectorEntry extends LootEntryAbstract { @@ -357,7 +317,7 @@ index 9290534917..1016325bd7 100644 } diff --git a/src/main/java/net/minecraft/server/NBTBase.java b/src/main/java/net/minecraft/server/NBTBase.java -index eab34088a6..7a987c6be3 100644 +index eab34088a..7a987c6be 100644 --- a/src/main/java/net/minecraft/server/NBTBase.java +++ b/src/main/java/net/minecraft/server/NBTBase.java @@ -88,7 +88,7 @@ public interface NBTBase { @@ -370,7 +330,7 @@ index eab34088a6..7a987c6be3 100644 default String asString() { return this.toString(); diff --git a/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java b/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java -index 0dda7aaf69..4e20cfba41 100644 +index 0dda7aaf6..4e20cfba4 100644 --- a/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java +++ b/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java @@ -134,7 +134,7 @@ public class PacketPlayOutMapChunk implements Packet { @@ -383,7 +343,7 @@ index 0dda7aaf69..4e20cfba41 100644 } diff --git a/src/main/java/net/minecraft/server/RegistryBlockID.java b/src/main/java/net/minecraft/server/RegistryBlockID.java -index 7f89562e90..4efcb8b595 100644 +index 7f89562e9..4efcb8b59 100644 --- a/src/main/java/net/minecraft/server/RegistryBlockID.java +++ b/src/main/java/net/minecraft/server/RegistryBlockID.java @@ -27,7 +27,7 @@ public class RegistryBlockID implements Registry { @@ -396,7 +356,7 @@ index 7f89562e90..4efcb8b595 100644 this.c.set(i, t0); diff --git a/src/main/java/net/minecraft/server/RegistryID.java b/src/main/java/net/minecraft/server/RegistryID.java -index 4cb78c6a3f..e15d286710 100644 +index 4cb78c6a3..e15d28671 100644 --- a/src/main/java/net/minecraft/server/RegistryID.java +++ b/src/main/java/net/minecraft/server/RegistryID.java @@ -17,9 +17,9 @@ public class RegistryID implements Registry { @@ -424,7 +384,7 @@ index 4cb78c6a3f..e15d286710 100644 this.f = 0; diff --git a/src/main/java/net/minecraft/server/SystemUtils.java b/src/main/java/net/minecraft/server/SystemUtils.java -index 62c39f9baa..376219a1cd 100644 +index 62c39f9ba..376219a1c 100644 --- a/src/main/java/net/minecraft/server/SystemUtils.java +++ b/src/main/java/net/minecraft/server/SystemUtils.java @@ -45,8 +45,8 @@ public class SystemUtils { @@ -467,21 +427,8 @@ index 62c39f9baa..376219a1cd 100644 acompletablefuture[i] = completablefuture1.whenComplete((object, throwable) -> { if (throwable != null) { completablefuture.completeExceptionally(throwable); -diff --git a/src/main/java/net/minecraft/server/Ticket.java b/src/main/java/net/minecraft/server/Ticket.java -index fc8cd29739..74d6e3d2f5 100644 ---- a/src/main/java/net/minecraft/server/Ticket.java -+++ b/src/main/java/net/minecraft/server/Ticket.java -@@ -24,7 +24,7 @@ public final class Ticket implements Comparable> { - } else { - int j = Integer.compare(System.identityHashCode(this.a), System.identityHashCode(ticket.a)); - -- return j != 0 ? j : this.a.a().compare(this.c, ticket.c); -+ return j != 0 ? j : this.a.a().compare(this.c, (T)ticket.c); // Paper - decompile fix - } - } - diff --git a/src/main/java/net/minecraft/server/VillagerTrades.java b/src/main/java/net/minecraft/server/VillagerTrades.java -index 73f9da1fdb..2a4e4f7859 100644 +index 73f9da1fd..2a4e4f785 100644 --- a/src/main/java/net/minecraft/server/VillagerTrades.java +++ b/src/main/java/net/minecraft/server/VillagerTrades.java @@ -15,12 +15,12 @@ import javax.annotation.Nullable; @@ -501,7 +448,7 @@ index 73f9da1fdb..2a4e4f7859 100644 hashmap.put(VillagerProfession.CLERIC, a(ImmutableMap.of(1, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.ROTTEN_FLESH, 32, 8, 2), new VillagerTrades.h(Items.REDSTONE, 1, 2, 1)}, 2, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.GOLD_INGOT, 3, 6, 10), new VillagerTrades.h(Items.LAPIS_LAZULI, 1, 1, 5)}, 3, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.RABBIT_FOOT, 2, 6, 20), new VillagerTrades.h(Blocks.GLOWSTONE, 4, 1, 6, 10)}, 4, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.SCUTE, 4, 6, 30), new VillagerTrades.b(Items.GLASS_BOTTLE, 9, 6, 30), new VillagerTrades.h(Items.ENDER_PEARL, 5, 1, 15)}, 5, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.NETHER_WART, 22, 6, 30), new VillagerTrades.h(Items.EXPERIENCE_BOTTLE, 3, 1, 30)}))); hashmap.put(VillagerProfession.ARMORER, a(ImmutableMap.of(1, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.COAL, 15, 8, 2), new VillagerTrades.h(new ItemStack(Items.IRON_LEGGINGS), 7, 1, 6, 1, 0.2F), new VillagerTrades.h(new ItemStack(Items.IRON_BOOTS), 4, 1, 6, 1, 0.2F), new VillagerTrades.h(new ItemStack(Items.IRON_HELMET), 5, 1, 6, 1, 0.2F), new VillagerTrades.h(new ItemStack(Items.IRON_CHESTPLATE), 9, 1, 6, 1, 0.2F)}, 2, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.IRON_INGOT, 4, 6, 10), new VillagerTrades.h(new ItemStack(Items.pP), 36, 1, 6, 5, 0.2F), new VillagerTrades.h(new ItemStack(Items.CHAINMAIL_BOOTS), 1, 1, 6, 5, 0.2F), new VillagerTrades.h(new ItemStack(Items.CHAINMAIL_LEGGINGS), 3, 1, 6, 5, 0.2F)}, 3, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.LAVA_BUCKET, 1, 6, 20), new VillagerTrades.b(Items.DIAMOND, 1, 6, 20), new VillagerTrades.h(new ItemStack(Items.CHAINMAIL_HELMET), 1, 1, 6, 10, 0.2F), new VillagerTrades.h(new ItemStack(Items.CHAINMAIL_CHESTPLATE), 4, 1, 6, 10, 0.2F), new VillagerTrades.h(new ItemStack(Items.SHIELD), 5, 1, 6, 10, 0.2F)}, 4, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.e(Items.DIAMOND_LEGGINGS, 14, 2, 15, 0.2F), new VillagerTrades.e(Items.DIAMOND_BOOTS, 8, 2, 15, 0.2F)}, 5, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.e(Items.DIAMOND_HELMET, 8, 2, 30, 0.2F), new VillagerTrades.e(Items.DIAMOND_CHESTPLATE, 16, 2, 30, 0.2F)}))); diff --git a/src/main/java/net/minecraft/server/WorldPersistentData.java b/src/main/java/net/minecraft/server/WorldPersistentData.java -index 0b950aae63..f5f540032f 100644 +index 0b950aae6..f5f540032 100644 --- a/src/main/java/net/minecraft/server/WorldPersistentData.java +++ b/src/main/java/net/minecraft/server/WorldPersistentData.java @@ -37,7 +37,7 @@ public class WorldPersistentData { diff --git a/Spigot-Server-Patches/0017-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch b/Spigot-Server-Patches/0017-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch index cd59364460..6aab543ea1 100644 --- a/Spigot-Server-Patches/0017-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch +++ b/Spigot-Server-Patches/0017-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch @@ -1,4 +1,4 @@ -From 76b870fb59a434f36aa9455de40fe6a044e1f683 Mon Sep 17 00:00:00 2001 +From 6a568d4df68e4198bec44d06a2a0b614adf66560 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Tue, 1 Mar 2016 14:32:43 -0600 Subject: [PATCH] Show 'Paper' in client crashes, server lists, and Mojang @@ -6,7 +6,7 @@ Subject: [PATCH] Show 'Paper' in client crashes, server lists, and Mojang diff --git a/src/main/java/net/minecraft/server/EULA.java b/src/main/java/net/minecraft/server/EULA.java -index 3f35a28ba1..cf00f35a5b 100644 +index 3f35a28ba..cf00f35a5 100644 --- a/src/main/java/net/minecraft/server/EULA.java +++ b/src/main/java/net/minecraft/server/EULA.java @@ -70,7 +70,7 @@ public class EULA { @@ -19,7 +19,7 @@ index 3f35a28ba1..cf00f35a5b 100644 throwable = throwable1; throw throwable1; diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index d0419119b3..1346fc35c5 100644 +index d0419119b..1346fc35c 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1285,7 +1285,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant Date: Thu, 28 May 2015 23:00:19 -0400 Subject: [PATCH] Handle Item Meta Inconsistencies @@ -18,7 +18,7 @@ For consistency, the old API methods now forward to use the ItemMeta API equivalents, and should deprecate the old API's. diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java -index 7bcc723998..5bc078d314 100644 +index 7bcc72399..5bc078d31 100644 --- a/src/main/java/net/minecraft/server/ItemStack.java +++ b/src/main/java/net/minecraft/server/ItemStack.java @@ -7,6 +7,8 @@ import com.mojang.brigadier.StringReader; @@ -78,7 +78,7 @@ index 7bcc723998..5bc078d314 100644 public boolean hasEnchantments() { diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -index 4eb7438f25..f2f4c8d3c3 100644 +index c04ec4a7c..c45fe35e0 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java @@ -178,28 +178,11 @@ public final class CraftItemStack extends ItemStack { @@ -193,10 +193,18 @@ index 4eb7438f25..f2f4c8d3c3 100644 static Map getEnchantments(net.minecraft.server.ItemStack item) { diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index 7c8b515bc2..bf7b226a4f 100644 +index 4f1834014..b0682e529 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -@@ -24,6 +24,7 @@ import java.util.ArrayList; +@@ -6,6 +6,7 @@ import com.google.common.collect.HashMultimap; + import com.google.common.collect.ImmutableList; + import com.google.common.collect.ImmutableMap; + import com.google.common.collect.ImmutableMultimap; ++import com.google.common.collect.ImmutableSortedMap; // Paper + import com.google.common.collect.Lists; + import com.google.common.collect.Multimap; + import com.google.common.collect.SetMultimap; +@@ -24,6 +25,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.EnumSet; @@ -204,7 +212,7 @@ index 7c8b515bc2..bf7b226a4f 100644 import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; -@@ -32,6 +33,7 @@ import java.util.Locale; +@@ -32,6 +34,7 @@ import java.util.Locale; import java.util.Map; import java.util.NoSuchElementException; import java.util.Set; @@ -212,24 +220,16 @@ index 7c8b515bc2..bf7b226a4f 100644 import java.util.logging.Level; import java.util.logging.Logger; import javax.annotation.Nonnull; -@@ -41,6 +43,7 @@ import net.minecraft.server.EnumChatFormat; - import net.minecraft.server.EnumItemSlot; - import net.minecraft.server.GenericAttributes; - import net.minecraft.server.IChatBaseComponent; -+import com.google.common.collect.ImmutableSortedMap; // Paper - import net.minecraft.server.NBTBase; - import net.minecraft.server.NBTCompressedStreamTools; - import net.minecraft.server.NBTTagCompound; -@@ -268,7 +271,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -269,7 +272,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { private List lore; private Integer customModelData; - private String blockData; + private NBTTagCompound blockData; - private Map enchantments; + private EnchantmentMap enchantments; // Paper private Multimap attributeModifiers; private int repairCost; private int hideFlag; -@@ -279,7 +282,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -280,7 +283,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry(); private NBTTagCompound internalTag; @@ -238,7 +238,7 @@ index 7c8b515bc2..bf7b226a4f 100644 private final CraftPersistentDataContainer persistentDataContainer = new CraftPersistentDataContainer(DATA_TYPE_REGISTRY); private int version = CraftMagicNumbers.INSTANCE.getDataVersion(); // Internal use only -@@ -300,7 +303,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -301,7 +304,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { this.blockData = meta.blockData; if (meta.enchantments != null) { // Spigot @@ -247,7 +247,7 @@ index 7c8b515bc2..bf7b226a4f 100644 } if (meta.hasAttributeModifiers()) { -@@ -396,13 +399,13 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -397,13 +400,13 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { } } @@ -263,7 +263,7 @@ index 7c8b515bc2..bf7b226a4f 100644 for (int i = 0; i < ench.size(); i++) { String id = ((NBTTagCompound) ench.get(i)).getString(ENCHANTMENTS_ID.NBT); -@@ -554,13 +557,13 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -555,13 +558,13 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { } } @@ -279,7 +279,7 @@ index 7c8b515bc2..bf7b226a4f 100644 for (Map.Entry entry : ench.entrySet()) { // Doctor older enchants String enchantKey = entry.getKey().toString(); -@@ -811,14 +814,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -812,14 +815,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { @Override public Map getEnchants() { @@ -296,7 +296,7 @@ index 7c8b515bc2..bf7b226a4f 100644 } if (ignoreRestrictions || level >= ench.getStartLevel() && level <= ench.getMaxLevel()) { -@@ -1196,7 +1199,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1197,7 +1200,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { clone.customModelData = this.customModelData; clone.blockData = this.blockData; if (this.enchantments != null) { @@ -305,7 +305,7 @@ index 7c8b515bc2..bf7b226a4f 100644 } if (this.hasAttributeModifiers()) { clone.attributeModifiers = HashMultimap.create(this.attributeModifiers); -@@ -1424,6 +1427,23 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1425,6 +1428,23 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { } } diff --git a/Spigot-Server-Patches/0142-Provide-E-TE-Chunk-count-stat-methods.patch b/Spigot-Server-Patches/0142-Provide-E-TE-Chunk-count-stat-methods.patch index 28453ae716..d08d28e91f 100644 --- a/Spigot-Server-Patches/0142-Provide-E-TE-Chunk-count-stat-methods.patch +++ b/Spigot-Server-Patches/0142-Provide-E-TE-Chunk-count-stat-methods.patch @@ -1,4 +1,4 @@ -From 8630f7f8db241e12a753cafae1d81092a54c3fc1 Mon Sep 17 00:00:00 2001 +From c324ae58d965aec89dd4d918918ec037cc0b6c93 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 7 Jan 2017 15:24:46 -0500 Subject: [PATCH] Provide E/TE/Chunk count stat methods @@ -7,10 +7,10 @@ Provides counts without the ineffeciency of using .getEntities().size() which creates copy of the collections. diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 7c2eba8aa4..b8e16e1870 100644 +index 9b8fb80a4..b07e3fe26 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -264,6 +264,35 @@ public class CraftWorld implements World { +@@ -271,6 +271,35 @@ public class CraftWorld implements World { private int waterAnimalSpawn = -1; private int ambientSpawn = -1; diff --git a/Spigot-Server-Patches/0146-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch b/Spigot-Server-Patches/0146-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch index aa50ed26f4..78215fe6da 100644 --- a/Spigot-Server-Patches/0146-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch +++ b/Spigot-Server-Patches/0146-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch @@ -1,4 +1,4 @@ -From e81b55e667659802d85f0197c4187c6f918c8e52 Mon Sep 17 00:00:00 2001 +From 59b6fccbd75443a0847e020792494948d01d6023 Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 19 Dec 2017 16:31:46 -0500 Subject: [PATCH] ExperienceOrbs API for Reason/Source/Triggering player @@ -8,7 +8,7 @@ Adds lots of information about why this orb exists. Replaces isFromBottle() with logic that persists entity reloads too. diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java -index 4b9e51b30f..c72ae7e251 100644 +index 4b9e51b30..c72ae7e25 100644 --- a/src/main/java/net/minecraft/server/Block.java +++ b/src/main/java/net/minecraft/server/Block.java @@ -511,13 +511,13 @@ public class Block implements IMaterial { @@ -28,7 +28,7 @@ index 4b9e51b30f..c72ae7e251 100644 } diff --git a/src/main/java/net/minecraft/server/ContainerGrindstone.java b/src/main/java/net/minecraft/server/ContainerGrindstone.java -index 2d2cd09ad1..ed88e208d0 100644 +index 2d2cd09ad..ed88e208d 100644 --- a/src/main/java/net/minecraft/server/ContainerGrindstone.java +++ b/src/main/java/net/minecraft/server/ContainerGrindstone.java @@ -81,7 +81,7 @@ public class ContainerGrindstone extends Container { @@ -41,7 +41,7 @@ index 2d2cd09ad1..ed88e208d0 100644 world.triggerEffect(1042, blockposition, 0); diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java -index 0421052d21..f015c023e2 100644 +index 0421052d2..f015c023e 100644 --- a/src/main/java/net/minecraft/server/EntityEnderDragon.java +++ b/src/main/java/net/minecraft/server/EntityEnderDragon.java @@ -607,7 +607,7 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster { @@ -54,7 +54,7 @@ index 0421052d21..f015c023e2 100644 } diff --git a/src/main/java/net/minecraft/server/EntityExperienceOrb.java b/src/main/java/net/minecraft/server/EntityExperienceOrb.java -index a4cd502bca..214ecdb884 100644 +index a4cd502bc..214ecdb88 100644 --- a/src/main/java/net/minecraft/server/EntityExperienceOrb.java +++ b/src/main/java/net/minecraft/server/EntityExperienceOrb.java @@ -16,9 +16,59 @@ public class EntityExperienceOrb extends Entity { @@ -134,7 +134,7 @@ index a4cd502bca..214ecdb884 100644 @Override diff --git a/src/main/java/net/minecraft/server/EntityFishingHook.java b/src/main/java/net/minecraft/server/EntityFishingHook.java -index 05fa5cd6af..d9767de12e 100644 +index 05fa5cd6a..d9767de12 100644 --- a/src/main/java/net/minecraft/server/EntityFishingHook.java +++ b/src/main/java/net/minecraft/server/EntityFishingHook.java @@ -404,7 +404,7 @@ public class EntityFishingHook extends Entity { @@ -147,7 +147,7 @@ index 05fa5cd6af..d9767de12e 100644 // CraftBukkit end if (itemstack1.getItem().a(TagsItem.FISHES)) { diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 45c024ca24..cb2f3eb458 100644 +index 45c024ca2..cb2f3eb45 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -385,7 +385,8 @@ public abstract class EntityLiving extends Entity { @@ -161,7 +161,7 @@ index 45c024ca24..cb2f3eb458 100644 this.expToDrop = 0; // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/EntityThrownExpBottle.java b/src/main/java/net/minecraft/server/EntityThrownExpBottle.java -index 4ac5cce062..05970c5644 100644 +index 4ac5cce06..05970c564 100644 --- a/src/main/java/net/minecraft/server/EntityThrownExpBottle.java +++ b/src/main/java/net/minecraft/server/EntityThrownExpBottle.java @@ -43,7 +43,7 @@ public class EntityThrownExpBottle extends EntityProjectileThrowable { @@ -174,7 +174,7 @@ index 4ac5cce062..05970c5644 100644 this.die(); diff --git a/src/main/java/net/minecraft/server/EntityTurtle.java b/src/main/java/net/minecraft/server/EntityTurtle.java -index dc1ba69f68..013b3a1ca8 100644 +index dc1ba69f6..013b3a1ca 100644 --- a/src/main/java/net/minecraft/server/EntityTurtle.java +++ b/src/main/java/net/minecraft/server/EntityTurtle.java @@ -508,7 +508,7 @@ public class EntityTurtle extends EntityAnimal { @@ -187,7 +187,7 @@ index dc1ba69f68..013b3a1ca8 100644 } diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java -index 5e56447e7d..9311cc5bd6 100644 +index 5e56447e7..9311cc5bd 100644 --- a/src/main/java/net/minecraft/server/EntityVillager.java +++ b/src/main/java/net/minecraft/server/EntityVillager.java @@ -429,7 +429,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation @@ -200,7 +200,7 @@ index 5e56447e7d..9311cc5bd6 100644 } diff --git a/src/main/java/net/minecraft/server/EntityVillagerTrader.java b/src/main/java/net/minecraft/server/EntityVillagerTrader.java -index b9aa512952..c179e11e4c 100644 +index b9aa51295..c179e11e4 100644 --- a/src/main/java/net/minecraft/server/EntityVillagerTrader.java +++ b/src/main/java/net/minecraft/server/EntityVillagerTrader.java @@ -147,7 +147,7 @@ public class EntityVillagerTrader extends EntityVillagerAbstract { @@ -213,7 +213,7 @@ index b9aa512952..c179e11e4c 100644 } diff --git a/src/main/java/net/minecraft/server/PathfinderGoalBreed.java b/src/main/java/net/minecraft/server/PathfinderGoalBreed.java -index 363a98bece..0cc34400be 100644 +index 363a98bec..0cc34400b 100644 --- a/src/main/java/net/minecraft/server/PathfinderGoalBreed.java +++ b/src/main/java/net/minecraft/server/PathfinderGoalBreed.java @@ -117,7 +117,7 @@ public class PathfinderGoalBreed extends PathfinderGoal { @@ -226,7 +226,7 @@ index 363a98bece..0cc34400be 100644 // CraftBukkit end } diff --git a/src/main/java/net/minecraft/server/PlayerInteractManager.java b/src/main/java/net/minecraft/server/PlayerInteractManager.java -index 4ccc77e4f6..e306b138db 100644 +index 4ccc77e4f..e306b138d 100644 --- a/src/main/java/net/minecraft/server/PlayerInteractManager.java +++ b/src/main/java/net/minecraft/server/PlayerInteractManager.java @@ -367,7 +367,7 @@ public class PlayerInteractManager { @@ -239,7 +239,7 @@ index 4ccc77e4f6..e306b138db 100644 // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/SlotFurnaceResult.java b/src/main/java/net/minecraft/server/SlotFurnaceResult.java -index d2698e847c..edc4a5c34e 100644 +index d2698e847..edc4a5c34 100644 --- a/src/main/java/net/minecraft/server/SlotFurnaceResult.java +++ b/src/main/java/net/minecraft/server/SlotFurnaceResult.java @@ -2,7 +2,7 @@ package net.minecraft.server; @@ -252,7 +252,7 @@ index d2698e847c..edc4a5c34e 100644 public SlotFurnaceResult(EntityHuman entityhuman, IInventory iinventory, int i, int j, int k) { diff --git a/src/main/java/net/minecraft/server/TileEntityFurnace.java b/src/main/java/net/minecraft/server/TileEntityFurnace.java -index 0cb2e6d874..2bbd3663a7 100644 +index 0cb2e6d87..2bbd3663a 100644 --- a/src/main/java/net/minecraft/server/TileEntityFurnace.java +++ b/src/main/java/net/minecraft/server/TileEntityFurnace.java @@ -554,7 +554,7 @@ public abstract class TileEntityFurnace extends TileEntityContainer implements I @@ -265,10 +265,10 @@ index 0cb2e6d874..2bbd3663a7 100644 } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index b8e16e1870..47a54102a1 100644 +index b07e3fe26..853a0374e 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1609,7 +1609,7 @@ public class CraftWorld implements World { +@@ -1695,7 +1695,7 @@ public class CraftWorld implements World { } else if (TNTPrimed.class.isAssignableFrom(clazz)) { entity = new EntityTNTPrimed(world, x, y, z, null); } else if (ExperienceOrb.class.isAssignableFrom(clazz)) { @@ -278,7 +278,7 @@ index b8e16e1870..47a54102a1 100644 entity = new EntityLightning(world, x, y, z, false); } else if (Firework.class.isAssignableFrom(clazz)) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftExperienceOrb.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftExperienceOrb.java -index 1b512cc45c..fbad045675 100644 +index 1b512cc45..fbad04567 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftExperienceOrb.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftExperienceOrb.java @@ -20,6 +20,18 @@ public class CraftExperienceOrb extends CraftEntity implements ExperienceOrb { diff --git a/Spigot-Server-Patches/0170-Fix-this-stupid-bullshit.patch b/Spigot-Server-Patches/0170-Fix-this-stupid-bullshit.patch index a5513c27bf..d8041f0bc7 100644 --- a/Spigot-Server-Patches/0170-Fix-this-stupid-bullshit.patch +++ b/Spigot-Server-Patches/0170-Fix-this-stupid-bullshit.patch @@ -1,4 +1,4 @@ -From 8b179538436564e62406d8d4ca1b68b77192d430 Mon Sep 17 00:00:00 2001 +From 12223c520ad7731a8e3433a52d370f56feeb1f58 Mon Sep 17 00:00:00 2001 From: DemonWav Date: Sun, 6 Aug 2017 17:17:53 -0500 Subject: [PATCH] Fix this stupid bullshit @@ -9,12 +9,12 @@ modified in order to prevent merge conflicts when Spigot changes/disables the wa and to provide some level of hint without being disruptive. diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 4aebe53f8a..405ea5c465 100644 +index d2bdd7c73..1fa81904d 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -217,10 +217,12 @@ public class Main { Calendar deadline = Calendar.getInstance(); - deadline.add(Calendar.DAY_OF_YEAR, -3); + deadline.add(Calendar.DAY_OF_YEAR, -7); if (buildDate.before(deadline.getTime())) { - System.err.println("*** Error, this build is outdated ***"); + // Paper start - This is some stupid bullshit diff --git a/Spigot-Server-Patches/0201-Add-ArmorStand-Item-Meta.patch b/Spigot-Server-Patches/0201-Add-ArmorStand-Item-Meta.patch index 60e36c56cb..f229853396 100644 --- a/Spigot-Server-Patches/0201-Add-ArmorStand-Item-Meta.patch +++ b/Spigot-Server-Patches/0201-Add-ArmorStand-Item-Meta.patch @@ -1,4 +1,4 @@ -From 9ee6527ad6217948275aa16c1508073e8f3e53ef Mon Sep 17 00:00:00 2001 +From cc0c4439a566c30f847a5941d1f381163fe7071e 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 @@ -267,10 +267,10 @@ index f70052284..3723facca 100644 + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index bf7b226a4..a8b267487 100644 +index b0682e529..704a7d91e 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -@@ -161,6 +161,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -162,6 +162,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { .put(CraftMetaKnowledgeBook.class, "KNOWLEDGE_BOOK") .put(CraftMetaTropicalFishBucket.class, "TROPICAL_FISH_BUCKET") .put(CraftMetaCrossbow.class, "CROSSBOW") @@ -278,7 +278,7 @@ index bf7b226a4..a8b267487 100644 .put(CraftMetaItem.class, "UNSPECIFIC") .build(); -@@ -1420,7 +1421,15 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1421,7 +1422,15 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { CraftMetaKnowledgeBook.BOOK_RECIPES.NBT, CraftMetaTropicalFishBucket.VARIANT.NBT, CraftMetaCrossbow.CHARGED.NBT, diff --git a/Spigot-Server-Patches/0224-Expand-World.spawnParticle-API-and-add-Builder.patch b/Spigot-Server-Patches/0224-Expand-World.spawnParticle-API-and-add-Builder.patch index 631bd7f0f2..701da10d35 100644 --- a/Spigot-Server-Patches/0224-Expand-World.spawnParticle-API-and-add-Builder.patch +++ b/Spigot-Server-Patches/0224-Expand-World.spawnParticle-API-and-add-Builder.patch @@ -1,4 +1,4 @@ -From 60c17edb75c3d029b1237a8ce8bdabc08cc30b42 Mon Sep 17 00:00:00 2001 +From 6ac1e8e270a7ad9de1eb93139c4f0a4da362b5a3 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 @@ -10,7 +10,7 @@ Adds an option to control the force mode of the particle. 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 690f530416..74939dce3a 100644 +index 690f53041..74939dce3 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -48,7 +48,7 @@ public class WorldServer extends World { @@ -43,10 +43,10 @@ index 690f530416..74939dce3a 100644 if (this.a(entityplayer, force, d0, d1, d2, packetplayoutworldparticles)) { // CraftBukkit diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 47a54102a1..284699cfe9 100644 +index 853a0374e..17f830717 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -2075,11 +2075,17 @@ public class CraftWorld implements World { +@@ -2161,11 +2161,17 @@ public class CraftWorld implements World { @Override public void spawnParticle(Particle particle, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ, double extra, T data, boolean force) { diff --git a/Spigot-Server-Patches/0228-Allow-spawning-Item-entities-with-World.spawnEntity.patch b/Spigot-Server-Patches/0228-Allow-spawning-Item-entities-with-World.spawnEntity.patch index 26d6ae9b84..826391db50 100644 --- a/Spigot-Server-Patches/0228-Allow-spawning-Item-entities-with-World.spawnEntity.patch +++ b/Spigot-Server-Patches/0228-Allow-spawning-Item-entities-with-World.spawnEntity.patch @@ -1,4 +1,4 @@ -From 4b7d50cd5cac72dc37866db7fe2a84670b6ab371 Mon Sep 17 00:00:00 2001 +From 0d65af9a1975db2ee35df680e76d1f4ace5d9bee 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 284699cfe9..3ce366ab80 100644 +index 17f830717..d1c634790 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1305,6 +1305,10 @@ public class CraftWorld implements World { +@@ -1391,6 +1391,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/0242-Expand-Explosions-API.patch b/Spigot-Server-Patches/0242-Expand-Explosions-API.patch index a15d094767..5cc1ab7d6a 100644 --- a/Spigot-Server-Patches/0242-Expand-Explosions-API.patch +++ b/Spigot-Server-Patches/0242-Expand-Explosions-API.patch @@ -1,4 +1,4 @@ -From 75a77b5bcd0db050f6e3317960c2594342c1b6be Mon Sep 17 00:00:00 2001 +From e412cb2cc32d9cb28daf57854fee4ba7455abe11 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 3ce366ab80..2bb01dd9c2 100644 +index d1c634790..4995a93af 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -752,6 +752,11 @@ public class CraftWorld implements World { +@@ -838,6 +838,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 ? Explosion.Effect.BREAK : Explosion.Effect.NONE).wasCanceled; } diff --git a/Spigot-Server-Patches/0246-Implement-World.getEntity-UUID-API.patch b/Spigot-Server-Patches/0246-Implement-World.getEntity-UUID-API.patch index fc8e44290a..722c50cf16 100644 --- a/Spigot-Server-Patches/0246-Implement-World.getEntity-UUID-API.patch +++ b/Spigot-Server-Patches/0246-Implement-World.getEntity-UUID-API.patch @@ -1,14 +1,14 @@ -From 077b6953f0e099b298618e749ccf132581015342 Mon Sep 17 00:00:00 2001 +From 0524ed85f393f9ce12e0a0499fedf74aaf5950a2 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 2bb01dd9c2..3dd9bec548 100644 +index 4995a93af..e74238033 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1108,6 +1108,15 @@ public class CraftWorld implements World { +@@ -1194,6 +1194,15 @@ public class CraftWorld implements World { return list; } diff --git a/Spigot-Server-Patches/0263-Vanished-players-don-t-have-rights.patch b/Spigot-Server-Patches/0263-Vanished-players-don-t-have-rights.patch index 1de3fcec85..91d4737b6d 100644 --- a/Spigot-Server-Patches/0263-Vanished-players-don-t-have-rights.patch +++ b/Spigot-Server-Patches/0263-Vanished-players-don-t-have-rights.patch @@ -1,11 +1,11 @@ -From 06c40aefa0e83c45954e684d2b2b5b4d7ecc3dcf Mon Sep 17 00:00:00 2001 +From 7da024164eba85d84edca7af7b11e3c5720b39d8 Mon Sep 17 00:00:00 2001 From: Hugo Manrique Date: Mon, 23 Jul 2018 14:22:26 +0200 Subject: [PATCH] Vanished players don't have rights diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 20b6ad48a9..8bc3e0464d 100644 +index 143937236..03e7517b4 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -97,7 +97,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -18,7 +18,7 @@ index 20b6ad48a9..8bc3e0464d 100644 protected int j; private Entity vehicle; diff --git a/src/main/java/net/minecraft/server/IBlockData.java b/src/main/java/net/minecraft/server/IBlockData.java -index 452602d43e..862ae25544 100644 +index 452602d43..862ae2554 100644 --- a/src/main/java/net/minecraft/server/IBlockData.java +++ b/src/main/java/net/minecraft/server/IBlockData.java @@ -146,6 +146,7 @@ public class IBlockData extends BlockDataAbstract implements @@ -30,10 +30,10 @@ index 452602d43e..862ae25544 100644 return this.getBlock().b(this, iblockaccess, blockposition, voxelshapecollision); } diff --git a/src/main/java/net/minecraft/server/ItemBlock.java b/src/main/java/net/minecraft/server/ItemBlock.java -index 59b1e6ce2e..9f29e714b8 100644 +index 7d76be658..289d9cdf0 100644 --- a/src/main/java/net/minecraft/server/ItemBlock.java +++ b/src/main/java/net/minecraft/server/ItemBlock.java -@@ -126,7 +126,8 @@ public class ItemBlock extends Item { +@@ -136,7 +136,8 @@ public class ItemBlock extends Item { EntityHuman entityhuman = blockactioncontext.getEntity(); VoxelShapeCollision voxelshapecollision = entityhuman == null ? VoxelShapeCollision.a() : VoxelShapeCollision.a((Entity) entityhuman); // CraftBukkit start - store default return @@ -44,7 +44,7 @@ index 59b1e6ce2e..9f29e714b8 100644 BlockCanBuildEvent event = new BlockCanBuildEvent(CraftBlock.at(blockactioncontext.getWorld(), blockactioncontext.getClickPosition()), player, CraftBlockData.fromData(iblockdata), defaultReturn); diff --git a/src/main/java/net/minecraft/server/VoxelShape.java b/src/main/java/net/minecraft/server/VoxelShape.java -index 6bfbc3616e..7bed2d208f 100644 +index 6bfbc3616..7bed2d208 100644 --- a/src/main/java/net/minecraft/server/VoxelShape.java +++ b/src/main/java/net/minecraft/server/VoxelShape.java @@ -46,6 +46,7 @@ public abstract class VoxelShape { @@ -56,7 +56,7 @@ index 6bfbc3616e..7bed2d208f 100644 return (VoxelShape) (this.isEmpty() ? VoxelShapes.a() : new VoxelShapeArray(this.a, new DoubleListOffset(this.a(EnumDirection.EnumAxis.X), d0), new DoubleListOffset(this.a(EnumDirection.EnumAxis.Y), d1), new DoubleListOffset(this.a(EnumDirection.EnumAxis.Z), d2))); } diff --git a/src/main/java/net/minecraft/server/VoxelShapes.java b/src/main/java/net/minecraft/server/VoxelShapes.java -index b8659f703c..c8bd4b7034 100644 +index b8659f703..c8bd4b703 100644 --- a/src/main/java/net/minecraft/server/VoxelShapes.java +++ b/src/main/java/net/minecraft/server/VoxelShapes.java @@ -33,6 +33,7 @@ public final class VoxelShapes { @@ -76,7 +76,7 @@ index b8659f703c..c8bd4b7034 100644 if (operatorboolean.apply(false, false)) { throw new IllegalArgumentException(); diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index d08bd6d963..7c39846c16 100644 +index 0d73a53f6..f0332c893 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -164,6 +164,48 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose @@ -129,7 +129,7 @@ index d08bd6d963..7c39846c16 100644 public BiomeBase getBiome(BlockPosition blockposition) { IChunkProvider ichunkprovider = this.getChunkProvider(); diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 80b0fb8c11..dd25a8ad29 100644 +index 80b0fb8c1..dd25a8ad2 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1140,6 +1140,14 @@ public class CraftEventFactory { diff --git a/Spigot-Server-Patches/0270-Ignore-Dead-Entities-in-entityList-iteration.patch b/Spigot-Server-Patches/0270-Ignore-Dead-Entities-in-entityList-iteration.patch index d9c5cff16a..c56713d266 100644 --- a/Spigot-Server-Patches/0270-Ignore-Dead-Entities-in-entityList-iteration.patch +++ b/Spigot-Server-Patches/0270-Ignore-Dead-Entities-in-entityList-iteration.patch @@ -1,4 +1,4 @@ -From ab4142cd2764ba31b8b5325c1071109507bb43e2 Mon Sep 17 00:00:00 2001 +From 1ed9bb0810d6f8fc681bad0e77ee399321fa9cee Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 28 Jul 2018 12:18:27 -0400 Subject: [PATCH] Ignore Dead Entities in entityList iteration @@ -11,7 +11,7 @@ This will ensure that dead entities are skipped from iteration since they shouldn't of been in the list in the first place. diff --git a/src/main/java/com/destroystokyo/paper/PaperCommand.java b/src/main/java/com/destroystokyo/paper/PaperCommand.java -index 360abc05e4..391726d99c 100644 +index 360abc05e..391726d99 100644 --- a/src/main/java/com/destroystokyo/paper/PaperCommand.java +++ b/src/main/java/com/destroystokyo/paper/PaperCommand.java @@ -176,6 +176,7 @@ public class PaperCommand extends Command { @@ -23,7 +23,7 @@ index 360abc05e4..391726d99c 100644 MutablePair> info = list.computeIfAbsent(key, k -> MutablePair.of(0, Maps.newHashMap())); ChunkCoordIntPair chunk = new ChunkCoordIntPair(e.getChunkX(), e.getChunkZ()); diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index ebc00f355e..099f0ad78b 100644 +index ebc00f355..099f0ad78 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -678,6 +678,7 @@ public class Chunk implements IChunkAccess { @@ -51,7 +51,7 @@ index ebc00f355e..099f0ad78b 100644 if (oclass.isInstance(t0) && t0.getBoundingBox().c(axisalignedbb) && (predicate == null || predicate.test(t0))) { // Spigot - instance check list.add(t0); diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 76e9891054..6064d414ef 100644 +index 76e989105..6064d414e 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -126,6 +126,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -63,7 +63,7 @@ index 76e9891054..6064d414ef 100644 private float av; private float aw; diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index dbdc4b66e9..f52321fbc8 100644 +index dbdc4b66e..f52321fbc 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -847,6 +847,7 @@ public class WorldServer extends World { @@ -91,10 +91,10 @@ index dbdc4b66e9..f52321fbc8 100644 } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 3dd9bec548..6918f77b79 100644 +index e74238033..73d365806 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -845,6 +845,7 @@ public class CraftWorld implements World { +@@ -931,6 +931,7 @@ public class CraftWorld implements World { for (Object o : world.entitiesById.values()) { if (o instanceof net.minecraft.server.Entity) { net.minecraft.server.Entity mcEnt = (net.minecraft.server.Entity) o; @@ -102,7 +102,7 @@ index 3dd9bec548..6918f77b79 100644 Entity bukkitEntity = mcEnt.getBukkitEntity(); // Assuming that bukkitEntity isn't null -@@ -864,6 +865,7 @@ public class CraftWorld implements World { +@@ -950,6 +951,7 @@ public class CraftWorld implements World { for (Object o : world.entitiesById.values()) { if (o instanceof net.minecraft.server.Entity) { net.minecraft.server.Entity mcEnt = (net.minecraft.server.Entity) o; @@ -110,7 +110,7 @@ index 3dd9bec548..6918f77b79 100644 Entity bukkitEntity = mcEnt.getBukkitEntity(); // Assuming that bukkitEntity isn't null -@@ -890,6 +892,7 @@ public class CraftWorld implements World { +@@ -976,6 +978,7 @@ public class CraftWorld implements World { for (Object entity: world.entitiesById.values()) { if (entity instanceof net.minecraft.server.Entity) { @@ -118,7 +118,7 @@ index 3dd9bec548..6918f77b79 100644 Entity bukkitEntity = ((net.minecraft.server.Entity) entity).getBukkitEntity(); if (bukkitEntity == null) { -@@ -913,6 +916,7 @@ public class CraftWorld implements World { +@@ -999,6 +1002,7 @@ public class CraftWorld implements World { for (Object entity: world.entitiesById.values()) { if (entity instanceof net.minecraft.server.Entity) { diff --git a/Spigot-Server-Patches/0285-Ability-to-get-Tile-Entities-from-a-chunk-without-sn.patch b/Spigot-Server-Patches/0285-Ability-to-get-Tile-Entities-from-a-chunk-without-sn.patch index 07e7d94af2..01b1a48393 100644 --- a/Spigot-Server-Patches/0285-Ability-to-get-Tile-Entities-from-a-chunk-without-sn.patch +++ b/Spigot-Server-Patches/0285-Ability-to-get-Tile-Entities-from-a-chunk-without-sn.patch @@ -1,14 +1,14 @@ -From 4949093ada5b472252a7a3b17c944a50f171b0e8 Mon Sep 17 00:00:00 2001 +From 2b8ccc91520d79354325d7b34634e4a8cbdd0be4 Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 15 Aug 2018 01:16:34 -0400 Subject: [PATCH] Ability to get Tile Entities from a chunk without snapshots diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java -index 08f8d80965..011e40458e 100644 +index acba08308..bb3e4805b 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java -@@ -121,9 +121,16 @@ public class CraftChunk implements Chunk { +@@ -123,9 +123,16 @@ public class CraftChunk implements Chunk { @Override public BlockState[] getTileEntities() { @@ -25,7 +25,7 @@ index 08f8d80965..011e40458e 100644 int index = 0; net.minecraft.server.Chunk chunk = getHandle(); -@@ -135,7 +142,7 @@ public class CraftChunk implements Chunk { +@@ -137,7 +144,7 @@ public class CraftChunk implements Chunk { } BlockPosition position = (BlockPosition) obj; diff --git a/Spigot-Server-Patches/0288-Send-nearby-packets-from-world-player-list-not-serve.patch b/Spigot-Server-Patches/0288-Send-nearby-packets-from-world-player-list-not-serve.patch index 9ae869eae9..92b4df8963 100644 --- a/Spigot-Server-Patches/0288-Send-nearby-packets-from-world-player-list-not-serve.patch +++ b/Spigot-Server-Patches/0288-Send-nearby-packets-from-world-player-list-not-serve.patch @@ -1,11 +1,11 @@ -From 9abfcdef1ec35ecc3163d6688d925dbbd6711783 Mon Sep 17 00:00:00 2001 +From 652f97fc6095f1d11eb32f60d833dad147766ab0 Mon Sep 17 00:00:00 2001 From: Mystiflow Date: Fri, 6 Jul 2018 13:21:30 +0100 Subject: [PATCH] Send nearby packets from world player list not server list diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 9e5cd22d7d..049d702cb9 100644 +index 9e5cd22d7..049d702cb 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java @@ -922,8 +922,25 @@ public abstract class PlayerList { @@ -46,7 +46,7 @@ index 9e5cd22d7d..049d702cb9 100644 double d5 = d1 - entityplayer.locY; double d6 = d2 - entityplayer.locZ; diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index f52321fbc8..cca4d97030 100644 +index f52321fbc..cca4d9703 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -1188,7 +1188,7 @@ public class WorldServer extends World { @@ -68,10 +68,10 @@ index f52321fbc8..cca4d97030 100644 } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 6918f77b79..8fa52fd630 100644 +index 73d365806..18dfa4c9c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1910,7 +1910,7 @@ public class CraftWorld implements World { +@@ -1996,7 +1996,7 @@ public class CraftWorld implements World { double z = loc.getZ(); PacketPlayOutCustomSoundEffect packet = new PacketPlayOutCustomSoundEffect(new MinecraftKey(sound), SoundCategory.valueOf(category.name()), new Vec3D(x, y, z), volume, pitch); diff --git a/Spigot-Server-Patches/0291-Optimize-CraftBlockData-Creation.patch b/Spigot-Server-Patches/0291-Optimize-CraftBlockData-Creation.patch index 73491bf223..9fec310bf7 100644 --- a/Spigot-Server-Patches/0291-Optimize-CraftBlockData-Creation.patch +++ b/Spigot-Server-Patches/0291-Optimize-CraftBlockData-Creation.patch @@ -1,4 +1,4 @@ -From c85ad1cb28ff05d7f73864887652b8765c08feda Mon Sep 17 00:00:00 2001 +From 03b66274c2e2d5500d25b1987b0019e920f4a5af Mon Sep 17 00:00:00 2001 From: miclebrick Date: Thu, 23 Aug 2018 11:45:32 -0400 Subject: [PATCH] Optimize CraftBlockData Creation @@ -7,7 +7,7 @@ Avoids a hashmap lookup by cacheing a reference to the CraftBlockData and cloning it when one is needed. diff --git a/src/main/java/net/minecraft/server/IBlockData.java b/src/main/java/net/minecraft/server/IBlockData.java -index 862ae25544..d25989d514 100644 +index 862ae2554..d25989d51 100644 --- a/src/main/java/net/minecraft/server/IBlockData.java +++ b/src/main/java/net/minecraft/server/IBlockData.java @@ -4,6 +4,8 @@ import com.google.common.collect.ImmutableMap; @@ -36,10 +36,10 @@ index 862ae25544..d25989d514 100644 return this.getBlock().l(this); } diff --git a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java -index c1666a9baf..3c29abd525 100644 +index 49c9975cf..fb8a77873 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java +++ b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java -@@ -539,7 +539,17 @@ public class CraftBlockData implements BlockData { +@@ -548,7 +548,17 @@ public class CraftBlockData implements BlockData { return craft; } diff --git a/Spigot-Server-Patches/0299-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch b/Spigot-Server-Patches/0299-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch index aad2623dbb..e26f160749 100644 --- a/Spigot-Server-Patches/0299-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch +++ b/Spigot-Server-Patches/0299-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch @@ -1,4 +1,4 @@ -From 746ee758d67ef87767f6b52965425f2f26bf2a9a Mon Sep 17 00:00:00 2001 +From f9d4e949ba93f156a7e6f71172d886fa7313c3ff Mon Sep 17 00:00:00 2001 From: Spottedleaf Date: Sun, 2 Sep 2018 19:34:33 -0700 Subject: [PATCH] Make CraftWorld#loadChunk(int, int, false) load unconverted @@ -6,10 +6,10 @@ Subject: [PATCH] Make CraftWorld#loadChunk(int, int, false) load unconverted diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 8fa52fd630..d74b3c42da 100644 +index 18dfa4c9c..2ef965a7d 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -476,7 +476,7 @@ public class CraftWorld implements World { +@@ -483,7 +483,7 @@ public class CraftWorld implements World { @Override public boolean loadChunk(int x, int z, boolean generate) { org.spigotmc.AsyncCatcher.catchOp( "chunk load"); // Spigot diff --git a/Spigot-Server-Patches/0306-Implement-an-API-for-CanPlaceOn-and-CanDestroy-NBT-v.patch b/Spigot-Server-Patches/0306-Implement-an-API-for-CanPlaceOn-and-CanDestroy-NBT-v.patch index b9e78ffbb8..6e8079d0ee 100644 --- a/Spigot-Server-Patches/0306-Implement-an-API-for-CanPlaceOn-and-CanDestroy-NBT-v.patch +++ b/Spigot-Server-Patches/0306-Implement-an-API-for-CanPlaceOn-and-CanDestroy-NBT-v.patch @@ -1,11 +1,11 @@ -From 137b7e0c17738468cb4b119fa4b5478758a23e02 Mon Sep 17 00:00:00 2001 +From 48ef82ea03b5ad262d1517540318e38c7b1c4fe5 Mon Sep 17 00:00:00 2001 From: Mark Vainomaa Date: Wed, 12 Sep 2018 18:53:55 +0300 Subject: [PATCH] Implement an API for CanPlaceOn and CanDestroy NBT values diff --git a/src/main/java/net/minecraft/server/ArgumentBlock.java b/src/main/java/net/minecraft/server/ArgumentBlock.java -index 2574c36d3a..1c9edeb313 100644 +index 2574c36d3..1c9edeb31 100644 --- a/src/main/java/net/minecraft/server/ArgumentBlock.java +++ b/src/main/java/net/minecraft/server/ArgumentBlock.java @@ -43,7 +43,7 @@ public class ArgumentBlock { @@ -32,10 +32,10 @@ index 2574c36d3a..1c9edeb313 100644 this.s = this::l; if (this.i.canRead() && this.i.peek() == '#') { diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index a8b267487f..c175c20a95 100644 +index 704a7d91e..a4412b28b 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -@@ -86,6 +86,12 @@ import org.bukkit.persistence.PersistentDataContainer; +@@ -87,6 +87,12 @@ import org.bukkit.persistence.PersistentDataContainer; import static org.spigotmc.ValidateUtils.*; // Spigot end @@ -48,7 +48,7 @@ index a8b267487f..c175c20a95 100644 /** * Children must include the following: * -@@ -266,6 +272,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -267,6 +273,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { @Specific(Specific.To.NBT) static final ItemMetaKey BLOCK_DATA = new ItemMetaKey("BlockStateTag"); static final ItemMetaKey BUKKIT_CUSTOM_TAG = new ItemMetaKey("PublicBukkitValues"); @@ -59,7 +59,7 @@ index a8b267487f..c175c20a95 100644 private IChatBaseComponent displayName; private IChatBaseComponent locName; -@@ -278,6 +288,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -279,6 +289,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { private int hideFlag; private boolean unbreakable; private int damage; @@ -70,7 +70,7 @@ index a8b267487f..c175c20a95 100644 private static final Set HANDLED_TAGS = Sets.newHashSet(); private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry(); -@@ -315,6 +329,15 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -316,6 +330,15 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { this.hideFlag = meta.hideFlag; this.unbreakable = meta.unbreakable; this.damage = meta.damage; @@ -86,7 +86,7 @@ index a8b267487f..c175c20a95 100644 this.unhandledTags.putAll(meta.unhandledTags); this.persistentDataContainer.putAll(meta.persistentDataContainer.getRaw()); -@@ -391,6 +414,31 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -392,6 +415,31 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { persistentDataContainer.put(key, compound.get(key)); } } @@ -118,7 +118,7 @@ index a8b267487f..c175c20a95 100644 Set keys = tag.getKeys(); for (String key : keys) { -@@ -528,6 +576,34 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -529,6 +577,34 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { setDamage(damage); } @@ -153,7 +153,7 @@ index a8b267487f..c175c20a95 100644 String internal = SerializableMeta.getString(map, "internal", true); if (internal != null) { ByteArrayInputStream buf = new ByteArrayInputStream(Base64.decodeBase64(internal)); -@@ -656,6 +732,23 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -657,6 +733,23 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { if (hasDamage()) { itemTag.setInt(DAMAGE.NBT, damage); } @@ -177,7 +177,7 @@ index a8b267487f..c175c20a95 100644 for (Map.Entry e : unhandledTags.entrySet()) { itemTag.set(e.getKey(), e.getValue()); -@@ -672,6 +765,21 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -673,6 +766,21 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { } } @@ -199,7 +199,7 @@ index a8b267487f..c175c20a95 100644 NBTTagList createStringList(List list) { if (list == null || list.isEmpty()) { return null; -@@ -754,7 +862,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -755,7 +863,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { @Overridden boolean isEmpty() { @@ -208,7 +208,7 @@ index a8b267487f..c175c20a95 100644 } @Override -@@ -1151,7 +1259,11 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1152,7 +1260,11 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { && (this.hideFlag == that.hideFlag) && (this.isUnbreakable() == that.isUnbreakable()) && (this.hasDamage() ? that.hasDamage() && this.damage == that.damage : !that.hasDamage()) @@ -221,7 +221,7 @@ index a8b267487f..c175c20a95 100644 } /** -@@ -1186,6 +1298,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1187,6 +1299,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { hash = 61 * hash + (hasDamage() ? this.damage : 0); hash = 61 * hash + (hasAttributeModifiers() ? this.attributeModifiers.hashCode() : 0); hash = 61 * hash + version; @@ -232,7 +232,7 @@ index a8b267487f..c175c20a95 100644 return hash; } -@@ -1209,6 +1325,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1210,6 +1326,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { clone.unbreakable = this.unbreakable; clone.damage = this.damage; clone.version = this.version; @@ -247,7 +247,7 @@ index a8b267487f..c175c20a95 100644 return clone; } catch (CloneNotSupportedException e) { throw new Error(e); -@@ -1266,6 +1390,24 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1267,6 +1391,24 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { builder.put(DAMAGE.BUKKIT, damage); } @@ -272,7 +272,7 @@ index a8b267487f..c175c20a95 100644 final Map internalTags = new HashMap(unhandledTags); serializeInternal(internalTags); if (!internalTags.isEmpty()) { -@@ -1428,7 +1570,9 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1429,7 +1571,9 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { CraftMetaArmorStand.NO_BASE_PLATE.NBT, CraftMetaArmorStand.SHOW_ARMS.NBT, CraftMetaArmorStand.SMALL.NBT, @@ -283,7 +283,7 @@ index a8b267487f..c175c20a95 100644 // Paper end )); } -@@ -1475,4 +1619,147 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1476,4 +1620,147 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { return spigot; } // Spigot end diff --git a/Spigot-Server-Patches/0320-Add-sun-related-API.patch b/Spigot-Server-Patches/0320-Add-sun-related-API.patch index 84a6890996..a306d6c152 100644 --- a/Spigot-Server-Patches/0320-Add-sun-related-API.patch +++ b/Spigot-Server-Patches/0320-Add-sun-related-API.patch @@ -1,11 +1,11 @@ -From 0ddb4dccfa1ed3f5598a1a48100fa1ebcab8ad3f Mon Sep 17 00:00:00 2001 +From b4f22385c9fc8d2910d3edd9b448119953903eb9 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Sun, 7 Oct 2018 00:54:21 -0500 Subject: [PATCH] Add sun related API diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java -index c20374d77b..5e88367d3c 100644 +index c20374d77..5e88367d3 100644 --- a/src/main/java/net/minecraft/server/EntityInsentient.java +++ b/src/main/java/net/minecraft/server/EntityInsentient.java @@ -1327,6 +1327,7 @@ public abstract class EntityInsentient extends EntityLiving { @@ -17,7 +17,7 @@ index c20374d77b..5e88367d3c 100644 if (this.world.J() && !this.world.isClientSide) { float f = this.aF(); diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 7c39846c16..26f3b47208 100644 +index f0332c893..1f28358f9 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -705,6 +705,7 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose @@ -29,10 +29,10 @@ index 7c39846c16..26f3b47208 100644 return this.d < 4; } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index d74b3c42da..8ae1b506f1 100644 +index 2ef965a7d..79aac04ff 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -738,6 +738,13 @@ public class CraftWorld implements World { +@@ -824,6 +824,13 @@ public class CraftWorld implements World { } } @@ -47,7 +47,7 @@ index d74b3c42da..8ae1b506f1 100644 public boolean createExplosion(double x, double y, double z, float power) { return createExplosion(x, y, z, power, false, true); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java -index 53c2d154ed..56c233872b 100644 +index 53c2d154e..56c233872 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java @@ -68,4 +68,11 @@ public abstract class CraftMob extends CraftLivingEntity implements Mob { diff --git a/Spigot-Server-Patches/0333-Don-t-sleep-after-profile-lookups-if-not-needed.patch b/Spigot-Server-Patches/0333-Don-t-sleep-after-profile-lookups-if-not-needed.patch index 0564973b07..7dd304b1df 100644 --- a/Spigot-Server-Patches/0333-Don-t-sleep-after-profile-lookups-if-not-needed.patch +++ b/Spigot-Server-Patches/0333-Don-t-sleep-after-profile-lookups-if-not-needed.patch @@ -1,4 +1,4 @@ -From 59e7d2b7d8e233a0deb8ce95a7fc5b7675a14728 Mon Sep 17 00:00:00 2001 +From 73a47cc046ad4f5356b4122127ad6a3256656efb Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 23 Oct 2018 20:25:05 -0400 Subject: [PATCH] Don't sleep after profile lookups if not needed @@ -7,30 +7,30 @@ Mojang was sleeping even if we had no more requests to go after the current one finished, resulting in 100ms lost per profile lookup diff --git a/src/main/java/com/mojang/authlib/yggdrasil/YggdrasilGameProfileRepository.java b/src/main/java/com/mojang/authlib/yggdrasil/YggdrasilGameProfileRepository.java -index 71e48e87b4..23f1447cfc 100644 +index 26a743722..6ed3199c3 100644 --- a/src/main/java/com/mojang/authlib/yggdrasil/YggdrasilGameProfileRepository.java +++ b/src/main/java/com/mojang/authlib/yggdrasil/YggdrasilGameProfileRepository.java @@ -42,6 +42,7 @@ public class YggdrasilGameProfileRepository implements GameProfileRepository { - } - - final int page = 0; + } + + final int page = 0; + boolean hasRequested = false; // Paper - - for (final List request : Iterables.partition(criteria, ENTRIES_PER_PAGE)) { - int failCount = 0; + + for (final List request : Iterables.partition(criteria, ENTRIES_PER_PAGE)) { + int failCount = 0; @@ -67,6 +68,12 @@ public class YggdrasilGameProfileRepository implements GameProfileRepository { - LOGGER.debug("Couldn't find profile {}", name); - callback.onProfileLookupFailed(new GameProfile(null, name), new ProfileNotFoundException("Server did not find the requested profile")); - } + LOGGER.debug("Couldn't find profile {}", name); + callback.onProfileLookupFailed(new GameProfile(null, name), new ProfileNotFoundException("Server did not find the requested profile")); + } + // Paper start + if (!hasRequested) { + hasRequested = true; + continue; + } + // Paper end - - try { - Thread.sleep(DELAY_BETWEEN_PAGES); + + try { + Thread.sleep(DELAY_BETWEEN_PAGES); -- 2.22.0 diff --git a/Spigot-Server-Patches/0380-Add-Heightmap-API.patch b/Spigot-Server-Patches/0380-Add-Heightmap-API.patch index 544eb89ac9..acdf3eda2e 100644 --- a/Spigot-Server-Patches/0380-Add-Heightmap-API.patch +++ b/Spigot-Server-Patches/0380-Add-Heightmap-API.patch @@ -1,11 +1,11 @@ -From a7b1577af9947ef2a35607e66726a6a34b87dcc5 Mon Sep 17 00:00:00 2001 +From d7be329161f59fdbff80bdee18d43e6a1c7133ca Mon Sep 17 00:00:00 2001 From: Spottedleaf Date: Tue, 1 Jan 2019 02:22:01 -0800 Subject: [PATCH] Add Heightmap API diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index ef080f9571..0acdb527d9 100644 +index b1b276683..2eed9c2ec 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -663,8 +663,8 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose @@ -20,10 +20,10 @@ index ef080f9571..0acdb527d9 100644 if (i >= -30000000 && j >= -30000000 && i < 30000000 && j < 30000000) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 8ae1b506f1..02098b9cc2 100644 +index 79aac04ff..d792f55fc 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -316,6 +316,29 @@ public class CraftWorld implements World { +@@ -323,6 +323,29 @@ public class CraftWorld implements World { return world.getHighestBlockYAt(HeightMap.Type.MOTION_BLOCKING, new BlockPosition(x, 0, z)).getY(); } diff --git a/Spigot-Server-Patches/0384-Async-Chunk-placeholder.patch b/Spigot-Server-Patches/0384-Async-Chunk-placeholder.patch index 009e35767f..5aad16154f 100644 --- a/Spigot-Server-Patches/0384-Async-Chunk-placeholder.patch +++ b/Spigot-Server-Patches/0384-Async-Chunk-placeholder.patch @@ -1,4 +1,4 @@ -From bf2cf6fce0635f9d5e7c70254df2d8e87d20bd2b Mon Sep 17 00:00:00 2001 +From b96f6c349b21a28bfa6e27696bcde0cbef8cfc32 Mon Sep 17 00:00:00 2001 From: Spottedleaf Date: Mon, 6 May 2019 12:29:24 -0700 Subject: [PATCH] Async Chunk placeholder @@ -6,18 +6,18 @@ Subject: [PATCH] Async Chunk placeholder Until we figure out Mojang's ticket system. diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 02098b9cc2..af1f1c2d62 100644 +index d792f55fc..b1ce7e095 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -16,6 +16,7 @@ import java.util.Objects; +@@ -18,6 +18,7 @@ import java.util.Objects; import java.util.Random; import java.util.Set; import java.util.UUID; +import java.util.concurrent.CompletableFuture; import java.util.function.Predicate; - import net.minecraft.server.AxisAlignedBB; - import net.minecraft.server.BiomeBase; -@@ -2155,6 +2156,40 @@ public class CraftWorld implements World { + import it.unimi.dsi.fastutil.longs.Long2ObjectMap; + import it.unimi.dsi.fastutil.objects.ObjectSortedSet; +@@ -2241,6 +2242,40 @@ public class CraftWorld implements World { return (nearest == null) ? null : new Location(this, nearest.getX(), nearest.getY(), nearest.getZ()); } diff --git a/Spigot-Server-Patches/0391-improve-CraftWorld-isChunkLoaded.patch b/Spigot-Server-Patches/0391-improve-CraftWorld-isChunkLoaded.patch index 408c182938..d103ce022c 100644 --- a/Spigot-Server-Patches/0391-improve-CraftWorld-isChunkLoaded.patch +++ b/Spigot-Server-Patches/0391-improve-CraftWorld-isChunkLoaded.patch @@ -1,4 +1,4 @@ -From ed20d3017f7a979ae81b57a087119147df5b27a5 Mon Sep 17 00:00:00 2001 +From 9ce159915da547f8cf749c4dfe600ab4920a3965 Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Tue, 21 May 2019 02:34:04 +0100 Subject: [PATCH] improve CraftWorld#isChunkLoaded @@ -9,10 +9,10 @@ waiting for the execution queue to get to our request; We can just query the chunk status and get a response now, vs having to wait diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index af1f1c2d62..57071e84fc 100644 +index b1ce7e095..3fc81657f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -381,14 +381,13 @@ public class CraftWorld implements World { +@@ -388,14 +388,13 @@ public class CraftWorld implements World { @Override public boolean isChunkLoaded(int x, int z) { diff --git a/Spigot-Server-Patches/0392-Configurable-Keep-Spawn-Loaded-range-per-world.patch b/Spigot-Server-Patches/0392-Configurable-Keep-Spawn-Loaded-range-per-world.patch index e9de06355b..75d2a4edec 100644 --- a/Spigot-Server-Patches/0392-Configurable-Keep-Spawn-Loaded-range-per-world.patch +++ b/Spigot-Server-Patches/0392-Configurable-Keep-Spawn-Loaded-range-per-world.patch @@ -1,4 +1,4 @@ -From 6ccb99a5f6c86956c086076fc925b579fcd07da7 Mon Sep 17 00:00:00 2001 +From 1fa3ddc303c246d774f2c9f7c3547bb5e419a55a Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 13 Sep 2014 23:14:43 -0400 Subject: [PATCH] Configurable Keep Spawn Loaded range per world @@ -6,7 +6,7 @@ Subject: [PATCH] Configurable Keep Spawn Loaded range per world This lets you disable it for some worlds and lower it for others. diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index d8bb13693d..de11a91af6 100644 +index d8bb13693..de11a91af 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -483,4 +483,10 @@ public class PaperWorldConfig { @@ -21,7 +21,7 @@ index d8bb13693d..de11a91af6 100644 + } } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 8136a97f44..d6c99ce897 100644 +index 8136a97f4..d6c99ce89 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -569,6 +569,13 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant Date: Sat, 1 Jun 2019 13:00:55 -0700 Subject: [PATCH] Chunk debug command @@ -32,7 +32,7 @@ https://bugs.mojang.com/browse/MC-141484?focusedCommentId=528273&page=com.atlass https://bugs.mojang.com/browse/MC-141484?focusedCommentId=528577&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-528577 diff --git a/src/main/java/com/destroystokyo/paper/PaperCommand.java b/src/main/java/com/destroystokyo/paper/PaperCommand.java -index 391726d99c..8db92edc36 100644 +index 391726d99..8db92edc3 100644 --- a/src/main/java/com/destroystokyo/paper/PaperCommand.java +++ b/src/main/java/com/destroystokyo/paper/PaperCommand.java @@ -28,14 +28,14 @@ public class PaperCommand extends Command { @@ -184,21 +184,8 @@ index 391726d99c..8db92edc36 100644 /* * Ported from MinecraftForge - author: LexManos - License: LGPLv2.1 */ -diff --git a/src/main/java/net/minecraft/server/ChunkMapDistance.java b/src/main/java/net/minecraft/server/ChunkMapDistance.java -index a116826490..f51bda68a8 100644 ---- a/src/main/java/net/minecraft/server/ChunkMapDistance.java -+++ b/src/main/java/net/minecraft/server/ChunkMapDistance.java -@@ -32,7 +32,7 @@ public abstract class ChunkMapDistance { - private static final Logger LOGGER = LogManager.getLogger(); - private static final int b = 33 + ChunkStatus.a(ChunkStatus.FULL) - 2; - private final Long2ObjectMap> c = new Long2ObjectOpenHashMap(); -- private final Long2ObjectOpenHashMap>> tickets = new Long2ObjectOpenHashMap(); -+ final Long2ObjectOpenHashMap>> tickets = new Long2ObjectOpenHashMap(); // Paper -> private -> package - private final ChunkMapDistance.a e = new ChunkMapDistance.a(); - private final ChunkMapDistance.b f = new ChunkMapDistance.b(8); - private final ChunkMapDistance.c g = new ChunkMapDistance.c(33); diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index 4c3bcb63d9..630feec163 100644 +index 4c3bcb63d..630feec16 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java @@ -21,7 +21,7 @@ import org.apache.logging.log4j.Logger; @@ -211,7 +198,7 @@ index 4c3bcb63d9..630feec163 100644 public final ChunkGenerator chunkGenerator; private final WorldServer world; diff --git a/src/main/java/net/minecraft/server/MCUtil.java b/src/main/java/net/minecraft/server/MCUtil.java -index ec3732193f..23d1935dd5 100644 +index ec3732193..23d1935dd 100644 --- a/src/main/java/net/minecraft/server/MCUtil.java +++ b/src/main/java/net/minecraft/server/MCUtil.java @@ -4,7 +4,13 @@ import com.destroystokyo.paper.block.TargetBlockInfo; @@ -412,7 +399,7 @@ index ec3732193f..23d1935dd5 100644 + } } diff --git a/src/main/java/net/minecraft/server/PlayerChunk.java b/src/main/java/net/minecraft/server/PlayerChunk.java -index 5599d0e71f..0daf5f99e3 100644 +index 5599d0e71..0daf5f99e 100644 --- a/src/main/java/net/minecraft/server/PlayerChunk.java +++ b/src/main/java/net/minecraft/server/PlayerChunk.java @@ -26,7 +26,7 @@ public class PlayerChunk { @@ -425,7 +412,7 @@ index 5599d0e71f..0daf5f99e3 100644 private int dirtyCount; private int r; diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java -index 9102bf8b60..d85220b66c 100644 +index 171c3b4b1..a259f3582 100644 --- a/src/main/java/net/minecraft/server/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java @@ -52,7 +52,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { @@ -441,22 +428,22 @@ index 9102bf8b60..d85220b66c 100644 private final Mailbox> mailboxWorldGen; private final Mailbox> mailboxMain; public final WorldLoadListener worldLoadListener; -- private final PlayerChunkMap.a u; -+ private final PlayerChunkMap.a u; public final PlayerChunkMap.a getChunkMapDistanceManager() { return this.u; } // Paper - OBFHELPER +- public final PlayerChunkMap.a u; // CraftBukkit - private -> public // PAIL chunkDistanceManager ++ public final PlayerChunkMap.a u; public final PlayerChunkMap.a getChunkMapDistanceManager() { return this.u; } // Paper - OBFHELPER // CraftBukkit - private -> public // PAIL chunkDistanceManager private final AtomicInteger v; private final DefinedStructureManager definedStructureManager; private final File x; diff --git a/src/main/java/net/minecraft/server/Ticket.java b/src/main/java/net/minecraft/server/Ticket.java -index 74d6e3d2f5..4a1ba0dd80 100644 +index 16e3114bc..efc89c537 100644 --- a/src/main/java/net/minecraft/server/Ticket.java +++ b/src/main/java/net/minecraft/server/Ticket.java @@ -6,8 +6,8 @@ public final class Ticket implements Comparable> { private final TicketType a; private final int b; -- private final T c; +- public final T c; // CraftBukkit - private -> public // PAIL identifier - private final long d; -+ private final T c; public final T getObjectReason() { return this.c; } // Paper - OBFHELPER ++ public final T c; public final T getObjectReason() { return this.c; } // Paper - OBFHELPER // CraftBukkit - private -> public // PAIL identifier + private final long d; public final long getCreationTick() { return this.d; } // Paper - OBFHELPER protected Ticket(TicketType tickettype, int i, T t0, long j) { diff --git a/Spigot-Server-Patches/0401-Fix-World-isChunkGenerated-calls.patch b/Spigot-Server-Patches/0401-Fix-World-isChunkGenerated-calls.patch index 8e38277cb9..b85781b0cf 100644 --- a/Spigot-Server-Patches/0401-Fix-World-isChunkGenerated-calls.patch +++ b/Spigot-Server-Patches/0401-Fix-World-isChunkGenerated-calls.patch @@ -1,4 +1,4 @@ -From 8ec38f6eb4de25ddb05562621e41e3abb073b949 Mon Sep 17 00:00:00 2001 +From a5c71a512c5ef631b69251c06cb5f4e1d3deedda Mon Sep 17 00:00:00 2001 From: Spottedleaf Date: Sat, 15 Jun 2019 08:54:33 -0700 Subject: [PATCH] Fix World#isChunkGenerated calls @@ -8,7 +8,7 @@ This patch also adds a chunk status cache on region files (note that its only purpose is to cache the status on DISK) diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index 630feec163..42b97ba86b 100644 +index 630feec16..42b97ba86 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java @@ -27,7 +27,7 @@ public class ChunkProviderServer extends IChunkProvider { @@ -58,7 +58,7 @@ index 630feec163..42b97ba86b 100644 @Nullable diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -index cf33965082..287f113581 100644 +index cf3396508..287f11358 100644 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java @@ -410,6 +410,17 @@ public class ChunkRegionLoader { @@ -80,7 +80,7 @@ index cf33965082..287f113581 100644 if (nbttagcompound != null) { ChunkStatus chunkstatus = ChunkStatus.a(nbttagcompound.getCompound("Level").getString("Status")); diff --git a/src/main/java/net/minecraft/server/ChunkStatus.java b/src/main/java/net/minecraft/server/ChunkStatus.java -index dd1822d6ff..e324989b46 100644 +index dd1822d6f..e324989b4 100644 --- a/src/main/java/net/minecraft/server/ChunkStatus.java +++ b/src/main/java/net/minecraft/server/ChunkStatus.java @@ -176,6 +176,7 @@ public class ChunkStatus { @@ -110,7 +110,7 @@ index dd1822d6ff..e324989b46 100644 return (ChunkStatus) IRegistry.CHUNK_STATUS.get(MinecraftKey.a(s)); } diff --git a/src/main/java/net/minecraft/server/PlayerChunk.java b/src/main/java/net/minecraft/server/PlayerChunk.java -index 0daf5f99e3..761cd1355b 100644 +index 0daf5f99e..761cd1355 100644 --- a/src/main/java/net/minecraft/server/PlayerChunk.java +++ b/src/main/java/net/minecraft/server/PlayerChunk.java @@ -70,6 +70,19 @@ public class PlayerChunk { @@ -134,7 +134,7 @@ index 0daf5f99e3..761cd1355b 100644 public CompletableFuture> getStatusFutureUnchecked(ChunkStatus chunkstatus) { diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java -index c4ad039ffd..3f41072f72 100644 +index be707d820..6775175d1 100644 --- a/src/main/java/net/minecraft/server/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java @@ -802,10 +802,23 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { @@ -164,7 +164,7 @@ index c4ad039ffd..3f41072f72 100644 // Spigot Start diff --git a/src/main/java/net/minecraft/server/RegionFile.java b/src/main/java/net/minecraft/server/RegionFile.java -index 2e14d84657..d610253b95 100644 +index 2e14d8465..d610253b9 100644 --- a/src/main/java/net/minecraft/server/RegionFile.java +++ b/src/main/java/net/minecraft/server/RegionFile.java @@ -31,6 +31,47 @@ public class RegionFile implements AutoCloseable { @@ -232,7 +232,7 @@ index 2e14d84657..d610253b95 100644 } diff --git a/src/main/java/net/minecraft/server/RegionFileCache.java b/src/main/java/net/minecraft/server/RegionFileCache.java -index 6f34d8aea0..d2b3289450 100644 +index 6f34d8aea..d2b328945 100644 --- a/src/main/java/net/minecraft/server/RegionFileCache.java +++ b/src/main/java/net/minecraft/server/RegionFileCache.java @@ -47,6 +47,12 @@ public abstract class RegionFileCache implements AutoCloseable { @@ -265,10 +265,10 @@ index 6f34d8aea0..d2b3289450 100644 printOversizedLog("ChunkTooLarge even after reduction. Trying in overzealous mode.", regionfile.file, chunkX, chunkZ); // Eek, major fail. We have retry logic, so reduce threshholds and fall back diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 3444c19b0f..3e55033d3c 100644 +index bb0f75f52..ece1a68c1 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -386,8 +386,20 @@ public class CraftWorld implements World { +@@ -393,8 +393,20 @@ public class CraftWorld implements World { @Override public boolean isChunkGenerated(int x, int z) { @@ -290,7 +290,7 @@ index 3444c19b0f..3e55033d3c 100644 } catch (IOException ex) { throw new RuntimeException(ex); } -@@ -499,20 +511,24 @@ public class CraftWorld implements World { +@@ -506,20 +518,24 @@ public class CraftWorld implements World { @Override public boolean loadChunk(int x, int z, boolean generate) { org.spigotmc.AsyncCatcher.catchOp( "chunk load"); // Spigot @@ -327,7 +327,7 @@ index 3444c19b0f..3e55033d3c 100644 } @Override -@@ -2163,21 +2179,20 @@ public class CraftWorld implements World { +@@ -2249,21 +2265,20 @@ public class CraftWorld implements World { // Paper start private Chunk getChunkAtGen(int x, int z, boolean gen) { diff --git a/Spigot-Server-Patches/0403-Fix-MC-154214.patch b/Spigot-Server-Patches/0403-Fix-MC-154214.patch index 35bb465171..eaefd8465d 100644 --- a/Spigot-Server-Patches/0403-Fix-MC-154214.patch +++ b/Spigot-Server-Patches/0403-Fix-MC-154214.patch @@ -1,4 +1,4 @@ -From 3e1658a1def891bc65cfbe2bd636ef84dca1cacd Mon Sep 17 00:00:00 2001 +From 258e62129db2aeb3cdabadfeaf0baf682ab9d983 Mon Sep 17 00:00:00 2001 From: Spottedleaf Date: Sun, 16 Jun 2019 23:30:25 -0700 Subject: [PATCH] Fix MC-154214 @@ -6,10 +6,10 @@ Subject: [PATCH] Fix MC-154214 Avoid adding player tickets when they're out of range of the closest player diff --git a/src/main/java/net/minecraft/server/ChunkMapDistance.java b/src/main/java/net/minecraft/server/ChunkMapDistance.java -index f51bda68a8..9bb711a9db 100644 +index 99c7537ef..757b505ea 100644 --- a/src/main/java/net/minecraft/server/ChunkMapDistance.java +++ b/src/main/java/net/minecraft/server/ChunkMapDistance.java -@@ -330,12 +330,18 @@ public abstract class ChunkMapDistance { +@@ -359,12 +359,18 @@ public abstract class ChunkMapDistance { } private void a(long i, int j, boolean flag, boolean flag1) { @@ -18,7 +18,7 @@ index f51bda68a8..9bb711a9db 100644 Ticket ticket = new Ticket<>(TicketType.PLAYER, ChunkMapDistance.b, new ChunkCoordIntPair(i), ChunkMapDistance.this.currentTick); if (flag1) { - ChunkMapDistance.this.j.a(ChunkTaskQueueSorter.a(() -> { // Paper - decompile fix + ChunkMapDistance.this.j.a(ChunkTaskQueueSorter.a(() -> { // Craftbukkit - decompile error ChunkMapDistance.this.m.execute(() -> { + // Paper start - Fix MC-154214 + if (!this.inRange(this.getNearestDistanceFromPlayerMap().get(chunkPosition))) { @@ -28,7 +28,7 @@ index f51bda68a8..9bb711a9db 100644 ChunkMapDistance.this.a(i, ticket); ChunkMapDistance.this.l.add(i); }); -@@ -379,6 +385,7 @@ public abstract class ChunkMapDistance { +@@ -408,6 +414,7 @@ public abstract class ChunkMapDistance { } @@ -36,7 +36,7 @@ index f51bda68a8..9bb711a9db 100644 private boolean c(int i) { return i <= this.e - 2; } -@@ -386,7 +393,7 @@ public abstract class ChunkMapDistance { +@@ -415,7 +422,7 @@ public abstract class ChunkMapDistance { class b extends ChunkMap { diff --git a/Spigot-Server-Patches/0407-Anti-Xray.patch b/Spigot-Server-Patches/0406-Anti-Xray.patch similarity index 98% rename from Spigot-Server-Patches/0407-Anti-Xray.patch rename to Spigot-Server-Patches/0406-Anti-Xray.patch index 4c33ef8423..8b83635aab 100644 --- a/Spigot-Server-Patches/0407-Anti-Xray.patch +++ b/Spigot-Server-Patches/0406-Anti-Xray.patch @@ -1,11 +1,11 @@ -From 5b18d35d10af4ba8c655f65dc378abf8c1d81c98 Mon Sep 17 00:00:00 2001 +From dd8ece01e600a532f79f4182d89965ac6eb9cfd6 Mon Sep 17 00:00:00 2001 From: stonar96 Date: Mon, 20 Aug 2018 03:03:58 +0200 Subject: [PATCH] Anti-Xray diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java -index 81987e4ad9..5942c3438e 100644 +index 81987e4ad..5942c3438 100644 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java @@ -71,8 +71,8 @@ public class PaperConfig { @@ -20,7 +20,7 @@ index 81987e4ad9..5942c3438e 100644 } diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 58109e1308..b03d3ee84b 100644 +index 4d3c6c6b4..929f5c303 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -1,7 +1,11 @@ @@ -35,7 +35,7 @@ index 58109e1308..b03d3ee84b 100644 import org.bukkit.Bukkit; import org.bukkit.configuration.file.YamlConfiguration; import org.spigotmc.SpigotWorldConfig; -@@ -509,4 +513,43 @@ public class PaperWorldConfig { +@@ -504,4 +508,43 @@ public class PaperWorldConfig { private void maxAutoSaveChunksPerTick() { maxAutoSaveChunksPerTick = getInt("max-auto-save-chunks-per-tick", 24); } @@ -81,7 +81,7 @@ index 58109e1308..b03d3ee84b 100644 } diff --git a/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketBlockController.java b/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketBlockController.java new file mode 100644 -index 0000000000..f7e376ce6a +index 000000000..f7e376ce6 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketBlockController.java @@ -0,0 +1,46 @@ @@ -133,7 +133,7 @@ index 0000000000..f7e376ce6a +} diff --git a/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketBlockControllerAntiXray.java b/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketBlockControllerAntiXray.java new file mode 100644 -index 0000000000..9d8bee5cac +index 000000000..9d8bee5ca --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketBlockControllerAntiXray.java @@ -0,0 +1,777 @@ @@ -916,7 +916,7 @@ index 0000000000..9d8bee5cac +} diff --git a/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketInfo.java b/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketInfo.java new file mode 100644 -index 0000000000..a68bace353 +index 000000000..a68bace35 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketInfo.java @@ -0,0 +1,81 @@ @@ -1003,7 +1003,7 @@ index 0000000000..a68bace353 +} diff --git a/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketInfoAntiXray.java b/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketInfoAntiXray.java new file mode 100644 -index 0000000000..067dfb2f14 +index 000000000..067dfb2f1 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketInfoAntiXray.java @@ -0,0 +1,31 @@ @@ -1040,7 +1040,7 @@ index 0000000000..067dfb2f14 +} diff --git a/src/main/java/com/destroystokyo/paper/antixray/DataBitsReader.java b/src/main/java/com/destroystokyo/paper/antixray/DataBitsReader.java new file mode 100644 -index 0000000000..cc586827aa +index 000000000..cc586827a --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/antixray/DataBitsReader.java @@ -0,0 +1,56 @@ @@ -1102,7 +1102,7 @@ index 0000000000..cc586827aa +} diff --git a/src/main/java/com/destroystokyo/paper/antixray/DataBitsWriter.java b/src/main/java/com/destroystokyo/paper/antixray/DataBitsWriter.java new file mode 100644 -index 0000000000..37093419cf +index 000000000..37093419c --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/antixray/DataBitsWriter.java @@ -0,0 +1,84 @@ @@ -1191,7 +1191,7 @@ index 0000000000..37093419cf + } +} diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index e2a48695df..d19412f186 100644 +index e2a48695d..d19412f18 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -315,7 +315,7 @@ public class Chunk implements IChunkAccess { @@ -1204,7 +1204,7 @@ index e2a48695df..d19412f186 100644 } diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -index 287f113581..f88e3d957f 100644 +index 287f11358..f88e3d957 100644 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java @@ -74,7 +74,7 @@ public class ChunkRegionLoader { @@ -1226,7 +1226,7 @@ index 287f113581..f88e3d957f 100644 object = protochunk; protochunk.a(abiomebase); diff --git a/src/main/java/net/minecraft/server/ChunkSection.java b/src/main/java/net/minecraft/server/ChunkSection.java -index c4c181c1d5..d6b327eff2 100644 +index c4c181c1d..d6b327eff 100644 --- a/src/main/java/net/minecraft/server/ChunkSection.java +++ b/src/main/java/net/minecraft/server/ChunkSection.java @@ -6,21 +6,31 @@ public class ChunkSection { @@ -1265,7 +1265,7 @@ index c4c181c1d5..d6b327eff2 100644 public IBlockData getType(int i, int j, int k) { diff --git a/src/main/java/net/minecraft/server/DataPaletteBlock.java b/src/main/java/net/minecraft/server/DataPaletteBlock.java -index e05b9d606a..cbc9dc902e 100644 +index e05b9d606..cbc9dc902 100644 --- a/src/main/java/net/minecraft/server/DataPaletteBlock.java +++ b/src/main/java/net/minecraft/server/DataPaletteBlock.java @@ -1,5 +1,6 @@ @@ -1386,7 +1386,7 @@ index e05b9d606a..cbc9dc902e 100644 if (this.h == this.b) { diff --git a/src/main/java/net/minecraft/server/NetworkManager.java b/src/main/java/net/minecraft/server/NetworkManager.java -index ba23d28335..8dcaaf8676 100644 +index ba23d2833..8dcaaf867 100644 --- a/src/main/java/net/minecraft/server/NetworkManager.java +++ b/src/main/java/net/minecraft/server/NetworkManager.java @@ -166,8 +166,8 @@ public class NetworkManager extends SimpleChannelInboundHandler> { @@ -1447,7 +1447,7 @@ index ba23d28335..8dcaaf8676 100644 public void a() { this.o(); diff --git a/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java b/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java -index ef71a1feb3..483317608c 100644 +index ef71a1feb..483317608 100644 --- a/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java +++ b/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java @@ -1,5 +1,6 @@ @@ -1540,7 +1540,7 @@ index ef71a1feb3..483317608c 100644 } diff --git a/src/main/java/net/minecraft/server/PlayerChunk.java b/src/main/java/net/minecraft/server/PlayerChunk.java -index 761cd1355b..956a47132f 100644 +index 761cd1355..956a47132 100644 --- a/src/main/java/net/minecraft/server/PlayerChunk.java +++ b/src/main/java/net/minecraft/server/PlayerChunk.java @@ -154,6 +154,11 @@ public class PlayerChunk { @@ -1565,7 +1565,7 @@ index 761cd1355b..956a47132f 100644 this.a(new PacketPlayOutMultiBlockChange(this.dirtyCount, this.dirtyBlocks, chunk), false); diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java -index 8e16d6ac87..f486331118 100644 +index 1b18505e0..7e8b0811b 100644 --- a/src/main/java/net/minecraft/server/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java @@ -491,7 +491,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { @@ -1587,7 +1587,7 @@ index 8e16d6ac87..f486331118 100644 } diff --git a/src/main/java/net/minecraft/server/PlayerInteractManager.java b/src/main/java/net/minecraft/server/PlayerInteractManager.java -index 83b36b3e7f..8fef6008d1 100644 +index 83b36b3e7..8fef6008d 100644 --- a/src/main/java/net/minecraft/server/PlayerInteractManager.java +++ b/src/main/java/net/minecraft/server/PlayerInteractManager.java @@ -207,6 +207,8 @@ public class PlayerInteractManager { @@ -1600,7 +1600,7 @@ index 83b36b3e7f..8fef6008d1 100644 public void a(BlockPosition blockposition) { diff --git a/src/main/java/net/minecraft/server/ProtoChunk.java b/src/main/java/net/minecraft/server/ProtoChunk.java -index 6bdd7dda04..7bad12eb00 100644 +index 6bdd7dda0..7bad12eb0 100644 --- a/src/main/java/net/minecraft/server/ProtoChunk.java +++ b/src/main/java/net/minecraft/server/ProtoChunk.java @@ -44,16 +44,28 @@ public class ProtoChunk implements IChunkAccess { @@ -1643,19 +1643,19 @@ index 6bdd7dda04..7bad12eb00 100644 return this.j[i]; diff --git a/src/main/java/net/minecraft/server/TicketType.java b/src/main/java/net/minecraft/server/TicketType.java -index d2bf158a91..2eeae60d52 100644 +index e66af33c1..5acb0732c 100644 --- a/src/main/java/net/minecraft/server/TicketType.java +++ b/src/main/java/net/minecraft/server/TicketType.java -@@ -20,6 +20,7 @@ public class TicketType { - public static final TicketType POST_TELEPORT = a("post_teleport", Integer::compareTo, 5); +@@ -21,6 +21,7 @@ public class TicketType { public static final TicketType UNKNOWN = a("unknown", Comparator.comparingLong(ChunkCoordIntPair::pair), 1); public static final TicketType PLUGIN = a("plugin", (a, b) -> 0); // CraftBukkit + public static final TicketType PLUGIN_TICKET = a("plugin_ticket", (plugin1, plugin2) -> plugin1.getClass().getName().compareTo(plugin2.getClass().getName())); // Craftbukkit + public static final TicketType ANTIXRAY = a("antixray", Integer::compareTo); // Paper - Anti-Xray public static TicketType a(String s, Comparator comparator) { return new TicketType<>(s, comparator, 0L); diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 11113c9614..ae286aaf29 100644 +index f0e8acdd1..ee6474b18 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -2,6 +2,8 @@ package net.minecraft.server; @@ -1692,7 +1692,7 @@ index 11113c9614..ae286aaf29 100644 if (iblockdata1 == null) { // CraftBukkit start - remove blockstate if failed diff --git a/src/main/java/org/bukkit/craftbukkit/generator/CraftChunkData.java b/src/main/java/org/bukkit/craftbukkit/generator/CraftChunkData.java -index 7772d59005..4570ed9991 100644 +index 7772d5900..4570ed999 100644 --- a/src/main/java/org/bukkit/craftbukkit/generator/CraftChunkData.java +++ b/src/main/java/org/bukkit/craftbukkit/generator/CraftChunkData.java @@ -21,9 +21,11 @@ public final class CraftChunkData implements ChunkGenerator.ChunkData { diff --git a/Spigot-Server-Patches/0406-Fix-tracker-desync-issue.patch b/Spigot-Server-Patches/0406-Fix-tracker-desync-issue.patch deleted file mode 100644 index ca9dc2211a..0000000000 --- a/Spigot-Server-Patches/0406-Fix-tracker-desync-issue.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 8e3c5764f6a63ca9302d36608291a1f7afd77bc1 Mon Sep 17 00:00:00 2001 -From: Spottedleaf -Date: Sun, 23 Jun 2019 19:11:27 -0700 -Subject: [PATCH] Fix tracker desync issue - - -diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index b2a2090e79..0a2c9a9f85 100644 ---- a/src/main/java/net/minecraft/server/Entity.java -+++ b/src/main/java/net/minecraft/server/Entity.java -@@ -3258,6 +3258,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke - return this.f.j(); - } - -+ public Vec3D getPositionVector() { return this.ci(); } // Paper - OBFHELPER - public Vec3D ci() { - return new Vec3D(this.locX, this.locY, this.locZ); - } -diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java -index f34d7d0dad..8e16d6ac87 100644 ---- a/src/main/java/net/minecraft/server/PlayerChunkMap.java -+++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java -@@ -1238,7 +1238,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { - public void updatePlayer(EntityPlayer entityplayer) { - org.spigotmc.AsyncCatcher.catchOp( "player tracker update"); // Spigot - if (entityplayer != this.tracker) { -- Vec3D vec3d = (new Vec3D(entityplayer.locX, entityplayer.locY, entityplayer.locZ)).d(this.trackerEntry.b()); -+ Vec3D vec3d = (new Vec3D(entityplayer.locX, entityplayer.locY, entityplayer.locZ)).d(this.tracker.getPositionVector()); // Paper - prevent de-sync issues - int i = Math.min(this.trackingDistance, (PlayerChunkMap.this.viewDistance - 1) * 16); - boolean flag = vec3d.x >= (double) (-i) && vec3d.x <= (double) i && vec3d.z >= (double) (-i) && vec3d.z <= (double) i && this.tracker.a(entityplayer); - --- -2.22.0 - diff --git a/work/Bukkit b/work/Bukkit index c2d72c82fb..e99c944401 160000 --- a/work/Bukkit +++ b/work/Bukkit @@ -1 +1 @@ -Subproject commit c2d72c82fb49c5093c84c3a14eb410beab6fa412 +Subproject commit e99c94440124f246a75f080cce7e2338d5e669db diff --git a/work/CraftBukkit b/work/CraftBukkit index fca41573a3..5f88938850 160000 --- a/work/CraftBukkit +++ b/work/CraftBukkit @@ -1 +1 @@ -Subproject commit fca41573a3481c1d84b0b892970e8d15dd9d778a +Subproject commit 5f88938850e45ce8e79160dd229bcf90681c6ab7 diff --git a/work/Spigot b/work/Spigot index d05d3c1f87..5e4e7f32bc 160000 --- a/work/Spigot +++ b/work/Spigot @@ -1 +1 @@ -Subproject commit d05d3c1f87cd25f52a8b0813f96d529eec98bd2b +Subproject commit 5e4e7f32bcc0af285ad143816949eab877d1f148