diff --git a/src/com/massivecraft/mcore/cmd/arg/ARSound.java b/src/com/massivecraft/mcore/cmd/arg/ARSound.java new file mode 100644 index 00000000..ca1fffbb --- /dev/null +++ b/src/com/massivecraft/mcore/cmd/arg/ARSound.java @@ -0,0 +1,53 @@ +package com.massivecraft.mcore.cmd.arg; + +import org.bukkit.Sound; +import org.bukkit.command.CommandSender; + +public class ARSound extends ArgReaderAbstract +{ + // -------------------------------------------- // + // INSTANCE & CONSTRUCT + // -------------------------------------------- // + + private static ARSound i = new ARSound(); + public static ARSound get() { return i; } + + // -------------------------------------------- // + // OVERRIDE + // -------------------------------------------- // + + @Override + public ArgResult read(String arg, CommandSender sender) + { + ArgResult result = new ArgResult(getSoundFromString(arg)); + if (!result.hasResult()) + { + result.getErrors().add("No sound matches \""+arg+"\"."); + result.getErrors().add("https://github.com/Bukkit/Bukkit/blob/master/src/main/java/org/bukkit/Sound.java"); + } + return result; + } + + // -------------------------------------------- // + // UTIL + // -------------------------------------------- // + + public static Sound getSoundFromString(String string) + { + String string1 = getCompareString(string); + for (Sound sound : Sound.values()) + { + String string2 = getCompareString(sound.name()); + if (string1.equals(string2)) return sound; + } + return null; + } + + public static String getCompareString(String string) + { + string = string.toLowerCase(); + string = string.replaceAll("[^a-zA-Z0-9]", ""); + return string; + } + +}