diff --git a/plugin/src/main/java/net/momirealms/customcrops/bukkit/action/PlayerActionManager.java b/plugin/src/main/java/net/momirealms/customcrops/bukkit/action/PlayerActionManager.java index 4f89214..cc02b92 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/bukkit/action/PlayerActionManager.java +++ b/plugin/src/main/java/net/momirealms/customcrops/bukkit/action/PlayerActionManager.java @@ -368,15 +368,18 @@ public class PlayerActionManager extends AbstractActionManager { private void registerSoundAction() { registerAction((args, chance) -> { if (args instanceof Section section) { - Sound sound = Sound.sound( - Key.key(section.getString("key")), - Sound.Source.valueOf(section.getString("source", "PLAYER").toUpperCase(Locale.ENGLISH)), - section.getDouble("volume", 1.0).floatValue(), - section.getDouble("pitch", 1.0).floatValue() - ); + MathValue volume = MathValue.auto(section.get("volume")); + MathValue pitch = MathValue.auto(section.get("pitch")); + Key key = Key.key(section.getString("key")); + Sound.Source source = Sound.Source.valueOf(section.getString("source", "PLAYER").toUpperCase(Locale.ENGLISH)); return context -> { - if (context.holder() == null) return; if (Math.random() > chance.evaluate(context)) return; + Sound sound = Sound.sound( + key, + source, + (float) volume.evaluate(context), + (float) pitch.evaluate(context) + ); Audience audience = plugin.getSenderFactory().getAudience(context.holder()); AdventureHelper.playSound(audience, sound); };