From 966eda751d366a665cbd27dd6573174ab7f763c5 Mon Sep 17 00:00:00 2001
From: Jake Potrebic <jake.m.potrebic@gmail.com>
Date: Wed, 29 May 2024 11:27:29 -0700
Subject: [PATCH] Use RegistryOps for loadAdvancement (#10799)

---
 patches/server/Fix-UnsafeValues-loadAdvancement.patch | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/patches/server/Fix-UnsafeValues-loadAdvancement.patch b/patches/server/Fix-UnsafeValues-loadAdvancement.patch
index a357c26bbf..1c7d1517d6 100644
--- a/patches/server/Fix-UnsafeValues-loadAdvancement.patch
+++ b/patches/server/Fix-UnsafeValues-loadAdvancement.patch
@@ -9,8 +9,12 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
 +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
 @@ -0,0 +0,0 @@ public final class CraftMagicNumbers implements UnsafeValues {
+         ResourceLocation minecraftkey = CraftNamespacedKey.toMinecraft(key);
+ 
          JsonElement jsonelement = ServerAdvancementManager.GSON.fromJson(advancement, JsonElement.class);
-         net.minecraft.advancements.Advancement nms = net.minecraft.advancements.Advancement.CODEC.parse(JsonOps.INSTANCE, jsonelement).getOrThrow(JsonParseException::new);
+-        net.minecraft.advancements.Advancement nms = net.minecraft.advancements.Advancement.CODEC.parse(JsonOps.INSTANCE, jsonelement).getOrThrow(JsonParseException::new);
++        final net.minecraft.resources.RegistryOps<JsonElement> ops = CraftRegistry.getMinecraftRegistry().createSerializationContext(JsonOps.INSTANCE); // Paper - use RegistryOps
++        final net.minecraft.advancements.Advancement nms = net.minecraft.advancements.Advancement.CODEC.parse(ops, jsonelement).getOrThrow(JsonParseException::new); // Paper - use RegistryOps
          if (nms != null) {
 -            MinecraftServer.getServer().getAdvancements().advancements.put(minecraftkey, new AdvancementHolder(minecraftkey, nms));
 +            // Paper start - Fix throw UnsupportedOperationException