/[projects]/miscJava/bukkit-minecraft-plugins/HoerupUtils/src/main/java/dk/thoerup/bukkit/hoeruputils/secretdoor/DoorStorage.java
ViewVC logotype

Diff of /miscJava/bukkit-minecraft-plugins/HoerupUtils/src/main/java/dk/thoerup/bukkit/hoeruputils/secretdoor/DoorStorage.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/secretdoor/DoorStorage.java revision 1530 by torben, Mon Jun 27 16:14:34 2011 UTC miscJava/bukkit-minecraft-plugins/HoerupUtils/src/main/java/dk/thoerup/bukkit/hoeruputils/secretdoor/DoorStorage.java revision 3236 by torben, Sun Jul 15 10:04:25 2018 UTC
# Line 1  Line 1 
1  package dk.thoerup.bukkit.hoeruputils.secretdoor;  package dk.thoerup.bukkit.hoeruputils.secretdoor;
2    
3  import java.io.File;  import java.io.File;
 import java.io.FileNotFoundException;  
 import java.io.IOException;  
 import java.io.RandomAccessFile;  
4  import java.util.HashMap;  import java.util.HashMap;
5  import java.util.LinkedList;  import java.util.LinkedList;
6    import java.util.Set;
7    
8  import org.bukkit.Location;  import org.bukkit.Location;
9    import org.bukkit.World;
10    import org.bukkit.block.BlockFace;
11    import org.bukkit.configuration.file.YamlConfiguration;
12  import org.bukkit.plugin.Plugin;  import org.bukkit.plugin.Plugin;
13    
14  public class DoorStorage {  public class DoorStorage {
15          private HashMap<Location,Door> doormap = new HashMap<Location,Door>();          private HashMap<Location,Door> doormap = new HashMap<Location,Door>();
16          private LinkedList<Door> doors = new LinkedList<Door>();          private LinkedList<Door> doors = new LinkedList<Door>();
17                    
18          Plugin plugin;          private Plugin plugin;
19                    
20          public DoorStorage(Plugin plugin) {          public DoorStorage(Plugin plugin) {
21                  this.plugin = plugin;                  this.plugin = plugin;
# Line 37  public class DoorStorage { Line 38  public class DoorStorage {
38          }          }
39                    
40          public void saveAll() {          public void saveAll() {
                 try {  
41    
42                          File f = new File( plugin.getDataFolder(), "secretdoors.csv");                  File f2 = new File( plugin.getDataFolder(), "secretdoors.yml");
43                          RandomAccessFile out = new RandomAccessFile( f, "rw" );                  YamlConfiguration config = new YamlConfiguration();
                         out.setLength(0);        
   
                         for (Door door : doors) {  
                                 out.writeBytes( door.toCsv() );  
                                 out.writeBytes( "\n");  
                         }  
44    
45                          out.close();                  
46                  } catch (IOException e) {                  for (int i=0; i<doors.size(); i++) {
47                          System.out.println(e.getMessage() );                          Door door = doors.get(i);
48                          e.printStackTrace();  
49                            config.set( i + ".world", door.getLeftUpper().getWorld().getName() );
50                            config.set( i + ".x", door.getLeftUpper().getBlockX() );
51                            config.set( i + ".y", door.getLeftUpper().getBlockY() );
52                            config.set( i + ".z", door.getLeftUpper().getBlockZ() );
53                            config.set( i + ".direction", door.getDirection().toString()  );
54                            config.set( i + ".width", door.getWidth() );
55                            config.set( i + ".height", door.getHeight() );
56                            config.set( i + ".owner", door.getOwner() );
57                            config.set( i + ".private", door.isPrivate() );
58                            config.set( i + ".password", door.getPassword() );
59                  }                  }
60    
61                    try {
62                            config.save(f2);
63                    } catch (java.io.IOException e) {
64                            System.out.println("[SecretDoor] DoorStorage : exception saving doors : " + e.getMessage() );
65                    }
66    
67          }          }
68    
69          public void loadAll() {          public void loadAll() {
70                    File f = new File( plugin.getDataFolder(), "secretdoors.yml");
71    
72                    if ( !f.exists() ) {
73                            System.out.println("[SecretDoor] coult not find secretdoors.yml");
74                            return;
75                    }
76                    YamlConfiguration config = new YamlConfiguration();
77                  try {                  try {
78                          File f = new File( plugin.getDataFolder(), "secretdoors.csv");                          config.load(f);
79                          RandomAccessFile in = new RandomAccessFile( f, "r" );                  } catch (Exception e) {
80                            System.out.println("[SecretDoor] DoorStorage: exception loading doors : " + e.getMessage() );
81                            return;
82                    }
83    
84                    Set<String> keys = config.getKeys(false); //get all root keys
85    
86                          String line;                          
87                          while ( (line = in.readLine() ) != null ) {  
88                                  Door door = new Door(line, plugin.getServer() );                                  for (String key : keys) {
89                            try {
90                            
91                                    World world = plugin.getServer().getWorld( config.getString(key + ".world") );
92                                    int x = config.getInt( key + ".x", 0);
93                                    int y = config.getInt( key + ".y", 0);
94                                    int z = config.getInt( key + ".z", 0);
95                                    Location loc = new Location(world, x, y, z);
96                                    
97                                    String directionStr = config.getString( key + ".direction", "");
98                                    //BlockFace direction = BlockFace.valueOf(directionStr);
99                                    int dir = Integer.parseInt( directionStr );
100    
101                                    BlockFace direction = BlockFace.values()[ dir ];
102                            
103                                    int width = config.getInt( key + ".width", 0);
104                                    int height = config.getInt( key + ".height", 0);
105    
106                                    String owner = config.getString( key + ".owner");
107    
108                                    boolean isPrivate = config.getBoolean( key + ".private", false);
109                                    String password = config.getString( key + ".password", "");
110                            
111                            
112                                    
113                                    Door door = new Door(loc, direction, width, height, owner, isPrivate, password);
114                                  doors.add( door );                                  doors.add( door );
115                                  door.registerMap( doormap );                                      door.registerMap(doormap);
116                            } catch (Exception e) {
117                                    System.out.println("[SecretDoor] DoorStorage: exception loading door : " + e.getMessage() );
118                                    e.printStackTrace();
119                          }                          }
120                          in.close();                  }                      
121                            
122                    System.out.println("[SecretDoor] loaded " + doors.size() + " doors");
123                                                    
                 }  
                 catch (FileNotFoundException fnfe) {  
                         return;  
                 }  
                 catch (IOException e) {  
                         System.out.println(e.getMessage() );  
                         e.printStackTrace();  
                 }  
124          }          }
125    
126                    

Legend:
Removed from v.1530  
changed lines
  Added in v.3236

  ViewVC Help
Powered by ViewVC 1.1.20