Tags
Creators
Details
Licensed LGPL-2.1-or-later
Published 5 months ago
Updated 4 months ago
All versions
Economy API (
1.2.0+1.21.1
Release
Jake's Economy 1.2.0+1.21.15 months ago 48
Compatibility
Minecraft: Java Edition
1.21.1
Platform
Fabric
Supported environments
Client and server
Changes
[1.2.0+1.21.1] — 2026-06-08
Market GUI — Price History Graph
- Tiered snapshot system: Fine-grained 20-minute snapshots for intraday detail (Day view), hourly snapshots for long-term trends (Week / Month views)
- Graph now captures data every 20 minutes instead of every hour — Day view shows 72 points across the last 24 hours for much smoother intraday curves
- Week and Month views continue to use hourly archive data — no change in long-term resolution, storage remains efficient at ~5.4 MB for 137 items
- Tooltip hover now shows "Just now" for very recent points and properly displays minute-level timestamps
- "No data" message now shows the correct snapshot interval per view ("Data is recorded every 20 minutes" for Day, "Data is recorded hourly" for Week/Month)
/jecon debug fillhistorytest command now injects both recent (20-min intraday cycle) and archive (hourly) test data for comprehensive graph testing
Security & quality fixes
Market
- Fixed duplicate achievement lock check in
sell()— now uses the extracted helper methodisAchievementLocked() - Fixed pre-existing code quality warnings (redundant cast, dangling Javadoc)
Auction House
- Fixed expired BIN listings being purchasable between tick-loop scans (up to 1-second window) —
instantBuy()now checks expiry before allowing purchase - Fixed full bid history being serialized and sent over the network to every client — only top bid data is transmitted now (bandwidth optimization)
- Fixed control characters in modded item names or player profile names breaking auction JSON — all user-visible strings now use full JSON escaping
- Fixed
minBidIncrementPercentconfig field not being read; minimum bid increment is now correctly driven by the configured value instead of always using 1 % - Sellers who cancel a listing while offline now receive a chat notification on next login (mirrors the existing outbid / auction-ended offline notification system)
- Fixed missing balance sync in
placeBidandinstantBuy— buyer's HUD balance now updates immediately after funds are deducted - Fixed confusing "Items delivered to your inventory" message showing even when no items fit in the player's inventory
Save data
AuctionState.load()visibility lowered to package-private — external callers must usesafeLoad()which includes corruption recovery- All three event schedulers (
AuctionExpireScheduler,TrendSnapshotScheduler,PriceDecayScheduler) now guard against double-registration on world reload applyDecay()no longer callssetDirty()twice per tick when changes are made
Commands
- Main command root renamed from
/jakeseconomyto/jecon(shorter alias used everywhere) - Added
/balanceplayer shortcut — shows abbreviated + exact balance; only registers if no competing mod claims the literal/balancecommand - Fixed
/jecon takenot syncing the updated balance to the target player's client HUD when the player is online
Market GUI
- Balance label now shows an exact-value tooltip on hover
Economy API (com.github.devjake123.jakeseconomy.api)
- New
JakesEconomyApi.hasEnoughBalance(uuid, amount, server)— null-safe check without callers needing to read and compare manually - New
JakesEconomyApi.transferBalance(from, to, amount, server)— atomic player-to-player transfer; returnsfalseon insufficient funds - New
JakesEconomyApi.isMarketItem(itemId, server)— returnstrueif the item is listed in the active price config - New
JakesEconomyApi.getMarketPrice(itemId, server)— returns current live price or-1if not listed - New
JakesEconomyApi.syncBalance(uuid, server)— explicit manual client-HUD sync (write methods already call this automatically) - All API write methods (
deposit,withdraw,setBalance,transferBalance) now automatically sync the updated balance to the player's client if they are online - Fixed
BALANCE_CHANGEDevent firing twice perdeposit/withdrawcall - New
EconomyApiEvents.AUCTION_BID_PLACEDevent — fires when a bid is accepted; payload:auctionId,bidderId,bidAmount,antiSniped - New
EconomyApiEvents.AUCTION_CANCELLEDevent — fires when a seller cancels a listing; payload:auctionId,sellerId,itemId
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:kz0C3RIe:ZngirIWD"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:kz0C3RIe:ZngirIWD"
}

