package org.rsbot.script.provider;
import org.rsbot.Configuration;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
/**
* @author Paris
*/
public class ScriptLikes {
private static final File cache = new File(Configuration.Paths.getSettingsDirectory(), "liked-scripts.txt");
private static List<String> list = null;
public static boolean isLiked(final ScriptDefinition def) {
if (list == null) {
load();
}
return list.contains(def.name);
}
public static void flip(final ScriptDefinition def) {
if (list == null) {
load();
}
if (isLiked(def)) {
list.remove(def.name);
} else {
list.add(def.name);
}
}
public static void load() {
if (list == null) {
list = new ArrayList<String>(8);
} else {
list.clear();
}
FileReader fr = null;
BufferedReader br = null;
try {
fr = new FileReader(cache);
br = new BufferedReader(fr);
String line;
while ((line = br.readLine()) != null) {
line = line.trim();
if (line.length() == 0 || line.startsWith("#")) {
continue;
}
list.add(line);
}
} catch (final IOException ignored) {
try {
if (fr != null) {
fr.close();
}
if (br != null) {
br.close();
}
} catch (final IOException ignored1) {
}
}
}
public static void save() {
if (list == null || list.size() == 0) {
cache.delete();
}
FileWriter fw = null;
BufferedWriter bw = null;
try {
fw = new FileWriter(cache);
bw = new BufferedWriter(fw);
for (final String def : list) {
bw.append(def);
bw.newLine();
}
bw.close();
fw.close();
} catch (final IOException ignored) {
try {
if (fw != null) {
fw.close();
}
if (bw != null) {
bw.close();
}
} catch (final IOException ignored1) {
}
}
}
}