Project Templates

Maven Project Template

Start your plugin development with a well-structured Maven project template:

Basic Maven Plugin Template

A complete Maven project template with the following features:

  • Proper directory structure
  • Pre-configured pom.xml with Bukkit dependencies
  • Sample plugin.yml file
  • Basic JavaPlugin implementation
  • Example command and event listener
  • Resource file handling examples
How to Use:
  1. Download and extract the template
  2. Open the project in your IDE
  3. Update the group ID, artifact ID, and version in pom.xml
  4. Rename the base package and main class
  5. Update the plugin.yml file with your plugin information
  6. Start coding your plugin!

Gradle Project Template

Modern Gradle Plugin Template

A modern Gradle project template with the following features:

  • Kotlin DSL build script
  • Shadow plugin for creating fat JARs
  • Proper dependency management
  • Resource filtering
  • Multi-module project support
  • Test framework setup
How to Use:
  1. Download and extract the template
  2. Open the project in your IDE
  3. Update the group and version in build.gradle.kts
  4. Rename the base package and main class
  5. Update the plugin.yml file with your plugin information
  6. Run the shadowJar task to build your plugin

Development Tools

Essential Development Tools

BuildTools

Official tool for building Spigot server jars for development and testing.

Learn More

MockBukkit

Testing framework for Bukkit plugins that allows unit testing without a server.

Learn More

PlugMan

Plugin that allows you to manage plugins on your test server without restarting.

Learn More

ProtocolLib

Library for intercepting packets and working with the Minecraft protocol.

Learn More

IDE Setup and Plugins

Setting up your IDE correctly can significantly improve your development experience. Here are some recommended IDE plugins and configurations:

IntelliJ IDEA Setup

IntelliJ IDEA is the recommended IDE for Bukkit plugin development. Here are some useful plugins:

  • Minecraft Development

    Provides support for Bukkit, Spigot, and Paper plugin development, including code completion, inspections, and more.

    Install Plugin
  • YAML/Ansible Support

    Improves YAML editing for plugin.yml and config files.

    Install Plugin
  • Maven Helper

    Helps manage Maven dependencies and resolve conflicts.

    Install Plugin

Eclipse Setup

Eclipse is a popular alternative for Java development. Here are some useful plugins:

  • Buildship Gradle Integration

    Provides Gradle support for Eclipse projects.

    Install Plugin
  • YEdit

    YAML editor for plugin.yml and configuration files.

    Install Plugin
  • EclEmma Java Code Coverage

    Code coverage tool for testing your plugin.

    Install Plugin

Visual Studio Code Setup

VS Code is a lightweight alternative that works well for plugin development. Here are some useful extensions:

Libraries and Utilities

Recommended Libraries

These libraries can help you implement common features in your plugins without reinventing the wheel:

Adventure

A library for creating rich text messages with formatting, hover events, and click events.

Maven Dependency:
pom.xml (Adventure Dependency)
12345
<dependency>
  <groupId>net.kyori</groupId>
  <artifactId>adventure-api</artifactId>
  <version>4.14.0</version>
</dependency>
Documentation

ConfigMe

A type-safe configuration library that makes working with config files easier.

Maven Dependency:
pom.xml (ConfigMe Dependency)
12345
<dependency>
  <groupId>ch.jalu</groupId>
  <artifactId>configme</artifactId>
  <version>1.3.0</version>
</dependency>
Documentation

HikariCP

A high-performance JDBC connection pool for database operations.

Maven Dependency:
pom.xml (HikariCP Dependency)
12345
<dependency>
  <groupId>com.zaxxer</groupId>
  <artifactId>HikariCP</artifactId>
  <version>5.0.1</version>
</dependency>
Documentation

ACF (Aikar's Command Framework)

A powerful command framework that simplifies command creation and handling.

Maven Dependency:
pom.xml (ACF Dependency)
12345
<dependency>
  <groupId>co.aikar</groupId>
  <artifactId>acf-paper</artifactId>
  <version>0.5.1-SNAPSHOT</version>
</dependency>
Documentation

Version Compatibility Utilities

These utilities help you maintain compatibility across different Minecraft versions:

NMS Utilities

Utilities for working with Minecraft server internals (NMS) across different versions:

  • XSeries - Cross-version support for materials, sounds, and more
  • ProtocolLib - For packet manipulation across versions
  • NBTAPI - For working with NBT data across versions

Reflection Helpers

Libraries that simplify reflection for accessing version-specific code: