All versions
1.0.13
Release
pStats 1.0.132 months ago 20
Compatibility
Minecraft: Java Edition
26.2
Platform
Paper
Changes
1.0.13 - 2026-09-09
Fixed
- Preserved each player's last-known-good cached profile when that player's statistics file temporarily fails to read or parse during a full refresh, while still updating successfully parsed profiles and reporting the failed-file count through status and logs.
- Removed obsolete cached name mappings during single-player refreshes so username or configured override changes immediately replace the old identity without duplicating the same UUID in lookups or exports (#6).
- Persisted resolved UUID-to-name mappings in the plugin data folder so historical players retain username-based lookups and exports across server restarts, while configured overrides and current
usercache.jsonnames continue to take precedence (#7). - Wrote local export JSON through same-directory temporary files and atomic replacement where supported, preserving previous live files on failed writes, cleaning temporary files, and publishing
index.jsononly after player files are ready (#8). - Retried the complete GitHub publishing transaction when a concurrent branch update causes a ref conflict, rebuilding from the latest branch head without force-pushing and returning a bounded failure if the branch keeps changing (#9).
- Recognized GitHub rate-limited
403responses without retrying authentication or permission failures, honoredRetry-Afterfirst andX-RateLimit-Resetfor primary limits, and kept retry counts and delays bounded (#10). - Published reloaded settings safely and captured one immutable configuration snapshot per refresh, export, publish, and shutdown operation so in-flight work cannot mix configuration generations while subsequently started work sees the reload (#11).
Changed
- Updated the project and packaged plugin version to 1.0.13.
- Made build and release artifacts reproducible and verifiable by explicitly targeting Java 25, enabling deterministic JAR output, validating plugin metadata and the listener registration ABI in CI, checking byte-for-byte rebuilds, validating the Gradle wrapper distribution, and attaching release files from the already verified CI artifact instead of rebuilding a second copy (#12).
Dependencies
- Pinned
io.papermc.paper:paper-apifrom the floating26.2.build.+selector to26.2.build.121-stable. - Updated
actions/checkoutfrom5to7 - Updated
actions/upload-artifactfrom4to7 - Updated
gradle/actionsfrom4to6 - Updated
gradle-wrapperfrom9.3.0to9.7.1 - Updated
org.junit:junit-bomfrom5.13.4to6.1.3
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:LhiEeFvS:arsKkhjj"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:LhiEeFvS:arsKkhjj"
}

