Minecraft Server Plugins

Install Required Software

Download IntelliJ IDEA

hello
hello
hello
hello
hello
hello

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

build.gradle.kts

Click Sync Gradle Changes when editing build.gradle.kts

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

plugin.yml
name: Plugin Name
description: A cool plugin
author: You
website: https://username.me
api-version: '26.2'
version: 0.0.1
main: me.username.plugin.KoolPlugin
libraries:
# Kotlin | https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-stdlib
- org.jetbrains.kotlin:kotlin-stdlib:2.4.0
plugin.yml
name: Plugin Name
description: A cool plugin
author: You
website: https://username.me
api-version: '26.2'
version: 0.0.1
main: me.username.plugin.KoolPlugin
load: POSTWORLD
depend: []
softdepend: []
loadbefore: []
libraries: []

Spigot Wiki — Plugin YML

Main Class

KoolPlugin
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

Chat

Commands

Events

Blocks

Entities

Tasks

Interfaces

Configs

Databases

This website is currently available on Desktop only
Let @Stephcraft know on Discord you'd like a Mobile version

Join Discord