Skip to content

Development

Ben Anderson edited this page Nov 10, 2021 · 6 revisions

Contributing

All contributors should read, understand and respect the contributor's code of conduct.

How can you contribute?

I ask that you test any changes you have made to InstantReplay before creating a pull request.


Testing Environment

InstantReplay is designed to be compatible with all Minecraft versions greater than or equal to 1.8. In order to achieve this, there are a few version-specific components in InstantReplay. To properly test these version-specific components, it is ideal to use a testing environment which has many different Minecraft server versions.

I have written some scripts which can help you easily create and manage Minecraft servers of all versions that InstantReplay aims to support - these can be found in my spigot-dev-env repository.


Development Environment

First, ensure you have Spigot (with NMS) installed to your local Maven repository for every version of Minecraft that InstantReplay aims to support. This can be easily achieved by using my spigot-dev-env repository which contains tools to do this for you.

Next, download the latest version of Apache Maven. If you are using an older version of Maven, please update it as there are known issues that occur when building this project using previous Maven versions. This project has been confirmed to successfully build using Apache Maven 3.8.3.

Maven must be ran with Java 16 to be able successfully build all versions that InstantReplay aims to support. If you don't use Maven with Java 16, class file compatibility errors will arise. Please note: when I say 'run Maven with Java 16', that does not mean you should change the language level or JDK version in any pom.xml files, it just means that you need to be using Java 16 when running Maven from the command line. See this answer on stack-overflow for how to achieve this. Running the command mvn -version will tell you the Java version Maven is running with.

Assuming all the above went smoothly, you should be able to run the command mvn clean package in the root directory of the project and see a built jar file for InstantReplay in the target directory.

If you experience any issues configuring your development environment, don't hesitate to open a support request under the issues tab and I'll be happy to help. You should receive a response within 24 hours of opening the support request.