diff --git a/src/main/java/kamkeel/npcs/controllers/SyncController.java b/src/main/java/kamkeel/npcs/controllers/SyncController.java index eed423ea1..f38625d15 100644 --- a/src/main/java/kamkeel/npcs/controllers/SyncController.java +++ b/src/main/java/kamkeel/npcs/controllers/SyncController.java @@ -272,6 +272,7 @@ public class SyncController { SyncHandler handler = SyncRegistry.getHandler(syncType); if (handler == null) return; try { + handler.clientHandleUpdate(compound); handler.clientHandleUpdate(compound, id); handler.clientHandleUpdate(compound, key); } catch (Exception e) { diff --git a/src/main/java/kamkeel/npcs/controllers/sync/SyncHandler.java b/src/main/java/kamkeel/npcs/controllers/sync/SyncHandler.java index ef0ce0bda..35f863c35 100644 --- a/src/main/java/kamkeel/npcs/controllers/sync/SyncHandler.java +++ b/src/main/java/kamkeel/npcs/controllers/sync/SyncHandler.java @@ -56,6 +56,20 @@ public interface SyncHandler { // No-op: type does not support individual updates } + /** + * Handle an UPDATE action on the client. + * Deserialize a single object and insert/replace it in the client-side data. + * + *
Default: no-op. Types that don't support individual updates + * use {@code syncAll()} for full reload instead.
+ * + * @param compound the serialized single object + */ + @SideOnly(Side.CLIENT) + default void clientHandleUpdate(NBTTagCompound compound) { + // No-op: type does not support individual updates + } + /** * Handle an UPDATE action on the client. * Deserialize a single object and insert/replace it in the client-side data.