Repository navigation
SF_MagicExpansion 1.1.18
MagicExpansion 1.1.18
This hotfix repairs the resource-generator menu size mismatch reported on
Purpur 1.21.11 with Slimefun Legacy 4.1.76 and MagicExpansion 1.1.16.
Mining robot GUI and tick stability
The Diamond Mining Robot and other ResourceMachine / ResourceRandomOneMachine
generators declare 36 physical output slots (18 through 53), but their menu
presets only populated slots 0 through 17. Newly placed blocks could therefore
initially open a two-row chest. A completed machine would subsequently attempt
to access slot 18 of that 18-slot inventory, repeatedly producing an
ArrayIndexOutOfBoundsException in Slimefun's InvUtils.fitAll.
Both menu presets now explicitly reserve a 54-slot (six-row) inventory before
adding the upper-row controls. The generator layout and available output slots
are unchanged.
The shared machine ticker also refuses to process an undersized or invalid
inventory instead of charging energy or throwing repeatedly. Breaking a machine
only inspects physical slots present in its inventory. Random-one generators
additionally hold any persisted pending output until a correctly sized menu is
available, rather than attempting a dangerous flush.
No saved Slimefun IDs, recipes, resource rates, output probabilities, energy
costs, player data, or Cargo routing rules were changed.
Regression checks
The source-level menu contract check verifies that both generator families
reserve 54 slots for outputs 18-53. JUnit coverage checks valid and invalid
inventory slot boundaries. The build workflow runs these checks alongside
the repository's existing Paper/Purpur compilation and verification gates.
Upgrade
Back up your server's world and Slimefun data, stop the server completely,
replace the older MagicExpansion JAR with SF_MagicExpansion1.1.18.jar,
and restart. Do not hot-reload Slimefun or MagicExpansion. The corrected
menu preset is applied as inventories are newly created or reloaded.
After starting, open an affected Diamond Mining Robot and verify its inventory
shows six rows immediately. Allow the machine to complete a production cycle and
confirm the previous ArrayIndexOutOfBoundsException no longer occurs.
Geyser/Bedrock integration is unchanged and remains managed by Geyser outside
of this addon.