4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Bukkit,Spigot,Paper】plugin.yml も build.gradle.kts を書く

Last updated at Posted at 2020-06-08

plugin-yml

これを使います。例には build.gralde もあるのでそちらがいい人はやってみてください。

ちなみに、kotlin-dsl の例は間違っています。コマンドやパーミッションの設定が出来ません。
"test"register("test")
"testplugin.*"register("testplugin.*")
に変更すればできます。詳しくはこの記事の下の方で解説しています。

Gradle

build.gradle.kts だけを用意してあります。build.gradle の例、誰か書いてくれませんかね
自分に合ったものを選んで ▶ を押してください。
@TODO になっている箇所を編集してください

build.gradle (Groovy)

待ってます。

build.gradle.kts (Kotlin)

build.gradle になっている人はファイル名を変更して、build.gradle.kts にしてください。
文法が少し違うので、修正しないとエラーになると思います。

Spigot 1.15.2 + Java
build.gradle.kts
plugins {
    java
    id("net.minecrell.plugin-yml.bukkit") version "0.3.0"
}

group = "" // @TODO ここを編集
version = "1.0" // @TODO ここを編集

repositories {
    mavenCentral()
    maven {
        url = uri("https://hub.spigotmc.org/nexus/content/repositories/snapshots")
    }
    maven {
        url = uri("https://oss.sonatype.org/content/repositories/snapshots")
    }
}

dependencies {
    implementation("org.spigotmc:spigot-api:1.15.2-R0.1-SNAPSHOT")
}

bukkit {
    // 詳しく説明します
}

val jar by tasks.getting(Jar::class) {
    from(configurations.compileOnly.get().map {
        if (it.isDirectory) it else zipTree(it)
    })
}
Paper 1.15.2 + Kotlin
build.gradle.kts
plugins {
    kotlin("jvm") version "1.3.72"
    id("net.minecrell.plugin-yml.bukkit") version "0.3.0"
}

group = "" // @TODO ここを編集
version = "1.0" // @TODO ここを編集

repositories {
    mavenCentral()
    maven {
        url = uri("https://papermc.io/repo/repository/maven-public/")
    }
}

dependencies {
    implementation("com.destroystokyo.paper:paper-api:1.15.2-R0.1-SNAPSHOT")
    compileOnly("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
}

bukkit {
    // 詳しく説明します
}

tasks {
    compileKotlin {
        kotlinOptions.jvmTarget = "1.8"
    }
}

val jar by tasks.getting(Jar::class) {
    from(configurations.compileOnly.get().map {
        if (it.isDirectory) it else zipTree(it)
    })
}

bukkit {} を書く

最低限
bukkit {
    main = "" // @TODO JavaPlugin を継承してるクラスへのパス
    apiVersion = "1.15"
        // 1.13.X なら 1.13
        // 1.14.X なら 1.14
        // 1.15.X なら 1.15
        // 1.16.X なら 1.16
}

でも、author くらいは書いておいた方がいいと思います。

例のやつ

GitHubのものを適当に修正しました。対応させられれば完璧に書けますね。

bukkit {
    main = "com.example.testplugin.TestPlugin"
    apiVersion = "1.13"
    load = BukkitPluginDescription.PluginLoadOrder.STARTUP // or POSTWORLD 
    authors = listOf("Notch", "Notch2")
    depend = listOf("WorldEdit")
    softDepend = listOf("Essentials")
    loadBefore = listOf("BrokenPlugin")
    prefix = "TEST"
    defaultPermission = BukkitPluginDescription.Permission.Default.OP // TRUE, FALSE, OP or NOT_OP
    
    commands {
        register("test") {
            description = "This is a test command!"
            aliases = listOf("t")
            permission = "testplugin.test"
            usage = "Just run the command!"
            // permissionMessage = "You may not test this command!" 
        }
        // ...
    }
    
    permissions {
        register("testplugin.*") {
            children = listOf("testplugin.test")
        }
        register("testplugin.test") {
            description = "Allows you to run the test command"
            default = BukkitPluginDescription.Permission.Default.OP // TRUE, FALSE, OP or NOT_OP
        }
        // ...
    }
}

最後に

編集する場所が減るのは素晴らしいですね。Bukkit だけではなく、BungeeCord や Nukkitにも対応してます。
プロジェクトの更新(バージョンアップとか)への対応も楽になるので、是非使ってみてください。
説明が足りない部分もあるかと思うので、編集リクエストは遠慮せずしてください。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?