TabooLib / taboolib

Powerful framework for creating multi-platform Minecraft plugin

Home Page:https://tabooproject.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Kotlin版本重定向的转义方式不统一

TheFloodDragon opened this issue · comments

taboolib-gradle-plugin 中, 对于Kotlin版本的转义是这样的:

TabooLibPlugin.groovy#L55

def kotlinVersion = KotlinPluginWrapperKt.getKotlinPluginVersion(project).replaceAll("[._-]", "")

替换了 . _ - 这三个字符,将TabooLib.java#L91中的字符串"kotlin.Lazy"转义了

但是,当Taboolib在下载Kotlin依赖时,没有替换掉 _ - 字符

PrimitiveLoader.java#L151

rel.add(new Relocation(kt + ".", kt + kv + "."));
rel.add(new Relocation(ktx + ".", ktx + kvx + "."));

那么此时使用 带 _ - 字符的Kotlin版本号 (如 2.0.0-Beta3)

throw new RuntimeException("Runtime environment setup failed, please feedback! (Kotlin Environment Not Found)");

喜提异常一份,

所以建议统一重定向的转义方式

另外,对于 kotlinx.coroutines 的相关变量名:

/**
 * Kotlinx 版本
 */
public static final String KOTLINX_VERSION = VERSION_PROPERTIES.getProperty("!kotlin-coroutines".substring(1), "1.7.3");
public static final String KOTLINX_ID = "!kotlinx.coroutines".substring(1);

会不会显得有点奇怪,因为明明是 Kotlinx-Coroutines 的版本,却写为 Kotlinx版本
kotlinx包下的库很多,Kotlinx-Serialization Kotlinx-Datetime等等
那么这里是不是该做个区分?
不过,既然只有expansion-submit-chain用到了协程,全局使用Kotlin协程的意义是什么?是未来有相关的计划吗?

commented

已修复转义问题。

  • 刷新本地缓存:例如 SDKrefreshDependencies 任务
  • 刷新服务端缓存:/libraries/io/izzel/taboolib/common-env/cache/taboolib

已解决命名歧义问题。


大家都喜欢协程,为什么不内置呢?