Page.java 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. package com.gmail.nossr50.util;
  2. import java.util.ArrayList;
  3. import org.bukkit.ChatColor;
  4. import org.bukkit.entity.Player;
  5. import com.gmail.nossr50.datatypes.SkillType;
  6. import com.gmail.nossr50.locale.LocaleLoader;
  7. public class Page {
  8. public static int getTotalPageNumber(String address)
  9. {
  10. String[] addressSplit = LocaleLoader.getString(address).split("\n");
  11. if(addressSplit.length <= 8)
  12. return 1;
  13. else
  14. return (addressSplit.length/8)+1;
  15. }
  16. public static ArrayList<String> grabPageContents(String header, String address, int pagenum)
  17. {
  18. int pageIndexStart = 0;
  19. //Determine what string to start at
  20. if(pagenum > 1)
  21. {
  22. pageIndexStart = 8*(pagenum-1);
  23. }
  24. ArrayList<String> allStrings = new ArrayList<String>();
  25. String split[] = LocaleLoader.getString(address).split("\n");
  26. allStrings.add(ChatColor.GOLD+"-="+ChatColor.GREEN+header+ChatColor.GOLD+"=-"); //So stylish
  27. //Add targeted strings
  28. while(allStrings.size() < 9)
  29. {
  30. if(pageIndexStart+allStrings.size() > split.length)
  31. allStrings.add("");
  32. else
  33. allStrings.add(split[pageIndexStart+allStrings.size()-1]);
  34. }
  35. allStrings.add("Page "+pagenum+" of "+getTotalPageNumber(address));
  36. return allStrings;
  37. }
  38. public static void clearChat(Player player)
  39. {
  40. for(int x = 0; x < 20; x++)
  41. {
  42. player.sendMessage("");
  43. }
  44. }
  45. public static void grabGuidePageForSkill(SkillType skilltype, Player player, String[] args)
  46. {
  47. String capitalized = Misc.getCapitalized(skilltype.toString());
  48. player.sendMessage(ChatColor.DARK_AQUA+"Guide for "+capitalized+" available type /"+skilltype.toString().toLowerCase()+" ? [Page#]"); //TODO: Needs more locale.
  49. if (args.length >= 1)
  50. {
  51. if(args[0].equals("?"))
  52. {
  53. String address = "Guides."+capitalized;
  54. if(args.length > 1 && Misc.isInt(args[1]) && Misc.getInt(args[1]) <= Page.getTotalPageNumber(address))
  55. {
  56. Page.clearChat(player);
  57. for(String target : Page.grabPageContents(capitalized+" Guide", address, Misc.getInt(args[1])))
  58. {
  59. player.sendMessage(target);
  60. }
  61. } else if(args.length == 1)
  62. {
  63. Page.clearChat(player);
  64. for(String target : Page.grabPageContents(capitalized+" Guide", address, 1))
  65. {
  66. player.sendMessage(target);
  67. }
  68. }
  69. else if(args.length > 1 && Misc.getInt(args[1]) > Page.getTotalPageNumber(address))
  70. {
  71. player.sendMessage("That page doesn't exist, there are only "+Page.getTotalPageNumber(address)+" total pages"); //TODO: Needs more locale.
  72. }
  73. else if(args.length > 1 && !Misc.isInt(args[1]))
  74. {
  75. player.sendMessage("Not a valid page number!"); //TODO: Needs more locale.
  76. }
  77. }
  78. else
  79. {
  80. player.sendMessage(ChatColor.RED + "Usage is /"+skilltype.toString().toLowerCase()+" ? [page]"); //TODO: Needs more locale.
  81. }
  82. }
  83. }
  84. }