TerrificTable55

Untitled

Nov 13th, 2022
1,026
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.93 KB | None | 0 0
  1. package com.arsenicclient.config;
  2.  
  3. import com.arsenicclient.Arsenic;
  4. import com.arsenicclient.module.Module;
  5. import com.arsenicclient.settings.Setting;
  6. import com.arsenicclient.settings.impl.*;
  7. import com.arsenicclient.utils.io.FileIOUtils;
  8. import com.google.gson.JsonArray;
  9. import com.google.gson.JsonElement;
  10. import com.google.gson.JsonObject;
  11.  
  12. import java.io.File;
  13. import java.util.ArrayList;
  14.  
  15. public class ConfigSaver {
  16.     private String seperator = File.separator;
  17.  
  18.  
  19.     private File rootFolder = new File(Arsenic.name);
  20.     private File moduleFolder = new File(rootFolder, "modules");
  21.  
  22.     private File clickGui = new File(rootFolder, "clickgui.json");
  23.  
  24.  
  25.     public void save(ArrayList<Module> modules) {
  26.         if (!rootFolder.exists()) rootFolder.mkdirs();
  27.         if (!moduleFolder.exists()) moduleFolder.mkdirs();
  28.  
  29.         for (Module module : modules) {
  30.             save(module);
  31.         }
  32.     }
  33.  
  34.     private void save(Module module) {
  35.         JsonObject json = new JsonObject();
  36.  
  37.         json.addProperty("name", module.getName());
  38.  
  39.         JsonArray settings = new JsonArray();
  40.         for (Setting setting : module.getSettings()) {
  41.             JsonObject setting_json = settingToJson(setting);
  42.             settings.add(setting_json);
  43.         }
  44.         json.add("settings", settings);
  45.  
  46.  
  47.         FileIOUtils.writeFile(new File(moduleFolder, module.getName() + ".json").getAbsolutePath(), json);
  48.     }
  49.  
  50.     private JsonObject settingToJson(Setting setting) {
  51.         JsonObject json = new JsonObject();
  52.  
  53.         json.addProperty("name", setting.name);
  54.         if (setting instanceof NumberSetting) {
  55.             json.addProperty("type", "slider");
  56.             json.addProperty("value", ((NumberSetting) setting).getValue());
  57.         } else if (setting instanceof ModeSetting) {
  58.             json.addProperty("type", "mode");
  59.             json.addProperty("value", ((ModeSetting) setting).getMode());
  60.         } else if (setting instanceof ColorSetting) {
  61.             json.addProperty("type", "color");
  62.             JsonObject color = new JsonObject();
  63.             color.addProperty("red", ((ColorSetting) setting).getColor().getRed());
  64.             color.addProperty("green", ((ColorSetting) setting).getColor().getGreen());
  65.             color.addProperty("blue", ((ColorSetting) setting).getColor().getBlue());
  66.             color.addProperty("alpha", ((ColorSetting) setting).getColor().getAlpha());
  67.             json.add("value", color);
  68.         } else if (setting instanceof KeySetting) {
  69.             json.addProperty("type", "key");
  70.             json.addProperty("value", ((KeySetting) setting).getCode());
  71.         } else if (setting instanceof BooleanSetting) {
  72.             json.addProperty("type", "bool");
  73.             json.addProperty("value", ((BooleanSetting) setting).isToggled());
  74.         } else {
  75.             System.err.println("Unknown setting type: " + setting);
  76.         }
  77.  
  78.         return json;
  79.     }
  80.  
  81. }
  82.  
Advertisement
Add Comment
Please, Sign In to add comment