Respackopts/src/main/java/io/gitlab/jfronny/respackopts/MMI.java

38 lines
1.6 KiB
Java

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"));
}
};
}
}