diff --git a/Spigot-Server-Patches/0262-Fix-SPIGOT-3764.patch b/Spigot-Server-Patches/0262-Fix-SPIGOT-3764.patch deleted file mode 100644 index d95c19afa..000000000 --- a/Spigot-Server-Patches/0262-Fix-SPIGOT-3764.patch +++ /dev/null @@ -1,79 +0,0 @@ -From d68b88f5e1ce7b338a070ef7c1261c621a009253 Mon Sep 17 00:00:00 2001 -From: Aikar -Date: Sat, 13 Jan 2018 12:26:37 -0500 -Subject: [PATCH] Fix SPIGOT-3764 - - -diff --git a/src/main/java/net/minecraft/server/ItemSkull.java b/src/main/java/net/minecraft/server/ItemSkull.java -index f19acf9ba..06fb9886e 100644 ---- a/src/main/java/net/minecraft/server/ItemSkull.java -+++ b/src/main/java/net/minecraft/server/ItemSkull.java -@@ -143,7 +143,7 @@ public class ItemSkull extends Item { - nbttagcompound.set("SkullOwner", GameProfileSerializer.serialize(new NBTTagCompound(), gameprofile)); - return false; - } -- }); -+ }, true); // Paper - // Spigot end - return true; - } else { -diff --git a/src/main/java/net/minecraft/server/TileEntitySkull.java b/src/main/java/net/minecraft/server/TileEntitySkull.java -index ba02a17e0..8c30b1965 100644 ---- a/src/main/java/net/minecraft/server/TileEntitySkull.java -+++ b/src/main/java/net/minecraft/server/TileEntitySkull.java -@@ -182,12 +182,13 @@ public class TileEntitySkull extends TileEntity /*implements ITickable*/ { // Pa - } - return false; - } -- }); -+ }, true); // Paper - // Spigot end - } - - // Spigot start - Support async lookups -- public static Future b(final GameProfile gameprofile, final Predicate callback) { -+ // Paper - temp fixes until spigot fixes it -+ public static Future b(final GameProfile gameprofile, final Predicate callback, boolean doAsync) { - if (gameprofile != null && !UtilColor.b(gameprofile.getName())) { - if (gameprofile.isComplete() && gameprofile.getProperties().containsKey("textures")) { - callback.apply(gameprofile); -@@ -199,7 +200,7 @@ public class TileEntitySkull extends TileEntity /*implements ITickable*/ { // Pa - callback.apply(profile); - - return Futures.immediateFuture(profile); -- } else { -+ } else if (doAsync) { - return executor.submit(new Callable() { - @Override - public GameProfile call() { -@@ -217,6 +218,14 @@ public class TileEntitySkull extends TileEntity /*implements ITickable*/ { // Pa - return profile; - } - }); -+ } else { -+ profile = skinCache.getUnchecked(gameprofile.getName().toLowerCase(java.util.Locale.ROOT)); -+ if (profile == null) { -+ callback.apply(gameprofile); -+ } else { -+ callback.apply(profile); -+ } -+ return Futures.immediateFuture(profile); - } - } - } else { -diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java -index 987cc9a80..a67419774 100644 ---- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java -+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java -@@ -79,7 +79,7 @@ class CraftMetaSkull extends CraftMetaItem implements SkullMeta { - if (profile != null) { - // Fill in textures - // Must be done sync due to way client handles textures -- profile = com.google.common.util.concurrent.Futures.getUnchecked(TileEntitySkull.b(profile, com.google.common.base.Predicates.alwaysTrue())); // Spigot -+ profile = com.google.common.util.concurrent.Futures.getUnchecked(TileEntitySkull.b(profile, com.google.common.base.Predicates.alwaysTrue(), false)); // Spigot // Paper - - NBTTagCompound owner = new NBTTagCompound(); - GameProfileSerializer.serialize(owner, profile); --- -2.15.1 - diff --git a/work/Spigot b/work/Spigot index 786281702..9b8bba4e5 160000 --- a/work/Spigot +++ b/work/Spigot @@ -1 +1 @@ -Subproject commit 786281702d9b4645df49d10f9d4a7a89755eca53 +Subproject commit 9b8bba4e50b071c7feb98105ba8b6003f8f42a5c