-
Notifications
You must be signed in to change notification settings - Fork 0
Contributing
Shahid_Reza edited this page Jun 28, 2026
·
1 revision
Contributions are welcome! This page covers how to contribute to Toolmetry Server Doctor.
| Way | How |
|---|---|
| π Report bugs | Open a GitHub Issue |
| π‘ Suggest features |
Open a GitHub Issue with the enhancement label |
| π Improve docs | Edit any wiki page on GitHub |
| π§ Submit code | Open a Pull Request (see below) |
| π Translate | Translate messages.yml to your language |
| β Star the repo | Help others discover the project |
- JDK 17+ (Java 17 LTS recommended)
- Maven 3.9+
- Git
- An IDE (IntelliJ IDEA recommended, Eclipse/VSCode also work)
# Clone the repo
git clone https://github.com/toolmetryai/Toolmetry-Server-Doctor.git
cd server-doctor
# Build
mvn clean package
# Output: target/toolmetryai-server-doctor-1.0.0.jarsrc/main/java/com/toolmetryai/serverdoctor/
βββ ServerDoctorPlugin.java # Main entry point
βββ config/ # Config & message managers
βββ managers/ # Module & task managers
βββ services/ # Scheduler, notifications, Discord, reports
βββ modules/ # All feature modules
β βββ audit/
β βββ plugin/
β βββ config/
β βββ lag/
β βββ crash/
β βββ security/
β βββ update/
β βββ benchmark/
β βββ report/
βββ commands/ # Command handlers
β βββ tools/ # 27+ admin tools
βββ gui/ # GUI manager
βββ listeners/ # Event listeners
βββ models/ # Data classes
βββ utils/ # Utilities
- Fork the repo on GitHub
-
Create a feature branch:
git checkout -b feature/my-new-feature
- Make your changes following the code style below
-
Test thoroughly β make sure
mvn clean packagesucceeds -
Commit with a clear message:
git commit -m "Add feature: my new feature" -
Push to your fork:
git push origin feature/my-new-feature
-
Open a Pull Request on GitHub with:
- Clear description of what changed
- Why you made the change
- Any breaking changes
- Screenshots (if UI-related)
- Java 17+ features OK (records, switch expressions, var, etc.)
- 4-space indentation
- 100-char line limit
- Use
finalfor variables that don't change - Add Javadoc for public methods
-
Use
@NotNull/@Nullablefromorg.jetbrains.annotations
/**
* Runs a server audit and returns the result.
*
* @param sender the command sender (may be null for scheduled scans)
* @return the audit result, never null
*/
public @NotNull AuditResult runAudit(@Nullable CommandSender sender) {
// Implementation
}Before submitting a PR, test:
- Plugin loads without errors on Paper 1.20.1
-
tm helpshows the help menu -
tm auditruns and produces a score -
tm doctorruns and lists plugins -
tm lagruns and lists lag sources -
tm securityruns and shows security score -
tm crashruns and analyzes crashes -
tm benchmarkruns and shows scores -
tm configruns and validates configs -
tm scanruns all diagnostics -
tm reportgenerates an HTML report -
tm guiopens the dashboard (in-game) - Discord webhook works (
tm webhook test) - No errors in console during normal operation
- No errors in
logs/server-doctor.log
To translate Toolmetry to your language:
- Copy
src/main/resources/messages.ymltomessages_<lang>.yml-
<lang>is the ISO 639-1 code (e.g.,esfor Spanish,frfor French)
-
- Translate all strings β keep MiniMessage tags (
<red>,<green>, etc.) intact - Test by setting
general.language: <lang>in config.yml - Submit a PR with your translated file
- Don't translate placeholders like
{player},{score}, etc. - Keep MiniMessage tags intact:
<red>Error</red>not<rojo>Error</rojo> - Test with
/tm reloadafter changes - Keep the same line structure as the original
When reporting a bug, include:
-
Toolmetry version (
tm about) - Server version (Paper MC version)
- Java version
- Steps to reproduce
- Expected behavior
- Actual behavior
- Console errors (paste to gist.github.com if long)
-
Your
config.yml(remove sensitive info like webhook URLs)
Use the bug report template when opening a GitHub Issue.
When suggesting a feature:
- Describe the problem you're trying to solve
- Describe your proposed solution
- List alternatives you've considered
- Explain why this would be useful to most users
Use the feature request template when opening a GitHub Issue.
Be respectful and constructive. Personal attacks, harassment, and trolling are not tolerated. We're all here to make a great plugin for the Minecraft community.
- π¬ Join our Discord
- π§ Email: support@toolmetry.pro
- π GitHub Issues
Last updated: v1.0.0 β’ Edit this page