🌳 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 pageEach module must also include a
pack.png
and aREADME.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
- <feature1>
- <predicate|loot_table|…>
- <feature1>.json
- …
- tags/function
- <feature1>.json
- …
- function
- module.json
- pack.png
- README.md
- data/<module>
- …
- <module>