Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.arsenicclient.config;
- import com.arsenicclient.Arsenic;
- import com.arsenicclient.module.Module;
- import com.arsenicclient.settings.Setting;
- import com.arsenicclient.settings.impl.*;
- import com.arsenicclient.utils.io.FileIOUtils;
- import com.google.gson.JsonArray;
- import com.google.gson.JsonElement;
- import com.google.gson.JsonObject;
- import java.io.File;
- import java.util.ArrayList;
- public class ConfigSaver {
- private String seperator = File.separator;
- private File rootFolder = new File(Arsenic.name);
- private File moduleFolder = new File(rootFolder, "modules");
- private File clickGui = new File(rootFolder, "clickgui.json");
- public void save(ArrayList<Module> modules) {
- if (!rootFolder.exists()) rootFolder.mkdirs();
- if (!moduleFolder.exists()) moduleFolder.mkdirs();
- for (Module module : modules) {
- save(module);
- }
- }
- private void save(Module module) {
- JsonObject json = new JsonObject();
- json.addProperty("name", module.getName());
- JsonArray settings = new JsonArray();
- for (Setting setting : module.getSettings()) {
- JsonObject setting_json = settingToJson(setting);
- settings.add(setting_json);
- }
- json.add("settings", settings);
- FileIOUtils.writeFile(new File(moduleFolder, module.getName() + ".json").getAbsolutePath(), json);
- }
- private JsonObject settingToJson(Setting setting) {
- JsonObject json = new JsonObject();
- json.addProperty("name", setting.name);
- if (setting instanceof NumberSetting) {
- json.addProperty("type", "slider");
- json.addProperty("value", ((NumberSetting) setting).getValue());
- } else if (setting instanceof ModeSetting) {
- json.addProperty("type", "mode");
- json.addProperty("value", ((ModeSetting) setting).getMode());
- } else if (setting instanceof ColorSetting) {
- json.addProperty("type", "color");
- JsonObject color = new JsonObject();
- color.addProperty("red", ((ColorSetting) setting).getColor().getRed());
- color.addProperty("green", ((ColorSetting) setting).getColor().getGreen());
- color.addProperty("blue", ((ColorSetting) setting).getColor().getBlue());
- color.addProperty("alpha", ((ColorSetting) setting).getColor().getAlpha());
- json.add("value", color);
- } else if (setting instanceof KeySetting) {
- json.addProperty("type", "key");
- json.addProperty("value", ((KeySetting) setting).getCode());
- } else if (setting instanceof BooleanSetting) {
- json.addProperty("type", "bool");
- json.addProperty("value", ((BooleanSetting) setting).isToggled());
- } else {
- System.err.println("Unknown setting type: " + setting);
- }
- return json;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment