Skip to content

Latest commit

 

History

History
61 lines (40 loc) · 3.36 KB

CONTRIBUTING.md

File metadata and controls

61 lines (40 loc) · 3.36 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.

Scope

PvP Game Manager, as the name implies, should focus on providing matchmaking and gameplay functionality rather than administrative features, which other plugins support. There are some exceptions, such as chat or settings, that require explicit interoperability with PGM.

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 the core mechanics of 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. Eventually, it should be able to run on any Minecraft server version and be compatible with the most popular Bukkit plugins.

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

Steps

  1. Clone the repository on your machine.
git clone [email protected]:PGMDev/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 -pl server 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.