The api module contains all public contracts used by plugin developers.
- Service interfaces (for Bukkit service lookup)
- API models and events
- Shared annotations (
@Inject,@EnableServices,@DreamAutoService) - Utility classes and builders
api/src/main/java/fr/dreamin/dreamapi/api/DreamAPI.javaapi/src/main/java/fr/dreamin/dreamapi/api/services/DreamService.javaapi/src/main/java/fr/dreamin/dreamapi/api/services/DreamAutoService.java
You need compile-time contracts without depending directly on core internals.
import fr.dreamin.dreamapi.api.item.ItemRegistryService;
import fr.dreamin.dreamapi.plugin.DreamPlugin;
ItemRegistryService items = DreamPlugin.getService(ItemRegistryService.class);
boolean exists = items.isRegistered("starter_sword");