From c7453a2e0ea7dd664b0b4e55c512490903cef25b Mon Sep 17 00:00:00 2001 From: Goldenfield192 <1437356849@qq.com> Date: Sun, 23 Nov 2025 22:35:54 +0800 Subject: [PATCH 1/2] remove support for final fields in TagSerializer --- .../java/cam72cam/mod/serialization/TagSerializer.java | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/main/java/cam72cam/mod/serialization/TagSerializer.java b/src/main/java/cam72cam/mod/serialization/TagSerializer.java index 3f5649fe1..65ab89f21 100644 --- a/src/main/java/cam72cam/mod/serialization/TagSerializer.java +++ b/src/main/java/cam72cam/mod/serialization/TagSerializer.java @@ -61,14 +61,7 @@ private static void init(Class cls) throws SerializationException { String fieldName = tag.value().isEmpty() ? field.getName() : tag.value(); if (Modifier.isFinal(field.getModifiers())) { - ModCore.warn("A mod is trying to deserialize a tag into a final field %s. This should never have been implemented and will be removed in future versions. You have been warned.", fieldName); - try { - Field modifiersField = Field.class.getDeclaredField("modifiers"); - modifiersField.setAccessible(true); - modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL); - } catch (NoSuchFieldException | IllegalAccessException e) { - throw new SerializationException(String.format("Unable to access field %s in class %s", fieldName, cls), e); - } + throw new SerializationException(String.format("A mod is trying to deserialize a tag into a final field %s. This should never have been implemented and will be removed in future versions. You have been warned.", fieldName)); } TagMapped mapped = field.getType().getAnnotation(TagMapped.class); From dcb8bb28fa701123069951ba285a89bdc378e9af Mon Sep 17 00:00:00 2001 From: Goldenfield192 <1437356849@qq.com> Date: Mon, 24 Nov 2025 17:49:39 +0800 Subject: [PATCH 2/2] ref: fix exception message --- src/main/java/cam72cam/mod/serialization/TagSerializer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/cam72cam/mod/serialization/TagSerializer.java b/src/main/java/cam72cam/mod/serialization/TagSerializer.java index 65ab89f21..1706407b0 100644 --- a/src/main/java/cam72cam/mod/serialization/TagSerializer.java +++ b/src/main/java/cam72cam/mod/serialization/TagSerializer.java @@ -61,7 +61,7 @@ private static void init(Class cls) throws SerializationException { String fieldName = tag.value().isEmpty() ? field.getName() : tag.value(); if (Modifier.isFinal(field.getModifiers())) { - throw new SerializationException(String.format("A mod is trying to deserialize a tag into a final field %s. This should never have been implemented and will be removed in future versions. You have been warned.", fieldName)); + throw new SerializationException(String.format("A mod is trying to deserialize a tag into a final field %s. This should never have been implemented.", fieldName)); } TagMapped mapped = field.getType().getAnnotation(TagMapped.class);