66 lines
2.6 KiB
Markdown
66 lines
2.6 KiB
Markdown
|
|
# 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.
|