Tags
Creators
Details
1.0.0
Compatibility
Changes
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/.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:8qsfB0IP:p7TK5EBw"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:8qsfB0IP:p7TK5EBw"
}

