Aller au contenu
Skyblocker

๐Ÿ‘จโ€๐Ÿ’ป Contribute Guidelines

Ce contenu nโ€™est pas encore disponible dans votre langue.

We welcome contributions from anyone for any feature related to Hypixel Skyblock.
Feel free to ask any questions in our Discord server!


โœ… Fork & clone the repo
โœ… Follow the code style guidelines
โœ… Test your feature thoroughly
โœ… Document your code
โœ… Submit a PR with a clear description
โœ… Join our Discord if you need help!

Please follow the Fabric Development Guidelines when writing code.

  • Class names: TitleCase
  • Static final fields: SCREAMING_SNAKE_CASE (except for specific exceptions)
  • Methods & fields: camelCase

Ensure you run code cleanup before submitting a PR.

IntelliJ Shortcuts:

  • Code cleanup: Command/Control + Option + L
  • Import cleanup: Control + Option + O

Recommended IntelliJ Settings:

  • Settings -> Editor -> Code Style -> Java
  • Set Wrapping and Braces -> Hard wrap at to 1000
  • Enable:
    • Keep when reformatting -> Simple blocks in one line
    • Simple methods in one line
    • Simple lambdas in one line
    • Simple classes in one line

We require Javadocs and comments for classes and methods, except:

  • Simple methods
  • Getters/setters
  • Boilerplate code

Please include:

  • Implementation details
  • Legal & illegal parameter values
  • Nullability annotations

Examples of well-documented classes:

Use appropriate annotations:

  • @org.jetbrains.annotations.Nullable
  • @Language("RegExp")
  • @Translatable

Prefer Fabric events over mixins.
If necessary, prefer using Mixin Extras instead of invasive mixins (like redirects).


All features must have configuration options!

Skyblocker uses YACL (YetAnotherConfigLib) for configs.

Steps:

  1. Add config fields to SkyblockerConfig.
  2. Add entries to the relevant category (e.g., DungeonsCategory).
  3. Update the English localization in en_us.json.
  4. Keep config fields and localization entries in the same order to reduce confusion.
  5. Sort localization entries alphabetically.

Please thoroughly test your features before submitting a PR.

We strongly recommend:

  • Screenshots or showcase videos
  • Clear notes if the PR has not been tested
  • Adding unit tests where possible
    (See ItemUtilsTest for an example)

Skyblocker uses Weblate for translations.

All translators will:

  • Be mentioned in the README
  • Receive a Translator tag in our Discord server

โžก๏ธ More details on how to contribute translations are in the Translation Guide.


Thank you for contributing to Skyblocker โ€” we hope you enjoy working with us!