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

Contents 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 3236 - (show annotations) (download)
Sun Jul 15 10:04:25 2018 UTC (5 years, 10 months ago) by torben
File size: 3567 byte(s)
don't fail loading if theres trouble with a single door
1 package dk.thoerup.bukkit.hoeruputils.secretdoor;
2
3 import java.io.File;
4 import java.util.HashMap;
5 import java.util.LinkedList;
6 import java.util.Set;
7
8 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;
13
14 public class DoorStorage {
15 private HashMap<Location,Door> doormap = new HashMap<Location,Door>();
16 private LinkedList<Door> doors = new LinkedList<Door>();
17
18 private Plugin plugin;
19
20 public DoorStorage(Plugin plugin) {
21 this.plugin = plugin;
22 }
23
24 public Door findDoor(Location location) {
25 return doormap.get( location );
26 }
27
28 public void addDoor(Door door) {
29 door.registerMap(doormap);
30 doors.add(door);
31 saveAll();
32 }
33
34 public void removeDoor(Door door) {
35 door.unregisterMap(doormap);
36 doors.remove(door);
37 saveAll();
38 }
39
40 public void saveAll() {
41
42 File f2 = new File( plugin.getDataFolder(), "secretdoors.yml");
43 YamlConfiguration config = new YamlConfiguration();
44
45
46 for (int i=0; i<doors.size(); i++) {
47 Door door = doors.get(i);
48
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() {
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 {
78 config.load(f);
79 } 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
87
88 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 );
115 door.registerMap(doormap);
116 } catch (Exception e) {
117 System.out.println("[SecretDoor] DoorStorage: exception loading door : " + e.getMessage() );
118 e.printStackTrace();
119 }
120 }
121
122 System.out.println("[SecretDoor] loaded " + doors.size() + " doors");
123
124 }
125
126
127
128 }

  ViewVC Help
Powered by ViewVC 1.1.20