--- a/net/minecraft/server/ServerAdvancementManager.java +++ b/net/minecraft/server/ServerAdvancementManager.java @@ -21,10 +21,14 @@ import net.minecraft.util.profiling.ProfilerFiller; import org.slf4j.Logger; +// CraftBukkit start +import java.util.HashMap; +// CraftBukkit end + public class ServerAdvancementManager extends SimpleJsonResourceReloadListener { private static final Logger LOGGER = LogUtils.getLogger(); - public Map advancements = Map.of(); + public Map advancements = new HashMap<>(); // CraftBukkit - SPIGOT-7734: mutable private AdvancementTree tree = new AdvancementTree(); private final HolderLookup.Provider registries; @@ -37,10 +41,15 @@ Builder builder = ImmutableMap.builder(); prepared.forEach((minecraftkey, advancement) -> { + // Spigot start + if (org.spigotmc.SpigotConfig.disabledAdvancements != null && (org.spigotmc.SpigotConfig.disabledAdvancements.contains("*") || org.spigotmc.SpigotConfig.disabledAdvancements.contains(minecraftkey.toString()) || org.spigotmc.SpigotConfig.disabledAdvancements.contains(minecraftkey.getNamespace()))) { + return; + } + // Spigot end this.validate(minecraftkey, advancement); builder.put(minecraftkey, new AdvancementHolder(minecraftkey, advancement)); }); - this.advancements = builder.buildOrThrow(); + this.advancements = new HashMap<>(builder.buildOrThrow()); // CraftBukkit - SPIGOT-7734: mutable AdvancementTree advancementtree = new AdvancementTree(); advancementtree.addAll(this.advancements.values());