public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
		if(command.getName().equalsIgnoreCase("coloredarmor") || command.getName().equalsIgnoreCase("ca")) {
			if(args.length == 0 || args[0].equalsIgnoreCase("help") || args[0].equalsIgnoreCase("?")) {
				if(!(sender.hasPermission("ca.commands.help"))) {
					sender.sendMessage(pre + "§cNo permission!");
					return true;
				}
				
				sender.sendMessage("§8§l[§6§lColoredArmor §7- §6§lHelp§8§l]");
				sender.sendMessage("§6/ca [help;?] §7- shows this page");
				sender.sendMessage("§6/ca info §7- shows some information about this plugin");
				sender.sendMessage("§6/ca iconmenu <player> §7- forces a player to open the coloredarmor iconmenu");
				sender.sendMessage("§6/ca clear §7- clears a players armor slots");
				sender.sendMessage("§6/ca armor <player> <material> <color> §7- give a player a (colored)armor");
				sender.sendMessage("§6/ca helmet <player> <material> <color> §7- give a player a (colored)helmet");
				sender.sendMessage("§6/ca chestplate <player> <material> <color> §7- give a player a (colored)chestplate");
				sender.sendMessage("§6/ca legggings <player> <material> <color> §7- give a player a (colored)leggings");
				sender.sendMessage("§6/ca boots <player> <material> <color> §7- give a player a (colored)boots");
				return true;
			}
			
			if(!(args[0].equalsIgnoreCase("help") || args[0].equalsIgnoreCase("?")
					|| args[0].equalsIgnoreCase("info") || args[0].equalsIgnoreCase("iconmenu")
					|| args[0].equalsIgnoreCase("clear") || args[0].equalsIgnoreCase("armor") 
					|| args[0].equalsIgnoreCase("helmet") || args[0].equalsIgnoreCase("chestplate") 
					|| args[0].equalsIgnoreCase("leggings") || args[0].equalsIgnoreCase("boots"))) {
				sender.sendMessage(pre + "§cUnknown argument!");
				return true;
			}
			
			if(!(sender.hasPermission("ca.commands." + args[0]))) {
				sender.sendMessage(pre + "§cYou don't have the permission to do this!");
				return true;
			}
			
			if(args[0].equalsIgnoreCase("info")) {
				sender.sendMessage("§8§l[§6§lColoredArmor §7- §6§lInfo§8§l]");
				sender.sendMessage("§7Author: §6darkness1999");
				sender.sendMessage("§7Tester: §6MerryXmasChaz, minecraft7net");
				sender.sendMessage("§7Documenter: §6minecraft7net");
				sender.sendMessage("§7Version: §6" + ColoredArmor.plugin.getDescription().getVersion());
				sender.sendMessage("§7Website: §6" + ColoredArmor.plugin.getDescription().getWebsite());
				sender.sendMessage("§7Licence: §6General Public Licence v3");
				return true;
			}
			
			if(args[0].equalsIgnoreCase("iconmenu")) {
				if(args.length < 2) {
					sender.sendMessage(pre + "§cToo few arguments!");
					sender.sendMessage(pre + "§cUsage: /ca iconmenu <player>");
					return true;
				}
				
				@SuppressWarnings("deprecation")
				Player aim = Bukkit.getPlayer(args[1]);
				if(aim == null) {
					sender.sendMessage(pre + "§4" + args[1] + " §cis not online!");
					return true;
				}
				
				IconMenus.openColoredArmorMenu(aim);
	    		aim.playSound(aim.getLocation(), Sound.NOTE_PIANO, 1, 1);
	    		sender.sendMessage(pre + "§7You forced §6" + aim.getName() + " §7to open the §6coloredarmor iconmenu§7!");
	    		return true;
			}
			
			if(args[0].equalsIgnoreCase("clear")) {
				if(args.length > 2) {
					sender.sendMessage(pre + "§cToo many arguments!");
					sender.sendMessage(pre + "§cUsage: /ca clear <player>");
					return true;
				}
				
				if(args.length == 1) {
					if(!(sender instanceof Player)) {
						sender.sendMessage(pre + "§cYou must be a player to do that!");
						return true;
					}
					
					Player player = (Player) sender;
					player.getInventory().setArmorContents(null);
					player.sendMessage(pre + "§7You cleared your armor slots!");
					return true;
				}
				
				else if(args.length == 2) {
					@SuppressWarnings("deprecation")
					Player aim = Bukkit.getPlayer(args[1]);
					if(aim == null) {
						sender.sendMessage(pre + "§4" + args[1] + " §cis not online!");
						return true;
					}
					
					aim.getInventory().setArmorContents(null);
					sender.sendMessage(pre + "§7You cleared §6" + aim.getName() + "§7's armor slots!");
					return true;
				}
			}
			
			if(args[0].equalsIgnoreCase("armor") || args[0].equalsIgnoreCase("helmet")
					|| args[0].equalsIgnoreCase("chestplate") || args[0].equalsIgnoreCase("leggings")
					|| args[0].equalsIgnoreCase("boots")) {
				
				if(args.length < 3) {
					sender.sendMessage(pre + "§cToo few arguments!");
					sender.sendMessage(pre + "§cUsage: /ca " + args[0] + " <player> <material> <color>");
					return true;
				}
				
				@SuppressWarnings("deprecation")
				Player aim = Bukkit.getPlayer(args[1]);
				if(aim == null) {
					sender.sendMessage(pre + "§4" + args[1] + " §cis not online!");
					return true;
				}
				
				if(!(aim.hasPermission("ca.check.player.bypass"))) {
					if(ColoredArmor.config.getBoolean("Check.inventory.player")) {
						if(Armor.containsArmor(aim.getInventory())) {
							sender.sendMessage(pre + "§4" + aim.getName() + " §chas already a §4(Colored)Armor §cin his §4inventory§c!");
							return true;
						}	
					}
				}
				
				if(!(aim.hasPermission("ca.check.enderchest.bypass"))) {
					if(ColoredArmor.config.getBoolean("Check.inventory.enderchest")) {
						if(Armor.containsArmor(aim.getEnderChest())) {
							sender.sendMessage(pre + "§4" + aim.getName() + " §chas already a §4(Colored)Armor §cin his §4enderchest§c!");
							return true;
						}
					}
				}
				
				if(args.length >= 3) {
					ArmorType armorType;
					ArmorPart armorPart = null;
					
					if(args[0].equalsIgnoreCase("armor")) 
						armorPart = ArmorPart.ALL;
					else if(args[0].equalsIgnoreCase("helmet")) 
						armorPart = ArmorPart.HELMET;
					else if(args[0].equalsIgnoreCase("chestplate")) 
						armorPart = ArmorPart.CHESTPLATE;
					else if(args[0].equalsIgnoreCase("leggings")) 
						armorPart = ArmorPart.LEGGINGS;
					else if(args[0].equalsIgnoreCase("boots")) 
						armorPart = ArmorPart.BOOTS;
					
					if(args[2].equalsIgnoreCase("leather")) 
						armorType = ArmorType.LEATHER;
					else if(args[2].equalsIgnoreCase("gold")) 
						armorType = ArmorType.GOLD;
					else if(args[2].equalsIgnoreCase("chainmail")) 
						armorType = ArmorType.CHAINMAIL;
					else if(args[2].equalsIgnoreCase("iron")) 
						armorType = ArmorType.IRON;
					else if(args[2].equalsIgnoreCase("diamond")) 
						armorType = ArmorType.DIAMOND;
					else {
						sender.sendMessage(pre + "§cUnknown material!");
						return true;
					}
					
					if(args.length == 3) {
						new Armor(aim, armorType, armorPart, null);
						sender.sendMessage(pre + "§7You attracted§6 " + aim.getName() + " §7a(n)§6 " + args[2] + " §7armor!");
						return true;	
					}
					else if(args.length > 3) {
						if(!(args[2].equalsIgnoreCase("leather"))) {
							sender.sendMessage(pre + "§cYou can only dye leather!");
							return true;
						}
						
						if(args[3].equalsIgnoreCase("mixcolor")) {
							if(args.length < 7) {
								sender.sendMessage(pre + "§cToo few arguments!");
								sender.sendMessage(pre + "§cUsage: /ca " + args[0] + " <player> leather mixcolor <red> <green> <blue>");
								return true;	
							}
							if(args.length > 7) {
								sender.sendMessage(pre + "§cToo many arguments!");
								sender.sendMessage(pre + "§cUsage: /ca " + args[0] + " <player> leather mixcolor <red> <green> <blue>");
								return true;	
							}
						}
						else if(args.length > 4) {
							sender.sendMessage(pre + "§cToo many arguments!");
							sender.sendMessage(pre + "§cUsage: /ca " + args[0] + " <player> leather <color>");
							return true;
						}
						
						Color color;
						
						if(args[3].equalsIgnoreCase("aqua")) 
							color = Color.AQUA;
						else if(args[3].equalsIgnoreCase("black")) 
							color = Color.BLACK;
						else if(args[3].equalsIgnoreCase("blue")) 
							color = Color.BLUE;
						else if(args[3].equalsIgnoreCase("fuchsia")) 
							color = Color.FUCHSIA;
						else if(args[3].equalsIgnoreCase("gray")) 
							color = Color.GRAY;
						else if(args[3].equalsIgnoreCase("green")) 
							color = Color.GREEN;
						else if(args[3].equalsIgnoreCase("lime")) 
							color = Color.LIME;
						else if(args[3].equalsIgnoreCase("maroon")) 
							color = Color.MAROON;
						else if(args[3].equalsIgnoreCase("navy")) 
							color = Color.NAVY;
						else if(args[3].equalsIgnoreCase("olive")) 
							color = Color.OLIVE;
						else if(args[3].equalsIgnoreCase("orange")) 
							color = Color.ORANGE;
						else if(args[3].equalsIgnoreCase("purple")) 
							color = Color.PURPLE;
						else if(args[3].equalsIgnoreCase("red")) 
							color = Color.RED;
						else if(args[3].equalsIgnoreCase("silver")) 
							color = Color.SILVER;
						else if(args[3].equalsIgnoreCase("teal")) 
							color = Color.TEAL;
						else if(args[3].equalsIgnoreCase("white")) 
							color = Color.WHITE;
						else if(args[3].equalsIgnoreCase("yellow")) 
							color = Color.YELLOW;
						else if(args[3].equalsIgnoreCase("randomcolor")) 
							color = Armor.getRandomRGBColor();
						else if(args[3].equalsIgnoreCase("mixcolor")) {
							int red;
							int green;
							int blue;
							
							try {
								red = Integer.parseInt(args[4]);
							}
							catch(NumberFormatException NFE) {
								sender.sendMessage(pre + "§4" + args[4] + " §cis not a number!");
								return true;
							}
							
							try {
								green = Integer.parseInt(args[5]);
							}
							catch(NumberFormatException NFE) {
								sender.sendMessage(pre + "§4" + args[5] + " §cis not a number!");
								return true;
							}
							
							try {
								blue = Integer.parseInt(args[6]);
							}
							catch(NumberFormatException NFE) {
								sender.sendMessage(pre + "§4" + args[6] + " §cis not a number!");
								return true;
							}
							
							if(red > 255 || green > 255 || blue > 255 || red < 0 || green < 0 || blue < 0) {
								sender.sendMessage(pre + "§cYou can only use a numbers smaller than 256 and equal or higher than 0!");
								return true;
							}
							
							new Armor(aim, ArmorType.COLORED_LEATHER, armorPart, Color.fromRGB(red, green, blue));
							sender.sendMessage(pre + "§7You attracted§6 " + aim.getName() + " §7a§6 leather " + args[0] + " §7in a §6mixed color§7!");
							return true;
						}
						else {
							sender.sendMessage(pre + "§cUnknown color!");
							return true;
						}
						
						new Armor(aim, ArmorType.COLORED_LEATHER, armorPart, color);
						
						if(args[3].equalsIgnoreCase("randomcolor")) {
							sender.sendMessage(pre + "§7You attracted§6 " + aim.getName() + " §7a§6 leather " + args[0] + " §7in a §6random color§7!");
							return true;
						}
						else {
							sender.sendMessage(pre + "§7You attracted§6 " + aim.getName() + " §7a§6 leather " + args[0] + " §7in§6 " + args[3] + "§7!");
							return true;	
						}
					}
				}
			}
		}
		return false;
	}