We welcome all contributions, given they fit within the scope of Quests. If you're unsure, then ask me first!
- Ensure Java is installed on your machine
- Clone this repository
- Edit the source code as your please
- Run
./gradlew
(Linux and macOS) orgradlew
(Windows) in the base directory to build Quests- The jar will be output in
/build/libs
- The jar will be output in
/common
: contains interfaces and abstract classes that are used, should remain platform independent/bukkit
: contains implementations of the interfaces in/common
and most of the plugin code for Bukkit/bungee
: for BungeeCord, this isn't a Quests plugin, see this issue for more info
The best way to learn how the plugin works is to just look at the source code.
Start from the main class (BukkitQuestsPlugin
) and see how the plugin initialises itself.
Most classes are self-explanatory, and the main class holds instances and provides getters for basically every module.
If you plan on contributing upstream please note the following:
- Discuss large changes first
- A large change significantly changes API and behaviour, such as major refactoring
- Take a look at how the rest of the project is formatted and follow that (usually 4 spaces)
- Do not alter the version number in
build.gradle
, that will be done when the release version is ready - Limit the first line of commit messages to ~50 chars and leave a space below that, with an optional extended description
- Test your changes on the latest Spigot version before making a pull request
If you have never contributed to an open source project, the general workflow is as follows:
- Fork this repository
- Clone your fork and make your changes
- Test changes work
- Commit your changes and rebase onto
upstream/master
if there have been updates since- This to keep a linear commit history and prevent me having to resolve merge conflicts
upstream/master
refers to the original repository (LMBishop/Quests), you may have to add it as a remote yourself
- Push local changes to any branch on your fork
- Open a pull request from your branch to
master
By contributing to Quests you agree to license your code under the GNU General Public License v3.0.