001package com.ericlam.mc.eld; 002 003import java.util.function.Consumer; 004 005/** 006 * ELDependenci API 007 */ 008public interface ELDependenciAPI { 009 010 /** 011 * 不應手動註冊,而應繼承 {@link ELDPlugin} 取代註冊 012 * 013 * @param plugin eld 插件 014 * @param injector 註冊服務 015 * @return 管理器提供 016 */ 017 ManagerProvider<?> register(ELDPlugin plugin, Consumer<ServiceCollection> injector); 018 019 020 /** 021 * 對外提供接口服務。主要用於框架以外的插件想要存取本插件的服務的時候 022 * @param serviceCls 服務接口 023 * @param <T> 服務類 024 * @return 服務, 如無則報錯 025 */ 026 <T> T exposeService(Class<T> serviceCls); 027 028}