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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1614 - (show annotations) (download)
Thu Oct 20 17:06:20 2011 UTC (12 years, 7 months ago) by torben
File size: 3148 byte(s)
switch to bukkit's new configuration api
1 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 import java.util.Set;
10
11 import org.bukkit.configuration.file.YamlConfiguration;
12 import org.bukkit.Location;
13 import org.bukkit.World;
14 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 private Plugin plugin;
21
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 File f2 = new File( plugin.getDataFolder(), "secretdoors.yml");
45 YamlConfiguration config = new YamlConfiguration();
46
47 int count = 0;
48 for (int i=0; i<doors.size(); i++) {
49 Door door = doors.get(i);
50
51 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 }
61
62 try {
63 config.save(f2);
64 } catch (java.io.IOException e) {
65 System.out.println("[SecretDoor] DoorStorage : exception saving doors : " + e.getMessage() );
66 }
67
68 }
69
70 public void loadAll() {
71 File f = new File( plugin.getDataFolder(), "secretdoors.yml");
72
73 if ( !f.exists() ) {
74 System.out.println("[SecretDoor] coult not find secretdoors.yml");
75 return;
76 }
77 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
85 Set<String> keys = config.getKeys(false); //get all root keys
86
87
88
89 for (String key : keys) {
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 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
103 boolean isPrivate = config.getBoolean( key + ".private", false);
104
105 Door door = new Door(loc, direction, width, height, owner, isPrivate);
106 doors.add( door );
107 door.registerMap(doormap);
108 }
109
110 System.out.println("[SecretDoor] loaded " + doors.size() + " doors");
111
112 }
113
114
115
116 }

  ViewVC Help
Powered by ViewVC 1.1.20