All versions
1.8.4
Release
Auction House Cobb 1.8.44 days ago 16
Uploaded by
Compatibility
Minecraft: Java Edition
1.21.1
Platform
Fabric
Supported environments
Client and server
Changes
Changelog - 1.8.4
Added
- Persistent Negotiations: Offers and counter-offers now survive restarts. The offers window includes received and sent negotiations, with buyer controls for counter-offers and withdrawing proposals.
- Transaction Journal & Recovery Status: Added durable transaction records and
/ah admin auditfor operators. Uncertain listings appear as Recovery pending in My Sales and remain unavailable for purchase or modification. - Save Integrity Checks: Added versioned JSON saves, SHA-256 integrity checks and quarantine copies. Invalid or partially loaded data cannot overwrite the original file, and old asset backups are no longer restored automatically.
Fixed & Stability
- Listing Persistence on Restart: Fixed held Pokémon listings, item listings and mailbox entries being discarded during loading and erased by subsequent saves. Pokémon data now loads after server startup, and already saved listings can recover from an interrupted creation confirmation when their contents match the transaction journal.
- Safer Cancellations & Expiration: Cancelled and expired listings now save their return to the mailbox before removing the original listing. Failed or uncertain transfers retain their data for recovery.
- Item Purchase Rollback: Fixed incorrect seller compensation when a tax is applied. Seller payment now follows delivery, and known insertion failures restore partially modified inventories and verify refunds.
- Consistent Offer Taxes: Direct purchases, accepted offers and accepted counter-offers now use the same settlement logic and tax calculation.
- Mailbox Claim Protection: Added persistent claim reservations to prevent uncertain or completed withdrawals from being repeated after a restart. Failed saves no longer report a successful claim.
- Item Component Preservation: Invalid serialized item data no longer silently turns into a plain item, preserving the original data for recovery instead of losing enchantments, names or container contents.
- Offers & Pokémon Details: Fixed server responses being ignored while offer lists, detail windows or confirmation screens are open. Pokémon details now update when the response arrives.
- Search & Refresh: Fixed item searches not updating while typing. Both markets now wait 300ms after typing and ignore outdated listing responses.
Improved
- Network Anti-Spam: Replaced the shared 200ms cooldown with per-packet and overall request quotas, allowing normal action-and-refresh sequences while providing explicit feedback when requests are limited.
- Listing & Configuration Validation: Added explicit Cobblemon tradeability and busy-state checks, bounded configuration values, validated network enum values and limited duplicate or excessive offers.
- Interface & Item Previews: Added component-aware item previews and tooltips, scrollable Pokémon history, clearer expiration controls and tab-specific visibility for item market controls.
- Performance & Maintenance: Cached Pokémon previews, added transaction log rotation, preserved decimal precision in price formatting, completed Spanish translations and removed unused mixin configurations and duplicate Kotlin source.
Compatibility & Validation
- Client & Server Version: Version 1.8.4 is required on both client and server. Existing 1.8.3 JSON saves are migrated on their next successful save; back up the complete server data before updating.
- Automated Checks: Compilation succeeds with 78 regression assertions covering payments, refunds, save failures, listing reloads, interrupted operations, corrupt files and request quotas. This remains a release candidate: real multiplayer and cross-system crash recovery still require validation. See
CORRECTIONS_1.8.4.mdfor the remaining work.
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:dUXCRC22:Ok4yNsco"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:dUXCRC22:Ok4yNsco"
}

