This document outlines various ways how you can help contribute to SensibleToolbox and make this a bigger and better project.
All contributions must be inline with our Code of Conduct and License.
Please also follow the templates for Issues and Pull Requests we provide.
One of the foundations for good software is reliability. To facilitate this reliability, our community must work together to crush bugs that arise. This of course requires good information and knowledge about ongoing bugs and issues though.
You can help this project by reporting a bug on our Issues Tracker.
Please adhere to the provided template and provide as much information as possible.
For more info on how to make good and helpful bug reports, check out our article on How to report bugs.
If you encounter an issue which has already been reported, please don't open a new one.
It would be awesome though if you could post a comment on the existing issue which explains how you were able to reproduce this yourself.
The more context and information we get, the easier we can fix it.
Bugs that have been reported need to be fixed of course.
Any open Issue on our Issues Tracker is waiting to be fixed.
This is an Open-Source project and we love Pull Requests. So if you have an idea on how to approach a known issue, feel free to make a Pull Request which fixes this bug. You can also comment on the existing Issue, proposing your idea or communicating that you wanna work on this.
SensibleToolbox is an Open-Source project and anyone is allowed to make changes or add content to this plugin!
Please visit our Discord Server and share your ideas first, we hate to reject changes because the community disagrees.
So communicating your intended changes before-hand will ensure that you don't put too much work into something that might get rejected.
SensibleToolbox uses sonarcloud.io to monitor Code Quality.
We always welcome quality improvements to the code and the "Code Smells" section on sonarcloud.io is a great place to start. But please keep in mind that some design patterns may not be changed too abruptly if an addon depends on them. To prevent any accidents from happening, please contact us on our Discord Server before-hand and state your intended changes.
Code documentation is also a great way to improve the maintainability of the project.
- Every class and every public method should have a Javadocs section assigned to it.
- Classes should also include an
@author
tag to indicate who worked on that class. - Methods and parameters should be annotated with
@Nullable
or@Nonnull
to indicate whether or not null values are accepted.
Unit Tests help us test the project to work as intended in an automated manner.
More or better Unit Tests are always good to have, so feel free to submit a Test and place it in our src/test/java directory
We are using Junit 5 - Jupiter and MockBukkit as our testing environment.
Every new Unit Test should have a @DisplayName
annotation with a plain text description on what the Unit Test tests.
SensibleToolbox is written in Java and uses Maven for compilation.
To compile SensibleToolbox yourself, follow these steps:
- Clone the project via git
$ git clone https://github.com/Slimefun/SensibleToolbox/
- Compile the project using Maven
$ mvn clean package
- Extract the compiled
SensibleToolbox-vX-UNOFFICIAL.jar
from your/target/
directory.
If you are already using an IDE, make sure to import the project via git and set it up as a Maven project.
Then you should be able build it via Maven using the goals clean package
.
If you have any further questions, then please join our Discord Support Server and ask your questions in the #programming-help
channel.
Note that we will not accept any bug reports from custom-compiled versions of SensibleToolbox.