initial commit
This commit is contained in:
126
common/src/main/java/me/zacharias/speedometer/Config.java
Normal file
126
common/src/main/java/me/zacharias/speedometer/Config.java
Normal file
@@ -0,0 +1,126 @@
|
||||
package me.zacharias.speedometer;
|
||||
|
||||
import dev.architectury.platform.Platform;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
import org.joml.Vector3i;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import javax.swing.plaf.ColorUIResource;
|
||||
import java.io.*;
|
||||
|
||||
import me.shedaniel.math.Color;
|
||||
|
||||
import static me.zacharias.speedometer.Speedometer.MOD_ID;
|
||||
|
||||
public class Config {
|
||||
private static JSONObject Config;
|
||||
|
||||
public static void initialize(){
|
||||
if(Config != null) throw new RuntimeException("Already Initialized");
|
||||
File config = new File(Platform.getConfigFolder().toString()+"/"+MOD_ID+"/config.json");
|
||||
if(!config.exists()){
|
||||
try {
|
||||
config.getParentFile().mkdir();
|
||||
config.createNewFile();
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
Config = new JSONObject();
|
||||
|
||||
|
||||
Config.put("speed", SpeedTypes.BlockPS);
|
||||
Config.put("useKnot", false);
|
||||
Config.put("color", new JSONObject()
|
||||
.put("r", 16)
|
||||
.put("g", 146)
|
||||
.put("b", 158)
|
||||
);
|
||||
Config.put("debug", false);
|
||||
}else {
|
||||
try {
|
||||
BufferedReader in = new BufferedReader(new FileReader(config));
|
||||
String tmp = "";
|
||||
StringBuilder builder = new StringBuilder();
|
||||
while((tmp = in.readLine()) != null){
|
||||
builder.append(tmp);
|
||||
}
|
||||
Config = new JSONObject(builder.toString());
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void save(){
|
||||
File config = new File(Platform.getConfigFolder().toString()+"/"+MOD_ID+"/config.json");
|
||||
if(!config.exists()){
|
||||
try {
|
||||
config.getParentFile().mkdir();
|
||||
config.createNewFile();
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
try {
|
||||
BufferedWriter out = new BufferedWriter(new FileWriter(config));
|
||||
out.write(Config.toString(4));
|
||||
out.flush();
|
||||
out.close();
|
||||
}catch (Exception e){
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public static SpeedTypes getSpeedType(){
|
||||
if(Config.has("speed")){
|
||||
return Config.getEnum(SpeedTypes.class, "speed");
|
||||
}else{
|
||||
return SpeedTypes.BlockPS;
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean getUseKnot() {
|
||||
if(Config.has("useKnot")){
|
||||
return Config.getBoolean("useKnot");
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static Color getColor(){
|
||||
if(Config.has("color")){
|
||||
JSONObject color = Config.getJSONObject("color");
|
||||
return Color.ofRGB(
|
||||
color.getInt("r"),
|
||||
color.getInt("g"),
|
||||
color.getInt("b")
|
||||
);
|
||||
}else{
|
||||
return Color.ofRGB(16, 146, 158);
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean getIsDebug() {
|
||||
if(Config.has("debug")){
|
||||
return Config.getBoolean("debug");
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static void setColor(Color color){
|
||||
Config.put("color", new JSONObject()
|
||||
.put("r", color.getRed())
|
||||
.put("g", color.getGreen())
|
||||
.put("b", color.getBlue())
|
||||
);
|
||||
}
|
||||
|
||||
public static void setUseKnot(boolean useKnot){
|
||||
Config.put("useKnot", useKnot);
|
||||
}
|
||||
|
||||
public static void setSpeedType(SpeedTypes speedType) {
|
||||
Config.put("speed", speedType);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user