Skip to content

v0.6.0

Choose a tag to compare

@Shvquu Shvquu released this 14 Jun 13:10
· 80 commits to main since this release

Changelog

All notable changes to ServerDoctor are documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/),
and this project adheres to [Semantic Versioning](https://semver.org/).

[0.6.0] - 2026-06-14

This release expands ServerDoctor from a single-platform Paper plugin into a
multi-platform diagnostics suite shipped as one universal jar, adds an update
checker and an optional PlaceholderAPI integration, and makes all user-facing
text translatable.

Added

  • Folia support. The plugin detects Folia at runtime and uses a region-aware
    scheduler (FoliaSchedulerAdapter); the same Bukkit plugin now runs on both
    Paper and Folia. plugin.yml is marked folia-supported: true.
  • Velocity (proxy) support. New serverdoctor-velocity module with proxy
    adapters and a /serverdoctor command. Thanks to the capability model, only
    proxy-applicable scanners run (plugin, dependency, conflict, security); the
    performance scanner is skipped automatically.
  • Single universal jar. New serverdoctor-universal module shades Paper,
    Folia, and Velocity support into one jar containing both plugin.yml and
    velocity-plugin.json. Build with ./gradlew :serverdoctor-universal:shadowJar.
  • Update checker. Checks GitHub releases on startup (asynchronously) and logs
    a clear console notice when a newer version is available. Available on both
    Paper/Folia and Velocity, with a configurable DISABLE_ON_UPDATE switch.
  • PlaceholderAPI integration (optional). Registered only when PlaceholderAPI
    is installed — never forced. Placeholders: %serverdoctor_tps%, _mspt,
    _memory, _memory_used, _memory_max, _players, _conflicts,
    _security_risks, _recommendations, _status.
  • Configurable messages (messages.yml). All command, startup, and update
    texts are externalized and translatable. The file is copied to the plugin's
    data folder on first start; missing keys fall back to the bundled defaults.
  • /serverdoctor reload. Reloads messages.yml at runtime without a restart
    (permission serverdoctor.admin).

Changed

  • Java 17 bytecode. The project now compiles to Java 17 (toolchain stays
    JDK 21) with api-version: 1.20. One jar therefore supports Paper/Folia from
    1.20 up to the latest version, instead of requiring Java 21.
  • Build output moved. The final plugin jar is now produced by
    serverdoctor-universal rather than serverdoctor-paper (the Shadow plugin
    was removed from the Paper module).

Notes

  • Dynamic scanner findings (e.g. "Low TPS: 12.4") are still generated in code and
    are not yet part of messages.yml.
  • paper-api is pinned to 1.21.4; due to Bukkit's forward compatibility plus
    api-version: 1.20, the jar still runs from 1.20 to the latest. Bump the
    paper entry in libs.versions.toml if you want the newest API surface.

Still planned

  • REST API and webhooks (Discord/Slack/Teams)
  • PostgreSQL and MariaDB storage backends
  • BungeeCord adapter
  • A real security advisory source (currently a metadata heuristic)