[覚書]Spigot PluginをKotlinで書く


詰まったし多分今後も詰まるので覚え書き
なんか間違ってたら教えてください 首切ります

IDEの導入

InteliJ IDEA使います

導入:
InteliJ IDEA 入門

導入出来たら設定->プラグイン->マーケットプレイスで「Minecraft Development」をインストールして再起動
プロジェクト制作時のテンプレートにそれっぽいのが追加されてたらok

デフォルトでMavenになってることに留意してください
今回はgradleに変更して初期設定してください

Kotlinに変換する

このプラグインで制作した雛形ファイルのデフォルト言語はJavaです
なのでこれをKotlin用に書き換える必要があります

・build.gradleの書き換え
・ファイルをKotlinに変換
・plugin.ymlの書き換え

以上の作業が必要です

build.gradleの書き換え

一番めんどくさいし一番詰まります
途中に#で注記してあるとこは各自のプロジェクトによって違うので適宜書き換えてください

buildscript {
    ext {
        junit_version = '4.12'
        kotlin_version = #Kotlinのバージョン#
        spigot_version = #Spigotのバージョン#
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

apply plugin: 'java'
apply plugin: 'kotlin'

group = #グループid#
version = "1.0-SNAPSHOT"

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)
        }
    }
}

書き換えた後右の"gradle"からリサイクルマークみたいなの押して再同期してエラーが出なければ恐らく成功してます

ファイルをKotlinに変換する

と言ってもただデフォルトで生成されたJavaファイルをkotlinに置き換えるだけです

ルートファイル\src\main\java\(グループid)\プロジェクト名 に入っているJavaファイルを右クリック
出てきたメニューの下の方にあるJavaファイルをKotlinファイルに変換を押して(日本語化してなかったらConvertうんたらってやつ)適当にokすればオッケーです

指定したファイルの拡張子が変更され、コードがKotlinの記述に変換しているはず

plugin.ymlの変更

ちょっとした変更です

name: #pluginの名前#
version: @version@
main: #メインファイル#
api-version: '1.16'

api-versionの数字はクォーテーションで囲ってください

ビルド

早速動作確認します

右の「gradle」タブから「Run Configration」を開き「"pluginName" build」をダブルクリック

成果物はルートファイル\build\libに生成されています

そしたらサーバーのpluginファイルにjarを設置、サーバーを起動
エラーなくEnabling "pluginName"の文字列が出たらokです