소스 검색

Fix field access of entry created from outside listener

Lortseam 4 년 전
부모
커밋
aa0e66fb87
2개의 변경된 파일3개의 추가작업 그리고 3개의 파일을 삭제
  1. 3 0
      src/main/java/me/lortseam/completeconfig/data/Entry.java
  2. 0 3
      src/main/java/me/lortseam/completeconfig/data/EntryMap.java

+ 3 - 0
src/main/java/me/lortseam/completeconfig/data/Entry.java

@@ -86,6 +86,9 @@ public class Entry<T> extends EntryBase<T> implements DataPart {
 
     protected Entry(EntryOrigin origin, UnaryOperator<T> modifier) {
         super(origin.getField());
+        if (!field.isAccessible()) {
+            field.setAccessible(true);
+        }
         parentObject = origin.getParentObject();
         parentTranslation = origin.getParentTranslation();
         this.modifier = modifier;

+ 0 - 3
src/main/java/me/lortseam/completeconfig/data/EntryMap.java

@@ -38,9 +38,6 @@ public class EntryMap extends ConfigMap<Entry> {
                 if (Modifier.isFinal(field.getModifiers())) {
                     throw new IllegalModifierException("Entry field " + field + " must not be final");
                 }
-                if (!field.isAccessible()) {
-                    field.setAccessible(true);
-                }
                 Entry<?> entry = Entry.Draft.of(field, container.getClass()).build(Modifier.isStatic(field.getModifiers()) ? null : container, translation);
                 entry.resolve(field);
                 clazzEntries.add(entry);