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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1614 - (hide annotations) (download)
Thu Oct 20 17:06:20 2011 UTC (12 years, 7 months ago) by torben
Original Path: miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/secretdoor/DoorStorage.java
File size: 3148 byte(s)
switch to bukkit's new configuration api
1 torben 1530 package dk.thoerup.bukkit.hoeruputils.secretdoor;
2    
3     import java.io.File;
4     import java.io.FileNotFoundException;
5     import java.io.IOException;
6     import java.io.RandomAccessFile;
7     import java.util.HashMap;
8     import java.util.LinkedList;
9 torben 1614 import java.util.Set;
10 torben 1530
11 torben 1614 import org.bukkit.configuration.file.YamlConfiguration;
12 torben 1530 import org.bukkit.Location;
13 torben 1604 import org.bukkit.World;
14 torben 1530 import org.bukkit.plugin.Plugin;
15    
16     public class DoorStorage {
17     private HashMap<Location,Door> doormap = new HashMap<Location,Door>();
18     private LinkedList<Door> doors = new LinkedList<Door>();
19    
20 torben 1538 private Plugin plugin;
21 torben 1530
22     public DoorStorage(Plugin plugin) {
23     this.plugin = plugin;
24     }
25    
26     public Door findDoor(Location location) {
27     return doormap.get( location );
28     }
29    
30     public void addDoor(Door door) {
31     door.registerMap(doormap);
32     doors.add(door);
33     saveAll();
34     }
35    
36     public void removeDoor(Door door) {
37     door.unregisterMap(doormap);
38     doors.remove(door);
39     saveAll();
40     }
41    
42     public void saveAll() {
43    
44 torben 1604 File f2 = new File( plugin.getDataFolder(), "secretdoors.yml");
45 torben 1614 YamlConfiguration config = new YamlConfiguration();
46 torben 1530
47 torben 1604 int count = 0;
48     for (int i=0; i<doors.size(); i++) {
49     Door door = doors.get(i);
50 torben 1530
51 torben 1614 config.set( i + ".world", door.getLeftUpper().getWorld().getName() );
52     config.set( i + ".x", door.getLeftUpper().getBlockX() );
53     config.set( i + ".y", door.getLeftUpper().getBlockY() );
54     config.set( i + ".z", door.getLeftUpper().getBlockZ() );
55     config.set( i + ".direction", door.getDirection() );
56     config.set( i + ".width", door.getWidth() );
57     config.set( i + ".height", door.getHeight() );
58     config.set( i + ".owner", door.getOwner() );
59     config.set( i + ".private", door.isPrivate() );
60 torben 1530 }
61 torben 1604
62 torben 1614 try {
63     config.save(f2);
64     } catch (java.io.IOException e) {
65     System.out.println("[SecretDoor] DoorStorage : exception saving doors : " + e.getMessage() );
66     }
67 torben 1604
68 torben 1530 }
69    
70     public void loadAll() {
71 torben 1604 File f = new File( plugin.getDataFolder(), "secretdoors.yml");
72 torben 1530
73 torben 1604 if ( !f.exists() ) {
74     System.out.println("[SecretDoor] coult not find secretdoors.yml");
75     return;
76     }
77 torben 1614 YamlConfiguration config = new YamlConfiguration();
78     try {
79     config.load(f);
80     } catch (Exception e) {
81     System.out.println("[SecretDoor] DoorStorage: exception loading doors : " + e.getMessage() );
82     return;
83     }
84 torben 1604
85 torben 1614 Set<String> keys = config.getKeys(false); //get all root keys
86 torben 1604
87 torben 1530
88 torben 1604
89     for (String key : keys) {
90 torben 1532
91 torben 1604 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     int direction = config.getInt( key + ".direction", 0);
98     int width = config.getInt( key + ".width", 0);
99     int height = config.getInt( key + ".height", 0);
100    
101     String owner = config.getString( key + ".owner");
102 torben 1605
103     boolean isPrivate = config.getBoolean( key + ".private", false);
104 torben 1604
105 torben 1605 Door door = new Door(loc, direction, width, height, owner, isPrivate);
106 torben 1604 doors.add( door );
107     door.registerMap(doormap);
108     }
109    
110     System.out.println("[SecretDoor] loaded " + doors.size() + " doors");
111    
112 torben 1530 }
113    
114    
115    
116     }

  ViewVC Help
Powered by ViewVC 1.1.20