Repository navigation
Releases: groundbreakingmc/VaultSlim
Release list
1.3.1 β Placeholder Fixes & Performance Improvements
This update focuses on fixing several PlaceholderAPI edge cases and reducing overhead in frequently used placeholders.
Fixes
-
Fixed incorrect compact balance suffix selection for thousands, millions, trillions and quadrillions.
-
Fixed indexed rank/group placeholders accepting
0as a valid position. -
Fixed
%vault_groups_capital%and%vault_ranks_capital%not actually capitalizing group names. -
Unsupported permission placeholders are now handled correctly instead of silently resolving to an empty string.
-
Fixed incorrect error message when Permission/Chat providers are unavailable.
-
Corrected PlaceholderAPI formatting defaults:
us-number-formatis now stored as a boolean instead of a string.- thousands suffix now correctly defaults to
K.
Performance
Numeric placeholder parsing has been rewritten to use a small zero-allocation parser instead of Guava, temporary substrings, boxing and exception-based parsing.
Optimized placeholders include:
%vault_eco_balance_<N>dp%%vault_rankprefix_<N>%%vault_groupprefix_<N>%%vault_ranksuffix_<N>%%vault_groupsuffix_<N>%
Rank/group placeholders also parse their numeric indexes directly from known offsets instead of scanning the placeholder string for the last underscore.
In JMH testing, common short numeric inputs were around 5β18% faster, while malformed numeric input improved from roughly 700β900 ns to 1β18 ns.
Internal changes
- Removed Guava usage from placeholder number parsing.
- Replaced Guava
ImmutableMapwith JavaMap.offor PlaceholderAPI defaults. - Simplified compact balance formatting and removed the unnecessary
SuffixEntrymodel. - Updated the Gradle wrapper to 9.7.1.
v1.3 β Performance & Vault Flexibility Update
π Features
- Vault provider selection via system properties
Now you can explicitly choose which Vault provider to use (e.g., -Dvault.Economy=Essentials). If unspecified, the default Vault
priority-based provider is applied. Minimal provider debug logging added for easier troubleshooting.
π§ Refactoring / Performance
- Optimized number formatting cache
Replaced Map<Integer, NumberFormat> with Int2ObjectMap to avoid boxing overhead in frequently accessed caches, improving
performance in number formatting operations.
π Chores
- Bumped plugin version to 1.3
- Updated Shadow plugin to 9.3.1
v1.2.1 - Number Formatting Bugfix
π Bug Fixes
Fixed a critical visual bug in balance display where suffixed numbers were calculated incorrectly due to char arithmetic in string concatenation.
What was broken
- Balance of 1341 displayed as "50K" instead of "1.3K"
- Any balance between 1000-9999 with decimals showed wrong values
- Root cause:
DECIMAL_SEPARATORchar (ASCII 46) was treated as number during concatenation:1 + '.' + 3 = 50
What's fixed
- Proper string concatenation now enforced in
NumberFormatters.formatWithSuffix() - All suffixed balances now display correctly
Technical details
Changed concatenation from implicit char-to-int conversion to explicit string building by prepending empty string.
Commit with fix: 5f5cff9
VaultSlim v1.2
What's Changed
π Bug Fixes
- Fixed placeholder unregistration crash on plugin shutdown by @groundbreakingmc in f291ee2
VaultSlim v1.1
What's Changed
π Bug Fixes
- Fixed plugin initialization on fresh server by @groundbreakingmc in 95391e0
- Update VaultAPI to 1.7.1 to fix build by @groundbreakingmc in 4375537
- Correct plugin name in plugin.yml by @groundbreakingmc in b867d29
β‘ Performance Improvements
- Optimize suffix lookup with direct comparisons (~6ns gain) by @groundbreakingmc in 726f86f
- Replace pattern matching with faster check by @groundbreakingmc in 5c46a18
π§Ή Housekeeping
- Remove extra newline in build.gradle.kts by @groundbreakingmc in b93e9eb
Full Changelog: v1.0...v1.1
VaultSlim v1.0 - Streamlined Vault for Modern Servers
π VaultSlim v1.0.0 - The first release of a lightweight, drop-in replacement for Vault!
What is VaultSlim?
VaultSlim is Vault without the unnecessary baggage. It removes 25+ legacy plugin implementations that modern servers don't need while maintaining 100% API compatibility.
β¨ What's New
- ποΈ Removed bloat: No more implementations for dead plugins (PermissionsEx, bPermissions, mChat, iChat, etc.)
- β‘ Faster startup: No time wasted scanning for legacy plugins
- π Built-in PlaceholderAPI: Economy placeholders work out of the box
- π Perfect compatibility: Drop-in replacement for original Vault
- ποΈ Modern build: Migrated from Maven to Gradle
π¦ Installation
- Remove your current
Vault.jar - Remove your
Expansion-vault.jarfrom `PlaceholderAPI/expansions - Download and place
VaultSlim.jarin your plugins folder - Restart your server
- Done! All existing plugins continue working
π― Perfect for Modern Servers
- Using LuckPerms for permissions? β Perfect fit
- Want faster startup times? β No legacy plugin scanning
- Need PlaceholderAPI economy placeholders? β Built-in support
- Want zero configuration? β Works immediately
π§ For Developers
No code changes needed! VaultSlim uses the same:
- Package structure (
net.milkbowl.vault) - Class names and APIs
- Plugin identity (
provides: [Vault])
Your plugins will work exactly as before.
π Full Changelog
- Remove update checker and network calls to dead APIs
- Remove 15 legacy permission plugin implementations
- Remove 13 legacy chat plugin implementations
- Embed PlaceholderAPI Expansion-vault functionality
- Migrate build system from Maven to Gradle
- Maintain 100% backward compatibility
Download VaultSlim and enjoy a cleaner, faster Vault experience! π