Package com.enhancedechest.service
package com.enhancedechest.service
-
ClassDescriptionA bounded, batched audit pipeline designed for busy servers.Decides what to open for
/ec,/eclist, right-click and the admin/ee view, and orchestrates the management dialogs.Owns the shared-live-inventory registry and the dupe-safety contract for every open chest: this is the single closed class that mutates theChestSessionManager.sessionsmap, and it does so only on theChestSessionManager.onGlobal(java.lang.Runnable)bookkeeping thread.A public (owner, index) reference for multi-chest exclusive operations (seeChestSessionManager.runExclusiveAcross(java.util.List<com.enhancedechest.service.ChestSessionManager.ChestRef>, java.util.function.Supplier<T>)).Item-moving chest operations: shrink-spill, delete (spill or force), bulk delete, and the reverse move that pulls a temp chest back into a newly granted chest (ChestSpillService.reclaimTempInto(java.util.UUID, int)).Moves a player's ender chests onto another account (/ee transfer) for the "I switched account" case.What to do when the destination already holds items in chests this transfer would replace.Shared daemon thread-pool for all asynchronous storage work (EnhancedEchest-db).Grants and revokes ender chests based on a player's permissions.Both permission-derived targets, resolved together: the PERM-chest target assize → countand the base-chest size override (the largest validdefault_sizepermission held, or0for none).In-memory index of every player name the plugin has ever recorded (theplayers.usernamecolumn — seePlayerSettingsCache#markSeenAsync), used to answer offline-player tab-completion and name resolution from memory instead of hitting the DB on every keystroke.One recorded player: their current known name, UUID, and the epoch-ms they were last seen (0when never recorded — a row that predates last-online tracking).Write-through read cache of per-player settings, keyed by UUID.Thin async wrapper overEnderChestStorage: every method dispatches a single synchronous storage call onto the sharedDbExecutor.Tells a player where their temporary-chest items went whenChestSpillService.reclaimTempInto(java.util.UUID, int)moved them into a newly granted chest (temp-enderchest.reclaim-notify, default on).