Spigot Plugin

Quickstart (Spigot, +Forks)

Start building Spigot, Paper, or forked server plugins effortlessly with Quartz Framework. This guide walks you through setting up your project with the Quartz Spigot Plugin Starter.

RELEASE SNAPSHOT


Maven Setup

Add Quartz Parent

First, include the Quartz parent BOM in your Maven project. This centralizes version management and simplifies dependency declarations.

<parent>
    <groupId>xyz.quartzframework</groupId>
    <artifactId>quartz-parent</artifactId>
    <version>{version}</version>
    <relativePath/>
</parent>

Add Snapshot Repository

Quartz is published through Maven Central, but if you are using a snapshot version, be sure to add their repository to your <repositories> block:

<repositories>
    <repository>
        <id>sonatype-central</id>
        <url>https://central.sonatype.com/repository/maven-snapshots</url>
        <releases>
            <enabled>false</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

Add Dependency

Then, make sure you have the quartz-starter-spigot-plugin dependency in <dependencies> block:

<dependencies>
    <dependency>
        <groupId>xyz.quartzframework</groupId>
        <artifactId>quartz-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>xyz.quartzframework</groupId>
        <artifactId>quartz-starter-spigot-plugin</artifactId>
    </dependency>
</dependencies>

Gradle Setup

Add Quartz dependencies in your build.gradle.kts or build.gradle.

Add Quartz Parent

First, include the Quartz parent BOM in your Gradle project. This centralizes version management and simplifies dependency declarations.

plugins {
  java
  id("xyz.quartzframework:quartz-parent") version "{version}"
}

Add Snapshot Repository

Quartz is published through Maven Central, but if you are using a snapshot version, be sure to add their repository to your <repositories> block:

repositories {
    mavenCentral()
    maven {
        name = "SonatypeSnapshots"
        url = uri("https://central.sonatype.com/repository/maven-snapshots")
        mavenContent {
            snapshotsOnly()
        }
    }
}

Add Dependency

Then, make sure you have the quartz-starter-spigot-plugin dependency in <dependencies> block:

dependencies {
    implementation("xyz.quartzframework:quartz-starter")
    implementation("xyz.quartzframework:quartz-starter-spigot-plugin")
}

Define your Main class

@QuartzPlugin
public class MyPlugin extends SpigotPlugin {

    @Override
    public void main() {
        SpigotPlugin
            .builder(this)
            .build();
    }
}

You should know

The Quartz Framework will not handle your plugin if you do not annotate your main class with @QuartzPlugin

Create your plugin.yml

name: '@project.name@'
version: '@project.version@'
main: xyz.foo.bar.MyPlugin

You should remember

Remember to correctly reference your main class in your plugin.yml

Previous
Spigot Plugin