2017年のMinecraftプラグイン開発はKotlinで決まり!Kotlin導入方法!

  • 20
    いいね
  • 0
    コメント

Kotlinとは?

プログラミング言語Kotlinには以下のような特徴があります

  • KotlinとはJavaと100%互換がある
    • JavaとKotlinの混在が可能
    • JavaからKotlinの呼び出し、KotlinからJavaの呼び出しが可能
  • Null安全
    • NullPointerExceptionをコンパイル段階で防げる
  • 自然に簡単に記述することができる
  • 開発元がJetBrainsでなおかつ、オープンソースなので、開発が止まるということが考えられにくい

この他にも様々な特徴があります。

Androidアプリでは、JavaからKotlinへの置き換えが進んでいるようです。
こうなったら、MinecraftでもKotlinへの置き換えを推進しようということで、この記事を書いてみました。

環境設定

IntelliJ IDEAのダウンロード

Minecraft Developmentプラグインのダウンロード

IntelliJ IDEAのプラグイン設定画面で、Browse Repositoryをクリック
Preferences.png

Minecraftと検索すると、MinecraftDevelopmentというプラグインが見つかるのでインストールして再起動します。
Browse_Repositories.png

同様に、Kotlinのプラグインも導入しておいてください。

プロジェクト作成

IntelliJ IDEAをリスタートして、新規プロジェクトを作成します。
MinecraftDevelopmentプラグインをインストールすると、Minecraft Pluginという項目が増えています。
その中から今回はSpigotPluginを選択して次へ進みます。

New_Project_1.png

プロジェクトの情報を入力します。
Gradleを選択して次へ進んでください
New_Project_2.png

Minecraftのバージョンを選択します。今回は1.11にして次へ進みます。
New_Project_3.png

プロジェクトの名前を入力して完了です。
New_Project_4.png

Gradleの設定

Gradleは以下のように設定しました。

build.gradle
apply plugin: 'java'
apply plugin: 'kotlin'

group = pluginGroup
version = pluginVersion

sourceCompatibility = 1.8
targetCompatibility = 1.8

configurations {
    embed
    compile.extendsFrom(embed)
}

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 {
    testCompile group: 'junit', name: 'junit', version: '4.11'
    compile 'org.spigotmc:spigot-api:1.11-R0.1-SNAPSHOT'
    embed "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]
    }
}
buildscript {
    ext.kotlin_version = '1.0.5-3'
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

sourceSets {
    main.java.srcDirs += 'src/main/kotlin'
}

jar {
    from { configurations.embed.collect { it.isDirectory() ? it : zipTree(it) } }
}

別の方も記事を書いているのでそちらも参考にしてみてください
Kotlin で Spigot プラグインを作るための build.gradle - Qiita

Kotlinへの変換

Shiftボタン2回押すとダイアログが出てくるので、Kotlinと入力して、
Convert Java File to Kotlin File

を押して変換してください

スクリーンショット 2016-12-26 2.07.40.png

変換した後、以下のようにコードを変更してください。

KotlinPlugin.kt
package me.reyad.kotlin.kotlinplugin

import org.bukkit.plugin.java.JavaPlugin

class KotlinPlugin : JavaPlugin() {

    override fun onEnable() {
        // Plugin startup logic
        Logger.info("Hello Kotlin!")
    }

    override fun onDisable() {
        // Plugin shutdown logic
    }
}

プラグインを有効にすると、サーバーログに「Hello Kotlin!」と出力されます。

Javaでは以下のように書いていました。

getLogger().info("Hello Kotlin!");

Kotlinでは以下のように書くことができます。

getLogger()をloggerとして書くことができます。

logger.info("Hello Kotlin!")

Build

ビルドボタンを押すと、Jarファイルが作成されます
KotlinPlugin_kt_-_KotlinPlugin_-____IdeaProjects_KotlinPlugin_.png

実行後、buildディレクトリにJarファイルが出力されています。
これをspigotのpluginディレクトリに入れれば動作します。

終わりに

上記のようにして、MinecraftでKotlinライフをスタートすることができます。
みなさんもKotlinの素晴らしさを体験してください!