2014-02-02 01:02:51 +01:00
|
|
|
package mekanism.common;
|
|
|
|
|
|
|
|
import java.io.BufferedReader;
|
|
|
|
import java.io.BufferedWriter;
|
|
|
|
import java.io.File;
|
|
|
|
import java.io.FileReader;
|
|
|
|
import java.io.FileWriter;
|
|
|
|
import java.io.IOException;
|
|
|
|
|
|
|
|
import mekanism.api.MekanismAPI;
|
2014-05-29 20:01:43 +02:00
|
|
|
import net.minecraft.block.Block;
|
2014-02-02 01:02:51 +01:00
|
|
|
|
|
|
|
public final class BoxBlacklistParser
|
|
|
|
{
|
|
|
|
public static File mekanismDir = new File(Mekanism.proxy.getMinecraftDir(), "config/mekanism");
|
|
|
|
public static File boxBlacklistFile = new File(mekanismDir, "BoxBlacklist.txt");
|
2014-03-08 02:00:25 +01:00
|
|
|
|
2014-02-02 01:02:51 +01:00
|
|
|
public static void load()
|
|
|
|
{
|
|
|
|
try {
|
|
|
|
generateFiles();
|
|
|
|
readBlacklist();
|
|
|
|
} catch(Exception e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
}
|
2014-03-08 02:00:25 +01:00
|
|
|
|
2014-02-02 01:02:51 +01:00
|
|
|
private static void generateFiles() throws IOException
|
|
|
|
{
|
|
|
|
mekanismDir.mkdirs();
|
2014-03-08 02:00:25 +01:00
|
|
|
|
2014-02-02 01:02:51 +01:00
|
|
|
if(!boxBlacklistFile.exists())
|
|
|
|
{
|
|
|
|
boxBlacklistFile.createNewFile();
|
|
|
|
writeExamples();
|
|
|
|
}
|
|
|
|
}
|
2014-03-08 02:00:25 +01:00
|
|
|
|
2014-02-02 01:02:51 +01:00
|
|
|
private static boolean isInteger(String s)
|
|
|
|
{
|
|
|
|
try {
|
|
|
|
Integer.parseInt(s);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
catch(Exception e) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
2014-03-08 02:00:25 +01:00
|
|
|
|
2014-02-02 01:02:51 +01:00
|
|
|
private static void readBlacklist() throws IOException
|
|
|
|
{
|
|
|
|
BufferedReader reader = new BufferedReader(new FileReader(boxBlacklistFile));
|
|
|
|
int entries = 0;
|
2014-03-08 02:00:25 +01:00
|
|
|
|
2014-02-02 01:02:51 +01:00
|
|
|
String readingLine;
|
|
|
|
int line = 0;
|
|
|
|
|
|
|
|
while((readingLine = reader.readLine()) != null)
|
|
|
|
{
|
|
|
|
line++;
|
2014-03-08 02:00:25 +01:00
|
|
|
|
2014-02-02 01:02:51 +01:00
|
|
|
if(readingLine.startsWith("#"))
|
|
|
|
{
|
|
|
|
continue;
|
|
|
|
}
|
2014-03-08 02:00:25 +01:00
|
|
|
|
2014-02-02 01:02:51 +01:00
|
|
|
String[] split = readingLine.split(":");
|
2014-03-08 02:00:25 +01:00
|
|
|
|
2014-02-02 01:02:51 +01:00
|
|
|
if(split.length != 2 || !isInteger(split[0]) || !isInteger(split[1]))
|
|
|
|
{
|
|
|
|
System.err.println("[Mekanism] BoxBlacklist.txt: Couldn't parse blacklist data on line " + line);
|
|
|
|
}
|
2014-03-08 02:00:25 +01:00
|
|
|
|
2014-05-29 20:01:43 +02:00
|
|
|
MekanismAPI.addBoxBlacklist(Block.getBlockFromName(split[0]), Integer.parseInt(split[1]));
|
2014-02-02 01:02:51 +01:00
|
|
|
entries++;
|
|
|
|
}
|
2014-03-08 02:00:25 +01:00
|
|
|
|
2014-02-02 01:02:51 +01:00
|
|
|
reader.close();
|
2014-03-08 02:00:25 +01:00
|
|
|
|
2014-02-02 01:02:51 +01:00
|
|
|
System.out.println("[Mekanism] Finished loading Cardboard Box blacklist (loaded " + entries + " entries)");
|
|
|
|
}
|
2014-03-08 02:00:25 +01:00
|
|
|
|
2014-02-02 01:02:51 +01:00
|
|
|
private static void writeExamples() throws IOException
|
|
|
|
{
|
|
|
|
BufferedWriter writer = new BufferedWriter(new FileWriter(boxBlacklistFile));
|
2014-03-08 02:00:25 +01:00
|
|
|
|
2014-02-02 01:02:51 +01:00
|
|
|
writer.append("# Use this file to tell Mekanism which blocks should not be picked up by a cardboard box.");
|
|
|
|
writer.newLine();
|
2014-03-08 02:00:25 +01:00
|
|
|
|
2014-02-02 01:02:51 +01:00
|
|
|
writer.append("# Proper syntax is \"ID:META\". Example (for stone):");
|
|
|
|
writer.newLine();
|
2014-03-08 02:00:25 +01:00
|
|
|
|
2014-02-02 01:02:51 +01:00
|
|
|
writer.append("# 1:0");
|
2014-03-08 02:00:25 +01:00
|
|
|
|
2014-02-02 01:02:51 +01:00
|
|
|
writer.flush();
|
|
|
|
writer.close();
|
|
|
|
}
|
|
|
|
}
|