View difference between Paste ID: gErZhfrr and tMUE43Kh
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
	}