Skip to content

CyclopsMC/IntegratedDynamics

Repository files navigation

Integrated Dynamics

Build Status Coverage Status Crowdin Download CurseForge Discord

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.