Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Avatar for BentoboxWorld

Separate inventories per game mode world. Players keep different items, XP, and gear for each BentoBox game.

Report InvSwitcher?

Release
1.19.2

tastybento released InvSwitcher version 1.19.2 on Yesterday 1:35 AM

🎁 What's new

1.19.2 fixes a data-loss bug affecting players who were online when the server stopped. Anything they did since their last world change β€” mined, traded, built up a hotbar β€” was lost, and on their next login the stale snapshot was written back over their real inventory. It looked like a rollback to whenever they last switched worlds. Players who had logged out normally before the shutdown were never affected.

Also in this release: the per-world economy commands now actually work for normal players, four game mode worlds that were missing from the default config have been added, and the README gained a section on the disappearing-items problem caused by running a second inventory manager alongside InvSwitcher.

✨ Highlights

πŸ› Inventories no longer roll back for players online at shutdown (#63)

  • On shutdown InvSwitcher saves every player still online. BentoBox closes its database immediately after addons are disabled, and players are only kicked afterwards, so the asynchronous write issued from saveOnShutdown() lost that race and was silently dropped.
  • The PlayerQuitEvent that would normally have saved those players fired after the database was already closed, so there was no second chance to persist.
  • Everything an online player did since their last world change was therefore lost β€” and because the addon re-applies the stored inventory on login, the stale snapshot then overwrote whatever they really had.
  • Players who logged out before the server stopped were unaffected: their quit save ran while the database was still open.
  • Shutdown saves are now synchronous, on both the normal and the statistics save paths. Regular in-game saves stay asynchronous, so nothing new runs on the main thread during play.

πŸ’° Economy commands work for normal players (#63)

  • /<gamemode> balance and /<gamemode> pay failed with a permission error for every player who was not an operator.
  • The commands set permissions such as invswitcher.balance, which BentoBox prefixes with the parent game mode's permission prefix β€” producing, for example, bskyblock.invswitcher.balance. But addon.yml had no permissions: section, so those nodes were never registered with a default, and an undeclared node is denied to everyone but ops.
  • The nodes are now declared using BentoBox's [gamemode] placeholder, which expands into every game mode's prefix. User commands default to true, admin eco commands to op.
  • This only affects servers running the per-world economy β€” the commands are still only registered when options.money is enabled and Vault is installed.

βš™οΈ Missing game mode worlds added to the default config (#61)

  • skygrid-world, raft_world, brix_world and parkour_world were absent from the shipped worlds: list.
  • On a fresh install InvSwitcher silently did not manage those worlds, and a world that is never hooked produces no log line β€” so the gap stayed invisible until items started leaking between worlds.
  • Existing configs are not rewritten. If you already run any of these game modes, add the entries to your config.yml by hand.

πŸ“„ Do not run two inventory managers (#60)

  • New README section on the most common support case: InvSwitcher running alongside Multiverse-Inventories, PerWorldInventory or MultiInv. Both plugins save and restore the player on every world change and overwrite each other's data, and the symptom is disappearing items with nothing in the console.
  • Covers the Multiverse-Inventories bypass permission (mvinv.bypass.world.<world>) and the two things that commonly mislead admins: leaving BentoBox worlds out of every inventory group does not help, and /mv remove <world> is undone on the next restart.

πŸ—οΈ Build and CI (#63, #62, #59)

  • JaCoCo updated 0.8.12 β†’ 0.8.15. 0.8.12 cannot read class file major version 69, so coverage instrumentation failed with Unsupported class file major version 69 on the JDK 25 CI agent.
  • The pinned publish-platforms.yml reusable workflow was bumped twice, most recently to pick up the multipart-JSON fix.

βš™οΈ Compatibility

βœ”οΈ BentoBox 3.17.0 βœ”οΈ Paper Minecraft 1.21.5 – 26.1.2 βœ”οΈ Java 21

πŸ”Ί Updating β€” important notes

βš™οΈ New default worlds are not added to an existing config. The four worlds above are only present on a fresh install. If you run SkyGrid, Raft, Brix or Parkour, open your InvSwitcher/config.yml and add the relevant entries to the worlds: list, then restart. InvSwitcher logs the worlds it hooks into on startup β€” check that list to confirm.

πŸ”Ί New permission nodes. [gamemode].invswitcher.balance and [gamemode].invswitcher.pay are registered with a default of true, so most servers need to do nothing. If you use a permissions plugin that denies unlisted nodes, grant these to your default group. The admin nodes ([gamemode].invswitcher.admin.eco and its balance, give, take and set children) default to op.

πŸ”Ί If players were reporting rollbacks after restarts, they should stop after this update. Only players online at the moment the server stopped were affected. Data already lost cannot be recovered β€” those writes never reached the database. Take a backup before updating, as always.

πŸ“₯ How to update

  1. Take backups of your server, for safety.
  2. Stop the server.
  3. Drop the new InvSwitcher jar into the addons folder and remove the old one.
  4. If you run SkyGrid, Raft, Brix or Parkour, add those worlds to your config.yml (see above).
  5. Restart the server.
  6. You should be good to go!

Legend

  • βš™οΈ config options have been removed, renamed, or added
  • πŸ”Ί special attention needed

What's Changed

Full Changelog: https://github.com/BentoBoxWorld/InvSwitcher/compare/1.19.1...1.19.2

Information

Published onAugust 4, 2026
Downloads0

Platforms

Paper Paper (1.21.5-26.2)