From fd2f4183400100b234fe78f0c21909f76bd5d9b8 Mon Sep 17 00:00:00 2001 From: md_5 Date: Sun, 9 Jun 2024 11:12:13 +1000 Subject: [PATCH] SPIGOT-7734: Can't register a custom advancement using unsafe() --- .../server/AdvancementDataWorld.patch | 29 ++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/nms-patches/net/minecraft/server/AdvancementDataWorld.patch b/nms-patches/net/minecraft/server/AdvancementDataWorld.patch index 7c005ced9..dd67145ad 100644 --- a/nms-patches/net/minecraft/server/AdvancementDataWorld.patch +++ b/nms-patches/net/minecraft/server/AdvancementDataWorld.patch @@ -1,7 +1,28 @@ --- a/net/minecraft/server/AdvancementDataWorld.java +++ b/net/minecraft/server/AdvancementDataWorld.java -@@ -1,3 +1,4 @@ -+// mc-dev import - package net.minecraft.server; +@@ -28,11 +28,15 @@ + import net.minecraft.util.profiling.GameProfilerFiller; + 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 advancements = Map.of(); ++ public Map 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());