StringUtils.java 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. package com.gmail.nossr50.util.text;
  2. import com.gmail.nossr50.datatypes.party.PartyFeature;
  3. import com.gmail.nossr50.datatypes.skills.SuperAbilityType;
  4. import org.bukkit.Material;
  5. import org.bukkit.block.data.Ageable;
  6. import org.bukkit.block.data.BlockData;
  7. import org.bukkit.entity.EntityType;
  8. import org.jetbrains.annotations.NotNull;
  9. import java.util.Locale;
  10. public class StringUtils {
  11. /**
  12. * Gets a capitalized version of the target string.
  13. *
  14. * @param target
  15. * String to capitalize
  16. * @return the capitalized string
  17. */
  18. public static String getCapitalized(String target) {
  19. return target.substring(0, 1).toUpperCase() + target.substring(1).toLowerCase(Locale.ENGLISH);
  20. }
  21. /**
  22. * Creates a string from an array skipping the first n elements
  23. * @param args the array to iterate over when forming the string
  24. * @param index the amount of elements to skip over
  25. * @return the "trimmed" string
  26. */
  27. public static String buildStringAfterNthElement(@NotNull String @NotNull []args, int index) {
  28. StringBuilder trimMessage = new StringBuilder();
  29. for (int i = index; i < args.length; i++) {
  30. if(i + 1 >= args.length)
  31. trimMessage.append(args[i]);
  32. else
  33. trimMessage.append(args[i]).append(" ");
  34. }
  35. return trimMessage.toString();
  36. }
  37. public static String getPrettyItemString(Material material) {
  38. return createPrettyString(material.toString());
  39. }
  40. public static String getPrettyEntityTypeString(EntityType entity) {
  41. return createPrettyString(entity.toString());
  42. }
  43. public static String getPrettyAbilityString(SuperAbilityType ability) {
  44. return createPrettyString(ability.toString());
  45. }
  46. public static String getWildcardConfigBlockDataString(BlockData data) {
  47. return getWildcardConfigMaterialString(data.getMaterial());
  48. }
  49. public static String getWildcardConfigMaterialString(Material data) {
  50. return StringUtils.getPrettyItemString(data).replace(" ", "_") + "|*";
  51. }
  52. public static String getFriendlyConfigBlockDataString(BlockData data) {
  53. switch(data.getMaterial()){
  54. case CHORUS_FLOWER:
  55. case COCOA:
  56. case WHEAT:
  57. case BEETROOTS:
  58. case CARROTS:
  59. case POTATOES:
  60. case NETHER_WART: {
  61. if (data instanceof Ageable) {
  62. Ageable ageData = (Ageable) data;
  63. if (ageData.getAge() == ageData.getMaximumAge()) {
  64. return getPrettyItemString(data.getMaterial()).replace(" ", "_") + "_Ripe";
  65. }
  66. }
  67. return getPrettyItemString(data.getMaterial()).replace(" ", "_") + "_Ungrown";
  68. }
  69. }
  70. return getPrettyItemString(data.getMaterial()).replace(" ", "_");
  71. }
  72. public static String getFriendlyConfigMaterialString(Material data) {
  73. return getPrettyItemString(data).replace(" ", "_");
  74. }
  75. public static String getExplicitConfigBlockDataString(BlockData data) {
  76. return getExplicitConfigMaterialString(data.getMaterial());
  77. }
  78. public static String getExplicitConfigMaterialString(Material data) {
  79. return StringUtils.getPrettyItemString(data).replace(" ", "_");
  80. }
  81. public static String getPrettyPartyFeatureString(PartyFeature partyFeature) {
  82. return createPrettyString(partyFeature.toString());
  83. }
  84. private static String createPrettyString(String baseString) {
  85. String[] substrings = baseString.split("_");
  86. String prettyString = "";
  87. int size = 1;
  88. for (String string : substrings) {
  89. prettyString = prettyString.concat(getCapitalized(string));
  90. if (size < substrings.length) {
  91. prettyString = prettyString.concat(" ");
  92. }
  93. size++;
  94. }
  95. return prettyString;
  96. }
  97. /**
  98. * Determine if a string represents an Integer
  99. *
  100. * @param string
  101. * String to check
  102. * @return true if the string is an Integer, false otherwise
  103. */
  104. public static boolean isInt(String string) {
  105. try {
  106. Integer.parseInt(string);
  107. return true;
  108. } catch (NumberFormatException nFE) {
  109. return false;
  110. }
  111. }
  112. /**
  113. * Determine if a string represents a Double
  114. *
  115. * @param string
  116. * String to check
  117. * @return true if the string is a Double, false otherwise
  118. */
  119. public static boolean isDouble(String string) {
  120. try {
  121. Double.parseDouble(string);
  122. return true;
  123. } catch (NumberFormatException nFE) {
  124. return false;
  125. }
  126. }
  127. }