跳到主要内容

引入依赖

Adyeshach 由大约 97% 的 Kotlin 语言编写。在开始前,请确保你已经安装了 Kotlin 插件。

提示

其实用 Java 也能写,不过无法享受顶层函数带来的便利。

仓库地址

https://repo.tabooproject.org/repository/releases/
build.gradle.kts
repository {
maven { url = uri("https://repo.tabooproject.org/repository/releases/") }
}

常规依赖

对于直接调用 Adyeshach 的 API,需要引入完整依赖:

ink.ptms.adyeshach:all:2.0.0-snapshot-1
build.gradle.kts
dependencies {
compileOnly("ink.ptms.adyeshach:all:2.0.0-snapshot-1")
}
提示

文档中的版本号可能会落后于最新版本,请以仓库中的版本号为准。

内核加载

不依赖任何插件,将 Adyeshach 作为 第三方库 直接打包,但需要使用 TabooLib 作为插件开发框架。

确认版本

首先确认你的 TabooLib 版本是否支持 Adyeshach,最低版本要求为 6.0.10-59

安装模块

Adyeshach 用到了什么模块,你也要安装什么模块。

build.gradle.kts
taboolib {
install("common")
install("common-5")
install("module-chat")
install("module-lang")
install("module-configuration")
install("module-effect")
install("module-nms")
install("module-nms-util")
install("module-kether")
install("module-metrics")
install("module-navigation")
install("module-database") // 如果不使用数据库功能,可以不安装这个
}

打包依赖

分别引入并打包 Adyeshach 的核心模块。

build.gradle.kts
dependencies {
taboo("ink.ptms.adyeshach:common:2.0.0-snapshot-1")
taboo("ink.ptms.adyeshach:common-impl:2.0.0-snapshot-1")
taboo("ink.ptms.adyeshach:common-impl-nms:2.0.0-snapshot-1")
taboo("ink.ptms.adyeshach:common-impl-nms-j17:2.0.0-snapshot-1")
taboo("ink.ptms.adyeshach:module-language:2.0.0-snapshot-1")
taboo("ink.ptms.adyeshach:api-data-serializer:2.0.0-snapshot-1")
}

最后根据你的需求,对 Adyeshach 进行重定向,否则可能会出现类冲突(低版本)。

build.gradle.kts
taboolib {
relocate("ink.ptms.adyeshach", "com.github.username.adyeshach")
}
提示

如果你的运行环境中不会出现 Adyeshach 本体,那么可以不用重定向。

启动功能

最后,在你的插件 主类 启动 Adyeshach,如下所示。

Main.kt
class Main : Plugin() {

init {
TabooLibCommon.postpone(LifeCycle.LOAD) {
try {
DefaultAdyeshachBooster.startup()
} catch (ex: Throwable) {
ex.printStackTrace()
disablePlugin()
}
}
}
}
警告

直接照抄,写到其他生命周期里用不了。

目录占用

打包 Adyeshach 会占用 corenpc 目录用于存放一些数据,请避开这两个目录名。

ExampleProject
├── core ······················· 核心文件
│ ├── description ············ 描述目录 ········· 不可修改
│ │ ├── entity_meta.desc
│ │ ├── entity_meta-unused.desc
│ │ └── entity_types.desc
│ ├── lang ··················· 语言文件
│ │ └── zh_CN.yml
│ ├── block_height.json ······ 方块高度数据 ······ 不可修改
│ └── config.yml ············· 主要配置文件
└── npc ························ 虚拟实体储存目录
├── controller ············· 自定义控制器目录 ······ 默认没有,需自行创建
│ └── def.yml
├── traits ················· 特性储存目录
│ ├── command.yml
│ ├── patrol.yml
│ ├── title.yml
│ └── view-condition.yml
└── trash ·················· 回收站 ··········· 默认没有,自动创建

关于 JavaDoc

如果你是通过上述任意一种方式引入 Adyeshach 依赖,那么你可以直接在编译器中访问带有注释的 Adyeshach 源代码,因此不需要额外的 JavaDoc 文档。