public String[] findPlugins() {
			
		File f = new File("plugins");
		
		if (f == null || (f != null && !f.isDirectory())) {
			Logger.getLogger("global").warning("Plugins directory not found!");
			return null;
		}
		
		String[] list = f.list();
		if (list == null) {
			Logger.getLogger("global").info("Found no plugins");
			return null;
		}
			
		Vector v = new Vector();

		for (int i = 0; i < list.length; i++) {
			String name = list[i];
			boolean isClassFile = name.endsWith(".class");
			boolean hasUnderscore = name.indexOf('_') >= 0;
			if (hasUnderscore && isClassFile && name.indexOf('$') < 0 ) {
				name = name.substring(0, name.length() - 6); // remove ".class"
				v.addElement(name);
			} else {
				if (!isClassFile)
					checkSubdirectory("plugins", name, v);
			}
		}
		list = new String[v.size()];
		v.copyInto((String[])list);
		
		return list;
	}