Links
Tags
Creators
Details
Licensed GPL-3.0-or-later
Published 10 months ago
Updated last week
All versions
1.2.1
Release
Mod Detector Plugin 1.2.19 months ago 43
Compatibility
Minecraft: Java Edition
1.21.x
Platform
Paper
Changes
Added
-
Session Tracking
- Tracks
totalTimePlayedSecondsacross all sessions - Records
sessionCountfor each player - Maintains
sessionsarray with join/leave times and duration for each session
- Tracks
-
Clickable Player Names
- Player names in
/md playersare now clickable - Click to run
/md info <player>automatically - Hover text shows "Click to view channels"
- Player names in
Changed
-
Simplified Action Config
- Replaced
action: kick/log/bothwith simplekick: true/false - Detections are now ALWAYS logged regardless of kick setting
- Cleaner config, same functionality
- Replaced
-
Smarter Detection Logging
- Only creates new JSON entry when player's modlist changes
- Returning players with same mods just add session info to existing entry
- Reduces file size and improves readability
-
Separated Mods and Channels
modsfield now contains resolved mod names (e.g., "Simple Voice Chat")channelsfield now only contains unrecognized/unknown channels/md infocommand updated to show both sections separately
-
Internal Improvements
- Replaced manual JSON parsing with Gson library
- Atomic file writes (write to .tmp, then move) prevents corruption
- Batched I/O with 30-second flush interval reduces disk writes
- Memory cleanup task removes stale player data every 5 minutes
- Proper shutdown handling ensures pending writes are flushed
Fixed
- Console no longer shows
TextComponentImpl{...}blobs for admin notifications
Example Detection Entry
{
"uuid": "f999e944-a15d-4287-bff4-34f63a97832e",
"username": "PlayerName",
"mods": ["Simple Voice Chat", "Noxesium", "AppleSkin", "Fabric API"],
"channels": ["civ:handshake", "civ:class_xp"],
"firstSeen": "2026-01-16T17:28:01Z",
"lastSeen": "2026-01-16T17:32:04Z",
"totalTimePlayedSeconds": 243,
"sessionCount": 2,
"sessions": [
{"joinTime": "2026-01-16T17:27:59Z", "leaveTime": "2026-01-16T17:28:01Z", "durationSeconds": 2},
{"joinTime": "2026-01-16T17:29:20Z", "leaveTime": "2026-01-16T17:32:04Z", "durationSeconds": 241}
]
}
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:ppEJeZTE:eIEh2JGM"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:ppEJeZTE:eIEh2JGM"
}
