mirror of
https://github.com/lukasabbe/bookshelf-inspector.git
synced 2026-04-30 10:40:53 +00:00
graddle update
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
package me.lukasabbe.bookshelfinspector.config;
|
||||
|
||||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
import net.fabricmc.loader.api.FabricLoader;
|
||||
import org.yaml.snakeyaml.Yaml;
|
||||
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.Map;
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
public class Config {
|
||||
public boolean lecternToggle = true;
|
||||
public int scale = 10;
|
||||
public boolean useRoman = false;
|
||||
|
||||
public void loadConfig(){
|
||||
Path configPath = FabricLoader.getInstance().getConfigDir().resolve("bookshelfinspector-config.yml");
|
||||
if(!Files.exists(configPath))createConfig(configPath);
|
||||
Yaml yaml = new Yaml();
|
||||
try{
|
||||
Map<String, Object> configMap = yaml.load(new FileReader(configPath.toFile()));
|
||||
if(configMap.containsKey("lectern-toggle")){
|
||||
lecternToggle = (boolean) configMap.get("lectern-toggle");
|
||||
}
|
||||
if(configMap.containsKey("scale")){
|
||||
scale = (int) configMap.get("scale");
|
||||
}
|
||||
if(configMap.containsKey("roman")){
|
||||
useRoman = (boolean) configMap.get("roman");
|
||||
}
|
||||
|
||||
} catch (FileNotFoundException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
private void createConfig(Path configPath){
|
||||
FabricLoader.getInstance().getModContainer("bookshelfinspector").ifPresent(modContainer -> {
|
||||
Path path = modContainer.findPath("bookshelfinspector-config.yml").orElseThrow();
|
||||
try {
|
||||
Files.copy(path,configPath);
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void saveConfig(){
|
||||
Path configPath = FabricLoader.getInstance().getConfigDir().resolve("bookshelfinspector-config.yml");
|
||||
if(!Files.exists(configPath))createConfig(configPath);
|
||||
Yaml yaml = new Yaml();
|
||||
try{
|
||||
Map<String, Object> configMap = yaml.load(new FileReader(configPath.toFile()));
|
||||
configMap.put("lectern-toggle",lecternToggle);
|
||||
configMap.put("scale",scale);
|
||||
configMap.put("roman", useRoman);
|
||||
FileWriter writer = new FileWriter(configPath.toString());
|
||||
yaml.dump(configMap,writer);
|
||||
writer.close();
|
||||
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
package me.lukasabbe.bookshelfinspector.config;
|
||||
|
||||
import com.terraformersmc.modmenu.api.ConfigScreenFactory;
|
||||
import com.terraformersmc.modmenu.api.ModMenuApi;
|
||||
import me.lukasabbe.bookshelfinspector.BookshelfinspectorClient;
|
||||
import me.shedaniel.clothconfig2.api.ConfigBuilder;
|
||||
import me.shedaniel.clothconfig2.api.ConfigEntryBuilder;
|
||||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
import net.minecraft.text.Text;
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
public class ModMenu implements ModMenuApi {
|
||||
@Override
|
||||
public ConfigScreenFactory<?> getModConfigScreenFactory() {
|
||||
return parent -> {
|
||||
ConfigBuilder builder = ConfigBuilder
|
||||
.create()
|
||||
.setParentScreen(parent)
|
||||
.setTitle(Text.translatable("bookshelfinspector.config.title"));
|
||||
ConfigEntryBuilder entryBuilder = builder.entryBuilder();
|
||||
|
||||
builder
|
||||
.getOrCreateCategory(Text.translatable("bookshelfinspector.config.category"))
|
||||
.addEntry(entryBuilder
|
||||
.startBooleanToggle(Text.translatable("bookshelfinspector.config.lectern.toggle"), BookshelfinspectorClient.config.lecternToggle)
|
||||
.setTooltip(Text.translatable("bookshelfinspector.config.lectern.toggle.tooltip"))
|
||||
.setDefaultValue(true)
|
||||
.setSaveConsumer(val -> BookshelfinspectorClient.config.lecternToggle = val).build())
|
||||
.addEntry(entryBuilder
|
||||
.startIntSlider(Text.translatable("bookshelfinspector.config.scale"),BookshelfinspectorClient.config.scale,0,20)
|
||||
.setTooltip(Text.translatable("bookshelfinspector.config.scale.tooltip"))
|
||||
.setDefaultValue(10).setSaveConsumer(val -> BookshelfinspectorClient.config.scale = val)
|
||||
.build())
|
||||
.addEntry(entryBuilder
|
||||
.startBooleanToggle(Text.translatable("bookshelfinspector.config.roman_scale"), BookshelfinspectorClient.config.useRoman)
|
||||
.setTooltip(Text.translatable("bookshelfinspector.config.roman_scale.tooltip"))
|
||||
.setDefaultValue(false)
|
||||
.setSaveConsumer(val -> BookshelfinspectorClient.config.useRoman = val)
|
||||
.build());
|
||||
|
||||
builder.setSavingRunnable(BookshelfinspectorClient.config::saveConfig);
|
||||
return builder.build();
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user