Package org.geysermc.geyser.impl
Annotation Interface GeyserCoreProvided
A marker annotation to make sure implementations of
GeyserProvided are actually our implementations. Implement as follows:
@GeyserProvided
public interface MyGeyserApi {}
@GeyserCoreProvided
public class MyGeyserApiImpl implements MyGeyserApi {}
Then, verify an implementation of MyGeyserApi is our implementation:
boolean isApiProvided = AnnotationUtils.hasAnnotationRecursive(clazz, GeyserProvided.class);
boolean isCoreImpl = AnnotationUtils.hasAnnotationRecursive(clazz, GeyserCoreProvided.class);
if (isApiProvided && !isCoreImpl) {
throw new IllegalArgumentException("some message");
}
The error message given should contain clear details on what the developer should be doing instead.