Minestom
Plasmo Voice supports Minestom thanks to #394.
Setting up dependency
kotlin
repositories {
maven("https://repo.plasmoverse.com/releases")
}
dependencies {
compileOnly("su.plo.voice.server:minestom:${version}")
}
groovy
repositories {
maven {
name = 'plasmoverse-releases'
url = 'https://repo.plasmoverse.com/releases'
}
}
dependencies {
implementation 'su.plo.voice.server:minestom:${version}'
}
xml
<project>
<repositories>
<repository>
<id>plasmoverse-releases</id>
<url>https://repo.plasmoverse.com/releases</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>su.plo.voice.server</groupId>
<artifactId>minestom</artifactId>
<version>${version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
Initializing voice server
java
// ... on server startup
File voiceConfigDirectory = new File("plasmovoice");
MinestomVoiceServer voiceServer = new MinestomVoiceServer(voiceConfigDirectory);
voiceServer.onInitialize();
// ... on server shutdown
voiceServer.onShutdown();
kotlin
// ... on server startup
val voiceConfigDirectory = File("plasmovoice")
val voiceServer = MinestomVoiceServer(voiceConfigDirectory)
voiceServer.onInitialize()
// ... on server shutdown
voiceServer.onShutdown()
That's it. Configuration file will be created in the specified directory.
Unfortunately, there is currently no way to control configuration programmatically to change some values in the code (e.g. port).
Using addons
Most of the official addons are not available at our maven repository. But Modrinth Maven can be used instead.
pv-addon-spectator will be used as an example on how to load an official addon published to modrinth.
Setting up dependency
kotlin
repositories {
// note that there is a better way to specify modrinth maven repository
// see "Advanced repository declaration" https://support.modrinth.com/en/articles/8801191-modrinth-maven
maven("https://api.modrinth.com/maven")
}
dependencies {
compileOnly("maven.modrinth:pv-addon-spectator:${version}")
}
groovy
repositories {
// note that there is a better way to specify modrinth maven repository
// see "Advanced repository declaration" https://support.modrinth.com/en/articles/8801191-modrinth-maven
maven {
name = 'Modrinth'
url = 'https://api.modrinth.com/maven'
}
}
dependencies {
implementation 'maven.modrinth:pv-addon-spectator:${version}'
}
xml
<project>
<repositories>
<repository>
<id>modrinth</id>
<url>https://api.modrinth.com/maven</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>maven.modrinth</groupId>
<artifactId>pv-addon-spectator</artifactId>
<version>${version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
Loading an addon
java
import su.plo.voice.spectator.SpectatorAddon;
// ... on server startup
voiceServer.onInitialize();
// ... after voice server initialization
PlasmoVoiceServer.getAddonsLoader().load(new SpectatorAddon());
kotlin
import su.plo.voice.spectator.SpectatorAddon
// ... on server startup
voiceServer.onInitialize()
// ... after voice server initialization
PlasmoVoiceServer.getAddonsLoader().load(SpectatorAddon())
And that's it. pv-addon-spectator is now loaded after Plasmo Voice initialization.