Skip to content
This repository has been archived by the owner on May 25, 2020. It is now read-only.

Latest commit

 

History

History
57 lines (38 loc) · 3.07 KB

CONTRIBUTING.md

File metadata and controls

57 lines (38 loc) · 3.07 KB

Contributing

We're really excited to have you join the community of contributors for the PGM project! Before we jump into the nitty-gritty details, let's go over the design choices and philosophy of the project so we're all on the same page.

Philosophy

  1. Simplicity

The most important principle is maintaining simplicity, both for contributors and players. When thinking about your changes, make sure your code is easy to comprehend, not overly complex or abstracted, and doesn't include unnecessary third-party libraries. If your changes affect gameplay, make sure players can easily adapt to them.

  1. Collaboration

You can save a good amount of time during code review if you share your ideas and gameplan before writing any code. We encourage submitting draft pull requests, even if your code doesn't compile or work, to get feedback on the design of your changes. Break up your changes into smaller, incremental pull requests with a "soft" max of 200 lines changed.

  1. Out-of-the-box

Players, contributors, and server owners should be able to enjoy PGM "out-of-the-box" without any extra plugins or requirements. No website, database, or external API should be required to run a server on your local machine.

Dependencies

You'll need to make sure your machine has the following dependencies before compiling PGM. The instructions will vary by operation system, so click on each link to read the detailed steps.

  • Java 8 - the Java Virtual Machine required to run the Minecraft server and PGM plugin.
  • Maven - a compilation tool to bundle all the Java dependencies into .jar file
  • Docker (optional) - a container tool to quickly and easily run your changes.

Steps

  1. Clone the repository on your machine.
git clone [email protected]:Electroid/PGM.git
  1. Make your changes (league system, anyone?)

  2. Run the code formatter, we follow Google's code style.

mvn com.coveo:fmt-maven-plugin:format
  1. Use one of two options to compile a new version with your changes.
mvn clean install # creates .jar in target/ which you would copy to your plugins folder
mvn clean compile jib:dockerBuild # builds a Docker container named "pgm" which is a full server
  1. Commit your changes, using the -S and -s tag to sign and certify the origin of your code.
git commit -S -s -m "A short description of your changes"
  1. Submit your pull request for review and feedback.