try {
final Constructor<E> constr = c.getDeclaredConstructor();
constr.setAccessible(true);
return constr.newInstance();
} catch (final InstantiationException e) {
throw new SkriptAPIException("Serializer of " + info.getCodeName() + " must override newInstance(), canBeInstantiated() or mustSyncDeserialization() if its class does not have a nullary constructor");
} catch (final NoSuchMethodException e) {
throw new SkriptAPIException("Serializer of " + info.getCodeName() + " must override newInstance(), canBeInstantiated() or mustSyncDeserialization() if its class does not have a nullary constructor");
} catch (final SecurityException e) {
throw Skript.exception("Security manager present");
} catch (final IllegalArgumentException e) {
assert false;
return null;