
XRank
A title plugin that displays titles everywhere, in chat, tab, nametag, even system message. Supports MySQL, SQLite and YAML. Works on 1.8.x+ and all Bukkit based server.
Оцените первым
41
0
Список изменений
Added
- MySQL & SQLite storage backends, selectable via
storage.typein config - Automatic bidirectional migration between YAML / SQLite / MySQL on storage type switch; YAML is backed up to
data.yml.bak(never deleted) - Developer API:
getPlayerRanks(),setPlayerRanks(),addRank(),removeRank()— fully async viaCompletableFuturewith a dedicated thread pool RankChangeEventso other plugins can listen to rank changes (old/new ranks)allow_to_use_apiconfig option to disable the public API- PlaceholderAPI expansion (optional dependency):
%xrank_ranks%,%xrank_ranks_raw%,%xrank_has_rank%,%xrank_prefix%,%xrank_suffix% - TAB plugin detection — xrank yields TabList rendering to TAB when present and exposes ranks via PAPI instead
display-name-enabledoption —Player#displayNameis set so system messages (/tp, death messages, etc.) show the rank prefix; uses Adventure API on modern Paper and NMS reflection on legacy versions-online/-offlinebatch targets alongside-allforgive,remove, andlist- Team name collision fallback — team names use
xr_+ UUID hash with_1.._99retry, so registration never throws - Nametag color inheritance — the team color is derived from the last effective color code in the rank, so nametag/name text matches the rank color (respects
&r) - Tab name length guard — protocol-length check on both old (16) and new (64) versions; if exceeded, Tab falls back to the plain name and logs a warning
- Periodic cleanup of expired remove-confirmation records (every 60s)
- Debug logging for storage switches, migrations, joins, commands, and server detection
- UUID + name hybrid storage — ranks are keyed by UUID with a redundant name column, so ranks follow a player across name changes
Changed
- Storage keying — switched from name-based to UUID + name hybrid
- Chat handling — switched from
setCancelled(true)+ manual broadcast tosetFormat, coexisting with other chat plugins - Scoreboard — switched from per-player independent scoreboards to the shared main scoreboard with per-player teams (no longer hijacks the player's scoreboard)
- Chat prefix logic — modern versions rely on
%1$s(displayName already contains the prefix); legacy versions assemble the prefix manually - PAPI expansion metadata —
getIdentifier()/getAuthor()/getVersion()now read fromplugin.yml(identifier forced lowercase; author supports multiple co-authors via the full authors list) - Config philosophy — all player-facing messages come from config (
messages.<lang>), withfixConfigmerging missing keys from the bundled config;ranksis intentionally never auto-filled - Branding — version display parses
-alpha/-beta/-rlssuffixes for color;/xrankwith no/unknown args shows version info
Fixed
- Chat double prefix — rank prefix could appear twice on versions where
%1$sexpands to displayName modifyRanksdouble invocation inremove— replaced with a single pass returning aModifyResult(old/new/changed)truncatedropping the rest of the string when an RGB color code didn't fit — now skips the code and keeps subsequent characterssaveData()being a no-op — now actually flushes the storage{tag}placeholder leaking into output — removed unused placeholder from list format(无头衔)colliding with a real rank named that — no-rank state now uses a dedicated message (list-no-ranks)TreeSet<String>type error in name→UUID maps- PAPI
register()resolution — switched toPlaceholderAPI.registerExpansion(withExpansionManagerfallback for older PAPI) - RGB length accounting in truncation — RGB codes counted as 14 protocol chars
- Legacy versions — 1.8.8 verified working (system messages via NMS reflection, chat prefix via legacy branch)
Removed
helpsubcommand and help page — redundant with tab-completionlist-default-tag— default ranks are no longer listed as records (list reflects only stored ranks)- Chat takeover —
setCancelled(true)+ manual broadcast removed in favor ofsetFormat - Per-player independent scoreboards — replaced by the shared scoreboard approach
Файлы
XRank-1.1-alpha.jar(29.93 KiB)
ОсновнойМетаданные
Канал релиза
Alpha
Номер версии
1.1-alpha
Загрузчики
BukkitFoliaPaperPurpurSpigot
Версии игры
1.8–26.2
Загрузок
2
Дата публикации
20.08.2026
