🌳 Tree Structure#

Bookshelf respects a certain tree structure which can be similar to Java packages, called “modules” in this project. The added features must therefore be positioned in these various modules according to their usefulness.


Module Requirements:

  • Each module must include a module.json, as described in the metadata page

  • Each module must also include a pack.png and a README.md

  • The __load__ and __unload__ functions are required to manage the module’s loading and unloading. This includes resetting objectives, storages, and any other necessary elements

Feature Requirements:

  • Each feature function should have a dedicated function tag that declares metadata, as detailed in the metadata page

  • Each feature should declare metadata, as detailed in the metadata page

  • A feature is equal to a unique utility, so we should not hesitate to decompose its features in order to make it more readable and to promote reusability

In addition to these few constraints, contributors are free to organize their files as they wish as long as it remains coherent and respects the global structure.

  • modules
    • <module>
      • data/<module>
        • function
          • <feature1>
          • <feature2>.mcfunction
          • __load__.mcfunction
          • __unload__.mcfunction
        • <predicate|loot_table|…>
          • <feature1>.json
        • tags/function
          • <feature1>.json
      • module.json
      • pack.png
      • README.md