Merge remote-tracking branch 'origin/main' into 1.18

This commit is contained in:
embeddedt 2023-04-10 08:02:04 -04:00
commit e38babe3c2
No known key found for this signature in database
GPG Key ID: A69433EC199B5613

View File

@ -42,19 +42,23 @@ public class EntityDataIDSyncHandler {
List<Field> fieldsToSync = new ArrayList<>(); List<Field> fieldsToSync = new ArrayList<>();
for(Class<? extends Entity> eClass : entityPoolMap.keySet()) { for(Class<? extends Entity> eClass : entityPoolMap.keySet()) {
fieldsToSync.clear(); fieldsToSync.clear();
Field[] classFields = eClass.getDeclaredFields(); try {
for(Field field : classFields) { Field[] classFields = eClass.getDeclaredFields();
if(!Modifier.isStatic(field.getModifiers())) for(Field field : classFields) {
continue; if(!Modifier.isStatic(field.getModifiers()))
field.setAccessible(true); continue;
Object o = field.get(null); field.setAccessible(true);
if(o != null && EntityDataAccessor.class.isAssignableFrom(o.getClass())) { Object o = field.get(null);
fieldsToSync.add(field); if(o != null && EntityDataAccessor.class.isAssignableFrom(o.getClass())) {
fieldsToSync.add(field);
}
} }
} for(Field field : fieldsToSync) {
for(Field field : fieldsToSync) { int id = ((EntityDataAccessor<?>)field.get(null)).id;
int id = ((EntityDataAccessor<?>)field.get(null)).id; fieldsToSyncMap.computeIfAbsent(eClass, k -> new ArrayList<>()).add(Pair.of(field.getName(), id));
fieldsToSyncMap.computeIfAbsent(eClass, k -> new ArrayList<>()).add(Pair.of(field.getName(), id)); }
} catch(Throwable e) {
ModernFix.LOGGER.error("Skipping entity ID sync for {}: {}", eClass.getName(), e);
} }
} }
} }