mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-02 17:32:03 +01:00
b141cd3d99
Co-authored-by: Jason Penilla <11360596+jpenilla@users.noreply.github.com>
39 lines
2 KiB
Diff
39 lines
2 KiB
Diff
--- 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<Advancement> {
|
|
|
|
private static final Logger LOGGER = LogUtils.getLogger();
|
|
- public Map<ResourceLocation, AdvancementHolder> advancements = Map.of();
|
|
+ public Map<ResourceLocation, AdvancementHolder> advancements = new HashMap<>(); // CraftBukkit - SPIGOT-7734: mutable
|
|
private AdvancementTree tree = new AdvancementTree();
|
|
private final HolderLookup.Provider registries;
|
|
|
|
@@ -37,13 +41,19 @@
|
|
Builder<ResourceLocation, AdvancementHolder> 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());
|
|
+ LOGGER.info("Loaded {} advancements", advancementtree.nodes().size()); // Paper - Improve logging and errors; moved from AdvancementTree#addAll
|
|
Iterator iterator = advancementtree.roots().iterator();
|
|
|
|
while (iterator.hasNext()) {
|