Skip to content

ClickSorted 1.1.0

Choose a tag to compare

@kccricket kccricket released this 13 Jun 04:54
Immutable release. Only release title and notes can be modified.
fba3b6c

ClickSorted 1.1.0 adds slot locking and bundle packing, restructures all player preferences under a single set command, and introduces a settings-migration framework so stored values survive future renames.

Highlights

  • Slot locking — mark individual inventory slots to keep them untouched by sorting, managed through a visual /clicksorted set lock GUI.
  • Bundle packing — sorting can now fold each item type's leftover remainder into the bundles you keep in an inventory, reclaiming slots in the same click. Opt in per region for your own inventory and for containers.
  • Commands restructured under set — per-player preferences now live under /clicksorted set … (sort-method, click-method, hover, lock, bundle), with a new /clicksorted status to print your current settings.
  • Settings migration framework — a single catalog migrates renamed values and drops removed settings across both config and per-player data, so legacy values (e.g. DOUBLEDOUBLE_CLICK) convert automatically on load/join.
  • Per-player action throttle — caps how fast a scripted client can drive plugin work, with a /clicksorted benchmark diagnostic for measuring the sort and repack paths.

Breaking Changes

  • Preference commands moved under set. /clicksorted sort is now /clicksorted set sort-method and /clicksorted click is now /clicksorted set click-method; the old top-level forms no longer exist. Update any macros, command blocks, or aliases. (The clicksorted.commands.sort / .click permission nodes are unchanged.)
  • Shift-click preference cycling removed. Shift-left/right-clicking in your inventory no longer cycles your sort and click preferences. The /clicksorted shiftclick command, the clicksorted.commands.shiftclick permission, and the defaults.shift_click config key are gone. Shift-left-click and shift-right-click are now available as explicit sort triggers instead (/clicksorted set click-method shift_left_click|shift_right_click).
  • ClickMethod values renamed. DOUBLEDOUBLE_CLICK and SINGLESINGLE_CLICK. Stored player preferences and config.yml values are rewritten automatically on load/join, so no manual action is needed unless you script against the raw values.

New Features

Slot locking

/clicksorted set lock opens a chest GUI that mirrors your inventory — three rows for main storage and one for the hotbar, separated by a divider. Lime panes are unlocked, barrier icons are locked, and black panes mark slots outside the sortable range. Click a pane to toggle it; changes save immediately, and locked slots are neither read nor overwritten when you sort. Locks apply only to your own inventory (main region and hotbar) — containers always sort in full.

Bundle packing

When enabled, a sort first consolidates bundle-eligible items by type: full stacks stay loose in the inventory and only the leftover remainder is packed into a bundle — and only when it's an efficient trade (the remainder is at or below half a bundle's weight). The result is a pure function of the item multiset, so re-running on an unchanged inventory is a no-op. Toggle it per region with /clicksorted set bundle inventory on|off and /clicksorted set bundle others on|off, and cap distinct entries per bundle with /clicksorted set bundle stacklimit <n|off> (server defaults: defaults.bundle_inventory, defaults.bundle_others, defaults.bundle_stack_limit).

Command restructure & status

All preference commands moved under /clicksorted set (sortset sort-method, clickset click-method, plus set hover, set lock, set bundle). A new /clicksorted status reports your click method, sort method, and sort-over-items state.

Settings migration framework

A new Migrations catalog owns "what is stored where," migrating both config.yml and per-player persistent data through one entry point each. Renamed values are declared as lineages that converge in a single pass; removed settings are dropped from the store. Legacy ClickMethod spellings migrate automatically and the deprecated shift_click setting is removed on upgrade.

Action throttle & benchmark

A global per-player rate limiter (action_cooldown_ms, default 150 ms) gates every plugin-driven action; players with clicksorted.throttle.bypass (default op) are exempt. /clicksorted benchmark [iterations] runs an in-situ micro-benchmark of the sort and bundle-repack paths.

Bug Fixes

  • Empty-slot sorting, over-cancellation, and non-fungible item merge — sorting on empty slots, event over-cancellation, and merging of non-fungible items (bundles and non-stackables) are now handled correctly.
  • player_sort_max is now treated as an exclusive bound (matching its default of 36) and is clamped to the armor boundary, so a misconfigured value can no longer scramble armor or off-hand slots.

Other Improvements

  • Consolidated the throttle gate into ActionThrottle.throttled() and routed all command handlers through shared requirePlayer/parseState helpers, removing duplicated guard logic.
  • Regenerated groups.yml for Minecraft 26.1.2, correcting some mis-grouped items (e.g. chains).
  • README and CLAUDE.md updated for the set command tree, bundle packing, the action throttle, and the new config/lang keys.

Compatibility

✔️ Paper/Folia 1.20.6 – 26.1.x
✔️ Java 21

Upgrading

  1. Stop your server.
  2. Replace the old jar in plugins/ with this release.
  3. Start your server.

Note: Existing preferences migrate automatically — legacy click-mode values (DOUBLE, SINGLE) are rewritten to their current spellings and the deprecated shift_click setting is dropped on first load/join. No manual config edits are required.

What's Changed

  • Add slot-lock GUI (/clicksorted set lock) by @kccricket
  • Restructure commands under set, rename click/sort, add status by @kccricket
  • Settings migration framework, hover command, and expanded ClickMethod by @kccricket
  • Pool-and-repack bundle packing folded into a unified sort pipeline by @kccricket
  • Per-player action throttle and in-situ benchmark by @kccricket
  • Fix empty-slot sorting, over-cancellation, and non-fungible item merge by @kccricket
  • Fix player_sort_max exclusivity and clamping by @kccricket
  • Fix Minecraft 26.1.2 item grouping (chains) by @kccricket