
uxmEssentials
A modern, modular essentials plugin for Paper 26.1.2+. Homes, warps, teleports, economy, kits, moderation, vaults and the rest of the day-to-day toolkit clean, Folia-ready and fully translatable. Turn any module off and it wires nothing; rename or alias an
Список изменений
This release is about opening uxmEssentials up. Everything it does is now reachable from other software: from a plugin through a published API you compile against, and from anything else at all through a REST add-on.
The developer API
com.uxplima.uxmessentials:uxmessentials-bukkit-api is a real artifact now, published from this repository's maven branch, with javadocs and a versioned coordinate. UxmEssentialsApi is the front door, and whenReady runs your registration whether uxmEssentials loaded before your plugin or after it.
- Events. Ninety-odd Bukkit events covering everything the plugin does, plus nine you can cancel before they happen: home create, delete and relocate, teleport, warp create and delete, player warp create and hard delete, and kit claim.
- Query API. Ask what is true right now across fourteen contexts: homes, balances, warps, player warps, kits, vaults, sanctions and punishment history, playtime, presence, vanish, teleport requests, worlds, votes, mail and ignores.
- Action API. Change it across twelve contexts: deposits, withdrawals and transfers, homes and warps, kit grants and claims, bans, mutes, kicks, warns and jails, god, flight, game mode, speed, heal and feed, teleports, world load and unload, votes, messages and mail.
- Menu API. Teach the GUI engine your own actions, requirements, placeholders, list sources and icons.
Two guards hold the compatibility promise rather than leaving it to memory. The whole published surface, every type and signature, is written down and compared on each build, so a removal shows up as a deleted line in review. A sample consumer plugin is compiled in CI against the artifacts each commit publishes, so a broken coordinate or a POM that forgot a dependency fails on the commit that broke it.
Reference: https://docs.uxplima.com/minecraft/uxmessentials/developer/overview/
The REST add-on
uxmEssentials-rest is a new companion jar that puts the same reach on a socket, for the programs that are not plugins: a web panel, a Discord bot, a store webhook, a script.
- Every read and write above, as
GETandPOSTunder/api/v1. - A WebSocket event stream at
/api/v1/eventscarrying all seventy-four things uxmEssentials announces, so nothing has to be found out by polling. Subscribe by name, by context (economy.*), or to everything. - Tokens are issued in game with
/uxmapi token create <label>, shown once, stored as a hash, and scoped:read,write,events. - It ships dormant. On first start it writes its config, says in the log where the switch is, and opens nothing. The default bind address is loopback.
It is built on the published API and nothing else, which is the rule that keeps the two from drifting apart.
Also in this release
- Offline mode is properly supported. A player name now resolves to an account through one shared lookup that works on a cracked server, and skins resolve the same way. A vote credited to a name with different capitalisation reaches the right account.
- Nine modules now ship switched off on a fresh install, so a new server starts with what it asked for. Existing servers are untouched.
- The menu engine finished its sweep. The kit and warp selectors and managers, both trade windows, the invsee and endersee mirrors, the player and currency pickers, the vote site board and the snapshot preview are all spec-driven now, which means all of them can be re-skinned without touching code.
Upgrading
Drop the new jars in and restart. There are no config or database migrations to run by hand.
Downloads
uxmEssentials-0.6.0.jarthe plugin, and the only file you needuxmEssentials-velocity-0.6.0-all.jarthe Velocity proxy brokeruxmEssentials-redis-0.6.0.jarthe Redis transport, for a network without a proxyuxmEssentials-discord-0.6.0.jarthe Discord bridgeuxmEssentials-rest-0.6.0.jarthe new HTTP and WebSocket API
