# Arena of Shinuwa Server-first PvE arena mod. Phase 0 provides only the bootstrap: mod loading, server configuration, logging and a test setup. No gameplay is implemented yet. ## Development versions Versions retained from the repository: | Component | Version | | --- | --- | | Minecraft | 1.21.1 | | NeoForge | 21.1.235 | | Java toolchain | 21 | | Gradle wrapper | 9.2.1 | | NeoGradle userdev | 7.1.38 | | NeoForm / official Mojang mappings | 1.21.1-20240808.144430 | | Parchment mappings | 1.21.1 / 2024.11.17 | | JUnit Jupiter | 5.11.4 | The local verification environment uses Java 21.0.8. Mojang mapping names are subject to [Mojang's mapping license](https://github.com/NeoForged/NeoForm/blob/main/Mojang.md). ## Layout - `src/main/java/com/shinuwa/arena`: common mod entrypoint and logging. - `src/main/java/com/shinuwa/arena/config`: NeoForge server configuration. - `src/main/resources/META-INF/neoforge.mods.toml`: mod metadata. - `src/test/java/com/shinuwa/arena`: JUnit tests. - `.local`: specification, architecture, phased checklist and reference examples. Mod ID: `arena`. Only Minecraft and NeoForge are required. Cobblemon, EasyNPC, Create and boss mods are not dependencies. Further component packages will be introduced with their implementation phases in `.local/TODO.md`. ## Build and test Use JDK 21 and the checked-in wrapper: ```sh ./gradlew build test ``` The mod JAR is written to `build/libs/arena-1.0.0.jar`. Tests check configuration defaults, invalid-value correction and preservation of an explicit opt-out. The existing GitHub Actions build runs the Gradle `build` checks as well. ## Manual bootstrap smoke test 1. Run `./gradlew runServer` with no optional mods installed. On first launch, review Minecraft's EULA and, if you agree, accept it in `run/server/eula.txt`, then run the command again. 2. Wait for the server's `Done` message. Confirm the log contains `Arena of Shinuwa initialized` and `Arena bootstrap ready on Minecraft 1.21.1`. 3. Confirm `run/server/world/serverconfig/arena-server.toml` contains `logServerStartup = true`. Stop the server using `stop`. 4. Set that option to `false` and restart. The initialization log should remain, and the `Arena bootstrap ready` message should be absent. Stop the server. 5. Run `./gradlew runClient`, then create a single-player world to repeat the startup check on an integrated server. Its config is under that world's `serverconfig` directory. No example blocks, items or creative tab should appear under this mod. These are manual procedures; passing compilation/unit tests alone does not verify a graphical client or a complete server startup.