diff --git a/patches/server/0152-PaperPR-Apply-advancements-async.patch b/patches/server/0152-PaperPR-Apply-advancements-async.patch index c8d4b8da7..726fc9102 100644 --- a/patches/server/0152-PaperPR-Apply-advancements-async.patch +++ b/patches/server/0152-PaperPR-Apply-advancements-async.patch @@ -16,41 +16,6 @@ index eaa1063ff2..a3b89a4f2a 100644 public void a(EntityPlayer entityplayer) { this.player = entityplayer; } -diff --git a/src/main/java/net/minecraft/server/CriterionProgress.java b/src/main/java/net/minecraft/server/CriterionProgress.java -index 98c3884f47..76cbd13fda 100644 ---- a/src/main/java/net/minecraft/server/CriterionProgress.java -+++ b/src/main/java/net/minecraft/server/CriterionProgress.java -@@ -11,7 +11,8 @@ import java.util.Date; - public class CriterionProgress { - - private static final SimpleDateFormat a = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z"); -- private Date b; -+ private static final java.time.format.DateTimeFormatter DATE_TIME_FORMATTER = java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss Z"); // Paper - async advancements - SimpleDateFormat is not thread safe -+ private Date b; private void setDate(Date date) { this.b = date; } // Paper - OBFHELPER - - public CriterionProgress() {} - -@@ -44,7 +45,7 @@ public class CriterionProgress { - } - - public JsonElement e() { -- return (JsonElement) (this.b != null ? new JsonPrimitive(CriterionProgress.a.format(this.b)) : JsonNull.INSTANCE); -+ return this.getDate() != null ? new JsonPrimitive(DATE_TIME_FORMATTER.format(this.getDate().toInstant())) : JsonNull.INSTANCE; // Paper - } - - public static CriterionProgress b(PacketDataSerializer packetdataserializer) { -@@ -61,9 +62,9 @@ public class CriterionProgress { - CriterionProgress criterionprogress = new CriterionProgress(); - - try { -- criterionprogress.b = CriterionProgress.a.parse(s); -+ criterionprogress.setDate(Date.from(java.time.Instant.from(DATE_TIME_FORMATTER.parse(s)))); // Paper - return criterionprogress; -- } catch (ParseException parseexception) { -+ } catch (java.time.DateTimeException parseexception) { // Paper - throw new JsonSyntaxException("Invalid datetime: " + s, parseexception); - } - } diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java index 50ea875a3b..cc6a54e06a 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java @@ -124,7 +89,7 @@ index fd75444cec..95d93cd8e5 100644 return this.convertable.getWorldFolder(savedfile); } diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 7b385eb43e..eae19141e3 100644 +index 7b385eb43e..3f634a266f 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java @@ -1339,9 +1339,26 @@ public abstract class PlayerList { @@ -143,7 +108,7 @@ index 7b385eb43e..eae19141e3 100644 + final File file1 = new File(file, uuid + ".json"); + return java.util.concurrent.CompletableFuture.supplyAsync( + () -> new AdvancementDataPlayer(this.server.getDataFixer(), this, this.server.getAdvancementData(), file1, entityPlayer), -+ this.server.executorService ++ server.executorService + ); + } + // Paper end