Список изменений
ClickSorted 1.0.0 is a ground-up modernization of the original ClickSort plugin, rewritten for Paper 1.21.x with a clean architecture and no legacy dependencies.
Highlights
- New package & name — rebranded from
ClickSort(me.desht.clicksort) toClickSorted(net.kccricket.clicksorted) with a fully reorganized, concern-based package layout. - No more SQLite — player sorting preferences are now stored in Bukkit's Persistent Data Container; no database file, no async JDBC, no migration needed.
- Paper-native commands — the old dhutils
AbstractCommand/CommandManagerframework is gone; commands are a Brigadier tree registered viaLifecycleEvents.COMMANDS. - Adventure / MiniMessage messages — all user-facing text is now an Adventure
Component; legacy § color codes are fully replaced andlang.ymluses MiniMessage format throughout. - Full integration test suite — 10 test classes covering sort behavior, commands, config reload, cooldown messaging, player prefs, and resource updating via MockBukkit.
New Features
Add-only config merging
ResourceUpdater performs an add-only merge of bundled defaults into the plugin data
folder on startup. New keys added in a future release appear in your live config
automatically; existing customizations are never overwritten.
Expanded sortable inventory types
config.yml now includes additional inventory types (barrel, blast furnace,
dispenser, dropper, furnace, hopper, smoker) in the default sortable_inventories
list so more containers sort out of the box.
Updated item groups
groups.yml has been updated to reflect the full 1.21.5 creative-mode tab groupings,
giving GROUP sort a more intuitive ordering for current-version items.
Bug Fixes
SortEnginenull/empty-inventory edge cases hardened — operations on inventories with no sortable slots no longer throw.InventorySortEventdefensive guard — the post-sort event is only fired when a sort actually occurs, preventing spurious third-party handler calls.LangConfigmissing-key fallback — referencing an undefined message key now returns a safe placeholder instead of throwing aNullPointerException.
Other Improvements
- Build system — migrated from Maven (
pom.xml) to Gradle (build.gradle.kts) with the Shadow plugin for fat-JAR assembly. - Java 21 bytecode target — the build now emits Java 21 class files, matching the minimum JVM required by modern Paper builds.
- Removed dhutils — the entire embedded
me.desht.dhutilslibrary (≈3 000 lines) is gone; only the handful of utilities actually used by the plugin were rewritten as focused classes (Log,ItemNames,CooldownMessenger,Permissions). - Removed Essentials integration — the VALUE sort method (which relied on Essentials item worth data) has been removed; NAME and GROUP remain.
- Removed
coloured_consolesetting — console output is always plain text; the config key had no effect on modern Paper and is no longer present. - Removed legacy version compatibility shims — version-parsing workarounds for Minecraft 1.12 and earlier are gone.
- Unified config lifecycle — all four config files (
config.yml,lang.yml,groups.yml,items.yml) are managed through a singleConfigManager; reload via/clicksorted reloadrefreshes all of them atomically. - Typed debug levels —
DebugLevelis now an enum (OFF,LOW,MEDIUM,HIGH) replacing the old integer-based debug flag, with log calls gated by level comparison. - Documented YAML configs — all four bundled resource files now have inline comments explaining every key.
- Expanded README — covers installation, permissions, commands, configuration reference, and the GROUP sort method.
Compatibility
✔️ Paper/Folia 1.20.6+
✔️ Java 21
Upgrading from ClickSort (original fork)
- Stop your server.
- Remove the old ClickSort jar from
plugins/. - Place
clicksorted-1.0.0.jarinplugins/. - Start your server. Fresh
config.yml,lang.yml,groups.yml, anditems.ymlfiles will be generated inplugins/ClickSorted/. - (Optional) Review your old
plugins/ClickSort/settings and migrate any customizations to the new config files. Note that player sorting preferences were stored in SQLite and cannot be migrated; players will start with defaults.
Upgrading from ClickSort (original fork)
- Stop your server.
- Remove the old ClickSort jar from
plugins/. - Delete
plugins/ClickSort/— player preferences were stored in SQLite and cannot be migrated; players will start with default preferences. - Place
clicksorted-1.0.0.jarinplugins/. - Start your server. Fresh
config.yml,lang.yml,groups.yml, anditems.ymlfiles will be generated inplugins/ClickSorted/.

