1.3 KiB
1.3 KiB
Contributing
Development Setup
Use Java 25 or newer. The Gradle wrapper downloads Gradle 9.8; dependencies are declared in build.gradle and resolved from Maven Central, PaperMC, and EngineHub.
./gradlew build
The standard build runs JUnit 5 tests without starting Minecraft. Tests use Mockito for Bukkit and external-plugin boundaries. Keep domain and configuration behavior testable without a running server.
Live Server Tests
Live tests are opt-in and run separately from build:
METROPOLIS_RCON_HOST=127.0.0.1 \
METROPOLIS_RCON_PORT=25575 \
METROPOLIS_RCON_PASSWORD=... \
METROPOLIS_SERVER_DIR=/path/to/server \
./gradlew integrationTest
Use a disposable or backed-up Paper server with compatible WorldGuard and WorldEdit plugin jars installed. Keep RCON local, use a temporary password, and restore the server after tests that modify regions or worlds.
Pull Requests
- Keep changes focused and include tests for behavior changes.
- Run
./gradlew buildbefore submitting. - Run
integrationTestonly when changing behavior that requires Paper or the external plugins; do not add it to the default build. - Update
README.mdand project descriptions when user-facing setup, commands, or dependencies change. - Keep generated build output, server data, credentials, and local
.envfiles out of commits.