public void apply(boolean save, boolean reload, Consumer<ConfigurationNode> action) throws IOException {
            this.lock.lock();
            try {
                if (this.node == null || reload) {
                    reload();
                }

                action.accept(this.node);

                if (save) {
                    save();
                }
            } finally {
                this.lock.unlock();
            }
        }
Flat-file storage using Configurate {@link ConfigurationNode}s.
The data for users/groups/tracks is stored in a single shared file.
common/src/main/java/me/lucko/luckperms/common/storage/implementation/file/CombinedConfigurateStorage.java