Creating Your First Plugin
It is very simple to create a plugin for Velocity. This section will teach you how to setup your IDE, your plugin identifiers, and give you an introduction to the basics of the Velocity API.
Before you continue...
You will need proficiency in the Java programming language. If you don't know Java yet, we strongly recommend you learn some basic Java before you continue.
Set up your environment
You're going to need the JDK and an IDE. If you don't have an IDE, IntelliJ IDEA is recommended.
Creating the project in your IDE
- Open your IDE
- Click
Create New Project
or the equivalent - Select either
Gradle
orMaven
- Make sure your Project JDK is Java 11 or later
- Finish the dialog and open the project.
Now we have created our project, we need configure our build system.
I know how to do this. Give me what I need!
Maven repository
Name | URL |
---|---|
papermc | https://repo.papermc.io/repository/maven-public/ |
Dependency
Group ID | Artifact ID | Version |
---|---|---|
com.velocitypowered | velocity-api | 3.2.0-SNAPSHOT |
Javadocs
Javadocs are available at jd.papermc.io/velocity/3.0.0.
Set up your build system
You will need to setup a build system before you continue. While it is possible to write Velocity plugins without one, having a build system will make your life a lot less difficult.
How to set up a build system is outside the scope of this page, but you can look at your build system's documentation (Gradle or Maven) for assistance.
Setting up the dependency
<project>
<repositories>
<repository>
<id>papermc</id>
<url>https://repo.papermc.io/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.velocitypowered</groupId>
<artifactId>velocity-api</artifactId>
<version>3.2.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
repositories {
maven {
name = "papermc"
url = uri("https://repo.papermc.io/repository/maven-public/")
}
}
dependencies {
compileOnly("com.velocitypowered:velocity-api:3.2.0-SNAPSHOT")
annotationProcessor("com.velocitypowered:velocity-api:3.2.0-SNAPSHOT")
}
repositories {
maven {
name = 'papermc'
url = 'https://repo.papermc.io/repository/maven-public/'
}
}
dependencies {
compileOnly 'com.velocitypowered:velocity-api:3.2.0-SNAPSHOT'
annotationProcessor 'com.velocitypowered:velocity-api:3.2.0-SNAPSHOT'
}