Description
CoreProtect queues records before WorldEdit applies a bulk set or replace operation. If the operation fails, CoreProtect can retain records for block changes that did not occur.
The bulk methods in CoreProtectLogger also evaluate the pattern once for logging and again for the edit. A stateful or random pattern can therefore produce a log that differs from the applied change.
Expected behavior
CoreProtect should evaluate each pattern once and queue a record only when the extent accepts the block change.
Scope
The problem affects WorldEdit and FastAsyncWorldEdit logging with every database backend.
Description
CoreProtect queues records before WorldEdit applies a bulk set or replace operation. If the operation fails, CoreProtect can retain records for block changes that did not occur.
The bulk methods in
CoreProtectLoggeralso evaluate the pattern once for logging and again for the edit. A stateful or random pattern can therefore produce a log that differs from the applied change.Expected behavior
CoreProtect should evaluate each pattern once and queue a record only when the extent accepts the block change.
Scope
The problem affects WorldEdit and FastAsyncWorldEdit logging with every database backend.