Minecraft Server Plugins
Install Required Software
Setup Project
Download Project Template
- Right click folder Open Folder as IntelliJ IDEA Project
- Click Trust Project
- Click Load Gradle Project · Creates gradle + gradlew
Manual Setup
- Create a folder
- Right click folder Open Folder as IntelliJ IDEA Project
- Click Trust Project
- Create file build.gradle.kts
- Click Load Gradle Project · Creates gradle + gradlew
- Create directory src/main/resources
- Create file plugin.yml
- Create directory src/main/kotlin
-
Create package me.username.plugin
- Create class KoolPlugin
-
Create package me.username.plugin
build.gradle.kts
Click Sync Gradle Changes when editing build.gradle.kts
group = "me.username" Replace this with your desired domain name
version = "0.0.1" You can increment your plugin's version over time
plugins {
/* language -> kotlin | https://kotlinlang.org/docs/releases.html */ kotlin("jvm") version "2.4.0"
/* bundle jar dependencies | https://github.com/GradleUp/shadow/releases */ id("com.gradleup.shadow") version "9.6.0"
}
kotlin { /* JDK version | https://whichjdk.com */ jvmToolchain(25)}
/* Repositories */repositories { mavenCentral() maven("https://hub.spigotmc.org/nexus/content/repositories/snapshots/") // Spigot api}
/* Dependencies */dependencies {
/* spigot | https://spigotmc.org */ compileOnly("org.spigotmc:spigot-api:26.2-R0.1-SNAPSHOT") You can set your desired Minecraft version here
}
tasks {
/* Export jar to server's plugin folder */ register<Copy>("exportPlugin") { description = "Export jar to server's plugin folder" mustRunAfter(shadowJar) from(shadowJar) into(File(System.getProperty("user.home"), "Desktop/MinecraftServer/plugins")) You can set your server's plugin folder here to automatically export your jar
}
/* Bundle jar dependencies */ jar { finalizedBy(shadowJar) }
/* Disable unit tests */ compileTestKotlin { enabled = false }
}Learn Gradle
name: Plugin Namedescription: A cool pluginauthor: Youwebsite: https://username.meapi-version: '26.2'version: 0.0.1
main: me.username.plugin.KoolPluginlibraries: # Kotlin | https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-stdlib - org.jetbrains.kotlin:kotlin-stdlib:2.4.0name: Plugin Namedescription: A cool pluginauthor: Youwebsite: https://username.meapi-version: '26.2'version: 0.0.1
main: me.username.plugin.KoolPluginload: POSTWORLDdepend: []softdepend: []loadbefore: []libraries: []Main Class
package me.username.plugin
import org.bukkit.plugin.java.JavaPlugin
class KoolPlugin: JavaPlugin {
override fun onEnable() { Executes during server startup when the plugin is enabled
}
override fun onDisable() { Executes during server shutdown when the plugin is disabled
}}Spigot Wiki — Main Plugin Class





