package net.bitjump.bukkit.bitlib.util; import java.text.MessageFormat; import java.util.List; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; public class MessageUtil { private MessageUtil() { } public static String format(String format, Object... objects) { try { format = MessageFormat.format(format, objects); } catch (Exception e) { // dodgy object? } return ChatColor.translateAlternateColorCodes('&', format); } public static String getArticle(String string) { if(isVowel(string.charAt(0))) return "an"; return "a"; } public static String getPlural(String singular, int count) { if(Math.abs(count) != 1 && !(singular.toLowerCase().endsWith("s"))) return singular + "s"; return singular; } public static String getComplexPlural(int count, String singular, String plural) { return Math.abs(count)==1 ? singular : plural; } public static boolean isVowel(char c) { return "AEIOUaeiou".indexOf(c) != -1; } public static void paginate(CommandSender sender, List<String> list, int page, int pageLength) { sender.sendMessage(format("List: Page ({0} of {1})", page, getPages(list.size(), pageLength))); int i = 0; int k = 0; page--; for (String s : list) { k++; if ((((page * pageLength) + i + 1) == k) && (k != ((page * pageLength) + pageLength + 1))) { i++; sender.sendMessage(format(" - {0}", s)); } } } public static int getPages(int length, int pageLength) { return length % pageLength == 0 ? length / pageLength : length / pageLength + 1; } }