Skip to content

MP3 Playback does not work in exported JAR despite MP3 dependencies being added from XR3Player's pom file #79

@lockieluke

Description

@lockieluke
plugins {
    id 'fabric-loom' version '1.4-SNAPSHOT'
    id 'maven-publish'
    id "org.jetbrains.kotlin.jvm" version "1.9.21"
	id 'org.jetbrains.kotlin.plugin.serialization' version '1.9.21'
}

version = project.mod_version
group = project.maven_group

base {
    archivesName = project.archives_base_name
}

repositories {
    // Add repositories to retrieve artifacts from in here.
    // You should only use this when depending on other mods because
    // Loom adds the essential maven repositories to download Minecraft and libraries from automatically.
    // See https://docs.gradle.org/current/userguide/declaring_repositories.html
    // for more information about repositories.

    mavenCentral()
    maven { url = "https://jitpack.io/" }
}

loom {
    splitEnvironmentSourceSets()

    mods {
        "coopersmpwinterclient" {
            sourceSet sourceSets.main
            sourceSet sourceSets.client
        }
    }

}

dependencies {
    // To change the versions see the gradle.properties file
    minecraft "com.mojang:minecraft:${project.minecraft_version}"
    mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
    modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"

    // Fabric API. This is technically optional, but you probably want it anyway.
    modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
    modImplementation "net.fabricmc:fabric-language-kotlin:${project.fabric_kotlin_version}"
    modImplementation "com.ptsmods:devlogin:3.4.1"

    // java-stream-player and its dependencies
    include implementation("com.github.goxr3plus:java-stream-player:10.0.2")
    include implementation("com.mpatric:mp3agic:0.9.1")
    include implementation("com.github.goxr3plus:jaudiotagger:2.2.7")
    include implementation("com.googlecode.soundlibs:mp3spi:1.9.5.4") {
        exclude group: 'com.googlecode.soundlibs', module: 'tritonus-share'
    }
    include implementation('org.jflac:jflac-codec:1.5.2')
    include implementation('com.github.trilarion:vorbis-support:1.1.0')
    include implementation('com.googlecode.soundlibs:tritonus-all:0.3.7.2') {
        exclude group: 'com.googlecode.soundlibs', module: 'tritonus-share'
    }
    // Uncomment the following line to enable the deprecated Fabric API modules.
    // These are included in the Fabric API production distribution and allow you to update your mod to the latest modules at a later more convenient time.

    // modImplementation "net.fabricmc.fabric-api:fabric-api-deprecated:${project.fabric_version}"
}

processResources {
    inputs.property "version", project.version

    filesMatching("fabric.mod.json") {
        expand "version": project.version
    }
}

tasks.withType(JavaCompile).configureEach {
    it.options.release = 17
}

tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
    kotlinOptions {
        jvmTarget = 17
    }
}

java {
    // Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task
    // if it is present.
    // If you remove this line, sources will not be generated.
    withSourcesJar()

    sourceCompatibility = JavaVersion.VERSION_17
    targetCompatibility = JavaVersion.VERSION_17
}

jar {
    from("LICENSE") {
        rename { "${it}_${project.base.archivesName.get()}" }
    }
}

remapJar {
    addNestedDependencies = true
}

// configure the maven publication
publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.java
        }
    }

    // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing.
    repositories {
        // Add repositories to publish to here.
        // Notice: This block does NOT have the same function as the block in the top level.
        // The repositories here will be used for publishing your artifact, not for
        // retrieving dependencies.
    }
}

I'm trying to use java-stream-player in a Minecraft fabric mod, everything works in dev environment but MP3 playback just does not work when the mod is exported to a normal JAR file and then added to a normal Minecraft Fabric instance.

It would simply says:

javax.sound.sampled.UnsupportedAudioFileException: Stream of unsupported format

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions