@Override
	public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
	{
		if (!(sender instanceof Player))
		{
			sender.sendMessage("Only players can use this command.");
			return true;
		}

		Player p = (Player) sender;

		Block lookingAt = Utilities.getLookingAtAir(p);
		if(lookingAt == null)
		{
			sender.sendMessage("no block found");
			return true;
		}
		
		Material m = p.getItemInHand().getType();
		
		if (m.isBlock())
		{
			if (label.equals("floor"))
			{
				fillFloor(p, m, lookingAt);
				p.sendMessage("Success! Placed " + count + " " + m + " as a floor.");
			}
			else if(label.equals("wall"))
			{
				Block look = Utilities.getLookingAtBlock(p);
				if(look.getX() == lookingAt.getX() && look.getZ() == lookingAt.getZ())
				{
					p.sendMessage("Cannot build a wall here.");
					return true;
				}
				else
				{
					if(look.getX() == lookingAt.getX())
					{
						// Z-axis wall
						fillWall(p, m, lookingAt.getX(), lookingAt.getY(), lookingAt.getZ(), 0, 1);
					}
					else
					{
						// X-axis wall
						fillWall(p, m, lookingAt.getX(), lookingAt.getY(), lookingAt.getZ(), 1, 0);						
					}
				}
				p.sendMessage("Success! Placed " + count + " " + m + " as a wall.");
			}
		} else
		{
			p.sendMessage("Cannot place this type of block.");
			return true;
		}

		return true;
	}