Make entity ID syncer not crash if a class can't be loaded

Related: #55
This commit is contained in:
embeddedt 2023-04-10 08:00:50 -04:00
parent 882f4832df
commit c010d700a8
No known key found for this signature in database
GPG Key ID: A69433EC199B5613

View File

@ -43,6 +43,7 @@ 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();
try {
Field[] classFields = eClass.getDeclaredFields(); Field[] classFields = eClass.getDeclaredFields();
for(Field field : classFields) { for(Field field : classFields) {
if(!Modifier.isStatic(field.getModifiers())) if(!Modifier.isStatic(field.getModifiers()))
@ -57,6 +58,9 @@ public class EntityDataIDSyncHandler {
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);
}
} }
} }
EntityIDSyncPacket packet = new EntityIDSyncPacket(fieldsToSyncMap); EntityIDSyncPacket packet = new EntityIDSyncPacket(fieldsToSyncMap);