Skip to content

Toolmetry Server Doctor v1.0.0

Latest

Choose a tag to compare

@shahidreza5542 shahidreza5542 released this 28 Jun 02:03
290d21e

Toolmetry Server Doctor v1.0.0

First public release! 🎉

The all-in-one diagnostics, optimization, monitoring, security, and reporting plugin for Minecraft Paper servers. One command (/tm), 48 features, zero server lag.


✨ What's New

This is the first public release of Toolmetry Server Doctor — a complete rewrite focused on simplicity, performance, and Discord integration.

🎯 Core Philosophy

  • ONE command — Every feature is a subcommand of /tm. No more 30+ commands to remember.
  • Zero lag by default — All auto-scans disabled. Run tm scan manually when you need diagnostics.
  • Discord-first — Every command's output is forwarded to your Discord channel.
  • Fail-safe — Broken config? Plugin auto-backs it up and writes fresh defaults. Never crashes.

🚀 Features

Diagnostics (9 modules)

  • 🩺 Server Audit — 0–100 health score across Performance, Security, Configuration, Stability, Compatibility
  • 🔌 Plugin Doctor — Detects duplicates, missing deps, conflicts, deprecated APIs, memory-heavy plugins
  • 📄 Config Validator — Validates every plugin's YAML configs with line numbers and suggested fixes
  • Lag Analyzer — Identifies entity overload, hopper spam, dropped items, redstone, chunk bottlenecks
  • 💥 Crash Analyzer — Reads crash reports, identifies root cause, attributes to plugin, suggests solutions
  • 🔐 Security Scanner — Audits OPs, RCON, online mode, whitelist, permissions (0–100 score)
  • 🔄 Update Checker — Asynchronously checks Paper and plugin versions (PaperMC + Spiget APIs)
  • ⏱️ Benchmark — 8 performance tests (memory, CPU, entities, chunks, items, TPS, MSPT)
  • 📝 HTML Reports — Modern responsive reports with Chart.js, 4 themes, printable

27+ Admin Tools

  • tm ping, tm serverinfo, tm worldinfo, tm playerinfo
  • tm purge <mobs|items|animals|xps|all>, tm gc, tm invclear
  • tm heal, tm feed, tm gamemode, tm fly, tm god, tm vanish, tm speed
  • tm day, tm night, tm sun, tm rain, tm saveall
  • tm broadcast, tm difficulty, tm whitelist, tm opmanager
  • tm kickall, tm tphere, tm diskusage, tm meminfo, tm motd

Discord Integration 🔔

  • Every command's output forwarded to Discord (configurable)
  • 🟢 Server startup / 🔴 shutdown notifications
  • 🚨 Critical alerts (low audit scores, crashes, security vulnerabilities)
  • Color-coded embeds (blue=INFO, yellow=WARN, orange=ERROR, red=CRITICAL)
  • Rate-limited (5 sec between same-message) to prevent spam
  • Setup: tm webhook <url> then tm webhook test

GUI Dashboard 🖥️

  • In-game inventory GUI built with Adventure API + MiniMessage
  • Click any module to run it instantly
  • Open with tm gui

📋 Commands

Every feature is a subcommand of /tm:

Command What it does
tm audit Server health score (0-100)
tm doctor Plugin health check
tm lag Find lag sources
tm security Security vulnerability scan
tm crash Analyze crash reports
tm benchmark Performance benchmark
tm config Validate plugin YAML configs
tm scan Run all diagnostics at once
tm report Generate HTML report
tm webhook <url|test|off> Discord setup
tm tools List all 27+ admin tools
tm gui Open dashboard (in-game)
tm help Full command list

Type tm in-game or console for the full menu.


⚡ Performance

  • All scans run async — main thread never blocked
  • Auto-scans disabled by default — zero background work unless you opt in
  • Configurable thread pool (default 1 thread) — works on 1GB RAM servers
  • Rate-limited Discord notifications — no webhook spam
  • Fail-safe config loading — broken config.yml is auto-backed up, plugin never crashes
  • < 1 MB RAM when idle, 0% CPU

📦 Installation

  1. Drop toolmetryai-server-doctor-1.0.0.jar into plugins/
  2. Restart server
  3. Type tm in console or /tm in-game

Discord Setup (Optional, Recommended)

  1. Discord → Channel Settings → Integrations → Webhooks → New Webhook → Copy URL
  2. In console: tm webhook https://discord.com/api/webhooks/...
  3. Test: tm webhook test

⚙️ Requirements

  • Paper 1.20.x (tested on 1.20.1)
  • Java 17+ (works on Java 17, 21, 25)
  • No external dependencies

📚 Documentation


📥 Download

File Size Use
toolmetryai-server-doctor-1.0.0.jar 300 KB Install on your server
toolmetry-server-doctor-src.zip 164 KB Source code
toolmetry-icons.zip 172 KB Plugin icons
toolmetry-wiki.zip 60 KB Full documentation

🔧 Technical Details

  • Java 17+ (works on Java 17, 21, 25)
  • Paper API 1.20.1
  • Adventure API + MiniMessage for text formatting
  • 74 Java source files organized into clean modular packages
  • Compiles with mvn clean package — zero errors
  • No placeholders, TODOs, or fake implementations
  • API version: 1.20 (works on Paper 1.20.x)

🎯 Design Decisions

Why only ONE command (/tm)?

Previous versions had 38+ commands with 100+ aliases. Users were confused. v1.0.0 has exactly ONE command — every feature is a subcommand. No aliases, no confusion.

Why are auto-scans disabled by default?

Auto-scans every 2 minutes were causing lag on low-end servers in earlier versions. v1.0.0 ships with all auto-scans OFF. Run tm scan manually when you want diagnostics.

Why no Toolmetry upload feature?

The earlier "upload to toolmetry.pro" feature used a non-existent endpoint. It was removed in favor of Discord webhooks, which work for everyone.

Why getDescription() instead of getPluginMeta()?

getPluginMeta() is Paper 1.20.5+ only. getDescription() works on all Paper versions back to 1.13. Using getDescription() ensures compatibility with Paper 1.20.1.


📝 Permissions

Permission Description Default
toolmetry.admin Access to all features OP
toolmetry.tools Use admin tools (purge, gc, heal, etc.) OP

🌐 Links


📄 License

MIT — free for personal and commercial use.


Full Changelog: https://github.com/toolmetryai/Toolmetry-Server-Doctor