package com.nisovin.magicspells.spelleffects;
import org.bukkit.Bukkit;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import com.nisovin.magicspells.MagicSpells;
public class SoundPersonalEffect extends SpellEffect {
String sound = "random.pop";
float volume = 1.0F;
float pitch = 1.0F;
boolean broadcast = false;
@Override
public void loadFromString(String string) {
if (string != null && string.length() > 0) {
String[] data = string.split(" ");
sound = data[0];
if (data.length > 1) {
volume = Float.parseFloat(data[1]);
}
if (data.length > 2) {
pitch = Float.parseFloat(data[2]);
}
}
if (sound.equals("random.wood_click")) {
sound = "random.wood click";
} else if (sound.equals("mob.ghast.affectionate_scream")) {
sound = "mob.ghast.affectionate scream";
}
}
@Override
public void loadFromConfig(ConfigurationSection config) {
sound = config.getString("sound", sound);
volume = (float)config.getDouble("volume", volume);
pitch = (float)config.getDouble("pitch", pitch);
broadcast = config.getBoolean("broadcast", broadcast);
}
@Override
public void playEffectEntity(Entity entity) {
if (broadcast) {
for (Player player : Bukkit.getOnlinePlayers()) {
MagicSpells.getVolatileCodeHandler().playSound(player, sound, volume, pitch);
}
} else if (entity != null && entity instanceof Player) {
MagicSpells.getVolatileCodeHandler().playSound((Player)entity, sound, volume, pitch);
}
}
}