package dk.thoerup.bukkit.hoeruputils.secretdoor; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.io.RandomAccessFile; import java.util.HashMap; import java.util.LinkedList; import org.bukkit.Location; import org.bukkit.plugin.Plugin; public class DoorStorage { private HashMap doormap = new HashMap(); private LinkedList doors = new LinkedList(); Plugin plugin; public DoorStorage(Plugin plugin) { this.plugin = plugin; } public Door findDoor(Location location) { return doormap.get( location ); } public void addDoor(Door door) { door.registerMap(doormap); doors.add(door); saveAll(); } public void removeDoor(Door door) { door.unregisterMap(doormap); doors.remove(door); saveAll(); } public void saveAll() { try { File f = new File( plugin.getDataFolder(), "secretdoors.csv"); RandomAccessFile out = new RandomAccessFile( f, "rw" ); out.setLength(0); for (Door door : doors) { out.writeBytes( door.toCsv() ); out.writeBytes( "\n"); } out.close(); } catch (IOException e) { System.out.println(e.getMessage() ); e.printStackTrace(); } } public void loadAll() { try { File f = new File( plugin.getDataFolder(), "secretdoors.csv"); RandomAccessFile in = new RandomAccessFile( f, "r" ); String line; while ( (line = in.readLine() ) != null ) { Door door = new Door(line, plugin.getServer() ); doors.add( door ); door.registerMap( doormap ); } in.close(); } catch (FileNotFoundException fnfe) { return; } catch (IOException e) { System.out.println(e.getMessage() ); e.printStackTrace(); } } }