Tags
Creators
Details
Licensed ARR
Published 5 months ago
Updated 4 months ago
All versions
1.3.1
Release
vJourney 1.3.14 months ago 50
Compatibility
Minecraft: Java Edition
26.1.x
1.21.x
Platforms
Paper
Purpur
Spigot
Required content
Unavailable version
Changes
v1.3.1
- Fix: Advancement-screen protection now intercepts delayed vJourney advancement packets that were already queued by UltimateAdvancementAPI, preventing frequent trigger checks from closing the open advancements screen.
- Compatibility: The delayed-packet guard works through PacketEvents or ProtocolLib and only defers vJourney advancement updates until the player closes the screen.
- Fix: Player data can no longer be wiped when a periodic or quit save runs before the asynchronous load finishes, when the load fails, or when a player reconnects before a previous load completes. Player sessions now use a load-state machine (LOADING/LOADED/FAILED) with a session token, and only fully loaded sessions are ever saved.
- Fix: Progress earned while a player's data is still loading is now merged with the loaded data instead of being overwritten, and a failed load retries up to three times before the session is marked non-savable for that session.
- Fix: A delayed load that completes after the player disconnects no longer recreates stale in-memory data for the offline player.
- Storage: Auto-save, shutdown, and database migration now persist only loaded players that have unsaved changes, and concurrent saves are de-duplicated by sequence so an older snapshot can never overwrite newer data.
- Fix: Trigger evaluation is now paused during
/vjourney reloadand resumed only after the advancement tabs are rebuilt, preventing an async evaluation cycle from racing against a half-rebuilt state. The polling task is also cancelled before any restart so reloads cannot leak a timer. - Fix: Non-persistent achievements are no longer briefly revoked and then re-granted while a player's data is still loading, since count-based triggers temporarily read zero during that window.
- Fix:
permissiontriggers are now resolved during the main-thread snapshot phase, so LuckPerms/Bukkit permission lookups no longer run on the async evaluation thread. - Performance: BetonQuest tag and point lookups now cache the resolved reflection methods instead of re-scanning the API on every evaluation cycle.
- Performance: WorldGuard
region_enterchecks now resolve all configured regions with a single query per player per cycle instead of one query per region. - Validation: Achievement keys longer than 191 characters now log a warning at load time, since they could otherwise silently fail to save to the database.
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:Z8gGL8iq:ZXdVO4DF"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:Z8gGL8iq:ZXdVO4DF"
}

