“TabooLib Style Guide”的版本间的差异
来自Purtmars Wikipedia —— 普特莫斯维基
第1行: | 第1行: | ||
[[File:TabooLib alpha.png|500px]] | [[File:TabooLib alpha.png|500px]] | ||
− | 本文定义了基于 '''TabooLib (Kotlin)''' 编写 Bukkit 插件而提供的指导性准则和建议。 | + | 本文定义了基于 '''TabooLib (Kotlin)''' 编写 Bukkit 插件而提供的指导性准则和建议。 |
− | |||
= 开始 = | = 开始 = | ||
第12行: | 第11行: | ||
./gradlew clean build | ./gradlew clean build | ||
− | 构建文件将会保存在 '''./build/libs''' | + | 构建文件将会保存在 '''./build/libs''' 目录中。 |
+ | |||
+ | = 构建文件 = | ||
+ | 本文所使用的代码均在 [https://github.com/TabooLib/TabooLibDemo GitHub] 开源,项目中所使用 '''Kotlin''' 代码应遵循 [https://kotlinlang.org/docs/coding-conventions.html Kotlin Coding Conventions] 规范。 | ||
+ | |||
+ | <syntaxhighlight lang="groovy" line="line"> | ||
+ | group = 'io.izzel.example' | ||
+ | version = '1.0.0' | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | 构建文件中所指示的 '''group''' 必须重新定义,'''不允许'''使用 '''io.izzel.taboolib''' 域名。否则将导致插件将无法被 '''TabooLib''' 识别。 | ||
+ | |||
+ | <syntaxhighlight lang="groovy" line="line"> | ||
+ | taboolib { | ||
+ | tabooLibVersion = '5.7.2' | ||
+ | loaderVersion = '3.0.4' | ||
+ | classifier = null | ||
+ | builtin = true | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | 基于 TabooLib 编写的插件将会内置 TabooLib 加载器,约为 40kb 左右。若关闭 '''builtin''' 选项不会内置并移除 TabooLib 加载器依赖文件,届时该插件将不会主动加载 TabooLib 但能够使用由其他插件所加载的 TabooLib 库。 | ||
+ | |||
+ | = 主类 = | ||
+ | 基于 TabooLib 的插件中必须存在一个继承自 '''io.izzel.taboolib.loader.Plugin''' 的唯一主类,这个类不需要在任何文件中指示。 | ||
+ | |||
+ | <syntaxhighlight lang="kotlin" line="line"> | ||
+ | import io.izzel.taboolib.loader.Plugin | ||
+ | |||
+ | object ExamplePlugin : Plugin() { | ||
+ | // ... | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | 主类'''必须'''使用 object 单例,若是 '''Java''' 语言则需要使用以下方式,使用全大写的 '''INSTANCE''' 作为标识符。 | ||
+ | |||
+ | <syntaxhighlight lang="java" line="line"> | ||
+ | import io.izzel.taboolib.loader.Plugin; | ||
+ | |||
+ | public class ExampleJavaPlugin extends Plugin { | ||
+ | |||
+ | public static final ExampleJavaPlugin INSTANCE = new ExampleJavaPlugin(); | ||
+ | |||
+ | ExampleJavaPlugin() { | ||
+ | } | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | 主类中提供了四种可被继承的'''生命周期'''方法,在特定的时间段运行。 | ||
+ | |||
+ | <syntaxhighlight lang="kotlin" line="line"> | ||
+ | object ExamplePlugin : Plugin() { | ||
+ | |||
+ | override fun onLoad() { | ||
+ | } | ||
+ | |||
+ | override fun onEnable() { | ||
+ | } | ||
+ | |||
+ | override fun onDisable() { | ||
+ | } | ||
+ | |||
+ | override fun onActive() { | ||
+ | } | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | 除了三种 Bukkit 提供的接口外 TabooLib 还提供了一个特殊的 '''onActive''' 方法在服务端'''完全启动后'''执行。 |
2021年6月9日 (三) 15:00的版本
开始
通过阅读 TabooLib 来创建基础的项目文件,自 2021/06 月起 TabooLib—SDK 将自带 GitHub Actions 自动构建任务。
Windows 平台:
gradlew clean build
macOS 或 Linux 平台:
./gradlew clean build
构建文件将会保存在 ./build/libs 目录中。
构建文件
本文所使用的代码均在 GitHub 开源,项目中所使用 Kotlin 代码应遵循 Kotlin Coding Conventions 规范。
1 group = 'io.izzel.example'
2 version = '1.0.0'
构建文件中所指示的 group 必须重新定义,不允许使用 io.izzel.taboolib 域名。否则将导致插件将无法被 TabooLib 识别。
1 taboolib {
2 tabooLibVersion = '5.7.2'
3 loaderVersion = '3.0.4'
4 classifier = null
5 builtin = true
6 }
基于 TabooLib 编写的插件将会内置 TabooLib 加载器,约为 40kb 左右。若关闭 builtin 选项不会内置并移除 TabooLib 加载器依赖文件,届时该插件将不会主动加载 TabooLib 但能够使用由其他插件所加载的 TabooLib 库。
主类
基于 TabooLib 的插件中必须存在一个继承自 io.izzel.taboolib.loader.Plugin 的唯一主类,这个类不需要在任何文件中指示。
1 import io.izzel.taboolib.loader.Plugin
2
3 object ExamplePlugin : Plugin() {
4 // ...
5 }
主类必须使用 object 单例,若是 Java 语言则需要使用以下方式,使用全大写的 INSTANCE 作为标识符。
1 import io.izzel.taboolib.loader.Plugin;
2
3 public class ExampleJavaPlugin extends Plugin {
4
5 public static final ExampleJavaPlugin INSTANCE = new ExampleJavaPlugin();
6
7 ExampleJavaPlugin() {
8 }
9 }
主类中提供了四种可被继承的生命周期方法,在特定的时间段运行。
1 object ExamplePlugin : Plugin() {
2
3 override fun onLoad() {
4 }
5
6 override fun onEnable() {
7 }
8
9 override fun onDisable() {
10 }
11
12 override fun onActive() {
13 }
14 }
除了三种 Bukkit 提供的接口外 TabooLib 还提供了一个特殊的 onActive 方法在服务端完全启动后执行。