You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
2.1.2.0 - Offline Player Management, Forge Event Bus 7 & MC 26.1+ Permissions
/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 with player-not-found as soon as the player logged off — even though their violation levels and mining state were still held in memory.
ViolationEngine now maintains a bidirectional name↔UUID history (knownPlayerIds, knownPlayerNames), populated on every violation increase. This index is deliberately not cleared by resetViolation, 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 check and reset offers the union of online players and known player names. kick remains 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 BUS fields, which had silently stopped firing.
Forge / NeoForge: mod resources (config.yml, language.yml, and the Configuration/*.yml group 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.mcmeta is 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.toml comment.