
TLA接口
Minecraft 配方查看器 API 的抽象层。
TLA Api
TLA api 是 Minecraft 配方查看器 api 的一个抽象层。 它允许模组开发者一次编写配方查看器集成,即可兼容多个配方查看器。 目前支持的配方查看器有:EMI 和 REI
使用方法
Gradle
TLA api 可在 jitpack 上获取。将以下内容添加到你的 build.gradle 中以使用它:
repositories {
maven {
url "https://jitpack.io"
}
}
dependencies {
modImplementation "com.github.mattidragon:TlaApi:${tla_api_version}"
include "com.github.mattidragon:TlaApi:${tla_api_version}"
}
入口点
要使用此 api,你需要实现 TlaApiPlugin 接口,并将你的实现添加到 tla-api 入口点中。
请注意,整个 api 仅在客户端生效。如果你使用分离的源集(split source sets),
你需要在客户端源集中实现该 api。
public class MyTlaPlugin implements TlaApiPlugin {
@Override
public void register(PluginContext context) {
// 在此处注册你的 api
}
}
{
"entrypoints": {
"tla-api": [
"my.package.MyTlaPlugin"
]
}
}
注册内容
设置好入口点后,你就可以开始注册内容了。 整个 api 都使用 javadocs 进行了文档化,因此你可以使用 IDE 来浏览该 api。 该 api 的设计主要基于 EMI,但我不得不做一些改动以适配 REI。
注意事项
虽然 TLA api 抽象了所有内容,但你仍需要自行验证你的代码能否与两个配方查看器配合工作。 例如,你仍然需要为 EMI 翻译所有的标签。某些组件(widgets)的渲染效果也可能略有不同。
使用该 api 时,值得留意以下注解。 它们有助于说明该 api 应如何使用。
@ApiStatus.Internal:这表示该部分代码不供模组开发者使用。@ImplementationOnly:这表示该部分代码仅供 api 针对配方查看器的实现使用。 除非你在创建自己的配方查看器集成,否则不应使用 api 的这些部分。@PluginOnly:这表示该部分代码仅供插件使用,而不供 api 针对配方查看器的实现使用。@ImplementationsExtend:这表示该接口由 api 的实现类实现,插件通常不应实现它。@PluginsExtend:这表示该接口由插件实现,api 的实现类通常不应实现它。
常见问题
问:这能让仅支持一种查看器的模组同时兼容两者吗?
答:不能。此 api 只是让模组开发者更容易同时支持两种查看器。
问:为什么此 api 仅在客户端生效?
答:EMI 的整个 api 仅在客户端生效。REI 有一个服务端 api,但它不包含 TLA 所使用的任何功能。
问:有示例吗?
答:有,你可以在这里找到测试模组。 它做了一些你通常不会做的事情,但总体而言很好地展示了该 api。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。