-
-
Notifications
You must be signed in to change notification settings - Fork 158
Contribute
We welcome contributions from anyone for any feature related to Hypixel Skyblock. Please feel free to ask any questions you may have.
For code style, try to follow the Fabric Development Guidelines. We will enforce TitleCase for classes, SCREAMING_SNAKE_CASE for static final fields except for specific exceptions, and camelCase for methods and all other fields.
Please run Code Cleanup and Import Optimization before submitting a PR.
By default, on IntelliJ:
- Code Cleanup is
Command + Option + L(Mac) orControl + Alt + L(Windows/Linux) - Optimize Import is
Control + Option + O(Mac) orControl + Alt + O(Windows/Linux)
We use Spotless to enforce certain code styling. If your build fails, you can have it automatically fix your code by running spotlessApply through Gradle.
We require Javadocs and comments for your classes and methods, except for getters/setters, boilerplate, and other simple methods. Also, try to include implementation details and document legal and illegal values for parameters and return values (such as nullability annotations). For examples of well-documented classes, see TooltipAdder, DungeonManager, ItemUtils, and RenderHelper.
Appropriate annotations are also welcome, such as @org.jetbrains.annotations.Nullable, @Language("RegExp"), or @Translatable.
Prefer fabric events over any mixins. Prefer mixin extras over invasive mixins such as redirects.
Remember to add configuration to your feature!
How do I add a config option?
- You need to add a field to the best-fitting config, like
DungeonsConfigfor a Dungeons feature. - Then, add an entry to the respective category,
DungeonsCategory. - You will also need to add the English localization to
en_us.json.- New entries should be placed in alphabetical order based on the translation key. Spotless can re-order it for you!
- Try to keep the config and category files (config class, category class) in the same order to minimize confusion.
Please test your features thoroughly before submitting a PR!
Screenshots or showcases would also accelerate the review process of your PR and are strongly suggested.
Please note clearly in the PR if it has not been tested.
Unit tests are also strongly encouraged. Note that you can create unit tests for methods containing Minecraft classes. See ItemUtilsTest for an example.
Thank you for contributing to Skyblocker, and hope you have fun!
