Skip to content

EnderIO ​

42 merged pull requests.

New Features ​

  • #242 Added new color enum values to ColorUtils and bumped GTNHLib dependency version; updated 6 recipe handler classes to use the new colors. - @Ranzuu
    • Added: three new color constants
  • #238 Implemented ColorUtils utility class and applied it to recipe handler GUIs; repositioned Range label in conduit GUI by 34 pixels. - @Ranzuu
    • Added: ColorUtils class, color constants for priority and suction
  • #236 Added language file keys for ItemBuffer and other buffer GUIs and updated GuiBuffer to reference localization keys. - @Ranzuu
    • Added: localization keys for buffer GUI titles
  • #227 Enhanced TileEnchanter and ContainerEnchanter to support automated extraction via decrStackSize (drains XP automatically) while preserving GUI functionality via setInventorySlotContents; increased writable book slot capacity to 64. - @felixfour
    • Added: EnderIO Enchanter automation support, Automatic XP drainage on item extraction
  • #226 Enhanced TravelController rendering logic to check both main and offhand for the Staff of Traveling; added BackhandUtil helper for offhand detection. - @sbancuz
    • Added: Offhand Staff of Traveling rendering support
    • Fixed: Travel anchor not showing with staff in offhand
    • Closes GTNH#21507
  • #208 Enhanced PlantableFarmer to support planting logic for Pam's nether seeds alongside existing harvest functionality. - @TheYoingLad
    • Added: Pam's Harvestcraft nether seed planting support

New Content ​

  • #257 Language file update in en_US.lang (+1 line). - @june-dev-username

Changes ​

  • #258 Reverted changes to TileReservoir water handling logic and related language file entries to allow time for comprehensive water source rebalancing. - @boubou19
  • #239 Bumped @Mod annotation's minimumBuildNumber to reflect the GTNHLib version requirement introduced in PR #227. - @felixfour
  • #237 Removed spacesuit-related code from ItemEndSteelArmor and updated GT5-Unofficial dependency. - @FourIsTheNumber
    • Removed: space suit from End Steel armor
  • #222 Modified EntityWeatherRocket to store and respect the dimension it was created in, allowing dimension-specific rocket behavior. - @alppp
  • #217 Updated Gradle and dependencies to work with Waila's native fluid display; modified BlockTank and BlockZombieGenerator Waila integration logic. - @danyadev
  • #215 Enhanced ItemCapacitor tooltip rendering with improved visibility; added fake storage slot to TileFarmStation to act as overflow buffer (similar to Forestry apiaries) when main storage is full. - @evgengoldwar
    • Added: Capacitor detailed capacity tooltip, Farming Station fake storage buffer
  • #210 Replaced hardcoded re-check logic in NetworkedInventory with universal TileEntity validity checks using isInvalid() and cached TileEntity references. - @Worive
    • Fixed: Conduit reconnection after block replacement
  • #209 Modified MaterialRecipes and EE3Util to skip registration of these items when GT5U is detected, preventing duplicate item stacks and their associated auto-generated recipes. - @chochem
    • Removed: Duplicate item registrations in GTNH (8 material items)

Balance ​

  • #256 Updated TileReservoir refill rate constant from 9 to 10 buckets per second. - @june-dev-username

Bug Fixes ​

  • #262 Moved night vision application from client-side to server-side tick handler using existing PacketUpgradeState infrastructure with new NIGHT_VISION type, using 400-tick effect duration refreshed below 220 ticks. - @Eldrinn-Elantey
    • Added: server-side night vision application, PacketUpgradeState NIGHT_VISION type
    • Removed: client-side night vision application
    • Fixed: night vision loss on portal crossing, multiplayer night vision sync
  • #261 Reverted problematic night vision handling logic in DarkSteelController.java that prevented the upgrade from functioning. - @Caedis
    • Removed: incorrect night vision handling
    • Fixed: night vision upgrade functionality
  • #255 Corrected condition check in LiquidSettings GUI to allow player inventory display independently of fluid conduit tier restriction. - @vcwdfca
    • Fixed: player inventory not shown with lower-tier fluid conduits
  • #253 Updated PacketTeleport and PacketUtil sanitizer to only apply GUI tile validation to packets that are actually sent from GUI interactions, not all teleport packet variants. - @Glease
    • Fixed: PacketTeleport sanitizer false positive
  • #252 Added null safety check in WirelessChargedLocation to guard against accessing the wireless controller on the client-side, where it is never initialized. - @Elyspio
    • Fixed: client NPE when placing wireless lights on dedicated servers
  • #247 Updated EnderIoRenderer to use renderViewEntity instead of hardcoded camera position for billboard orientation calculation. - @Caedis
    • Fixed: freecam compatibility for billboard rendering
  • #245 Added explicit inventory slot access control in ContainerEnchanter and TileEnchanter, requiring use of extraction methods that enforce XP draining and enchanting logic. - @felixfour
    • Added: Config options for enchanter access control
    • Fixed: direct getStackInSlot duplication exploit
  • #243 Added null check in InventoryDatabaseServer to handle missing inventories gracefully, and improved NetworkedInventory state management. - @wlhlm
    • Fixed: NullPointerException when removing inventory network blocks
  • #240 Added EtFuturumCompat module to detect and prevent combined use of glider upgrade and Elytra in DarkSteelController. - @jordanamr
    • Added: EtFuturumCompat compatibility class, glider-elytra conflict detection
    • Fixed: infinite speed and altitude with glider and elytra
    • Closes GTNH#24479
  • #235 Removed stale world references in IoConfigRenderer, GliderUpgrade, SolarUpgrade, and TravelEntitySpecialRenderer. - @Alexdoru
    • Fixed: world client leaks in gui and upgrades
  • #233 Removed redundant world field assignments in AbstractMachineRenderer and TechneMachineRenderer to prevent holding stale client-side world references. - @Alexdoru
    • Fixed: world client leak in TechneMachineRenderer
  • #232 Fixed GL alpha state management in obelisk, machine chassis, and multiple renderer classes; corrected held item positioning in SoulBinder, Powered Spawner, TelePad, Travel Anchor, and Slice'N'Splice renderers. - @NeutronSelector
    • Fixed: GL alpha state leaking, backhand transparency rendering, held item positioning
    • Closes GTNH#23699
  • #231 Changed nightVisionActive flag to only update from explicit player input; suppress potion effect during inventory sync but resume automatically once inventory is restored. - @Eldrinn-Elantey
    • Fixed: night vision disabling on dimension change
  • #228 Corrected array bounds check in GuiInventoryPanel sort order validation. - @ImaMapleTree
    • Fixed: inventory panel sort options not persisting
  • #216 Added null-safety guard in TileWirelessCharger to handle cases where the wireless controller reference is accessed during entity invalidation. - @PLASMAchicken
    • Fixed: Client crash when breaking wireless charger on server
    • Closes GTNH#23035
  • #212 Refactored WirelessChargerController and WirelessChargedLocation to properly clean up world references in CommonProxy on world unload, preventing lingering memory retention. - @Alexdoru
    • Fixed: World leak in WirelessChargerController
  • #211 Refactored ConduitNetworkTickHandler registration and cleanup in CommonProxy, AbstractConduitNetwork, and CapBankNetwork to properly deregister tick handlers and clear world-dependent data structures on world unload. - @Alexdoru
    • Removed: World references held by ConduitNetworkTickHandler
    • Fixed: World leak in ConduitNetworkTickHandler

