(Вероятно, это позже будет заменено репозиторием на GitHub)
Вызовите RandomLibUtils.setup во время FMLCommonSetupEvent для настройки ваших файлов конфигурации.
RandomLibUtils.setup(ResourceLocation registryKey, Supplier extra, Consumer
В качестве примера, ваши файлы конфигурации будут сгенерированы в папке configs/oneblock/phases/, если registryKey = oneblock:phases.
extra — это поставщик (supplier) экземпляра реализации ExtraData. Это позволяет вам сохранять дополнительную информацию о пуле случайных значений, помимо взвешенных элементов.
После десериализации ваши файлы конфигурации сохраняются в карте (map), где ключом является имя файла, но вам, вероятно, захочется сохранить их в более удобной структуре для вашего мода, используя потребителя (consumer) afterDeserialization.
Вызовите RandomLibUtils.registerCommand во время FMLServerStartingEvent для настройки команды управления файлами конфигурации, созданными RandomLib.
RandomLibUtils.registerCommand(FMLServerStartingEvent event, String commandname, ResourceLocation registryKey)
RandomLibUtils.registerCommand(FMLServerStartingEvent event, String commandname, ResourceLocation registryKey, ExtraDataCommand extraDataCommand)
registryKey должен быть таким же, как и в RandomLibUtils.setup.
extraDataCommand дополняет brigadier для вашей реализации ExtraData.
Используйте RandomPool#getExtra() для получения ваших десериализованных данных ExtraData.
Используйте RandomPool#getRandom()#generateAndReplace(ServerWorld, BlockPos) для уничтожения блока и генерации элемента из пула случайных значений в заданном мире по заданной позиции.
Используйте RandomPool#getRandom()#generate(ServerWorld, BlockPos) для генерации элемента из пула случайных значений в заданном мире по заданной позиции.
Используйте RandomPool#getRandom()#vgenerate(RandomContainer, ServerWorld, BlockPos, ItemStack) для генерации элемента из пула случайных значений для объекта, реализующего RandomContainer (вероятно, entity), в заданном мире по заданной позиции и для заданной удерживаемой вещи (если применимо).
Команда помощи: /<Имя команды RandomLib для этого мода> help
пример:
