Tags
Creators
Details
2.5.1
Compatibility
Changes
PlayerAuctions Changelog - v2.5.1 (Critical Bug Fix)
π Summary
- Fixes severe race condition allowing multiple simultaneous purchases of the same auction item, leading to duplicates, multiple payments, and economy exploits.
- Impact: Ensures atomic transactions, preventing economic damage and maintaining server fairness.
π΄ Bug Details
-
Problem: Auction remained ACTIVE during money/item transfers, enabling concurrent buys.
- Old Flow: Check β Transfers β Mark FINISHED (vulnerable window).
-
Root Cause: Non-atomic operations in multi-threaded environment.
-
Solution: Atomic reservation with optimistic locking.
- New Flow: Check β Reserve (mark FINISHED) β If fails, abort β Transfers with rollbacks β Log/notify.
- Improvements: Rollbacks on errors; main-thread inventory; enhanced logging/feedback.
π Security
- Prevents item duplication, economy drains, and unfair advantages.
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:Mp3J39aH:FqqRXxvV"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:Mp3J39aH:FqqRXxvV"
}

