Updated Upstream (Bukkit/CraftBukkit) for LootTable API

I have tested that the Replenishing Feature still works as expected.
Lootable API's that now have Bukkit equivalents are now deprecated.

Bukkit Changes:
f0f33981 SPIGOT-1936: LootTable API

CraftBukkit Changes:
c0df4b82 SPIGOT-1936: LootTable API
This commit is contained in:
Aikar 2018-08-12 13:11:08 -04:00
parent 668ad2cf0b
commit 3a70bed5f4
No known key found for this signature in database
GPG Key ID: 401ADFC9891FAAFE
37 changed files with 480 additions and 401 deletions

View File

@ -1,4 +1,4 @@
From 026d80b427c66bd2b6f84f99e26f245ead7a4c71 Mon Sep 17 00:00:00 2001
From 82c13b6bbafe66e4864f1e9fae3669d7126c151f Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
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
{

View File

@ -1,14 +1,14 @@
From 32b618438e80adb32b830992adee5e627f614ef2 Mon Sep 17 00:00:00 2001
From 980c18d11ba35a9d4c2afaa594788f26ae219b7d Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
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);

View File

@ -1,11 +1,11 @@
From a16608e4c4b20cad5477b8be0c935581a1d0895f Mon Sep 17 00:00:00 2001
From 94aaaeb3d173b4f5a3f4e9d8943dd46b12a3a9ea Mon Sep 17 00:00:00 2001
From: kashike <kashike@vq.lc>
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

View File

@ -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 <zach.brown@destroystokyo.com>
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

View File

@ -1,4 +1,4 @@
From 4df7359ab8d56f067a1373cd77a35c2ea2ed28d9 Mon Sep 17 00:00:00 2001
From fe68c9fd439d193c6dd02496842ef0e7aaf598cb Mon Sep 17 00:00:00 2001
From: William <admin@domnian.com>
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 {

View File

@ -1,4 +1,4 @@
From 4f1dc63c147f7ba3ae36ad4c04f55c852ae84dd7 Mon Sep 17 00:00:00 2001
From 74dcc240e66bd353b4e94b30769b8dec97ef41ea Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
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.
+ *
+ * <p>
+ * 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.
+ *
+ * <p>
+ * 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

View File

@ -1,4 +1,4 @@
From 2eaf589a9abaea57928f1d5ceecb1e404999a090 Mon Sep 17 00:00:00 2001
From e4115cecc47d9c239aefb8f0deb31ca5d2f51a84 Mon Sep 17 00:00:00 2001
From: willies952002 <admin@domnian.com>
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 {

View File

@ -1,4 +1,4 @@
From 2ac7131971cf62c416974a622be676b1e55ff205 Mon Sep 17 00:00:00 2001
From ce02b7367e49e0538751330743bf6a07a1183727 Mon Sep 17 00:00:00 2001
From: kashike <kashike@vq.lc>
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

View File

@ -1,4 +1,4 @@
From bdcaf28a89037f365f2f9020eae7a11d8fe5080e Mon Sep 17 00:00:00 2001
From 38e2e079115d4abb46751d6f46fa47a4b11a3e10 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
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();

View File

@ -1,4 +1,4 @@
From c4f01447191d4f50f00aa4e4975f70ddc174cf34 Mon Sep 17 00:00:00 2001
From 7a5cdf865d3a693927a9f2c01082038f67eea707 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
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);

View File

@ -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 <zach.brown@destroystokyo.com>
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

View File

@ -1,4 +1,4 @@
From 39cb60427cd54626d8319c75c8e1ec1dca86b2d4 Mon Sep 17 00:00:00 2001
From 145b2523893f196854951df2dbbcbd9a46aca84b Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
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()
{

View File

@ -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 <zach.brown@destroystokyo.com>
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 {

View File

@ -1,11 +1,11 @@
From 483632d2372f106559fde7170741ae63fe441c28 Mon Sep 17 00:00:00 2001
From e8b18bc8a81789c57bb9b9af47ba408d3fb10756 Mon Sep 17 00:00:00 2001
From: Suddenly <suddenly@suddenly.coffee>
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;

View File

@ -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 <zach.brown@destroystokyo.com>
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

View File

@ -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 <jedediah@silencegreys.com>
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);

View File

@ -1,4 +1,4 @@
From ecccdf30b45088c8dec9353e0e709b6bb1bf437a Mon Sep 17 00:00:00 2001
From 03261a6b50ee347b4be1165cead324e26e363737 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
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;
}

View File

@ -1,4 +1,4 @@
From bd9a065c4b1cbe5ff5dc45da9193adc0e9328252 Mon Sep 17 00:00:00 2001
From 92075bd693c6b7c695b63e21d5570a9c952c8984 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
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

View File

@ -1,14 +1,14 @@
From c66ee93656b5300113b076f9643a454227cf850a Mon Sep 17 00:00:00 2001
From d517d0ead223fc0a5da5f4c77692abf9ee5203d0 Mon Sep 17 00:00:00 2001
From: kashike <kashike@vq.lc>
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;
}

View File

