【Kotlin】Spigot插件开发教程
首先由于关于Minecraft插件开发的文章相对较少,尤其是用Kotlin编写的更是稀缺,因此我决定制作了一篇教程。
如果你正打算开始制作自己的插件,我强烈推荐使用Kotlin,它比Java更容易上手,希望这篇教程对你有所帮助。
代码在这里可以找到。
SamplePlugin。
首先,什么是 Kotlin?在介绍之前,我们先稍微谈谈Kotlin。
Kotlin是与Java完全兼容的语言。
自2017年5月Google选定其为Android开发语言以来,逐渐变得流行起来。(多亏了它,现在几乎只有关于Android的信息,很少有关于Minecraft插件的文章)。-【TechCrunch】Google选择Kotlin作为Android应用开发语言。
在开发Java时,NullPointerException常常会出现…但是通过Null Safety特性,我们可以在编译时就避免这种情况。哎呀,Null Safety,这个词听起来多么令人愉悦。
とはいえ、JavaのライブラリやAPIを併用することもあるので、NullExceptionを完全に防ぐことはできません。
Nullableな変数を指定すれば、Nullの代入を許してしまうので、あくまでNullExceptionが発生しにくくなったぐらいで考えておくと良いかもしれません。
如果提到其他与Java的不同之处的话
-
- セミコロンがいらない
-
- 三項演算子の代わりにif(Kotlinではifは関数)
-
- 型推論(型指定が省略できる)
- 変数宣言にvar(書き換え可)、val(書き換え不可)がある
などなど完全互換といえど、Javaと異なる点はいくつもあります。似て非なる言語です。
JavaとKotlinの違いに関する記事はいくつも出されていますので、ここでは割愛します。
― 【Qiita】はじめてのKotlin。Javaと比較してみた
那么,让我们搭建插件开发环境吧。
搭建开发环境这是我的环境。
項目値OSWindows10メモリ16GBIntelliJ IDEA Version2019.1 (Ultimate Edition)
安装 IntelliJ IDEA首先,我们要配置Kotlin的开发环境。我认为Kotlin的开发环境就只有IntelliJ IDEA一个选择。IntelliJ IDEA是由JetBrains公司提供的Kotlin开发工具。除非有很特殊的原因,我们应该使用IntelliJ IDEA进行开发。
-
IntelliJ IDEA 公式
IntelliJ IDEA インストール手順
母国語は中国語です。(By the way, the author’s native language is Chinese.)
Minecraft开发的新增内容在安装完成之后,在创建项目之前,请将Minecraft Development作为IntelliJ IDEA的插件添加。通过这样的引入,您将能够创建适用于Spigot和Bukkit的模板。
由于搜索结果中有Minecraft Development,所以点击安装按钮来应用插件(在图中已经安装,显示为Installed)。
如果没有安装Kotlin插件,请按照相同的步骤进行安装。搜索关键词为kotlin即可。
现在开发环境已经准备好了。接下来,我们将创建项目。
创建项目
如果左侧菜单中没有Minecraft选项,意味着没有安装Minecraft开发插件。请确认是否已安装插件。
建立设置在这里,我们指定了GroupId、ArtifactId和Version。这次我们按照例子进行设置。
項目説明例GroupId団体やグループのユニークなIDcom.sampleArtifactId生成されるjarファイルのバージョン抜きの名前SampleVersionプラグインのバージョン1.0-SNAPSHOT在这里,请注意!
默认是使用Maven的,但请改用Gradle。
如果你想使用Maven,也没有问题,但如果你对它不太了解,我推荐使用Gradle。
因为Maven需要通过XML进行配置,所以配置不易读也不易写。
接下来的解释也将基于Gradle进行。
完成输入后,点击下一步按钮。
水龙头设置
当输入完成后,请点击“下一步”按钮继续操作。
指定目录这是最后的设置界面。
在这里,您可以指定目录名称。这与项目无直接关联。
请使用易于理解的名称。
如果您想更改目录位置,可以从项目位置进行指定。
按下“完成”按钮后,项目创建就完成了!可能会弹出一个名为“从Gradle导入模块”的窗口,点击“确定”即可。
还只有一半…虽然我想说”这样就能开发了!”但还有一些事情需要做。
其中一个是将Java转换为Kotlin。还有其他需要完成的任务,如Gradle编辑和最基本的设置。
将Java文件转换为Kotlin文件由于Spigot是用Java编写的,所以插件模板也是用Java编写的。
如果要用Kotlin编写,就必须将自动生成的Java代码进行转换。
不过,幸好可以借助IntelliJ IDEA的功能进行自动转换,而无需进行重构。
请从Project菜单中选择显示的目录,然后选择src -> main -> java。
选择后,点击菜单栏中的Code -> Convert Java File to Kotlin File,将自动将代码转换为Kotlin。
build.gradleの編集チュートリアル最大の山場、Gradleです。
Gradleとはビルドシステムのことで、依存関係やビルド方法を記述したものになります。
Gradleの記述を間違えると、「コードは正しいのに動かない」なんてこともしばしばですので、間違いなく書いていきましょう。
删除无用的文件实际上,IntelliJ IDEA生成的文件中有一些不必要的内容。这些文件是位于根目录下的.idea目录中的iml文件。这些是IntelliJ IDEA的配置文件,但由于这些文件的存在,在build.gradle中会出现不必要的警告(黄色标记)。据说这些文件并不是特别必需,所以在编辑build.gradle之前,最好先删除它们。
如果你有担心,我觉得最好先备份一下。
imlファイルを削除したら、Build -> Rebuild Projectからプロジェクトをリビルドしましょう。警告が表示されなくなるはずです。
buildscript, dependencies, jarの変更・追記
我将添加关于Kotlin和外部库的依赖关系。
这次我将写入以下内容:
buildscript {
ext {
junit_version = '4.12'
kotlin_version = '1.3.21'
spigot_version = '1.13.2-R0.1-SNAPSHOT'
}
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.21"
}
}
apply plugin: 'java'
apply plugin: 'kotlin'
group = pluginGroup
version = pluginVersion
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
mavenCentral()
maven {
name = 'spigotmc-repo'
url = 'https://hub.spigotmc.org/nexus/content/groups/public/'
}
maven {
name = 'sonatype'
url = 'https://oss.sonatype.org/content/groups/public/'
}
}
dependencies {
testImplementation group: 'junit', name: 'junit', version: junit_version
testRuntimeOnly group: 'junit', name: 'junit', version: junit_version
compile "org.spigotmc:spigot-api:$spigot_version"
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
import org.apache.tools.ant.filters.ReplaceTokens
processResources {
from(sourceSets.main.resources.srcDirs) {
filter ReplaceTokens, tokens: [version: version]
}
}
jar {
from {
configurations.compile.collect {
it.isDirectory() ? it : zipTree(it)
}
}
}
只对主要部分进行解释。
构建脚本块まずはbuild.gradleの先頭にbuildscriptを追記しましょう。
buildscriptはビルドスクリプト自体が依存しているライブラリを指定するブロックになります。今回はKotlinのGradleプラグインを利用するために必要な記述です。他に各ライブラリのバージョンもここで指定すると、管理が楽になります。
buildscript {
ext {
junit_version = '4.12'
kotlin_version = '1.3.21'
spigot_version = '1.13.2-R0.1-SNAPSHOT'
}
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.21"
}
}
...
依赖图块”dependencies”块就是用来描述库之间的依赖关系的地方,顾名思义。
版本号会在buildscript的ext块中进行定义,所以会进行参考。
这次除了使用Spigot库之外,还会使用Kotlin库,因此需要将它们进行描述。
另外,为了进行测试,还会将Junit库也加入其中。
...
dependencies {
testImplementation group: 'junit', name: 'junit', version: junit_version
testRuntimeOnly group: 'junit', name: 'junit', version: junit_version
compile "org.spigotmc:spigot-api:$spigot_version"
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
...
罐子封锁在jar文件中,我们将进行关于输出jar文件的描述。
在这里,我们将编写将外部库包含在jar文件中的处理。
如果不进行这个描述,那么jar文件中将不包含外部库,可能引起运行错误。
这也是导致jar文件变大的原因之一,但如果不想使用依赖插件,这个描述是必需的。
...
jar {
from {
configurations.compile.collect {
it.isDirectory() ? it : zipTree(it)
}
}
}
如果在最后进行构建时没有出现任何错误,那就可以了。
如果出现了任何错误,这意味着build.gradle有问题。
我们再次检查一下build.gradle吧。
编辑plugin.ymlこれが最後の手続きになります。
作ったプラグインに関する情報が書かれているplugin.ymlを編集しましょう。
ymlファイルについては、別記事を参照してください。
― 【Qiita】YAML 基本記法まとめ
plugin.ymlはsrc -> resourcesディレクトリの中にあります。
name: Sample
version: @version@
main: com.tklcraft.sample.SamplePlugin
api-version: '1.13'
author: kanakiyo314
まず、api-versionはシングルクォーテーション”で囲みましょう。
Stringが実数になっていると警告が表示されてしまいます。
そして大事なのがauthorの記述です。
誰が作ったのかは大変重要な情報なので漏れなく書き込みましょう。
何より、動作テストのときに表示させるととても感動します。
如果有多个作者,可以用以下方式表示:
authors: [authorA, authorB]
这样就可以多次列举作者了。
動作テスト最后是动作测试。
因为即使能够成功编译,也有很多情况下无法正常运行,所以我们必须确保进行仔细的确认。
ビルドで生成されがjarファイルはルートディレクトリ -> build -> libにあります。
それを通常のプラグインと同様にpluginsフォルダにコピーすれば準備は完了です。
サーバを起動してみましょう。
如果服务器日志显示[Sample] Enabling Sample v1.0-SNAPSHOT,则表示成功(插件名称和版本已经设置)。
你觉得怎么样?
难道不会有一点感动吗?
ここまで来れば、プラグイン開発の準備は完全に整いました。
もうこれで、バリバリコードが欠けます!
最终,最后,最后一个Minecraftのプラグイン作成に関する記事はとても少ないです(Kotlinならなおさら…)。
今回は誰もが苦労するであろう部分を重点的にまとめてみました。
下一次我想写一个关于插件制作教程的主题。
请参考下列链接
-
【公式】Kotlin
-
【TechCrunch】Google、KotlinをAndroidアプリ開発言語に選定
-
【ブログ】Android公式言語 Kotlinとはどんな言語でどんなメリットがあるのか?!
-
【Qiita】はじめてのKotlin。Javaと比較してみた
【ブログ】KotlinのNull安全ってどうなの?!検証も交えてまとめてみた!
【SlideShgare】Gradle 入門
【Spigot】How to use Kotlin in your plugins
【Qiita】Gradleを始めてみよう
【Qiita】KotlinでSpigotプラグインを作るためのbuild.gradle
【公式】Kotlin using Gradle
【stack overflow】IntelliJ IDEA and Gradle – Cannot be applied to ‘(groovy.lang.Closure)’
【Qiita】YAML 基本記法まとめ
安装 IntelliJ IDEA首先,我们要配置Kotlin的开发环境。我认为Kotlin的开发环境就只有IntelliJ IDEA一个选择。IntelliJ IDEA是由JetBrains公司提供的Kotlin开发工具。除非有很特殊的原因,我们应该使用IntelliJ IDEA进行开发。
-
IntelliJ IDEA 公式
- IntelliJ IDEA 公式
- IntelliJ IDEA インストール手順
母国語は中国語です。(By the way, the author’s native language is Chinese.)
Minecraft开发的新增内容在安装完成之后,在创建项目之前,请将Minecraft Development作为IntelliJ IDEA的插件添加。通过这样的引入,您将能够创建适用于Spigot和Bukkit的模板。
由于搜索结果中有Minecraft Development,所以点击安装按钮来应用插件(在图中已经安装,显示为Installed)。
如果没有安装Kotlin插件,请按照相同的步骤进行安装。搜索关键词为kotlin即可。
现在开发环境已经准备好了。接下来,我们将创建项目。
创建项目
如果左侧菜单中没有Minecraft选项,意味着没有安装Minecraft开发插件。请确认是否已安装插件。
建立设置在这里,我们指定了GroupId、ArtifactId和Version。这次我们按照例子进行设置。
項目説明例GroupId団体やグループのユニークなIDcom.sampleArtifactId生成されるjarファイルのバージョン抜きの名前SampleVersionプラグインのバージョン1.0-SNAPSHOT在这里,请注意!
默认是使用Maven的,但请改用Gradle。
如果你想使用Maven,也没有问题,但如果你对它不太了解,我推荐使用Gradle。
因为Maven需要通过XML进行配置,所以配置不易读也不易写。
接下来的解释也将基于Gradle进行。
完成输入后,点击下一步按钮。
水龙头设置
当输入完成后,请点击“下一步”按钮继续操作。
指定目录这是最后的设置界面。
在这里,您可以指定目录名称。这与项目无直接关联。
请使用易于理解的名称。
如果您想更改目录位置,可以从项目位置进行指定。
按下“完成”按钮后,项目创建就完成了!可能会弹出一个名为“从Gradle导入模块”的窗口,点击“确定”即可。
还只有一半…虽然我想说”这样就能开发了!”但还有一些事情需要做。
其中一个是将Java转换为Kotlin。还有其他需要完成的任务,如Gradle编辑和最基本的设置。
将Java文件转换为Kotlin文件由于Spigot是用Java编写的,所以插件模板也是用Java编写的。
如果要用Kotlin编写,就必须将自动生成的Java代码进行转换。
不过,幸好可以借助IntelliJ IDEA的功能进行自动转换,而无需进行重构。
请从Project菜单中选择显示的目录,然后选择src -> main -> java。
选择后,点击菜单栏中的Code -> Convert Java File to Kotlin File,将自动将代码转换为Kotlin。
build.gradleの編集チュートリアル最大の山場、Gradleです。
Gradleとはビルドシステムのことで、依存関係やビルド方法を記述したものになります。
Gradleの記述を間違えると、「コードは正しいのに動かない」なんてこともしばしばですので、間違いなく書いていきましょう。
删除无用的文件实际上,IntelliJ IDEA生成的文件中有一些不必要的内容。这些文件是位于根目录下的.idea目录中的iml文件。这些是IntelliJ IDEA的配置文件,但由于这些文件的存在,在build.gradle中会出现不必要的警告(黄色标记)。据说这些文件并不是特别必需,所以在编辑build.gradle之前,最好先删除它们。
如果你有担心,我觉得最好先备份一下。
imlファイルを削除したら、Build -> Rebuild Projectからプロジェクトをリビルドしましょう。警告が表示されなくなるはずです。
buildscript, dependencies, jarの変更・追記
我将添加关于Kotlin和外部库的依赖关系。
这次我将写入以下内容:
buildscript {
ext {
junit_version = '4.12'
kotlin_version = '1.3.21'
spigot_version = '1.13.2-R0.1-SNAPSHOT'
}
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.21"
}
}
apply plugin: 'java'
apply plugin: 'kotlin'
group = pluginGroup
version = pluginVersion
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
mavenCentral()
maven {
name = 'spigotmc-repo'
url = 'https://hub.spigotmc.org/nexus/content/groups/public/'
}
maven {
name = 'sonatype'
url = 'https://oss.sonatype.org/content/groups/public/'
}
}
dependencies {
testImplementation group: 'junit', name: 'junit', version: junit_version
testRuntimeOnly group: 'junit', name: 'junit', version: junit_version
compile "org.spigotmc:spigot-api:$spigot_version"
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
import org.apache.tools.ant.filters.ReplaceTokens
processResources {
from(sourceSets.main.resources.srcDirs) {
filter ReplaceTokens, tokens: [version: version]
}
}
jar {
from {
configurations.compile.collect {
it.isDirectory() ? it : zipTree(it)
}
}
}
只对主要部分进行解释。
构建脚本块まずはbuild.gradleの先頭にbuildscriptを追記しましょう。
buildscriptはビルドスクリプト自体が依存しているライブラリを指定するブロックになります。今回はKotlinのGradleプラグインを利用するために必要な記述です。他に各ライブラリのバージョンもここで指定すると、管理が楽になります。
buildscript {
ext {
junit_version = '4.12'
kotlin_version = '1.3.21'
spigot_version = '1.13.2-R0.1-SNAPSHOT'
}
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.21"
}
}
...
依赖图块”dependencies”块就是用来描述库之间的依赖关系的地方,顾名思义。
版本号会在buildscript的ext块中进行定义,所以会进行参考。
这次除了使用Spigot库之外,还会使用Kotlin库,因此需要将它们进行描述。
另外,为了进行测试,还会将Junit库也加入其中。
...
dependencies {
testImplementation group: 'junit', name: 'junit', version: junit_version
testRuntimeOnly group: 'junit', name: 'junit', version: junit_version
compile "org.spigotmc:spigot-api:$spigot_version"
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
...
罐子封锁在jar文件中,我们将进行关于输出jar文件的描述。
在这里,我们将编写将外部库包含在jar文件中的处理。
如果不进行这个描述,那么jar文件中将不包含外部库,可能引起运行错误。
这也是导致jar文件变大的原因之一,但如果不想使用依赖插件,这个描述是必需的。
...
jar {
from {
configurations.compile.collect {
it.isDirectory() ? it : zipTree(it)
}
}
}
如果在最后进行构建时没有出现任何错误,那就可以了。
如果出现了任何错误,这意味着build.gradle有问题。
我们再次检查一下build.gradle吧。
编辑plugin.ymlこれが最後の手続きになります。
作ったプラグインに関する情報が書かれているplugin.ymlを編集しましょう。
ymlファイルについては、別記事を参照してください。
― 【Qiita】YAML 基本記法まとめ
plugin.ymlはsrc -> resourcesディレクトリの中にあります。
name: Sample
version: @version@
main: com.tklcraft.sample.SamplePlugin
api-version: '1.13'
author: kanakiyo314
まず、api-versionはシングルクォーテーション”で囲みましょう。
Stringが実数になっていると警告が表示されてしまいます。
そして大事なのがauthorの記述です。
誰が作ったのかは大変重要な情報なので漏れなく書き込みましょう。
何より、動作テストのときに表示させるととても感動します。
如果有多个作者,可以用以下方式表示:
authors: [authorA, authorB]
这样就可以多次列举作者了。
動作テスト最后是动作测试。
因为即使能够成功编译,也有很多情况下无法正常运行,所以我们必须确保进行仔细的确认。
ビルドで生成されがjarファイルはルートディレクトリ -> build -> libにあります。
それを通常のプラグインと同様にpluginsフォルダにコピーすれば準備は完了です。
サーバを起動してみましょう。
如果服务器日志显示[Sample] Enabling Sample v1.0-SNAPSHOT,则表示成功(插件名称和版本已经设置)。
你觉得怎么样?
难道不会有一点感动吗?
ここまで来れば、プラグイン開発の準備は完全に整いました。
もうこれで、バリバリコードが欠けます!
最终,最后,最后一个Minecraftのプラグイン作成に関する記事はとても少ないです(Kotlinならなおさら…)。
今回は誰もが苦労するであろう部分を重点的にまとめてみました。
下一次我想写一个关于插件制作教程的主题。
请参考下列链接
-
【公式】Kotlin
-
【TechCrunch】Google、KotlinをAndroidアプリ開発言語に選定
-
【ブログ】Android公式言語 Kotlinとはどんな言語でどんなメリットがあるのか?!
-
【Qiita】はじめてのKotlin。Javaと比較してみた
【ブログ】KotlinのNull安全ってどうなの?!検証も交えてまとめてみた!
【SlideShgare】Gradle 入門
【Spigot】How to use Kotlin in your plugins
【Qiita】Gradleを始めてみよう
【Qiita】KotlinでSpigotプラグインを作るためのbuild.gradle
【公式】Kotlin using Gradle
【stack overflow】IntelliJ IDEA and Gradle – Cannot be applied to ‘(groovy.lang.Closure)’
【Qiita】YAML 基本記法まとめ
由于搜索结果中有Minecraft Development,所以点击安装按钮来应用插件(在图中已经安装,显示为Installed)。
如果没有安装Kotlin插件,请按照相同的步骤进行安装。搜索关键词为kotlin即可。
现在开发环境已经准备好了。接下来,我们将创建项目。
创建项目
如果左侧菜单中没有Minecraft选项,意味着没有安装Minecraft开发插件。请确认是否已安装插件。
建立设置在这里,我们指定了GroupId、ArtifactId和Version。这次我们按照例子进行设置。
項目説明例GroupId団体やグループのユニークなIDcom.sampleArtifactId生成されるjarファイルのバージョン抜きの名前SampleVersionプラグインのバージョン1.0-SNAPSHOT在这里,请注意!
默认是使用Maven的,但请改用Gradle。
如果你想使用Maven,也没有问题,但如果你对它不太了解,我推荐使用Gradle。
因为Maven需要通过XML进行配置,所以配置不易读也不易写。
接下来的解释也将基于Gradle进行。
完成输入后,点击下一步按钮。
水龙头设置
当输入完成后,请点击“下一步”按钮继续操作。
指定目录这是最后的设置界面。
在这里,您可以指定目录名称。这与项目无直接关联。
请使用易于理解的名称。
如果您想更改目录位置,可以从项目位置进行指定。
按下“完成”按钮后,项目创建就完成了!可能会弹出一个名为“从Gradle导入模块”的窗口,点击“确定”即可。
还只有一半…虽然我想说”这样就能开发了!”但还有一些事情需要做。
其中一个是将Java转换为Kotlin。还有其他需要完成的任务,如Gradle编辑和最基本的设置。
将Java文件转换为Kotlin文件由于Spigot是用Java编写的,所以插件模板也是用Java编写的。
如果要用Kotlin编写,就必须将自动生成的Java代码进行转换。
不过,幸好可以借助IntelliJ IDEA的功能进行自动转换,而无需进行重构。
请从Project菜单中选择显示的目录,然后选择src -> main -> java。
选择后,点击菜单栏中的Code -> Convert Java File to Kotlin File,将自动将代码转换为Kotlin。
build.gradleの編集チュートリアル最大の山場、Gradleです。
Gradleとはビルドシステムのことで、依存関係やビルド方法を記述したものになります。
Gradleの記述を間違えると、「コードは正しいのに動かない」なんてこともしばしばですので、間違いなく書いていきましょう。
删除无用的文件实际上,IntelliJ IDEA生成的文件中有一些不必要的内容。这些文件是位于根目录下的.idea目录中的iml文件。这些是IntelliJ IDEA的配置文件,但由于这些文件的存在,在build.gradle中会出现不必要的警告(黄色标记)。据说这些文件并不是特别必需,所以在编辑build.gradle之前,最好先删除它们。
如果你有担心,我觉得最好先备份一下。
imlファイルを削除したら、Build -> Rebuild Projectからプロジェクトをリビルドしましょう。警告が表示されなくなるはずです。
buildscript, dependencies, jarの変更・追記
我将添加关于Kotlin和外部库的依赖关系。
这次我将写入以下内容:
buildscript {
ext {
junit_version = '4.12'
kotlin_version = '1.3.21'
spigot_version = '1.13.2-R0.1-SNAPSHOT'
}
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.21"
}
}
apply plugin: 'java'
apply plugin: 'kotlin'
group = pluginGroup
version = pluginVersion
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
mavenCentral()
maven {
name = 'spigotmc-repo'
url = 'https://hub.spigotmc.org/nexus/content/groups/public/'
}
maven {
name = 'sonatype'
url = 'https://oss.sonatype.org/content/groups/public/'
}
}
dependencies {
testImplementation group: 'junit', name: 'junit', version: junit_version
testRuntimeOnly group: 'junit', name: 'junit', version: junit_version
compile "org.spigotmc:spigot-api:$spigot_version"
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
import org.apache.tools.ant.filters.ReplaceTokens
processResources {
from(sourceSets.main.resources.srcDirs) {
filter ReplaceTokens, tokens: [version: version]
}
}
jar {
from {
configurations.compile.collect {
it.isDirectory() ? it : zipTree(it)
}
}
}
只对主要部分进行解释。
构建脚本块まずはbuild.gradleの先頭にbuildscriptを追記しましょう。
buildscriptはビルドスクリプト自体が依存しているライブラリを指定するブロックになります。今回はKotlinのGradleプラグインを利用するために必要な記述です。他に各ライブラリのバージョンもここで指定すると、管理が楽になります。
buildscript {
ext {
junit_version = '4.12'
kotlin_version = '1.3.21'
spigot_version = '1.13.2-R0.1-SNAPSHOT'
}
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.21"
}
}
...
依赖图块”dependencies”块就是用来描述库之间的依赖关系的地方,顾名思义。
版本号会在buildscript的ext块中进行定义,所以会进行参考。
这次除了使用Spigot库之外,还会使用Kotlin库,因此需要将它们进行描述。
另外,为了进行测试,还会将Junit库也加入其中。
...
dependencies {
testImplementation group: 'junit', name: 'junit', version: junit_version
testRuntimeOnly group: 'junit', name: 'junit', version: junit_version
compile "org.spigotmc:spigot-api:$spigot_version"
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
...
罐子封锁在jar文件中,我们将进行关于输出jar文件的描述。
在这里,我们将编写将外部库包含在jar文件中的处理。
如果不进行这个描述,那么jar文件中将不包含外部库,可能引起运行错误。
这也是导致jar文件变大的原因之一,但如果不想使用依赖插件,这个描述是必需的。
...
jar {
from {
configurations.compile.collect {
it.isDirectory() ? it : zipTree(it)
}
}
}
如果在最后进行构建时没有出现任何错误,那就可以了。
如果出现了任何错误,这意味着build.gradle有问题。
我们再次检查一下build.gradle吧。
编辑plugin.ymlこれが最後の手続きになります。
作ったプラグインに関する情報が書かれているplugin.ymlを編集しましょう。
ymlファイルについては、別記事を参照してください。
― 【Qiita】YAML 基本記法まとめ
plugin.ymlはsrc -> resourcesディレクトリの中にあります。
name: Sample
version: @version@
main: com.tklcraft.sample.SamplePlugin
api-version: '1.13'
author: kanakiyo314
まず、api-versionはシングルクォーテーション”で囲みましょう。
Stringが実数になっていると警告が表示されてしまいます。
そして大事なのがauthorの記述です。
誰が作ったのかは大変重要な情報なので漏れなく書き込みましょう。
何より、動作テストのときに表示させるととても感動します。
如果有多个作者,可以用以下方式表示:
authors: [authorA, authorB]
这样就可以多次列举作者了。
動作テスト最后是动作测试。
因为即使能够成功编译,也有很多情况下无法正常运行,所以我们必须确保进行仔细的确认。
ビルドで生成されがjarファイルはルートディレクトリ -> build -> libにあります。
それを通常のプラグインと同様にpluginsフォルダにコピーすれば準備は完了です。
サーバを起動してみましょう。
如果服务器日志显示[Sample] Enabling Sample v1.0-SNAPSHOT,则表示成功(插件名称和版本已经设置)。
你觉得怎么样?
难道不会有一点感动吗?
ここまで来れば、プラグイン開発の準備は完全に整いました。
もうこれで、バリバリコードが欠けます!
最终,最后,最后一个Minecraftのプラグイン作成に関する記事はとても少ないです(Kotlinならなおさら…)。
今回は誰もが苦労するであろう部分を重点的にまとめてみました。
下一次我想写一个关于插件制作教程的主题。
请参考下列链接
-
【公式】Kotlin
-
【TechCrunch】Google、KotlinをAndroidアプリ開発言語に選定
-
【ブログ】Android公式言語 Kotlinとはどんな言語でどんなメリットがあるのか?!
-
【Qiita】はじめてのKotlin。Javaと比較してみた
【ブログ】KotlinのNull安全ってどうなの?!検証も交えてまとめてみた!
【SlideShgare】Gradle 入門
【Spigot】How to use Kotlin in your plugins
【Qiita】Gradleを始めてみよう
【Qiita】KotlinでSpigotプラグインを作るためのbuild.gradle
【公式】Kotlin using Gradle
【stack overflow】IntelliJ IDEA and Gradle – Cannot be applied to ‘(groovy.lang.Closure)’
【Qiita】YAML 基本記法まとめ
如果左侧菜单中没有Minecraft选项,意味着没有安装Minecraft开发插件。请确认是否已安装插件。
建立设置在这里,我们指定了GroupId、ArtifactId和Version。这次我们按照例子进行设置。
項目説明例GroupId団体やグループのユニークなIDcom.sampleArtifactId生成されるjarファイルのバージョン抜きの名前SampleVersionプラグインのバージョン1.0-SNAPSHOT在这里,请注意!
默认是使用Maven的,但请改用Gradle。
如果你想使用Maven,也没有问题,但如果你对它不太了解,我推荐使用Gradle。
因为Maven需要通过XML进行配置,所以配置不易读也不易写。
接下来的解释也将基于Gradle进行。
完成输入后,点击下一步按钮。
水龙头设置
当输入完成后,请点击“下一步”按钮继续操作。
指定目录这是最后的设置界面。
在这里,您可以指定目录名称。这与项目无直接关联。
请使用易于理解的名称。
如果您想更改目录位置,可以从项目位置进行指定。
按下“完成”按钮后,项目创建就完成了!可能会弹出一个名为“从Gradle导入模块”的窗口,点击“确定”即可。
还只有一半…虽然我想说”这样就能开发了!”但还有一些事情需要做。
其中一个是将Java转换为Kotlin。还有其他需要完成的任务,如Gradle编辑和最基本的设置。
将Java文件转换为Kotlin文件由于Spigot是用Java编写的,所以插件模板也是用Java编写的。
如果要用Kotlin编写,就必须将自动生成的Java代码进行转换。
不过,幸好可以借助IntelliJ IDEA的功能进行自动转换,而无需进行重构。
请从Project菜单中选择显示的目录,然后选择src -> main -> java。
选择后,点击菜单栏中的Code -> Convert Java File to Kotlin File,将自动将代码转换为Kotlin。
build.gradleの編集チュートリアル最大の山場、Gradleです。
Gradleとはビルドシステムのことで、依存関係やビルド方法を記述したものになります。
Gradleの記述を間違えると、「コードは正しいのに動かない」なんてこともしばしばですので、間違いなく書いていきましょう。
删除无用的文件实际上,IntelliJ IDEA生成的文件中有一些不必要的内容。这些文件是位于根目录下的.idea目录中的iml文件。这些是IntelliJ IDEA的配置文件,但由于这些文件的存在,在build.gradle中会出现不必要的警告(黄色标记)。据说这些文件并不是特别必需,所以在编辑build.gradle之前,最好先删除它们。
如果你有担心,我觉得最好先备份一下。
imlファイルを削除したら、Build -> Rebuild Projectからプロジェクトをリビルドしましょう。警告が表示されなくなるはずです。
buildscript, dependencies, jarの変更・追記
我将添加关于Kotlin和外部库的依赖关系。
这次我将写入以下内容:
buildscript {
ext {
junit_version = '4.12'
kotlin_version = '1.3.21'
spigot_version = '1.13.2-R0.1-SNAPSHOT'
}
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.21"
}
}
apply plugin: 'java'
apply plugin: 'kotlin'
group = pluginGroup
version = pluginVersion
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
mavenCentral()
maven {
name = 'spigotmc-repo'
url = 'https://hub.spigotmc.org/nexus/content/groups/public/'
}
maven {
name = 'sonatype'
url = 'https://oss.sonatype.org/content/groups/public/'
}
}
dependencies {
testImplementation group: 'junit', name: 'junit', version: junit_version
testRuntimeOnly group: 'junit', name: 'junit', version: junit_version
compile "org.spigotmc:spigot-api:$spigot_version"
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
import org.apache.tools.ant.filters.ReplaceTokens
processResources {
from(sourceSets.main.resources.srcDirs) {
filter ReplaceTokens, tokens: [version: version]
}
}
jar {
from {
configurations.compile.collect {
it.isDirectory() ? it : zipTree(it)
}
}
}
只对主要部分进行解释。
构建脚本块まずはbuild.gradleの先頭にbuildscriptを追記しましょう。
buildscriptはビルドスクリプト自体が依存しているライブラリを指定するブロックになります。今回はKotlinのGradleプラグインを利用するために必要な記述です。他に各ライブラリのバージョンもここで指定すると、管理が楽になります。
buildscript {
ext {
junit_version = '4.12'
kotlin_version = '1.3.21'
spigot_version = '1.13.2-R0.1-SNAPSHOT'
}
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.21"
}
}
...
依赖图块”dependencies”块就是用来描述库之间的依赖关系的地方,顾名思义。
版本号会在buildscript的ext块中进行定义,所以会进行参考。
这次除了使用Spigot库之外,还会使用Kotlin库,因此需要将它们进行描述。
另外,为了进行测试,还会将Junit库也加入其中。
...
dependencies {
testImplementation group: 'junit', name: 'junit', version: junit_version
testRuntimeOnly group: 'junit', name: 'junit', version: junit_version
compile "org.spigotmc:spigot-api:$spigot_version"
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
...
罐子封锁在jar文件中,我们将进行关于输出jar文件的描述。
在这里,我们将编写将外部库包含在jar文件中的处理。
如果不进行这个描述,那么jar文件中将不包含外部库,可能引起运行错误。
这也是导致jar文件变大的原因之一,但如果不想使用依赖插件,这个描述是必需的。
...
jar {
from {
configurations.compile.collect {
it.isDirectory() ? it : zipTree(it)
}
}
}
如果在最后进行构建时没有出现任何错误,那就可以了。
如果出现了任何错误,这意味着build.gradle有问题。
我们再次检查一下build.gradle吧。
编辑plugin.ymlこれが最後の手続きになります。
作ったプラグインに関する情報が書かれているplugin.ymlを編集しましょう。
ymlファイルについては、別記事を参照してください。
― 【Qiita】YAML 基本記法まとめ
plugin.ymlはsrc -> resourcesディレクトリの中にあります。
name: Sample
version: @version@
main: com.tklcraft.sample.SamplePlugin
api-version: '1.13'
author: kanakiyo314
まず、api-versionはシングルクォーテーション”で囲みましょう。
Stringが実数になっていると警告が表示されてしまいます。
そして大事なのがauthorの記述です。
誰が作ったのかは大変重要な情報なので漏れなく書き込みましょう。
何より、動作テストのときに表示させるととても感動します。
如果有多个作者,可以用以下方式表示:
authors: [authorA, authorB]
这样就可以多次列举作者了。
動作テスト最后是动作测试。
因为即使能够成功编译,也有很多情况下无法正常运行,所以我们必须确保进行仔细的确认。
ビルドで生成されがjarファイルはルートディレクトリ -> build -> libにあります。
それを通常のプラグインと同様にpluginsフォルダにコピーすれば準備は完了です。
サーバを起動してみましょう。
如果服务器日志显示[Sample] Enabling Sample v1.0-SNAPSHOT,则表示成功(插件名称和版本已经设置)。
你觉得怎么样?
难道不会有一点感动吗?
ここまで来れば、プラグイン開発の準備は完全に整いました。
もうこれで、バリバリコードが欠けます!
最终,最后,最后一个Minecraftのプラグイン作成に関する記事はとても少ないです(Kotlinならなおさら…)。
今回は誰もが苦労するであろう部分を重点的にまとめてみました。
下一次我想写一个关于插件制作教程的主题。
请参考下列链接
-
【公式】Kotlin
-
【TechCrunch】Google、KotlinをAndroidアプリ開発言語に選定
-
【ブログ】Android公式言語 Kotlinとはどんな言語でどんなメリットがあるのか?!
-
【Qiita】はじめてのKotlin。Javaと比較してみた
【ブログ】KotlinのNull安全ってどうなの?!検証も交えてまとめてみた!
【SlideShgare】Gradle 入門
【Spigot】How to use Kotlin in your plugins
【Qiita】Gradleを始めてみよう
【Qiita】KotlinでSpigotプラグインを作るためのbuild.gradle
【公式】Kotlin using Gradle
【stack overflow】IntelliJ IDEA and Gradle – Cannot be applied to ‘(groovy.lang.Closure)’
【Qiita】YAML 基本記法まとめ
默认是使用Maven的,但请改用Gradle。
如果你想使用Maven,也没有问题,但如果你对它不太了解,我推荐使用Gradle。
因为Maven需要通过XML进行配置,所以配置不易读也不易写。
接下来的解释也将基于Gradle进行。
完成输入后,点击下一步按钮。
水龙头设置
当输入完成后,请点击“下一步”按钮继续操作。
指定目录这是最后的设置界面。
在这里,您可以指定目录名称。这与项目无直接关联。
请使用易于理解的名称。
如果您想更改目录位置,可以从项目位置进行指定。
按下“完成”按钮后,项目创建就完成了!可能会弹出一个名为“从Gradle导入模块”的窗口,点击“确定”即可。
还只有一半…虽然我想说”这样就能开发了!”但还有一些事情需要做。
其中一个是将Java转换为Kotlin。还有其他需要完成的任务,如Gradle编辑和最基本的设置。
将Java文件转换为Kotlin文件由于Spigot是用Java编写的,所以插件模板也是用Java编写的。
如果要用Kotlin编写,就必须将自动生成的Java代码进行转换。
不过,幸好可以借助IntelliJ IDEA的功能进行自动转换,而无需进行重构。
请从Project菜单中选择显示的目录,然后选择src -> main -> java。
选择后,点击菜单栏中的Code -> Convert Java File to Kotlin File,将自动将代码转换为Kotlin。
build.gradleの編集チュートリアル最大の山場、Gradleです。
Gradleとはビルドシステムのことで、依存関係やビルド方法を記述したものになります。
Gradleの記述を間違えると、「コードは正しいのに動かない」なんてこともしばしばですので、間違いなく書いていきましょう。
删除无用的文件实际上,IntelliJ IDEA生成的文件中有一些不必要的内容。这些文件是位于根目录下的.idea目录中的iml文件。这些是IntelliJ IDEA的配置文件,但由于这些文件的存在,在build.gradle中会出现不必要的警告(黄色标记)。据说这些文件并不是特别必需,所以在编辑build.gradle之前,最好先删除它们。
如果你有担心,我觉得最好先备份一下。
imlファイルを削除したら、Build -> Rebuild Projectからプロジェクトをリビルドしましょう。警告が表示されなくなるはずです。
buildscript, dependencies, jarの変更・追記
我将添加关于Kotlin和外部库的依赖关系。
这次我将写入以下内容:
buildscript {
ext {
junit_version = '4.12'
kotlin_version = '1.3.21'
spigot_version = '1.13.2-R0.1-SNAPSHOT'
}
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.21"
}
}
apply plugin: 'java'
apply plugin: 'kotlin'
group = pluginGroup
version = pluginVersion
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
mavenCentral()
maven {
name = 'spigotmc-repo'
url = 'https://hub.spigotmc.org/nexus/content/groups/public/'
}
maven {
name = 'sonatype'
url = 'https://oss.sonatype.org/content/groups/public/'
}
}
dependencies {
testImplementation group: 'junit', name: 'junit', version: junit_version
testRuntimeOnly group: 'junit', name: 'junit', version: junit_version
compile "org.spigotmc:spigot-api:$spigot_version"
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
import org.apache.tools.ant.filters.ReplaceTokens
processResources {
from(sourceSets.main.resources.srcDirs) {
filter ReplaceTokens, tokens: [version: version]
}
}
jar {
from {
configurations.compile.collect {
it.isDirectory() ? it : zipTree(it)
}
}
}
只对主要部分进行解释。
构建脚本块まずはbuild.gradleの先頭にbuildscriptを追記しましょう。
buildscriptはビルドスクリプト自体が依存しているライブラリを指定するブロックになります。今回はKotlinのGradleプラグインを利用するために必要な記述です。他に各ライブラリのバージョンもここで指定すると、管理が楽になります。
buildscript {
ext {
junit_version = '4.12'
kotlin_version = '1.3.21'
spigot_version = '1.13.2-R0.1-SNAPSHOT'
}
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.21"
}
}
...
依赖图块”dependencies”块就是用来描述库之间的依赖关系的地方,顾名思义。
版本号会在buildscript的ext块中进行定义,所以会进行参考。
这次除了使用Spigot库之外,还会使用Kotlin库,因此需要将它们进行描述。
另外,为了进行测试,还会将Junit库也加入其中。
...
dependencies {
testImplementation group: 'junit', name: 'junit', version: junit_version
testRuntimeOnly group: 'junit', name: 'junit', version: junit_version
compile "org.spigotmc:spigot-api:$spigot_version"
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
...
罐子封锁在jar文件中,我们将进行关于输出jar文件的描述。
在这里,我们将编写将外部库包含在jar文件中的处理。
如果不进行这个描述,那么jar文件中将不包含外部库,可能引起运行错误。
这也是导致jar文件变大的原因之一,但如果不想使用依赖插件,这个描述是必需的。
...
jar {
from {
configurations.compile.collect {
it.isDirectory() ? it : zipTree(it)
}
}
}
如果在最后进行构建时没有出现任何错误,那就可以了。
如果出现了任何错误,这意味着build.gradle有问题。
我们再次检查一下build.gradle吧。
编辑plugin.ymlこれが最後の手続きになります。
作ったプラグインに関する情報が書かれているplugin.ymlを編集しましょう。
ymlファイルについては、別記事を参照してください。
― 【Qiita】YAML 基本記法まとめ
plugin.ymlはsrc -> resourcesディレクトリの中にあります。
name: Sample
version: @version@
main: com.tklcraft.sample.SamplePlugin
api-version: '1.13'
author: kanakiyo314
まず、api-versionはシングルクォーテーション”で囲みましょう。
Stringが実数になっていると警告が表示されてしまいます。
そして大事なのがauthorの記述です。
誰が作ったのかは大変重要な情報なので漏れなく書き込みましょう。
何より、動作テストのときに表示させるととても感動します。
如果有多个作者,可以用以下方式表示:
authors: [authorA, authorB]
这样就可以多次列举作者了。
動作テスト最后是动作测试。
因为即使能够成功编译,也有很多情况下无法正常运行,所以我们必须确保进行仔细的确认。
ビルドで生成されがjarファイルはルートディレクトリ -> build -> libにあります。
それを通常のプラグインと同様にpluginsフォルダにコピーすれば準備は完了です。
サーバを起動してみましょう。
如果服务器日志显示[Sample] Enabling Sample v1.0-SNAPSHOT,则表示成功(插件名称和版本已经设置)。
你觉得怎么样?
难道不会有一点感动吗?
ここまで来れば、プラグイン開発の準備は完全に整いました。
もうこれで、バリバリコードが欠けます!
最终,最后,最后一个Minecraftのプラグイン作成に関する記事はとても少ないです(Kotlinならなおさら…)。
今回は誰もが苦労するであろう部分を重点的にまとめてみました。
下一次我想写一个关于插件制作教程的主题。
请参考下列链接
-
【公式】Kotlin
-
【TechCrunch】Google、KotlinをAndroidアプリ開発言語に選定
-
【ブログ】Android公式言語 Kotlinとはどんな言語でどんなメリットがあるのか?!
-
【Qiita】はじめてのKotlin。Javaと比較してみた
【ブログ】KotlinのNull安全ってどうなの?!検証も交えてまとめてみた!
【SlideShgare】Gradle 入門
【Spigot】How to use Kotlin in your plugins
【Qiita】Gradleを始めてみよう
【Qiita】KotlinでSpigotプラグインを作るためのbuild.gradle
【公式】Kotlin using Gradle
【stack overflow】IntelliJ IDEA and Gradle – Cannot be applied to ‘(groovy.lang.Closure)’
【Qiita】YAML 基本記法まとめ
当输入完成后,请点击“下一步”按钮继续操作。
指定目录这是最后的设置界面。
在这里,您可以指定目录名称。这与项目无直接关联。
请使用易于理解的名称。
如果您想更改目录位置,可以从项目位置进行指定。
按下“完成”按钮后,项目创建就完成了!可能会弹出一个名为“从Gradle导入模块”的窗口,点击“确定”即可。
还只有一半…虽然我想说”这样就能开发了!”但还有一些事情需要做。
其中一个是将Java转换为Kotlin。还有其他需要完成的任务,如Gradle编辑和最基本的设置。
将Java文件转换为Kotlin文件由于Spigot是用Java编写的,所以插件模板也是用Java编写的。
如果要用Kotlin编写,就必须将自动生成的Java代码进行转换。
不过,幸好可以借助IntelliJ IDEA的功能进行自动转换,而无需进行重构。
请从Project菜单中选择显示的目录,然后选择src -> main -> java。
选择后,点击菜单栏中的Code -> Convert Java File to Kotlin File,将自动将代码转换为Kotlin。
build.gradleの編集チュートリアル最大の山場、Gradleです。
Gradleとはビルドシステムのことで、依存関係やビルド方法を記述したものになります。
Gradleの記述を間違えると、「コードは正しいのに動かない」なんてこともしばしばですので、間違いなく書いていきましょう。
删除无用的文件实际上,IntelliJ IDEA生成的文件中有一些不必要的内容。这些文件是位于根目录下的.idea目录中的iml文件。这些是IntelliJ IDEA的配置文件,但由于这些文件的存在,在build.gradle中会出现不必要的警告(黄色标记)。据说这些文件并不是特别必需,所以在编辑build.gradle之前,最好先删除它们。
如果你有担心,我觉得最好先备份一下。
imlファイルを削除したら、Build -> Rebuild Projectからプロジェクトをリビルドしましょう。警告が表示されなくなるはずです。
buildscript, dependencies, jarの変更・追記
我将添加关于Kotlin和外部库的依赖关系。
这次我将写入以下内容:
buildscript {
ext {
junit_version = '4.12'
kotlin_version = '1.3.21'
spigot_version = '1.13.2-R0.1-SNAPSHOT'
}
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.21"
}
}
apply plugin: 'java'
apply plugin: 'kotlin'
group = pluginGroup
version = pluginVersion
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
mavenCentral()
maven {
name = 'spigotmc-repo'
url = 'https://hub.spigotmc.org/nexus/content/groups/public/'
}
maven {
name = 'sonatype'
url = 'https://oss.sonatype.org/content/groups/public/'
}
}
dependencies {
testImplementation group: 'junit', name: 'junit', version: junit_version
testRuntimeOnly group: 'junit', name: 'junit', version: junit_version
compile "org.spigotmc:spigot-api:$spigot_version"
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
import org.apache.tools.ant.filters.ReplaceTokens
processResources {
from(sourceSets.main.resources.srcDirs) {
filter ReplaceTokens, tokens: [version: version]
}
}
jar {
from {
configurations.compile.collect {
it.isDirectory() ? it : zipTree(it)
}
}
}
只对主要部分进行解释。
构建脚本块まずはbuild.gradleの先頭にbuildscriptを追記しましょう。
buildscriptはビルドスクリプト自体が依存しているライブラリを指定するブロックになります。今回はKotlinのGradleプラグインを利用するために必要な記述です。他に各ライブラリのバージョンもここで指定すると、管理が楽になります。
buildscript {
ext {
junit_version = '4.12'
kotlin_version = '1.3.21'
spigot_version = '1.13.2-R0.1-SNAPSHOT'
}
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.21"
}
}
...
依赖图块”dependencies”块就是用来描述库之间的依赖关系的地方,顾名思义。
版本号会在buildscript的ext块中进行定义,所以会进行参考。
这次除了使用Spigot库之外,还会使用Kotlin库,因此需要将它们进行描述。
另外,为了进行测试,还会将Junit库也加入其中。
...
dependencies {
testImplementation group: 'junit', name: 'junit', version: junit_version
testRuntimeOnly group: 'junit', name: 'junit', version: junit_version
compile "org.spigotmc:spigot-api:$spigot_version"
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
...
罐子封锁在jar文件中,我们将进行关于输出jar文件的描述。
在这里,我们将编写将外部库包含在jar文件中的处理。
如果不进行这个描述,那么jar文件中将不包含外部库,可能引起运行错误。
这也是导致jar文件变大的原因之一,但如果不想使用依赖插件,这个描述是必需的。
...
jar {
from {
configurations.compile.collect {
it.isDirectory() ? it : zipTree(it)
}
}
}
如果在最后进行构建时没有出现任何错误,那就可以了。
如果出现了任何错误,这意味着build.gradle有问题。
我们再次检查一下build.gradle吧。
编辑plugin.ymlこれが最後の手続きになります。
作ったプラグインに関する情報が書かれているplugin.ymlを編集しましょう。
ymlファイルについては、別記事を参照してください。
― 【Qiita】YAML 基本記法まとめ
plugin.ymlはsrc -> resourcesディレクトリの中にあります。
name: Sample
version: @version@
main: com.tklcraft.sample.SamplePlugin
api-version: '1.13'
author: kanakiyo314
まず、api-versionはシングルクォーテーション”で囲みましょう。
Stringが実数になっていると警告が表示されてしまいます。
そして大事なのがauthorの記述です。
誰が作ったのかは大変重要な情報なので漏れなく書き込みましょう。
何より、動作テストのときに表示させるととても感動します。
如果有多个作者,可以用以下方式表示:
authors: [authorA, authorB]
这样就可以多次列举作者了。
動作テスト最后是动作测试。
因为即使能够成功编译,也有很多情况下无法正常运行,所以我们必须确保进行仔细的确认。
ビルドで生成されがjarファイルはルートディレクトリ -> build -> libにあります。
それを通常のプラグインと同様にpluginsフォルダにコピーすれば準備は完了です。
サーバを起動してみましょう。
如果服务器日志显示[Sample] Enabling Sample v1.0-SNAPSHOT,则表示成功(插件名称和版本已经设置)。
你觉得怎么样?
难道不会有一点感动吗?
ここまで来れば、プラグイン開発の準備は完全に整いました。
もうこれで、バリバリコードが欠けます!
最终,最后,最后一个Minecraftのプラグイン作成に関する記事はとても少ないです(Kotlinならなおさら…)。
今回は誰もが苦労するであろう部分を重点的にまとめてみました。
下一次我想写一个关于插件制作教程的主题。
请参考下列链接
-
【公式】Kotlin
-
【TechCrunch】Google、KotlinをAndroidアプリ開発言語に選定
-
【ブログ】Android公式言語 Kotlinとはどんな言語でどんなメリットがあるのか?!
-
【Qiita】はじめてのKotlin。Javaと比較してみた
【ブログ】KotlinのNull安全ってどうなの?!検証も交えてまとめてみた!
【SlideShgare】Gradle 入門
【Spigot】How to use Kotlin in your plugins
【Qiita】Gradleを始めてみよう
【Qiita】KotlinでSpigotプラグインを作るためのbuild.gradle
【公式】Kotlin using Gradle
【stack overflow】IntelliJ IDEA and Gradle – Cannot be applied to ‘(groovy.lang.Closure)’
【Qiita】YAML 基本記法まとめ
按下“完成”按钮后,项目创建就完成了!可能会弹出一个名为“从Gradle导入模块”的窗口,点击“确定”即可。
还只有一半…虽然我想说”这样就能开发了!”但还有一些事情需要做。
其中一个是将Java转换为Kotlin。还有其他需要完成的任务,如Gradle编辑和最基本的设置。
将Java文件转换为Kotlin文件由于Spigot是用Java编写的,所以插件模板也是用Java编写的。
如果要用Kotlin编写,就必须将自动生成的Java代码进行转换。
不过,幸好可以借助IntelliJ IDEA的功能进行自动转换,而无需进行重构。
如果要用Kotlin编写,就必须将自动生成的Java代码进行转换。
不过,幸好可以借助IntelliJ IDEA的功能进行自动转换,而无需进行重构。
请从Project菜单中选择显示的目录,然后选择src -> main -> java。
选择后,点击菜单栏中的Code -> Convert Java File to Kotlin File,将自动将代码转换为Kotlin。
build.gradleの編集チュートリアル最大の山場、Gradleです。
Gradleとはビルドシステムのことで、依存関係やビルド方法を記述したものになります。
Gradleの記述を間違えると、「コードは正しいのに動かない」なんてこともしばしばですので、間違いなく書いていきましょう。
删除无用的文件实际上,IntelliJ IDEA生成的文件中有一些不必要的内容。这些文件是位于根目录下的.idea目录中的iml文件。这些是IntelliJ IDEA的配置文件,但由于这些文件的存在,在build.gradle中会出现不必要的警告(黄色标记)。据说这些文件并不是特别必需,所以在编辑build.gradle之前,最好先删除它们。
如果你有担心,我觉得最好先备份一下。
如果你有担心,我觉得最好先备份一下。
imlファイルを削除したら、Build -> Rebuild Projectからプロジェクトをリビルドしましょう。警告が表示されなくなるはずです。
buildscript, dependencies, jarの変更・追記
我将添加关于Kotlin和外部库的依赖关系。
这次我将写入以下内容:
buildscript {
ext {
junit_version = '4.12'
kotlin_version = '1.3.21'
spigot_version = '1.13.2-R0.1-SNAPSHOT'
}
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.21"
}
}
apply plugin: 'java'
apply plugin: 'kotlin'
group = pluginGroup
version = pluginVersion
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
mavenCentral()
maven {
name = 'spigotmc-repo'
url = 'https://hub.spigotmc.org/nexus/content/groups/public/'
}
maven {
name = 'sonatype'
url = 'https://oss.sonatype.org/content/groups/public/'
}
}
dependencies {
testImplementation group: 'junit', name: 'junit', version: junit_version
testRuntimeOnly group: 'junit', name: 'junit', version: junit_version
compile "org.spigotmc:spigot-api:$spigot_version"
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
import org.apache.tools.ant.filters.ReplaceTokens
processResources {
from(sourceSets.main.resources.srcDirs) {
filter ReplaceTokens, tokens: [version: version]
}
}
jar {
from {
configurations.compile.collect {
it.isDirectory() ? it : zipTree(it)
}
}
}
buildscript {
ext {
junit_version = '4.12'
kotlin_version = '1.3.21'
spigot_version = '1.13.2-R0.1-SNAPSHOT'
}
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.21"
}
}
apply plugin: 'java'
apply plugin: 'kotlin'
group = pluginGroup
version = pluginVersion
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
mavenCentral()
maven {
name = 'spigotmc-repo'
url = 'https://hub.spigotmc.org/nexus/content/groups/public/'
}
maven {
name = 'sonatype'
url = 'https://oss.sonatype.org/content/groups/public/'
}
}
dependencies {
testImplementation group: 'junit', name: 'junit', version: junit_version
testRuntimeOnly group: 'junit', name: 'junit', version: junit_version
compile "org.spigotmc:spigot-api:$spigot_version"
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
import org.apache.tools.ant.filters.ReplaceTokens
processResources {
from(sourceSets.main.resources.srcDirs) {
filter ReplaceTokens, tokens: [version: version]
}
}
jar {
from {
configurations.compile.collect {
it.isDirectory() ? it : zipTree(it)
}
}
}
只对主要部分进行解释。
构建脚本块まずはbuild.gradleの先頭にbuildscriptを追記しましょう。
buildscriptはビルドスクリプト自体が依存しているライブラリを指定するブロックになります。今回はKotlinのGradleプラグインを利用するために必要な記述です。他に各ライブラリのバージョンもここで指定すると、管理が楽になります。
buildscript {
ext {
junit_version = '4.12'
kotlin_version = '1.3.21'
spigot_version = '1.13.2-R0.1-SNAPSHOT'
}
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.21"
}
}
...
依赖图块”dependencies”块就是用来描述库之间的依赖关系的地方,顾名思义。
版本号会在buildscript的ext块中进行定义,所以会进行参考。
这次除了使用Spigot库之外,还会使用Kotlin库,因此需要将它们进行描述。
另外,为了进行测试,还会将Junit库也加入其中。
...
dependencies {
testImplementation group: 'junit', name: 'junit', version: junit_version
testRuntimeOnly group: 'junit', name: 'junit', version: junit_version
compile "org.spigotmc:spigot-api:$spigot_version"
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
...
罐子封锁在jar文件中,我们将进行关于输出jar文件的描述。
在这里,我们将编写将外部库包含在jar文件中的处理。
如果不进行这个描述,那么jar文件中将不包含外部库,可能引起运行错误。
这也是导致jar文件变大的原因之一,但如果不想使用依赖插件,这个描述是必需的。
...
jar {
from {
configurations.compile.collect {
it.isDirectory() ? it : zipTree(it)
}
}
}
buildscript {
ext {
junit_version = '4.12'
kotlin_version = '1.3.21'
spigot_version = '1.13.2-R0.1-SNAPSHOT'
}
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.21"
}
}
...
版本号会在buildscript的ext块中进行定义,所以会进行参考。
这次除了使用Spigot库之外,还会使用Kotlin库,因此需要将它们进行描述。
另外,为了进行测试,还会将Junit库也加入其中。
...
dependencies {
testImplementation group: 'junit', name: 'junit', version: junit_version
testRuntimeOnly group: 'junit', name: 'junit', version: junit_version
compile "org.spigotmc:spigot-api:$spigot_version"
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
...
罐子封锁在jar文件中,我们将进行关于输出jar文件的描述。
在这里,我们将编写将外部库包含在jar文件中的处理。
如果不进行这个描述,那么jar文件中将不包含外部库,可能引起运行错误。
这也是导致jar文件变大的原因之一,但如果不想使用依赖插件,这个描述是必需的。
...
jar {
from {
configurations.compile.collect {
it.isDirectory() ? it : zipTree(it)
}
}
}
...
jar {
from {
configurations.compile.collect {
it.isDirectory() ? it : zipTree(it)
}
}
}
如果在最后进行构建时没有出现任何错误,那就可以了。
如果出现了任何错误,这意味着build.gradle有问题。
我们再次检查一下build.gradle吧。
编辑plugin.ymlこれが最後の手続きになります。
作ったプラグインに関する情報が書かれているplugin.ymlを編集しましょう。
ymlファイルについては、別記事を参照してください。
― 【Qiita】YAML 基本記法まとめ
plugin.ymlはsrc -> resourcesディレクトリの中にあります。
name: Sample
version: @version@
main: com.tklcraft.sample.SamplePlugin
api-version: '1.13'
author: kanakiyo314
まず、api-versionはシングルクォーテーション”で囲みましょう。
Stringが実数になっていると警告が表示されてしまいます。
そして大事なのがauthorの記述です。
誰が作ったのかは大変重要な情報なので漏れなく書き込みましょう。
何より、動作テストのときに表示させるととても感動します。
如果有多个作者,可以用以下方式表示:
authors: [authorA, authorB]
这样就可以多次列举作者了。
動作テスト最后是动作测试。
因为即使能够成功编译,也有很多情况下无法正常运行,所以我们必须确保进行仔细的确认。
ビルドで生成されがjarファイルはルートディレクトリ -> build -> libにあります。
それを通常のプラグインと同様にpluginsフォルダにコピーすれば準備は完了です。
サーバを起動してみましょう。
如果服务器日志显示[Sample] Enabling Sample v1.0-SNAPSHOT,则表示成功(插件名称和版本已经设置)。
你觉得怎么样?难道不会有一点感动吗?
ここまで来れば、プラグイン開発の準備は完全に整いました。
もうこれで、バリバリコードが欠けます!
最终,最后,最后一个Minecraftのプラグイン作成に関する記事はとても少ないです(Kotlinならなおさら…)。
今回は誰もが苦労するであろう部分を重点的にまとめてみました。
下一次我想写一个关于插件制作教程的主题。
请参考下列链接
-
【公式】Kotlin
- 【公式】Kotlin
-
- 【TechCrunch】Google、KotlinをAndroidアプリ開発言語に選定
-
- 【ブログ】Android公式言語 Kotlinとはどんな言語でどんなメリットがあるのか?!
-
- 【Qiita】はじめてのKotlin。Javaと比較してみた
【ブログ】KotlinのNull安全ってどうなの?!検証も交えてまとめてみた!
【SlideShgare】Gradle 入門
【Spigot】How to use Kotlin in your plugins
【Qiita】Gradleを始めてみよう
【Qiita】KotlinでSpigotプラグインを作るためのbuild.gradle
【公式】Kotlin using Gradle
【stack overflow】IntelliJ IDEA and Gradle – Cannot be applied to ‘(groovy.lang.Closure)’
【Qiita】YAML 基本記法まとめ