Zum Inhalt springen
Skyblocker

👨‍💻 Contribute Guidelines

Dieser Inhalt ist noch nicht in deiner Sprache verfügbar.

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!