项目相关

关于 TabooLib 项目的部分工具,具体表现为以下顶级或扩展函数:

/**
 * 当前插件的所有类
 */
val runningClasses: List<Class<*>>

/**
 * 取该类在当前项目中被加载的任何实例
 * 例如:@Awake 自唤醒类,或是 Kotlin Companion Object、Kotlin Object 对象
 * @param newInstance 若无任何已加载的实例,是否实例化
 */
fun <T> Class<T>.getInstance(newInstance: Boolean = false): Supplier<T>?

/**
 * 依赖注入
 */
fun <T> Class<T>.inject()

/**
 * 获取该类所对应的平台实现(@PlatformSide)
 */
fun <T> Class<T>.findImplementation(): T?

/**
 * 通过 URL 获取类文件
 * 该方法将会进行 IO 操作,且不通过任何缓存
 */
fun URL.getClasses(): List<Class<*>>

/**
 * 获取当前项目的 groupId
 */
inline val groupId: String

/**
 * 获取 "taboolib" 字符串
 * 若在项目中显示声明 "taboolib" 将会被重定向,故添加此方法
 */
inline val taboolibId: String

/**
 * 同等于:
 * groupId + taboolibId
 */
inline val taboolibPath: String