diff --git a/src/main/java/com/fastsync/sync/SyncManager.java b/src/main/java/com/fastsync/sync/SyncManager.java index 5e7add6..dd70a1c 100644 --- a/src/main/java/com/fastsync/sync/SyncManager.java +++ b/src/main/java/com/fastsync/sync/SyncManager.java @@ -1914,7 +1914,7 @@ private static org.bukkit.inventory.ItemStack[] snapshotItemContents( private boolean canCollectComponentsOnly(UUID uuid, SaveKind kind, com.fastsync.sync.dirty.ComponentDirtyMask.DirtySnapshot snapshot) { if (!config.isComponentStorageEnabled() || dirtyMask == null || kind.releaseLock - || (snapshotManager != null && shouldCreateSnapshot(kind.causeName)) + || (snapshotManager != null && shouldTriggerSnapshot(kind.causeName)) || snapshot == null || snapshot.isEmpty() || !playersWithBaseline.contains(uuid) || !componentCursors.containsKey(uuid)) { return false; @@ -3829,7 +3829,7 @@ private SaveResult persistCollectedData(UUID uuid, PlayerData data, SaveKind kin if (config.isComponentStorageEnabled() && dirtyMask != null && !kind.releaseLock - && (snapshotManager == null || !shouldCreateSnapshot(data.getSaveCause())) + && (snapshotManager == null || !shouldTriggerSnapshot(data.getSaveCause())) && dirtyMask.isAnyDirty(uuid)) { // Pass the caller-provided snapshot (taken before collectPlayerData) // so persistComponentsOnly's clearDirty after the DB write protects