@EventHandler
	public void onInventoryClick(InventoryClickEvent e)
	{
		// If either item is null (caused by failure to immediately update inventories after cancelled events),
		// return as to avoid big ugly errors in console that make me sad.
		if(e.getCursor() == null)
			return;
		if(e.getCurrentItem() == null)
			return;
		
		if(e.getInventory() != e.getWhoClicked().getInventory())
		{
			if(e.getCursor().equals(QuestCompass.getCompass()) || e.getCurrentItem().equals(QuestCompass.getCompass()))
			{
				e.setResult(Result.DENY);
				e.setCancelled(true);
				return;
			}
			
			ItemStack questBook = QuestBook.getBook(e.getWhoClicked().getName());
			
			if(questBook != null)
			{
				if(e.getCursor().equals(questBook) || e.getCurrentItem().equals(QuestCompass.getCompass()))
				{
					e.setResult(Result.DENY);
					e.setCancelled(true);
					return;
				}
			}
		}
		
	}