@Override
	public void run(CommandSender sender, String maincmd, String[] args)
	{
		if (sender instanceof Player && !sender.hasPermission("mobmanager.butcher"))
		{
			sender.sendMessage(ChatColor.DARK_RED + "You do not have permission to use /mm butcher");
			return;
		}
		
		if (!MMComponent.getLimiter().isEnabled())
		{
			sender.sendMessage(ChatColor.RED + "This command requires EnableLimiter in main config to be true");
			return;
		}
		
		if (!super.validArgs(sender, maincmd, args))
			return;
		
		ArrayList<Object> toRemove = new ArrayList<Object>(1);
		int numMobs = 0;
		
		if (args.length == 1)
		{
			toRemove.add(MobType.MONSTER);
			toRemove.add(MobType.AMBIENT);
			toRemove.add(MobType.WATER_ANIMAL);
			
			if (args[0].equalsIgnoreCase("butcherall"))
				toRemove.add(MobType.ANIMAL);
		}
		else if (args.length > 1)
		{
			for (int i = 1; i < args.length; ++i)
			{
				if (!addMobType(toRemove, args[i]))
				{
					sender.sendMessage(ChatColor.RED + "Invalid mob type '" + ChatColor.YELLOW + args[i] + ChatColor.RED + "'");
					return;
				}
			}
		}
		
		numMobs = removeMobs(toRemove, args[0].equalsIgnoreCase("butcherall"));
		
		sender.sendMessage(ChatColor.GRAY + "~Removed " + numMobs + " mobs");
	}