fix: retry Vault hook before disabling so addon-provided economies work#67
Merged
Conversation
BentoBox hooks Vault before addons enable, so if no economy plugin had registered a provider yet, that early hook failed and was discarded. An addon (e.g. InvSwitcher) can provide an economy during enable, so Bank disabled itself even though a per-world economy was available. Retry the Vault hook before giving up, and add InvSwitcher as a softdepend so it enables (and registers its economy) before Bank. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Problem
BentoBox hooks Vault during its early-hook phase, before addons are enabled. If no economy plugin has registered a provider by then, that early hook fails and is discarded, so
getPlugin().getVault()is empty.When the economy is provided by an addon rather than a standalone plugin — e.g. InvSwitcher, which registers a per-world Vault
Economyin its ownonEnable()— Bank'sonEnablechecksgetVault().isEmpty(), finds it empty, and disables itself with "Vault is required" even though a working per-world economy is available.Fix
getVault()is empty, callgetPlugin().getHooks().registerHook(new VaultHook())once, then re-check. An economy registered by an addon that enabled earlier is now picked up.InvSwitcheras asoftdependso that, when present, InvSwitcher enables (and registers its economy provider) before Bank — making the ordering deterministic rather than relying on addon load order.Pairs with BentoBoxWorld/BentoBox#2995 (which retries the hook after all addons enable). Either change alone helps; together they make addon-provided economies robust regardless of enable order.
🤖 Generated with Claude Code