public Map<String, Map<String, Boolean>> getPermissions(String world) {
		Map<String, Map<String, Boolean>> result = new HashMap<String, Map<String, Boolean>>();
		Map<String, Boolean> groupperms = new LinkedHashMap<String, Boolean>();
		//add group permissions
		groupperms.put("droxperms.meta.group." + group, true);
		if (world != null) {
			groupperms.put("droxperms.meta.group." + group + "." + Config.getRealWorld(world), true);
		}
		result.put("group", groupperms);
		//add subgroup permissions
		if (subgroups != null) {
			Map<String, Boolean> subgroupperms = new LinkedHashMap<String, Boolean>();
			for (Iterator<String> iterator = subgroups.iterator(); iterator.hasNext();) {
				String subgroup = iterator.next();
				subgroupperms.put("droxperms.meta.group." + subgroup, true);
				if (world != null) {
					subgroupperms.put("droxperms.meta.group." + subgroup + "." + Config.getRealWorld(world), true);
				}
			}
			result.put("subgroups", subgroupperms);
		}
		//add global permissions
		if (globalPermissions != null) {
			result.put("global", globalPermissions);
		}
		//add world permissions
		if (world != null && permissions != null) {
			Map<String, Boolean> worldperms = new LinkedHashMap<String, Boolean>();
			if (permissions.get(Config.getRealWorld(world)) != null) {
				worldperms.putAll(permissions.get(Config.getRealWorld(world)));
			}
			result.put("world", worldperms);
		}
		return result;
	}