Integrated Dynamics
All stable releases (including deobfuscated builds) can be found on CurseForge.
Development builds are hosted as GitHub packages.
Contributing
- Before submitting a pull request containing a new feature, please discuss this first with one of the lead developers.
- When fixing an accepted bug, make sure to declare this in the issue so that no duplicate fixes exist.
- All code must comply to our coding conventions, be clean and must be well documented.
Issues
- All bug reports and other issues are appreciated. If the issue is a crash, please include the FULL Forge log.
- Before submission, first check for duplicates, including already closed issues since those can then be re-opened.
Branching Strategy
For every major Minecraft version, two branches exist:
master-{mc_version}
: Latest (potentially unstable) development.release-{mc_version}
: Latest stable release for that Minecraft version. This is also tagged with all mod releases.
Building and setting up a development environment
To get started, you will need a Maven token so that gradle can fetch dependencies.
Once you have this, use it by editing ~/.gradle/gradle.properties
and adding the following lines;
gpr.user=<YOUR GITHUB USERNAME>
gpr.key=<YOUR TOKEN>
Alternatively, you can use the environment variables MAVEN_USERNAME
(your github username), and MAVEN_KEY
(your token).
Run ./gradlew test
to run the test suite, and ./gradlew build
to build the mod. The resulting jar file will be in build/libs
.
If you're using IntelliJ, you can also run ./gradlew genIntellijRuns
to set up some useful run configurations, such as the ability to build this mod and run minecraft in one step.
This mod uses Project Lombok -- an annotation processor that allows us to generate constructors, getters and setters using annotations -- to speed up recurring tasks and keep part of our codebase clean at the same time. Because of this it is advised that you install a plugin for your IDE that supports Project Lombok. Should you encounter any weird errors concerning missing getter or setter methods, it's probably because your code has not been processed by Project Lombok's processor. A list of Project Lombok plugins can be found here.
License
All code and images are licensed under the MIT License This mod packages re2j in order to provide linear time regex matching.