Skip to content

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
  • #195 Updated ShortcutHandler to prevent item duplication in cooking table interactions by adding validation on shortcut execution. - @Algent
  • #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
  • #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
    • Fixed: Draconic Evolution chest sorting, Config button crash when disabled, IllegalAccessError with multiblocks and AromaBackup, Forestry Worktable compatibility
    • Closes #117, #120, #121, #127

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)