uxmlib-integration
Soft-dependency hooks behind present-guards, native Display holograms, transient toasts, Discord webhooks and an online-data lifecycle manager.
Everything that touches something outside your own plugin: another plugin, the Discord API, or the server's own entity and advancement systems.
One rule runs through the whole module. Every third-party symbol is touched only past a
plugin-present guard, so a server without the soft dependency loads cleanly rather than throwing
NoClassDefFoundError at enable.
| Page | Covers |
|---|---|
| Hooks | Economy, permissions, placeholders, regions, and the deferred hook registry |
| Holograms | Native Display holograms, appearance, visibility pools, animation |
| Hologram widgets | Paged, switchable and leaderboard holograms, per-viewer content |
| Toasts | Transient advancement popups that leave nothing behind |
| Discord webhooks | Embeds and messages with no bot and no JDA |
| Online data | Load on join, flush periodically, save on quit |
Why guards rather than plugin.yml depends
A softdepend in plugin.yml controls load order. It does not stop the JVM linking a class you
referenced when the plugin providing it is absent. The guard is what does that:
if (Hooks.isPresent("PlaceholderAPI")) {
// only now is it safe to reference a PlaceholderAPI type
}
Each hook here already does this internally, which is why they return Optional rather than throwing.
Was this page helpful?