[] New auto-compressor logic for Item Compressors with three interval tasks: • baseIntervalTask (respects per-user toggle; mode-aware) • itemHeldIntervalTask (ignores toggle; runs when holding a compressor item; uses that item’s recipes) • itemAnywhereIntervalTask (ignores toggle when user auto is OFF; compresses using recipes from compressor items found anywhere in inventory) [] Event-based auto-compress triggers (independent of toggle): item pickup, inventory open/close, left/right click, and shift-click—each gated by base permission. [] Configurable target mode for interval compression via compression-trigger.auto.target-mode with support for INVENTORY, HOLDING, HOLD_IN_MAIN_HAND, and HOLD_IN_OFF_HAND. [] World whitelist support for auto-compression (world-restrictions.whitelist-worlds and allowed-worlds).
Changed
[] Compression routines now perform inventory rollbacks on overflow to prevent item loss when outputs don’t fit. [] Hand-only compression uses a temporary 9-slot view to precisely match and consume only the held stack while placing outputs in the player inventory.
Recipe resolution tightened: respects per-recipe permissions (PermissionModels.USER_AUTO + hasRecipe) and recipe enabled state before processing.
Fixed
Avoids unnecessary processing in disallowed worlds and when no applicable compressor item/recipes are present.