diff --git a/sakura-server/src/main/java/me/samsuik/sakura/entity/merge/MergeStrategy.java b/sakura-server/src/main/java/me/samsuik/sakura/entity/merge/MergeStrategy.java index 2e813d3..72fb188 100644 --- a/sakura-server/src/main/java/me/samsuik/sakura/entity/merge/MergeStrategy.java +++ b/sakura-server/src/main/java/me/samsuik/sakura/entity/merge/MergeStrategy.java @@ -86,12 +86,16 @@ public interface MergeStrategy { return previous; } + if (!mergeHistory.hasPreviousMerged(entity, previous)) { + this.entityTable.clear(); + } + Entity nextEntity = this.entityTable.getAndWrite(entity); if (nextEntity == null || entity == nextEntity || !nextEntity.level().equals(entity.level())) { return null; } - return mergeHistory.hasPreviousMerged(entity, nextEntity) && entity.compareState(nextEntity) ? nextEntity : null; + return entity.compareState(nextEntity) ? nextEntity : null; } }