@ -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 <joe@ibj.io>
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<CraftPlayer> 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 {

View File

@ -1,4 +1,4 @@
From e9ee81ba8c88cb42333db3f2dcd73378dd8222b3 Mon Sep 17 00:00:00 2001
From 6edc5b87fee0f325dfaa092a9f370179b57abfbd Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
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();

View File

@ -1,4 +1,4 @@
From 26f80b0fe03d973057cf7c96d6df8a2133b56c26 Mon Sep 17 00:00:00 2001
From 31f99b0faa647c2f3dc0ba0a34aa710eb043aaf4 Mon Sep 17 00:00:00 2001
From: William <admin@domnian.com>
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

View File

@ -1,4 +1,4 @@
From 6a88f48f2414502aeda9ce864b9bf41a86541d13 Mon Sep 17 00:00:00 2001
From 98015c22852bc9ced6426fe6f8b716db1e00280f Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
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
}

View File

@ -1,4 +1,4 @@
From 057291c909254cc8c64bfb6e936fd0548b9f583f Mon Sep 17 00:00:00 2001
From 7d678dd4a34e22dd9c7990f22ca6bf3430ed30f3 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
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 {

View File

@ -1,4 +1,4 @@
From ebb3f2d170d70881d4f7a210e3f7c110839cc945 Mon Sep 17 00:00:00 2001
From fd6c2c49c3fa2bbf29d1ea1ec2c04d901a1060d6 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
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<ItemStack> 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<HumanEntity> transaction = new java.util.ArrayList<HumanEntity>();
@@ -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<ItemStack> q();
protected abstract void a(NonNullList<ItemStack> 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<TileEntityDispenser> implements Dispenser {
+public class CraftDispenser extends CraftLootable<TileEntityDispenser> 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<TileEntityHopper> implements Hopper {
+public class CraftHopper extends CraftLootable<TileEntityHopper> 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<TileEntityShulkerBox> implements ShulkerBox {
+public class CraftShulkerBox extends CraftLootable<TileEntityShulkerBox> implements ShulkerBox, CraftLootableBlockInventory {
-public abstract class CraftLootable<T extends TileEntityLootable> extends CraftContainer<T> implements Nameable, Lootable {
+public abstract class CraftLootable<T extends TileEntityLootable> extends CraftContainer<T> implements Nameable, Lootable, CraftLootableBlockInventory {
public CraftShulkerBox(final Block block) {
super(block, TileEntityShulkerBox.class);
public CraftLootable(Block block, Class<T> tileEntityClass) {
super(block, tileEntityClass);
@@ -69,7 +70,7 @@ public abstract class CraftLootable<T extends TileEntityLootable> 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

View File

@ -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 <sgdc3.mail@gmail.com>
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

View File

@ -1,4 +1,4 @@
From 6b1234acfc9dbcc893b4603eec81edac1d7de627 Mon Sep 17 00:00:00 2001
From 4b5e62dfcb3777228d4557a314f3b9eb89513362 Mon Sep 17 00:00:00 2001
From: willies952002 <admin@domnian.com>
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

View File

@ -1,4 +1,4 @@
From e32b31d90d3275f26b4e922daa18285627ab0af1 Mon Sep 17 00:00:00 2001
From 915c25172662346c874c1ae74e73c93aa4dc2617 Mon Sep 17 00:00:00 2001
From: kashike <kashike@vq.lc>
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

View File

@ -1,4 +1,4 @@
From d00567ab4a5596562e6c10f8c55ba07aa7afce3b Mon Sep 17 00:00:00 2001
From 1990c248e4a9eb0ab675461d6a043e67755be088 Mon Sep 17 00:00:00 2001
From: Minecrell <minecrell@minecrell.net>
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;
}

View File

@ -1,14 +1,14 @@
From 04e49d289aee8314333ad28e4479065062f876db Mon Sep 17 00:00:00 2001
From 9af9c41e54019184086ba7889e8abfe7e5ef2fef Mon Sep 17 00:00:00 2001
From: BillyGalbreath <Blake.Galbreath@GMail.com>
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()) {

View File

@ -1,11 +1,11 @@
From 8f05198ed4b3eee4f2d681524fa12c8c9e4ab6e5 Mon Sep 17 00:00:00 2001
From 304eb1d1de3fa6ed14586db0df3b7dc92176fc33 Mon Sep 17 00:00:00 2001
From: Sweepyoface <github@sweepy.pw>
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()) {

View File

@ -1,4 +1,4 @@
From dfa3768143418b2dc33a403bf37cdc2fe4042f93 Mon Sep 17 00:00:00 2001
From b81f6fea6d00e141ff1fd45a4de216fabca7b84f Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
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

View File

@ -1,4 +1,4 @@
From f9962b92be43ed952bc249a3ad5e91998d4bf2b1 Mon Sep 17 00:00:00 2001
From 99a069220500774f7bfe14e602af116c48169982 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
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);
}

View File

@ -1,4 +1,4 @@
From e5c019b839c1557a9260b559d08d171689d6da04 Mon Sep 17 00:00:00 2001
From d647cc0a5242e0ae7cb053cd4813c410585896e7 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
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();
}

View File

@ -1,4 +1,4 @@
From f2169f630da6dee6fe001e160ac9c7802f26258c Mon Sep 17 00:00:00 2001
From c498e07e52c5d44cca3ed15d15d78405c368fc41 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
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 {

@ -1 +1 @@
Subproject commit c23d391fcdf19a054ebf5ac886a5679c2bf0ad49
Subproject commit f0f3398172aa20a2ea1f29bf69799c4a920f24e3

@ -1 +1 @@
Subproject commit 15da7067067a0786d221f2ad3cd060acd4dd3431
Subproject commit c0df4b82d380bea4fd66cc887a1476468e2301c4