Thanks for helping improve MahjongEngine.
- Search existing issues and pull requests first.
- Keep each pull request focused on one change.
- Prefer small, reviewable commits.
- Fork and clone the repository.
- Use JDK 21+ for the default build. The released jar is built with Java 17 bytecode and
api-version: 1.20, so a single jar runs on Paper/Folia 1.20.1 through 26.2. - Build the project:
.\gradlew.bat buildTo validate source/API compatibility against Paper 26.2:
.\gradlew.bat test "-PmahjongPaperDevBundle=26.2-rc-2.build.9-alpha" -PmahjongJavaToolchain=25 -PmahjongJavaTarget=25This command is only a compatibility check. Release artifacts should use the default build so the distributed jar remains compatible with the whole supported server range.
- Create a branch from
dev. - Implement your change.
- Run tests:
.\gradlew.bat test- If behavior changes, update docs and user-facing text.
- Open a pull request to
devwith a clear summary.
- Follow existing code style and naming conventions.
- Avoid unrelated refactors in functional bug-fix PRs.
- Keep behavior changes explicit and tested.
- Prefer backwards-compatible changes when possible.
Use concise, descriptive messages, for example:
fix: handle null seat during restorerefactor: extract shared reaction helpersdocs: update setup instructions
Use the Bug Report template and include:
- Steps to reproduce
- Expected vs actual behavior
- Server and plugin version
- Logs or stack traces if available
Do not open public issues for vulnerabilities. Report privately via: