diff --git a/patches/minecraft/net/minecraft/server/packs/metadata/pack/PackMetadataSectionSerializer.java.patch b/patches/minecraft/net/minecraft/server/packs/metadata/pack/PackMetadataSectionSerializer.java.patch index c7c1e72dc1..3276770081 100644 --- a/patches/minecraft/net/minecraft/server/packs/metadata/pack/PackMetadataSectionSerializer.java.patch +++ b/patches/minecraft/net/minecraft/server/packs/metadata/pack/PackMetadataSectionSerializer.java.patch @@ -9,3 +9,11 @@ } } +@@ -21,6 +_,7 @@ + JsonObject jsonobject = new JsonObject(); + jsonobject.add("description", Component.Serializer.m_130716_(p_250206_.m_10373_())); + jsonobject.addProperty("pack_format", p_250206_.m_10374_()); ++ net.minecraftforge.common.ForgeHooks.writeTypedPackFormats(jsonobject, p_250206_); + return jsonobject; + } + diff --git a/src/main/java/net/minecraftforge/common/ForgeHooks.java b/src/main/java/net/minecraftforge/common/ForgeHooks.java index 18d7e084e1..37982544c1 100644 --- a/src/main/java/net/minecraftforge/common/ForgeHooks.java +++ b/src/main/java/net/minecraftforge/common/ForgeHooks.java @@ -55,6 +55,7 @@ import net.minecraft.network.chat.TextColor; import net.minecraft.network.chat.contents.LiteralContents; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.packs.PackType; +import net.minecraft.server.packs.metadata.pack.PackMetadataSection; import net.minecraft.tags.BlockTags; import net.minecraft.tags.TagEntry; import net.minecraft.tags.TagKey; @@ -1520,7 +1521,7 @@ public class ForgeHooks for (PackType packType : PackType.values()) { - String key = "forge:" + packType.bridgeType.name().toLowerCase(Locale.ROOT) + "_pack_format"; + String key = makePackFormatKey(packType); if (json.has(key)) { map.put(packType, GsonHelper.getAsInt(json, key)); @@ -1530,6 +1531,24 @@ public class ForgeHooks return map.buildOrThrow(); } + public static void writeTypedPackFormats(JsonObject json, PackMetadataSection section) + { + int packFormat = section.getPackFormat(); + for (PackType packType : PackType.values()) + { + int format = section.getPackFormat(packType); + if (format != packFormat) + { + json.addProperty(makePackFormatKey(packType), format); + } + } + } + + private static String makePackFormatKey(PackType packType) + { + return "forge:" + packType.bridgeType.name().toLowerCase(Locale.ROOT) + "_pack_format"; + } + /** *

* This method is used to prefix the path, where elements of the associated registry are stored, with their namespace, if it is not minecraft