Tags
Creators
Details
3.0.0
Compatibility
Changes
This is a major update. mWL now exposes a public addon API, runs on Spigot and Bukkit in addition to Paper, and drops offline/cracked UUID support in favor of always resolving the real Mojang UUID. Several bugs found during live testing have also been fixed.
⚠️ Breaking Changes
- Offline-mode (cracked UUID) support has been removed. The
whitelist.modeconfig option no longer exists. Your server must run in online-mode. - Existing entries created under
OFFLINEmode are migrated automatically on read, but since offline UUIDs are name-derived, they may no longer match a player once resolved against their real Mojang UUID. Check/mwl listafter upgrading if you previously ran offline.
✨ What's Changed
🧩 Public Addon API
- Added
WhitelistAPI/WhitelistAPIImpl(me.truec0der.mwhitelist.api) so other plugins can add, remove, and query whitelist entries without touching internal services - Exposed via
MWhitelist.getAPI()and registered through Bukkit'sServicesManager - New custom events for addons to hook into:
PlayerWhitelistAddEvent,PlayerWhitelistRemoveEvent,PlayerWhitelistExpiredEvent,WhitelistStatusChangeEvent
🖥️ Spigot & Bukkit Compatibility
- Compiles against
spigot-apiinstead ofpaper-api, so mWL now runs on Spigot and Bukkit, not just Paper - Adventure is bundled and relocated into the jar, since only Paper natively exposes Adventure
Componentoverloads forsendMessageandPlayerLoginEvent#disallow - All messages now go through a shared serializer that converts to a legacy hex-color string, so colors render identically on Spigot, Bukkit, and Paper
🔄 Online-mode Only
- Player UUIDs are now always resolved as the real Mojang UUID instead of a name-derived offline hash
- A player's stored nickname refreshes automatically on join and on periodic check instead of going stale after a rename
- Legacy
{offline, online}UUID entries are migrated automatically to the new flat format
🐛 Bug Fixes
- Fixed hex chat colors (
<#RRGGBB>) showing up as raw text (e.g.1aeb71mWL) instead of actual color. The legacy serializer now emits the format vanilla clients understand - Console output no longer contains leftover color-code artifacts, and multi-line messages are collapsed to a single console line
- Fixed the update checker calling a GitHub Pages URL that was never enabled. It now reads
mWL.jsondirectly fromraw.githubusercontent.com
📥 Installation
Download mWL-3.0.0.jar and place it in your plugins folder.
Online-mode required: make sure
online-mode=trueinserver.propertiesbefore upgrading.
🔄 Upgrading from v2.x
- Stop the server, replace the JAR, start the server
- Remove
whitelist.modefromconfig.ymlif present, it's no longer read - If you previously ran in
OFFLINEmode, verify/mwl listafter the first restart - No manual database migration needed, legacy entries are converted automatically
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:bNVpawDk:PTkj2ra0"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:bNVpawDk:PTkj2ra0"
}


