SHOW:
|
|
- or go back to the newest paste.
1 | import org.bukkit.configuration.serialization.ConfigurationSerialization; | |
2 | @SuppressWarnings("unchecked") | |
3 | @Override | |
4 | public void onEnable(){ | |
5 | ||
6 | File f = new File(this.getDataFolder() + "/database/" + "data.hashmap"); | |
7 | map = HashBiMap.create(); | |
8 | if(!f.exists()){ | |
9 | System.out.println("Hashmap not found, creating a new one"); | |
10 | map = HashBiMap.create(); | |
11 | }else{ | |
12 | try{ | |
13 | System.out.println("Hashmap found, loading..."); | |
14 | FileInputStream fileIn = new FileInputStream(this.getDataFolder() + "/database/" + "data.hashmap"); | |
15 | - | map = (HashBiMap<String, BlockVector>) in.readObject(); |
15 | + | |
16 | ||
17 | Map<String, Object> inMap = in.readObject(); | |
18 | for (Map.Entry<String, Object> entry : inMap.entrySet()) { | |
19 | BlockVector bvec = (BlockVector) ConfigurationSerialization.deserializeObject(entry.getValue()); | |
20 | map.put(entry.getKey(), bvec); | |
21 | } | |
22 | in.close(); | |
23 | fileIn.close(); | |
24 | }catch (Exception e){ | |
25 | e.printStackTrace(); | |
26 | } | |
27 | } | |
28 | ||
29 | getServer().getPluginManager().registerEvents(this, this); | |
30 | } | |
31 | ||
32 | @Override | |
33 | public void onDisable(){ | |
34 | - | out.writeObject(map); |
34 | + | Map<String, Object> outMap = new HashMap<String, Object>(); |
35 | for (Map.Entry<String, BlockVector> entry : map.entrySet()) { | |
36 | Map<String, Object> ser = entry.getValue().serialize(); | |
37 | ser.put(ConfigurationSerialization.SERIALIZED_TYPE_KEY, "BlockVector"); | |
38 | outMap.put(entry.getKey(), ser); | |
39 | } | |
40 | try{ | |
41 | System.out.println("Saving hashmap..."); | |
42 | FileOutputStream fileOut = new | |
43 | FileOutputStream(this.getDataFolder() + "/database/" + | |
44 | "data.hashmap"); | |
45 | ObjectOutputStream out = new ObjectOutputStream(fileOut); | |
46 | out.writeObject(outMap); | |
47 | out.flush(); | |
48 | out.close(); | |
49 | fileOut.flush(); | |
50 | fileOut.close(); | |
51 | }catch (Exception e){ | |
52 | e.printStackTrace(); | |
53 | } | |
54 | } |