📚 Bookshelf is a modular library datapack designed to simplify complex systems in Minecraft maps. Ideal for mapmakers looking for easy-to-implement tools.
For context, lots of datapacks are using LanternLoad for loading order, and they usually use the enumerate/resolve method for proper version checking (Smithed Libraries, all of my datapacks, AirDox's ones, and many others).
To explain the whole process,
minecraft:load will call lantern load function tags
We put a function tag for loading our project in it
In it, we can check for dependencies (by calling their loading function tag) (see image 2)
This makes sure that the dependencies loads before our project
Then, enumerate and resolve function tags are called where they contains call to the enumerate function
It is used to check versions of all the possible dependencies embeded in multiple projects.
We define the following scores:
your_namespace.major load.status
your_namespace.minor load.status
your_namespace.patch load.status
The resolve function will only check for the EXACT scores of the datapack in order to load properly
Then, later on, we can check for the dependencies versions like this:
So, the real suggestion is to make a function tag like #bookshelf:load that will launch all load functions that will include
For context, lots of datapacks are using LanternLoad for loading order, and they usually use the enumerate/resolve method for proper version checking (Smithed Libraries, all of my datapacks, AirDox's ones, and many others).
To explain the whole process,
minecraft:load will call lantern load function tags
your_namespace.major load.status
your_namespace.minor load.status
your_namespace.patch load.status
The resolve function will only check for the EXACT scores of the datapack in order to load properly Then, later on, we can check for the dependencies versions like this:
So, the real suggestion is to make a function tag like
#bookshelf:load
that will launch all load functions that will includeyour_namespace.major load.status
your_namespace.minor load.status
your_namespace.patch load.status