mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-19 17:37:42 +01:00
Revert "Fix concurrency issue with CriterionProgress deserialization"
This reverts commit 55bde37d
This commit is contained in:
@@ -16,41 +16,6 @@ index eaa1063ff2..a3b89a4f2a 100644
|
|||||||
public void a(EntityPlayer entityplayer) {
|
public void a(EntityPlayer entityplayer) {
|
||||||
this.player = 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
|
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||||
index 50ea875a3b..cc6a54e06a 100644
|
index 50ea875a3b..cc6a54e06a 100644
|
||||||
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
|
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||||
@@ -124,7 +89,7 @@ index fd75444cec..95d93cd8e5 100644
|
|||||||
return this.convertable.getWorldFolder(savedfile);
|
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
|
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
|
--- a/src/main/java/net/minecraft/server/PlayerList.java
|
||||||
+++ b/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 {
|
@@ -1339,9 +1339,26 @@ public abstract class PlayerList {
|
||||||
@@ -143,7 +108,7 @@ index 7b385eb43e..eae19141e3 100644
|
|||||||
+ final File file1 = new File(file, uuid + ".json");
|
+ final File file1 = new File(file, uuid + ".json");
|
||||||
+ return java.util.concurrent.CompletableFuture.supplyAsync(
|
+ return java.util.concurrent.CompletableFuture.supplyAsync(
|
||||||
+ () -> new AdvancementDataPlayer(this.server.getDataFixer(), this, this.server.getAdvancementData(), file1, entityPlayer),
|
+ () -> new AdvancementDataPlayer(this.server.getDataFixer(), this, this.server.getAdvancementData(), file1, entityPlayer),
|
||||||
+ this.server.executorService
|
+ server.executorService
|
||||||
+ );
|
+ );
|
||||||
+ }
|
+ }
|
||||||
+ // Paper end
|
+ // Paper end
|
||||||
|
|||||||
Reference in New Issue
Block a user