SPIGOT-7734: Can't register a custom advancement using unsafe()

This commit is contained in:
md_5 2024-06-09 11:12:13 +10:00
parent 02456e2a50
commit fd2f418340
No known key found for this signature in database
GPG Key ID: E8E901AC7C617C11

View File

@ -1,7 +1,28 @@
--- a/net/minecraft/server/AdvancementDataWorld.java --- a/net/minecraft/server/AdvancementDataWorld.java
+++ b/net/minecraft/server/AdvancementDataWorld.java +++ b/net/minecraft/server/AdvancementDataWorld.java
@@ -1,3 +1,4 @@ @@ -28,11 +28,15 @@
+// mc-dev import import net.minecraft.util.profiling.GameProfilerFiller;
package net.minecraft.server; import org.slf4j.Logger;
import com.google.common.collect.ImmutableMap; +// CraftBukkit start
+import java.util.HashMap;
+// CraftBukkit end
+
public class AdvancementDataWorld extends ResourceDataJson {
private static final Logger LOGGER = LogUtils.getLogger();
public static final Gson GSON = (new GsonBuilder()).create();
- public Map<MinecraftKey, AdvancementHolder> advancements = Map.of();
+ public Map<MinecraftKey, AdvancementHolder> advancements = new HashMap<>(); // CraftBukkit - SPIGOT-7734: mutable
private AdvancementTree tree = new AdvancementTree();
private final HolderLookup.a registries;
@@ -56,7 +60,7 @@
}
});
- this.advancements = builder.buildOrThrow();
+ this.advancements = new HashMap<>(builder.buildOrThrow()); // CraftBukkit - SPIGOT-7734: mutable
AdvancementTree advancementtree = new AdvancementTree();
advancementtree.addAll(this.advancements.values());