@EventHandler (ignoreCancelled = true)
	public void onPlayerInteract(PlayerInteractEvent event) {
		if(!event.getAction().equals(Action.RIGHT_CLICK_BLOCK)) {
			return;
		}

		Block block = event.getClickedBlock();
		Player player = event.getPlayer();

		if(block.getState() instanceof Sign) {
			Sign sign = (Sign) block.getState();
			if(isPostOfficeSign(sign)) {
				processInteraction(event, sign, player);
			}
		} else if(block.getType().equals(Material.WOOL)) {
			if(block.getData() == 0x0 || block.getData() == 0xB) {
				Sign found = null;

				Block above = block.getRelative(BlockFace.UP);
				if(above.getState() instanceof Sign) {
					Sign potential = (Sign) above.getState();
					if(isPostOfficeSign(potential)) {
						found = potential;
					}
				}

				if(found != null) {
					processInteraction(event, found, player);
				}
			}
		}
	}