OpenBagTwo / FoxNap

A survival-, multiplayer- and copyright-friendly mod for adding custom music discs to your world
GNU General Public License v3.0
1 stars 1 forks source link

Songs Don't Play Full Length #45

Closed Fairweather-Furry closed 1 year ago

Fairweather-Furry commented 1 year ago

Any music disc added by this mod, including those included with the mod, will not play to full length. The configuration file included only gives the option for the number of discs, not anything for editing the length of songs. Lengths of songs are ignored if inserted into the config manually. Running Minecraft 1.19.4 Fabric 0.14.19, Mod version 0.1.0 from CurseForge If this is an old bug, an update to the CurseForge listing would be good.

OpenBagTwo commented 1 year ago

Thanks for the report! I'll look into this right away.

OpenBagTwo commented 1 year ago

Confirmed. While working on a fix, I've updated the listings on both modrinth and curseforge to specify that they're not compatible with 1.19.4. Thank you so much for bringing this to my attention.

Fairweather-Furry commented 1 year ago

Not a problem! Hopefully this can be fixed so 1.19.4 works again. Do the disks get their data from one of the vanilla ones? My personal theory is that the game might be reading the custom discs as being variants of 11, meaning the jukebox only plays for a minute 11 seconds. I haven't taken the time to see if that's the case

OpenBagTwo commented 1 year ago

No, the track length is hard-coded to 60 seconds. See: https://github.com/OpenBagTwo/FoxNap/issues/31

tl;dr--prior to 1.19.4, the track length didn't matter, as Jukeboxes would only emit the "stop playing" event when a disk was ejected from the jukebox (this continued to hold true even when using the SBM-Jukebox mod to allow tracks to be extracted with hoppers).

I've been trying to assess the difficulty of patching the Jukebox Entity class to not transmit the "stop playing music" event to the client, but honestly, I honestly I just need to implement #30...

OpenBagTwo commented 1 year ago

A quick update here. I just got an implementation of that working today, and you can try it out on this branch for 1.19.4 or this branch for 1.20-pre7. Seems to be working as intended, where the default track length is 10m (high enough to let most songs play to completion, and you can still extract them from the jukebox early using a hopper minecart), but also this foxnap.yaml was read in successfully:

n_discs: 7
default_track_length: 20
track_lengths:
  - 10
  - 30
  - 5
  - 1

(note that those values are all in seconds and, based on this config, tracks 5-7 all have lengths of 20 seconds), so if you're just playing single-player, you can now make zero-redstone playlists with easily customizable track lengths.

Still to do:

  1. Test how this behaves on servers when the client and server have different track lengths set (mostly in terms of redstone, but I'll also be curious about the track playback experience)
  2. Update the resource pack generator to render the track lengths to the YAML

Hoping to push out an update to Modrinth and Curseforge by the time 1.20 drops. Let me know if you'd like me to get you a build to alpha test before then.

OpenBagTwo commented 1 year ago

This will be released in v0.1.1, which I'm cutting ASAP.