Thank you for your interest in contributing to NeoTenet! This document provides guidelines and instructions for contributing to the project.
-
Patch Organization: Keep patches to Minecraft classes together. If you need a lot of things done, you may either add to relevant forge classes or make a new class. Try not to spread out your patches across multiple disjoint lines, as this makes maintenance of your patches difficult.
-
Testing: TODO: Test Mods
-
Code Style: Follow the code style of the class you're working in (braces on newlines & spaces instead of tabs in Forge classes, inline brackets in patches, etc).
Follow these steps to contribute to NeoTenet:
-
Fork the repository
- Create your own fork of the NeoTenet repository on GitHub
-
Clone your fork
- Check out your fork locally on your machine
-
Set up upstream
- Fetch tags from the upstream repository:
git remote add upstream https://github.com/CelestialArtistry/NeoTenet.git git fetch upstream --tags
- Fetch tags from the upstream repository:
-
Create a branch
- Make a new branch for your feature or bug fix
-
Setup the project
- Run the setup command from the project root:
gradlew setup
- Run the setup command from the project root:
-
Import into your IDE
- Import the project into your IDE (IntelliJ/Eclipse) or reload the Gradle project
-
Make your changes
- Commonly, modify code using mixins. See examples in
src/org/celestial_artistry/neotenet/mixin - If you want to add fields and static methods from CraftBukkit, or other things that mixins cannot do, modify the patched Minecraft sources in
projects/neotenet/src/main/javaas needed - The unmodified sources are available in
projects/base/src/main/javafor your reference ⚠️ Do not modify the base sources
- Commonly, modify code using mixins. See examples in
-
Test your changes
- Run the game (Runs are available in the IDE)
- Run
gradlew :tests:runGameTestServerorTests: GameTestServerfrom IDE - Run
gradlew genPatchesto generate patch-files from the patched sources
-
Commit and push
- Commit your changes with a descriptive message
- Push your changes to your fork
-
Create a Pull Request
- Open a pull request to the main NeoTenet repository
By contributing to NeoTenet, you agree to the following terms:
- You grant CelestialArtistry a license to use your code contributed to the primary codebase (everything not under patches) in NeoTenet, under the LGPLv2.1 license.
- You assign copyright ownership of your contributions to the patches codebase (everything under patches) to CelestialArtistry, where it will be licensed under the LGPLv2.1 license.
This is intended as a legally binding copyright assignment to the NeoTenet project for contributions under the patches codebase. However, you retain your copyright for all other contributions.