provouchers-1.5.0.jar
What's new
Added
command-aliasesinconfig.ymlsets the extra names for/voucher(defaultvouchers).[]registers none;/voucheritself always works.
Changed
/voucherno longer registers/pv, which PlayerVaults uses. Addpvtocommand-aliasesto keep it.- Aliases for
/voucherand/stashare trimmed and lower-cased; blank entries, entries containing spaces, and duplicates are ignored. - Activity metrics (redemptions, blocked duplicates, condition denials, Stash activity) report the count since the previous report instead of a running session total, so they no longer climb with server uptime.
effects.soundkeys are checked at/voucher reload: a key that is not a valid sound key fails its voucher or code file instead of failing at redeem, and upper-case keys now play.- Storage takes queries only once its schema upgrades have finished. Opening storage is retried a few times over about 15 seconds, so servers sharing a database that start together both come up. If it still fails, everything that needs storage stays unavailable until it is fixed, instead of running against a half-upgraded database.
- Published for Minecraft 26.2 and 26.3. The plugin still runs on 26.1 or newer.
/voucher doctorreports what metrics are actually doing: which providers started, the FastStats SDK version, whether it submits metrics, and whether error reports are sent. It previously showed only themetrics.enabledswitch, which says nothing about a provider that failed to start or a server that opted out of FastStats.- The API documentation now states that
VoucherPreRedeemEventandVoucherRedeemEventalso fire for a Stash claim, where the item id isnull, and that cancelling the pre-redeem event returns the claimed entries to the Stash. - Updated FastStats to 0.30.2, which anonymizes Discord webhook URLs in error reports.
Fixed
- A broken third-party plugin no longer stops ProVouchers from enabling. Checking for an integration searches every plugin on the server, so a plugin that failed to enable and had its jar closed made that check throw. The integration now counts as absent, with a warning naming the class, and a provider that cannot be built is skipped the same way.
- Stash: claiming a card no longer deletes vouchers delivered after the menu was opened. Each delivery is stored on its own and the menu combines matching ones into one card, so a claim takes exactly the deliveries on that card.
- Stash: concurrent deliveries of the same voucher no longer multiply later deliveries.
- Stash: a claim interrupted by a logout restores its rewards, including a logout while the claim is still reaching storage, and Claim all no longer restores rewards that another claim already took.
- Soulbound and crafting-station protection now also block number-key swaps, offhand swaps, and bundle placement into containers and stations.
- Cooldowns can no longer be skipped by redeeming right after joining, or after moving between servers that share a database, before the player's stored cooldowns have loaded. Until they load, vouchers with a cooldown reply that they could not be verified and loading retries; while storage is unavailable, those vouchers stay unavailable rather than ignoring stored cooldowns.
- Use limits (
max-usesanduses-per-player) on vouchers and codes are reserved in storage before any reward is granted, so players redeeming at the same moment, on one server or on several sharing a database, can no longer exceed a limit, and simultaneous uses are no longer undercounted. - Logging out while a voucher or code is being verified no longer uses it up without a reward. An item voucher stays in the inventory until its reward is delivered, and a redeem that cannot be delivered gives back its use and does not mark a stamped voucher as redeemed.
- Redeeming several copies of a voucher in quick succession can no longer grant extra rewards before its cooldown or use limit applies: while one redeem of a voucher is being verified, further clicks on that voucher are ignored.
- A stamped voucher is no longer removed as a duplicate when storage failed while its unfinished redeem was being undone. Undoing it is retried, and until it succeeds the voucher replies that it could not be verified.
- A voucher given to a player who logs out before it arrives is queued in their
Stash, or logged when the Stash is disabled, instead of being lost. Player command
and
item: @namerewards that could not be delivered because the player logged out are logged. - A redeem effect that fails, such as a sound that cannot play, no longer stops the rest of a batch open or Stash claim from being granted.
- A voucher icon or reward that uses a player head no longer fails with an internal error when its skin lookup fails immediately, such as for an unknown player name.
- Redeems, Stash claims, and gives still in progress when the server stops are settled before storage closes: uses and anti-dupe claims are given back, Stash entries are put back, and undelivered gives are queued in the Stash.
Migration
- Use limits are counted in a new
provouchers_use_totalstable, created and filled from the recorded uses on first start. - Update every server that shares a database at the same time. An older version running alongside this one does not count uses in the new table, so global limits could be exceeded, and it can multiply Stash deliveries, because this version stores each delivery as its own row.
This mod has no additional files

