diff --git a/Spigot-API-Patches/0003-Timings-v2.patch b/Spigot-API-Patches/0003-Timings-v2.patch index 84c1d70829..79918aaff7 100644 --- a/Spigot-API-Patches/0003-Timings-v2.patch +++ b/Spigot-API-Patches/0003-Timings-v2.patch @@ -1,4 +1,4 @@ -From 026d80b427c66bd2b6f84f99e26f245ead7a4c71 Mon Sep 17 00:00:00 2001 +From 82c13b6bbafe66e4864f1e9fae3669d7126c151f Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 29 Feb 2016 18:48:17 -0600 Subject: [PATCH] Timings v2 @@ -3004,10 +3004,10 @@ index 000000000..df592d855 + } +} diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index ff7f436cb..b56c09d3e 100644 +index 5b1a2a8bd..5046816b8 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -525,7 +525,6 @@ public final class Bukkit { +@@ -526,7 +526,6 @@ public final class Bukkit { */ public static void reload() { server.reload(); @@ -3016,10 +3016,10 @@ index ff7f436cb..b56c09d3e 100644 /** diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index a766ee96c..4ddb8b02c 100644 +index df3ce745c..ae8120e2e 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1037,12 +1037,27 @@ public interface Server extends PluginMessageRecipient { +@@ -1046,12 +1046,27 @@ public interface Server extends PluginMessageRecipient { // Spigot start public class Spigot { diff --git a/Spigot-API-Patches/0005-Add-getTPS-method.patch b/Spigot-API-Patches/0005-Add-getTPS-method.patch index 18672bf912..c8c26d9309 100644 --- a/Spigot-API-Patches/0005-Add-getTPS-method.patch +++ b/Spigot-API-Patches/0005-Add-getTPS-method.patch @@ -1,14 +1,14 @@ -From 32b618438e80adb32b830992adee5e627f614ef2 Mon Sep 17 00:00:00 2001 +From 980c18d11ba35a9d4c2afaa594788f26ae219b7d Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 29 Feb 2016 17:24:57 -0600 Subject: [PATCH] Add getTPS method diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index b56c09d3..477a5833 100644 +index 5046816b8..bfe388fc0 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -1153,6 +1153,16 @@ public final class Bukkit { +@@ -1154,6 +1154,16 @@ public final class Bukkit { return server.getEntity(uuid); } @@ -26,10 +26,10 @@ index b56c09d3..477a5833 100644 * Get the advancement specified by this key. * diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 4ddb8b02..1fa6f53e 100644 +index ae8120e2e..9b71cbffc 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -947,6 +947,15 @@ public interface Server extends PluginMessageRecipient { +@@ -948,6 +948,15 @@ public interface Server extends PluginMessageRecipient { */ Entity getEntity(UUID uuid); diff --git a/Spigot-API-Patches/0013-Expose-server-CommandMap.patch b/Spigot-API-Patches/0013-Expose-server-CommandMap.patch index 0fe2708943..6f50953f58 100644 --- a/Spigot-API-Patches/0013-Expose-server-CommandMap.patch +++ b/Spigot-API-Patches/0013-Expose-server-CommandMap.patch @@ -1,11 +1,11 @@ -From a16608e4c4b20cad5477b8be0c935581a1d0895f Mon Sep 17 00:00:00 2001 +From 94aaaeb3d173b4f5a3f4e9d8943dd46b12a3a9ea Mon Sep 17 00:00:00 2001 From: kashike Date: Mon, 29 Feb 2016 19:48:59 -0600 Subject: [PATCH] Expose server CommandMap diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 477a5833..73c85063 100644 +index bfe388fc0..dbfd6e41d 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java @@ -19,10 +19,7 @@ import org.bukkit.boss.BarColor; @@ -20,7 +20,7 @@ index 477a5833..73c85063 100644 import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryType; -@@ -1263,6 +1260,17 @@ public final class Bukkit { +@@ -1274,6 +1271,17 @@ public final class Bukkit { return server.getUnsafe(); } @@ -39,7 +39,7 @@ index 477a5833..73c85063 100644 { return server.spigot(); diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 1fa6f53e..70e19580 100644 +index 9b71cbffc..c23ae761e 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java @@ -19,10 +19,7 @@ import org.bukkit.boss.BarColor; @@ -54,7 +54,7 @@ index 1fa6f53e..70e19580 100644 import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryType; -@@ -956,6 +953,14 @@ public interface Server extends PluginMessageRecipient { +@@ -957,6 +954,14 @@ public interface Server extends PluginMessageRecipient { public double[] getTPS(); // Paper end diff --git a/Spigot-API-Patches/0014-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch b/Spigot-API-Patches/0014-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch index 056dabd300..0b0c2a46e4 100644 --- a/Spigot-API-Patches/0014-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch +++ b/Spigot-API-Patches/0014-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch @@ -1,4 +1,4 @@ -From 66fa60d0cb91d8e15c7e84c63c00b20eba054eb9 Mon Sep 17 00:00:00 2001 +From 2db0dd58deef0d809785c129438ddc919ecf0d7d Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Mon, 29 Feb 2016 19:54:32 -0600 Subject: [PATCH] Graduate bungeecord chat API from spigot subclasses @@ -6,10 +6,10 @@ Subject: [PATCH] Graduate bungeecord chat API from spigot subclasses Change Javadoc to be accurate diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 73c85063b..471ae811c 100644 +index dbfd6e41d..4c5e0035a 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -280,6 +280,26 @@ public final class Bukkit { +@@ -281,6 +281,26 @@ public final class Bukkit { return server.broadcastMessage(message); } @@ -37,10 +37,10 @@ index 73c85063b..471ae811c 100644 * Gets the name of the update folder. The update folder is used to safely * update plugins at the right moment on a plugin load. diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 70e195808..56b0fdb55 100644 +index c23ae761e..4f9dd992a 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -228,6 +228,26 @@ public interface Server extends PluginMessageRecipient { +@@ -229,6 +229,26 @@ public interface Server extends PluginMessageRecipient { */ public int broadcastMessage(String message); @@ -68,7 +68,7 @@ index 70e195808..56b0fdb55 100644 * Gets the name of the update folder. The update folder is used to safely * update plugins at the right moment on a plugin load. diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index d5b904e61..0b14317e3 100644 +index e5e611201..45e9484dc 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -439,6 +439,36 @@ public interface Player extends HumanEntity, Conversable, CommandSender, Offline diff --git a/Spigot-API-Patches/0024-Add-command-to-reload-permissions.yml-and-require-co.patch b/Spigot-API-Patches/0024-Add-command-to-reload-permissions.yml-and-require-co.patch index 532d428222..6b3b367b9a 100644 --- a/Spigot-API-Patches/0024-Add-command-to-reload-permissions.yml-and-require-co.patch +++ b/Spigot-API-Patches/0024-Add-command-to-reload-permissions.yml-and-require-co.patch @@ -1,4 +1,4 @@ -From 4df7359ab8d56f067a1373cd77a35c2ea2ed28d9 Mon Sep 17 00:00:00 2001 +From fe68c9fd439d193c6dd02496842ef0e7aaf598cb 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,10 +6,10 @@ 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 471ae811..d6686820 100644 +index 4c5e0035a..f11cc3db8 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -1289,6 +1289,13 @@ public final class Bukkit { +@@ -1300,6 +1300,13 @@ public final class Bukkit { public static CommandMap getCommandMap() { return server.getCommandMap(); } @@ -24,10 +24,10 @@ index 471ae811..d6686820 100644 public static Server.Spigot spigot() diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 56b0fdb5..5a4528c4 100644 +index 4f9dd992a..07a24faa4 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1120,4 +1120,6 @@ public interface Server extends PluginMessageRecipient { +@@ -1129,4 +1129,6 @@ public interface Server extends PluginMessageRecipient { Spigot spigot(); // Spigot end @@ -35,7 +35,7 @@ index 56b0fdb5..5a4528c4 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 0ab7e295..f331a442 100644 +index 0ab7e295d..f331a4423 100644 --- a/src/main/java/org/bukkit/command/defaults/ReloadCommand.java +++ b/src/main/java/org/bukkit/command/defaults/ReloadCommand.java @@ -13,15 +13,36 @@ public class ReloadCommand extends BukkitCommand { @@ -87,7 +87,7 @@ index 0ab7e295..f331a442 100644 } } diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -index b88f31ca..bd0588a2 100644 +index b88f31ca2..bd0588a20 100644 --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java +++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java @@ -763,4 +763,13 @@ public final class SimplePluginManager implements PluginManager { diff --git a/Spigot-API-Patches/0035-LootTable-API.patch b/Spigot-API-Patches/0035-LootTable-API.patch index d2d95fd7f9..fcb1aead7e 100644 --- a/Spigot-API-Patches/0035-LootTable-API.patch +++ b/Spigot-API-Patches/0035-LootTable-API.patch @@ -1,4 +1,4 @@ -From 4f1dc63c147f7ba3ae36ad4c04f55c852ae84dd7 Mon Sep 17 00:00:00 2001 +From 74dcc240e66bd353b4e94b30769b8dec97ef41ea Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 1 May 2016 15:19:49 -0400 Subject: [PATCH] LootTable API @@ -12,32 +12,37 @@ Provides methods to determine players looted state for an object diff --git a/src/main/java/com/destroystokyo/paper/loottable/Lootable.java b/src/main/java/com/destroystokyo/paper/loottable/Lootable.java new file mode 100644 -index 00000000..d962a0ce +index 000000000..7dd3955b5 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/loottable/Lootable.java -@@ -0,0 +1,78 @@ +@@ -0,0 +1,93 @@ +package com.destroystokyo.paper.loottable; + ++import org.bukkit.Bukkit; ++import org.bukkit.NamespacedKey; ++import org.bukkit.loot.LootTable; ++ +/** + * Defines an object that has a Loot Table and seed associated with it. -+ * ++ *

+ * How the Loot Table and seed are used may vary based on Minecraft Versions + * and what type of object is using the Loot Table ++ * ++ * @deprecated Use {@link org.bukkit.loot.Lootable} + */ -+public interface Lootable { ++@Deprecated ++public interface Lootable extends org.bukkit.loot.Lootable { + + /** + * Gets the name of the Loot Table to be used in the World Folder ++ * + * @return The name, or null if no loot table exists ++ * @deprecated Use {@link org.bukkit.loot.Lootable#getLootTable()} + */ -+ String getLootTableName(); -+ -+ /** -+ * Returns whether or not this object has a Loot Table -+ * @return Has a loot table -+ */ -+ default boolean hasLootTable() { -+ return getLootTableName() != null; ++ @Deprecated ++ default String getLootTableName() { ++ LootTable lootTable = getLootTable(); ++ return lootTable != null && lootTable.getKey() != null ? lootTable.getKey().toString() : null; + } + + /** @@ -46,7 +51,9 @@ index 00000000..d962a0ce + * + * @param name name in either foo or minecraft:foo format + * @return The previous Loot Table before the change ++ * @deprecated Use {@link org.bukkit.loot.Lootable#setLootTable(LootTable)} + */ ++ @Deprecated + default String setLootTable(String name) { + return setLootTable(name, 0); + } @@ -58,52 +65,63 @@ index 00000000..d962a0ce + * @param name name in either foo or minecraft:foo format + * @param seed seed for the loot table. If 0, seed will be random + * @return The previous Loot Table before the change ++ * @deprecated Use {@link org.bukkit.loot.Lootable#setSeed(long)} + */ -+ String setLootTable(String name, long seed); ++ @Deprecated ++ default String setLootTable(String name, long seed) { ++ String prev = getLootTableName(); ++ LootTable lootTable = Bukkit.getLootTable(NamespacedKey.minecraft(name)); ++ setLootTable(lootTable, seed); ++ return prev; ++ } + + /** + * Gets the current seed associated to the Loot Table on this object + * + * @return The seed, or 0 for random ++ * @deprecated Use {@link org.bukkit.loot.Lootable#getSeed()} + */ -+ long getLootTableSeed(); ++ @Deprecated ++ default long getLootTableSeed() { ++ return getSeed(); ++ } + + /** + * Changes the current seed associated with the Loot Table on this object. -+ * ++ *

+ * The seed will have no affect if this object does not have a Loot Table + * associated with it. + * -+ * @throws IllegalStateException If called when this object does not have a loot table + * @param seed The seed to use, or 0 for random + * @return The previous seed ++ * @throws IllegalStateException If called when this object does not have a loot table ++ * @deprecated Use {@link org.bukkit.loot.Lootable#setSeed(long)} + */ ++ @Deprecated + default long setLootTableSeed(long seed) { + final String lootTableName = getLootTableName(); + if (lootTableName == null) { + throw new IllegalStateException("This object does not currently have a Loot Table."); + } + -+ long prev = getLootTableSeed(); -+ setLootTable(lootTableName, seed); ++ long prev = getSeed(); ++ setSeed(seed); + return prev; + } -+ -+ /** -+ * Clears the associated Loot Table to this object -+ */ -+ void clearLootTable(); +} diff --git a/src/main/java/com/destroystokyo/paper/loottable/LootableBlockInventory.java b/src/main/java/com/destroystokyo/paper/loottable/LootableBlockInventory.java new file mode 100644 -index 00000000..5e93e7e3 +index 000000000..9095df616 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/loottable/LootableBlockInventory.java -@@ -0,0 +1,12 @@ +@@ -0,0 +1,15 @@ +package com.destroystokyo.paper.loottable; + +import org.bukkit.block.Block; + ++/** ++ * Represents an Inventory that can generate loot, such as Chests inside of Fortresses and Mineshafts ++ */ +public interface LootableBlockInventory extends LootableInventory { + + /** @@ -114,14 +132,17 @@ index 00000000..5e93e7e3 +} diff --git a/src/main/java/com/destroystokyo/paper/loottable/LootableEntityInventory.java b/src/main/java/com/destroystokyo/paper/loottable/LootableEntityInventory.java new file mode 100644 -index 00000000..8bebf070 +index 000000000..a389f74c6 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/loottable/LootableEntityInventory.java -@@ -0,0 +1,12 @@ +@@ -0,0 +1,15 @@ +package com.destroystokyo.paper.loottable; + +import org.bukkit.entity.Entity; + ++/** ++ * Represents an Inventory that can generate loot, such as Minecarts inside of Mineshafts ++ */ +public interface LootableEntityInventory extends LootableInventory { + + /** @@ -132,7 +153,7 @@ index 00000000..8bebf070 +} diff --git a/src/main/java/com/destroystokyo/paper/loottable/LootableInventory.java b/src/main/java/com/destroystokyo/paper/loottable/LootableInventory.java new file mode 100644 -index 00000000..cde999ef +index 000000000..cde999ef4 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/loottable/LootableInventory.java @@ -0,0 +1,111 @@ @@ -249,7 +270,7 @@ index 00000000..cde999ef +} diff --git a/src/main/java/com/destroystokyo/paper/loottable/LootableInventoryReplenishEvent.java b/src/main/java/com/destroystokyo/paper/loottable/LootableInventoryReplenishEvent.java new file mode 100644 -index 00000000..2169493d +index 000000000..2169493d9 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/loottable/LootableInventoryReplenishEvent.java @@ -0,0 +1,41 @@ @@ -295,78 +316,174 @@ index 00000000..2169493d + } +} diff --git a/src/main/java/org/bukkit/block/Chest.java b/src/main/java/org/bukkit/block/Chest.java -index 97dc7813..a24a4094 100644 +index 815d79a53..b68ab881d 100644 --- a/src/main/java/org/bukkit/block/Chest.java +++ b/src/main/java/org/bukkit/block/Chest.java -@@ -1,12 +1,13 @@ +@@ -1,5 +1,6 @@ package org.bukkit.block; ++import com.destroystokyo.paper.loottable.LootableBlockInventory; import org.bukkit.Nameable; -+import com.destroystokyo.paper.loottable.LootableInventory; // Paper import org.bukkit.inventory.Inventory; - + import org.bukkit.loot.Lootable; +@@ -7,7 +8,7 @@ import org.bukkit.loot.Lootable; /** * Represents a captured state of a chest. */ --public interface Chest extends Container, Nameable { -+public interface Chest extends Container, Nameable, LootableInventory { // Paper +-public interface Chest extends Container, Nameable, Lootable { ++public interface Chest extends Container, Nameable, LootableBlockInventory { // Paper /** * Gets the inventory of the chest block represented by this block state. diff --git a/src/main/java/org/bukkit/block/Dispenser.java b/src/main/java/org/bukkit/block/Dispenser.java -index 108332df..4430b123 100644 +index 2741625db..6d180117e 100644 --- a/src/main/java/org/bukkit/block/Dispenser.java +++ b/src/main/java/org/bukkit/block/Dispenser.java -@@ -1,12 +1,13 @@ +@@ -1,5 +1,6 @@ package org.bukkit.block; ++import com.destroystokyo.paper.loottable.LootableBlockInventory; import org.bukkit.Nameable; -+import com.destroystokyo.paper.loottable.LootableInventory; // Paper + import org.bukkit.loot.Lootable; import org.bukkit.projectiles.BlockProjectileSource; - +@@ -7,7 +8,7 @@ import org.bukkit.projectiles.BlockProjectileSource; /** * Represents a captured state of a dispenser. */ --public interface Dispenser extends Container, Nameable { -+public interface Dispenser extends Container, Nameable, LootableInventory { // Paper +-public interface Dispenser extends Container, Nameable, Lootable { ++public interface Dispenser extends Container, Nameable, LootableBlockInventory { // Paper /** * Gets the BlockProjectileSource object for the dispenser. -diff --git a/src/main/java/org/bukkit/block/Hopper.java b/src/main/java/org/bukkit/block/Hopper.java -index bc3aeef2..5b698613 100644 ---- a/src/main/java/org/bukkit/block/Hopper.java -+++ b/src/main/java/org/bukkit/block/Hopper.java -@@ -1,8 +1,9 @@ +diff --git a/src/main/java/org/bukkit/block/Dropper.java b/src/main/java/org/bukkit/block/Dropper.java +index 2e8c3f711..47737b590 100644 +--- a/src/main/java/org/bukkit/block/Dropper.java ++++ b/src/main/java/org/bukkit/block/Dropper.java +@@ -1,12 +1,13 @@ package org.bukkit.block; ++import com.destroystokyo.paper.loottable.LootableBlockInventory; import org.bukkit.Nameable; -+import com.destroystokyo.paper.loottable.LootableInventory; // Paper + import org.bukkit.loot.Lootable; + + /** + * Represents a captured state of a dropper. + */ +-public interface Dropper extends Container, Nameable, Lootable { ++public interface Dropper extends Container, Nameable, LootableBlockInventory { // Paper + + /** + * Tries to drop a randomly selected item from the dropper's inventory, +diff --git a/src/main/java/org/bukkit/block/Hopper.java b/src/main/java/org/bukkit/block/Hopper.java +index 73fce5f33..221123e8c 100644 +--- a/src/main/java/org/bukkit/block/Hopper.java ++++ b/src/main/java/org/bukkit/block/Hopper.java +@@ -1,9 +1,10 @@ + package org.bukkit.block; + ++import com.destroystokyo.paper.loottable.LootableBlockInventory; + import org.bukkit.Nameable; + import org.bukkit.loot.Lootable; /** * Represents a captured state of a hopper. */ --public interface Hopper extends Container, Nameable { } -+public interface Hopper extends Container, Nameable, LootableInventory { } // Paper -\ No newline at end of file +-public interface Hopper extends Container, Nameable, Lootable { } ++public interface Hopper extends Container, Nameable, LootableBlockInventory { } // Paper diff --git a/src/main/java/org/bukkit/block/ShulkerBox.java b/src/main/java/org/bukkit/block/ShulkerBox.java -index 4c1740e7..aa1109c4 100644 +index 8e061e4a4..1c02c6e1c 100644 --- a/src/main/java/org/bukkit/block/ShulkerBox.java +++ b/src/main/java/org/bukkit/block/ShulkerBox.java -@@ -1,12 +1,13 @@ +@@ -1,5 +1,6 @@ package org.bukkit.block; -+import com.destroystokyo.paper.loottable.LootableInventory; ++import com.destroystokyo.paper.loottable.LootableBlockInventory; import org.bukkit.DyeColor; import org.bukkit.Nameable; - + import org.bukkit.loot.Lootable; +@@ -7,7 +8,7 @@ import org.bukkit.loot.Lootable; /** * Represents a captured state of a ShulkerBox. */ --public interface ShulkerBox extends Container, Nameable { -+public interface ShulkerBox extends Container, Nameable, LootableInventory { // Paper +-public interface ShulkerBox extends Container, Nameable, Lootable { ++public interface ShulkerBox extends Container, Nameable, LootableBlockInventory { // Paper /** * Get the {@link DyeColor} corresponding to this ShulkerBox +diff --git a/src/main/java/org/bukkit/entity/minecart/HopperMinecart.java b/src/main/java/org/bukkit/entity/minecart/HopperMinecart.java +index 8ced54039..865885501 100644 +--- a/src/main/java/org/bukkit/entity/minecart/HopperMinecart.java ++++ b/src/main/java/org/bukkit/entity/minecart/HopperMinecart.java +@@ -1,5 +1,6 @@ + package org.bukkit.entity.minecart; + ++import com.destroystokyo.paper.loottable.LootableEntityInventory; + import org.bukkit.entity.Minecart; + import org.bukkit.inventory.InventoryHolder; + import org.bukkit.loot.Lootable; +@@ -7,7 +8,7 @@ import org.bukkit.loot.Lootable; + /** + * Represents a Minecart with a Hopper inside it + */ +-public interface HopperMinecart extends Minecart, InventoryHolder, Lootable { ++public interface HopperMinecart extends Minecart, InventoryHolder, LootableEntityInventory { + + /** + * Checks whether or not this Minecart will pick up +diff --git a/src/main/java/org/bukkit/entity/minecart/StorageMinecart.java b/src/main/java/org/bukkit/entity/minecart/StorageMinecart.java +index 9ea403e6f..238d118f7 100644 +--- a/src/main/java/org/bukkit/entity/minecart/StorageMinecart.java ++++ b/src/main/java/org/bukkit/entity/minecart/StorageMinecart.java +@@ -1,5 +1,6 @@ + package org.bukkit.entity.minecart; + ++import com.destroystokyo.paper.loottable.LootableEntityInventory; + import org.bukkit.entity.Minecart; + import org.bukkit.inventory.InventoryHolder; + import org.bukkit.loot.Lootable; +@@ -9,5 +10,5 @@ import org.bukkit.loot.Lootable; + * minecarts} have their own inventory that can be accessed using methods + * from the {@link InventoryHolder} interface. + */ +-public interface StorageMinecart extends Minecart, InventoryHolder, Lootable { ++public interface StorageMinecart extends Minecart, InventoryHolder, LootableEntityInventory { // Paper + } +diff --git a/src/main/java/org/bukkit/loot/Lootable.java b/src/main/java/org/bukkit/loot/Lootable.java +index f4b3d0215..98a472055 100644 +--- a/src/main/java/org/bukkit/loot/Lootable.java ++++ b/src/main/java/org/bukkit/loot/Lootable.java +@@ -33,6 +33,31 @@ public interface Lootable { + */ + LootTable getLootTable(); + ++ // Paper start ++ /** ++ * Set the loot table and seed for a container or entity at the same time. ++ * ++ * @param table the Loot Table this {@link org.bukkit.block.Container} or {@link org.bukkit.entity.Mob} will have. ++ * @param seed the seed to used to generate loot. Default is 0. ++ */ ++ void setLootTable(LootTable table, long seed); ++ ++ /** ++ * Returns whether or not this object has a Loot Table ++ * @return Has a loot table ++ */ ++ default boolean hasLootTable() { ++ return getLootTable() != null; ++ } ++ ++ /** ++ * Clears the associated Loot Table to this object ++ */ ++ default void clearLootTable() { ++ setLootTable(null); ++ } ++ // Paper end ++ + /** + * Set the seed used when this Loot Table generates loot. + * -- 2.18.0 diff --git a/Spigot-API-Patches/0038-Allow-Reloading-of-Command-Aliases.patch b/Spigot-API-Patches/0038-Allow-Reloading-of-Command-Aliases.patch index 7476d160f7..7c3db32026 100644 --- a/Spigot-API-Patches/0038-Allow-Reloading-of-Command-Aliases.patch +++ b/Spigot-API-Patches/0038-Allow-Reloading-of-Command-Aliases.patch @@ -1,4 +1,4 @@ -From 2eaf589a9abaea57928f1d5ceecb1e404999a090 Mon Sep 17 00:00:00 2001 +From e4115cecc47d9c239aefb8f0deb31ca5d2f51a84 Mon Sep 17 00:00:00 2001 From: willies952002 Date: Mon, 28 Nov 2016 10:16:39 -0500 Subject: [PATCH] Allow Reloading of Command Aliases @@ -6,10 +6,10 @@ Subject: [PATCH] Allow Reloading of Command Aliases Reload the aliases stored in commands.yml diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index d6686820..35e18341 100644 +index f11cc3db8..37bf146dc 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -1296,6 +1296,15 @@ public final class Bukkit { +@@ -1307,6 +1307,15 @@ public final class Bukkit { public static void reloadPermissions() { server.reloadPermissions(); } @@ -26,10 +26,10 @@ index d6686820..35e18341 100644 public static Server.Spigot spigot() diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 5a4528c4..12efd654 100644 +index 07a24faa4..765efbc31 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1122,4 +1122,6 @@ public interface Server extends PluginMessageRecipient { +@@ -1131,4 +1131,6 @@ public interface Server extends PluginMessageRecipient { // Spigot end void reloadPermissions(); // Paper @@ -37,7 +37,7 @@ index 5a4528c4..12efd654 100644 + boolean reloadCommandAliases(); // Paper } diff --git a/src/main/java/org/bukkit/command/CommandMap.java b/src/main/java/org/bukkit/command/CommandMap.java -index 30d60247..938959aa 100644 +index 30d60247e..938959aa5 100644 --- a/src/main/java/org/bukkit/command/CommandMap.java +++ b/src/main/java/org/bukkit/command/CommandMap.java @@ -123,4 +123,13 @@ public interface CommandMap { @@ -55,7 +55,7 @@ index 30d60247..938959aa 100644 + // Paper end } diff --git a/src/main/java/org/bukkit/command/SimpleCommandMap.java b/src/main/java/org/bukkit/command/SimpleCommandMap.java -index 4aea03c6..63d27392 100644 +index 4aea03c69..63d273927 100644 --- a/src/main/java/org/bukkit/command/SimpleCommandMap.java +++ b/src/main/java/org/bukkit/command/SimpleCommandMap.java @@ -282,4 +282,10 @@ public class SimpleCommandMap implements CommandMap { @@ -70,7 +70,7 @@ index 4aea03c6..63d27392 100644 + // Paper end } diff --git a/src/main/java/org/bukkit/command/defaults/ReloadCommand.java b/src/main/java/org/bukkit/command/defaults/ReloadCommand.java -index f331a442..a977045d 100644 +index f331a4423..a977045de 100644 --- a/src/main/java/org/bukkit/command/defaults/ReloadCommand.java +++ b/src/main/java/org/bukkit/command/defaults/ReloadCommand.java @@ -13,7 +13,7 @@ public class ReloadCommand extends BukkitCommand { diff --git a/Spigot-API-Patches/0049-Add-configuration-option-to-prevent-player-names-fro.patch b/Spigot-API-Patches/0049-Add-configuration-option-to-prevent-player-names-fro.patch index 7e3432d96a..3c48559a75 100644 --- a/Spigot-API-Patches/0049-Add-configuration-option-to-prevent-player-names-fro.patch +++ b/Spigot-API-Patches/0049-Add-configuration-option-to-prevent-player-names-fro.patch @@ -1,4 +1,4 @@ -From 2ac7131971cf62c416974a622be676b1e55ff205 Mon Sep 17 00:00:00 2001 +From ce02b7367e49e0538751330743bf6a07a1183727 Mon Sep 17 00:00:00 2001 From: kashike Date: Fri, 9 Jun 2017 07:24:24 -0700 Subject: [PATCH] Add configuration option to prevent player names from being @@ -6,10 +6,10 @@ Subject: [PATCH] Add configuration option to prevent player names from being diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 35e18341..9558645f 100644 +index 37bf146dc..a8234e626 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -1305,6 +1305,16 @@ public final class Bukkit { +@@ -1316,6 +1316,16 @@ public final class Bukkit { public static boolean reloadCommandAliases() { return server.reloadCommandAliases(); } @@ -27,10 +27,10 @@ index 35e18341..9558645f 100644 public static Server.Spigot spigot() diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 12efd654..da0d08b3 100644 +index 765efbc31..f164137e4 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1124,4 +1124,14 @@ public interface Server extends PluginMessageRecipient { +@@ -1133,4 +1133,14 @@ public interface Server extends PluginMessageRecipient { void reloadPermissions(); // Paper boolean reloadCommandAliases(); // Paper @@ -46,7 +46,7 @@ index 12efd654..da0d08b3 100644 + // Paper end } diff --git a/src/main/java/org/bukkit/command/PluginCommand.java b/src/main/java/org/bukkit/command/PluginCommand.java -index 2abe1208..c660c178 100644 +index 2abe1208f..c660c178c 100644 --- a/src/main/java/org/bukkit/command/PluginCommand.java +++ b/src/main/java/org/bukkit/command/PluginCommand.java @@ -145,6 +145,7 @@ public final class PluginCommand extends Command implements PluginIdentifiableCo diff --git a/Spigot-API-Patches/0055-Basic-PlayerProfile-API.patch b/Spigot-API-Patches/0055-Basic-PlayerProfile-API.patch index 63db9190d8..55a1b7a44d 100644 --- a/Spigot-API-Patches/0055-Basic-PlayerProfile-API.patch +++ b/Spigot-API-Patches/0055-Basic-PlayerProfile-API.patch @@ -1,4 +1,4 @@ -From bdcaf28a89037f365f2f9020eae7a11d8fe5080e Mon Sep 17 00:00:00 2001 +From 38e2e079115d4abb46751d6f46fa47a4b11a3e10 Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 15 Jan 2018 21:46:46 -0500 Subject: [PATCH] Basic PlayerProfile API @@ -7,7 +7,7 @@ Provides basic elements of a PlayerProfile to be used by future API/events diff --git a/src/main/java/com/destroystokyo/paper/profile/PlayerProfile.java b/src/main/java/com/destroystokyo/paper/profile/PlayerProfile.java new file mode 100644 -index 00000000..1a69e5f7 +index 000000000..1a69e5f75 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/profile/PlayerProfile.java @@ -0,0 +1,141 @@ @@ -154,7 +154,7 @@ index 00000000..1a69e5f7 +} diff --git a/src/main/java/com/destroystokyo/paper/profile/ProfileProperty.java b/src/main/java/com/destroystokyo/paper/profile/ProfileProperty.java new file mode 100644 -index 00000000..d17061e6 +index 000000000..d17061e66 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/profile/ProfileProperty.java @@ -0,0 +1,72 @@ @@ -231,10 +231,10 @@ index 00000000..d17061e6 + } +} diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 9558645f..86e72f95 100644 +index a8234e626..39e52986c 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -46,6 +46,9 @@ import org.bukkit.generator.ChunkGenerator; +@@ -47,6 +47,9 @@ import org.bukkit.generator.ChunkGenerator; import org.bukkit.inventory.ItemFactory; import org.bukkit.inventory.meta.ItemMeta; @@ -244,7 +244,7 @@ index 9558645f..86e72f95 100644 /** * Represents the Bukkit core, for version and Server singleton handling */ -@@ -1315,6 +1318,37 @@ public final class Bukkit { +@@ -1326,6 +1329,37 @@ public final class Bukkit { public static boolean suggestPlayerNamesWhenNullTabCompletions() { return server.suggestPlayerNamesWhenNullTabCompletions(); } @@ -283,10 +283,10 @@ index 9558645f..86e72f95 100644 public static Server.Spigot spigot() diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index da0d08b3..878255a4 100644 +index f164137e4..64c78caf3 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -47,6 +47,9 @@ import org.bukkit.generator.ChunkGenerator; +@@ -48,6 +48,9 @@ import org.bukkit.generator.ChunkGenerator; import org.bukkit.inventory.ItemFactory; import org.bukkit.inventory.meta.ItemMeta; @@ -296,7 +296,7 @@ index da0d08b3..878255a4 100644 /** * Represents a server implementation. */ -@@ -1133,5 +1136,30 @@ public interface Server extends PluginMessageRecipient { +@@ -1142,5 +1145,30 @@ public interface Server extends PluginMessageRecipient { * @return true if player names should be suggested */ boolean suggestPlayerNamesWhenNullTabCompletions(); diff --git a/Spigot-API-Patches/0088-getPlayerUniqueId-API.patch b/Spigot-API-Patches/0088-getPlayerUniqueId-API.patch index 82f837055a..f48816b9c3 100644 --- a/Spigot-API-Patches/0088-getPlayerUniqueId-API.patch +++ b/Spigot-API-Patches/0088-getPlayerUniqueId-API.patch @@ -1,4 +1,4 @@ -From c4f01447191d4f50f00aa4e4975f70ddc174cf34 Mon Sep 17 00:00:00 2001 +From 7a5cdf865d3a693927a9f2c01082038f67eea707 Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 22 Mar 2018 01:39:28 -0400 Subject: [PATCH] getPlayerUniqueId API @@ -9,10 +9,10 @@ In Offline Mode, will return an Offline UUID This is a more performant way to obtain a UUID for a name than loading an OfflinePlayer diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 01a226d9..b389677a 100644 +index 39e52986c..491c73832 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -426,6 +426,20 @@ public final class Bukkit { +@@ -427,6 +427,20 @@ public final class Bukkit { return server.getPlayer(id); } @@ -34,10 +34,10 @@ index 01a226d9..b389677a 100644 * Gets the plugin manager for interfacing with plugins. * diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 6c96fc14..f5aee1c5 100644 +index 64c78caf3..f75fe8b15 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -356,6 +356,18 @@ public interface Server extends PluginMessageRecipient { +@@ -357,6 +357,18 @@ public interface Server extends PluginMessageRecipient { */ public Player getPlayer(UUID id); diff --git a/Spigot-Server-Patches/0002-Paper-config-files.patch b/Spigot-Server-Patches/0002-Paper-config-files.patch index 7454d96361..c10b918909 100644 --- a/Spigot-Server-Patches/0002-Paper-config-files.patch +++ b/Spigot-Server-Patches/0002-Paper-config-files.patch @@ -1,4 +1,4 @@ -From 6d3483af0bc822c5ca21a975de62af8bda28720a Mon Sep 17 00:00:00 2001 +From cb37d1deb3834306189988414d2c44bd0593dfc1 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Mon, 29 Feb 2016 21:02:09 -0600 Subject: [PATCH] Paper config files @@ -581,10 +581,10 @@ index 73bd5e1d74..e1cf1e579a 100644 this.world = new CraftWorld((WorldServer) this, gen, env); this.ticksPerAnimalSpawns = this.getServer().getTicksPerAnimalSpawns(); // CraftBukkit diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 7cd9b3b8cb..4c1486a38e 100644 +index 6ee7c56ada..ed3c23b74e 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -744,6 +744,7 @@ public final class CraftServer implements Server { +@@ -745,6 +745,7 @@ public final class CraftServer implements Server { } org.spigotmc.SpigotConfig.init((File) console.options.valueOf("spigot-settings")); // Spigot @@ -592,7 +592,7 @@ index 7cd9b3b8cb..4c1486a38e 100644 for (WorldServer world : console.worlds) { world.worldData.setDifficulty(difficulty); world.setSpawnFlags(monsters, animals); -@@ -759,6 +760,7 @@ public final class CraftServer implements Server { +@@ -760,6 +761,7 @@ public final class CraftServer implements Server { world.ticksPerMonsterSpawns = this.getTicksPerMonsterSpawns(); } world.spigotConfig.init(); // Spigot @@ -600,7 +600,7 @@ index 7cd9b3b8cb..4c1486a38e 100644 } pluginManager.clearPlugins(); -@@ -766,6 +768,7 @@ public final class CraftServer implements Server { +@@ -767,6 +769,7 @@ public final class CraftServer implements Server { resetRecipes(); reloadData(); org.spigotmc.SpigotConfig.registerCommands(); // Spigot @@ -608,7 +608,7 @@ index 7cd9b3b8cb..4c1486a38e 100644 overrideAllCommandBlockCommands = commandsConfiguration.getStringList("command-block-overrides").contains("*"); ignoreVanillaPermissions = commandsConfiguration.getBoolean("ignore-vanilla-permissions"); -@@ -1866,4 +1869,26 @@ public final class CraftServer implements Server { +@@ -1874,4 +1877,26 @@ public final class CraftServer implements Server { { return spigot; } @@ -636,7 +636,7 @@ index 7cd9b3b8cb..4c1486a38e 100644 + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index df07dc5946..57da619d80 100644 +index 484869a8a8..f1e8320034 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -128,6 +128,14 @@ public class Main { @@ -655,7 +655,7 @@ index df07dc5946..57da619d80 100644 }; diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java -index 9128f77543..7b1a9a8a0e 100644 +index 95f7a9587a..87bc8e2d9c 100644 --- a/src/main/java/org/spigotmc/SpigotWorldConfig.java +++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java @@ -39,31 +39,31 @@ public class SpigotWorldConfig diff --git a/Spigot-Server-Patches/0009-Timings-v2.patch b/Spigot-Server-Patches/0009-Timings-v2.patch index 1f2f8f25a6..cd1f744b9a 100644 --- a/Spigot-Server-Patches/0009-Timings-v2.patch +++ b/Spigot-Server-Patches/0009-Timings-v2.patch @@ -1,4 +1,4 @@ -From 39cb60427cd54626d8319c75c8e1ec1dca86b2d4 Mon Sep 17 00:00:00 2001 +From 145b2523893f196854951df2dbbcbd9a46aca84b Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 3 Mar 2016 04:00:11 -0600 Subject: [PATCH] Timings v2 @@ -1445,10 +1445,10 @@ index 2c6f6de4ce..f032ecab64 100644 // CraftBukkit start diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 4c1486a38e..ebc2d690b0 100644 +index ed3c23b74e..a4112c54ea 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1839,12 +1839,31 @@ public final class CraftServer implements Server { +@@ -1847,12 +1847,31 @@ public final class CraftServer implements Server { private final Spigot spigot = new Spigot() { diff --git a/Spigot-Server-Patches/0013-Allow-nerfed-mobs-to-jump.patch b/Spigot-Server-Patches/0013-Allow-nerfed-mobs-to-jump.patch index 96f18606ca..fa0c66b997 100644 --- a/Spigot-Server-Patches/0013-Allow-nerfed-mobs-to-jump.patch +++ b/Spigot-Server-Patches/0013-Allow-nerfed-mobs-to-jump.patch @@ -1,11 +1,11 @@ -From 36849476a5ac4508bd8ff4f0d3e1b46c3e22a695 Mon Sep 17 00:00:00 2001 +From 4796b2090e28ed3bbd5f9c26752a9e2d31763434 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Tue, 1 Mar 2016 13:24:16 -0600 Subject: [PATCH] Allow nerfed mobs to jump diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index cacf58607..de8680e4d 100644 +index cacf58607c..de8680e4dd 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -87,4 +87,9 @@ public class PaperWorldConfig { @@ -19,7 +19,7 @@ index cacf58607..de8680e4d 100644 + } } diff --git a/src/main/java/net/minecraft/server/ControllerJump.java b/src/main/java/net/minecraft/server/ControllerJump.java -index 4ed5192c6..489beed26 100644 +index 4ed5192c65..489beed269 100644 --- a/src/main/java/net/minecraft/server/ControllerJump.java +++ b/src/main/java/net/minecraft/server/ControllerJump.java @@ -13,6 +13,7 @@ public class ControllerJump { @@ -31,7 +31,7 @@ index 4ed5192c6..489beed26 100644 this.b.o(this.a); this.a = false; diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java -index d24ff109c..3744d01ec 100644 +index 25413c70b5..6e324ad589 100644 --- a/src/main/java/net/minecraft/server/EntityInsentient.java +++ b/src/main/java/net/minecraft/server/EntityInsentient.java @@ -32,6 +32,7 @@ public abstract class EntityInsentient extends EntityLiving { @@ -42,7 +42,7 @@ index d24ff109c..3744d01ec 100644 public PathfinderGoalSelector targetSelector; private EntityLiving goalTarget; private final EntitySenses bC; -@@ -641,6 +642,12 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -646,6 +647,12 @@ public abstract class EntityInsentient extends EntityLiving { // Spigot Start if ( this.fromMobSpawner ) { @@ -56,7 +56,7 @@ index d24ff109c..3744d01ec 100644 } // Spigot End diff --git a/src/main/java/net/minecraft/server/PathfinderGoalFloat.java b/src/main/java/net/minecraft/server/PathfinderGoalFloat.java -index 0d9505138..38a0b2db1 100644 +index 0d95051383..38a0b2db1e 100644 --- a/src/main/java/net/minecraft/server/PathfinderGoalFloat.java +++ b/src/main/java/net/minecraft/server/PathfinderGoalFloat.java @@ -6,14 +6,17 @@ public class PathfinderGoalFloat extends PathfinderGoal { diff --git a/Spigot-Server-Patches/0014-Add-configurable-despawn-distances-for-living-entiti.patch b/Spigot-Server-Patches/0014-Add-configurable-despawn-distances-for-living-entiti.patch index aedf24225a..8d3bbea84e 100644 --- a/Spigot-Server-Patches/0014-Add-configurable-despawn-distances-for-living-entiti.patch +++ b/Spigot-Server-Patches/0014-Add-configurable-despawn-distances-for-living-entiti.patch @@ -1,11 +1,11 @@ -From 483632d2372f106559fde7170741ae63fe441c28 Mon Sep 17 00:00:00 2001 +From e8b18bc8a81789c57bb9b9af47ba408d3fb10756 Mon Sep 17 00:00:00 2001 From: Suddenly Date: Tue, 1 Mar 2016 13:51:54 -0600 Subject: [PATCH] Add configurable despawn distances for living entities diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index de8680e4d..02f7e506e 100644 +index de8680e4dd..02f7e506e3 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -92,4 +92,20 @@ public class PaperWorldConfig { @@ -30,10 +30,10 @@ index de8680e4d..02f7e506e 100644 + } } diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java -index 3744d01ec..27c97530f 100644 +index 6e324ad589..98b28e8573 100644 --- a/src/main/java/net/minecraft/server/EntityInsentient.java +++ b/src/main/java/net/minecraft/server/EntityInsentient.java -@@ -620,13 +620,13 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -625,13 +625,13 @@ public abstract class EntityInsentient extends EntityLiving { double d2 = entityhuman.locZ - this.locZ; double d3 = d0 * d0 + d1 * d1 + d2 * d2; 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 42c8e85ffe..f5559bc61a 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 a8e2034fdf4e0bd704944a6294f759d48d386dd7 Mon Sep 17 00:00:00 2001 +From a23e0846cb2432daf8507b2f154c35f709946c77 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 220ca7bca..eb4b08be4 100644 +index 220ca7bca0..eb4b08be46 100644 --- a/src/main/java/net/minecraft/server/EULA.java +++ b/src/main/java/net/minecraft/server/EULA.java @@ -52,13 +52,12 @@ public class EULA { @@ -25,7 +25,7 @@ index 220ca7bca..eb4b08be4 100644 } } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 83a73b86e..d8874c398 100644 +index ce4bf0a68f..c72bdd29d1 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1205,7 +1205,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati @@ -38,10 +38,10 @@ index 83a73b86e..d8874c398 100644 public CrashReport b(CrashReport crashreport) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index ebc2d690b..c2d479dd1 100644 +index a4112c54ea..567af5b9fa 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -153,7 +153,7 @@ import org.bukkit.event.server.TabCompleteEvent; +@@ -154,7 +154,7 @@ import org.bukkit.event.server.TabCompleteEvent; import net.md_5.bungee.api.chat.BaseComponent; public final class CraftServer implements Server { @@ -51,7 +51,7 @@ index ebc2d690b..c2d479dd1 100644 private final String bukkitVersion = Versioning.getBukkitVersion(); private final Logger logger = Logger.getLogger("Minecraft"); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index f1e832003..f7a4d53ed 100644 +index f1e8320034..f7a4d53ede 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -200,7 +200,7 @@ public class Main { @@ -64,7 +64,7 @@ index f1e832003..f7a4d53ed 100644 Thread.sleep(TimeUnit.SECONDS.toMillis(20)); } diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java -index 94a3d4237..91b8aa6a1 100644 +index 94a3d4237d..91b8aa6a16 100644 --- a/src/main/java/org/spigotmc/WatchdogThread.java +++ b/src/main/java/org/spigotmc/WatchdogThread.java @@ -19,7 +19,7 @@ public class WatchdogThread extends Thread diff --git a/Spigot-Server-Patches/0018-Player-affects-spawning-API.patch b/Spigot-Server-Patches/0018-Player-affects-spawning-API.patch index aee8b0db38..d2828224fd 100644 --- a/Spigot-Server-Patches/0018-Player-affects-spawning-API.patch +++ b/Spigot-Server-Patches/0018-Player-affects-spawning-API.patch @@ -1,4 +1,4 @@ -From 32f08be9fa7cde20a13a4f2a8221a5ee11dfbfef Mon Sep 17 00:00:00 2001 +From ed167340cd2c4dc93a1daf5e1f56c15ef3de5956 Mon Sep 17 00:00:00 2001 From: Jedediah Smith Date: Tue, 1 Mar 2016 14:47:52 -0600 Subject: [PATCH] Player affects spawning API @@ -19,10 +19,10 @@ index c5bc976c79..ca14080ccd 100644 // CraftBukkit start public boolean fauxSleeping; diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java -index 27c97530fa..3723fd9770 100644 +index 98b28e8573..0cfda190bc 100644 --- a/src/main/java/net/minecraft/server/EntityInsentient.java +++ b/src/main/java/net/minecraft/server/EntityInsentient.java -@@ -614,7 +614,7 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -619,7 +619,7 @@ public abstract class EntityInsentient extends EntityLiving { } else { EntityHuman entityhuman = this.world.findNearbyPlayer(this, -1.0D); diff --git a/Spigot-Server-Patches/0021-Further-improve-server-tick-loop.patch b/Spigot-Server-Patches/0021-Further-improve-server-tick-loop.patch index 8d2f96ab2d..a039d081df 100644 --- a/Spigot-Server-Patches/0021-Further-improve-server-tick-loop.patch +++ b/Spigot-Server-Patches/0021-Further-improve-server-tick-loop.patch @@ -1,4 +1,4 @@ -From ecccdf30b45088c8dec9353e0e709b6bb1bf437a Mon Sep 17 00:00:00 2001 +From 03261a6b50ee347b4be1165cead324e26e363737 Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 1 Mar 2016 23:09:29 -0600 Subject: [PATCH] Further improve server tick loop @@ -155,10 +155,10 @@ index c72bdd29d1..687250c639 100644 this.aa += 50L; // Spigot end diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index c2d479dd11..d28205cdfc 100644 +index 567af5b9fa..1c003a3898 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1836,6 +1836,17 @@ public final class CraftServer implements Server { +@@ -1844,6 +1844,17 @@ public final class CraftServer implements Server { return CraftMagicNumbers.INSTANCE; } diff --git a/Spigot-Server-Patches/0045-Ensure-commands-are-not-ran-async.patch b/Spigot-Server-Patches/0045-Ensure-commands-are-not-ran-async.patch index eaf88d603c..707bf17240 100644 --- a/Spigot-Server-Patches/0045-Ensure-commands-are-not-ran-async.patch +++ b/Spigot-Server-Patches/0045-Ensure-commands-are-not-ran-async.patch @@ -1,4 +1,4 @@ -From bd9a065c4b1cbe5ff5dc45da9193adc0e9328252 Mon Sep 17 00:00:00 2001 +From 92075bd693c6b7c695b63e21d5570a9c952c8984 Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 3 Mar 2016 01:17:12 -0600 Subject: [PATCH] Ensure commands are not ran async @@ -48,10 +48,10 @@ index 5d42cfe81c..dc38e4e043 100644 } else if (this.player.getChatFlags() == EntityHuman.EnumChatVisibility.SYSTEM) { // Do nothing, this is coming from a plugin diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 6ad91a16f2..a270d31b22 100644 +index 1c003a3898..d9cba38080 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -690,6 +690,29 @@ public final class CraftServer implements Server { +@@ -691,6 +691,29 @@ public final class CraftServer implements Server { Validate.notNull(commandLine, "CommandLine cannot be null"); org.spigotmc.AsyncCatcher.catchOp( "command dispatch" ); // Spigot diff --git a/Spigot-Server-Patches/0049-Expose-server-CommandMap.patch b/Spigot-Server-Patches/0049-Expose-server-CommandMap.patch index 20acd17d24..62394050b9 100644 --- a/Spigot-Server-Patches/0049-Expose-server-CommandMap.patch +++ b/Spigot-Server-Patches/0049-Expose-server-CommandMap.patch @@ -1,14 +1,14 @@ -From c66ee93656b5300113b076f9643a454227cf850a Mon Sep 17 00:00:00 2001 +From d517d0ead223fc0a5da5f4c77692abf9ee5203d0 Mon Sep 17 00:00:00 2001 From: kashike Date: Thu, 3 Mar 2016 02:15:57 -0600 Subject: [PATCH] Expose server CommandMap diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index a270d31b22..d7e77a849a 100644 +index d9cba38080..5230867326 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1588,6 +1588,7 @@ public final class CraftServer implements Server { +@@ -1589,6 +1589,7 @@ public final class CraftServer implements Server { return helpMap; } diff --git a/Spigot-Server-Patches/0055-Add-velocity-warnings.patch b/Spigot-Server-Patches/0055-Add-velocity-warnings.patch index 70ac7175fe..48cc4388ec 100644 --- a/Spigot-Server-Patches/0055-Add-velocity-warnings.patch +++ b/Spigot-Server-Patches/0055-Add-velocity-warnings.patch @@ -1,14 +1,14 @@ -From 4409e5d855574376439fcdf9b600891e3bff726d Mon Sep 17 00:00:00 2001 +From 50d67616ec3a1650dfe76984418cfbe1cadaf22a Mon Sep 17 00:00:00 2001 From: Joseph Hirschfeld Date: Thu, 3 Mar 2016 02:48:12 -0600 Subject: [PATCH] Add velocity warnings diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index d7e77a849a..e701b37cb4 100644 +index 5230867326..53adc9e1a0 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -190,6 +190,7 @@ public final class CraftServer implements Server { +@@ -191,6 +191,7 @@ public final class CraftServer implements Server { public boolean ignoreVanillaPermissions = false; private final List playerView; public int reloadCount; @@ -17,7 +17,7 @@ index d7e77a849a..e701b37cb4 100644 private final class BooleanWrapper { private boolean value = true; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 34246369c5..03a3328b06 100644 +index 249d8115e8..dedf1526e6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -262,12 +262,44 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/Spigot-Server-Patches/0064-Default-loading-permissions.yml-before-plugins.patch b/Spigot-Server-Patches/0064-Default-loading-permissions.yml-before-plugins.patch index 072cb6f5bb..91ec6a97e6 100644 --- a/Spigot-Server-Patches/0064-Default-loading-permissions.yml-before-plugins.patch +++ b/Spigot-Server-Patches/0064-Default-loading-permissions.yml-before-plugins.patch @@ -1,4 +1,4 @@ -From e9ee81ba8c88cb42333db3f2dcd73378dd8222b3 Mon Sep 17 00:00:00 2001 +From 6edc5b87fee0f325dfaa092a9f370179b57abfbd Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 18 Mar 2016 13:17:38 -0400 Subject: [PATCH] Default loading permissions.yml before plugins @@ -16,7 +16,7 @@ modify that. Under the previous logic, plugins were unable (cleanly) override pe A config option has been added for those who depend on the previous behavior, but I don't expect that. diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java -index 280cfd5534..40c5ea4745 100644 +index fd00c320ce..620f23f4f0 100644 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java @@ -214,4 +214,9 @@ public class PaperConfig { @@ -30,10 +30,10 @@ index 280cfd5534..40c5ea4745 100644 + } } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index e701b37cb4..030d68a704 100644 +index 53adc9e1a0..b68af1c285 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -331,6 +331,7 @@ public final class CraftServer implements Server { +@@ -332,6 +332,7 @@ public final class CraftServer implements Server { if (type == PluginLoadOrder.STARTUP) { helpMap.clear(); helpMap.initializeGeneralTopics(); @@ -41,7 +41,7 @@ index e701b37cb4..030d68a704 100644 } Plugin[] plugins = pluginManager.getPlugins(); -@@ -348,7 +349,7 @@ public final class CraftServer implements Server { +@@ -349,7 +350,7 @@ public final class CraftServer implements Server { setVanillaCommands(false); // Spigot end commandMap.registerServerAliases(); diff --git a/Spigot-Server-Patches/0065-Allow-Reloading-of-Custom-Permissions.patch b/Spigot-Server-Patches/0065-Allow-Reloading-of-Custom-Permissions.patch index 0a9ddb20a9..3bd67dd9de 100644 --- a/Spigot-Server-Patches/0065-Allow-Reloading-of-Custom-Permissions.patch +++ b/Spigot-Server-Patches/0065-Allow-Reloading-of-Custom-Permissions.patch @@ -1,4 +1,4 @@ -From 26f80b0fe03d973057cf7c96d6df8a2133b56c26 Mon Sep 17 00:00:00 2001 +From 31f99b0faa647c2f3dc0ba0a34aa710eb043aaf4 Mon Sep 17 00:00:00 2001 From: William Date: Fri, 18 Mar 2016 03:30:17 -0400 Subject: [PATCH] Allow Reloading of Custom Permissions @@ -6,10 +6,10 @@ Subject: [PATCH] Allow Reloading of Custom Permissions https://github.com/PaperMC/Paper/issues/49 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index ed823bef1..4dd49110a 100644 +index b68af1c285..f70629a868 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1946,5 +1946,23 @@ public final class CraftServer implements Server { +@@ -1954,5 +1954,23 @@ public final class CraftServer implements Server { return false; } } @@ -34,5 +34,5 @@ index ed823bef1..4dd49110a 100644 // Paper end } -- -2.18.0.windows.1 +2.18.0 diff --git a/Spigot-Server-Patches/0066-Remove-Metadata-on-reload.patch b/Spigot-Server-Patches/0066-Remove-Metadata-on-reload.patch index 9f91340c75..d4bda0058d 100644 --- a/Spigot-Server-Patches/0066-Remove-Metadata-on-reload.patch +++ b/Spigot-Server-Patches/0066-Remove-Metadata-on-reload.patch @@ -1,4 +1,4 @@ -From 6a88f48f2414502aeda9ce864b9bf41a86541d13 Mon Sep 17 00:00:00 2001 +From 98015c22852bc9ced6426fe6f8b716db1e00280f Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 18 Mar 2016 13:50:14 -0400 Subject: [PATCH] Remove Metadata on reload @@ -7,10 +7,10 @@ Metadata is not meant to persist reload as things break badly with non primitive This will remove metadata on reload so it does not crash everything if a plugin uses it. diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 83364efb50..f3af4ba520 100644 +index f70629a868..7ad009c073 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -788,8 +788,18 @@ public final class CraftServer implements Server { +@@ -789,8 +789,18 @@ public final class CraftServer implements Server { world.paperConfig.init(); // Paper } diff --git a/Spigot-Server-Patches/0094-Configurable-Keep-Spawn-Loaded-range-per-world.patch b/Spigot-Server-Patches/0094-Configurable-Keep-Spawn-Loaded-range-per-world.patch index 1cf75fb008..acdc8f51a5 100644 --- a/Spigot-Server-Patches/0094-Configurable-Keep-Spawn-Loaded-range-per-world.patch +++ b/Spigot-Server-Patches/0094-Configurable-Keep-Spawn-Loaded-range-per-world.patch @@ -1,4 +1,4 @@ -From 057291c909254cc8c64bfb6e936fd0548b9f583f Mon Sep 17 00:00:00 2001 +From 7d678dd4a34e22dd9c7990f22ca6bf3430ed30f3 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 @@ -21,7 +21,7 @@ index bb1c1c57cc..667a0dde8c 100644 + } } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 9fcc8c782d..204cf4f648 100644 +index 8fa7f6e1bb..649fff95b0 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -485,13 +485,21 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati @@ -78,10 +78,10 @@ index dcc1d08b16..4c33c331f0 100644 public void a(Packet packet) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 5634b1c85e..6e3539ab8d 100644 +index 7ad009c073..3861c63cb8 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -991,7 +991,7 @@ public final class CraftServer implements Server { +@@ -992,7 +992,7 @@ public final class CraftServer implements Server { System.out.println("Preparing start region for level " + (console.worlds.size() - 1) + " (Seed: " + internal.getSeed() + ")"); if (internal.getWorld().getKeepSpawnInMemory()) { @@ -91,7 +91,7 @@ index 5634b1c85e..6e3539ab8d 100644 for (int j = -short1; j <= short1; j += 16) { for (int k = -short1; k <= short1; k += 16) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 29a5ac639e..e3e45ed48a 100644 +index cb80fce3b5..907791a5f1 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1281,8 +1281,9 @@ public class CraftWorld implements World { diff --git a/Spigot-Server-Patches/0111-LootTable-API-Replenishable-Lootables-Feature.patch b/Spigot-Server-Patches/0111-LootTable-API-Replenishable-Lootables-Feature.patch index 40cba5f702..11e0478ea6 100644 --- a/Spigot-Server-Patches/0111-LootTable-API-Replenishable-Lootables-Feature.patch +++ b/Spigot-Server-Patches/0111-LootTable-API-Replenishable-Lootables-Feature.patch @@ -1,4 +1,4 @@ -From ebb3f2d170d70881d4f7a210e3f7c110839cc945 Mon Sep 17 00:00:00 2001 +From fd6c2c49c3fa2bbf29d1ea1ec2c04d901a1060d6 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 1 May 2016 21:19:14 -0400 Subject: [PATCH] LootTable API & Replenishable Lootables Feature @@ -137,14 +137,12 @@ index 0000000000..1150dee01e +} diff --git a/src/main/java/com/destroystokyo/paper/loottable/CraftLootableInventory.java b/src/main/java/com/destroystokyo/paper/loottable/CraftLootableInventory.java new file mode 100644 -index 0000000000..668097620f +index 0000000000..b72232093b --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/loottable/CraftLootableInventory.java -@@ -0,0 +1,88 @@ +@@ -0,0 +1,62 @@ +package com.destroystokyo.paper.loottable; + -+import org.apache.commons.lang.Validate; -+ +import java.util.UUID; + +public interface CraftLootableInventory extends CraftLootable, LootableInventory { @@ -163,30 +161,6 @@ index 0000000000..668097620f + } + + @Override -+ default String getLootTableName() { -+ return getLootableData().getLootable().getLootTableName(); -+ } -+ -+ @Override -+ default String setLootTable(String name, long seed) { -+ Validate.notNull(name); -+ -+ String prevLootTable = getLootTableName(); -+ getLootableData().getLootable().setLootTable(name, seed); -+ return prevLootTable; -+ } -+ -+ @Override -+ default long getLootTableSeed() { -+ return getLootableData().getLootable().getLootTableSeed(); -+ } -+ -+ @Override -+ default void clearLootTable() { -+ getLootableData().getLootable().clearLootTable(); -+ } -+ -+ @Override + default boolean hasPlayerLooted(UUID player) { + return getLootableData().hasPlayerLooted(player); + } @@ -231,15 +205,16 @@ index 0000000000..668097620f +} diff --git a/src/main/java/com/destroystokyo/paper/loottable/CraftLootableInventoryData.java b/src/main/java/com/destroystokyo/paper/loottable/CraftLootableInventoryData.java new file mode 100644 -index 0000000000..9a65603bcb +index 0000000000..8547205456 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/loottable/CraftLootableInventoryData.java -@@ -0,0 +1,182 @@ +@@ -0,0 +1,179 @@ +package com.destroystokyo.paper.loottable; + +import com.destroystokyo.paper.PaperWorldConfig; +import net.minecraft.server.*; +import org.bukkit.entity.Player; ++import org.bukkit.loot.LootTable; + +import javax.annotation.Nullable; +import java.util.HashMap; @@ -275,15 +250,11 @@ index 0000000000..9a65603bcb + return prev; + } + -+ CraftLootableInventory getLootable() { -+ return lootable; -+ } -+ + public boolean shouldReplenish(@Nullable EntityHuman player) { -+ String tableName = this.lootable.getLootTableName(); ++ LootTable table = this.lootable.getLootTable(); + + // No Loot Table associated -+ if (tableName == null) { ++ if (table == null) { + return false; + } + @@ -418,17 +389,21 @@ index 0000000000..9a65603bcb + } +} diff --git a/src/main/java/net/minecraft/server/EntityMinecartContainer.java b/src/main/java/net/minecraft/server/EntityMinecartContainer.java -index 9ec73ac06a..8bd7976f97 100644 +index 91b38fd64b..7120f00b6a 100644 --- a/src/main/java/net/minecraft/server/EntityMinecartContainer.java +++ b/src/main/java/net/minecraft/server/EntityMinecartContainer.java -@@ -6,17 +6,21 @@ import javax.annotation.Nullable; +@@ -5,18 +5,25 @@ import java.util.Random; + import javax.annotation.Nullable; // CraftBukkit start import java.util.List; ++// Paper start ++import com.destroystokyo.paper.loottable.CraftLootableInventoryData; ++import com.destroystokyo.paper.loottable.CraftLootableInventory; ++import com.destroystokyo.paper.loottable.LootableInventory; ++import org.bukkit.Bukkit; ++import org.bukkit.craftbukkit.util.CraftNamespacedKey; ++// Paper end import org.bukkit.Location; -+ -+import com.destroystokyo.paper.loottable.CraftLootableInventoryData; // Paper -+import com.destroystokyo.paper.loottable.CraftLootableInventory; // Paper -+import com.destroystokyo.paper.loottable.LootableInventory; // Paper import org.bukkit.craftbukkit.entity.CraftHumanEntity; import org.bukkit.entity.HumanEntity; import org.bukkit.inventory.InventoryHolder; @@ -439,13 +414,14 @@ index 9ec73ac06a..8bd7976f97 100644 private NonNullList items; private boolean b; - private MinecraftKey c; -- private long d; -+ private long d;public long getLootTableSeed() { return d; } // Paper - OBFHELPER +- private MinecraftKey c; +- public long d; // CraftBukkit private -> public ++ private MinecraftKey c; private MinecraftKey getLootTableKey() { return c; } private void setLootTable(MinecraftKey key) { c = key; } // Paper - OBFHELPER ++ public long d; public long getSeed() { return d; } public void setSeed(long seed) { d = seed; } // Paper - OBFHELPER // CraftBukkit private -> public // CraftBukkit start public List transaction = new java.util.ArrayList(); -@@ -168,12 +172,13 @@ public abstract class EntityMinecartContainer extends EntityMinecartAbstract imp +@@ -168,12 +175,13 @@ public abstract class EntityMinecartContainer extends EntityMinecartAbstract imp protected void b(NBTTagCompound nbttagcompound) { super.b(nbttagcompound); @@ -460,7 +436,7 @@ index 9ec73ac06a..8bd7976f97 100644 ContainerUtil.a(nbttagcompound, this.items); } -@@ -181,11 +186,12 @@ public abstract class EntityMinecartContainer extends EntityMinecartAbstract imp +@@ -181,11 +189,12 @@ public abstract class EntityMinecartContainer extends EntityMinecartAbstract imp protected void a(NBTTagCompound nbttagcompound) { super.a(nbttagcompound); @@ -474,7 +450,7 @@ index 9ec73ac06a..8bd7976f97 100644 ContainerUtil.b(nbttagcompound, this.items); } -@@ -234,10 +240,10 @@ public abstract class EntityMinecartContainer extends EntityMinecartAbstract imp +@@ -234,10 +243,10 @@ public abstract class EntityMinecartContainer extends EntityMinecartAbstract imp } public void f(@Nullable EntityHuman entityhuman) { @@ -487,22 +463,28 @@ index 9ec73ac06a..8bd7976f97 100644 Random random; if (this.d == 0L) { -@@ -262,12 +268,51 @@ public abstract class EntityMinecartContainer extends EntityMinecartAbstract imp - this.items.clear(); - } - -+ public void setLootTable(MinecraftKey key, long seed) { a(key, seed);} // Paper - OBFHELPER - public void a(MinecraftKey minecraftkey, long i) { - this.c = minecraftkey; - this.d = i; - } - -+ public MinecraftKey getLootTableKey() { return Q_(); } // Paper - OBFHELPER +@@ -270,4 +279,39 @@ public abstract class EntityMinecartContainer extends EntityMinecartAbstract imp public MinecraftKey Q_() { return this.c; } + + // Paper start ++ @Override ++ public org.bukkit.loot.LootTable getLootTable() { ++ return getLootTableKey() != null ? Bukkit.getLootTable(CraftNamespacedKey.fromMinecraft(getLootTableKey())) : null; ++ } ++ ++ @Override ++ public void setLootTable(org.bukkit.loot.LootTable table, long seed) { ++ setLootTable(table); ++ setSeed(seed); ++ } ++ ++ @Override ++ public void setLootTable(org.bukkit.loot.LootTable table) { ++ MinecraftKey newKey = (table == null) ? null : CraftNamespacedKey.toMinecraft(table.getKey()); ++ setLootTable(newKey); ++ } + private final CraftLootableInventoryData lootableData = new CraftLootableInventoryData(this); + + @Override @@ -519,36 +501,22 @@ index 9ec73ac06a..8bd7976f97 100644 + public World getNMSWorld() { + return this.world; + } -+ -+ public String getLootTableName() { -+ final MinecraftKey key = getLootTableKey(); -+ return key != null ? key.toString() : null; -+ } -+ -+ @Override -+ public String setLootTable(String name, long seed) { -+ String prev = getLootTableName(); -+ setLootTable(new MinecraftKey(name), seed); -+ return prev; -+ } -+ -+ @Override -+ public void clearLootTable() { -+ //noinspection RedundantCast -+ this.c = (MinecraftKey) null; -+ } + // Paper end } diff --git a/src/main/java/net/minecraft/server/TileEntityLootable.java b/src/main/java/net/minecraft/server/TileEntityLootable.java -index fbda02b321..e6fc1ae923 100644 +index fbda02b321..e0f87a3533 100644 --- a/src/main/java/net/minecraft/server/TileEntityLootable.java +++ b/src/main/java/net/minecraft/server/TileEntityLootable.java -@@ -1,12 +1,16 @@ +@@ -1,12 +1,20 @@ package net.minecraft.server; -+import com.destroystokyo.paper.loottable.CraftLootableInventoryData; // Paper -+import com.destroystokyo.paper.loottable.CraftLootableInventory; // Paper -+import com.destroystokyo.paper.loottable.LootableInventory; // Paper ++// Paper start ++import com.destroystokyo.paper.loottable.CraftLootableInventoryData; ++import com.destroystokyo.paper.loottable.CraftLootableInventory; ++import com.destroystokyo.paper.loottable.LootableInventory; ++import org.bukkit.Bukkit; ++import org.bukkit.craftbukkit.util.CraftNamespacedKey; ++// Paper end + import java.util.Random; import javax.annotation.Nullable; @@ -556,13 +524,14 @@ index fbda02b321..e6fc1ae923 100644 -public abstract class TileEntityLootable extends TileEntityContainer implements ILootable { +public abstract class TileEntityLootable extends TileEntityContainer implements ILootable, CraftLootableInventory { // Paper - protected MinecraftKey g; +- protected MinecraftKey g; - protected long h; -+ protected long h; public long getLootTableSeed() { return h; } // Paper - OBFHELPER ++ protected MinecraftKey g; private MinecraftKey getLootTableKey() { return g; } private void setLootTable(MinecraftKey key) { g = key; } // Paper - OBFHELPER ++ protected long h; public long getSeed() { return h; } public void setSeed(long seed) { h = seed; } // Paper - OBFHELPER protected IChatBaseComponent i; protected TileEntityLootable(TileEntityTypes tileentitytypes) { -@@ -23,16 +27,18 @@ public abstract class TileEntityLootable extends TileEntityContainer implements +@@ -23,16 +31,18 @@ public abstract class TileEntityLootable extends TileEntityContainer implements } protected boolean d(NBTTagCompound nbttagcompound) { @@ -582,7 +551,7 @@ index fbda02b321..e6fc1ae923 100644 if (this.g == null) { return false; } else { -@@ -41,15 +47,15 @@ public abstract class TileEntityLootable extends TileEntityContainer implements +@@ -41,15 +51,15 @@ public abstract class TileEntityLootable extends TileEntityContainer implements nbttagcompound.setLong("LootTableSeed", this.h); } @@ -601,24 +570,27 @@ index fbda02b321..e6fc1ae923 100644 Random random; if (this.h == 0L) { -@@ -70,10 +76,12 @@ public abstract class TileEntityLootable extends TileEntityContainer implements - - } - -+ public MinecraftKey getLootTableKey() { return Q_(); } // Paper - OBFHELPER - public MinecraftKey Q_() { - return this.g; - } - -+ public void setLootTable(MinecraftKey key, long seed) { a(key, seed);} // Paper - OBFHELPER - public void a(MinecraftKey minecraftkey, long i) { - this.g = minecraftkey; - this.h = i; -@@ -152,4 +160,41 @@ public abstract class TileEntityLootable extends TileEntityContainer implements +@@ -152,4 +162,39 @@ public abstract class TileEntityLootable extends TileEntityContainer implements protected abstract NonNullList q(); protected abstract void a(NonNullList nonnulllist); + // Paper start - LootTable API ++ @Override ++ public org.bukkit.loot.LootTable getLootTable() { ++ return getLootTableKey() != null ? Bukkit.getLootTable(CraftNamespacedKey.fromMinecraft(getLootTableKey())) : null; ++ } ++ ++ @Override ++ public void setLootTable(org.bukkit.loot.LootTable table, long seed) { ++ setLootTable(table); ++ setSeed(seed); ++ } ++ ++ @Override ++ public void setLootTable(org.bukkit.loot.LootTable table) { ++ MinecraftKey newKey = (table == null) ? null : CraftNamespacedKey.toMinecraft(table.getKey()); ++ setLootTable(newKey); ++ } + private final CraftLootableInventoryData lootableData = new CraftLootableInventoryData(this); + + @Override @@ -635,24 +607,6 @@ index fbda02b321..e6fc1ae923 100644 + public World getNMSWorld() { + return world; + } -+ -+ public String getLootTableName() { -+ final MinecraftKey key = getLootTableKey(); -+ return key != null ? key.toString() : null; -+ } -+ -+ @Override -+ public String setLootTable(String name, long seed) { -+ String prev = getLootTableName(); -+ setLootTable(new MinecraftKey(name), seed); -+ return prev; -+ } -+ -+ @Override -+ public void clearLootTable() { -+ //noinspection RedundantCast -+ this.g = (MinecraftKey) null; -+ } + // Paper end + } @@ -690,68 +644,37 @@ index dff5bb5171..e7b719b43d 100644 public CraftChest(final Block block) { super(block, TileEntityChest.class); -diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftDispenser.java b/src/main/java/org/bukkit/craftbukkit/block/CraftDispenser.java -index 1dc8bfecd2..bfcf9b6c4d 100644 ---- a/src/main/java/org/bukkit/craftbukkit/block/CraftDispenser.java -+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftDispenser.java -@@ -1,5 +1,6 @@ - package org.bukkit.craftbukkit.block; - -+import com.destroystokyo.paper.loottable.CraftLootableBlockInventory; // Paper - import net.minecraft.server.BlockDispenser; - import net.minecraft.server.BlockPosition; - import net.minecraft.server.Blocks; -@@ -14,7 +15,7 @@ import org.bukkit.craftbukkit.projectiles.CraftBlockProjectileSource; - import org.bukkit.inventory.Inventory; - import org.bukkit.projectiles.BlockProjectileSource; - --public class CraftDispenser extends CraftLootable implements Dispenser { -+public class CraftDispenser extends CraftLootable implements Dispenser, CraftLootableBlockInventory { - - public CraftDispenser(final Block block) { - super(block, TileEntityDispenser.class); -diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftHopper.java b/src/main/java/org/bukkit/craftbukkit/block/CraftHopper.java -index 6566554ab6..df156d0d92 100644 ---- a/src/main/java/org/bukkit/craftbukkit/block/CraftHopper.java -+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftHopper.java -@@ -1,5 +1,6 @@ - package org.bukkit.craftbukkit.block; - -+import com.destroystokyo.paper.loottable.CraftLootableBlockInventory; // Paper - import net.minecraft.server.TileEntityHopper; - import org.bukkit.Material; - import org.bukkit.block.Block; -@@ -7,7 +8,7 @@ import org.bukkit.block.Hopper; - import org.bukkit.craftbukkit.inventory.CraftInventory; - import org.bukkit.inventory.Inventory; - --public class CraftHopper extends CraftLootable implements Hopper { -+public class CraftHopper extends CraftLootable implements Hopper, CraftLootableBlockInventory { - - public CraftHopper(final Block block) { - super(block, TileEntityHopper.class); -diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftShulkerBox.java b/src/main/java/org/bukkit/craftbukkit/block/CraftShulkerBox.java -index c029a12441..c26f0b5afc 100644 ---- a/src/main/java/org/bukkit/craftbukkit/block/CraftShulkerBox.java -+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftShulkerBox.java +diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftLootable.java b/src/main/java/org/bukkit/craftbukkit/block/CraftLootable.java +index 34bcc49cf9..7ff7d33f06 100644 +--- a/src/main/java/org/bukkit/craftbukkit/block/CraftLootable.java ++++ b/src/main/java/org/bukkit/craftbukkit/block/CraftLootable.java @@ -1,5 +1,6 @@ package org.bukkit.craftbukkit.block; +import com.destroystokyo.paper.loottable.CraftLootableBlockInventory; - import net.minecraft.server.BlockShulkerBox; - import net.minecraft.server.TileEntityShulkerBox; - import org.bukkit.DyeColor; -@@ -10,7 +11,7 @@ import org.bukkit.craftbukkit.inventory.CraftInventory; - import org.bukkit.craftbukkit.util.CraftMagicNumbers; - import org.bukkit.inventory.Inventory; + import net.minecraft.server.MinecraftKey; + import net.minecraft.server.TileEntityLootable; + import org.bukkit.Bukkit; +@@ -11,7 +12,7 @@ import org.bukkit.craftbukkit.util.CraftNamespacedKey; + import org.bukkit.loot.LootTable; + import org.bukkit.loot.Lootable; --public class CraftShulkerBox extends CraftLootable implements ShulkerBox { -+public class CraftShulkerBox extends CraftLootable implements ShulkerBox, CraftLootableBlockInventory { +-public abstract class CraftLootable extends CraftContainer implements Nameable, Lootable { ++public abstract class CraftLootable extends CraftContainer implements Nameable, Lootable, CraftLootableBlockInventory { - public CraftShulkerBox(final Block block) { - super(block, TileEntityShulkerBox.class); + public CraftLootable(Block block, Class tileEntityClass) { + super(block, tileEntityClass); +@@ -69,7 +70,7 @@ public abstract class CraftLootable extends CraftC + setLootTable(getLootTable(), seed); + } + +- private void setLootTable(LootTable table, long seed) { ++ public void setLootTable(LootTable table, long seed) { // Paper - public + MinecraftKey key = (table == null) ? null : CraftNamespacedKey.toMinecraft(table.getKey()); + getSnapshot().a(key, seed); // PAIL setLootTable + } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartChest.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartChest.java -index 69435c4576..4291edf252 100644 +index 1b5b266c05..3d5225e9f2 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartChest.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartChest.java @@ -1,5 +1,6 @@ @@ -765,13 +688,26 @@ index 69435c4576..4291edf252 100644 import org.bukkit.inventory.Inventory; @SuppressWarnings("deprecation") --public class CraftMinecartChest extends CraftMinecart implements StorageMinecart { -+public class CraftMinecartChest extends CraftMinecart implements StorageMinecart, CraftLootableEntityInventory { // Paper +-public class CraftMinecartChest extends CraftMinecartContainer implements StorageMinecart { ++public class CraftMinecartChest extends CraftMinecartContainer implements StorageMinecart, CraftLootableEntityInventory { // Paper private final CraftInventory inventory; public CraftMinecartChest(CraftServer server, EntityMinecartChest entity) { +diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartContainer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartContainer.java +index 8ce9737451..7e11993aa6 100644 +--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartContainer.java ++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartContainer.java +@@ -47,7 +47,7 @@ public abstract class CraftMinecartContainer extends CraftMinecart implements Lo + return getHandle().d; // PAIL rename lootTableSeed + } + +- private void setLootTable(LootTable table, long seed) { ++ public void setLootTable(LootTable table, long seed) { + MinecraftKey newKey = (table == null) ? null : CraftNamespacedKey.toMinecraft(table.getKey()); + getHandle().a(newKey, seed); + } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartHopper.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartHopper.java -index e9963e21cd..acb4dee04f 100644 +index f29365c948..c51de47433 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartHopper.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartHopper.java @@ -1,5 +1,6 @@ @@ -785,11 +721,37 @@ index e9963e21cd..acb4dee04f 100644 import org.bukkit.entity.minecart.HopperMinecart; import org.bukkit.inventory.Inventory; --final class CraftMinecartHopper extends CraftMinecart implements HopperMinecart { -+final class CraftMinecartHopper extends CraftMinecart implements HopperMinecart, CraftLootableEntityInventory { // Paper +-public final class CraftMinecartHopper extends CraftMinecartContainer implements HopperMinecart { ++public final class CraftMinecartHopper extends CraftMinecartContainer implements HopperMinecart, CraftLootableEntityInventory { // Paper private final CraftInventory inventory; - CraftMinecartHopper(CraftServer server, EntityMinecartHopper entity) { + public CraftMinecartHopper(CraftServer server, EntityMinecartHopper entity) { +diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java +index eb643cff3a..a3789c86b0 100644 +--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java ++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java +@@ -1,6 +1,7 @@ + package org.bukkit.craftbukkit.entity; + + import net.minecraft.server.EntityInsentient; ++import net.minecraft.server.MinecraftKey; + import org.bukkit.Bukkit; + import org.bukkit.NamespacedKey; + import org.bukkit.craftbukkit.CraftServer; +@@ -46,6 +47,13 @@ public abstract class CraftMob extends CraftLivingEntity implements Mob { + getHandle().bI = (table == null) ? null : CraftNamespacedKey.toMinecraft(table.getKey()); // PAIL rename lootTableKey + } + ++ // Paper start ++ public void setLootTable(LootTable table, long seed) { ++ setLootTable(table); ++ setSeed(seed); ++ } ++ // Paper end ++ + @Override + public LootTable getLootTable() { + if (getHandle().bI == null) { -- 2.18.0 diff --git a/Spigot-Server-Patches/0131-Add-setting-for-proxy-online-mode-status.patch b/Spigot-Server-Patches/0131-Add-setting-for-proxy-online-mode-status.patch index e035648aef..1298a8bf00 100644 --- a/Spigot-Server-Patches/0131-Add-setting-for-proxy-online-mode-status.patch +++ b/Spigot-Server-Patches/0131-Add-setting-for-proxy-online-mode-status.patch @@ -1,4 +1,4 @@ -From 8ac446a7e1845926d3af8d6f6d57abf10fcc9071 Mon Sep 17 00:00:00 2001 +From 024f51166d00517cc92199c19abb9f7b04767b60 Mon Sep 17 00:00:00 2001 From: Gabriele C Date: Fri, 5 Aug 2016 01:03:08 +0200 Subject: [PATCH] Add setting for proxy online mode status @@ -33,10 +33,10 @@ index f135349174..85c7a96c5a 100644 } else { String[] astring1 = astring; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 6e3539ab8d..7a7617750e 100644 +index 3861c63cb8..ff1f71310e 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1358,7 +1358,8 @@ public final class CraftServer implements Server { +@@ -1359,7 +1359,8 @@ public final class CraftServer implements Server { // Spigot Start GameProfile profile = null; // Only fetch an online UUID in online mode diff --git a/Spigot-Server-Patches/0151-Allow-Reloading-of-Command-Aliases.patch b/Spigot-Server-Patches/0151-Allow-Reloading-of-Command-Aliases.patch index 231f1db48f..42047148de 100644 --- a/Spigot-Server-Patches/0151-Allow-Reloading-of-Command-Aliases.patch +++ b/Spigot-Server-Patches/0151-Allow-Reloading-of-Command-Aliases.patch @@ -1,4 +1,4 @@ -From 6b1234acfc9dbcc893b4603eec81edac1d7de627 Mon Sep 17 00:00:00 2001 +From 4b5e62dfcb3777228d4557a314f3b9eb89513362 Mon Sep 17 00:00:00 2001 From: willies952002 Date: Mon, 28 Nov 2016 10:21:52 -0500 Subject: [PATCH] Allow Reloading of Command Aliases @@ -6,10 +6,10 @@ Subject: [PATCH] Allow Reloading of Command Aliases Reload the aliases stored in commands.yml diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index a869757b9..84057ebfb 100644 +index ff1f71310e..476b01f70f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1975,5 +1975,24 @@ public final class CraftServer implements Server { +@@ -1983,5 +1983,24 @@ public final class CraftServer implements Server { DefaultPermissions.registerCorePermissions(); CraftDefaultPermissions.registerCorePermissions(); } @@ -35,5 +35,5 @@ index a869757b9..84057ebfb 100644 // Paper end } -- -2.18.0.windows.1 +2.18.0 diff --git a/Spigot-Server-Patches/0182-Add-configuration-option-to-prevent-player-names-fro.patch b/Spigot-Server-Patches/0182-Add-configuration-option-to-prevent-player-names-fro.patch index 9ebda61d7f..bfdabaa0df 100644 --- a/Spigot-Server-Patches/0182-Add-configuration-option-to-prevent-player-names-fro.patch +++ b/Spigot-Server-Patches/0182-Add-configuration-option-to-prevent-player-names-fro.patch @@ -1,4 +1,4 @@ -From e32b31d90d3275f26b4e922daa18285627ab0af1 Mon Sep 17 00:00:00 2001 +From 915c25172662346c874c1ae74e73c93aa4dc2617 Mon Sep 17 00:00:00 2001 From: kashike Date: Fri, 9 Jun 2017 07:24:34 -0700 Subject: [PATCH] Add configuration option to prevent player names from being @@ -6,7 +6,7 @@ Subject: [PATCH] Add configuration option to prevent player names from being diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java -index 9f1182c72..e97dbaf8e 100644 +index 9f1182c723..e97dbaf8e3 100644 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java @@ -275,4 +275,9 @@ public class PaperConfig { @@ -20,10 +20,10 @@ index 9f1182c72..e97dbaf8e 100644 + } } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 84057ebfb..18829f303 100644 +index 476b01f70f..17b398cde0 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1994,5 +1994,10 @@ public final class CraftServer implements Server { +@@ -2002,5 +2002,10 @@ public final class CraftServer implements Server { commandMap.registerServerAliases(); return true; } @@ -35,5 +35,5 @@ index 84057ebfb..18829f303 100644 // Paper end } -- -2.18.0.windows.1 +2.18.0 diff --git a/Spigot-Server-Patches/0183-Use-TerminalConsoleAppender-for-console-improvements.patch b/Spigot-Server-Patches/0183-Use-TerminalConsoleAppender-for-console-improvements.patch index 969dfeb727..a1489da05e 100644 --- a/Spigot-Server-Patches/0183-Use-TerminalConsoleAppender-for-console-improvements.patch +++ b/Spigot-Server-Patches/0183-Use-TerminalConsoleAppender-for-console-improvements.patch @@ -1,4 +1,4 @@ -From d00567ab4a5596562e6c10f8c55ba07aa7afce3b Mon Sep 17 00:00:00 2001 +From 1990c248e4a9eb0ab675461d6a043e67755be088 Mon Sep 17 00:00:00 2001 From: Minecrell Date: Fri, 9 Jun 2017 19:03:43 +0200 Subject: [PATCH] Use TerminalConsoleAppender for console improvements @@ -199,7 +199,7 @@ index bf1fffcfee..af430b73f0 100644 System.setOut(new PrintStream(new LoggerOutputStream(logger, Level.INFO), true)); System.setErr(new PrintStream(new LoggerOutputStream(logger, Level.WARN), true)); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 7a7893c4df..f88ba7db7f 100644 +index a49393b2f5..5635997d0b 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -57,7 +57,6 @@ import org.apache.commons.lang3.Validate; @@ -271,10 +271,10 @@ index 0b0d996523..4cbe148010 100644 this.k = new GameProfileBanList(PlayerList.a); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index f1a4f4529c..4da2ada651 100644 +index 17b398cde0..51ea2013e8 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -137,8 +137,8 @@ import java.nio.ByteBuffer; +@@ -138,8 +138,8 @@ import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; import java.util.Base64; import java.util.HashMap; @@ -284,7 +284,7 @@ index f1a4f4529c..4da2ada651 100644 import org.bukkit.NamespacedKey; import org.bukkit.block.data.BlockData; import org.bukkit.craftbukkit.block.data.CraftBlockData; -@@ -1124,9 +1124,13 @@ public final class CraftServer implements Server { +@@ -1125,9 +1125,13 @@ public final class CraftServer implements Server { return logger; } diff --git a/Spigot-Server-Patches/0185-Item-canEntityPickup.patch b/Spigot-Server-Patches/0185-Item-canEntityPickup.patch index 04babd16d2..99c681b5e9 100644 --- a/Spigot-Server-Patches/0185-Item-canEntityPickup.patch +++ b/Spigot-Server-Patches/0185-Item-canEntityPickup.patch @@ -1,14 +1,14 @@ -From 04e49d289aee8314333ad28e4479065062f876db Mon Sep 17 00:00:00 2001 +From 9af9c41e54019184086ba7889e8abfe7e5ef2fef Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Fri, 5 May 2017 03:57:17 -0500 Subject: [PATCH] Item#canEntityPickup diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java -index 3723fd9770..14d122b22b 100644 +index 0cfda190bc..bca2aa8298 100644 --- a/src/main/java/net/minecraft/server/EntityInsentient.java +++ b/src/main/java/net/minecraft/server/EntityInsentient.java -@@ -512,6 +512,11 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -517,6 +517,11 @@ public abstract class EntityInsentient extends EntityLiving { EntityItem entityitem = (EntityItem) iterator.next(); if (!entityitem.dead && !entityitem.getItemStack().isEmpty() && !entityitem.q()) { diff --git a/Spigot-Server-Patches/0188-Add-UnknownCommandEvent.patch b/Spigot-Server-Patches/0188-Add-UnknownCommandEvent.patch index d66ba59e42..9f14316847 100644 --- a/Spigot-Server-Patches/0188-Add-UnknownCommandEvent.patch +++ b/Spigot-Server-Patches/0188-Add-UnknownCommandEvent.patch @@ -1,11 +1,11 @@ -From 8f05198ed4b3eee4f2d681524fa12c8c9e4ab6e5 Mon Sep 17 00:00:00 2001 +From 304eb1d1de3fa6ed14586db0df3b7dc92176fc33 Mon Sep 17 00:00:00 2001 From: Sweepyoface Date: Sat, 17 Jun 2017 18:48:21 -0400 Subject: [PATCH] Add UnknownCommandEvent diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 4da2ada651..237d7696c7 100644 +index 51ea2013e8..42b3447a1a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -79,6 +79,7 @@ import org.bukkit.craftbukkit.util.Versioning; @@ -16,7 +16,7 @@ index 4da2ada651..237d7696c7 100644 import org.bukkit.event.inventory.InventoryType; import org.bukkit.event.player.PlayerChatTabCompleteEvent; import org.bukkit.event.server.BroadcastMessageEvent; -@@ -721,7 +722,13 @@ public final class CraftServer implements Server { +@@ -722,7 +723,13 @@ public final class CraftServer implements Server { // Spigot start if (!org.spigotmc.SpigotConfig.unknownCommandMessage.isEmpty()) { diff --git a/Spigot-Server-Patches/0189-Basic-PlayerProfile-API.patch b/Spigot-Server-Patches/0189-Basic-PlayerProfile-API.patch index a8340bb531..fc2801d443 100644 --- a/Spigot-Server-Patches/0189-Basic-PlayerProfile-API.patch +++ b/Spigot-Server-Patches/0189-Basic-PlayerProfile-API.patch @@ -1,4 +1,4 @@ -From dfa3768143418b2dc33a403bf37cdc2fe4042f93 Mon Sep 17 00:00:00 2001 +From b81f6fea6d00e141ff1fd45a4de216fabca7b84f Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 15 Jan 2018 22:11:48 -0500 Subject: [PATCH] Basic PlayerProfile API @@ -7,7 +7,7 @@ Establishes base extension of profile systems for future edits too diff --git a/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java b/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java new file mode 100644 -index 000000000..b151a13c1 +index 0000000000..b151a13c1b --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java @@ -0,0 +1,280 @@ @@ -293,7 +293,7 @@ index 000000000..b151a13c1 +} diff --git a/src/main/java/com/destroystokyo/paper/profile/PaperAuthenticationService.java b/src/main/java/com/destroystokyo/paper/profile/PaperAuthenticationService.java new file mode 100644 -index 000000000..25836b975 +index 0000000000..25836b975b --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/profile/PaperAuthenticationService.java @@ -0,0 +1,30 @@ @@ -329,7 +329,7 @@ index 000000000..25836b975 +} diff --git a/src/main/java/com/destroystokyo/paper/profile/PaperGameProfileRepository.java b/src/main/java/com/destroystokyo/paper/profile/PaperGameProfileRepository.java new file mode 100644 -index 000000000..3bcdb8f93 +index 0000000000..3bcdb8f93f --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/profile/PaperGameProfileRepository.java @@ -0,0 +1,17 @@ @@ -352,7 +352,7 @@ index 000000000..3bcdb8f93 +} diff --git a/src/main/java/com/destroystokyo/paper/profile/PaperMinecraftSessionService.java b/src/main/java/com/destroystokyo/paper/profile/PaperMinecraftSessionService.java new file mode 100644 -index 000000000..4b2a67423 +index 0000000000..4b2a67423f --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/profile/PaperMinecraftSessionService.java @@ -0,0 +1,29 @@ @@ -387,7 +387,7 @@ index 000000000..4b2a67423 +} diff --git a/src/main/java/com/destroystokyo/paper/profile/PaperUserAuthentication.java b/src/main/java/com/destroystokyo/paper/profile/PaperUserAuthentication.java new file mode 100644 -index 000000000..3aceb0ea8 +index 0000000000..3aceb0ea8a --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/profile/PaperUserAuthentication.java @@ -0,0 +1,11 @@ @@ -403,7 +403,7 @@ index 000000000..3aceb0ea8 + } +} diff --git a/src/main/java/net/minecraft/server/MCUtil.java b/src/main/java/net/minecraft/server/MCUtil.java -index 381542e0d..80927de08 100644 +index 381542e0d2..80927de08b 100644 --- a/src/main/java/net/minecraft/server/MCUtil.java +++ b/src/main/java/net/minecraft/server/MCUtil.java @@ -1,6 +1,9 @@ @@ -428,7 +428,7 @@ index 381542e0d..80927de08 100644 * Calculates distance between 2 entities * @param e1 diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 5635997d0..02b621880 100644 +index 5635997d0b..02b6218807 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1162,7 +1162,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati @@ -449,7 +449,7 @@ index 5635997d0..02b621880 100644 return this.V; } diff --git a/src/main/java/net/minecraft/server/UserCache.java b/src/main/java/net/minecraft/server/UserCache.java -index a47a51a41..4c476f757 100644 +index a47a51a412..4c476f757c 100644 --- a/src/main/java/net/minecraft/server/UserCache.java +++ b/src/main/java/net/minecraft/server/UserCache.java @@ -44,7 +44,7 @@ public class UserCache { @@ -485,10 +485,10 @@ index a47a51a41..4c476f757 100644 private UserCacheEntry(GameProfile gameprofile, Date date) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 79524885d..ee7f16ca3 100644 +index 42b3447a1a..3d4bb6d8c9 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -153,6 +153,10 @@ import org.bukkit.craftbukkit.util.CraftNamespacedKey; +@@ -154,6 +154,10 @@ import org.bukkit.craftbukkit.util.CraftNamespacedKey; import org.bukkit.event.server.TabCompleteEvent; import net.md_5.bungee.api.chat.BaseComponent; @@ -499,7 +499,7 @@ index 79524885d..ee7f16ca3 100644 public final class CraftServer implements Server { private final String serverName = "Paper"; // Paper private final String serverVersion; -@@ -2010,5 +2014,21 @@ public final class CraftServer implements Server { +@@ -2018,5 +2022,21 @@ public final class CraftServer implements Server { public boolean suggestPlayerNamesWhenNullTabCompletions() { return com.destroystokyo.paper.PaperConfig.suggestPlayersWhenNullTabCompletions; } @@ -522,5 +522,5 @@ index 79524885d..ee7f16ca3 100644 // Paper end } -- -2.18.0.windows.1 +2.18.0 diff --git a/Spigot-Server-Patches/0222-AsyncTabCompleteEvent.patch b/Spigot-Server-Patches/0222-AsyncTabCompleteEvent.patch index 1145bfcc79..40d462c682 100644 --- a/Spigot-Server-Patches/0222-AsyncTabCompleteEvent.patch +++ b/Spigot-Server-Patches/0222-AsyncTabCompleteEvent.patch @@ -1,4 +1,4 @@ -From f9962b92be43ed952bc249a3ad5e91998d4bf2b1 Mon Sep 17 00:00:00 2001 +From 99a069220500774f7bfe14e602af116c48169982 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 26 Nov 2017 13:19:58 -0500 Subject: [PATCH] AsyncTabCompleteEvent @@ -85,10 +85,10 @@ index 60d9f5706a..a912fb3414 100644 } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 7157a5b136..76679a4231 100644 +index 3d4bb6d8c9..b5fd412b74 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1669,7 +1669,7 @@ public final class CraftServer implements Server { +@@ -1670,7 +1670,7 @@ public final class CraftServer implements Server { offers = tabCompleteChat(player, message); } diff --git a/Spigot-Server-Patches/0248-getPlayerUniqueId-API.patch b/Spigot-Server-Patches/0248-getPlayerUniqueId-API.patch index 66956e581b..5173f22172 100644 --- a/Spigot-Server-Patches/0248-getPlayerUniqueId-API.patch +++ b/Spigot-Server-Patches/0248-getPlayerUniqueId-API.patch @@ -1,4 +1,4 @@ -From e5c019b839c1557a9260b559d08d171689d6da04 Mon Sep 17 00:00:00 2001 +From d647cc0a5242e0ae7cb053cd4813c410585896e7 Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 22 Mar 2018 01:40:24 -0400 Subject: [PATCH] getPlayerUniqueId API @@ -9,10 +9,10 @@ In Offline Mode, will return an Offline UUID This is a more performant way to obtain a UUID for a name than loading an OfflinePlayer diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 76679a4231..8a58479f4d 100644 +index b5fd412b74..0552659354 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1362,6 +1362,26 @@ public final class CraftServer implements Server { +@@ -1363,6 +1363,26 @@ public final class CraftServer implements Server { return recipients.size(); } diff --git a/Spigot-Server-Patches/0293-Don-t-process-despawn-if-entity-is-in-a-chunk-schedu.patch b/Spigot-Server-Patches/0293-Don-t-process-despawn-if-entity-is-in-a-chunk-schedu.patch index 2b13c769d9..93065ee003 100644 --- a/Spigot-Server-Patches/0293-Don-t-process-despawn-if-entity-is-in-a-chunk-schedu.patch +++ b/Spigot-Server-Patches/0293-Don-t-process-despawn-if-entity-is-in-a-chunk-schedu.patch @@ -1,4 +1,4 @@ -From f2169f630da6dee6fe001e160ac9c7802f26258c Mon Sep 17 00:00:00 2001 +From c498e07e52c5d44cca3ed15d15d78405c368fc41 Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 19 Jul 2018 01:23:00 -0400 Subject: [PATCH] Don't process despawn if entity is in a chunk scheduled for @@ -12,10 +12,10 @@ keep it vanilla in behavior a player may teleport away, and trigger instant despawn diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java -index 14d122b22b..7b64ec27c3 100644 +index bca2aa8298..903434e5f4 100644 --- a/src/main/java/net/minecraft/server/EntityInsentient.java +++ b/src/main/java/net/minecraft/server/EntityInsentient.java -@@ -617,6 +617,8 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -622,6 +622,8 @@ public abstract class EntityInsentient extends EntityLiving { if (this.persistent) { this.ticksFarFromPlayer = 0; } else { diff --git a/work/Bukkit b/work/Bukkit index c23d391fcd..f0f3398172 160000 --- a/work/Bukkit +++ b/work/Bukkit @@ -1 +1 @@ -Subproject commit c23d391fcdf19a054ebf5ac886a5679c2bf0ad49 +Subproject commit f0f3398172aa20a2ea1f29bf69799c4a920f24e3 diff --git a/work/CraftBukkit b/work/CraftBukkit index 15da706706..c0df4b82d3 160000 --- a/work/CraftBukkit +++ b/work/CraftBukkit @@ -1 +1 @@ -Subproject commit 15da7067067a0786d221f2ad3cd060acd4dd3431 +Subproject commit c0df4b82d380bea4fd66cc887a1476468e2301c4