Links
Tags
Creators
Details
1.0.1
Compatibility
Changes
Changelog
All notable changes to ResourcePackEnforcer will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
[1.1.0-SNAPSHOT] - 2026-06-11
⚠️ Snapshot release — not recommended for production use.
Added
ViaVersionHook— soft dependency integration for ViaVersion; detects client protocol version at runtime- Resource pack sending is skipped automatically for clients below Minecraft 1.7 (no pack support)
- Prompt message is skipped automatically for clients below Minecraft 1.17 (no prompt support)
PackValidator— asynchronously validates the resource pack URL on startup via HTTP HEAD requestfallback-urlconfig option — secondary URL used automatically if the primary URL is unreachable- Warning banner in console if neither primary nor fallback URL is reachable on startup
ReconnectManager— grants players a configurable number of retries before kicking on declinereconnect.max-retriesconfig option — number of attempts before kick (0= disabled, kick immediately)reconnect.retry-delayconfig option — seconds to wait before resending the pack after a declinemessages.retry-message— shown to the player on each failed attempt (placeholders:%retries%,%delay%)messages.retry-expired-message— shown when all retries are exhausted before the kick
Changed
ResourcePackListener— kick logic now routed throughReconnectManager; direct kick only if retries are disabled or exhaustedResourcePackListener—PlayerQuitEventnow cleans up any pending retry tasks for the leaving playerResourcePackManager— now readsfallback-urlfrom config and exposessetActiveUrl()for runtime URL switchingResourcePackManager— pack sending respects ViaVersion client version; prompt is omitted for unsupported clientsResourcePackPlugin— wiresViaVersionHook,ReconnectManagerandPackValidatoron startupResourcePackPlugin—PackValidatorresult switches active URL to fallback automatically if needed
For upcoming changes see the [GitHub Releases](https://github.com/Shvquu/RPMG/releases) page.
Optional dependencies
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:n9CvNcbS:s69i9NLg"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:n9CvNcbS:s69i9NLg"
}

