public void cmdBid(CommandSender sender, String[] args) {
		
		Player player = null;
		if (sender instanceof Player) {
			player = (Player) sender;
		}
		
		if(args.length != 4) {
			sender.sendMessage(Conf.colorMain + "Usage:");
			sender.sendMessage(Conf.colorAccent + "/ee bid <quantity> <material name> <price>");
			return;
		}
		
		int quantity = 0;
		double price;
		Material material;
		
		try {
			quantity = Integer.parseInt(args[1]);
			
		} catch( Exception e ) {
			sender.sendMessage(Conf.colorWarning + "Invalid quantity");
			return;
		}
		
		if(quantity <= 0) {
			sender.sendMessage(Conf.colorWarning + "Please enter a quantity greater than 0");
			return;
		}
		
		material = materials.get(args[2]);
		
		if( material == null ) {
			sender.sendMessage(Conf.colorWarning + "Invalid material");
			return;
		}
		
		try {
			price = Double.parseDouble(args[3]);
			
		} catch( Exception e ) {
			sender.sendMessage(Conf.colorWarning + "Invalid price");
			return;
		}
		
		if(price <= 0 ) {
			sender.sendMessage(Conf.colorWarning + "Please enter a price greater than 0");
			return;
		}
		
		if(!econ.withdrawPlayer(sender.getName(), price + Conf.listingFee).transactionSuccess()) {
			//Could not withdraw the money
			sender.sendMessage(Conf.colorWarning + "You can't afford to bid that.");
			return;
		} else {
			sender.sendMessage(Conf.colorMain + "" + price + " has been deducted from your account.");
			
			if(Conf.listingFee > 0) {
				sender.sendMessage(Conf.colorAccent + "(A listing fee of " + Conf.listingFee + " has also been deducted.)");
			}
		}
		
		Order bid = new Order(quantity, price, player.getName());
		
		Market market = markets.get(material);
		
		market.addBid(bid);
		
		sender.sendMessage(Conf.colorMain + "Bid for " + quantity + " " + args[2] + " for " + price + " submitted.");
		getLogger().info(player.getDisplayName() + " created bid for " + quantity + " " + args[2] + " for " + price);
		
		market.balance();
		
		save();
	}