LibJF/src/main/java/io/gitlab/jfronny/libjf/config/ModMenu.java

37 lines
1.4 KiB
Java
Raw Normal View History

2021-04-11 16:00:37 +02:00
package io.gitlab.jfronny.libjf.config;
import com.terraformersmc.modmenu.api.ConfigScreenFactory;
import com.terraformersmc.modmenu.api.ModMenuApi;
import io.gitlab.jfronny.libjf.Libjf;
2021-04-11 20:23:52 +02:00
import me.shedaniel.clothconfiglite.api.ConfigScreen;
import net.minecraft.text.TranslatableText;
2021-04-11 16:00:37 +02:00
import java.util.HashMap;
import java.util.Map;
public class ModMenu implements ModMenuApi {
@Override
public Map<String, ConfigScreenFactory<?>> getProvidedConfigScreenFactories() {
Map<String, ConfigScreenFactory<?>> factories = new HashMap<>();
for (Map.Entry<String, Config> entry : Libjf.getConfigs().entrySet()) {
if (!Libjf.MOD_ID.equals(entry.getKey()))
2021-04-11 20:23:52 +02:00
factories.put(entry.getKey(), buildFactory(entry.getValue()));
2021-04-11 16:00:37 +02:00
}
return factories;
}
2021-04-11 20:23:52 +02:00
private static ConfigScreenFactory<?> buildFactory(Config config) {
return s -> {
ConfigScreen c = ConfigScreen.create(new TranslatableText(config.translationPrefix + "title"), s);
for (EntryInfo entry : config.entries) {
c.add(new TranslatableText(config.translationPrefix + entry.field.getName()),
entry.value, () -> entry.defaultValue, v -> {
entry.value = v;
config.write();
});
}
return c.get();
};
2021-04-11 16:00:37 +02:00
}
}