Performance ​

  • #249 Added enum value caching in BlockConduitBundle and ItemConduitFacade. - @boubou19
  • #248 Cached Enum.values() results in 15+ files where enums are frequently iterated, particularly in conduit networks, machines, and item handling code. - @boubou19
  • #223 Added static cached arrays for frequently-called Enum#values() methods (e.g., ConnectionMode, Facing) in conduit-related classes; depends on EnderCore#30 for DyeColor caching. - @Alexdoru
    • Added: Enum values caching in conduit classes
  • #221 Eliminated duplicate getTankInfo() calls in EnderLiquidConduitNetwork; replaced Fluid.getId() comparisons with direct object equality checks in TileReservoir and SmartTank. - @danyadev
    • Fixed: Redundant HashMap lookups via Fluid.getId(), Unnecessary drained.copy() calls
  • #219 Simplified FluidStack copying in AbstractEnderLiquidConduit to eliminate unnecessary intermediate allocations during fluid transfer. - @mitchej123
    • Fixed: Fluid conduit allocation spam
  • #218 Modified EnderLiquidConduitNetwork.doFill() to avoid redundant FluidStack.copy() calls that were allocating thousands of objects per tick in large networks. - @SwingURM
    • Fixed: Excessive FluidStack allocations in liquid conduit networks
  • #214 Deleted brute-force EnderIO item enumeration in ThaumcraftCompat.java for 2.8.2; Thaumcraft will generate aspects on-demand when items are scanned in-game. - @boubou19
    • Removed: Thaumcraft aspect pre-generation code
    • Fixed: Excessive pack boot time overhead from aspect brute-forcing
  • #213 Deleted brute-force EnderIO item enumeration in ThaumcraftCompat.java; Thaumcraft will generate aspects on-demand when items are scanned in-game. - @Alexdoru
    • Removed: Thaumcraft aspect pre-generation code
    • Fixed: Excessive pack boot time overhead from aspect brute-forcing

Internal / Refactor ​

  • #234 Applied IntelliJ quick fixes across 20+ files to resolve static analysis warnings without changing runtime behavior. - @Alexdoru

Contributors ​

Everyone who authored, reviewed or co-authored a change on this page, with how many of them:

@Dream-Master (12), @Alexdoru (10), @boubou19 (10), @UltraProdigy (5), @Caedis (4), @danyadev (4), @Ranzuu (4), @felixfour (3), @koolkrafter5 (3), @sisyphussy (3), @Eldrinn-Elantey (2), @june-dev-username (2), @Kogepan229 (2), @Luca-Guettinger (2), @Nikolay-Sitnikov (2), @Pxx500 (2), @thehoblit (2), @tiffit (2), @Algent (1), @alppp (1), @AnsonYeung (1), @chochem (1), @cubefury (1), @Elyspio (1), @evgengoldwar (1), @FourIsTheNumber (1), @Glease (1), @ImaMapleTree (1), @jordanamr (1), @Lyfts (1), @MalTeeez (1), @mitchej123 (1), @NeutronSelector (1), @PLASMAchicken (1), @Ruling-0 (1), @sbancuz (1), @slprime (1), @SwingURM (1), @TheYoingLad (1), @vcwdfca (1), @wlhlm (1), @Worive (1)