Conduit
A modern Economy abstraction for Minecraft.
One interface, many backends, zero coupling between the plugins that spend money and the plugin that stores it. Async-first, BigDecimal-everywhere, UUID-native.
Conduit.whenProviderAvailable(Economy.class, economy ->
economy.deposit(playerId, new BigDecimal("100.00"), "daily reward")
.thenAccept(result -> result.ifSuccess(s ->
getLogger().info("New balance: " + economy.format(s.newBalance())))));Resolve the active economy, move money, and react to the typed result. Off the main thread, with no load-order races.
Async by default
Every operation returns a CompletableFuture. There is no blocking facade, so a database call never freezes the main thread.
BigDecimal everywhere
No double anywhere in the public API. Floating-point money drift is structurally impossible.
UUID-first
Accounts are keyed by UUID. Names change; UUIDs do not.
Capability-aware
Ask what a provider supports, structurally and via flags, before you call it. No UnsupportedOperationException surprises.
Typed results & events
Sealed EconomyResult cases, post-commit events, and synchronous pre-auth interceptors.
Not a Vault fork
Conduit is its own API under so.alaz.conduit. It does not shim, wrap, or pretend to be Vault.
Build on Conduit
Whether you are spending money in a plugin, implementing an economy backend, or bridging an existing one, the guides walk you through it.