Tags
Creators
Details
All versions
2.1.2.0
Release
2.1.2.0 - Offline Mgmt, Forge EB7, MC26.1+ Perms2 weeks ago 7,788
Compatibility
Minecraft: Java Edition
26.3
26.2
26.1.x
1.21.x
1.20.x
1.19.x
1.18.x
Platforms
Folia
Paper
Purpur
Changes
New features
/mt check <player>and/mt reset <player>now work on players who are not currently on the server. Previously the target was resolved through a name-to-UUID lookup that only queried online players, so both commands failed withplayer-not-foundas soon as the player logged off — even though their violation levels and mining state were still held in memory.ViolationEnginenow maintains a bidirectional name↔UUID history (knownPlayerIds,knownPlayerNames), populated on every violation increase. This index is deliberately not cleared byresetViolation, so a player who has just been reset stays addressable by name.- Each platform resolves a target name through: engine history → platform-side name cache → online lookup → offline profile (Bukkit only, guarded by
hasPlayedBefore()/isOnline()). - Tab completion for
checkandresetoffers the union of online players and known player names.kickremains online-only.
/mt reset <player>now also clears the mining-behaviour counters (mining path, vein count, vein clusters, air exposure) and the placed-block / artificial-air tracking maps, in addition to zeroing the violation level. Resetting only the violation counter left a stale mining path behind, which caused the next rare-ore break to immediately re-evaluate the old path and push the violation level back up.
Fixed BUG
/mt kick <player>no longer broadcasts the kick message and the lightning effect for a player who is not online. Since name resolution became offline-aware, the command would otherwise report success and kick nobody.- Forge: listener registration no longer relies on the legacy event bus, which has been removed in recent Forge versions. Lifecycle, mining and server-tick listeners are now registered on the EventBus 7 static
BUSfields, which had silently stopped firing. - Forge / NeoForge: mod resources (
config.yml,language.yml, and theConfiguration/*.ymlgroup files) are now loaded through the mod-file resource API instead of the classloader, which could not see them inside the mod JAR. - Forge / NeoForge: a missing bundled resource or a missing YAML file is now reported as a warning and treated as an empty config, instead of throwing and aborting startup. The same guard was applied to the core resource loader.
- Fabric: permission-gated commands now work for OP players on Minecraft 26.1+ without LuckPerms installed. The MC 26.1+ permission model is detected once at class-load time, and the bypass and verbose checks now share a single OP-level check.
Other Changed
pack.mcmetais now bundled into the mod JAR, making it a valid resource pack.- Resource filtering during the build is forced to UTF-8 to keep non-ASCII config content intact.
- Replaced a non-ASCII em-dash in a
mods.tomlcomment.
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:O3VQnhG2:Iv7993pf"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:O3VQnhG2:Iv7993pf"
}

