Jump to content

Recommended Posts

Posted (edited)

I made a note block cover of Loki Green Theme from the Loki show by Marvel Studios. I was wanting to implement it into a mod. I went through the steps of making an item and registering a sound, but when I put the item in a jukebox, the sound does not play.
 

public class ModSounds {

    static void register() {
    }

    public static final Lazy<SoundEvent> LOKI_THEME_DISC_LAZY = Lazy.of(() ->
            new SoundEvent(new ResourceLocation(MoreMusicDiscs.MOD_ID, "loki_green_theme")));

    public static final RegistryObject<SoundEvent> LOKI_THEME_DISC =
            Registration.SOUNDS.register("loki_green_theme.disc", LOKI_THEME_DISC_LAZY);
}

^^ the register method is called in my main method
 

{
  "loki_green_theme": {
    "subtitle": "moremusicdiscs.subtitle.loki_green_theme",
    "sounds": [
      {
        "name": "moremusicdiscs:disc/loki_green_theme",
        "stream": true
      }
    ]
  }
}

^^ sounds.json file

image.png.26456213f20a0aeb54622a26c6a7026a.png

^^ package presentation

SOLVED- I made the directory that the sound file was in sounds.disc when I referenced the sound as sounds/disc. I simply had to change the directory to sounds/disc and it worked

Edited by Icefox
Solved
Posted
15 hours ago, diesieben07 said:
  • Why do you have a separate Lazy object for your SoundEvent? The RegistryObject you get from the DeferredRegister already provides this functionality.
  • Do not put a DeferredRegister and its objects in separate classes. The "empty register method to ensure the class is loaded" is absolutely disgusting.
  • Show the registration of your Item.
    public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, MoreMusicDiscs.MOD_ID);

    public static final RegistryObject<Item> LOKI_THEME_DISC = ITEMS.register("loki_theme_disc", () ->
            new MusicDiscItem(1, () -> ModSounds.LOKI_THEME_DISC_LAZY.get(),
                    new Item.Properties().group(MoreMusicDiscs.DISC_ITEM_GROUP).maxStackSize(1).group(MoreMusicDiscs.DISC_ITEM_GROUP)));

I'm pretty sure I fixed what you mentioned. To be clear, I don't need the static void register event? I did think it was kinda weird in the tutorial I was watching, as static variables are supposed to load when the program starts (I think)

Posted
4 hours ago, Icefox said:

as static variables are supposed to load when the program starts (I think)

They are loaded upon the class is being used.

So you need the "static void register event" there if you are doing this way, but it is not recommended 

20 hours ago, diesieben07 said:

The "empty register method to ensure the class is loaded" is absolutely disgusting

 

Posted
13 minutes ago, diesieben07 said:

Your sound is called "disc/loki_green_theme", but your sounds.json contains a sound called "loki_green_theme".

oops, I assumed that it meant the location of the sound in the assets/sounds folder. Anyway, I changed the sounds event but I'm still getting nothing. Do I maybe have to assign a texture to the item before it can play a sound?

    public static final RegistryObject<SoundEvent> LOKI_THEME_DISC =
            SOUNDS.register("loki_green_theme", () -> new SoundEvent(new ResourceLocation(MoreMusicDiscs.MOD_ID, "loki_green_theme")));

 

Posted
17 minutes ago, diesieben07 said:

Your sound file is located in assets/moremusicdiscs/sounds.disc/loki_green_theme.ogg. It should be in assets/moremusicdiscs/sounds/disc/loki_green_theme.ogg

This fixed it! Thanks for all the help

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Im trying to build my mod using shade since i use the luaj library however i keep getting this error Reason: Task ':reobfJar' uses this output of task ':shadowJar' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed. So i try adding reobfJar.dependsOn shadowJar  Could not get unknown property 'reobfJar' for object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler. my gradle file plugins { id 'eclipse' id 'idea' id 'maven-publish' id 'net.minecraftforge.gradle' version '[6.0,6.2)' id 'com.github.johnrengelman.shadow' version '7.1.2' id 'org.spongepowered.mixin' version '0.7.+' } apply plugin: 'net.minecraftforge.gradle' apply plugin: 'org.spongepowered.mixin' apply plugin: 'com.github.johnrengelman.shadow' version = mod_version group = mod_group_id base { archivesName = mod_id } // Mojang ships Java 17 to end users in 1.18+, so your mod should target Java 17. java.toolchain.languageVersion = JavaLanguageVersion.of(17) //jarJar.enable() println "Java: ${System.getProperty 'java.version'}, JVM: ${System.getProperty 'java.vm.version'} (${System.getProperty 'java.vendor'}), Arch: ${System.getProperty 'os.arch'}" minecraft { mappings channel: mapping_channel, version: mapping_version copyIdeResources = true runs { configureEach { workingDirectory project.file('run') property 'forge.logging.markers', 'REGISTRIES' property 'forge.logging.console.level', 'debug' arg "-mixin.config=derp.mixin.json" mods { "${mod_id}" { source sourceSets.main } } } client { // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. property 'forge.enabledGameTestNamespaces', mod_id } server { property 'forge.enabledGameTestNamespaces', mod_id args '--nogui' } gameTestServer { property 'forge.enabledGameTestNamespaces', mod_id } data { workingDirectory project.file('run-data') args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') } } } sourceSets.main.resources { srcDir 'src/generated/resources' } repositories { flatDir { dirs './libs' } maven { url = "https://jitpack.io" } } configurations { shade implementation.extendsFrom shade } dependencies { minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" implementation 'org.luaj:luaj-jse-3.0.2' implementation fg.deobf("com.github.Virtuoel:Pehkui:${pehkui_version}") annotationProcessor 'org.spongepowered:mixin:0.8.5:processor' minecraftLibrary 'luaj:luaj-jse:3.0.2' shade 'luaj:luaj-jse:3.0.2' } // Example for how to get properties into the manifest for reading at runtime. tasks.named('jar', Jar).configure { manifest { attributes([ 'Specification-Title' : mod_id, 'Specification-Vendor' : mod_authors, 'Specification-Version' : '1', // We are version 1 of ourselves 'Implementation-Title' : project.name, 'Implementation-Version' : project.jar.archiveVersion, 'Implementation-Vendor' : mod_authors, 'Implementation-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"), "TweakClass" : "org.spongepowered.asm.launch.MixinTweaker", "TweakOrder" : 0, "MixinConfigs" : "derp.mixin.json" ]) } rename 'mixin.refmap.json', 'derp.mixin-refmap.json' } shadowJar { archiveClassifier = '' configurations = [project.configurations.shade] finalizedBy 'reobfShadowJar' } assemble.dependsOn shadowJar reobf { re shadowJar {} } publishing { publications { mavenJava(MavenPublication) { artifact jar } } repositories { maven { url "file://${project.projectDir}/mcmodsrepo" } } }  
    • All versions of Minecraft Forge suddenly black screen even without mods (tried reinstalling original Minecraft, Java, updating drivers doesn't work)
    • When i join minecraft all ok, when i join world all working fine, but when i open indentity menu, i get this The game crashed whilst unexpected error Error: java.lang.NullPointerException: Cannot invoke "top.ribs.scguns.common.Gun$Projectile.getDamage()" because "this.projectile" is null crash report here https://paste.ee/p/0vKaf
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.