diff --git a/src/main/java/cam72cam/mod/ModCore.java b/src/main/java/cam72cam/mod/ModCore.java index 580c254b..e24b4984 100644 --- a/src/main/java/cam72cam/mod/ModCore.java +++ b/src/main/java/cam72cam/mod/ModCore.java @@ -531,7 +531,7 @@ public static void catching(Throwable ex) { return; } - instance.logger.catching(ex); + instance.logger.error("Exception", ex); } private static final List usedCacheFiles = new ArrayList<>(); diff --git a/src/main/java/cam72cam/mod/config/ConfigFile.java b/src/main/java/cam72cam/mod/config/ConfigFile.java index 48910e53..0f2e8f76 100644 --- a/src/main/java/cam72cam/mod/config/ConfigFile.java +++ b/src/main/java/cam72cam/mod/config/ConfigFile.java @@ -329,6 +329,12 @@ public PropertyClass(Class cls) { for (Class scls : cls.getDeclaredClasses()) { if (Modifier.isPublic(cls.getModifiers())) { + try { + cls.getConstructor().setAccessible(true); + cls.getConstructor().newInstance(); + } catch (Exception e) { + // Ignore. This is how we try to force static initializers + } properties.add(new PropertyClass(scls)); } } diff --git a/src/main/java/cam72cam/mod/entity/ModdedEntity.java b/src/main/java/cam72cam/mod/entity/ModdedEntity.java index a86fdb4f..060e3fc3 100644 --- a/src/main/java/cam72cam/mod/entity/ModdedEntity.java +++ b/src/main/java/cam72cam/mod/entity/ModdedEntity.java @@ -4,6 +4,7 @@ import cam72cam.mod.entity.boundingbox.BoundingBox; import cam72cam.mod.entity.boundingbox.IBoundingBox; import cam72cam.mod.entity.custom.*; +import cam72cam.mod.entity.sync.TagSync; import cam72cam.mod.item.ClickResult; import cam72cam.mod.math.Vec3d; import cam72cam.mod.math.Vec3i; @@ -200,7 +201,13 @@ public final void readSpawnData(PacketBuffer additionalData) { @Override public final void writeSpawnData(PacketBuffer buffer) { TagCompound data = new TagCompound(); - data.set("sync", self.sync); + TagCompound sync = new TagCompound(); + try { + TagSerializer.serialize(sync, getSelf(), TagSync.class); + } catch (Exception e) { + ModCore.catching(e); + } + data.set("sync", sync); save(data); buffer.writeCompoundTag(data.internal); }