InventoryBogoSorter
55 merged pull requests.
New Features
- #225 Implemented two new NBT sort rules (tc_essentia, forestry_genome) in DefaultRules; extended ItemCompareHelper to compare NBTTagString and NBTTagList; added Mods.Thaumcraft enum and translations. - @Faith4ng
- Added: tc_essentia sort rule, forestry_genome sort rule, NBTTagString comparison, NBTTagList comparison
- Fixed: essentia container sorting, Forestry bee/larvae sorting
- Closes #224
- #220 Added pinned slot query methods to BogoSortAPI and IBogoSortAPI interfaces. - @Algent
- Added: pinned slot API methods
- #218 Added two mixin classes (MixinContainerBag, MixinContainerCloak) to enable sorting in Witching Gadgets containers and registered the mods in TargetedMod enum. - @Edgaru089
- Added: Bag of Tricks sorting support, Cloak of Volumous Pockets sorting support, WitchingGadgets mixins
- Closes #217
- #215 Implemented PinnedSlots system with client rendering (PinnedSlotClient), new keybind (Ctrl+Middle Click), network packet (CPlayerPins), and config options including 9 visual styles. Supports player data storage and backpack compatibility. - @Algent
- Added: pinned slots system, PinnedSlotClient, CPlayerPins network packet, pinned slot rendering, 9 visual styles
- #213 Implemented DropKeyRepeatHandler, added GuiContainerDropKeyMixin, and extended config with drop repeat options (enabled by default, 5 tick delay). - @Caedis
- Added: drop key repetition, DropKeyRepeatHandler, GuiContainerDropKeyMixin
- #206 Added hotbar drop-off configuration option to BogoSorterConfig and modified DropOffHandler to include hotbar slots when processing drop-off tasks. - @MassAnarchyy
- Added: hotbar drop-off feature, hotbar drop-off config toggle
- #205 Extended ShortcutHandler to recognize and properly handle Forestry workbench containers, enabling shortcut key functionality in those GUIs. - @MassAnarchyy
- Added: Forestry workbench shortcut support
- Fixed: Alt+Click not working in Forestry workbenches
- Closes #155
- #196 Added vending machine detection, coin deposit destination handling, new UI buttons in config GUI, and network packets to synchronize coin deposit preferences between client and server. - @MassAnarchyy
- Added: vending machine drop-off support, coin deposit destination selector, deposit sound effect
- #184 Added AE2 client bridge, tooltip command infrastructure, and network handlers to query AE2 storage systems from NEI overlays. Includes new packet types and configuration options. - @MassAnarchyy
- Added: AE2 wireless terminal NEI integration, Thaumic Aspects integration, /bogosorter tooltip command, AE2 client bridge
- #164 Refactored RendererCube with smooth fading animation system; added multiple render style enums; expanded BogoSorterConfig with render style configuration. - @0hwx
- Added: Drop-off render style options, Smooth fade animation system
- #163 Enhanced InventoryManager to scan tile entities across loaded chunks using a chunk-based search; added null safety in LocalizationHelper; retrieves mod ID from ItemStack to avoid conflicts between mods with identical unlocalized names. - @0hwx
- Added: Binnie Compartments support, Filing Cabinet support, Chunk-based inventory scanning
- Fixed: Drop-off with Binnie Compartments, Drop-off crashes, Drop-off with Filing Cabinets, Range config not updating on servers
- Closes GTNH#21426, GTNH#21872, GTNH#21952, GTNH#22140, #161
- #162 Added Chisel mod compatibility in DefaultCompat; updated mod metadata and dependencies to support Chisel chest detection. - @0hwx
- Added: Chisel chest compatibility
- Fixed: Chisel chest sorting support
- Closes #157, GTNH#22756
- #146 Implemented BSKeybinds control system with BSGuiControls, BSGuiKeybindList, and BSButtonEntry classes; integrated Shortcut keybind support with dynamic key capture and GUI binding management. - @0hwx
- Added: In-game keybind editor GUI, BSKeybinds control system, BSGuiControls, BSGuiKeybindList, BSButtonEntry
- Closes #55
- #142 Added ArrowHandlerRegistry and compatibility handlers for Tinkers' Construct and vanilla bows to track and display arrow/ammo counts in the Usage Ticker UI. - @0hwx
- Added: Ammo tracker in Usage Ticker, ArrowHandlerRegistry, Tinkers' Construct arrow compat, Vanilla bow handler
- #139 Split sorting keybind logic in ClientEventHandler; removed sorting-with-no-gui option and made inside-GUI sorting default to middle click with dedicated world keybind. - @Caedis
- Added: Dedicated outside-GUI sort keybind
- Removed: Sorting with no GUI option
- #134 Added server-controlled config option in BogoSorterConfig and RefillHandler to toggle auto-refill behavior. - @Caedis
- Added: Server-controlled refill toggle configuration
- Closes #133
Changes
- #226 Added check in Ae2TooltipClient to suppress tooltip when no AE2 storage grid is active. - @danyadev
- #223 Updated SDropOffMessage and Ae2TooltipClient to apply user locale number formatting. - @Connor-Colenso
- #216 Added comment in OreDictHelper to clarify gregtechnh NBT key scope. - @felixfour
- #207 Updated color constant in Ae2TooltipClient from aqua to gold. - @MassAnarchyy
- #185 Added packet validation, server-side permission checks, and container state verification to prevent invalid packet handling. Refactored CSlotSync and CSort to use safer packet processing. - @Caedis
- Added: packet validation framework
- Fixed: unvalidated custom packet handling
- Closes #124
- #180 Updated dependencies.gradle and replaced deprecated Grid.mapToMatrix usage in ConfigGui with a compatible alternative to prevent crashes on insufficient grid elements. - @tiffit
- Fixed: crash on opening sort config
- Closes GTNH#24361
- #148 Migrated refill logic to server-side packet handling via CRefill packet; removed client-side MixinEntityPlayer refill hook; replaced hacky consumed-item refilling with proper server-controlled behavior. - @Caedis
- Added: CRefill server-side packet handler
- Removed: MixinEntityPlayer client-side refill, Hacky consumed item refilling
- Fixed: Auto-refill settings not being respected
- Closes #147
Bug Fixes
- #221 Updated RendererCube to use renderViewEntity instead of direct player entity for camera calculations. - @Caedis
- Fixed: freecam compatibility
- #219 Modified Ae2AmountServiceImpl to prevent world server reference leak (specific fix not detailed in PR body). - @Alexdoru
- Fixed: world server leak in Ae2AmountServiceImpl
- #214 Replaced incorrect class path check in BogoSorter with Mods.Ae2.isLoaded() for proper AE2 presence detection. - @Kogepan229
- Fixed: AE2 presence check
- #212 Modified ClientEventHandler and added ControllingCompat to properly handle key presses in GUI contexts while maintaining modifier support. - @Algent
- Fixed: middle-click inventory sort, keyboard inventory sort, sorting regression
- Closes GTNH#26019
- #211 Refactored ClientEventHandler to properly distinguish key presses from modifier states and prevent unwanted triggers in chat/GUI contexts. - @Algent
- Fixed: drop-off key triggering in chat, drop-off key triggering in GUIs, drop-off with key modifiers
- #210 Fixed three translation strings in zh_CN.lang file. - @MCTBL
- Fixed: Chinese translation strings
- #204 Modified MixinGuiNewKeyBindingList to shadow the setDisplayedEntries method instead of the private displayedentries field, fixing UnmixinException. - @MassAnarchyy
- Fixed: mixin crash with Controlling mod
- #203 Reverted ShortcutHandler grid coordinate handling for Thaumcraft crafting stations to restore correct Alt+Click behavior. - @MassAnarchyy
- Fixed: Alt+Click in Thaumcraft crafting stations
- Closes #200
- #202 Added GUI focus checks in ClientEventHandler to prevent keybind activation in text input fields. Fixed keybind display in BSGuiKeybindList to show human-readable key names. - @MassAnarchyy
- Fixed: drop-off key triggering in NEI filter, keybind display showing keycodes
- Closes #201
- #198 Added StackInfo.isFluidContainer() check in Ae2TooltipClient to exclude fluid containers from fluid stack detection. - @MassAnarchyy
- Fixed: buckets treated as fluids in AE2 tooltips
- #197 Added validation in ShortcutHandler and SortHandler to prevent force-drop operations on open/active container items like Forestry bags. - @Algent
- Fixed: Forestry backpack duplication, Forestry bag duplication exploits
- Closes Dupes-Exploits-GTNH#226, Dupes-Exploits-GTNH#241, Dupes-Exploits-GTNH#250, Dupes-Exploits-GTNH#275
- #195 Updated ShortcutHandler to prevent item duplication in cooking table interactions by adding validation on shortcut execution. - @Algent
- Fixed: cooking table food duplication exploit
- Closes Dupes-Exploits-GTNH#239
- #194 Refactored ShortcutHandler to ensure shortcut handling always takes priority over NEI fallback, prevent duplicate input event processing, and improved container state stability during rapid input. - @MassAnarchyy
- Fixed: Alt+Click inconsistency, input desync during rapid clicks, shortcut being ignored
- Closes #193
- #192 Restructured AE2 integration using facade/interface/stub/impl pattern with safe class loading via Class.forName, removed AE2 types from shared APIs, improved cache and thread safety, and optimized rate limiter (O(n) instead of O(n²)). - @MassAnarchyy
- Added: AE2 integration abstraction layer, Ae2AmountServiceStub, ContextResult wrapper
- Fixed: NoClassDefFoundError crash on logout, rate limiter edge cases, null player handling
- Closes #191
- #190 Added @com.github.bsideup.jabel.Desugar annotations to AE2 and Baubles-related classes to ensure proper Jabel desugaring for Java 8 compatibility. - @MassAnarchyy
- Fixed: build failures due to missing desugar annotations
- #188 Updated DefaultCompat compatibility layer to work with the newer NotEnoughThaumcraft API. - @re7gog
- Fixed: NTM compatibility
- #182 Added proper cleanup code in ClientEventHandler, GuiSortingContext, SortHandler, and ButtonHandler to clear references when worlds unload. Removed unused Serializer references. - @Alexdoru
- Removed: unused NBT serializer references
- Fixed: 4 world memory leaks
- #174 Modified InventoryManager to fall back to IInventory.getInventoryName() instead of relying solely on block + metadata matching for inventory identification. - @mikkerlo
- Fixed: drop-off not recognizing modded inventories with shared block types
- #173 Increased the maximum buffer size in ClientSortData for handling item name strings, preventing buffer overflow when processing items with very long display names. - @DarkShadow44
- Fixed: crash on oversized item names
- #172 Added null safety check in OreDictHelper to prevent crashes when processing tools that are null. - @WayneYam
- Fixed: Network handshake fatal error
- Closes GTNH#23244
- #169 Added validation in ClientEventHandler and BSKeybinds to guard against adding empty keybinds. - @0hwx
- Fixed: Bugged keybind crash
- Closes GTNH#23048
- #167 Added validation check in ShortcutHandler to prevent illegal AE2 crafting slot operations. - @lc-1337
- Fixed: AE2 illegal craft server freeze
- Closes GTNH#22963
- #166 Changed duplicate chest detection in InventoryManager to scan entire list instead of only checking the element behind in the list; ensures correct detection of double chests with loaded-tile-only scanning. - @0hwx
- Fixed: Double chest detection with loaded tiles
- #158 Added stack size validation check (stackSize > 0) in ShortcutHandler to prevent moving invalid itemstacks. - @Worive
- Fixed: Invalid itemstack movement
- #154 Updated ConfigGui to adapt to ModularUI2 API changes; updated dependencies.gradle to use compatible ModularUI2 version. - @FrostyFire1
- Fixed: Config GUI crash on opening, Inventory sort button crash
- Closes GTNH#21998, #153
- #149 Fixed sync issue in CRefill packet and DamageHelper refill tracking. - @0hwx
- Fixed: Refill sync issue
- #145 Minor fix in HotbarSwap rendering logic. - @0hwx
- Fixed: HotbarSwap rendering
- #143 Moved config and drop-off key handling to receive all input instead of only keyboard input, and added Keyboard.isKeyDown() checks for proper key state detection. - @0hwx
- Fixed: Keybinding responsiveness for keyboard keys
- #140 Fixed IllegalAccessError in Mixin reflective access, resolved sorting compatibility in DraconicEvolution chest, fixed config button state handling, and improved Forestry Worktable compatibility. - @0hwx
Performance
- #165 Implemented DropOffScheduler and DropOffTask for multi-tick item transfer distribution based on DropoffQuotaInMS setting; replaced instant CDropOff processing with sequential queued transfers. - @0hwx
- Added: DropOffScheduler, DropOffTask, Multi-tick transfer system
- Removed: Instant drop-off processing
- Fixed: Server lag spikes from drop-off
Removals
- #175 Removed mixin classes for CraftingTweaks and MouseTweaks compatibility, and deleted the embedded CraftingTweaks implementation. These are now external dependencies managed separately. - @Caedis
- Removed: CraftingTweaks code, MouseTweaks compatibility mixins, mixin plugin entries
- Migration: Update code that depended on the removed CraftingTweaks and MouseTweaks integration; use the standalone repos instead.
Internal / Refactor
- #144 Refactored Mods enum to use versionMatching for improved mod version detection. - @0hwx
Contributors
Everyone who authored, reviewed or co-authored a change on this page, with how many of them:
@Caedis (28), @0hwx (25), @MassAnarchyy (18), @Algent (7), @boubou19 (3), @UltraProdigy (3), @Alexdoru (2), @Kogepan229 (2), @tiffit (2), @ABKQPO (1), @Connor-Colenso (1), @cubefury (1), @danyadev (1), @DarkShadow44 (1), @Dream-Master (1), @DylanTaylor1 (1), @Edgaru089 (1), @Eldrinn-Elantey (1), @Faith4ng (1), @felixfour (1), @FrostyFire1 (1), @glektarssza (1), @koolkrafter5 (1), @lc-1337 (1), @Lyfts (1), @MCTBL (1), @mikkerlo (1), @Ranzuu (1), @re7gog (1), @sisyphussy (1), @slprime (1), @WayneYam (1), @wlhlm (1), @Worive (1)