@SuppressWarnings ("deprecation")
	public static boolean deliverMail(Mail mail) {
		boolean status = true;

		String toName = mail.sentTo();
		Player to = plugin.getServer().getPlayer(toName);

		String fromName = mail.sentFrom();

		Date sentDate = new Date(mail.sentAt());
		String sentAt = DateFormat.getDateTimeInstance().format(sentDate);

		if(to == null)
			return false; // Fail on null player

		if(mail instanceof Letter) {
			Letter letter = (Letter) mail;

			String messageBody = letter.getMessage();

			to.sendMessage("A letter from: " + fromName);
			to.sendMessage("Written at: " + sentAt);
			to.sendMessage("Message: " + messageBody);
		} else {
			Package pack = (Package) mail;

			ItemStack item = pack.getItem();
			Inventory inventory = to.getInventory();

			if(inventory.firstEmpty() == -1) {
				to.sendMessage("Not enough room to open this package!");
				status = false;
			} else {
				HashMap<Integer, ItemStack> extra = inventory.addItem(item);

				if(!extra.isEmpty()) {
					// Send extras back to user
					for(Integer i : extra.keySet()) {
						ItemStack stack = extra.get(i);
						Package extrasPack = new Package(to.getName(), Bukkit.getConsoleSender().getName(), stack); // Send as console
						sendMail(extrasPack);
					}
					to.sendMessage("Whoops! Your inventory was full. Your missing items are re-sent to you.");
				} else {
					to.sendMessage("A package from: " + fromName);
					to.sendMessage("Packaged at: " + sentAt);
					to.sendMessage(item.getAmount() + "x " + materialToHuman(item.getType()));
				}
				to.updateInventory();
			}
		}
		return status;
	}