Skip to content

SF_MagicExpansion 1.1.18

Choose a tag to compare

@github-actions github-actions released this 23 Oct 15:14
7c2c1a9

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.