package io.gitlab.jfronny.respackopts; import io.github.prospector.modmenu.api.ConfigScreenFactory; import io.github.prospector.modmenu.api.ModMenuApi; import me.shedaniel.clothconfig2.api.ConfigBuilder; import me.shedaniel.clothconfig2.api.ConfigCategory; import me.shedaniel.clothconfig2.api.ConfigEntryBuilder; import net.minecraft.client.gui.screen.FatalErrorScreen; import net.minecraft.text.TranslatableText; public class MMI implements ModMenuApi { @Override public ConfigScreenFactory getModConfigScreenFactory() { return parent -> { try { ConfigBuilder builder; builder = ConfigBuilder.create() .setParentScreen(parent) .setTitle(new TranslatableText("respackopts.mainconfig")); ConfigEntryBuilder entryBuilder = builder.entryBuilder(); builder.setSavingRunnable(() -> { //TODO implement reload Respackopts.save(); }); Respackopts.resPackMetas.forEach((s, v) -> { ConfigCategory config = builder.getOrCreateCategory(new TranslatableText("respackopts.category." + v.meta.id)); Respackopts.factory.buildCategory(v.conf, v.meta.id, config, entryBuilder); }); return builder.build(); } catch (Throwable t) { t.printStackTrace(); return new FatalErrorScreen(new TranslatableText("respackopts.loadFailed"), new TranslatableText("respackopts.loadError")); } }; } }