package net.minecraft.sounds; import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; import net.minecraft.core.Holder; public class Music { public static final Codec CODEC = RecordCodecBuilder.create( instance -> instance.group( SoundEvent.CODEC.fieldOf("sound").forGetter(music -> music.event), Codec.INT.fieldOf("min_delay").forGetter(music -> music.minDelay), Codec.INT.fieldOf("max_delay").forGetter(music -> music.maxDelay), Codec.BOOL.fieldOf("replace_current_music").forGetter(music -> music.replaceCurrentMusic) ) .apply(instance, Music::new) ); private final Holder event; private final int minDelay; private final int maxDelay; private final boolean replaceCurrentMusic; public Music(Holder event, int minDelay, int maxDelay, boolean replaceCurrentMusic) { this.event = event; this.minDelay = minDelay; this.maxDelay = maxDelay; this.replaceCurrentMusic = replaceCurrentMusic; } public Holder getEvent() { return this.event; } public int getMinDelay() { return this.minDelay; } public int getMaxDelay() { return this.maxDelay; } public boolean replaceCurrentMusic() { return this.replaceCurrentMusic; } }