-
Notifications
You must be signed in to change notification settings - Fork 5
TabooLib 相关问题
坏黑 edited this page May 28, 2022
·
4 revisions
因为 Kotlin Script 编译或运行的特殊性,部分 TabooLib 方法在 Artifex 下不再适用,在本篇逐个列举。
基于 TabooLib 的所有 注解 功能均无法使用,对应功能均可在 通用组件 或 工程组件 中找到替代方法,例如 @SubscribeEvent
、@Config
、@Awake
等。
命令中的 execute
, suggestion
, restrict
方法均被替换为:
// 注意是两个参数
// 原本三个参数的方法 execute { sender, context, argument -> } 不可使用
execute { sender, context ->
// sender: ProxyCommandSender
// context: CommandContext<ProxyCommandSender>
// ...
// 通过 context.argument() 获取当前参数
}
// 绑定给玩家使用
executeAsPlayer { sender, context ->
// sender: ProxyPlayer
// context: CommandContext<ProxyPlayer>
// ...
}
// 注意没有参数
// 原本三个参数的方法 suggestion { sender, context, argument -> } 不可使用
suggestion(uncheck: Boolean = false) { emptyList() }
suggestionAsPlayer(uncheck: Boolean = false) { emptyList() }
// 注意是一个参数
// 原本三个参数的方法 restrict { sender, context, argument -> } 不可使用
restrict { args -> true }
restrictAsPlayer { args -> true }
继续使用原始方法将会产生 Backend Internal error: Exception during IR lowering
异常。
在 Artifex 中不再允许使用 @Config
或 @ConfigNode
创建配置文件,详见 配置文件 工程组件。
在 Artifex 中不再允许使用 sendLang()
等相关函数发送语言文件,详见 语言文件 工程组件。
在 Artifex 中不再使用 buildMenu { }
构建菜单,而替换为以下顶层函数:
fun buildBasicMenu(title: String = "chest", builder: Basic.() -> Unit): Inventory
fun <T> buildLinkedMenu(title: String = "chest", builder: Linked<T>.() -> Unit): Inventory
fun buildStoredMenu(title: String = "chest", builder: Stored.() -> Unit): Inventory
fun Player.openBasicMenu(title: String = "chest", builder: Basic.() -> Unit)
fun <T> Player.openLinkedMenu(title: String = "chest", builder: Linked<T>.() -> Unit)
fun Player.openStoredMenu(title: String = "chest", builder: Stored.() -> Unit)
继续使用原始方法将会产生 Backend Internal error: Exception during IR lowering
异常。