ignite
ignite copied to clipboard
Support loading game and mods from classpath for dev configurations
Motivation
When doing development, it's often beneficial to be able to easily run the server in a development environment (mojmapped everything). This enables features like class/mixin hotswapping.
This pull request implements loading mods and the target game from the classpath, which can be set to contain the mod classes and a mojmap server.
I have done some preliminary testing, and it doesn't seem to break other mod loading options.
Dev Env Setup
With this PR, developers can change the following to set up a sane environment: Add the following dependencies to the runtime classpath:
implementation("space.vectrix.ignite:ignite-launcher:$igniteVersion") // this needs to be published to maven
implementation("io.papermc.paper:paper-server:userdev-$paperVersion")
implementation("com.lmax:disruptor:3.4.2") // I don't know why this is needed
For IntelliJ, add an application configuration with:
- Classpath: module
project-name.main - VM options (you may need to enable adding vm options with modify options dropdown):
-Dignite.locator=classpath - Main class:
space.vectrix.ignite.IgniteBootstrap - Program args:
-nogui - Working dir:
$PROJECT/run/
Bonus: mixin hotswap works as expected, see the fabric guide