/[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 1605 - (hide annotations) (download)
Sat Oct 1 15:21:07 2011 UTC (12 years, 8 months ago) by torben
Original Path: miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/secretdoor/DoorStorage.java
File size: 2898 byte(s)
add concept of a private secretdoor which only the owner can open
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 1604 import java.util.List;
10 torben 1530
11 torben 1604 import org.bukkit.util.config.Configuration;
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     Configuration config = new Configuration(f2);
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 1604 config.setProperty( i + ".world", door.getLeftUpper().getWorld().getName() );
52     config.setProperty( i + ".x", door.getLeftUpper().getBlockX() );
53     config.setProperty( i + ".y", door.getLeftUpper().getBlockY() );
54     config.setProperty( i + ".z", door.getLeftUpper().getBlockZ() );
55     config.setProperty( i + ".direction", door.getDirection() );
56     config.setProperty( i + ".width", door.getWidth() );
57     config.setProperty( i + ".height", door.getHeight() );
58     config.setProperty( i + ".owner", door.getOwner() );
59 torben 1605 config.setProperty( i + ".private", door.isPrivate() );
60 torben 1530 }
61 torben 1604
62    
63     config.save();
64    
65 torben 1530 }
66    
67     public void loadAll() {
68 torben 1604 File f = new File( plugin.getDataFolder(), "secretdoors.yml");
69 torben 1530
70 torben 1604 if ( !f.exists() ) {
71     System.out.println("[SecretDoor] coult not find secretdoors.yml");
72     return;
73     }
74     Configuration config = new Configuration(f);
75     config.load();
76    
77     List<String> keys = config.getKeys(); //get all root keys
78    
79 torben 1530
80 torben 1604
81     for (String key : keys) {
82 torben 1532
83 torben 1604 World world = plugin.getServer().getWorld( config.getString(key + ".world") );
84     int x = config.getInt( key + ".x", 0);
85     int y = config.getInt( key + ".y", 0);
86     int z = config.getInt( key + ".z", 0);
87     Location loc = new Location(world, x, y, z);
88    
89     int direction = config.getInt( key + ".direction", 0);
90     int width = config.getInt( key + ".width", 0);
91     int height = config.getInt( key + ".height", 0);
92    
93     String owner = config.getString( key + ".owner");
94 torben 1605
95     boolean isPrivate = config.getBoolean( key + ".private", false);
96 torben 1604
97 torben 1605 Door door = new Door(loc, direction, width, height, owner, isPrivate);
98 torben 1604 doors.add( door );
99     door.registerMap(doormap);
100     }
101    
102     System.out.println("[SecretDoor] loaded " + doors.size() + " doors");
103    
104 torben 1530 }
105    
106    
107    
108     }

  ViewVC Help
Powered by ViewVC 1.1.20