Christmas Presents [Datapack Edition]

Christmas Presents [Datapack Edition]

52 Downloads

[More Music] Issues/Fixes

Equarus opened this issue ยท 0 comments

commented

More Music

Describe the bug

A. Sound only playing to player that inserts disc
B. Discs can vanish when there's other occupied jukeboxes
C. Sound doesn't play for players who enter range after disc is inserted, sound doesn't stop when moving out of range, sound not directional

Steps To Reproduce

A1. Play disc in multiplayer near other players
B1. Put disc in jukebox A, then put disc in jukebox B
B2. Remove discs from jukebox A and B
B3. Only get one back from jukebox A

Expected behavior

Reliably reclaiming discs, MP functionality

~Suggestions:

#(Problem A&C) sample.mcfunction line 9-14:
stopsound @p record minecraft:music_disc.13
playsound moremusic:music_disc.sample record @p[distance=..6] ~ ~ ~ 2
title @p actionbar
to
stopsound @a[distance=..128] record minecraft:music_disc.13
playsound moremusic:music_disc.sample record @a ~ ~ ~ 4 1 0
title @a[distance=..64] actionbar

#(Problem B) main_tick.mcfunction line 30-39:
execute at @e[tag=jukebox] at @e[tag=Disc____]
should be changed to
execute at @e[tag=jukebox, tag=Disc____]
line 12&14: changes to stopsound distance for MP
execute at @e[tag=jukebox] if block ~ ~ ~ air run stopsound @p[distance=..5]
execute at @e[tag=jukebox] if block ~ ~ ~ minecraft:jukebox[has_record=false] run stopsound @p[distance=..7]
to
execute at @e[tag=jukebox] if block ~ ~ ~ air run stopsound @a[distance=..64]
execute at @e[tag=jukebox] if block ~ ~ ~ minecraft:jukebox[has_record=false] run stopsound @a[distance=..64]

Notes

(A&C)
converting sound files to mono instead of stereo allows the music to come from sound location, and fade with distance provided the command has minimum volume (number 3)

stopsound: target and range change, 64 should suffice, but I used 128 to be safe
playsound numbers: volume=4, pitch=1, minvolume=0, volume 4 brings sound distance up to 64 blocks, consistent with vanilla discs, minvolume for fade to match
title target swapped to all players for MP, distance 64 covers standard jukebox sound range

(B)
Sets command to execute at markers that have both jukebox AND the matching disc tags instead of either
Fixes disappearing discs when using multiple jukeboxes... Unclear as to why it only seems to be a problem for multiple jukeboxes, and it always returned disc from the first jukebox

Desktop

  • Minecraft Version: Java 1.18.1
  • Datapack Version: 1.4.0
  • OS: Windows 10