Skip to main content

Getting Started

Caffeinated plugins are coded in Java.

Setting up your maven project

After creating a maven project, you should modify your pom.xml to include the following respositories and dependencies.

	<repositories>
<repository>
<id>casterlabs</id>
<url>https://repo.casterlabs.co/caffeinated</url>
</repository>
</repositories>

<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
<scope>provided</scope>
</dependency>
<dependency> <!-- For Eclipse users -->
<groupId>org.jetbrains</groupId>
<artifactId>annotations</artifactId>
<version>19.0.0</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>co.casterlabs.caffeinated</groupId>
<artifactId>plugin_sdk</artifactId>
<version>1.2</version>
<scope>provided</scope>
</dependency>
</dependencies>

Plugin Loading

Your plugin class will need to be annotated with @CaffeinatedPluginImplementation to be found and loaded. (You can have multiple plugins in the same jar file)

@CaffeinatedPluginImplementation
public class MyFirstPlugin extends CaffeinatedPlugin {

@Override
public void onInit() {
this.getLogger().info("Hello World!");
}

@Override
public void onClose() {
this.getLogger().info("Goodbye World!");
}

@Override
public String getName() {
return "My First Plugin";
}

@Override
public String getId() {
return "com.example.firstplugin";
}

}

As you can see, the plugin class extends CaffeinatedPlugin and implements onInit(), onClose(), getName(), and getId().
getName() and getId() must return a name and unique id respectively, otherwise the plugin will fail to load.

When the plugin loads, you will see a message in the console like this: [INFO ] [My First Plugin] Hello World!

To build your plugin jar, just run mvn install in the root of your project or use your IDEs built-in maven features. Place your jar into %appdata%/casterlabs-caffeinated/plugins for it to be loaded.