41 lines
1.6 KiB
Java
41 lines
1.6 KiB
Java
package io.gitlab.jfronny.breakme;
|
|
|
|
import io.gitlab.jfronny.breakme.config.Cfg;
|
|
import io.gitlab.jfronny.breakme.config.CrashMethod;
|
|
import me.shedaniel.autoconfig.AutoConfig;
|
|
import me.shedaniel.autoconfig.gui.registry.GuiRegistry;
|
|
import me.shedaniel.autoconfig.gui.registry.api.GuiRegistryAccess;
|
|
import me.shedaniel.clothconfig2.api.AbstractConfigListEntry;
|
|
import me.shedaniel.clothconfig2.api.ConfigEntryBuilder;
|
|
import net.fabricmc.api.ClientModInitializer;
|
|
import net.minecraft.text.*;
|
|
|
|
import java.lang.reflect.Field;
|
|
import java.util.Collections;
|
|
import java.util.List;
|
|
|
|
import static me.shedaniel.autoconfig.util.Utils.getUnsafely;
|
|
import static me.shedaniel.autoconfig.util.Utils.setUnsafely;
|
|
|
|
public class BreakMeClient implements ClientModInitializer {
|
|
ConfigEntryBuilder builder = ConfigEntryBuilder.create();
|
|
@Override
|
|
public void onInitializeClient() {
|
|
GuiRegistry registry = AutoConfig.getGuiRegistry(Cfg.class);
|
|
registry.registerAnnotationProvider(this::get, CrashMethod.class);
|
|
registry.registerTypeProvider(this::get, String.class);
|
|
}
|
|
|
|
private List<AbstractConfigListEntry> get(String i13n, Field field, Object config, Object defaults, GuiRegistryAccess guiProvider) {
|
|
return Collections.singletonList(
|
|
builder.startSelector(
|
|
Text.translatable(i13n),
|
|
BreakMe.getProviders(),
|
|
getUnsafely(field, config, getUnsafely(field, defaults))
|
|
).setDefaultValue(() -> "None")
|
|
.setSaveConsumer(newValue -> setUnsafely(field, config, newValue))
|
|
.build()
|
|
);
|
|
}
|
|
}
|