Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Avatar for QuantifyingEpic

Never Lose Your Player Head Data Again.

Report EpicSkullKeeper?

R

1.0.2

Additions Added support for all Minecraft versions from 1.13 to 26.3 via a single universal JAR: Build target upgraded to spigot-api 26.3 (dependency repository switched to PaperMC, as the official Spigot repository stopped at 1.20.4); Bytecode target lowered to Java 8 (major version 52), allowing the JAR to load on servers ranging from Java 8 (MC 1.13) to Java 25 (MC 26.3). Added NmsSkullStore1_13, a fallback storage implementation specifically for 1.13: Since 1.13 lacks the PersistentDataContainer API, this implementation uses reflection to read/write skull TileEntity NBT; data is automatically saved with the chunk, requiring no separate data files. Added storage abstractions SkullDataStore / PdcSkullStore; the main class automatically selects the implementation based on runtime API capabilities (the PDC class loads only after confirming its existence to prevent class loading failures on 1.13). Fixes Fixed hardcoded field names and NBT method names in the 1.13 reflection-based storage: previously, mismatched mapping names in server cores caused reflection failures, preventing the plugin from enabling on 1.13; now matches by name + type/signature and correctly handles field shadowing in CraftBlockEntityState. Fixed an issue where the plugin would report "Enabled" but lack active listeners if storage layer initialization failed: now logs a severe error and explicitly disables itself. Fixed reflection calls logging only the InvocationTargetException wrapper while losing the underlying exception: now unwraps the exception to log the root cause. What is the purpose of the 1.13-specific fallback storage NmsSkullStore1_13? How is the main class implementation selected? How was the hardcoding issue in the reflection-based storage fixed?

Information

Published
October 15, 2026
1Downloads

Platforms

Paper
Paper
1.13–26.3