API
FlectonePulse is a powerful Minecraft plugin for customizing server messages, chat, commands, and integrations, supporting platforms like Bukkit, Spigot, Paper, Purpur, Folia, BungeeCord, Velocity, and Fabric. It uses Google Guice for dependency injection, with most non-model classes annotated as @Singleton
Dependency Integration
FlectonePulse is available on Maven Central. Below are configurations for including it in your project using Maven, Gradle (Groovy), or Gradle (Kotlin DSL)
xml
<dependency>
<groupId>net.flectone.pulse</groupId>
<artifactId>core</artifactId>
<version>1.4.3</version> <!-- Replace with latest version -->
<scope>provided</scope>
</dependency>
groovy
repositories {
mavenCentral()
}
dependencies {
compileOnly 'net.flectone.pulse:core:1.4.3' // Replace with latest version
}
kotlin
repositories {
mavenCentral()
}
dependencies {
compileOnly("net.flectone.pulse:core:1.4.3") // Replace with latest version
}
For snapshot versions:
xml
<dependency>
<groupId>net.flectone.pulse</groupId>
<artifactId>core</artifactId>
<version>1.4.4-SNAPSHOT</version> <!-- Replace with latest version -->
<scope>provided</scope>
</dependency>
groovy
repositories {
maven { url 'https://central.sonatype.com/repository/maven-snapshots/' }
}
dependencies {
compileOnly 'net.flectone.pulse:core:1.4.4-SNAPSHOT' // Replace with latest version
}
kotlin
repositories {
maven { url = uri("https://central.sonatype.com/repository/maven-snapshots/") }
}
dependencies {
compileOnly("net.flectone.pulse:core:1.4.4-SNAPSHOT") // Replace with latest version
}
Bukkit Example
Below is an example of a Bukkit plugin using FlectonePulse to print "Hello from FlectonePulse"
plugin.yml
yaml
name: MyPlugin
version: 1.0.0
main: com.example.myplugin.MyPlugin
api-version: 1.13
softdepend:
- FlectonePulse
Example plugin code
java
package com.example.myplugin;
import net.flectone.pulse.FlectonePulse;
import net.flectone.pulse.FlectonePulseAPI;
import net.flectone.pulse.util.logging.FLogger;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;
public class MyPlugin extends JavaPlugin {
@Override
public void onEnable() {
if (Bukkit.getPluginManager().getPlugin("FlectonePulse") != null) {
FlectonePulse flectonePulse = FlectonePulseAPI.getInstance();
FLogger fLogger = flectonePulse.get(FLogger.class);
fLogger.info("Hello from FlectonePulse");
}
}
}
Key API Methods
java
FlectonePulse flectonePulse = FlectonePulseAPI.getInstance();
// Get singleton instance of specified class using Guice dependency injection
// Class<?> clazz = ...
// flectonePulse.get(clazz);
FLogger fLogger = flectonePulse.get(FLogger.class);
// Check if injector is ready
flectonePulse.isReady();
// Reload plugin, throws `ReloadException` on errors
flectonePulse.reload();
Notes
- Ensure FlectonePulse is installed on the server and listed as a softdepend in
plugin.yml
- Use
isReady()
to verify the injector is ready before callingget()