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

28 lines
1.0 KiB
Java

package io.gitlab.jfronny.libjf.config.impl;
import com.terraformersmc.modmenu.api.ConfigScreenFactory;
import com.terraformersmc.modmenu.api.ModMenuApi;
import io.gitlab.jfronny.libjf.config.api.ConfigHolder;
import io.gitlab.jfronny.libjf.config.api.ConfigInstance;
import io.gitlab.jfronny.libjf.config.impl.gui.TinyConfigScreen;
import io.gitlab.jfronny.libjf.LibJf;
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, ConfigInstance> entry : ConfigHolder.getInstance().getRegistered().entrySet()) {
if (!LibJf.MOD_ID.equals(entry.getKey()))
factories.put(entry.getKey(), buildFactory(entry.getValue()));
}
return factories;
}
private static ConfigScreenFactory<?> buildFactory(ConfigInstance config) {
return s -> new TinyConfigScreen(s, config);
}
}