sya-ri / minecraft-server-gradle-plugin

Launch Minecraft servers using Gradle task. For Bukkit, Spigot, Paper, etc..

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

minecraft-server-gradle-plugin

Pre Merge Checks License Language Gradle Plugin Portal

Launch Minecraft servers using Gradle task. For Bukkit, Spigot, Paper, etc..

Installation

build.gradle

plugins {
    id 'dev.s7a.gradle.minecraft.server' version '3.1.0'
}

build.gradle.kts

plugins {
    id("dev.s7a.gradle.minecraft.server") version "3.1.0"
}

Options

Name Default Description
jarUrl Required URL to Download the .jar
jarName server.jar Jar File Name After Download
serverDirectory build/MinecraftServer Working Directory
jvmArgument [] Java Options
serverArgument [] Server Options
nogui true Without Vanilla GUI
agreeEula false Agree to the Minecraft EULA

Example

Warning

This plugin doesn't have a default task. So you have to define it yourself.

Simple usage

build.gradle.kts

task<LaunchMinecraftServerTask>("launchMinecraftServer") {
    jarUrl.set(JarUrl.Paper("1.19.2"))
    agreeEula.set(true)
}

For testing a plugin

build.gradle.kts

task<LaunchMinecraftServerTask>("testPlugin") {
    dependsOn("build")

    doFirst {
        copy {
            from(buildDir.resolve("libs/${project.name}.jar"))
            into(buildDir.resolve("MinecraftServer/plugins"))
        }
    }

    jarUrl.set(JarUrl.Paper("1.19.2"))
    agreeEula.set(true)
}

For testing a multi-version supporting plugin

build.gradle.kts

listOf(
    "8" to "1.8.8",
    "9" to "1.9.4",
    "10" to "1.10.2",
    "11" to "1.11.2",
    "12" to "1.12.2",
    "13" to "1.13.2",
    "14" to "1.14.4",
    "15" to "1.15.2",
    "16" to "1.16.5",
    "17" to "1.17.1",
    "18" to "1.18.2",
    "19" to "1.19.4",
    "20" to "1.20.4"
).forEach { (name, version) ->
    task<LaunchMinecraftServerTask>("testPlugin$name") {
        dependsOn("build")

        doFirst {
            copy {
                from(buildDir.resolve("libs/${project.name}.jar"))
                into(buildDir.resolve("MinecraftServer$name/plugins"))
            }
        }

        serverDirectory.set(buildDir.resolve("MinecraftServer$name").absolutePath)
        jarUrl.set(JarUrl.Paper(version))
        agreeEula.set(true)
    }
}

Supported JarUrl

  • Paper
  • Velocity
  • Waterfall
  • Fabric
  • Mohist
  • LocalFile

About

Launch Minecraft servers using Gradle task. For Bukkit, Spigot, Paper, etc..

License:MIT License


Languages

Language:Kotlin 99.4%Language:Java 0.6%