Contributing¶
Contributions are welcome — bug reports, fixes, documentation, and features that fit the project's scope.
Reporting a bug¶
Open an issue with:
- the HCFCore version (
/hcf version) and the Paper build; - what you did, what you expected, and what happened;
- the relevant part of
logs/latest.log, and the configuration involved.
Proposing a change¶
- Read
CONTRIBUTING.md: the stack, the conventions and the rules every change follows. - For anything larger than a fix, open an issue first to talk it through.
- Branch from
main, one topic per pull request, and targetmain. ./gradlew buildpasses locally, with no new warning.- Update
docs/in the same pull request when a command, a permission, a setting or a placeholder changes. - Try in game what the unit tests cannot see — listeners, commands, anything that talks to Bukkit — and say what you tried.
The rules in short¶
- No game logic in commands or listeners: the rules live in plain Java, in the module's manager, with unit tests.
- Never block the main thread: every database, file or network operation runs asynchronously.
- Every gameplay value is configuration, and every player-facing text is a key in
lang/en.yml. - Official documentation only: Paper's docs and javadocs, the libraries' own — and say so when something could not be confirmed there.
- No code copied from a commercial plugin.
- No gendered pronoun for a player — in code, messages or configuration.
License¶
HCFCore is released under the MIT License. By contributing, you agree that your contribution is released under the same license.