Links
Tags
Creators
Details
Licensed ARR
Published 9 months ago
Updated 8 months ago
All versions
2.0.0
Release
2.0.08 months ago 85
Compatibility
Minecraft: Java Edition
1.21.x
Platforms
Bukkit
Paper
Purpur
Spigot
Changes
HeadDropDimension — Changelog
v2.0 — 2026-03-01
Fixed
- Skin fetching (
PlayerProfile.complete()) now runs on an async thread instead of the main server thread. Previously every player head drop stalled the server while waiting on Mojang's API. /head <player>offline lookup (Bukkit.getOfflinePlayer()) now runs async. Previously it blocked the main thread on file I/O and potentially a Mojang UUID lookup./headcommand now requires theheaddropdimension.headpermission. Previously it was accessible to every player with no restriction.- Drop chance can no longer drift outside 0–100% from floating-point arithmetic after repeated GUI clicks.
- Plugin no longer crashes or throws a NullPointerException when a death occurs in a custom/plugin-added world. Those worlds are now silently ignored.
Added
/headdrop reload— reloads config.yml without restarting the server. Works from console.- Wither Skeleton skull drop support.
headdropdimension.head.otherspermission — allows getting another player's head. Without it,/headis restricted to your own head only.- Permission re-check on every GUI click. If admin permission is revoked while the GUI is open, the inventory closes immediately.
- Config validation on startup — invalid
drop-chancevalues are clamped to[0, 100]with a console warning instead of silently misbehaving.
Changed
- Config values are now cached in memory on startup and on reload. Previously
getConfig()was called 4–6 times per entity death event. java.util.Randomreplaced withThreadLocalRandomfor the drop chance roll.- GUI inventory identification now uses a typed
InventoryHolderinstead of checking the inventory title string. This prevents accidental interception of other plugins' inventories. saveConfig()after a GUI toggle is debounced — rapid clicks batch into a single disk write after 2 seconds instead of hitting the disk on every click./headnow tab-completes online player names.
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:9hpwHNn8:dEYloq5V"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:9hpwHNn8:dEYloq5V"
}

