Jump to content

Custom music disc not playing sound


Icefox

Recommended Posts

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
Link to comment
Share on other sites

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)

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

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")));

 

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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



×
×
  • Create New...

Important Information

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