Class ChestTransferService

java.lang.Object
com.enhancedechest.service.ChestTransferService

public final class ChestTransferService extends Object
Moves a player's ender chests onto another account (/ee transfer) for the "I switched account" case. Only NORMAL chests are transferred (TEMP overflow is transient; PERM chests are re-granted by the destination's own permissions), and the transfer is a move: the destination ends up with exactly the source's chests and the source's copies are removed, so no items are ever duplicated.

The actual row swap is a single transaction in EnderChestStorage.transferChests(java.util.UUID, java.util.UUID, java.lang.Integer, java.util.Set<java.lang.Integer>, long); this class is the orchestration on top of it: it resolves the target, decides whether a conflict flag is required, force-closes every open chest of both players (flushing live edits), and serialises the transaction through ChestSessionManager.runExclusiveAcross(java.util.List<com.enhancedechest.service.ChestSessionManager.ChestRef>, java.util.function.Supplier<T>) so it is dupe-safe even if a chest was open.