Initial commit
Some checks failed
Build / build (push) Has been cancelled

This commit is contained in:
Shinuwa 2026-09-18 15:03:09 +02:00
parent 50b02952c5
commit 5a6b2e2cac
23 changed files with 809 additions and 227 deletions

View file

@ -1,25 +1,66 @@
Installation information
=======
# Arena of Shinuwa
This template repository can be directly cloned to get you started with a new
mod. Simply create a new repository cloned from this one, by following the
instructions provided by [GitHub](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template).
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.
Once you have your clone, simply open the repository in the IDE of your choice. The usual recommendation for an IDE is either IntelliJ IDEA or Eclipse.
## Development versions
If at any point you are missing libraries in your IDE, or you've run into problems you can
run `gradlew --refresh-dependencies` to refresh the local cache. `gradlew clean` to reset everything
{this does not affect your code} and then start the process again.
Versions retained from the repository:
Mapping Names:
============
By default, the MDK is configured to use the official mapping names from Mojang for methods and fields
in the Minecraft codebase. These names are covered by a specific license. All modders should be aware of this
license. For the latest license text, refer to the mapping file itself, or the reference copy here:
https://github.com/NeoForged/NeoForm/blob/main/Mojang.md
| 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 |
Additional Resources:
==========
Community Documentation: https://docs.neoforged.net/
NeoForged Discord: https://discord.neoforged.net/
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.