Skip to content
On this page

Minestom

Plasmo Voice supports Minestom thanks to #394.

Setting up dependency

Version

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

Version

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.