diff --git a/src/main/java/net/citizensnpcs/api/persistence/PersistenceLoader.java b/src/main/java/net/citizensnpcs/api/persistence/PersistenceLoader.java index 7e5323f0..114d3fa5 100644 --- a/src/main/java/net/citizensnpcs/api/persistence/PersistenceLoader.java +++ b/src/main/java/net/citizensnpcs/api/persistence/PersistenceLoader.java @@ -388,7 +388,11 @@ private static Persister getDelegate(Class fieldType) { private static Persister getDelegate(Field field, Class fieldType) { DelegatePersistence delegate = field.getAnnotation(DelegatePersistence.class); - return delegate == null ? getDelegate(fieldType) : getDelegate(delegate.value()); + if (delegate == null) + return getDelegate(fieldType); + + Persister persister = loadedDelegates.get(delegate.value()); + return persister == null ? loadedDelegates.get(persistRedirects.get(fieldType)) : persister; } private static PersistField[] getFields(Class clazz) {