🚀 X-SetSpawn v2.3 - Changelog
## ✨ New Features
- **Debug system**: New `/xs debug` command to toggle debug mode at runtime, plus a `DebugLogger` that logs detailed internal operations for easier troubleshooting.
- **PlaceholderAPI expansion**: Added `%xsetspawn_cooldown%`, `%xsetspawn_delay%`, `%xsetspawn_is_pending%`, `%xsetspawn_spawn_set%`, `%xsetspawn_spawn_x%`, `%xsetspawn_spawn_y%`, `%xsetspawn_spawn_z%`, `%xsetspawn_spawn_world%`, `%xsetspawn_spawn_coords%`, `%xsetspawn_back_available%`, `%xsetspawn_back_remaining%`, `%xsetspawn_back_world%`, `%xsetspawn_back_x%`, `%xsetspawn_back_y%`, `%xsetspawn_back_z%`, `%xsetspawn_back_coords%`, `%xsetspawn_back_expiry%`, `%xsetspawn_named_count%`, and `%xsetspawn_spawn_world_name:<name>%` placeholders.
- **Config auto-update with backup**: When the config version changes, the old config is backed up as `config_old.yml` before generating the new one.
- **Update checker**: Checks the SpigotMC API for new versions on startup.
- **Adventure MiniMessage color support**: Internal color system upgraded to use Adventure's MiniMessage for better formatting.
- **Shared dependency directory**: Libby now downloads runtime libraries to `plugins/X-API/` so all X plugins share dependencies instead of each having their own copy.
- Updated startup messages with standardized logging format.
- Standardized plugin lifecycle (onEnable/onDisable) for improved stability and error handling.
## 🐛 Bug Fixes
- Fixed duplicate `connect-on-first-join` case label in switch statement.
- Fixed BossBar text corruption caused by redundant `.replace("&", "§")` on already color-processed text. Literal `&` characters in messages (e.g. "R&B") would display as `§` instead.
- Fixed NMS reflection title text corruption with the same redundant `.replace("&", "§")` issue on pre-1.10 servers.
- Fixed `/xs reload` not cancelling active teleport countdowns, leaving orphaned BossBars, holograms and particle tasks running with stale config values. All pending teleports are now properly cancelled and cleaned up on reload.
- Added missing `holograms:` configuration section to the default `config.yml` (enabled, text, height-offset). Previously the section was absent making the feature unconfigurable without manual editing.
- Fixed BungeeCord module calling non-existent `getConfig()` method, preventing compilation.
- Fixed Velocity module referencing undefined `configuration` variable, preventing compilation.
- Fixed console startup messages not having color. All `logInfo`, `logWarning` and `logError` messages now display with proper color formatting in the console.
- Debug system now sends messages to the player who toggled it via command, and to console only when enabled via config. Command responses now use the prefix from `config.yml`.
- Fixed `NoClassDefFoundError` crash when FancyHolograms or DecentHolograms is not installed. All hologram API calls now use pure reflection.
- Debug messages now include the plugin name in the format: `[DEBUG] [X-SetSpawn] [Category] message`.
- Fixed CommandListener hiding **all** namespaced commands (including other plugins'). Now it only hides its own namespace (`xsetspawn:*`, `x-setspawn:*`).
## 🔗 Integrations
- Hologram system now supports **FancyHolograms** and **HolographicDisplays** as hologram providers, with automatic detection and priority-based selection (FH > HD > ArmorStand fallback).
Optional dependencies
PlaceholderAPI
Any compatible version
PvPManager
Any compatible version
FancyHolograms
Any compatible version
DecentHolograms
Any compatible version
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }