Tubing is a framework to aid loose coupling spigot plugins. The framework sets up a 74C2 n IOC container and gives you annotation based dependency injection with minimal setup Full explanation can be found on the wiki: https://staffplusplus-minecraft.gitbook.io/tubing/
Some of it core features are:
- Dependency Injection
- Interface injection
- List injection
- Conditional bean registration
- Configuration
- Support for multiple configuration files
- Automatically update configuration files
- Inject configuration properties anytime anywhere with a simple annotation
<repository>
<id>staffplusplus-repo</id>
<url>https://nexus.staffplusplus.org/repository/staffplusplus/</url>
</repository>
<dependency>
<groupId>be.garagepoort.mcioc</groupId>
<artifactId>tubing-core</artifactId>
<version>7.2.0</version>
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
Make sure to relocate the tubing package using the maven shade plugin
<relocation>
<pattern>be.garagepoort.mcioc.</pattern>
<shadedPattern>my.package.here.be.garagepoort.mcioc.</shadedPattern>
</relocation>
Instead of extending the default JavaPlugin bukkit class, we now need to create a class that is extending TubingPlugin.
import be.garagepoort.mcioc.TubingPlugin;
public class TubingExample extends TubingPlugin {
@Override
protected void enable() {
getLogger().info("Plugin enabled");
}
@Override
protected void disable() {
getLogger().info("Plugin disabled");
}
}
That all the setup that is needed. Checkout the wiki to learn where to go from here. https://staffplusplus-minecraft.gitbook.io/tubing