diff --git a/mappings/net/minecraft/class_6864.mapping b/mappings/net/minecraft/class_6864.mapping
deleted file mode 100644
index d299a67ee8..0000000000
--- a/mappings/net/minecraft/class_6864.mapping
+++ /dev/null
@@ -1,18 +0,0 @@
-CLASS net/minecraft/class_6864
- CLASS class_5748 Serialized
- COMMENT A serialization-friendly POJO representation of a {@linkplain
- COMMENT TagGroup tag group}. This allows easy transport of tag groups
- COMMENT over Minecraft network protocol.
- COMMENT
- COMMENT
This stores tag entries with raw integer IDs and requires a registry
- COMMENT for raw ID access to {@linkplain TagGroup#serialize(Registry) serialize}
- COMMENT or {@linkplain TagGroup#deserialize(TagGroup.Serialized, Registry)
- COMMENT deserialize} tag groups.
- FIELD field_28304 contents Ljava/util/Map;
- METHOD (Ljava/util/Map;)V
- ARG 1 contents
- METHOD method_33159 writeBuf (Lnet/minecraft/class_2540;)V
- ARG 1 buf
- METHOD method_33160 fromBuf (Lnet/minecraft/class_2540;)Lnet/minecraft/class_6864$class_5748;
- ARG 0 buf
- METHOD method_40108 isEmpty ()Z
diff --git a/mappings/net/minecraft/class_6895.mapping b/mappings/net/minecraft/class_6895.mapping
deleted file mode 100644
index c857e60223..0000000000
--- a/mappings/net/minecraft/class_6895.mapping
+++ /dev/null
@@ -1,12 +0,0 @@
-CLASS net/minecraft/class_6895
- CLASS class_5501 RegistryManagerEntry
- FIELD comp_290 key Lnet/minecraft/class_5321;
- FIELD comp_291 rawId I
- FIELD comp_292 entry Ljava/lang/Object;
- METHOD (Lnet/minecraft/class_5321;ILjava/lang/Object;)V
- ARG 1 key
- ARG 2 rawId
- ARG 3 entry
- METHOD comp_290 key ()Lnet/minecraft/class_5321;
- METHOD comp_291 rawId ()I
- METHOD comp_292 entry ()Ljava/lang/Object;
diff --git a/mappings/net/minecraft/client/network/ClientPlayNetworkHandler.mapping b/mappings/net/minecraft/client/network/ClientPlayNetworkHandler.mapping
index d0472c558b..c2e337fe61 100644
--- a/mappings/net/minecraft/client/network/ClientPlayNetworkHandler.mapping
+++ b/mappings/net/minecraft/client/network/ClientPlayNetworkHandler.mapping
@@ -102,6 +102,6 @@ CLASS net/minecraft/class_634 net/minecraft/client/network/ClientPlayNetworkHand
ARG 3 data
METHOD method_38544 unloadChunk (Lnet/minecraft/class_2666;)V
ARG 1 packet
- METHOD method_40217 loadRegistry (Lnet/minecraft/class_5321;Lnet/minecraft/class_6864$class_5748;)V
+ METHOD method_40217 loadTags (Lnet/minecraft/class_5321;Lnet/minecraft/class_6864$class_5748;)V
ARG 1 registryKey
ARG 2 serialized
diff --git a/mappings/net/minecraft/tag/TagPacketSerializer.mapping b/mappings/net/minecraft/tag/TagPacketSerializer.mapping
new file mode 100644
index 0000000000..cd515594ad
--- /dev/null
+++ b/mappings/net/minecraft/tag/TagPacketSerializer.mapping
@@ -0,0 +1,36 @@
+CLASS net/minecraft/class_6864 net/minecraft/tag/TagPacketSerializer
+ METHOD method_40102 serializeTags (Lnet/minecraft/class_2378;)Lnet/minecraft/class_6864$class_5748;
+ ARG 0 registry
+ METHOD method_40103 (Lnet/minecraft/class_2378;Ljava/util/Map;Lcom/mojang/datafixers/util/Pair;)V
+ ARG 2 pair
+ METHOD method_40105 serializeTags (Lnet/minecraft/class_5455;)Ljava/util/Map;
+ ARG 0 dynamicRegistryManager
+ METHOD method_40106 loadTags (Lnet/minecraft/class_5321;Lnet/minecraft/class_2378;Lnet/minecraft/class_6864$class_5748;Lnet/minecraft/class_6864$class_6865;)V
+ ARG 0 registryKey
+ ARG 1 registry
+ ARG 2 serialized
+ ARG 3 loader
+ METHOD method_40107 (Lnet/minecraft/class_5321;Lnet/minecraft/class_2378;Lnet/minecraft/class_6864$class_6865;Lnet/minecraft/class_2960;Lit/unimi/dsi/fastutil/ints/IntList;)V
+ ARG 3 tagId
+ ARG 4 rawIds
+ CLASS class_5748 Serialized
+ COMMENT A serialization-friendly POJO representation of a {@linkplain
+ COMMENT TagGroup tag group}. This allows easy transport of tag groups
+ COMMENT over Minecraft network protocol.
+ COMMENT
+ COMMENT This stores tag entries with raw integer IDs and requires a registry
+ COMMENT for raw ID access to {@linkplain TagGroup#serialize(Registry) serialize}
+ COMMENT or {@linkplain TagGroup#deserialize(TagGroup.Serialized, Registry)
+ COMMENT deserialize} tag groups.
+ FIELD field_28304 contents Ljava/util/Map;
+ METHOD (Ljava/util/Map;)V
+ ARG 1 contents
+ METHOD method_33159 writeBuf (Lnet/minecraft/class_2540;)V
+ ARG 1 buf
+ METHOD method_33160 fromBuf (Lnet/minecraft/class_2540;)Lnet/minecraft/class_6864$class_5748;
+ ARG 0 buf
+ METHOD method_40108 isEmpty ()Z
+ CLASS class_6865 Loader
+ METHOD accept (Lnet/minecraft/class_6862;Ljava/util/List;)V
+ ARG 1 tag
+ ARG 2 entries
diff --git a/mappings/net/minecraft/util/dynamic/Codecs.mapping b/mappings/net/minecraft/util/dynamic/Codecs.mapping
index a4ce8716da..96d82a3f11 100644
--- a/mappings/net/minecraft/util/dynamic/Codecs.mapping
+++ b/mappings/net/minecraft/util/dynamic/Codecs.mapping
@@ -63,8 +63,61 @@ CLASS net/minecraft/class_5699 net/minecraft/util/dynamic/Codecs
ARG 0 min
ARG 1 max
ARG 2 messageFactory
+ METHOD method_39028 orElsePartial (Ljava/lang/Object;)Lcom/mojang/serialization/Codec$ResultFunction;
METHOD method_39240 createLazy (Ljava/util/function/Supplier;)Lcom/mojang/serialization/Codec;
ARG 0 supplier
+ METHOD method_39504 withLifecycle (Lcom/mojang/serialization/Codec;Ljava/util/function/Function;Ljava/util/function/Function;)Lcom/mojang/serialization/Codec;
+ ARG 0 originalCodec
+ METHOD method_39509 (Ljava/util/function/IntFunction;Ljava/lang/Integer;)Lcom/mojang/serialization/DataResult;
+ ARG 1 rawId
+ METHOD method_39510 (Ljava/util/function/ToIntFunction;ILjava/lang/Object;)Lcom/mojang/serialization/DataResult;
+ ARG 2 element
+ METHOD method_39511 rawIdChecked (Ljava/util/function/ToIntFunction;Ljava/util/function/IntFunction;I)Lcom/mojang/serialization/Codec;
+ ARG 0 elementToRawId
+ ARG 1 rawIdToElement
+ ARG 2 errorRawId
+ METHOD method_39512 orCompressed (Lcom/mojang/serialization/Codec;Lcom/mojang/serialization/Codec;)Lcom/mojang/serialization/Codec;
+ ARG 0 uncompressedCodec
+ ARG 1 compressedCodec
+ METHOD method_40109 (Lnet/minecraft/class_6885;)Lcom/mojang/serialization/DataResult;
+ ARG 0 entries
+ METHOD method_40110 createContextRetrievalCodec (Ljava/util/function/Function;)Lcom/mojang/serialization/MapCodec;
+ ARG 0 retriever
+ METHOD method_40111 (Ljava/util/function/Function;Ljava/util/Collection;)Lcom/mojang/serialization/DataResult;
+ ARG 1 collection
+ METHOD method_40112 createNonEmptyEntryListChecker ()Ljava/util/function/Function;
+ METHOD method_40113 nonEmptyEntryList (Lcom/mojang/serialization/Codec;)Lcom/mojang/serialization/Codec;
+ ARG 0 originalCodec
+ METHOD method_40114 createEqualTypeChecker (Ljava/util/function/Function;)Ljava/util/function/Function;
+ ARG 0 typeGetter
+ CLASS 1
+ METHOD apply (Lcom/mojang/serialization/DynamicOps;Ljava/lang/Object;Lcom/mojang/serialization/DataResult;)Lcom/mojang/serialization/DataResult;
+ ARG 1 ops
+ ARG 2 input
+ ARG 3 result
+ METHOD coApply (Lcom/mojang/serialization/DynamicOps;Ljava/lang/Object;Lcom/mojang/serialization/DataResult;)Lcom/mojang/serialization/DataResult;
+ ARG 1 ops
+ ARG 2 input
+ ARG 3 result
+ CLASS 2
+ METHOD decode (Lcom/mojang/serialization/DynamicOps;Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
+ ARG 1 ops
+ ARG 2 input
+ METHOD encode (Ljava/lang/Object;Lcom/mojang/serialization/DynamicOps;Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
+ ARG 1 input
+ ARG 2 ops
+ ARG 3 prefix
+ CLASS 3
+ METHOD apply (Lcom/mojang/serialization/DynamicOps;Ljava/lang/Object;Lcom/mojang/serialization/DataResult;)Lcom/mojang/serialization/DataResult;
+ ARG 1 ops
+ ARG 2 input
+ ARG 3 result
+ METHOD coApply (Lcom/mojang/serialization/DynamicOps;Ljava/lang/Object;Lcom/mojang/serialization/DataResult;)Lcom/mojang/serialization/DataResult;
+ ARG 1 ops
+ ARG 2 input
+ ARG 3 result
+ METHOD method_39515 (Lcom/mojang/serialization/DataResult;Ljava/util/function/Function;Lcom/mojang/datafixers/util/Pair;)Lcom/mojang/serialization/DataResult;
+ ARG 2 pair
CLASS class_5839 Xor
COMMENT An xor codec that only permits exactly one of the two data choices to be
COMMENT present.
@@ -124,3 +177,15 @@ CLASS net/minecraft/class_5699 net/minecraft/util/dynamic/Codecs
ARG 1 input
ARG 2 ops
ARG 3 prefix
+ CLASS class_6866 ContextRetrievalCodec
+ METHOD (Ljava/util/function/Function;)V
+ ARG 1 retriever
+ METHOD decode (Lcom/mojang/serialization/DynamicOps;Lcom/mojang/serialization/MapLike;)Lcom/mojang/serialization/DataResult;
+ ARG 1 ops
+ ARG 2 input
+ METHOD encode (Ljava/lang/Object;Lcom/mojang/serialization/DynamicOps;Lcom/mojang/serialization/RecordBuilder;)Lcom/mojang/serialization/RecordBuilder;
+ ARG 1 input
+ ARG 2 ops
+ ARG 3 prefix
+ METHOD keys (Lcom/mojang/serialization/DynamicOps;)Ljava/util/stream/Stream;
+ ARG 1 ops
diff --git a/mappings/net/minecraft/util/dynamic/ForwardingDynamicOps.mapping b/mappings/net/minecraft/util/dynamic/ForwardingDynamicOps.mapping
index 2ee0826156..df9308f38d 100644
--- a/mappings/net/minecraft/util/dynamic/ForwardingDynamicOps.mapping
+++ b/mappings/net/minecraft/util/dynamic/ForwardingDynamicOps.mapping
@@ -3,3 +3,72 @@ CLASS net/minecraft/class_5379 net/minecraft/util/dynamic/ForwardingDynamicOps
FIELD field_25503 delegate Lcom/mojang/serialization/DynamicOps;
METHOD (Lcom/mojang/serialization/DynamicOps;)V
ARG 1 delegate
+ METHOD convertTo (Lcom/mojang/serialization/DynamicOps;Ljava/lang/Object;)Ljava/lang/Object;
+ ARG 1 outputOps
+ ARG 2 input
+ METHOD createBoolean (Z)Ljava/lang/Object;
+ ARG 1 bl
+ METHOD createByte (B)Ljava/lang/Object;
+ ARG 1 b
+ METHOD createByteList (Ljava/nio/ByteBuffer;)Ljava/lang/Object;
+ ARG 1 buf
+ METHOD createDouble (D)Ljava/lang/Object;
+ ARG 1 d
+ METHOD createFloat (F)Ljava/lang/Object;
+ ARG 1 f
+ METHOD createInt (I)Ljava/lang/Object;
+ ARG 1 i
+ METHOD createIntList (Ljava/util/stream/IntStream;)Ljava/lang/Object;
+ ARG 1 stream
+ METHOD createList (Ljava/util/stream/Stream;)Ljava/lang/Object;
+ ARG 1 stream
+ METHOD createLong (J)Ljava/lang/Object;
+ ARG 1 l
+ METHOD createLongList (Ljava/util/stream/LongStream;)Ljava/lang/Object;
+ ARG 1 stream
+ METHOD createMap (Ljava/util/stream/Stream;)Ljava/lang/Object;
+ ARG 1 map
+ METHOD createNumeric (Ljava/lang/Number;)Ljava/lang/Object;
+ ARG 1 number
+ METHOD createShort (S)Ljava/lang/Object;
+ ARG 1 s
+ METHOD createString (Ljava/lang/String;)Ljava/lang/Object;
+ ARG 1 string
+ METHOD getBooleanValue (Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
+ ARG 1 input
+ METHOD getByteBuffer (Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
+ ARG 1 input
+ METHOD getIntStream (Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
+ ARG 1 input
+ METHOD getList (Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
+ ARG 1 input
+ METHOD getLongStream (Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
+ ARG 1 input
+ METHOD getMap (Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
+ ARG 1 input
+ METHOD getMapEntries (Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
+ ARG 1 input
+ METHOD getMapValues (Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
+ ARG 1 input
+ METHOD getNumberValue (Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
+ ARG 1 input
+ METHOD getStream (Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
+ ARG 1 input
+ METHOD getStringValue (Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
+ ARG 1 input
+ METHOD mergeToList (Ljava/lang/Object;Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
+ ARG 1 list
+ ARG 2 value
+ METHOD mergeToList (Ljava/lang/Object;Ljava/util/List;)Lcom/mojang/serialization/DataResult;
+ ARG 1 list
+ ARG 2 values
+ METHOD mergeToMap (Ljava/lang/Object;Lcom/mojang/serialization/MapLike;)Lcom/mojang/serialization/DataResult;
+ ARG 1 map
+ ARG 2 values
+ METHOD mergeToMap (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
+ ARG 1 map
+ ARG 2 key
+ ARG 3 value
+ METHOD remove (Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
+ ARG 1 input
+ ARG 2 key
diff --git a/mappings/net/minecraft/util/dynamic/RegistryElementCodec.mapping b/mappings/net/minecraft/util/dynamic/RegistryElementCodec.mapping
index 33282895f2..02db1febdd 100644
--- a/mappings/net/minecraft/util/dynamic/RegistryElementCodec.mapping
+++ b/mappings/net/minecraft/util/dynamic/RegistryElementCodec.mapping
@@ -17,10 +17,15 @@ CLASS net/minecraft/class_5381 net/minecraft/util/dynamic/RegistryElementCodec
ARG 1 registryRef
ARG 2 elementCodec
ARG 3 allowInlineDefinitions
+ METHOD decode (Lcom/mojang/serialization/DynamicOps;Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
+ ARG 1 ops
+ ARG 2 input
METHOD encode (Ljava/lang/Object;Lcom/mojang/serialization/DynamicOps;Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
ARG 1 input
ARG 2 ops
ARG 3 prefix
+ METHOD method_29746 (Lcom/mojang/datafixers/util/Pair;)Lcom/mojang/datafixers/util/Pair;
+ ARG 0 pair
METHOD method_29749 of (Lnet/minecraft/class_5321;Lcom/mojang/serialization/Codec;)Lnet/minecraft/class_5381;
ARG 0 registryRef
ARG 1 elementCodec
@@ -28,3 +33,11 @@ CLASS net/minecraft/class_5381 net/minecraft/util/dynamic/RegistryElementCodec
ARG 0 registryRef
ARG 1 elementCodec
ARG 2 allowInlineDefinitions
+ METHOD method_40391 (Lcom/mojang/datafixers/util/Pair;Lnet/minecraft/class_6880;)Lcom/mojang/datafixers/util/Pair;
+ ARG 1 entry
+ METHOD method_40392 (Lcom/mojang/serialization/DynamicOps;Ljava/lang/Object;Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
+ ARG 3 value
+ METHOD method_40393 (Lcom/mojang/serialization/DynamicOps;Ljava/lang/Object;Lnet/minecraft/class_5321;)Lcom/mojang/serialization/DataResult;
+ ARG 2 key
+ METHOD method_40394 (Lcom/mojang/datafixers/util/Pair;)Lcom/mojang/datafixers/util/Pair;
+ ARG 0 pair
diff --git a/mappings/net/minecraft/util/dynamic/RegistryLoader.mapping b/mappings/net/minecraft/util/dynamic/RegistryLoader.mapping
new file mode 100644
index 0000000000..4e07269843
--- /dev/null
+++ b/mappings/net/minecraft/util/dynamic/RegistryLoader.mapping
@@ -0,0 +1,42 @@
+CLASS net/minecraft/class_6900 net/minecraft/util/dynamic/RegistryLoader
+ FIELD field_36485 entryLoader Lnet/minecraft/class_5506;
+ FIELD field_36486 valueHolders Ljava/util/Map;
+ METHOD (Lnet/minecraft/class_5506;)V
+ ARG 1 entryLoader
+ METHOD method_40401 (Lnet/minecraft/class_6880;Lnet/minecraft/class_5506$class_6822;)Lnet/minecraft/class_6880;
+ ARG 1 entry
+ METHOD method_40402 createAccess (Lnet/minecraft/class_5455$class_6893;)Lnet/minecraft/class_6900$class_6901;
+ ARG 1 dynamicRegistryManager
+ METHOD method_40403 (Lnet/minecraft/class_2385;Lnet/minecraft/class_6880;)Lnet/minecraft/class_2385;
+ ARG 1 entry
+ METHOD method_40404 load (Lnet/minecraft/class_2385;Lnet/minecraft/class_5321;Lcom/mojang/serialization/Codec;Lcom/mojang/serialization/DynamicOps;)Lcom/mojang/serialization/DataResult;
+ ARG 1 registry
+ ARG 2 registryRef
+ ARG 3 codec
+ ARG 4 ops
+ METHOD method_40405 load (Lnet/minecraft/class_2385;Lnet/minecraft/class_5321;Lcom/mojang/serialization/Codec;Lnet/minecraft/class_5321;Lcom/mojang/serialization/DynamicOps;)Lcom/mojang/serialization/DataResult;
+ ARG 1 registry
+ ARG 2 registryRef
+ ARG 3 codec
+ ARG 4 entryKey
+ ARG 5 ops
+ METHOD method_40406 getOrCreateValueHolder (Lnet/minecraft/class_5321;)Lnet/minecraft/class_6900$class_6902;
+ ARG 1 registryRef
+ METHOD method_40407 (Lnet/minecraft/class_5321;Lcom/mojang/serialization/Codec;Lnet/minecraft/class_5321;Lcom/mojang/serialization/DynamicOps;Lnet/minecraft/class_2385;)Lcom/mojang/serialization/DataResult;
+ ARG 5 reg
+ METHOD method_40408 (Lnet/minecraft/class_5321;)Lnet/minecraft/class_6900$class_6902;
+ ARG 0 ref
+ CLASS class_6901 LoaderAccess
+ FIELD comp_354 dynamicRegistryManager Lnet/minecraft/class_5455$class_6893;
+ METHOD comp_354 dynamicRegistryManager ()Lnet/minecraft/class_5455$class_6893;
+ METHOD method_40409 load (Lnet/minecraft/class_5321;Lcom/mojang/serialization/Codec;Lcom/mojang/serialization/DynamicOps;)Lcom/mojang/serialization/DataResult;
+ ARG 1 registryRef
+ ARG 2 codec
+ ARG 3 ops
+ METHOD method_40410 load (Lnet/minecraft/class_5321;Lcom/mojang/serialization/Codec;Lnet/minecraft/class_5321;Lcom/mojang/serialization/DynamicOps;)Lcom/mojang/serialization/DataResult;
+ ARG 1 registryRef
+ ARG 2 codec
+ ARG 3 entryKey
+ ARG 4 ops
+ CLASS class_6902 ValueHolder
+ FIELD field_36487 values Ljava/util/Map;
diff --git a/mappings/net/minecraft/util/dynamic/RegistryOps.mapping b/mappings/net/minecraft/util/dynamic/RegistryOps.mapping
new file mode 100644
index 0000000000..d385cea00c
--- /dev/null
+++ b/mappings/net/minecraft/util/dynamic/RegistryOps.mapping
@@ -0,0 +1,29 @@
+CLASS net/minecraft/class_6903 net/minecraft/util/dynamic/RegistryOps
+ FIELD field_36488 loaderAccess Ljava/util/Optional;
+ FIELD field_36489 registryManager Lnet/minecraft/class_5455;
+ FIELD field_36490 entryOps Lcom/mojang/serialization/DynamicOps;
+ METHOD (Lcom/mojang/serialization/DynamicOps;Lnet/minecraft/class_5455;Ljava/util/Optional;)V
+ ARG 1 delegate
+ ARG 2 dynamicRegistryManager
+ ARG 3 loaderAccess
+ METHOD method_40411 getLoaderAccess ()Ljava/util/Optional;
+ METHOD method_40412 ofLoaded (Lcom/mojang/serialization/DynamicOps;Lnet/minecraft/class_5455$class_6893;Lnet/minecraft/class_3300;)Lnet/minecraft/class_6903;
+ ARG 0 ops
+ ARG 1 registryManager
+ ARG 2 resourceManager
+ METHOD method_40413 ofLoaded (Lcom/mojang/serialization/DynamicOps;Lnet/minecraft/class_5455$class_6893;Lnet/minecraft/class_5506;)Lnet/minecraft/class_6903;
+ ARG 0 ops
+ ARG 1 registryManager
+ ARG 2 entryLoader
+ METHOD method_40414 of (Lcom/mojang/serialization/DynamicOps;Lnet/minecraft/class_5455;)Lnet/minecraft/class_6903;
+ ARG 0 delegate
+ ARG 1 registryManager
+ METHOD method_40415 (Lnet/minecraft/class_2378;)Lcom/mojang/serialization/DataResult;
+ ARG 0 registry
+ METHOD method_40416 getRegistry (Lnet/minecraft/class_5321;)Ljava/util/Optional;
+ ARG 1 key
+ METHOD method_40417 (Lnet/minecraft/class_5321;Lcom/mojang/serialization/DynamicOps;)Lcom/mojang/serialization/DataResult;
+ ARG 1 ops
+ METHOD method_40418 getEntryOps ()Lcom/mojang/serialization/DynamicOps;
+ METHOD method_40419 createRegistryCodec (Lnet/minecraft/class_5321;)Lcom/mojang/serialization/MapCodec;
+ ARG 0 registryRef
diff --git a/mappings/net/minecraft/util/registry/BuiltinRegistries.mapping b/mappings/net/minecraft/util/registry/BuiltinRegistries.mapping
index 55b7fa7d10..985004c263 100644
--- a/mappings/net/minecraft/util/registry/BuiltinRegistries.mapping
+++ b/mappings/net/minecraft/util/registry/BuiltinRegistries.mapping
@@ -21,6 +21,7 @@ CLASS net/minecraft/class_5458 net/minecraft/util/registry/BuiltinRegistries
FIELD field_26375 CHUNK_GENERATOR_SETTINGS Lnet/minecraft/class_2378;
FIELD field_35435 NOISE_PARAMETERS Lnet/minecraft/class_2378;
FIELD field_35761 PLACED_FEATURE Lnet/minecraft/class_2378;
+ FIELD field_36476 DYNAMIC_REGISTRY_MANAGER Lnet/minecraft/class_5455;
METHOD method_30559 init ()V
METHOD method_30561 add (Lnet/minecraft/class_2378;Ljava/lang/String;Ljava/lang/Object;)Lnet/minecraft/class_6880;
ARG 0 registry
diff --git a/mappings/net/minecraft/util/registry/DynamicRegistryManager.mapping b/mappings/net/minecraft/util/registry/DynamicRegistryManager.mapping
index 50254ebfb5..7344ebc59c 100644
--- a/mappings/net/minecraft/util/registry/DynamicRegistryManager.mapping
+++ b/mappings/net/minecraft/util/registry/DynamicRegistryManager.mapping
@@ -12,8 +12,12 @@ CLASS net/minecraft/class_5455 net/minecraft/util/registry/DynamicRegistryManage
FIELD field_25918 LOGGER Lorg/slf4j/Logger;
FIELD field_25919 INFOS Ljava/util/Map;
FIELD field_26733 BUILTIN Ljava/util/function/Supplier;
+ FIELD field_36469 CODEC Lcom/mojang/serialization/Codec;
METHOD method_30519 load (Lnet/minecraft/class_5455$class_6893;Lcom/mojang/serialization/DynamicOps;Lnet/minecraft/class_6900;)V
COMMENT Loads a dynamic registry manager from the resource manager's data files.
+ ARG 0 dynamicRegistryManager
+ ARG 1 ops
+ ARG 2 registryLoader
METHOD method_30520 register (Lcom/google/common/collect/ImmutableMap$Builder;Lnet/minecraft/class_5321;Lcom/mojang/serialization/Codec;)V
ARG 0 infosBuilder
ARG 1 registryRef
@@ -22,12 +26,15 @@ CLASS net/minecraft/class_5455 net/minecraft/util/registry/DynamicRegistryManage
COMMENT Loads elements from the {@code ops} into the registry specified by {@code
COMMENT info} within the {@code manager}. Note that the resource manager instance
COMMENT is kept within the {@code ops}.
- METHOD method_30527 getOptionalMutable (Lnet/minecraft/class_5321;)Ljava/util/Optional;
+ ARG 0 ops
+ ARG 1 loaderAccess
+ ARG 2 info
+ METHOD method_30527 getOptionalManaged (Lnet/minecraft/class_5321;)Ljava/util/Optional;
COMMENT Retrieves a registry optionally from this manager.
ARG 1 key
METHOD method_30530 get (Lnet/minecraft/class_5321;)Lnet/minecraft/class_2378;
- COMMENT Retrieves a registry from this manager, or throws an exception when the
- COMMENT registry does not exist.
+ COMMENT Retrieves a registry from this manager or {@link Registry#REGISTRIES},
+ COMMENT or throws an exception when the registry does not exist.
COMMENT
COMMENT @throws IllegalStateException if the registry does not exist
ARG 1 key
@@ -36,17 +43,64 @@ CLASS net/minecraft/class_5455 net/minecraft/util/registry/DynamicRegistryManage
ARG 1 registryRef
ARG 2 entryCodec
ARG 3 networkEntryCodec
- METHOD method_31141 (Lnet/minecraft/class_5455$class_6893;Lnet/minecraft/class_5506$class_5507;Lnet/minecraft/class_5455$class_5456;)V
+ METHOD method_31141 addEntriesToLoad (Lnet/minecraft/class_5455$class_6893;Lnet/minecraft/class_5506$class_5507;Lnet/minecraft/class_5455$class_5456;)V
ARG 0 registryManager
ARG 1 entryLoader
ARG 2 info
- METHOD method_33309 getMutable (Lnet/minecraft/class_5321;)Lnet/minecraft/class_2378;
+ METHOD method_33309 getManaged (Lnet/minecraft/class_5321;)Lnet/minecraft/class_2378;
+ COMMENT Retrieves a registry from this manager,
+ COMMENT or throws an exception when the registry does not exist.
+ COMMENT
+ COMMENT @throws IllegalStateException if the registry does not exist
ARG 1 key
METHOD method_33310 getOptional (Lnet/minecraft/class_5321;)Ljava/util/Optional;
ARG 1 key
+ METHOD method_34849 (Lcom/mojang/serialization/DataResult$PartialResult;)V
+ ARG 0 partialResult
METHOD method_39674 getInfos ()Ljava/lang/Iterable;
- METHOD method_40302 (Lnet/minecraft/class_2378;)Lnet/minecraft/class_5455$class_6890;
+ METHOD method_40299 createDynamicRegistryManager (Lcom/mojang/serialization/Dynamic;)Lnet/minecraft/class_5455;
+ ARG 0 dynamic
+ METHOD method_40300 (Lcom/mojang/serialization/Dynamic;Lnet/minecraft/class_5321;)Lnet/minecraft/class_2378;
+ ARG 1 registryRef
+ METHOD method_40301 createCodec (Lcom/mojang/serialization/codecs/UnboundedMapCodec;)Lcom/mojang/serialization/Codec;
+ ARG 0 originalCodec
+ METHOD method_40302 of (Lnet/minecraft/class_2378;)Lnet/minecraft/class_5455$class_6890;
ARG 0 registries
+ METHOD method_40303 (Lnet/minecraft/class_5455$class_5456;)Lcom/mojang/serialization/Codec;
+ ARG 0 info
+ METHOD method_40304 (Lnet/minecraft/class_5455$class_6892;)Z
+ ARG 0 entry
+ METHOD method_40305 (Lnet/minecraft/class_5455;)Ljava/util/Map;
+ ARG 0 dynamicRegistryManager
+ METHOD method_40306 (Lnet/minecraft/class_5321;Lcom/mojang/serialization/Codec;)Lcom/mojang/serialization/Codec;
+ ARG 1 codec
+ METHOD method_40307 createRegistry (Lnet/minecraft/class_5321;Lcom/mojang/serialization/Dynamic;)Lnet/minecraft/class_2378;
+ ARG 0 registryRef
+ ARG 1 dynamic
+ METHOD method_40308 streamManagedRegistries ()Ljava/util/stream/Stream;
+ METHOD method_40309 (Lnet/minecraft/class_2378;)Lcom/mojang/serialization/DataResult;
+ ARG 0 registry
+ METHOD method_40310 (Lnet/minecraft/class_5455$class_6892;)Lnet/minecraft/class_2378;
+ ARG 0 entry
+ METHOD method_40311 streamAllRegistries ()Ljava/util/stream/Stream;
+ METHOD method_40312 (Lnet/minecraft/class_5455$class_6892;)Lnet/minecraft/class_5321;
+ ARG 0 entry
+ METHOD method_40313 streamSyncedRegistries ()Ljava/util/stream/Stream;
+ METHOD method_40314 createAndLoad ()Lnet/minecraft/class_5455$class_6893;
+ METHOD method_40315 shouldSkipLoading (Lnet/minecraft/class_5321;)Z
+ ARG 0 registryRef
+ METHOD method_40316 toImmutable ()Lnet/minecraft/class_5455$class_6890;
+ METHOD method_40317 createSimpleRegistry (Lnet/minecraft/class_5321;)Lnet/minecraft/class_2385;
+ ARG 0 registryRef
+ METHOD method_40318 streamStaticRegistries ()Ljava/util/stream/Stream;
+ METHOD method_40319 getNetworkEntryCodec (Lnet/minecraft/class_5321;)Lcom/mojang/serialization/DataResult;
+ ARG 0 registryKey
+ METHOD method_40320 createCodec ()Lcom/mojang/serialization/Codec;
+ METHOD method_40321 streamSyncedManagedRegistries ()Ljava/util/stream/Stream;
+ METHOD method_40323 createMutableRegistries ()Ljava/util/Map;
+ METHOD method_40325 createMutableRegistryManager ()Lnet/minecraft/class_5455$class_6893;
+ METHOD method_40326 (Lnet/minecraft/class_5321;)Lcom/mojang/serialization/DataResult;
+ ARG 0 registryRef
CLASS class_5456 Info
COMMENT Represents the serialization behavior of the registries, including the
COMMENT id of the registry, the codec for its elements, and whether the registry
@@ -62,3 +116,34 @@ CLASS net/minecraft/class_5455 net/minecraft/util/registry/DynamicRegistryManage
METHOD comp_294 entryCodec ()Lcom/mojang/serialization/Codec;
METHOD comp_295 networkEntryCodec ()Lcom/mojang/serialization/Codec;
METHOD method_30537 isSynced ()Z
+ CLASS class_6890 Immutable
+ CLASS class_6891 ImmutableImpl
+ FIELD field_36471 registries Ljava/util/Map;
+ METHOD (Ljava/util/Map;)V
+ ARG 1 registries
+ METHOD (Ljava/util/stream/Stream;)V
+ ARG 1 stream
+ METHOD method_40328 (Lnet/minecraft/class_2378;)Lnet/minecraft/class_2378;
+ ARG 0 registry
+ CLASS class_6892 Entry
+ METHOD method_40329 of (Lnet/minecraft/class_6880$class_6883;)Lnet/minecraft/class_5455$class_6892;
+ ARG 0 entry
+ METHOD method_40330 of (Ljava/util/Map$Entry;)Lnet/minecraft/class_5455$class_6892;
+ ARG 0 entry
+ METHOD method_40331 of (Lnet/minecraft/class_5321;Lnet/minecraft/class_2378;)Lnet/minecraft/class_5455$class_6892;
+ ARG 0 key
+ ARG 1 value
+ METHOD method_40332 freeze ()Lnet/minecraft/class_5455$class_6892;
+ CLASS class_6893 Mutable
+ METHOD method_40333 getOptionalMutable (Lnet/minecraft/class_5321;)Ljava/util/Optional;
+ ARG 1 key
+ METHOD method_40334 getMutable (Lnet/minecraft/class_5321;)Lnet/minecraft/class_2385;
+ ARG 1 key
+ CLASS class_6894 MutableImpl
+ FIELD field_36472 mutableRegistries Ljava/util/Map;
+ METHOD (Ljava/util/Map;)V
+ ARG 1 mutableRegistries
+ METHOD method_40336 (Lnet/minecraft/class_2385;)Lnet/minecraft/class_2385;
+ ARG 0 registry
+ METHOD method_40337 (Lnet/minecraft/class_2385;)Lnet/minecraft/class_2378;
+ ARG 0 registry
diff --git a/mappings/net/minecraft/util/registry/Registry.mapping b/mappings/net/minecraft/util/registry/Registry.mapping
index b42c43969a..646da78ee0 100644
--- a/mappings/net/minecraft/util/registry/Registry.mapping
+++ b/mappings/net/minecraft/util/registry/Registry.mapping
@@ -332,6 +332,10 @@ CLASS net/minecraft/class_2378 net/minecraft/util/registry/Registry
ARG 2 entry
METHOD method_39667 (Lnet/minecraft/class_2960;)Lcom/mojang/serialization/DataResult;
ARG 1 id
+ METHOD method_39668 (Ljava/lang/Object;)Lcom/mojang/serialization/Lifecycle;
+ ARG 1 value
+ METHOD method_39670 (Ljava/lang/Object;)I
+ ARG 1 value
METHOD method_39671 (Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
ARG 1 value
METHOD method_39673 getCodec ()Lcom/mojang/serialization/Codec;
@@ -352,10 +356,12 @@ CLASS net/minecraft/class_2378 net/minecraft/util/registry/Registry
METHOD method_40269 createEntry (Ljava/lang/Object;)Lnet/minecraft/class_6880$class_6883;
ARG 1 value
METHOD method_40270 streamEntries ()Ljava/util/stream/Stream;
- METHOD method_40272 streamEntryLists ()Ljava/util/stream/Stream;
+ METHOD method_40272 streamTagsAndEntries ()Ljava/util/stream/Stream;
METHOD method_40273 streamTags ()Ljava/util/stream/Stream;
METHOD method_40276 freeze ()Lnet/minecraft/class_2378;
METHOD method_40278 clearTags ()V
+ METHOD method_40279 (Lnet/minecraft/class_6880;)Lcom/mojang/serialization/Lifecycle;
+ ARG 1 entry
METHOD method_40281 create (Lnet/minecraft/class_5321;Lcom/mojang/serialization/Lifecycle;Ljava/util/function/Function;Lnet/minecraft/class_2378$class_6889;)Lnet/minecraft/class_2378;
ARG 0 key
ARG 1 lifecycle
@@ -382,7 +388,7 @@ CLASS net/minecraft/class_2378 net/minecraft/util/registry/Registry
METHOD method_40292 freezeRegistries ()V
METHOD method_40293 (Lnet/minecraft/class_2378;)Lnet/minecraft/class_6875;
ARG 0 registry
- METHOD method_40294 getEntryCodec ()Lcom/mojang/serialization/Codec;
+ METHOD method_40294 createEntryCodec ()Lcom/mojang/serialization/Codec;
METHOD method_40295 getIndexedEntries ()Lnet/minecraft/class_2359;
CLASS 1
METHOD method_40296 (Lnet/minecraft/class_6880$class_6883;)Lnet/minecraft/class_6880;
diff --git a/mappings/net/minecraft/util/registry/RegistryCodecs.mapping b/mappings/net/minecraft/util/registry/RegistryCodecs.mapping
new file mode 100644
index 0000000000..035e570cf8
--- /dev/null
+++ b/mappings/net/minecraft/util/registry/RegistryCodecs.mapping
@@ -0,0 +1,78 @@
+CLASS net/minecraft/class_6895 net/minecraft/util/registry/RegistryCodecs
+ METHOD method_40338 (Lnet/minecraft/class_2378;)Ljava/util/Map;
+ ARG 0 registry
+ METHOD method_40339 (Lnet/minecraft/class_2385;Lcom/mojang/serialization/Lifecycle;Lnet/minecraft/class_5321;Ljava/lang/Object;)V
+ ARG 2 key
+ ARG 3 value
+ METHOD method_40340 entryList (Lnet/minecraft/class_5321;)Lcom/mojang/serialization/Codec;
+ ARG 0 registryRef
+ METHOD method_40341 entryList (Lnet/minecraft/class_5321;Lcom/mojang/serialization/Codec;)Lcom/mojang/serialization/Codec;
+ ARG 0 registryRef
+ ARG 1 elementCodec
+ METHOD method_40342 createRegistryDecoder (Lnet/minecraft/class_5321;Lcom/mojang/serialization/Codec;Lcom/mojang/serialization/Decoder;Lcom/mojang/serialization/Lifecycle;)Lcom/mojang/serialization/Decoder;
+ ARG 0 registryRef
+ ARG 1 codec
+ ARG 2 entryMapDecoder
+ ARG 3 lifecycle
+ METHOD method_40343 entryList (Lnet/minecraft/class_5321;Lcom/mojang/serialization/Codec;Z)Lcom/mojang/serialization/Codec;
+ ARG 0 registryRef
+ ARG 1 elementCodec
+ ARG 2 alwaysSerializeAsList
+ COMMENT whether to always serialize the list as a list
+ COMMENT instead of serializing as one entry if the length is {@code 0}
+ METHOD method_40344 createRegistryCodec (Lnet/minecraft/class_5321;Lcom/mojang/serialization/Lifecycle;Lcom/mojang/serialization/Codec;)Lcom/mojang/serialization/Codec;
+ ARG 0 registryRef
+ ARG 1 lifecycle
+ ARG 2 elementCodec
+ METHOD method_40345 (Lnet/minecraft/class_5321;Lcom/mojang/serialization/Lifecycle;Ljava/util/List;)Lnet/minecraft/class_2378;
+ ARG 2 entries
+ METHOD method_40346 (Lnet/minecraft/class_5321;Lcom/mojang/serialization/Lifecycle;Ljava/util/Map;)Lnet/minecraft/class_2385;
+ ARG 2 map
+ METHOD method_40347 managerEntry (Lnet/minecraft/class_5321;Lcom/mojang/serialization/MapCodec;)Lcom/mojang/serialization/MapCodec;
+ ARG 0 registryRef
+ ARG 1 elementCodec
+ METHOD method_40348 (Lnet/minecraft/class_5321;Lcom/mojang/serialization/MapCodec;Lcom/mojang/serialization/codecs/RecordCodecBuilder$Instance;)Lcom/mojang/datafixers/kinds/App;
+ ARG 2 instance
+ METHOD method_40349 entryList (Lnet/minecraft/class_5321;Z)Lcom/mojang/serialization/Codec;
+ ARG 0 registryRef
+ ARG 1 alwaysSerializeAsList
+ COMMENT whether to always serialize the list as a list
+ COMMENT instead of serializing as one entry if the length is {@code 0}
+ METHOD method_40350 (Lnet/minecraft/class_2378;)Ljava/util/List;
+ ARG 0 registry
+ METHOD method_40351 registryMap (Lnet/minecraft/class_5321;Lcom/mojang/serialization/Codec;)Lcom/mojang/serialization/Codec;
+ ARG 0 registryRef
+ ARG 1 elementCodec
+ METHOD method_40352 dynamicRegistry (Lnet/minecraft/class_5321;Lcom/mojang/serialization/Lifecycle;Lcom/mojang/serialization/Codec;)Lcom/mojang/serialization/Codec;
+ ARG 0 registryRef
+ ARG 1 lifecycle
+ ARG 2 elementCodec
+ CLASS 1
+ METHOD decode (Lcom/mojang/serialization/DynamicOps;Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
+ ARG 1 ops
+ ARG 2 input
+ METHOD method_40354 (Lcom/mojang/datafixers/util/Pair;)Lcom/mojang/datafixers/util/Pair;
+ ARG 0 pair
+ METHOD method_40355 (Lcom/mojang/datafixers/util/Pair;Lnet/minecraft/class_2378;)Lcom/mojang/datafixers/util/Pair;
+ ARG 1 registry
+ METHOD method_40356 (Lcom/mojang/serialization/DataResult;Lnet/minecraft/class_6903;Lnet/minecraft/class_6900$class_6901;)Lcom/mojang/serialization/DataResult;
+ ARG 3 loaderAccess
+ METHOD method_40357 load (Lcom/mojang/serialization/DataResult;Lnet/minecraft/class_6903;Lnet/minecraft/class_6900;)Lcom/mojang/serialization/DataResult;
+ ARG 1 result
+ ARG 2 ops
+ ARG 3 loader
+ METHOD method_40358 (Lnet/minecraft/class_2385;)Lnet/minecraft/class_2378;
+ ARG 0 registry
+ METHOD method_40359 (Lnet/minecraft/class_6900;Lnet/minecraft/class_5321;Lcom/mojang/serialization/Codec;Lnet/minecraft/class_6903;Lcom/mojang/datafixers/util/Pair;)Lcom/mojang/serialization/DataResult;
+ ARG 4 pair
+ CLASS class_5501 RegistryManagerEntry
+ FIELD comp_290 key Lnet/minecraft/class_5321;
+ FIELD comp_291 rawId I
+ FIELD comp_292 value Ljava/lang/Object;
+ METHOD (Lnet/minecraft/class_5321;ILjava/lang/Object;)V
+ ARG 1 key
+ ARG 2 rawId
+ ARG 3 value
+ METHOD comp_290 key ()Lnet/minecraft/class_5321;
+ METHOD comp_291 rawId ()I
+ METHOD comp_292 value ()Ljava/lang/Object;
diff --git a/mappings/net/minecraft/util/registry/RegistryEntryListCodec.mapping b/mappings/net/minecraft/util/registry/RegistryEntryListCodec.mapping
index b017e0d00d..84a441d1e7 100644
--- a/mappings/net/minecraft/util/registry/RegistryEntryListCodec.mapping
+++ b/mappings/net/minecraft/util/registry/RegistryEntryListCodec.mapping
@@ -1,9 +1,48 @@
CLASS net/minecraft/class_6898 net/minecraft/util/registry/RegistryEntryListCodec
FIELD field_36480 registry Lnet/minecraft/class_5321;
FIELD field_36481 entryCodec Lcom/mojang/serialization/Codec;
- FIELD field_36482 entryListCodec Lcom/mojang/serialization/Codec;
+ FIELD field_36482 directEntryListCodec Lcom/mojang/serialization/Codec;
+ FIELD field_36483 entryListStorageCodec Lcom/mojang/serialization/Codec;
METHOD (Lnet/minecraft/class_5321;Lcom/mojang/serialization/Codec;Z)V
ARG 1 registry
ARG 2 entryCodec
- METHOD method_40382 (Lcom/mojang/serialization/Codec;Z)Lcom/mojang/serialization/Codec;
+ ARG 3 alwaysSerializeAsList
+ COMMENT whether to always serialize the list as a list
+ COMMENT instead of serializing as one entry if the length is {@code 0}
+ METHOD decode (Lcom/mojang/serialization/DynamicOps;Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
+ ARG 1 ops
+ ARG 2 input
+ METHOD encode (Ljava/lang/Object;Lcom/mojang/serialization/DynamicOps;Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
+ ARG 1 entryList
+ ARG 2 ops
+ ARG 3 prefix
+ METHOD method_40380 (Lcom/mojang/datafixers/util/Either;)Ljava/util/List;
+ ARG 0 either
+ METHOD method_40381 (Lcom/mojang/datafixers/util/Pair;)Lcom/mojang/serialization/DataResult;
+ ARG 0 pair
+ METHOD method_40382 createDirectEntryListCodec (Lcom/mojang/serialization/Codec;Z)Lcom/mojang/serialization/Codec;
ARG 0 entryCodec
+ ARG 1 alwaysSerializeAsList
+ COMMENT whether to always serialize the list as a list
+ COMMENT instead of serializing as one entry if the length is {@code 0}
+ METHOD method_40383 decodeDirect (Lcom/mojang/serialization/DynamicOps;Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
+ ARG 1 ops
+ ARG 2 input
+ METHOD method_40385 (Lnet/minecraft/class_2378;Lcom/mojang/datafixers/util/Either;)Lnet/minecraft/class_6885;
+ ARG 1 either
+ METHOD method_40386 (Lnet/minecraft/class_2378;Lcom/mojang/datafixers/util/Pair;)Lcom/mojang/datafixers/util/Pair;
+ ARG 1 pair
+ METHOD method_40387 (Ljava/util/List;)Lcom/mojang/datafixers/util/Either;
+ ARG 0 entries
+ METHOD method_40388 create (Lnet/minecraft/class_5321;Lcom/mojang/serialization/Codec;Z)Lcom/mojang/serialization/Codec;
+ ARG 0 registryRef
+ ARG 1 entryCodec
+ ARG 2 alwaysSerializeAsList
+ COMMENT whether to always serialize the list as a list
+ COMMENT instead of serializing as one entry if the length is {@code 0}
+ METHOD method_40389 encodeDirect (Lnet/minecraft/class_6885;Lcom/mojang/serialization/DynamicOps;Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
+ ARG 1 entryList
+ ARG 2 ops
+ ARG 3 prefix
+ METHOD method_40390 (Ljava/util/List;)Ljava/util/List;
+ ARG 0 entries
diff --git a/mappings/net/minecraft/util/registry/RegistryFixedCodec.mapping b/mappings/net/minecraft/util/registry/RegistryFixedCodec.mapping
index 9f6bf80a87..e42d309f67 100644
--- a/mappings/net/minecraft/util/registry/RegistryFixedCodec.mapping
+++ b/mappings/net/minecraft/util/registry/RegistryFixedCodec.mapping
@@ -2,5 +2,20 @@ CLASS net/minecraft/class_6899 net/minecraft/util/registry/RegistryFixedCodec
FIELD field_36484 registry Lnet/minecraft/class_5321;
METHOD (Lnet/minecraft/class_5321;)V
ARG 1 registry
+ METHOD decode (Lcom/mojang/serialization/DynamicOps;Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
+ ARG 1 ops
+ ARG 2 input
+ METHOD encode (Ljava/lang/Object;Lcom/mojang/serialization/DynamicOps;Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
+ ARG 1 entry
+ ARG 2 ops
+ ARG 3 prefix
+ METHOD method_40395 (Lcom/mojang/serialization/DynamicOps;Ljava/lang/Object;Lnet/minecraft/class_5321;)Lcom/mojang/serialization/DataResult;
+ ARG 2 registryKey
+ METHOD method_40397 (Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
+ ARG 1 value
+ METHOD method_40398 (Ljava/util/Optional;Lcom/mojang/datafixers/util/Pair;)Lcom/mojang/datafixers/util/Pair;
+ ARG 2 pair
+ METHOD method_40399 (Ljava/util/Optional;Lnet/minecraft/class_2960;)Lnet/minecraft/class_6880;
+ ARG 2 value
METHOD method_40400 of (Lnet/minecraft/class_5321;)Lnet/minecraft/class_6899;
ARG 0 registry
diff --git a/mappings/net/minecraft/util/registry/RegistryKey.mapping b/mappings/net/minecraft/util/registry/RegistryKey.mapping
index e22f11a3fc..554bd205e7 100644
--- a/mappings/net/minecraft/util/registry/RegistryKey.mapping
+++ b/mappings/net/minecraft/util/registry/RegistryKey.mapping
@@ -45,6 +45,8 @@ CLASS net/minecraft/class_5321 net/minecraft/util/registry/RegistryKey
METHOD method_29181 of (Lnet/minecraft/class_2960;Lnet/minecraft/class_2960;)Lnet/minecraft/class_5321;
ARG 0 registry
ARG 1 value
+ METHOD method_29182 (Lnet/minecraft/class_2960;Lnet/minecraft/class_2960;Ljava/lang/String;)Lnet/minecraft/class_5321;
+ ARG 2 id
METHOD method_29183 (Lnet/minecraft/class_5321;Lnet/minecraft/class_2960;)Lnet/minecraft/class_5321;
ARG 1 id
METHOD method_31163 isOf (Lnet/minecraft/class_5321;)Z
@@ -55,3 +57,10 @@ CLASS net/minecraft/class_5321 net/minecraft/util/registry/RegistryKey
ARG 0 registry
METHOD method_39155 (Lnet/minecraft/class_5321;Lnet/minecraft/class_2960;)Lnet/minecraft/class_5321;
ARG 1 id
+ METHOD method_39752 tryCast (Lnet/minecraft/class_5321;)Ljava/util/Optional;
+ COMMENT {@return {@code Optional.of(this)} if the key is of {@code registryRef},
+ COMMENT otherwise {@link Optional#empty}}
+ COMMENT
+ COMMENT @apiNote This can be used to safely cast an unknown key to {@code RegistryKey}
+ COMMENT by passing the registry {@code E}.
+ ARG 1 registryRef
diff --git a/mappings/net/minecraft/util/registry/SimpleRegistry.mapping b/mappings/net/minecraft/util/registry/SimpleRegistry.mapping
index 9ee11044c7..06ff656636 100644
--- a/mappings/net/minecraft/util/registry/SimpleRegistry.mapping
+++ b/mappings/net/minecraft/util/registry/SimpleRegistry.mapping
@@ -26,6 +26,7 @@ CLASS net/minecraft/class_2370 net/minecraft/util/registry/SimpleRegistry
ARG 0 entry
METHOD method_40254 (Lnet/minecraft/class_6880$class_6883;Ljava/util/function/Consumer;)V
ARG 0 entry
+ ARG 1 valueConsumer
METHOD method_40255 (Lnet/minecraft/class_6885$class_6888;)V
ARG 0 entryList
METHOD method_40256 (Ljava/util/Map$Entry;)Z