package com.nisovin.magicspells.spelleffects;
import java.io.File;
import java.util.Collection;
import java.util.TreeSet;
import org.bukkit.Location;
import org.bukkit.configuration.ConfigurationSection;
import com.nisovin.magicspells.MagicSpells;
public class SoundEffect extends SpellEffect {
String sound = "random.pop";
float volume = 1.0F;
float pitch = 1.0F;
@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);
}
@Override
public void playEffectLocation(Location location) {
MagicSpells.getVolatileCodeHandler().playSound(location, sound, volume, pitch);
}
public static void main(String[] args) {
Collection<String> sounds = new TreeSet<String>();
File file = new File("C:\\Users\\Justin.Baker\\AppData\\Roaming\\.minecraft\\assets\\sound");
parseFolder(file, "", sounds);
for (String sound : sounds) {
System.out.println(" * " + sound);
}
}
static void parseFolder(File folder, String path, Collection<String> sounds) {
File[] files = folder.listFiles();
for (File file : files) {
if (file.isDirectory()) {
parseFolder(file, path + file.getName() + ".", sounds);
} else if (file.getName().endsWith(".ogg")) {
String name = path + file.getName().replace(".ogg", "").replaceAll("[0-9]+$", "").replace(" ", "_");
if (!sounds.contains(name)) {
sounds.add(name);
}
}
}
}
}