Local development
- Start the cloud:
aspire run(ordotnet run --project Heavymatica.Cloud.AppHost) fromsrc/cloud. MongoDB, MinIO, the service and the websites’ dev servers start together; the service listens onhttp://localhost:5180. - Point the dev client at the cloud’s DevMojang, since dev clients have no Microsoft session: in
src/mod/heavymatica/neoforge/runs/client/config/heavymatica-client.toml(orfabric/runs/...) setdevSessionJoinUrl = "http://localhost:5180/dev/mojang". - Start the client:
./gradlew :heavymatica:neoforge:runClientor./gradlew :heavymatica:fabric:runClientfromsrc/mod, then open the library with H in a world. Each loader has its own run folder,heavymatica/<loader>/runs.
Dev client runs always talk to http://localhost:5180, whatever the config file says: released mods default to
https://api.heavymatica.com, and the dev run overrides it so it never reaches production by accident. Set
HEAVYMATICA_CLOUD_URL to use another local address. The game asks the cloud whether it is open only when the library
opens; the local cloud always says open. To test against a cloud that says closed, set access = "ON" in the [cloud]
section of the client config.
DevMojang (/dev/mojang) stands in for Mojang’s session server and accepts every join. Its counterpart for the
website, /dev/web/sign-in?minecraft=<profile id>&returnTo=/library/, signs a browser in to the account of a Minecraft
identity without GitHub, for example http://localhost:5180/dev/web/sign-in?minecraft=<uuid> for the player of
HEAVYMATICA_DEV_USER. Open the website afterwards on the cloud’s origin or the website’s dev server; browsers send
localhost cookies to every port. Both exist only when the service runs in the Development environment.
The websites’ local setup, including GitHub sign-in, is on Websites. The dev client’s scripting and other aids are on Development aids.