public void load()
	{
		makeSureDataDirectoryAndChestsCreated();
		if(!canIO)
			return;
		plugin.getLogger().log(Level.INFO, "Attempting to load the chests file.");
		File f = new File(plugin.getDataFolder(), "chests");
		if (!f.exists())
		{
			plugin.getLogger().log(Level.INFO,
					"Could not find chests file. Attempting to create one now.");
			try
			{
				boolean created = f.createNewFile();
				if (created)
					plugin.getLogger().log(Level.INFO,
							"Successfully created the chests file.");
				else
				{
					plugin.getLogger().log(Level.WARNING,
							"Still couldn't create the chests file.");
					return;
				}
			} catch (IOException e)
			{
				plugin.getLogger().log(Level.WARNING,
						"Could not create file 'chests'. IOExecption.");
				e.printStackTrace();
			}
		}
		try
		{
			DataInputStream ds = new DataInputStream(new FileInputStream(f));
			int numChests = ds.readInt();
			if (numChests > 0)
				sharedChests.clear();
			for (int i = 0; i < numChests; i++)
			{
				String name = ds.readUTF();
				String world = ds.readUTF();
				String creator = ds.readUTF();
				boolean locked = ds.readBoolean();

				double x = ds.readDouble();
				double y = ds.readDouble();
				double z = ds.readDouble();
				Location loc = new Location(plugin.getServer().getWorld(world), x, y, z);
				SharedChest sc = new SharedChest(name, world, creator, loc);
				if (locked)
					sc.lock();
				else
					sc.unlock();
				sharedChests.add(sc);
			}
			ds.close();
			plugin.getLogger().log(Level.INFO,
					"Successfully loaded " + numChests + " chests!");
		} catch (IOException e)
		{
			e.printStackTrace();
		}
	}