▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
XRank

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

Extreme

Alpha20.08.2026

Список изменений

Added

  • MySQL & SQLite storage backends, selectable via storage.type in 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 via CompletableFuture with a dedicated thread pool
  • RankChangeEvent so other plugins can listen to rank changes (old/new ranks)
  • allow_to_use_api config 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-enabled option — Player#displayName is 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 / -offline batch targets alongside -all for give, remove, and list
  • Team name collision fallback — team names use xr_ + UUID hash with _1.._99 retry, 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 to setFormat, 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 from plugin.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>), with fixConfig merging missing keys from the bundled config; ranks is intentionally never auto-filled
  • Branding — version display parses -alpha/-beta/-rls suffixes for color; /xrank with no/unknown args shows version info

Fixed

  • Chat double prefix — rank prefix could appear twice on versions where %1$s expands to displayName
  • modifyRanks double invocation in remove — replaced with a single pass returning a ModifyResult (old/new/changed)
  • truncate dropping the rest of the string when an RGB color code didn't fit — now skips the code and keeps subsequent characters
  • saveData() 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 to PlaceholderAPI.registerExpansion (with ExpansionManager fallback 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

  • help subcommand and help page — redundant with tab-completion
  • list-default-tag — default ranks are no longer listed as records (list reflects only stored ranks)
  • Chat takeover — setCancelled(true) + manual broadcast removed in favor of setFormat
  • Per-player independent scoreboards — replaced by the shared scoreboard approach

Файлы

XRank-1.1-alpha.jar(29.93 KiB)
Основной
Скачать

Метаданные

Канал релиза

Alpha

Номер версии

1.1-alpha

Загрузчики

Bukkit
Folia
Paper
Purpur
Spigot

Версии игры

1.8–26.2

Загрузок

2

Дата публикации

20.08.2026

Загрузил

ID версии

Главная