Releases: imndllnuri/easy-sort
Release list
v1.4.1
What's Changed
- docs: add screenshots section to README by @imndllnuri in #2
Full Changelog: v1.4.0...v1.4.1
v1.4.0
Added
- Fabric build now also targets Minecraft 26.2. Only one real API break
between 26.1.2 and 26.2 (much smaller jump than 1.21.11 -> 26.1.2):
Minecraft.setScreen(Screen)was renamed tosetScreenAndShow(Screen),
confirmed viajavapto be the same behavior, not a real semantic change.
Pinned to exactly26.2infabric.mod.jsonrather than a range, since- unlike 26.1's patches - this hasn't been verified compatible with any
other single version.
- unlike 26.1's patches - this hasn't been verified compatible with any
Changed
- Fabric and NeoForge can now target different Minecraft versions within
the same build (a direct consequence of dropping Architectury Loom for
native per-platform tooling in v1.3.0). NeoForge stays on26.1.2- no
stable (non-beta) NeoForge build exists for 26.2 yet. - Fabric on 26.1.x (26.1 / 26.1.1 / 26.1.2) is frozen on
mc/26.1.x-fabric
(last release:v1.3.1) - this build no longer works there, since
setScreenAndShowdoesn't exist pre-26.2.
v1.3.1
Fixed
- Fabric: the shipped jar's
fabric.mod.jsononly declared compatibility
with26.1.2and later (~26.1.2), even though Fabric API itself
publishes identical builds across26.1,26.1.1, and26.1.2- a user
on26.1/26.1.1would have Fabric Loader refuse to load the mod outright.
Widened to26.1.x(any patch of the 26.1 line). NeoForge stays pinned to
exactly26.1.2- NeoForge's own builds for26.1/26.1.1never left
beta, so those aren't genuinely supported targets regardless of what this
mod declares.
v1.3.0
Changed
- Ported to Minecraft 26.1.2, Mojang's first fully unobfuscated release under
the new year-based versioning scheme. Requires Java 25 at runtime (up from
21) - Mojang bumped this for 26.1 itself. No user-facing behavior changes. - Dropped Architectury Loom in favor of talking to each platform's own
official tooling directly:net.fabricmc.fabric-loomfor Fabric,
net.neoforged.moddev(ModDevGradle) for NeoForge. Minecraft ships
unobfuscated from 26.1 onward, so Mojang/Parchment mappings no longer
exist at all - Architectury (a third-party wrapper) hadn't shipped support
for the new build model at the time of this release, but Fabric and
NeoForge's own tooling already had.common/never used Architectury's
runtime API, so this was a toolchain swap, not a rewrite: abuild-logic
composite build now provides shared Gradle conventions, andcommon/
exposes its source directly tofabric//neoforge/instead of a
compiled jar dependency. - 1.21.11 (the previous target) is frozen on the
mc/1.21.11branch;main
no longer builds against it.
Fixed (internal, source-only)
- Ported every real API break the 26.1.2 upgrade surfaced, confirmed via
javap/decompiled sources against the actual jars rather than guessed:
Fabric API renames (PayloadTypeRegistry.playC2S()->
serverboundPlay(),KeyBindingHelper->KeyMappingHelper,
ScreenEvents.beforeRender()->beforeExtract()), and a genuine
rendering-pipeline rewrite (GuiGraphics->GuiGraphicsExtractor,
AbstractButton.renderContents()->extractContents(),
Screen.render()->extractRenderState();fill()/pose()unchanged).
MixincompatibilityLevelbumpedJAVA_21->JAVA_25.
v1.2.0
Changed
- Ported to Minecraft 1.21.11 (Fabric API
0.141.4+1.21.11, NeoForge
21.11.42, Parchment2025.12.20, Architectury API19.0.1). No user-
facing behavior changes - this release only exists to track the new
Minecraft version.mainno longer builds against 1.21.10; that line is
frozen on themc/1.21.xbranch (last released asv1.1.0).
Fixed (internal, source-only)
net.minecraft.resources.ResourceLocationwas renamed to
net.minecraft.resources.Identifierin 1.21.11 - updated every reference
on both platforms (network payload channel IDs, the "Easy Sort" keybind
category, the mod ID lookups).AbstractButton.renderWidget(...)becamefinalin 1.21.11; the abstract
method to implement is nowrenderContents(...)(identical signature).
Renamed the override inMiniButtonon both platforms - no behavior
change, this is the same rename vanilla made internally.
v1.1.0
[1.1.0] - 2026-07-10
Added
- A dedicated "Easy Sort" category in the vanilla Controls > Key Binds
screen, and a new, separately configurable "Sort Container" keybind
(unbound by default - "S" is movement, so there's no safe default). The
existing "Sort Inventory" keybind (defaultR) now lives in the same
category instead of being lumped into vanilla's "Inventory" section.
Fixed
- Both platforms: the sort keybinds never actually fired while a
container or inventory screen was open - the one situation they're meant
to work in. Root cause: vanilla only callsKeyMapping.click()(which
backsKeyMapping.consumeClick()) whenMinecraft.screen == null; it's
never called while any screen is displayed, so the previous per-tick
consumeClick()poll could never detect the keypress. Fixed by hooking the
per-screen keyboard event directly instead: Fabric's
ScreenKeyboardEvents.afterKeyPress, NeoForge's
ScreenEvent.KeyPressed.Post. Both keybinds keep their existing scoping -
Sort Inventory on any container screen, Sort Container only on a supported
one (chest, shulker box).
Changed
- The
S/Q/R/G/Iin-screen button glyphs now render at 0.75x scale
instead of full font size, reading less cramped inside the 10px buttons.
v1.0.1
[1.0.1] - 2026-07-10
Fixed
- Critical (Fabric): the published jar was missing every class from the
Fabricclientsource set - the client entrypoint, config screen, button
widget, and both mixins (AbstractContainerScreenMixin,
CreativeModeInventoryScreenAccessor) never made it into the shipped jar.
Mixin's config-prepare pass failed on startup as soon as any class was
transformed (visible as anInvalidMixinExceptioncrash, often blamed on
whatever other mod happened to trigger the first mixin transform, e.g.
Axiom'spreLaunch), and even without that crash, none of the client-side
UI ever actually shipped. Root cause:fabric/build.gradle'sshadowJar
task only packagedsourceSets.main.output, never
sourceSets.client.output. Fixed by addingfrom sourceSets.client.output
toshadowJar. Affected every Fabric release since thecommon/fabric
module split (0.4.0-alphaonward); NeoForge was never affected (it
doesn't use split source sets).
v1.0.0
[1.0.0] - 2026-07-08
First stable release. No functional changes from 0.4.1-beta - every MVP and
post-MVP-so-far feature (sort, player inventory sort, Restock, Quick Stack,
shulker boxes, settings screen) is complete and working on both Fabric and
NeoForge. This release marks that milestone: Easy Sort is no longer alpha/
beta, it's a stable tool safe to depend on. Bundles, locked/ignored slots,
favorites, and auto-sort remain planned as post-1.0 minor releases (see
ROADMAP.md).
Full Changelog: v0.4.1-beta...v1.0.0
v0.4.1-beta
First beta: MVP + all planned post-MVP features (Restock, Quick Stack,
shulker boxes) are done on both Fabric and NeoForge. No functional changes
from 0.4.0-alpha - this release marks a shift in confidence, not new
features, ahead of real dedicated-server testing.
Changed
- Replaced the placeholder "ES" icon with a real one (chest + sparkle) on
both Fabric and NeoForge.
v0.4.0-alpha
Added
- NeoForge support (1.21.10): full feature parity with Fabric - Sort, Settings,
Restock, Quick Stack, the "I" inventory-sort button/hotkey, and shulker box
support all work identically. Built as a newneoforge/Gradle module via
Architectury Loom, implemented directly against NeoForge's own networking,
event, and keybind APIs. Manually verified in-game on both platforms.
Fixed
- Inventory sort ("I" button/hotkey) no longer reorders the hotbar - only the
27 main storage slots get sorted now, on both Fabric and NeoForge. Reordering
the hotbar mid-use was jarring (e.g. your currently-held tool could jump to
a different slot).