π³ Tree structure#
Bookshelf respects a certain tree structure which can be similar to the Java packages, called βmodulesβ in this project. The added features must therefore be positioned in these various modules according to their usefulness.
Each module should be responsible for loading and unloading itself. This means that each module must redefine objectives, constants, and everything else that is needed.
Each module should also registered itself to the core module using the metadata objective.
Each feature function should have its own function tag.
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, the contributor is free to organise their files as they wishes as long as it remains coherent, understandable and it respects the global structure detailed below:
πdata
ββ π <module>
β ββ π functions
β β ββ π <feature1>
β β β ββ π <feature1>.mcfunction
β β β ββ π ...
β β ββ π <feature2>.mcfunction
β β ββ π __load__.mcfunction
β β ββ π __unload__.mcfunction
β ββ π <predicates|loot_tables|...>
β β ββ π <feature1>
β β β ββ π <feature1>.json
β β β ββ π ...
β β ββ π <feature2>.json
β ββ π tags
β ββ π functions
β ββ π <feature1>.json
β ββ π ...
ββ π ...
Note
Functions, predicates, structures, loot tables etc. must respect the same structure.