PrettyPipes/src/main/java/de/ellpeck/prettypipes/misc/PlayerPrefs.java

54 lines
1.6 KiB
Java
Raw Normal View History

2020-05-08 20:56:27 +02:00
package de.ellpeck.prettypipes.misc;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import de.ellpeck.prettypipes.PrettyPipes;
import net.minecraft.client.Minecraft;
2021-12-02 16:55:04 +01:00
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
2020-05-08 20:56:27 +02:00
public class PlayerPrefs {
private static final Gson GSON = new GsonBuilder().setPrettyPrinting().create();
private static PlayerPrefs instance;
public ItemOrder terminalItemOrder = ItemOrder.AMOUNT;
public boolean terminalAscending;
2020-05-08 21:19:32 +02:00
public boolean syncJei = true;
2020-05-08 20:56:27 +02:00
public void save() {
2022-06-30 16:00:33 +02:00
var file = PlayerPrefs.getFile();
2020-05-08 20:56:27 +02:00
if (file.exists())
file.delete();
2021-12-02 17:46:56 +01:00
try (var writer = new FileWriter(file)) {
2022-06-30 16:00:33 +02:00
PlayerPrefs.GSON.toJson(this, writer);
2020-05-08 20:56:27 +02:00
} catch (IOException e) {
e.printStackTrace();
}
}
public static PlayerPrefs get() {
2022-06-30 16:00:33 +02:00
if (PlayerPrefs.instance == null) {
var file = PlayerPrefs.getFile();
2020-05-08 20:56:27 +02:00
if (file.exists()) {
2021-12-02 17:46:56 +01:00
try (var reader = new FileReader(file)) {
2022-06-30 16:00:33 +02:00
PlayerPrefs.instance = PlayerPrefs.GSON.fromJson(reader, PlayerPrefs.class);
return PlayerPrefs.instance;
2020-05-08 20:56:27 +02:00
} catch (IOException e) {
e.printStackTrace();
}
}
2022-06-30 16:00:33 +02:00
PlayerPrefs.instance = new PlayerPrefs();
2020-05-08 20:56:27 +02:00
}
2022-06-30 16:00:33 +02:00
return PlayerPrefs.instance;
2020-05-08 20:56:27 +02:00
}
private static File getFile() {
2021-12-02 17:46:56 +01:00
var location = Minecraft.getInstance().gameDirectory;
2020-05-08 20:56:27 +02:00
return new File(location, PrettyPipes.ID + "prefs");
}
}