/** * Retrieve the closest equivalent converter to a specific class. * @param clazz - the class. * @return The closest converter, or NULL if not found, */ private EquivalentConverter<Object> findConverter(Class<?> clazz) { Map<Class<?>, EquivalentConverter<Object>> converters = BukkitConverters.getConvertersForGeneric(); while (clazz != null) { EquivalentConverter<Object> result = converters.get(clazz); if (result != null) return result; else clazz = clazz.getSuperclass(); } return null; }
/** * Retrieve every NMS to/from Bukkit converter as unwrappers. * @return Every unwrapper. */ public static List<Unwrapper> getUnwrappers() { if (unwrappers == null) { ImmutableList.Builder<Unwrapper> builder = ImmutableList.builder(); for (Map.Entry<Class<?>, EquivalentConverter<Object>> entry : getConvertersForGeneric().entrySet()) { builder.add(asUnwrapper(entry.getKey(), entry.getValue())); } unwrappers = builder.build(); } return unwrappers; }